Merging latest from master
diff --git a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/RenditionCleaner.java b/core/src/main/java/org/apache/sling/cms/core/internal/listeners/RenditionCleaner.java
similarity index 78%
rename from transformer/src/main/java/org/apache/sling/cms/transformer/internal/RenditionCleaner.java
rename to core/src/main/java/org/apache/sling/cms/core/internal/listeners/RenditionCleaner.java
index d1e75ee..a2b8cf9 100644
--- a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/RenditionCleaner.java
+++ b/core/src/main/java/org/apache/sling/cms/core/internal/listeners/RenditionCleaner.java
@@ -16,12 +16,16 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.sling.cms.transformer.internal;
+package org.apache.sling.cms.core.internal.listeners;
+
+import java.util.Collections;
 
 import org.apache.sling.api.resource.LoginException;
 import org.apache.sling.api.resource.PersistenceException;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceResolver;
+import org.apache.sling.api.resource.ResourceResolverFactory;
+import org.osgi.service.component.annotations.Activate;
 import org.osgi.service.component.annotations.Component;
 import org.osgi.service.component.annotations.Reference;
 import org.osgi.service.event.Event;
@@ -36,13 +40,17 @@
 public class RenditionCleaner implements EventHandler {
 
     private static final Logger log = LoggerFactory.getLogger(RenditionCleaner.class);
+    private ResourceResolverFactory factory;
 
-    @Reference
-    private TransformationServiceUser transformationServiceUser;
+    @Activate
+    public RenditionCleaner(@Reference ResourceResolverFactory factory) {
+        this.factory = factory;
+    }
 
     @Override
     public void handleEvent(Event event) {
-        try (ResourceResolver resolver = transformationServiceUser.getTransformationServiceUser()) {
+        try (ResourceResolver resolver = factory.getServiceResourceResolver(
+                Collections.singletonMap(ResourceResolverFactory.SUBSERVICE, "sling-commons-thumbnails"))) {
             Resource renditions = resolver.getResource(event.getProperty("path") + "/renditions");
             if (renditions != null) {
                 resolver.delete(renditions);
diff --git a/core/src/test/resources/conf.json b/core/src/test/resources/conf.json
index 89e2b0b..3283cb6 100644
--- a/core/src/test/resources/conf.json
+++ b/core/src/test/resources/conf.json
@@ -107,57 +107,57 @@
                 "sling-cms-thumbnail": {
                     "jcr:primaryType": "nt:unstructured",
                     "name": "sling-cms-thumbnail",
-                    "sling:resourceType": "sling-cms/components/caconfig/transformation",
+                    "sling:resourceType": "sling/commons/thumbnails/transformation",
                     "handlers": {
                         "jcr:primaryType": "nt:unstructured",
                         "size": {
                             "jcr:primaryType": "nt:unstructured",
                             "height": "480",
                             "width": "600",
-                            "sling:resourceType": "sling-cms/components/caconfig/transformationhandlers/size"
+                            "sling:resourceType": "sling/commons/thumbnails/transformers/resize"
                         },
                         "crop": {
                             "jcr:primaryType": "nt:unstructured",
                             "position": "CENTER",
-                            "sling:resourceType": "sling-cms/components/caconfig/transformationhandlers/crop"
+                            "sling:resourceType": "sling/commons/thumbnails/transformers/crop"
                         }
                     }
                 },
                 "sling-cms-thumbnail128": {
                     "jcr:primaryType": "nt:unstructured",
                     "name": "sling-cms-thumbnail128",
-                    "sling:resourceType": "sling-cms/components/caconfig/transformation",
+                    "sling:resourceType": "sling/commons/thumbnails/transformation",
                     "handlers": {
                         "jcr:primaryType": "nt:unstructured",
                         "size": {
                             "jcr:primaryType": "nt:unstructured",
                             "height": "128",
                             "width": "128",
-                            "sling:resourceType": "sling-cms/components/caconfig/transformationhandlers/size"
+                            "sling:resourceType": "sling/commons/thumbnails/transformers/resize"
                         },
                         "crop": {
                             "jcr:primaryType": "nt:unstructured",
                             "position": "CENTER",
-                            "sling:resourceType": "sling-cms/components/caconfig/transformationhandlers/crop"
+                            "sling:resourceType": "sling/commons/thumbnails/transformers/crop"
                         }
                     }
                 },
                 "sling-cms-thumbnail32": {
                     "jcr:primaryType": "nt:unstructured",
                     "name": "sling-cms-thumbnail32",
-                    "sling:resourceType": "sling-cms/components/caconfig/transformation",
+                    "sling:resourceType": "sling/commons/thumbnails/transformation",
                     "handlers": {
                         "jcr:primaryType": "nt:unstructured",
                         "size": {
                             "jcr:primaryType": "nt:unstructured",
                             "height": "32",
                             "width": "32",
-                            "sling:resourceType": "sling-cms/components/caconfig/transformationhandlers/size"
+                            "sling:resourceType": "sling/commons/thumbnails/transformers/resize"
                         },
                         "crop": {
                             "jcr:primaryType": "nt:unstructured",
                             "position": "CENTER",
-                            "sling:resourceType": "sling-cms/components/caconfig/transformationhandlers/crop"
+                            "sling:resourceType": "sling/commons/thumbnails/transformers/crop"
                         }
                     }
                 }
diff --git a/feature/src/main/features/thumbnails.json b/feature/src/main/features/thumbnails.json
new file mode 100644
index 0000000..935cee5
--- /dev/null
+++ b/feature/src/main/features/thumbnails.json
@@ -0,0 +1,21 @@
+{
+  "prototype": {
+    "id": "org.apache.sling:org.apache.sling.commons.thumbnails:slingosgifeature:default:1.0.0-SNAPSHOT"
+  },
+  "configurations": {
+    "org.apache.sling.commons.thumbnails.internal.ThumbnailSupportImpl": {
+      "errorSuffix": "/sling-cms-thumbnail.png",
+      "errorResourcePath": "/static/sling-cms/thumbnails/file.png",
+      "persistableTypes": ["sling:File=jcr:content/renditions"],
+      "supportedTypes": [
+        "nt:file=jcr:content/jcr:mimeType",
+        "sling:File=jcr:content/jcr:mimeType"
+      ]
+    },
+    "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling-commons-thumbnails-core":{
+        "user.mapping":[
+            "org.apache.sling.cms.core:sling-commons-thumbnails=[sling-commons-thumbnails]"
+        ]
+    }
+  }
+}
diff --git a/pom.xml b/pom.xml
index d12b544..d192f52 100644
--- a/pom.xml
+++ b/pom.xml
@@ -71,7 +71,6 @@
     <modules>
         <module>api</module>
         <module>core</module>
-        <module>transformer</module>
         <module>login</module>
         <module>ui</module>
         <module>reference</module>
diff --git a/transformer/NOTICE b/transformer/NOTICE
deleted file mode 100644
index c91d59c..0000000
--- a/transformer/NOTICE
+++ /dev/null
@@ -1,8 +0,0 @@
-Apache Sling App CMS - Transformer
-Copyright 2019 The Apache Software Foundation
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
-
-This product includes software developed at
-https://github.com/coobird/thumbnailator
\ No newline at end of file
diff --git a/transformer/bnd.bnd b/transformer/bnd.bnd
deleted file mode 100644
index 1c528db..0000000
--- a/transformer/bnd.bnd
+++ /dev/null
@@ -1,4 +0,0 @@
-Sling-Model-Packages: org.apache.sling.cms.transformer
-
-Export-Package: org.apache.sling.cms.transformer,net.coobird.thumbnailator.*
--includeresource: lib/thumbnailator.jar=thumbnailator-[[0-9\.]]*.jar;lib:=true
diff --git a/transformer/pom.xml b/transformer/pom.xml
deleted file mode 100644
index b4db414..0000000
--- a/transformer/pom.xml
+++ /dev/null
@@ -1,196 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional
-    information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to
-    in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See
-    the License for the specific language governing permissions and limitations under the License. -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <artifactId>org.apache.sling.cms</artifactId>
-        <groupId>org.apache.sling</groupId>
-        <version>1.0.5-SNAPSHOT</version>
-    </parent>
-    <artifactId>org.apache.sling.cms.transformer</artifactId>
-    <name>Apache Sling - Transformer</name>
-    <description>An API and Service for creating and transforming images and documents into thumbnails</description>
-
-    <properties>
-        <sling.java.version>8</sling.java.version>
-    </properties>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>biz.aQute.bnd</groupId>
-                <artifactId>bnd-maven-plugin</artifactId>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <source>8</source>
-                    <target>8</target>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.rat</groupId>
-                <artifactId>apache-rat-plugin</artifactId>
-                <configuration>
-                    <excludes>
-                        <!-- Used by maven-remote-resources-plugin -->
-                        <exclude>src/main/appended-resources/META-INF/*</exclude>
-                        <!-- Generated by maven-remote-resources-plugin -->
-                        <exclude>velocity.log</exclude>
-                        <!-- don't check anything in target -->
-                        <exclude>target/*</exclude>
-                        <!-- for some reason Rat doesn't seem to pick up that PPTs are binary -->
-                        <exclude>src/test/resources/*.ppt</exclude>
-                    </excludes>
-                </configuration>
-                <executions>
-                    <execution>
-                        <phase>verify</phase>
-                        <goals>
-                            <goal>check</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-
-    <dependencies>
-
-        <dependency>
-            <groupId>javax.servlet</groupId>
-            <artifactId>servlet-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>org.apache.felix.webconsole</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>osgi.annotation</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.service.component.annotations</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.service.metatype.annotations</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>osgi.core</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>osgi.cmpn</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-        </dependency>
-
-        <!-- Sling Dependencies -->
-        <dependency>
-            <groupId>org.apache.sling</groupId>
-            <artifactId>org.apache.sling.api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.sling</groupId>
-            <artifactId>org.apache.sling.caconfig.api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.sling</groupId>
-            <artifactId>org.apache.sling.cms.api</artifactId>
-            <version>${project.version}</version>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.sling</groupId>
-            <artifactId>org.apache.sling.cms.core</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.sling</groupId>
-            <artifactId>org.apache.sling.event.api</artifactId>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- Utilities -->
-        <dependency>
-            <groupId>commons-io</groupId>
-            <artifactId>commons-io</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.commons</groupId>
-            <artifactId>commons-lang3</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>javax.annotation</groupId>
-            <artifactId>javax.annotation-api</artifactId>
-        </dependency>
-
-        <!-- Document handling -->
-        <dependency>
-            <groupId>net.coobird</groupId>
-            <artifactId>thumbnailator</artifactId>
-        </dependency>
-        <dependency>
-            <artifactId>pdfbox</artifactId>
-            <groupId>org.apache.pdfbox</groupId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.poi</groupId>
-            <artifactId>poi-ooxml</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.poi</groupId>
-            <artifactId>poi-scratchpad</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.tika</groupId>
-            <artifactId>tika-core</artifactId>
-        </dependency>
-
-        <!-- Testing dependencies -->
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.sling</groupId>
-            <artifactId>org.apache.sling.testing.sling-mock.junit4</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.mockito</groupId>
-            <artifactId>mockito-core</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-simple</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>jakarta.xml.bind</groupId>
-            <artifactId>jakarta.xml.bind-api</artifactId>
-            <version>2.3.2</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.glassfish.jaxb</groupId>
-            <artifactId>jaxb-runtime</artifactId>
-            <version>2.3.2</version>
-            <scope>test</scope>
-        </dependency>
-
-    </dependencies>
-</project>
diff --git a/transformer/src/main/java/org/apache/sling/cms/transformer/OutputFileFormat.java b/transformer/src/main/java/org/apache/sling/cms/transformer/OutputFileFormat.java
deleted file mode 100644
index 464d5b3..0000000
--- a/transformer/src/main/java/org/apache/sling/cms/transformer/OutputFileFormat.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (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.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer;
-
-import org.apache.commons.lang3.StringUtils;
-import org.apache.sling.api.SlingHttpServletRequest;
-
-import com.google.common.base.Enums;
-import com.google.common.net.MediaType;
-
-/**
- * Enumeration of the valid output formats for the thumbnail generator.
- */
-public enum OutputFileFormat {
-    GIF(MediaType.GIF.toString()), JPEG(MediaType.JPEG.toString()), PNG(MediaType.PNG.toString());
-
-    /**
-     * Loads the output format requested in the specified request suffix.
-     * 
-     * @param request the current request from which to get the suffix
-     * @return the format for the suffix
-     */
-    public static OutputFileFormat forRequest(SlingHttpServletRequest request) {
-        String suffixExtension = StringUtils.substringAfterLast(request.getRequestPathInfo().getSuffix(), ".")
-                .toUpperCase();
-        return Enums.getIfPresent(OutputFileFormat.class, suffixExtension).or(OutputFileFormat.JPEG);
-    }
-
-    private String mimeType;
-
-    private OutputFileFormat(String mimeType) {
-        this.mimeType = mimeType;
-    }
-
-    public String getMimeType() {
-        return mimeType;
-    }
-}
diff --git a/transformer/src/main/java/org/apache/sling/cms/transformer/ThumbnailProvider.java b/transformer/src/main/java/org/apache/sling/cms/transformer/ThumbnailProvider.java
deleted file mode 100644
index 93a8b18..0000000
--- a/transformer/src/main/java/org/apache/sling/cms/transformer/ThumbnailProvider.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (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.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-import org.apache.sling.api.resource.Resource;
-
-/**
- * Service for retrieving a thumbnail for the specified Resource.
- */
-public interface ThumbnailProvider {
-
-    /**
-     * Returns true if the ThumbnailProvider applies for the specified resource.
-     * 
-     * @param resource the resource to check
-     * @return true if this ThumbnailProvider will create a thumbnail for this
-     *         resource, false otherwise
-     */
-    boolean applies(Resource resource);
-
-    /**
-     * Get the thumbnail from the specified resource.
-     * 
-     * @param resource the resource from which to retrieve the thumbnail
-     * @return the thumbnail
-     * @throws IOException an exception occurs retrieving the thumbnail
-     */
-    InputStream getThumbnail(Resource resource) throws IOException;
-
-}
\ No newline at end of file
diff --git a/transformer/src/main/java/org/apache/sling/cms/transformer/Transformation.java b/transformer/src/main/java/org/apache/sling/cms/transformer/Transformation.java
deleted file mode 100644
index 2058207..0000000
--- a/transformer/src/main/java/org/apache/sling/cms/transformer/Transformation.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (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.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer;
-
-import java.util.List;
-
-import org.apache.sling.api.resource.Resource;
-
-/**
- * Model representing a transformation, a series of handlers
- */
-public interface Transformation {
-
-    String getName();
-
-    List<Resource> getHandlers();
-}
diff --git a/transformer/src/main/java/org/apache/sling/cms/transformer/TransformationHandler.java b/transformer/src/main/java/org/apache/sling/cms/transformer/TransformationHandler.java
deleted file mode 100644
index f8ed7d9..0000000
--- a/transformer/src/main/java/org/apache/sling/cms/transformer/TransformationHandler.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (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.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-import org.apache.sling.api.resource.Resource;
-
-import net.coobird.thumbnailator.Thumbnails.Builder;
-
-/*
- * Transformation handlers handle the transformation of files using the Thumbnails library.
- * Each transformation handler implements a transformation command using the specifed configuration.
- */
-@SuppressWarnings("squid:S1214") // I don't like this rule...
-public interface TransformationHandler {
-
-    public static final String HANDLER_RESOURCE_TYPE = "handler.resourceType";
-
-    /**
-     * Get the resource type associated with this handler
-     * 
-     * @return the handler resource type
-     */
-    String getResourceType();
-
-    /**
-     * Handles the transformation of the file using the command values from the
-     * suffix segment.
-     * 
-     * @param builder the Thumbnails builder to use / update
-     * @param config  the configuration values for the transformation
-     * @throws IOException an exception occurs transforming the file
-     */
-    void handle(Builder<? extends InputStream> builder, Resource config) throws IOException;
-
-}
diff --git a/transformer/src/main/java/org/apache/sling/cms/transformer/TransformationManager.java b/transformer/src/main/java/org/apache/sling/cms/transformer/TransformationManager.java
deleted file mode 100644
index b32457a..0000000
--- a/transformer/src/main/java/org/apache/sling/cms/transformer/TransformationManager.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (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.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer;
-
-import java.util.List;
-
-/**
- * A Sling Model interface for retrieving the transformations available to a
- * particular resource
- */
-public interface TransformationManager {
-
-    /**
-     * Gets the transformations available to a particular resource based on the CA
-     * Configs
-     * 
-     * @return a list of transformations
-     */
-    List<Transformation> getTransformations();
-}
diff --git a/transformer/src/main/java/org/apache/sling/cms/transformer/Transformer.java b/transformer/src/main/java/org/apache/sling/cms/transformer/Transformer.java
deleted file mode 100644
index a7e27ef..0000000
--- a/transformer/src/main/java/org/apache/sling/cms/transformer/Transformer.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (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.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer;
-
-import java.io.IOException;
-import java.io.OutputStream;
-
-import org.apache.sling.api.resource.Resource;
-
-/**
- * Transforms a resource using the registered TransformationHandlers to invoke
- * transformations on the file.
- */
-public interface Transformer {
-
-    /**
-     * Transforms the resource
-     * 
-     * @param resource       the resource to transform
-     * @param transformation the transformation to execute
-     * @param format         the format of the stream to return
-     * @param out            the OutputStream to which to write the transformed file
-     * @throws IOException an exception occurs transforming the resource
-     */
-    void transform(Resource resource, Transformation transformation, OutputFileFormat format, OutputStream out)
-            throws IOException;
-
-}
diff --git a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/CropHandler.java b/transformer/src/main/java/org/apache/sling/cms/transformer/internal/CropHandler.java
deleted file mode 100644
index 573a915..0000000
--- a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/CropHandler.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (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.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer.internal;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-import org.apache.sling.api.resource.Resource;
-import org.apache.sling.cms.transformer.TransformationHandler;
-import org.osgi.service.component.annotations.Component;
-
-import net.coobird.thumbnailator.Thumbnails.Builder;
-import net.coobird.thumbnailator.geometry.Positions;
-
-/**
- * A transformation handler to crop images
- */
-@Component(service = TransformationHandler.class, property = { TransformationHandler.HANDLER_RESOURCE_TYPE
-        + "=sling-cms/components/caconfig/transformationhandlers/crop" }, immediate = true)
-public class CropHandler implements TransformationHandler {
-
-    public static final String PN_POSITION = "position";
-
-    @Override
-    public String getResourceType() {
-        return "sling-cms/components/caconfig/transformationhandlers/crop";
-    }
-
-    @Override
-    public void handle(Builder<? extends InputStream> builder, Resource config) throws IOException {
-        String positionStr = config.getValueMap().get(PN_POSITION, "CENTER").toUpperCase();
-        try {
-            Positions pos = Positions.valueOf(positionStr);
-            builder.crop(pos);
-        } catch (IllegalArgumentException e) {
-            throw new IOException("Unable to load crop position from " + positionStr, e);
-        }
-    }
-
-}
diff --git a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/ImageThumbnailProvider.java b/transformer/src/main/java/org/apache/sling/cms/transformer/internal/ImageThumbnailProvider.java
deleted file mode 100644
index 79fc9bf..0000000
--- a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/ImageThumbnailProvider.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (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.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer.internal;
-
-import java.io.InputStream;
-import java.util.Optional;
-
-import org.apache.jackrabbit.JcrConstants;
-import org.apache.sling.api.resource.Resource;
-import org.apache.sling.cms.CMSConstants;
-import org.apache.sling.cms.File;
-import org.apache.sling.cms.transformer.ThumbnailProvider;
-import org.osgi.service.component.annotations.Component;
-
-import com.google.common.net.MediaType;
-
-/**
- * A thumbnail provider for image files.
- */
-@Component(service = ThumbnailProvider.class, immediate = true)
-public class ImageThumbnailProvider implements ThumbnailProvider {
-
-    @Override
-    public boolean applies(Resource resource) {
-        return (CMSConstants.NT_FILE.equals(resource.getResourceType())
-                || JcrConstants.NT_FILE.equals(resource.getResourceType()))
-                && Optional.ofNullable(resource.adaptTo(File.class))
-                        .map(f -> MediaType.parse(f.getContentType()).is(MediaType.ANY_IMAGE_TYPE)).orElse(false);
-    }
-
-    @Override
-    public InputStream getThumbnail(Resource resource) {
-        return resource.adaptTo(InputStream.class);
-    }
-
-}
diff --git a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/PdfThumbnailProvider.java b/transformer/src/main/java/org/apache/sling/cms/transformer/internal/PdfThumbnailProvider.java
deleted file mode 100644
index 0230da9..0000000
--- a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/PdfThumbnailProvider.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (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.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer.internal;
-
-import java.awt.image.BufferedImage;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Optional;
-
-import javax.imageio.ImageIO;
-
-import org.apache.jackrabbit.JcrConstants;
-import org.apache.pdfbox.pdmodel.PDDocument;
-import org.apache.pdfbox.rendering.ImageType;
-import org.apache.pdfbox.rendering.PDFRenderer;
-import org.apache.sling.api.resource.Resource;
-import org.apache.sling.cms.CMSConstants;
-import org.apache.sling.cms.File;
-import org.apache.sling.cms.transformer.ThumbnailProvider;
-import org.osgi.service.component.annotations.Component;
-
-import com.google.common.net.MediaType;
-
-/**
- * A thumbnail provider for PDF documents.
- */
-@Component(service = ThumbnailProvider.class, immediate = true)
-public class PdfThumbnailProvider implements ThumbnailProvider {
-
-    @Override
-    public boolean applies(Resource resource) {
-        return (CMSConstants.NT_FILE.equals(resource.getResourceType())
-                || JcrConstants.NT_FILE.equals(resource.getResourceType()))
-                && Optional.ofNullable(resource.adaptTo(File.class))
-                        .map(r -> MediaType.PDF.is(MediaType.parse(r.getContentType()))).orElse(false);
-    }
-
-    @Override
-    public InputStream getThumbnail(Resource resource) throws IOException {
-        try (PDDocument document = PDDocument.load(resource.adaptTo(InputStream.class))) {
-            PDFRenderer pdfRenderer = new PDFRenderer(document);
-            BufferedImage bim = pdfRenderer.renderImageWithDPI(0, 300, ImageType.RGB);
-            ByteArrayOutputStream os = new ByteArrayOutputStream();
-            ImageIO.write(bim, "jpeg", os);
-            return new ByteArrayInputStream(os.toByteArray());
-        }
-    }
-}
diff --git a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/SizeHandler.java b/transformer/src/main/java/org/apache/sling/cms/transformer/internal/SizeHandler.java
deleted file mode 100644
index 79bd276..0000000
--- a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/SizeHandler.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (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.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer.internal;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-import org.apache.sling.api.resource.Resource;
-import org.apache.sling.cms.transformer.TransformationHandler;
-import org.osgi.service.component.annotations.Component;
-
-import net.coobird.thumbnailator.Thumbnails.Builder;
-
-/**
- * A transformer for resizing an image
- */
-@Component(service = TransformationHandler.class, property = { TransformationHandler.HANDLER_RESOURCE_TYPE
-        + "=sling-cms/components/caconfig/transformationhandlers/size" }, immediate = true)
-public class SizeHandler implements TransformationHandler {
-
-    public static final String PN_HEIGHT = "height";
-    public static final String PN_WIDTH = "width";
-
-    @Override
-    public String getResourceType() {
-        return "sling-cms/components/caconfig/transformationhandlers/size";
-    }
-
-    @Override
-    public void handle(Builder<? extends InputStream> builder, Resource config) throws IOException {
-        int width = config.getValueMap().get(PN_WIDTH, -1);
-        int height = config.getValueMap().get(PN_HEIGHT, -1);
-        builder.size(width, height);
-    }
-
-}
diff --git a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/SlideShowThumbnailProvider.java b/transformer/src/main/java/org/apache/sling/cms/transformer/internal/SlideShowThumbnailProvider.java
deleted file mode 100644
index e87371b..0000000
--- a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/SlideShowThumbnailProvider.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (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.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer.internal;
-
-import java.awt.Color;
-import java.awt.Dimension;
-import java.awt.Graphics2D;
-import java.awt.geom.Rectangle2D;
-import java.awt.image.BufferedImage;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.List;
-import java.util.Optional;
-
-import javax.imageio.ImageIO;
-
-import org.apache.commons.io.output.ByteArrayOutputStream;
-import org.apache.jackrabbit.JcrConstants;
-import org.apache.poi.hslf.usermodel.HSLFSlideShow;
-import org.apache.poi.sl.usermodel.Slide;
-import org.apache.poi.sl.usermodel.SlideShow;
-import org.apache.poi.xslf.usermodel.XMLSlideShow;
-import org.apache.sling.api.resource.Resource;
-import org.apache.sling.cms.CMSConstants;
-import org.apache.sling.cms.File;
-import org.apache.sling.cms.transformer.OutputFileFormat;
-import org.apache.sling.cms.transformer.ThumbnailProvider;
-import org.apache.sling.commons.classloader.DynamicClassLoaderManager;
-import org.osgi.service.component.annotations.Component;
-import org.osgi.service.component.annotations.Reference;
-
-import com.google.common.net.MediaType;
-
-/**
- * Provides Thumbnails for Microsoft PPT and PPTX files.
- */
-@Component(service = ThumbnailProvider.class, immediate = true)
-public class SlideShowThumbnailProvider implements ThumbnailProvider {
-
-    @Reference
-    private DynamicClassLoaderManager dclm;
-
-    @Override
-    public boolean applies(Resource resource) {
-        return (CMSConstants.NT_FILE.equals(resource.getResourceType())
-                || JcrConstants.NT_FILE.equals(resource.getResourceType()))
-                && Optional.ofNullable(resource.adaptTo(File.class)).map(f -> {
-                    MediaType mt = MediaType.parse(f.getContentType());
-                    return mt.is(MediaType.MICROSOFT_POWERPOINT) || mt.is(MediaType.OOXML_PRESENTATION);
-                }).orElse(false);
-    }
-
-    @Override
-    public InputStream getThumbnail(Resource resource) throws IOException {
-        if (dclm != null) {
-            Thread.currentThread().setContextClassLoader(dclm.getDynamicClassLoader());
-        }
-
-        SlideShow<?, ?> ppt = null;
-        MediaType mt = MediaType.parse(resource.adaptTo(File.class).getContentType());
-        try (ByteArrayOutputStream baos = new ByteArrayOutputStream();
-                InputStream is = resource.adaptTo(InputStream.class)) {
-            if (mt.is(MediaType.MICROSOFT_POWERPOINT)) {
-                ppt = new HSLFSlideShow(is);
-            } else {
-                ppt = new XMLSlideShow(is);
-            }
-            Dimension dim = ppt.getPageSize();
-            List<? extends Slide<?, ?>> slides = ppt.getSlides();
-
-            BufferedImage img = new BufferedImage(dim.width, dim.height, BufferedImage.TYPE_INT_RGB);
-            Graphics2D graphics = img.createGraphics();
-            graphics.setPaint(Color.white);
-            graphics.fill(new Rectangle2D.Float(0, 0, dim.width, dim.height));
-
-            if (slides != null && !slides.isEmpty()) {
-                slides.get(0).draw(graphics);
-            }
-
-            ImageIO.write(img, OutputFileFormat.PNG.toString(), baos);
-            return new ByteArrayInputStream(baos.toByteArray());
-        } finally {
-            if (ppt != null) {
-                ppt.close();
-            }
-        }
-    }
-
-}
diff --git a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/TikaFallbackProvider.java b/transformer/src/main/java/org/apache/sling/cms/transformer/internal/TikaFallbackProvider.java
deleted file mode 100644
index bfb2bbb..0000000
--- a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/TikaFallbackProvider.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (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.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer.internal;
-
-import java.awt.Graphics;
-import java.awt.image.BufferedImage;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-
-import javax.imageio.ImageIO;
-import javax.swing.JEditorPane;
-
-import org.apache.jackrabbit.JcrConstants;
-import org.apache.sling.api.resource.Resource;
-import org.apache.sling.cms.CMSConstants;
-import org.apache.sling.cms.transformer.OutputFileFormat;
-import org.apache.sling.cms.transformer.ThumbnailProvider;
-import org.apache.tika.exception.TikaException;
-import org.apache.tika.metadata.Metadata;
-import org.apache.tika.parser.AutoDetectParser;
-import org.apache.tika.parser.ParseContext;
-import org.apache.tika.parser.Parser;
-import org.apache.tika.sax.BodyContentHandler;
-import org.apache.tika.sax.WriteOutContentHandler;
-import org.osgi.framework.Constants;
-import org.osgi.service.component.annotations.Component;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.xml.sax.SAXException;
-
-@Component(service = ThumbnailProvider.class, property = {
-        Constants.SERVICE_RANKING + "=" + Integer.MIN_VALUE }, immediate = true)
-public class TikaFallbackProvider implements ThumbnailProvider {
-
-    private static final Logger log = LoggerFactory.getLogger(TikaFallbackProvider.class);
-
-    @Override
-    public boolean applies(Resource resource) {
-        return (CMSConstants.NT_FILE.equals(resource.getResourceType())
-                || JcrConstants.NT_FILE.equals(resource.getResourceType()));
-    }
-
-    @Override
-    public InputStream getThumbnail(Resource resource) throws IOException {
-
-        log.info("Extracting content thumbnail from {}", resource.getPath());
-        try {
-
-            log.debug("Extracting file contents");
-            String contents = extractContents(resource);
-
-            log.debug("Creating thumbnail of file contents");
-            int width = 500;
-            int height = 500;
-            BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
-            Graphics graphics = image.createGraphics();
-            JEditorPane jep = new JEditorPane("text/html", contents);
-            jep.setSize(width, height);
-            jep.print(graphics);
-
-            ByteArrayOutputStream baos = new ByteArrayOutputStream();
-            ImageIO.write(image, OutputFileFormat.PNG.toString(), baos);
-            return new ByteArrayInputStream(baos.toByteArray());
-        } catch (SAXException | TikaException e) {
-            throw new IOException("Failed to generate thumbnail from " + resource.getPath(), e);
-        }
-    }
-
-    private String extractContents(Resource resource) throws IOException, TikaException, SAXException {
-        InputStream is = resource.adaptTo(InputStream.class);
-        Parser parser = new AutoDetectParser();
-        WriteOutContentHandler woHandler = new WriteOutContentHandler();
-        BodyContentHandler bHandler = new BodyContentHandler(woHandler);
-        
-        Metadata md = new Metadata();
-        ParseContext context = new ParseContext();
-        try {
-            parser.parse(is, bHandler, md, context);
-        } catch (SAXException se) {
-            if (woHandler.isWriteLimitReached(se)) {
-                log.debug("Reached write limit for preview generation");
-            } else {
-                throw se;
-            }
-        }
-        return bHandler.toString();
-    }
-
-}
diff --git a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/TransformServlet.java b/transformer/src/main/java/org/apache/sling/cms/transformer/internal/TransformServlet.java
deleted file mode 100644
index 40c8e86..0000000
--- a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/TransformServlet.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (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.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer.internal;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import javax.jcr.query.Query;
-import javax.servlet.RequestDispatcher;
-import javax.servlet.Servlet;
-import javax.servlet.ServletException;
-
-import org.apache.commons.lang3.StringUtils;
-import org.apache.jackrabbit.JcrConstants;
-import org.apache.poi.util.IOUtils;
-import org.apache.sling.api.SlingHttpServletRequest;
-import org.apache.sling.api.SlingHttpServletResponse;
-import org.apache.sling.api.request.RequestDispatcherOptions;
-import org.apache.sling.api.resource.Resource;
-import org.apache.sling.api.resource.ResourceResolver;
-import org.apache.sling.api.resource.ResourceUtil;
-import org.apache.sling.api.servlets.SlingSafeMethodsServlet;
-import org.apache.sling.cms.CMSConstants;
-import org.apache.sling.cms.transformer.OutputFileFormat;
-import org.apache.sling.cms.transformer.Transformation;
-import org.apache.sling.cms.transformer.Transformer;
-import org.osgi.service.component.annotations.Activate;
-import org.osgi.service.component.annotations.Component;
-import org.osgi.service.component.annotations.Reference;
-import org.osgi.service.metatype.annotations.Designate;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * A servlet to transform images using the FileThumbnailTransformer API. Can be
- * invoked using the syntax:
- * 
- * /content/file/path.jpg.transform/transformation-name.png
- */
-@Component(service = { Servlet.class }, property = { "sling.servlet.extensions=transform",
-        "sling.servlet.resourceTypes=sling:File", "sling.servlet.resourceTypes=nt:file" })
-@Designate(ocd = TransformServletConfig.class)
-public class TransformServlet extends SlingSafeMethodsServlet {
-
-    private static final Logger log = LoggerFactory.getLogger(TransformServlet.class);
-
-    private static final long serialVersionUID = -1513067546618762171L;
-
-    public static final String SERVICE_USER = "sling-cms-transformer";
-
-    private transient TransformationServiceUser transformationServiceUser;
-
-    private transient Transformer transformer;
-    
-    private transient TransformServletConfig config;
-    
-    @Activate
-    public void activate(TransformServletConfig config) {
-        this.config = config;
-    }
-
-    @Override
-    protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response)
-            throws ServletException, IOException {
-        log.trace("doGet");
-
-        String name = StringUtils.substringBeforeLast(request.getRequestPathInfo().getSuffix(), ".");
-        response.setHeader("Content-Disposition", "filename=" + request.getResource().getName());
-        String format = StringUtils.substringAfterLast(request.getRequestPathInfo().getSuffix(), ".");
-        log.debug("Transforming resource: {} with transformation: {} to {}", request.getResource(), name, format);
-        String original = response.getContentType();
-        try (ResourceResolver serviceResolver = transformationServiceUser.getTransformationServiceUser()) {
-            Transformation transformation = findTransformation(serviceResolver, name);
-            if (transformation != null) {
-                response.setContentType(OutputFileFormat.forRequest(request).getMimeType());
-                String expectedPath = "jcr:content/renditions/" + name + "." + format;
-                Resource rendition = request.getResource().getChild(expectedPath);
-                if (rendition != null) {
-                    log.debug("Using existing rendition {}", name);
-                    IOUtils.copy(rendition.adaptTo(InputStream.class), response.getOutputStream());
-                } else {
-                    log.debug("Creating new rendition {}", name);
-                    ByteArrayOutputStream baos = new ByteArrayOutputStream();
-                    transformer.transform(request.getResource(), transformation,
-                            OutputFileFormat.valueOf(format.toUpperCase()), baos);
-                    IOUtils.copy(new ByteArrayInputStream(baos.toByteArray()), response.getOutputStream());
-                    if (CMSConstants.NT_FILE.equals(request.getResource().getResourceType())) {
-                        Resource file = ResourceUtil.getOrCreateResource(serviceResolver,
-                                request.getResource().getPath() + "/" + expectedPath,
-                                Collections.singletonMap(JcrConstants.JCR_PRIMARYTYPE, JcrConstants.NT_FILE),
-                                JcrConstants.NT_UNSTRUCTURED, false);
-                        Map<String, Object> properties = new HashMap<>();
-                        properties.put(JcrConstants.JCR_PRIMARYTYPE, JcrConstants.NT_UNSTRUCTURED);
-                        properties.put(JcrConstants.JCR_DATA, new ByteArrayInputStream(baos.toByteArray()));
-                        ResourceUtil.getOrCreateResource(serviceResolver,
-                                file.getPath() + "/" + JcrConstants.JCR_CONTENT, properties,
-                                JcrConstants.NT_UNSTRUCTURED, true);
-                    }
-
-                }
-            } else {
-                log.error("Exception transforming image: {} with transformation: {}", request.getResource(), name);
-                response.setContentType(original);
-                response.sendError(400, "Could not transform image with transformation: " + name);
-            }
-        } catch (Exception e) {
-            log.error("Exception rendering transformed resource", e);
-            response.setStatus(500);
-            RequestDispatcherOptions op = new RequestDispatcherOptions();
-            op.setReplaceSuffix(config.errorSuffix());
-            op.setReplaceSelectors("transform");
-            RequestDispatcher disp = request.getRequestDispatcher(config.errorResourcePath(), op);
-            disp.forward(request, response);
-        }
-    }
-
-    protected Transformation findTransformation(ResourceResolver serviceResolver, String name) {
-        name = name.substring(1).replace("'", "''");
-        log.debug("Finding transformations with {}", name);
-
-        Iterator<Resource> transformations = serviceResolver.findResources(
-                "SELECT * FROM [nt:unstructured] WHERE (ISDESCENDANTNODE([/conf]) OR ISDESCENDANTNODE([/libs/conf]) OR ISDESCENDANTNODE([/apps/conf])) AND [sling:resourceType]='sling-cms/components/caconfig/transformation' AND [name]='"
-                        + name + "'",
-                Query.JCR_SQL2);
-        if (transformations.hasNext()) {
-            Resource transformation = transformations.next();
-            return transformation.adaptTo(Transformation.class);
-        }
-
-        return null;
-    }
-
-    @Reference
-    public void setTransformationServiceUser(TransformationServiceUser transformationServiceUser) {
-        this.transformationServiceUser = transformationServiceUser;
-    }
-
-    @Reference
-    public void setTransformer(Transformer transformer) {
-        this.transformer = transformer;
-    }
-
-}
diff --git a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/TransformServletConfig.java b/transformer/src/main/java/org/apache/sling/cms/transformer/internal/TransformServletConfig.java
deleted file mode 100644
index ee2d970..0000000
--- a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/TransformServletConfig.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (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.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer.internal;
-
-import org.osgi.service.metatype.annotations.AttributeDefinition;
-import org.osgi.service.metatype.annotations.ObjectClassDefinition;
-
-@ObjectClassDefinition(name = "%transformservlet.name", description = "%transformservlet.description", localization = "OSGI-INF/l10n/bundle")
-public @interface TransformServletConfig {
-
-    @AttributeDefinition(name = "%transformservlet.errorResourcePath.name", description = "%transformservlet.errorResourcePath.description")
-    String errorResourcePath() default "/static/sling-cms/thumbnails/file.png";
-    
-    @AttributeDefinition(name = "%transformservlet.errorSuffix.name", description = "%transformservlet.errorSuffix.description")
-    String errorSuffix() default "/sling-cms-thumbnail.png";
-}
diff --git a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/TransformationServiceUser.java b/transformer/src/main/java/org/apache/sling/cms/transformer/internal/TransformationServiceUser.java
deleted file mode 100644
index 210729c..0000000
--- a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/TransformationServiceUser.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.sling.cms.transformer.internal;
-
-import java.util.Collections;
-
-import org.apache.sling.api.resource.LoginException;
-import org.apache.sling.api.resource.ResourceResolver;
-import org.apache.sling.api.resource.ResourceResolverFactory;
-import org.osgi.service.component.annotations.Component;
-import org.osgi.service.component.annotations.Reference;
-
-/**
- * Service for retrieving the service user
- */
-@Component(service = TransformationServiceUser.class)
-public class TransformationServiceUser {
-
-    public static final String SERVICE_USER = "sling-cms-transformer";
-
-    private ResourceResolverFactory resolverFactory;
-
-    public ResourceResolver getTransformationServiceUser() throws LoginException {
-        return resolverFactory
-                .getServiceResourceResolver(Collections.singletonMap(ResourceResolverFactory.SUBSERVICE, SERVICE_USER));
-    }
-
-    @Reference
-    public void setResolverFactory(ResourceResolverFactory resolverFactory) {
-        this.resolverFactory = resolverFactory;
-    }
-}
diff --git a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/TransformerImpl.java b/transformer/src/main/java/org/apache/sling/cms/transformer/internal/TransformerImpl.java
deleted file mode 100644
index 1fb7477..0000000
--- a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/TransformerImpl.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (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.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer.internal;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.sling.api.resource.Resource;
-import org.apache.sling.cms.transformer.OutputFileFormat;
-import org.apache.sling.cms.transformer.ThumbnailProvider;
-import org.apache.sling.cms.transformer.Transformation;
-import org.apache.sling.cms.transformer.TransformationHandler;
-import org.apache.sling.cms.transformer.Transformer;
-import org.osgi.service.component.annotations.Component;
-import org.osgi.service.component.annotations.Reference;
-import org.osgi.service.component.annotations.ReferenceCardinality;
-import org.osgi.service.component.annotations.ReferencePolicyOption;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.collect.Lists;
-
-import net.coobird.thumbnailator.Thumbnails;
-import net.coobird.thumbnailator.Thumbnails.Builder;
-
-@Component(service = Transformer.class)
-public class TransformerImpl implements Transformer {
-
-    private static final Logger log = LoggerFactory.getLogger(TransformerImpl.class);
-
-    @Reference(cardinality = ReferenceCardinality.AT_LEAST_ONE, policyOption = ReferencePolicyOption.GREEDY)
-    private List<TransformationHandler> handlers;
-
-    @Reference(cardinality = ReferenceCardinality.AT_LEAST_ONE, policyOption = ReferencePolicyOption.GREEDY)
-    private List<ThumbnailProvider> thumbnailProviders;
-
-    public void addThumbnailProvider(ThumbnailProvider thumbnailProvider) {
-        if (thumbnailProviders == null) {
-            thumbnailProviders = new ArrayList<>();
-        }
-        this.thumbnailProviders.add(thumbnailProvider);
-    }
-
-    public void addTransformationHandler(TransformationHandler handler) {
-        if (handlers == null) {
-            handlers = new ArrayList<>();
-        }
-        handlers.add(handler);
-    }
-
-    public List<TransformationHandler> getHandlers() {
-        return handlers;
-    }
-
-    private ThumbnailProvider getThumbnailProvider(Resource resource) throws IOException {
-        return Lists.reverse(thumbnailProviders).stream().filter(tp -> tp.applies(resource)).findFirst()
-                .orElseThrow(() -> new IOException("Unable to find thumbnail provider for: " + resource.getPath()));
-    }
-
-    /**
-     * @return the thumbnailProviders
-     */
-    public List<ThumbnailProvider> getThumbnailProviders() {
-        return thumbnailProviders;
-    }
-
-    public TransformationHandler getTransformationHandler(String resourceType) {
-        return handlers.stream().filter(h -> resourceType.equals(h.getResourceType())).findFirst().orElse(null);
-    }
-
-    @Override
-    public void transform(Resource resource, Transformation transformation, OutputFileFormat format, OutputStream out)
-            throws IOException {
-        ThumbnailProvider provider = getThumbnailProvider(resource);
-        log.debug("Using thumbnail provider {} for resource {}", provider, resource);
-        Builder<? extends InputStream> builder = Thumbnails.of(provider.getThumbnail(resource));
-        for (Resource config : transformation.getHandlers()) {
-            log.debug("Handling command: {}", config);
-            TransformationHandler handler = getTransformationHandler(config.getResourceType());
-            if (handler != null) {
-                log.debug("Invoking handler {} for command {}", handler.getClass().getCanonicalName(),
-                        config.getName());
-                handler.handle(builder, config);
-            } else {
-                log.info("No handler found for: {}", config.getName());
-            }
-        }
-        builder.outputFormat(format.toString());
-        builder.toOutputStream(out);
-
-    }
-
-}
diff --git a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/TransformerWebConsole.java b/transformer/src/main/java/org/apache/sling/cms/transformer/internal/TransformerWebConsole.java
deleted file mode 100644
index 4422894..0000000
--- a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/TransformerWebConsole.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.sling.cms.transformer.internal;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.util.List;
-
-import javax.servlet.Servlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.felix.webconsole.AbstractWebConsolePlugin;
-import org.apache.felix.webconsole.WebConsoleConstants;
-import org.apache.sling.cms.transformer.ThumbnailProvider;
-import org.apache.sling.cms.transformer.TransformationHandler;
-import org.apache.sling.cms.transformer.Transformer;
-import org.osgi.framework.Constants;
-import org.osgi.service.component.annotations.Component;
-import org.osgi.service.component.annotations.Reference;
-
-import com.google.common.collect.Lists;
-
-/**
- * Simple web console plugin for listing out the registered thumbnail providers
- * and transformation handler
- */
-@Component(property = { Constants.SERVICE_DESCRIPTION + "=Web Console Plugin for Apache Sling CMS Transformer",
-        Constants.SERVICE_VENDOR + "=The Apache Software Foundation",
-        WebConsoleConstants.PLUGIN_LABEL + "=" + TransformerWebConsole.CONSOLE_LABEL,
-        WebConsoleConstants.PLUGIN_TITLE + "=" + TransformerWebConsole.CONSOLE_TITLE,
-        WebConsoleConstants.CONFIG_PRINTER_MODES + "=always",
-        WebConsoleConstants.PLUGIN_CATEGORY + "=Status" }, service = { Servlet.class })
-public class TransformerWebConsole extends AbstractWebConsolePlugin {
-
-    private static final long serialVersionUID = 4819043498961127418L;
-    public static final String CONSOLE_LABEL = "slingcms-transformer";
-    public static final String CONSOLE_TITLE = "Sling CMS Transformer";
-
-    @SuppressWarnings({ "squid:S2078", "squid:S2226" }) // ignore since this field is is injected by OSGi
-    @Reference
-    private transient Transformer transformer;
-
-    @Override
-    public String getTitle() {
-        return CONSOLE_TITLE;
-    }
-
-    @Override
-    public String getLabel() {
-        return CONSOLE_LABEL;
-    }
-
-    @Override
-    protected void renderContent(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse)
-            throws IOException {
-        PrintWriter pw = httpServletResponse.getWriter();
-        pw.println("<div id='content' class='ui-widget'><br>");
-        pw.println("<pre>");
-        pw.println("Registered Thumbnail Providers");
-        pw.println("========================");
-        List<ThumbnailProvider> providers = ((TransformerImpl) transformer).getThumbnailProviders();
-        Lists.reverse(providers).forEach(p -> pw.println(p.getClass().getName()));
-        pw.println("</pre><br/>");
-        pw.println("<pre>");
-        pw.println("Registered Transformation Handlers");
-        pw.println("========================");
-
-        List<TransformationHandler> handlers = ((TransformerImpl) transformer).getHandlers();
-        handlers.forEach(h -> pw.println(h.getResourceType() + "=" + h.getClass().getCanonicalName()));
-        pw.println("</pre>");
-        pw.println("</div>");
-    }
-
-}
diff --git a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/models/TransformationImpl.java b/transformer/src/main/java/org/apache/sling/cms/transformer/internal/models/TransformationImpl.java
deleted file mode 100644
index 433ac67..0000000
--- a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/models/TransformationImpl.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (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.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer.internal.models;
-
-import java.util.List;
-
-import org.apache.sling.api.resource.Resource;
-import org.apache.sling.cms.transformer.Transformation;
-import org.apache.sling.models.annotations.Model;
-import org.apache.sling.models.annotations.injectorspecific.ChildResource;
-import org.apache.sling.models.annotations.injectorspecific.ValueMapValue;
-
-@Model(adaptables = Resource.class, adapters = Transformation.class)
-public class TransformationImpl implements Transformation {
-
-    @ChildResource
-    private List<Resource> handlers;
-
-    @ValueMapValue
-    private String name;
-
-    @Override
-    public List<Resource> getHandlers() {
-        return handlers;
-    }
-
-    @Override
-    public String getName() {
-        return name;
-    }
-
-    public void sethandlers(List<Resource> handlers) {
-        this.handlers = handlers;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-}
diff --git a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/models/TransformationManagerImpl.java b/transformer/src/main/java/org/apache/sling/cms/transformer/internal/models/TransformationManagerImpl.java
deleted file mode 100644
index 0458866..0000000
--- a/transformer/src/main/java/org/apache/sling/cms/transformer/internal/models/TransformationManagerImpl.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (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.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer.internal.models;
-
-import java.util.Collection;
-import java.util.List;
-import java.util.stream.Collectors;
-
-import org.apache.sling.api.resource.Resource;
-import org.apache.sling.caconfig.resource.ConfigurationResourceResolver;
-import org.apache.sling.cms.transformer.Transformation;
-import org.apache.sling.cms.transformer.TransformationManager;
-import org.apache.sling.models.annotations.Model;
-import org.apache.sling.models.annotations.injectorspecific.OSGiService;
-
-@Model(adaptables = Resource.class, adapters = TransformationManager.class)
-public class TransformationManagerImpl implements TransformationManager {
-
-    private Resource resource;
-
-    @OSGiService
-    private ConfigurationResourceResolver configResourceResolver;
-
-    public TransformationManagerImpl(Resource resource) {
-        this.resource = resource;
-    }
-
-    @Override
-    public List<Transformation> getTransformations() {
-        Collection<Resource> transformationResources = configResourceResolver.getResourceCollection(resource, "files",
-                "transformations");
-        return transformationResources.stream().map(r -> r.adaptTo(Transformation.class)).collect(Collectors.toList());
-    }
-
-}
diff --git a/transformer/src/main/java/org/apache/sling/cms/transformer/package-info.java b/transformer/src/main/java/org/apache/sling/cms/transformer/package-info.java
deleted file mode 100644
index 0594c64..0000000
--- a/transformer/src/main/java/org/apache/sling/cms/transformer/package-info.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * Package with all of the common models used to access content in the Sling
- * reference CMS
- *
- * @since 0.10.0
- */
-@org.osgi.annotation.versioning.Version("1.0.0")
-package org.apache.sling.cms.transformer;
diff --git a/transformer/src/main/resources/OSGI-INF/l10n/bundle.properties b/transformer/src/main/resources/OSGI-INF/l10n/bundle.properties
deleted file mode 100644
index 8e4e008..0000000
--- a/transformer/src/main/resources/OSGI-INF/l10n/bundle.properties
+++ /dev/null
@@ -1,35 +0,0 @@
-#
-#  Licensed to the Apache Software Foundation (ASF) under one
-#  or more contributor license agreements.  See the NOTICE file
-#  distributed with this work for additional information
-#  regarding copyright ownership.  The ASF licenses this file
-#  to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
-#
-#  Unless required by applicable law or agreed to in writing,
-#  software distributed under the License is distributed on an
-#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#  KIND, either express or implied.  See the License for the
-#  specific language governing permissions and limitations
-#  under the License.
-#
-
-#
-# This file contains localization strings for configuration labels and
-# descriptions as used in the metatype.xml descriptor generated by the
-# the Sling SCR plugin
-
-## Transformation Servlet Entries
-transformservlet.name=Apache Sling CMS - Transform Servlet
-transformservlet.description=Servlet for transforming files into image renditions
-
-transformservlet.errorResourcePath.name=Error Resource Path
-transformservlet.errorResourcePath.name.description=The path of the resource to forward \
-if an error occurs transforming the provided resource
-
-transformservlet.errorSuffix.name=Error Suffix
-transformservlet.errorSuffix.name.description=The suffix to forward to \
-if an error occurs transforming the provided resource
diff --git a/transformer/src/test/java/org/apache/sling/cms/transformer/helpers/SlingCMSContextHelper.java b/transformer/src/test/java/org/apache/sling/cms/transformer/helpers/SlingCMSContextHelper.java
deleted file mode 100644
index a0acb90..0000000
--- a/transformer/src/test/java/org/apache/sling/cms/transformer/helpers/SlingCMSContextHelper.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (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.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer.helpers;
-
-import java.io.InputStream;
-import java.util.function.Function;
-
-import org.apache.sling.api.resource.Resource;
-import org.apache.sling.testing.mock.sling.junit.SlingContext;
-
-public class SlingCMSContextHelper {
-
-    public static final void initContext(SlingContext context) {
-        context.addModelsForPackage("org.apache.sling.cms.core.internal.models");
-        context.addModelsForPackage("org.apache.sling.cms.core.models");
-
-        context.load().json("/content.json", "/content");
-        context.load().binaryResource("/apache.png", "/content/apache/sling-apache-org/index/apache.png/jcr:content");
-        context.load().binaryResource("/sling.pdf", "/content/apache/sling-apache-org/index/sling.pdf/jcr:content");
-        context.load().binaryResource("/Sling.docx", "/content/apache/sling-apache-org/index/Sling.docx/jcr:content");
-        context.load().binaryResource("/Sling.pptx", "/content/apache/sling-apache-org/index/Sling.pptx/jcr:content");
-        context.load().binaryResource("/Sling.ppt", "/content/apache/sling-apache-org/index/Sling.ppt/jcr:content");
-        context.load().binaryResource("/editor.min.css", "/content/apache/sling-apache-org/index/editor.min.css/jcr:content");
-
-        context.registerAdapter(Resource.class, InputStream.class, new Function<Resource, InputStream>() {
-            public InputStream apply(Resource input) {
-                return input.getValueMap().get("jcr:content/jcr:data", InputStream.class);
-            }
-        });
-
-    }
-}
diff --git a/transformer/src/test/java/org/apache/sling/cms/transformer/internal/CropHandlerTest.java b/transformer/src/test/java/org/apache/sling/cms/transformer/internal/CropHandlerTest.java
deleted file mode 100644
index 7f043ce..0000000
--- a/transformer/src/test/java/org/apache/sling/cms/transformer/internal/CropHandlerTest.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (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.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer.internal;
-
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.fail;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Collections;
-
-import org.apache.sling.api.resource.Resource;
-import org.apache.sling.api.resource.ResourceResolver;
-import org.apache.sling.testing.resourceresolver.MockResource;
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.Mockito;
-
-import net.coobird.thumbnailator.Thumbnails;
-import net.coobird.thumbnailator.Thumbnails.Builder;
-
-public class CropHandlerTest {
-
-    private Builder<? extends InputStream> builder;
-    private CropHandler cropper;
-
-    @Before
-    public void init() {
-        builder = Thumbnails.of(getClass().getClassLoader().getResourceAsStream("apache.png"));
-        builder.size(200, 200);
-        cropper = new CropHandler();
-    }
-
-    @Test
-    public void testCrop() throws IOException {
-        Resource config = new MockResource("/conf", Collections.singletonMap(CropHandler.PN_POSITION, "CENTER"),
-                Mockito.mock(ResourceResolver.class));
-        cropper.handle(builder, config);
-        assertNotNull(builder.asBufferedImage());
-    }
-
-    @Test
-    public void testCropLower() throws IOException {
-
-        Resource config = new MockResource("/conf", Collections.singletonMap(CropHandler.PN_POSITION, "center"),
-                Mockito.mock(ResourceResolver.class));
-        cropper.handle(builder, config);
-        assertNotNull(builder.asBufferedImage());
-    }
-
-    @Test
-    public void testInvalidParam() throws IOException {
-        try {
-
-            Resource config = new MockResource("/conf", Collections.singletonMap(CropHandler.PN_POSITION, "centerz"),
-                    Mockito.mock(ResourceResolver.class));
-            cropper.handle(builder, config);
-            fail();
-        } catch (IOException e) {
-        }
-    }
-
-}
diff --git a/transformer/src/test/java/org/apache/sling/cms/transformer/internal/ImageThumbnailProviderTest.java b/transformer/src/test/java/org/apache/sling/cms/transformer/internal/ImageThumbnailProviderTest.java
deleted file mode 100644
index 05e85c6..0000000
--- a/transformer/src/test/java/org/apache/sling/cms/transformer/internal/ImageThumbnailProviderTest.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (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.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer.internal;
-
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.io.IOException;
-
-import org.apache.commons.io.IOUtils;
-import org.apache.sling.api.resource.Resource;
-import org.apache.sling.cms.transformer.helpers.SlingCMSContextHelper;
-import org.apache.sling.testing.mock.sling.junit.SlingContext;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class ImageThumbnailProviderTest {
-
-    private static final Logger log = LoggerFactory.getLogger(ImageThumbnailProviderTest.class);
-
-    @Rule
-    public final SlingContext context = new SlingContext();
-
-    private Resource imageFile;
-    private Resource pdfFile;
-
-    @Before
-    public void init() {
-        SlingCMSContextHelper.initContext(context);
-
-        imageFile = context.resourceResolver().getResource("/content/apache/sling-apache-org/index/apache.png");
-
-        pdfFile = context.resourceResolver().getResource("/content/apache/sling-apache-org/index/sling.pdf");
-    }
-
-    @Test
-    public void testContentTypes() throws IOException {
-        log.info("testContentTypes");
-        ImageThumbnailProvider itp = new ImageThumbnailProvider();
-
-        assertTrue(itp.applies(imageFile));
-        assertFalse(itp.applies(pdfFile));
-    }
-
-    @Test
-    public void testImageThumbnailProvider() throws IOException {
-        log.info("testImageThumbnailProvider");
-        ImageThumbnailProvider itp = new ImageThumbnailProvider();
-
-        assertNotNull(itp.getThumbnail(imageFile));
-        assertArrayEquals(IOUtils.toByteArray(getClass().getClassLoader().getResourceAsStream("apache.png")),
-                IOUtils.toByteArray(itp.getThumbnail(imageFile)));
-    }
-
-}
diff --git a/transformer/src/test/java/org/apache/sling/cms/transformer/internal/PdfThumbnailProviderTest.java b/transformer/src/test/java/org/apache/sling/cms/transformer/internal/PdfThumbnailProviderTest.java
deleted file mode 100644
index 2bf6f4a..0000000
--- a/transformer/src/test/java/org/apache/sling/cms/transformer/internal/PdfThumbnailProviderTest.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (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.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer.internal;
-
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.io.IOException;
-
-import org.apache.sling.api.resource.Resource;
-import org.apache.sling.cms.transformer.helpers.SlingCMSContextHelper;
-import org.apache.sling.testing.mock.sling.junit.SlingContext;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class PdfThumbnailProviderTest {
-
-    private static final Logger log = LoggerFactory.getLogger(PdfThumbnailProviderTest.class);
-
-    @Rule
-    public final SlingContext context = new SlingContext();
-
-    private Resource imageFile;
-    private Resource pdfFile;
-
-    @Before
-    public void init() {
-        SlingCMSContextHelper.initContext(context);
-        imageFile = context.resourceResolver().getResource("/content/apache/sling-apache-org/index/apache.png");
-        pdfFile = context.resourceResolver().getResource("/content/apache/sling-apache-org/index/sling.pdf");
-    }
-
-    @Test
-    public void testContentTypes() throws IOException {
-        log.info("testContentTypes");
-        PdfThumbnailProvider ptp = new PdfThumbnailProvider();
-        assertFalse(ptp.applies(imageFile));
-        assertTrue(ptp.applies(pdfFile));
-    }
-
-    @Test
-    public void testPDFThumbnailProvider() throws IOException {
-        log.info("testPDFThumbnailProvider");
-        PdfThumbnailProvider ptp = new PdfThumbnailProvider();
-        assertNotNull(ptp.getThumbnail(pdfFile));
-    }
-
-}
diff --git a/transformer/src/test/java/org/apache/sling/cms/transformer/internal/SizeHandlerTest.java b/transformer/src/test/java/org/apache/sling/cms/transformer/internal/SizeHandlerTest.java
deleted file mode 100644
index 55e2d51..0000000
--- a/transformer/src/test/java/org/apache/sling/cms/transformer/internal/SizeHandlerTest.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (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.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer.internal;
-
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.fail;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.sling.api.resource.ResourceResolver;
-import org.apache.sling.testing.resourceresolver.MockResource;
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.Mockito;
-
-import net.coobird.thumbnailator.Thumbnails;
-import net.coobird.thumbnailator.Thumbnails.Builder;
-
-public class SizeHandlerTest {
-
-    private Builder<? extends InputStream> builder;
-    private SizeHandler sizer;
-
-    @Before
-    public void init() {
-        builder = Thumbnails.of(getClass().getClassLoader().getResourceAsStream("apache.png"));
-        sizer = new SizeHandler();
-    }
-
-    @Test
-    public void testResize() throws IOException {
-
-        Map<String, Object> config = new HashMap<>();
-        config.put(SizeHandler.PN_WIDTH, 200);
-        config.put(SizeHandler.PN_HEIGHT, 200);
-        sizer.handle(builder, new MockResource("/conf", config, Mockito.mock(ResourceResolver.class)));
-        assertNotNull(builder.asBufferedImage());
-    }
-
-    @Test
-    public void testInvalidWidth() throws IOException {
-        try {
-            Map<String, Object> config = new HashMap<>();
-            config.put(SizeHandler.PN_WIDTH, "K");
-            config.put(SizeHandler.PN_HEIGHT, 200);
-            sizer.handle(builder, new MockResource("/conf", config, Mockito.mock(ResourceResolver.class)));
-            fail();
-        } catch (IOException | IllegalArgumentException e) {
-        }
-    }
-
-    @Test
-    public void testInvalidHeight() throws IOException {
-        try {
-            Map<String, Object> config = new HashMap<>();
-            config.put(SizeHandler.PN_WIDTH, 200);
-            config.put(SizeHandler.PN_HEIGHT, "h");
-            sizer.handle(builder, new MockResource("/conf", config, Mockito.mock(ResourceResolver.class)));
-            fail();
-        } catch (IOException | IllegalArgumentException e) {
-        }
-    }
-
-}
diff --git a/transformer/src/test/java/org/apache/sling/cms/transformer/internal/SlideShowThumbnailProviderTest.java b/transformer/src/test/java/org/apache/sling/cms/transformer/internal/SlideShowThumbnailProviderTest.java
deleted file mode 100644
index e4a059b..0000000
--- a/transformer/src/test/java/org/apache/sling/cms/transformer/internal/SlideShowThumbnailProviderTest.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (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.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer.internal;
-
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.io.IOException;
-
-import org.apache.sling.api.resource.Resource;
-import org.apache.sling.cms.transformer.ThumbnailProvider;
-import org.apache.sling.cms.transformer.helpers.SlingCMSContextHelper;
-import org.apache.sling.testing.mock.sling.junit.SlingContext;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class SlideShowThumbnailProviderTest {
-
-    private static final Logger log = LoggerFactory.getLogger(SlideShowThumbnailProviderTest.class);
-
-    @Rule
-    public final SlingContext context = new SlingContext();
-
-    private Resource docxFile;
-    private Resource pptFile;
-    private Resource pptxFile;
-
-    private ThumbnailProvider provider;
-
-    @Before
-    public void init() {
-        SlingCMSContextHelper.initContext(context);
-        docxFile = context.resourceResolver().getResource("/content/apache/sling-apache-org/index/Sling.docx");
-        pptxFile = context.resourceResolver().getResource("/content/apache/sling-apache-org/index/Sling.pptx");
-        pptFile = context.resourceResolver().getResource("/content/apache/sling-apache-org/index/Sling.ppt");
-        provider = new SlideShowThumbnailProvider();
-    }
-
-    @Test
-    public void testApplies() throws IOException {
-        log.info("testApplies");
-        assertTrue(provider.applies(pptxFile));
-        assertTrue(provider.applies(pptFile));
-        assertFalse(provider.applies(docxFile));
-    }
-
-    @Test
-    public void testGetThumbnail() throws IOException {
-        log.info("testGetThumbnail");
-        assertNotNull(provider.getThumbnail(pptxFile));
-        assertNotNull(provider.getThumbnail(pptFile));
-    }
-
-}
diff --git a/transformer/src/test/java/org/apache/sling/cms/transformer/internal/TikaFallbackProviderTest.java b/transformer/src/test/java/org/apache/sling/cms/transformer/internal/TikaFallbackProviderTest.java
deleted file mode 100644
index 73330c4..0000000
--- a/transformer/src/test/java/org/apache/sling/cms/transformer/internal/TikaFallbackProviderTest.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (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.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer.internal;
-
-import static org.junit.Assert.assertNotNull;
-
-import java.io.IOException;
-
-import org.apache.sling.api.resource.Resource;
-import org.apache.sling.cms.transformer.helpers.SlingCMSContextHelper;
-import org.apache.sling.testing.mock.sling.junit.SlingContext;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class TikaFallbackProviderTest {
-
-    private static final Logger log = LoggerFactory.getLogger(TikaFallbackProviderTest.class);
-
-    @Rule
-    public final SlingContext context = new SlingContext();
-
-    private Resource docxFile;
-
-    private Resource largeFile;
-
-    @Before
-    public void init() {
-        SlingCMSContextHelper.initContext(context);
-        docxFile = context.resourceResolver().getResource("/content/apache/sling-apache-org/index/Sling.docx");
-        largeFile = context.resourceResolver().getResource("/content/apache/sling-apache-org/index/editor.min.css");
-    }
-
-    @Test
-    public void testTikaProvider() throws IOException {
-        log.info("testTikaProvider");
-        TikaFallbackProvider tfp = new TikaFallbackProvider();
-        assertNotNull(tfp.getThumbnail(docxFile));
-    }
-
-
-    @Test
-    public void testLargeFile() throws IOException {
-        log.info("testLargeFile");
-        TikaFallbackProvider tfp = new TikaFallbackProvider();
-        assertNotNull(tfp.getThumbnail(largeFile));
-    }
-
-}
diff --git a/transformer/src/test/java/org/apache/sling/cms/transformer/internal/TransformServletTest.java b/transformer/src/test/java/org/apache/sling/cms/transformer/internal/TransformServletTest.java
deleted file mode 100644
index 11999f2..0000000
--- a/transformer/src/test/java/org/apache/sling/cms/transformer/internal/TransformServletTest.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (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.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer.internal;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.servlet.ServletException;
-
-import org.apache.sling.api.resource.LoginException;
-import org.apache.sling.api.resource.Resource;
-import org.apache.sling.api.resource.ResourceResolver;
-import org.apache.sling.api.resource.ResourceResolverFactory;
-import org.apache.sling.cms.transformer.helpers.SlingCMSContextHelper;
-import org.apache.sling.cms.transformer.internal.models.TransformationImpl;
-import org.apache.sling.testing.mock.sling.junit.SlingContext;
-import org.apache.sling.testing.resourceresolver.MockResource;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.mockito.Mockito;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class TransformServletTest {
-
-    private static final Logger log = LoggerFactory.getLogger(TransformServletTest.class);
-
-    private TransformServlet ts = new TransformServlet();
-
-    @Rule
-    public final SlingContext context = new SlingContext();
-
-    @Before
-    public void init() throws IllegalAccessException, LoginException {
-        SlingCMSContextHelper.initContext(context);
-
-        ResourceResolverFactory factory = Mockito.mock(ResourceResolverFactory.class);
-        ResourceResolver resolver = Mockito.mock(ResourceResolver.class);
-
-        TransformationImpl transformation = new TransformationImpl();
-        List<Resource> handlers = new ArrayList<>();
-        Map<String, Object> size = new HashMap<>();
-        size.put(SizeHandler.PN_WIDTH, 200);
-        size.put(SizeHandler.PN_HEIGHT, 200);
-        size.put(ResourceResolver.PROPERTY_RESOURCE_TYPE, "sling-cms/components/caconfig/transformationhandlers/size");
-        handlers.add(new MockResource("/conf", size, Mockito.mock(ResourceResolver.class)));
-
-        Map<String, Object> crop = new HashMap<>();
-        crop.put(CropHandler.PN_POSITION, "center");
-        crop.put(ResourceResolver.PROPERTY_RESOURCE_TYPE, "sling-cms/components/caconfig/transformationhandlers/crop");
-        handlers.add(new MockResource("/conf", crop, Mockito.mock(ResourceResolver.class)));
-
-        transformation.sethandlers(handlers);
-
-        Mockito.when(resolver.findResources(Mockito.anyString(), Mockito.anyString())).thenAnswer((ans) -> {
-            List<Resource> resources = new ArrayList<>();
-            if (ans.getArgument(0, String.class).contains("test'")) {
-                Resource resource = Mockito.mock(Resource.class);
-                Mockito.when(resource.adaptTo(Mockito.any())).thenReturn(transformation);
-                resources.add(resource);
-            }
-            return resources.iterator();
-        });
-
-        Mockito.when(factory.getServiceResourceResolver(Mockito.any())).thenReturn(resolver);
-        TransformationServiceUser tsu = new TransformationServiceUser();
-        tsu.setResolverFactory(factory);
-        ts.setTransformationServiceUser(tsu);
-
-        TransformerImpl transformer = new TransformerImpl();
-        ((TransformerImpl) transformer).addTransformationHandler(new CropHandler() {
-            public String getResourceType() {
-                return "sling-cms/components/caconfig/transformationhandlers/crop";
-            }
-        });
-        ((TransformerImpl) transformer).addTransformationHandler(new SizeHandler() {
-            public String getResourceType() {
-                return "sling-cms/components/caconfig/transformationhandlers/size";
-            }
-        });
-
-        ((TransformerImpl) transformer).addThumbnailProvider(new ImageThumbnailProvider());
-        ((TransformerImpl) transformer).addThumbnailProvider(new PdfThumbnailProvider());
-
-        ts.setTransformer(transformer);
-
-    }
-
-    @Test
-    public void testValid() throws IOException, ServletException {
-        log.info("testContentTypes");
-
-        context.currentResource("/content/apache/sling-apache-org/index/apache.png");
-        context.requestPathInfo().setSuffix("/test.png");
-        context.requestPathInfo().setExtension("transform");
-
-        ts.doGet(context.request(), context.response());
-
-        assertNotNull(context.response().getOutput());
-    }
-
-    @Test
-    public void testInvalid() throws IOException, ServletException {
-        log.info("testContentTypes");
-
-        context.currentResource("/content/apache/sling-apache-org/index/apache.png");
-        context.requestPathInfo().setSuffix("/test2.png");
-        context.requestPathInfo().setExtension("transform");
-
-        ts.doGet(context.request(), context.response());
-
-        assertEquals(400, context.response().getStatus());
-    }
-
-}
diff --git a/transformer/src/test/java/org/apache/sling/cms/transformer/internal/TransformerImplTest.java b/transformer/src/test/java/org/apache/sling/cms/transformer/internal/TransformerImplTest.java
deleted file mode 100644
index aa6b4d3..0000000
--- a/transformer/src/test/java/org/apache/sling/cms/transformer/internal/TransformerImplTest.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (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.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sling.cms.transformer.internal;
-
-import static org.junit.Assert.assertNotNull;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.poi.util.IOUtils;
-import org.apache.sling.api.resource.Resource;
-import org.apache.sling.api.resource.ResourceResolver;
-import org.apache.sling.cms.transformer.OutputFileFormat;
-import org.apache.sling.cms.transformer.Transformer;
-import org.apache.sling.cms.transformer.helpers.SlingCMSContextHelper;
-import org.apache.sling.cms.transformer.internal.models.TransformationImpl;
-import org.apache.sling.testing.mock.sling.junit.SlingContext;
-import org.apache.sling.testing.resourceresolver.MockResource;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.mockito.Mockito;
-
-public class TransformerImplTest {
-    @Rule
-    public final SlingContext context = new SlingContext();
-    private Transformer transformer;
-
-    @Before
-    public void init() {
-        SlingCMSContextHelper.initContext(context);
-        transformer = new TransformerImpl();
-
-        ((TransformerImpl) transformer).addTransformationHandler(new CropHandler() {
-            public String getResourceType() {
-                return "sling-cms/components/caconfig/transformationhandlers/crop";
-            }
-        });
-        ((TransformerImpl) transformer).addTransformationHandler(new SizeHandler() {
-            public String getResourceType() {
-                return "sling-cms/components/caconfig/transformationhandlers/size";
-            }
-        });
-
-        ((TransformerImpl) transformer).addThumbnailProvider(new ImageThumbnailProvider());
-        ((TransformerImpl) transformer).addThumbnailProvider(new PdfThumbnailProvider());
-    }
-
-    @Test
-    public void testImageThumbnail() throws IOException {
-        context.currentResource("/content/apache/sling-apache-org/index/apache.png");
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        TransformationImpl transformation = new TransformationImpl();
-        List<Resource> handlers = new ArrayList<>();
-
-        Map<String, Object> size = new HashMap<>();
-        size.put(SizeHandler.PN_WIDTH, 200);
-        size.put(SizeHandler.PN_HEIGHT, 200);
-        size.put(ResourceResolver.PROPERTY_RESOURCE_TYPE, "sling-cms/components/caconfig/transformationhandlers/size");
-        handlers.add(new MockResource("/conf", size, Mockito.mock(ResourceResolver.class)));
-
-        Map<String, Object> crop = new HashMap<>();
-        crop.put(CropHandler.PN_POSITION, "center");
-        crop.put(ResourceResolver.PROPERTY_RESOURCE_TYPE, "sling-cms/components/caconfig/transformationhandlers/crop");
-        handlers.add(new MockResource("/conf", crop, Mockito.mock(ResourceResolver.class)));
-
-        transformation.sethandlers(handlers);
-        transformer.transform(context.currentResource(), transformation, OutputFileFormat.PNG, baos);
-        assertNotNull(baos);
-
-        IOUtils.copy(new ByteArrayInputStream(baos.toByteArray()), new File("src/test/resources/thumbnail.png"));
-    }
-
-}
diff --git a/transformer/src/test/resources/Sling.docx b/transformer/src/test/resources/Sling.docx
deleted file mode 100644
index 73fba2a..0000000
--- a/transformer/src/test/resources/Sling.docx
+++ /dev/null
Binary files differ
diff --git a/transformer/src/test/resources/Sling.ppt b/transformer/src/test/resources/Sling.ppt
deleted file mode 100644
index 0e9a6d3..0000000
--- a/transformer/src/test/resources/Sling.ppt
+++ /dev/null
Binary files differ
diff --git a/transformer/src/test/resources/Sling.pptx b/transformer/src/test/resources/Sling.pptx
deleted file mode 100644
index 8ed0a34..0000000
--- a/transformer/src/test/resources/Sling.pptx
+++ /dev/null
Binary files differ
diff --git a/transformer/src/test/resources/apache.png b/transformer/src/test/resources/apache.png
deleted file mode 100644
index fc3f667..0000000
--- a/transformer/src/test/resources/apache.png
+++ /dev/null
Binary files differ
diff --git a/transformer/src/test/resources/content.json b/transformer/src/test/resources/content.json
deleted file mode 100644
index 3591ef7..0000000
--- a/transformer/src/test/resources/content.json
+++ /dev/null
@@ -1,115 +0,0 @@
-{
-    "jcr:primaryType": "sling:OrderedFolder",
-    "jcr:mixinTypes": [
-        "rep:AccessControllable"
-    ],
-    "jcr:createdBy": "admin",
-    "jcr:created": "Wed May 15 2019 12:39:57 GMT-0400",
-    "rep:policy": {
-        "jcr:primaryType": "rep:ACL",
-        "allow": {
-            "jcr:primaryType": "rep:GrantACE",
-            "rep:principalName": "authors",
-            "rep:privileges": [
-                "jcr:versionManagement",
-                "rep:write"
-            ]
-        },
-        "allow1": {
-            "jcr:primaryType": "rep:GrantACE",
-            "rep:principalName": "sling-cms-metadata",
-            "rep:privileges": [
-                "jcr:versionManagement",
-                "rep:write"
-            ]
-        },
-        "allow2": {
-            "jcr:primaryType": "rep:GrantACE",
-            "rep:principalName": "sling-cms-versionmgr",
-            "rep:privileges": [
-                "jcr:versionManagement",
-                "rep:write"
-            ]
-        },
-        "allow3": {
-            "jcr:primaryType": "rep:GrantACE",
-            "rep:principalName": "everyone",
-            "rep:privileges": [
-                "jcr:read"
-            ]
-        }
-    },
-    "apache": {
-        "jcr:primaryType": "sling:OrderedFolder",
-        "jcr:createdBy": "admin",
-        "sling:configRef": "/conf/global",
-        "jcr:created": "Wed May 15 2019 12:40:00 GMT-0400",
-        "jcr:content": {
-            "jcr:primaryType": "nt:unstructured",
-            "jcr:title": "Apache Software Foundation"
-        },
-        "sling-apache-org": {
-            "jcr:primaryType": "sling:Site",
-            "jcr:createdBy": "admin",
-            "jcr:title": "Apache Sling",
-            "jcr:language": "en",
-            "sling:url": "https://sling.apache.org",
-            "jcr:created": "Wed May 15 2019 12:40:00 GMT-0400",
-            "index": {
-                "jcr:primaryType": "sling:Page",
-                "jcr:mixinTypes": [
-                    "mix:versionable"
-                ],
-                "jcr:createdBy": "admin",
-                "jcr:versionHistory": "87458e80-83b8-46ee-a5d8-3e39c2f07c10",
-                "jcr:predecessors": [],
-                "jcr:created": "Wed May 15 2019 12:40:00 GMT-0400",
-                "jcr:baseVersion": "9ddd2472-9a0e-4fcb-8a2d-72f0b3f40d61",
-                "jcr:isCheckedOut": false,
-                "jcr:uuid": "fd5c6000-b3b9-44a2-88a0-1c8e13d7c1a7",
-                "jcr:content": {
-                    "jcr:primaryType": "nt:unstructured",
-                    "jcr:title": "Apache Sling - Bringing Back the Fun!",
-                    "jcr:lastModifiedBy": "admin",
-                    "sling:template": "/conf/global/site/templates/base-page",
-                    "sling:taxonomy": "/etc/taxonomy/reference/community",
-                    "jcr:lastModified": "Wed May 15 2019 14:05:46 GMT-0400",
-                    "sling:resourceType": "reference/components/pages/base",
-                    "published": true,
-                    "hideInSitemap": false,
-                    "container": {
-                        "jcr:primaryType": "nt:unstructured",
-                        "richtext": {
-                            "jcr:primaryType": "nt:unstructured",
-                            "text": "<p>Apache Sling(TM) is a framework for RESTful web-applications based on an extensible content tree.</p>\r\n<p>In a nutshell, Sling maps HTTP request URLs to content resources based on the request's path, extension and selectors. Using convention over configuration, requests are processed by scripts and servlets, dynamically selected based on the current resource. This fosters meaningful URLs and resource driven request processing, while the modular nature of Sling allows for specialized server instances that include dude only what is needed.</p>\r\n<p>Sling serves as basis for a variety of applications ranging from blogging engines all the way to enterprise content management systems.</p>\r\n<p>Our <a href=\"#\">Getting Started</a> page will help you start playing with Sling.</p>\r\n<p>Discussions about Sling happen on our mailing lists, see our <a href=\"#\">Project Information</a> page for more info.</p>\r\n",
-                            "sling:resourceType": "sling-cms/components/general/richtext"
-                        }
-                    },
-                    "menu": {
-                        "jcr:primaryType": "nt:unstructured",
-                        "richtext": {
-                            "jcr:primaryType": "nt:unstructured",
-                            "text": "<p>\r\n                <strong><a href=\"#\">Documentation</a></strong><br>\r\n                <a href=\"#\">Getting Started</a><br>\r\n                <a href=\"#\">The Sling Engine</a><br>\r\n                <a href=\"#\">Development</a><br>\r\n                <a href=\"#\">Bundles</a><br>\r\n                <a href=\"#\">Tutorials &amp; How-Tos</a><br>\r\n                <a href=\"http://sling.apache.org/components/\">Maven Plugins</a><br>\r\n                <a href=\"#\">Configuration</a>\r\n                \r\n            </p><p>\r\n                <a href=\"http://s.apache.org/sling.wiki\">Wiki</a><br>\r\n                <a href=\"http://s.apache.org/sling.faq\">FAQ</a><br>\r\n                \r\n            </p><p>\r\n                <strong>API Docs</strong><br>\r\n                <a href=\"#\">Sling 10</a><br>\r\n                <a href=\"#\">Sling 9</a><br>\r\n                <a href=\"#\">All versions</a><br>\r\n                \r\n            </p><p>\r\n                <strong>Project Info</strong><br>\r\n                <a href=\"#\">Downloads</a><br>\r\n                <a href=\"http://www.apache.org/licenses/\">License</a><br>\r\n                <a href=\"#\">News</a><br>\r\n                <a href=\"#\">Releases</a><br>\r\n                <a href=\"https://issues.apache.org/jira/browse/SLING\">Issue Tracker</a><br>\r\n                <a href=\"#\">Links</a><br>\r\n                <a href=\"#\">Contributing</a><br>\r\n                <a href=\"#\">Project Information</a><br>\r\n                <a href=\"#\">Security</a><br>\r\n                \r\n            </p><p>\r\n                <strong>Source</strong><br>\r\n                <a href=\"https://github.com/apache/?utf8=%E2%9C%93&amp;q=sling\">GitHub</a><br>\r\n                <a href=\"https://gitbox.apache.org/repos/asf?s=sling\">Git at Apache</a><br>\r\n                \r\n            </p><p>\r\n                <strong><a href=\"#\">Site Map</a></strong>\r\n            </p><p>\r\n                <strong>Apache Software Foundation</strong><br>\r\n                <a href=\"http://www.apache.org/foundation/thanks.html\">Thanks!</a><br>\r\n                <a href=\"http://www.apache.org/foundation/sponsorship.html\">Become a Sponsor</a><br>\r\n                <a href=\"http://www.apache.org/foundation/buy_stuff.html\">Buy Stuff</a><br>\r\n                <a href=\"https://www.apache.org/events/current-event.html\">\r\n                    <img alt=\"Current ASF Events\" src=\"https://www.apache.org/events/current-event-125x125.png\" width=\"125px\" border=\"0\">\r\n                </a><a href=\"http://apache.org/foundation/contributing.html\">\r\n                    <img alt=\"Support the Apache Software Foundation!\" src=\"/res/images/SupportApache-small.png\" width=\"125px\" border=\"0\">\r\n                </a>\r\n            </p>",
-                            "sling:resourceType": "sling-cms/components/general/richtext"
-                        }
-                    }
-                },
-                "apache.png": {
-                    "jcr:primaryType": "nt:file"
-                },
-                "sling.pdf": {
-                    "jcr:primaryType": "sling:File"
-                },
-                "Sling.docx": {
-                    "jcr:primaryType": "sling:File"
-                },
-                "Sling.pptx": {
-                    "jcr:primaryType": "sling:File"
-                },
-                "Sling.ppt": {
-                    "jcr:primaryType": "sling:File"
-                }
-            }
-        }
-    }
-}
\ No newline at end of file
diff --git a/transformer/src/test/resources/editor.min.css b/transformer/src/test/resources/editor.min.css
deleted file mode 100644
index 8d051e5..0000000
--- a/transformer/src/test/resources/editor.min.css
+++ /dev/null
@@ -1,2854 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (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.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-.sling-cms-editor {
-  /*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (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.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-  /*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (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.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-  /*! minireset.css v0.0.6 | MIT License | github.com/jgthms/minireset.css */
-  font-family: "Open Sans",sans-serif; }
-
-@font-face {
-  .sling-cms-editor {
-    font-family: 'Open Sans';
-    src: url("../fonts/OpenSans-Light-webfont.woff") format("woff");
-    font-weight: 300;
-    font-style: normal;
-    font-display: fallback; } }
-
-@font-face {
-  .sling-cms-editor {
-    font-family: 'Open Sans';
-    src: url("../fonts/OpenSans-Regular-webfont.woff") format("woff");
-    font-weight: 400;
-    font-style: normal;
-    font-display: fallback; } }
-
-@font-face {
-  .sling-cms-editor {
-    font-family: 'Open Sans';
-    src: url("../fonts/OpenSans-Semibold-webfont.woff") format("woff");
-    font-weight: 600;
-    font-style: normal;
-    font-display: fallback; } }
-
-@font-face {
-  .sling-cms-editor {
-    font-family: 'Open Sans';
-    src: url("../fonts/OpenSans-Bold-webfont.woff") format("woff");
-    font-weight: 700;
-    font-style: normal;
-    font-display: fallback; } }
-
-@keyframes spinAround {
-  from {
-    transform: rotate(0deg); }
-  to {
-    transform: rotate(359deg); } }
-  .sling-cms-editor .modal-close, .sling-cms-editor .is-unselectable, .sling-cms-editor .button, .sling-cms-editor .file {
-    -webkit-touch-callout: none;
-    -webkit-user-select: none;
-    -moz-user-select: none;
-    -ms-user-select: none;
-    user-select: none; }
-  .sling-cms-editor .select:not(.is-multiple):not(.is-loading)::after {
-    border: 3px solid transparent;
-    border-radius: 2px;
-    border-right: 0;
-    border-top: 0;
-    content: " ";
-    display: block;
-    height: 0.625em;
-    margin-top: -0.4375em;
-    pointer-events: none;
-    position: absolute;
-    top: 50%;
-    transform: rotate(-45deg);
-    transform-origin: center;
-    width: 0.625em; }
-  .sling-cms-editor .box:not(:last-child), .sling-cms-editor .level:not(:last-child) {
-    margin-bottom: 1.5rem; }
-  .sling-cms-editor .modal-close {
-    -moz-appearance: none;
-    -webkit-appearance: none;
-    background-color: rgba(10, 10, 10, 0.2);
-    border: none;
-    border-radius: 290486px;
-    cursor: pointer;
-    pointer-events: auto;
-    display: inline-block;
-    flex-grow: 0;
-    flex-shrink: 0;
-    font-size: 0;
-    height: 20px;
-    max-height: 20px;
-    max-width: 20px;
-    min-height: 20px;
-    min-width: 20px;
-    outline: none;
-    position: relative;
-    vertical-align: top;
-    width: 20px; }
-    .sling-cms-editor .modal-close::before, .sling-cms-editor .modal-close::after {
-      background-color: white;
-      content: "";
-      display: block;
-      left: 50%;
-      position: absolute;
-      top: 50%;
-      transform: translateX(-50%) translateY(-50%) rotate(45deg);
-      transform-origin: center center; }
-    .sling-cms-editor .modal-close::before {
-      height: 2px;
-      width: 50%; }
-    .sling-cms-editor .modal-close::after {
-      height: 50%;
-      width: 2px; }
-    .sling-cms-editor .modal-close:hover, .sling-cms-editor .modal-close:focus {
-      background-color: rgba(10, 10, 10, 0.3); }
-    .sling-cms-editor .modal-close:active {
-      background-color: rgba(10, 10, 10, 0.4); }
-    .sling-cms-editor .is-small.modal-close {
-      height: 16px;
-      max-height: 16px;
-      max-width: 16px;
-      min-height: 16px;
-      min-width: 16px;
-      width: 16px; }
-    .sling-cms-editor .is-medium.modal-close {
-      height: 24px;
-      max-height: 24px;
-      max-width: 24px;
-      min-height: 24px;
-      min-width: 24px;
-      width: 24px; }
-    .sling-cms-editor .is-large.modal-close {
-      height: 32px;
-      max-height: 32px;
-      max-width: 32px;
-      min-height: 32px;
-      min-width: 32px;
-      width: 32px; }
-  .sling-cms-editor .button.is-loading::after, .sling-cms-editor .select.is-loading::after, .sling-cms-editor .control.is-loading::after {
-    animation: spinAround 500ms infinite linear;
-    border: 2px solid #dbdbdb;
-    border-radius: 290486px;
-    border-right-color: transparent;
-    border-top-color: transparent;
-    content: "";
-    display: block;
-    height: 1em;
-    position: relative;
-    width: 1em; }
-  .sling-cms-editor .is-overlay, .sling-cms-editor .modal, .sling-cms-editor .modal-background {
-    bottom: 0;
-    left: 0;
-    position: absolute;
-    right: 0;
-    top: 0; }
-  .sling-cms-editor .button, .sling-cms-editor .input, .sling-cms-editor .textarea, .sling-cms-editor .select select, .sling-cms-editor .file-cta,
-  .sling-cms-editor .file-name {
-    -moz-appearance: none;
-    -webkit-appearance: none;
-    align-items: center;
-    border: 1px solid transparent;
-    border-radius: 4px;
-    box-shadow: none;
-    display: inline-flex;
-    font-size: 1rem;
-    height: 2.5em;
-    justify-content: flex-start;
-    line-height: 1.5;
-    padding-bottom: calc(0.5em - 1px);
-    padding-left: calc(0.75em - 1px);
-    padding-right: calc(0.75em - 1px);
-    padding-top: calc(0.5em - 1px);
-    position: relative;
-    vertical-align: top; }
-    .sling-cms-editor .button:focus, .sling-cms-editor .input:focus, .sling-cms-editor .textarea:focus, .sling-cms-editor .select select:focus, .sling-cms-editor .file-cta:focus,
-    .sling-cms-editor .file-name:focus, .sling-cms-editor .is-focused.button, .sling-cms-editor .is-focused.input, .sling-cms-editor .is-focused.textarea, .sling-cms-editor .select select.is-focused, .sling-cms-editor .is-focused.file-cta,
-    .sling-cms-editor .is-focused.file-name, .sling-cms-editor .button:active, .sling-cms-editor .input:active, .sling-cms-editor .textarea:active, .sling-cms-editor .select select:active, .sling-cms-editor .file-cta:active,
-    .sling-cms-editor .file-name:active, .sling-cms-editor .is-active.button, .sling-cms-editor .is-active.input, .sling-cms-editor .is-active.textarea, .sling-cms-editor .select select.is-active, .sling-cms-editor .is-active.file-cta,
-    .sling-cms-editor .is-active.file-name {
-      outline: none; }
-    .sling-cms-editor .button[disabled], .sling-cms-editor .input[disabled], .sling-cms-editor .textarea[disabled], .sling-cms-editor .select select[disabled], .sling-cms-editor .file-cta[disabled],
-    .sling-cms-editor .file-name[disabled],
-    fieldset[disabled] .sling-cms-editor .button,
-    fieldset[disabled] .sling-cms-editor .input,
-    fieldset[disabled] .sling-cms-editor .textarea,
-    fieldset[disabled] .sling-cms-editor .select select,
-    fieldset[disabled] .sling-cms-editor .file-cta,
-    fieldset[disabled] .sling-cms-editor .file-name {
-      cursor: not-allowed; }
-  .sling-cms-editor html,
-  .sling-cms-editor body,
-  .sling-cms-editor p,
-  .sling-cms-editor ol,
-  .sling-cms-editor ul,
-  .sling-cms-editor li,
-  .sling-cms-editor dl,
-  .sling-cms-editor dt,
-  .sling-cms-editor dd,
-  .sling-cms-editor blockquote,
-  .sling-cms-editor figure,
-  .sling-cms-editor fieldset,
-  .sling-cms-editor legend,
-  .sling-cms-editor textarea,
-  .sling-cms-editor pre,
-  .sling-cms-editor iframe,
-  .sling-cms-editor hr,
-  .sling-cms-editor h1,
-  .sling-cms-editor h2,
-  .sling-cms-editor h3,
-  .sling-cms-editor h4,
-  .sling-cms-editor h5,
-  .sling-cms-editor h6 {
-    margin: 0;
-    padding: 0; }
-  .sling-cms-editor h1,
-  .sling-cms-editor h2,
-  .sling-cms-editor h3,
-  .sling-cms-editor h4,
-  .sling-cms-editor h5,
-  .sling-cms-editor h6 {
-    font-size: 100%;
-    font-weight: normal; }
-  .sling-cms-editor ul {
-    list-style: none; }
-  .sling-cms-editor button,
-  .sling-cms-editor input,
-  .sling-cms-editor select,
-  .sling-cms-editor textarea {
-    margin: 0; }
-  .sling-cms-editor html {
-    box-sizing: border-box; }
-  .sling-cms-editor *, .sling-cms-editor *::before, .sling-cms-editor *::after {
-    box-sizing: inherit; }
-  .sling-cms-editor img,
-  .sling-cms-editor video {
-    height: auto;
-    max-width: 100%; }
-  .sling-cms-editor iframe {
-    border: 0; }
-  .sling-cms-editor table {
-    border-collapse: collapse;
-    border-spacing: 0; }
-  .sling-cms-editor td,
-  .sling-cms-editor th {
-    padding: 0; }
-    .sling-cms-editor td:not([align]),
-    .sling-cms-editor th:not([align]) {
-      text-align: left; }
-  .sling-cms-editor html {
-    background-color: white;
-    font-size: 16px;
-    -moz-osx-font-smoothing: grayscale;
-    -webkit-font-smoothing: antialiased;
-    min-width: 300px;
-    overflow-x: hidden;
-    overflow-y: scroll;
-    text-rendering: optimizeLegibility;
-    text-size-adjust: 100%; }
-  .sling-cms-editor article,
-  .sling-cms-editor aside,
-  .sling-cms-editor figure,
-  .sling-cms-editor footer,
-  .sling-cms-editor header,
-  .sling-cms-editor hgroup,
-  .sling-cms-editor section {
-    display: block; }
-  .sling-cms-editor body,
-  .sling-cms-editor button,
-  .sling-cms-editor input,
-  .sling-cms-editor select,
-  .sling-cms-editor textarea {
-    font-family: "Open Sans", sans-serif; }
-  .sling-cms-editor code,
-  .sling-cms-editor pre {
-    -moz-osx-font-smoothing: auto;
-    -webkit-font-smoothing: auto;
-    font-family: monospace; }
-  .sling-cms-editor body {
-    color: #4a4a4a;
-    font-size: 1em;
-    font-weight: 400;
-    line-height: 1.5; }
-  .sling-cms-editor a {
-    color: #282661;
-    cursor: pointer;
-    text-decoration: none; }
-    .sling-cms-editor a strong {
-      color: currentColor; }
-    .sling-cms-editor a:hover {
-      color: #363636; }
-  .sling-cms-editor code {
-    background-color: whitesmoke;
-    color: #D22128;
-    font-size: 0.875em;
-    font-weight: normal;
-    padding: 0.25em 0.5em 0.25em; }
-  .sling-cms-editor hr {
-    background-color: whitesmoke;
-    border: none;
-    display: block;
-    height: 2px;
-    margin: 1.5rem 0; }
-  .sling-cms-editor img {
-    height: auto;
-    max-width: 100%; }
-  .sling-cms-editor input[type="checkbox"],
-  .sling-cms-editor input[type="radio"] {
-    vertical-align: baseline; }
-  .sling-cms-editor small {
-    font-size: 0.875em; }
-  .sling-cms-editor span {
-    font-style: inherit;
-    font-weight: inherit; }
-  .sling-cms-editor strong {
-    color: #363636;
-    font-weight: 700; }
-  .sling-cms-editor fieldset {
-    border: none; }
-  .sling-cms-editor pre {
-    -webkit-overflow-scrolling: touch;
-    background-color: whitesmoke;
-    color: #4a4a4a;
-    font-size: 0.875em;
-    overflow-x: auto;
-    padding: 1.25rem 1.5rem;
-    white-space: pre;
-    word-wrap: normal; }
-    .sling-cms-editor pre code {
-      background-color: transparent;
-      color: currentColor;
-      font-size: 1em;
-      padding: 0; }
-  .sling-cms-editor table td,
-  .sling-cms-editor table th {
-    vertical-align: top; }
-    .sling-cms-editor table td:not([align]),
-    .sling-cms-editor table th:not([align]) {
-      text-align: left; }
-  .sling-cms-editor table th {
-    color: #363636; }
-  .sling-cms-editor .is-clearfix::after {
-    clear: both;
-    content: " ";
-    display: table; }
-  .sling-cms-editor .is-pulled-left {
-    float: left !important; }
-  .sling-cms-editor .is-pulled-right {
-    float: right !important; }
-  .sling-cms-editor .is-clipped {
-    overflow: hidden !important; }
-  .sling-cms-editor .is-size-1 {
-    font-size: 3rem !important; }
-  .sling-cms-editor .is-size-2 {
-    font-size: 2.5rem !important; }
-  .sling-cms-editor .is-size-3 {
-    font-size: 2rem !important; }
-  .sling-cms-editor .is-size-4 {
-    font-size: 1.5rem !important; }
-  .sling-cms-editor .is-size-5 {
-    font-size: 1.25rem !important; }
-  .sling-cms-editor .is-size-6 {
-    font-size: 1rem !important; }
-  .sling-cms-editor .is-size-7 {
-    font-size: 0.75rem !important; }
-  @media screen and (max-width: 768px) {
-    .sling-cms-editor .is-size-1-mobile {
-      font-size: 3rem !important; }
-    .sling-cms-editor .is-size-2-mobile {
-      font-size: 2.5rem !important; }
-    .sling-cms-editor .is-size-3-mobile {
-      font-size: 2rem !important; }
-    .sling-cms-editor .is-size-4-mobile {
-      font-size: 1.5rem !important; }
-    .sling-cms-editor .is-size-5-mobile {
-      font-size: 1.25rem !important; }
-    .sling-cms-editor .is-size-6-mobile {
-      font-size: 1rem !important; }
-    .sling-cms-editor .is-size-7-mobile {
-      font-size: 0.75rem !important; } }
-  @media screen and (min-width: 769px), print {
-    .sling-cms-editor .is-size-1-tablet {
-      font-size: 3rem !important; }
-    .sling-cms-editor .is-size-2-tablet {
-      font-size: 2.5rem !important; }
-    .sling-cms-editor .is-size-3-tablet {
-      font-size: 2rem !important; }
-    .sling-cms-editor .is-size-4-tablet {
-      font-size: 1.5rem !important; }
-    .sling-cms-editor .is-size-5-tablet {
-      font-size: 1.25rem !important; }
-    .sling-cms-editor .is-size-6-tablet {
-      font-size: 1rem !important; }
-    .sling-cms-editor .is-size-7-tablet {
-      font-size: 0.75rem !important; } }
-  @media screen and (max-width: 1023px) {
-    .sling-cms-editor .is-size-1-touch {
-      font-size: 3rem !important; }
-    .sling-cms-editor .is-size-2-touch {
-      font-size: 2.5rem !important; }
-    .sling-cms-editor .is-size-3-touch {
-      font-size: 2rem !important; }
-    .sling-cms-editor .is-size-4-touch {
-      font-size: 1.5rem !important; }
-    .sling-cms-editor .is-size-5-touch {
-      font-size: 1.25rem !important; }
-    .sling-cms-editor .is-size-6-touch {
-      font-size: 1rem !important; }
-    .sling-cms-editor .is-size-7-touch {
-      font-size: 0.75rem !important; } }
-  @media screen and (min-width: 1024px) {
-    .sling-cms-editor .is-size-1-desktop {
-      font-size: 3rem !important; }
-    .sling-cms-editor .is-size-2-desktop {
-      font-size: 2.5rem !important; }
-    .sling-cms-editor .is-size-3-desktop {
-      font-size: 2rem !important; }
-    .sling-cms-editor .is-size-4-desktop {
-      font-size: 1.5rem !important; }
-    .sling-cms-editor .is-size-5-desktop {
-      font-size: 1.25rem !important; }
-    .sling-cms-editor .is-size-6-desktop {
-      font-size: 1rem !important; }
-    .sling-cms-editor .is-size-7-desktop {
-      font-size: 0.75rem !important; } }
-  @media screen and (min-width: 1216px) {
-    .sling-cms-editor .is-size-1-widescreen {
-      font-size: 3rem !important; }
-    .sling-cms-editor .is-size-2-widescreen {
-      font-size: 2.5rem !important; }
-    .sling-cms-editor .is-size-3-widescreen {
-      font-size: 2rem !important; }
-    .sling-cms-editor .is-size-4-widescreen {
-      font-size: 1.5rem !important; }
-    .sling-cms-editor .is-size-5-widescreen {
-      font-size: 1.25rem !important; }
-    .sling-cms-editor .is-size-6-widescreen {
-      font-size: 1rem !important; }
-    .sling-cms-editor .is-size-7-widescreen {
-      font-size: 0.75rem !important; } }
-  @media screen and (min-width: 1408px) {
-    .sling-cms-editor .is-size-1-fullhd {
-      font-size: 3rem !important; }
-    .sling-cms-editor .is-size-2-fullhd {
-      font-size: 2.5rem !important; }
-    .sling-cms-editor .is-size-3-fullhd {
-      font-size: 2rem !important; }
-    .sling-cms-editor .is-size-4-fullhd {
-      font-size: 1.5rem !important; }
-    .sling-cms-editor .is-size-5-fullhd {
-      font-size: 1.25rem !important; }
-    .sling-cms-editor .is-size-6-fullhd {
-      font-size: 1rem !important; }
-    .sling-cms-editor .is-size-7-fullhd {
-      font-size: 0.75rem !important; } }
-  .sling-cms-editor .has-text-centered {
-    text-align: center !important; }
-  .sling-cms-editor .has-text-justified {
-    text-align: justify !important; }
-  .sling-cms-editor .has-text-left {
-    text-align: left !important; }
-  .sling-cms-editor .has-text-right {
-    text-align: right !important; }
-  @media screen and (max-width: 768px) {
-    .sling-cms-editor .has-text-centered-mobile {
-      text-align: center !important; } }
-  @media screen and (min-width: 769px), print {
-    .sling-cms-editor .has-text-centered-tablet {
-      text-align: center !important; } }
-  @media screen and (min-width: 769px) and (max-width: 1023px) {
-    .sling-cms-editor .has-text-centered-tablet-only {
-      text-align: center !important; } }
-  @media screen and (max-width: 1023px) {
-    .sling-cms-editor .has-text-centered-touch {
-      text-align: center !important; } }
-  @media screen and (min-width: 1024px) {
-    .sling-cms-editor .has-text-centered-desktop {
-      text-align: center !important; } }
-  @media screen and (min-width: 1024px) and (max-width: 1215px) {
-    .sling-cms-editor .has-text-centered-desktop-only {
-      text-align: center !important; } }
-  @media screen and (min-width: 1216px) {
-    .sling-cms-editor .has-text-centered-widescreen {
-      text-align: center !important; } }
-  @media screen and (min-width: 1216px) and (max-width: 1407px) {
-    .sling-cms-editor .has-text-centered-widescreen-only {
-      text-align: center !important; } }
-  @media screen and (min-width: 1408px) {
-    .sling-cms-editor .has-text-centered-fullhd {
-      text-align: center !important; } }
-  @media screen and (max-width: 768px) {
-    .sling-cms-editor .has-text-justified-mobile {
-      text-align: justify !important; } }
-  @media screen and (min-width: 769px), print {
-    .sling-cms-editor .has-text-justified-tablet {
-      text-align: justify !important; } }
-  @media screen and (min-width: 769px) and (max-width: 1023px) {
-    .sling-cms-editor .has-text-justified-tablet-only {
-      text-align: justify !important; } }
-  @media screen and (max-width: 1023px) {
-    .sling-cms-editor .has-text-justified-touch {
-      text-align: justify !important; } }
-  @media screen and (min-width: 1024px) {
-    .sling-cms-editor .has-text-justified-desktop {
-      text-align: justify !important; } }
-  @media screen and (min-width: 1024px) and (max-width: 1215px) {
-    .sling-cms-editor .has-text-justified-desktop-only {
-      text-align: justify !important; } }
-  @media screen and (min-width: 1216px) {
-    .sling-cms-editor .has-text-justified-widescreen {
-      text-align: justify !important; } }
-  @media screen and (min-width: 1216px) and (max-width: 1407px) {
-    .sling-cms-editor .has-text-justified-widescreen-only {
-      text-align: justify !important; } }
-  @media screen and (min-width: 1408px) {
-    .sling-cms-editor .has-text-justified-fullhd {
-      text-align: justify !important; } }
-  @media screen and (max-width: 768px) {
-    .sling-cms-editor .has-text-left-mobile {
-      text-align: left !important; } }
-  @media screen and (min-width: 769px), print {
-    .sling-cms-editor .has-text-left-tablet {
-      text-align: left !important; } }
-  @media screen and (min-width: 769px) and (max-width: 1023px) {
-    .sling-cms-editor .has-text-left-tablet-only {
-      text-align: left !important; } }
-  @media screen and (max-width: 1023px) {
-    .sling-cms-editor .has-text-left-touch {
-      text-align: left !important; } }
-  @media screen and (min-width: 1024px) {
-    .sling-cms-editor .has-text-left-desktop {
-      text-align: left !important; } }
-  @media screen and (min-width: 1024px) and (max-width: 1215px) {
-    .sling-cms-editor .has-text-left-desktop-only {
-      text-align: left !important; } }
-  @media screen and (min-width: 1216px) {
-    .sling-cms-editor .has-text-left-widescreen {
-      text-align: left !important; } }
-  @media screen and (min-width: 1216px) and (max-width: 1407px) {
-    .sling-cms-editor .has-text-left-widescreen-only {
-      text-align: left !important; } }
-  @media screen and (min-width: 1408px) {
-    .sling-cms-editor .has-text-left-fullhd {
-      text-align: left !important; } }
-  @media screen and (max-width: 768px) {
-    .sling-cms-editor .has-text-right-mobile {
-      text-align: right !important; } }
-  @media screen and (min-width: 769px), print {
-    .sling-cms-editor .has-text-right-tablet {
-      text-align: right !important; } }
-  @media screen and (min-width: 769px) and (max-width: 1023px) {
-    .sling-cms-editor .has-text-right-tablet-only {
-      text-align: right !important; } }
-  @media screen and (max-width: 1023px) {
-    .sling-cms-editor .has-text-right-touch {
-      text-align: right !important; } }
-  @media screen and (min-width: 1024px) {
-    .sling-cms-editor .has-text-right-desktop {
-      text-align: right !important; } }
-  @media screen and (min-width: 1024px) and (max-width: 1215px) {
-    .sling-cms-editor .has-text-right-desktop-only {
-      text-align: right !important; } }
-  @media screen and (min-width: 1216px) {
-    .sling-cms-editor .has-text-right-widescreen {
-      text-align: right !important; } }
-  @media screen and (min-width: 1216px) and (max-width: 1407px) {
-    .sling-cms-editor .has-text-right-widescreen-only {
-      text-align: right !important; } }
-  @media screen and (min-width: 1408px) {
-    .sling-cms-editor .has-text-right-fullhd {
-      text-align: right !important; } }
-  .sling-cms-editor .is-capitalized {
-    text-transform: capitalize !important; }
-  .sling-cms-editor .is-lowercase {
-    text-transform: lowercase !important; }
-  .sling-cms-editor .is-uppercase {
-    text-transform: uppercase !important; }
-  .sling-cms-editor .is-italic {
-    font-style: italic !important; }
-  .sling-cms-editor .has-text-white {
-    color: white !important; }
-  .sling-cms-editor a.has-text-white:hover, .sling-cms-editor a.has-text-white:focus {
-    color: #e6e6e6 !important; }
-  .sling-cms-editor .has-background-white {
-    background-color: white !important; }
-  .sling-cms-editor .has-text-black {
-    color: #0a0a0a !important; }
-  .sling-cms-editor a.has-text-black:hover, .sling-cms-editor a.has-text-black:focus {
-    color: black !important; }
-  .sling-cms-editor .has-background-black {
-    background-color: #0a0a0a !important; }
-  .sling-cms-editor .has-text-light {
-    color: whitesmoke !important; }
-  .sling-cms-editor a.has-text-light:hover, .sling-cms-editor a.has-text-light:focus {
-    color: #dbdbdb !important; }
-  .sling-cms-editor .has-background-light {
-    background-color: whitesmoke !important; }
-  .sling-cms-editor .has-text-dark {
-    color: #363636 !important; }
-  .sling-cms-editor a.has-text-dark:hover, .sling-cms-editor a.has-text-dark:focus {
-    color: #1c1c1c !important; }
-  .sling-cms-editor .has-background-dark {
-    background-color: #363636 !important; }
-  .sling-cms-editor .has-text-primary {
-    color: #9E2165 !important; }
-  .sling-cms-editor a.has-text-primary:hover, .sling-cms-editor a.has-text-primary:focus {
-    color: #74184a !important; }
-  .sling-cms-editor .has-background-primary {
-    background-color: #9E2165 !important; }
-  .sling-cms-editor .has-text-link {
-    color: #282661 !important; }
-  .sling-cms-editor a.has-text-link:hover, .sling-cms-editor a.has-text-link:focus {
-    color: #19183c !important; }
-  .sling-cms-editor .has-background-link {
-    background-color: #282661 !important; }
-  .sling-cms-editor .has-text-info {
-    color: #3298dc !important; }
-  .sling-cms-editor a.has-text-info:hover, .sling-cms-editor a.has-text-info:focus {
-    color: #207dbc !important; }
-  .sling-cms-editor .has-background-info {
-    background-color: #3298dc !important; }
-  .sling-cms-editor .has-text-success {
-    color: #48c774 !important; }
-  .sling-cms-editor a.has-text-success:hover, .sling-cms-editor a.has-text-success:focus {
-    color: #34a85c !important; }
-  .sling-cms-editor .has-background-success {
-    background-color: #48c774 !important; }
-  .sling-cms-editor .has-text-warning {
-    color: #EA7826 !important; }
-  .sling-cms-editor a.has-text-warning:hover, .sling-cms-editor a.has-text-warning:focus {
-    color: #ca6014 !important; }
-  .sling-cms-editor .has-background-warning {
-    background-color: #EA7826 !important; }
-  .sling-cms-editor .has-text-danger {
-    color: #CB2138 !important; }
-  .sling-cms-editor a.has-text-danger:hover, .sling-cms-editor a.has-text-danger:focus {
-    color: #9f1a2c !important; }
-  .sling-cms-editor .has-background-danger {
-    background-color: #CB2138 !important; }
-  .sling-cms-editor .has-text-black-bis {
-    color: #121212 !important; }
-  .sling-cms-editor .has-background-black-bis {
-    background-color: #121212 !important; }
-  .sling-cms-editor .has-text-black-ter {
-    color: #242424 !important; }
-  .sling-cms-editor .has-background-black-ter {
-    background-color: #242424 !important; }
-  .sling-cms-editor .has-text-grey-darker {
-    color: #363636 !important; }
-  .sling-cms-editor .has-background-grey-darker {
-    background-color: #363636 !important; }
-  .sling-cms-editor .has-text-grey-dark {
-    color: #4a4a4a !important; }
-  .sling-cms-editor .has-background-grey-dark {
-    background-color: #4a4a4a !important; }
-  .sling-cms-editor .has-text-grey {
-    color: #7a7a7a !important; }
-  .sling-cms-editor .has-background-grey {
-    background-color: #7a7a7a !important; }
-  .sling-cms-editor .has-text-grey-light {
-    color: #b5b5b5 !important; }
-  .sling-cms-editor .has-background-grey-light {
-    background-color: #b5b5b5 !important; }
-  .sling-cms-editor .has-text-grey-lighter {
-    color: #dbdbdb !important; }
-  .sling-cms-editor .has-background-grey-lighter {
-    background-color: #dbdbdb !important; }
-  .sling-cms-editor .has-text-white-ter {
-    color: whitesmoke !important; }
-  .sling-cms-editor .has-background-white-ter {
-    background-color: whitesmoke !important; }
-  .sling-cms-editor .has-text-white-bis {
-    color: #fafafa !important; }
-  .sling-cms-editor .has-background-white-bis {
-    background-color: #fafafa !important; }
-  .sling-cms-editor .has-text-weight-light {
-    font-weight: 300 !important; }
-  .sling-cms-editor .has-text-weight-normal {
-    font-weight: 400 !important; }
-  .sling-cms-editor .has-text-weight-medium {
-    font-weight: 500 !important; }
-  .sling-cms-editor .has-text-weight-semibold {
-    font-weight: 600 !important; }
-  .sling-cms-editor .has-text-weight-bold {
-    font-weight: 700 !important; }
-  .sling-cms-editor .is-family-primary {
-    font-family: "Open Sans", sans-serif !important; }
-  .sling-cms-editor .is-family-secondary {
-    font-family: "Open Sans", sans-serif !important; }
-  .sling-cms-editor .is-family-sans-serif {
-    font-family: "Open Sans", sans-serif !important; }
-  .sling-cms-editor .is-family-monospace {
-    font-family: monospace !important; }
-  .sling-cms-editor .is-family-code {
-    font-family: monospace !important; }
-  .sling-cms-editor .is-block {
-    display: block !important; }
-  @media screen and (max-width: 768px) {
-    .sling-cms-editor .is-block-mobile {
-      display: block !important; } }
-  @media screen and (min-width: 769px), print {
-    .sling-cms-editor .is-block-tablet {
-      display: block !important; } }
-  @media screen and (min-width: 769px) and (max-width: 1023px) {
-    .sling-cms-editor .is-block-tablet-only {
-      display: block !important; } }
-  @media screen and (max-width: 1023px) {
-    .sling-cms-editor .is-block-touch {
-      display: block !important; } }
-  @media screen and (min-width: 1024px) {
-    .sling-cms-editor .is-block-desktop {
-      display: block !important; } }
-  @media screen and (min-width: 1024px) and (max-width: 1215px) {
-    .sling-cms-editor .is-block-desktop-only {
-      display: block !important; } }
-  @media screen and (min-width: 1216px) {
-    .sling-cms-editor .is-block-widescreen {
-      display: block !important; } }
-  @media screen and (min-width: 1216px) and (max-width: 1407px) {
-    .sling-cms-editor .is-block-widescreen-only {
-      display: block !important; } }
-  @media screen and (min-width: 1408px) {
-    .sling-cms-editor .is-block-fullhd {
-      display: block !important; } }
-  .sling-cms-editor .is-flex {
-    display: flex !important; }
-  @media screen and (max-width: 768px) {
-    .sling-cms-editor .is-flex-mobile {
-      display: flex !important; } }
-  @media screen and (min-width: 769px), print {
-    .sling-cms-editor .is-flex-tablet {
-      display: flex !important; } }
-  @media screen and (min-width: 769px) and (max-width: 1023px) {
-    .sling-cms-editor .is-flex-tablet-only {
-      display: flex !important; } }
-  @media screen and (max-width: 1023px) {
-    .sling-cms-editor .is-flex-touch {
-      display: flex !important; } }
-  @media screen and (min-width: 1024px) {
-    .sling-cms-editor .is-flex-desktop {
-      display: flex !important; } }
-  @media screen and (min-width: 1024px) and (max-width: 1215px) {
-    .sling-cms-editor .is-flex-desktop-only {
-      display: flex !important; } }
-  @media screen and (min-width: 1216px) {
-    .sling-cms-editor .is-flex-widescreen {
-      display: flex !important; } }
-  @media screen and (min-width: 1216px) and (max-width: 1407px) {
-    .sling-cms-editor .is-flex-widescreen-only {
-      display: flex !important; } }
-  @media screen and (min-width: 1408px) {
-    .sling-cms-editor .is-flex-fullhd {
-      display: flex !important; } }
-  .sling-cms-editor .is-inline {
-    display: inline !important; }
-  @media screen and (max-width: 768px) {
-    .sling-cms-editor .is-inline-mobile {
-      display: inline !important; } }
-  @media screen and (min-width: 769px), print {
-    .sling-cms-editor .is-inline-tablet {
-      display: inline !important; } }
-  @media screen and (min-width: 769px) and (max-width: 1023px) {
-    .sling-cms-editor .is-inline-tablet-only {
-      display: inline !important; } }
-  @media screen and (max-width: 1023px) {
-    .sling-cms-editor .is-inline-touch {
-      display: inline !important; } }
-  @media screen and (min-width: 1024px) {
-    .sling-cms-editor .is-inline-desktop {
-      display: inline !important; } }
-  @media screen and (min-width: 1024px) and (max-width: 1215px) {
-    .sling-cms-editor .is-inline-desktop-only {
-      display: inline !important; } }
-  @media screen and (min-width: 1216px) {
-    .sling-cms-editor .is-inline-widescreen {
-      display: inline !important; } }
-  @media screen and (min-width: 1216px) and (max-width: 1407px) {
-    .sling-cms-editor .is-inline-widescreen-only {
-      display: inline !important; } }
-  @media screen and (min-width: 1408px) {
-    .sling-cms-editor .is-inline-fullhd {
-      display: inline !important; } }
-  .sling-cms-editor .is-inline-block {
-    display: inline-block !important; }
-  @media screen and (max-width: 768px) {
-    .sling-cms-editor .is-inline-block-mobile {
-      display: inline-block !important; } }
-  @media screen and (min-width: 769px), print {
-    .sling-cms-editor .is-inline-block-tablet {
-      display: inline-block !important; } }
-  @media screen and (min-width: 769px) and (max-width: 1023px) {
-    .sling-cms-editor .is-inline-block-tablet-only {
-      display: inline-block !important; } }
-  @media screen and (max-width: 1023px) {
-    .sling-cms-editor .is-inline-block-touch {
-      display: inline-block !important; } }
-  @media screen and (min-width: 1024px) {
-    .sling-cms-editor .is-inline-block-desktop {
-      display: inline-block !important; } }
-  @media screen and (min-width: 1024px) and (max-width: 1215px) {
-    .sling-cms-editor .is-inline-block-desktop-only {
-      display: inline-block !important; } }
-  @media screen and (min-width: 1216px) {
-    .sling-cms-editor .is-inline-block-widescreen {
-      display: inline-block !important; } }
-  @media screen and (min-width: 1216px) and (max-width: 1407px) {
-    .sling-cms-editor .is-inline-block-widescreen-only {
-      display: inline-block !important; } }
-  @media screen and (min-width: 1408px) {
-    .sling-cms-editor .is-inline-block-fullhd {
-      display: inline-block !important; } }
-  .sling-cms-editor .is-inline-flex {
-    display: inline-flex !important; }
-  @media screen and (max-width: 768px) {
-    .sling-cms-editor .is-inline-flex-mobile {
-      display: inline-flex !important; } }
-  @media screen and (min-width: 769px), print {
-    .sling-cms-editor .is-inline-flex-tablet {
-      display: inline-flex !important; } }
-  @media screen and (min-width: 769px) and (max-width: 1023px) {
-    .sling-cms-editor .is-inline-flex-tablet-only {
-      display: inline-flex !important; } }
-  @media screen and (max-width: 1023px) {
-    .sling-cms-editor .is-inline-flex-touch {
-      display: inline-flex !important; } }
-  @media screen and (min-width: 1024px) {
-    .sling-cms-editor .is-inline-flex-desktop {
-      display: inline-flex !important; } }
-  @media screen and (min-width: 1024px) and (max-width: 1215px) {
-    .sling-cms-editor .is-inline-flex-desktop-only {
-      display: inline-flex !important; } }
-  @media screen and (min-width: 1216px) {
-    .sling-cms-editor .is-inline-flex-widescreen {
-      display: inline-flex !important; } }
-  @media screen and (min-width: 1216px) and (max-width: 1407px) {
-    .sling-cms-editor .is-inline-flex-widescreen-only {
-      display: inline-flex !important; } }
-  @media screen and (min-width: 1408px) {
-    .sling-cms-editor .is-inline-flex-fullhd {
-      display: inline-flex !important; } }
-  .sling-cms-editor .is-hidden {
-    display: none !important; }
-  .sling-cms-editor .is-sr-only {
-    border: none !important;
-    clip: rect(0, 0, 0, 0) !important;
-    height: 0.01em !important;
-    overflow: hidden !important;
-    padding: 0 !important;
-    position: absolute !important;
-    white-space: nowrap !important;
-    width: 0.01em !important; }
-  @media screen and (max-width: 768px) {
-    .sling-cms-editor .is-hidden-mobile {
-      display: none !important; } }
-  @media screen and (min-width: 769px), print {
-    .sling-cms-editor .is-hidden-tablet {
-      display: none !important; } }
-  @media screen and (min-width: 769px) and (max-width: 1023px) {
-    .sling-cms-editor .is-hidden-tablet-only {
-      display: none !important; } }
-  @media screen and (max-width: 1023px) {
-    .sling-cms-editor .is-hidden-touch {
-      display: none !important; } }
-  @media screen and (min-width: 1024px) {
-    .sling-cms-editor .is-hidden-desktop {
-      display: none !important; } }
-  @media screen and (min-width: 1024px) and (max-width: 1215px) {
-    .sling-cms-editor .is-hidden-desktop-only {
-      display: none !important; } }
-  @media screen and (min-width: 1216px) {
-    .sling-cms-editor .is-hidden-widescreen {
-      display: none !important; } }
-  @media screen and (min-width: 1216px) and (max-width: 1407px) {
-    .sling-cms-editor .is-hidden-widescreen-only {
-      display: none !important; } }
-  @media screen and (min-width: 1408px) {
-    .sling-cms-editor .is-hidden-fullhd {
-      display: none !important; } }
-  .sling-cms-editor .is-invisible {
-    visibility: hidden !important; }
-  @media screen and (max-width: 768px) {
-    .sling-cms-editor .is-invisible-mobile {
-      visibility: hidden !important; } }
-  @media screen and (min-width: 769px), print {
-    .sling-cms-editor .is-invisible-tablet {
-      visibility: hidden !important; } }
-  @media screen and (min-width: 769px) and (max-width: 1023px) {
-    .sling-cms-editor .is-invisible-tablet-only {
-      visibility: hidden !important; } }
-  @media screen and (max-width: 1023px) {
-    .sling-cms-editor .is-invisible-touch {
-      visibility: hidden !important; } }
-  @media screen and (min-width: 1024px) {
-    .sling-cms-editor .is-invisible-desktop {
-      visibility: hidden !important; } }
-  @media screen and (min-width: 1024px) and (max-width: 1215px) {
-    .sling-cms-editor .is-invisible-desktop-only {
-      visibility: hidden !important; } }
-  @media screen and (min-width: 1216px) {
-    .sling-cms-editor .is-invisible-widescreen {
-      visibility: hidden !important; } }
-  @media screen and (min-width: 1216px) and (max-width: 1407px) {
-    .sling-cms-editor .is-invisible-widescreen-only {
-      visibility: hidden !important; } }
-  @media screen and (min-width: 1408px) {
-    .sling-cms-editor .is-invisible-fullhd {
-      visibility: hidden !important; } }
-  .sling-cms-editor .is-marginless {
-    margin: 0 !important; }
-  .sling-cms-editor .is-paddingless {
-    padding: 0 !important; }
-  .sling-cms-editor .is-radiusless {
-    border-radius: 0 !important; }
-  .sling-cms-editor .is-shadowless {
-    box-shadow: none !important; }
-  .sling-cms-editor .is-relative {
-    position: relative !important; }
-  .sling-cms-editor .box {
-    background-color: white;
-    border-radius: 6px;
-    box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0px 0 1px rgba(10, 10, 10, 0.02);
-    color: #4a4a4a;
-    display: block;
-    padding: 1.25rem; }
-  .sling-cms-editor a.box:hover, .sling-cms-editor a.box:focus {
-    box-shadow: 0 0.5em 1em -0.125em rgba(10, 10, 10, 0.1), 0 0 0 1px #282661; }
-  .sling-cms-editor a.box:active {
-    box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #282661; }
-  .sling-cms-editor .button {
-    background-color: white;
-    border-color: #dbdbdb;
-    border-width: 1px;
-    color: #363636;
-    cursor: pointer;
-    justify-content: center;
-    padding-bottom: calc(0.5em - 1px);
-    padding-left: 1em;
-    padding-right: 1em;
-    padding-top: calc(0.5em - 1px);
-    text-align: center;
-    white-space: nowrap; }
-    .sling-cms-editor .button strong {
-      color: inherit; }
-    .sling-cms-editor .button .icon, .sling-cms-editor .button .icon.is-small, .sling-cms-editor .button .icon.is-medium, .sling-cms-editor .button .icon.is-large {
-      height: 1.5em;
-      width: 1.5em; }
-    .sling-cms-editor .button .icon:first-child:not(:last-child) {
-      margin-left: calc(-0.5em - 1px);
-      margin-right: 0.25em; }
-    .sling-cms-editor .button .icon:last-child:not(:first-child) {
-      margin-left: 0.25em;
-      margin-right: calc(-0.5em - 1px); }
-    .sling-cms-editor .button .icon:first-child:last-child {
-      margin-left: calc(-0.5em - 1px);
-      margin-right: calc(-0.5em - 1px); }
-    .sling-cms-editor .button:hover, .sling-cms-editor .button.is-hovered {
-      border-color: #b5b5b5;
-      color: #363636; }
-    .sling-cms-editor .button:focus, .sling-cms-editor .button.is-focused {
-      border-color: #3273dc;
-      color: #363636; }
-      .sling-cms-editor .button:focus:not(:active), .sling-cms-editor .button.is-focused:not(:active) {
-        box-shadow: 0 0 0 0.125em rgba(40, 38, 97, 0.25); }
-    .sling-cms-editor .button:active, .sling-cms-editor .button.is-active {
-      border-color: #4a4a4a;
-      color: #363636; }
-    .sling-cms-editor .button.is-text {
-      background-color: transparent;
-      border-color: transparent;
-      color: #4a4a4a;
-      text-decoration: underline; }
-      .sling-cms-editor .button.is-text:hover, .sling-cms-editor .button.is-text.is-hovered, .sling-cms-editor .button.is-text:focus, .sling-cms-editor .button.is-text.is-focused {
-        background-color: whitesmoke;
-        color: #363636; }
-      .sling-cms-editor .button.is-text:active, .sling-cms-editor .button.is-text.is-active {
-        background-color: #e8e8e8;
-        color: #363636; }
-      .sling-cms-editor .button.is-text[disabled],
-      fieldset[disabled] .sling-cms-editor .button.is-text {
-        background-color: transparent;
-        border-color: transparent;
-        box-shadow: none; }
-    .sling-cms-editor .button.is-white {
-      background-color: white;
-      border-color: transparent;
-      color: #0a0a0a; }
-      .sling-cms-editor .button.is-white:hover, .sling-cms-editor .button.is-white.is-hovered {
-        background-color: #f9f9f9;
-        border-color: transparent;
-        color: #0a0a0a; }
-      .sling-cms-editor .button.is-white:focus, .sling-cms-editor .button.is-white.is-focused {
-        border-color: transparent;
-        color: #0a0a0a; }
-        .sling-cms-editor .button.is-white:focus:not(:active), .sling-cms-editor .button.is-white.is-focused:not(:active) {
-          box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }
-      .sling-cms-editor .button.is-white:active, .sling-cms-editor .button.is-white.is-active {
-        background-color: #f2f2f2;
-        border-color: transparent;
-        color: #0a0a0a; }
-      .sling-cms-editor .button.is-white[disabled],
-      fieldset[disabled] .sling-cms-editor .button.is-white {
-        background-color: white;
-        border-color: transparent;
-        box-shadow: none; }
-      .sling-cms-editor .button.is-white.is-inverted {
-        background-color: #0a0a0a;
-        color: white; }
-        .sling-cms-editor .button.is-white.is-inverted:hover, .sling-cms-editor .button.is-white.is-inverted.is-hovered {
-          background-color: black; }
-        .sling-cms-editor .button.is-white.is-inverted[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-white.is-inverted {
-          background-color: #0a0a0a;
-          border-color: transparent;
-          box-shadow: none;
-          color: white; }
-      .sling-cms-editor .button.is-white.is-loading::after {
-        border-color: transparent transparent #0a0a0a #0a0a0a !important; }
-      .sling-cms-editor .button.is-white.is-outlined {
-        background-color: transparent;
-        border-color: white;
-        color: white; }
-        .sling-cms-editor .button.is-white.is-outlined:hover, .sling-cms-editor .button.is-white.is-outlined.is-hovered, .sling-cms-editor .button.is-white.is-outlined:focus, .sling-cms-editor .button.is-white.is-outlined.is-focused {
-          background-color: white;
-          border-color: white;
-          color: #0a0a0a; }
-        .sling-cms-editor .button.is-white.is-outlined.is-loading::after {
-          border-color: transparent transparent white white !important; }
-        .sling-cms-editor .button.is-white.is-outlined.is-loading:hover::after, .sling-cms-editor .button.is-white.is-outlined.is-loading.is-hovered::after, .sling-cms-editor .button.is-white.is-outlined.is-loading:focus::after, .sling-cms-editor .button.is-white.is-outlined.is-loading.is-focused::after {
-          border-color: transparent transparent #0a0a0a #0a0a0a !important; }
-        .sling-cms-editor .button.is-white.is-outlined[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-white.is-outlined {
-          background-color: transparent;
-          border-color: white;
-          box-shadow: none;
-          color: white; }
-      .sling-cms-editor .button.is-white.is-inverted.is-outlined {
-        background-color: transparent;
-        border-color: #0a0a0a;
-        color: #0a0a0a; }
-        .sling-cms-editor .button.is-white.is-inverted.is-outlined:hover, .sling-cms-editor .button.is-white.is-inverted.is-outlined.is-hovered, .sling-cms-editor .button.is-white.is-inverted.is-outlined:focus, .sling-cms-editor .button.is-white.is-inverted.is-outlined.is-focused {
-          background-color: #0a0a0a;
-          color: white; }
-        .sling-cms-editor .button.is-white.is-inverted.is-outlined.is-loading:hover::after, .sling-cms-editor .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, .sling-cms-editor .button.is-white.is-inverted.is-outlined.is-loading:focus::after, .sling-cms-editor .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after {
-          border-color: transparent transparent white white !important; }
-        .sling-cms-editor .button.is-white.is-inverted.is-outlined[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-white.is-inverted.is-outlined {
-          background-color: transparent;
-          border-color: #0a0a0a;
-          box-shadow: none;
-          color: #0a0a0a; }
-    .sling-cms-editor .button.is-black {
-      background-color: #0a0a0a;
-      border-color: transparent;
-      color: white; }
-      .sling-cms-editor .button.is-black:hover, .sling-cms-editor .button.is-black.is-hovered {
-        background-color: #040404;
-        border-color: transparent;
-        color: white; }
-      .sling-cms-editor .button.is-black:focus, .sling-cms-editor .button.is-black.is-focused {
-        border-color: transparent;
-        color: white; }
-        .sling-cms-editor .button.is-black:focus:not(:active), .sling-cms-editor .button.is-black.is-focused:not(:active) {
-          box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }
-      .sling-cms-editor .button.is-black:active, .sling-cms-editor .button.is-black.is-active {
-        background-color: black;
-        border-color: transparent;
-        color: white; }
-      .sling-cms-editor .button.is-black[disabled],
-      fieldset[disabled] .sling-cms-editor .button.is-black {
-        background-color: #0a0a0a;
-        border-color: transparent;
-        box-shadow: none; }
-      .sling-cms-editor .button.is-black.is-inverted {
-        background-color: white;
-        color: #0a0a0a; }
-        .sling-cms-editor .button.is-black.is-inverted:hover, .sling-cms-editor .button.is-black.is-inverted.is-hovered {
-          background-color: #f2f2f2; }
-        .sling-cms-editor .button.is-black.is-inverted[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-black.is-inverted {
-          background-color: white;
-          border-color: transparent;
-          box-shadow: none;
-          color: #0a0a0a; }
-      .sling-cms-editor .button.is-black.is-loading::after {
-        border-color: transparent transparent white white !important; }
-      .sling-cms-editor .button.is-black.is-outlined {
-        background-color: transparent;
-        border-color: #0a0a0a;
-        color: #0a0a0a; }
-        .sling-cms-editor .button.is-black.is-outlined:hover, .sling-cms-editor .button.is-black.is-outlined.is-hovered, .sling-cms-editor .button.is-black.is-outlined:focus, .sling-cms-editor .button.is-black.is-outlined.is-focused {
-          background-color: #0a0a0a;
-          border-color: #0a0a0a;
-          color: white; }
-        .sling-cms-editor .button.is-black.is-outlined.is-loading::after {
-          border-color: transparent transparent #0a0a0a #0a0a0a !important; }
-        .sling-cms-editor .button.is-black.is-outlined.is-loading:hover::after, .sling-cms-editor .button.is-black.is-outlined.is-loading.is-hovered::after, .sling-cms-editor .button.is-black.is-outlined.is-loading:focus::after, .sling-cms-editor .button.is-black.is-outlined.is-loading.is-focused::after {
-          border-color: transparent transparent white white !important; }
-        .sling-cms-editor .button.is-black.is-outlined[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-black.is-outlined {
-          background-color: transparent;
-          border-color: #0a0a0a;
-          box-shadow: none;
-          color: #0a0a0a; }
-      .sling-cms-editor .button.is-black.is-inverted.is-outlined {
-        background-color: transparent;
-        border-color: white;
-        color: white; }
-        .sling-cms-editor .button.is-black.is-inverted.is-outlined:hover, .sling-cms-editor .button.is-black.is-inverted.is-outlined.is-hovered, .sling-cms-editor .button.is-black.is-inverted.is-outlined:focus, .sling-cms-editor .button.is-black.is-inverted.is-outlined.is-focused {
-          background-color: white;
-          color: #0a0a0a; }
-        .sling-cms-editor .button.is-black.is-inverted.is-outlined.is-loading:hover::after, .sling-cms-editor .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, .sling-cms-editor .button.is-black.is-inverted.is-outlined.is-loading:focus::after, .sling-cms-editor .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after {
-          border-color: transparent transparent #0a0a0a #0a0a0a !important; }
-        .sling-cms-editor .button.is-black.is-inverted.is-outlined[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-black.is-inverted.is-outlined {
-          background-color: transparent;
-          border-color: white;
-          box-shadow: none;
-          color: white; }
-    .sling-cms-editor .button.is-light {
-      background-color: whitesmoke;
-      border-color: transparent;
-      color: rgba(0, 0, 0, 0.7); }
-      .sling-cms-editor .button.is-light:hover, .sling-cms-editor .button.is-light.is-hovered {
-        background-color: #eeeeee;
-        border-color: transparent;
-        color: rgba(0, 0, 0, 0.7); }
-      .sling-cms-editor .button.is-light:focus, .sling-cms-editor .button.is-light.is-focused {
-        border-color: transparent;
-        color: rgba(0, 0, 0, 0.7); }
-        .sling-cms-editor .button.is-light:focus:not(:active), .sling-cms-editor .button.is-light.is-focused:not(:active) {
-          box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); }
-      .sling-cms-editor .button.is-light:active, .sling-cms-editor .button.is-light.is-active {
-        background-color: #e8e8e8;
-        border-color: transparent;
-        color: rgba(0, 0, 0, 0.7); }
-      .sling-cms-editor .button.is-light[disabled],
-      fieldset[disabled] .sling-cms-editor .button.is-light {
-        background-color: whitesmoke;
-        border-color: transparent;
-        box-shadow: none; }
-      .sling-cms-editor .button.is-light.is-inverted {
-        background-color: rgba(0, 0, 0, 0.7);
-        color: whitesmoke; }
-        .sling-cms-editor .button.is-light.is-inverted:hover, .sling-cms-editor .button.is-light.is-inverted.is-hovered {
-          background-color: rgba(0, 0, 0, 0.7); }
-        .sling-cms-editor .button.is-light.is-inverted[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-light.is-inverted {
-          background-color: rgba(0, 0, 0, 0.7);
-          border-color: transparent;
-          box-shadow: none;
-          color: whitesmoke; }
-      .sling-cms-editor .button.is-light.is-loading::after {
-        border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; }
-      .sling-cms-editor .button.is-light.is-outlined {
-        background-color: transparent;
-        border-color: whitesmoke;
-        color: whitesmoke; }
-        .sling-cms-editor .button.is-light.is-outlined:hover, .sling-cms-editor .button.is-light.is-outlined.is-hovered, .sling-cms-editor .button.is-light.is-outlined:focus, .sling-cms-editor .button.is-light.is-outlined.is-focused {
-          background-color: whitesmoke;
-          border-color: whitesmoke;
-          color: rgba(0, 0, 0, 0.7); }
-        .sling-cms-editor .button.is-light.is-outlined.is-loading::after {
-          border-color: transparent transparent whitesmoke whitesmoke !important; }
-        .sling-cms-editor .button.is-light.is-outlined.is-loading:hover::after, .sling-cms-editor .button.is-light.is-outlined.is-loading.is-hovered::after, .sling-cms-editor .button.is-light.is-outlined.is-loading:focus::after, .sling-cms-editor .button.is-light.is-outlined.is-loading.is-focused::after {
-          border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; }
-        .sling-cms-editor .button.is-light.is-outlined[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-light.is-outlined {
-          background-color: transparent;
-          border-color: whitesmoke;
-          box-shadow: none;
-          color: whitesmoke; }
-      .sling-cms-editor .button.is-light.is-inverted.is-outlined {
-        background-color: transparent;
-        border-color: rgba(0, 0, 0, 0.7);
-        color: rgba(0, 0, 0, 0.7); }
-        .sling-cms-editor .button.is-light.is-inverted.is-outlined:hover, .sling-cms-editor .button.is-light.is-inverted.is-outlined.is-hovered, .sling-cms-editor .button.is-light.is-inverted.is-outlined:focus, .sling-cms-editor .button.is-light.is-inverted.is-outlined.is-focused {
-          background-color: rgba(0, 0, 0, 0.7);
-          color: whitesmoke; }
-        .sling-cms-editor .button.is-light.is-inverted.is-outlined.is-loading:hover::after, .sling-cms-editor .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, .sling-cms-editor .button.is-light.is-inverted.is-outlined.is-loading:focus::after, .sling-cms-editor .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after {
-          border-color: transparent transparent whitesmoke whitesmoke !important; }
-        .sling-cms-editor .button.is-light.is-inverted.is-outlined[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-light.is-inverted.is-outlined {
-          background-color: transparent;
-          border-color: rgba(0, 0, 0, 0.7);
-          box-shadow: none;
-          color: rgba(0, 0, 0, 0.7); }
-    .sling-cms-editor .button.is-dark {
-      background-color: #363636;
-      border-color: transparent;
-      color: #fff; }
-      .sling-cms-editor .button.is-dark:hover, .sling-cms-editor .button.is-dark.is-hovered {
-        background-color: #2f2f2f;
-        border-color: transparent;
-        color: #fff; }
-      .sling-cms-editor .button.is-dark:focus, .sling-cms-editor .button.is-dark.is-focused {
-        border-color: transparent;
-        color: #fff; }
-        .sling-cms-editor .button.is-dark:focus:not(:active), .sling-cms-editor .button.is-dark.is-focused:not(:active) {
-          box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); }
-      .sling-cms-editor .button.is-dark:active, .sling-cms-editor .button.is-dark.is-active {
-        background-color: #292929;
-        border-color: transparent;
-        color: #fff; }
-      .sling-cms-editor .button.is-dark[disabled],
-      fieldset[disabled] .sling-cms-editor .button.is-dark {
-        background-color: #363636;
-        border-color: transparent;
-        box-shadow: none; }
-      .sling-cms-editor .button.is-dark.is-inverted {
-        background-color: #fff;
-        color: #363636; }
-        .sling-cms-editor .button.is-dark.is-inverted:hover, .sling-cms-editor .button.is-dark.is-inverted.is-hovered {
-          background-color: #f2f2f2; }
-        .sling-cms-editor .button.is-dark.is-inverted[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-dark.is-inverted {
-          background-color: #fff;
-          border-color: transparent;
-          box-shadow: none;
-          color: #363636; }
-      .sling-cms-editor .button.is-dark.is-loading::after {
-        border-color: transparent transparent #fff #fff !important; }
-      .sling-cms-editor .button.is-dark.is-outlined {
-        background-color: transparent;
-        border-color: #363636;
-        color: #363636; }
-        .sling-cms-editor .button.is-dark.is-outlined:hover, .sling-cms-editor .button.is-dark.is-outlined.is-hovered, .sling-cms-editor .button.is-dark.is-outlined:focus, .sling-cms-editor .button.is-dark.is-outlined.is-focused {
-          background-color: #363636;
-          border-color: #363636;
-          color: #fff; }
-        .sling-cms-editor .button.is-dark.is-outlined.is-loading::after {
-          border-color: transparent transparent #363636 #363636 !important; }
-        .sling-cms-editor .button.is-dark.is-outlined.is-loading:hover::after, .sling-cms-editor .button.is-dark.is-outlined.is-loading.is-hovered::after, .sling-cms-editor .button.is-dark.is-outlined.is-loading:focus::after, .sling-cms-editor .button.is-dark.is-outlined.is-loading.is-focused::after {
-          border-color: transparent transparent #fff #fff !important; }
-        .sling-cms-editor .button.is-dark.is-outlined[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-dark.is-outlined {
-          background-color: transparent;
-          border-color: #363636;
-          box-shadow: none;
-          color: #363636; }
-      .sling-cms-editor .button.is-dark.is-inverted.is-outlined {
-        background-color: transparent;
-        border-color: #fff;
-        color: #fff; }
-        .sling-cms-editor .button.is-dark.is-inverted.is-outlined:hover, .sling-cms-editor .button.is-dark.is-inverted.is-outlined.is-hovered, .sling-cms-editor .button.is-dark.is-inverted.is-outlined:focus, .sling-cms-editor .button.is-dark.is-inverted.is-outlined.is-focused {
-          background-color: #fff;
-          color: #363636; }
-        .sling-cms-editor .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, .sling-cms-editor .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, .sling-cms-editor .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, .sling-cms-editor .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after {
-          border-color: transparent transparent #363636 #363636 !important; }
-        .sling-cms-editor .button.is-dark.is-inverted.is-outlined[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-dark.is-inverted.is-outlined {
-          background-color: transparent;
-          border-color: #fff;
-          box-shadow: none;
-          color: #fff; }
-    .sling-cms-editor .button.is-primary {
-      background-color: #9E2165;
-      border-color: transparent;
-      color: #fff; }
-      .sling-cms-editor .button.is-primary:hover, .sling-cms-editor .button.is-primary.is-hovered {
-        background-color: #931f5e;
-        border-color: transparent;
-        color: #fff; }
-      .sling-cms-editor .button.is-primary:focus, .sling-cms-editor .button.is-primary.is-focused {
-        border-color: transparent;
-        color: #fff; }
-        .sling-cms-editor .button.is-primary:focus:not(:active), .sling-cms-editor .button.is-primary.is-focused:not(:active) {
-          box-shadow: 0 0 0 0.125em rgba(158, 33, 101, 0.25); }
-      .sling-cms-editor .button.is-primary:active, .sling-cms-editor .button.is-primary.is-active {
-        background-color: #891d58;
-        border-color: transparent;
-        color: #fff; }
-      .sling-cms-editor .button.is-primary[disabled],
-      fieldset[disabled] .sling-cms-editor .button.is-primary {
-        background-color: #9E2165;
-        border-color: transparent;
-        box-shadow: none; }
-      .sling-cms-editor .button.is-primary.is-inverted {
-        background-color: #fff;
-        color: #9E2165; }
-        .sling-cms-editor .button.is-primary.is-inverted:hover, .sling-cms-editor .button.is-primary.is-inverted.is-hovered {
-          background-color: #f2f2f2; }
-        .sling-cms-editor .button.is-primary.is-inverted[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-primary.is-inverted {
-          background-color: #fff;
-          border-color: transparent;
-          box-shadow: none;
-          color: #9E2165; }
-      .sling-cms-editor .button.is-primary.is-loading::after {
-        border-color: transparent transparent #fff #fff !important; }
-      .sling-cms-editor .button.is-primary.is-outlined {
-        background-color: transparent;
-        border-color: #9E2165;
-        color: #9E2165; }
-        .sling-cms-editor .button.is-primary.is-outlined:hover, .sling-cms-editor .button.is-primary.is-outlined.is-hovered, .sling-cms-editor .button.is-primary.is-outlined:focus, .sling-cms-editor .button.is-primary.is-outlined.is-focused {
-          background-color: #9E2165;
-          border-color: #9E2165;
-          color: #fff; }
-        .sling-cms-editor .button.is-primary.is-outlined.is-loading::after {
-          border-color: transparent transparent #9E2165 #9E2165 !important; }
-        .sling-cms-editor .button.is-primary.is-outlined.is-loading:hover::after, .sling-cms-editor .button.is-primary.is-outlined.is-loading.is-hovered::after, .sling-cms-editor .button.is-primary.is-outlined.is-loading:focus::after, .sling-cms-editor .button.is-primary.is-outlined.is-loading.is-focused::after {
-          border-color: transparent transparent #fff #fff !important; }
-        .sling-cms-editor .button.is-primary.is-outlined[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-primary.is-outlined {
-          background-color: transparent;
-          border-color: #9E2165;
-          box-shadow: none;
-          color: #9E2165; }
-      .sling-cms-editor .button.is-primary.is-inverted.is-outlined {
-        background-color: transparent;
-        border-color: #fff;
-        color: #fff; }
-        .sling-cms-editor .button.is-primary.is-inverted.is-outlined:hover, .sling-cms-editor .button.is-primary.is-inverted.is-outlined.is-hovered, .sling-cms-editor .button.is-primary.is-inverted.is-outlined:focus, .sling-cms-editor .button.is-primary.is-inverted.is-outlined.is-focused {
-          background-color: #fff;
-          color: #9E2165; }
-        .sling-cms-editor .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, .sling-cms-editor .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, .sling-cms-editor .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, .sling-cms-editor .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after {
-          border-color: transparent transparent #9E2165 #9E2165 !important; }
-        .sling-cms-editor .button.is-primary.is-inverted.is-outlined[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-primary.is-inverted.is-outlined {
-          background-color: transparent;
-          border-color: #fff;
-          box-shadow: none;
-          color: #fff; }
-      .sling-cms-editor .button.is-primary.is-light {
-        background-color: #fbeef5;
-        color: #d43089; }
-        .sling-cms-editor .button.is-primary.is-light:hover, .sling-cms-editor .button.is-primary.is-light.is-hovered {
-          background-color: #f9e4ef;
-          border-color: transparent;
-          color: #d43089; }
-        .sling-cms-editor .button.is-primary.is-light:active, .sling-cms-editor .button.is-primary.is-light.is-active {
-          background-color: #f7d9e9;
-          border-color: transparent;
-          color: #d43089; }
-    .sling-cms-editor .button.is-link {
-      background-color: #282661;
-      border-color: transparent;
-      color: #fff; }
-      .sling-cms-editor .button.is-link:hover, .sling-cms-editor .button.is-link.is-hovered {
-        background-color: #242258;
-        border-color: transparent;
-        color: #fff; }
-      .sling-cms-editor .button.is-link:focus, .sling-cms-editor .button.is-link.is-focused {
-        border-color: transparent;
-        color: #fff; }
-        .sling-cms-editor .button.is-link:focus:not(:active), .sling-cms-editor .button.is-link.is-focused:not(:active) {
-          box-shadow: 0 0 0 0.125em rgba(40, 38, 97, 0.25); }
-      .sling-cms-editor .button.is-link:active, .sling-cms-editor .button.is-link.is-active {
-        background-color: #201f4f;
-        border-color: transparent;
-        color: #fff; }
-      .sling-cms-editor .button.is-link[disabled],
-      fieldset[disabled] .sling-cms-editor .button.is-link {
-        background-color: #282661;
-        border-color: transparent;
-        box-shadow: none; }
-      .sling-cms-editor .button.is-link.is-inverted {
-        background-color: #fff;
-        color: #282661; }
-        .sling-cms-editor .button.is-link.is-inverted:hover, .sling-cms-editor .button.is-link.is-inverted.is-hovered {
-          background-color: #f2f2f2; }
-        .sling-cms-editor .button.is-link.is-inverted[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-link.is-inverted {
-          background-color: #fff;
-          border-color: transparent;
-          box-shadow: none;
-          color: #282661; }
-      .sling-cms-editor .button.is-link.is-loading::after {
-        border-color: transparent transparent #fff #fff !important; }
-      .sling-cms-editor .button.is-link.is-outlined {
-        background-color: transparent;
-        border-color: #282661;
-        color: #282661; }
-        .sling-cms-editor .button.is-link.is-outlined:hover, .sling-cms-editor .button.is-link.is-outlined.is-hovered, .sling-cms-editor .button.is-link.is-outlined:focus, .sling-cms-editor .button.is-link.is-outlined.is-focused {
-          background-color: #282661;
-          border-color: #282661;
-          color: #fff; }
-        .sling-cms-editor .button.is-link.is-outlined.is-loading::after {
-          border-color: transparent transparent #282661 #282661 !important; }
-        .sling-cms-editor .button.is-link.is-outlined.is-loading:hover::after, .sling-cms-editor .button.is-link.is-outlined.is-loading.is-hovered::after, .sling-cms-editor .button.is-link.is-outlined.is-loading:focus::after, .sling-cms-editor .button.is-link.is-outlined.is-loading.is-focused::after {
-          border-color: transparent transparent #fff #fff !important; }
-        .sling-cms-editor .button.is-link.is-outlined[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-link.is-outlined {
-          background-color: transparent;
-          border-color: #282661;
-          box-shadow: none;
-          color: #282661; }
-      .sling-cms-editor .button.is-link.is-inverted.is-outlined {
-        background-color: transparent;
-        border-color: #fff;
-        color: #fff; }
-        .sling-cms-editor .button.is-link.is-inverted.is-outlined:hover, .sling-cms-editor .button.is-link.is-inverted.is-outlined.is-hovered, .sling-cms-editor .button.is-link.is-inverted.is-outlined:focus, .sling-cms-editor .button.is-link.is-inverted.is-outlined.is-focused {
-          background-color: #fff;
-          color: #282661; }
-        .sling-cms-editor .button.is-link.is-inverted.is-outlined.is-loading:hover::after, .sling-cms-editor .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, .sling-cms-editor .button.is-link.is-inverted.is-outlined.is-loading:focus::after, .sling-cms-editor .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after {
-          border-color: transparent transparent #282661 #282661 !important; }
-        .sling-cms-editor .button.is-link.is-inverted.is-outlined[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-link.is-inverted.is-outlined {
-          background-color: transparent;
-          border-color: #fff;
-          box-shadow: none;
-          color: #fff; }
-      .sling-cms-editor .button.is-link.is-light {
-        background-color: #f1f0f9;
-        color: #5e5abe; }
-        .sling-cms-editor .button.is-link.is-light:hover, .sling-cms-editor .button.is-link.is-light.is-hovered {
-          background-color: #e8e7f6;
-          border-color: transparent;
-          color: #5e5abe; }
-        .sling-cms-editor .button.is-link.is-light:active, .sling-cms-editor .button.is-link.is-light.is-active {
-          background-color: #dfdef2;
-          border-color: transparent;
-          color: #5e5abe; }
-    .sling-cms-editor .button.is-info {
-      background-color: #3298dc;
-      border-color: transparent;
-      color: #fff; }
-      .sling-cms-editor .button.is-info:hover, .sling-cms-editor .button.is-info.is-hovered {
-        background-color: #2793da;
-        border-color: transparent;
-        color: #fff; }
-      .sling-cms-editor .button.is-info:focus, .sling-cms-editor .button.is-info.is-focused {
-        border-color: transparent;
-        color: #fff; }
-        .sling-cms-editor .button.is-info:focus:not(:active), .sling-cms-editor .button.is-info.is-focused:not(:active) {
-          box-shadow: 0 0 0 0.125em rgba(50, 152, 220, 0.25); }
-      .sling-cms-editor .button.is-info:active, .sling-cms-editor .button.is-info.is-active {
-        background-color: #238cd1;
-        border-color: transparent;
-        color: #fff; }
-      .sling-cms-editor .button.is-info[disabled],
-      fieldset[disabled] .sling-cms-editor .button.is-info {
-        background-color: #3298dc;
-        border-color: transparent;
-        box-shadow: none; }
-      .sling-cms-editor .button.is-info.is-inverted {
-        background-color: #fff;
-        color: #3298dc; }
-        .sling-cms-editor .button.is-info.is-inverted:hover, .sling-cms-editor .button.is-info.is-inverted.is-hovered {
-          background-color: #f2f2f2; }
-        .sling-cms-editor .button.is-info.is-inverted[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-info.is-inverted {
-          background-color: #fff;
-          border-color: transparent;
-          box-shadow: none;
-          color: #3298dc; }
-      .sling-cms-editor .button.is-info.is-loading::after {
-        border-color: transparent transparent #fff #fff !important; }
-      .sling-cms-editor .button.is-info.is-outlined {
-        background-color: transparent;
-        border-color: #3298dc;
-        color: #3298dc; }
-        .sling-cms-editor .button.is-info.is-outlined:hover, .sling-cms-editor .button.is-info.is-outlined.is-hovered, .sling-cms-editor .button.is-info.is-outlined:focus, .sling-cms-editor .button.is-info.is-outlined.is-focused {
-          background-color: #3298dc;
-          border-color: #3298dc;
-          color: #fff; }
-        .sling-cms-editor .button.is-info.is-outlined.is-loading::after {
-          border-color: transparent transparent #3298dc #3298dc !important; }
-        .sling-cms-editor .button.is-info.is-outlined.is-loading:hover::after, .sling-cms-editor .button.is-info.is-outlined.is-loading.is-hovered::after, .sling-cms-editor .button.is-info.is-outlined.is-loading:focus::after, .sling-cms-editor .button.is-info.is-outlined.is-loading.is-focused::after {
-          border-color: transparent transparent #fff #fff !important; }
-        .sling-cms-editor .button.is-info.is-outlined[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-info.is-outlined {
-          background-color: transparent;
-          border-color: #3298dc;
-          box-shadow: none;
-          color: #3298dc; }
-      .sling-cms-editor .button.is-info.is-inverted.is-outlined {
-        background-color: transparent;
-        border-color: #fff;
-        color: #fff; }
-        .sling-cms-editor .button.is-info.is-inverted.is-outlined:hover, .sling-cms-editor .button.is-info.is-inverted.is-outlined.is-hovered, .sling-cms-editor .button.is-info.is-inverted.is-outlined:focus, .sling-cms-editor .button.is-info.is-inverted.is-outlined.is-focused {
-          background-color: #fff;
-          color: #3298dc; }
-        .sling-cms-editor .button.is-info.is-inverted.is-outlined.is-loading:hover::after, .sling-cms-editor .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, .sling-cms-editor .button.is-info.is-inverted.is-outlined.is-loading:focus::after, .sling-cms-editor .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after {
-          border-color: transparent transparent #3298dc #3298dc !important; }
-        .sling-cms-editor .button.is-info.is-inverted.is-outlined[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-info.is-inverted.is-outlined {
-          background-color: transparent;
-          border-color: #fff;
-          box-shadow: none;
-          color: #fff; }
-      .sling-cms-editor .button.is-info.is-light {
-        background-color: #eef6fc;
-        color: #1d72aa; }
-        .sling-cms-editor .button.is-info.is-light:hover, .sling-cms-editor .button.is-info.is-light.is-hovered {
-          background-color: #e3f1fa;
-          border-color: transparent;
-          color: #1d72aa; }
-        .sling-cms-editor .button.is-info.is-light:active, .sling-cms-editor .button.is-info.is-light.is-active {
-          background-color: #d8ebf8;
-          border-color: transparent;
-          color: #1d72aa; }
-    .sling-cms-editor .button.is-success {
-      background-color: #48c774;
-      border-color: transparent;
-      color: #fff; }
-      .sling-cms-editor .button.is-success:hover, .sling-cms-editor .button.is-success.is-hovered {
-        background-color: #3ec46d;
-        border-color: transparent;
-        color: #fff; }
-      .sling-cms-editor .button.is-success:focus, .sling-cms-editor .button.is-success.is-focused {
-        border-color: transparent;
-        color: #fff; }
-        .sling-cms-editor .button.is-success:focus:not(:active), .sling-cms-editor .button.is-success.is-focused:not(:active) {
-          box-shadow: 0 0 0 0.125em rgba(72, 199, 116, 0.25); }
-      .sling-cms-editor .button.is-success:active, .sling-cms-editor .button.is-success.is-active {
-        background-color: #3abb67;
-        border-color: transparent;
-        color: #fff; }
-      .sling-cms-editor .button.is-success[disabled],
-      fieldset[disabled] .sling-cms-editor .button.is-success {
-        background-color: #48c774;
-        border-color: transparent;
-        box-shadow: none; }
-      .sling-cms-editor .button.is-success.is-inverted {
-        background-color: #fff;
-        color: #48c774; }
-        .sling-cms-editor .button.is-success.is-inverted:hover, .sling-cms-editor .button.is-success.is-inverted.is-hovered {
-          background-color: #f2f2f2; }
-        .sling-cms-editor .button.is-success.is-inverted[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-success.is-inverted {
-          background-color: #fff;
-          border-color: transparent;
-          box-shadow: none;
-          color: #48c774; }
-      .sling-cms-editor .button.is-success.is-loading::after {
-        border-color: transparent transparent #fff #fff !important; }
-      .sling-cms-editor .button.is-success.is-outlined {
-        background-color: transparent;
-        border-color: #48c774;
-        color: #48c774; }
-        .sling-cms-editor .button.is-success.is-outlined:hover, .sling-cms-editor .button.is-success.is-outlined.is-hovered, .sling-cms-editor .button.is-success.is-outlined:focus, .sling-cms-editor .button.is-success.is-outlined.is-focused {
-          background-color: #48c774;
-          border-color: #48c774;
-          color: #fff; }
-        .sling-cms-editor .button.is-success.is-outlined.is-loading::after {
-          border-color: transparent transparent #48c774 #48c774 !important; }
-        .sling-cms-editor .button.is-success.is-outlined.is-loading:hover::after, .sling-cms-editor .button.is-success.is-outlined.is-loading.is-hovered::after, .sling-cms-editor .button.is-success.is-outlined.is-loading:focus::after, .sling-cms-editor .button.is-success.is-outlined.is-loading.is-focused::after {
-          border-color: transparent transparent #fff #fff !important; }
-        .sling-cms-editor .button.is-success.is-outlined[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-success.is-outlined {
-          background-color: transparent;
-          border-color: #48c774;
-          box-shadow: none;
-          color: #48c774; }
-      .sling-cms-editor .button.is-success.is-inverted.is-outlined {
-        background-color: transparent;
-        border-color: #fff;
-        color: #fff; }
-        .sling-cms-editor .button.is-success.is-inverted.is-outlined:hover, .sling-cms-editor .button.is-success.is-inverted.is-outlined.is-hovered, .sling-cms-editor .button.is-success.is-inverted.is-outlined:focus, .sling-cms-editor .button.is-success.is-inverted.is-outlined.is-focused {
-          background-color: #fff;
-          color: #48c774; }
-        .sling-cms-editor .button.is-success.is-inverted.is-outlined.is-loading:hover::after, .sling-cms-editor .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, .sling-cms-editor .button.is-success.is-inverted.is-outlined.is-loading:focus::after, .sling-cms-editor .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after {
-          border-color: transparent transparent #48c774 #48c774 !important; }
-        .sling-cms-editor .button.is-success.is-inverted.is-outlined[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-success.is-inverted.is-outlined {
-          background-color: transparent;
-          border-color: #fff;
-          box-shadow: none;
-          color: #fff; }
-      .sling-cms-editor .button.is-success.is-light {
-        background-color: #effaf3;
-        color: #257942; }
-        .sling-cms-editor .button.is-success.is-light:hover, .sling-cms-editor .button.is-success.is-light.is-hovered {
-          background-color: #e6f7ec;
-          border-color: transparent;
-          color: #257942; }
-        .sling-cms-editor .button.is-success.is-light:active, .sling-cms-editor .button.is-success.is-light.is-active {
-          background-color: #dcf4e4;
-          border-color: transparent;
-          color: #257942; }
-    .sling-cms-editor .button.is-warning {
-      background-color: #EA7826;
-      border-color: transparent;
-      color: #fff; }
-      .sling-cms-editor .button.is-warning:hover, .sling-cms-editor .button.is-warning.is-hovered {
-        background-color: #e9711a;
-        border-color: transparent;
-        color: #fff; }
-      .sling-cms-editor .button.is-warning:focus, .sling-cms-editor .button.is-warning.is-focused {
-        border-color: transparent;
-        color: #fff; }
-        .sling-cms-editor .button.is-warning:focus:not(:active), .sling-cms-editor .button.is-warning.is-focused:not(:active) {
-          box-shadow: 0 0 0 0.125em rgba(234, 120, 38, 0.25); }
-      .sling-cms-editor .button.is-warning:active, .sling-cms-editor .button.is-warning.is-active {
-        background-color: #e16b16;
-        border-color: transparent;
-        color: #fff; }
-      .sling-cms-editor .button.is-warning[disabled],
-      fieldset[disabled] .sling-cms-editor .button.is-warning {
-        background-color: #EA7826;
-        border-color: transparent;
-        box-shadow: none; }
-      .sling-cms-editor .button.is-warning.is-inverted {
-        background-color: #fff;
-        color: #EA7826; }
-        .sling-cms-editor .button.is-warning.is-inverted:hover, .sling-cms-editor .button.is-warning.is-inverted.is-hovered {
-          background-color: #f2f2f2; }
-        .sling-cms-editor .button.is-warning.is-inverted[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-warning.is-inverted {
-          background-color: #fff;
-          border-color: transparent;
-          box-shadow: none;
-          color: #EA7826; }
-      .sling-cms-editor .button.is-warning.is-loading::after {
-        border-color: transparent transparent #fff #fff !important; }
-      .sling-cms-editor .button.is-warning.is-outlined {
-        background-color: transparent;
-        border-color: #EA7826;
-        color: #EA7826; }
-        .sling-cms-editor .button.is-warning.is-outlined:hover, .sling-cms-editor .button.is-warning.is-outlined.is-hovered, .sling-cms-editor .button.is-warning.is-outlined:focus, .sling-cms-editor .button.is-warning.is-outlined.is-focused {
-          background-color: #EA7826;
-          border-color: #EA7826;
-          color: #fff; }
-        .sling-cms-editor .button.is-warning.is-outlined.is-loading::after {
-          border-color: transparent transparent #EA7826 #EA7826 !important; }
-        .sling-cms-editor .button.is-warning.is-outlined.is-loading:hover::after, .sling-cms-editor .button.is-warning.is-outlined.is-loading.is-hovered::after, .sling-cms-editor .button.is-warning.is-outlined.is-loading:focus::after, .sling-cms-editor .button.is-warning.is-outlined.is-loading.is-focused::after {
-          border-color: transparent transparent #fff #fff !important; }
-        .sling-cms-editor .button.is-warning.is-outlined[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-warning.is-outlined {
-          background-color: transparent;
-          border-color: #EA7826;
-          box-shadow: none;
-          color: #EA7826; }
-      .sling-cms-editor .button.is-warning.is-inverted.is-outlined {
-        background-color: transparent;
-        border-color: #fff;
-        color: #fff; }
-        .sling-cms-editor .button.is-warning.is-inverted.is-outlined:hover, .sling-cms-editor .button.is-warning.is-inverted.is-outlined.is-hovered, .sling-cms-editor .button.is-warning.is-inverted.is-outlined:focus, .sling-cms-editor .button.is-warning.is-inverted.is-outlined.is-focused {
-          background-color: #fff;
-          color: #EA7826; }
-        .sling-cms-editor .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, .sling-cms-editor .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, .sling-cms-editor .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, .sling-cms-editor .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after {
-          border-color: transparent transparent #EA7826 #EA7826 !important; }
-        .sling-cms-editor .button.is-warning.is-inverted.is-outlined[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-warning.is-inverted.is-outlined {
-          background-color: transparent;
-          border-color: #fff;
-          box-shadow: none;
-          color: #fff; }
-      .sling-cms-editor .button.is-warning.is-light {
-        background-color: #fdf3ec;
-        color: #b15411; }
-        .sling-cms-editor .button.is-warning.is-light:hover, .sling-cms-editor .button.is-warning.is-light.is-hovered {
-          background-color: #fcece1;
-          border-color: transparent;
-          color: #b15411; }
-        .sling-cms-editor .button.is-warning.is-light:active, .sling-cms-editor .button.is-warning.is-light.is-active {
-          background-color: #fbe5d5;
-          border-color: transparent;
-          color: #b15411; }
-    .sling-cms-editor .button.is-danger {
-      background-color: #CB2138;
-      border-color: transparent;
-      color: #fff; }
-      .sling-cms-editor .button.is-danger:hover, .sling-cms-editor .button.is-danger.is-hovered {
-        background-color: #c01f35;
-        border-color: transparent;
-        color: #fff; }
-      .sling-cms-editor .button.is-danger:focus, .sling-cms-editor .button.is-danger.is-focused {
-        border-color: transparent;
-        color: #fff; }
-        .sling-cms-editor .button.is-danger:focus:not(:active), .sling-cms-editor .button.is-danger.is-focused:not(:active) {
-          box-shadow: 0 0 0 0.125em rgba(203, 33, 56, 0.25); }
-      .sling-cms-editor .button.is-danger:active, .sling-cms-editor .button.is-danger.is-active {
-        background-color: #b51d32;
-        border-color: transparent;
-        color: #fff; }
-      .sling-cms-editor .button.is-danger[disabled],
-      fieldset[disabled] .sling-cms-editor .button.is-danger {
-        background-color: #CB2138;
-        border-color: transparent;
-        box-shadow: none; }
-      .sling-cms-editor .button.is-danger.is-inverted {
-        background-color: #fff;
-        color: #CB2138; }
-        .sling-cms-editor .button.is-danger.is-inverted:hover, .sling-cms-editor .button.is-danger.is-inverted.is-hovered {
-          background-color: #f2f2f2; }
-        .sling-cms-editor .button.is-danger.is-inverted[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-danger.is-inverted {
-          background-color: #fff;
-          border-color: transparent;
-          box-shadow: none;
-          color: #CB2138; }
-      .sling-cms-editor .button.is-danger.is-loading::after {
-        border-color: transparent transparent #fff #fff !important; }
-      .sling-cms-editor .button.is-danger.is-outlined {
-        background-color: transparent;
-        border-color: #CB2138;
-        color: #CB2138; }
-        .sling-cms-editor .button.is-danger.is-outlined:hover, .sling-cms-editor .button.is-danger.is-outlined.is-hovered, .sling-cms-editor .button.is-danger.is-outlined:focus, .sling-cms-editor .button.is-danger.is-outlined.is-focused {
-          background-color: #CB2138;
-          border-color: #CB2138;
-          color: #fff; }
-        .sling-cms-editor .button.is-danger.is-outlined.is-loading::after {
-          border-color: transparent transparent #CB2138 #CB2138 !important; }
-        .sling-cms-editor .button.is-danger.is-outlined.is-loading:hover::after, .sling-cms-editor .button.is-danger.is-outlined.is-loading.is-hovered::after, .sling-cms-editor .button.is-danger.is-outlined.is-loading:focus::after, .sling-cms-editor .button.is-danger.is-outlined.is-loading.is-focused::after {
-          border-color: transparent transparent #fff #fff !important; }
-        .sling-cms-editor .button.is-danger.is-outlined[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-danger.is-outlined {
-          background-color: transparent;
-          border-color: #CB2138;
-          box-shadow: none;
-          color: #CB2138; }
-      .sling-cms-editor .button.is-danger.is-inverted.is-outlined {
-        background-color: transparent;
-        border-color: #fff;
-        color: #fff; }
-        .sling-cms-editor .button.is-danger.is-inverted.is-outlined:hover, .sling-cms-editor .button.is-danger.is-inverted.is-outlined.is-hovered, .sling-cms-editor .button.is-danger.is-inverted.is-outlined:focus, .sling-cms-editor .button.is-danger.is-inverted.is-outlined.is-focused {
-          background-color: #fff;
-          color: #CB2138; }
-        .sling-cms-editor .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, .sling-cms-editor .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, .sling-cms-editor .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, .sling-cms-editor .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after {
-          border-color: transparent transparent #CB2138 #CB2138 !important; }
-        .sling-cms-editor .button.is-danger.is-inverted.is-outlined[disabled],
-        fieldset[disabled] .sling-cms-editor .button.is-danger.is-inverted.is-outlined {
-          background-color: transparent;
-          border-color: #fff;
-          box-shadow: none;
-          color: #fff; }
-      .sling-cms-editor .button.is-danger.is-light {
-        background-color: #fcedef;
-        color: #d3223a; }
-        .sling-cms-editor .button.is-danger.is-light:hover, .sling-cms-editor .button.is-danger.is-light.is-hovered {
-          background-color: #fae2e6;
-          border-color: transparent;
-          color: #d3223a; }
-        .sling-cms-editor .button.is-danger.is-light:active, .sling-cms-editor .button.is-danger.is-light.is-active {
-          background-color: #f9d8dc;
-          border-color: transparent;
-          color: #d3223a; }
-    .sling-cms-editor .button.is-small {
-      border-radius: 2px;
-      font-size: 0.75rem; }
-    .sling-cms-editor .button.is-normal {
-      font-size: 1rem; }
-    .sling-cms-editor .button.is-medium {
-      font-size: 1.25rem; }
-    .sling-cms-editor .button.is-large {
-      font-size: 1.5rem; }
-    .sling-cms-editor .button[disabled],
-    fieldset[disabled] .sling-cms-editor .button {
-      background-color: white;
-      border-color: #dbdbdb;
-      box-shadow: none;
-      opacity: 0.5; }
-    .sling-cms-editor .button.is-fullwidth {
-      display: flex;
-      width: 100%; }
-    .sling-cms-editor .button.is-loading {
-      color: transparent !important;
-      pointer-events: none; }
-      .sling-cms-editor .button.is-loading::after {
-        position: absolute;
-        left: calc(50% - (1em / 2));
-        top: calc(50% - (1em / 2));
-        position: absolute !important; }
-    .sling-cms-editor .button.is-static {
-      background-color: whitesmoke;
-      border-color: #dbdbdb;
-      color: #7a7a7a;
-      box-shadow: none;
-      pointer-events: none; }
-    .sling-cms-editor .button.is-rounded {
-      border-radius: 290486px;
-      padding-left: calc(1em + 0.25em);
-      padding-right: calc(1em + 0.25em); }
-  .sling-cms-editor .buttons {
-    align-items: center;
-    display: flex;
-    flex-wrap: wrap;
-    justify-content: flex-start; }
-    .sling-cms-editor .buttons .button {
-      margin-bottom: 0.5rem; }
-      .sling-cms-editor .buttons .button:not(:last-child):not(.is-fullwidth) {
-        margin-right: 0.5rem; }
-    .sling-cms-editor .buttons:last-child {
-      margin-bottom: -0.5rem; }
-    .sling-cms-editor .buttons:not(:last-child) {
-      margin-bottom: 1rem; }
-    .sling-cms-editor .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) {
-      border-radius: 2px;
-      font-size: 0.75rem; }
-    .sling-cms-editor .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) {
-      font-size: 1.25rem; }
-    .sling-cms-editor .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) {
-      font-size: 1.5rem; }
-    .sling-cms-editor .buttons.has-addons .button:not(:first-child) {
-      border-bottom-left-radius: 0;
-      border-top-left-radius: 0; }
-    .sling-cms-editor .buttons.has-addons .button:not(:last-child) {
-      border-bottom-right-radius: 0;
-      border-top-right-radius: 0;
-      margin-right: -1px; }
-    .sling-cms-editor .buttons.has-addons .button:last-child {
-      margin-right: 0; }
-    .sling-cms-editor .buttons.has-addons .button:hover, .sling-cms-editor .buttons.has-addons .button.is-hovered {
-      z-index: 2; }
-    .sling-cms-editor .buttons.has-addons .button:focus, .sling-cms-editor .buttons.has-addons .button.is-focused, .sling-cms-editor .buttons.has-addons .button:active, .sling-cms-editor .buttons.has-addons .button.is-active, .sling-cms-editor .buttons.has-addons .button.is-selected {
-      z-index: 3; }
-      .sling-cms-editor .buttons.has-addons .button:focus:hover, .sling-cms-editor .buttons.has-addons .button.is-focused:hover, .sling-cms-editor .buttons.has-addons .button:active:hover, .sling-cms-editor .buttons.has-addons .button.is-active:hover, .sling-cms-editor .buttons.has-addons .button.is-selected:hover {
-        z-index: 4; }
-    .sling-cms-editor .buttons.has-addons .button.is-expanded {
-      flex-grow: 1;
-      flex-shrink: 1; }
-    .sling-cms-editor .buttons.is-centered {
-      justify-content: center; }
-      .sling-cms-editor .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) {
-        margin-left: 0.25rem;
-        margin-right: 0.25rem; }
-    .sling-cms-editor .buttons.is-right {
-      justify-content: flex-end; }
-      .sling-cms-editor .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) {
-        margin-left: 0.25rem;
-        margin-right: 0.25rem; }
-  .sling-cms-editor .input, .sling-cms-editor .textarea, .sling-cms-editor .select select {
-    background-color: white;
-    border-color: #dbdbdb;
-    border-radius: 4px;
-    color: #363636; }
-    .sling-cms-editor .input::-moz-placeholder, .sling-cms-editor .textarea::-moz-placeholder, .sling-cms-editor .select select::-moz-placeholder {
-      color: rgba(54, 54, 54, 0.3); }
-    .sling-cms-editor .input::-webkit-input-placeholder, .sling-cms-editor .textarea::-webkit-input-placeholder, .sling-cms-editor .select select::-webkit-input-placeholder {
-      color: rgba(54, 54, 54, 0.3); }
-    .sling-cms-editor .input:-moz-placeholder, .sling-cms-editor .textarea:-moz-placeholder, .sling-cms-editor .select select:-moz-placeholder {
-      color: rgba(54, 54, 54, 0.3); }
-    .sling-cms-editor .input:-ms-input-placeholder, .sling-cms-editor .textarea:-ms-input-placeholder, .sling-cms-editor .select select:-ms-input-placeholder {
-      color: rgba(54, 54, 54, 0.3); }
-    .sling-cms-editor .input:hover, .sling-cms-editor .textarea:hover, .sling-cms-editor .select select:hover, .sling-cms-editor .is-hovered.input, .sling-cms-editor .is-hovered.textarea, .sling-cms-editor .select select.is-hovered {
-      border-color: #b5b5b5; }
-    .sling-cms-editor .input:focus, .sling-cms-editor .textarea:focus, .sling-cms-editor .select select:focus, .sling-cms-editor .is-focused.input, .sling-cms-editor .is-focused.textarea, .sling-cms-editor .select select.is-focused, .sling-cms-editor .input:active, .sling-cms-editor .textarea:active, .sling-cms-editor .select select:active, .sling-cms-editor .is-active.input, .sling-cms-editor .is-active.textarea, .sling-cms-editor .select select.is-active {
-      border-color: #282661;
-      box-shadow: 0 0 0 0.125em rgba(40, 38, 97, 0.25); }
-    .sling-cms-editor .input[disabled], .sling-cms-editor .textarea[disabled], .sling-cms-editor .select select[disabled],
-    fieldset[disabled] .sling-cms-editor .input,
-    fieldset[disabled] .sling-cms-editor .textarea,
-    fieldset[disabled] .sling-cms-editor .select select {
-      background-color: whitesmoke;
-      border-color: whitesmoke;
-      box-shadow: none;
-      color: #7a7a7a; }
-      .sling-cms-editor .input[disabled]::-moz-placeholder, .sling-cms-editor .textarea[disabled]::-moz-placeholder, .sling-cms-editor .select select[disabled]::-moz-placeholder,
-      fieldset[disabled] .sling-cms-editor .input::-moz-placeholder,
-      fieldset[disabled] .sling-cms-editor .textarea::-moz-placeholder,
-      fieldset[disabled] .sling-cms-editor .select select::-moz-placeholder {
-        color: rgba(122, 122, 122, 0.3); }
-      .sling-cms-editor .input[disabled]::-webkit-input-placeholder, .sling-cms-editor .textarea[disabled]::-webkit-input-placeholder, .sling-cms-editor .select select[disabled]::-webkit-input-placeholder,
-      fieldset[disabled] .sling-cms-editor .input::-webkit-input-placeholder,
-      fieldset[disabled] .sling-cms-editor .textarea::-webkit-input-placeholder,
-      fieldset[disabled] .sling-cms-editor .select select::-webkit-input-placeholder {
-        color: rgba(122, 122, 122, 0.3); }
-      .sling-cms-editor .input[disabled]:-moz-placeholder, .sling-cms-editor .textarea[disabled]:-moz-placeholder, .sling-cms-editor .select select[disabled]:-moz-placeholder,
-      fieldset[disabled] .sling-cms-editor .input:-moz-placeholder,
-      fieldset[disabled] .sling-cms-editor .textarea:-moz-placeholder,
-      fieldset[disabled] .sling-cms-editor .select select:-moz-placeholder {
-        color: rgba(122, 122, 122, 0.3); }
-      .sling-cms-editor .input[disabled]:-ms-input-placeholder, .sling-cms-editor .textarea[disabled]:-ms-input-placeholder, .sling-cms-editor .select select[disabled]:-ms-input-placeholder,
-      fieldset[disabled] .sling-cms-editor .input:-ms-input-placeholder,
-      fieldset[disabled] .sling-cms-editor .textarea:-ms-input-placeholder,
-      fieldset[disabled] .sling-cms-editor .select select:-ms-input-placeholder {
-        color: rgba(122, 122, 122, 0.3); }
-  .sling-cms-editor .input, .sling-cms-editor .textarea {
-    box-shadow: inset 0 0.0625em 0.125em rgba(10, 10, 10, 0.05);
-    max-width: 100%;
-    width: 100%; }
-    .sling-cms-editor .input[readonly], .sling-cms-editor .textarea[readonly] {
-      box-shadow: none; }
-    .sling-cms-editor .is-white.input, .sling-cms-editor .is-white.textarea {
-      border-color: white; }
-      .sling-cms-editor .is-white.input:focus, .sling-cms-editor .is-white.textarea:focus, .sling-cms-editor .is-white.is-focused.input, .sling-cms-editor .is-white.is-focused.textarea, .sling-cms-editor .is-white.input:active, .sling-cms-editor .is-white.textarea:active, .sling-cms-editor .is-white.is-active.input, .sling-cms-editor .is-white.is-active.textarea {
-        box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }
-    .sling-cms-editor .is-black.input, .sling-cms-editor .is-black.textarea {
-      border-color: #0a0a0a; }
-      .sling-cms-editor .is-black.input:focus, .sling-cms-editor .is-black.textarea:focus, .sling-cms-editor .is-black.is-focused.input, .sling-cms-editor .is-black.is-focused.textarea, .sling-cms-editor .is-black.input:active, .sling-cms-editor .is-black.textarea:active, .sling-cms-editor .is-black.is-active.input, .sling-cms-editor .is-black.is-active.textarea {
-        box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }
-    .sling-cms-editor .is-light.input, .sling-cms-editor .is-light.textarea {
-      border-color: whitesmoke; }
-      .sling-cms-editor .is-light.input:focus, .sling-cms-editor .is-light.textarea:focus, .sling-cms-editor .is-light.is-focused.input, .sling-cms-editor .is-light.is-focused.textarea, .sling-cms-editor .is-light.input:active, .sling-cms-editor .is-light.textarea:active, .sling-cms-editor .is-light.is-active.input, .sling-cms-editor .is-light.is-active.textarea {
-        box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); }
-    .sling-cms-editor .is-dark.input, .sling-cms-editor .is-dark.textarea {
-      border-color: #363636; }
-      .sling-cms-editor .is-dark.input:focus, .sling-cms-editor .is-dark.textarea:focus, .sling-cms-editor .is-dark.is-focused.input, .sling-cms-editor .is-dark.is-focused.textarea, .sling-cms-editor .is-dark.input:active, .sling-cms-editor .is-dark.textarea:active, .sling-cms-editor .is-dark.is-active.input, .sling-cms-editor .is-dark.is-active.textarea {
-        box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); }
-    .sling-cms-editor .is-primary.input, .sling-cms-editor .is-primary.textarea {
-      border-color: #9E2165; }
-      .sling-cms-editor .is-primary.input:focus, .sling-cms-editor .is-primary.textarea:focus, .sling-cms-editor .is-primary.is-focused.input, .sling-cms-editor .is-primary.is-focused.textarea, .sling-cms-editor .is-primary.input:active, .sling-cms-editor .is-primary.textarea:active, .sling-cms-editor .is-primary.is-active.input, .sling-cms-editor .is-primary.is-active.textarea {
-        box-shadow: 0 0 0 0.125em rgba(158, 33, 101, 0.25); }
-    .sling-cms-editor .is-link.input, .sling-cms-editor .is-link.textarea {
-      border-color: #282661; }
-      .sling-cms-editor .is-link.input:focus, .sling-cms-editor .is-link.textarea:focus, .sling-cms-editor .is-link.is-focused.input, .sling-cms-editor .is-link.is-focused.textarea, .sling-cms-editor .is-link.input:active, .sling-cms-editor .is-link.textarea:active, .sling-cms-editor .is-link.is-active.input, .sling-cms-editor .is-link.is-active.textarea {
-        box-shadow: 0 0 0 0.125em rgba(40, 38, 97, 0.25); }
-    .sling-cms-editor .is-info.input, .sling-cms-editor .is-info.textarea {
-      border-color: #3298dc; }
-      .sling-cms-editor .is-info.input:focus, .sling-cms-editor .is-info.textarea:focus, .sling-cms-editor .is-info.is-focused.input, .sling-cms-editor .is-info.is-focused.textarea, .sling-cms-editor .is-info.input:active, .sling-cms-editor .is-info.textarea:active, .sling-cms-editor .is-info.is-active.input, .sling-cms-editor .is-info.is-active.textarea {
-        box-shadow: 0 0 0 0.125em rgba(50, 152, 220, 0.25); }
-    .sling-cms-editor .is-success.input, .sling-cms-editor .is-success.textarea {
-      border-color: #48c774; }
-      .sling-cms-editor .is-success.input:focus, .sling-cms-editor .is-success.textarea:focus, .sling-cms-editor .is-success.is-focused.input, .sling-cms-editor .is-success.is-focused.textarea, .sling-cms-editor .is-success.input:active, .sling-cms-editor .is-success.textarea:active, .sling-cms-editor .is-success.is-active.input, .sling-cms-editor .is-success.is-active.textarea {
-        box-shadow: 0 0 0 0.125em rgba(72, 199, 116, 0.25); }
-    .sling-cms-editor .is-warning.input, .sling-cms-editor .is-warning.textarea {
-      border-color: #EA7826; }
-      .sling-cms-editor .is-warning.input:focus, .sling-cms-editor .is-warning.textarea:focus, .sling-cms-editor .is-warning.is-focused.input, .sling-cms-editor .is-warning.is-focused.textarea, .sling-cms-editor .is-warning.input:active, .sling-cms-editor .is-warning.textarea:active, .sling-cms-editor .is-warning.is-active.input, .sling-cms-editor .is-warning.is-active.textarea {
-        box-shadow: 0 0 0 0.125em rgba(234, 120, 38, 0.25); }
-    .sling-cms-editor .is-danger.input, .sling-cms-editor .is-danger.textarea {
-      border-color: #CB2138; }
-      .sling-cms-editor .is-danger.input:focus, .sling-cms-editor .is-danger.textarea:focus, .sling-cms-editor .is-danger.is-focused.input, .sling-cms-editor .is-danger.is-focused.textarea, .sling-cms-editor .is-danger.input:active, .sling-cms-editor .is-danger.textarea:active, .sling-cms-editor .is-danger.is-active.input, .sling-cms-editor .is-danger.is-active.textarea {
-        box-shadow: 0 0 0 0.125em rgba(203, 33, 56, 0.25); }
-    .sling-cms-editor .is-small.input, .sling-cms-editor .is-small.textarea {
-      border-radius: 2px;
-      font-size: 0.75rem; }
-    .sling-cms-editor .is-medium.input, .sling-cms-editor .is-medium.textarea {
-      font-size: 1.25rem; }
-    .sling-cms-editor .is-large.input, .sling-cms-editor .is-large.textarea {
-      font-size: 1.5rem; }
-    .sling-cms-editor .is-fullwidth.input, .sling-cms-editor .is-fullwidth.textarea {
-      display: block;
-      width: 100%; }
-    .sling-cms-editor .is-inline.input, .sling-cms-editor .is-inline.textarea {
-      display: inline;
-      width: auto; }
-  .sling-cms-editor .input.is-rounded {
-    border-radius: 290486px;
-    padding-left: calc(calc(0.75em - 1px) + 0.375em);
-    padding-right: calc(calc(0.75em - 1px) + 0.375em); }
-  .sling-cms-editor .input.is-static {
-    background-color: transparent;
-    border-color: transparent;
-    box-shadow: none;
-    padding-left: 0;
-    padding-right: 0; }
-  .sling-cms-editor .textarea {
-    display: block;
-    max-width: 100%;
-    min-width: 100%;
-    padding: calc(0.75em - 1px);
-    resize: vertical; }
-    .sling-cms-editor .textarea:not([rows]) {
-      max-height: 40em;
-      min-height: 8em; }
-    .sling-cms-editor .textarea[rows] {
-      height: initial; }
-    .sling-cms-editor .textarea.has-fixed-size {
-      resize: none; }
-  .sling-cms-editor .checkbox, .sling-cms-editor .radio {
-    cursor: pointer;
-    display: inline-block;
-    line-height: 1.25;
-    position: relative; }
-    .sling-cms-editor .checkbox input, .sling-cms-editor .radio input {
-      cursor: pointer; }
-    .sling-cms-editor .checkbox:hover, .sling-cms-editor .radio:hover {
-      color: #363636; }
-    .sling-cms-editor .checkbox[disabled], .sling-cms-editor .radio[disabled],
-    fieldset[disabled] .sling-cms-editor .checkbox,
-    fieldset[disabled] .sling-cms-editor .radio {
-      color: #7a7a7a;
-      cursor: not-allowed; }
-  .sling-cms-editor .radio + .radio {
-    margin-left: 0.5em; }
-  .sling-cms-editor .select {
-    display: inline-block;
-    max-width: 100%;
-    position: relative;
-    vertical-align: top; }
-    .sling-cms-editor .select:not(.is-multiple) {
-      height: 2.5em; }
-    .sling-cms-editor .select:not(.is-multiple):not(.is-loading)::after {
-      border-color: #282661;
-      right: 1.125em;
-      z-index: 4; }
-    .sling-cms-editor .select.is-rounded select {
-      border-radius: 290486px;
-      padding-left: 1em; }
-    .sling-cms-editor .select select {
-      cursor: pointer;
-      display: block;
-      font-size: 1em;
-      max-width: 100%;
-      outline: none; }
-      .sling-cms-editor .select select::-ms-expand {
-        display: none; }
-      .sling-cms-editor .select select[disabled]:hover,
-      fieldset[disabled] .sling-cms-editor .select select:hover {
-        border-color: whitesmoke; }
-      .sling-cms-editor .select select:not([multiple]) {
-        padding-right: 2.5em; }
-      .sling-cms-editor .select select[multiple] {
-        height: auto;
-        padding: 0; }
-        .sling-cms-editor .select select[multiple] option {
-          padding: 0.5em 1em; }
-    .sling-cms-editor .select:not(.is-multiple):not(.is-loading):hover::after {
-      border-color: #363636; }
-    .sling-cms-editor .select.is-white:not(:hover)::after {
-      border-color: white; }
-    .sling-cms-editor .select.is-white select {
-      border-color: white; }
-      .sling-cms-editor .select.is-white select:hover, .sling-cms-editor .select.is-white select.is-hovered {
-        border-color: #f2f2f2; }
-      .sling-cms-editor .select.is-white select:focus, .sling-cms-editor .select.is-white select.is-focused, .sling-cms-editor .select.is-white select:active, .sling-cms-editor .select.is-white select.is-active {
-        box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }
-    .sling-cms-editor .select.is-black:not(:hover)::after {
-      border-color: #0a0a0a; }
-    .sling-cms-editor .select.is-black select {
-      border-color: #0a0a0a; }
-      .sling-cms-editor .select.is-black select:hover, .sling-cms-editor .select.is-black select.is-hovered {
-        border-color: black; }
-      .sling-cms-editor .select.is-black select:focus, .sling-cms-editor .select.is-black select.is-focused, .sling-cms-editor .select.is-black select:active, .sling-cms-editor .select.is-black select.is-active {
-        box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }
-    .sling-cms-editor .select.is-light:not(:hover)::after {
-      border-color: whitesmoke; }
-    .sling-cms-editor .select.is-light select {
-      border-color: whitesmoke; }
-      .sling-cms-editor .select.is-light select:hover, .sling-cms-editor .select.is-light select.is-hovered {
-        border-color: #e8e8e8; }
-      .sling-cms-editor .select.is-light select:focus, .sling-cms-editor .select.is-light select.is-focused, .sling-cms-editor .select.is-light select:active, .sling-cms-editor .select.is-light select.is-active {
-        box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); }
-    .sling-cms-editor .select.is-dark:not(:hover)::after {
-      border-color: #363636; }
-    .sling-cms-editor .select.is-dark select {
-      border-color: #363636; }
-      .sling-cms-editor .select.is-dark select:hover, .sling-cms-editor .select.is-dark select.is-hovered {
-        border-color: #292929; }
-      .sling-cms-editor .select.is-dark select:focus, .sling-cms-editor .select.is-dark select.is-focused, .sling-cms-editor .select.is-dark select:active, .sling-cms-editor .select.is-dark select.is-active {
-        box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); }
-    .sling-cms-editor .select.is-primary:not(:hover)::after {
-      border-color: #9E2165; }
-    .sling-cms-editor .select.is-primary select {
-      border-color: #9E2165; }
-      .sling-cms-editor .select.is-primary select:hover, .sling-cms-editor .select.is-primary select.is-hovered {
-        border-color: #891d58; }
-      .sling-cms-editor .select.is-primary select:focus, .sling-cms-editor .select.is-primary select.is-focused, .sling-cms-editor .select.is-primary select:active, .sling-cms-editor .select.is-primary select.is-active {
-        box-shadow: 0 0 0 0.125em rgba(158, 33, 101, 0.25); }
-    .sling-cms-editor .select.is-link:not(:hover)::after {
-      border-color: #282661; }
-    .sling-cms-editor .select.is-link select {
-      border-color: #282661; }
-      .sling-cms-editor .select.is-link select:hover, .sling-cms-editor .select.is-link select.is-hovered {
-        border-color: #201f4f; }
-      .sling-cms-editor .select.is-link select:focus, .sling-cms-editor .select.is-link select.is-focused, .sling-cms-editor .select.is-link select:active, .sling-cms-editor .select.is-link select.is-active {
-        box-shadow: 0 0 0 0.125em rgba(40, 38, 97, 0.25); }
-    .sling-cms-editor .select.is-info:not(:hover)::after {
-      border-color: #3298dc; }
-    .sling-cms-editor .select.is-info select {
-      border-color: #3298dc; }
-      .sling-cms-editor .select.is-info select:hover, .sling-cms-editor .select.is-info select.is-hovered {
-        border-color: #238cd1; }
-      .sling-cms-editor .select.is-info select:focus, .sling-cms-editor .select.is-info select.is-focused, .sling-cms-editor .select.is-info select:active, .sling-cms-editor .select.is-info select.is-active {
-        box-shadow: 0 0 0 0.125em rgba(50, 152, 220, 0.25); }
-    .sling-cms-editor .select.is-success:not(:hover)::after {
-      border-color: #48c774; }
-    .sling-cms-editor .select.is-success select {
-      border-color: #48c774; }
-      .sling-cms-editor .select.is-success select:hover, .sling-cms-editor .select.is-success select.is-hovered {
-        border-color: #3abb67; }
-      .sling-cms-editor .select.is-success select:focus, .sling-cms-editor .select.is-success select.is-focused, .sling-cms-editor .select.is-success select:active, .sling-cms-editor .select.is-success select.is-active {
-        box-shadow: 0 0 0 0.125em rgba(72, 199, 116, 0.25); }
-    .sling-cms-editor .select.is-warning:not(:hover)::after {
-      border-color: #EA7826; }
-    .sling-cms-editor .select.is-warning select {
-      border-color: #EA7826; }
-      .sling-cms-editor .select.is-warning select:hover, .sling-cms-editor .select.is-warning select.is-hovered {
-        border-color: #e16b16; }
-      .sling-cms-editor .select.is-warning select:focus, .sling-cms-editor .select.is-warning select.is-focused, .sling-cms-editor .select.is-warning select:active, .sling-cms-editor .select.is-warning select.is-active {
-        box-shadow: 0 0 0 0.125em rgba(234, 120, 38, 0.25); }
-    .sling-cms-editor .select.is-danger:not(:hover)::after {
-      border-color: #CB2138; }
-    .sling-cms-editor .select.is-danger select {
-      border-color: #CB2138; }
-      .sling-cms-editor .select.is-danger select:hover, .sling-cms-editor .select.is-danger select.is-hovered {
-        border-color: #b51d32; }
-      .sling-cms-editor .select.is-danger select:focus, .sling-cms-editor .select.is-danger select.is-focused, .sling-cms-editor .select.is-danger select:active, .sling-cms-editor .select.is-danger select.is-active {
-        box-shadow: 0 0 0 0.125em rgba(203, 33, 56, 0.25); }
-    .sling-cms-editor .select.is-small {
-      border-radius: 2px;
-      font-size: 0.75rem; }
-    .sling-cms-editor .select.is-medium {
-      font-size: 1.25rem; }
-    .sling-cms-editor .select.is-large {
-      font-size: 1.5rem; }
-    .sling-cms-editor .select.is-disabled::after {
-      border-color: #7a7a7a; }
-    .sling-cms-editor .select.is-fullwidth {
-      width: 100%; }
-      .sling-cms-editor .select.is-fullwidth select {
-        width: 100%; }
-    .sling-cms-editor .select.is-loading::after {
-      margin-top: 0;
-      position: absolute;
-      right: 0.625em;
-      top: 0.625em;
-      transform: none; }
-    .sling-cms-editor .select.is-loading.is-small:after {
-      font-size: 0.75rem; }
-    .sling-cms-editor .select.is-loading.is-medium:after {
-      font-size: 1.25rem; }
-    .sling-cms-editor .select.is-loading.is-large:after {
-      font-size: 1.5rem; }
-  .sling-cms-editor .file {
-    align-items: stretch;
-    display: flex;
-    justify-content: flex-start;
-    position: relative; }
-    .sling-cms-editor .file.is-white .file-cta {
-      background-color: white;
-      border-color: transparent;
-      color: #0a0a0a; }
-    .sling-cms-editor .file.is-white:hover .file-cta, .sling-cms-editor .file.is-white.is-hovered .file-cta {
-      background-color: #f9f9f9;
-      border-color: transparent;
-      color: #0a0a0a; }
-    .sling-cms-editor .file.is-white:focus .file-cta, .sling-cms-editor .file.is-white.is-focused .file-cta {
-      border-color: transparent;
-      box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25);
-      color: #0a0a0a; }
-    .sling-cms-editor .file.is-white:active .file-cta, .sling-cms-editor .file.is-white.is-active .file-cta {
-      background-color: #f2f2f2;
-      border-color: transparent;
-      color: #0a0a0a; }
-    .sling-cms-editor .file.is-black .file-cta {
-      background-color: #0a0a0a;
-      border-color: transparent;
-      color: white; }
-    .sling-cms-editor .file.is-black:hover .file-cta, .sling-cms-editor .file.is-black.is-hovered .file-cta {
-      background-color: #040404;
-      border-color: transparent;
-      color: white; }
-    .sling-cms-editor .file.is-black:focus .file-cta, .sling-cms-editor .file.is-black.is-focused .file-cta {
-      border-color: transparent;
-      box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25);
-      color: white; }
-    .sling-cms-editor .file.is-black:active .file-cta, .sling-cms-editor .file.is-black.is-active .file-cta {
-      background-color: black;
-      border-color: transparent;
-      color: white; }
-    .sling-cms-editor .file.is-light .file-cta {
-      background-color: whitesmoke;
-      border-color: transparent;
-      color: rgba(0, 0, 0, 0.7); }
-    .sling-cms-editor .file.is-light:hover .file-cta, .sling-cms-editor .file.is-light.is-hovered .file-cta {
-      background-color: #eeeeee;
-      border-color: transparent;
-      color: rgba(0, 0, 0, 0.7); }
-    .sling-cms-editor .file.is-light:focus .file-cta, .sling-cms-editor .file.is-light.is-focused .file-cta {
-      border-color: transparent;
-      box-shadow: 0 0 0.5em rgba(245, 245, 245, 0.25);
-      color: rgba(0, 0, 0, 0.7); }
-    .sling-cms-editor .file.is-light:active .file-cta, .sling-cms-editor .file.is-light.is-active .file-cta {
-      background-color: #e8e8e8;
-      border-color: transparent;
-      color: rgba(0, 0, 0, 0.7); }
-    .sling-cms-editor .file.is-dark .file-cta {
-      background-color: #363636;
-      border-color: transparent;
-      color: #fff; }
-    .sling-cms-editor .file.is-dark:hover .file-cta, .sling-cms-editor .file.is-dark.is-hovered .file-cta {
-      background-color: #2f2f2f;
-      border-color: transparent;
-      color: #fff; }
-    .sling-cms-editor .file.is-dark:focus .file-cta, .sling-cms-editor .file.is-dark.is-focused .file-cta {
-      border-color: transparent;
-      box-shadow: 0 0 0.5em rgba(54, 54, 54, 0.25);
-      color: #fff; }
-    .sling-cms-editor .file.is-dark:active .file-cta, .sling-cms-editor .file.is-dark.is-active .file-cta {
-      background-color: #292929;
-      border-color: transparent;
-      color: #fff; }
-    .sling-cms-editor .file.is-primary .file-cta {
-      background-color: #9E2165;
-      border-color: transparent;
-      color: #fff; }
-    .sling-cms-editor .file.is-primary:hover .file-cta, .sling-cms-editor .file.is-primary.is-hovered .file-cta {
-      background-color: #931f5e;
-      border-color: transparent;
-      color: #fff; }
-    .sling-cms-editor .file.is-primary:focus .file-cta, .sling-cms-editor .file.is-primary.is-focused .file-cta {
-      border-color: transparent;
-      box-shadow: 0 0 0.5em rgba(158, 33, 101, 0.25);
-      color: #fff; }
-    .sling-cms-editor .file.is-primary:active .file-cta, .sling-cms-editor .file.is-primary.is-active .file-cta {
-      background-color: #891d58;
-      border-color: transparent;
-      color: #fff; }
-    .sling-cms-editor .file.is-link .file-cta {
-      background-color: #282661;
-      border-color: transparent;
-      color: #fff; }
-    .sling-cms-editor .file.is-link:hover .file-cta, .sling-cms-editor .file.is-link.is-hovered .file-cta {
-      background-color: #242258;
-      border-color: transparent;
-      color: #fff; }
-    .sling-cms-editor .file.is-link:focus .file-cta, .sling-cms-editor .file.is-link.is-focused .file-cta {
-      border-color: transparent;
-      box-shadow: 0 0 0.5em rgba(40, 38, 97, 0.25);
-      color: #fff; }
-    .sling-cms-editor .file.is-link:active .file-cta, .sling-cms-editor .file.is-link.is-active .file-cta {
-      background-color: #201f4f;
-      border-color: transparent;
-      color: #fff; }
-    .sling-cms-editor .file.is-info .file-cta {
-      background-color: #3298dc;
-      border-color: transparent;
-      color: #fff; }
-    .sling-cms-editor .file.is-info:hover .file-cta, .sling-cms-editor .file.is-info.is-hovered .file-cta {
-      background-color: #2793da;
-      border-color: transparent;
-      color: #fff; }
-    .sling-cms-editor .file.is-info:focus .file-cta, .sling-cms-editor .file.is-info.is-focused .file-cta {
-      border-color: transparent;
-      box-shadow: 0 0 0.5em rgba(50, 152, 220, 0.25);
-      color: #fff; }
-    .sling-cms-editor .file.is-info:active .file-cta, .sling-cms-editor .file.is-info.is-active .file-cta {
-      background-color: #238cd1;
-      border-color: transparent;
-      color: #fff; }
-    .sling-cms-editor .file.is-success .file-cta {
-      background-color: #48c774;
-      border-color: transparent;
-      color: #fff; }
-    .sling-cms-editor .file.is-success:hover .file-cta, .sling-cms-editor .file.is-success.is-hovered .file-cta {
-      background-color: #3ec46d;
-      border-color: transparent;
-      color: #fff; }
-    .sling-cms-editor .file.is-success:focus .file-cta, .sling-cms-editor .file.is-success.is-focused .file-cta {
-      border-color: transparent;
-      box-shadow: 0 0 0.5em rgba(72, 199, 116, 0.25);
-      color: #fff; }
-    .sling-cms-editor .file.is-success:active .file-cta, .sling-cms-editor .file.is-success.is-active .file-cta {
-      background-color: #3abb67;
-      border-color: transparent;
-      color: #fff; }
-    .sling-cms-editor .file.is-warning .file-cta {
-      background-color: #EA7826;
-      border-color: transparent;
-      color: #fff; }
-    .sling-cms-editor .file.is-warning:hover .file-cta, .sling-cms-editor .file.is-warning.is-hovered .file-cta {
-      background-color: #e9711a;
-      border-color: transparent;
-      color: #fff; }
-    .sling-cms-editor .file.is-warning:focus .file-cta, .sling-cms-editor .file.is-warning.is-focused .file-cta {
-      border-color: transparent;
-      box-shadow: 0 0 0.5em rgba(234, 120, 38, 0.25);
-      color: #fff; }
-    .sling-cms-editor .file.is-warning:active .file-cta, .sling-cms-editor .file.is-warning.is-active .file-cta {
-      background-color: #e16b16;
-      border-color: transparent;
-      color: #fff; }
-    .sling-cms-editor .file.is-danger .file-cta {
-      background-color: #CB2138;
-      border-color: transparent;
-      color: #fff; }
-    .sling-cms-editor .file.is-danger:hover .file-cta, .sling-cms-editor .file.is-danger.is-hovered .file-cta {
-      background-color: #c01f35;
-      border-color: transparent;
-      color: #fff; }
-    .sling-cms-editor .file.is-danger:focus .file-cta, .sling-cms-editor .file.is-danger.is-focused .file-cta {
-      border-color: transparent;
-      box-shadow: 0 0 0.5em rgba(203, 33, 56, 0.25);
-      color: #fff; }
-    .sling-cms-editor .file.is-danger:active .file-cta, .sling-cms-editor .file.is-danger.is-active .file-cta {
-      background-color: #b51d32;
-      border-color: transparent;
-      color: #fff; }
-    .sling-cms-editor .file.is-small {
-      font-size: 0.75rem; }
-    .sling-cms-editor .file.is-medium {
-      font-size: 1.25rem; }
-      .sling-cms-editor .file.is-medium .file-icon .fa {
-        font-size: 21px; }
-    .sling-cms-editor .file.is-large {
-      font-size: 1.5rem; }
-      .sling-cms-editor .file.is-large .file-icon .fa {
-        font-size: 28px; }
-    .sling-cms-editor .file.has-name .file-cta {
-      border-bottom-right-radius: 0;
-      border-top-right-radius: 0; }
-    .sling-cms-editor .file.has-name .file-name {
-      border-bottom-left-radius: 0;
-      border-top-left-radius: 0; }
-    .sling-cms-editor .file.has-name.is-empty .file-cta {
-      border-radius: 4px; }
-    .sling-cms-editor .file.has-name.is-empty .file-name {
-      display: none; }
-    .sling-cms-editor .file.is-boxed .file-label {
-      flex-direction: column; }
-    .sling-cms-editor .file.is-boxed .file-cta {
-      flex-direction: column;
-      height: auto;
-      padding: 1em 3em; }
-    .sling-cms-editor .file.is-boxed .file-name {
-      border-width: 0 1px 1px; }
-    .sling-cms-editor .file.is-boxed .file-icon {
-      height: 1.5em;
-      width: 1.5em; }
-      .sling-cms-editor .file.is-boxed .file-icon .fa {
-        font-size: 21px; }
-    .sling-cms-editor .file.is-boxed.is-small .file-icon .fa {
-      font-size: 14px; }
-    .sling-cms-editor .file.is-boxed.is-medium .file-icon .fa {
-      font-size: 28px; }
-    .sling-cms-editor .file.is-boxed.is-large .file-icon .fa {
-      font-size: 35px; }
-    .sling-cms-editor .file.is-boxed.has-name .file-cta {
-      border-radius: 4px 4px 0 0; }
-    .sling-cms-editor .file.is-boxed.has-name .file-name {
-      border-radius: 0 0 4px 4px;
-      border-width: 0 1px 1px; }
-    .sling-cms-editor .file.is-centered {
-      justify-content: center; }
-    .sling-cms-editor .file.is-fullwidth .file-label {
-      width: 100%; }
-    .sling-cms-editor .file.is-fullwidth .file-name {
-      flex-grow: 1;
-      max-width: none; }
-    .sling-cms-editor .file.is-right {
-      justify-content: flex-end; }
-      .sling-cms-editor .file.is-right .file-cta {
-        border-radius: 0 4px 4px 0; }
-      .sling-cms-editor .file.is-right .file-name {
-        border-radius: 4px 0 0 4px;
-        border-width: 1px 0 1px 1px;
-        order: -1; }
-  .sling-cms-editor .file-label {
-    align-items: stretch;
-    display: flex;
-    cursor: pointer;
-    justify-content: flex-start;
-    overflow: hidden;
-    position: relative; }
-    .sling-cms-editor .file-label:hover .file-cta {
-      background-color: #eeeeee;
-      color: #363636; }
-    .sling-cms-editor .file-label:hover .file-name {
-      border-color: #d5d5d5; }
-    .sling-cms-editor .file-label:active .file-cta {
-      background-color: #e8e8e8;
-      color: #363636; }
-    .sling-cms-editor .file-label:active .file-name {
-      border-color: #cfcfcf; }
-  .sling-cms-editor .file-input {
-    height: 100%;
-    left: 0;
-    opacity: 0;
-    outline: none;
-    position: absolute;
-    top: 0;
-    width: 100%; }
-  .sling-cms-editor .file-cta,
-  .sling-cms-editor .file-name {
-    border-color: #dbdbdb;
-    border-radius: 4px;
-    font-size: 1em;
-    padding-left: 1em;
-    padding-right: 1em;
-    white-space: nowrap; }
-  .sling-cms-editor .file-cta {
-    background-color: whitesmoke;
-    color: #4a4a4a; }
-  .sling-cms-editor .file-name {
-    border-color: #dbdbdb;
-    border-style: solid;
-    border-width: 1px 1px 1px 0;
-    display: block;
-    max-width: 16em;
-    overflow: hidden;
-    text-align: left;
-    text-overflow: ellipsis; }
-  .sling-cms-editor .file-icon {
-    align-items: center;
-    display: flex;
-    height: 1em;
-    justify-content: center;
-    margin-right: 0.5em;
-    width: 1em; }
-    .sling-cms-editor .file-icon .fa {
-      font-size: 14px; }
-  .sling-cms-editor .label {
-    color: #363636;
-    display: block;
-    font-size: 1rem;
-    font-weight: 700; }
-    .sling-cms-editor .label:not(:last-child) {
-      margin-bottom: 0.5em; }
-    .sling-cms-editor .label.is-small {
-      font-size: 0.75rem; }
-    .sling-cms-editor .label.is-medium {
-      font-size: 1.25rem; }
-    .sling-cms-editor .label.is-large {
-      font-size: 1.5rem; }
-  .sling-cms-editor .help {
-    display: block;
-    font-size: 0.75rem;
-    margin-top: 0.25rem; }
-    .sling-cms-editor .help.is-white {
-      color: white; }
-    .sling-cms-editor .help.is-black {
-      color: #0a0a0a; }
-    .sling-cms-editor .help.is-light {
-      color: whitesmoke; }
-    .sling-cms-editor .help.is-dark {
-      color: #363636; }
-    .sling-cms-editor .help.is-primary {
-      color: #9E2165; }
-    .sling-cms-editor .help.is-link {
-      color: #282661; }
-    .sling-cms-editor .help.is-info {
-      color: #3298dc; }
-    .sling-cms-editor .help.is-success {
-      color: #48c774; }
-    .sling-cms-editor .help.is-warning {
-      color: #EA7826; }
-    .sling-cms-editor .help.is-danger {
-      color: #CB2138; }
-  .sling-cms-editor .field:not(:last-child) {
-    margin-bottom: 0.75rem; }
-  .sling-cms-editor .field.has-addons {
-    display: flex;
-    justify-content: flex-start; }
-    .sling-cms-editor .field.has-addons .control:not(:last-child) {
-      margin-right: -1px; }
-    .sling-cms-editor .field.has-addons .control:not(:first-child):not(:last-child) .button,
-    .sling-cms-editor .field.has-addons .control:not(:first-child):not(:last-child) .input,
-    .sling-cms-editor .field.has-addons .control:not(:first-child):not(:last-child) .select select {
-      border-radius: 0; }
-    .sling-cms-editor .field.has-addons .control:first-child:not(:only-child) .button,
-    .sling-cms-editor .field.has-addons .control:first-child:not(:only-child) .input,
-    .sling-cms-editor .field.has-addons .control:first-child:not(:only-child) .select select {
-      border-bottom-right-radius: 0;
-      border-top-right-radius: 0; }
-    .sling-cms-editor .field.has-addons .control:last-child:not(:only-child) .button,
-    .sling-cms-editor .field.has-addons .control:last-child:not(:only-child) .input,
-    .sling-cms-editor .field.has-addons .control:last-child:not(:only-child) .select select {
-      border-bottom-left-radius: 0;
-      border-top-left-radius: 0; }
-    .sling-cms-editor .field.has-addons .control .button:not([disabled]):hover, .sling-cms-editor .field.has-addons .control .button:not([disabled]).is-hovered,
-    .sling-cms-editor .field.has-addons .control .input:not([disabled]):hover,
-    .sling-cms-editor .field.has-addons .control .input:not([disabled]).is-hovered,
-    .sling-cms-editor .field.has-addons .control .select select:not([disabled]):hover,
-    .sling-cms-editor .field.has-addons .control .select select:not([disabled]).is-hovered {
-      z-index: 2; }
-    .sling-cms-editor .field.has-addons .control .button:not([disabled]):focus, .sling-cms-editor .field.has-addons .control .button:not([disabled]).is-focused, .sling-cms-editor .field.has-addons .control .button:not([disabled]):active, .sling-cms-editor .field.has-addons .control .button:not([disabled]).is-active,
-    .sling-cms-editor .field.has-addons .control .input:not([disabled]):focus,
-    .sling-cms-editor .field.has-addons .control .input:not([disabled]).is-focused,
-    .sling-cms-editor .field.has-addons .control .input:not([disabled]):active,
-    .sling-cms-editor .field.has-addons .control .input:not([disabled]).is-active,
-    .sling-cms-editor .field.has-addons .control .select select:not([disabled]):focus,
-    .sling-cms-editor .field.has-addons .control .select select:not([disabled]).is-focused,
-    .sling-cms-editor .field.has-addons .control .select select:not([disabled]):active,
-    .sling-cms-editor .field.has-addons .control .select select:not([disabled]).is-active {
-      z-index: 3; }
-      .sling-cms-editor .field.has-addons .control .button:not([disabled]):focus:hover, .sling-cms-editor .field.has-addons .control .button:not([disabled]).is-focused:hover, .sling-cms-editor .field.has-addons .control .button:not([disabled]):active:hover, .sling-cms-editor .field.has-addons .control .button:not([disabled]).is-active:hover,
-      .sling-cms-editor .field.has-addons .control .input:not([disabled]):focus:hover,
-      .sling-cms-editor .field.has-addons .control .input:not([disabled]).is-focused:hover,
-      .sling-cms-editor .field.has-addons .control .input:not([disabled]):active:hover,
-      .sling-cms-editor .field.has-addons .control .input:not([disabled]).is-active:hover,
-      .sling-cms-editor .field.has-addons .control .select select:not([disabled]):focus:hover,
-      .sling-cms-editor .field.has-addons .control .select select:not([disabled]).is-focused:hover,
-      .sling-cms-editor .field.has-addons .control .select select:not([disabled]):active:hover,
-      .sling-cms-editor .field.has-addons .control .select select:not([disabled]).is-active:hover {
-        z-index: 4; }
-    .sling-cms-editor .field.has-addons .control.is-expanded {
-      flex-grow: 1;
-      flex-shrink: 1; }
-    .sling-cms-editor .field.has-addons.has-addons-centered {
-      justify-content: center; }
-    .sling-cms-editor .field.has-addons.has-addons-right {
-      justify-content: flex-end; }
-    .sling-cms-editor .field.has-addons.has-addons-fullwidth .control {
-      flex-grow: 1;
-      flex-shrink: 0; }
-  .sling-cms-editor .field.is-grouped {
-    display: flex;
-    justify-content: flex-start; }
-    .sling-cms-editor .field.is-grouped > .control {
-      flex-shrink: 0; }
-      .sling-cms-editor .field.is-grouped > .control:not(:last-child) {
-        margin-bottom: 0;
-        margin-right: 0.75rem; }
-      .sling-cms-editor .field.is-grouped > .control.is-expanded {
-        flex-grow: 1;
-        flex-shrink: 1; }
-    .sling-cms-editor .field.is-grouped.is-grouped-centered {
-      justify-content: center; }
-    .sling-cms-editor .field.is-grouped.is-grouped-right {
-      justify-content: flex-end; }
-    .sling-cms-editor .field.is-grouped.is-grouped-multiline {
-      flex-wrap: wrap; }
-      .sling-cms-editor .field.is-grouped.is-grouped-multiline > .control:last-child, .sling-cms-editor .field.is-grouped.is-grouped-multiline > .control:not(:last-child) {
-        margin-bottom: 0.75rem; }
-      .sling-cms-editor .field.is-grouped.is-grouped-multiline:last-child {
-        margin-bottom: -0.75rem; }
-      .sling-cms-editor .field.is-grouped.is-grouped-multiline:not(:last-child) {
-        margin-bottom: 0; }
-  @media screen and (min-width: 769px), print {
-    .sling-cms-editor .field.is-horizontal {
-      display: flex; } }
-  .sling-cms-editor .field-label .label {
-    font-size: inherit; }
-  @media screen and (max-width: 768px) {
-    .sling-cms-editor .field-label {
-      margin-bottom: 0.5rem; } }
-  @media screen and (min-width: 769px), print {
-    .sling-cms-editor .field-label {
-      flex-basis: 0;
-      flex-grow: 1;
-      flex-shrink: 0;
-      margin-right: 1.5rem;
-      text-align: right; }
-      .sling-cms-editor .field-label.is-small {
-        font-size: 0.75rem;
-        padding-top: 0.375em; }
-      .sling-cms-editor .field-label.is-normal {
-        padding-top: 0.375em; }
-      .sling-cms-editor .field-label.is-medium {
-        font-size: 1.25rem;
-        padding-top: 0.375em; }
-      .sling-cms-editor .field-label.is-large {
-        font-size: 1.5rem;
-        padding-top: 0.375em; } }
-  .sling-cms-editor .field-body .field .field {
-    margin-bottom: 0; }
-  @media screen and (min-width: 769px), print {
-    .sling-cms-editor .field-body {
-      display: flex;
-      flex-basis: 0;
-      flex-grow: 5;
-      flex-shrink: 1; }
-      .sling-cms-editor .field-body .field {
-        margin-bottom: 0; }
-      .sling-cms-editor .field-body > .field {
-        flex-shrink: 1; }
-        .sling-cms-editor .field-body > .field:not(.is-narrow) {
-          flex-grow: 1; }
-        .sling-cms-editor .field-body > .field:not(:last-child) {
-          margin-right: 0.75rem; } }
-  .sling-cms-editor .control {
-    box-sizing: border-box;
-    clear: both;
-    font-size: 1rem;
-    position: relative;
-    text-align: left; }
-    .sling-cms-editor .control.has-icons-left .input:focus ~ .icon,
-    .sling-cms-editor .control.has-icons-left .select:focus ~ .icon, .sling-cms-editor .control.has-icons-right .input:focus ~ .icon,
-    .sling-cms-editor .control.has-icons-right .select:focus ~ .icon {
-      color: #4a4a4a; }
-    .sling-cms-editor .control.has-icons-left .input.is-small ~ .icon,
-    .sling-cms-editor .control.has-icons-left .select.is-small ~ .icon, .sling-cms-editor .control.has-icons-right .input.is-small ~ .icon,
-    .sling-cms-editor .control.has-icons-right .select.is-small ~ .icon {
-      font-size: 0.75rem; }
-    .sling-cms-editor .control.has-icons-left .input.is-medium ~ .icon,
-    .sling-cms-editor .control.has-icons-left .select.is-medium ~ .icon, .sling-cms-editor .control.has-icons-right .input.is-medium ~ .icon,
-    .sling-cms-editor .control.has-icons-right .select.is-medium ~ .icon {
-      font-size: 1.25rem; }
-    .sling-cms-editor .control.has-icons-left .input.is-large ~ .icon,
-    .sling-cms-editor .control.has-icons-left .select.is-large ~ .icon, .sling-cms-editor .control.has-icons-right .input.is-large ~ .icon,
-    .sling-cms-editor .control.has-icons-right .select.is-large ~ .icon {
-      font-size: 1.5rem; }
-    .sling-cms-editor .control.has-icons-left .icon, .sling-cms-editor .control.has-icons-right .icon {
-      color: #dbdbdb;
-      height: 2.5em;
-      pointer-events: none;
-      position: absolute;
-      top: 0;
-      width: 2.5em;
-      z-index: 4; }
-    .sling-cms-editor .control.has-icons-left .input,
-    .sling-cms-editor .control.has-icons-left .select select {
-      padding-left: 2.5em; }
-    .sling-cms-editor .control.has-icons-left .icon.is-left {
-      left: 0; }
-    .sling-cms-editor .control.has-icons-right .input,
-    .sling-cms-editor .control.has-icons-right .select select {
-      padding-right: 2.5em; }
-    .sling-cms-editor .control.has-icons-right .icon.is-right {
-      right: 0; }
-    .sling-cms-editor .control.is-loading::after {
-      position: absolute !important;
-      right: 0.625em;
-      top: 0.625em;
-      z-index: 4; }
-    .sling-cms-editor .control.is-loading.is-small:after {
-      font-size: 0.75rem; }
-    .sling-cms-editor .control.is-loading.is-medium:after {
-      font-size: 1.25rem; }
-    .sling-cms-editor .control.is-loading.is-large:after {
-      font-size: 1.5rem; }
-  .sling-cms-editor .icon {
-    align-items: center;
-    display: inline-flex;
-    justify-content: center;
-    height: 1.5rem;
-    width: 1.5rem; }
-    .sling-cms-editor .icon.is-small {
-      height: 1rem;
-      width: 1rem; }
-    .sling-cms-editor .icon.is-medium {
-      height: 2rem;
-      width: 2rem; }
-    .sling-cms-editor .icon.is-large {
-      height: 3rem;
-      width: 3rem; }
-  .sling-cms-editor .level {
-    align-items: center;
-    justify-content: space-between; }
-    .sling-cms-editor .level code {
-      border-radius: 4px; }
-    .sling-cms-editor .level img {
-      display: inline-block;
-      vertical-align: top; }
-    .sling-cms-editor .level.is-mobile {
-      display: flex; }
-      .sling-cms-editor .level.is-mobile .level-left,
-      .sling-cms-editor .level.is-mobile .level-right {
-        display: flex; }
-      .sling-cms-editor .level.is-mobile .level-left + .level-right {
-        margin-top: 0; }
-      .sling-cms-editor .level.is-mobile .level-item:not(:last-child) {
-        margin-bottom: 0;
-        margin-right: 0.75rem; }
-      .sling-cms-editor .level.is-mobile .level-item:not(.is-narrow) {
-        flex-grow: 1; }
-    @media screen and (min-width: 769px), print {
-      .sling-cms-editor .level {
-        display: flex; }
-        .sling-cms-editor .level > .level-item:not(.is-narrow) {
-          flex-grow: 1; } }
-  .sling-cms-editor .level-item {
-    align-items: center;
-    display: flex;
-    flex-basis: auto;
-    flex-grow: 0;
-    flex-shrink: 0;
-    justify-content: center; }
-    .sling-cms-editor .level-item .title,
-    .sling-cms-editor .level-item .subtitle {
-      margin-bottom: 0; }
-    @media screen and (max-width: 768px) {
-      .sling-cms-editor .level-item:not(:last-child) {
-        margin-bottom: 0.75rem; } }
-  .sling-cms-editor .level-left,
-  .sling-cms-editor .level-right {
-    flex-basis: auto;
-    flex-grow: 0;
-    flex-shrink: 0; }
-    .sling-cms-editor .level-left .level-item.is-flexible,
-    .sling-cms-editor .level-right .level-item.is-flexible {
-      flex-grow: 1; }
-    @media screen and (min-width: 769px), print {
-      .sling-cms-editor .level-left .level-item:not(:last-child),
-      .sling-cms-editor .level-right .level-item:not(:last-child) {
-        margin-right: 0.75rem; } }
-  .sling-cms-editor .level-left {
-    align-items: center;
-    justify-content: flex-start; }
-    @media screen and (max-width: 768px) {
-      .sling-cms-editor .level-left + .level-right {
-        margin-top: 1.5rem; } }
-    @media screen and (min-width: 769px), print {
-      .sling-cms-editor .level-left {
-        display: flex; } }
-  .sling-cms-editor .level-right {
-    align-items: center;
-    justify-content: flex-end; }
-    @media screen and (min-width: 769px), print {
-      .sling-cms-editor .level-right {
-        display: flex; } }
-  .sling-cms-editor .modal {
-    align-items: center;
-    display: none;
-    flex-direction: column;
-    justify-content: center;
-    overflow: hidden;
-    position: fixed;
-    z-index: 2000; }
-    .sling-cms-editor .modal.is-active {
-      display: flex; }
-  .sling-cms-editor .modal-background {
-    background-color: rgba(10, 10, 10, 0.86); }
-  .sling-cms-editor .modal-content,
-  .sling-cms-editor .modal-card {
-    margin: 0 20px;
-    max-height: calc(100vh - 160px);
-    overflow: auto;
-    position: relative;
-    width: 100%; }
-    @media screen and (min-width: 769px), print {
-      .sling-cms-editor .modal-content,
-      .sling-cms-editor .modal-card {
-        margin: 0 auto;
-        max-height: calc(100vh - 40px);
-        width: 640px; } }
-  .sling-cms-editor .modal-close {
-    background: none;
-    height: 40px;
-    position: fixed;
-    right: 20px;
-    top: 20px;
-    width: 40px; }
-  .sling-cms-editor .modal-card {
-    display: flex;
-    flex-direction: column;
-    max-height: calc(100vh - 40px);
-    overflow: hidden;
-    -ms-overflow-y: visible; }
-  .sling-cms-editor .modal-card-head,
-  .sling-cms-editor .modal-card-foot {
-    align-items: center;
-    background-color: whitesmoke;
-    display: flex;
-    flex-shrink: 0;
-    justify-content: flex-start;
-    padding: 20px;
-    position: relative; }
-  .sling-cms-editor .modal-card-head {
-    border-bottom: 1px solid #dbdbdb;
-    border-top-left-radius: 6px;
-    border-top-right-radius: 6px; }
-  .sling-cms-editor .modal-card-title {
-    color: #363636;
-    flex-grow: 1;
-    flex-shrink: 0;
-    font-size: 1.5rem;
-    line-height: 1; }
-  .sling-cms-editor .modal-card-foot {
-    border-bottom-left-radius: 6px;
-    border-bottom-right-radius: 6px;
-    border-top: 1px solid #dbdbdb; }
-    .sling-cms-editor .modal-card-foot .button:not(:last-child) {
-      margin-right: 0.5em; }
-  .sling-cms-editor .modal-card-body {
-    -webkit-overflow-scrolling: touch;
-    background-color: white;
-    flex-grow: 1;
-    flex-shrink: 1;
-    overflow: auto;
-    padding: 20px; }
-  .sling-cms-editor * {
-    box-sizing: border-box; }
-  .sling-cms-editor [draggable] {
-    -moz-user-select: none;
-    -khtml-user-select: none;
-    -webkit-user-select: none;
-    user-select: none;
-    /* Required to make elements draggable in old WebKit */
-    -khtml-user-drag: element;
-    -webkit-user-drag: element; }
-  .sling-cms-editor .is-draggable {
-    position: relative; }
-  .sling-cms-editor .is-vhidden {
-    position: absolute !important;
-    top: -9999px !important;
-    left: -9999px !important; }
-  .sling-cms-editor .level {
-    padding: 0.5em; }
-  .sling-cms-editor .modal-body {
-    padding: 0.5em;
-    height: 500px; }
-  .sling-cms-editor .modal-frame {
-    width: 100%;
-    height: 100%;
-    border: none; }
-  .sling-cms-editor .modal-title {
-    font-size: 180%;
-    cursor: move; }
-  .sling-cms-editor .page-wrapper-frame {
-    position: fixed;
-    top: 44px;
-    left: 0;
-    bottom: 0;
-    right: 0;
-    width: 100%;
-    height: 100%;
-    border: none;
-    margin: 0;
-    padding: 0;
-    overflow: hidden;
-    z-index: 998;
-    padding-top: 8px; }
-    @media screen and (max-width: 769px) {
-      .sling-cms-editor .page-wrapper-frame {
-        top: 104px; } }
-  .sling-cms-editor .sling-cms-logo {
-    height: 25px; }
-
-.sling-cms-component {
-  border: 1px solid rgba(0, 0, 0, 0); }
-
-.sling-cms-component__is-active {
-  border-color: #dbdbdb; }
-
-.sling-cms-droptarget__is-active {
-  height: 2em;
-  border: 1px solid #b5b5b5;
-  background-color: whitesmoke; }
-
-.sling-cms-droptarget__is-over {
-  height: 2em;
-  border: 1px solid whitesmoke;
-  background-color: #b5b5b5; }
-
-/*
-  Copyright (c) 2018 Michael Amprimo <@michaelampr>.
-  Licensed under the MIT License (MIT), https://jam-icons.com
-*/
-@font-face{font-family:'jam-icons';src:url("../fonts/jam-icons.eot?osflwm");src:url("../fonts/jam-icons.eot?osflwm#iefix") format("embedded-opentype"),url("../fonts/jam-icons.ttf?osflwm") format("truetype"),url("../fonts/jam-icons.woff?osflwm") format("woff"),url("../fonts/jam-icons.svg?osflwm#Jam-icons") format("svg");font-weight:normal;font-style:normal}.jam{font-family:'jam-icons' !important;speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.jam-five-hundred-px:before{content:"\e900"}.jam-activity:before{content:"\e901"}.jam-airbnb:before{content:"\e902"}.jam-alarm-clock-f:before{content:"\e903"}.jam-alarm-clock:before{content:"\e904"}.jam-alert-f:before{content:"\e905"}.jam-alert:before{content:"\e906"}.jam-alien-f:before{content:"\e907"}.jam-alien:before{content:"\e908"}.jam-align-center:before{content:"\e909"}.jam-align-justify:before{content:"\e90a"}.jam-align-left:before{content:"\e90b"}.jam-align-right:before{content:"\e90c"}.jam-amazon:before{content:"\e90d"}.jam-anchor:before{content:"\e90e"}.jam-android-circle:before{content:"\e90f"}.jam-android-square:before{content:"\e910"}.jam-android:before{content:"\e911"}.jam-aperture:before{content:"\e912"}.jam-apple-circle:before{content:"\e913"}.jam-apple-square:before{content:"\e914"}.jam-apple:before{content:"\e915"}.jam-archive-f:before{content:"\e916"}.jam-archive:before{content:"\e917"}.jam-arrow-circle-down-f:before{content:"\e918"}.jam-arrow-circle-down-left-f:before{content:"\e919"}.jam-arrow-circle-down-left:before{content:"\e91a"}.jam-arrow-circle-down-right-f:before{content:"\e91b"}.jam-arrow-circle-down-right:before{content:"\e91c"}.jam-arrow-circle-down:before{content:"\e91d"}.jam-arrow-circle-left-f:before{content:"\e91e"}.jam-arrow-circle-left:before{content:"\e91f"}.jam-arrow-circle-right-f:before{content:"\e920"}.jam-arrow-circle-right:before{content:"\e921"}.jam-arrow-circle-up-f:before{content:"\e922"}.jam-arrow-circle-up-left-f:before{content:"\e923"}.jam-arrow-circle-up-left:before{content:"\e924"}.jam-arrow-circle-up-right-f:before{content:"\e925"}.jam-arrow-circle-up-right:before{content:"\e926"}.jam-arrow-circle-up:before{content:"\e927"}.jam-arrow-down-left:before{content:"\e928"}.jam-arrow-down-right:before{content:"\e929"}.jam-arrow-down:before{content:"\e92a"}.jam-arrow-left:before{content:"\e92b"}.jam-arrow-right:before{content:"\e92c"}.jam-arrow-square-down-f:before{content:"\e92d"}.jam-arrow-square-down-left-f:before{content:"\e92e"}.jam-arrow-square-down-left:before{content:"\e92f"}.jam-arrow-square-down-right-f:before{content:"\e930"}.jam-arrow-square-down-right:before{content:"\e931"}.jam-arrow-square-down:before{content:"\e932"}.jam-arrow-square-left-f:before{content:"\e933"}.jam-arrow-square-left:before{content:"\e934"}.jam-arrow-square-right-f:before{content:"\e935"}.jam-arrow-square-right:before{content:"\e936"}.jam-arrow-square-up-f:before{content:"\e937"}.jam-arrow-square-up-left-f:before{content:"\e938"}.jam-arrow-square-up-left:before{content:"\e939"}.jam-arrow-square-up-right-f:before{content:"\e93a"}.jam-arrow-square-up-right:before{content:"\e93b"}.jam-arrow-square-up:before{content:"\e93c"}.jam-arrow-up-left:before{content:"\e93d"}.jam-arrow-up-right:before{content:"\e93e"}.jam-arrow-up:before{content:"\e93f"}.jam-arrows-corners:before{content:"\e940"}.jam-arrows-fullscreen:before{content:"\e941"}.jam-arrows-h:before{content:"\e942"}.jam-arrows-v:before{content:"\e943"}.jam-attachment:before{content:"\e944"}.jam-background-color:before{content:"\e945"}.jam-backpack-f:before{content:"\e946"}.jam-backpack:before{content:"\e947"}.jam-backward-circle-f:before{content:"\e948"}.jam-backward-circle:before{content:"\e949"}.jam-backward-square-f:before{content:"\e94a"}.jam-backward-square:before{content:"\e94b"}.jam-backward:before{content:"\e94c"}.jam-baidu-circle:before{content:"\e94d"}.jam-baidu-square:before{content:"\e94e"}.jam-baidu:before{content:"\e94f"}.jam-bandage-f:before{content:"\e950"}.jam-bandage:before{content:"\e951"}.jam-bar-chart:before{content:"\e952"}.jam-baseball:before{content:"\e953"}.jam-basketball:before{content:"\e954"}.jam-bathtub-f:before{content:"\e955"}.jam-bathtub:before{content:"\e956"}.jam-battery-charging-f:before{content:"\e957"}.jam-battery-charging:before{content:"\e958"}.jam-battery-f:before{content:"\e959"}.jam-battery-half-f:before{content:"\e95a"}.jam-battery-half:before{content:"\e95b"}.jam-battery-one-quarter-f:before{content:"\e95c"}.jam-battery-one-quarter:before{content:"\e95d"}.jam-battery-three-quarters-f:before{content:"\e95e"}.jam-battery-three-quarters:before{content:"\e95f"}.jam-battery:before{content:"\e960"}.jam-beatport-circle:before{content:"\e961"}.jam-beatport-square:before{content:"\e962"}.jam-beatport:before{content:"\e963"}.jam-beer-f:before{content:"\e964"}.jam-beer:before{content:"\e965"}.jam-behance-circle:before{content:"\e966"}.jam-behance-square:before{content:"\e967"}.jam-behance:before{content:"\e968"}.jam-bell-f:before{content:"\e969"}.jam-bell-off-f:before{content:"\e96a"}.jam-bell-off:before{content:"\e96b"}.jam-bell:before{content:"\e96c"}.jam-bing-circle:before{content:"\e96d"}.jam-bing-square:before{content:"\e96e"}.jam-bing:before{content:"\e96f"}.jam-birthday-cake-f:before{content:"\e970"}.jam-birthday-cake:before{content:"\e971"}.jam-blogger-circle:before{content:"\e972"}.jam-blogger-square:before{content:"\e973"}.jam-blogger:before{content:"\e974"}.jam-bluetooth:before{content:"\e975"}.jam-bold:before{content:"\e976"}.jam-book-f:before{content:"\e977"}.jam-book:before{content:"\e978"}.jam-bookmark-f:before{content:"\e979"}.jam-bookmark-minus-f:before{content:"\e97a"}.jam-bookmark-minus:before{content:"\e97b"}.jam-bookmark-plus-f:before{content:"\e97c"}.jam-bookmark-plus:before{content:"\e97d"}.jam-bookmark-remove-f:before{content:"\e97e"}.jam-bookmark-remove:before{content:"\e97f"}.jam-bookmark:before{content:"\e980"}.jam-bottle-f:before{content:"\e981"}.jam-bottle:before{content:"\e982"}.jam-box-f:before{content:"\e983"}.jam-box:before{content:"\e984"}.jam-branch-f:before{content:"\e985"}.jam-branch:before{content:"\e986"}.jam-brightness-down-f:before{content:"\e987"}.jam-brightness-down:before{content:"\e988"}.jam-brightness-up-f:before{content:"\e989"}.jam-brightness-up:before{content:"\e98a"}.jam-brightness:before{content:"\e98b"}.jam-brush-f:before{content:"\e98c"}.jam-brush:before{content:"\e98d"}.jam-bug-f:before{content:"\e98e"}.jam-bug:before{content:"\e98f"}.jam-building-f:before{content:"\e990"}.jam-building:before{content:"\e991"}.jam-bus-f:before{content:"\e992"}.jam-bus:before{content:"\e993"}.jam-cactus-f:before{content:"\e994"}.jam-cactus:before{content:"\e995"}.jam-calculator:before{content:"\e996"}.jam-calendar-alt-f:before{content:"\e997"}.jam-calendar-alt:before{content:"\e998"}.jam-calendar-f:before{content:"\e999"}.jam-calendar:before{content:"\e99a"}.jam-camera-alt-f:before{content:"\e99b"}.jam-camera-alt:before{content:"\e99c"}.jam-camera-f:before{content:"\e99d"}.jam-camera:before{content:"\e99e"}.jam-candle-f:before{content:"\e99f"}.jam-candle:before{content:"\e9a0"}.jam-capsule-f:before{content:"\e9a1"}.jam-capsule:before{content:"\e9a2"}.jam-car-f:before{content:"\e9a3"}.jam-car:before{content:"\e9a4"}.jam-castle-f:before{content:"\e9a5"}.jam-castle:before{content:"\e9a6"}.jam-check:before{content:"\e9a7"}.jam-chevron-circle-down-f:before{content:"\e9a8"}.jam-chevron-circle-down-left-f:before{content:"\e9a9"}.jam-chevron-circle-down-left:before{content:"\e9aa"}.jam-chevron-circle-down-right-f:before{content:"\e9ab"}.jam-chevron-circle-down-right:before{content:"\e9ac"}.jam-chevron-circle-down:before{content:"\e9ad"}.jam-chevron-circle-left-f:before{content:"\e9ae"}.jam-chevron-circle-left:before{content:"\e9af"}.jam-chevron-circle-right-f:before{content:"\e9b0"}.jam-chevron-circle-right:before{content:"\e9b1"}.jam-chevron-circle-up-f:before{content:"\e9b2"}.jam-chevron-circle-up-left-f:before{content:"\e9b3"}.jam-chevron-circle-up-left:before{content:"\e9b4"}.jam-chevron-circle-up-right-f:before{content:"\e9b5"}.jam-chevron-circle-up-right:before{content:"\e9b6"}.jam-chevron-circle-up:before{content:"\e9b7"}.jam-chevron-down-left:before{content:"\e9b8"}.jam-chevron-down-right:before{content:"\e9b9"}.jam-chevron-down:before{content:"\e9ba"}.jam-chevron-left:before{content:"\e9bb"}.jam-chevron-right:before{content:"\e9bc"}.jam-chevron-square-down-f:before{content:"\e9bd"}.jam-chevron-square-down-left-f:before{content:"\e9be"}.jam-chevron-square-down-left:before{content:"\e9bf"}.jam-chevron-square-down-right-f:before{content:"\e9c0"}.jam-chevron-square-down-right:before{content:"\e9c1"}.jam-chevron-square-down:before{content:"\e9c2"}.jam-chevron-square-left-f:before{content:"\e9c3"}.jam-chevron-square-left:before{content:"\e9c4"}.jam-chevron-square-right-f:before{content:"\e9c5"}.jam-chevron-square-right:before{content:"\e9c6"}.jam-chevron-square-up-f:before{content:"\e9c7"}.jam-chevron-square-up-left-f:before{content:"\e9c8"}.jam-chevron-square-up-left:before{content:"\e9c9"}.jam-chevron-square-up-right-f:before{content:"\e9ca"}.jam-chevron-square-up-right:before{content:"\e9cb"}.jam-chevron-square-up:before{content:"\e9cc"}.jam-chevron-up-left:before{content:"\e9cd"}.jam-chevron-up-right:before{content:"\e9ce"}.jam-chevron-up:before{content:"\e9cf"}.jam-chevrons-circle-down-f:before{content:"\e9d0"}.jam-chevrons-circle-down-left-f:before{content:"\e9d1"}.jam-chevrons-circle-down-left:before{content:"\e9d2"}.jam-chevrons-circle-down-right-f:before{content:"\e9d3"}.jam-chevrons-circle-down-right:before{content:"\e9d4"}.jam-chevrons-circle-down:before{content:"\e9d5"}.jam-chevrons-circle-left-f:before{content:"\e9d6"}.jam-chevrons-circle-left:before{content:"\e9d7"}.jam-chevrons-circle-right-f:before{content:"\e9d8"}.jam-chevrons-circle-right:before{content:"\e9d9"}.jam-chevrons-circle-up-f:before{content:"\e9da"}.jam-chevrons-circle-up-left-f:before{content:"\e9db"}.jam-chevrons-circle-up-left:before{content:"\e9dc"}.jam-chevrons-circle-up-right-f:before{content:"\e9dd"}.jam-chevrons-circle-up-right:before{content:"\e9de"}.jam-chevrons-circle-up:before{content:"\e9df"}.jam-chevrons-down-left:before{content:"\e9e0"}.jam-chevrons-down-right:before{content:"\e9e1"}.jam-chevrons-down:before{content:"\e9e2"}.jam-chevrons-left:before{content:"\e9e3"}.jam-chevrons-right:before{content:"\e9e4"}.jam-chevrons-square-down-f:before{content:"\e9e5"}.jam-chevrons-square-down-left-f:before{content:"\e9e6"}.jam-chevrons-square-down-left:before{content:"\e9e7"}.jam-chevrons-square-down-right-f:before{content:"\e9e8"}.jam-chevrons-square-down-right:before{content:"\e9e9"}.jam-chevrons-square-down:before{content:"\e9ea"}.jam-chevrons-square-left-f:before{content:"\e9eb"}.jam-chevrons-square-left:before{content:"\e9ec"}.jam-chevrons-square-right-f:before{content:"\e9ed"}.jam-chevrons-square-right:before{content:"\e9ee"}.jam-chevrons-square-up-f:before{content:"\e9ef"}.jam-chevrons-square-up-left-f:before{content:"\e9f0"}.jam-chevrons-square-up-left:before{content:"\e9f1"}.jam-chevrons-square-up-right-f:before{content:"\e9f2"}.jam-chevrons-square-up-right:before{content:"\e9f3"}.jam-chevrons-square-up:before{content:"\e9f4"}.jam-chevrons-up-left:before{content:"\e9f5"}.jam-chevrons-up-right:before{content:"\e9f6"}.jam-chevrons-up:before{content:"\e9f7"}.jam-chronometer-f:before{content:"\e9f8"}.jam-chronometer:before{content:"\e9f9"}.jam-circle-f:before{content:"\e9fa"}.jam-circle:before{content:"\e9fb"}.jam-clear-format:before{content:"\e9fc"}.jam-clipboard-f:before{content:"\e9fd"}.jam-clipboard:before{content:"\e9fe"}.jam-clock-f:before{content:"\e9ff"}.jam-clock:before{content:"\ea00"}.jam-close-circle-f:before{content:"\ea01"}.jam-close-circle:before{content:"\ea02"}.jam-close-rectangle-f:before{content:"\ea03"}.jam-close-rectangle:before{content:"\ea04"}.jam-close:before{content:"\ea05"}.jam-cloud-f:before{content:"\ea06"}.jam-cloud-rain-f:before{content:"\ea07"}.jam-cloud-rain:before{content:"\ea08"}.jam-cloud-snow-f:before{content:"\ea09"}.jam-cloud-snow:before{content:"\ea0a"}.jam-cloud-thunder-f:before{content:"\ea0b"}.jam-cloud-thunder:before{content:"\ea0c"}.jam-cloud:before{content:"\ea0d"}.jam-codepen-circle:before{content:"\ea0e"}.jam-codepen-square:before{content:"\ea0f"}.jam-codepen:before{content:"\ea10"}.jam-coffee-cup-f:before{content:"\ea11"}.jam-coffee-cup:before{content:"\ea12"}.jam-coffee:before{content:"\ea13"}.jam-cog-f:before{content:"\ea14"}.jam-cog:before{content:"\ea15"}.jam-cogs-f:before{content:"\ea16"}.jam-cogs:before{content:"\ea17"}.jam-coin-f:before{content:"\ea18"}.jam-coin:before{content:"\ea19"}.jam-color:before{content:"\ea1a"}.jam-compass-f:before{content:"\ea1b"}.jam-compass:before{content:"\ea1c"}.jam-computer-alt-f:before{content:"\ea1d"}.jam-computer-alt:before{content:"\ea1e"}.jam-computer-f:before{content:"\ea1f"}.jam-computer:before{content:"\ea20"}.jam-credit-card-f:before{content:"\ea21"}.jam-credit-card:before{content:"\ea22"}.jam-crop:before{content:"\ea23"}.jam-crown-f:before{content:"\ea24"}.jam-crown:before{content:"\ea25"}.jam-cutlery-f:before{content:"\ea26"}.jam-cutlery:before{content:"\ea27"}.jam-cutter-f:before{content:"\ea28"}.jam-cutter:before{content:"\ea29"}.jam-dashboard-f:before{content:"\ea2a"}.jam-dashboard:before{content:"\ea2b"}.jam-database-f:before{content:"\ea2c"}.jam-database:before{content:"\ea2d"}.jam-deezer-circle:before{content:"\ea2e"}.jam-deezer-square:before{content:"\ea2f"}.jam-deezer:before{content:"\ea30"}.jam-delete-f:before{content:"\ea31"}.jam-delete:before{content:"\ea32"}.jam-deviantart-circle:before{content:"\ea33"}.jam-deviantart-square:before{content:"\ea34"}.jam-deviantart:before{content:"\ea35"}.jam-digg:before{content:"\ea36"}.jam-direction-f:before{content:"\ea37"}.jam-direction:before{content:"\ea38"}.jam-directions-f:before{content:"\ea39"}.jam-directions:before{content:"\ea3a"}.jam-disc-f:before{content:"\ea3b"}.jam-disc:before{content:"\ea3c"}.jam-disqus-circle:before{content:"\ea3d"}.jam-disqus-square:before{content:"\ea3e"}.jam-disqus:before{content:"\ea3f"}.jam-dj-f:before{content:"\ea40"}.jam-dj:before{content:"\ea41"}.jam-dna:before{content:"\ea42"}.jam-document-f:before{content:"\ea43"}.jam-document:before{content:"\ea44"}.jam-door:before{content:"\ea45"}.jam-download:before{content:"\ea46"}.jam-drupal-circle:before{content:"\ea47"}.jam-drupal-square:before{content:"\ea48"}.jam-drupal:before{content:"\ea49"}.jam-ebay:before{content:"\ea4a"}.jam-egg-f:before{content:"\ea4b"}.jam-egg:before{content:"\ea4c"}.jam-eggs-f:before{content:"\ea4d"}.jam-eggs:before{content:"\ea4e"}.jam-eject-circle-f:before{content:"\ea4f"}.jam-eject-circle:before{content:"\ea50"}.jam-eject-square-f:before{content:"\ea51"}.jam-eject-square:before{content:"\ea52"}.jam-eject:before{content:"\ea53"}.jam-envelope-f:before{content:"\ea54"}.jam-envelope-open-f:before{content:"\ea55"}.jam-envelope-open:before{content:"\ea56"}.jam-envelope:before{content:"\ea57"}.jam-extinguisher-f:before{content:"\ea58"}.jam-extinguisher:before{content:"\ea59"}.jam-eye-close-f:before{content:"\ea5a"}.jam-eye-close:before{content:"\ea5b"}.jam-eye-f:before{content:"\ea5c"}.jam-eye:before{content:"\ea5d"}.jam-eyedropper-f:before{content:"\ea5e"}.jam-eyedropper:before{content:"\ea5f"}.jam-facebook-circle:before{content:"\ea60"}.jam-facebook-square:before{content:"\ea61"}.jam-facebook:before{content:"\ea62"}.jam-fast-backward-circle-f:before{content:"\ea63"}.jam-fast-backward-circle:before{content:"\ea64"}.jam-fast-backward-square-f:before{content:"\ea65"}.jam-fast-backward-square:before{content:"\ea66"}.jam-fast-backward:before{content:"\ea67"}.jam-fast-forward-circle-f:before{content:"\ea68"}.jam-fast-forward-circle:before{content:"\ea69"}.jam-fast-forward-square-f:before{content:"\ea6a"}.jam-fast-forward-square:before{content:"\ea6b"}.jam-fast-forward:before{content:"\ea6c"}.jam-feather-f:before{content:"\ea6d"}.jam-feather:before{content:"\ea6e"}.jam-female:before{content:"\ea6f"}.jam-file-f:before{content:"\ea70"}.jam-file:before{content:"\ea71"}.jam-files-f:before{content:"\ea72"}.jam-files:before{content:"\ea73"}.jam-filter-f:before{content:"\ea74"}.jam-filter:before{content:"\ea75"}.jam-fingerprint:before{content:"\ea76"}.jam-first-aid-f:before{content:"\ea77"}.jam-first-aid:before{content:"\ea78"}.jam-fish:before{content:"\ea79"}.jam-fiverr-circle:before{content:"\ea7a"}.jam-fiverr-square:before{content:"\ea7b"}.jam-fiverr:before{content:"\ea7c"}.jam-flag-f:before{content:"\ea7d"}.jam-flag:before{content:"\ea7e"}.jam-flame-f:before{content:"\ea7f"}.jam-flame:before{content:"\ea80"}.jam-flashlight-off-f:before{content:"\ea81"}.jam-flashlight-off:before{content:"\ea82"}.jam-flashlight-on-f:before{content:"\ea83"}.jam-flashlight-on:before{content:"\ea84"}.jam-flask:before{content:"\ea85"}.jam-flickr-circle:before{content:"\ea86"}.jam-flickr-square:before{content:"\ea87"}.jam-flickr:before{content:"\ea88"}.jam-flower:before{content:"\ea89"}.jam-folder-f:before{content:"\ea8a"}.jam-folder-open-f:before{content:"\ea8b"}.jam-folder-open:before{content:"\ea8c"}.jam-folder-zip-f:before{content:"\ea8d"}.jam-folder-zip:before{content:"\ea8e"}.jam-folder:before{content:"\ea8f"}.jam-football:before{content:"\ea90"}.jam-fork-f:before{content:"\ea91"}.jam-fork:before{content:"\ea92"}.jam-forward-circle-f:before{content:"\ea93"}.jam-forward-circle:before{content:"\ea94"}.jam-forward-square-f:before{content:"\ea95"}.jam-forward-square:before{content:"\ea96"}.jam-forward:before{content:"\ea97"}.jam-foursquare:before{content:"\ea98"}.jam-gamepad-f:before{content:"\ea99"}.jam-gamepad-retro-f:before{content:"\ea9a"}.jam-gamepad-retro:before{content:"\ea9b"}.jam-gamepad:before{content:"\ea9c"}.jam-ghost-f:before{content:"\ea9d"}.jam-ghost-org-circle:before{content:"\ea9e"}.jam-ghost-org-square:before{content:"\ea9f"}.jam-ghost-org:before{content:"\eaa0"}.jam-ghost:before{content:"\eaa1"}.jam-gift-f:before{content:"\eaa2"}.jam-gift:before{content:"\eaa3"}.jam-github-circle:before{content:"\eaa4"}.jam-github-square:before{content:"\eaa5"}.jam-github:before{content:"\eaa6"}.jam-gitlab-circle:before{content:"\eaa7"}.jam-gitlab-square:before{content:"\eaa8"}.jam-gitlab:before{content:"\eaa9"}.jam-glass-empty:before{content:"\eaaa"}.jam-glass-filled-f:before{content:"\eaab"}.jam-glass-filled:before{content:"\eaac"}.jam-glue-f:before{content:"\eaad"}.jam-glue:before{content:"\eaae"}.jam-google-circle:before{content:"\eaaf"}.jam-google-play-circle:before{content:"\eab0"}.jam-google-play-square:before{content:"\eab1"}.jam-google-play:before{content:"\eab2"}.jam-google-plus-circle:before{content:"\eab3"}.jam-google-plus-square:before{content:"\eab4"}.jam-google-plus:before{content:"\eab5"}.jam-google-square:before{content:"\eab6"}.jam-google:before{content:"\eab7"}.jam-gps-f:before{content:"\eab8"}.jam-gps:before{content:"\eab9"}.jam-grid-f:before{content:"\eaba"}.jam-grid:before{content:"\eabb"}.jam-hairdryer-f:before{content:"\eabc"}.jam-hairdryer:before{content:"\eabd"}.jam-hammer-f:before{content:"\eabe"}.jam-hammer:before{content:"\eabf"}.jam-hashtag:before{content:"\eac0"}.jam-header-1:before{content:"\eac1"}.jam-header-2:before{content:"\eac2"}.jam-header-3:before{content:"\eac3"}.jam-header-4:before{content:"\eac4"}.jam-header-5:before{content:"\eac5"}.jam-header-6:before{content:"\eac6"}.jam-header:before{content:"\eac7"}.jam-headset-f:before{content:"\eac8"}.jam-headset:before{content:"\eac9"}.jam-heart-f:before{content:"\eaca"}.jam-heart:before{content:"\eacb"}.jam-helmet-f:before{content:"\eacc"}.jam-helmet:before{content:"\eacd"}.jam-help-f:before{content:"\eace"}.jam-help:before{content:"\eacf"}.jam-highlighter-f:before{content:"\ead0"}.jam-highlighter:before{content:"\ead1"}.jam-history:before{content:"\ead2"}.jam-home-f:before{content:"\ead3"}.jam-home:before{content:"\ead4"}.jam-hourglass-f:before{content:"\ead5"}.jam-hourglass:before{content:"\ead6"}.jam-ice-cream-f:before{content:"\ead7"}.jam-ice-cream:before{content:"\ead8"}.jam-id-card-f:before{content:"\ead9"}.jam-id-card:before{content:"\eada"}.jam-inbox-f:before{content:"\eadb"}.jam-inbox:before{content:"\eadc"}.jam-inboxes-f:before{content:"\eadd"}.jam-inboxes:before{content:"\eade"}.jam-indent:before{content:"\eadf"}.jam-infinite:before{content:"\eae0"}.jam-info-f:before{content:"\eae1"}.jam-info:before{content:"\eae2"}.jam-instagram:before{content:"\eae3"}.jam-instant-picture-f:before{content:"\eae4"}.jam-instant-picture:before{content:"\eae5"}.jam-italic:before{content:"\eae6"}.jam-joystick-f:before{content:"\eae7"}.jam-joystick:before{content:"\eae8"}.jam-key-f:before{content:"\eae9"}.jam-key:before{content:"\eaea"}.jam-keyboard-f:before{content:"\eaeb"}.jam-keyboard:before{content:"\eaec"}.jam-language:before{content:"\eaed"}.jam-layers-f:before{content:"\eaee"}.jam-layers:before{content:"\eaef"}.jam-layout-f:before{content:"\eaf0"}.jam-layout:before{content:"\eaf1"}.jam-leaf-f:before{content:"\eaf2"}.jam-leaf:before{content:"\eaf3"}.jam-lifebuoy-f:before{content:"\eaf4"}.jam-lifebuoy:before{content:"\eaf5"}.jam-lightbulb-f:before{content:"\eaf6"}.jam-lightbulb:before{content:"\eaf7"}.jam-line:before{content:"\eaf8"}.jam-link:before{content:"\eaf9"}.jam-linkedin-circle:before{content:"\eafa"}.jam-linkedin-square:before{content:"\eafb"}.jam-linkedin:before{content:"\eafc"}.jam-log-in:before{content:"\eafd"}.jam-log-out:before{content:"\eafe"}.jam-luggage-f:before{content:"\eaff"}.jam-luggage:before{content:"\eb00"}.jam-magic-f:before{content:"\eb01"}.jam-magic:before{content:"\eb02"}.jam-magnet-f:before{content:"\eb03"}.jam-magnet:before{content:"\eb04"}.jam-male:before{content:"\eb05"}.jam-map-f:before{content:"\eb06"}.jam-map-marker-f:before{content:"\eb07"}.jam-map-marker:before{content:"\eb08"}.jam-map:before{content:"\eb09"}.jam-mask-f:before{content:"\eb0a"}.jam-mask:before{content:"\eb0b"}.jam-medal-f:before{content:"\eb0c"}.jam-medal:before{content:"\eb0d"}.jam-medical:before{content:"\eb0e"}.jam-medium-circle:before{content:"\eb0f"}.jam-medium-square:before{content:"\eb10"}.jam-medium:before{content:"\eb11"}.jam-menu:before{content:"\eb12"}.jam-merge-f:before{content:"\eb13"}.jam-merge:before{content:"\eb14"}.jam-message-alt-f:before{content:"\eb15"}.jam-message-alt-writing-f:before{content:"\eb16"}.jam-message-alt-writing:before{content:"\eb17"}.jam-message-alt:before{content:"\eb18"}.jam-message-f:before{content:"\eb19"}.jam-message-writing-f:before{content:"\eb1a"}.jam-message-writing:before{content:"\eb1b"}.jam-message:before{content:"\eb1c"}.jam-messages-alt-f:before{content:"\eb1d"}.jam-messages-alt:before{content:"\eb1e"}.jam-messages-f:before{content:"\eb1f"}.jam-messages:before{content:"\eb20"}.jam-messenger:before{content:"\eb21"}.jam-mic-alt:before{content:"\eb22"}.jam-mic-circle-f:before{content:"\eb23"}.jam-mic-circle:before{content:"\eb24"}.jam-mic-f:before{content:"\eb25"}.jam-mic-square-f:before{content:"\eb26"}.jam-mic-square:before{content:"\eb27"}.jam-mic:before{content:"\eb28"}.jam-microchip-f:before{content:"\eb29"}.jam-microchip:before{content:"\eb2a"}.jam-minus-circle-f:before{content:"\eb2b"}.jam-minus-circle:before{content:"\eb2c"}.jam-minus-rectangle-f:before{content:"\eb2d"}.jam-minus-rectangle:before{content:"\eb2e"}.jam-minus:before{content:"\eb2f"}.jam-moon-f:before{content:"\eb30"}.jam-moon:before{content:"\eb31"}.jam-more-horizontal-f:before{content:"\eb32"}.jam-more-horizontal:before{content:"\eb33"}.jam-more-vertical-f:before{content:"\eb34"}.jam-more-vertical:before{content:"\eb35"}.jam-mountain-f:before{content:"\eb36"}.jam-mountain:before{content:"\eb37"}.jam-move-alt:before{content:"\eb38"}.jam-move:before{content:"\eb39"}.jam-movie:before{content:"\eb3a"}.jam-mug-f:before{content:"\eb3b"}.jam-mug:before{content:"\eb3c"}.jam-music-f:before{content:"\eb3d"}.jam-music:before{content:"\eb3e"}.jam-myspace-circle:before{content:"\eb3f"}.jam-myspace-square:before{content:"\eb40"}.jam-myspace:before{content:"\eb41"}.jam-napster-circle:before{content:"\eb42"}.jam-napster-square:before{content:"\eb43"}.jam-napster:before{content:"\eb44"}.jam-newsletter-f:before{content:"\eb45"}.jam-newsletter:before{content:"\eb46"}.jam-newspaper-f:before{content:"\eb47"}.jam-newspaper:before{content:"\eb48"}.jam-npm:before{content:"\eb49"}.jam-odnoklassniki-circle:before{content:"\eb4a"}.jam-odnoklassniki-square:before{content:"\eb4b"}.jam-odnoklassniki:before{content:"\eb4c"}.jam-opera-circle:before{content:"\eb4d"}.jam-opera-square:before{content:"\eb4e"}.jam-opera:before{content:"\eb4f"}.jam-ordered-list:before{content:"\eb50"}.jam-padlock-alt-f:before{content:"\eb51"}.jam-padlock-alt-open-f:before{content:"\eb52"}.jam-padlock-alt-open:before{content:"\eb53"}.jam-padlock-alt:before{content:"\eb54"}.jam-padlock-f:before{content:"\eb55"}.jam-padlock-open-f:before{content:"\eb56"}.jam-padlock-open:before{content:"\eb57"}.jam-padlock:before{content:"\eb58"}.jam-paper-plane-f:before{content:"\eb59"}.jam-paper-plane:before{content:"\eb5a"}.jam-patreon-circle:before{content:"\eb5b"}.jam-patreon-square:before{content:"\eb5c"}.jam-patreon:before{content:"\eb5d"}.jam-pause:before{content:"\eb5e"}.jam-paypal-circle:before{content:"\eb5f"}.jam-paypal-square:before{content:"\eb60"}.jam-paypal:before{content:"\eb61"}.jam-pen-f:before{content:"\eb62"}.jam-pen:before{content:"\eb63"}.jam-pencil-f:before{content:"\eb64"}.jam-pencil:before{content:"\eb65"}.jam-periscope-circle:before{content:"\eb66"}.jam-periscope-square:before{content:"\eb67"}.jam-periscope:before{content:"\eb68"}.jam-phone-f:before{content:"\eb69"}.jam-phone:before{content:"\eb6a"}.jam-picture-f:before{content:"\eb6b"}.jam-picture:before{content:"\eb6c"}.jam-pictures-f:before{content:"\eb6d"}.jam-pictures:before{content:"\eb6e"}.jam-pie-chart-alt:before{content:"\eb6f"}.jam-pie-chart-f:before{content:"\eb70"}.jam-pie-chart:before{content:"\eb71"}.jam-pin-alt-f:before{content:"\eb72"}.jam-pin-alt:before{content:"\eb73"}.jam-pin-f:before{content:"\eb74"}.jam-pin:before{content:"\eb75"}.jam-pinterest-circle:before{content:"\eb76"}.jam-pinterest-square:before{content:"\eb77"}.jam-pinterest:before{content:"\eb78"}.jam-pizza-slice:before{content:"\eb79"}.jam-plane-f:before{content:"\eb7a"}.jam-plane:before{content:"\eb7b"}.jam-play-circle-f:before{content:"\eb7c"}.jam-play-circle:before{content:"\eb7d"}.jam-play-square-f:before{content:"\eb7e"}.jam-play-square:before{content:"\eb7f"}.jam-play:before{content:"\eb80"}.jam-plug-f:before{content:"\eb81"}.jam-plug:before{content:"\eb82"}.jam-plus-circle-f:before{content:"\eb83"}.jam-plus-circle:before{content:"\eb84"}.jam-plus-rectangle-f:before{content:"\eb85"}.jam-plus-rectangle:before{content:"\eb86"}.jam-plus:before{content:"\eb87"}.jam-pocket-watch-f:before{content:"\eb88"}.jam-pocket-watch:before{content:"\eb89"}.jam-podcast:before{content:"\eb8a"}.jam-power:before{content:"\eb8b"}.jam-printer-f:before{content:"\eb8c"}.jam-printer:before{content:"\eb8d"}.jam-qr-code:before{content:"\eb8e"}.jam-quora-circle:before{content:"\eb8f"}.jam-quora-square:before{content:"\eb90"}.jam-quora:before{content:"\eb91"}.jam-rainbow:before{content:"\eb92"}.jam-rec:before{content:"\eb93"}.jam-rectangle-f:before{content:"\eb94"}.jam-rectangle:before{content:"\eb95"}.jam-reddit:before{content:"\eb96"}.jam-redo:before{content:"\eb97"}.jam-refresh-reverse:before{content:"\eb98"}.jam-refresh:before{content:"\eb99"}.jam-repeat:before{content:"\eb9a"}.jam-rocket-f:before{content:"\eb9b"}.jam-rocket:before{content:"\eb9c"}.jam-rss-feed:before{content:"\eb9d"}.jam-rubber:before{content:"\eb9e"}.jam-ruler-f:before{content:"\eb9f"}.jam-ruler:before{content:"\eba0"}.jam-save-f:before{content:"\eba1"}.jam-save:before{content:"\eba2"}.jam-scissors:before{content:"\eba3"}.jam-screen-f:before{content:"\eba4"}.jam-screen:before{content:"\eba5"}.jam-screwdriver-f:before{content:"\eba6"}.jam-screwdriver:before{content:"\eba7"}.jam-search-folder:before{content:"\eba8"}.jam-search-minus:before{content:"\eba9"}.jam-search-plus:before{content:"\ebaa"}.jam-search:before{content:"\ebab"}.jam-set-backward-circle-f:before{content:"\ebac"}.jam-set-backward-circle:before{content:"\ebad"}.jam-set-backward-square-f:before{content:"\ebae"}.jam-set-backward-square:before{content:"\ebaf"}.jam-set-backward:before{content:"\ebb0"}.jam-set-forward-circle-f:before{content:"\ebb1"}.jam-set-forward-circle:before{content:"\ebb2"}.jam-set-forward-square-f:before{content:"\ebb3"}.jam-set-forward-square:before{content:"\ebb4"}.jam-set-forward:before{content:"\ebb5"}.jam-set-square-f:before{content:"\ebb6"}.jam-set-square:before{content:"\ebb7"}.jam-settings-alt:before{content:"\ebb8"}.jam-share-alt-f:before{content:"\ebb9"}.jam-share-alt:before{content:"\ebba"}.jam-share:before{content:"\ebbb"}.jam-shield-check-f:before{content:"\ebbc"}.jam-shield-check:before{content:"\ebbd"}.jam-shield-close-f:before{content:"\ebbe"}.jam-shield-close:before{content:"\ebbf"}.jam-shield-f:before{content:"\ebc0"}.jam-shield-half:before{content:"\ebc1"}.jam-shield-minus-f:before{content:"\ebc2"}.jam-shield-minus:before{content:"\ebc3"}.jam-shield-plus-f:before{content:"\ebc4"}.jam-shield-plus:before{content:"\ebc5"}.jam-shield:before{content:"\ebc6"}.jam-shopify-circle:before{content:"\ebc7"}.jam-shopify-square:before{content:"\ebc8"}.jam-shopify:before{content:"\ebc9"}.jam-shopping-bag-alt-f:before{content:"\ebca"}.jam-shopping-bag-alt:before{content:"\ebcb"}.jam-shopping-bag-f:before{content:"\ebcc"}.jam-shopping-bag:before{content:"\ebcd"}.jam-shopping-cart:before{content:"\ebce"}.jam-shuffle:before{content:"\ebcf"}.jam-signal:before{content:"\ebd0"}.jam-sitemap-f:before{content:"\ebd1"}.jam-sitemap:before{content:"\ebd2"}.jam-skull-f:before{content:"\ebd3"}.jam-skull:before{content:"\ebd4"}.jam-skype-circle:before{content:"\ebd5"}.jam-skype-square:before{content:"\ebd6"}.jam-skype:before{content:"\ebd7"}.jam-slack-circle:before{content:"\ebd8"}.jam-slack-square:before{content:"\ebd9"}.jam-slack:before{content:"\ebda"}.jam-smiley-f:before{content:"\ebdb"}.jam-smiley:before{content:"\ebdc"}.jam-snapchat-circle:before{content:"\ebdd"}.jam-snapchat-square:before{content:"\ebde"}.jam-snapchat:before{content:"\ebdf"}.jam-snowboard-f:before{content:"\ebe0"}.jam-snowboard:before{content:"\ebe1"}.jam-snowflake:before{content:"\ebe2"}.jam-soundcloud:before{content:"\ebe3"}.jam-speaker-f:before{content:"\ebe4"}.jam-speaker:before{content:"\ebe5"}.jam-spotify:before{content:"\ebe6"}.jam-square-f:before{content:"\ebe7"}.jam-square:before{content:"\ebe8"}.jam-squarespace-circle:before{content:"\ebe9"}.jam-squarespace-square:before{content:"\ebea"}.jam-squarespace:before{content:"\ebeb"}.jam-stackoverflow-circle:before{content:"\ebec"}.jam-stackoverflow-square:before{content:"\ebed"}.jam-stackoverflow:before{content:"\ebee"}.jam-stamp-f:before{content:"\ebef"}.jam-stamp:before{content:"\ebf0"}.jam-star-f:before{content:"\ebf1"}.jam-star-full:before{content:"\ebf2"}.jam-star-half:before{content:"\ebf3"}.jam-star:before{content:"\ebf4"}.jam-station:before{content:"\ebf5"}.jam-stop-sign:before{content:"\ebf6"}.jam-stop:before{content:"\ebf7"}.jam-store:before{content:"\ebf8"}.jam-strikethrough:before{content:"\ebf9"}.jam-stumbleupon-circle:before{content:"\ebfa"}.jam-stumbleupon-square:before{content:"\ebfb"}.jam-stumbleupon:before{content:"\ebfc"}.jam-sun-f:before{content:"\ebfd"}.jam-sun:before{content:"\ebfe"}.jam-switch-left-f:before{content:"\ebff"}.jam-switch-left:before{content:"\ec00"}.jam-switch-right-f:before{content:"\ec01"}.jam-switch-right:before{content:"\ec02"}.jam-sword-f:before{content:"\ec03"}.jam-sword:before{content:"\ec04"}.jam-tablet-f:before{content:"\ec05"}.jam-tablet:before{content:"\ec06"}.jam-tag-f:before{content:"\ec07"}.jam-tag:before{content:"\ec08"}.jam-tags-f:before{content:"\ec09"}.jam-tags:before{content:"\ec0a"}.jam-target:before{content:"\ec0b"}.jam-task-list-f:before{content:"\ec0c"}.jam-task-list:before{content:"\ec0d"}.jam-temperature:before{content:"\ec0e"}.jam-terminal:before{content:"\ec0f"}.jam-thunder-f:before{content:"\ec10"}.jam-thunder:before{content:"\ec11"}.jam-ticket-f:before{content:"\ec12"}.jam-ticket:before{content:"\ec13"}.jam-tools-f:before{content:"\ec14"}.jam-tools:before{content:"\ec15"}.jam-torch-f:before{content:"\ec16"}.jam-torch:before{content:"\ec17"}.jam-totem:before{content:"\ec18"}.jam-train-f:before{content:"\ec19"}.jam-train:before{content:"\ec1a"}.jam-transgender:before{content:"\ec1b"}.jam-trash-alt-f:before{content:"\ec1c"}.jam-trash-alt:before{content:"\ec1d"}.jam-trash-f:before{content:"\ec1e"}.jam-trash:before{content:"\ec1f"}.jam-tree-alt-f:before{content:"\ec20"}.jam-tree-alt:before{content:"\ec21"}.jam-tree-f:before{content:"\ec22"}.jam-tree:before{content:"\ec23"}.jam-trello:before{content:"\ec24"}.jam-triangle-danger-f:before{content:"\ec25"}.jam-triangle-danger:before{content:"\ec26"}.jam-triangle-f:before{content:"\ec27"}.jam-triangle:before{content:"\ec28"}.jam-trophy-f:before{content:"\ec29"}.jam-trophy:before{content:"\ec2a"}.jam-tube:before{content:"\ec2b"}.jam-tumblr-circle:before{content:"\ec2c"}.jam-tumblr-square:before{content:"\ec2d"}.jam-tumblr:before{content:"\ec2e"}.jam-twitch:before{content:"\ec2f"}.jam-twitter-circle:before{content:"\ec30"}.jam-twitter-square:before{content:"\ec31"}.jam-twitter:before{content:"\ec32"}.jam-umbrella-closed-f:before{content:"\ec33"}.jam-umbrella-closed:before{content:"\ec34"}.jam-umbrella-f:before{content:"\ec35"}.jam-umbrella:before{content:"\ec36"}.jam-underline:before{content:"\ec37"}.jam-undo:before{content:"\ec38"}.jam-unindent:before{content:"\ec39"}.jam-universe:before{content:"\ec3a"}.jam-unordered-list:before{content:"\ec3b"}.jam-unsplash-circle:before{content:"\ec3c"}.jam-unsplash-square:before{content:"\ec3d"}.jam-unsplash:before{content:"\ec3e"}.jam-upload:before{content:"\ec3f"}.jam-user-circle:before{content:"\ec40"}.jam-user-minus:before{content:"\ec41"}.jam-user-plus:before{content:"\ec42"}.jam-user-remove:before{content:"\ec43"}.jam-user-square:before{content:"\ec44"}.jam-user:before{content:"\ec45"}.jam-users:before{content:"\ec46"}.jam-viadeo:before{content:"\ec47"}.jam-viber-circle:before{content:"\ec48"}.jam-viber-square:before{content:"\ec49"}.jam-viber:before{content:"\ec4a"}.jam-video-camera-f:before{content:"\ec4b"}.jam-video-camera-vintage-f:before{content:"\ec4c"}.jam-video-camera-vintage:before{content:"\ec4d"}.jam-video-camera:before{content:"\ec4e"}.jam-vimeo-circle:before{content:"\ec4f"}.jam-vimeo-square:before{content:"\ec50"}.jam-vimeo:before{content:"\ec51"}.jam-vine-circle:before{content:"\ec52"}.jam-vine-square:before{content:"\ec53"}.jam-vine:before{content:"\ec54"}.jam-voicemail:before{content:"\ec55"}.jam-volume-circle-f:before{content:"\ec56"}.jam-volume-circle:before{content:"\ec57"}.jam-volume-down-circle-f:before{content:"\ec58"}.jam-volume-down-circle:before{content:"\ec59"}.jam-volume-down-square-f:before{content:"\ec5a"}.jam-volume-down-square:before{content:"\ec5b"}.jam-volume-down:before{content:"\ec5c"}.jam-volume-mute-circle-f:before{content:"\ec5d"}.jam-volume-mute-circle:before{content:"\ec5e"}.jam-volume-mute-square-f:before{content:"\ec5f"}.jam-volume-mute-square:before{content:"\ec60"}.jam-volume-mute:before{content:"\ec61"}.jam-volume-square-f:before{content:"\ec62"}.jam-volume-square:before{content:"\ec63"}.jam-volume-up-circle-f:before{content:"\ec64"}.jam-volume-up-circle:before{content:"\ec65"}.jam-volume-up-square-f:before{content:"\ec66"}.jam-volume-up-square:before{content:"\ec67"}.jam-volume-up:before{content:"\ec68"}.jam-volume:before{content:"\ec69"}.jam-watch-f:before{content:"\ec6a"}.jam-watch:before{content:"\ec6b"}.jam-water-drop-f:before{content:"\ec6c"}.jam-water-drop:before{content:"\ec6d"}.jam-whatsapp:before{content:"\ec6e"}.jam-wifi:before{content:"\ec6f"}.jam-wikipedia:before{content:"\ec70"}.jam-wordpress:before{content:"\ec71"}.jam-world:before{content:"\ec72"}.jam-wrench-f:before{content:"\ec73"}.jam-wrench:before{content:"\ec74"}.jam-write-f:before{content:"\ec75"}.jam-write:before{content:"\ec76"}.jam-yahoo-circle:before{content:"\ec77"}.jam-yahoo-square:before{content:"\ec78"}.jam-yahoo:before{content:"\ec79"}.jam-yelp-circle:before{content:"\ec7a"}.jam-yelp-square:before{content:"\ec7b"}.jam-yelp:before{content:"\ec7c"}.jam-youtube-circle:before{content:"\ec7d"}.jam-youtube-square:before{content:"\ec7e"}.jam-youtube:before{content:"\ec7f"}
diff --git a/transformer/src/test/resources/sling.pdf b/transformer/src/test/resources/sling.pdf
deleted file mode 100644
index a443389..0000000
--- a/transformer/src/test/resources/sling.pdf
+++ /dev/null
Binary files differ
diff --git a/transformer/src/test/resources/thumbnail.png b/transformer/src/test/resources/thumbnail.png
deleted file mode 100644
index 62cf067..0000000
--- a/transformer/src/test/resources/thumbnail.png
+++ /dev/null
Binary files differ
diff --git a/ui/bnd.bnd b/ui/bnd.bnd
index bd2763c..98e57a6 100644
--- a/ui/bnd.bnd
+++ b/ui/bnd.bnd
@@ -1,3 +1,3 @@
 Sling-Nodetypes: SLING-INF/nodetypes/nodetypes.cnd
-Sling-Initial-Content: jcr_root;overwriteProperties=true;overwrite=false;ignoreImportProviders:=xml,jcr_root/conf/global;overwrite=true;ignoreImportProviders:=xml;path:=/conf/global,jcr_root/etc/clientlibs;overwrite=true;ignoreImportProviders:=xml;path:=/etc/clientlibs,jcr_root/etc/taxonomy;overwrite:=false;uninstall:=true;path:=/etc/taxonomy,jcr_root/oak%3Aindex;overwrite:=false;uninstall:=true;path:=/oak:index,jcr_root/libs/sling/servlet/errorhandler;overwriteProperties:=true;overwrite:=true;uninstall:=true;path:=/libs/sling/servlet/errorhandler,jcr_root/libs/sling-cms;overwrite:=true;uninstall:=true;path:=/libs/sling-cms,jcr_root/static/clientlibs/sling-cms;overwrite:=true;uninstall:=true;path:=/static/clientlibs/sling-cms;ignoreImportProviders:=xml,jcr_root/static/clientlibs/sling-cms-editor;overwrite:=true;uninstall:=true;path:=/static/clientlibs/sling-cms-editor;ignoreImportProviders:=xml,jcr_root/static/sling-cms;overwrite:=true;uninstall:=true;path:=/static/sling-cms;ignoreImportProviders:=xml
+Sling-Initial-Content: jcr_root;overwriteProperties=true;overwrite=false;ignoreImportProviders:=xml,jcr_root/conf/global;overwrite=true;ignoreImportProviders:=xml;path:=/conf/global,jcr_root/etc/clientlibs;overwrite=true;ignoreImportProviders:=xml;path:=/etc/clientlibs,jcr_root/etc/taxonomy;overwrite:=false;uninstall:=true;path:=/etc/taxonomy,jcr_root/oak%3Aindex;overwrite:=false;uninstall:=true;path:=/oak:index,jcr_root/libs/sling/servlet/errorhandler;overwriteProperties:=true;overwrite:=true;uninstall:=true;path:=/libs/sling/servlet/errorhandler,jcr_root/libs/sling-cms;overwrite:=true;uninstall:=true;path:=/libs/sling-cms,jcr_root/libs/sling/commons/thumbnails;overwrite:=true;uninstall:=true;path:=/libs/sling/commons/thumbnails,jcr_root/static/clientlibs/sling-cms;overwrite:=true;uninstall:=true;path:=/static/clientlibs/sling-cms;ignoreImportProviders:=xml,jcr_root/static/clientlibs/sling-cms-editor;overwrite:=true;uninstall:=true;path:=/static/clientlibs/sling-cms-editor;ignoreImportProviders:=xml,jcr_root/static/sling-cms;overwrite:=true;uninstall:=true;path:=/static/sling-cms;ignoreImportProviders:=xml
 -includeresource: target/frontend/dist
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/conf/global.json b/ui/src/main/resources/jcr_root/conf/global.json
index 46e0eca..1fccaa6 100644
--- a/ui/src/main/resources/jcr_root/conf/global.json
+++ b/ui/src/main/resources/jcr_root/conf/global.json
@@ -78,57 +78,45 @@
             "sling-cms-thumbnail": {
                 "jcr:primaryType": "nt:unstructured",
                 "name": "sling-cms-thumbnail",
-                "sling:resourceType": "sling-cms/components/caconfig/transformation",
+                "sling:resourceType": "sling/commons/thumbnails/transformation",
                 "handlers": {
                     "jcr:primaryType": "nt:unstructured",
-                    "size": {
-                        "jcr:primaryType": "nt:unstructured",
-                        "height": "480",
-                        "width": "600",
-                        "sling:resourceType": "sling-cms/components/caconfig/transformationhandlers/size"
-                    },
                     "crop": {
                         "jcr:primaryType": "nt:unstructured",
                         "position": "CENTER",
-                        "sling:resourceType": "sling-cms/components/caconfig/transformationhandlers/crop"
+                        "height": "480",
+                        "width": "600",
+                        "sling:resourceType": "sling/commons/thumbnails/transformers/crop"
                     }
                 }
             },
             "sling-cms-thumbnail128": {
                 "jcr:primaryType": "nt:unstructured",
                 "name": "sling-cms-thumbnail128",
-                "sling:resourceType": "sling-cms/components/caconfig/transformation",
+                "sling:resourceType": "sling/commons/thumbnails/transformation",
                 "handlers": {
                     "jcr:primaryType": "nt:unstructured",
-                    "size": {
-                        "jcr:primaryType": "nt:unstructured",
-                        "height": "128",
-                        "width": "128",
-                        "sling:resourceType": "sling-cms/components/caconfig/transformationhandlers/size"
-                    },
                     "crop": {
                         "jcr:primaryType": "nt:unstructured",
                         "position": "CENTER",
-                        "sling:resourceType": "sling-cms/components/caconfig/transformationhandlers/crop"
+                        "height": "128",
+                        "width": "128",
+                        "sling:resourceType": "sling/commons/thumbnails/transformers/crop"
                     }
                 }
             },
             "sling-cms-thumbnail32": {
                 "jcr:primaryType": "nt:unstructured",
                 "name": "sling-cms-thumbnail32",
-                "sling:resourceType": "sling-cms/components/caconfig/transformation",
+                "sling:resourceType": "sling/commons/thumbnails/transformation",
                 "handlers": {
                     "jcr:primaryType": "nt:unstructured",
-                    "size": {
+                    "crop": {
                         "jcr:primaryType": "nt:unstructured",
                         "height": "32",
                         "width": "32",
-                        "sling:resourceType": "sling-cms/components/caconfig/transformationhandlers/size"
-                    },
-                    "crop": {
-                        "jcr:primaryType": "nt:unstructured",
                         "position": "CENTER",
-                        "sling:resourceType": "sling-cms/components/caconfig/transformationhandlers/crop"
+                        "sling:resourceType": "sling/commons/thumbnails/transformers/crop"
                     }
                 }
             }
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformation/config.json b/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformation/config.json
deleted file mode 100644
index ef57689..0000000
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformation/config.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-	"jcr:primaryType": "sling:Component",
-    "jcr:title": "Sling CMS - Transformation Configuration"
-}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/crop.json b/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/crop.json
deleted file mode 100644
index 6b9670f..0000000
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/crop.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-    "jcr:primaryType": "sling:Component",
-    "jcr:title": "Sling CMS - Transformation Crop Handler",
-    "componentType": "SlingCMS-TransformationHandler"
-}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/transformations/create.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/transformations/create.json
index 6c15e49..e84613c 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/content/transformations/create.json
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/transformations/create.json
@@ -46,7 +46,7 @@
                         "jcr:primaryType": "nt:unstructured",
                         "sling:resourceType": "sling-cms/components/editor/fields/hidden",
                         "name": "sling:resourceType",
-                        "value": "sling-cms/components/caconfig/transformation"
+                        "value": "sling/commons/thumbnails/transformation"
                     }
                 }
             }
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/content/transformations/edit.json b/ui/src/main/resources/jcr_root/libs/sling-cms/content/transformations/edit.json
index 8051946..aaaddae 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/content/transformations/edit.json
+++ b/ui/src/main/resources/jcr_root/libs/sling-cms/content/transformations/edit.json
@@ -23,7 +23,7 @@
             },
             "transformationeditor": {
                 "jcr:primaryType": "nt:unstructured",
-                "sling:resourceType": "sling-cms/components/caconfig/transformation"
+                "sling:resourceType": "sling/commons/thumbnails/transformation"
             }
         }
     }
diff --git a/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformation/config.json b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformation/config.json
new file mode 100644
index 0000000..5d133a9
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformation/config.json
@@ -0,0 +1,4 @@
+{
+	"jcr:primaryType": "sling:Component",
+    "jcr:title": "Transformation Configuration"
+}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformation/config/config.jsp b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformation/config/config.jsp
similarity index 100%
rename from ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformation/config/config.jsp
rename to ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformation/config/config.jsp
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformation/config/edit.json b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformation/config/edit.json
similarity index 100%
rename from ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformation/config/edit.json
rename to ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformation/config/edit.json
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformation/transformation.jsp b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformation/transformation.jsp
similarity index 94%
rename from ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformation/transformation.jsp
rename to ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformation/transformation.jsp
index 2534257..ebd6782 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformation/transformation.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformation/transformation.jsp
@@ -20,7 +20,7 @@
 <div class="scroll-container">
     <c:set var="cmsEditEnabled" value="true" scope="request" />
     <sling:call script="/libs/sling-cms/components/editor/scripts/init.jsp" />
-    <sling:include path="${slingRequest.requestPathInfo.suffix}" resourceType="sling-cms/components/caconfig/transformation/config" />
+    <sling:include path="${slingRequest.requestPathInfo.suffix}" resourceType="sling/commons/thumbnails/transformation/config" />
     <sling:call script="/libs/sling-cms/components/editor/scripts/finalize.jsp" />
     <c:set var="cmsEditEnabled" value="false" scope="request" />
 </div>
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size.json b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/colorize.json
similarity index 62%
copy from ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size.json
copy to ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/colorize.json
index 55709a9..3396d4e 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size.json
+++ b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/colorize.json
@@ -1,5 +1,5 @@
 {
     "jcr:primaryType": "sling:Component",
-    "jcr:title": "Sling CMS - Transformation Size Handler",
+    "jcr:title": "Colorize Handler",
     "componentType": "SlingCMS-TransformationHandler"
 }
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size/size.jsp b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/colorize/colorize.jsp
similarity index 71%
copy from ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size/size.jsp
copy to ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/colorize/colorize.jsp
index a25f5ec..75b1a8f 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size/size.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/colorize/colorize.jsp
@@ -18,8 +18,12 @@
  */ --%>
  <%@include file="/libs/sling-cms/global.jsp"%>
 <dl>
-    <dt><fmt:message key="Width" /></dt>
-    <dd>${properties.width}</dd>
-    <dt><fmt:message key="Height" /></dt>
-    <dd>${properties.height}</dd>
+    <dt>Red</dt>
+    <dd><sling:encode value="${properties.red}" mode="HTML" /></dd>
+    <dt>Green</dt>
+    <dd><sling:encode value="${properties.green}" mode="HTML" /></dd>
+    <dt>Blue</dt>
+    <dd><sling:encode value="${properties.blue}" mode="HTML" /></dd>
+    <dt>Alpha</dt>
+    <dd><sling:encode value="${properties.alpha}" mode="HTML" /></dd>
 </dl>
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/colorize/edit.json b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/colorize/edit.json
new file mode 100644
index 0000000..e3e8dfb
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/colorize/edit.json
@@ -0,0 +1,40 @@
+ {
+    "jcr:primaryType": "nt:unstructured",
+    "sling:resourceType": "sling-cms/components/editor/slingform",
+    "button": "Save",
+    "fields": {
+        "jcr:primaryType": "nt:unstructured",
+        "sling:resourceType": "sling-cms/components/general/container",
+        "red": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "sling-cms/components/editor/fields/text",
+            "label": "Red",
+            "name": "red",
+            "required": true,
+            "type": "number"
+        },
+        "green": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "sling-cms/components/editor/fields/text",
+            "label": "Green",
+            "name": "green",
+            "required": true,
+            "type": "number"
+        },
+        "blue": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "sling-cms/components/editor/fields/text",
+            "label": "Blue",
+            "name": "blue",
+            "required": true,
+            "type": "number"
+        },
+        "alpha": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "sling-cms/components/editor/fields/text",
+            "label": "Alpha",
+            "required": true,
+            "name": "alpha"
+        }
+    }
+}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size.json b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/crop.json
similarity index 62%
copy from ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size.json
copy to ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/crop.json
index 55709a9..393ce1f 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size.json
+++ b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/crop.json
@@ -1,5 +1,5 @@
 {
     "jcr:primaryType": "sling:Component",
-    "jcr:title": "Sling CMS - Transformation Size Handler",
+    "jcr:title": "Crop Handler",
     "componentType": "SlingCMS-TransformationHandler"
 }
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size/size.jsp b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/crop/crop.jsp
similarity index 78%
rename from ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size/size.jsp
rename to ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/crop/crop.jsp
index a25f5ec..695fc24 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size/size.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/crop/crop.jsp
@@ -18,8 +18,10 @@
  */ --%>
  <%@include file="/libs/sling-cms/global.jsp"%>
 <dl>
-    <dt><fmt:message key="Width" /></dt>
-    <dd>${properties.width}</dd>
+    <dt><fmt:message key="Position" /></dt>
+    <dd><sling:encode value="${properties.position}" mode="HTML" /></dd>
     <dt><fmt:message key="Height" /></dt>
-    <dd>${properties.height}</dd>
+    <dd><sling:encode value="${properties.height}" mode="HTML" /></dd>
+    <dt><fmt:message key="Width" /></dt>
+    <dd><sling:encode value="${properties.width}" mode="HTML" /></dd>
 </dl>
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/crop/edit.json b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/crop/edit.json
similarity index 76%
rename from ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/crop/edit.json
rename to ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/crop/edit.json
index 4aa1dbb..29b2db0 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/crop/edit.json
+++ b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/crop/edit.json
@@ -48,6 +48,22 @@
                     "value": "TOP_RIGHT"
                 }
             }
+        },
+        "width": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "sling-cms/components/editor/fields/text",
+            "label": "Width",
+            "name": "width",
+            "required": true,
+            "type": "number"
+        },
+        "height": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "sling-cms/components/editor/fields/text",
+            "label": "Height",
+            "name": "height",
+            "required": true,
+            "type": "number"
         }
     }
 }
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size.json b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/flip.json
similarity index 62%
copy from ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size.json
copy to ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/flip.json
index 55709a9..f0176e7 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size.json
+++ b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/flip.json
@@ -1,5 +1,5 @@
 {
     "jcr:primaryType": "sling:Component",
-    "jcr:title": "Sling CMS - Transformation Size Handler",
+    "jcr:title": "Flip Handler",
     "componentType": "SlingCMS-TransformationHandler"
 }
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/flip/edit.json b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/flip/edit.json
new file mode 100644
index 0000000..e8e5b1d
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/flip/edit.json
@@ -0,0 +1,26 @@
+{
+  "jcr:primaryType": "nt:unstructured",
+  "sling:resourceType": "sling-cms/components/editor/slingform",
+  "button": "Save",
+  "fields": {
+    "jcr:primaryType": "nt:unstructured",
+    "sling:resourceType": "sling-cms/components/general/container",
+    "direction": {
+      "jcr:primaryType": "nt:unstructured",
+      "sling:resourceType": "sling-cms/components/editor/fields/select",
+      "label": "Direction",
+      "name": "direction",
+      "required": true,
+      "options": {
+        "horizontal": {
+          "label": "Horizontal",
+          "value": "horizontal"
+        },
+        "vertical": {
+          "label": "Vertical",
+          "value": "vertical"
+        }
+      }
+    }
+  }
+}
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/crop/crop.jsp b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/flip/flip.jsp
similarity index 87%
copy from ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/crop/crop.jsp
copy to ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/flip/flip.jsp
index a8cc28b..54b058e 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/crop/crop.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/flip/flip.jsp
@@ -18,6 +18,6 @@
  */ --%>
  <%@include file="/libs/sling-cms/global.jsp"%>
 <dl>
-    <dt><fmt:message key="Position" /></dt>
-    <dd>${properties.position}</dd>
+    <dt><fmt:message key="Direction" /></dt>
+    <dd><sling:encode value="${properties.direction}" mode="HTML" /></dd>
 </dl>
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size.json b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/greyscale.json
similarity index 61%
copy from ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size.json
copy to ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/greyscale.json
index 55709a9..a9afa5a 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size.json
+++ b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/greyscale.json
@@ -1,5 +1,5 @@
 {
     "jcr:primaryType": "sling:Component",
-    "jcr:title": "Sling CMS - Transformation Size Handler",
+    "jcr:title": "Greyscale Handler",
     "componentType": "SlingCMS-TransformationHandler"
 }
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/greyscale/edit.json b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/greyscale/edit.json
new file mode 100644
index 0000000..774c5d5
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/greyscale/edit.json
@@ -0,0 +1,7 @@
+ {
+    "jcr:primaryType": "nt:unstructured",
+    "sling:resourceType": "sling-cms/components/editor/slingform",
+    "button": "No settings required",
+    "fields": {
+    }
+}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/crop/crop.jsp b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/greyscale/greyscale.jsp
similarity index 90%
copy from ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/crop/crop.jsp
copy to ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/greyscale/greyscale.jsp
index a8cc28b..f8d3e1a 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/crop/crop.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/greyscale/greyscale.jsp
@@ -18,6 +18,4 @@
  */ --%>
  <%@include file="/libs/sling-cms/global.jsp"%>
 <dl>
-    <dt><fmt:message key="Position" /></dt>
-    <dd>${properties.position}</dd>
 </dl>
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size.json b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/resize.json
similarity index 62%
copy from ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size.json
copy to ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/resize.json
index 55709a9..0fb0728 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size.json
+++ b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/resize.json
@@ -1,5 +1,5 @@
 {
     "jcr:primaryType": "sling:Component",
-    "jcr:title": "Sling CMS - Transformation Size Handler",
+    "jcr:title": "Resize Handler",
     "componentType": "SlingCMS-TransformationHandler"
 }
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/resize/edit.json b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/resize/edit.json
new file mode 100644
index 0000000..fdb2126
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/resize/edit.json
@@ -0,0 +1,45 @@
+ {
+    "jcr:primaryType": "nt:unstructured",
+    "sling:resourceType": "sling-cms/components/editor/slingform",
+    "button": "Save",
+    "fields": {
+        "jcr:primaryType": "nt:unstructured",
+        "sling:resourceType": "sling-cms/components/general/container",
+        "width": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "sling-cms/components/editor/fields/text",
+            "label": "Width",
+            "name": "width",
+            "type": "number"
+        },
+        "height": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "sling-cms/components/editor/fields/text",
+            "label": "Height",
+            "name": "height",
+            "type": "number"
+        },
+        "keepAspectRatio": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "sling-cms/components/editor/fields/select",
+            "label": "Keep Aspect Ratio",
+            "name": "keepAspectRatio",
+            "options": {
+                "yes": {
+                    "label": "Yes",
+                    "value": true
+                },
+                "no": {
+                    "label": "No",
+                    "value": false
+                }
+            }
+        },
+        "keepAspectRatioTypeHint": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "sling-cms/components/editor/fields/hidden",
+            "name": "keepAspectRatio@TypeHint",
+            "value": "Boolean"
+        }
+    }
+}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size/size.jsp b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/resize/resize.jsp
similarity index 74%
copy from ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size/size.jsp
copy to ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/resize/resize.jsp
index a25f5ec..be0d5c8 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size/size.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/resize/resize.jsp
@@ -18,8 +18,10 @@
  */ --%>
  <%@include file="/libs/sling-cms/global.jsp"%>
 <dl>
-    <dt><fmt:message key="Width" /></dt>
-    <dd>${properties.width}</dd>
-    <dt><fmt:message key="Height" /></dt>
-    <dd>${properties.height}</dd>
+    <dt>Width</dt>
+    <dd><sling:encode value="${properties.width}" mode="HTML" /></dd>
+    <dt>Height</dt>
+    <dd><sling:encode value="${properties.height}" mode="HTML" /></dd>
+    <dt>Keep Aspect Ratio</dt>
+    <dd><sling:encode value="${properties.keepAspectRatio}" mode="HTML" /></dd>
 </dl>
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size.json b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/rotate.json
similarity index 62%
rename from ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size.json
rename to ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/rotate.json
index 55709a9..db69efa 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size.json
+++ b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/rotate.json
@@ -1,5 +1,5 @@
 {
     "jcr:primaryType": "sling:Component",
-    "jcr:title": "Sling CMS - Transformation Size Handler",
+    "jcr:title": "Rotate Handler",
     "componentType": "SlingCMS-TransformationHandler"
 }
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/rotate/edit.json b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/rotate/edit.json
new file mode 100644
index 0000000..8a88504
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/rotate/edit.json
@@ -0,0 +1,17 @@
+ {
+    "jcr:primaryType": "nt:unstructured",
+    "sling:resourceType": "sling-cms/components/editor/slingform",
+    "button": "Save",
+    "fields": {
+        "jcr:primaryType": "nt:unstructured",
+        "sling:resourceType": "sling-cms/components/general/container",
+        "degrees": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "sling-cms/components/editor/fields/text",
+            "label": "Degrees",
+            "name": "degrees",
+            "required": true,
+            "type": "text"
+        }
+    }
+}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/crop/crop.jsp b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/rotate/rotate.jsp
similarity index 89%
copy from ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/crop/crop.jsp
copy to ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/rotate/rotate.jsp
index a8cc28b..5407ba5 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/crop/crop.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/rotate/rotate.jsp
@@ -18,6 +18,6 @@
  */ --%>
  <%@include file="/libs/sling-cms/global.jsp"%>
 <dl>
-    <dt><fmt:message key="Position" /></dt>
-    <dd>${properties.position}</dd>
+    <dt>Degrees</dt>
+    <dd><sling:encode value="${properties.degrees}" mode="HTML" /></dd>
 </dl>
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size/edit.json b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/scale/edit.json
similarity index 69%
rename from ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size/edit.json
rename to ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/scale/edit.json
index 4469a65..f32d19c 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size/edit.json
+++ b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/scale/edit.json
@@ -5,19 +5,26 @@
     "fields": {
         "jcr:primaryType": "nt:unstructured",
         "sling:resourceType": "sling-cms/components/general/container",
+        "both": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "sling-cms/components/editor/fields/select",
+            "label": "Both Width and Height",
+            "name": "both",
+            "type": "text"
+        },
         "width": {
             "jcr:primaryType": "nt:unstructured",
             "sling:resourceType": "sling-cms/components/editor/fields/text",
             "label": "Width",
             "name": "width",
-            "type": "number"
+            "type": "text"
         },
         "height": {
             "jcr:primaryType": "nt:unstructured",
             "sling:resourceType": "sling-cms/components/editor/fields/text",
             "label": "Height",
             "name": "height",
-            "type": "number"
+            "type": "text"
         }
     }
 }
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size/size.jsp b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/scale/scale.jsp
similarity index 76%
copy from ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size/size.jsp
copy to ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/scale/scale.jsp
index a25f5ec..d4f4af6 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size/size.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/scale/scale.jsp
@@ -18,8 +18,10 @@
  */ --%>
  <%@include file="/libs/sling-cms/global.jsp"%>
 <dl>
-    <dt><fmt:message key="Width" /></dt>
-    <dd>${properties.width}</dd>
-    <dt><fmt:message key="Height" /></dt>
-    <dd>${properties.height}</dd>
+    <dt>Both</dt>
+    <dd><sling:encode value="${properties.both}" mode="HTML" /></dd>
+    <dt>Width</dt>
+    <dd><sling:encode value="${properties.width}" mode="HTML" /></dd>
+    <dt>Height</dt>
+    <dd><sling:encode value="${properties.height}" mode="HTML" /></dd>
 </dl>
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size.json b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/transparency.json
similarity index 61%
copy from ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size.json
copy to ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/transparency.json
index 55709a9..6b70bb0 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/size.json
+++ b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/transparency.json
@@ -1,5 +1,5 @@
 {
     "jcr:primaryType": "sling:Component",
-    "jcr:title": "Sling CMS - Transformation Size Handler",
+    "jcr:title": "Transparency Handler",
     "componentType": "SlingCMS-TransformationHandler"
 }
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/transparency/edit.json b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/transparency/edit.json
new file mode 100644
index 0000000..5fa3d3d
--- /dev/null
+++ b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/transparency/edit.json
@@ -0,0 +1,16 @@
+ {
+    "jcr:primaryType": "nt:unstructured",
+    "sling:resourceType": "sling-cms/components/editor/slingform",
+    "button": "Save",
+    "fields": {
+        "jcr:primaryType": "nt:unstructured",
+        "sling:resourceType": "sling-cms/components/general/container",
+        "alpha": {
+            "jcr:primaryType": "nt:unstructured",
+            "sling:resourceType": "sling-cms/components/editor/fields/text",
+            "label": "Alpha",
+            "required": true,
+            "name": "alpha"
+        }
+    }
+}
\ No newline at end of file
diff --git a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/crop/crop.jsp b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/transparency/transparency.jsp
similarity index 90%
rename from ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/crop/crop.jsp
rename to ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/transparency/transparency.jsp
index a8cc28b..2d831f9 100644
--- a/ui/src/main/resources/jcr_root/libs/sling-cms/components/caconfig/transformationhandlers/crop/crop.jsp
+++ b/ui/src/main/resources/jcr_root/libs/sling/commons/thumbnails/transformers/transparency/transparency.jsp
@@ -18,6 +18,6 @@
  */ --%>
  <%@include file="/libs/sling-cms/global.jsp"%>
 <dl>
-    <dt><fmt:message key="Position" /></dt>
-    <dd>${properties.position}</dd>
+    <dt>Alpha</dt>
+    <dd><sling:encode value="${properties.alpha}" mode="HTML" /></dd>
 </dl>
\ No newline at end of file