diff --git a/.github/workflows/run-it.yml b/.github/workflows/run-it.yml
index b2b856116d..a5bf603e9b 100644
--- a/.github/workflows/run-it.yml
+++ b/.github/workflows/run-it.yml
@@ -121,6 +121,7 @@ jobs:
run: |
echo "Running integration tests..."
docker run --rm --network danswer-stack_default \
+ --name test-runner \
-e POSTGRES_HOST=relational_db \
-e POSTGRES_USER=postgres \
-e POSTGRES_PASSWORD=password \
@@ -129,6 +130,7 @@ jobs:
-e REDIS_HOST=cache \
-e API_SERVER_HOST=api_server \
-e OPENAI_API_KEY=${OPENAI_API_KEY} \
+ -e TEST_WEB_HOSTNAME=test-runner \
danswer/integration-test-runner:it
continue-on-error: true
id: run_tests
diff --git a/.prettierignore b/.prettierignore
new file mode 100644
index 0000000000..0164457a03
--- /dev/null
+++ b/.prettierignore
@@ -0,0 +1 @@
+backend/tests/integration/tests/pruning/website
diff --git a/backend/danswer/background/celery/celery_app.py b/backend/danswer/background/celery/celery_app.py
index cdd9b1d5c4..aedc3fec40 100644
--- a/backend/danswer/background/celery/celery_app.py
+++ b/backend/danswer/background/celery/celery_app.py
@@ -627,6 +627,9 @@ def check_for_prune_task() -> None:
all_cc_pairs = get_connector_credential_pairs(db_session)
for cc_pair in all_cc_pairs:
+ if not cc_pair.connector.prune_freq:
+ continue
+
if should_prune_cc_pair(
connector=cc_pair.connector,
credential=cc_pair.credential,
diff --git a/backend/danswer/background/celery/celery_utils.py b/backend/danswer/background/celery/celery_utils.py
index 65377a4d75..8cda63b8fd 100644
--- a/backend/danswer/background/celery/celery_utils.py
+++ b/backend/danswer/background/celery/celery_utils.py
@@ -69,6 +69,30 @@ def get_deletion_attempt_snapshot(
)
+def skip_cc_pair_pruning_by_task(
+ pruning_task: TaskQueueState | None, db_session: Session
+) -> bool:
+ """task should be the latest prune task for this cc_pair"""
+ if not ALLOW_SIMULTANEOUS_PRUNING:
+ # if only one prune is allowed at any time, then check to see if any prune
+ # is active
+ pruning_type_task_name = name_cc_prune_task()
+ last_pruning_type_task = get_latest_task_by_type(
+ pruning_type_task_name, db_session
+ )
+
+ if last_pruning_type_task and check_task_is_live_and_not_timed_out(
+ last_pruning_type_task, db_session
+ ):
+ return True
+
+ if pruning_task and check_task_is_live_and_not_timed_out(pruning_task, db_session):
+ # if the last task is live right now, we shouldn't start a new one
+ return True
+
+ return False
+
+
def should_prune_cc_pair(
connector: Connector, credential: Credential, db_session: Session
) -> bool:
@@ -79,31 +103,26 @@ def should_prune_cc_pair(
connector_id=connector.id, credential_id=credential.id
)
last_pruning_task = get_latest_task(pruning_task_name, db_session)
+
+ if skip_cc_pair_pruning_by_task(last_pruning_task, db_session):
+ return False
+
current_db_time = get_db_current_time(db_session)
if not last_pruning_task:
+ # If the connector has never been pruned, then compare vs when the connector
+ # was created
time_since_initialization = current_db_time - connector.time_created
if time_since_initialization.total_seconds() >= connector.prune_freq:
return True
return False
- if not ALLOW_SIMULTANEOUS_PRUNING:
- pruning_type_task_name = name_cc_prune_task()
- last_pruning_type_task = get_latest_task_by_type(
- pruning_type_task_name, db_session
- )
-
- if last_pruning_type_task and check_task_is_live_and_not_timed_out(
- last_pruning_type_task, db_session
- ):
- return False
-
- if check_task_is_live_and_not_timed_out(last_pruning_task, db_session):
- return False
-
if not last_pruning_task.start_time:
+ # if the last prune task hasn't started, we shouldn't start a new one
return False
+ # if the last prune task has a start time, then compare against it to determine
+ # if we should start
time_since_last_pruning = current_db_time - last_pruning_task.start_time
return time_since_last_pruning.total_seconds() >= connector.prune_freq
diff --git a/backend/danswer/configs/app_configs.py b/backend/danswer/configs/app_configs.py
index d44e2de78e..4ccc3c0baf 100644
--- a/backend/danswer/configs/app_configs.py
+++ b/backend/danswer/configs/app_configs.py
@@ -270,7 +270,7 @@ ALLOW_SIMULTANEOUS_PRUNING = (
os.environ.get("ALLOW_SIMULTANEOUS_PRUNING", "").lower() == "true"
)
-# This is the maxiumum rate at which documents are queried for a pruning job. 0 disables the limitation.
+# This is the maximum rate at which documents are queried for a pruning job. 0 disables the limitation.
MAX_PRUNING_DOCUMENT_RETRIEVAL_PER_MINUTE = int(
os.environ.get("MAX_PRUNING_DOCUMENT_RETRIEVAL_PER_MINUTE", 0)
)
diff --git a/backend/danswer/server/documents/cc_pair.py b/backend/danswer/server/documents/cc_pair.py
index b06aacc1e6..9aacc985d5 100644
--- a/backend/danswer/server/documents/cc_pair.py
+++ b/backend/danswer/server/documents/cc_pair.py
@@ -1,4 +1,5 @@
import math
+from http import HTTPStatus
from fastapi import APIRouter
from fastapi import Depends
@@ -10,6 +11,8 @@ from sqlalchemy.orm import Session
from danswer.auth.users import current_curator_or_admin_user
from danswer.auth.users import current_user
from danswer.background.celery.celery_utils import get_deletion_attempt_snapshot
+from danswer.background.celery.celery_utils import skip_cc_pair_pruning_by_task
+from danswer.background.task_utils import name_cc_prune_task
from danswer.db.connector_credential_pair import add_credential_to_connector
from danswer.db.connector_credential_pair import get_connector_credential_pair_from_id
from danswer.db.connector_credential_pair import remove_credential_from_connector
@@ -26,7 +29,9 @@ from danswer.db.index_attempt import count_index_attempts_for_connector
from danswer.db.index_attempt import get_latest_index_attempt_for_cc_pair_id
from danswer.db.index_attempt import get_paginated_index_attempts_for_cc_pair_id
from danswer.db.models import User
+from danswer.db.tasks import get_latest_task
from danswer.server.documents.models import CCPairFullInfo
+from danswer.server.documents.models import CCPairPruningTask
from danswer.server.documents.models import CCStatusUpdateRequest
from danswer.server.documents.models import ConnectorCredentialPairIdentifier
from danswer.server.documents.models import ConnectorCredentialPairMetadata
@@ -36,7 +41,6 @@ from danswer.utils.logger import setup_logger
from ee.danswer.db.user_group import validate_user_creation_permissions
logger = setup_logger()
-
router = APIRouter(prefix="/manage")
@@ -190,6 +194,92 @@ def update_cc_pair_name(
raise HTTPException(status_code=400, detail="Name must be unique")
+@router.get("/admin/cc-pair/{cc_pair_id}/prune")
+def get_cc_pair_latest_prune(
+ cc_pair_id: int,
+ user: User = Depends(current_curator_or_admin_user),
+ db_session: Session = Depends(get_session),
+) -> CCPairPruningTask:
+ cc_pair = get_connector_credential_pair_from_id(
+ cc_pair_id=cc_pair_id,
+ db_session=db_session,
+ user=user,
+ get_editable=False,
+ )
+ if not cc_pair:
+ raise HTTPException(
+ status_code=400,
+ detail="Connection not found for current user's permissions",
+ )
+
+ # look up the last prune task for this connector (if it exists)
+ pruning_task_name = name_cc_prune_task(
+ connector_id=cc_pair.connector_id, credential_id=cc_pair.credential_id
+ )
+ last_pruning_task = get_latest_task(pruning_task_name, db_session)
+ if not last_pruning_task:
+ raise HTTPException(
+ status_code=HTTPStatus.NOT_FOUND,
+ detail="No pruning task found.",
+ )
+
+ return CCPairPruningTask(
+ id=last_pruning_task.task_id,
+ name=last_pruning_task.task_name,
+ status=last_pruning_task.status,
+ start_time=last_pruning_task.start_time,
+ register_time=last_pruning_task.register_time,
+ )
+
+
+@router.post("/admin/cc-pair/{cc_pair_id}/prune")
+def prune_cc_pair(
+ cc_pair_id: int,
+ user: User = Depends(current_curator_or_admin_user),
+ db_session: Session = Depends(get_session),
+) -> StatusResponse[list[int]]:
+ # avoiding circular refs
+ from danswer.background.celery.celery_app import prune_documents_task
+
+ cc_pair = get_connector_credential_pair_from_id(
+ cc_pair_id=cc_pair_id,
+ db_session=db_session,
+ user=user,
+ get_editable=False,
+ )
+ if not cc_pair:
+ raise HTTPException(
+ status_code=400,
+ detail="Connection not found for current user's permissions",
+ )
+
+ pruning_task_name = name_cc_prune_task(
+ connector_id=cc_pair.connector_id, credential_id=cc_pair.credential_id
+ )
+ last_pruning_task = get_latest_task(pruning_task_name, db_session)
+ if skip_cc_pair_pruning_by_task(
+ last_pruning_task,
+ db_session=db_session,
+ ):
+ raise HTTPException(
+ status_code=HTTPStatus.CONFLICT,
+ detail="Pruning task already in progress.",
+ )
+
+ logger.info(f"Pruning the {cc_pair.connector.name} connector.")
+ prune_documents_task.apply_async(
+ kwargs=dict(
+ connector_id=cc_pair.connector.id,
+ credential_id=cc_pair.credential.id,
+ )
+ )
+
+ return StatusResponse(
+ success=True,
+ message="Successfully created the pruning task.",
+ )
+
+
@router.put("/connector/{connector_id}/credential/{credential_id}")
def associate_credential_to_connector(
connector_id: int,
diff --git a/backend/danswer/server/documents/models.py b/backend/danswer/server/documents/models.py
index b4052303ba..ee266eca8b 100644
--- a/backend/danswer/server/documents/models.py
+++ b/backend/danswer/server/documents/models.py
@@ -268,6 +268,14 @@ class CCPairFullInfo(BaseModel):
)
+class CCPairPruningTask(BaseModel):
+ id: str
+ name: str
+ status: TaskStatus
+ start_time: datetime | None
+ register_time: datetime | None
+
+
class FailedConnectorIndexingStatus(BaseModel):
"""Simplified version of ConnectorIndexingStatus for failed indexing attempts"""
diff --git a/backend/tests/integration/common_utils/managers/cc_pair.py b/backend/tests/integration/common_utils/managers/cc_pair.py
index f831b9abcf..000bbac59d 100644
--- a/backend/tests/integration/common_utils/managers/cc_pair.py
+++ b/backend/tests/integration/common_utils/managers/cc_pair.py
@@ -1,4 +1,5 @@
import time
+from datetime import datetime
from typing import Any
from uuid import uuid4
@@ -7,6 +8,8 @@ import requests
from danswer.connectors.models import InputType
from danswer.db.enums import AccessType
from danswer.db.enums import ConnectorCredentialPairStatus
+from danswer.db.enums import TaskStatus
+from danswer.server.documents.models import CCPairPruningTask
from danswer.server.documents.models import ConnectorCredentialPairIdentifier
from danswer.server.documents.models import ConnectorIndexingStatus
from danswer.server.documents.models import DocumentSource
@@ -141,6 +144,25 @@ class CCPairManager:
)
result.raise_for_status()
+ @staticmethod
+ def get_one(
+ cc_pair_id: int,
+ user_performing_action: DATestUser | None = None,
+ ) -> ConnectorIndexingStatus | None:
+ response = requests.get(
+ f"{API_SERVER_URL}/manage/admin/connector/indexing-status",
+ headers=user_performing_action.headers
+ if user_performing_action
+ else GENERAL_HEADERS,
+ )
+ response.raise_for_status()
+ for cc_pair_json in response.json():
+ cc_pair = ConnectorIndexingStatus(**cc_pair_json)
+ if cc_pair.cc_pair_id == cc_pair_id:
+ return cc_pair
+
+ return None
+
@staticmethod
def get_all(
user_performing_action: DATestUser | None = None,
@@ -181,11 +203,100 @@ class CCPairManager:
if not verify_deleted:
raise ValueError(f"CC pair {cc_pair.id} not found")
+ @staticmethod
+ def wait_for_indexing(
+ cc_pair_test: DATestCCPair,
+ after: datetime,
+ timeout: float = MAX_DELAY,
+ user_performing_action: DATestUser | None = None,
+ ) -> None:
+ """after: Wait for an indexing success time after this time"""
+ start = time.monotonic()
+ while True:
+ cc_pairs = CCPairManager.get_all(user_performing_action)
+ for cc_pair in cc_pairs:
+ if cc_pair.cc_pair_id != cc_pair_test.id:
+ continue
+
+ if cc_pair.last_success and cc_pair.last_success > after:
+ print(f"cc_pair {cc_pair_test.id} indexing complete.")
+ return
+
+ elapsed = time.monotonic() - start
+ if elapsed > timeout:
+ raise TimeoutError(
+ f"CC pair indexing was not completed within {timeout} seconds"
+ )
+
+ print(
+ f"Waiting for CC indexing to complete. elapsed={elapsed:.2f} timeout={timeout}"
+ )
+ time.sleep(5)
+
+ @staticmethod
+ def prune(
+ cc_pair: DATestCCPair,
+ user_performing_action: DATestUser | None = None,
+ ) -> None:
+ result = requests.post(
+ url=f"{API_SERVER_URL}/manage/admin/cc-pair/{cc_pair.id}/prune",
+ headers=user_performing_action.headers
+ if user_performing_action
+ else GENERAL_HEADERS,
+ )
+ result.raise_for_status()
+
+ @staticmethod
+ def get_prune_task(
+ cc_pair: DATestCCPair,
+ user_performing_action: DATestUser | None = None,
+ ) -> CCPairPruningTask:
+ response = requests.get(
+ url=f"{API_SERVER_URL}/manage/admin/cc-pair/{cc_pair.id}/prune",
+ headers=user_performing_action.headers
+ if user_performing_action
+ else GENERAL_HEADERS,
+ )
+ response.raise_for_status()
+ return CCPairPruningTask(**response.json())
+
+ @staticmethod
+ def wait_for_prune(
+ cc_pair_test: DATestCCPair,
+ after: datetime,
+ timeout: float = MAX_DELAY,
+ user_performing_action: DATestUser | None = None,
+ ) -> None:
+ """after: The task register time must be after this time."""
+ start = time.monotonic()
+ while True:
+ task = CCPairManager.get_prune_task(cc_pair_test, user_performing_action)
+ if not task:
+ raise ValueError("Prune task not found.")
+
+ if not task.register_time or task.register_time < after:
+ raise ValueError("Prune task register time is too early.")
+
+ if task.status == TaskStatus.SUCCESS:
+ # Pruning succeeded
+ return
+
+ elapsed = time.monotonic() - start
+ if elapsed > timeout:
+ raise TimeoutError(
+ f"CC pair pruning was not completed within {timeout} seconds"
+ )
+
+ print(
+ f"Waiting for CC pruning to complete. elapsed={elapsed:.2f} timeout={timeout}"
+ )
+ time.sleep(5)
+
@staticmethod
def wait_for_deletion_completion(
user_performing_action: DATestUser | None = None,
) -> None:
- start = time.time()
+ start = time.monotonic()
while True:
cc_pairs = CCPairManager.get_all(user_performing_action)
if all(
@@ -194,7 +305,7 @@ class CCPairManager:
):
return
- if time.time() - start > MAX_DELAY:
+ if time.monotonic() - start > MAX_DELAY:
raise TimeoutError(
f"CC pairs deletion was not completed within the {MAX_DELAY} seconds"
)
diff --git a/backend/tests/integration/tests/pruning/test_pruning.py b/backend/tests/integration/tests/pruning/test_pruning.py
new file mode 100644
index 0000000000..084ad80b35
--- /dev/null
+++ b/backend/tests/integration/tests/pruning/test_pruning.py
@@ -0,0 +1,143 @@
+import http.server
+import os
+import shutil
+import tempfile
+import threading
+from collections.abc import Generator
+from contextlib import contextmanager
+from datetime import datetime
+from datetime import timezone
+from time import sleep
+from typing import Any
+
+from danswer.server.documents.models import DocumentSource
+from danswer.utils.logger import setup_logger
+from tests.integration.common_utils.managers.api_key import APIKeyManager
+from tests.integration.common_utils.managers.cc_pair import CCPairManager
+from tests.integration.common_utils.managers.user import UserManager
+from tests.integration.common_utils.test_models import DATestUser
+from tests.integration.common_utils.vespa import vespa_fixture
+
+logger = setup_logger()
+
+
+@contextmanager
+def http_server_context(
+ directory: str, port: int = 8000
+) -> Generator[http.server.HTTPServer, None, None]:
+ # Create a handler that serves files from the specified directory
+ def handler_class(
+ *args: Any, **kwargs: Any
+ ) -> http.server.SimpleHTTPRequestHandler:
+ return http.server.SimpleHTTPRequestHandler(
+ *args, directory=directory, **kwargs
+ )
+
+ # Create an HTTPServer instance
+ httpd = http.server.HTTPServer(("0.0.0.0", port), handler_class)
+
+ # Define a thread that runs the server in the background
+ server_thread = threading.Thread(target=httpd.serve_forever)
+ server_thread.daemon = (
+ True # Ensures the thread will exit when the main program exits
+ )
+
+ try:
+ # Start the server in the background
+ server_thread.start()
+ yield httpd
+ finally:
+ # Shutdown the server and wait for the thread to finish
+ httpd.shutdown()
+ httpd.server_close()
+ server_thread.join()
+
+
+def test_web_pruning(reset: None, vespa_client: vespa_fixture) -> None:
+ # Creating an admin user (first user created is automatically an admin)
+ admin_user: DATestUser = UserManager.create(name="admin_user")
+
+ # add api key to user
+ APIKeyManager.create(
+ user_performing_action=admin_user,
+ )
+
+ test_filename = os.path.realpath(__file__)
+ test_directory = os.path.dirname(test_filename)
+ with tempfile.TemporaryDirectory() as temp_dir:
+ port = 8888
+
+ website_src = os.path.join(test_directory, "website")
+ website_tgt = os.path.join(temp_dir, "website")
+ shutil.copytree(website_src, website_tgt)
+ with http_server_context(os.path.join(temp_dir, "website"), port):
+ sleep(1) # sleep a tiny bit before starting everything
+
+ hostname = os.getenv("TEST_WEB_HOSTNAME", "localhost")
+ config = {
+ "base_url": f"http://{hostname}:{port}/",
+ "web_connector_type": "recursive",
+ }
+
+ # store the time before we create the connector so that we know after
+ # when the indexing should have started
+ now = datetime.now(timezone.utc)
+
+ # create connector
+ cc_pair_1 = CCPairManager.create_from_scratch(
+ source=DocumentSource.WEB,
+ connector_specific_config=config,
+ user_performing_action=admin_user,
+ )
+
+ CCPairManager.wait_for_indexing(
+ cc_pair_1, now, timeout=60, user_performing_action=admin_user
+ )
+
+ selected_cc_pair = CCPairManager.get_one(
+ cc_pair_1.id, user_performing_action=admin_user
+ )
+ assert selected_cc_pair is not None, "cc_pair not found after indexing!"
+ assert selected_cc_pair.docs_indexed == 15
+
+ logger.info("Removing about.html.")
+ os.remove(os.path.join(website_tgt, "about.html"))
+ logger.info("Removing courses.html.")
+ os.remove(os.path.join(website_tgt, "courses.html"))
+
+ # store the time again as a reference for the pruning timestamps
+ now = datetime.now(timezone.utc)
+
+ CCPairManager.prune(cc_pair_1, user_performing_action=admin_user)
+ CCPairManager.wait_for_prune(
+ cc_pair_1, now, timeout=60, user_performing_action=admin_user
+ )
+
+ selected_cc_pair = CCPairManager.get_one(
+ cc_pair_1.id, user_performing_action=admin_user
+ )
+ assert selected_cc_pair is not None, "cc_pair not found after pruning!"
+ assert selected_cc_pair.docs_indexed == 13
+
+ # check vespa
+ index_id = f"http://{hostname}:{port}/index.html"
+ about_id = f"http://{hostname}:{port}/about.html"
+ courses_id = f"http://{hostname}:{port}/courses.html"
+
+ doc_ids = [index_id, about_id, courses_id]
+ retrieved_docs_dict = vespa_client.get_documents_by_id(doc_ids)["documents"]
+ retrieved_docs = {
+ doc["fields"]["document_id"]: doc["fields"]
+ for doc in retrieved_docs_dict
+ }
+
+ # verify index.html exists in Vespa
+ retrieved_doc = retrieved_docs.get(index_id)
+ assert retrieved_doc
+
+ # verify about and courses do not exist
+ retrieved_doc = retrieved_docs.get(about_id)
+ assert not retrieved_doc
+
+ retrieved_doc = retrieved_docs.get(courses_id)
+ assert not retrieved_doc
diff --git a/backend/tests/integration/tests/pruning/website/about.html b/backend/tests/integration/tests/pruning/website/about.html
new file mode 100644
index 0000000000..ea7fee823c
--- /dev/null
+++ b/backend/tests/integration/tests/pruning/website/about.html
@@ -0,0 +1,523 @@
+
+
+
+
+ Above Multi-purpose Free Bootstrap Responsive Template
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
We are awesome TEAM
+
+ Sed ut perspiciaatis unde omnis iste natus error sit
+ voluptatem accusantium doloremque laudantium, totam rem
+ aperiam, eaque ipsa quae ab illo inventore veritatis et
+ quasi architecto beatae vitae dicta sunt explicabo. Nemo
+ enim ipsam voluptatem quia voluptas
+
+
+ Sed ut perspiciaatis unde omnis iste natus error sit
+ voluptatem accusantium doloremque laudantium, totam rem
+ aperiam, eaque ipsa quae ab illo inventore veritatis et
+ quasi architecto beatae vitae dicta sunt explicabo. Nemo
+ enim ipsam voluptatem quia voluptas
+
+
+
Read more
+
+
+
+
+
+
+
+
+
+
+
+ Lorem ipsum dolor sit amet, cadipisicing sit amet, consectetur
+ adipisicing elit. Atque sed, quidem quis praesentium, ut unde
+ fuga error commodi architecto, laudantium culpa tenetur at id,
+ beatae pet.
+
+
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit.
+ adipisicing sit amet, consectetur adipisicing elit. Atque sed,
+ quidem quis praesentium,m deserunt.
+
+
+
+ Lorem
+ ipsum enimdolor sit amet
+
+
+
+ Explicabo deleniti neque aliquid
+
+
+
+ Consectetur adipisicing elit
+
+
+ Lorem
+ ipsum dolor sit amet
+
+
+ Quo
+ issimos molest quibusdam temporibus
+
+
+
+
+
+
+
+
+
+
+
+
Why Choose Us?
+
+
+ Sed ut perspiciaatis unde omnis iste natus error sit
+ voluptatem accusantium doloremque laudantium, totam rem
+ aperiam, eaque ipsa quae ab illo inventore veritatis et quasi
+ architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam
+ voluptatem quia voluptas sit aspernatur. Sed ut
+ perspiciaatis iste natus error sit voluptatem probably haven't
+ heard of them accusamus.
+
+
+
+
+
Our Solution
+
+
+
+
+
+
+
+
+
+
+ Sed ut perspiciaatis unde omnis iste natus error sit
+ voluptatem accusantium doloremque laudantium, totam rem
+ aperiam, eaque ipsa quae ab illo inventore veritatis et
+ quasi architecto beatae vitae dicta sunt explicabo. Nemo
+ enim ipsam voluptatem quia voluptas
+
+
+
+
+
+
+
+ Sed ut perspiciaatis unde omnis iste natus error sit
+ voluptatem accusantium doloremque laudantium, totam rem
+ aperiam, eaque ipsa quae ab illo inventore veritatis et
+ quasi architecto beatae vitae dicta sunt explicabo. Nemo
+ enim ipsam voluptatem quia voluptas
+
+
+
+
+
+
+
+ Sed ut perspiciaatis unde omnis iste natus error sit
+ voluptatem accusantium doloremque laudantium, totam rem
+ aperiam, eaque ipsa quae ab illo inventore veritatis et
+ quasi architecto beatae vitae dicta sunt explicabo. Nemo
+ enim ipsam voluptatem quia voluptas
+
+
+
+
+
+
+
+ Sed ut perspiciaatis unde omnis iste natus error sit
+ voluptatem accusantium doloremque laudantium, totam rem
+ aperiam, eaque ipsa quae ab illo inventore veritatis et
+ quasi architecto beatae vitae dicta sunt explicabo. Nemo
+ enim ipsam voluptatem quia voluptas
+
+
+
+
+
+
+
+
+
+
Our Expertise
+
+
Web Development
+
+
+
+ 40% Complete (success)
+
+
+
Designing
+
+
+ 40% Complete (success)
+
+
+
User Experience
+
+
+ 40% Complete (success)
+
+
+
Development
+
+
+ 40% Complete (success)
+
+
+
+
+
+
+
+
+
+
+
+
Our Team
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Johne Doe
+
Creative
+
+
+
+
+
+
+
+
+
Jennifer
+
Programmer
+
+
+
+
+
+
+
+
+
Christean
+
CEO
+
+
+
+
+
+
+
+
+
Kerinele rase
+
Manager
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/backend/tests/integration/tests/pruning/website/contact.html b/backend/tests/integration/tests/pruning/website/contact.html
new file mode 100644
index 0000000000..dbe3225456
--- /dev/null
+++ b/backend/tests/integration/tests/pruning/website/contact.html
@@ -0,0 +1,357 @@
+
+
+
+
+ Above Multi-purpose Free Bootstrap Responsive Template
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Success! Your message has been sent to us.
+
+
+ Error! There was an error sending your message.
+
+
+
+
+
+
+
Contact info
+
+
+ Lorem ipsum dolor sit amet, cadipisicing sit amet, consectetur
+ adipisicing elit. Atque sed, quidem quis praesentium.
+
+
+ Lorem ipsum dolor sit amet, cadipisicing sit amet, consectetur
+ adipisicing elit. Lorem ipsum dolor sit amet, cadipisicing sit
+ amet, consectetur adipisicing elit. Atque sed, quidem quis
+ praesentium Atque sed, quidem quis praesentium, ut unde fuga
+ error commodi architecto, laudantium culpa tenetur at id,
+ beatae pet.
+
+
+ The Company Name.
+ 12345 St John Point,
+ Brisbean, ABC 12 St 11.
+ Telephone: +1 234 567 890
+ FAX: +1 234 567 890
+ E-mail:
+ mail@sitename.org
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/backend/tests/integration/tests/pruning/website/courses.html b/backend/tests/integration/tests/pruning/website/courses.html
new file mode 100644
index 0000000000..a813720fd2
--- /dev/null
+++ b/backend/tests/integration/tests/pruning/website/courses.html
@@ -0,0 +1,218 @@
+
+
+
+
+Above Multi-purpose Free Bootstrap Responsive Template
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Courses We Offer Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolores quae porro consequatur aliquam, incidunt eius magni provident, doloribus omnis minus temporibus perferendis nesciunt quam repellendus nulla nemo ipsum odit corrupti consequuntur possimus, vero mollitia velit ad consectetur. Alias, laborum excepturi nihil autem nemo numquam, ipsa architecto non, magni consequuntur quam.
+
+
+
+
+
+
Heading Course
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Praesent vest sit amet, consec ibulum molestie lacus. Aenean nonummy hendrerit mauris. Phasellus porta.
+
+
+
+
Heading Course
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Praesent vest sit amet, consec ibulum molestie lacus. Aenean nonummy hendrerit mauris. Phasellus porta.
+
+
+
+
Heading Course
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Praesent vest sit amet, consec ibulum molestie lacus. Aenean nonummy hendrerit mauris. Phasellus porta.
+
+
+
+
+
+
Heading Course
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Praesent vest sit amet, consec ibulum molestie lacus. Aenean nonummy hendrerit mauris. Phasellus porta.
+
+
+
+
Heading Course
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Praesent vest sit amet, consec ibulum molestie lacus. Aenean nonummy hendrerit mauris. Phasellus porta.
+
+
+
+
Heading Course
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Praesent vest sit amet, consec ibulum molestie lacus. Aenean nonummy hendrerit mauris. Phasellus porta.
+
+
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolores quae porro consequatur aliquam, incidunt eius magni provident, doloribus omnis minus temporibus perferendis nesciunt quam repellendus nulla nemo ipsum odit corrupti consequuntur possimus
+
+
+
+
Web Development
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolores quae porro consequatur aliquam, incidunt eius magni provident, doloribus omnis minus temporibus perferendis nesciunt quam repellendus nulla nemo ipsum odit corrupti consequuntur possimus
+
+
+
+
Mobile Development
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolores quae porro consequatur aliquam, incidunt eius magni provident, doloribus omnis minus temporibus perferendis nesciunt quam repellendus nulla nemo ipsum odit corrupti consequuntur possimus
+
+
+
+
Responsive Design
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolores quae porro consequatur aliquam, incidunt eius magni provident, doloribus omnis minus temporibus perferendis nesciunt quam repellendus nulla nemo ipsum odit corrupti consequuntur possimus
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/backend/tests/integration/tests/pruning/website/css/animate.css b/backend/tests/integration/tests/pruning/website/css/animate.css
new file mode 100644
index 0000000000..92a68838f4
--- /dev/null
+++ b/backend/tests/integration/tests/pruning/website/css/animate.css
@@ -0,0 +1,3880 @@
+@charset "UTF-8";
+/*
+Animate.css - http://daneden.me/animate
+Licensed under the MIT license
+
+Copyright (c) 2013 Daniel Eden
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/
+body {
+ /* Addresses a small issue in webkit: http://bit.ly/NEdoDq */
+ -webkit-backface-visibility: hidden;
+}
+.animated {
+ -webkit-animation-duration: 1s;
+ -moz-animation-duration: 1s;
+ -o-animation-duration: 1s;
+ animation-duration: 1s;
+ -webkit-animation-fill-mode: both;
+ -moz-animation-fill-mode: both;
+ -o-animation-fill-mode: both;
+ animation-fill-mode: both;
+}
+
+.animated.hinge {
+ -webkit-animation-duration: 2s;
+ -moz-animation-duration: 2s;
+ -o-animation-duration: 2s;
+ animation-duration: 2s;
+}
+
+@-webkit-keyframes flash {
+ 0%,
+ 50%,
+ 100% {
+ opacity: 1;
+ }
+ 25%,
+ 75% {
+ opacity: 0;
+ }
+}
+
+@-moz-keyframes flash {
+ 0%,
+ 50%,
+ 100% {
+ opacity: 1;
+ }
+ 25%,
+ 75% {
+ opacity: 0;
+ }
+}
+
+@-o-keyframes flash {
+ 0%,
+ 50%,
+ 100% {
+ opacity: 1;
+ }
+ 25%,
+ 75% {
+ opacity: 0;
+ }
+}
+
+@keyframes flash {
+ 0%,
+ 50%,
+ 100% {
+ opacity: 1;
+ }
+ 25%,
+ 75% {
+ opacity: 0;
+ }
+}
+
+.flash {
+ -webkit-animation-name: flash;
+ -moz-animation-name: flash;
+ -o-animation-name: flash;
+ animation-name: flash;
+}
+@-webkit-keyframes shake {
+ 0%,
+ 100% {
+ -webkit-transform: translateX(0);
+ }
+ 10%,
+ 30%,
+ 50%,
+ 70%,
+ 90% {
+ -webkit-transform: translateX(-10px);
+ }
+ 20%,
+ 40%,
+ 60%,
+ 80% {
+ -webkit-transform: translateX(10px);
+ }
+}
+
+@-moz-keyframes shake {
+ 0%,
+ 100% {
+ -moz-transform: translateX(0);
+ }
+ 10%,
+ 30%,
+ 50%,
+ 70%,
+ 90% {
+ -moz-transform: translateX(-10px);
+ }
+ 20%,
+ 40%,
+ 60%,
+ 80% {
+ -moz-transform: translateX(10px);
+ }
+}
+
+@-o-keyframes shake {
+ 0%,
+ 100% {
+ -o-transform: translateX(0);
+ }
+ 10%,
+ 30%,
+ 50%,
+ 70%,
+ 90% {
+ -o-transform: translateX(-10px);
+ }
+ 20%,
+ 40%,
+ 60%,
+ 80% {
+ -o-transform: translateX(10px);
+ }
+}
+
+@keyframes shake {
+ 0%,
+ 100% {
+ transform: translateX(0);
+ }
+ 10%,
+ 30%,
+ 50%,
+ 70%,
+ 90% {
+ transform: translateX(-10px);
+ }
+ 20%,
+ 40%,
+ 60%,
+ 80% {
+ transform: translateX(10px);
+ }
+}
+
+.shake {
+ -webkit-animation-name: shake;
+ -moz-animation-name: shake;
+ -o-animation-name: shake;
+ animation-name: shake;
+}
+@-webkit-keyframes bounce {
+ 0%,
+ 20%,
+ 50%,
+ 80%,
+ 100% {
+ -webkit-transform: translateY(0);
+ }
+ 40% {
+ -webkit-transform: translateY(-30px);
+ }
+ 60% {
+ -webkit-transform: translateY(-15px);
+ }
+}
+
+@-moz-keyframes bounce {
+ 0%,
+ 20%,
+ 50%,
+ 80%,
+ 100% {
+ -moz-transform: translateY(0);
+ }
+ 40% {
+ -moz-transform: translateY(-30px);
+ }
+ 60% {
+ -moz-transform: translateY(-15px);
+ }
+}
+
+@-o-keyframes bounce {
+ 0%,
+ 20%,
+ 50%,
+ 80%,
+ 100% {
+ -o-transform: translateY(0);
+ }
+ 40% {
+ -o-transform: translateY(-30px);
+ }
+ 60% {
+ -o-transform: translateY(-15px);
+ }
+}
+@keyframes bounce {
+ 0%,
+ 20%,
+ 50%,
+ 80%,
+ 100% {
+ transform: translateY(0);
+ }
+ 40% {
+ transform: translateY(-30px);
+ }
+ 60% {
+ transform: translateY(-15px);
+ }
+}
+
+.bounce {
+ -webkit-animation-name: bounce;
+ -moz-animation-name: bounce;
+ -o-animation-name: bounce;
+ animation-name: bounce;
+}
+@-webkit-keyframes tada {
+ 0% {
+ -webkit-transform: scale(1);
+ }
+ 10%,
+ 20% {
+ -webkit-transform: scale(0.9) rotate(-3deg);
+ }
+ 30%,
+ 50%,
+ 70%,
+ 90% {
+ -webkit-transform: scale(1.1) rotate(3deg);
+ }
+ 40%,
+ 60%,
+ 80% {
+ -webkit-transform: scale(1.1) rotate(-3deg);
+ }
+ 100% {
+ -webkit-transform: scale(1) rotate(0);
+ }
+}
+
+@-moz-keyframes tada {
+ 0% {
+ -moz-transform: scale(1);
+ }
+ 10%,
+ 20% {
+ -moz-transform: scale(0.9) rotate(-3deg);
+ }
+ 30%,
+ 50%,
+ 70%,
+ 90% {
+ -moz-transform: scale(1.1) rotate(3deg);
+ }
+ 40%,
+ 60%,
+ 80% {
+ -moz-transform: scale(1.1) rotate(-3deg);
+ }
+ 100% {
+ -moz-transform: scale(1) rotate(0);
+ }
+}
+
+@-o-keyframes tada {
+ 0% {
+ -o-transform: scale(1);
+ }
+ 10%,
+ 20% {
+ -o-transform: scale(0.9) rotate(-3deg);
+ }
+ 30%,
+ 50%,
+ 70%,
+ 90% {
+ -o-transform: scale(1.1) rotate(3deg);
+ }
+ 40%,
+ 60%,
+ 80% {
+ -o-transform: scale(1.1) rotate(-3deg);
+ }
+ 100% {
+ -o-transform: scale(1) rotate(0);
+ }
+}
+
+@keyframes tada {
+ 0% {
+ transform: scale(1);
+ }
+ 10%,
+ 20% {
+ transform: scale(0.9) rotate(-3deg);
+ }
+ 30%,
+ 50%,
+ 70%,
+ 90% {
+ transform: scale(1.1) rotate(3deg);
+ }
+ 40%,
+ 60%,
+ 80% {
+ transform: scale(1.1) rotate(-3deg);
+ }
+ 100% {
+ transform: scale(1) rotate(0);
+ }
+}
+
+.tada {
+ -webkit-animation-name: tada;
+ -moz-animation-name: tada;
+ -o-animation-name: tada;
+ animation-name: tada;
+}
+@-webkit-keyframes swing {
+ 20%,
+ 40%,
+ 60%,
+ 80%,
+ 100% {
+ -webkit-transform-origin: top center;
+ }
+ 20% {
+ -webkit-transform: rotate(15deg);
+ }
+ 40% {
+ -webkit-transform: rotate(-10deg);
+ }
+ 60% {
+ -webkit-transform: rotate(5deg);
+ }
+ 80% {
+ -webkit-transform: rotate(-5deg);
+ }
+ 100% {
+ -webkit-transform: rotate(0deg);
+ }
+}
+
+@-moz-keyframes swing {
+ 20% {
+ -moz-transform: rotate(15deg);
+ }
+ 40% {
+ -moz-transform: rotate(-10deg);
+ }
+ 60% {
+ -moz-transform: rotate(5deg);
+ }
+ 80% {
+ -moz-transform: rotate(-5deg);
+ }
+ 100% {
+ -moz-transform: rotate(0deg);
+ }
+}
+
+@-o-keyframes swing {
+ 20% {
+ -o-transform: rotate(15deg);
+ }
+ 40% {
+ -o-transform: rotate(-10deg);
+ }
+ 60% {
+ -o-transform: rotate(5deg);
+ }
+ 80% {
+ -o-transform: rotate(-5deg);
+ }
+ 100% {
+ -o-transform: rotate(0deg);
+ }
+}
+
+@keyframes swing {
+ 20% {
+ transform: rotate(15deg);
+ }
+ 40% {
+ transform: rotate(-10deg);
+ }
+ 60% {
+ transform: rotate(5deg);
+ }
+ 80% {
+ transform: rotate(-5deg);
+ }
+ 100% {
+ transform: rotate(0deg);
+ }
+}
+
+.swing {
+ -webkit-transform-origin: top center;
+ -moz-transform-origin: top center;
+ -o-transform-origin: top center;
+ transform-origin: top center;
+ -webkit-animation-name: swing;
+ -moz-animation-name: swing;
+ -o-animation-name: swing;
+ animation-name: swing;
+}
+/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
+
+@-webkit-keyframes wobble {
+ 0% {
+ -webkit-transform: translateX(0%);
+ }
+ 15% {
+ -webkit-transform: translateX(-25%) rotate(-5deg);
+ }
+ 30% {
+ -webkit-transform: translateX(20%) rotate(3deg);
+ }
+ 45% {
+ -webkit-transform: translateX(-15%) rotate(-3deg);
+ }
+ 60% {
+ -webkit-transform: translateX(10%) rotate(2deg);
+ }
+ 75% {
+ -webkit-transform: translateX(-5%) rotate(-1deg);
+ }
+ 100% {
+ -webkit-transform: translateX(0%);
+ }
+}
+
+@-moz-keyframes wobble {
+ 0% {
+ -moz-transform: translateX(0%);
+ }
+ 15% {
+ -moz-transform: translateX(-25%) rotate(-5deg);
+ }
+ 30% {
+ -moz-transform: translateX(20%) rotate(3deg);
+ }
+ 45% {
+ -moz-transform: translateX(-15%) rotate(-3deg);
+ }
+ 60% {
+ -moz-transform: translateX(10%) rotate(2deg);
+ }
+ 75% {
+ -moz-transform: translateX(-5%) rotate(-1deg);
+ }
+ 100% {
+ -moz-transform: translateX(0%);
+ }
+}
+
+@-o-keyframes wobble {
+ 0% {
+ -o-transform: translateX(0%);
+ }
+ 15% {
+ -o-transform: translateX(-25%) rotate(-5deg);
+ }
+ 30% {
+ -o-transform: translateX(20%) rotate(3deg);
+ }
+ 45% {
+ -o-transform: translateX(-15%) rotate(-3deg);
+ }
+ 60% {
+ -o-transform: translateX(10%) rotate(2deg);
+ }
+ 75% {
+ -o-transform: translateX(-5%) rotate(-1deg);
+ }
+ 100% {
+ -o-transform: translateX(0%);
+ }
+}
+
+@keyframes wobble {
+ 0% {
+ transform: translateX(0%);
+ }
+ 15% {
+ transform: translateX(-25%) rotate(-5deg);
+ }
+ 30% {
+ transform: translateX(20%) rotate(3deg);
+ }
+ 45% {
+ transform: translateX(-15%) rotate(-3deg);
+ }
+ 60% {
+ transform: translateX(10%) rotate(2deg);
+ }
+ 75% {
+ transform: translateX(-5%) rotate(-1deg);
+ }
+ 100% {
+ transform: translateX(0%);
+ }
+}
+
+.wobble {
+ -webkit-animation-name: wobble;
+ -moz-animation-name: wobble;
+ -o-animation-name: wobble;
+ animation-name: wobble;
+}
+/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
+
+@-webkit-keyframes pulse {
+ 0% {
+ -webkit-transform: scale(1);
+ }
+ 50% {
+ -webkit-transform: scale(1.1);
+ }
+ 100% {
+ -webkit-transform: scale(1);
+ }
+}
+@-moz-keyframes pulse {
+ 0% {
+ -moz-transform: scale(1);
+ }
+ 50% {
+ -moz-transform: scale(1.1);
+ }
+ 100% {
+ -moz-transform: scale(1);
+ }
+}
+@-o-keyframes pulse {
+ 0% {
+ -o-transform: scale(1);
+ }
+ 50% {
+ -o-transform: scale(1.1);
+ }
+ 100% {
+ -o-transform: scale(1);
+ }
+}
+@keyframes pulse {
+ 0% {
+ transform: scale(1);
+ }
+ 50% {
+ transform: scale(1.1);
+ }
+ 100% {
+ transform: scale(1);
+ }
+}
+
+.pulse {
+ -webkit-animation-name: pulse;
+ -moz-animation-name: pulse;
+ -o-animation-name: pulse;
+ animation-name: pulse;
+}
+@-webkit-keyframes flip {
+ 0% {
+ -webkit-transform: perspective(400px) rotateY(0);
+ -webkit-animation-timing-function: ease-out;
+ }
+ 40% {
+ -webkit-transform: perspective(400px) translateZ(150px) rotateY(170deg);
+ -webkit-animation-timing-function: ease-out;
+ }
+ 50% {
+ -webkit-transform: perspective(400px) translateZ(150px) rotateY(190deg)
+ scale(1);
+ -webkit-animation-timing-function: ease-in;
+ }
+ 80% {
+ -webkit-transform: perspective(400px) rotateY(360deg) scale(0.95);
+ -webkit-animation-timing-function: ease-in;
+ }
+ 100% {
+ -webkit-transform: perspective(400px) scale(1);
+ -webkit-animation-timing-function: ease-in;
+ }
+}
+@-moz-keyframes flip {
+ 0% {
+ -moz-transform: perspective(400px) rotateY(0);
+ -moz-animation-timing-function: ease-out;
+ }
+ 40% {
+ -moz-transform: perspective(400px) translateZ(150px) rotateY(170deg);
+ -moz-animation-timing-function: ease-out;
+ }
+ 50% {
+ -moz-transform: perspective(400px) translateZ(150px) rotateY(190deg)
+ scale(1);
+ -moz-animation-timing-function: ease-in;
+ }
+ 80% {
+ -moz-transform: perspective(400px) rotateY(360deg) scale(0.95);
+ -moz-animation-timing-function: ease-in;
+ }
+ 100% {
+ -moz-transform: perspective(400px) scale(1);
+ -moz-animation-timing-function: ease-in;
+ }
+}
+@-o-keyframes flip {
+ 0% {
+ -o-transform: perspective(400px) rotateY(0);
+ -o-animation-timing-function: ease-out;
+ }
+ 40% {
+ -o-transform: perspective(400px) translateZ(150px) rotateY(170deg);
+ -o-animation-timing-function: ease-out;
+ }
+ 50% {
+ -o-transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1);
+ -o-animation-timing-function: ease-in;
+ }
+ 80% {
+ -o-transform: perspective(400px) rotateY(360deg) scale(0.95);
+ -o-animation-timing-function: ease-in;
+ }
+ 100% {
+ -o-transform: perspective(400px) scale(1);
+ -o-animation-timing-function: ease-in;
+ }
+}
+@keyframes flip {
+ 0% {
+ transform: perspective(400px) rotateY(0);
+ animation-timing-function: ease-out;
+ }
+ 40% {
+ transform: perspective(400px) translateZ(150px) rotateY(170deg);
+ animation-timing-function: ease-out;
+ }
+ 50% {
+ transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1);
+ animation-timing-function: ease-in;
+ }
+ 80% {
+ transform: perspective(400px) rotateY(360deg) scale(0.95);
+ animation-timing-function: ease-in;
+ }
+ 100% {
+ transform: perspective(400px) scale(1);
+ animation-timing-function: ease-in;
+ }
+}
+
+.flip {
+ -webkit-backface-visibility: visible !important;
+ -webkit-animation-name: flip;
+ -moz-backface-visibility: visible !important;
+ -moz-animation-name: flip;
+ -o-backface-visibility: visible !important;
+ -o-animation-name: flip;
+ backface-visibility: visible !important;
+ animation-name: flip;
+}
+@-webkit-keyframes flipInX {
+ 0% {
+ -webkit-transform: perspective(400px) rotateX(90deg);
+ opacity: 0;
+ }
+
+ 40% {
+ -webkit-transform: perspective(400px) rotateX(-10deg);
+ }
+
+ 70% {
+ -webkit-transform: perspective(400px) rotateX(10deg);
+ }
+
+ 100% {
+ -webkit-transform: perspective(400px) rotateX(0deg);
+ opacity: 1;
+ }
+}
+@-moz-keyframes flipInX {
+ 0% {
+ -moz-transform: perspective(400px) rotateX(90deg);
+ opacity: 0;
+ }
+
+ 40% {
+ -moz-transform: perspective(400px) rotateX(-10deg);
+ }
+
+ 70% {
+ -moz-transform: perspective(400px) rotateX(10deg);
+ }
+
+ 100% {
+ -moz-transform: perspective(400px) rotateX(0deg);
+ opacity: 1;
+ }
+}
+@-o-keyframes flipInX {
+ 0% {
+ -o-transform: perspective(400px) rotateX(90deg);
+ opacity: 0;
+ }
+
+ 40% {
+ -o-transform: perspective(400px) rotateX(-10deg);
+ }
+
+ 70% {
+ -o-transform: perspective(400px) rotateX(10deg);
+ }
+
+ 100% {
+ -o-transform: perspective(400px) rotateX(0deg);
+ opacity: 1;
+ }
+}
+@keyframes flipInX {
+ 0% {
+ transform: perspective(400px) rotateX(90deg);
+ opacity: 0;
+ }
+
+ 40% {
+ transform: perspective(400px) rotateX(-10deg);
+ }
+
+ 70% {
+ transform: perspective(400px) rotateX(10deg);
+ }
+
+ 100% {
+ transform: perspective(400px) rotateX(0deg);
+ opacity: 1;
+ }
+}
+
+.flipInX {
+ -webkit-backface-visibility: visible !important;
+ -webkit-animation-name: flipInX;
+ -moz-backface-visibility: visible !important;
+ -moz-animation-name: flipInX;
+ -o-backface-visibility: visible !important;
+ -o-animation-name: flipInX;
+ backface-visibility: visible !important;
+ animation-name: flipInX;
+}
+@-webkit-keyframes flipOutX {
+ 0% {
+ -webkit-transform: perspective(400px) rotateX(0deg);
+ opacity: 1;
+ }
+ 100% {
+ -webkit-transform: perspective(400px) rotateX(90deg);
+ opacity: 0;
+ }
+}
+
+@-moz-keyframes flipOutX {
+ 0% {
+ -moz-transform: perspective(400px) rotateX(0deg);
+ opacity: 1;
+ }
+ 100% {
+ -moz-transform: perspective(400px) rotateX(90deg);
+ opacity: 0;
+ }
+}
+
+@-o-keyframes flipOutX {
+ 0% {
+ -o-transform: perspective(400px) rotateX(0deg);
+ opacity: 1;
+ }
+ 100% {
+ -o-transform: perspective(400px) rotateX(90deg);
+ opacity: 0;
+ }
+}
+
+@keyframes flipOutX {
+ 0% {
+ transform: perspective(400px) rotateX(0deg);
+ opacity: 1;
+ }
+ 100% {
+ transform: perspective(400px) rotateX(90deg);
+ opacity: 0;
+ }
+}
+
+.flipOutX {
+ -webkit-animation-name: flipOutX;
+ -webkit-backface-visibility: visible !important;
+ -moz-animation-name: flipOutX;
+ -moz-backface-visibility: visible !important;
+ -o-animation-name: flipOutX;
+ -o-backface-visibility: visible !important;
+ animation-name: flipOutX;
+ backface-visibility: visible !important;
+}
+@-webkit-keyframes flipInY {
+ 0% {
+ -webkit-transform: perspective(400px) rotateY(90deg);
+ opacity: 0;
+ }
+
+ 40% {
+ -webkit-transform: perspective(400px) rotateY(-10deg);
+ }
+
+ 70% {
+ -webkit-transform: perspective(400px) rotateY(10deg);
+ }
+
+ 100% {
+ -webkit-transform: perspective(400px) rotateY(0deg);
+ opacity: 1;
+ }
+}
+@-moz-keyframes flipInY {
+ 0% {
+ -moz-transform: perspective(400px) rotateY(90deg);
+ opacity: 0;
+ }
+
+ 40% {
+ -moz-transform: perspective(400px) rotateY(-10deg);
+ }
+
+ 70% {
+ -moz-transform: perspective(400px) rotateY(10deg);
+ }
+
+ 100% {
+ -moz-transform: perspective(400px) rotateY(0deg);
+ opacity: 1;
+ }
+}
+@-o-keyframes flipInY {
+ 0% {
+ -o-transform: perspective(400px) rotateY(90deg);
+ opacity: 0;
+ }
+
+ 40% {
+ -o-transform: perspective(400px) rotateY(-10deg);
+ }
+
+ 70% {
+ -o-transform: perspective(400px) rotateY(10deg);
+ }
+
+ 100% {
+ -o-transform: perspective(400px) rotateY(0deg);
+ opacity: 1;
+ }
+}
+@keyframes flipInY {
+ 0% {
+ transform: perspective(400px) rotateY(90deg);
+ opacity: 0;
+ }
+
+ 40% {
+ transform: perspective(400px) rotateY(-10deg);
+ }
+
+ 70% {
+ transform: perspective(400px) rotateY(10deg);
+ }
+
+ 100% {
+ transform: perspective(400px) rotateY(0deg);
+ opacity: 1;
+ }
+}
+
+.flipInY {
+ -webkit-backface-visibility: visible !important;
+ -webkit-animation-name: flipInY;
+ -moz-backface-visibility: visible !important;
+ -moz-animation-name: flipInY;
+ -o-backface-visibility: visible !important;
+ -o-animation-name: flipInY;
+ backface-visibility: visible !important;
+ animation-name: flipInY;
+}
+@-webkit-keyframes flipOutY {
+ 0% {
+ -webkit-transform: perspective(400px) rotateY(0deg);
+ opacity: 1;
+ }
+ 100% {
+ -webkit-transform: perspective(400px) rotateY(90deg);
+ opacity: 0;
+ }
+}
+@-moz-keyframes flipOutY {
+ 0% {
+ -moz-transform: perspective(400px) rotateY(0deg);
+ opacity: 1;
+ }
+ 100% {
+ -moz-transform: perspective(400px) rotateY(90deg);
+ opacity: 0;
+ }
+}
+@-o-keyframes flipOutY {
+ 0% {
+ -o-transform: perspective(400px) rotateY(0deg);
+ opacity: 1;
+ }
+ 100% {
+ -o-transform: perspective(400px) rotateY(90deg);
+ opacity: 0;
+ }
+}
+@keyframes flipOutY {
+ 0% {
+ transform: perspective(400px) rotateY(0deg);
+ opacity: 1;
+ }
+ 100% {
+ transform: perspective(400px) rotateY(90deg);
+ opacity: 0;
+ }
+}
+
+.flipOutY {
+ -webkit-backface-visibility: visible !important;
+ -webkit-animation-name: flipOutY;
+ -moz-backface-visibility: visible !important;
+ -moz-animation-name: flipOutY;
+ -o-backface-visibility: visible !important;
+ -o-animation-name: flipOutY;
+ backface-visibility: visible !important;
+ animation-name: flipOutY;
+}
+@-webkit-keyframes fadeIn {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 1;
+ }
+}
+
+@-moz-keyframes fadeIn {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 1;
+ }
+}
+
+@-o-keyframes fadeIn {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 1;
+ }
+}
+
+@keyframes fadeIn {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 1;
+ }
+}
+
+.fadeIn {
+ -webkit-animation-name: fadeIn;
+ -moz-animation-name: fadeIn;
+ -o-animation-name: fadeIn;
+ animation-name: fadeIn;
+}
+@-webkit-keyframes fadeInUp {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateY(20px);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ }
+}
+
+@-moz-keyframes fadeInUp {
+ 0% {
+ opacity: 0;
+ -moz-transform: translateY(20px);
+ }
+
+ 100% {
+ opacity: 1;
+ -moz-transform: translateY(0);
+ }
+}
+
+@-o-keyframes fadeInUp {
+ 0% {
+ opacity: 0;
+ -o-transform: translateY(20px);
+ }
+
+ 100% {
+ opacity: 1;
+ -o-transform: translateY(0);
+ }
+}
+
+@keyframes fadeInUp {
+ 0% {
+ opacity: 0;
+ transform: translateY(20px);
+ }
+
+ 100% {
+ opacity: 1;
+ transform: translateY(0);
+ }
+}
+
+.fadeInUp {
+ -webkit-animation-name: fadeInUp;
+ -moz-animation-name: fadeInUp;
+ -o-animation-name: fadeInUp;
+ animation-name: fadeInUp;
+}
+@-webkit-keyframes fadeInDown {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateY(-20px);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ }
+}
+
+@-moz-keyframes fadeInDown {
+ 0% {
+ opacity: 0;
+ -moz-transform: translateY(-20px);
+ }
+
+ 100% {
+ opacity: 1;
+ -moz-transform: translateY(0);
+ }
+}
+
+@-o-keyframes fadeInDown {
+ 0% {
+ opacity: 0;
+ -o-transform: translateY(-20px);
+ }
+
+ 100% {
+ opacity: 1;
+ -o-transform: translateY(0);
+ }
+}
+
+@keyframes fadeInDown {
+ 0% {
+ opacity: 0;
+ transform: translateY(-20px);
+ }
+
+ 100% {
+ opacity: 1;
+ transform: translateY(0);
+ }
+}
+
+.fadeInDown {
+ -webkit-animation-name: fadeInDown;
+ -moz-animation-name: fadeInDown;
+ -o-animation-name: fadeInDown;
+ animation-name: fadeInDown;
+}
+@-webkit-keyframes fadeInLeft {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateX(-20px);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: translateX(0);
+ }
+}
+
+@-moz-keyframes fadeInLeft {
+ 0% {
+ opacity: 0;
+ -moz-transform: translateX(-20px);
+ }
+
+ 100% {
+ opacity: 1;
+ -moz-transform: translateX(0);
+ }
+}
+
+@-o-keyframes fadeInLeft {
+ 0% {
+ opacity: 0;
+ -o-transform: translateX(-20px);
+ }
+
+ 100% {
+ opacity: 1;
+ -o-transform: translateX(0);
+ }
+}
+
+@keyframes fadeInLeft {
+ 0% {
+ opacity: 0;
+ transform: translateX(-20px);
+ }
+
+ 100% {
+ opacity: 1;
+ transform: translateX(0);
+ }
+}
+
+.fadeInLeft {
+ -webkit-animation-name: fadeInLeft;
+ -moz-animation-name: fadeInLeft;
+ -o-animation-name: fadeInLeft;
+ animation-name: fadeInLeft;
+}
+@-webkit-keyframes fadeInRight {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateX(20px);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: translateX(0);
+ }
+}
+
+@-moz-keyframes fadeInRight {
+ 0% {
+ opacity: 0;
+ -moz-transform: translateX(20px);
+ }
+
+ 100% {
+ opacity: 1;
+ -moz-transform: translateX(0);
+ }
+}
+
+@-o-keyframes fadeInRight {
+ 0% {
+ opacity: 0;
+ -o-transform: translateX(20px);
+ }
+
+ 100% {
+ opacity: 1;
+ -o-transform: translateX(0);
+ }
+}
+
+@keyframes fadeInRight {
+ 0% {
+ opacity: 0;
+ transform: translateX(20px);
+ }
+
+ 100% {
+ opacity: 1;
+ transform: translateX(0);
+ }
+}
+
+.fadeInRight {
+ -webkit-animation-name: fadeInRight;
+ -moz-animation-name: fadeInRight;
+ -o-animation-name: fadeInRight;
+ animation-name: fadeInRight;
+}
+@-webkit-keyframes fadeInUpBig {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateY(2000px);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ }
+}
+
+@-moz-keyframes fadeInUpBig {
+ 0% {
+ opacity: 0;
+ -moz-transform: translateY(2000px);
+ }
+
+ 100% {
+ opacity: 1;
+ -moz-transform: translateY(0);
+ }
+}
+
+@-o-keyframes fadeInUpBig {
+ 0% {
+ opacity: 0;
+ -o-transform: translateY(2000px);
+ }
+
+ 100% {
+ opacity: 1;
+ -o-transform: translateY(0);
+ }
+}
+
+@keyframes fadeInUpBig {
+ 0% {
+ opacity: 0;
+ transform: translateY(2000px);
+ }
+
+ 100% {
+ opacity: 1;
+ transform: translateY(0);
+ }
+}
+
+.fadeInUpBig {
+ -webkit-animation-name: fadeInUpBig;
+ -moz-animation-name: fadeInUpBig;
+ -o-animation-name: fadeInUpBig;
+ animation-name: fadeInUpBig;
+}
+@-webkit-keyframes fadeInDownBig {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateY(-2000px);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ }
+}
+
+@-moz-keyframes fadeInDownBig {
+ 0% {
+ opacity: 0;
+ -moz-transform: translateY(-2000px);
+ }
+
+ 100% {
+ opacity: 1;
+ -moz-transform: translateY(0);
+ }
+}
+
+@-o-keyframes fadeInDownBig {
+ 0% {
+ opacity: 0;
+ -o-transform: translateY(-2000px);
+ }
+
+ 100% {
+ opacity: 1;
+ -o-transform: translateY(0);
+ }
+}
+
+@keyframes fadeInDownBig {
+ 0% {
+ opacity: 0;
+ transform: translateY(-2000px);
+ }
+
+ 100% {
+ opacity: 1;
+ transform: translateY(0);
+ }
+}
+
+.fadeInDownBig {
+ -webkit-animation-name: fadeInDownBig;
+ -moz-animation-name: fadeInDownBig;
+ -o-animation-name: fadeInDownBig;
+ animation-name: fadeInDownBig;
+}
+@-webkit-keyframes fadeInLeftBig {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateX(-2000px);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: translateX(0);
+ }
+}
+@-moz-keyframes fadeInLeftBig {
+ 0% {
+ opacity: 0;
+ -moz-transform: translateX(-2000px);
+ }
+
+ 100% {
+ opacity: 1;
+ -moz-transform: translateX(0);
+ }
+}
+@-o-keyframes fadeInLeftBig {
+ 0% {
+ opacity: 0;
+ -o-transform: translateX(-2000px);
+ }
+
+ 100% {
+ opacity: 1;
+ -o-transform: translateX(0);
+ }
+}
+@keyframes fadeInLeftBig {
+ 0% {
+ opacity: 0;
+ transform: translateX(-2000px);
+ }
+
+ 100% {
+ opacity: 1;
+ transform: translateX(0);
+ }
+}
+
+.fadeInLeftBig {
+ -webkit-animation-name: fadeInLeftBig;
+ -moz-animation-name: fadeInLeftBig;
+ -o-animation-name: fadeInLeftBig;
+ animation-name: fadeInLeftBig;
+}
+@-webkit-keyframes fadeInRightBig {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateX(2000px);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: translateX(0);
+ }
+}
+
+@-moz-keyframes fadeInRightBig {
+ 0% {
+ opacity: 0;
+ -moz-transform: translateX(2000px);
+ }
+
+ 100% {
+ opacity: 1;
+ -moz-transform: translateX(0);
+ }
+}
+
+@-o-keyframes fadeInRightBig {
+ 0% {
+ opacity: 0;
+ -o-transform: translateX(2000px);
+ }
+
+ 100% {
+ opacity: 1;
+ -o-transform: translateX(0);
+ }
+}
+
+@keyframes fadeInRightBig {
+ 0% {
+ opacity: 0;
+ transform: translateX(2000px);
+ }
+
+ 100% {
+ opacity: 1;
+ transform: translateX(0);
+ }
+}
+
+.fadeInRightBig {
+ -webkit-animation-name: fadeInRightBig;
+ -moz-animation-name: fadeInRightBig;
+ -o-animation-name: fadeInRightBig;
+ animation-name: fadeInRightBig;
+}
+@-webkit-keyframes fadeOut {
+ 0% {
+ opacity: 1;
+ }
+ 100% {
+ opacity: 0;
+ }
+}
+
+@-moz-keyframes fadeOut {
+ 0% {
+ opacity: 1;
+ }
+ 100% {
+ opacity: 0;
+ }
+}
+
+@-o-keyframes fadeOut {
+ 0% {
+ opacity: 1;
+ }
+ 100% {
+ opacity: 0;
+ }
+}
+
+@keyframes fadeOut {
+ 0% {
+ opacity: 1;
+ }
+ 100% {
+ opacity: 0;
+ }
+}
+
+.fadeOut {
+ -webkit-animation-name: fadeOut;
+ -moz-animation-name: fadeOut;
+ -o-animation-name: fadeOut;
+ animation-name: fadeOut;
+}
+@-webkit-keyframes fadeOutUp {
+ 0% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translateY(-20px);
+ }
+}
+@-moz-keyframes fadeOutUp {
+ 0% {
+ opacity: 1;
+ -moz-transform: translateY(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -moz-transform: translateY(-20px);
+ }
+}
+@-o-keyframes fadeOutUp {
+ 0% {
+ opacity: 1;
+ -o-transform: translateY(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -o-transform: translateY(-20px);
+ }
+}
+@keyframes fadeOutUp {
+ 0% {
+ opacity: 1;
+ transform: translateY(0);
+ }
+
+ 100% {
+ opacity: 0;
+ transform: translateY(-20px);
+ }
+}
+
+.fadeOutUp {
+ -webkit-animation-name: fadeOutUp;
+ -moz-animation-name: fadeOutUp;
+ -o-animation-name: fadeOutUp;
+ animation-name: fadeOutUp;
+}
+@-webkit-keyframes fadeOutDown {
+ 0% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translateY(20px);
+ }
+}
+
+@-moz-keyframes fadeOutDown {
+ 0% {
+ opacity: 1;
+ -moz-transform: translateY(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -moz-transform: translateY(20px);
+ }
+}
+
+@-o-keyframes fadeOutDown {
+ 0% {
+ opacity: 1;
+ -o-transform: translateY(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -o-transform: translateY(20px);
+ }
+}
+
+@keyframes fadeOutDown {
+ 0% {
+ opacity: 1;
+ transform: translateY(0);
+ }
+
+ 100% {
+ opacity: 0;
+ transform: translateY(20px);
+ }
+}
+
+.fadeOutDown {
+ -webkit-animation-name: fadeOutDown;
+ -moz-animation-name: fadeOutDown;
+ -o-animation-name: fadeOutDown;
+ animation-name: fadeOutDown;
+}
+@-webkit-keyframes fadeOutLeft {
+ 0% {
+ opacity: 1;
+ -webkit-transform: translateX(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translateX(-20px);
+ }
+}
+
+@-moz-keyframes fadeOutLeft {
+ 0% {
+ opacity: 1;
+ -moz-transform: translateX(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -moz-transform: translateX(-20px);
+ }
+}
+
+@-o-keyframes fadeOutLeft {
+ 0% {
+ opacity: 1;
+ -o-transform: translateX(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -o-transform: translateX(-20px);
+ }
+}
+
+@keyframes fadeOutLeft {
+ 0% {
+ opacity: 1;
+ transform: translateX(0);
+ }
+
+ 100% {
+ opacity: 0;
+ transform: translateX(-20px);
+ }
+}
+
+.fadeOutLeft {
+ -webkit-animation-name: fadeOutLeft;
+ -moz-animation-name: fadeOutLeft;
+ -o-animation-name: fadeOutLeft;
+ animation-name: fadeOutLeft;
+}
+@-webkit-keyframes fadeOutRight {
+ 0% {
+ opacity: 1;
+ -webkit-transform: translateX(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translateX(20px);
+ }
+}
+
+@-moz-keyframes fadeOutRight {
+ 0% {
+ opacity: 1;
+ -moz-transform: translateX(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -moz-transform: translateX(20px);
+ }
+}
+
+@-o-keyframes fadeOutRight {
+ 0% {
+ opacity: 1;
+ -o-transform: translateX(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -o-transform: translateX(20px);
+ }
+}
+
+@keyframes fadeOutRight {
+ 0% {
+ opacity: 1;
+ transform: translateX(0);
+ }
+
+ 100% {
+ opacity: 0;
+ transform: translateX(20px);
+ }
+}
+
+.fadeOutRight {
+ -webkit-animation-name: fadeOutRight;
+ -moz-animation-name: fadeOutRight;
+ -o-animation-name: fadeOutRight;
+ animation-name: fadeOutRight;
+}
+@-webkit-keyframes fadeOutUpBig {
+ 0% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translateY(-2000px);
+ }
+}
+
+@-moz-keyframes fadeOutUpBig {
+ 0% {
+ opacity: 1;
+ -moz-transform: translateY(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -moz-transform: translateY(-2000px);
+ }
+}
+
+@-o-keyframes fadeOutUpBig {
+ 0% {
+ opacity: 1;
+ -o-transform: translateY(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -o-transform: translateY(-2000px);
+ }
+}
+
+@keyframes fadeOutUpBig {
+ 0% {
+ opacity: 1;
+ transform: translateY(0);
+ }
+
+ 100% {
+ opacity: 0;
+ transform: translateY(-2000px);
+ }
+}
+
+.fadeOutUpBig {
+ -webkit-animation-name: fadeOutUpBig;
+ -moz-animation-name: fadeOutUpBig;
+ -o-animation-name: fadeOutUpBig;
+ animation-name: fadeOutUpBig;
+}
+@-webkit-keyframes fadeOutDownBig {
+ 0% {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translateY(2000px);
+ }
+}
+
+@-moz-keyframes fadeOutDownBig {
+ 0% {
+ opacity: 1;
+ -moz-transform: translateY(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -moz-transform: translateY(2000px);
+ }
+}
+
+@-o-keyframes fadeOutDownBig {
+ 0% {
+ opacity: 1;
+ -o-transform: translateY(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -o-transform: translateY(2000px);
+ }
+}
+
+@keyframes fadeOutDownBig {
+ 0% {
+ opacity: 1;
+ transform: translateY(0);
+ }
+
+ 100% {
+ opacity: 0;
+ transform: translateY(2000px);
+ }
+}
+
+.fadeOutDownBig {
+ -webkit-animation-name: fadeOutDownBig;
+ -moz-animation-name: fadeOutDownBig;
+ -o-animation-name: fadeOutDownBig;
+ animation-name: fadeOutDownBig;
+}
+@-webkit-keyframes fadeOutLeftBig {
+ 0% {
+ opacity: 1;
+ -webkit-transform: translateX(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translateX(-2000px);
+ }
+}
+
+@-moz-keyframes fadeOutLeftBig {
+ 0% {
+ opacity: 1;
+ -moz-transform: translateX(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -moz-transform: translateX(-2000px);
+ }
+}
+
+@-o-keyframes fadeOutLeftBig {
+ 0% {
+ opacity: 1;
+ -o-transform: translateX(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -o-transform: translateX(-2000px);
+ }
+}
+
+@keyframes fadeOutLeftBig {
+ 0% {
+ opacity: 1;
+ transform: translateX(0);
+ }
+
+ 100% {
+ opacity: 0;
+ transform: translateX(-2000px);
+ }
+}
+
+.fadeOutLeftBig {
+ -webkit-animation-name: fadeOutLeftBig;
+ -moz-animation-name: fadeOutLeftBig;
+ -o-animation-name: fadeOutLeftBig;
+ animation-name: fadeOutLeftBig;
+}
+@-webkit-keyframes fadeOutRightBig {
+ 0% {
+ opacity: 1;
+ -webkit-transform: translateX(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translateX(2000px);
+ }
+}
+@-moz-keyframes fadeOutRightBig {
+ 0% {
+ opacity: 1;
+ -moz-transform: translateX(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -moz-transform: translateX(2000px);
+ }
+}
+@-o-keyframes fadeOutRightBig {
+ 0% {
+ opacity: 1;
+ -o-transform: translateX(0);
+ }
+
+ 100% {
+ opacity: 0;
+ -o-transform: translateX(2000px);
+ }
+}
+@keyframes fadeOutRightBig {
+ 0% {
+ opacity: 1;
+ transform: translateX(0);
+ }
+
+ 100% {
+ opacity: 0;
+ transform: translateX(2000px);
+ }
+}
+
+.fadeOutRightBig {
+ -webkit-animation-name: fadeOutRightBig;
+ -moz-animation-name: fadeOutRightBig;
+ -o-animation-name: fadeOutRightBig;
+ animation-name: fadeOutRightBig;
+}
+@-webkit-keyframes bounceIn {
+ 0% {
+ opacity: 0;
+ -webkit-transform: scale(0.3);
+ }
+
+ 50% {
+ opacity: 1;
+ -webkit-transform: scale(1.05);
+ }
+
+ 70% {
+ -webkit-transform: scale(0.9);
+ }
+
+ 100% {
+ -webkit-transform: scale(1);
+ }
+}
+
+@-moz-keyframes bounceIn {
+ 0% {
+ opacity: 0;
+ -moz-transform: scale(0.3);
+ }
+
+ 50% {
+ opacity: 1;
+ -moz-transform: scale(1.05);
+ }
+
+ 70% {
+ -moz-transform: scale(0.9);
+ }
+
+ 100% {
+ -moz-transform: scale(1);
+ }
+}
+
+@-o-keyframes bounceIn {
+ 0% {
+ opacity: 0;
+ -o-transform: scale(0.3);
+ }
+
+ 50% {
+ opacity: 1;
+ -o-transform: scale(1.05);
+ }
+
+ 70% {
+ -o-transform: scale(0.9);
+ }
+
+ 100% {
+ -o-transform: scale(1);
+ }
+}
+
+@keyframes bounceIn {
+ 0% {
+ opacity: 0;
+ transform: scale(0.3);
+ }
+
+ 50% {
+ opacity: 1;
+ transform: scale(1.05);
+ }
+
+ 70% {
+ transform: scale(0.9);
+ }
+
+ 100% {
+ transform: scale(1);
+ }
+}
+
+.bounceIn {
+ -webkit-animation-name: bounceIn;
+ -moz-animation-name: bounceIn;
+ -o-animation-name: bounceIn;
+ animation-name: bounceIn;
+}
+@-webkit-keyframes bounceInUp {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateY(2000px);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: translateY(-30px);
+ }
+
+ 80% {
+ -webkit-transform: translateY(10px);
+ }
+
+ 100% {
+ -webkit-transform: translateY(0);
+ }
+}
+@-moz-keyframes bounceInUp {
+ 0% {
+ opacity: 0;
+ -moz-transform: translateY(2000px);
+ }
+
+ 60% {
+ opacity: 1;
+ -moz-transform: translateY(-30px);
+ }
+
+ 80% {
+ -moz-transform: translateY(10px);
+ }
+
+ 100% {
+ -moz-transform: translateY(0);
+ }
+}
+
+@-o-keyframes bounceInUp {
+ 0% {
+ opacity: 0;
+ -o-transform: translateY(2000px);
+ }
+
+ 60% {
+ opacity: 1;
+ -o-transform: translateY(-30px);
+ }
+
+ 80% {
+ -o-transform: translateY(10px);
+ }
+
+ 100% {
+ -o-transform: translateY(0);
+ }
+}
+
+@keyframes bounceInUp {
+ 0% {
+ opacity: 0;
+ transform: translateY(2000px);
+ }
+
+ 60% {
+ opacity: 1;
+ transform: translateY(-30px);
+ }
+
+ 80% {
+ transform: translateY(10px);
+ }
+
+ 100% {
+ transform: translateY(0);
+ }
+}
+
+.bounceInUp {
+ -webkit-animation-name: bounceInUp;
+ -moz-animation-name: bounceInUp;
+ -o-animation-name: bounceInUp;
+ animation-name: bounceInUp;
+}
+@-webkit-keyframes bounceInDown {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateY(-2000px);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: translateY(30px);
+ }
+
+ 80% {
+ -webkit-transform: translateY(-10px);
+ }
+
+ 100% {
+ -webkit-transform: translateY(0);
+ }
+}
+
+@-moz-keyframes bounceInDown {
+ 0% {
+ opacity: 0;
+ -moz-transform: translateY(-2000px);
+ }
+
+ 60% {
+ opacity: 1;
+ -moz-transform: translateY(30px);
+ }
+
+ 80% {
+ -moz-transform: translateY(-10px);
+ }
+
+ 100% {
+ -moz-transform: translateY(0);
+ }
+}
+
+@-o-keyframes bounceInDown {
+ 0% {
+ opacity: 0;
+ -o-transform: translateY(-2000px);
+ }
+
+ 60% {
+ opacity: 1;
+ -o-transform: translateY(30px);
+ }
+
+ 80% {
+ -o-transform: translateY(-10px);
+ }
+
+ 100% {
+ -o-transform: translateY(0);
+ }
+}
+
+@keyframes bounceInDown {
+ 0% {
+ opacity: 0;
+ transform: translateY(-2000px);
+ }
+
+ 60% {
+ opacity: 1;
+ transform: translateY(30px);
+ }
+
+ 80% {
+ transform: translateY(-10px);
+ }
+
+ 100% {
+ transform: translateY(0);
+ }
+}
+
+.bounceInDown {
+ -webkit-animation-name: bounceInDown;
+ -moz-animation-name: bounceInDown;
+ -o-animation-name: bounceInDown;
+ animation-name: bounceInDown;
+}
+@-webkit-keyframes bounceInLeft {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateX(-2000px);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: translateX(30px);
+ }
+
+ 80% {
+ -webkit-transform: translateX(-10px);
+ }
+
+ 100% {
+ -webkit-transform: translateX(0);
+ }
+}
+
+@-moz-keyframes bounceInLeft {
+ 0% {
+ opacity: 0;
+ -moz-transform: translateX(-2000px);
+ }
+
+ 60% {
+ opacity: 1;
+ -moz-transform: translateX(30px);
+ }
+
+ 80% {
+ -moz-transform: translateX(-10px);
+ }
+
+ 100% {
+ -moz-transform: translateX(0);
+ }
+}
+
+@-o-keyframes bounceInLeft {
+ 0% {
+ opacity: 0;
+ -o-transform: translateX(-2000px);
+ }
+
+ 60% {
+ opacity: 1;
+ -o-transform: translateX(30px);
+ }
+
+ 80% {
+ -o-transform: translateX(-10px);
+ }
+
+ 100% {
+ -o-transform: translateX(0);
+ }
+}
+
+@keyframes bounceInLeft {
+ 0% {
+ opacity: 0;
+ transform: translateX(-2000px);
+ }
+
+ 60% {
+ opacity: 1;
+ transform: translateX(30px);
+ }
+
+ 80% {
+ transform: translateX(-10px);
+ }
+
+ 100% {
+ transform: translateX(0);
+ }
+}
+
+.bounceInLeft {
+ -webkit-animation-name: bounceInLeft;
+ -moz-animation-name: bounceInLeft;
+ -o-animation-name: bounceInLeft;
+ animation-name: bounceInLeft;
+}
+@-webkit-keyframes bounceInRight {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateX(2000px);
+ }
+
+ 60% {
+ opacity: 1;
+ -webkit-transform: translateX(-30px);
+ }
+
+ 80% {
+ -webkit-transform: translateX(10px);
+ }
+
+ 100% {
+ -webkit-transform: translateX(0);
+ }
+}
+
+@-moz-keyframes bounceInRight {
+ 0% {
+ opacity: 0;
+ -moz-transform: translateX(2000px);
+ }
+
+ 60% {
+ opacity: 1;
+ -moz-transform: translateX(-30px);
+ }
+
+ 80% {
+ -moz-transform: translateX(10px);
+ }
+
+ 100% {
+ -moz-transform: translateX(0);
+ }
+}
+
+@-o-keyframes bounceInRight {
+ 0% {
+ opacity: 0;
+ -o-transform: translateX(2000px);
+ }
+
+ 60% {
+ opacity: 1;
+ -o-transform: translateX(-30px);
+ }
+
+ 80% {
+ -o-transform: translateX(10px);
+ }
+
+ 100% {
+ -o-transform: translateX(0);
+ }
+}
+
+@keyframes bounceInRight {
+ 0% {
+ opacity: 0;
+ transform: translateX(2000px);
+ }
+
+ 60% {
+ opacity: 1;
+ transform: translateX(-30px);
+ }
+
+ 80% {
+ transform: translateX(10px);
+ }
+
+ 100% {
+ transform: translateX(0);
+ }
+}
+
+.bounceInRight {
+ -webkit-animation-name: bounceInRight;
+ -moz-animation-name: bounceInRight;
+ -o-animation-name: bounceInRight;
+ animation-name: bounceInRight;
+}
+@-webkit-keyframes bounceOut {
+ 0% {
+ -webkit-transform: scale(1);
+ }
+
+ 25% {
+ -webkit-transform: scale(0.95);
+ }
+
+ 50% {
+ opacity: 1;
+ -webkit-transform: scale(1.1);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: scale(0.3);
+ }
+}
+
+@-moz-keyframes bounceOut {
+ 0% {
+ -moz-transform: scale(1);
+ }
+
+ 25% {
+ -moz-transform: scale(0.95);
+ }
+
+ 50% {
+ opacity: 1;
+ -moz-transform: scale(1.1);
+ }
+
+ 100% {
+ opacity: 0;
+ -moz-transform: scale(0.3);
+ }
+}
+
+@-o-keyframes bounceOut {
+ 0% {
+ -o-transform: scale(1);
+ }
+
+ 25% {
+ -o-transform: scale(0.95);
+ }
+
+ 50% {
+ opacity: 1;
+ -o-transform: scale(1.1);
+ }
+
+ 100% {
+ opacity: 0;
+ -o-transform: scale(0.3);
+ }
+}
+
+@keyframes bounceOut {
+ 0% {
+ transform: scale(1);
+ }
+
+ 25% {
+ transform: scale(0.95);
+ }
+
+ 50% {
+ opacity: 1;
+ transform: scale(1.1);
+ }
+
+ 100% {
+ opacity: 0;
+ transform: scale(0.3);
+ }
+}
+
+.bounceOut {
+ -webkit-animation-name: bounceOut;
+ -moz-animation-name: bounceOut;
+ -o-animation-name: bounceOut;
+ animation-name: bounceOut;
+}
+@-webkit-keyframes bounceOutUp {
+ 0% {
+ -webkit-transform: translateY(0);
+ }
+
+ 20% {
+ opacity: 1;
+ -webkit-transform: translateY(20px);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translateY(-2000px);
+ }
+}
+
+@-moz-keyframes bounceOutUp {
+ 0% {
+ -moz-transform: translateY(0);
+ }
+
+ 20% {
+ opacity: 1;
+ -moz-transform: translateY(20px);
+ }
+
+ 100% {
+ opacity: 0;
+ -moz-transform: translateY(-2000px);
+ }
+}
+
+@-o-keyframes bounceOutUp {
+ 0% {
+ -o-transform: translateY(0);
+ }
+
+ 20% {
+ opacity: 1;
+ -o-transform: translateY(20px);
+ }
+
+ 100% {
+ opacity: 0;
+ -o-transform: translateY(-2000px);
+ }
+}
+
+@keyframes bounceOutUp {
+ 0% {
+ transform: translateY(0);
+ }
+
+ 20% {
+ opacity: 1;
+ transform: translateY(20px);
+ }
+
+ 100% {
+ opacity: 0;
+ transform: translateY(-2000px);
+ }
+}
+
+.bounceOutUp {
+ -webkit-animation-name: bounceOutUp;
+ -moz-animation-name: bounceOutUp;
+ -o-animation-name: bounceOutUp;
+ animation-name: bounceOutUp;
+}
+@-webkit-keyframes bounceOutDown {
+ 0% {
+ -webkit-transform: translateY(0);
+ }
+
+ 20% {
+ opacity: 1;
+ -webkit-transform: translateY(-20px);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translateY(2000px);
+ }
+}
+
+@-moz-keyframes bounceOutDown {
+ 0% {
+ -moz-transform: translateY(0);
+ }
+
+ 20% {
+ opacity: 1;
+ -moz-transform: translateY(-20px);
+ }
+
+ 100% {
+ opacity: 0;
+ -moz-transform: translateY(2000px);
+ }
+}
+
+@-o-keyframes bounceOutDown {
+ 0% {
+ -o-transform: translateY(0);
+ }
+
+ 20% {
+ opacity: 1;
+ -o-transform: translateY(-20px);
+ }
+
+ 100% {
+ opacity: 0;
+ -o-transform: translateY(2000px);
+ }
+}
+
+@keyframes bounceOutDown {
+ 0% {
+ transform: translateY(0);
+ }
+
+ 20% {
+ opacity: 1;
+ transform: translateY(-20px);
+ }
+
+ 100% {
+ opacity: 0;
+ transform: translateY(2000px);
+ }
+}
+
+.bounceOutDown {
+ -webkit-animation-name: bounceOutDown;
+ -moz-animation-name: bounceOutDown;
+ -o-animation-name: bounceOutDown;
+ animation-name: bounceOutDown;
+}
+@-webkit-keyframes bounceOutLeft {
+ 0% {
+ -webkit-transform: translateX(0);
+ }
+
+ 20% {
+ opacity: 1;
+ -webkit-transform: translateX(20px);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translateX(-2000px);
+ }
+}
+
+@-moz-keyframes bounceOutLeft {
+ 0% {
+ -moz-transform: translateX(0);
+ }
+
+ 20% {
+ opacity: 1;
+ -moz-transform: translateX(20px);
+ }
+
+ 100% {
+ opacity: 0;
+ -moz-transform: translateX(-2000px);
+ }
+}
+
+@-o-keyframes bounceOutLeft {
+ 0% {
+ -o-transform: translateX(0);
+ }
+
+ 20% {
+ opacity: 1;
+ -o-transform: translateX(20px);
+ }
+
+ 100% {
+ opacity: 0;
+ -o-transform: translateX(-2000px);
+ }
+}
+
+@keyframes bounceOutLeft {
+ 0% {
+ transform: translateX(0);
+ }
+
+ 20% {
+ opacity: 1;
+ transform: translateX(20px);
+ }
+
+ 100% {
+ opacity: 0;
+ transform: translateX(-2000px);
+ }
+}
+
+.bounceOutLeft {
+ -webkit-animation-name: bounceOutLeft;
+ -moz-animation-name: bounceOutLeft;
+ -o-animation-name: bounceOutLeft;
+ animation-name: bounceOutLeft;
+}
+@-webkit-keyframes bounceOutRight {
+ 0% {
+ -webkit-transform: translateX(0);
+ }
+
+ 20% {
+ opacity: 1;
+ -webkit-transform: translateX(-20px);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translateX(2000px);
+ }
+}
+
+@-moz-keyframes bounceOutRight {
+ 0% {
+ -moz-transform: translateX(0);
+ }
+
+ 20% {
+ opacity: 1;
+ -moz-transform: translateX(-20px);
+ }
+
+ 100% {
+ opacity: 0;
+ -moz-transform: translateX(2000px);
+ }
+}
+
+@-o-keyframes bounceOutRight {
+ 0% {
+ -o-transform: translateX(0);
+ }
+
+ 20% {
+ opacity: 1;
+ -o-transform: translateX(-20px);
+ }
+
+ 100% {
+ opacity: 0;
+ -o-transform: translateX(2000px);
+ }
+}
+
+@keyframes bounceOutRight {
+ 0% {
+ transform: translateX(0);
+ }
+
+ 20% {
+ opacity: 1;
+ transform: translateX(-20px);
+ }
+
+ 100% {
+ opacity: 0;
+ transform: translateX(2000px);
+ }
+}
+
+.bounceOutRight {
+ -webkit-animation-name: bounceOutRight;
+ -moz-animation-name: bounceOutRight;
+ -o-animation-name: bounceOutRight;
+ animation-name: bounceOutRight;
+}
+@-webkit-keyframes rotateIn {
+ 0% {
+ -webkit-transform-origin: center center;
+ -webkit-transform: rotate(-200deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -webkit-transform-origin: center center;
+ -webkit-transform: rotate(0);
+ opacity: 1;
+ }
+}
+@-moz-keyframes rotateIn {
+ 0% {
+ -moz-transform-origin: center center;
+ -moz-transform: rotate(-200deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -moz-transform-origin: center center;
+ -moz-transform: rotate(0);
+ opacity: 1;
+ }
+}
+@-o-keyframes rotateIn {
+ 0% {
+ -o-transform-origin: center center;
+ -o-transform: rotate(-200deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -o-transform-origin: center center;
+ -o-transform: rotate(0);
+ opacity: 1;
+ }
+}
+@keyframes rotateIn {
+ 0% {
+ transform-origin: center center;
+ transform: rotate(-200deg);
+ opacity: 0;
+ }
+
+ 100% {
+ transform-origin: center center;
+ transform: rotate(0);
+ opacity: 1;
+ }
+}
+
+.rotateIn {
+ -webkit-animation-name: rotateIn;
+ -moz-animation-name: rotateIn;
+ -o-animation-name: rotateIn;
+ animation-name: rotateIn;
+}
+@-webkit-keyframes rotateInUpLeft {
+ 0% {
+ -webkit-transform-origin: left bottom;
+ -webkit-transform: rotate(90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -webkit-transform-origin: left bottom;
+ -webkit-transform: rotate(0);
+ opacity: 1;
+ }
+}
+
+@-moz-keyframes rotateInUpLeft {
+ 0% {
+ -moz-transform-origin: left bottom;
+ -moz-transform: rotate(90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -moz-transform-origin: left bottom;
+ -moz-transform: rotate(0);
+ opacity: 1;
+ }
+}
+
+@-o-keyframes rotateInUpLeft {
+ 0% {
+ -o-transform-origin: left bottom;
+ -o-transform: rotate(90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -o-transform-origin: left bottom;
+ -o-transform: rotate(0);
+ opacity: 1;
+ }
+}
+
+@keyframes rotateInUpLeft {
+ 0% {
+ transform-origin: left bottom;
+ transform: rotate(90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ transform-origin: left bottom;
+ transform: rotate(0);
+ opacity: 1;
+ }
+}
+
+.rotateInUpLeft {
+ -webkit-animation-name: rotateInUpLeft;
+ -moz-animation-name: rotateInUpLeft;
+ -o-animation-name: rotateInUpLeft;
+ animation-name: rotateInUpLeft;
+}
+@-webkit-keyframes rotateInDownLeft {
+ 0% {
+ -webkit-transform-origin: left bottom;
+ -webkit-transform: rotate(-90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -webkit-transform-origin: left bottom;
+ -webkit-transform: rotate(0);
+ opacity: 1;
+ }
+}
+
+@-moz-keyframes rotateInDownLeft {
+ 0% {
+ -moz-transform-origin: left bottom;
+ -moz-transform: rotate(-90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -moz-transform-origin: left bottom;
+ -moz-transform: rotate(0);
+ opacity: 1;
+ }
+}
+
+@-o-keyframes rotateInDownLeft {
+ 0% {
+ -o-transform-origin: left bottom;
+ -o-transform: rotate(-90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -o-transform-origin: left bottom;
+ -o-transform: rotate(0);
+ opacity: 1;
+ }
+}
+
+@keyframes rotateInDownLeft {
+ 0% {
+ transform-origin: left bottom;
+ transform: rotate(-90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ transform-origin: left bottom;
+ transform: rotate(0);
+ opacity: 1;
+ }
+}
+
+.rotateInDownLeft {
+ -webkit-animation-name: rotateInDownLeft;
+ -moz-animation-name: rotateInDownLeft;
+ -o-animation-name: rotateInDownLeft;
+ animation-name: rotateInDownLeft;
+}
+@-webkit-keyframes rotateInUpRight {
+ 0% {
+ -webkit-transform-origin: right bottom;
+ -webkit-transform: rotate(-90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -webkit-transform-origin: right bottom;
+ -webkit-transform: rotate(0);
+ opacity: 1;
+ }
+}
+
+@-moz-keyframes rotateInUpRight {
+ 0% {
+ -moz-transform-origin: right bottom;
+ -moz-transform: rotate(-90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -moz-transform-origin: right bottom;
+ -moz-transform: rotate(0);
+ opacity: 1;
+ }
+}
+
+@-o-keyframes rotateInUpRight {
+ 0% {
+ -o-transform-origin: right bottom;
+ -o-transform: rotate(-90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -o-transform-origin: right bottom;
+ -o-transform: rotate(0);
+ opacity: 1;
+ }
+}
+
+@keyframes rotateInUpRight {
+ 0% {
+ transform-origin: right bottom;
+ transform: rotate(-90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ transform-origin: right bottom;
+ transform: rotate(0);
+ opacity: 1;
+ }
+}
+
+.rotateInUpRight {
+ -webkit-animation-name: rotateInUpRight;
+ -moz-animation-name: rotateInUpRight;
+ -o-animation-name: rotateInUpRight;
+ animation-name: rotateInUpRight;
+}
+@-webkit-keyframes rotateInDownRight {
+ 0% {
+ -webkit-transform-origin: right bottom;
+ -webkit-transform: rotate(90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -webkit-transform-origin: right bottom;
+ -webkit-transform: rotate(0);
+ opacity: 1;
+ }
+}
+
+@-moz-keyframes rotateInDownRight {
+ 0% {
+ -moz-transform-origin: right bottom;
+ -moz-transform: rotate(90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -moz-transform-origin: right bottom;
+ -moz-transform: rotate(0);
+ opacity: 1;
+ }
+}
+
+@-o-keyframes rotateInDownRight {
+ 0% {
+ -o-transform-origin: right bottom;
+ -o-transform: rotate(90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ -o-transform-origin: right bottom;
+ -o-transform: rotate(0);
+ opacity: 1;
+ }
+}
+
+@keyframes rotateInDownRight {
+ 0% {
+ transform-origin: right bottom;
+ transform: rotate(90deg);
+ opacity: 0;
+ }
+
+ 100% {
+ transform-origin: right bottom;
+ transform: rotate(0);
+ opacity: 1;
+ }
+}
+
+.rotateInDownRight {
+ -webkit-animation-name: rotateInDownRight;
+ -moz-animation-name: rotateInDownRight;
+ -o-animation-name: rotateInDownRight;
+ animation-name: rotateInDownRight;
+}
+@-webkit-keyframes rotateOut {
+ 0% {
+ -webkit-transform-origin: center center;
+ -webkit-transform: rotate(0);
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform-origin: center center;
+ -webkit-transform: rotate(200deg);
+ opacity: 0;
+ }
+}
+
+@-moz-keyframes rotateOut {
+ 0% {
+ -moz-transform-origin: center center;
+ -moz-transform: rotate(0);
+ opacity: 1;
+ }
+
+ 100% {
+ -moz-transform-origin: center center;
+ -moz-transform: rotate(200deg);
+ opacity: 0;
+ }
+}
+
+@-o-keyframes rotateOut {
+ 0% {
+ -o-transform-origin: center center;
+ -o-transform: rotate(0);
+ opacity: 1;
+ }
+
+ 100% {
+ -o-transform-origin: center center;
+ -o-transform: rotate(200deg);
+ opacity: 0;
+ }
+}
+
+@keyframes rotateOut {
+ 0% {
+ transform-origin: center center;
+ transform: rotate(0);
+ opacity: 1;
+ }
+
+ 100% {
+ transform-origin: center center;
+ transform: rotate(200deg);
+ opacity: 0;
+ }
+}
+
+.rotateOut {
+ -webkit-animation-name: rotateOut;
+ -moz-animation-name: rotateOut;
+ -o-animation-name: rotateOut;
+ animation-name: rotateOut;
+}
+@-webkit-keyframes rotateOutUpLeft {
+ 0% {
+ -webkit-transform-origin: left bottom;
+ -webkit-transform: rotate(0);
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform-origin: left bottom;
+ -webkit-transform: rotate(-90deg);
+ opacity: 0;
+ }
+}
+
+@-moz-keyframes rotateOutUpLeft {
+ 0% {
+ -moz-transform-origin: left bottom;
+ -moz-transform: rotate(0);
+ opacity: 1;
+ }
+
+ 100% {
+ -moz-transform-origin: left bottom;
+ -moz-transform: rotate(-90deg);
+ opacity: 0;
+ }
+}
+
+@-o-keyframes rotateOutUpLeft {
+ 0% {
+ -o-transform-origin: left bottom;
+ -o-transform: rotate(0);
+ opacity: 1;
+ }
+
+ 100% {
+ -o-transform-origin: left bottom;
+ -o-transform: rotate(-90deg);
+ opacity: 0;
+ }
+}
+
+@keyframes rotateOutUpLeft {
+ 0% {
+ transform-origin: left bottom;
+ transform: rotate(0);
+ opacity: 1;
+ }
+
+ 100% {
+ transform-origin: left bottom;
+ transform: rotate(-90deg);
+ opacity: 0;
+ }
+}
+
+.rotateOutUpLeft {
+ -webkit-animation-name: rotateOutUpLeft;
+ -moz-animation-name: rotateOutUpLeft;
+ -o-animation-name: rotateOutUpLeft;
+ animation-name: rotateOutUpLeft;
+}
+@-webkit-keyframes rotateOutDownLeft {
+ 0% {
+ -webkit-transform-origin: left bottom;
+ -webkit-transform: rotate(0);
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform-origin: left bottom;
+ -webkit-transform: rotate(90deg);
+ opacity: 0;
+ }
+}
+
+@-moz-keyframes rotateOutDownLeft {
+ 0% {
+ -moz-transform-origin: left bottom;
+ -moz-transform: rotate(0);
+ opacity: 1;
+ }
+
+ 100% {
+ -moz-transform-origin: left bottom;
+ -moz-transform: rotate(90deg);
+ opacity: 0;
+ }
+}
+
+@-o-keyframes rotateOutDownLeft {
+ 0% {
+ -o-transform-origin: left bottom;
+ -o-transform: rotate(0);
+ opacity: 1;
+ }
+
+ 100% {
+ -o-transform-origin: left bottom;
+ -o-transform: rotate(90deg);
+ opacity: 0;
+ }
+}
+
+@keyframes rotateOutDownLeft {
+ 0% {
+ transform-origin: left bottom;
+ transform: rotate(0);
+ opacity: 1;
+ }
+
+ 100% {
+ transform-origin: left bottom;
+ transform: rotate(90deg);
+ opacity: 0;
+ }
+}
+
+.rotateOutDownLeft {
+ -webkit-animation-name: rotateOutDownLeft;
+ -moz-animation-name: rotateOutDownLeft;
+ -o-animation-name: rotateOutDownLeft;
+ animation-name: rotateOutDownLeft;
+}
+@-webkit-keyframes rotateOutUpRight {
+ 0% {
+ -webkit-transform-origin: right bottom;
+ -webkit-transform: rotate(0);
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform-origin: right bottom;
+ -webkit-transform: rotate(90deg);
+ opacity: 0;
+ }
+}
+
+@-moz-keyframes rotateOutUpRight {
+ 0% {
+ -moz-transform-origin: right bottom;
+ -moz-transform: rotate(0);
+ opacity: 1;
+ }
+
+ 100% {
+ -moz-transform-origin: right bottom;
+ -moz-transform: rotate(90deg);
+ opacity: 0;
+ }
+}
+
+@-o-keyframes rotateOutUpRight {
+ 0% {
+ -o-transform-origin: right bottom;
+ -o-transform: rotate(0);
+ opacity: 1;
+ }
+
+ 100% {
+ -o-transform-origin: right bottom;
+ -o-transform: rotate(90deg);
+ opacity: 0;
+ }
+}
+
+@keyframes rotateOutUpRight {
+ 0% {
+ transform-origin: right bottom;
+ transform: rotate(0);
+ opacity: 1;
+ }
+
+ 100% {
+ transform-origin: right bottom;
+ transform: rotate(90deg);
+ opacity: 0;
+ }
+}
+
+.rotateOutUpRight {
+ -webkit-animation-name: rotateOutUpRight;
+ -moz-animation-name: rotateOutUpRight;
+ -o-animation-name: rotateOutUpRight;
+ animation-name: rotateOutUpRight;
+}
+@-webkit-keyframes rotateOutDownRight {
+ 0% {
+ -webkit-transform-origin: right bottom;
+ -webkit-transform: rotate(0);
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform-origin: right bottom;
+ -webkit-transform: rotate(-90deg);
+ opacity: 0;
+ }
+}
+
+@-moz-keyframes rotateOutDownRight {
+ 0% {
+ -moz-transform-origin: right bottom;
+ -moz-transform: rotate(0);
+ opacity: 1;
+ }
+
+ 100% {
+ -moz-transform-origin: right bottom;
+ -moz-transform: rotate(-90deg);
+ opacity: 0;
+ }
+}
+
+@-o-keyframes rotateOutDownRight {
+ 0% {
+ -o-transform-origin: right bottom;
+ -o-transform: rotate(0);
+ opacity: 1;
+ }
+
+ 100% {
+ -o-transform-origin: right bottom;
+ -o-transform: rotate(-90deg);
+ opacity: 0;
+ }
+}
+
+@keyframes rotateOutDownRight {
+ 0% {
+ transform-origin: right bottom;
+ transform: rotate(0);
+ opacity: 1;
+ }
+
+ 100% {
+ transform-origin: right bottom;
+ transform: rotate(-90deg);
+ opacity: 0;
+ }
+}
+
+.rotateOutDownRight {
+ -webkit-animation-name: rotateOutDownRight;
+ -moz-animation-name: rotateOutDownRight;
+ -o-animation-name: rotateOutDownRight;
+ animation-name: rotateOutDownRight;
+}
+@-webkit-keyframes hinge {
+ 0% {
+ -webkit-transform: rotate(0);
+ -webkit-transform-origin: top left;
+ -webkit-animation-timing-function: ease-in-out;
+ }
+ 20%,
+ 60% {
+ -webkit-transform: rotate(80deg);
+ -webkit-transform-origin: top left;
+ -webkit-animation-timing-function: ease-in-out;
+ }
+ 40% {
+ -webkit-transform: rotate(60deg);
+ -webkit-transform-origin: top left;
+ -webkit-animation-timing-function: ease-in-out;
+ }
+ 80% {
+ -webkit-transform: rotate(60deg) translateY(0);
+ opacity: 1;
+ -webkit-transform-origin: top left;
+ -webkit-animation-timing-function: ease-in-out;
+ }
+ 100% {
+ -webkit-transform: translateY(700px);
+ opacity: 0;
+ }
+}
+
+@-moz-keyframes hinge {
+ 0% {
+ -moz-transform: rotate(0);
+ -moz-transform-origin: top left;
+ -moz-animation-timing-function: ease-in-out;
+ }
+ 20%,
+ 60% {
+ -moz-transform: rotate(80deg);
+ -moz-transform-origin: top left;
+ -moz-animation-timing-function: ease-in-out;
+ }
+ 40% {
+ -moz-transform: rotate(60deg);
+ -moz-transform-origin: top left;
+ -moz-animation-timing-function: ease-in-out;
+ }
+ 80% {
+ -moz-transform: rotate(60deg) translateY(0);
+ opacity: 1;
+ -moz-transform-origin: top left;
+ -moz-animation-timing-function: ease-in-out;
+ }
+ 100% {
+ -moz-transform: translateY(700px);
+ opacity: 0;
+ }
+}
+
+@-o-keyframes hinge {
+ 0% {
+ -o-transform: rotate(0);
+ -o-transform-origin: top left;
+ -o-animation-timing-function: ease-in-out;
+ }
+ 20%,
+ 60% {
+ -o-transform: rotate(80deg);
+ -o-transform-origin: top left;
+ -o-animation-timing-function: ease-in-out;
+ }
+ 40% {
+ -o-transform: rotate(60deg);
+ -o-transform-origin: top left;
+ -o-animation-timing-function: ease-in-out;
+ }
+ 80% {
+ -o-transform: rotate(60deg) translateY(0);
+ opacity: 1;
+ -o-transform-origin: top left;
+ -o-animation-timing-function: ease-in-out;
+ }
+ 100% {
+ -o-transform: translateY(700px);
+ opacity: 0;
+ }
+}
+
+@keyframes hinge {
+ 0% {
+ transform: rotate(0);
+ transform-origin: top left;
+ animation-timing-function: ease-in-out;
+ }
+ 20%,
+ 60% {
+ transform: rotate(80deg);
+ transform-origin: top left;
+ animation-timing-function: ease-in-out;
+ }
+ 40% {
+ transform: rotate(60deg);
+ transform-origin: top left;
+ animation-timing-function: ease-in-out;
+ }
+ 80% {
+ transform: rotate(60deg) translateY(0);
+ opacity: 1;
+ transform-origin: top left;
+ animation-timing-function: ease-in-out;
+ }
+ 100% {
+ transform: translateY(700px);
+ opacity: 0;
+ }
+}
+
+.hinge {
+ -webkit-animation-name: hinge;
+ -moz-animation-name: hinge;
+ -o-animation-name: hinge;
+ animation-name: hinge;
+}
+/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
+
+@-webkit-keyframes rollIn {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateX(-100%) rotate(-120deg);
+ }
+ 100% {
+ opacity: 1;
+ -webkit-transform: translateX(0px) rotate(0deg);
+ }
+}
+
+@-moz-keyframes rollIn {
+ 0% {
+ opacity: 0;
+ -moz-transform: translateX(-100%) rotate(-120deg);
+ }
+ 100% {
+ opacity: 1;
+ -moz-transform: translateX(0px) rotate(0deg);
+ }
+}
+
+@-o-keyframes rollIn {
+ 0% {
+ opacity: 0;
+ -o-transform: translateX(-100%) rotate(-120deg);
+ }
+ 100% {
+ opacity: 1;
+ -o-transform: translateX(0px) rotate(0deg);
+ }
+}
+
+@keyframes rollIn {
+ 0% {
+ opacity: 0;
+ transform: translateX(-100%) rotate(-120deg);
+ }
+ 100% {
+ opacity: 1;
+ transform: translateX(0px) rotate(0deg);
+ }
+}
+
+.rollIn {
+ -webkit-animation-name: rollIn;
+ -moz-animation-name: rollIn;
+ -o-animation-name: rollIn;
+ animation-name: rollIn;
+}
+/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
+
+@-webkit-keyframes rollOut {
+ 0% {
+ opacity: 1;
+ -webkit-transform: translateX(0px) rotate(0deg);
+ }
+
+ 100% {
+ opacity: 0;
+ -webkit-transform: translateX(100%) rotate(120deg);
+ }
+}
+
+@-moz-keyframes rollOut {
+ 0% {
+ opacity: 1;
+ -moz-transform: translateX(0px) rotate(0deg);
+ }
+
+ 100% {
+ opacity: 0;
+ -moz-transform: translateX(100%) rotate(120deg);
+ }
+}
+
+@-o-keyframes rollOut {
+ 0% {
+ opacity: 1;
+ -o-transform: translateX(0px) rotate(0deg);
+ }
+
+ 100% {
+ opacity: 0;
+ -o-transform: translateX(100%) rotate(120deg);
+ }
+}
+
+@keyframes rollOut {
+ 0% {
+ opacity: 1;
+ transform: translateX(0px) rotate(0deg);
+ }
+
+ 100% {
+ opacity: 0;
+ transform: translateX(100%) rotate(120deg);
+ }
+}
+
+.rollOut {
+ -webkit-animation-name: rollOut;
+ -moz-animation-name: rollOut;
+ -o-animation-name: rollOut;
+ animation-name: rollOut;
+}
+
+/* originally authored by Angelo Rohit - https://github.com/angelorohit */
+
+@-webkit-keyframes lightSpeedIn {
+ 0% {
+ -webkit-transform: translateX(100%) skewX(-30deg);
+ opacity: 0;
+ }
+ 60% {
+ -webkit-transform: translateX(-20%) skewX(30deg);
+ opacity: 1;
+ }
+ 80% {
+ -webkit-transform: translateX(0%) skewX(-15deg);
+ opacity: 1;
+ }
+ 100% {
+ -webkit-transform: translateX(0%) skewX(0deg);
+ opacity: 1;
+ }
+}
+
+@-moz-keyframes lightSpeedIn {
+ 0% {
+ -moz-transform: translateX(100%) skewX(-30deg);
+ opacity: 0;
+ }
+ 60% {
+ -moz-transform: translateX(-20%) skewX(30deg);
+ opacity: 1;
+ }
+ 80% {
+ -moz-transform: translateX(0%) skewX(-15deg);
+ opacity: 1;
+ }
+ 100% {
+ -moz-transform: translateX(0%) skewX(0deg);
+ opacity: 1;
+ }
+}
+
+@-o-keyframes lightSpeedIn {
+ 0% {
+ -o-transform: translateX(100%) skewX(-30deg);
+ opacity: 0;
+ }
+ 60% {
+ -o-transform: translateX(-20%) skewX(30deg);
+ opacity: 1;
+ }
+ 80% {
+ -o-transform: translateX(0%) skewX(-15deg);
+ opacity: 1;
+ }
+ 100% {
+ -o-transform: translateX(0%) skewX(0deg);
+ opacity: 1;
+ }
+}
+
+@keyframes lightSpeedIn {
+ 0% {
+ transform: translateX(100%) skewX(-30deg);
+ opacity: 0;
+ }
+ 60% {
+ transform: translateX(-20%) skewX(30deg);
+ opacity: 1;
+ }
+ 80% {
+ transform: translateX(0%) skewX(-15deg);
+ opacity: 1;
+ }
+ 100% {
+ transform: translateX(0%) skewX(0deg);
+ opacity: 1;
+ }
+}
+
+.lightSpeedIn {
+ -webkit-animation-name: lightSpeedIn;
+ -moz-animation-name: lightSpeedIn;
+ -o-animation-name: lightSpeedIn;
+ animation-name: lightSpeedIn;
+
+ -webkit-animation-timing-function: ease-out;
+ -moz-animation-timing-function: ease-out;
+ -o-animation-timing-function: ease-out;
+ animation-timing-function: ease-out;
+}
+
+.animated.lightSpeedIn {
+ -webkit-animation-duration: 0.5s;
+ -moz-animation-duration: 0.5s;
+ -o-animation-duration: 0.5s;
+ animation-duration: 0.5s;
+}
+
+/* originally authored by Angelo Rohit - https://github.com/angelorohit */
+
+@-webkit-keyframes lightSpeedOut {
+ 0% {
+ -webkit-transform: translateX(0%) skewX(0deg);
+ opacity: 1;
+ }
+ 100% {
+ -webkit-transform: translateX(100%) skewX(-30deg);
+ opacity: 0;
+ }
+}
+
+@-moz-keyframes lightSpeedOut {
+ 0% {
+ -moz-transform: translateX(0%) skewX(0deg);
+ opacity: 1;
+ }
+ 100% {
+ -moz-transform: translateX(100%) skewX(-30deg);
+ opacity: 0;
+ }
+}
+
+@-o-keyframes lightSpeedOut {
+ 0% {
+ -o-transform: translateX(0%) skewX(0deg);
+ opacity: 1;
+ }
+ 100% {
+ -o-transform: translateX(100%) skewX(-30deg);
+ opacity: 0;
+ }
+}
+
+@keyframes lightSpeedOut {
+ 0% {
+ transform: translateX(0%) skewX(0deg);
+ opacity: 1;
+ }
+ 100% {
+ transform: translateX(100%) skewX(-30deg);
+ opacity: 0;
+ }
+}
+
+.lightSpeedOut {
+ -webkit-animation-name: lightSpeedOut;
+ -moz-animation-name: lightSpeedOut;
+ -o-animation-name: lightSpeedOut;
+ animation-name: lightSpeedOut;
+
+ -webkit-animation-timing-function: ease-in;
+ -moz-animation-timing-function: ease-in;
+ -o-animation-timing-function: ease-in;
+ animation-timing-function: ease-in;
+}
+
+.animated.lightSpeedOut {
+ -webkit-animation-duration: 0.25s;
+ -moz-animation-duration: 0.25s;
+ -o-animation-duration: 0.25s;
+ animation-duration: 0.25s;
+}
+
+/* originally authored by Angelo Rohit - https://github.com/angelorohit */
+
+@-webkit-keyframes wiggle {
+ 0% {
+ -webkit-transform: skewX(9deg);
+ }
+ 10% {
+ -webkit-transform: skewX(-8deg);
+ }
+ 20% {
+ -webkit-transform: skewX(7deg);
+ }
+ 30% {
+ -webkit-transform: skewX(-6deg);
+ }
+ 40% {
+ -webkit-transform: skewX(5deg);
+ }
+ 50% {
+ -webkit-transform: skewX(-4deg);
+ }
+ 60% {
+ -webkit-transform: skewX(3deg);
+ }
+ 70% {
+ -webkit-transform: skewX(-2deg);
+ }
+ 80% {
+ -webkit-transform: skewX(1deg);
+ }
+ 90% {
+ -webkit-transform: skewX(0deg);
+ }
+ 100% {
+ -webkit-transform: skewX(0deg);
+ }
+}
+
+@-moz-keyframes wiggle {
+ 0% {
+ -moz-transform: skewX(9deg);
+ }
+ 10% {
+ -moz-transform: skewX(-8deg);
+ }
+ 20% {
+ -moz-transform: skewX(7deg);
+ }
+ 30% {
+ -moz-transform: skewX(-6deg);
+ }
+ 40% {
+ -moz-transform: skewX(5deg);
+ }
+ 50% {
+ -moz-transform: skewX(-4deg);
+ }
+ 60% {
+ -moz-transform: skewX(3deg);
+ }
+ 70% {
+ -moz-transform: skewX(-2deg);
+ }
+ 80% {
+ -moz-transform: skewX(1deg);
+ }
+ 90% {
+ -moz-transform: skewX(0deg);
+ }
+ 100% {
+ -moz-transform: skewX(0deg);
+ }
+}
+
+@-o-keyframes wiggle {
+ 0% {
+ -o-transform: skewX(9deg);
+ }
+ 10% {
+ -o-transform: skewX(-8deg);
+ }
+ 20% {
+ -o-transform: skewX(7deg);
+ }
+ 30% {
+ -o-transform: skewX(-6deg);
+ }
+ 40% {
+ -o-transform: skewX(5deg);
+ }
+ 50% {
+ -o-transform: skewX(-4deg);
+ }
+ 60% {
+ -o-transform: skewX(3deg);
+ }
+ 70% {
+ -o-transform: skewX(-2deg);
+ }
+ 80% {
+ -o-transform: skewX(1deg);
+ }
+ 90% {
+ -o-transform: skewX(0deg);
+ }
+ 100% {
+ -o-transform: skewX(0deg);
+ }
+}
+
+@keyframes wiggle {
+ 0% {
+ transform: skewX(9deg);
+ }
+ 10% {
+ transform: skewX(-8deg);
+ }
+ 20% {
+ transform: skewX(7deg);
+ }
+ 30% {
+ transform: skewX(-6deg);
+ }
+ 40% {
+ transform: skewX(5deg);
+ }
+ 50% {
+ transform: skewX(-4deg);
+ }
+ 60% {
+ transform: skewX(3deg);
+ }
+ 70% {
+ transform: skewX(-2deg);
+ }
+ 80% {
+ transform: skewX(1deg);
+ }
+ 90% {
+ transform: skewX(0deg);
+ }
+ 100% {
+ transform: skewX(0deg);
+ }
+}
+
+.wiggle {
+ -webkit-animation-name: wiggle;
+ -moz-animation-name: wiggle;
+ -o-animation-name: wiggle;
+ animation-name: wiggle;
+
+ -webkit-animation-timing-function: ease-in;
+ -moz-animation-timing-function: ease-in;
+ -o-animation-timing-function: ease-in;
+ animation-timing-function: ease-in;
+}
+
+.animated.wiggle {
+ -webkit-animation-duration: 0.75s;
+ -moz-animation-duration: 0.75s;
+ -o-animation-duration: 0.75s;
+ animation-duration: 0.75s;
+}
diff --git a/backend/tests/integration/tests/pruning/website/css/bootstrap.min.css b/backend/tests/integration/tests/pruning/website/css/bootstrap.min.css
new file mode 100644
index 0000000000..8a7496b6f6
--- /dev/null
+++ b/backend/tests/integration/tests/pruning/website/css/bootstrap.min.css
@@ -0,0 +1,6136 @@
+/*!
+ * Bootstrap v3.1.0 (http://getbootstrap.com)
+ * Copyright 2011-2014 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+
+/*! normalize.css v3.0.0 | MIT License | git.io/normalize */
+html {
+ font-family: sans-serif;
+ -ms-text-size-adjust: 100%;
+ -webkit-text-size-adjust: 100%;
+}
+body {
+ margin: 0;
+}
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+main,
+nav,
+section,
+summary {
+ display: block;
+}
+audio,
+canvas,
+progress,
+video {
+ display: inline-block;
+ vertical-align: baseline;
+}
+audio:not([controls]) {
+ display: none;
+ height: 0;
+}
+[hidden],
+template {
+ display: none;
+}
+a {
+ background: 0 0;
+}
+a:active,
+a:hover {
+ outline: 0;
+}
+abbr[title] {
+ border-bottom: 1px dotted;
+}
+b,
+strong {
+ font-weight: 700;
+}
+dfn {
+ font-style: italic;
+}
+h1 {
+ font-size: 2em;
+ margin: 0.67em 0;
+}
+mark {
+ background: #ff0;
+ color: #000;
+}
+small {
+ font-size: 80%;
+}
+sub,
+sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline;
+}
+sup {
+ top: -0.5em;
+}
+sub {
+ bottom: -0.25em;
+}
+img {
+ border: 0;
+}
+svg:not(:root) {
+ overflow: hidden;
+}
+figure {
+ margin: 1em 40px;
+}
+hr {
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+ height: 0;
+}
+pre {
+ overflow: auto;
+}
+code,
+kbd,
+pre,
+samp {
+ font-family: monospace, monospace;
+ font-size: 1em;
+}
+button,
+input,
+optgroup,
+select,
+textarea {
+ color: inherit;
+ font: inherit;
+ margin: 0;
+}
+button {
+ overflow: visible;
+}
+button,
+select {
+ text-transform: none;
+}
+button,
+html input[type="button"],
+input[type="reset"],
+input[type="submit"] {
+ -webkit-appearance: button;
+ cursor: pointer;
+}
+button[disabled],
+html input[disabled] {
+ cursor: default;
+}
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+ border: 0;
+ padding: 0;
+}
+input {
+ line-height: normal;
+}
+input[type="checkbox"],
+input[type="radio"] {
+ box-sizing: border-box;
+ padding: 0;
+}
+input[type="number"]::-webkit-inner-spin-button,
+input[type="number"]::-webkit-outer-spin-button {
+ height: auto;
+}
+input[type="search"] {
+ -webkit-appearance: textfield;
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box;
+ box-sizing: content-box;
+}
+input[type="search"]::-webkit-search-cancel-button,
+input[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+fieldset {
+ border: 1px solid silver;
+ margin: 0 2px;
+ padding: 0.35em 0.625em 0.75em;
+}
+legend {
+ border: 0;
+ padding: 0;
+}
+textarea {
+ overflow: auto;
+}
+optgroup {
+ font-weight: 700;
+}
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+td,
+th {
+ padding: 0;
+}
+@media print {
+ * {
+ text-shadow: none !important;
+ color: #000 !important;
+ background: transparent !important;
+ box-shadow: none !important;
+ }
+ a,
+ a:visited {
+ text-decoration: underline;
+ }
+ a[href]:after {
+ content: " (" attr(href) ")";
+ }
+ abbr[title]:after {
+ content: " (" attr(title) ")";
+ }
+ a[href^="javascript:"]:after,
+ a[href^="#"]:after {
+ content: "";
+ }
+ pre,
+ blockquote {
+ border: 1px solid #999;
+ page-break-inside: avoid;
+ }
+ thead {
+ display: table-header-group;
+ }
+ tr,
+ img {
+ page-break-inside: avoid;
+ }
+ img {
+ max-width: 100% !important;
+ }
+ p,
+ h2,
+ h3 {
+ orphans: 3;
+ widows: 3;
+ }
+ h2,
+ h3 {
+ page-break-after: avoid;
+ }
+ select {
+ background: #fff !important;
+ }
+ .navbar {
+ display: none;
+ }
+ .table td,
+ .table th {
+ background-color: #fff !important;
+ }
+ .btn > .caret,
+ .dropup > .btn > .caret {
+ border-top-color: #000 !important;
+ }
+ .label {
+ border: 1px solid #000;
+ }
+ .table {
+ border-collapse: collapse !important;
+ }
+ .table-bordered th,
+ .table-bordered td {
+ border: 1px solid #ddd !important;
+ }
+}
+* {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+:before,
+:after {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+html {
+ font-size: 62.5%;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+}
+body {
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-size: 14px;
+ line-height: 1.428571429;
+ color: #333;
+ background-color: #fff;
+}
+input,
+button,
+select,
+textarea {
+ font-family: inherit;
+ font-size: inherit;
+ line-height: inherit;
+}
+a {
+ color: #428bca;
+ text-decoration: none;
+}
+a:hover,
+a:focus {
+ color: #2a6496;
+ text-decoration: underline;
+}
+a:focus {
+ outline: thin dotted;
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
+}
+figure {
+ margin: 0;
+}
+img {
+ vertical-align: middle;
+}
+.img-responsive {
+ display: block;
+ max-width: 100%;
+ height: auto;
+}
+.img-rounded {
+ border-radius: 6px;
+}
+.img-thumbnail {
+ padding: 4px;
+ line-height: 1.428571429;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-radius: 4px;
+ -webkit-transition: all 0.2s ease-in-out;
+ transition: all 0.2s ease-in-out;
+ display: inline-block;
+ max-width: 100%;
+ height: auto;
+}
+.img-circle {
+ border-radius: 50%;
+}
+hr {
+ margin-top: 20px;
+ margin-bottom: 20px;
+ border: 0;
+ border-top: 1px solid #eee;
+}
+.sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ margin: -1px;
+ padding: 0;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ border: 0;
+}
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+.h1,
+.h2,
+.h3,
+.h4,
+.h5,
+.h6 {
+ font-family: inherit;
+ font-weight: 500;
+ line-height: 1.1;
+ color: inherit;
+}
+h1 small,
+h2 small,
+h3 small,
+h4 small,
+h5 small,
+h6 small,
+.h1 small,
+.h2 small,
+.h3 small,
+.h4 small,
+.h5 small,
+.h6 small,
+h1 .small,
+h2 .small,
+h3 .small,
+h4 .small,
+h5 .small,
+h6 .small,
+.h1 .small,
+.h2 .small,
+.h3 .small,
+.h4 .small,
+.h5 .small,
+.h6 .small {
+ font-weight: 400;
+ line-height: 1;
+ color: #999;
+}
+h1,
+.h1,
+h2,
+.h2,
+h3,
+.h3 {
+ margin-top: 20px;
+ margin-bottom: 10px;
+}
+h1 small,
+.h1 small,
+h2 small,
+.h2 small,
+h3 small,
+.h3 small,
+h1 .small,
+.h1 .small,
+h2 .small,
+.h2 .small,
+h3 .small,
+.h3 .small {
+ font-size: 65%;
+}
+h4,
+.h4,
+h5,
+.h5,
+h6,
+.h6 {
+ margin-top: 10px;
+ margin-bottom: 10px;
+}
+h4 small,
+.h4 small,
+h5 small,
+.h5 small,
+h6 small,
+.h6 small,
+h4 .small,
+.h4 .small,
+h5 .small,
+.h5 .small,
+h6 .small,
+.h6 .small {
+ font-size: 75%;
+}
+h1,
+.h1 {
+ font-size: 36px;
+}
+h2,
+.h2 {
+ font-size: 30px;
+}
+h3,
+.h3 {
+ font-size: 24px;
+}
+h4,
+.h4 {
+ font-size: 18px;
+}
+h5,
+.h5 {
+ font-size: 14px;
+}
+h6,
+.h6 {
+ font-size: 12px;
+}
+p {
+ margin: 0 0 10px;
+}
+.lead {
+ margin-bottom: 20px;
+ font-size: 16px;
+ font-weight: 200;
+ line-height: 1.4;
+}
+@media (min-width: 768px) {
+ .lead {
+ font-size: 21px;
+ }
+}
+small,
+.small {
+ font-size: 85%;
+}
+cite {
+ font-style: normal;
+}
+.text-left {
+ text-align: left;
+}
+.text-right {
+ text-align: right;
+}
+.text-center {
+ text-align: center;
+}
+.text-justify {
+ text-align: justify;
+}
+.text-muted {
+ color: #999;
+}
+.text-primary {
+ color: #428bca;
+}
+a.text-primary:hover {
+ color: #3071a9;
+}
+.text-success {
+ color: #3c763d;
+}
+a.text-success:hover {
+ color: #2b542c;
+}
+.text-info {
+ color: #31708f;
+}
+a.text-info:hover {
+ color: #245269;
+}
+.text-warning {
+ color: #8a6d3b;
+}
+a.text-warning:hover {
+ color: #66512c;
+}
+.text-danger {
+ color: #a94442;
+}
+a.text-danger:hover {
+ color: #843534;
+}
+.bg-primary {
+ color: #fff;
+ background-color: #428bca;
+}
+a.bg-primary:hover {
+ background-color: #3071a9;
+}
+.bg-success {
+ background-color: #dff0d8;
+}
+a.bg-success:hover {
+ background-color: #c1e2b3;
+}
+.bg-info {
+ background-color: #d9edf7;
+}
+a.bg-info:hover {
+ background-color: #afd9ee;
+}
+.bg-warning {
+ background-color: #fcf8e3;
+}
+a.bg-warning:hover {
+ background-color: #f7ecb5;
+}
+.bg-danger {
+ background-color: #f2dede;
+}
+a.bg-danger:hover {
+ background-color: #e4b9b9;
+}
+.page-header {
+ padding-bottom: 9px;
+ margin: 40px 0 20px;
+ border-bottom: 1px solid #eee;
+}
+ul,
+ol {
+ margin-top: 0;
+ margin-bottom: 10px;
+}
+ul ul,
+ol ul,
+ul ol,
+ol ol {
+ margin-bottom: 0;
+}
+.list-unstyled {
+ padding-left: 0;
+ list-style: none;
+}
+.list-inline {
+ padding-left: 0;
+ list-style: none;
+}
+.list-inline > li {
+ display: inline-block;
+ padding-left: 5px;
+ padding-right: 5px;
+}
+.list-inline > li:first-child {
+ padding-left: 0;
+}
+dl {
+ margin-top: 0;
+ margin-bottom: 20px;
+}
+dt,
+dd {
+ line-height: 1.428571429;
+}
+dt {
+ font-weight: 700;
+}
+dd {
+ margin-left: 0;
+}
+@media (min-width: 768px) {
+ .dl-horizontal dt {
+ float: left;
+ width: 160px;
+ clear: left;
+ text-align: right;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
+ .dl-horizontal dd {
+ margin-left: 180px;
+ }
+}
+abbr[title],
+abbr[data-original-title] {
+ cursor: help;
+ border-bottom: 1px dotted #999;
+}
+.initialism {
+ font-size: 90%;
+ text-transform: uppercase;
+}
+blockquote {
+ padding: 10px 20px;
+ margin: 0 0 20px;
+ font-size: 17.5px;
+ border-left: 5px solid #eee;
+}
+blockquote p:last-child,
+blockquote ul:last-child,
+blockquote ol:last-child {
+ margin-bottom: 0;
+}
+blockquote footer,
+blockquote small,
+blockquote .small {
+ display: block;
+ font-size: 80%;
+ line-height: 1.428571429;
+ color: #999;
+}
+blockquote footer:before,
+blockquote small:before,
+blockquote .small:before {
+ content: "\2014 \00A0";
+}
+.blockquote-reverse,
+blockquote.pull-right {
+ padding-right: 15px;
+ padding-left: 0;
+ border-right: 5px solid #eee;
+ border-left: 0;
+ text-align: right;
+}
+.blockquote-reverse footer:before,
+blockquote.pull-right footer:before,
+.blockquote-reverse small:before,
+blockquote.pull-right small:before,
+.blockquote-reverse .small:before,
+blockquote.pull-right .small:before {
+ content: "";
+}
+.blockquote-reverse footer:after,
+blockquote.pull-right footer:after,
+.blockquote-reverse small:after,
+blockquote.pull-right small:after,
+.blockquote-reverse .small:after,
+blockquote.pull-right .small:after {
+ content: "\00A0 \2014";
+}
+blockquote:before,
+blockquote:after {
+ content: "";
+}
+address {
+ margin-bottom: 20px;
+ font-style: normal;
+ line-height: 1.428571429;
+}
+code,
+kbd,
+pre,
+samp {
+ font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
+}
+code {
+ padding: 2px 4px;
+ font-size: 90%;
+ color: #c7254e;
+ background-color: #f9f2f4;
+ white-space: nowrap;
+ border-radius: 4px;
+}
+kbd {
+ padding: 2px 4px;
+ font-size: 90%;
+ color: #fff;
+ background-color: #333;
+ border-radius: 3px;
+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
+}
+pre {
+ display: block;
+ padding: 9.5px;
+ margin: 0 0 10px;
+ font-size: 13px;
+ line-height: 1.428571429;
+ word-break: break-all;
+ word-wrap: break-word;
+ color: #333;
+ background-color: #f5f5f5;
+ border: 1px solid #ccc;
+ border-radius: 4px;
+}
+pre code {
+ padding: 0;
+ font-size: inherit;
+ color: inherit;
+ white-space: pre-wrap;
+ background-color: transparent;
+ border-radius: 0;
+}
+.pre-scrollable {
+ max-height: 340px;
+ overflow-y: scroll;
+}
+.container {
+ margin-right: auto;
+ margin-left: auto;
+ padding-left: 15px;
+ padding-right: 15px;
+}
+@media (min-width: 768px) {
+ .container {
+ width: 750px;
+ }
+}
+@media (min-width: 992px) {
+ .container {
+ width: 970px;
+ }
+}
+@media (min-width: 1200px) {
+ .container {
+ width: 1170px;
+ }
+}
+.container-fluid {
+ margin-right: auto;
+ margin-left: auto;
+ padding-left: 15px;
+ padding-right: 15px;
+}
+.row {
+ margin-left: -15px;
+ margin-right: -15px;
+}
+.col-xs-1,
+.col-sm-1,
+.col-md-1,
+.col-lg-1,
+.col-xs-2,
+.col-sm-2,
+.col-md-2,
+.col-lg-2,
+.col-xs-3,
+.col-sm-3,
+.col-md-3,
+.col-lg-3,
+.col-xs-4,
+.col-sm-4,
+.col-md-4,
+.col-lg-4,
+.col-xs-5,
+.col-sm-5,
+.col-md-5,
+.col-lg-5,
+.col-xs-6,
+.col-sm-6,
+.col-md-6,
+.col-lg-6,
+.col-xs-7,
+.col-sm-7,
+.col-md-7,
+.col-lg-7,
+.col-xs-8,
+.col-sm-8,
+.col-md-8,
+.col-lg-8,
+.col-xs-9,
+.col-sm-9,
+.col-md-9,
+.col-lg-9,
+.col-xs-10,
+.col-sm-10,
+.col-md-10,
+.col-lg-10,
+.col-xs-11,
+.col-sm-11,
+.col-md-11,
+.col-lg-11,
+.col-xs-12,
+.col-sm-12,
+.col-md-12,
+.col-lg-12 {
+ position: relative;
+ min-height: 1px;
+ padding-left: 15px;
+ padding-right: 15px;
+}
+.col-xs-1,
+.col-xs-2,
+.col-xs-3,
+.col-xs-4,
+.col-xs-5,
+.col-xs-6,
+.col-xs-7,
+.col-xs-8,
+.col-xs-9,
+.col-xs-10,
+.col-xs-11,
+.col-xs-12 {
+ float: left;
+}
+.col-xs-12 {
+ width: 100%;
+}
+.col-xs-11 {
+ width: 91.66666666666666%;
+}
+.col-xs-10 {
+ width: 83.33333333333334%;
+}
+.col-xs-9 {
+ width: 75%;
+}
+.col-xs-8 {
+ width: 66.66666666666666%;
+}
+.col-xs-7 {
+ width: 58.333333333333336%;
+}
+.col-xs-6 {
+ width: 50%;
+}
+.col-xs-5 {
+ width: 41.66666666666667%;
+}
+.col-xs-4 {
+ width: 33.33333333333333%;
+}
+.col-xs-3 {
+ width: 25%;
+}
+.col-xs-2 {
+ width: 16.666666666666664%;
+}
+.col-xs-1 {
+ width: 8.333333333333332%;
+}
+.col-xs-pull-12 {
+ right: 100%;
+}
+.col-xs-pull-11 {
+ right: 91.66666666666666%;
+}
+.col-xs-pull-10 {
+ right: 83.33333333333334%;
+}
+.col-xs-pull-9 {
+ right: 75%;
+}
+.col-xs-pull-8 {
+ right: 66.66666666666666%;
+}
+.col-xs-pull-7 {
+ right: 58.333333333333336%;
+}
+.col-xs-pull-6 {
+ right: 50%;
+}
+.col-xs-pull-5 {
+ right: 41.66666666666667%;
+}
+.col-xs-pull-4 {
+ right: 33.33333333333333%;
+}
+.col-xs-pull-3 {
+ right: 25%;
+}
+.col-xs-pull-2 {
+ right: 16.666666666666664%;
+}
+.col-xs-pull-1 {
+ right: 8.333333333333332%;
+}
+.col-xs-pull-0 {
+ right: 0;
+}
+.col-xs-push-12 {
+ left: 100%;
+}
+.col-xs-push-11 {
+ left: 91.66666666666666%;
+}
+.col-xs-push-10 {
+ left: 83.33333333333334%;
+}
+.col-xs-push-9 {
+ left: 75%;
+}
+.col-xs-push-8 {
+ left: 66.66666666666666%;
+}
+.col-xs-push-7 {
+ left: 58.333333333333336%;
+}
+.col-xs-push-6 {
+ left: 50%;
+}
+.col-xs-push-5 {
+ left: 41.66666666666667%;
+}
+.col-xs-push-4 {
+ left: 33.33333333333333%;
+}
+.col-xs-push-3 {
+ left: 25%;
+}
+.col-xs-push-2 {
+ left: 16.666666666666664%;
+}
+.col-xs-push-1 {
+ left: 8.333333333333332%;
+}
+.col-xs-push-0 {
+ left: 0;
+}
+.col-xs-offset-12 {
+ margin-left: 100%;
+}
+.col-xs-offset-11 {
+ margin-left: 91.66666666666666%;
+}
+.col-xs-offset-10 {
+ margin-left: 83.33333333333334%;
+}
+.col-xs-offset-9 {
+ margin-left: 75%;
+}
+.col-xs-offset-8 {
+ margin-left: 66.66666666666666%;
+}
+.col-xs-offset-7 {
+ margin-left: 58.333333333333336%;
+}
+.col-xs-offset-6 {
+ margin-left: 50%;
+}
+.col-xs-offset-5 {
+ margin-left: 41.66666666666667%;
+}
+.col-xs-offset-4 {
+ margin-left: 33.33333333333333%;
+}
+.col-xs-offset-3 {
+ margin-left: 25%;
+}
+.col-xs-offset-2 {
+ margin-left: 16.666666666666664%;
+}
+.col-xs-offset-1 {
+ margin-left: 8.333333333333332%;
+}
+.col-xs-offset-0 {
+ margin-left: 0;
+}
+@media (min-width: 768px) {
+ .col-sm-1,
+ .col-sm-2,
+ .col-sm-3,
+ .col-sm-4,
+ .col-sm-5,
+ .col-sm-6,
+ .col-sm-7,
+ .col-sm-8,
+ .col-sm-9,
+ .col-sm-10,
+ .col-sm-11,
+ .col-sm-12 {
+ float: left;
+ }
+ .col-sm-12 {
+ width: 100%;
+ }
+ .col-sm-11 {
+ width: 91.66666666666666%;
+ }
+ .col-sm-10 {
+ width: 83.33333333333334%;
+ }
+ .col-sm-9 {
+ width: 75%;
+ }
+ .col-sm-8 {
+ width: 66.66666666666666%;
+ }
+ .col-sm-7 {
+ width: 58.333333333333336%;
+ }
+ .col-sm-6 {
+ width: 50%;
+ }
+ .col-sm-5 {
+ width: 41.66666666666667%;
+ }
+ .col-sm-4 {
+ width: 33.33333333333333%;
+ }
+ .col-sm-3 {
+ width: 25%;
+ }
+ .col-sm-2 {
+ width: 16.666666666666664%;
+ }
+ .col-sm-1 {
+ width: 8.333333333333332%;
+ }
+ .col-sm-pull-12 {
+ right: 100%;
+ }
+ .col-sm-pull-11 {
+ right: 91.66666666666666%;
+ }
+ .col-sm-pull-10 {
+ right: 83.33333333333334%;
+ }
+ .col-sm-pull-9 {
+ right: 75%;
+ }
+ .col-sm-pull-8 {
+ right: 66.66666666666666%;
+ }
+ .col-sm-pull-7 {
+ right: 58.333333333333336%;
+ }
+ .col-sm-pull-6 {
+ right: 50%;
+ }
+ .col-sm-pull-5 {
+ right: 41.66666666666667%;
+ }
+ .col-sm-pull-4 {
+ right: 33.33333333333333%;
+ }
+ .col-sm-pull-3 {
+ right: 25%;
+ }
+ .col-sm-pull-2 {
+ right: 16.666666666666664%;
+ }
+ .col-sm-pull-1 {
+ right: 8.333333333333332%;
+ }
+ .col-sm-pull-0 {
+ right: 0;
+ }
+ .col-sm-push-12 {
+ left: 100%;
+ }
+ .col-sm-push-11 {
+ left: 91.66666666666666%;
+ }
+ .col-sm-push-10 {
+ left: 83.33333333333334%;
+ }
+ .col-sm-push-9 {
+ left: 75%;
+ }
+ .col-sm-push-8 {
+ left: 66.66666666666666%;
+ }
+ .col-sm-push-7 {
+ left: 58.333333333333336%;
+ }
+ .col-sm-push-6 {
+ left: 50%;
+ }
+ .col-sm-push-5 {
+ left: 41.66666666666667%;
+ }
+ .col-sm-push-4 {
+ left: 33.33333333333333%;
+ }
+ .col-sm-push-3 {
+ left: 25%;
+ }
+ .col-sm-push-2 {
+ left: 16.666666666666664%;
+ }
+ .col-sm-push-1 {
+ left: 8.333333333333332%;
+ }
+ .col-sm-push-0 {
+ left: 0;
+ }
+ .col-sm-offset-12 {
+ margin-left: 100%;
+ }
+ .col-sm-offset-11 {
+ margin-left: 91.66666666666666%;
+ }
+ .col-sm-offset-10 {
+ margin-left: 83.33333333333334%;
+ }
+ .col-sm-offset-9 {
+ margin-left: 75%;
+ }
+ .col-sm-offset-8 {
+ margin-left: 66.66666666666666%;
+ }
+ .col-sm-offset-7 {
+ margin-left: 58.333333333333336%;
+ }
+ .col-sm-offset-6 {
+ margin-left: 50%;
+ }
+ .col-sm-offset-5 {
+ margin-left: 41.66666666666667%;
+ }
+ .col-sm-offset-4 {
+ margin-left: 33.33333333333333%;
+ }
+ .col-sm-offset-3 {
+ margin-left: 25%;
+ }
+ .col-sm-offset-2 {
+ margin-left: 16.666666666666664%;
+ }
+ .col-sm-offset-1 {
+ margin-left: 8.333333333333332%;
+ }
+ .col-sm-offset-0 {
+ margin-left: 0;
+ }
+}
+@media (min-width: 992px) {
+ .col-md-1,
+ .col-md-2,
+ .col-md-3,
+ .col-md-4,
+ .col-md-5,
+ .col-md-6,
+ .col-md-7,
+ .col-md-8,
+ .col-md-9,
+ .col-md-10,
+ .col-md-11,
+ .col-md-12 {
+ float: left;
+ }
+ .col-md-12 {
+ width: 100%;
+ }
+ .col-md-11 {
+ width: 91.66666666666666%;
+ }
+ .col-md-10 {
+ width: 83.33333333333334%;
+ }
+ .col-md-9 {
+ width: 75%;
+ }
+ .col-md-8 {
+ width: 66.66666666666666%;
+ }
+ .col-md-7 {
+ width: 58.333333333333336%;
+ }
+ .col-md-6 {
+ width: 50%;
+ }
+ .col-md-5 {
+ width: 41.66666666666667%;
+ }
+ .col-md-4 {
+ width: 33.33333333333333%;
+ }
+ .col-md-3 {
+ width: 25%;
+ }
+ .col-md-2 {
+ width: 16.666666666666664%;
+ }
+ .col-md-1 {
+ width: 8.333333333333332%;
+ }
+ .col-md-pull-12 {
+ right: 100%;
+ }
+ .col-md-pull-11 {
+ right: 91.66666666666666%;
+ }
+ .col-md-pull-10 {
+ right: 83.33333333333334%;
+ }
+ .col-md-pull-9 {
+ right: 75%;
+ }
+ .col-md-pull-8 {
+ right: 66.66666666666666%;
+ }
+ .col-md-pull-7 {
+ right: 58.333333333333336%;
+ }
+ .col-md-pull-6 {
+ right: 50%;
+ }
+ .col-md-pull-5 {
+ right: 41.66666666666667%;
+ }
+ .col-md-pull-4 {
+ right: 33.33333333333333%;
+ }
+ .col-md-pull-3 {
+ right: 25%;
+ }
+ .col-md-pull-2 {
+ right: 16.666666666666664%;
+ }
+ .col-md-pull-1 {
+ right: 8.333333333333332%;
+ }
+ .col-md-pull-0 {
+ right: 0;
+ }
+ .col-md-push-12 {
+ left: 100%;
+ }
+ .col-md-push-11 {
+ left: 91.66666666666666%;
+ }
+ .col-md-push-10 {
+ left: 83.33333333333334%;
+ }
+ .col-md-push-9 {
+ left: 75%;
+ }
+ .col-md-push-8 {
+ left: 66.66666666666666%;
+ }
+ .col-md-push-7 {
+ left: 58.333333333333336%;
+ }
+ .col-md-push-6 {
+ left: 50%;
+ }
+ .col-md-push-5 {
+ left: 41.66666666666667%;
+ }
+ .col-md-push-4 {
+ left: 33.33333333333333%;
+ }
+ .col-md-push-3 {
+ left: 25%;
+ }
+ .col-md-push-2 {
+ left: 16.666666666666664%;
+ }
+ .col-md-push-1 {
+ left: 8.333333333333332%;
+ }
+ .col-md-push-0 {
+ left: 0;
+ }
+ .col-md-offset-12 {
+ margin-left: 100%;
+ }
+ .col-md-offset-11 {
+ margin-left: 91.66666666666666%;
+ }
+ .col-md-offset-10 {
+ margin-left: 83.33333333333334%;
+ }
+ .col-md-offset-9 {
+ margin-left: 75%;
+ }
+ .col-md-offset-8 {
+ margin-left: 66.66666666666666%;
+ }
+ .col-md-offset-7 {
+ margin-left: 58.333333333333336%;
+ }
+ .col-md-offset-6 {
+ margin-left: 50%;
+ }
+ .col-md-offset-5 {
+ margin-left: 41.66666666666667%;
+ }
+ .col-md-offset-4 {
+ margin-left: 33.33333333333333%;
+ }
+ .col-md-offset-3 {
+ margin-left: 25%;
+ }
+ .col-md-offset-2 {
+ margin-left: 16.666666666666664%;
+ }
+ .col-md-offset-1 {
+ margin-left: 8.333333333333332%;
+ }
+ .col-md-offset-0 {
+ margin-left: 0;
+ }
+}
+@media (min-width: 1200px) {
+ .col-lg-1,
+ .col-lg-2,
+ .col-lg-3,
+ .col-lg-4,
+ .col-lg-5,
+ .col-lg-6,
+ .col-lg-7,
+ .col-lg-8,
+ .col-lg-9,
+ .col-lg-10,
+ .col-lg-11,
+ .col-lg-12 {
+ float: left;
+ }
+ .col-lg-12 {
+ width: 100%;
+ }
+ .col-lg-11 {
+ width: 91.66666666666666%;
+ }
+ .col-lg-10 {
+ width: 83.33333333333334%;
+ }
+ .col-lg-9 {
+ width: 75%;
+ }
+ .col-lg-8 {
+ width: 66.66666666666666%;
+ }
+ .col-lg-7 {
+ width: 58.333333333333336%;
+ }
+ .col-lg-6 {
+ width: 50%;
+ }
+ .col-lg-5 {
+ width: 41.66666666666667%;
+ }
+ .col-lg-4 {
+ width: 33.33333333333333%;
+ }
+ .col-lg-3 {
+ width: 25%;
+ }
+ .col-lg-2 {
+ width: 16.666666666666664%;
+ }
+ .col-lg-1 {
+ width: 8.333333333333332%;
+ }
+ .col-lg-pull-12 {
+ right: 100%;
+ }
+ .col-lg-pull-11 {
+ right: 91.66666666666666%;
+ }
+ .col-lg-pull-10 {
+ right: 83.33333333333334%;
+ }
+ .col-lg-pull-9 {
+ right: 75%;
+ }
+ .col-lg-pull-8 {
+ right: 66.66666666666666%;
+ }
+ .col-lg-pull-7 {
+ right: 58.333333333333336%;
+ }
+ .col-lg-pull-6 {
+ right: 50%;
+ }
+ .col-lg-pull-5 {
+ right: 41.66666666666667%;
+ }
+ .col-lg-pull-4 {
+ right: 33.33333333333333%;
+ }
+ .col-lg-pull-3 {
+ right: 25%;
+ }
+ .col-lg-pull-2 {
+ right: 16.666666666666664%;
+ }
+ .col-lg-pull-1 {
+ right: 8.333333333333332%;
+ }
+ .col-lg-pull-0 {
+ right: 0;
+ }
+ .col-lg-push-12 {
+ left: 100%;
+ }
+ .col-lg-push-11 {
+ left: 91.66666666666666%;
+ }
+ .col-lg-push-10 {
+ left: 83.33333333333334%;
+ }
+ .col-lg-push-9 {
+ left: 75%;
+ }
+ .col-lg-push-8 {
+ left: 66.66666666666666%;
+ }
+ .col-lg-push-7 {
+ left: 58.333333333333336%;
+ }
+ .col-lg-push-6 {
+ left: 50%;
+ }
+ .col-lg-push-5 {
+ left: 41.66666666666667%;
+ }
+ .col-lg-push-4 {
+ left: 33.33333333333333%;
+ }
+ .col-lg-push-3 {
+ left: 25%;
+ }
+ .col-lg-push-2 {
+ left: 16.666666666666664%;
+ }
+ .col-lg-push-1 {
+ left: 8.333333333333332%;
+ }
+ .col-lg-push-0 {
+ left: 0;
+ }
+ .col-lg-offset-12 {
+ margin-left: 100%;
+ }
+ .col-lg-offset-11 {
+ margin-left: 91.66666666666666%;
+ }
+ .col-lg-offset-10 {
+ margin-left: 83.33333333333334%;
+ }
+ .col-lg-offset-9 {
+ margin-left: 75%;
+ }
+ .col-lg-offset-8 {
+ margin-left: 66.66666666666666%;
+ }
+ .col-lg-offset-7 {
+ margin-left: 58.333333333333336%;
+ }
+ .col-lg-offset-6 {
+ margin-left: 50%;
+ }
+ .col-lg-offset-5 {
+ margin-left: 41.66666666666667%;
+ }
+ .col-lg-offset-4 {
+ margin-left: 33.33333333333333%;
+ }
+ .col-lg-offset-3 {
+ margin-left: 25%;
+ }
+ .col-lg-offset-2 {
+ margin-left: 16.666666666666664%;
+ }
+ .col-lg-offset-1 {
+ margin-left: 8.333333333333332%;
+ }
+ .col-lg-offset-0 {
+ margin-left: 0;
+ }
+}
+table {
+ max-width: 100%;
+ background-color: transparent;
+}
+th {
+ text-align: left;
+}
+.table {
+ width: 100%;
+ margin-bottom: 20px;
+}
+.table > thead > tr > th,
+.table > tbody > tr > th,
+.table > tfoot > tr > th,
+.table > thead > tr > td,
+.table > tbody > tr > td,
+.table > tfoot > tr > td {
+ padding: 8px;
+ line-height: 1.428571429;
+ vertical-align: top;
+ border-top: 1px solid #ddd;
+}
+.table > thead > tr > th {
+ vertical-align: bottom;
+ border-bottom: 2px solid #ddd;
+}
+.table > caption + thead > tr:first-child > th,
+.table > colgroup + thead > tr:first-child > th,
+.table > thead:first-child > tr:first-child > th,
+.table > caption + thead > tr:first-child > td,
+.table > colgroup + thead > tr:first-child > td,
+.table > thead:first-child > tr:first-child > td {
+ border-top: 0;
+}
+.table > tbody + tbody {
+ border-top: 2px solid #ddd;
+}
+.table .table {
+ background-color: #fff;
+}
+.table-condensed > thead > tr > th,
+.table-condensed > tbody > tr > th,
+.table-condensed > tfoot > tr > th,
+.table-condensed > thead > tr > td,
+.table-condensed > tbody > tr > td,
+.table-condensed > tfoot > tr > td {
+ padding: 5px;
+}
+.table-bordered {
+ border: 1px solid #ddd;
+}
+.table-bordered > thead > tr > th,
+.table-bordered > tbody > tr > th,
+.table-bordered > tfoot > tr > th,
+.table-bordered > thead > tr > td,
+.table-bordered > tbody > tr > td,
+.table-bordered > tfoot > tr > td {
+ border: 1px solid #ddd;
+}
+.table-bordered > thead > tr > th,
+.table-bordered > thead > tr > td {
+ border-bottom-width: 2px;
+}
+.table-striped > tbody > tr:nth-child(odd) > td,
+.table-striped > tbody > tr:nth-child(odd) > th {
+ background-color: #f9f9f9;
+}
+.table-hover > tbody > tr:hover > td,
+.table-hover > tbody > tr:hover > th {
+ background-color: #f5f5f5;
+}
+table col[class*="col-"] {
+ position: static;
+ float: none;
+ display: table-column;
+}
+table td[class*="col-"],
+table th[class*="col-"] {
+ position: static;
+ float: none;
+ display: table-cell;
+}
+.table > thead > tr > td.active,
+.table > tbody > tr > td.active,
+.table > tfoot > tr > td.active,
+.table > thead > tr > th.active,
+.table > tbody > tr > th.active,
+.table > tfoot > tr > th.active,
+.table > thead > tr.active > td,
+.table > tbody > tr.active > td,
+.table > tfoot > tr.active > td,
+.table > thead > tr.active > th,
+.table > tbody > tr.active > th,
+.table > tfoot > tr.active > th {
+ background-color: #f5f5f5;
+}
+.table-hover > tbody > tr > td.active:hover,
+.table-hover > tbody > tr > th.active:hover,
+.table-hover > tbody > tr.active:hover > td,
+.table-hover > tbody > tr.active:hover > th {
+ background-color: #e8e8e8;
+}
+.table > thead > tr > td.success,
+.table > tbody > tr > td.success,
+.table > tfoot > tr > td.success,
+.table > thead > tr > th.success,
+.table > tbody > tr > th.success,
+.table > tfoot > tr > th.success,
+.table > thead > tr.success > td,
+.table > tbody > tr.success > td,
+.table > tfoot > tr.success > td,
+.table > thead > tr.success > th,
+.table > tbody > tr.success > th,
+.table > tfoot > tr.success > th {
+ background-color: #dff0d8;
+}
+.table-hover > tbody > tr > td.success:hover,
+.table-hover > tbody > tr > th.success:hover,
+.table-hover > tbody > tr.success:hover > td,
+.table-hover > tbody > tr.success:hover > th {
+ background-color: #d0e9c6;
+}
+.table > thead > tr > td.info,
+.table > tbody > tr > td.info,
+.table > tfoot > tr > td.info,
+.table > thead > tr > th.info,
+.table > tbody > tr > th.info,
+.table > tfoot > tr > th.info,
+.table > thead > tr.info > td,
+.table > tbody > tr.info > td,
+.table > tfoot > tr.info > td,
+.table > thead > tr.info > th,
+.table > tbody > tr.info > th,
+.table > tfoot > tr.info > th {
+ background-color: #d9edf7;
+}
+.table-hover > tbody > tr > td.info:hover,
+.table-hover > tbody > tr > th.info:hover,
+.table-hover > tbody > tr.info:hover > td,
+.table-hover > tbody > tr.info:hover > th {
+ background-color: #c4e3f3;
+}
+.table > thead > tr > td.warning,
+.table > tbody > tr > td.warning,
+.table > tfoot > tr > td.warning,
+.table > thead > tr > th.warning,
+.table > tbody > tr > th.warning,
+.table > tfoot > tr > th.warning,
+.table > thead > tr.warning > td,
+.table > tbody > tr.warning > td,
+.table > tfoot > tr.warning > td,
+.table > thead > tr.warning > th,
+.table > tbody > tr.warning > th,
+.table > tfoot > tr.warning > th {
+ background-color: #fcf8e3;
+}
+.table-hover > tbody > tr > td.warning:hover,
+.table-hover > tbody > tr > th.warning:hover,
+.table-hover > tbody > tr.warning:hover > td,
+.table-hover > tbody > tr.warning:hover > th {
+ background-color: #faf2cc;
+}
+.table > thead > tr > td.danger,
+.table > tbody > tr > td.danger,
+.table > tfoot > tr > td.danger,
+.table > thead > tr > th.danger,
+.table > tbody > tr > th.danger,
+.table > tfoot > tr > th.danger,
+.table > thead > tr.danger > td,
+.table > tbody > tr.danger > td,
+.table > tfoot > tr.danger > td,
+.table > thead > tr.danger > th,
+.table > tbody > tr.danger > th,
+.table > tfoot > tr.danger > th {
+ background-color: #f2dede;
+}
+.table-hover > tbody > tr > td.danger:hover,
+.table-hover > tbody > tr > th.danger:hover,
+.table-hover > tbody > tr.danger:hover > td,
+.table-hover > tbody > tr.danger:hover > th {
+ background-color: #ebcccc;
+}
+@media (max-width: 767px) {
+ .table-responsive {
+ width: 100%;
+ margin-bottom: 15px;
+ overflow-y: hidden;
+ overflow-x: scroll;
+ -ms-overflow-style: -ms-autohiding-scrollbar;
+ border: 1px solid #ddd;
+ -webkit-overflow-scrolling: touch;
+ }
+ .table-responsive > .table {
+ margin-bottom: 0;
+ }
+ .table-responsive > .table > thead > tr > th,
+ .table-responsive > .table > tbody > tr > th,
+ .table-responsive > .table > tfoot > tr > th,
+ .table-responsive > .table > thead > tr > td,
+ .table-responsive > .table > tbody > tr > td,
+ .table-responsive > .table > tfoot > tr > td {
+ white-space: nowrap;
+ }
+ .table-responsive > .table-bordered {
+ border: 0;
+ }
+ .table-responsive > .table-bordered > thead > tr > th:first-child,
+ .table-responsive > .table-bordered > tbody > tr > th:first-child,
+ .table-responsive > .table-bordered > tfoot > tr > th:first-child,
+ .table-responsive > .table-bordered > thead > tr > td:first-child,
+ .table-responsive > .table-bordered > tbody > tr > td:first-child,
+ .table-responsive > .table-bordered > tfoot > tr > td:first-child {
+ border-left: 0;
+ }
+ .table-responsive > .table-bordered > thead > tr > th:last-child,
+ .table-responsive > .table-bordered > tbody > tr > th:last-child,
+ .table-responsive > .table-bordered > tfoot > tr > th:last-child,
+ .table-responsive > .table-bordered > thead > tr > td:last-child,
+ .table-responsive > .table-bordered > tbody > tr > td:last-child,
+ .table-responsive > .table-bordered > tfoot > tr > td:last-child {
+ border-right: 0;
+ }
+ .table-responsive > .table-bordered > tbody > tr:last-child > th,
+ .table-responsive > .table-bordered > tfoot > tr:last-child > th,
+ .table-responsive > .table-bordered > tbody > tr:last-child > td,
+ .table-responsive > .table-bordered > tfoot > tr:last-child > td {
+ border-bottom: 0;
+ }
+}
+fieldset {
+ padding: 0;
+ margin: 0;
+ border: 0;
+ min-width: 0;
+}
+legend {
+ display: block;
+ width: 100%;
+ padding: 0;
+ margin-bottom: 20px;
+ font-size: 21px;
+ line-height: inherit;
+ color: #333;
+ border: 0;
+ border-bottom: 1px solid #e5e5e5;
+}
+label {
+ display: inline-block;
+ margin-bottom: 5px;
+ font-weight: 700;
+}
+input[type="search"] {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+input[type="radio"],
+input[type="checkbox"] {
+ margin: 4px 0 0;
+ margin-top: 1px \9;
+ line-height: normal;
+}
+input[type="file"] {
+ display: block;
+}
+input[type="range"] {
+ display: block;
+ width: 100%;
+}
+select[multiple],
+select[size] {
+ height: auto;
+}
+input[type="file"]:focus,
+input[type="radio"]:focus,
+input[type="checkbox"]:focus {
+ outline: thin dotted;
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
+}
+output {
+ display: block;
+ padding-top: 7px;
+ font-size: 14px;
+ line-height: 1.428571429;
+ color: #555;
+}
+.form-control {
+ display: block;
+ width: 100%;
+ height: 34px;
+ padding: 6px 12px;
+ font-size: 14px;
+ line-height: 1.428571429;
+ color: #555;
+ background-color: #fff;
+ background-image: none;
+ border: 1px solid #ccc;
+ border-radius: 4px;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ -webkit-transition:
+ border-color ease-in-out 0.15s,
+ box-shadow ease-in-out 0.15s;
+ transition:
+ border-color ease-in-out 0.15s,
+ box-shadow ease-in-out 0.15s;
+}
+.form-control:focus {
+ border-color: #66afe9;
+ outline: 0;
+ -webkit-box-shadow:
+ inset 0 1px 1px rgba(0, 0, 0, 0.075),
+ 0 0 8px rgba(102, 175, 233, 0.6);
+ box-shadow:
+ inset 0 1px 1px rgba(0, 0, 0, 0.075),
+ 0 0 8px rgba(102, 175, 233, 0.6);
+}
+.form-control:-moz-placeholder {
+ color: #999;
+}
+.form-control::-moz-placeholder {
+ color: #999;
+ opacity: 1;
+}
+.form-control:-ms-input-placeholder {
+ color: #999;
+}
+.form-control::-webkit-input-placeholder {
+ color: #999;
+}
+.form-control[disabled],
+.form-control[readonly],
+fieldset[disabled] .form-control {
+ cursor: not-allowed;
+ background-color: #eee;
+ opacity: 1;
+}
+textarea.form-control {
+ height: auto;
+}
+input[type="date"] {
+ line-height: 34px;
+}
+.form-group {
+ margin-bottom: 15px;
+}
+.radio,
+.checkbox {
+ display: block;
+ min-height: 20px;
+ margin-top: 10px;
+ margin-bottom: 10px;
+ padding-left: 20px;
+}
+.radio label,
+.checkbox label {
+ display: inline;
+ font-weight: 400;
+ cursor: pointer;
+}
+.radio input[type="radio"],
+.radio-inline input[type="radio"],
+.checkbox input[type="checkbox"],
+.checkbox-inline input[type="checkbox"] {
+ float: left;
+ margin-left: -20px;
+}
+.radio + .radio,
+.checkbox + .checkbox {
+ margin-top: -5px;
+}
+.radio-inline,
+.checkbox-inline {
+ display: inline-block;
+ padding-left: 20px;
+ margin-bottom: 0;
+ vertical-align: middle;
+ font-weight: 400;
+ cursor: pointer;
+}
+.radio-inline + .radio-inline,
+.checkbox-inline + .checkbox-inline {
+ margin-top: 0;
+ margin-left: 10px;
+}
+input[type="radio"][disabled],
+input[type="checkbox"][disabled],
+.radio[disabled],
+.radio-inline[disabled],
+.checkbox[disabled],
+.checkbox-inline[disabled],
+fieldset[disabled] input[type="radio"],
+fieldset[disabled] input[type="checkbox"],
+fieldset[disabled] .radio,
+fieldset[disabled] .radio-inline,
+fieldset[disabled] .checkbox,
+fieldset[disabled] .checkbox-inline {
+ cursor: not-allowed;
+}
+.input-sm {
+ height: 30px;
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px;
+}
+select.input-sm {
+ height: 30px;
+ line-height: 30px;
+}
+textarea.input-sm,
+select[multiple].input-sm {
+ height: auto;
+}
+.input-lg {
+ height: 46px;
+ padding: 10px 16px;
+ font-size: 18px;
+ line-height: 1.33;
+ border-radius: 6px;
+}
+select.input-lg {
+ height: 46px;
+ line-height: 46px;
+}
+textarea.input-lg,
+select[multiple].input-lg {
+ height: auto;
+}
+.has-feedback {
+ position: relative;
+}
+.has-feedback .form-control {
+ padding-right: 42.5px;
+}
+.has-feedback .form-control-feedback {
+ position: absolute;
+ top: 25px;
+ right: 0;
+ display: block;
+ width: 34px;
+ height: 34px;
+ line-height: 34px;
+ text-align: center;
+}
+.has-success .help-block,
+.has-success .control-label,
+.has-success .radio,
+.has-success .checkbox,
+.has-success .radio-inline,
+.has-success .checkbox-inline {
+ color: #3c763d;
+}
+.has-success .form-control {
+ border-color: #3c763d;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+.has-success .form-control:focus {
+ border-color: #2b542c;
+ -webkit-box-shadow:
+ inset 0 1px 1px rgba(0, 0, 0, 0.075),
+ 0 0 6px #67b168;
+ box-shadow:
+ inset 0 1px 1px rgba(0, 0, 0, 0.075),
+ 0 0 6px #67b168;
+}
+.has-success .input-group-addon {
+ color: #3c763d;
+ border-color: #3c763d;
+ background-color: #dff0d8;
+}
+.has-success .form-control-feedback {
+ color: #3c763d;
+}
+.has-warning .help-block,
+.has-warning .control-label,
+.has-warning .radio,
+.has-warning .checkbox,
+.has-warning .radio-inline,
+.has-warning .checkbox-inline {
+ color: #8a6d3b;
+}
+.has-warning .form-control {
+ border-color: #8a6d3b;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+.has-warning .form-control:focus {
+ border-color: #66512c;
+ -webkit-box-shadow:
+ inset 0 1px 1px rgba(0, 0, 0, 0.075),
+ 0 0 6px #c0a16b;
+ box-shadow:
+ inset 0 1px 1px rgba(0, 0, 0, 0.075),
+ 0 0 6px #c0a16b;
+}
+.has-warning .input-group-addon {
+ color: #8a6d3b;
+ border-color: #8a6d3b;
+ background-color: #fcf8e3;
+}
+.has-warning .form-control-feedback {
+ color: #8a6d3b;
+}
+.has-error .help-block,
+.has-error .control-label,
+.has-error .radio,
+.has-error .checkbox,
+.has-error .radio-inline,
+.has-error .checkbox-inline {
+ color: #a94442;
+}
+.has-error .form-control {
+ border-color: #a94442;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+.has-error .form-control:focus {
+ border-color: #843534;
+ -webkit-box-shadow:
+ inset 0 1px 1px rgba(0, 0, 0, 0.075),
+ 0 0 6px #ce8483;
+ box-shadow:
+ inset 0 1px 1px rgba(0, 0, 0, 0.075),
+ 0 0 6px #ce8483;
+}
+.has-error .input-group-addon {
+ color: #a94442;
+ border-color: #a94442;
+ background-color: #f2dede;
+}
+.has-error .form-control-feedback {
+ color: #a94442;
+}
+.form-control-static {
+ margin-bottom: 0;
+}
+.help-block {
+ display: block;
+ margin-top: 5px;
+ margin-bottom: 10px;
+ color: #737373;
+}
+@media (min-width: 768px) {
+ .form-inline .form-group {
+ display: inline-block;
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+ .form-inline .form-control {
+ display: inline-block;
+ width: auto;
+ vertical-align: middle;
+ }
+ .form-inline .control-label {
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+ .form-inline .radio,
+ .form-inline .checkbox {
+ display: inline-block;
+ margin-top: 0;
+ margin-bottom: 0;
+ padding-left: 0;
+ vertical-align: middle;
+ }
+ .form-inline .radio input[type="radio"],
+ .form-inline .checkbox input[type="checkbox"] {
+ float: none;
+ margin-left: 0;
+ }
+ .form-inline .has-feedback .form-control-feedback {
+ top: 0;
+ }
+}
+.form-horizontal .control-label,
+.form-horizontal .radio,
+.form-horizontal .checkbox,
+.form-horizontal .radio-inline,
+.form-horizontal .checkbox-inline {
+ margin-top: 0;
+ margin-bottom: 0;
+ padding-top: 7px;
+}
+.form-horizontal .radio,
+.form-horizontal .checkbox {
+ min-height: 27px;
+}
+.form-horizontal .form-group {
+ margin-left: -15px;
+ margin-right: -15px;
+}
+.form-horizontal .form-control-static {
+ padding-top: 7px;
+}
+@media (min-width: 768px) {
+ .form-horizontal .control-label {
+ text-align: right;
+ }
+}
+.form-horizontal .has-feedback .form-control-feedback {
+ top: 0;
+ right: 15px;
+}
+.btn {
+ display: inline-block;
+ margin-bottom: 0;
+ font-weight: 400;
+ text-align: center;
+ vertical-align: middle;
+ cursor: pointer;
+ background-image: none;
+ border: 1px solid transparent;
+ white-space: nowrap;
+ padding: 6px 12px;
+ font-size: 14px;
+ line-height: 1.428571429;
+ border-radius: 4px;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ -o-user-select: none;
+ user-select: none;
+}
+.btn:focus {
+ outline: thin dotted;
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
+}
+.btn:hover,
+.btn:focus {
+ color: #333;
+ text-decoration: none;
+}
+.btn:active,
+.btn.active {
+ outline: 0;
+ background-image: none;
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+}
+.btn.disabled,
+.btn[disabled],
+fieldset[disabled] .btn {
+ cursor: not-allowed;
+ pointer-events: none;
+ opacity: 0.65;
+ filter: alpha(opacity=65);
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+.btn-default {
+ color: #333;
+ background-color: #fff;
+ border-color: #ccc;
+}
+.btn-default:hover,
+.btn-default:focus,
+.btn-default:active,
+.btn-default.active,
+.open .dropdown-toggle.btn-default {
+ color: #333;
+ background-color: #ebebeb;
+ border-color: #adadad;
+}
+.btn-default:active,
+.btn-default.active,
+.open .dropdown-toggle.btn-default {
+ background-image: none;
+}
+.btn-default.disabled,
+.btn-default[disabled],
+fieldset[disabled] .btn-default,
+.btn-default.disabled:hover,
+.btn-default[disabled]:hover,
+fieldset[disabled] .btn-default:hover,
+.btn-default.disabled:focus,
+.btn-default[disabled]:focus,
+fieldset[disabled] .btn-default:focus,
+.btn-default.disabled:active,
+.btn-default[disabled]:active,
+fieldset[disabled] .btn-default:active,
+.btn-default.disabled.active,
+.btn-default[disabled].active,
+fieldset[disabled] .btn-default.active {
+ background-color: #fff;
+ border-color: #ccc;
+}
+.btn-default .badge {
+ color: #fff;
+ background-color: #333;
+}
+.btn-primary {
+ color: #fff;
+ background-color: #428bca;
+ border-color: #357ebd;
+}
+.btn-primary:hover,
+.btn-primary:focus,
+.btn-primary:active,
+.btn-primary.active,
+.open .dropdown-toggle.btn-primary {
+ color: #fff;
+ background-color: #3276b1;
+ border-color: #285e8e;
+}
+.btn-primary:active,
+.btn-primary.active,
+.open .dropdown-toggle.btn-primary {
+ background-image: none;
+}
+.btn-primary.disabled,
+.btn-primary[disabled],
+fieldset[disabled] .btn-primary,
+.btn-primary.disabled:hover,
+.btn-primary[disabled]:hover,
+fieldset[disabled] .btn-primary:hover,
+.btn-primary.disabled:focus,
+.btn-primary[disabled]:focus,
+fieldset[disabled] .btn-primary:focus,
+.btn-primary.disabled:active,
+.btn-primary[disabled]:active,
+fieldset[disabled] .btn-primary:active,
+.btn-primary.disabled.active,
+.btn-primary[disabled].active,
+fieldset[disabled] .btn-primary.active {
+ background-color: #428bca;
+ border-color: #357ebd;
+}
+.btn-primary .badge {
+ color: #428bca;
+ background-color: #fff;
+}
+.btn-success {
+ color: #fff;
+ background-color: #5cb85c;
+ border-color: #4cae4c;
+}
+.btn-success:hover,
+.btn-success:focus,
+.btn-success:active,
+.btn-success.active,
+.open .dropdown-toggle.btn-success {
+ color: #fff;
+ background-color: #47a447;
+ border-color: #398439;
+}
+.btn-success:active,
+.btn-success.active,
+.open .dropdown-toggle.btn-success {
+ background-image: none;
+}
+.btn-success.disabled,
+.btn-success[disabled],
+fieldset[disabled] .btn-success,
+.btn-success.disabled:hover,
+.btn-success[disabled]:hover,
+fieldset[disabled] .btn-success:hover,
+.btn-success.disabled:focus,
+.btn-success[disabled]:focus,
+fieldset[disabled] .btn-success:focus,
+.btn-success.disabled:active,
+.btn-success[disabled]:active,
+fieldset[disabled] .btn-success:active,
+.btn-success.disabled.active,
+.btn-success[disabled].active,
+fieldset[disabled] .btn-success.active {
+ background-color: #5cb85c;
+ border-color: #4cae4c;
+}
+.btn-success .badge {
+ color: #5cb85c;
+ background-color: #fff;
+}
+.btn-info {
+ color: #fff;
+ background-color: #5bc0de;
+ border-color: #46b8da;
+}
+.btn-info:hover,
+.btn-info:focus,
+.btn-info:active,
+.btn-info.active,
+.open .dropdown-toggle.btn-info {
+ color: #fff;
+ background-color: #39b3d7;
+ border-color: #269abc;
+}
+.btn-info:active,
+.btn-info.active,
+.open .dropdown-toggle.btn-info {
+ background-image: none;
+}
+.btn-info.disabled,
+.btn-info[disabled],
+fieldset[disabled] .btn-info,
+.btn-info.disabled:hover,
+.btn-info[disabled]:hover,
+fieldset[disabled] .btn-info:hover,
+.btn-info.disabled:focus,
+.btn-info[disabled]:focus,
+fieldset[disabled] .btn-info:focus,
+.btn-info.disabled:active,
+.btn-info[disabled]:active,
+fieldset[disabled] .btn-info:active,
+.btn-info.disabled.active,
+.btn-info[disabled].active,
+fieldset[disabled] .btn-info.active {
+ background-color: #5bc0de;
+ border-color: #46b8da;
+}
+.btn-info .badge {
+ color: #5bc0de;
+ background-color: #fff;
+}
+.btn-warning {
+ color: #fff;
+ background-color: #f0ad4e;
+ border-color: #eea236;
+}
+.btn-warning:hover,
+.btn-warning:focus,
+.btn-warning:active,
+.btn-warning.active,
+.open .dropdown-toggle.btn-warning {
+ color: #fff;
+ background-color: #ed9c28;
+ border-color: #d58512;
+}
+.btn-warning:active,
+.btn-warning.active,
+.open .dropdown-toggle.btn-warning {
+ background-image: none;
+}
+.btn-warning.disabled,
+.btn-warning[disabled],
+fieldset[disabled] .btn-warning,
+.btn-warning.disabled:hover,
+.btn-warning[disabled]:hover,
+fieldset[disabled] .btn-warning:hover,
+.btn-warning.disabled:focus,
+.btn-warning[disabled]:focus,
+fieldset[disabled] .btn-warning:focus,
+.btn-warning.disabled:active,
+.btn-warning[disabled]:active,
+fieldset[disabled] .btn-warning:active,
+.btn-warning.disabled.active,
+.btn-warning[disabled].active,
+fieldset[disabled] .btn-warning.active {
+ background-color: #f0ad4e;
+ border-color: #eea236;
+}
+.btn-warning .badge {
+ color: #f0ad4e;
+ background-color: #fff;
+}
+.btn-danger {
+ color: #fff;
+ background-color: #d9534f;
+ border-color: #d43f3a;
+}
+.btn-danger:hover,
+.btn-danger:focus,
+.btn-danger:active,
+.btn-danger.active,
+.open .dropdown-toggle.btn-danger {
+ color: #fff;
+ background-color: #d2322d;
+ border-color: #ac2925;
+}
+.btn-danger:active,
+.btn-danger.active,
+.open .dropdown-toggle.btn-danger {
+ background-image: none;
+}
+.btn-danger.disabled,
+.btn-danger[disabled],
+fieldset[disabled] .btn-danger,
+.btn-danger.disabled:hover,
+.btn-danger[disabled]:hover,
+fieldset[disabled] .btn-danger:hover,
+.btn-danger.disabled:focus,
+.btn-danger[disabled]:focus,
+fieldset[disabled] .btn-danger:focus,
+.btn-danger.disabled:active,
+.btn-danger[disabled]:active,
+fieldset[disabled] .btn-danger:active,
+.btn-danger.disabled.active,
+.btn-danger[disabled].active,
+fieldset[disabled] .btn-danger.active {
+ background-color: #d9534f;
+ border-color: #d43f3a;
+}
+.btn-danger .badge {
+ color: #d9534f;
+ background-color: #fff;
+}
+.btn-link {
+ color: #428bca;
+ font-weight: 400;
+ cursor: pointer;
+ border-radius: 0;
+}
+.btn-link,
+.btn-link:active,
+.btn-link[disabled],
+fieldset[disabled] .btn-link {
+ background-color: transparent;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+.btn-link,
+.btn-link:hover,
+.btn-link:focus,
+.btn-link:active {
+ border-color: transparent;
+}
+.btn-link:hover,
+.btn-link:focus {
+ color: #2a6496;
+ text-decoration: underline;
+ background-color: transparent;
+}
+.btn-link[disabled]:hover,
+fieldset[disabled] .btn-link:hover,
+.btn-link[disabled]:focus,
+fieldset[disabled] .btn-link:focus {
+ color: #999;
+ text-decoration: none;
+}
+.btn-lg {
+ padding: 10px 16px;
+ font-size: 18px;
+ line-height: 1.33;
+ border-radius: 6px;
+}
+.btn-sm {
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px;
+}
+.btn-xs {
+ padding: 1px 5px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px;
+}
+.btn-block {
+ display: block;
+ width: 100%;
+ padding-left: 0;
+ padding-right: 0;
+}
+.btn-block + .btn-block {
+ margin-top: 5px;
+}
+input[type="submit"].btn-block,
+input[type="reset"].btn-block,
+input[type="button"].btn-block {
+ width: 100%;
+}
+.fade {
+ opacity: 0;
+ -webkit-transition: opacity 0.15s linear;
+ transition: opacity 0.15s linear;
+}
+.fade.in {
+ opacity: 1;
+}
+.collapse {
+ display: none;
+}
+.collapse.in {
+ display: block;
+}
+.collapsing {
+ position: relative;
+ height: 0;
+ overflow: hidden;
+ -webkit-transition: height 0.35s ease;
+ transition: height 0.35s ease;
+}
+@font-face {
+ font-family: "Glyphicons Halflings";
+ src: url(../fonts/glyphicons-halflings-regular.eot);
+ src:
+ url(../fonts/glyphicons-halflings-regular.eot?#iefix)
+ format("embedded-opentype"),
+ url(../fonts/glyphicons-halflings-regular.woff) format("woff"),
+ url(../fonts/glyphicons-halflings-regular.ttf) format("truetype"),
+ url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular)
+ format("svg");
+}
+.glyphicon {
+ position: relative;
+ top: 1px;
+ display: inline-block;
+ font-family: "Glyphicons Halflings";
+ font-style: normal;
+ font-weight: 400;
+ line-height: 1;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+.glyphicon-asterisk:before {
+ content: "\2a";
+}
+.glyphicon-plus:before {
+ content: "\2b";
+}
+.glyphicon-euro:before {
+ content: "\20ac";
+}
+.glyphicon-minus:before {
+ content: "\2212";
+}
+.glyphicon-cloud:before {
+ content: "\2601";
+}
+.glyphicon-envelope:before {
+ content: "\2709";
+}
+.glyphicon-pencil:before {
+ content: "\270f";
+}
+.glyphicon-glass:before {
+ content: "\e001";
+}
+.glyphicon-music:before {
+ content: "\e002";
+}
+.glyphicon-search:before {
+ content: "\e003";
+}
+.glyphicon-heart:before {
+ content: "\e005";
+}
+.glyphicon-star:before {
+ content: "\e006";
+}
+.glyphicon-star-empty:before {
+ content: "\e007";
+}
+.glyphicon-user:before {
+ content: "\e008";
+}
+.glyphicon-film:before {
+ content: "\e009";
+}
+.glyphicon-th-large:before {
+ content: "\e010";
+}
+.glyphicon-th:before {
+ content: "\e011";
+}
+.glyphicon-th-list:before {
+ content: "\e012";
+}
+.glyphicon-ok:before {
+ content: "\e013";
+}
+.glyphicon-remove:before {
+ content: "\e014";
+}
+.glyphicon-zoom-in:before {
+ content: "\e015";
+}
+.glyphicon-zoom-out:before {
+ content: "\e016";
+}
+.glyphicon-off:before {
+ content: "\e017";
+}
+.glyphicon-signal:before {
+ content: "\e018";
+}
+.glyphicon-cog:before {
+ content: "\e019";
+}
+.glyphicon-trash:before {
+ content: "\e020";
+}
+.glyphicon-home:before {
+ content: "\e021";
+}
+.glyphicon-file:before {
+ content: "\e022";
+}
+.glyphicon-time:before {
+ content: "\e023";
+}
+.glyphicon-road:before {
+ content: "\e024";
+}
+.glyphicon-download-alt:before {
+ content: "\e025";
+}
+.glyphicon-download:before {
+ content: "\e026";
+}
+.glyphicon-upload:before {
+ content: "\e027";
+}
+.glyphicon-inbox:before {
+ content: "\e028";
+}
+.glyphicon-play-circle:before {
+ content: "\e029";
+}
+.glyphicon-repeat:before {
+ content: "\e030";
+}
+.glyphicon-refresh:before {
+ content: "\e031";
+}
+.glyphicon-list-alt:before {
+ content: "\e032";
+}
+.glyphicon-lock:before {
+ content: "\e033";
+}
+.glyphicon-flag:before {
+ content: "\e034";
+}
+.glyphicon-headphones:before {
+ content: "\e035";
+}
+.glyphicon-volume-off:before {
+ content: "\e036";
+}
+.glyphicon-volume-down:before {
+ content: "\e037";
+}
+.glyphicon-volume-up:before {
+ content: "\e038";
+}
+.glyphicon-qrcode:before {
+ content: "\e039";
+}
+.glyphicon-barcode:before {
+ content: "\e040";
+}
+.glyphicon-tag:before {
+ content: "\e041";
+}
+.glyphicon-tags:before {
+ content: "\e042";
+}
+.glyphicon-book:before {
+ content: "\e043";
+}
+.glyphicon-bookmark:before {
+ content: "\e044";
+}
+.glyphicon-print:before {
+ content: "\e045";
+}
+.glyphicon-camera:before {
+ content: "\e046";
+}
+.glyphicon-font:before {
+ content: "\e047";
+}
+.glyphicon-bold:before {
+ content: "\e048";
+}
+.glyphicon-italic:before {
+ content: "\e049";
+}
+.glyphicon-text-height:before {
+ content: "\e050";
+}
+.glyphicon-text-width:before {
+ content: "\e051";
+}
+.glyphicon-align-left:before {
+ content: "\e052";
+}
+.glyphicon-align-center:before {
+ content: "\e053";
+}
+.glyphicon-align-right:before {
+ content: "\e054";
+}
+.glyphicon-align-justify:before {
+ content: "\e055";
+}
+.glyphicon-list:before {
+ content: "\e056";
+}
+.glyphicon-indent-left:before {
+ content: "\e057";
+}
+.glyphicon-indent-right:before {
+ content: "\e058";
+}
+.glyphicon-facetime-video:before {
+ content: "\e059";
+}
+.glyphicon-picture:before {
+ content: "\e060";
+}
+.glyphicon-map-marker:before {
+ content: "\e062";
+}
+.glyphicon-adjust:before {
+ content: "\e063";
+}
+.glyphicon-tint:before {
+ content: "\e064";
+}
+.glyphicon-edit:before {
+ content: "\e065";
+}
+.glyphicon-share:before {
+ content: "\e066";
+}
+.glyphicon-check:before {
+ content: "\e067";
+}
+.glyphicon-move:before {
+ content: "\e068";
+}
+.glyphicon-step-backward:before {
+ content: "\e069";
+}
+.glyphicon-fast-backward:before {
+ content: "\e070";
+}
+.glyphicon-backward:before {
+ content: "\e071";
+}
+.glyphicon-play:before {
+ content: "\e072";
+}
+.glyphicon-pause:before {
+ content: "\e073";
+}
+.glyphicon-stop:before {
+ content: "\e074";
+}
+.glyphicon-forward:before {
+ content: "\e075";
+}
+.glyphicon-fast-forward:before {
+ content: "\e076";
+}
+.glyphicon-step-forward:before {
+ content: "\e077";
+}
+.glyphicon-eject:before {
+ content: "\e078";
+}
+.glyphicon-chevron-left:before {
+ content: "\e079";
+}
+.glyphicon-chevron-right:before {
+ content: "\e080";
+}
+.glyphicon-plus-sign:before {
+ content: "\e081";
+}
+.glyphicon-minus-sign:before {
+ content: "\e082";
+}
+.glyphicon-remove-sign:before {
+ content: "\e083";
+}
+.glyphicon-ok-sign:before {
+ content: "\e084";
+}
+.glyphicon-question-sign:before {
+ content: "\e085";
+}
+.glyphicon-info-sign:before {
+ content: "\e086";
+}
+.glyphicon-screenshot:before {
+ content: "\e087";
+}
+.glyphicon-remove-circle:before {
+ content: "\e088";
+}
+.glyphicon-ok-circle:before {
+ content: "\e089";
+}
+.glyphicon-ban-circle:before {
+ content: "\e090";
+}
+.glyphicon-arrow-left:before {
+ content: "\e091";
+}
+.glyphicon-arrow-right:before {
+ content: "\e092";
+}
+.glyphicon-arrow-up:before {
+ content: "\e093";
+}
+.glyphicon-arrow-down:before {
+ content: "\e094";
+}
+.glyphicon-share-alt:before {
+ content: "\e095";
+}
+.glyphicon-resize-full:before {
+ content: "\e096";
+}
+.glyphicon-resize-small:before {
+ content: "\e097";
+}
+.glyphicon-exclamation-sign:before {
+ content: "\e101";
+}
+.glyphicon-gift:before {
+ content: "\e102";
+}
+.glyphicon-leaf:before {
+ content: "\e103";
+}
+.glyphicon-fire:before {
+ content: "\e104";
+}
+.glyphicon-eye-open:before {
+ content: "\e105";
+}
+.glyphicon-eye-close:before {
+ content: "\e106";
+}
+.glyphicon-warning-sign:before {
+ content: "\e107";
+}
+.glyphicon-plane:before {
+ content: "\e108";
+}
+.glyphicon-calendar:before {
+ content: "\e109";
+}
+.glyphicon-random:before {
+ content: "\e110";
+}
+.glyphicon-comment:before {
+ content: "\e111";
+}
+.glyphicon-magnet:before {
+ content: "\e112";
+}
+.glyphicon-chevron-up:before {
+ content: "\e113";
+}
+.glyphicon-chevron-down:before {
+ content: "\e114";
+}
+.glyphicon-retweet:before {
+ content: "\e115";
+}
+.glyphicon-shopping-cart:before {
+ content: "\e116";
+}
+.glyphicon-folder-close:before {
+ content: "\e117";
+}
+.glyphicon-folder-open:before {
+ content: "\e118";
+}
+.glyphicon-resize-vertical:before {
+ content: "\e119";
+}
+.glyphicon-resize-horizontal:before {
+ content: "\e120";
+}
+.glyphicon-hdd:before {
+ content: "\e121";
+}
+.glyphicon-bullhorn:before {
+ content: "\e122";
+}
+.glyphicon-bell:before {
+ content: "\e123";
+}
+.glyphicon-certificate:before {
+ content: "\e124";
+}
+.glyphicon-thumbs-up:before {
+ content: "\e125";
+}
+.glyphicon-thumbs-down:before {
+ content: "\e126";
+}
+.glyphicon-hand-right:before {
+ content: "\e127";
+}
+.glyphicon-hand-left:before {
+ content: "\e128";
+}
+.glyphicon-hand-up:before {
+ content: "\e129";
+}
+.glyphicon-hand-down:before {
+ content: "\e130";
+}
+.glyphicon-circle-arrow-right:before {
+ content: "\e131";
+}
+.glyphicon-circle-arrow-left:before {
+ content: "\e132";
+}
+.glyphicon-circle-arrow-up:before {
+ content: "\e133";
+}
+.glyphicon-circle-arrow-down:before {
+ content: "\e134";
+}
+.glyphicon-globe:before {
+ content: "\e135";
+}
+.glyphicon-wrench:before {
+ content: "\e136";
+}
+.glyphicon-tasks:before {
+ content: "\e137";
+}
+.glyphicon-filter:before {
+ content: "\e138";
+}
+.glyphicon-briefcase:before {
+ content: "\e139";
+}
+.glyphicon-fullscreen:before {
+ content: "\e140";
+}
+.glyphicon-dashboard:before {
+ content: "\e141";
+}
+.glyphicon-paperclip:before {
+ content: "\e142";
+}
+.glyphicon-heart-empty:before {
+ content: "\e143";
+}
+.glyphicon-link:before {
+ content: "\e144";
+}
+.glyphicon-phone:before {
+ content: "\e145";
+}
+.glyphicon-pushpin:before {
+ content: "\e146";
+}
+.glyphicon-usd:before {
+ content: "\e148";
+}
+.glyphicon-gbp:before {
+ content: "\e149";
+}
+.glyphicon-sort:before {
+ content: "\e150";
+}
+.glyphicon-sort-by-alphabet:before {
+ content: "\e151";
+}
+.glyphicon-sort-by-alphabet-alt:before {
+ content: "\e152";
+}
+.glyphicon-sort-by-order:before {
+ content: "\e153";
+}
+.glyphicon-sort-by-order-alt:before {
+ content: "\e154";
+}
+.glyphicon-sort-by-attributes:before {
+ content: "\e155";
+}
+.glyphicon-sort-by-attributes-alt:before {
+ content: "\e156";
+}
+.glyphicon-unchecked:before {
+ content: "\e157";
+}
+.glyphicon-expand:before {
+ content: "\e158";
+}
+.glyphicon-collapse-down:before {
+ content: "\e159";
+}
+.glyphicon-collapse-up:before {
+ content: "\e160";
+}
+.glyphicon-log-in:before {
+ content: "\e161";
+}
+.glyphicon-flash:before {
+ content: "\e162";
+}
+.glyphicon-log-out:before {
+ content: "\e163";
+}
+.glyphicon-new-window:before {
+ content: "\e164";
+}
+.glyphicon-record:before {
+ content: "\e165";
+}
+.glyphicon-save:before {
+ content: "\e166";
+}
+.glyphicon-open:before {
+ content: "\e167";
+}
+.glyphicon-saved:before {
+ content: "\e168";
+}
+.glyphicon-import:before {
+ content: "\e169";
+}
+.glyphicon-export:before {
+ content: "\e170";
+}
+.glyphicon-send:before {
+ content: "\e171";
+}
+.glyphicon-floppy-disk:before {
+ content: "\e172";
+}
+.glyphicon-floppy-saved:before {
+ content: "\e173";
+}
+.glyphicon-floppy-remove:before {
+ content: "\e174";
+}
+.glyphicon-floppy-save:before {
+ content: "\e175";
+}
+.glyphicon-floppy-open:before {
+ content: "\e176";
+}
+.glyphicon-credit-card:before {
+ content: "\e177";
+}
+.glyphicon-transfer:before {
+ content: "\e178";
+}
+.glyphicon-cutlery:before {
+ content: "\e179";
+}
+.glyphicon-header:before {
+ content: "\e180";
+}
+.glyphicon-compressed:before {
+ content: "\e181";
+}
+.glyphicon-earphone:before {
+ content: "\e182";
+}
+.glyphicon-phone-alt:before {
+ content: "\e183";
+}
+.glyphicon-tower:before {
+ content: "\e184";
+}
+.glyphicon-stats:before {
+ content: "\e185";
+}
+.glyphicon-sd-video:before {
+ content: "\e186";
+}
+.glyphicon-hd-video:before {
+ content: "\e187";
+}
+.glyphicon-subtitles:before {
+ content: "\e188";
+}
+.glyphicon-sound-stereo:before {
+ content: "\e189";
+}
+.glyphicon-sound-dolby:before {
+ content: "\e190";
+}
+.glyphicon-sound-5-1:before {
+ content: "\e191";
+}
+.glyphicon-sound-6-1:before {
+ content: "\e192";
+}
+.glyphicon-sound-7-1:before {
+ content: "\e193";
+}
+.glyphicon-copyright-mark:before {
+ content: "\e194";
+}
+.glyphicon-registration-mark:before {
+ content: "\e195";
+}
+.glyphicon-cloud-download:before {
+ content: "\e197";
+}
+.glyphicon-cloud-upload:before {
+ content: "\e198";
+}
+.glyphicon-tree-conifer:before {
+ content: "\e199";
+}
+.glyphicon-tree-deciduous:before {
+ content: "\e200";
+}
+.caret {
+ display: inline-block;
+ width: 0;
+ height: 0;
+ margin-left: 2px;
+ vertical-align: middle;
+ border-top: 4px solid;
+ border-right: 4px solid transparent;
+ border-left: 4px solid transparent;
+}
+.dropdown {
+ position: relative;
+}
+.dropdown-toggle:focus {
+ outline: 0;
+}
+.dropdown-menu {
+ position: absolute;
+ top: 100%;
+ left: 0;
+ z-index: 1000;
+ display: none;
+ float: left;
+ min-width: 160px;
+ padding: 5px 0;
+ margin: 2px 0 0;
+ list-style: none;
+ font-size: 14px;
+ background-color: #fff;
+ border: 1px solid #ccc;
+ border: 1px solid rgba(0, 0, 0, 0.15);
+ border-radius: 4px;
+ -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
+ box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
+ background-clip: padding-box;
+}
+.dropdown-menu.pull-right {
+ right: 0;
+ left: auto;
+}
+.dropdown-menu .divider {
+ height: 1px;
+ margin: 9px 0;
+ overflow: hidden;
+ background-color: #e5e5e5;
+}
+.dropdown-menu > li > a {
+ display: block;
+ padding: 3px 20px;
+ clear: both;
+ font-weight: 400;
+ line-height: 1.428571429;
+ color: #333;
+ white-space: nowrap;
+}
+.dropdown-menu > li > a:hover,
+.dropdown-menu > li > a:focus {
+ text-decoration: none;
+ color: #262626;
+ background-color: #f5f5f5;
+}
+.dropdown-menu > .active > a,
+.dropdown-menu > .active > a:hover,
+.dropdown-menu > .active > a:focus {
+ color: #fff;
+ text-decoration: none;
+ outline: 0;
+ background-color: #428bca;
+}
+.dropdown-menu > .disabled > a,
+.dropdown-menu > .disabled > a:hover,
+.dropdown-menu > .disabled > a:focus {
+ color: #999;
+}
+.dropdown-menu > .disabled > a:hover,
+.dropdown-menu > .disabled > a:focus {
+ text-decoration: none;
+ background-color: transparent;
+ background-image: none;
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+ cursor: not-allowed;
+}
+.open > .dropdown-menu {
+ display: block;
+}
+.open > a {
+ outline: 0;
+}
+.dropdown-menu-right {
+ left: auto;
+ right: 0;
+}
+.dropdown-menu-left {
+ left: 0;
+ right: auto;
+}
+.dropdown-header {
+ display: block;
+ padding: 3px 20px;
+ font-size: 12px;
+ line-height: 1.428571429;
+ color: #999;
+}
+.dropdown-backdrop {
+ position: fixed;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ top: 0;
+ z-index: 990;
+}
+.pull-right > .dropdown-menu {
+ right: 0;
+ left: auto;
+}
+.dropup .caret,
+.navbar-fixed-bottom .dropdown .caret {
+ border-top: 0;
+ border-bottom: 4px solid;
+ content: "";
+}
+.dropup .dropdown-menu,
+.navbar-fixed-bottom .dropdown .dropdown-menu {
+ top: auto;
+ bottom: 100%;
+ margin-bottom: 1px;
+}
+@media (min-width: 768px) {
+ .navbar-right .dropdown-menu {
+ left: auto;
+ right: 0;
+ }
+ .navbar-right .dropdown-menu-left {
+ left: 0;
+ right: auto;
+ }
+}
+.btn-group,
+.btn-group-vertical {
+ position: relative;
+ display: inline-block;
+ vertical-align: middle;
+}
+.btn-group > .btn,
+.btn-group-vertical > .btn {
+ position: relative;
+ float: left;
+}
+.btn-group > .btn:hover,
+.btn-group-vertical > .btn:hover,
+.btn-group > .btn:focus,
+.btn-group-vertical > .btn:focus,
+.btn-group > .btn:active,
+.btn-group-vertical > .btn:active,
+.btn-group > .btn.active,
+.btn-group-vertical > .btn.active {
+ z-index: 2;
+}
+.btn-group > .btn:focus,
+.btn-group-vertical > .btn:focus {
+ outline: 0;
+}
+.btn-group .btn + .btn,
+.btn-group .btn + .btn-group,
+.btn-group .btn-group + .btn,
+.btn-group .btn-group + .btn-group {
+ margin-left: -1px;
+}
+.btn-toolbar {
+ margin-left: -5px;
+}
+.btn-toolbar .btn-group,
+.btn-toolbar .input-group {
+ float: left;
+}
+.btn-toolbar > .btn,
+.btn-toolbar > .btn-group,
+.btn-toolbar > .input-group {
+ margin-left: 5px;
+}
+.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
+ border-radius: 0;
+}
+.btn-group > .btn:first-child {
+ margin-left: 0;
+}
+.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+}
+.btn-group > .btn:last-child:not(:first-child),
+.btn-group > .dropdown-toggle:not(:first-child) {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0;
+}
+.btn-group > .btn-group {
+ float: left;
+}
+.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
+ border-radius: 0;
+}
+.btn-group > .btn-group:first-child > .btn:last-child,
+.btn-group > .btn-group:first-child > .dropdown-toggle {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+}
+.btn-group > .btn-group:last-child > .btn:first-child {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0;
+}
+.btn-group .dropdown-toggle:active,
+.btn-group.open .dropdown-toggle {
+ outline: 0;
+}
+.btn-group-xs > .btn {
+ padding: 1px 5px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px;
+}
+.btn-group-sm > .btn {
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px;
+}
+.btn-group-lg > .btn {
+ padding: 10px 16px;
+ font-size: 18px;
+ line-height: 1.33;
+ border-radius: 6px;
+}
+.btn-group > .btn + .dropdown-toggle {
+ padding-left: 8px;
+ padding-right: 8px;
+}
+.btn-group > .btn-lg + .dropdown-toggle {
+ padding-left: 12px;
+ padding-right: 12px;
+}
+.btn-group.open .dropdown-toggle {
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+}
+.btn-group.open .dropdown-toggle.btn-link {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+.btn .caret {
+ margin-left: 0;
+}
+.btn-lg .caret {
+ border-width: 5px 5px 0;
+ border-bottom-width: 0;
+}
+.dropup .btn-lg .caret {
+ border-width: 0 5px 5px;
+}
+.btn-group-vertical > .btn,
+.btn-group-vertical > .btn-group,
+.btn-group-vertical > .btn-group > .btn {
+ display: block;
+ float: none;
+ width: 100%;
+ max-width: 100%;
+}
+.btn-group-vertical > .btn-group > .btn {
+ float: none;
+}
+.btn-group-vertical > .btn + .btn,
+.btn-group-vertical > .btn + .btn-group,
+.btn-group-vertical > .btn-group + .btn,
+.btn-group-vertical > .btn-group + .btn-group {
+ margin-top: -1px;
+ margin-left: 0;
+}
+.btn-group-vertical > .btn:not(:first-child):not(:last-child) {
+ border-radius: 0;
+}
+.btn-group-vertical > .btn:first-child:not(:last-child) {
+ border-top-right-radius: 4px;
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0;
+}
+.btn-group-vertical > .btn:last-child:not(:first-child) {
+ border-bottom-left-radius: 4px;
+ border-top-right-radius: 0;
+ border-top-left-radius: 0;
+}
+.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
+ border-radius: 0;
+}
+.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
+.btn-group-vertical
+ > .btn-group:first-child:not(:last-child)
+ > .dropdown-toggle {
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0;
+}
+.btn-group-vertical
+ > .btn-group:last-child:not(:first-child)
+ > .btn:first-child {
+ border-top-right-radius: 0;
+ border-top-left-radius: 0;
+}
+.btn-group-justified {
+ display: table;
+ width: 100%;
+ table-layout: fixed;
+ border-collapse: separate;
+}
+.btn-group-justified > .btn,
+.btn-group-justified > .btn-group {
+ float: none;
+ display: table-cell;
+ width: 1%;
+}
+.btn-group-justified > .btn-group .btn {
+ width: 100%;
+}
+[data-toggle="buttons"] > .btn > input[type="radio"],
+[data-toggle="buttons"] > .btn > input[type="checkbox"] {
+ display: none;
+}
+.input-group {
+ position: relative;
+ display: table;
+ border-collapse: separate;
+}
+.input-group[class*="col-"] {
+ float: none;
+ padding-left: 0;
+ padding-right: 0;
+}
+.input-group .form-control {
+ float: left;
+ width: 100%;
+ margin-bottom: 0;
+}
+.input-group-lg > .form-control,
+.input-group-lg > .input-group-addon,
+.input-group-lg > .input-group-btn > .btn {
+ height: 46px;
+ padding: 10px 16px;
+ font-size: 18px;
+ line-height: 1.33;
+ border-radius: 6px;
+}
+select.input-group-lg > .form-control,
+select.input-group-lg > .input-group-addon,
+select.input-group-lg > .input-group-btn > .btn {
+ height: 46px;
+ line-height: 46px;
+}
+textarea.input-group-lg > .form-control,
+textarea.input-group-lg > .input-group-addon,
+textarea.input-group-lg > .input-group-btn > .btn,
+select[multiple].input-group-lg > .form-control,
+select[multiple].input-group-lg > .input-group-addon,
+select[multiple].input-group-lg > .input-group-btn > .btn {
+ height: auto;
+}
+.input-group-sm > .form-control,
+.input-group-sm > .input-group-addon,
+.input-group-sm > .input-group-btn > .btn {
+ height: 30px;
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px;
+}
+select.input-group-sm > .form-control,
+select.input-group-sm > .input-group-addon,
+select.input-group-sm > .input-group-btn > .btn {
+ height: 30px;
+ line-height: 30px;
+}
+textarea.input-group-sm > .form-control,
+textarea.input-group-sm > .input-group-addon,
+textarea.input-group-sm > .input-group-btn > .btn,
+select[multiple].input-group-sm > .form-control,
+select[multiple].input-group-sm > .input-group-addon,
+select[multiple].input-group-sm > .input-group-btn > .btn {
+ height: auto;
+}
+.input-group-addon,
+.input-group-btn,
+.input-group .form-control {
+ display: table-cell;
+}
+.input-group-addon:not(:first-child):not(:last-child),
+.input-group-btn:not(:first-child):not(:last-child),
+.input-group .form-control:not(:first-child):not(:last-child) {
+ border-radius: 0;
+}
+.input-group-addon,
+.input-group-btn {
+ width: 1%;
+ white-space: nowrap;
+ vertical-align: middle;
+}
+.input-group-addon {
+ padding: 6px 12px;
+ font-size: 14px;
+ font-weight: 400;
+ line-height: 1;
+ color: #555;
+ text-align: center;
+ background-color: #eee;
+ border: 1px solid #ccc;
+ border-radius: 4px;
+}
+.input-group-addon.input-sm {
+ padding: 5px 10px;
+ font-size: 12px;
+ border-radius: 3px;
+}
+.input-group-addon.input-lg {
+ padding: 10px 16px;
+ font-size: 18px;
+ border-radius: 6px;
+}
+.input-group-addon input[type="radio"],
+.input-group-addon input[type="checkbox"] {
+ margin-top: 0;
+}
+.input-group .form-control:first-child,
+.input-group-addon:first-child,
+.input-group-btn:first-child > .btn,
+.input-group-btn:first-child > .btn-group > .btn,
+.input-group-btn:first-child > .dropdown-toggle,
+.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
+.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+}
+.input-group-addon:first-child {
+ border-right: 0;
+}
+.input-group .form-control:last-child,
+.input-group-addon:last-child,
+.input-group-btn:last-child > .btn,
+.input-group-btn:last-child > .btn-group > .btn,
+.input-group-btn:last-child > .dropdown-toggle,
+.input-group-btn:first-child > .btn:not(:first-child),
+.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0;
+}
+.input-group-addon:last-child {
+ border-left: 0;
+}
+.input-group-btn {
+ position: relative;
+ font-size: 0;
+ white-space: nowrap;
+}
+.input-group-btn > .btn {
+ position: relative;
+}
+.input-group-btn > .btn + .btn {
+ margin-left: -1px;
+}
+.input-group-btn > .btn:hover,
+.input-group-btn > .btn:focus,
+.input-group-btn > .btn:active {
+ z-index: 2;
+}
+.input-group-btn:first-child > .btn,
+.input-group-btn:first-child > .btn-group {
+ margin-right: -1px;
+}
+.input-group-btn:last-child > .btn,
+.input-group-btn:last-child > .btn-group {
+ margin-left: -1px;
+}
+.nav {
+ margin-bottom: 0;
+ padding-left: 0;
+ list-style: none;
+}
+.nav > li {
+ position: relative;
+ display: block;
+}
+.nav > li > a {
+ position: relative;
+ display: block;
+ padding: 10px 15px;
+}
+.nav > li > a:hover,
+.nav > li > a:focus {
+ text-decoration: none;
+ background-color: #eee;
+}
+.nav > li.disabled > a {
+ color: #999;
+}
+.nav > li.disabled > a:hover,
+.nav > li.disabled > a:focus {
+ color: #999;
+ text-decoration: none;
+ background-color: transparent;
+ cursor: not-allowed;
+}
+.nav .open > a,
+.nav .open > a:hover,
+.nav .open > a:focus {
+ background-color: #eee;
+ border-color: #428bca;
+}
+.nav .nav-divider {
+ height: 1px;
+ margin: 9px 0;
+ overflow: hidden;
+ background-color: #e5e5e5;
+}
+.nav > li > a > img {
+ max-width: none;
+}
+.nav-tabs {
+ border-bottom: 1px solid #ddd;
+}
+.nav-tabs > li {
+ float: left;
+ margin-bottom: -1px;
+}
+.nav-tabs > li > a {
+ margin-right: 2px;
+ line-height: 1.428571429;
+ border: 1px solid transparent;
+ border-radius: 4px 4px 0 0;
+}
+.nav-tabs > li > a:hover {
+ border-color: #eee #eee #ddd;
+}
+.nav-tabs > li.active > a,
+.nav-tabs > li.active > a:hover,
+.nav-tabs > li.active > a:focus {
+ color: #555;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-bottom-color: transparent;
+ cursor: default;
+}
+.nav-tabs.nav-justified {
+ width: 100%;
+ border-bottom: 0;
+}
+.nav-tabs.nav-justified > li {
+ float: none;
+}
+.nav-tabs.nav-justified > li > a {
+ text-align: center;
+ margin-bottom: 5px;
+}
+.nav-tabs.nav-justified > .dropdown .dropdown-menu {
+ top: auto;
+ left: auto;
+}
+@media (min-width: 768px) {
+ .nav-tabs.nav-justified > li {
+ display: table-cell;
+ width: 1%;
+ }
+ .nav-tabs.nav-justified > li > a {
+ margin-bottom: 0;
+ }
+}
+.nav-tabs.nav-justified > li > a {
+ margin-right: 0;
+ border-radius: 4px;
+}
+.nav-tabs.nav-justified > .active > a,
+.nav-tabs.nav-justified > .active > a:hover,
+.nav-tabs.nav-justified > .active > a:focus {
+ border: 1px solid #ddd;
+}
+@media (min-width: 768px) {
+ .nav-tabs.nav-justified > li > a {
+ border-bottom: 1px solid #ddd;
+ border-radius: 4px 4px 0 0;
+ }
+ .nav-tabs.nav-justified > .active > a,
+ .nav-tabs.nav-justified > .active > a:hover,
+ .nav-tabs.nav-justified > .active > a:focus {
+ border-bottom-color: #fff;
+ }
+}
+.nav-pills > li {
+ float: left;
+}
+.nav-pills > li > a {
+ border-radius: 4px;
+}
+.nav-pills > li + li {
+ margin-left: 2px;
+}
+.nav-pills > li.active > a,
+.nav-pills > li.active > a:hover,
+.nav-pills > li.active > a:focus {
+ color: #fff;
+ background-color: #428bca;
+}
+.nav-stacked > li {
+ float: none;
+}
+.nav-stacked > li + li {
+ margin-top: 2px;
+ margin-left: 0;
+}
+.nav-justified {
+ width: 100%;
+}
+.nav-justified > li {
+ float: none;
+}
+.nav-justified > li > a {
+ text-align: center;
+ margin-bottom: 5px;
+}
+.nav-justified > .dropdown .dropdown-menu {
+ top: auto;
+ left: auto;
+}
+@media (min-width: 768px) {
+ .nav-justified > li {
+ display: table-cell;
+ width: 1%;
+ }
+ .nav-justified > li > a {
+ margin-bottom: 0;
+ }
+}
+.nav-tabs-justified {
+ border-bottom: 0;
+}
+.nav-tabs-justified > li > a {
+ margin-right: 0;
+ border-radius: 4px;
+}
+.nav-tabs-justified > .active > a,
+.nav-tabs-justified > .active > a:hover,
+.nav-tabs-justified > .active > a:focus {
+ border: 1px solid #ddd;
+}
+@media (min-width: 768px) {
+ .nav-tabs-justified > li > a {
+ border-bottom: 1px solid #ddd;
+ border-radius: 4px 4px 0 0;
+ }
+ .nav-tabs-justified > .active > a,
+ .nav-tabs-justified > .active > a:hover,
+ .nav-tabs-justified > .active > a:focus {
+ border-bottom-color: #fff;
+ }
+}
+.tab-content > .tab-pane {
+ display: none;
+}
+.tab-content > .active {
+ display: block;
+}
+.nav-tabs .dropdown-menu {
+ margin-top: -1px;
+ border-top-right-radius: 0;
+ border-top-left-radius: 0;
+}
+.navbar {
+ position: relative;
+ min-height: 50px;
+ margin-bottom: 20px;
+ border: 1px solid transparent;
+}
+@media (min-width: 768px) {
+ .navbar {
+ border-radius: 4px;
+ }
+}
+@media (min-width: 768px) {
+ .navbar-header {
+ float: left;
+ }
+}
+.navbar-collapse {
+ max-height: 340px;
+ overflow-x: visible;
+ padding-right: 15px;
+ padding-left: 15px;
+ border-top: 1px solid transparent;
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
+ -webkit-overflow-scrolling: touch;
+}
+.navbar-collapse.in {
+ overflow-y: auto;
+}
+@media (min-width: 768px) {
+ .navbar-collapse {
+ width: auto;
+ border-top: 0;
+ box-shadow: none;
+ }
+ .navbar-collapse.collapse {
+ display: block !important;
+ height: auto !important;
+ padding-bottom: 0;
+ overflow: visible !important;
+ }
+ .navbar-collapse.in {
+ overflow-y: visible;
+ }
+ .navbar-fixed-top .navbar-collapse,
+ .navbar-static-top .navbar-collapse,
+ .navbar-fixed-bottom .navbar-collapse {
+ padding-left: 0;
+ padding-right: 0;
+ }
+}
+.container > .navbar-header,
+.container-fluid > .navbar-header,
+.container > .navbar-collapse,
+.container-fluid > .navbar-collapse {
+ margin-right: -15px;
+ margin-left: -15px;
+}
+@media (min-width: 768px) {
+ .container > .navbar-header,
+ .container-fluid > .navbar-header,
+ .container > .navbar-collapse,
+ .container-fluid > .navbar-collapse {
+ margin-right: 0;
+ margin-left: 0;
+ }
+}
+.navbar-static-top {
+ z-index: 1000;
+ border-width: 0 0 1px;
+}
+@media (min-width: 768px) {
+ .navbar-static-top {
+ border-radius: 0;
+ }
+}
+.navbar-fixed-top,
+.navbar-fixed-bottom {
+ position: fixed;
+ right: 0;
+ left: 0;
+ z-index: 1030;
+}
+@media (min-width: 768px) {
+ .navbar-fixed-top,
+ .navbar-fixed-bottom {
+ border-radius: 0;
+ }
+}
+.navbar-fixed-top {
+ top: 0;
+ border-width: 0 0 1px;
+}
+.navbar-fixed-bottom {
+ bottom: 0;
+ margin-bottom: 0;
+ border-width: 1px 0 0;
+}
+.navbar-brand {
+ float: left;
+ padding: 15px;
+ font-size: 18px;
+ line-height: 20px;
+ height: 20px;
+}
+.navbar-brand:hover,
+.navbar-brand:focus {
+ text-decoration: none;
+}
+@media (min-width: 768px) {
+ .navbar > .container .navbar-brand,
+ .navbar > .container-fluid .navbar-brand {
+ margin-left: -15px;
+ }
+}
+.navbar-toggle {
+ position: relative;
+ float: right;
+ margin-right: 15px;
+ padding: 9px 10px;
+ margin-top: 8px;
+ margin-bottom: 8px;
+ background-color: transparent;
+ background-image: none;
+ border: 1px solid transparent;
+ border-radius: 4px;
+}
+.navbar-toggle:focus {
+ outline: 0;
+}
+.navbar-toggle .icon-bar {
+ display: block;
+ width: 22px;
+ height: 2px;
+ border-radius: 1px;
+}
+.navbar-toggle .icon-bar + .icon-bar {
+ margin-top: 4px;
+}
+@media (min-width: 768px) {
+ .navbar-toggle {
+ display: none;
+ }
+}
+.navbar-nav {
+ margin: 7.5px -15px;
+}
+.navbar-nav > li > a {
+ padding-top: 10px;
+ padding-bottom: 10px;
+ line-height: 20px;
+}
+@media (max-width: 767px) {
+ .navbar-nav .open .dropdown-menu {
+ position: static;
+ float: none;
+ width: auto;
+ margin-top: 0;
+ background-color: transparent;
+ border: 0;
+ box-shadow: none;
+ }
+ .navbar-nav .open .dropdown-menu > li > a,
+ .navbar-nav .open .dropdown-menu .dropdown-header {
+ padding: 5px 15px 5px 25px;
+ }
+ .navbar-nav .open .dropdown-menu > li > a {
+ line-height: 20px;
+ }
+ .navbar-nav .open .dropdown-menu > li > a:hover,
+ .navbar-nav .open .dropdown-menu > li > a:focus {
+ background-image: none;
+ }
+}
+@media (min-width: 768px) {
+ .navbar-nav {
+ float: left;
+ margin: 0;
+ }
+ .navbar-nav > li {
+ float: left;
+ }
+ .navbar-nav > li > a {
+ padding-top: 15px;
+ padding-bottom: 15px;
+ }
+ .navbar-nav.navbar-right:last-child {
+ margin-right: -15px;
+ }
+}
+@media (min-width: 768px) {
+ .navbar-left {
+ float: left !important;
+ }
+ .navbar-right {
+ float: right !important;
+ }
+}
+.navbar-form {
+ margin-left: -15px;
+ margin-right: -15px;
+ padding: 10px 15px;
+ border-top: 1px solid transparent;
+ border-bottom: 1px solid transparent;
+ -webkit-box-shadow:
+ inset 0 1px 0 rgba(255, 255, 255, 0.1),
+ 0 1px 0 rgba(255, 255, 255, 0.1);
+ box-shadow:
+ inset 0 1px 0 rgba(255, 255, 255, 0.1),
+ 0 1px 0 rgba(255, 255, 255, 0.1);
+ margin-top: 8px;
+ margin-bottom: 8px;
+}
+@media (min-width: 768px) {
+ .navbar-form .form-group {
+ display: inline-block;
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+ .navbar-form .form-control {
+ display: inline-block;
+ width: auto;
+ vertical-align: middle;
+ }
+ .navbar-form .control-label {
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+ .navbar-form .radio,
+ .navbar-form .checkbox {
+ display: inline-block;
+ margin-top: 0;
+ margin-bottom: 0;
+ padding-left: 0;
+ vertical-align: middle;
+ }
+ .navbar-form .radio input[type="radio"],
+ .navbar-form .checkbox input[type="checkbox"] {
+ float: none;
+ margin-left: 0;
+ }
+ .navbar-form .has-feedback .form-control-feedback {
+ top: 0;
+ }
+}
+@media (max-width: 767px) {
+ .navbar-form .form-group {
+ margin-bottom: 5px;
+ }
+}
+@media (min-width: 768px) {
+ .navbar-form {
+ width: auto;
+ border: 0;
+ margin-left: 0;
+ margin-right: 0;
+ padding-top: 0;
+ padding-bottom: 0;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ }
+ .navbar-form.navbar-right:last-child {
+ margin-right: -15px;
+ }
+}
+.navbar-nav > li > .dropdown-menu {
+ margin-top: 0;
+ border-top-right-radius: 0;
+ border-top-left-radius: 0;
+}
+.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0;
+}
+.navbar-btn {
+ margin-top: 8px;
+ margin-bottom: 8px;
+}
+.navbar-btn.btn-sm {
+ margin-top: 10px;
+ margin-bottom: 10px;
+}
+.navbar-btn.btn-xs {
+ margin-top: 14px;
+ margin-bottom: 14px;
+}
+.navbar-text {
+ margin-top: 15px;
+ margin-bottom: 15px;
+}
+@media (min-width: 768px) {
+ .navbar-text {
+ float: left;
+ margin-left: 15px;
+ margin-right: 15px;
+ }
+ .navbar-text.navbar-right:last-child {
+ margin-right: 0;
+ }
+}
+.navbar-default {
+ background-color: #f8f8f8;
+ border-color: #e7e7e7;
+}
+.navbar-default .navbar-brand {
+ color: #777;
+}
+.navbar-default .navbar-brand:hover,
+.navbar-default .navbar-brand:focus {
+ color: #5e5e5e;
+ background-color: transparent;
+}
+.navbar-default .navbar-text {
+ color: #777;
+}
+.navbar-default .navbar-nav > li > a {
+ color: #777;
+}
+.navbar-default .navbar-nav > li > a:hover,
+.navbar-default .navbar-nav > li > a:focus {
+ color: #333;
+ background-color: transparent;
+}
+.navbar-default .navbar-nav > .active > a,
+.navbar-default .navbar-nav > .active > a:hover,
+.navbar-default .navbar-nav > .active > a:focus {
+ color: #555;
+ background-color: #e7e7e7;
+}
+.navbar-default .navbar-nav > .disabled > a,
+.navbar-default .navbar-nav > .disabled > a:hover,
+.navbar-default .navbar-nav > .disabled > a:focus {
+ color: #ccc;
+ background-color: transparent;
+}
+.navbar-default .navbar-toggle {
+ border-color: #ddd;
+}
+.navbar-default .navbar-toggle:hover,
+.navbar-default .navbar-toggle:focus {
+ background-color: #ddd;
+}
+.navbar-default .navbar-toggle .icon-bar {
+ background-color: #888;
+}
+.navbar-default .navbar-collapse,
+.navbar-default .navbar-form {
+ border-color: #e7e7e7;
+}
+.navbar-default .navbar-nav > .open > a,
+.navbar-default .navbar-nav > .open > a:hover,
+.navbar-default .navbar-nav > .open > a:focus {
+ background-color: #e7e7e7;
+ color: #555;
+}
+@media (max-width: 767px) {
+ .navbar-default .navbar-nav .open .dropdown-menu > li > a {
+ color: #777;
+ }
+ .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
+ .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
+ color: #333;
+ background-color: transparent;
+ }
+ .navbar-default .navbar-nav .open .dropdown-menu > .active > a,
+ .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
+ .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
+ color: #555;
+ background-color: #e7e7e7;
+ }
+ .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
+ .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
+ .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
+ color: #ccc;
+ background-color: transparent;
+ }
+}
+.navbar-default .navbar-link {
+ color: #777;
+}
+.navbar-default .navbar-link:hover {
+ color: #333;
+}
+.navbar-inverse {
+ background-color: #222;
+ border-color: #080808;
+}
+.navbar-inverse .navbar-brand {
+ color: #999;
+}
+.navbar-inverse .navbar-brand:hover,
+.navbar-inverse .navbar-brand:focus {
+ color: #fff;
+ background-color: transparent;
+}
+.navbar-inverse .navbar-text {
+ color: #999;
+}
+.navbar-inverse .navbar-nav > li > a {
+ color: #999;
+}
+.navbar-inverse .navbar-nav > li > a:hover,
+.navbar-inverse .navbar-nav > li > a:focus {
+ color: #fff;
+ background-color: transparent;
+}
+.navbar-inverse .navbar-nav > .active > a,
+.navbar-inverse .navbar-nav > .active > a:hover,
+.navbar-inverse .navbar-nav > .active > a:focus {
+ color: #fff;
+ background-color: #080808;
+}
+.navbar-inverse .navbar-nav > .disabled > a,
+.navbar-inverse .navbar-nav > .disabled > a:hover,
+.navbar-inverse .navbar-nav > .disabled > a:focus {
+ color: #444;
+ background-color: transparent;
+}
+.navbar-inverse .navbar-toggle {
+ border-color: #333;
+}
+.navbar-inverse .navbar-toggle:hover,
+.navbar-inverse .navbar-toggle:focus {
+ background-color: #333;
+}
+.navbar-inverse .navbar-toggle .icon-bar {
+ background-color: #fff;
+}
+.navbar-inverse .navbar-collapse,
+.navbar-inverse .navbar-form {
+ border-color: #101010;
+}
+.navbar-inverse .navbar-nav > .open > a,
+.navbar-inverse .navbar-nav > .open > a:hover,
+.navbar-inverse .navbar-nav > .open > a:focus {
+ background-color: #080808;
+ color: #fff;
+}
+@media (max-width: 767px) {
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
+ border-color: #080808;
+ }
+ .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
+ background-color: #080808;
+ }
+ .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
+ color: #999;
+ }
+ .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
+ .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
+ color: #fff;
+ background-color: transparent;
+ }
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
+ color: #fff;
+ background-color: #080808;
+ }
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
+ color: #444;
+ background-color: transparent;
+ }
+}
+.navbar-inverse .navbar-link {
+ color: #999;
+}
+.navbar-inverse .navbar-link:hover {
+ color: #fff;
+}
+.breadcrumb {
+ padding: 8px 15px;
+ margin-bottom: 20px;
+ list-style: none;
+ background-color: #f5f5f5;
+ border-radius: 4px;
+}
+.breadcrumb > li {
+ display: inline-block;
+}
+.breadcrumb > li + li:before {
+ content: "/\00a0";
+ padding: 0 5px;
+ color: #ccc;
+}
+.breadcrumb > .active {
+ color: #999;
+}
+.pagination {
+ display: inline-block;
+ padding-left: 0;
+ margin: 20px 0;
+ border-radius: 4px;
+}
+.pagination > li {
+ display: inline;
+}
+.pagination > li > a,
+.pagination > li > span {
+ position: relative;
+ float: left;
+ padding: 6px 12px;
+ line-height: 1.428571429;
+ text-decoration: none;
+ color: #428bca;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ margin-left: -1px;
+}
+.pagination > li:first-child > a,
+.pagination > li:first-child > span {
+ margin-left: 0;
+ border-bottom-left-radius: 4px;
+ border-top-left-radius: 4px;
+}
+.pagination > li:last-child > a,
+.pagination > li:last-child > span {
+ border-bottom-right-radius: 4px;
+ border-top-right-radius: 4px;
+}
+.pagination > li > a:hover,
+.pagination > li > span:hover,
+.pagination > li > a:focus,
+.pagination > li > span:focus {
+ color: #2a6496;
+ background-color: #eee;
+ border-color: #ddd;
+}
+.pagination > .active > a,
+.pagination > .active > span,
+.pagination > .active > a:hover,
+.pagination > .active > span:hover,
+.pagination > .active > a:focus,
+.pagination > .active > span:focus {
+ z-index: 2;
+ color: #fff;
+ background-color: #428bca;
+ border-color: #428bca;
+ cursor: default;
+}
+.pagination > .disabled > span,
+.pagination > .disabled > span:hover,
+.pagination > .disabled > span:focus,
+.pagination > .disabled > a,
+.pagination > .disabled > a:hover,
+.pagination > .disabled > a:focus {
+ color: #999;
+ background-color: #fff;
+ border-color: #ddd;
+ cursor: not-allowed;
+}
+.pagination-lg > li > a,
+.pagination-lg > li > span {
+ padding: 10px 16px;
+ font-size: 18px;
+}
+.pagination-lg > li:first-child > a,
+.pagination-lg > li:first-child > span {
+ border-bottom-left-radius: 6px;
+ border-top-left-radius: 6px;
+}
+.pagination-lg > li:last-child > a,
+.pagination-lg > li:last-child > span {
+ border-bottom-right-radius: 6px;
+ border-top-right-radius: 6px;
+}
+.pagination-sm > li > a,
+.pagination-sm > li > span {
+ padding: 5px 10px;
+ font-size: 12px;
+}
+.pagination-sm > li:first-child > a,
+.pagination-sm > li:first-child > span {
+ border-bottom-left-radius: 3px;
+ border-top-left-radius: 3px;
+}
+.pagination-sm > li:last-child > a,
+.pagination-sm > li:last-child > span {
+ border-bottom-right-radius: 3px;
+ border-top-right-radius: 3px;
+}
+.pager {
+ padding-left: 0;
+ margin: 20px 0;
+ list-style: none;
+ text-align: center;
+}
+.pager li {
+ display: inline;
+}
+.pager li > a,
+.pager li > span {
+ display: inline-block;
+ padding: 5px 14px;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-radius: 15px;
+}
+.pager li > a:hover,
+.pager li > a:focus {
+ text-decoration: none;
+ background-color: #eee;
+}
+.pager .next > a,
+.pager .next > span {
+ float: right;
+}
+.pager .previous > a,
+.pager .previous > span {
+ float: left;
+}
+.pager .disabled > a,
+.pager .disabled > a:hover,
+.pager .disabled > a:focus,
+.pager .disabled > span {
+ color: #999;
+ background-color: #fff;
+ cursor: not-allowed;
+}
+.label {
+ display: inline;
+ padding: 0.2em 0.6em 0.3em;
+ font-size: 75%;
+ font-weight: 700;
+ line-height: 1;
+ color: #fff;
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: baseline;
+ border-radius: 0.25em;
+}
+.label[href]:hover,
+.label[href]:focus {
+ color: #fff;
+ text-decoration: none;
+ cursor: pointer;
+}
+.label:empty {
+ display: none;
+}
+.btn .label {
+ position: relative;
+ top: -1px;
+}
+.label-default {
+ background-color: #999;
+}
+.label-default[href]:hover,
+.label-default[href]:focus {
+ background-color: gray;
+}
+.label-primary {
+ background-color: #428bca;
+}
+.label-primary[href]:hover,
+.label-primary[href]:focus {
+ background-color: #3071a9;
+}
+.label-success {
+ background-color: #5cb85c;
+}
+.label-success[href]:hover,
+.label-success[href]:focus {
+ background-color: #449d44;
+}
+.label-info {
+ background-color: #5bc0de;
+}
+.label-info[href]:hover,
+.label-info[href]:focus {
+ background-color: #31b0d5;
+}
+.label-warning {
+ background-color: #f0ad4e;
+}
+.label-warning[href]:hover,
+.label-warning[href]:focus {
+ background-color: #ec971f;
+}
+.label-danger {
+ background-color: #d9534f;
+}
+.label-danger[href]:hover,
+.label-danger[href]:focus {
+ background-color: #c9302c;
+}
+.badge {
+ display: inline-block;
+ min-width: 10px;
+ padding: 3px 7px;
+ font-size: 12px;
+ font-weight: 700;
+ color: #fff;
+ line-height: 1;
+ vertical-align: baseline;
+ white-space: nowrap;
+ text-align: center;
+ background-color: #999;
+ border-radius: 10px;
+}
+.badge:empty {
+ display: none;
+}
+.btn .badge {
+ position: relative;
+ top: -1px;
+}
+.btn-xs .badge {
+ top: 0;
+ padding: 1px 5px;
+}
+a.badge:hover,
+a.badge:focus {
+ color: #fff;
+ text-decoration: none;
+ cursor: pointer;
+}
+a.list-group-item.active > .badge,
+.nav-pills > .active > a > .badge {
+ color: #428bca;
+ background-color: #fff;
+}
+.nav-pills > li > a > .badge {
+ margin-left: 3px;
+}
+.jumbotron {
+ padding: 30px;
+ margin-bottom: 30px;
+ color: inherit;
+ background-color: #eee;
+}
+.jumbotron h1,
+.jumbotron .h1 {
+ color: inherit;
+}
+.jumbotron p {
+ margin-bottom: 15px;
+ font-size: 21px;
+ font-weight: 200;
+}
+.container .jumbotron {
+ border-radius: 6px;
+}
+.jumbotron .container {
+ max-width: 100%;
+}
+@media screen and (min-width: 768px) {
+ .jumbotron {
+ padding-top: 48px;
+ padding-bottom: 48px;
+ }
+ .container .jumbotron {
+ padding-left: 60px;
+ padding-right: 60px;
+ }
+ .jumbotron h1,
+ .jumbotron .h1 {
+ font-size: 63px;
+ }
+}
+.thumbnail {
+ display: block;
+ padding: 4px;
+ margin-bottom: 20px;
+ line-height: 1.428571429;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-radius: 4px;
+ -webkit-transition: all 0.2s ease-in-out;
+ transition: all 0.2s ease-in-out;
+}
+.thumbnail > img,
+.thumbnail a > img {
+ display: block;
+ max-width: 100%;
+ height: auto;
+ margin-left: auto;
+ margin-right: auto;
+}
+a.thumbnail:hover,
+a.thumbnail:focus,
+a.thumbnail.active {
+ border-color: #428bca;
+}
+.thumbnail .caption {
+ padding: 9px;
+ color: #333;
+}
+.alert {
+ padding: 15px;
+ margin-bottom: 20px;
+ border: 1px solid transparent;
+ border-radius: 4px;
+}
+.alert h4 {
+ margin-top: 0;
+ color: inherit;
+}
+.alert .alert-link {
+ font-weight: 700;
+}
+.alert > p,
+.alert > ul {
+ margin-bottom: 0;
+}
+.alert > p + p {
+ margin-top: 5px;
+}
+.alert-dismissable {
+ padding-right: 35px;
+}
+.alert-dismissable .close {
+ position: relative;
+ top: -2px;
+ right: -21px;
+ color: inherit;
+}
+.alert-success {
+ background-color: #dff0d8;
+ border-color: #d6e9c6;
+ color: #3c763d;
+}
+.alert-success hr {
+ border-top-color: #c9e2b3;
+}
+.alert-success .alert-link {
+ color: #2b542c;
+}
+.alert-info {
+ background-color: #d9edf7;
+ border-color: #bce8f1;
+ color: #31708f;
+}
+.alert-info hr {
+ border-top-color: #a6e1ec;
+}
+.alert-info .alert-link {
+ color: #245269;
+}
+.alert-warning {
+ background-color: #fcf8e3;
+ border-color: #faebcc;
+ color: #8a6d3b;
+}
+.alert-warning hr {
+ border-top-color: #f7e1b5;
+}
+.alert-warning .alert-link {
+ color: #66512c;
+}
+.alert-danger {
+ background-color: #f2dede;
+ border-color: #ebccd1;
+ color: #a94442;
+}
+.alert-danger hr {
+ border-top-color: #e4b9c0;
+}
+.alert-danger .alert-link {
+ color: #843534;
+}
+@-webkit-keyframes progress-bar-stripes {
+ from {
+ background-position: 40px 0;
+ }
+ to {
+ background-position: 0 0;
+ }
+}
+@keyframes progress-bar-stripes {
+ from {
+ background-position: 40px 0;
+ }
+ to {
+ background-position: 0 0;
+ }
+}
+.progress {
+ overflow: hidden;
+ height: 20px;
+ margin-bottom: 20px;
+ background-color: #f5f5f5;
+ border-radius: 4px;
+ -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
+}
+.progress-bar {
+ float: left;
+ width: 0;
+ height: 100%;
+ font-size: 12px;
+ line-height: 20px;
+ color: #fff;
+ text-align: center;
+ background-color: #428bca;
+ -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
+ -webkit-transition: width 0.6s ease;
+ transition: width 0.6s ease;
+}
+.progress-striped .progress-bar {
+ background-image: -webkit-linear-gradient(
+ 45deg,
+ rgba(255, 255, 255, 0.15) 25%,
+ transparent 25%,
+ transparent 50%,
+ rgba(255, 255, 255, 0.15) 50%,
+ rgba(255, 255, 255, 0.15) 75%,
+ transparent 75%,
+ transparent
+ );
+ background-image: linear-gradient(
+ 45deg,
+ rgba(255, 255, 255, 0.15) 25%,
+ transparent 25%,
+ transparent 50%,
+ rgba(255, 255, 255, 0.15) 50%,
+ rgba(255, 255, 255, 0.15) 75%,
+ transparent 75%,
+ transparent
+ );
+ background-size: 40px 40px;
+}
+.progress.active .progress-bar {
+ -webkit-animation: progress-bar-stripes 2s linear infinite;
+ animation: progress-bar-stripes 2s linear infinite;
+}
+.progress-bar-success {
+ background-color: #5cb85c;
+}
+.progress-striped .progress-bar-success {
+ background-image: -webkit-linear-gradient(
+ 45deg,
+ rgba(255, 255, 255, 0.15) 25%,
+ transparent 25%,
+ transparent 50%,
+ rgba(255, 255, 255, 0.15) 50%,
+ rgba(255, 255, 255, 0.15) 75%,
+ transparent 75%,
+ transparent
+ );
+ background-image: linear-gradient(
+ 45deg,
+ rgba(255, 255, 255, 0.15) 25%,
+ transparent 25%,
+ transparent 50%,
+ rgba(255, 255, 255, 0.15) 50%,
+ rgba(255, 255, 255, 0.15) 75%,
+ transparent 75%,
+ transparent
+ );
+}
+.progress-bar-info {
+ background-color: #5bc0de;
+}
+.progress-striped .progress-bar-info {
+ background-image: -webkit-linear-gradient(
+ 45deg,
+ rgba(255, 255, 255, 0.15) 25%,
+ transparent 25%,
+ transparent 50%,
+ rgba(255, 255, 255, 0.15) 50%,
+ rgba(255, 255, 255, 0.15) 75%,
+ transparent 75%,
+ transparent
+ );
+ background-image: linear-gradient(
+ 45deg,
+ rgba(255, 255, 255, 0.15) 25%,
+ transparent 25%,
+ transparent 50%,
+ rgba(255, 255, 255, 0.15) 50%,
+ rgba(255, 255, 255, 0.15) 75%,
+ transparent 75%,
+ transparent
+ );
+}
+.progress-bar-warning {
+ background-color: #f0ad4e;
+}
+.progress-striped .progress-bar-warning {
+ background-image: -webkit-linear-gradient(
+ 45deg,
+ rgba(255, 255, 255, 0.15) 25%,
+ transparent 25%,
+ transparent 50%,
+ rgba(255, 255, 255, 0.15) 50%,
+ rgba(255, 255, 255, 0.15) 75%,
+ transparent 75%,
+ transparent
+ );
+ background-image: linear-gradient(
+ 45deg,
+ rgba(255, 255, 255, 0.15) 25%,
+ transparent 25%,
+ transparent 50%,
+ rgba(255, 255, 255, 0.15) 50%,
+ rgba(255, 255, 255, 0.15) 75%,
+ transparent 75%,
+ transparent
+ );
+}
+.progress-bar-danger {
+ background-color: #d9534f;
+}
+.progress-striped .progress-bar-danger {
+ background-image: -webkit-linear-gradient(
+ 45deg,
+ rgba(255, 255, 255, 0.15) 25%,
+ transparent 25%,
+ transparent 50%,
+ rgba(255, 255, 255, 0.15) 50%,
+ rgba(255, 255, 255, 0.15) 75%,
+ transparent 75%,
+ transparent
+ );
+ background-image: linear-gradient(
+ 45deg,
+ rgba(255, 255, 255, 0.15) 25%,
+ transparent 25%,
+ transparent 50%,
+ rgba(255, 255, 255, 0.15) 50%,
+ rgba(255, 255, 255, 0.15) 75%,
+ transparent 75%,
+ transparent
+ );
+}
+.media,
+.media-body {
+ overflow: hidden;
+ zoom: 1;
+}
+.media,
+.media .media {
+ margin-top: 15px;
+}
+.media:first-child {
+ margin-top: 0;
+}
+.media-object {
+ display: block;
+}
+.media-heading {
+ margin: 0 0 5px;
+}
+.media > .pull-left {
+ margin-right: 10px;
+}
+.media > .pull-right {
+ margin-left: 10px;
+}
+.media-list {
+ padding-left: 0;
+ list-style: none;
+}
+.list-group {
+ margin-bottom: 20px;
+ padding-left: 0;
+}
+.list-group-item {
+ position: relative;
+ display: block;
+ padding: 10px 15px;
+ margin-bottom: -1px;
+ background-color: #fff;
+ border: 1px solid #ddd;
+}
+.list-group-item:first-child {
+ border-top-right-radius: 4px;
+ border-top-left-radius: 4px;
+}
+.list-group-item:last-child {
+ margin-bottom: 0;
+ border-bottom-right-radius: 4px;
+ border-bottom-left-radius: 4px;
+}
+.list-group-item > .badge {
+ float: right;
+}
+.list-group-item > .badge + .badge {
+ margin-right: 5px;
+}
+a.list-group-item {
+ color: #555;
+}
+a.list-group-item .list-group-item-heading {
+ color: #333;
+}
+a.list-group-item:hover,
+a.list-group-item:focus {
+ text-decoration: none;
+ background-color: #f5f5f5;
+}
+a.list-group-item.active,
+a.list-group-item.active:hover,
+a.list-group-item.active:focus {
+ z-index: 2;
+ color: #fff;
+ background-color: #428bca;
+ border-color: #428bca;
+}
+a.list-group-item.active .list-group-item-heading,
+a.list-group-item.active:hover .list-group-item-heading,
+a.list-group-item.active:focus .list-group-item-heading {
+ color: inherit;
+}
+a.list-group-item.active .list-group-item-text,
+a.list-group-item.active:hover .list-group-item-text,
+a.list-group-item.active:focus .list-group-item-text {
+ color: #e1edf7;
+}
+.list-group-item-success {
+ color: #3c763d;
+ background-color: #dff0d8;
+}
+a.list-group-item-success {
+ color: #3c763d;
+}
+a.list-group-item-success .list-group-item-heading {
+ color: inherit;
+}
+a.list-group-item-success:hover,
+a.list-group-item-success:focus {
+ color: #3c763d;
+ background-color: #d0e9c6;
+}
+a.list-group-item-success.active,
+a.list-group-item-success.active:hover,
+a.list-group-item-success.active:focus {
+ color: #fff;
+ background-color: #3c763d;
+ border-color: #3c763d;
+}
+.list-group-item-info {
+ color: #31708f;
+ background-color: #d9edf7;
+}
+a.list-group-item-info {
+ color: #31708f;
+}
+a.list-group-item-info .list-group-item-heading {
+ color: inherit;
+}
+a.list-group-item-info:hover,
+a.list-group-item-info:focus {
+ color: #31708f;
+ background-color: #c4e3f3;
+}
+a.list-group-item-info.active,
+a.list-group-item-info.active:hover,
+a.list-group-item-info.active:focus {
+ color: #fff;
+ background-color: #31708f;
+ border-color: #31708f;
+}
+.list-group-item-warning {
+ color: #8a6d3b;
+ background-color: #fcf8e3;
+}
+a.list-group-item-warning {
+ color: #8a6d3b;
+}
+a.list-group-item-warning .list-group-item-heading {
+ color: inherit;
+}
+a.list-group-item-warning:hover,
+a.list-group-item-warning:focus {
+ color: #8a6d3b;
+ background-color: #faf2cc;
+}
+a.list-group-item-warning.active,
+a.list-group-item-warning.active:hover,
+a.list-group-item-warning.active:focus {
+ color: #fff;
+ background-color: #8a6d3b;
+ border-color: #8a6d3b;
+}
+.list-group-item-danger {
+ color: #a94442;
+ background-color: #f2dede;
+}
+a.list-group-item-danger {
+ color: #a94442;
+}
+a.list-group-item-danger .list-group-item-heading {
+ color: inherit;
+}
+a.list-group-item-danger:hover,
+a.list-group-item-danger:focus {
+ color: #a94442;
+ background-color: #ebcccc;
+}
+a.list-group-item-danger.active,
+a.list-group-item-danger.active:hover,
+a.list-group-item-danger.active:focus {
+ color: #fff;
+ background-color: #a94442;
+ border-color: #a94442;
+}
+.list-group-item-heading {
+ margin-top: 0;
+ margin-bottom: 5px;
+}
+.list-group-item-text {
+ margin-bottom: 0;
+ line-height: 1.3;
+}
+.panel {
+ margin-bottom: 20px;
+ background-color: #fff;
+ border: 1px solid transparent;
+ border-radius: 4px;
+ -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
+}
+.panel-body {
+ padding: 15px;
+}
+.panel > .list-group {
+ margin-bottom: 0;
+}
+.panel > .list-group .list-group-item {
+ border-width: 1px 0;
+ border-radius: 0;
+}
+.panel > .list-group .list-group-item:first-child {
+ border-top: 0;
+}
+.panel > .list-group .list-group-item:last-child {
+ border-bottom: 0;
+}
+.panel > .list-group:first-child .list-group-item:first-child {
+ border-top-right-radius: 3px;
+ border-top-left-radius: 3px;
+}
+.panel > .list-group:last-child .list-group-item:last-child {
+ border-bottom-right-radius: 3px;
+ border-bottom-left-radius: 3px;
+}
+.panel-heading + .list-group .list-group-item:first-child {
+ border-top-width: 0;
+}
+.panel > .table,
+.panel > .table-responsive > .table {
+ margin-bottom: 0;
+}
+.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
+.panel
+ > .table-responsive:first-child
+ > .table:first-child
+ > thead:first-child
+ > tr:first-child
+ td:first-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
+.panel
+ > .table-responsive:first-child
+ > .table:first-child
+ > tbody:first-child
+ > tr:first-child
+ td:first-child,
+.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
+.panel
+ > .table-responsive:first-child
+ > .table:first-child
+ > thead:first-child
+ > tr:first-child
+ th:first-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
+.panel
+ > .table-responsive:first-child
+ > .table:first-child
+ > tbody:first-child
+ > tr:first-child
+ th:first-child {
+ border-top-left-radius: 3px;
+}
+.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
+.panel
+ > .table-responsive:first-child
+ > .table:first-child
+ > thead:first-child
+ > tr:first-child
+ td:last-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
+.panel
+ > .table-responsive:first-child
+ > .table:first-child
+ > tbody:first-child
+ > tr:first-child
+ td:last-child,
+.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
+.panel
+ > .table-responsive:first-child
+ > .table:first-child
+ > thead:first-child
+ > tr:first-child
+ th:last-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
+.panel
+ > .table-responsive:first-child
+ > .table:first-child
+ > tbody:first-child
+ > tr:first-child
+ th:last-child {
+ border-top-right-radius: 3px;
+}
+.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
+.panel
+ > .table-responsive:last-child
+ > .table:last-child
+ > tbody:last-child
+ > tr:last-child
+ td:first-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
+.panel
+ > .table-responsive:last-child
+ > .table:last-child
+ > tfoot:last-child
+ > tr:last-child
+ td:first-child,
+.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
+.panel
+ > .table-responsive:last-child
+ > .table:last-child
+ > tbody:last-child
+ > tr:last-child
+ th:first-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
+.panel
+ > .table-responsive:last-child
+ > .table:last-child
+ > tfoot:last-child
+ > tr:last-child
+ th:first-child {
+ border-bottom-left-radius: 3px;
+}
+.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
+.panel
+ > .table-responsive:last-child
+ > .table:last-child
+ > tbody:last-child
+ > tr:last-child
+ td:last-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
+.panel
+ > .table-responsive:last-child
+ > .table:last-child
+ > tfoot:last-child
+ > tr:last-child
+ td:last-child,
+.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
+.panel
+ > .table-responsive:last-child
+ > .table:last-child
+ > tbody:last-child
+ > tr:last-child
+ th:last-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
+.panel
+ > .table-responsive:last-child
+ > .table:last-child
+ > tfoot:last-child
+ > tr:last-child
+ th:last-child {
+ border-bottom-right-radius: 3px;
+}
+.panel > .panel-body + .table,
+.panel > .panel-body + .table-responsive {
+ border-top: 1px solid #ddd;
+}
+.panel > .table > tbody:first-child > tr:first-child th,
+.panel > .table > tbody:first-child > tr:first-child td {
+ border-top: 0;
+}
+.panel > .table-bordered,
+.panel > .table-responsive > .table-bordered {
+ border: 0;
+}
+.panel > .table-bordered > thead > tr > th:first-child,
+.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
+.panel > .table-bordered > tbody > tr > th:first-child,
+.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
+.panel > .table-bordered > tfoot > tr > th:first-child,
+.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
+.panel > .table-bordered > thead > tr > td:first-child,
+.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
+.panel > .table-bordered > tbody > tr > td:first-child,
+.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
+.panel > .table-bordered > tfoot > tr > td:first-child,
+.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
+ border-left: 0;
+}
+.panel > .table-bordered > thead > tr > th:last-child,
+.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
+.panel > .table-bordered > tbody > tr > th:last-child,
+.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
+.panel > .table-bordered > tfoot > tr > th:last-child,
+.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
+.panel > .table-bordered > thead > tr > td:last-child,
+.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
+.panel > .table-bordered > tbody > tr > td:last-child,
+.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
+.panel > .table-bordered > tfoot > tr > td:last-child,
+.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
+ border-right: 0;
+}
+.panel > .table-bordered > thead > tr:first-child > th,
+.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
+.panel > .table-bordered > tbody > tr:first-child > th,
+.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th,
+.panel > .table-bordered > tfoot > tr:first-child > th,
+.panel > .table-responsive > .table-bordered > tfoot > tr:first-child > th,
+.panel > .table-bordered > thead > tr:first-child > td,
+.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
+.panel > .table-bordered > tbody > tr:first-child > td,
+.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
+.panel > .table-bordered > tfoot > tr:first-child > td,
+.panel > .table-responsive > .table-bordered > tfoot > tr:first-child > td {
+ border-top: 0;
+}
+.panel > .table-bordered > thead > tr:last-child > th,
+.panel > .table-responsive > .table-bordered > thead > tr:last-child > th,
+.panel > .table-bordered > tbody > tr:last-child > th,
+.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
+.panel > .table-bordered > tfoot > tr:last-child > th,
+.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th,
+.panel > .table-bordered > thead > tr:last-child > td,
+.panel > .table-responsive > .table-bordered > thead > tr:last-child > td,
+.panel > .table-bordered > tbody > tr:last-child > td,
+.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
+.panel > .table-bordered > tfoot > tr:last-child > td,
+.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td {
+ border-bottom: 0;
+}
+.panel > .table-responsive {
+ border: 0;
+ margin-bottom: 0;
+}
+.panel-heading {
+ padding: 10px 15px;
+ border-bottom: 1px solid transparent;
+ border-top-right-radius: 3px;
+ border-top-left-radius: 3px;
+}
+.panel-heading > .dropdown .dropdown-toggle {
+ color: inherit;
+}
+.panel-title {
+ margin-top: 0;
+ margin-bottom: 0;
+ font-size: 16px;
+ color: inherit;
+}
+.panel-title > a {
+ color: inherit;
+}
+.panel-footer {
+ padding: 10px 15px;
+ background-color: #f5f5f5;
+ border-top: 1px solid #ddd;
+ border-bottom-right-radius: 3px;
+ border-bottom-left-radius: 3px;
+}
+.panel-group {
+ margin-bottom: 20px;
+}
+.panel-group .panel {
+ margin-bottom: 0;
+ border-radius: 4px;
+ overflow: hidden;
+}
+.panel-group .panel + .panel {
+ margin-top: 5px;
+}
+.panel-group .panel-heading {
+ border-bottom: 0;
+}
+.panel-group .panel-heading + .panel-collapse .panel-body {
+ border-top: 1px solid #ddd;
+}
+.panel-group .panel-footer {
+ border-top: 0;
+}
+.panel-group .panel-footer + .panel-collapse .panel-body {
+ border-bottom: 1px solid #ddd;
+}
+.panel-default {
+ border-color: #ddd;
+}
+.panel-default > .panel-heading {
+ color: #333;
+ background-color: #f5f5f5;
+ border-color: #ddd;
+}
+.panel-default > .panel-heading + .panel-collapse .panel-body {
+ border-top-color: #ddd;
+}
+.panel-default > .panel-footer + .panel-collapse .panel-body {
+ border-bottom-color: #ddd;
+}
+.panel-primary {
+ border-color: #428bca;
+}
+.panel-primary > .panel-heading {
+ color: #fff;
+ background-color: #428bca;
+ border-color: #428bca;
+}
+.panel-primary > .panel-heading + .panel-collapse .panel-body {
+ border-top-color: #428bca;
+}
+.panel-primary > .panel-footer + .panel-collapse .panel-body {
+ border-bottom-color: #428bca;
+}
+.panel-success {
+ border-color: #d6e9c6;
+}
+.panel-success > .panel-heading {
+ color: #3c763d;
+ background-color: #dff0d8;
+ border-color: #d6e9c6;
+}
+.panel-success > .panel-heading + .panel-collapse .panel-body {
+ border-top-color: #d6e9c6;
+}
+.panel-success > .panel-footer + .panel-collapse .panel-body {
+ border-bottom-color: #d6e9c6;
+}
+.panel-info {
+ border-color: #bce8f1;
+}
+.panel-info > .panel-heading {
+ color: #31708f;
+ background-color: #d9edf7;
+ border-color: #bce8f1;
+}
+.panel-info > .panel-heading + .panel-collapse .panel-body {
+ border-top-color: #bce8f1;
+}
+.panel-info > .panel-footer + .panel-collapse .panel-body {
+ border-bottom-color: #bce8f1;
+}
+.panel-warning {
+ border-color: #faebcc;
+}
+.panel-warning > .panel-heading {
+ color: #8a6d3b;
+ background-color: #fcf8e3;
+ border-color: #faebcc;
+}
+.panel-warning > .panel-heading + .panel-collapse .panel-body {
+ border-top-color: #faebcc;
+}
+.panel-warning > .panel-footer + .panel-collapse .panel-body {
+ border-bottom-color: #faebcc;
+}
+.panel-danger {
+ border-color: #ebccd1;
+}
+.panel-danger > .panel-heading {
+ color: #a94442;
+ background-color: #f2dede;
+ border-color: #ebccd1;
+}
+.panel-danger > .panel-heading + .panel-collapse .panel-body {
+ border-top-color: #ebccd1;
+}
+.panel-danger > .panel-footer + .panel-collapse .panel-body {
+ border-bottom-color: #ebccd1;
+}
+.well {
+ min-height: 20px;
+ padding: 19px;
+ margin-bottom: 20px;
+ background-color: #f5f5f5;
+ border: 1px solid #e3e3e3;
+ border-radius: 4px;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
+}
+.well blockquote {
+ border-color: #ddd;
+ border-color: rgba(0, 0, 0, 0.15);
+}
+.well-lg {
+ padding: 24px;
+ border-radius: 6px;
+}
+.well-sm {
+ padding: 9px;
+ border-radius: 3px;
+}
+.close {
+ float: right;
+ font-size: 21px;
+ font-weight: 700;
+ line-height: 1;
+ color: #000;
+ text-shadow: 0 1px 0 #fff;
+ opacity: 0.2;
+ filter: alpha(opacity=20);
+}
+.close:hover,
+.close:focus {
+ color: #000;
+ text-decoration: none;
+ cursor: pointer;
+ opacity: 0.5;
+ filter: alpha(opacity=50);
+}
+button.close {
+ padding: 0;
+ cursor: pointer;
+ background: 0 0;
+ border: 0;
+ -webkit-appearance: none;
+}
+.modal-open {
+ overflow: hidden;
+}
+.modal {
+ display: none;
+ overflow: auto;
+ overflow-y: scroll;
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1050;
+ -webkit-overflow-scrolling: touch;
+ outline: 0;
+}
+.modal.fade .modal-dialog {
+ -webkit-transform: translate(0, -25%);
+ -ms-transform: translate(0, -25%);
+ transform: translate(0, -25%);
+ -webkit-transition: -webkit-transform 0.3s ease-out;
+ -moz-transition: -moz-transform 0.3s ease-out;
+ -o-transition: -o-transform 0.3s ease-out;
+ transition: transform 0.3s ease-out;
+}
+.modal.in .modal-dialog {
+ -webkit-transform: translate(0, 0);
+ -ms-transform: translate(0, 0);
+ transform: translate(0, 0);
+}
+.modal-dialog {
+ position: relative;
+ width: auto;
+ margin: 10px;
+}
+.modal-content {
+ position: relative;
+ background-color: #fff;
+ border: 1px solid #999;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ border-radius: 6px;
+ -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
+ box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
+ background-clip: padding-box;
+ outline: 0;
+}
+.modal-backdrop {
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1040;
+ background-color: #000;
+}
+.modal-backdrop.fade {
+ opacity: 0;
+ filter: alpha(opacity=0);
+}
+.modal-backdrop.in {
+ opacity: 0.5;
+ filter: alpha(opacity=50);
+}
+.modal-header {
+ padding: 15px;
+ border-bottom: 1px solid #e5e5e5;
+ min-height: 16.428571429px;
+}
+.modal-header .close {
+ margin-top: -2px;
+}
+.modal-title {
+ margin: 0;
+ line-height: 1.428571429;
+}
+.modal-body {
+ position: relative;
+ padding: 20px;
+}
+.modal-footer {
+ margin-top: 15px;
+ padding: 19px 20px 20px;
+ text-align: right;
+ border-top: 1px solid #e5e5e5;
+}
+.modal-footer .btn + .btn {
+ margin-left: 5px;
+ margin-bottom: 0;
+}
+.modal-footer .btn-group .btn + .btn {
+ margin-left: -1px;
+}
+.modal-footer .btn-block + .btn-block {
+ margin-left: 0;
+}
+@media (min-width: 768px) {
+ .modal-dialog {
+ width: 600px;
+ margin: 30px auto;
+ }
+ .modal-content {
+ -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
+ box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
+ }
+ .modal-sm {
+ width: 300px;
+ }
+ .modal-lg {
+ width: 900px;
+ }
+}
+.tooltip {
+ position: absolute;
+ z-index: 1030;
+ display: block;
+ visibility: visible;
+ font-size: 12px;
+ line-height: 1.4;
+ opacity: 0;
+ filter: alpha(opacity=0);
+}
+.tooltip.in {
+ opacity: 0.9;
+ filter: alpha(opacity=90);
+}
+.tooltip.top {
+ margin-top: -3px;
+ padding: 5px 0;
+}
+.tooltip.right {
+ margin-left: 3px;
+ padding: 0 5px;
+}
+.tooltip.bottom {
+ margin-top: 3px;
+ padding: 5px 0;
+}
+.tooltip.left {
+ margin-left: -3px;
+ padding: 0 5px;
+}
+.tooltip-inner {
+ max-width: 200px;
+ padding: 3px 8px;
+ color: #fff;
+ text-align: center;
+ text-decoration: none;
+ background-color: #000;
+ border-radius: 4px;
+}
+.tooltip-arrow {
+ position: absolute;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+}
+.tooltip.top .tooltip-arrow {
+ bottom: 0;
+ left: 50%;
+ margin-left: -5px;
+ border-width: 5px 5px 0;
+ border-top-color: #000;
+}
+.tooltip.top-left .tooltip-arrow {
+ bottom: 0;
+ left: 5px;
+ border-width: 5px 5px 0;
+ border-top-color: #000;
+}
+.tooltip.top-right .tooltip-arrow {
+ bottom: 0;
+ right: 5px;
+ border-width: 5px 5px 0;
+ border-top-color: #000;
+}
+.tooltip.right .tooltip-arrow {
+ top: 50%;
+ left: 0;
+ margin-top: -5px;
+ border-width: 5px 5px 5px 0;
+ border-right-color: #000;
+}
+.tooltip.left .tooltip-arrow {
+ top: 50%;
+ right: 0;
+ margin-top: -5px;
+ border-width: 5px 0 5px 5px;
+ border-left-color: #000;
+}
+.tooltip.bottom .tooltip-arrow {
+ top: 0;
+ left: 50%;
+ margin-left: -5px;
+ border-width: 0 5px 5px;
+ border-bottom-color: #000;
+}
+.tooltip.bottom-left .tooltip-arrow {
+ top: 0;
+ left: 5px;
+ border-width: 0 5px 5px;
+ border-bottom-color: #000;
+}
+.tooltip.bottom-right .tooltip-arrow {
+ top: 0;
+ right: 5px;
+ border-width: 0 5px 5px;
+ border-bottom-color: #000;
+}
+.popover {
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 1010;
+ display: none;
+ max-width: 276px;
+ padding: 1px;
+ text-align: left;
+ background-color: #fff;
+ background-clip: padding-box;
+ border: 1px solid #ccc;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ border-radius: 6px;
+ -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+ box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+ white-space: normal;
+}
+.popover.top {
+ margin-top: -10px;
+}
+.popover.right {
+ margin-left: 10px;
+}
+.popover.bottom {
+ margin-top: 10px;
+}
+.popover.left {
+ margin-left: -10px;
+}
+.popover-title {
+ margin: 0;
+ padding: 8px 14px;
+ font-size: 14px;
+ font-weight: 400;
+ line-height: 18px;
+ background-color: #f7f7f7;
+ border-bottom: 1px solid #ebebeb;
+ border-radius: 5px 5px 0 0;
+}
+.popover-content {
+ padding: 9px 14px;
+}
+.popover .arrow,
+.popover .arrow:after {
+ position: absolute;
+ display: block;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+}
+.popover .arrow {
+ border-width: 11px;
+}
+.popover .arrow:after {
+ border-width: 10px;
+ content: "";
+}
+.popover.top .arrow {
+ left: 50%;
+ margin-left: -11px;
+ border-bottom-width: 0;
+ border-top-color: #999;
+ border-top-color: rgba(0, 0, 0, 0.25);
+ bottom: -11px;
+}
+.popover.top .arrow:after {
+ content: " ";
+ bottom: 1px;
+ margin-left: -10px;
+ border-bottom-width: 0;
+ border-top-color: #fff;
+}
+.popover.right .arrow {
+ top: 50%;
+ left: -11px;
+ margin-top: -11px;
+ border-left-width: 0;
+ border-right-color: #999;
+ border-right-color: rgba(0, 0, 0, 0.25);
+}
+.popover.right .arrow:after {
+ content: " ";
+ left: 1px;
+ bottom: -10px;
+ border-left-width: 0;
+ border-right-color: #fff;
+}
+.popover.bottom .arrow {
+ left: 50%;
+ margin-left: -11px;
+ border-top-width: 0;
+ border-bottom-color: #999;
+ border-bottom-color: rgba(0, 0, 0, 0.25);
+ top: -11px;
+}
+.popover.bottom .arrow:after {
+ content: " ";
+ top: 1px;
+ margin-left: -10px;
+ border-top-width: 0;
+ border-bottom-color: #fff;
+}
+.popover.left .arrow {
+ top: 50%;
+ right: -11px;
+ margin-top: -11px;
+ border-right-width: 0;
+ border-left-color: #999;
+ border-left-color: rgba(0, 0, 0, 0.25);
+}
+.popover.left .arrow:after {
+ content: " ";
+ right: 1px;
+ border-right-width: 0;
+ border-left-color: #fff;
+ bottom: -10px;
+}
+.carousel {
+ position: relative;
+}
+.carousel-inner {
+ position: relative;
+ overflow: hidden;
+ width: 100%;
+}
+.carousel-inner > .item {
+ display: none;
+ position: relative;
+ -webkit-transition: 0.6s ease-in-out left;
+ transition: 0.6s ease-in-out left;
+}
+.carousel-inner > .item > img,
+.carousel-inner > .item > a > img {
+ display: block;
+ max-width: 100%;
+ height: auto;
+ line-height: 1;
+}
+.carousel-inner > .active,
+.carousel-inner > .next,
+.carousel-inner > .prev {
+ display: block;
+}
+.carousel-inner > .active {
+ left: 0;
+}
+.carousel-inner > .next,
+.carousel-inner > .prev {
+ position: absolute;
+ top: 0;
+ width: 100%;
+}
+.carousel-inner > .next {
+ left: 100%;
+}
+.carousel-inner > .prev {
+ left: -100%;
+}
+.carousel-inner > .next.left,
+.carousel-inner > .prev.right {
+ left: 0;
+}
+.carousel-inner > .active.left {
+ left: -100%;
+}
+.carousel-inner > .active.right {
+ left: 100%;
+}
+.carousel-control {
+ position: absolute;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ width: 15%;
+ opacity: 0.5;
+ filter: alpha(opacity=50);
+ font-size: 20px;
+ color: #fff;
+ text-align: center;
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
+}
+.carousel-control.left {
+ background-image: -webkit-linear-gradient(
+ left,
+ color-stop(rgba(0, 0, 0, 0.5) 0),
+ color-stop(rgba(0, 0, 0, 0.0001) 100%)
+ );
+ background-image: linear-gradient(
+ to right,
+ rgba(0, 0, 0, 0.5) 0,
+ rgba(0, 0, 0, 0.0001) 100%
+ );
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
+}
+.carousel-control.right {
+ left: auto;
+ right: 0;
+ background-image: -webkit-linear-gradient(
+ left,
+ color-stop(rgba(0, 0, 0, 0.0001) 0),
+ color-stop(rgba(0, 0, 0, 0.5) 100%)
+ );
+ background-image: linear-gradient(
+ to right,
+ rgba(0, 0, 0, 0.0001) 0,
+ rgba(0, 0, 0, 0.5) 100%
+ );
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
+}
+.carousel-control:hover,
+.carousel-control:focus {
+ outline: 0;
+ color: #fff;
+ text-decoration: none;
+ opacity: 0.9;
+ filter: alpha(opacity=90);
+}
+.carousel-control .icon-prev,
+.carousel-control .icon-next,
+.carousel-control .glyphicon-chevron-left,
+.carousel-control .glyphicon-chevron-right {
+ position: absolute;
+ top: 50%;
+ z-index: 5;
+ display: inline-block;
+}
+.carousel-control .icon-prev,
+.carousel-control .glyphicon-chevron-left {
+ left: 50%;
+}
+.carousel-control .icon-next,
+.carousel-control .glyphicon-chevron-right {
+ right: 50%;
+}
+.carousel-control .icon-prev,
+.carousel-control .icon-next {
+ width: 20px;
+ height: 20px;
+ margin-top: -10px;
+ margin-left: -10px;
+ font-family: serif;
+}
+.carousel-control .icon-prev:before {
+ content: "\2039";
+}
+.carousel-control .icon-next:before {
+ content: "\203a";
+}
+.carousel-indicators {
+ position: absolute;
+ bottom: 10px;
+ left: 50%;
+ z-index: 15;
+ width: 60%;
+ margin-left: -30%;
+ padding-left: 0;
+ list-style: none;
+ text-align: center;
+}
+.carousel-indicators li {
+ display: inline-block;
+ width: 10px;
+ height: 10px;
+ margin: 1px;
+ text-indent: -999px;
+ border: 1px solid #fff;
+ border-radius: 10px;
+ cursor: pointer;
+ background-color: #000 \9;
+ background-color: rgba(0, 0, 0, 0);
+}
+.carousel-indicators .active {
+ margin: 0;
+ width: 12px;
+ height: 12px;
+ background-color: #fff;
+}
+.carousel-caption {
+ position: absolute;
+ left: 15%;
+ right: 15%;
+ bottom: 20px;
+ z-index: 10;
+ padding-top: 20px;
+ padding-bottom: 20px;
+ color: #fff;
+ text-align: center;
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
+}
+.carousel-caption .btn {
+ text-shadow: none;
+}
+@media screen and (min-width: 768px) {
+ .carousel-control .glyphicons-chevron-left,
+ .carousel-control .glyphicons-chevron-right,
+ .carousel-control .icon-prev,
+ .carousel-control .icon-next {
+ width: 30px;
+ height: 30px;
+ margin-top: -15px;
+ margin-left: -15px;
+ font-size: 30px;
+ }
+ .carousel-caption {
+ left: 20%;
+ right: 20%;
+ padding-bottom: 30px;
+ }
+ .carousel-indicators {
+ bottom: 20px;
+ }
+}
+.clearfix:before,
+.clearfix:after,
+.container:before,
+.container:after,
+.container-fluid:before,
+.container-fluid:after,
+.row:before,
+.row:after,
+.form-horizontal .form-group:before,
+.form-horizontal .form-group:after,
+.btn-toolbar:before,
+.btn-toolbar:after,
+.btn-group-vertical > .btn-group:before,
+.btn-group-vertical > .btn-group:after,
+.nav:before,
+.nav:after,
+.navbar:before,
+.navbar:after,
+.navbar-header:before,
+.navbar-header:after,
+.navbar-collapse:before,
+.navbar-collapse:after,
+.pager:before,
+.pager:after,
+.panel-body:before,
+.panel-body:after,
+.modal-footer:before,
+.modal-footer:after {
+ content: " ";
+ display: table;
+}
+.clearfix:after,
+.container:after,
+.container-fluid:after,
+.row:after,
+.form-horizontal .form-group:after,
+.btn-toolbar:after,
+.btn-group-vertical > .btn-group:after,
+.nav:after,
+.navbar:after,
+.navbar-header:after,
+.navbar-collapse:after,
+.pager:after,
+.panel-body:after,
+.modal-footer:after {
+ clear: both;
+}
+.center-block {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+}
+.pull-right {
+ float: right !important;
+}
+.pull-left {
+ float: left !important;
+}
+.hide {
+ display: none !important;
+}
+.show {
+ display: block !important;
+}
+.invisible {
+ visibility: hidden;
+}
+.text-hide {
+ font: 0/0 a;
+ color: transparent;
+ text-shadow: none;
+ background-color: transparent;
+ border: 0;
+}
+.hidden {
+ display: none !important;
+ visibility: hidden !important;
+}
+.affix {
+ position: fixed;
+}
+@-ms-viewport {
+ width: device-width;
+}
+.visible-xs,
+tr.visible-xs,
+th.visible-xs,
+td.visible-xs {
+ display: none !important;
+}
+@media (max-width: 767px) {
+ .visible-xs {
+ display: block !important;
+ }
+ table.visible-xs {
+ display: table;
+ }
+ tr.visible-xs {
+ display: table-row !important;
+ }
+ th.visible-xs,
+ td.visible-xs {
+ display: table-cell !important;
+ }
+}
+.visible-sm,
+tr.visible-sm,
+th.visible-sm,
+td.visible-sm {
+ display: none !important;
+}
+@media (min-width: 768px) and (max-width: 991px) {
+ .visible-sm {
+ display: block !important;
+ }
+ table.visible-sm {
+ display: table;
+ }
+ tr.visible-sm {
+ display: table-row !important;
+ }
+ th.visible-sm,
+ td.visible-sm {
+ display: table-cell !important;
+ }
+}
+.visible-md,
+tr.visible-md,
+th.visible-md,
+td.visible-md {
+ display: none !important;
+}
+@media (min-width: 992px) and (max-width: 1199px) {
+ .visible-md {
+ display: block !important;
+ }
+ table.visible-md {
+ display: table;
+ }
+ tr.visible-md {
+ display: table-row !important;
+ }
+ th.visible-md,
+ td.visible-md {
+ display: table-cell !important;
+ }
+}
+.visible-lg,
+tr.visible-lg,
+th.visible-lg,
+td.visible-lg {
+ display: none !important;
+}
+@media (min-width: 1200px) {
+ .visible-lg {
+ display: block !important;
+ }
+ table.visible-lg {
+ display: table;
+ }
+ tr.visible-lg {
+ display: table-row !important;
+ }
+ th.visible-lg,
+ td.visible-lg {
+ display: table-cell !important;
+ }
+}
+@media (max-width: 767px) {
+ .hidden-xs,
+ tr.hidden-xs,
+ th.hidden-xs,
+ td.hidden-xs {
+ display: none !important;
+ }
+}
+@media (min-width: 768px) and (max-width: 991px) {
+ .hidden-sm,
+ tr.hidden-sm,
+ th.hidden-sm,
+ td.hidden-sm {
+ display: none !important;
+ }
+}
+@media (min-width: 992px) and (max-width: 1199px) {
+ .hidden-md,
+ tr.hidden-md,
+ th.hidden-md,
+ td.hidden-md {
+ display: none !important;
+ }
+}
+@media (min-width: 1200px) {
+ .hidden-lg,
+ tr.hidden-lg,
+ th.hidden-lg,
+ td.hidden-lg {
+ display: none !important;
+ }
+}
+.visible-print,
+tr.visible-print,
+th.visible-print,
+td.visible-print {
+ display: none !important;
+}
+@media print {
+ .visible-print {
+ display: block !important;
+ }
+ table.visible-print {
+ display: table;
+ }
+ tr.visible-print {
+ display: table-row !important;
+ }
+ th.visible-print,
+ td.visible-print {
+ display: table-cell !important;
+ }
+}
+@media print {
+ .hidden-print,
+ tr.hidden-print,
+ th.hidden-print,
+ td.hidden-print {
+ display: none !important;
+ }
+}
diff --git a/backend/tests/integration/tests/pruning/website/css/custom-fonts.css b/backend/tests/integration/tests/pruning/website/css/custom-fonts.css
new file mode 100644
index 0000000000..f3b62deb07
--- /dev/null
+++ b/backend/tests/integration/tests/pruning/website/css/custom-fonts.css
@@ -0,0 +1,1028 @@
+/* ==================================================
+Font-Face Icons
+================================================== */
+
+@font-face {
+ font-family: "Icons";
+ src: url("../fonts/customicon/Icons.eot");
+ src:
+ url("../fonts/customicon/Icons.eot?#iefix") format("embedded-opentype"),
+ url("../fonts/customicon/Icons.woff") format("woff"),
+ url("../fonts/customicon/Icons.ttf") format("truetype"),
+ url("../fonts/customicon/Icons.svg#Icons") format("svg");
+ font-weight: normal;
+ font-style: normal;
+}
+
+/* Use the following CSS code if you want to use data attributes for inserting your icons */
+[data-icon]:before {
+ font-family: "Icons";
+ content: attr(data-icon);
+ speak: none;
+ font-weight: normal;
+ font-variant: normal;
+ text-transform: none;
+ line-height: 1;
+ -webkit-font-smoothing: antialiased;
+}
+
+[class^="font-"]:before,
+[class*=" font-"]:before {
+ font-family: "Icons";
+ speak: none;
+ font-style: normal;
+ font-weight: normal;
+ font-variant: normal;
+ text-transform: none;
+ -webkit-font-smoothing: antialiased;
+}
+
+[class^="font-"],
+[class*=" font-"] {
+ display: inline-block;
+ line-height: 1em;
+}
+
+/* Use the following CSS code if you want to have a class per icon */
+/*
+Instead of a list of all class selectors,
+you can use the generic selector below, but it's slower:
+[class*="font-icon-"] {
+*/
+.font-icon-zoom-out,
+.font-icon-zoom-in,
+.font-icon-wrench,
+.font-icon-waves,
+.font-icon-warning,
+.font-icon-volume-up,
+.font-icon-volume-off,
+.font-icon-volume-down,
+.font-icon-viewport,
+.font-icon-user,
+.font-icon-user-border,
+.font-icon-upload,
+.font-icon-upload-2,
+.font-icon-unlock,
+.font-icon-underline,
+.font-icon-tint,
+.font-icon-time,
+.font-icon-text,
+.font-icon-text-width,
+.font-icon-text-height,
+.font-icon-tags,
+.font-icon-tag,
+.font-icon-table,
+.font-icon-strikethrough,
+.font-icon-stop,
+.font-icon-step-forward,
+.font-icon-step-backward,
+.font-icon-stars,
+.font-icon-star,
+.font-icon-star-line,
+.font-icon-star-half,
+.font-icon-sort,
+.font-icon-sort-up,
+.font-icon-sort-down,
+.font-icon-social-zerply,
+.font-icon-social-youtube,
+.font-icon-social-yelp,
+.font-icon-social-yahoo,
+.font-icon-social-wordpress,
+.font-icon-social-virb,
+.font-icon-social-vimeo,
+.font-icon-social-viddler,
+.font-icon-social-twitter,
+.font-icon-social-tumblr,
+.font-icon-social-stumbleupon,
+.font-icon-social-soundcloud,
+.font-icon-social-skype,
+.font-icon-social-share-this,
+.font-icon-social-quora,
+.font-icon-social-pinterest,
+.font-icon-social-photobucket,
+.font-icon-social-paypal,
+.font-icon-social-myspace,
+.font-icon-social-linkedin,
+.font-icon-social-last-fm,
+.font-icon-social-grooveshark,
+.font-icon-social-google-plus,
+.font-icon-social-github,
+.font-icon-social-forrst,
+.font-icon-social-flickr,
+.font-icon-social-facebook,
+.font-icon-social-evernote,
+.font-icon-social-envato,
+.font-icon-social-email,
+.font-icon-social-dribbble,
+.font-icon-social-digg,
+.font-icon-social-deviant-art,
+.font-icon-social-blogger,
+.font-icon-social-behance,
+.font-icon-social-bebo,
+.font-icon-social-addthis,
+.font-icon-social-500px,
+.font-icon-sitemap,
+.font-icon-signout,
+.font-icon-signin,
+.font-icon-signal,
+.font-icon-shopping-cart,
+.font-icon-search,
+.font-icon-rss,
+.font-icon-road,
+.font-icon-retweet,
+.font-icon-resize-vertical,
+.font-icon-resize-vertical-2,
+.font-icon-resize-small,
+.font-icon-resize-horizontal,
+.font-icon-resize-horizontal-2,
+.font-icon-resize-fullscreen,
+.font-icon-resize-full,
+.font-icon-repeat,
+.font-icon-reorder,
+.font-icon-remove,
+.font-icon-remove-sign,
+.font-icon-remove-circle,
+.font-icon-read-more,
+.font-icon-random,
+.font-icon-question-sign,
+.font-icon-pushpin,
+.font-icon-pushpin-2,
+.font-icon-print,
+.font-icon-plus,
+.font-icon-plus-sign,
+.font-icon-play,
+.font-icon-picture,
+.font-icon-phone,
+.font-icon-phone-sign,
+.font-icon-phone-boxed,
+.font-icon-pause,
+.font-icon-paste,
+.font-icon-paper-clip,
+.font-icon-ok,
+.font-icon-ok-sign,
+.font-icon-ok-circle,
+.font-icon-music,
+.font-icon-move,
+.font-icon-money,
+.font-icon-minus,
+.font-icon-minus-sign,
+.font-icon-map,
+.font-icon-map-marker,
+.font-icon-map-marker-2,
+.font-icon-magnet,
+.font-icon-magic,
+.font-icon-lock,
+.font-icon-list,
+.font-icon-list-3,
+.font-icon-list-2,
+.font-icon-link,
+.font-icon-layer,
+.font-icon-key,
+.font-icon-italic,
+.font-icon-info,
+.font-icon-indent-right,
+.font-icon-indent-left,
+.font-icon-inbox,
+.font-icon-inbox-empty,
+.font-icon-home,
+.font-icon-heart,
+.font-icon-heart-line,
+.font-icon-headphones,
+.font-icon-headphones-line,
+.font-icon-headphones-line-2,
+.font-icon-headphones-2,
+.font-icon-hdd,
+.font-icon-group,
+.font-icon-grid,
+.font-icon-grid-large,
+.font-icon-globe_line,
+.font-icon-glass,
+.font-icon-glass_2,
+.font-icon-gift,
+.font-icon-forward,
+.font-icon-font,
+.font-icon-folder-open,
+.font-icon-folder-close,
+.font-icon-flag,
+.font-icon-fire,
+.font-icon-film,
+.font-icon-file,
+.font-icon-file-empty,
+.font-icon-fast-forward,
+.font-icon-fast-backward,
+.font-icon-facetime,
+.font-icon-eye,
+.font-icon-eye_disable,
+.font-icon-expand-view,
+.font-icon-expand-view-3,
+.font-icon-expand-view-2,
+.font-icon-expand-vertical,
+.font-icon-expand-horizontal,
+.font-icon-exclamation,
+.font-icon-email,
+.font-icon-email_2,
+.font-icon-eject,
+.font-icon-edit,
+.font-icon-edit-check,
+.font-icon-download,
+.font-icon-download_2,
+.font-icon-dashboard,
+.font-icon-credit-card,
+.font-icon-copy,
+.font-icon-comments,
+.font-icon-comments-line,
+.font-icon-comment,
+.font-icon-comment-line,
+.font-icon-columns,
+.font-icon-columns-2,
+.font-icon-cogs,
+.font-icon-cog,
+.font-icon-cloud,
+.font-icon-check,
+.font-icon-check-empty,
+.font-icon-certificate,
+.font-icon-camera,
+.font-icon-calendar,
+.font-icon-bullhorn,
+.font-icon-briefcase,
+.font-icon-bookmark,
+.font-icon-book,
+.font-icon-bolt,
+.font-icon-bold,
+.font-icon-blockquote,
+.font-icon-bell,
+.font-icon-beaker,
+.font-icon-barcode,
+.font-icon-ban-circle,
+.font-icon-ban-chart,
+.font-icon-ban-chart-2,
+.font-icon-backward,
+.font-icon-asterisk,
+.font-icon-arrow-simple-up,
+.font-icon-arrow-simple-up-circle,
+.font-icon-arrow-simple-right,
+.font-icon-arrow-simple-right-circle,
+.font-icon-arrow-simple-left,
+.font-icon-arrow-simple-left-circle,
+.font-icon-arrow-simple-down,
+.font-icon-arrow-simple-down-circle,
+.font-icon-arrow-round-up,
+.font-icon-arrow-round-up-circle,
+.font-icon-arrow-round-right,
+.font-icon-arrow-round-right-circle,
+.font-icon-arrow-round-left,
+.font-icon-arrow-round-left-circle,
+.font-icon-arrow-round-down,
+.font-icon-arrow-round-down-circle,
+.font-icon-arrow-light-up,
+.font-icon-arrow-light-round-up,
+.font-icon-arrow-light-round-up-circle,
+.font-icon-arrow-light-round-right,
+.font-icon-arrow-light-round-right-circle,
+.font-icon-arrow-light-round-left,
+.font-icon-arrow-light-round-left-circle,
+.font-icon-arrow-light-round-down,
+.font-icon-arrow-light-round-down-circle,
+.font-icon-arrow-light-right,
+.font-icon-arrow-light-left,
+.font-icon-arrow-light-down,
+.font-icon-align-right,
+.font-icon-align-left,
+.font-icon-align-justify,
+.font-icon-align-center,
+.font-icon-adjust {
+ font-family: "Icons";
+ speak: none;
+ font-style: normal;
+ font-weight: normal;
+ font-variant: normal;
+ text-transform: none;
+ line-height: 1;
+ -webkit-font-smoothing: antialiased;
+}
+.font-icon-zoom-out:before {
+ content: "\e000";
+}
+.font-icon-zoom-in:before {
+ content: "\e001";
+}
+.font-icon-wrench:before {
+ content: "\e002";
+}
+.font-icon-waves:before {
+ content: "\e003";
+}
+.font-icon-warning:before {
+ content: "\e004";
+}
+.font-icon-volume-up:before {
+ content: "\e005";
+}
+.font-icon-volume-off:before {
+ content: "\e006";
+}
+.font-icon-volume-down:before {
+ content: "\e007";
+}
+.font-icon-viewport:before {
+ content: "\e008";
+}
+.font-icon-user:before {
+ content: "\e009";
+}
+.font-icon-user-border:before {
+ content: "\e00a";
+}
+.font-icon-upload:before {
+ content: "\e00b";
+}
+.font-icon-upload-2:before {
+ content: "\e00c";
+}
+.font-icon-unlock:before {
+ content: "\e00d";
+}
+.font-icon-underline:before {
+ content: "\e00e";
+}
+.font-icon-tint:before {
+ content: "\e00f";
+}
+.font-icon-time:before {
+ content: "\e010";
+}
+.font-icon-text:before {
+ content: "\e011";
+}
+.font-icon-text-width:before {
+ content: "\e012";
+}
+.font-icon-text-height:before {
+ content: "\e013";
+}
+.font-icon-tags:before {
+ content: "\e014";
+}
+.font-icon-tag:before {
+ content: "\e015";
+}
+.font-icon-table:before {
+ content: "\e016";
+}
+.font-icon-strikethrough:before {
+ content: "\e017";
+}
+.font-icon-stop:before {
+ content: "\e018";
+}
+.font-icon-step-forward:before {
+ content: "\e019";
+}
+.font-icon-step-backward:before {
+ content: "\e01a";
+}
+.font-icon-stars:before {
+ content: "\e01b";
+}
+.font-icon-star:before {
+ content: "\e01c";
+}
+.font-icon-star-line:before {
+ content: "\e01d";
+}
+.font-icon-star-half:before {
+ content: "\e01e";
+}
+.font-icon-sort:before {
+ content: "\e01f";
+}
+.font-icon-sort-up:before {
+ content: "\e020";
+}
+.font-icon-sort-down:before {
+ content: "\e021";
+}
+.font-icon-social-zerply:before {
+ content: "\e022";
+}
+.font-icon-social-youtube:before {
+ content: "\e023";
+}
+.font-icon-social-yelp:before {
+ content: "\e024";
+}
+.font-icon-social-yahoo:before {
+ content: "\e025";
+}
+.font-icon-social-wordpress:before {
+ content: "\e026";
+}
+.font-icon-social-virb:before {
+ content: "\e027";
+}
+.font-icon-social-vimeo:before {
+ content: "\e028";
+}
+.font-icon-social-viddler:before {
+ content: "\e029";
+}
+.font-icon-social-twitter:before {
+ content: "\e02a";
+}
+.font-icon-social-tumblr:before {
+ content: "\e02b";
+}
+.font-icon-social-stumbleupon:before {
+ content: "\e02c";
+}
+.font-icon-social-soundcloud:before {
+ content: "\e02d";
+}
+.font-icon-social-skype:before {
+ content: "\e02e";
+}
+.font-icon-social-share-this:before {
+ content: "\e02f";
+}
+.font-icon-social-quora:before {
+ content: "\e030";
+}
+.font-icon-social-pinterest:before {
+ content: "\e031";
+}
+.font-icon-social-photobucket:before {
+ content: "\e032";
+}
+.font-icon-social-paypal:before {
+ content: "\e033";
+}
+.font-icon-social-myspace:before {
+ content: "\e034";
+}
+.font-icon-social-linkedin:before {
+ content: "\e035";
+}
+.font-icon-social-last-fm:before {
+ content: "\e036";
+}
+.font-icon-social-grooveshark:before {
+ content: "\e037";
+}
+.font-icon-social-google-plus:before {
+ content: "\e038";
+}
+.font-icon-social-github:before {
+ content: "\e039";
+}
+.font-icon-social-forrst:before {
+ content: "\e03a";
+}
+.font-icon-social-flickr:before {
+ content: "\e03b";
+}
+.font-icon-social-facebook:before {
+ content: "\e03c";
+}
+.font-icon-social-evernote:before {
+ content: "\e03d";
+}
+.font-icon-social-envato:before {
+ content: "\e03e";
+}
+.font-icon-social-email:before {
+ content: "\e03f";
+}
+.font-icon-social-dribbble:before {
+ content: "\e040";
+}
+.font-icon-social-digg:before {
+ content: "\e041";
+}
+.font-icon-social-deviant-art:before {
+ content: "\e042";
+}
+.font-icon-social-blogger:before {
+ content: "\e043";
+}
+.font-icon-social-behance:before {
+ content: "\e044";
+}
+.font-icon-social-bebo:before {
+ content: "\e045";
+}
+.font-icon-social-addthis:before {
+ content: "\e046";
+}
+.font-icon-social-500px:before {
+ content: "\e047";
+}
+.font-icon-sitemap:before {
+ content: "\e048";
+}
+.font-icon-signout:before {
+ content: "\e049";
+}
+.font-icon-signin:before {
+ content: "\e04a";
+}
+.font-icon-signal:before {
+ content: "\e04b";
+}
+.font-icon-shopping-cart:before {
+ content: "\e04c";
+}
+.font-icon-search:before {
+ content: "\e04d";
+}
+.font-icon-rss:before {
+ content: "\e04e";
+}
+.font-icon-road:before {
+ content: "\e04f";
+}
+.font-icon-retweet:before {
+ content: "\e050";
+}
+.font-icon-resize-vertical:before {
+ content: "\e051";
+}
+.font-icon-resize-vertical-2:before {
+ content: "\e052";
+}
+.font-icon-resize-small:before {
+ content: "\e053";
+}
+.font-icon-resize-horizontal:before {
+ content: "\e054";
+}
+.font-icon-resize-horizontal-2:before {
+ content: "\e055";
+}
+.font-icon-resize-fullscreen:before {
+ content: "\e056";
+}
+.font-icon-resize-full:before {
+ content: "\e057";
+}
+.font-icon-repeat:before {
+ content: "\e058";
+}
+.font-icon-reorder:before {
+ content: "\e059";
+}
+.font-icon-remove:before {
+ content: "\e05a";
+}
+.font-icon-remove-sign:before {
+ content: "\e05b";
+}
+.font-icon-remove-circle:before {
+ content: "\e05c";
+}
+.font-icon-read-more:before {
+ content: "\e05d";
+}
+.font-icon-random:before {
+ content: "\e05e";
+}
+.font-icon-question-sign:before {
+ content: "\e05f";
+}
+.font-icon-pushpin:before {
+ content: "\e060";
+}
+.font-icon-pushpin-2:before {
+ content: "\e061";
+}
+.font-icon-print:before {
+ content: "\e062";
+}
+.font-icon-plus:before {
+ content: "\e063";
+}
+.font-icon-plus-sign:before {
+ content: "\e064";
+}
+.font-icon-play:before {
+ content: "\e065";
+}
+.font-icon-picture:before {
+ content: "\e066";
+}
+.font-icon-phone:before {
+ content: "\e067";
+}
+.font-icon-phone-sign:before {
+ content: "\e068";
+}
+.font-icon-phone-boxed:before {
+ content: "\e069";
+}
+.font-icon-pause:before {
+ content: "\e06a";
+}
+.font-icon-paste:before {
+ content: "\e06b";
+}
+.font-icon-paper-clip:before {
+ content: "\e06c";
+}
+.font-icon-ok:before {
+ content: "\e06d";
+}
+.font-icon-ok-sign:before {
+ content: "\e06e";
+}
+.font-icon-ok-circle:before {
+ content: "\e06f";
+}
+.font-icon-music:before {
+ content: "\e070";
+}
+.font-icon-move:before {
+ content: "\e071";
+}
+.font-icon-money:before {
+ content: "\e072";
+}
+.font-icon-minus:before {
+ content: "\e073";
+}
+.font-icon-minus-sign:before {
+ content: "\e074";
+}
+.font-icon-map:before {
+ content: "\e075";
+}
+.font-icon-map-marker:before {
+ content: "\e076";
+}
+.font-icon-map-marker-2:before {
+ content: "\e077";
+}
+.font-icon-magnet:before {
+ content: "\e078";
+}
+.font-icon-magic:before {
+ content: "\e079";
+}
+.font-icon-lock:before {
+ content: "\e07a";
+}
+.font-icon-list:before {
+ content: "\e07b";
+}
+.font-icon-list-3:before {
+ content: "\e07c";
+}
+.font-icon-list-2:before {
+ content: "\e07d";
+}
+.font-icon-link:before {
+ content: "\e07e";
+}
+.font-icon-layer:before {
+ content: "\e07f";
+}
+.font-icon-key:before {
+ content: "\e080";
+}
+.font-icon-italic:before {
+ content: "\e081";
+}
+.font-icon-info:before {
+ content: "\e082";
+}
+.font-icon-indent-right:before {
+ content: "\e083";
+}
+.font-icon-indent-left:before {
+ content: "\e084";
+}
+.font-icon-inbox:before {
+ content: "\e085";
+}
+.font-icon-inbox-empty:before {
+ content: "\e086";
+}
+.font-icon-home:before {
+ content: "\e087";
+}
+.font-icon-heart:before {
+ content: "\e088";
+}
+.font-icon-heart-line:before {
+ content: "\e089";
+}
+.font-icon-headphones:before {
+ content: "\e08a";
+}
+.font-icon-headphones-line:before {
+ content: "\e08b";
+}
+.font-icon-headphones-line-2:before {
+ content: "\e08c";
+}
+.font-icon-headphones-2:before {
+ content: "\e08d";
+}
+.font-icon-hdd:before {
+ content: "\e08e";
+}
+.font-icon-group:before {
+ content: "\e08f";
+}
+.font-icon-grid:before {
+ content: "\e090";
+}
+.font-icon-grid-large:before {
+ content: "\e091";
+}
+.font-icon-globe_line:before {
+ content: "\e092";
+}
+.font-icon-glass:before {
+ content: "\e093";
+}
+.font-icon-glass_2:before {
+ content: "\e094";
+}
+.font-icon-gift:before {
+ content: "\e095";
+}
+.font-icon-forward:before {
+ content: "\e096";
+}
+.font-icon-font:before {
+ content: "\e097";
+}
+.font-icon-folder-open:before {
+ content: "\e098";
+}
+.font-icon-folder-close:before {
+ content: "\e099";
+}
+.font-icon-flag:before {
+ content: "\e09a";
+}
+.font-icon-fire:before {
+ content: "\e09b";
+}
+.font-icon-film:before {
+ content: "\e09c";
+}
+.font-icon-file:before {
+ content: "\e09d";
+}
+.font-icon-file-empty:before {
+ content: "\e09e";
+}
+.font-icon-fast-forward:before {
+ content: "\e09f";
+}
+.font-icon-fast-backward:before {
+ content: "\e0a0";
+}
+.font-icon-facetime:before {
+ content: "\e0a1";
+}
+.font-icon-eye:before {
+ content: "\e0a2";
+}
+.font-icon-eye_disable:before {
+ content: "\e0a3";
+}
+.font-icon-expand-view:before {
+ content: "\e0a4";
+}
+.font-icon-expand-view-3:before {
+ content: "\e0a5";
+}
+.font-icon-expand-view-2:before {
+ content: "\e0a6";
+}
+.font-icon-expand-vertical:before {
+ content: "\e0a7";
+}
+.font-icon-expand-horizontal:before {
+ content: "\e0a8";
+}
+.font-icon-exclamation:before {
+ content: "\e0a9";
+}
+.font-icon-email:before {
+ content: "\e0aa";
+}
+.font-icon-email_2:before {
+ content: "\e0ab";
+}
+.font-icon-eject:before {
+ content: "\e0ac";
+}
+.font-icon-edit:before {
+ content: "\e0ad";
+}
+.font-icon-edit-check:before {
+ content: "\e0ae";
+}
+.font-icon-download:before {
+ content: "\e0af";
+}
+.font-icon-download_2:before {
+ content: "\e0b0";
+}
+.font-icon-dashboard:before {
+ content: "\e0b1";
+}
+.font-icon-credit-card:before {
+ content: "\e0b2";
+}
+.font-icon-copy:before {
+ content: "\e0b3";
+}
+.font-icon-comments:before {
+ content: "\e0b4";
+}
+.font-icon-comments-line:before {
+ content: "\e0b5";
+}
+.font-icon-comment:before {
+ content: "\e0b6";
+}
+.font-icon-comment-line:before {
+ content: "\e0b7";
+}
+.font-icon-columns:before {
+ content: "\e0b8";
+}
+.font-icon-columns-2:before {
+ content: "\e0b9";
+}
+.font-icon-cogs:before {
+ content: "\e0ba";
+}
+.font-icon-cog:before {
+ content: "\e0bb";
+}
+.font-icon-cloud:before {
+ content: "\e0bc";
+}
+.font-icon-check:before {
+ content: "\e0bd";
+}
+.font-icon-check-empty:before {
+ content: "\e0be";
+}
+.font-icon-certificate:before {
+ content: "\e0bf";
+}
+.font-icon-camera:before {
+ content: "\e0c0";
+}
+.font-icon-calendar:before {
+ content: "\e0c1";
+}
+.font-icon-bullhorn:before {
+ content: "\e0c2";
+}
+.font-icon-briefcase:before {
+ content: "\e0c3";
+}
+.font-icon-bookmark:before {
+ content: "\e0c4";
+}
+.font-icon-book:before {
+ content: "\e0c5";
+}
+.font-icon-bolt:before {
+ content: "\e0c6";
+}
+.font-icon-bold:before {
+ content: "\e0c7";
+}
+.font-icon-blockquote:before {
+ content: "\e0c8";
+}
+.font-icon-bell:before {
+ content: "\e0c9";
+}
+.font-icon-beaker:before {
+ content: "\e0ca";
+}
+.font-icon-barcode:before {
+ content: "\e0cb";
+}
+.font-icon-ban-circle:before {
+ content: "\e0cc";
+}
+.font-icon-ban-chart:before {
+ content: "\e0cd";
+}
+.font-icon-ban-chart-2:before {
+ content: "\e0ce";
+}
+.font-icon-backward:before {
+ content: "\e0cf";
+}
+.font-icon-asterisk:before {
+ content: "\e0d0";
+}
+.font-icon-arrow-simple-up:before {
+ content: "\e0d1";
+}
+.font-icon-arrow-simple-up-circle:before {
+ content: "\e0d2";
+}
+.font-icon-arrow-simple-right:before {
+ content: "\e0d3";
+}
+.font-icon-arrow-simple-right-circle:before {
+ content: "\e0d4";
+}
+.font-icon-arrow-simple-left:before {
+ content: "\e0d5";
+}
+.font-icon-arrow-simple-left-circle:before {
+ content: "\e0d6";
+}
+.font-icon-arrow-simple-down:before {
+ content: "\e0d7";
+}
+.font-icon-arrow-simple-down-circle:before {
+ content: "\e0d8";
+}
+.font-icon-arrow-round-up:before {
+ content: "\e0d9";
+}
+.font-icon-arrow-round-up-circle:before {
+ content: "\e0da";
+}
+.font-icon-arrow-round-right:before {
+ content: "\e0db";
+}
+.font-icon-arrow-round-right-circle:before {
+ content: "\e0dc";
+}
+.font-icon-arrow-round-left:before {
+ content: "\e0dd";
+}
+.font-icon-arrow-round-left-circle:before {
+ content: "\e0de";
+}
+.font-icon-arrow-round-down:before {
+ content: "\e0df";
+}
+.font-icon-arrow-round-down-circle:before {
+ content: "\e0e0";
+}
+.font-icon-arrow-light-up:before {
+ content: "\e0e1";
+}
+.font-icon-arrow-light-round-up:before {
+ content: "\e0e2";
+}
+.font-icon-arrow-light-round-up-circle:before {
+ content: "\e0e3";
+}
+.font-icon-arrow-light-round-right:before {
+ content: "\e0e4";
+}
+.font-icon-arrow-light-round-right-circle:before {
+ content: "\e0e5";
+}
+.font-icon-arrow-light-round-left:before {
+ content: "\e0e6";
+}
+.font-icon-arrow-light-round-left-circle:before {
+ content: "\e0e7";
+}
+.font-icon-arrow-light-round-down:before {
+ content: "\e0e8";
+}
+.font-icon-arrow-light-round-down-circle:before {
+ content: "\e0e9";
+}
+.font-icon-arrow-light-right:before {
+ content: "\e0ea";
+}
+.font-icon-arrow-light-left:before {
+ content: "\e0eb";
+}
+.font-icon-arrow-light-down:before {
+ content: "\e0ec";
+}
+.font-icon-align-right:before {
+ content: "\e0ed";
+}
+.font-icon-align-left:before {
+ content: "\e0ee";
+}
+.font-icon-align-justify:before {
+ content: "\e0ef";
+}
+.font-icon-align-center:before {
+ content: "\e0f0";
+}
+.font-icon-adjust:before {
+ content: "\e0f1";
+}
diff --git a/backend/tests/integration/tests/pruning/website/css/fancybox/blank.gif b/backend/tests/integration/tests/pruning/website/css/fancybox/blank.gif
new file mode 100644
index 0000000000..35d42e808f
Binary files /dev/null and b/backend/tests/integration/tests/pruning/website/css/fancybox/blank.gif differ
diff --git a/backend/tests/integration/tests/pruning/website/css/fancybox/fancybox_loading.gif b/backend/tests/integration/tests/pruning/website/css/fancybox/fancybox_loading.gif
new file mode 100644
index 0000000000..01586176d7
Binary files /dev/null and b/backend/tests/integration/tests/pruning/website/css/fancybox/fancybox_loading.gif differ
diff --git a/backend/tests/integration/tests/pruning/website/css/fancybox/fancybox_overlay.png b/backend/tests/integration/tests/pruning/website/css/fancybox/fancybox_overlay.png
new file mode 100644
index 0000000000..a4391396a9
Binary files /dev/null and b/backend/tests/integration/tests/pruning/website/css/fancybox/fancybox_overlay.png differ
diff --git a/backend/tests/integration/tests/pruning/website/css/fancybox/fancybox_sprite.png b/backend/tests/integration/tests/pruning/website/css/fancybox/fancybox_sprite.png
new file mode 100644
index 0000000000..fd8d5ca566
Binary files /dev/null and b/backend/tests/integration/tests/pruning/website/css/fancybox/fancybox_sprite.png differ
diff --git a/backend/tests/integration/tests/pruning/website/css/fancybox/jquery.fancybox.css b/backend/tests/integration/tests/pruning/website/css/fancybox/jquery.fancybox.css
new file mode 100644
index 0000000000..a20015ff68
--- /dev/null
+++ b/backend/tests/integration/tests/pruning/website/css/fancybox/jquery.fancybox.css
@@ -0,0 +1,349 @@
+/*! fancyBox v2.1.4 fancyapps.com | fancyapps.com/fancybox/#license */
+.fancybox-wrap,
+.fancybox-skin,
+.fancybox-outer,
+.fancybox-inner,
+.fancybox-image,
+.fancybox-wrap iframe,
+.fancybox-wrap object,
+.fancybox-nav,
+.fancybox-nav span,
+.fancybox-tmp {
+ padding: 0;
+ margin: 0;
+ border: 0;
+ outline: none;
+ vertical-align: top;
+}
+
+.fancybox-wrap {
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 8020;
+}
+
+.fancybox-skin {
+ position: relative;
+ background: #2f3238;
+ color: #565656;
+ text-shadow: none;
+ -webkit-border-radius: 0;
+ -moz-border-radius: 0;
+ border-radius: 0;
+}
+
+.fancybox-opened {
+ z-index: 8030;
+}
+
+.fancybox-opened .fancybox-skin {
+ -webkit-box-shadow: none;
+ -moz-box-shadow: none;
+ box-shadow: none;
+}
+
+.fancybox-outer,
+.fancybox-inner {
+ position: relative;
+}
+
+.fancybox-inner {
+ overflow: hidden;
+}
+
+.fancybox-type-iframe .fancybox-inner {
+ -webkit-overflow-scrolling: touch;
+}
+
+.fancybox-error {
+ color: #444;
+ font-size: 14px;
+ line-height: 20px;
+ margin: 0;
+ padding: 15px;
+ white-space: nowrap;
+}
+
+.fancybox-image,
+.fancybox-iframe {
+ display: block;
+ width: 100%;
+ height: 100%;
+}
+
+.fancybox-image {
+ max-width: 100%;
+ max-height: 100%;
+}
+
+#fancybox-loading,
+.fancybox-close,
+.fancybox-prev span,
+.fancybox-next span {
+ background-image: url("fancybox_sprite.png") !important;
+}
+
+#fancybox-loading {
+ position: fixed;
+ top: 50%;
+ left: 50%;
+ margin-top: -22px;
+ margin-left: -22px;
+ background-position: 0 -108px;
+ opacity: 0.8;
+ cursor: pointer;
+ z-index: 8060;
+}
+
+#fancybox-loading div {
+ width: 44px;
+ height: 44px;
+ background: url("fancybox_loading.gif") center center no-repeat;
+}
+
+.fancybox-close {
+ position: absolute;
+ right: 0;
+ top: 0;
+ width: 40px;
+ height: 38px;
+ cursor: pointer;
+ z-index: 9000;
+ background-image: none;
+
+ opacity: 0.5;
+
+ -webkit-transition:
+ background 0.1s linear 0s,
+ opacity 0.1s linear 0s;
+ -moz-transition:
+ background 0.1s linear 0s,
+ opacity 0.1s linear 0s;
+ -o-transition:
+ background 0.1s linear 0s,
+ opacity 0.1s linear 0s;
+ transition:
+ background 0.1s linear 0s,
+ opacity 0.1s linear 0s;
+}
+
+.fancybox-close i {
+ left: 50%;
+ top: 50%;
+ margin: -11px 0 0 -11px;
+ font-size: 22px;
+ line-height: 1em;
+ position: absolute;
+ color: #ffffff;
+}
+
+.fancybox-close:hover {
+ opacity: 1;
+}
+
+.fancybox-nav {
+ position: absolute;
+ top: 0;
+ height: 100%;
+ cursor: pointer;
+ text-decoration: none;
+ background: transparent url("blank.gif"); /* helps IE */
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+ z-index: 8040;
+}
+
+.fancybox-prev,
+.fancybox-prev span {
+ left: 0;
+}
+
+.fancybox-next,
+.fancybox-next span {
+ right: 0;
+}
+
+.fancybox-nav span {
+ position: absolute;
+ top: 50%;
+ width: 44px;
+ height: 32px;
+ margin-top: -25px;
+ cursor: pointer;
+ z-index: 8040;
+ background-image: none;
+ background-color: #26292e;
+ background-position-y: -38px;
+ opacity: 0.5;
+
+ -webkit-transition:
+ background 0.1s linear 0s,
+ opacity 0.1s linear 0s;
+ -moz-transition:
+ background 0.1s linear 0s,
+ opacity 0.1s linear 0s;
+ -o-transition:
+ background 0.1s linear 0s,
+ opacity 0.1s linear 0s;
+ transition:
+ background 0.1s linear 0s,
+ opacity 0.1s linear 0s;
+}
+.fancybox-next span {
+ background-position-y: -72px;
+}
+.fancybox-prev span i {
+ left: 50%;
+ top: 50%;
+ margin: -15px 0 0 -17px;
+ font-size: 30px;
+ line-height: 1em;
+ position: absolute;
+ color: #ffffff;
+}
+
+.fancybox-next span i {
+ left: 50%;
+ top: 50%;
+ margin: -15px 0 0 -15px;
+ font-size: 30px;
+ line-height: 1em;
+ position: absolute;
+ color: #ffffff;
+}
+
+.fancybox-nav:hover span {
+ opacity: 1;
+}
+
+.fancybox-tmp {
+ position: absolute;
+ top: -99999px;
+ left: -99999px;
+ visibility: hidden;
+ max-width: 99999px;
+ max-height: 99999px;
+ overflow: visible !important;
+}
+
+/* Overlay helper */
+
+.fancybox-lock {
+ margin: 0 !important;
+}
+
+.fancybox-overlay {
+ position: absolute;
+ top: 0;
+ left: 0;
+ overflow: hidden !important;
+ display: none;
+ z-index: 8010;
+ background: url("fancybox_overlay.png");
+}
+
+.fancybox-overlay-fixed {
+ position: fixed;
+ bottom: 0;
+ right: 0;
+}
+
+.fancybox-lock .fancybox-overlay {
+ overflow: auto;
+ overflow-y: scroll;
+}
+
+/* Title helper */
+
+.fancybox-title {
+ visibility: hidden;
+ position: relative;
+ text-shadow: none;
+ z-index: 8050;
+}
+
+.fancybox-opened .fancybox-title {
+ visibility: visible;
+}
+
+.fancybox-opened .fancybox-title h4 {
+ font-size: 24px;
+ color: #fff;
+ font-weight: 300;
+ margin-bottom: 10px;
+}
+
+.fancybox-opened .fancybox-title p {
+ font-size: 16px;
+ font-weight: 300;
+ color: #bbb;
+ line-height: 1.6em;
+ margin-bottom: 0;
+}
+
+.fancybox-title-float-wrap {
+ position: absolute;
+ bottom: 0;
+ right: 50%;
+ margin-bottom: -35px;
+ z-index: 8050;
+ text-align: center;
+}
+
+.fancybox-title-float-wrap .child {
+ display: inline-block;
+ margin-right: -100%;
+ padding: 2px 20px;
+ background: transparent; /* Fallback for web browsers that doesn't support RGBa */
+ background: rgba(0, 0, 0, 0.8);
+ -webkit-border-radius: 15px;
+ -moz-border-radius: 15px;
+ border-radius: 15px;
+ text-shadow: 0 1px 2px #222;
+ color: #fff;
+ font-weight: bold;
+ line-height: 24px;
+ white-space: nowrap;
+}
+
+.fancybox-title-outside-wrap {
+ position: relative;
+ margin-top: 10px;
+ color: #fff;
+}
+
+.fancybox-title-inside-wrap {
+ padding: 3px 30px 6px;
+ background: #61b331;
+}
+
+.fancybox-title-over-wrap {
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ color: #fff;
+ padding: 10px;
+ background: #000;
+ background: rgba(0, 0, 0, 0.8);
+}
+
+@media (max-width: 480px) {
+ .fancybox-nav span,
+ .fancybox-nav:hover span,
+ .fancybox-close,
+ .fancybox-close:hover {
+ background: transparent;
+ }
+
+ .fancybox-close i {
+ left: 70px;
+ top: 10px;
+ }
+}
+
+@media (max-width: 320px) {
+ .fancybox-close i {
+ left: 30px;
+ top: 20px;
+ }
+}
diff --git a/backend/tests/integration/tests/pruning/website/css/flexslider.css b/backend/tests/integration/tests/pruning/website/css/flexslider.css
new file mode 100644
index 0000000000..6088235631
--- /dev/null
+++ b/backend/tests/integration/tests/pruning/website/css/flexslider.css
@@ -0,0 +1,226 @@
+/*
+ * jQuery FlexSlider v2.0
+ * http://www.woothemes.com/flexslider/
+ *
+ * Copyright 2012 WooThemes
+ * Free to use under the GPLv2 license.
+ * http://www.gnu.org/licenses/gpl-2.0.html
+ *
+ * Contributing author: Tyler Smith (@mbmufffin)
+ */
+
+/* Browser Resets */
+.flex-container a:active,
+.flexslider a:active,
+.flex-container a:focus,
+.flexslider a:focus {
+ outline: none;
+}
+.slides,
+.flex-control-nav,
+.flex-direction-nav {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+}
+
+/* FlexSlider Necessary Styles
+*********************************/
+.flexslider {
+ margin: 0;
+ padding: 0;
+}
+.flexslider .slides > li {
+ display: none;
+ -webkit-backface-visibility: hidden;
+} /* Hide the slides before the JS is loaded. Avoids image jumping */
+.flexslider .slides img {
+ width: 100%;
+ display: block;
+}
+.flex-pauseplay span {
+ text-transform: capitalize;
+}
+
+/* Clearfix for the .slides element */
+.slides:after {
+ content: ".";
+ display: block;
+ clear: both;
+ visibility: hidden;
+ line-height: 0;
+ height: 0;
+}
+html[xmlns] .slides {
+ display: block;
+}
+* html .slides {
+ height: 1%;
+}
+
+/* No JavaScript Fallback */
+/* If you are not using another script, such as Modernizr, make sure you
+ * include js that eliminates this class on page load */
+.no-js .slides > li:first-child {
+ display: block;
+}
+
+/* FlexSlider Default Theme
+*********************************/
+.flexslider {
+ background: none;
+ position: relative;
+ zoom: 1;
+}
+.flex-viewport {
+ max-height: 2000px;
+ -webkit-transition: all 1s ease;
+ -moz-transition: all 1s ease;
+ transition: all 1s ease;
+}
+.loading .flex-viewport {
+ max-height: 300px;
+}
+.flexslider .slides {
+ zoom: 1;
+}
+
+.carousel li {
+ margin-right: 5px;
+}
+
+/* Caption style */
+
+.flex-caption {
+ background: rgba(0, 0, 0, 0.8);
+ margin-left: 5px;
+ bottom: 5px;
+ position: absolute;
+ padding: 20px;
+ z-index: 99;
+}
+.flex-caption p {
+ font-size: 14px !important;
+ line-height: 22px;
+ font-weight: 300;
+ color: #fff;
+}
+.flex-caption h2,
+.flex-caption h4 {
+ color: #fff;
+}
+
+/* Direction Nav */
+.flex-direction-nav {
+ *height: 0;
+}
+.flex-direction-nav a {
+ width: 30px;
+ height: 40px;
+ margin: 0;
+ display: block;
+ background: url(../img/bg_direction_nav.png) no-repeat 0 0;
+ position: absolute;
+ top: 45%;
+ z-index: 10;
+ cursor: pointer;
+ text-indent: -9999px;
+ opacity: 0;
+ -webkit-transition: all 0.3s ease;
+}
+.flex-direction-nav .flex-next {
+ background-position: 100% 0;
+ right: -36px;
+}
+.flex-direction-nav .flex-prev {
+ left: -36px;
+}
+.flexslider:hover .flex-next {
+ opacity: 0.8;
+ right: 5px;
+}
+.flexslider:hover .flex-prev {
+ opacity: 0.8;
+ left: 5px;
+}
+.flexslider:hover .flex-next:hover,
+.flexslider:hover .flex-prev:hover {
+ opacity: 1;
+}
+.flex-direction-nav .flex-disabled {
+ opacity: 0.3 !important;
+ filter: alpha(opacity=30);
+ cursor: default;
+}
+
+/* Control Nav */
+.flex-control-nav {
+ width: 100%;
+ position: absolute;
+ bottom: 0;
+ text-align: center;
+}
+.flex-control-nav li {
+ margin: 0 6px;
+ display: inline-block;
+ zoom: 1;
+ *display: inline;
+}
+.flex-control-paging li a {
+ width: 11px;
+ height: 11px;
+ display: block;
+ background: #666;
+ background: rgba(0, 0, 0, 0.5);
+ cursor: pointer;
+ text-indent: -9999px;
+ -webkit-border-radius: 20px;
+ -moz-border-radius: 20px;
+ -o-border-radius: 20px;
+ border-radius: 20px;
+ box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.3);
+}
+.flex-control-paging li a:hover {
+ background: #333;
+ background: rgba(0, 0, 0, 0.7);
+}
+.flex-control-paging li a.flex-active {
+ background: #000;
+ background: rgba(0, 0, 0, 0.9);
+ cursor: default;
+}
+
+.flex-control-thumbs {
+ margin: 5px 0 0;
+ position: static;
+ overflow: hidden;
+}
+.flex-control-thumbs li {
+ width: 25%;
+ float: left;
+ margin: 0;
+}
+.flex-control-thumbs img {
+ width: 100%;
+ display: block;
+ opacity: 0.7;
+ cursor: pointer;
+}
+.flex-control-thumbs img:hover {
+ opacity: 1;
+}
+.flex-control-thumbs .flex-active {
+ opacity: 1;
+ cursor: default;
+}
+
+@media screen and (max-width: 860px) {
+ .flex-direction-nav .flex-prev {
+ opacity: 1;
+ left: 0;
+ }
+ .flex-direction-nav .flex-next {
+ opacity: 1;
+ right: 0;
+ }
+}
diff --git a/backend/tests/integration/tests/pruning/website/css/font-awesome.css b/backend/tests/integration/tests/pruning/website/css/font-awesome.css
new file mode 100644
index 0000000000..49a13c9a58
--- /dev/null
+++ b/backend/tests/integration/tests/pruning/website/css/font-awesome.css
@@ -0,0 +1,1344 @@
+/*!
+ * Font Awesome 4.0.3 by @davegandy - http://fontawesome.io - @fontawesome
+ * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
+ */
+/* FONT PATH
+ * -------------------------- */
+@font-face {
+ font-family: "FontAwesome";
+ src: url("../fonts/fontawesome-webfont.eot?v=4.0.3");
+ src:
+ url("../fonts/fontawesome-webfont.eot?#iefix&v=4.0.3")
+ format("embedded-opentype"),
+ url("../fonts/fontawesome-webfont.woff?v=4.0.3") format("woff"),
+ url("../fonts/fontawesome-webfont.ttf?v=4.0.3") format("truetype"),
+ url("../fonts/fontawesome-webfont.svg?v=4.0.3#fontawesomeregular")
+ format("svg");
+ font-weight: normal;
+ font-style: normal;
+}
+.fa {
+ display: inline-block;
+ font-family: FontAwesome;
+ font-style: normal;
+ font-weight: normal;
+ line-height: 1;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+/* makes the font 33% larger relative to the icon container */
+.fa-lg {
+ font-size: 1.3333333333333333em;
+ line-height: 0.75em;
+ vertical-align: -15%;
+}
+.fa-2x {
+ font-size: 2em;
+}
+.fa-3x {
+ font-size: 3em;
+}
+.fa-4x {
+ font-size: 4em;
+}
+.fa-5x {
+ font-size: 5em;
+}
+.fa-fw {
+ width: 1.2857142857142858em;
+ text-align: center;
+}
+.fa-ul {
+ padding-left: 0;
+ margin-left: 2.142857142857143em;
+ list-style-type: none;
+}
+.fa-ul > li {
+ position: relative;
+}
+.fa-li {
+ position: absolute;
+ left: -2.142857142857143em;
+ width: 2.142857142857143em;
+ top: 0.14285714285714285em;
+ text-align: center;
+}
+.fa-li.fa-lg {
+ left: -1.8571428571428572em;
+}
+.fa-border {
+ padding: 0.2em 0.25em 0.15em;
+ border: solid 0.08em #eeeeee;
+ border-radius: 0.1em;
+}
+.pull-right {
+ float: right;
+}
+.pull-left {
+ float: left;
+}
+.fa.pull-left {
+ margin-right: 0.3em;
+}
+.fa.pull-right {
+ margin-left: 0.3em;
+}
+.fa-spin {
+ -webkit-animation: spin 2s infinite linear;
+ -moz-animation: spin 2s infinite linear;
+ -o-animation: spin 2s infinite linear;
+ animation: spin 2s infinite linear;
+}
+@-moz-keyframes spin {
+ 0% {
+ -moz-transform: rotate(0deg);
+ }
+ 100% {
+ -moz-transform: rotate(359deg);
+ }
+}
+@-webkit-keyframes spin {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ }
+ 100% {
+ -webkit-transform: rotate(359deg);
+ }
+}
+@-o-keyframes spin {
+ 0% {
+ -o-transform: rotate(0deg);
+ }
+ 100% {
+ -o-transform: rotate(359deg);
+ }
+}
+@-ms-keyframes spin {
+ 0% {
+ -ms-transform: rotate(0deg);
+ }
+ 100% {
+ -ms-transform: rotate(359deg);
+ }
+}
+@keyframes spin {
+ 0% {
+ transform: rotate(0deg);
+ }
+ 100% {
+ transform: rotate(359deg);
+ }
+}
+.fa-rotate-90 {
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
+ -webkit-transform: rotate(90deg);
+ -moz-transform: rotate(90deg);
+ -ms-transform: rotate(90deg);
+ -o-transform: rotate(90deg);
+ transform: rotate(90deg);
+}
+.fa-rotate-180 {
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
+ -webkit-transform: rotate(180deg);
+ -moz-transform: rotate(180deg);
+ -ms-transform: rotate(180deg);
+ -o-transform: rotate(180deg);
+ transform: rotate(180deg);
+}
+.fa-rotate-270 {
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
+ -webkit-transform: rotate(270deg);
+ -moz-transform: rotate(270deg);
+ -ms-transform: rotate(270deg);
+ -o-transform: rotate(270deg);
+ transform: rotate(270deg);
+}
+.fa-flip-horizontal {
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
+ -webkit-transform: scale(-1, 1);
+ -moz-transform: scale(-1, 1);
+ -ms-transform: scale(-1, 1);
+ -o-transform: scale(-1, 1);
+ transform: scale(-1, 1);
+}
+.fa-flip-vertical {
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
+ -webkit-transform: scale(1, -1);
+ -moz-transform: scale(1, -1);
+ -ms-transform: scale(1, -1);
+ -o-transform: scale(1, -1);
+ transform: scale(1, -1);
+}
+.fa-stack {
+ position: relative;
+ display: inline-block;
+ width: 2em;
+ height: 2em;
+ line-height: 2em;
+ vertical-align: middle;
+}
+.fa-stack-1x,
+.fa-stack-2x {
+ position: absolute;
+ left: 0;
+ width: 100%;
+ text-align: center;
+}
+.fa-stack-1x {
+ line-height: inherit;
+}
+.fa-stack-2x {
+ font-size: 2em;
+}
+.fa-inverse {
+ color: #ffffff;
+}
+/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
+ readers do not read off random characters that represent icons */
+.fa-glass:before {
+ content: "\f000";
+}
+.fa-music:before {
+ content: "\f001";
+}
+.fa-search:before {
+ content: "\f002";
+}
+.fa-envelope-o:before {
+ content: "\f003";
+}
+.fa-heart:before {
+ content: "\f004";
+}
+.fa-star:before {
+ content: "\f005";
+}
+.fa-star-o:before {
+ content: "\f006";
+}
+.fa-user:before {
+ content: "\f007";
+}
+.fa-film:before {
+ content: "\f008";
+}
+.fa-th-large:before {
+ content: "\f009";
+}
+.fa-th:before {
+ content: "\f00a";
+}
+.fa-th-list:before {
+ content: "\f00b";
+}
+.fa-check:before {
+ content: "\f00c";
+}
+.fa-times:before {
+ content: "\f00d";
+}
+.fa-search-plus:before {
+ content: "\f00e";
+}
+.fa-search-minus:before {
+ content: "\f010";
+}
+.fa-power-off:before {
+ content: "\f011";
+}
+.fa-signal:before {
+ content: "\f012";
+}
+.fa-gear:before,
+.fa-cog:before {
+ content: "\f013";
+}
+.fa-trash-o:before {
+ content: "\f014";
+}
+.fa-home:before {
+ content: "\f015";
+}
+.fa-file-o:before {
+ content: "\f016";
+}
+.fa-clock-o:before {
+ content: "\f017";
+}
+.fa-road:before {
+ content: "\f018";
+}
+.fa-download:before {
+ content: "\f019";
+}
+.fa-arrow-circle-o-down:before {
+ content: "\f01a";
+}
+.fa-arrow-circle-o-up:before {
+ content: "\f01b";
+}
+.fa-inbox:before {
+ content: "\f01c";
+}
+.fa-play-circle-o:before {
+ content: "\f01d";
+}
+.fa-rotate-right:before,
+.fa-repeat:before {
+ content: "\f01e";
+}
+.fa-refresh:before {
+ content: "\f021";
+}
+.fa-list-alt:before {
+ content: "\f022";
+}
+.fa-lock:before {
+ content: "\f023";
+}
+.fa-flag:before {
+ content: "\f024";
+}
+.fa-headphones:before {
+ content: "\f025";
+}
+.fa-volume-off:before {
+ content: "\f026";
+}
+.fa-volume-down:before {
+ content: "\f027";
+}
+.fa-volume-up:before {
+ content: "\f028";
+}
+.fa-qrcode:before {
+ content: "\f029";
+}
+.fa-barcode:before {
+ content: "\f02a";
+}
+.fa-tag:before {
+ content: "\f02b";
+}
+.fa-tags:before {
+ content: "\f02c";
+}
+.fa-book:before {
+ content: "\f02d";
+}
+.fa-bookmark:before {
+ content: "\f02e";
+}
+.fa-print:before {
+ content: "\f02f";
+}
+.fa-camera:before {
+ content: "\f030";
+}
+.fa-font:before {
+ content: "\f031";
+}
+.fa-bold:before {
+ content: "\f032";
+}
+.fa-italic:before {
+ content: "\f033";
+}
+.fa-text-height:before {
+ content: "\f034";
+}
+.fa-text-width:before {
+ content: "\f035";
+}
+.fa-align-left:before {
+ content: "\f036";
+}
+.fa-align-center:before {
+ content: "\f037";
+}
+.fa-align-right:before {
+ content: "\f038";
+}
+.fa-align-justify:before {
+ content: "\f039";
+}
+.fa-list:before {
+ content: "\f03a";
+}
+.fa-dedent:before,
+.fa-outdent:before {
+ content: "\f03b";
+}
+.fa-indent:before {
+ content: "\f03c";
+}
+.fa-video-camera:before {
+ content: "\f03d";
+}
+.fa-picture-o:before {
+ content: "\f03e";
+}
+.fa-pencil:before {
+ content: "\f040";
+}
+.fa-map-marker:before {
+ content: "\f041";
+}
+.fa-adjust:before {
+ content: "\f042";
+}
+.fa-tint:before {
+ content: "\f043";
+}
+.fa-edit:before,
+.fa-pencil-square-o:before {
+ content: "\f044";
+}
+.fa-share-square-o:before {
+ content: "\f045";
+}
+.fa-check-square-o:before {
+ content: "\f046";
+}
+.fa-arrows:before {
+ content: "\f047";
+}
+.fa-step-backward:before {
+ content: "\f048";
+}
+.fa-fast-backward:before {
+ content: "\f049";
+}
+.fa-backward:before {
+ content: "\f04a";
+}
+.fa-play:before {
+ content: "\f04b";
+}
+.fa-pause:before {
+ content: "\f04c";
+}
+.fa-stop:before {
+ content: "\f04d";
+}
+.fa-forward:before {
+ content: "\f04e";
+}
+.fa-fast-forward:before {
+ content: "\f050";
+}
+.fa-step-forward:before {
+ content: "\f051";
+}
+.fa-eject:before {
+ content: "\f052";
+}
+.fa-chevron-left:before {
+ content: "\f053";
+}
+.fa-chevron-right:before {
+ content: "\f054";
+}
+.fa-plus-circle:before {
+ content: "\f055";
+}
+.fa-minus-circle:before {
+ content: "\f056";
+}
+.fa-times-circle:before {
+ content: "\f057";
+}
+.fa-check-circle:before {
+ content: "\f058";
+}
+.fa-question-circle:before {
+ content: "\f059";
+}
+.fa-info-circle:before {
+ content: "\f05a";
+}
+.fa-crosshairs:before {
+ content: "\f05b";
+}
+.fa-times-circle-o:before {
+ content: "\f05c";
+}
+.fa-check-circle-o:before {
+ content: "\f05d";
+}
+.fa-ban:before {
+ content: "\f05e";
+}
+.fa-arrow-left:before {
+ content: "\f060";
+}
+.fa-arrow-right:before {
+ content: "\f061";
+}
+.fa-arrow-up:before {
+ content: "\f062";
+}
+.fa-arrow-down:before {
+ content: "\f063";
+}
+.fa-mail-forward:before,
+.fa-share:before {
+ content: "\f064";
+}
+.fa-expand:before {
+ content: "\f065";
+}
+.fa-compress:before {
+ content: "\f066";
+}
+.fa-plus:before {
+ content: "\f067";
+}
+.fa-minus:before {
+ content: "\f068";
+}
+.fa-asterisk:before {
+ content: "\f069";
+}
+.fa-exclamation-circle:before {
+ content: "\f06a";
+}
+.fa-gift:before {
+ content: "\f06b";
+}
+.fa-leaf:before {
+ content: "\f06c";
+}
+.fa-fire:before {
+ content: "\f06d";
+}
+.fa-eye:before {
+ content: "\f06e";
+}
+.fa-eye-slash:before {
+ content: "\f070";
+}
+.fa-warning:before,
+.fa-exclamation-triangle:before {
+ content: "\f071";
+}
+.fa-plane:before {
+ content: "\f072";
+}
+.fa-calendar:before {
+ content: "\f073";
+}
+.fa-random:before {
+ content: "\f074";
+}
+.fa-comment:before {
+ content: "\f075";
+}
+.fa-magnet:before {
+ content: "\f076";
+}
+.fa-chevron-up:before {
+ content: "\f077";
+}
+.fa-chevron-down:before {
+ content: "\f078";
+}
+.fa-retweet:before {
+ content: "\f079";
+}
+.fa-shopping-cart:before {
+ content: "\f07a";
+}
+.fa-folder:before {
+ content: "\f07b";
+}
+.fa-folder-open:before {
+ content: "\f07c";
+}
+.fa-arrows-v:before {
+ content: "\f07d";
+}
+.fa-arrows-h:before {
+ content: "\f07e";
+}
+.fa-bar-chart-o:before {
+ content: "\f080";
+}
+.fa-twitter-square:before {
+ content: "\f081";
+}
+.fa-facebook-square:before {
+ content: "\f082";
+}
+.fa-camera-retro:before {
+ content: "\f083";
+}
+.fa-key:before {
+ content: "\f084";
+}
+.fa-gears:before,
+.fa-cogs:before {
+ content: "\f085";
+}
+.fa-comments:before {
+ content: "\f086";
+}
+.fa-thumbs-o-up:before {
+ content: "\f087";
+}
+.fa-thumbs-o-down:before {
+ content: "\f088";
+}
+.fa-star-half:before {
+ content: "\f089";
+}
+.fa-heart-o:before {
+ content: "\f08a";
+}
+.fa-sign-out:before {
+ content: "\f08b";
+}
+.fa-linkedin-square:before {
+ content: "\f08c";
+}
+.fa-thumb-tack:before {
+ content: "\f08d";
+}
+.fa-external-link:before {
+ content: "\f08e";
+}
+.fa-sign-in:before {
+ content: "\f090";
+}
+.fa-trophy:before {
+ content: "\f091";
+}
+.fa-github-square:before {
+ content: "\f092";
+}
+.fa-upload:before {
+ content: "\f093";
+}
+.fa-lemon-o:before {
+ content: "\f094";
+}
+.fa-phone:before {
+ content: "\f095";
+}
+.fa-square-o:before {
+ content: "\f096";
+}
+.fa-bookmark-o:before {
+ content: "\f097";
+}
+.fa-phone-square:before {
+ content: "\f098";
+}
+.fa-twitter:before {
+ content: "\f099";
+}
+.fa-facebook:before {
+ content: "\f09a";
+}
+.fa-github:before {
+ content: "\f09b";
+}
+.fa-unlock:before {
+ content: "\f09c";
+}
+.fa-credit-card:before {
+ content: "\f09d";
+}
+.fa-rss:before {
+ content: "\f09e";
+}
+.fa-hdd-o:before {
+ content: "\f0a0";
+}
+.fa-bullhorn:before {
+ content: "\f0a1";
+}
+.fa-bell:before {
+ content: "\f0f3";
+}
+.fa-certificate:before {
+ content: "\f0a3";
+}
+.fa-hand-o-right:before {
+ content: "\f0a4";
+}
+.fa-hand-o-left:before {
+ content: "\f0a5";
+}
+.fa-hand-o-up:before {
+ content: "\f0a6";
+}
+.fa-hand-o-down:before {
+ content: "\f0a7";
+}
+.fa-arrow-circle-left:before {
+ content: "\f0a8";
+}
+.fa-arrow-circle-right:before {
+ content: "\f0a9";
+}
+.fa-arrow-circle-up:before {
+ content: "\f0aa";
+}
+.fa-arrow-circle-down:before {
+ content: "\f0ab";
+}
+.fa-globe:before {
+ content: "\f0ac";
+}
+.fa-wrench:before {
+ content: "\f0ad";
+}
+.fa-tasks:before {
+ content: "\f0ae";
+}
+.fa-filter:before {
+ content: "\f0b0";
+}
+.fa-briefcase:before {
+ content: "\f0b1";
+}
+.fa-arrows-alt:before {
+ content: "\f0b2";
+}
+.fa-group:before,
+.fa-users:before {
+ content: "\f0c0";
+}
+.fa-chain:before,
+.fa-link:before {
+ content: "\f0c1";
+}
+.fa-cloud:before {
+ content: "\f0c2";
+}
+.fa-flask:before {
+ content: "\f0c3";
+}
+.fa-cut:before,
+.fa-scissors:before {
+ content: "\f0c4";
+}
+.fa-copy:before,
+.fa-files-o:before {
+ content: "\f0c5";
+}
+.fa-paperclip:before {
+ content: "\f0c6";
+}
+.fa-save:before,
+.fa-floppy-o:before {
+ content: "\f0c7";
+}
+.fa-square:before {
+ content: "\f0c8";
+}
+.fa-bars:before {
+ content: "\f0c9";
+}
+.fa-list-ul:before {
+ content: "\f0ca";
+}
+.fa-list-ol:before {
+ content: "\f0cb";
+}
+.fa-strikethrough:before {
+ content: "\f0cc";
+}
+.fa-underline:before {
+ content: "\f0cd";
+}
+.fa-table:before {
+ content: "\f0ce";
+}
+.fa-magic:before {
+ content: "\f0d0";
+}
+.fa-truck:before {
+ content: "\f0d1";
+}
+.fa-pinterest:before {
+ content: "\f0d2";
+}
+.fa-pinterest-square:before {
+ content: "\f0d3";
+}
+.fa-google-plus-square:before {
+ content: "\f0d4";
+}
+.fa-google-plus:before {
+ content: "\f0d5";
+}
+.fa-money:before {
+ content: "\f0d6";
+}
+.fa-caret-down:before {
+ content: "\f0d7";
+}
+.fa-caret-up:before {
+ content: "\f0d8";
+}
+.fa-caret-left:before {
+ content: "\f0d9";
+}
+.fa-caret-right:before {
+ content: "\f0da";
+}
+.fa-columns:before {
+ content: "\f0db";
+}
+.fa-unsorted:before,
+.fa-sort:before {
+ content: "\f0dc";
+}
+.fa-sort-down:before,
+.fa-sort-asc:before {
+ content: "\f0dd";
+}
+.fa-sort-up:before,
+.fa-sort-desc:before {
+ content: "\f0de";
+}
+.fa-envelope:before {
+ content: "\f0e0";
+}
+.fa-linkedin:before {
+ content: "\f0e1";
+}
+.fa-rotate-left:before,
+.fa-undo:before {
+ content: "\f0e2";
+}
+.fa-legal:before,
+.fa-gavel:before {
+ content: "\f0e3";
+}
+.fa-dashboard:before,
+.fa-tachometer:before {
+ content: "\f0e4";
+}
+.fa-comment-o:before {
+ content: "\f0e5";
+}
+.fa-comments-o:before {
+ content: "\f0e6";
+}
+.fa-flash:before,
+.fa-bolt:before {
+ content: "\f0e7";
+}
+.fa-sitemap:before {
+ content: "\f0e8";
+}
+.fa-umbrella:before {
+ content: "\f0e9";
+}
+.fa-paste:before,
+.fa-clipboard:before {
+ content: "\f0ea";
+}
+.fa-lightbulb-o:before {
+ content: "\f0eb";
+}
+.fa-exchange:before {
+ content: "\f0ec";
+}
+.fa-cloud-download:before {
+ content: "\f0ed";
+}
+.fa-cloud-upload:before {
+ content: "\f0ee";
+}
+.fa-user-md:before {
+ content: "\f0f0";
+}
+.fa-stethoscope:before {
+ content: "\f0f1";
+}
+.fa-suitcase:before {
+ content: "\f0f2";
+}
+.fa-bell-o:before {
+ content: "\f0a2";
+}
+.fa-coffee:before {
+ content: "\f0f4";
+}
+.fa-cutlery:before {
+ content: "\f0f5";
+}
+.fa-file-text-o:before {
+ content: "\f0f6";
+}
+.fa-building-o:before {
+ content: "\f0f7";
+}
+.fa-hospital-o:before {
+ content: "\f0f8";
+}
+.fa-ambulance:before {
+ content: "\f0f9";
+}
+.fa-medkit:before {
+ content: "\f0fa";
+}
+.fa-fighter-jet:before {
+ content: "\f0fb";
+}
+.fa-beer:before {
+ content: "\f0fc";
+}
+.fa-h-square:before {
+ content: "\f0fd";
+}
+.fa-plus-square:before {
+ content: "\f0fe";
+}
+.fa-angle-double-left:before {
+ content: "\f100";
+}
+.fa-angle-double-right:before {
+ content: "\f101";
+}
+.fa-angle-double-up:before {
+ content: "\f102";
+}
+.fa-angle-double-down:before {
+ content: "\f103";
+}
+.fa-angle-left:before {
+ content: "\f104";
+}
+.fa-angle-right:before {
+ content: "\f105";
+}
+.fa-angle-up:before {
+ content: "\f106";
+}
+.fa-angle-down:before {
+ content: "\f107";
+}
+.fa-desktop:before {
+ content: "\f108";
+}
+.fa-laptop:before {
+ content: "\f109";
+}
+.fa-tablet:before {
+ content: "\f10a";
+}
+.fa-mobile-phone:before,
+.fa-mobile:before {
+ content: "\f10b";
+}
+.fa-circle-o:before {
+ content: "\f10c";
+}
+.fa-quote-left:before {
+ content: "\f10d";
+}
+.fa-quote-right:before {
+ content: "\f10e";
+}
+.fa-spinner:before {
+ content: "\f110";
+}
+.fa-circle:before {
+ content: "\f111";
+}
+.fa-mail-reply:before,
+.fa-reply:before {
+ content: "\f112";
+}
+.fa-github-alt:before {
+ content: "\f113";
+}
+.fa-folder-o:before {
+ content: "\f114";
+}
+.fa-folder-open-o:before {
+ content: "\f115";
+}
+.fa-smile-o:before {
+ content: "\f118";
+}
+.fa-frown-o:before {
+ content: "\f119";
+}
+.fa-meh-o:before {
+ content: "\f11a";
+}
+.fa-gamepad:before {
+ content: "\f11b";
+}
+.fa-keyboard-o:before {
+ content: "\f11c";
+}
+.fa-flag-o:before {
+ content: "\f11d";
+}
+.fa-flag-checkered:before {
+ content: "\f11e";
+}
+.fa-terminal:before {
+ content: "\f120";
+}
+.fa-code:before {
+ content: "\f121";
+}
+.fa-reply-all:before {
+ content: "\f122";
+}
+.fa-mail-reply-all:before {
+ content: "\f122";
+}
+.fa-star-half-empty:before,
+.fa-star-half-full:before,
+.fa-star-half-o:before {
+ content: "\f123";
+}
+.fa-location-arrow:before {
+ content: "\f124";
+}
+.fa-crop:before {
+ content: "\f125";
+}
+.fa-code-fork:before {
+ content: "\f126";
+}
+.fa-unlink:before,
+.fa-chain-broken:before {
+ content: "\f127";
+}
+.fa-question:before {
+ content: "\f128";
+}
+.fa-info:before {
+ content: "\f129";
+}
+.fa-exclamation:before {
+ content: "\f12a";
+}
+.fa-superscript:before {
+ content: "\f12b";
+}
+.fa-subscript:before {
+ content: "\f12c";
+}
+.fa-eraser:before {
+ content: "\f12d";
+}
+.fa-puzzle-piece:before {
+ content: "\f12e";
+}
+.fa-microphone:before {
+ content: "\f130";
+}
+.fa-microphone-slash:before {
+ content: "\f131";
+}
+.fa-shield:before {
+ content: "\f132";
+}
+.fa-calendar-o:before {
+ content: "\f133";
+}
+.fa-fire-extinguisher:before {
+ content: "\f134";
+}
+.fa-rocket:before {
+ content: "\f135";
+}
+.fa-maxcdn:before {
+ content: "\f136";
+}
+.fa-chevron-circle-left:before {
+ content: "\f137";
+}
+.fa-chevron-circle-right:before {
+ content: "\f138";
+}
+.fa-chevron-circle-up:before {
+ content: "\f139";
+}
+.fa-chevron-circle-down:before {
+ content: "\f13a";
+}
+.fa-html5:before {
+ content: "\f13b";
+}
+.fa-css3:before {
+ content: "\f13c";
+}
+.fa-anchor:before {
+ content: "\f13d";
+}
+.fa-unlock-alt:before {
+ content: "\f13e";
+}
+.fa-bullseye:before {
+ content: "\f140";
+}
+.fa-ellipsis-h:before {
+ content: "\f141";
+}
+.fa-ellipsis-v:before {
+ content: "\f142";
+}
+.fa-rss-square:before {
+ content: "\f143";
+}
+.fa-play-circle:before {
+ content: "\f144";
+}
+.fa-ticket:before {
+ content: "\f145";
+}
+.fa-minus-square:before {
+ content: "\f146";
+}
+.fa-minus-square-o:before {
+ content: "\f147";
+}
+.fa-level-up:before {
+ content: "\f148";
+}
+.fa-level-down:before {
+ content: "\f149";
+}
+.fa-check-square:before {
+ content: "\f14a";
+}
+.fa-pencil-square:before {
+ content: "\f14b";
+}
+.fa-external-link-square:before {
+ content: "\f14c";
+}
+.fa-share-square:before {
+ content: "\f14d";
+}
+.fa-compass:before {
+ content: "\f14e";
+}
+.fa-toggle-down:before,
+.fa-caret-square-o-down:before {
+ content: "\f150";
+}
+.fa-toggle-up:before,
+.fa-caret-square-o-up:before {
+ content: "\f151";
+}
+.fa-toggle-right:before,
+.fa-caret-square-o-right:before {
+ content: "\f152";
+}
+.fa-euro:before,
+.fa-eur:before {
+ content: "\f153";
+}
+.fa-gbp:before {
+ content: "\f154";
+}
+.fa-dollar:before,
+.fa-usd:before {
+ content: "\f155";
+}
+.fa-rupee:before,
+.fa-inr:before {
+ content: "\f156";
+}
+.fa-cny:before,
+.fa-rmb:before,
+.fa-yen:before,
+.fa-jpy:before {
+ content: "\f157";
+}
+.fa-ruble:before,
+.fa-rouble:before,
+.fa-rub:before {
+ content: "\f158";
+}
+.fa-won:before,
+.fa-krw:before {
+ content: "\f159";
+}
+.fa-bitcoin:before,
+.fa-btc:before {
+ content: "\f15a";
+}
+.fa-file:before {
+ content: "\f15b";
+}
+.fa-file-text:before {
+ content: "\f15c";
+}
+.fa-sort-alpha-asc:before {
+ content: "\f15d";
+}
+.fa-sort-alpha-desc:before {
+ content: "\f15e";
+}
+.fa-sort-amount-asc:before {
+ content: "\f160";
+}
+.fa-sort-amount-desc:before {
+ content: "\f161";
+}
+.fa-sort-numeric-asc:before {
+ content: "\f162";
+}
+.fa-sort-numeric-desc:before {
+ content: "\f163";
+}
+.fa-thumbs-up:before {
+ content: "\f164";
+}
+.fa-thumbs-down:before {
+ content: "\f165";
+}
+.fa-youtube-square:before {
+ content: "\f166";
+}
+.fa-youtube:before {
+ content: "\f167";
+}
+.fa-xing:before {
+ content: "\f168";
+}
+.fa-xing-square:before {
+ content: "\f169";
+}
+.fa-youtube-play:before {
+ content: "\f16a";
+}
+.fa-dropbox:before {
+ content: "\f16b";
+}
+.fa-stack-overflow:before {
+ content: "\f16c";
+}
+.fa-instagram:before {
+ content: "\f16d";
+}
+.fa-flickr:before {
+ content: "\f16e";
+}
+.fa-adn:before {
+ content: "\f170";
+}
+.fa-bitbucket:before {
+ content: "\f171";
+}
+.fa-bitbucket-square:before {
+ content: "\f172";
+}
+.fa-tumblr:before {
+ content: "\f173";
+}
+.fa-tumblr-square:before {
+ content: "\f174";
+}
+.fa-long-arrow-down:before {
+ content: "\f175";
+}
+.fa-long-arrow-up:before {
+ content: "\f176";
+}
+.fa-long-arrow-left:before {
+ content: "\f177";
+}
+.fa-long-arrow-right:before {
+ content: "\f178";
+}
+.fa-apple:before {
+ content: "\f179";
+}
+.fa-windows:before {
+ content: "\f17a";
+}
+.fa-android:before {
+ content: "\f17b";
+}
+.fa-linux:before {
+ content: "\f17c";
+}
+.fa-dribbble:before {
+ content: "\f17d";
+}
+.fa-skype:before {
+ content: "\f17e";
+}
+.fa-foursquare:before {
+ content: "\f180";
+}
+.fa-trello:before {
+ content: "\f181";
+}
+.fa-female:before {
+ content: "\f182";
+}
+.fa-male:before {
+ content: "\f183";
+}
+.fa-gittip:before {
+ content: "\f184";
+}
+.fa-sun-o:before {
+ content: "\f185";
+}
+.fa-moon-o:before {
+ content: "\f186";
+}
+.fa-archive:before {
+ content: "\f187";
+}
+.fa-bug:before {
+ content: "\f188";
+}
+.fa-vk:before {
+ content: "\f189";
+}
+.fa-weibo:before {
+ content: "\f18a";
+}
+.fa-renren:before {
+ content: "\f18b";
+}
+.fa-pagelines:before {
+ content: "\f18c";
+}
+.fa-stack-exchange:before {
+ content: "\f18d";
+}
+.fa-arrow-circle-o-right:before {
+ content: "\f18e";
+}
+.fa-arrow-circle-o-left:before {
+ content: "\f190";
+}
+.fa-toggle-left:before,
+.fa-caret-square-o-left:before {
+ content: "\f191";
+}
+.fa-dot-circle-o:before {
+ content: "\f192";
+}
+.fa-wheelchair:before {
+ content: "\f193";
+}
+.fa-vimeo-square:before {
+ content: "\f194";
+}
+.fa-turkish-lira:before,
+.fa-try:before {
+ content: "\f195";
+}
+.fa-plus-square-o:before {
+ content: "\f196";
+}
diff --git a/backend/tests/integration/tests/pruning/website/css/style.css b/backend/tests/integration/tests/pruning/website/css/style.css
new file mode 100644
index 0000000000..970a9e89e9
--- /dev/null
+++ b/backend/tests/integration/tests/pruning/website/css/style.css
@@ -0,0 +1,1779 @@
+/*
+Author URI: http://webthemez.com/
+Note:
+Licence under Creative Commons Attribution 3.0
+Do not remove the back-link in this web template
+-------------------------------------------------------*/
+
+@import url("http://fonts.googleapis.com/css?family=Noto+Serif:400,400italic,700|Open+Sans:400,600,700");
+@import url("font-awesome.css");
+@import url("animate.css");
+
+body {
+ font-family: "Open Sans", Arial, sans-serif;
+ font-size: 14px;
+ font-weight: 300;
+ line-height: 1.6em;
+ color: #656565;
+}
+
+a:active {
+ outline: 0;
+}
+
+.clear {
+ clear: both;
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ font-family: "Open Sans", Arial, sans-serif;
+ font-weight: 700;
+ line-height: 1.1em;
+ color: #333;
+ margin-bottom: 20px;
+}
+
+.container {
+ padding: 0 20px 0 20px;
+ position: relative;
+}
+
+#wrapper {
+ width: 100%;
+ margin: 0;
+ padding: 0;
+}
+
+.row,
+.row-fluid {
+ margin-bottom: 30px;
+}
+
+.row .row,
+.row-fluid .row-fluid {
+ margin-bottom: 30px;
+}
+
+.row.nomargin,
+.row-fluid.nomargin {
+ margin-bottom: 0;
+}
+
+img.img-polaroid {
+ margin: 0 0 20px 0;
+}
+.img-box {
+ max-width: 100%;
+}
+/* Header
+==================================== */
+
+header .navbar {
+ margin-bottom: 0;
+}
+
+.navbar-default {
+ border: none;
+}
+
+.navbar-brand {
+ color: #222;
+ text-transform: uppercase;
+ font-size: 24px;
+ font-weight: 700;
+ line-height: 1em;
+ letter-spacing: -1px;
+ margin-top: 13px;
+ padding: 0 0 0 15px;
+}
+.navbar-default .navbar-brand {
+ color: #61b331;
+}
+
+header .navbar-collapse ul.navbar-nav {
+ float: right;
+ margin-right: 0;
+}
+
+header .navbar-default {
+ background-color: #ffffff;
+}
+
+header .nav li a:hover,
+header .nav li a:focus,
+header .nav li.active a,
+header .nav li.active a:hover,
+header .nav li a.dropdown-toggle:hover,
+header .nav li a.dropdown-toggle:focus,
+header .nav li.active ul.dropdown-menu li a:hover,
+header .nav li.active ul.dropdown-menu li.active a {
+ -webkit-transition: all 0.3s ease;
+ -moz-transition: all 0.3s ease;
+ -ms-transition: all 0.3s ease;
+ -o-transition: all 0.3s ease;
+ transition: all 0.3s ease;
+}
+
+header .navbar-default .navbar-nav > .open > a,
+header .navbar-default .navbar-nav > .open > a:hover,
+header .navbar-default .navbar-nav > .open > a:focus {
+ -webkit-transition: all 0.3s ease;
+ -moz-transition: all 0.3s ease;
+ -ms-transition: all 0.3s ease;
+ -o-transition: all 0.3s ease;
+ transition: all 0.3s ease;
+}
+
+header .navbar {
+ min-height: 70px;
+ padding: 18px 0;
+}
+
+header .navbar-nav > li {
+ padding-bottom: 12px;
+ padding-top: 12px;
+}
+
+header .navbar-nav > li > a {
+ padding-bottom: 6px;
+ padding-top: 5px;
+ margin-left: 2px;
+ line-height: 30px;
+ font-weight: 700;
+ -webkit-transition: all 0.3s ease;
+ -moz-transition: all 0.3s ease;
+ -ms-transition: all 0.3s ease;
+ -o-transition: all 0.3s ease;
+ transition: all 0.3s ease;
+}
+
+.dropdown-menu li a:hover {
+ color: #fff !important;
+}
+
+header .nav .caret {
+ border-bottom-color: #f5f5f5;
+ border-top-color: #f5f5f5;
+}
+.navbar-default .navbar-nav > .active > a,
+.navbar-default .navbar-nav > .active > a:hover,
+.navbar-default .navbar-nav > .active > a:focus {
+ background-color: #fff;
+}
+.navbar-default .navbar-nav > .open > a,
+.navbar-default .navbar-nav > .open > a:hover,
+.navbar-default .navbar-nav > .open > a:focus {
+ background-color: #fff;
+}
+
+.dropdown-menu {
+ box-shadow: none;
+ border-radius: 0;
+ border: none;
+}
+
+.dropdown-menu li:last-child {
+ padding-bottom: 0 !important;
+ margin-bottom: 0;
+}
+
+header .nav li .dropdown-menu {
+ padding: 0;
+}
+
+header .nav li .dropdown-menu li a {
+ line-height: 28px;
+ padding: 3px 12px;
+}
+.item-thumbs img {
+ margin-bottom: 15px;
+}
+.flex-control-paging li a.flex-active {
+ background: #000;
+ background: rgb(255, 255, 255);
+ cursor: default;
+}
+.flex-control-paging li a {
+ width: 30px;
+ height: 11px;
+ display: block;
+ background: #666;
+ background: rgba(0, 0, 0, 0.5);
+ cursor: pointer;
+ text-indent: -9999px;
+ -webkit-border-radius: 20px;
+ -moz-border-radius: 20px;
+ -o-border-radius: 20px;
+ border-radius: 20px;
+ box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.3);
+}
+.panel-title > a {
+ color: inherit;
+ color: #fff;
+}
+.panel-group .panel-heading + .panel-collapse .panel-body {
+ border-top: 1px solid #ddd;
+ color: #fff;
+ background-color: #9c9c9c;
+}
+/* --- menu --- */
+
+header .navigation {
+ float: right;
+}
+
+header ul.nav li {
+ border: none;
+ margin: 0;
+}
+
+header ul.nav li a {
+ font-size: 12px;
+ border: none;
+ font-weight: 700;
+ text-transform: uppercase;
+}
+
+header ul.nav li ul li a {
+ font-size: 12px;
+ border: none;
+ font-weight: 300;
+ text-transform: uppercase;
+}
+
+.navbar .nav > li > a {
+ color: #848484;
+ text-shadow: none;
+ border: 1px solid rgba(255, 255, 255, 0) !important;
+}
+
+.navbar .nav a:hover {
+ background: none;
+ color: #14a085 !important;
+}
+
+.navbar .nav > .active > a,
+.navbar .nav > .active > a:hover {
+ background: none;
+ font-weight: 700;
+}
+
+.navbar .nav > .active > a:active,
+.navbar .nav > .active > a:focus {
+ background: none;
+ outline: 0;
+ font-weight: 700;
+}
+
+.navbar .nav li .dropdown-menu {
+ z-index: 2000;
+}
+
+header ul.nav li ul {
+ margin-top: 1px;
+}
+header ul.nav li ul li ul {
+ margin: 1px 0 0 1px;
+}
+.dropdown-menu .dropdown i {
+ position: absolute;
+ right: 0;
+ margin-top: 3px;
+ padding-left: 20px;
+}
+
+.navbar .nav > li > .dropdown-menu:before {
+ display: inline-block;
+ border-right: none;
+ border-bottom: none;
+ border-left: none;
+ border-bottom-color: none;
+ content: none;
+}
+.navbar-default .navbar-nav > .active > a,
+.navbar-default .navbar-nav > .active > a:hover,
+.navbar-default .navbar-nav > .active > a:focus {
+ color: #14a085;
+}
+
+ul.nav li.dropdown a {
+ z-index: 1000;
+ display: block;
+}
+
+select.selectmenu {
+ display: none;
+}
+.pageTitle {
+ color: #fff;
+ margin: 30px 0 3px;
+ display: inline-block;
+}
+
+#featured {
+ width: 100%;
+ background: #000;
+ position: relative;
+ margin: 0;
+ padding: 0;
+}
+
+/* Sliders
+==================================== */
+/* --- flexslider --- */
+
+#featured .flexslider {
+ padding: 0;
+ background: #fff;
+ position: relative;
+ zoom: 1;
+}
+.flex-direction-nav .flex-prev {
+ left: 0px;
+}
+.flex-direction-nav .flex-next {
+ right: 0px;
+}
+.flex-caption {
+ zoom: 0;
+ color: #1c1d21;
+ margin: 0 auto;
+ padding: 1px;
+ position: absolute;
+ vertical-align: bottom;
+ text-align: center;
+ background-color: rgba(255, 255, 255, 0.26);
+ bottom: 5%;
+ display: block;
+ left: 0;
+ right: 0;
+}
+.flex-caption h3 {
+ color: #fff;
+ letter-spacing: 1px;
+ margin-bottom: 8px;
+ text-transform: uppercase;
+}
+.flex-caption p {
+ margin: 0 0 15px;
+}
+.skill-home {
+ margin-bottom: 50px;
+}
+.c1 {
+ border: #ed5441 1px solid;
+ background: #ed5441;
+}
+.c2 {
+ border: #d867b2 1px solid;
+ background: #d867b2;
+}
+.c3 {
+ border: #61b331 1px solid;
+ background: #4bc567;
+}
+.c4 {
+ border: #609cec 1px solid;
+ background: #26aff0;
+}
+.skill-home .icons {
+ padding: 33px 0 0 0;
+ width: 100%;
+ height: 178px;
+ color: rgb(255, 255, 255);
+ font-size: 42px;
+ font-size: 76px;
+ text-align: center;
+ -ms-border-radius: 50%;
+ -moz-border-radius: 50%;
+ -webkit-border-radius: 50%;
+ border-radius: 0;
+ display: inline-table;
+}
+.skill-home h2 {
+ padding-top: 20px;
+ font-size: 36px;
+ font-weight: 700;
+}
+.testimonial-solid {
+ padding: 50px 0 60px 0;
+ margin: 0 0 0 0;
+ background: #efefef;
+ text-align: center;
+}
+.testi-icon-area {
+ text-align: center;
+ position: absolute;
+ top: -84px;
+ margin: 0 auto;
+ width: 100%;
+ color: #000;
+}
+.testi-icon-area .quote {
+ padding: 15px 0 0 0;
+ margin: 0 0 0 0;
+ background: #ffffff;
+ text-align: center;
+ color: #26aff0;
+ display: inline-table;
+ width: 70px;
+ height: 70px;
+ -ms-border-radius: 50%;
+ -moz-border-radius: 50%;
+ -webkit-border-radius: 50%;
+ border-radius: 0;
+ font-size: 42px;
+ border: 1px solid #26aff0;
+ display: none;
+}
+
+.testi-icon-area .carousel-inner {
+ margin: 20px 0;
+}
+.carousel-indicators {
+ bottom: -30px;
+}
+.team-member {
+ text-align: center;
+ background-color: #f9f9f9;
+ padding-bottom: 15px;
+}
+.fancybox-title-inside-wrap {
+ padding: 3px 30px 6px;
+ background: #292929;
+}
+
+.item_introtext {
+ background-color: rgba(254, 254, 255, 0.66);
+ margin: 0 auto;
+ display: inline-block;
+ padding: 25px;
+}
+.item_introtext span {
+ font-size: 20px;
+ display: block;
+ font-weight: bold;
+}
+.item_introtext strong {
+ font-size: 50px;
+ display: block;
+ padding: 14px 0 30px;
+}
+.item_introtext p {
+ font-size: 20px !important;
+ color: #1c1d21;
+ font-weight: bold;
+}
+
+.form-control {
+ border-radius: 0;
+}
+
+/* Testimonial
+----------------------------------*/
+.testimonial-area {
+ padding: 0 0 0 0;
+ margin: 0;
+ background: url(../img/low-poly01.jpg) fixed center center;
+ background-size: cover;
+ -webkit-background-size: cover;
+ -moz-background-size: cover;
+ -ms-background-size: cover;
+ color: red;
+}
+.testimonial-solid p {
+ color: #1f1f1f;
+ font-size: 16px;
+ line-height: 30px;
+ font-style: italic;
+}
+section.callaction {
+ background: #fff;
+ padding: 50px 0 0 0;
+}
+
+/* Content
+==================================== */
+
+#content {
+ position: relative;
+ background: #fff;
+ padding: 50px 0 0px 0;
+}
+
+#content img {
+ max-width: 100%;
+ height: auto;
+}
+
+.cta-text {
+ text-align: center;
+ margin-top: 10px;
+}
+
+.big-cta .cta {
+ margin-top: 10px;
+}
+
+.box {
+ width: 100%;
+}
+.box-gray {
+ background: #f8f8f8;
+ padding: 20px 20px 30px;
+}
+.box-gray h4,
+.box-gray i {
+ margin-bottom: 20px;
+}
+.box-bottom {
+ padding: 20px 0;
+ text-align: center;
+}
+.box-bottom a {
+ color: #fff;
+ font-weight: 700;
+}
+.box-bottom a:hover {
+ color: #eee;
+ text-decoration: none;
+}
+
+/* Bottom
+==================================== */
+
+#bottom {
+ background: #fcfcfc;
+ padding: 50px 0 0;
+}
+/* twitter */
+#twitter-wrapper {
+ text-align: center;
+ width: 70%;
+ margin: 0 auto;
+}
+#twitter em {
+ font-style: normal;
+ font-size: 13px;
+}
+
+#twitter em.twitterTime a {
+ font-weight: 600;
+}
+
+#twitter ul {
+ padding: 0;
+ list-style: none;
+}
+#twitter ul li {
+ font-size: 20px;
+ line-height: 1.6em;
+ font-weight: 300;
+ margin-bottom: 20px;
+ position: relative;
+ word-break: break-word;
+}
+
+/* page headline
+==================================== */
+
+#inner-headline {
+ background: #14a085;
+ position: relative;
+ margin: 0;
+ padding: 0;
+ color: #fefefe;
+ /* margin: 15px; */
+ border-top: 10px solid #11967c;
+}
+
+#inner-headline .inner-heading h2 {
+ color: #fff;
+ margin: 20px 0 0 0;
+}
+
+/* --- breadcrumbs --- */
+#inner-headline ul.breadcrumb {
+ margin: 30px 0 0;
+ float: left;
+}
+
+#inner-headline ul.breadcrumb li {
+ margin-bottom: 0;
+ padding-bottom: 0;
+}
+#inner-headline ul.breadcrumb li {
+ font-size: 13px;
+ color: #fff;
+}
+
+#inner-headline ul.breadcrumb li i {
+ color: #dedede;
+}
+
+#inner-headline ul.breadcrumb li a {
+ color: #fff;
+}
+
+ul.breadcrumb li a:hover {
+ text-decoration: none;
+}
+
+/* Forms
+============================= */
+
+/* --- contact form ---- */
+form#contactform input[type="text"] {
+ width: 100%;
+ border: 1px solid #f5f5f5;
+ min-height: 40px;
+ padding-left: 20px;
+ font-size: 13px;
+ padding-right: 20px;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+form#contactform textarea {
+ border: 1px solid #f5f5f5;
+ width: 100%;
+ padding-left: 20px;
+ padding-top: 10px;
+ font-size: 13px;
+ padding-right: 20px;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+form#contactform .validation {
+ font-size: 11px;
+}
+
+#sendmessage {
+ border: 1px solid #e6e6e6;
+ background: #f6f6f6;
+ display: none;
+ text-align: center;
+ padding: 15px 12px 15px 65px;
+ margin: 10px 0;
+ font-weight: 600;
+ margin-bottom: 30px;
+}
+
+#sendmessage.show,
+.show {
+ display: block;
+}
+
+form#commentform input[type="text"] {
+ width: 100%;
+ min-height: 40px;
+ padding-left: 20px;
+ font-size: 13px;
+ padding-right: 20px;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-border-radius: 2px 2px 2px 2px;
+ -moz-border-radius: 2px 2px 2px 2px;
+ border-radius: 2px 2px 2px 2px;
+}
+
+form#commentform textarea {
+ width: 100%;
+ padding-left: 20px;
+ padding-top: 10px;
+ font-size: 13px;
+ padding-right: 20px;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-border-radius: 2px 2px 2px 2px;
+ -moz-border-radius: 2px 2px 2px 2px;
+ border-radius: 2px 2px 2px 2px;
+}
+
+/* --- search form --- */
+.search {
+ float: right;
+ margin: 35px 0 0;
+ padding-bottom: 0;
+}
+
+#inner-headline form.input-append {
+ margin: 0;
+ padding: 0;
+}
+
+/* Portfolio
+================================ */
+
+.work-nav #filters {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+}
+
+.work-nav #filters li {
+ margin: 0 10px 30px 0;
+ padding: 0;
+ float: left;
+}
+
+.work-nav #filters li a {
+ color: #7f8289;
+ font-size: 16px;
+ display: block;
+}
+
+.work-nav #filters li a:hover {
+}
+
+.work-nav #filters li a.selected {
+ color: #de5e60;
+}
+
+#thumbs {
+ margin: 0;
+ padding: 0;
+}
+
+#thumbs li {
+ list-style-type: none;
+}
+
+.item-thumbs {
+ position: relative;
+ overflow: hidden;
+ margin-bottom: 30px;
+ cursor: pointer;
+}
+
+.item-thumbs a + img {
+ width: 100%;
+}
+
+.item-thumbs .hover-wrap {
+ position: absolute;
+ display: block;
+ width: 100%;
+ height: 100%;
+
+ opacity: 0;
+ filter: alpha(opacity=0);
+
+ -webkit-transition: all 450ms ease-out 0s;
+ -moz-transition: all 450ms ease-out 0s;
+ -o-transition: all 450ms ease-out 0s;
+ transition: all 450ms ease-out 0s;
+
+ -webkit-transform: rotateY(180deg) scale(0.5, 0.5);
+ -moz-transform: rotateY(180deg) scale(0.5, 0.5);
+ -ms-transform: rotateY(180deg) scale(0.5, 0.5);
+ -o-transform: rotateY(180deg) scale(0.5, 0.5);
+ transform: rotateY(180deg) scale(0.5, 0.5);
+}
+
+.item-thumbs:hover .hover-wrap,
+.item-thumbs.active .hover-wrap {
+ opacity: 1;
+ filter: alpha(opacity=100);
+
+ -webkit-transform: rotateY(0deg) scale(1, 1);
+ -moz-transform: rotateY(0deg) scale(1, 1);
+ -ms-transform: rotateY(0deg) scale(1, 1);
+ -o-transform: rotateY(0deg) scale(1, 1);
+ transform: rotateY(0deg) scale(1, 1);
+}
+
+.item-thumbs .hover-wrap .overlay-img {
+ position: absolute;
+ width: 90%;
+ height: 91%;
+ opacity: 0.5;
+ filter: alpha(opacity=80);
+ background: #14a085;
+}
+
+.item-thumbs .hover-wrap .overlay-img-thumb {
+ position: absolute;
+ border-radius: 60px;
+ top: 50%;
+ left: 45%;
+ margin: -16px 0 0 -16px;
+ color: #fff;
+ font-size: 32px;
+ line-height: 1em;
+ opacity: 1;
+ filter: alpha(opacity=100);
+}
+
+ul.portfolio-categ {
+ margin: 10px 0 30px 0;
+ padding: 0;
+ float: left;
+ list-style: none;
+}
+
+ul.portfolio-categ li {
+ margin: 0;
+ float: left;
+ list-style: none;
+ font-size: 13px;
+ font-weight: 600;
+ border: 1px solid #d5d5d5;
+ margin-right: 15px;
+}
+
+ul.portfolio-categ li a {
+ display: block;
+ padding: 8px 20px;
+ color: #14a085;
+}
+ul.portfolio-categ li.active {
+ border: 1px solid #d7d8d6;
+
+ background-color: #eaeaea;
+}
+ul.portfolio-categ li.active a:hover,
+ul.portfolio-categ li a:hover,
+ul.portfolio-categ li a:focus,
+ul.portfolio-categ li a:active {
+ text-decoration: none;
+ outline: 0;
+}
+#accordion-alt3 .panel-heading h4 {
+ font-size: 13px;
+ line-height: 28px;
+ color: #6b6b6b;
+}
+.panel .panel-heading h4 {
+ font-weight: 400;
+}
+.panel-title {
+ margin-top: 0;
+ margin-bottom: 0;
+ font-size: 15px;
+ color: inherit;
+}
+.panel-group .panel {
+ margin-bottom: 0;
+ border-radius: 2px;
+}
+.panel {
+ margin-bottom: 18px;
+ background-color: #b9b9b9;
+ border: 1px solid transparent;
+ border-radius: 2px;
+ -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
+}
+#accordion-alt3 .panel-heading h4 a i {
+ font-size: 13px;
+ line-height: 18px;
+ width: 18px;
+ height: 18px;
+ margin-right: 5px;
+ color: #fff;
+ text-align: center;
+ border-radius: 50%;
+ margin-left: 6px;
+}
+.progress.pb-sm {
+ height: 6px !important;
+}
+.progress {
+ box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.1);
+}
+.progress {
+ overflow: hidden;
+ height: 18px;
+ margin-bottom: 18px;
+ background-color: #f5f5f5;
+ border-radius: 2px;
+ -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
+}
+.progress .progress-bar.progress-bar-red {
+ background: #ed5441;
+}
+.progress .progress-bar.progress-bar-green {
+ background: #51d466;
+}
+.progress .progress-bar.progress-bar-lblue {
+ background: #32c8de;
+}
+/* --- portfolio detail --- */
+.top-wrapper {
+ margin-bottom: 20px;
+}
+.info-blocks {
+ margin-bottom: 15px;
+}
+.info-blocks i.icon-info-blocks {
+ float: left;
+ color: #318fcf;
+ font-size: 30px;
+ min-width: 50px;
+ margin-top: 6px;
+ text-align: center;
+ background-color: #efefef;
+ padding: 15px;
+}
+.info-blocks .info-blocks-in {
+ padding: 0 10px;
+ overflow: hidden;
+}
+.info-blocks .info-blocks-in h3 {
+ color: #555;
+ font-size: 20px;
+ line-height: 28px;
+ margin: 0px;
+}
+.info-blocks .info-blocks-in p {
+ font-size: 12px;
+}
+
+blockquote {
+ font-size: 16px;
+ font-weight: 400;
+ font-family: "Noto Serif", serif;
+ font-style: italic;
+ padding-left: 0;
+ color: #a2a2a2;
+ line-height: 1.6em;
+ border: none;
+}
+
+blockquote cite {
+ display: block;
+ font-size: 12px;
+ color: #666;
+ margin-top: 10px;
+}
+blockquote cite:before {
+ content: "\2014 \0020";
+}
+blockquote cite a,
+blockquote cite a:visited,
+blockquote cite a:visited {
+ color: #555;
+}
+
+/* --- pullquotes --- */
+
+.pullquote-left {
+ display: block;
+ color: #a2a2a2;
+ font-family: "Noto Serif", serif;
+ font-size: 14px;
+ line-height: 1.6em;
+ padding-left: 20px;
+}
+
+.pullquote-right {
+ display: block;
+ color: #a2a2a2;
+ font-family: "Noto Serif", serif;
+ font-size: 14px;
+ line-height: 1.6em;
+ padding-right: 20px;
+}
+
+/* --- button --- */
+.btn {
+ text-align: center;
+ background: #318cca;
+ color: #fff;
+ border-radius: 0;
+ padding: 10px 30px;
+}
+.btn-theme {
+ color: #fff;
+}
+.btn-theme:hover {
+ color: #eee;
+}
+
+/* --- list style --- */
+
+ul.general {
+ list-style: none;
+ margin-left: 0;
+}
+
+ul.link-list {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+}
+
+ul.link-list li {
+ margin: 0;
+ padding: 2px 0 2px 0;
+ list-style: none;
+}
+footer {
+ background: #14a085;
+}
+footer ul.link-list li a {
+ color: #ffffff;
+}
+footer ul.link-list li a:hover {
+ color: #e2e2e2;
+}
+/* --- Heading style --- */
+
+h4.heading {
+ font-weight: 700;
+}
+
+.heading {
+ margin-bottom: 30px;
+}
+
+.heading {
+ position: relative;
+}
+
+.widgetheading {
+ width: 100%;
+
+ padding: 0;
+}
+
+#bottom .widgetheading {
+ position: relative;
+ border-bottom: #e6e6e6 1px solid;
+ padding-bottom: 9px;
+}
+
+aside .widgetheading {
+ position: relative;
+ border-bottom: #e9e9e9 1px solid;
+ padding-bottom: 9px;
+}
+
+footer .widgetheading {
+ position: relative;
+}
+
+footer .widget .social-network {
+ position: relative;
+}
+
+#bottom .widget .widgetheading span,
+aside .widget .widgetheading span,
+footer .widget .widgetheading span {
+ position: absolute;
+ width: 60px;
+ height: 1px;
+ bottom: -1px;
+ right: 0;
+}
+.box-area {
+ border: 1px solid #f3f3f3;
+ padding: 0 15px 12px;
+ padding-top: 41px;
+ margin-top: -42px;
+ text-align: left;
+ background-color: #f9f9f9;
+ position: relative;
+}
+/* --- Map --- */
+.map {
+ position: relative;
+ margin-top: -50px;
+ margin-bottom: 40px;
+}
+
+.map iframe {
+ width: 100%;
+ height: 450px;
+ border: none;
+}
+
+.map-grid iframe {
+ width: 100%;
+ height: 350px;
+ border: none;
+ margin: 0 0 -5px 0;
+ padding: 0;
+}
+
+ul.team-detail {
+ margin: -10px 0 0 0;
+ padding: 0;
+ list-style: none;
+}
+
+ul.team-detail li {
+ border-bottom: 1px dotted #e9e9e9;
+ margin: 0 0 15px 0;
+ padding: 0 0 15px 0;
+ list-style: none;
+}
+
+ul.team-detail li label {
+ font-size: 13px;
+}
+
+ul.team-detail li h4,
+ul.team-detail li label {
+ margin-bottom: 0;
+}
+
+ul.team-detail li ul.social-network {
+ border: none;
+ margin: 0;
+ padding: 0;
+}
+
+ul.team-detail li ul.social-network li {
+ border: none;
+ margin: 0;
+}
+ul.team-detail li ul.social-network li i {
+ margin: 0;
+}
+
+.pricing-title {
+ background: #fff;
+ text-align: center;
+ padding: 10px 0 10px 0;
+}
+
+.pricing-title h3 {
+ font-weight: 600;
+ margin-bottom: 0;
+}
+
+.pricing-offer {
+ background: #fcfcfc;
+ text-align: center;
+ padding: 40px 0 40px 0;
+ font-size: 18px;
+ border-top: 1px solid #e6e6e6;
+ border-bottom: 1px solid #e6e6e6;
+}
+
+.pricing-box.activeItem .pricing-offer {
+ color: #fff;
+}
+
+.pricing-offer strong {
+ font-size: 78px;
+ line-height: 89px;
+}
+
+.pricing-offer sup {
+ font-size: 28px;
+}
+
+.pricing-container {
+ background: #fff;
+ text-align: center;
+ font-size: 14px;
+}
+
+.pricing-container strong {
+ color: #353535;
+}
+
+.pricing-container ul {
+ list-style: none;
+ padding: 0;
+ margin: 0;
+}
+
+.pricing-container ul li {
+ border-bottom: 1px solid #f5f5f5;
+ list-style: none;
+ padding: 15px 0 15px 0;
+ margin: 0 0 0 0;
+ color: #222;
+}
+
+.pricing-action {
+ margin: 0;
+ background: #fcfcfc;
+ text-align: center;
+ padding: 20px 0 30px 0;
+}
+
+.pricing-wrapp {
+ margin: 0 auto;
+ width: 100%;
+ background: #fd0000;
+}
+.pricing-box-item {
+ border: 1px solid #f5f5f5;
+
+ background: #f9f9f9;
+ position: relative;
+ margin: 0 0 20px 0;
+ padding: 0;
+ -webkit-box-shadow: 0 2px 0 rgba(0, 0, 0, 0.03);
+ -moz-box-shadow: 0 2px 0 rgba(0, 0, 0, 0.03);
+ box-shadow: 0 2px 0 rgba(0, 0, 0, 0.03);
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.pricing-box-item .pricing-heading {
+ text-align: center;
+ padding: 0px 0 0px 0;
+ display: block;
+}
+.pricing-box-item.activeItem .pricing-heading {
+ text-align: center;
+ padding: 0px 0 1px 0;
+ border-bottom: none;
+ display: block;
+ color: #fff;
+}
+.pricing-box-item.activeItem .pricing-heading h3 {
+}
+
+.pricing-box-item .pricing-heading h3 strong {
+ font-size: 20px;
+ font-weight: 700;
+ letter-spacing: -1px;
+}
+.pricing-box-item .pricing-heading h3 {
+ font-size: 35px;
+ font-weight: 300;
+ letter-spacing: -1px;
+}
+
+.pricing-box-item .pricing-terms {
+ text-align: center;
+ display: block;
+ overflow: hidden;
+ padding: 11px 0 5px;
+}
+
+.pricing-box-item .pricing-terms h6 {
+ font-style: italic;
+ margin-top: 10px;
+ color: #14a085;
+ font-size: 22px;
+ font-family: "Noto Serif", serif;
+}
+
+.pricing-box-item .icon .price-circled {
+ margin: 10px 10px 10px 0;
+ display: inline-block !important;
+ text-align: center !important;
+ color: #fff;
+ width: 68px;
+ height: 68px;
+ padding: 12px;
+ font-size: 16px;
+ font-weight: 700;
+ line-height: 68px;
+ text-shadow: none;
+ cursor: pointer;
+ background-color: #888;
+ border-radius: 64px;
+ -moz-border-radius: 64px;
+ -webkit-border-radius: 64px;
+}
+
+.pricing-box-item .pricing-action {
+ margin: 0;
+ text-align: center;
+ padding: 30px 0 30px 0;
+}
+
+/* ===== Widgets ===== */
+
+/* --- flickr --- */
+.widget .flickr_badge {
+ width: 100%;
+}
+.widget .flickr_badge img {
+ margin: 0 9px 20px 0;
+}
+
+footer .widget .flickr_badge {
+ width: 100%;
+}
+footer .widget .flickr_badge img {
+ margin: 0 9px 20px 0;
+}
+
+.flickr_badge img {
+ width: 50px;
+ height: 50px;
+ float: left;
+ margin: 0 9px 20px 0;
+}
+
+/* --- Recent post widget --- */
+
+.recent-post {
+ margin: 20px 0 0 0;
+ padding: 0;
+ line-height: 18px;
+}
+
+.recent-post h5 a:hover {
+ text-decoration: none;
+}
+
+.recent-post .text h5 a {
+ color: #353535;
+}
+
+footer {
+ padding: 50px 0 0 0;
+ color: #f8f8f8;
+}
+
+footer a {
+ color: #fff;
+}
+
+footer a:hover {
+ color: #eee;
+}
+
+footer h1,
+footer h2,
+footer h3,
+footer h4,
+footer h5,
+footer h6 {
+ color: #fff;
+}
+
+footer address {
+ line-height: 1.6em;
+ color: #ffffff;
+}
+
+footer h5 a:hover,
+footer a:hover {
+ text-decoration: none;
+}
+
+ul.social-network {
+ list-style: none;
+ margin: 0;
+}
+
+ul.social-network li {
+ display: inline;
+ margin: 0 5px;
+}
+
+#sub-footer {
+ text-shadow: none;
+ color: #f5f5f5;
+ padding: 0;
+ padding-top: 30px;
+ margin: 20px 0 0 0;
+ background: #14a085;
+}
+
+#sub-footer p {
+ margin: 0;
+ padding: 0;
+}
+
+#sub-footer span {
+ color: #f5f5f5;
+}
+
+.copyright {
+ text-align: left;
+ font-size: 12px;
+}
+
+#sub-footer ul.social-network {
+ float: right;
+}
+
+/* scroll to top */
+.scrollup {
+ position: fixed;
+ width: 32px;
+ height: 32px;
+ bottom: 0px;
+ right: 20px;
+ background: #222;
+}
+
+a.scrollup {
+ outline: 0;
+ text-align: center;
+}
+
+a.scrollup:hover,
+a.scrollup:active,
+a.scrollup:focus {
+ opacity: 1;
+ text-decoration: none;
+}
+a.scrollup i {
+ margin-top: 10px;
+ color: #fff;
+}
+a.scrollup i:hover {
+ text-decoration: none;
+}
+
+.absolute {
+ position: absolute;
+}
+
+.relative {
+ position: relative;
+}
+
+.aligncenter {
+ text-align: center;
+}
+
+.aligncenter span {
+ margin-left: 0;
+}
+
+.floatright {
+ float: right;
+}
+
+.floatleft {
+ float: left;
+}
+
+.floatnone {
+ float: none;
+}
+
+.aligncenter {
+ text-align: center;
+}
+
+img.pull-left,
+.align-left {
+ float: left;
+ margin: 0 15px 15px 0;
+}
+
+.widget img.pull-left {
+ float: left;
+ margin: 0 15px 15px 0;
+}
+
+img.pull-right,
+.align-right {
+ float: right;
+ margin: 0 0 15px 15px;
+}
+
+article img.pull-left,
+article .align-left {
+ float: left;
+ margin: 5px 15px 15px 0;
+}
+
+article img.pull-right,
+article .align-right {
+ float: right;
+ margin: 5px 0 15px 15px;
+}
+============================= */ .clear-marginbot {
+ margin-bottom: 0;
+}
+
+.marginbot10 {
+ margin-bottom: 10px;
+}
+.marginbot20 {
+ margin-bottom: 20px;
+}
+.marginbot30 {
+ margin-bottom: 30px;
+}
+.marginbot40 {
+ margin-bottom: 40px;
+}
+
+.clear-margintop {
+ margin-top: 0;
+}
+
+.margintop10 {
+ margin-top: 10px;
+}
+
+.margintop20 {
+ margin-top: 20px;
+}
+
+.margintop30 {
+ margin-top: 30px;
+}
+
+.margintop40 {
+ margin-top: 40px;
+}
+
+/* Media queries
+============================= */
+
+@media (min-width: 768px) and (max-width: 979px) {
+ a.detail {
+ background: none;
+ width: 100%;
+ }
+
+ footer .widget form input#appendedInputButton {
+ display: block;
+ width: 91%;
+ -webkit-border-radius: 4px 4px 4px 4px;
+ -moz-border-radius: 4px 4px 4px 4px;
+ border-radius: 4px 4px 4px 4px;
+ }
+
+ footer .widget form .input-append .btn {
+ display: block;
+ width: 100%;
+ padding-right: 0;
+ padding-left: 0;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ margin-top: 10px;
+ }
+
+ ul.related-folio li {
+ width: 156px;
+ margin: 0 20px 0 0;
+ }
+}
+
+@media (max-width: 767px) {
+ body {
+ padding-right: 0;
+ padding-left: 0;
+ }
+ .navbar-brand {
+ margin-top: 10px;
+ border-bottom: none;
+ }
+ .navbar-header {
+ margin-top: 20px;
+ border-bottom: none;
+ }
+
+ .navbar-nav {
+ border-top: none;
+ float: none;
+ width: 100%;
+ }
+ .navbar .nav > .active > a,
+ .navbar .nav > .active > a:hover {
+ background: none;
+ font-weight: 700;
+ color: #26aff0;
+ }
+ header .navbar-nav > li {
+ padding-bottom: 0px;
+ padding-top: 2px;
+ }
+ header .nav li .dropdown-menu {
+ margin-top: 0;
+ }
+
+ .dropdown-menu {
+ position: absolute;
+ top: 0;
+ left: 40px;
+ z-index: 1000;
+ display: none;
+ float: left;
+ min-width: 160px;
+ padding: 5px 0;
+ margin: 2px 0 0;
+ font-size: 13px;
+ list-style: none;
+ background-color: #fff;
+ background-clip: padding-box;
+ border: 1px solid #f5f5f5;
+ border: 1px solid rgba(0, 0, 0, 0.15);
+ border-radius: 0;
+ -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
+ box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
+ }
+
+ .navbar-collapse.collapse {
+ border: none;
+ overflow: hidden;
+ }
+
+ .box {
+ border-bottom: 1px solid #e9e9e9;
+ padding-bottom: 20px;
+ }
+
+ #featured .flexslider .slide-caption {
+ width: 90%;
+ padding: 2%;
+ position: absolute;
+ left: 0;
+ bottom: -40px;
+ }
+
+ #inner-headline .breadcrumb {
+ float: left;
+ clear: both;
+ width: 100%;
+ }
+
+ .breadcrumb > li {
+ font-size: 13px;
+ }
+
+ ul.portfolio li article a i.icon-48 {
+ width: 20px;
+ height: 20px;
+ font-size: 16px;
+ line-height: 20px;
+ }
+
+ .left-sidebar {
+ border-right: none;
+ padding: 0 0 0 0;
+ border-bottom: 1px dotted #e6e6e6;
+ padding-bottom: 10px;
+ margin-bottom: 40px;
+ }
+
+ .right-sidebar {
+ margin-top: 30px;
+ border-left: none;
+ padding: 0 0 0 0;
+ }
+
+ footer .col-lg-1,
+ footer .col-lg-2,
+ footer .col-lg-3,
+ footer .col-lg-4,
+ footer .col-lg-5,
+ footer .col-lg-6,
+ footer .col-lg-7,
+ footer .col-lg-8,
+ footer .col-lg-9,
+ footer .col-lg-10,
+ footer .col-lg-11,
+ footer .col-lg-12 {
+ margin-bottom: 20px;
+ }
+
+ #sub-footer ul.social-network {
+ float: left;
+ }
+
+ [class*="span"] {
+ margin-bottom: 20px;
+ }
+}
+
+@media (max-width: 480px) {
+ .bottom-article a.pull-right {
+ float: left;
+ margin-top: 20px;
+ }
+
+ .search {
+ float: left;
+ }
+
+ .flexslider .flex-caption {
+ display: none;
+ }
+
+ .cta-text {
+ margin: 0 auto;
+ text-align: center;
+ }
+
+ ul.portfolio li article a i {
+ width: 20px;
+ height: 20px;
+ font-size: 14px;
+ }
+}
+
+.box-area:before {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ z-index: 0;
+ background-color: red;
+ content: "";
+ position: absolute;
+ top: 7px;
+ left: -1px;
+ width: 100%;
+ height: 23px;
+ background: #f9f9f9;
+ -moz-transform: skewY(-3deg);
+ -o-transform: skewY(-3deg);
+ -ms-transform: skewY(-3deg);
+ -webkit-transform: skewY(-3deg);
+ transform: skewY(11deg);
+ background-size: cover;
+}
+.box-area:after {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ z-index: 0;
+ background-color: red;
+ content: "";
+ position: absolute;
+ top: 7px;
+ left: 1px;
+ width: 100%;
+ height: 22px;
+ background: #f9f9f9;
+ -moz-transform: skewY(-3deg);
+ -o-transform: skewY(-3deg);
+ -ms-transform: skewY(-3deg);
+ -webkit-transform: skewY(-3deg);
+ transform: skewY(-11deg);
+ background-size: cover;
+}
+.box-area h3 {
+ margin-top: -16px;
+ z-index: 12;
+ position: relative;
+}
+.courses {
+ padding: 50px 0;
+}
+.carousel-indicators li {
+ display: inline-block;
+ border: 1px solid #929292;
+}
+.textbox {
+ background-color: #efefef;
+ padding: 4px 25px;
+}
+.textbox h3 {
+ margin: 0;
+ padding: 22px 0 14px;
+ font-size: 18px;
+}
diff --git a/backend/tests/integration/tests/pruning/website/fonts/customicon/icons.eot b/backend/tests/integration/tests/pruning/website/fonts/customicon/icons.eot
new file mode 100644
index 0000000000..7ac16dbc9e
Binary files /dev/null and b/backend/tests/integration/tests/pruning/website/fonts/customicon/icons.eot differ
diff --git a/backend/tests/integration/tests/pruning/website/fonts/customicon/icons.svg b/backend/tests/integration/tests/pruning/website/fonts/customicon/icons.svg
new file mode 100644
index 0000000000..5c2071ee50
--- /dev/null
+++ b/backend/tests/integration/tests/pruning/website/fonts/customicon/icons.svg
@@ -0,0 +1,1186 @@
+
+
+
+
+This is a custom SVG font generated by IcoMoon.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/backend/tests/integration/tests/pruning/website/fonts/customicon/icons.ttf b/backend/tests/integration/tests/pruning/website/fonts/customicon/icons.ttf
new file mode 100644
index 0000000000..0a2ac6fa70
Binary files /dev/null and b/backend/tests/integration/tests/pruning/website/fonts/customicon/icons.ttf differ
diff --git a/backend/tests/integration/tests/pruning/website/fonts/customicon/icons.woff b/backend/tests/integration/tests/pruning/website/fonts/customicon/icons.woff
new file mode 100644
index 0000000000..f9391cb4fa
Binary files /dev/null and b/backend/tests/integration/tests/pruning/website/fonts/customicon/icons.woff differ
diff --git a/backend/tests/integration/tests/pruning/website/fonts/fontawesome-webfont.eot b/backend/tests/integration/tests/pruning/website/fonts/fontawesome-webfont.eot
new file mode 100644
index 0000000000..7c79c6a6bc
Binary files /dev/null and b/backend/tests/integration/tests/pruning/website/fonts/fontawesome-webfont.eot differ
diff --git a/backend/tests/integration/tests/pruning/website/fonts/fontawesome-webfont.svg b/backend/tests/integration/tests/pruning/website/fonts/fontawesome-webfont.svg
new file mode 100644
index 0000000000..45fdf33830
--- /dev/null
+++ b/backend/tests/integration/tests/pruning/website/fonts/fontawesome-webfont.svg
@@ -0,0 +1,414 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/backend/tests/integration/tests/pruning/website/fonts/fontawesome-webfont.ttf b/backend/tests/integration/tests/pruning/website/fonts/fontawesome-webfont.ttf
new file mode 100644
index 0000000000..e89738de5e
Binary files /dev/null and b/backend/tests/integration/tests/pruning/website/fonts/fontawesome-webfont.ttf differ
diff --git a/backend/tests/integration/tests/pruning/website/fonts/fontawesome-webfont.woff b/backend/tests/integration/tests/pruning/website/fonts/fontawesome-webfont.woff
new file mode 100644
index 0000000000..8c1748aab7
Binary files /dev/null and b/backend/tests/integration/tests/pruning/website/fonts/fontawesome-webfont.woff differ
diff --git a/backend/tests/integration/tests/pruning/website/fonts/fontawesome.otf b/backend/tests/integration/tests/pruning/website/fonts/fontawesome.otf
new file mode 100644
index 0000000000..8b0f54e47e
Binary files /dev/null and b/backend/tests/integration/tests/pruning/website/fonts/fontawesome.otf differ
diff --git a/backend/tests/integration/tests/pruning/website/img/avatar.png b/backend/tests/integration/tests/pruning/website/img/avatar.png
new file mode 100644
index 0000000000..f11955333e
Binary files /dev/null and b/backend/tests/integration/tests/pruning/website/img/avatar.png differ
diff --git a/backend/tests/integration/tests/pruning/website/img/bg_direction_nav.png b/backend/tests/integration/tests/pruning/website/img/bg_direction_nav.png
new file mode 100644
index 0000000000..59b2e718c8
Binary files /dev/null and b/backend/tests/integration/tests/pruning/website/img/bg_direction_nav.png differ
diff --git a/backend/tests/integration/tests/pruning/website/img/glyphicons-halflings-white.png b/backend/tests/integration/tests/pruning/website/img/glyphicons-halflings-white.png
new file mode 100644
index 0000000000..3bf6484a29
Binary files /dev/null and b/backend/tests/integration/tests/pruning/website/img/glyphicons-halflings-white.png differ
diff --git a/backend/tests/integration/tests/pruning/website/img/glyphicons-halflings.png b/backend/tests/integration/tests/pruning/website/img/glyphicons-halflings.png
new file mode 100644
index 0000000000..a996999320
Binary files /dev/null and b/backend/tests/integration/tests/pruning/website/img/glyphicons-halflings.png differ
diff --git a/backend/tests/integration/tests/pruning/website/img/logo.png b/backend/tests/integration/tests/pruning/website/img/logo.png
new file mode 100644
index 0000000000..04fb2a4147
Binary files /dev/null and b/backend/tests/integration/tests/pruning/website/img/logo.png differ
diff --git a/backend/tests/integration/tests/pruning/website/img/nivo-bullets.png b/backend/tests/integration/tests/pruning/website/img/nivo-bullets.png
new file mode 100644
index 0000000000..a84c9c0bdc
Binary files /dev/null and b/backend/tests/integration/tests/pruning/website/img/nivo-bullets.png differ
diff --git a/backend/tests/integration/tests/pruning/website/img/section-image-1.png b/backend/tests/integration/tests/pruning/website/img/section-image-1.png
new file mode 100644
index 0000000000..9c0fab01c0
Binary files /dev/null and b/backend/tests/integration/tests/pruning/website/img/section-image-1.png differ
diff --git a/backend/tests/integration/tests/pruning/website/img/service1.jpg b/backend/tests/integration/tests/pruning/website/img/service1.jpg
new file mode 100644
index 0000000000..ed8c9c3557
Binary files /dev/null and b/backend/tests/integration/tests/pruning/website/img/service1.jpg differ
diff --git a/backend/tests/integration/tests/pruning/website/img/service2.jpg b/backend/tests/integration/tests/pruning/website/img/service2.jpg
new file mode 100644
index 0000000000..1e42801fab
Binary files /dev/null and b/backend/tests/integration/tests/pruning/website/img/service2.jpg differ
diff --git a/backend/tests/integration/tests/pruning/website/img/service3.jpg b/backend/tests/integration/tests/pruning/website/img/service3.jpg
new file mode 100644
index 0000000000..0332b3e3dc
Binary files /dev/null and b/backend/tests/integration/tests/pruning/website/img/service3.jpg differ
diff --git a/backend/tests/integration/tests/pruning/website/img/slides/1.jpg b/backend/tests/integration/tests/pruning/website/img/slides/1.jpg
new file mode 100644
index 0000000000..872131c2dc
Binary files /dev/null and b/backend/tests/integration/tests/pruning/website/img/slides/1.jpg differ
diff --git a/backend/tests/integration/tests/pruning/website/img/slides/2.jpg b/backend/tests/integration/tests/pruning/website/img/slides/2.jpg
new file mode 100644
index 0000000000..0e7fc381d4
Binary files /dev/null and b/backend/tests/integration/tests/pruning/website/img/slides/2.jpg differ
diff --git a/backend/tests/integration/tests/pruning/website/img/slides/3.jpg b/backend/tests/integration/tests/pruning/website/img/slides/3.jpg
new file mode 100644
index 0000000000..67eb62b93f
Binary files /dev/null and b/backend/tests/integration/tests/pruning/website/img/slides/3.jpg differ
diff --git a/backend/tests/integration/tests/pruning/website/img/team1.jpg b/backend/tests/integration/tests/pruning/website/img/team1.jpg
new file mode 100644
index 0000000000..0e0c282cad
Binary files /dev/null and b/backend/tests/integration/tests/pruning/website/img/team1.jpg differ
diff --git a/backend/tests/integration/tests/pruning/website/img/team2.jpg b/backend/tests/integration/tests/pruning/website/img/team2.jpg
new file mode 100644
index 0000000000..242d6c79d9
Binary files /dev/null and b/backend/tests/integration/tests/pruning/website/img/team2.jpg differ
diff --git a/backend/tests/integration/tests/pruning/website/img/team3.jpg b/backend/tests/integration/tests/pruning/website/img/team3.jpg
new file mode 100644
index 0000000000..fcbb2908d4
Binary files /dev/null and b/backend/tests/integration/tests/pruning/website/img/team3.jpg differ
diff --git a/backend/tests/integration/tests/pruning/website/img/team4.jpg b/backend/tests/integration/tests/pruning/website/img/team4.jpg
new file mode 100644
index 0000000000..88039d54e8
Binary files /dev/null and b/backend/tests/integration/tests/pruning/website/img/team4.jpg differ
diff --git a/backend/tests/integration/tests/pruning/website/img/works/1.jpg b/backend/tests/integration/tests/pruning/website/img/works/1.jpg
new file mode 100644
index 0000000000..c6fce1776d
Binary files /dev/null and b/backend/tests/integration/tests/pruning/website/img/works/1.jpg differ
diff --git a/backend/tests/integration/tests/pruning/website/img/works/2.jpg b/backend/tests/integration/tests/pruning/website/img/works/2.jpg
new file mode 100644
index 0000000000..4b6e0d1a71
Binary files /dev/null and b/backend/tests/integration/tests/pruning/website/img/works/2.jpg differ
diff --git a/backend/tests/integration/tests/pruning/website/img/works/3.jpg b/backend/tests/integration/tests/pruning/website/img/works/3.jpg
new file mode 100644
index 0000000000..fd8b3b6729
Binary files /dev/null and b/backend/tests/integration/tests/pruning/website/img/works/3.jpg differ
diff --git a/backend/tests/integration/tests/pruning/website/img/works/4.jpg b/backend/tests/integration/tests/pruning/website/img/works/4.jpg
new file mode 100644
index 0000000000..a55d6eafbe
Binary files /dev/null and b/backend/tests/integration/tests/pruning/website/img/works/4.jpg differ
diff --git a/backend/tests/integration/tests/pruning/website/img/works/5.jpg b/backend/tests/integration/tests/pruning/website/img/works/5.jpg
new file mode 100644
index 0000000000..e5907a7793
Binary files /dev/null and b/backend/tests/integration/tests/pruning/website/img/works/5.jpg differ
diff --git a/backend/tests/integration/tests/pruning/website/img/works/6.jpg b/backend/tests/integration/tests/pruning/website/img/works/6.jpg
new file mode 100644
index 0000000000..9758bd5937
Binary files /dev/null and b/backend/tests/integration/tests/pruning/website/img/works/6.jpg differ
diff --git a/backend/tests/integration/tests/pruning/website/img/works/7.jpg b/backend/tests/integration/tests/pruning/website/img/works/7.jpg
new file mode 100644
index 0000000000..78c73c643c
Binary files /dev/null and b/backend/tests/integration/tests/pruning/website/img/works/7.jpg differ
diff --git a/backend/tests/integration/tests/pruning/website/img/works/8.jpg b/backend/tests/integration/tests/pruning/website/img/works/8.jpg
new file mode 100644
index 0000000000..4570ff38eb
Binary files /dev/null and b/backend/tests/integration/tests/pruning/website/img/works/8.jpg differ
diff --git a/backend/tests/integration/tests/pruning/website/index.html b/backend/tests/integration/tests/pruning/website/index.html
new file mode 100644
index 0000000000..39e5fa6ff0
--- /dev/null
+++ b/backend/tests/integration/tests/pruning/website/index.html
@@ -0,0 +1,309 @@
+
+
+
+
+Above Multi-purpose Free Bootstrap Responsive Template
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Online Education
+
The best educational template
+
+
+
+
+
+
+
School Education
+
Get all courses with on-line content
+
+
+
+
+
+
+
Collage Education
+
Awesome Template get it know
+
+
+
+
+
+
+
+
+
+
+
+
Our Featured Courses Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolores quae porro consequatur aliquam, incidunt eius magni provident, doloribus omnis minus temporibus perferendis nesciunt quam repellendus nulla nemo ipsum odit corrupti consequuntur possimus, vero mollitia velit ad consectetur. Alias, laborum excepturi nihil autem nemo numquam, ipsa architecto non, magni consequuntur quam.
+
+
+
+
+
+
+
+
+
+
+
+
+
Web Development Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolores quae porro consequatur aliquam, incidunt eius magni provident
+
+
+
+
UI Design Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolores quae porro consequatur aliquam, incidunt eius magni provident
+
+
+
+
Interaction Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolores quae porro consequatur aliquam, incidunt eius magni provident
+
+
+
+
User Experiance Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolores quae porro consequatur aliquam, incidunt eius magni provident
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi.
+
+ - Mark John -
+
+
+
+
Blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi.
+
+ - Jaison Warner -
+
+
+
+
Blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi.
+
+ - Tony Antonio -
+
+
+
+
Blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi.
+
+ - Leena Doe -
+
+
+
+
+
+
+
+
+
+
+
+
+
Courses We Offer Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolores quae porro consequatur aliquam, incidunt eius magni provident, doloribus omnis minus temporibus perferendis nesciunt quam repellendus nulla nemo ipsum odit corrupti consequuntur possimus, vero mollitia velit ad consectetur. Alias, laborum excepturi nihil autem nemo numquam, ipsa architecto non, magni consequuntur quam.
+
+
+
+
+
+
Heading Course
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Praesent vest sit amet, consec ibulum molestie lacus. Aenean nonummy hendrerit mauris. Phasellus porta.
+
+
+
+
Heading Course
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Praesent vest sit amet, consec ibulum molestie lacus. Aenean nonummy hendrerit mauris. Phasellus porta.
+
+
+
+
Heading Course
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Praesent vest sit amet, consec ibulum molestie lacus. Aenean nonummy hendrerit mauris. Phasellus porta.
+
+
+
+
+
+
Heading Course
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Praesent vest sit amet, consec ibulum molestie lacus. Aenean nonummy hendrerit mauris. Phasellus porta.
+
+
+
+
Heading Course
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Praesent vest sit amet, consec ibulum molestie lacus. Aenean nonummy hendrerit mauris. Phasellus porta.
+
+
+
+
Heading Course
+
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Praesent vest sit amet, consec ibulum molestie lacus. Aenean nonummy hendrerit mauris. Phasellus porta.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/backend/tests/integration/tests/pruning/website/js/animate.js b/backend/tests/integration/tests/pruning/website/js/animate.js
new file mode 100644
index 0000000000..98875e1b65
--- /dev/null
+++ b/backend/tests/integration/tests/pruning/website/js/animate.js
@@ -0,0 +1,477 @@
+jQuery(document).ready(function ($) {
+ //animate effect
+ $(".e_flash").hover(
+ function () {
+ $(this).addClass("animated flash");
+ },
+ function () {
+ $(this).removeClass("animated flash");
+ },
+ );
+ $(".e_bounce").hover(
+ function () {
+ $(this).addClass("animated bounce");
+ },
+ function () {
+ $(this).removeClass("animated bounce");
+ },
+ );
+
+ $(".e_shake").hover(
+ function () {
+ $(this).addClass("animated shake");
+ },
+ function () {
+ $(this).removeClass("animated shake");
+ },
+ );
+ $(".e_tada").hover(
+ function () {
+ $(this).addClass("animated tada");
+ },
+ function () {
+ $(this).removeClass("animated tada");
+ },
+ );
+ $(".e_swing").hover(
+ function () {
+ $(this).addClass("animated swing");
+ },
+ function () {
+ $(this).removeClass("animated swing");
+ },
+ );
+ $(".e_wobble").hover(
+ function () {
+ $(this).addClass("animated wobble");
+ },
+ function () {
+ $(this).removeClass("animated wobble");
+ },
+ );
+ $(".e_wiggle").hover(
+ function () {
+ $(this).addClass("animated wiggle");
+ },
+ function () {
+ $(this).removeClass("animated wiggle");
+ },
+ );
+ $(".e_pulse").hover(
+ function () {
+ $(this).addClass("animated pulse");
+ },
+ function () {
+ $(this).removeClass("animated pulse");
+ },
+ );
+
+ $(".e_flip").hover(
+ function () {
+ $(this).addClass("animated flip");
+ },
+ function () {
+ $(this).removeClass("animated flip");
+ },
+ );
+ $(".e_flipInX").hover(
+ function () {
+ $(this).addClass("animated flipInX");
+ },
+ function () {
+ $(this).removeClass("animated flipInX");
+ },
+ );
+ $(".e_flipOutX").hover(
+ function () {
+ $(this).addClass("animated flipOutX");
+ },
+ function () {
+ $(this).removeClass("animated flipOutX");
+ },
+ );
+ $(".e_flipInY").hover(
+ function () {
+ $(this).addClass("animated flipInY");
+ },
+ function () {
+ $(this).removeClass("animated flipInY");
+ },
+ );
+ $(".e_flipOutY").hover(
+ function () {
+ $(this).addClass("animated flipOutY");
+ },
+ function () {
+ $(this).removeClass("animated flipOutY");
+ },
+ );
+
+ //Fading entrances
+ $(".e_fadeIn").hover(
+ function () {
+ $(this).addClass("animated fadeIn");
+ },
+ function () {
+ $(this).removeClass("animated fadeIn");
+ },
+ );
+ $(".e_fadeInUp").hover(
+ function () {
+ $(this).addClass("animated fadeInUp");
+ },
+ function () {
+ $(this).removeClass("animated fadeInUp");
+ },
+ );
+ $(".e_fadeInDown").hover(
+ function () {
+ $(this).addClass("animated fadeInDown");
+ },
+ function () {
+ $(this).removeClass("animated fadeInDown");
+ },
+ );
+ $(".e_fadeInLeft").hover(
+ function () {
+ $(this).addClass("animated fadeInLeft");
+ },
+ function () {
+ $(this).removeClass("animated fadeInLeft");
+ },
+ );
+ $(".e_fadeInRight").hover(
+ function () {
+ $(this).addClass("animated fadeInRight");
+ },
+ function () {
+ $(this).removeClass("animated fadeInRight");
+ },
+ );
+ $(".e_fadeInUpBig").hover(
+ function () {
+ $(this).addClass("animated fadeInUpBig");
+ },
+ function () {
+ $(this).removeClass("animated fadeInUpBig");
+ },
+ );
+ $(".e_fadeInUpBig").hover(
+ function () {
+ $(this).addClass("animated fadeInUpBig");
+ },
+ function () {
+ $(this).removeClass("animated fadeInUpBig");
+ },
+ );
+ $(".e_fadeInDownBig").hover(
+ function () {
+ $(this).addClass("animated fadeInDownBig");
+ },
+ function () {
+ $(this).removeClass("animated fadeInDownBig");
+ },
+ );
+ $(".e_fadeInLeftBig").hover(
+ function () {
+ $(this).addClass("animated fadeInLeftBig");
+ },
+ function () {
+ $(this).removeClass("animated fadeInLeftBig");
+ },
+ );
+ $(".e_fadeInRightBig").hover(
+ function () {
+ $(this).addClass("animated fadeInRightBig");
+ },
+ function () {
+ $(this).removeClass("animated fadeInRightBig");
+ },
+ );
+
+ //Fading exits
+ $(".e_fadeOut").hover(
+ function () {
+ $(this).addClass("animated fadeOut");
+ },
+ function () {
+ $(this).removeClass("animated fadeOut");
+ },
+ );
+ $(".e_fadeOutUp").hover(
+ function () {
+ $(this).addClass("animated fadeOutUp");
+ },
+ function () {
+ $(this).removeClass("animated fadeOutUp");
+ },
+ );
+ $(".e_fadeOutDown").hover(
+ function () {
+ $(this).addClass("animated fadeOutDown");
+ },
+ function () {
+ $(this).removeClass("animated fadeOutDown");
+ },
+ );
+ $(".e_fadeOutLeft").hover(
+ function () {
+ $(this).addClass("animated fadeOutLeft");
+ },
+ function () {
+ $(this).removeClass("animated fadeOutLeft");
+ },
+ );
+ $(".e_fadeOutRight").hover(
+ function () {
+ $(this).addClass("animated fadeOutRight");
+ },
+ function () {
+ $(this).removeClass("animated fadeOutRight");
+ },
+ );
+ $(".e_fadeOutUpBig").hover(
+ function () {
+ $(this).addClass("animated fadeOutUpBig");
+ },
+ function () {
+ $(this).removeClass("animated fadeOutUpBig");
+ },
+ );
+ $(".e_fadeOutDownBig").hover(
+ function () {
+ $(this).addClass("animated fadeOutDownBig");
+ },
+ function () {
+ $(this).removeClass("animated fadeOutDownBig");
+ },
+ );
+ $(".e_fadeOutLeftBig").hover(
+ function () {
+ $(this).addClass("animated fadeOutLeftBig");
+ },
+ function () {
+ $(this).removeClass("animated fadeOutLeftBig");
+ },
+ );
+ $(".e_fadeOutRightBig").hover(
+ function () {
+ $(this).addClass("animated fadeOutRightBig");
+ },
+ function () {
+ $(this).removeClass("animated fadeOutRightBig");
+ },
+ );
+
+ //Bouncing entrances
+ $(".e_bounceIn").hover(
+ function () {
+ $(this).addClass("animated bounceIn");
+ },
+ function () {
+ $(this).removeClass("animated bounceIn");
+ },
+ );
+ $(".e_bounceInDown").hover(
+ function () {
+ $(this).addClass("animated bounceInDown");
+ },
+ function () {
+ $(this).removeClass("animated bounceInDown");
+ },
+ );
+ $(".e_bounceInUp").hover(
+ function () {
+ $(this).addClass("animated bounceInUp");
+ },
+ function () {
+ $(this).removeClass("animated bounceInUp");
+ },
+ );
+ $(".e_bounceInLeft").hover(
+ function () {
+ $(this).addClass("animated bounceInLeft");
+ },
+ function () {
+ $(this).removeClass("animated bounceInLeft");
+ },
+ );
+ $(".e_bounceInRight").hover(
+ function () {
+ $(this).addClass("animated bounceInRight");
+ },
+ function () {
+ $(this).removeClass("animated bounceInRight");
+ },
+ );
+
+ //Bouncing exits
+ $(".e_bounceOut").hover(
+ function () {
+ $(this).addClass("animated bounceOut");
+ },
+ function () {
+ $(this).removeClass("animated bounceOut");
+ },
+ );
+ $(".e_bounceOutDown").hover(
+ function () {
+ $(this).addClass("animated bounceOutDown");
+ },
+ function () {
+ $(this).removeClass("animated bounceOutDown");
+ },
+ );
+ $(".e_bounceOutUp").hover(
+ function () {
+ $(this).addClass("animated bounceOutUp");
+ },
+ function () {
+ $(this).removeClass("animated bounceOutUp");
+ },
+ );
+ $(".e_bounceOutLeft").hover(
+ function () {
+ $(this).addClass("animated bounceOutLeft");
+ },
+ function () {
+ $(this).removeClass("animated bounceOutLeft");
+ },
+ );
+ $(".e_bounceOutRight").hover(
+ function () {
+ $(this).addClass("animated bounceOutRight");
+ },
+ function () {
+ $(this).removeClass("animated bounceOutRight");
+ },
+ );
+
+ //Rotating entrances
+ $(".e_rotateIn").hover(
+ function () {
+ $(this).addClass("animated rotateIn");
+ },
+ function () {
+ $(this).removeClass("animated rotateIn");
+ },
+ );
+ $(".e_rotateInDownLeft").hover(
+ function () {
+ $(this).addClass("animated rotateInDownLeft");
+ },
+ function () {
+ $(this).removeClass("animated rotateInDownLeft");
+ },
+ );
+ $(".e_rotateInDownRight").hover(
+ function () {
+ $(this).addClass("animated rotateInDownRight");
+ },
+ function () {
+ $(this).removeClass("animated rotateInDownRight");
+ },
+ );
+ $(".e_rotateInUpRight").hover(
+ function () {
+ $(this).addClass("animated rotateInUpRight");
+ },
+ function () {
+ $(this).removeClass("animated rotateInUpRight");
+ },
+ );
+ $(".e_rotateInUpLeft").hover(
+ function () {
+ $(this).addClass("animated rotateInUpLeft");
+ },
+ function () {
+ $(this).removeClass("animated rotateInUpLeft");
+ },
+ );
+
+ //Rotating exits
+ $(".e_rotateOut").hover(
+ function () {
+ $(this).addClass("animated rotateOut");
+ },
+ function () {
+ $(this).removeClass("animated rotateOut");
+ },
+ );
+ $(".e_rotateOutDownLeft").hover(
+ function () {
+ $(this).addClass("animated rotateOutDownLeft");
+ },
+ function () {
+ $(this).removeClass("animated rotateOutDownLeft");
+ },
+ );
+ $(".e_rotateOutDownRight").hover(
+ function () {
+ $(this).addClass("animated rotateOutDownRight");
+ },
+ function () {
+ $(this).removeClass("animated rotateOutDownRight");
+ },
+ );
+ $(".e_rotateOutUpLeft").hover(
+ function () {
+ $(this).addClass("animated rotateOutUpLeft");
+ },
+ function () {
+ $(this).removeClass("animated rotateOutUpLeft");
+ },
+ );
+ $(".e_rotateOutUpRight").hover(
+ function () {
+ $(this).addClass("animated rotateOutUpRight");
+ },
+ function () {
+ $(this).removeClass("animated rotateOutUpRight");
+ },
+ );
+
+ //Lightspeed
+ $(".e_lightSpeedIn").hover(
+ function () {
+ $(this).addClass("animated lightSpeedIn");
+ },
+ function () {
+ $(this).removeClass("animated lightSpeedIn");
+ },
+ );
+ $(".e_lightSpeedOut").hover(
+ function () {
+ $(this).addClass("animated lightSpeedOut");
+ },
+ function () {
+ $(this).removeClass("animated lightSpeedOut");
+ },
+ );
+
+ //specials
+ $(".e_hinge").hover(
+ function () {
+ $(this).addClass("animated hinge");
+ },
+ function () {
+ $(this).removeClass("animated hinge");
+ },
+ );
+ $(".e_rollIn").hover(
+ function () {
+ $(this).addClass("animated rollIn");
+ },
+ function () {
+ $(this).removeClass("animated rollIn");
+ },
+ );
+ $(".e_rollOut").hover(
+ function () {
+ $(this).addClass("animated rollOut");
+ },
+ function () {
+ $(this).removeClass("animated rollOut");
+ },
+ );
+});
diff --git a/backend/tests/integration/tests/pruning/website/js/bootstrap.min.js b/backend/tests/integration/tests/pruning/website/js/bootstrap.min.js
new file mode 100644
index 0000000000..d6c0c9a8f9
--- /dev/null
+++ b/backend/tests/integration/tests/pruning/website/js/bootstrap.min.js
@@ -0,0 +1,1352 @@
+/*!
+ * Bootstrap v3.1.0 (http://getbootstrap.com)
+ * Copyright 2011-2014 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+if ("undefined" == typeof jQuery) throw new Error("Bootstrap requires jQuery");
++(function (a) {
+ "use strict";
+ function b() {
+ var a = document.createElement("bootstrap"),
+ b = {
+ WebkitTransition: "webkitTransitionEnd",
+ MozTransition: "transitionend",
+ OTransition: "oTransitionEnd otransitionend",
+ transition: "transitionend",
+ };
+ for (var c in b) if (void 0 !== a.style[c]) return { end: b[c] };
+ return !1;
+ }
+ (a.fn.emulateTransitionEnd = function (b) {
+ var c = !1,
+ d = this;
+ a(this).one(a.support.transition.end, function () {
+ c = !0;
+ });
+ var e = function () {
+ c || a(d).trigger(a.support.transition.end);
+ };
+ return setTimeout(e, b), this;
+ }),
+ a(function () {
+ a.support.transition = b();
+ });
+})(jQuery),
+ +(function (a) {
+ "use strict";
+ var b = '[data-dismiss="alert"]',
+ c = function (c) {
+ a(c).on("click", b, this.close);
+ };
+ c.prototype.close = function (b) {
+ function c() {
+ f.trigger("closed.bs.alert").remove();
+ }
+ var d = a(this),
+ e = d.attr("data-target");
+ e || ((e = d.attr("href")), (e = e && e.replace(/.*(?=#[^\s]*$)/, "")));
+ var f = a(e);
+ b && b.preventDefault(),
+ f.length || (f = d.hasClass("alert") ? d : d.parent()),
+ f.trigger((b = a.Event("close.bs.alert"))),
+ b.isDefaultPrevented() ||
+ (f.removeClass("in"),
+ a.support.transition && f.hasClass("fade")
+ ? f.one(a.support.transition.end, c).emulateTransitionEnd(150)
+ : c());
+ };
+ var d = a.fn.alert;
+ (a.fn.alert = function (b) {
+ return this.each(function () {
+ var d = a(this),
+ e = d.data("bs.alert");
+ e || d.data("bs.alert", (e = new c(this))),
+ "string" == typeof b && e[b].call(d);
+ });
+ }),
+ (a.fn.alert.Constructor = c),
+ (a.fn.alert.noConflict = function () {
+ return (a.fn.alert = d), this;
+ }),
+ a(document).on("click.bs.alert.data-api", b, c.prototype.close);
+ })(jQuery),
+ +(function (a) {
+ "use strict";
+ var b = function (c, d) {
+ (this.$element = a(c)),
+ (this.options = a.extend({}, b.DEFAULTS, d)),
+ (this.isLoading = !1);
+ };
+ (b.DEFAULTS = { loadingText: "loading..." }),
+ (b.prototype.setState = function (b) {
+ var c = "disabled",
+ d = this.$element,
+ e = d.is("input") ? "val" : "html",
+ f = d.data();
+ (b += "Text"),
+ f.resetText || d.data("resetText", d[e]()),
+ d[e](f[b] || this.options[b]),
+ setTimeout(
+ a.proxy(function () {
+ "loadingText" == b
+ ? ((this.isLoading = !0), d.addClass(c).attr(c, c))
+ : this.isLoading &&
+ ((this.isLoading = !1), d.removeClass(c).removeAttr(c));
+ }, this),
+ 0,
+ );
+ }),
+ (b.prototype.toggle = function () {
+ var a = !0,
+ b = this.$element.closest('[data-toggle="buttons"]');
+ if (b.length) {
+ var c = this.$element.find("input");
+ "radio" == c.prop("type") &&
+ (c.prop("checked") && this.$element.hasClass("active")
+ ? (a = !1)
+ : b.find(".active").removeClass("active")),
+ a &&
+ c
+ .prop("checked", !this.$element.hasClass("active"))
+ .trigger("change");
+ }
+ a && this.$element.toggleClass("active");
+ });
+ var c = a.fn.button;
+ (a.fn.button = function (c) {
+ return this.each(function () {
+ var d = a(this),
+ e = d.data("bs.button"),
+ f = "object" == typeof c && c;
+ e || d.data("bs.button", (e = new b(this, f))),
+ "toggle" == c ? e.toggle() : c && e.setState(c);
+ });
+ }),
+ (a.fn.button.Constructor = b),
+ (a.fn.button.noConflict = function () {
+ return (a.fn.button = c), this;
+ }),
+ a(document).on(
+ "click.bs.button.data-api",
+ "[data-toggle^=button]",
+ function (b) {
+ var c = a(b.target);
+ c.hasClass("btn") || (c = c.closest(".btn")),
+ c.button("toggle"),
+ b.preventDefault();
+ },
+ );
+ })(jQuery),
+ +(function (a) {
+ "use strict";
+ var b = function (b, c) {
+ (this.$element = a(b)),
+ (this.$indicators = this.$element.find(".carousel-indicators")),
+ (this.options = c),
+ (this.paused =
+ this.sliding =
+ this.interval =
+ this.$active =
+ this.$items =
+ null),
+ "hover" == this.options.pause &&
+ this.$element
+ .on("mouseenter", a.proxy(this.pause, this))
+ .on("mouseleave", a.proxy(this.cycle, this));
+ };
+ (b.DEFAULTS = { interval: 5e3, pause: "hover", wrap: !0 }),
+ (b.prototype.cycle = function (b) {
+ return (
+ b || (this.paused = !1),
+ this.interval && clearInterval(this.interval),
+ this.options.interval &&
+ !this.paused &&
+ (this.interval = setInterval(
+ a.proxy(this.next, this),
+ this.options.interval,
+ )),
+ this
+ );
+ }),
+ (b.prototype.getActiveIndex = function () {
+ return (
+ (this.$active = this.$element.find(".item.active")),
+ (this.$items = this.$active.parent().children()),
+ this.$items.index(this.$active)
+ );
+ }),
+ (b.prototype.to = function (b) {
+ var c = this,
+ d = this.getActiveIndex();
+ return b > this.$items.length - 1 || 0 > b
+ ? void 0
+ : this.sliding
+ ? this.$element.one("slid.bs.carousel", function () {
+ c.to(b);
+ })
+ : d == b
+ ? this.pause().cycle()
+ : this.slide(b > d ? "next" : "prev", a(this.$items[b]));
+ }),
+ (b.prototype.pause = function (b) {
+ return (
+ b || (this.paused = !0),
+ this.$element.find(".next, .prev").length &&
+ a.support.transition &&
+ (this.$element.trigger(a.support.transition.end), this.cycle(!0)),
+ (this.interval = clearInterval(this.interval)),
+ this
+ );
+ }),
+ (b.prototype.next = function () {
+ return this.sliding ? void 0 : this.slide("next");
+ }),
+ (b.prototype.prev = function () {
+ return this.sliding ? void 0 : this.slide("prev");
+ }),
+ (b.prototype.slide = function (b, c) {
+ var d = this.$element.find(".item.active"),
+ e = c || d[b](),
+ f = this.interval,
+ g = "next" == b ? "left" : "right",
+ h = "next" == b ? "first" : "last",
+ i = this;
+ if (!e.length) {
+ if (!this.options.wrap) return;
+ e = this.$element.find(".item")[h]();
+ }
+ if (e.hasClass("active")) return (this.sliding = !1);
+ var j = a.Event("slide.bs.carousel", {
+ relatedTarget: e[0],
+ direction: g,
+ });
+ return (
+ this.$element.trigger(j),
+ j.isDefaultPrevented()
+ ? void 0
+ : ((this.sliding = !0),
+ f && this.pause(),
+ this.$indicators.length &&
+ (this.$indicators.find(".active").removeClass("active"),
+ this.$element.one("slid.bs.carousel", function () {
+ var b = a(i.$indicators.children()[i.getActiveIndex()]);
+ b && b.addClass("active");
+ })),
+ a.support.transition && this.$element.hasClass("slide")
+ ? (e.addClass(b),
+ e[0].offsetWidth,
+ d.addClass(g),
+ e.addClass(g),
+ d
+ .one(a.support.transition.end, function () {
+ e.removeClass([b, g].join(" ")).addClass("active"),
+ d.removeClass(["active", g].join(" ")),
+ (i.sliding = !1),
+ setTimeout(function () {
+ i.$element.trigger("slid.bs.carousel");
+ }, 0);
+ })
+ .emulateTransitionEnd(
+ 1e3 * d.css("transition-duration").slice(0, -1),
+ ))
+ : (d.removeClass("active"),
+ e.addClass("active"),
+ (this.sliding = !1),
+ this.$element.trigger("slid.bs.carousel")),
+ f && this.cycle(),
+ this)
+ );
+ });
+ var c = a.fn.carousel;
+ (a.fn.carousel = function (c) {
+ return this.each(function () {
+ var d = a(this),
+ e = d.data("bs.carousel"),
+ f = a.extend({}, b.DEFAULTS, d.data(), "object" == typeof c && c),
+ g = "string" == typeof c ? c : f.slide;
+ e || d.data("bs.carousel", (e = new b(this, f))),
+ "number" == typeof c
+ ? e.to(c)
+ : g
+ ? e[g]()
+ : f.interval && e.pause().cycle();
+ });
+ }),
+ (a.fn.carousel.Constructor = b),
+ (a.fn.carousel.noConflict = function () {
+ return (a.fn.carousel = c), this;
+ }),
+ a(document).on(
+ "click.bs.carousel.data-api",
+ "[data-slide], [data-slide-to]",
+ function (b) {
+ var c,
+ d = a(this),
+ e = a(
+ d.attr("data-target") ||
+ ((c = d.attr("href")) && c.replace(/.*(?=#[^\s]+$)/, "")),
+ ),
+ f = a.extend({}, e.data(), d.data()),
+ g = d.attr("data-slide-to");
+ g && (f.interval = !1),
+ e.carousel(f),
+ (g = d.attr("data-slide-to")) && e.data("bs.carousel").to(g),
+ b.preventDefault();
+ },
+ ),
+ a(window).on("load", function () {
+ a('[data-ride="carousel"]').each(function () {
+ var b = a(this);
+ b.carousel(b.data());
+ });
+ });
+ })(jQuery),
+ +(function (a) {
+ "use strict";
+ var b = function (c, d) {
+ (this.$element = a(c)),
+ (this.options = a.extend({}, b.DEFAULTS, d)),
+ (this.transitioning = null),
+ this.options.parent && (this.$parent = a(this.options.parent)),
+ this.options.toggle && this.toggle();
+ };
+ (b.DEFAULTS = { toggle: !0 }),
+ (b.prototype.dimension = function () {
+ var a = this.$element.hasClass("width");
+ return a ? "width" : "height";
+ }),
+ (b.prototype.show = function () {
+ if (!this.transitioning && !this.$element.hasClass("in")) {
+ var b = a.Event("show.bs.collapse");
+ if ((this.$element.trigger(b), !b.isDefaultPrevented())) {
+ var c = this.$parent && this.$parent.find("> .panel > .in");
+ if (c && c.length) {
+ var d = c.data("bs.collapse");
+ if (d && d.transitioning) return;
+ c.collapse("hide"), d || c.data("bs.collapse", null);
+ }
+ var e = this.dimension();
+ this.$element.removeClass("collapse").addClass("collapsing")[e](0),
+ (this.transitioning = 1);
+ var f = function () {
+ this.$element
+ .removeClass("collapsing")
+ .addClass("collapse in")
+ [e]("auto"),
+ (this.transitioning = 0),
+ this.$element.trigger("shown.bs.collapse");
+ };
+ if (!a.support.transition) return f.call(this);
+ var g = a.camelCase(["scroll", e].join("-"));
+ this.$element
+ .one(a.support.transition.end, a.proxy(f, this))
+ .emulateTransitionEnd(350)
+ [e](this.$element[0][g]);
+ }
+ }
+ }),
+ (b.prototype.hide = function () {
+ if (!this.transitioning && this.$element.hasClass("in")) {
+ var b = a.Event("hide.bs.collapse");
+ if ((this.$element.trigger(b), !b.isDefaultPrevented())) {
+ var c = this.dimension();
+ this.$element[c](this.$element[c]())[0].offsetHeight,
+ this.$element
+ .addClass("collapsing")
+ .removeClass("collapse")
+ .removeClass("in"),
+ (this.transitioning = 1);
+ var d = function () {
+ (this.transitioning = 0),
+ this.$element
+ .trigger("hidden.bs.collapse")
+ .removeClass("collapsing")
+ .addClass("collapse");
+ };
+ return a.support.transition
+ ? void this.$element[c](0)
+ .one(a.support.transition.end, a.proxy(d, this))
+ .emulateTransitionEnd(350)
+ : d.call(this);
+ }
+ }
+ }),
+ (b.prototype.toggle = function () {
+ this[this.$element.hasClass("in") ? "hide" : "show"]();
+ });
+ var c = a.fn.collapse;
+ (a.fn.collapse = function (c) {
+ return this.each(function () {
+ var d = a(this),
+ e = d.data("bs.collapse"),
+ f = a.extend({}, b.DEFAULTS, d.data(), "object" == typeof c && c);
+ !e && f.toggle && "show" == c && (c = !c),
+ e || d.data("bs.collapse", (e = new b(this, f))),
+ "string" == typeof c && e[c]();
+ });
+ }),
+ (a.fn.collapse.Constructor = b),
+ (a.fn.collapse.noConflict = function () {
+ return (a.fn.collapse = c), this;
+ }),
+ a(document).on(
+ "click.bs.collapse.data-api",
+ "[data-toggle=collapse]",
+ function (b) {
+ var c,
+ d = a(this),
+ e =
+ d.attr("data-target") ||
+ b.preventDefault() ||
+ ((c = d.attr("href")) && c.replace(/.*(?=#[^\s]+$)/, "")),
+ f = a(e),
+ g = f.data("bs.collapse"),
+ h = g ? "toggle" : d.data(),
+ i = d.attr("data-parent"),
+ j = i && a(i);
+ (g && g.transitioning) ||
+ (j &&
+ j
+ .find('[data-toggle=collapse][data-parent="' + i + '"]')
+ .not(d)
+ .addClass("collapsed"),
+ d[f.hasClass("in") ? "addClass" : "removeClass"]("collapsed")),
+ f.collapse(h);
+ },
+ );
+ })(jQuery),
+ +(function (a) {
+ "use strict";
+ function b(b) {
+ a(d).remove(),
+ a(e).each(function () {
+ var d = c(a(this)),
+ e = { relatedTarget: this };
+ d.hasClass("open") &&
+ (d.trigger((b = a.Event("hide.bs.dropdown", e))),
+ b.isDefaultPrevented() ||
+ d.removeClass("open").trigger("hidden.bs.dropdown", e));
+ });
+ }
+ function c(b) {
+ var c = b.attr("data-target");
+ c ||
+ ((c = b.attr("href")),
+ (c = c && /#[A-Za-z]/.test(c) && c.replace(/.*(?=#[^\s]*$)/, "")));
+ var d = c && a(c);
+ return d && d.length ? d : b.parent();
+ }
+ var d = ".dropdown-backdrop",
+ e = "[data-toggle=dropdown]",
+ f = function (b) {
+ a(b).on("click.bs.dropdown", this.toggle);
+ };
+ (f.prototype.toggle = function (d) {
+ var e = a(this);
+ if (!e.is(".disabled, :disabled")) {
+ var f = c(e),
+ g = f.hasClass("open");
+ if ((b(), !g)) {
+ "ontouchstart" in document.documentElement &&
+ !f.closest(".navbar-nav").length &&
+ a('
')
+ .insertAfter(a(this))
+ .on("click", b);
+ var h = { relatedTarget: this };
+ if (
+ (f.trigger((d = a.Event("show.bs.dropdown", h))),
+ d.isDefaultPrevented())
+ )
+ return;
+ f.toggleClass("open").trigger("shown.bs.dropdown", h), e.focus();
+ }
+ return !1;
+ }
+ }),
+ (f.prototype.keydown = function (b) {
+ if (/(38|40|27)/.test(b.keyCode)) {
+ var d = a(this);
+ if (
+ (b.preventDefault(),
+ b.stopPropagation(),
+ !d.is(".disabled, :disabled"))
+ ) {
+ var f = c(d),
+ g = f.hasClass("open");
+ if (!g || (g && 27 == b.keyCode))
+ return 27 == b.which && f.find(e).focus(), d.click();
+ var h = " li:not(.divider):visible a",
+ i = f.find("[role=menu]" + h + ", [role=listbox]" + h);
+ if (i.length) {
+ var j = i.index(i.filter(":focus"));
+ 38 == b.keyCode && j > 0 && j--,
+ 40 == b.keyCode && j < i.length - 1 && j++,
+ ~j || (j = 0),
+ i.eq(j).focus();
+ }
+ }
+ }
+ });
+ var g = a.fn.dropdown;
+ (a.fn.dropdown = function (b) {
+ return this.each(function () {
+ var c = a(this),
+ d = c.data("bs.dropdown");
+ d || c.data("bs.dropdown", (d = new f(this))),
+ "string" == typeof b && d[b].call(c);
+ });
+ }),
+ (a.fn.dropdown.Constructor = f),
+ (a.fn.dropdown.noConflict = function () {
+ return (a.fn.dropdown = g), this;
+ }),
+ a(document)
+ .on("click.bs.dropdown.data-api", b)
+ .on("click.bs.dropdown.data-api", ".dropdown form", function (a) {
+ a.stopPropagation();
+ })
+ .on("click.bs.dropdown.data-api", e, f.prototype.toggle)
+ .on(
+ "keydown.bs.dropdown.data-api",
+ e + ", [role=menu], [role=listbox]",
+ f.prototype.keydown,
+ );
+ })(jQuery),
+ +(function (a) {
+ "use strict";
+ var b = function (b, c) {
+ (this.options = c),
+ (this.$element = a(b)),
+ (this.$backdrop = this.isShown = null),
+ this.options.remote &&
+ this.$element.find(".modal-content").load(
+ this.options.remote,
+ a.proxy(function () {
+ this.$element.trigger("loaded.bs.modal");
+ }, this),
+ );
+ };
+ (b.DEFAULTS = { backdrop: !0, keyboard: !0, show: !0 }),
+ (b.prototype.toggle = function (a) {
+ return this[this.isShown ? "hide" : "show"](a);
+ }),
+ (b.prototype.show = function (b) {
+ var c = this,
+ d = a.Event("show.bs.modal", { relatedTarget: b });
+ this.$element.trigger(d),
+ this.isShown ||
+ d.isDefaultPrevented() ||
+ ((this.isShown = !0),
+ this.escape(),
+ this.$element.on(
+ "click.dismiss.bs.modal",
+ '[data-dismiss="modal"]',
+ a.proxy(this.hide, this),
+ ),
+ this.backdrop(function () {
+ var d = a.support.transition && c.$element.hasClass("fade");
+ c.$element.parent().length || c.$element.appendTo(document.body),
+ c.$element.show().scrollTop(0),
+ d && c.$element[0].offsetWidth,
+ c.$element.addClass("in").attr("aria-hidden", !1),
+ c.enforceFocus();
+ var e = a.Event("shown.bs.modal", { relatedTarget: b });
+ d
+ ? c.$element
+ .find(".modal-dialog")
+ .one(a.support.transition.end, function () {
+ c.$element.focus().trigger(e);
+ })
+ .emulateTransitionEnd(300)
+ : c.$element.focus().trigger(e);
+ }));
+ }),
+ (b.prototype.hide = function (b) {
+ b && b.preventDefault(),
+ (b = a.Event("hide.bs.modal")),
+ this.$element.trigger(b),
+ this.isShown &&
+ !b.isDefaultPrevented() &&
+ ((this.isShown = !1),
+ this.escape(),
+ a(document).off("focusin.bs.modal"),
+ this.$element
+ .removeClass("in")
+ .attr("aria-hidden", !0)
+ .off("click.dismiss.bs.modal"),
+ a.support.transition && this.$element.hasClass("fade")
+ ? this.$element
+ .one(a.support.transition.end, a.proxy(this.hideModal, this))
+ .emulateTransitionEnd(300)
+ : this.hideModal());
+ }),
+ (b.prototype.enforceFocus = function () {
+ a(document)
+ .off("focusin.bs.modal")
+ .on(
+ "focusin.bs.modal",
+ a.proxy(function (a) {
+ this.$element[0] === a.target ||
+ this.$element.has(a.target).length ||
+ this.$element.focus();
+ }, this),
+ );
+ }),
+ (b.prototype.escape = function () {
+ this.isShown && this.options.keyboard
+ ? this.$element.on(
+ "keyup.dismiss.bs.modal",
+ a.proxy(function (a) {
+ 27 == a.which && this.hide();
+ }, this),
+ )
+ : this.isShown || this.$element.off("keyup.dismiss.bs.modal");
+ }),
+ (b.prototype.hideModal = function () {
+ var a = this;
+ this.$element.hide(),
+ this.backdrop(function () {
+ a.removeBackdrop(), a.$element.trigger("hidden.bs.modal");
+ });
+ }),
+ (b.prototype.removeBackdrop = function () {
+ this.$backdrop && this.$backdrop.remove(), (this.$backdrop = null);
+ }),
+ (b.prototype.backdrop = function (b) {
+ var c = this.$element.hasClass("fade") ? "fade" : "";
+ if (this.isShown && this.options.backdrop) {
+ var d = a.support.transition && c;
+ if (
+ ((this.$backdrop = a(
+ '
',
+ ).appendTo(document.body)),
+ this.$element.on(
+ "click.dismiss.bs.modal",
+ a.proxy(function (a) {
+ a.target === a.currentTarget &&
+ ("static" == this.options.backdrop
+ ? this.$element[0].focus.call(this.$element[0])
+ : this.hide.call(this));
+ }, this),
+ ),
+ d && this.$backdrop[0].offsetWidth,
+ this.$backdrop.addClass("in"),
+ !b)
+ )
+ return;
+ d
+ ? this.$backdrop
+ .one(a.support.transition.end, b)
+ .emulateTransitionEnd(150)
+ : b();
+ } else
+ !this.isShown && this.$backdrop
+ ? (this.$backdrop.removeClass("in"),
+ a.support.transition && this.$element.hasClass("fade")
+ ? this.$backdrop
+ .one(a.support.transition.end, b)
+ .emulateTransitionEnd(150)
+ : b())
+ : b && b();
+ });
+ var c = a.fn.modal;
+ (a.fn.modal = function (c, d) {
+ return this.each(function () {
+ var e = a(this),
+ f = e.data("bs.modal"),
+ g = a.extend({}, b.DEFAULTS, e.data(), "object" == typeof c && c);
+ f || e.data("bs.modal", (f = new b(this, g))),
+ "string" == typeof c ? f[c](d) : g.show && f.show(d);
+ });
+ }),
+ (a.fn.modal.Constructor = b),
+ (a.fn.modal.noConflict = function () {
+ return (a.fn.modal = c), this;
+ }),
+ a(document).on(
+ "click.bs.modal.data-api",
+ '[data-toggle="modal"]',
+ function (b) {
+ var c = a(this),
+ d = c.attr("href"),
+ e = a(
+ c.attr("data-target") || (d && d.replace(/.*(?=#[^\s]+$)/, "")),
+ ),
+ f = e.data("bs.modal")
+ ? "toggle"
+ : a.extend({ remote: !/#/.test(d) && d }, e.data(), c.data());
+ c.is("a") && b.preventDefault(),
+ e.modal(f, this).one("hide", function () {
+ c.is(":visible") && c.focus();
+ });
+ },
+ ),
+ a(document)
+ .on("show.bs.modal", ".modal", function () {
+ a(document.body).addClass("modal-open");
+ })
+ .on("hidden.bs.modal", ".modal", function () {
+ a(document.body).removeClass("modal-open");
+ });
+ })(jQuery),
+ +(function (a) {
+ "use strict";
+ var b = function (a, b) {
+ (this.type =
+ this.options =
+ this.enabled =
+ this.timeout =
+ this.hoverState =
+ this.$element =
+ null),
+ this.init("tooltip", a, b);
+ };
+ (b.DEFAULTS = {
+ animation: !0,
+ placement: "top",
+ selector: !1,
+ template:
+ '',
+ trigger: "hover focus",
+ title: "",
+ delay: 0,
+ html: !1,
+ container: !1,
+ }),
+ (b.prototype.init = function (b, c, d) {
+ (this.enabled = !0),
+ (this.type = b),
+ (this.$element = a(c)),
+ (this.options = this.getOptions(d));
+ for (var e = this.options.trigger.split(" "), f = e.length; f--; ) {
+ var g = e[f];
+ if ("click" == g)
+ this.$element.on(
+ "click." + this.type,
+ this.options.selector,
+ a.proxy(this.toggle, this),
+ );
+ else if ("manual" != g) {
+ var h = "hover" == g ? "mouseenter" : "focusin",
+ i = "hover" == g ? "mouseleave" : "focusout";
+ this.$element.on(
+ h + "." + this.type,
+ this.options.selector,
+ a.proxy(this.enter, this),
+ ),
+ this.$element.on(
+ i + "." + this.type,
+ this.options.selector,
+ a.proxy(this.leave, this),
+ );
+ }
+ }
+ this.options.selector
+ ? (this._options = a.extend({}, this.options, {
+ trigger: "manual",
+ selector: "",
+ }))
+ : this.fixTitle();
+ }),
+ (b.prototype.getDefaults = function () {
+ return b.DEFAULTS;
+ }),
+ (b.prototype.getOptions = function (b) {
+ return (
+ (b = a.extend({}, this.getDefaults(), this.$element.data(), b)),
+ b.delay &&
+ "number" == typeof b.delay &&
+ (b.delay = { show: b.delay, hide: b.delay }),
+ b
+ );
+ }),
+ (b.prototype.getDelegateOptions = function () {
+ var b = {},
+ c = this.getDefaults();
+ return (
+ this._options &&
+ a.each(this._options, function (a, d) {
+ c[a] != d && (b[a] = d);
+ }),
+ b
+ );
+ }),
+ (b.prototype.enter = function (b) {
+ var c =
+ b instanceof this.constructor
+ ? b
+ : a(b.currentTarget)
+ [this.type](this.getDelegateOptions())
+ .data("bs." + this.type);
+ return (
+ clearTimeout(c.timeout),
+ (c.hoverState = "in"),
+ c.options.delay && c.options.delay.show
+ ? void (c.timeout = setTimeout(function () {
+ "in" == c.hoverState && c.show();
+ }, c.options.delay.show))
+ : c.show()
+ );
+ }),
+ (b.prototype.leave = function (b) {
+ var c =
+ b instanceof this.constructor
+ ? b
+ : a(b.currentTarget)
+ [this.type](this.getDelegateOptions())
+ .data("bs." + this.type);
+ return (
+ clearTimeout(c.timeout),
+ (c.hoverState = "out"),
+ c.options.delay && c.options.delay.hide
+ ? void (c.timeout = setTimeout(function () {
+ "out" == c.hoverState && c.hide();
+ }, c.options.delay.hide))
+ : c.hide()
+ );
+ }),
+ (b.prototype.show = function () {
+ var b = a.Event("show.bs." + this.type);
+ if (this.hasContent() && this.enabled) {
+ if ((this.$element.trigger(b), b.isDefaultPrevented())) return;
+ var c = this,
+ d = this.tip();
+ this.setContent(), this.options.animation && d.addClass("fade");
+ var e =
+ "function" == typeof this.options.placement
+ ? this.options.placement.call(this, d[0], this.$element[0])
+ : this.options.placement,
+ f = /\s?auto?\s?/i,
+ g = f.test(e);
+ g && (e = e.replace(f, "") || "top"),
+ d.detach().css({ top: 0, left: 0, display: "block" }).addClass(e),
+ this.options.container
+ ? d.appendTo(this.options.container)
+ : d.insertAfter(this.$element);
+ var h = this.getPosition(),
+ i = d[0].offsetWidth,
+ j = d[0].offsetHeight;
+ if (g) {
+ var k = this.$element.parent(),
+ l = e,
+ m = document.documentElement.scrollTop || document.body.scrollTop,
+ n =
+ "body" == this.options.container
+ ? window.innerWidth
+ : k.outerWidth(),
+ o =
+ "body" == this.options.container
+ ? window.innerHeight
+ : k.outerHeight(),
+ p = "body" == this.options.container ? 0 : k.offset().left;
+ (e =
+ "bottom" == e && h.top + h.height + j - m > o
+ ? "top"
+ : "top" == e && h.top - m - j < 0
+ ? "bottom"
+ : "right" == e && h.right + i > n
+ ? "left"
+ : "left" == e && h.left - i < p
+ ? "right"
+ : e),
+ d.removeClass(l).addClass(e);
+ }
+ var q = this.getCalculatedOffset(e, h, i, j);
+ this.applyPlacement(q, e), (this.hoverState = null);
+ var r = function () {
+ c.$element.trigger("shown.bs." + c.type);
+ };
+ a.support.transition && this.$tip.hasClass("fade")
+ ? d.one(a.support.transition.end, r).emulateTransitionEnd(150)
+ : r();
+ }
+ }),
+ (b.prototype.applyPlacement = function (b, c) {
+ var d,
+ e = this.tip(),
+ f = e[0].offsetWidth,
+ g = e[0].offsetHeight,
+ h = parseInt(e.css("margin-top"), 10),
+ i = parseInt(e.css("margin-left"), 10);
+ isNaN(h) && (h = 0),
+ isNaN(i) && (i = 0),
+ (b.top = b.top + h),
+ (b.left = b.left + i),
+ a.offset.setOffset(
+ e[0],
+ a.extend(
+ {
+ using: function (a) {
+ e.css({ top: Math.round(a.top), left: Math.round(a.left) });
+ },
+ },
+ b,
+ ),
+ 0,
+ ),
+ e.addClass("in");
+ var j = e[0].offsetWidth,
+ k = e[0].offsetHeight;
+ if (
+ ("top" == c && k != g && ((d = !0), (b.top = b.top + g - k)),
+ /bottom|top/.test(c))
+ ) {
+ var l = 0;
+ b.left < 0 &&
+ ((l = -2 * b.left),
+ (b.left = 0),
+ e.offset(b),
+ (j = e[0].offsetWidth),
+ (k = e[0].offsetHeight)),
+ this.replaceArrow(l - f + j, j, "left");
+ } else this.replaceArrow(k - g, k, "top");
+ d && e.offset(b);
+ }),
+ (b.prototype.replaceArrow = function (a, b, c) {
+ this.arrow().css(c, a ? 50 * (1 - a / b) + "%" : "");
+ }),
+ (b.prototype.setContent = function () {
+ var a = this.tip(),
+ b = this.getTitle();
+ a.find(".tooltip-inner")[this.options.html ? "html" : "text"](b),
+ a.removeClass("fade in top bottom left right");
+ }),
+ (b.prototype.hide = function () {
+ function b() {
+ "in" != c.hoverState && d.detach(),
+ c.$element.trigger("hidden.bs." + c.type);
+ }
+ var c = this,
+ d = this.tip(),
+ e = a.Event("hide.bs." + this.type);
+ return (
+ this.$element.trigger(e),
+ e.isDefaultPrevented()
+ ? void 0
+ : (d.removeClass("in"),
+ a.support.transition && this.$tip.hasClass("fade")
+ ? d.one(a.support.transition.end, b).emulateTransitionEnd(150)
+ : b(),
+ (this.hoverState = null),
+ this)
+ );
+ }),
+ (b.prototype.fixTitle = function () {
+ var a = this.$element;
+ (a.attr("title") || "string" != typeof a.attr("data-original-title")) &&
+ a
+ .attr("data-original-title", a.attr("title") || "")
+ .attr("title", "");
+ }),
+ (b.prototype.hasContent = function () {
+ return this.getTitle();
+ }),
+ (b.prototype.getPosition = function () {
+ var b = this.$element[0];
+ return a.extend(
+ {},
+ "function" == typeof b.getBoundingClientRect
+ ? b.getBoundingClientRect()
+ : { width: b.offsetWidth, height: b.offsetHeight },
+ this.$element.offset(),
+ );
+ }),
+ (b.prototype.getCalculatedOffset = function (a, b, c, d) {
+ return "bottom" == a
+ ? { top: b.top + b.height, left: b.left + b.width / 2 - c / 2 }
+ : "top" == a
+ ? { top: b.top - d, left: b.left + b.width / 2 - c / 2 }
+ : "left" == a
+ ? { top: b.top + b.height / 2 - d / 2, left: b.left - c }
+ : { top: b.top + b.height / 2 - d / 2, left: b.left + b.width };
+ }),
+ (b.prototype.getTitle = function () {
+ var a,
+ b = this.$element,
+ c = this.options;
+ return (a =
+ b.attr("data-original-title") ||
+ ("function" == typeof c.title ? c.title.call(b[0]) : c.title));
+ }),
+ (b.prototype.tip = function () {
+ return (this.$tip = this.$tip || a(this.options.template));
+ }),
+ (b.prototype.arrow = function () {
+ return (this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow"));
+ }),
+ (b.prototype.validate = function () {
+ this.$element[0].parentNode ||
+ (this.hide(), (this.$element = null), (this.options = null));
+ }),
+ (b.prototype.enable = function () {
+ this.enabled = !0;
+ }),
+ (b.prototype.disable = function () {
+ this.enabled = !1;
+ }),
+ (b.prototype.toggleEnabled = function () {
+ this.enabled = !this.enabled;
+ }),
+ (b.prototype.toggle = function (b) {
+ var c = b
+ ? a(b.currentTarget)
+ [this.type](this.getDelegateOptions())
+ .data("bs." + this.type)
+ : this;
+ c.tip().hasClass("in") ? c.leave(c) : c.enter(c);
+ }),
+ (b.prototype.destroy = function () {
+ clearTimeout(this.timeout),
+ this.hide()
+ .$element.off("." + this.type)
+ .removeData("bs." + this.type);
+ });
+ var c = a.fn.tooltip;
+ (a.fn.tooltip = function (c) {
+ return this.each(function () {
+ var d = a(this),
+ e = d.data("bs.tooltip"),
+ f = "object" == typeof c && c;
+ (e || "destroy" != c) &&
+ (e || d.data("bs.tooltip", (e = new b(this, f))),
+ "string" == typeof c && e[c]());
+ });
+ }),
+ (a.fn.tooltip.Constructor = b),
+ (a.fn.tooltip.noConflict = function () {
+ return (a.fn.tooltip = c), this;
+ });
+ })(jQuery),
+ +(function (a) {
+ "use strict";
+ var b = function (a, b) {
+ this.init("popover", a, b);
+ };
+ if (!a.fn.tooltip) throw new Error("Popover requires tooltip.js");
+ (b.DEFAULTS = a.extend({}, a.fn.tooltip.Constructor.DEFAULTS, {
+ placement: "right",
+ trigger: "click",
+ content: "",
+ template:
+ '',
+ })),
+ (b.prototype = a.extend({}, a.fn.tooltip.Constructor.prototype)),
+ (b.prototype.constructor = b),
+ (b.prototype.getDefaults = function () {
+ return b.DEFAULTS;
+ }),
+ (b.prototype.setContent = function () {
+ var a = this.tip(),
+ b = this.getTitle(),
+ c = this.getContent();
+ a.find(".popover-title")[this.options.html ? "html" : "text"](b),
+ a
+ .find(".popover-content")
+ [
+ this.options.html
+ ? "string" == typeof c
+ ? "html"
+ : "append"
+ : "text"
+ ](c),
+ a.removeClass("fade top bottom left right in"),
+ a.find(".popover-title").html() || a.find(".popover-title").hide();
+ }),
+ (b.prototype.hasContent = function () {
+ return this.getTitle() || this.getContent();
+ }),
+ (b.prototype.getContent = function () {
+ var a = this.$element,
+ b = this.options;
+ return (
+ a.attr("data-content") ||
+ ("function" == typeof b.content ? b.content.call(a[0]) : b.content)
+ );
+ }),
+ (b.prototype.arrow = function () {
+ return (this.$arrow = this.$arrow || this.tip().find(".arrow"));
+ }),
+ (b.prototype.tip = function () {
+ return this.$tip || (this.$tip = a(this.options.template)), this.$tip;
+ });
+ var c = a.fn.popover;
+ (a.fn.popover = function (c) {
+ return this.each(function () {
+ var d = a(this),
+ e = d.data("bs.popover"),
+ f = "object" == typeof c && c;
+ (e || "destroy" != c) &&
+ (e || d.data("bs.popover", (e = new b(this, f))),
+ "string" == typeof c && e[c]());
+ });
+ }),
+ (a.fn.popover.Constructor = b),
+ (a.fn.popover.noConflict = function () {
+ return (a.fn.popover = c), this;
+ });
+ })(jQuery),
+ +(function (a) {
+ "use strict";
+ function b(c, d) {
+ var e,
+ f = a.proxy(this.process, this);
+ (this.$element = a(a(c).is("body") ? window : c)),
+ (this.$body = a("body")),
+ (this.$scrollElement = this.$element.on(
+ "scroll.bs.scroll-spy.data-api",
+ f,
+ )),
+ (this.options = a.extend({}, b.DEFAULTS, d)),
+ (this.selector =
+ (this.options.target ||
+ ((e = a(c).attr("href")) && e.replace(/.*(?=#[^\s]+$)/, "")) ||
+ "") + " .nav li > a"),
+ (this.offsets = a([])),
+ (this.targets = a([])),
+ (this.activeTarget = null),
+ this.refresh(),
+ this.process();
+ }
+ (b.DEFAULTS = { offset: 10 }),
+ (b.prototype.refresh = function () {
+ var b = this.$element[0] == window ? "offset" : "position";
+ (this.offsets = a([])), (this.targets = a([]));
+ {
+ var c = this;
+ this.$body
+ .find(this.selector)
+ .map(function () {
+ var d = a(this),
+ e = d.data("target") || d.attr("href"),
+ f = /^#./.test(e) && a(e);
+ return (
+ (f &&
+ f.length &&
+ f.is(":visible") && [
+ [
+ f[b]().top +
+ (!a.isWindow(c.$scrollElement.get(0)) &&
+ c.$scrollElement.scrollTop()),
+ e,
+ ],
+ ]) ||
+ null
+ );
+ })
+ .sort(function (a, b) {
+ return a[0] - b[0];
+ })
+ .each(function () {
+ c.offsets.push(this[0]), c.targets.push(this[1]);
+ });
+ }
+ }),
+ (b.prototype.process = function () {
+ var a,
+ b = this.$scrollElement.scrollTop() + this.options.offset,
+ c = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight,
+ d = c - this.$scrollElement.height(),
+ e = this.offsets,
+ f = this.targets,
+ g = this.activeTarget;
+ if (b >= d) return g != (a = f.last()[0]) && this.activate(a);
+ if (g && b <= e[0]) return g != (a = f[0]) && this.activate(a);
+ for (a = e.length; a--; )
+ g != f[a] &&
+ b >= e[a] &&
+ (!e[a + 1] || b <= e[a + 1]) &&
+ this.activate(f[a]);
+ }),
+ (b.prototype.activate = function (b) {
+ (this.activeTarget = b),
+ a(this.selector)
+ .parentsUntil(this.options.target, ".active")
+ .removeClass("active");
+ var c =
+ this.selector +
+ '[data-target="' +
+ b +
+ '"],' +
+ this.selector +
+ '[href="' +
+ b +
+ '"]',
+ d = a(c).parents("li").addClass("active");
+ d.parent(".dropdown-menu").length &&
+ (d = d.closest("li.dropdown").addClass("active")),
+ d.trigger("activate.bs.scrollspy");
+ });
+ var c = a.fn.scrollspy;
+ (a.fn.scrollspy = function (c) {
+ return this.each(function () {
+ var d = a(this),
+ e = d.data("bs.scrollspy"),
+ f = "object" == typeof c && c;
+ e || d.data("bs.scrollspy", (e = new b(this, f))),
+ "string" == typeof c && e[c]();
+ });
+ }),
+ (a.fn.scrollspy.Constructor = b),
+ (a.fn.scrollspy.noConflict = function () {
+ return (a.fn.scrollspy = c), this;
+ }),
+ a(window).on("load", function () {
+ a('[data-spy="scroll"]').each(function () {
+ var b = a(this);
+ b.scrollspy(b.data());
+ });
+ });
+ })(jQuery),
+ +(function (a) {
+ "use strict";
+ var b = function (b) {
+ this.element = a(b);
+ };
+ (b.prototype.show = function () {
+ var b = this.element,
+ c = b.closest("ul:not(.dropdown-menu)"),
+ d = b.data("target");
+ if (
+ (d ||
+ ((d = b.attr("href")), (d = d && d.replace(/.*(?=#[^\s]*$)/, ""))),
+ !b.parent("li").hasClass("active"))
+ ) {
+ var e = c.find(".active:last a")[0],
+ f = a.Event("show.bs.tab", { relatedTarget: e });
+ if ((b.trigger(f), !f.isDefaultPrevented())) {
+ var g = a(d);
+ this.activate(b.parent("li"), c),
+ this.activate(g, g.parent(), function () {
+ b.trigger({ type: "shown.bs.tab", relatedTarget: e });
+ });
+ }
+ }
+ }),
+ (b.prototype.activate = function (b, c, d) {
+ function e() {
+ f
+ .removeClass("active")
+ .find("> .dropdown-menu > .active")
+ .removeClass("active"),
+ b.addClass("active"),
+ g ? (b[0].offsetWidth, b.addClass("in")) : b.removeClass("fade"),
+ b.parent(".dropdown-menu") &&
+ b.closest("li.dropdown").addClass("active"),
+ d && d();
+ }
+ var f = c.find("> .active"),
+ g = d && a.support.transition && f.hasClass("fade");
+ g ? f.one(a.support.transition.end, e).emulateTransitionEnd(150) : e(),
+ f.removeClass("in");
+ });
+ var c = a.fn.tab;
+ (a.fn.tab = function (c) {
+ return this.each(function () {
+ var d = a(this),
+ e = d.data("bs.tab");
+ e || d.data("bs.tab", (e = new b(this))),
+ "string" == typeof c && e[c]();
+ });
+ }),
+ (a.fn.tab.Constructor = b),
+ (a.fn.tab.noConflict = function () {
+ return (a.fn.tab = c), this;
+ }),
+ a(document).on(
+ "click.bs.tab.data-api",
+ '[data-toggle="tab"], [data-toggle="pill"]',
+ function (b) {
+ b.preventDefault(), a(this).tab("show");
+ },
+ );
+ })(jQuery),
+ +(function (a) {
+ "use strict";
+ var b = function (c, d) {
+ (this.options = a.extend({}, b.DEFAULTS, d)),
+ (this.$window = a(window)
+ .on("scroll.bs.affix.data-api", a.proxy(this.checkPosition, this))
+ .on(
+ "click.bs.affix.data-api",
+ a.proxy(this.checkPositionWithEventLoop, this),
+ )),
+ (this.$element = a(c)),
+ (this.affixed = this.unpin = this.pinnedOffset = null),
+ this.checkPosition();
+ };
+ (b.RESET = "affix affix-top affix-bottom"),
+ (b.DEFAULTS = { offset: 0 }),
+ (b.prototype.getPinnedOffset = function () {
+ if (this.pinnedOffset) return this.pinnedOffset;
+ this.$element.removeClass(b.RESET).addClass("affix");
+ var a = this.$window.scrollTop(),
+ c = this.$element.offset();
+ return (this.pinnedOffset = c.top - a);
+ }),
+ (b.prototype.checkPositionWithEventLoop = function () {
+ setTimeout(a.proxy(this.checkPosition, this), 1);
+ }),
+ (b.prototype.checkPosition = function () {
+ if (this.$element.is(":visible")) {
+ var c = a(document).height(),
+ d = this.$window.scrollTop(),
+ e = this.$element.offset(),
+ f = this.options.offset,
+ g = f.top,
+ h = f.bottom;
+ "top" == this.affixed && (e.top += d),
+ "object" != typeof f && (h = g = f),
+ "function" == typeof g && (g = f.top(this.$element)),
+ "function" == typeof h && (h = f.bottom(this.$element));
+ var i =
+ null != this.unpin && d + this.unpin <= e.top
+ ? !1
+ : null != h && e.top + this.$element.height() >= c - h
+ ? "bottom"
+ : null != g && g >= d
+ ? "top"
+ : !1;
+ if (this.affixed !== i) {
+ this.unpin && this.$element.css("top", "");
+ var j = "affix" + (i ? "-" + i : ""),
+ k = a.Event(j + ".bs.affix");
+ this.$element.trigger(k),
+ k.isDefaultPrevented() ||
+ ((this.affixed = i),
+ (this.unpin = "bottom" == i ? this.getPinnedOffset() : null),
+ this.$element
+ .removeClass(b.RESET)
+ .addClass(j)
+ .trigger(a.Event(j.replace("affix", "affixed"))),
+ "bottom" == i &&
+ this.$element.offset({
+ top: c - h - this.$element.height(),
+ }));
+ }
+ }
+ });
+ var c = a.fn.affix;
+ (a.fn.affix = function (c) {
+ return this.each(function () {
+ var d = a(this),
+ e = d.data("bs.affix"),
+ f = "object" == typeof c && c;
+ e || d.data("bs.affix", (e = new b(this, f))),
+ "string" == typeof c && e[c]();
+ });
+ }),
+ (a.fn.affix.Constructor = b),
+ (a.fn.affix.noConflict = function () {
+ return (a.fn.affix = c), this;
+ }),
+ a(window).on("load", function () {
+ a('[data-spy="affix"]').each(function () {
+ var b = a(this),
+ c = b.data();
+ (c.offset = c.offset || {}),
+ c.offsetBottom && (c.offset.bottom = c.offsetBottom),
+ c.offsetTop && (c.offset.top = c.offsetTop),
+ b.affix(c);
+ });
+ });
+ })(jQuery);
diff --git a/backend/tests/integration/tests/pruning/website/js/custom.js b/backend/tests/integration/tests/pruning/website/js/custom.js
new file mode 100644
index 0000000000..cbd9a60386
--- /dev/null
+++ b/backend/tests/integration/tests/pruning/website/js/custom.js
@@ -0,0 +1,149 @@
+/*global jQuery:false */
+jQuery(document).ready(function ($) {
+ "use strict";
+
+ //add some elements with animate effect
+
+ $(".big-cta").hover(
+ function () {
+ $(".cta a").addClass("animated shake");
+ },
+ function () {
+ $(".cta a").removeClass("animated shake");
+ },
+ );
+ $(".box").hover(
+ function () {
+ $(this).find(".icon").addClass("animated fadeInDown");
+ $(this).find("p").addClass("animated fadeInUp");
+ },
+ function () {
+ $(this).find(".icon").removeClass("animated fadeInDown");
+ $(this).find("p").removeClass("animated fadeInUp");
+ },
+ );
+
+ $(".accordion").on("show", function (e) {
+ $(e.target)
+ .prev(".accordion-heading")
+ .find(".accordion-toggle")
+ .addClass("active");
+ $(e.target)
+ .prev(".accordion-heading")
+ .find(".accordion-toggle i")
+ .removeClass("icon-plus");
+ $(e.target)
+ .prev(".accordion-heading")
+ .find(".accordion-toggle i")
+ .addClass("icon-minus");
+ });
+
+ $(".accordion").on("hide", function (e) {
+ $(this).find(".accordion-toggle").not($(e.target)).removeClass("active");
+ $(this)
+ .find(".accordion-toggle i")
+ .not($(e.target))
+ .removeClass("icon-minus");
+ $(this).find(".accordion-toggle i").not($(e.target)).addClass("icon-plus");
+ });
+
+ // tooltip
+ $(".social-network li a, .options_box .color a").tooltip();
+
+ // fancybox
+ $(".fancybox").fancybox({
+ padding: 0,
+ autoResize: true,
+ beforeShow: function () {
+ this.title = $(this.element).attr("title");
+ this.title =
+ "" +
+ this.title +
+ " " +
+ "" +
+ $(this.element).parent().find("img").attr("alt") +
+ "
";
+ },
+ helpers: {
+ title: { type: "inside" },
+ },
+ });
+
+ //scroll to top
+ $(window).scroll(function () {
+ if ($(this).scrollTop() > 100) {
+ $(".scrollup").fadeIn();
+ } else {
+ $(".scrollup").fadeOut();
+ }
+ });
+ $(".scrollup").click(function () {
+ $("html, body").animate({ scrollTop: 0 }, 1000);
+ return false;
+ });
+ $("#post-slider").flexslider({
+ // Primary Controls
+ controlNav: false, //Boolean: Create navigation for paging control of each clide? Note: Leave true for manualControls usage
+ directionNav: true, //Boolean: Create navigation for previous/next navigation? (true/false)
+ prevText: "Previous", //String: Set the text for the "previous" directionNav item
+ nextText: "Next", //String: Set the text for the "next" directionNav item
+
+ // Secondary Navigation
+ keyboard: true, //Boolean: Allow slider navigating via keyboard left/right keys
+ multipleKeyboard: false, //{NEW} Boolean: Allow keyboard navigation to affect multiple sliders. Default behavior cuts out keyboard navigation with more than one slider present.
+ mousewheel: false, //{UPDATED} Boolean: Requires jquery.mousewheel.js (https://github.com/brandonaaron/jquery-mousewheel) - Allows slider navigating via mousewheel
+ pausePlay: false, //Boolean: Create pause/play dynamic element
+ pauseText: "Pause", //String: Set the text for the "pause" pausePlay item
+ playText: "Play", //String: Set the text for the "play" pausePlay item
+
+ // Special properties
+ controlsContainer: "", //{UPDATED} Selector: USE CLASS SELECTOR. Declare which container the navigation elements should be appended too. Default container is the FlexSlider element. Example use would be ".flexslider-container". Property is ignored if given element is not found.
+ manualControls: "", //Selector: Declare custom control navigation. Examples would be ".flex-control-nav li" or "#tabs-nav li img", etc. The number of elements in your controlNav should match the number of slides/tabs.
+ sync: "", //{NEW} Selector: Mirror the actions performed on this slider with another slider. Use with care.
+ asNavFor: "", //{NEW} Selector: Internal property exposed for turning the slider into a thumbnail navigation for another slider
+ });
+
+ $("#main-slider").flexslider({
+ namespace: "flex-", //{NEW} String: Prefix string attached to the class of every element generated by the plugin
+ selector: ".slides > li", //{NEW} Selector: Must match a simple pattern. '{container} > {slide}' -- Ignore pattern at your own peril
+ animation: "fade", //String: Select your animation type, "fade" or "slide"
+ easing: "swing", //{NEW} String: Determines the easing method used in jQuery transitions. jQuery easing plugin is supported!
+ direction: "horizontal", //String: Select the sliding direction, "horizontal" or "vertical"
+ reverse: false, //{NEW} Boolean: Reverse the animation direction
+ animationLoop: true, //Boolean: Should the animation loop? If false, directionNav will received "disable" classes at either end
+ smoothHeight: false, //{NEW} Boolean: Allow height of the slider to animate smoothly in horizontal mode
+ startAt: 0, //Integer: The slide that the slider should start on. Array notation (0 = first slide)
+ slideshow: true, //Boolean: Animate slider automatically
+ slideshowSpeed: 7000, //Integer: Set the speed of the slideshow cycling, in milliseconds
+ animationSpeed: 600, //Integer: Set the speed of animations, in milliseconds
+ initDelay: 0, //{NEW} Integer: Set an initialization delay, in milliseconds
+ randomize: false, //Boolean: Randomize slide order
+
+ // Usability features
+ pauseOnAction: true, //Boolean: Pause the slideshow when interacting with control elements, highly recommended.
+ pauseOnHover: false, //Boolean: Pause the slideshow when hovering over slider, then resume when no longer hovering
+ useCSS: true, //{NEW} Boolean: Slider will use CSS3 transitions if available
+ touch: true, //{NEW} Boolean: Allow touch swipe navigation of the slider on touch-enabled devices
+ video: false, //{NEW} Boolean: If using video in the slider, will prevent CSS3 3D Transforms to avoid graphical glitches
+
+ // Primary Controls
+ controlNav: true, //Boolean: Create navigation for paging control of each clide? Note: Leave true for manualControls usage
+ directionNav: true, //Boolean: Create navigation for previous/next navigation? (true/false)
+ prevText: "Previous", //String: Set the text for the "previous" directionNav item
+ nextText: "Next", //String: Set the text for the "next" directionNav item
+
+ // Secondary Navigation
+ keyboard: true, //Boolean: Allow slider navigating via keyboard left/right keys
+ multipleKeyboard: false, //{NEW} Boolean: Allow keyboard navigation to affect multiple sliders. Default behavior cuts out keyboard navigation with more than one slider present.
+ mousewheel: false, //{UPDATED} Boolean: Requires jquery.mousewheel.js (https://github.com/brandonaaron/jquery-mousewheel) - Allows slider navigating via mousewheel
+ pausePlay: false, //Boolean: Create pause/play dynamic element
+ pauseText: "Pause", //String: Set the text for the "pause" pausePlay item
+ playText: "Play", //String: Set the text for the "play" pausePlay item
+
+ // Special properties
+ controlsContainer: "", //{UPDATED} Selector: USE CLASS SELECTOR. Declare which container the navigation elements should be appended too. Default container is the FlexSlider element. Example use would be ".flexslider-container". Property is ignored if given element is not found.
+ manualControls: "", //Selector: Declare custom control navigation. Examples would be ".flex-control-nav li" or "#tabs-nav li img", etc. The number of elements in your controlNav should match the number of slides/tabs.
+ sync: "", //{NEW} Selector: Mirror the actions performed on this slider with another slider. Use with care.
+ asNavFor: "", //{NEW} Selector: Internal property exposed for turning the slider into a thumbnail navigation for another slider
+ });
+});
diff --git a/backend/tests/integration/tests/pruning/website/js/flexslider/jquery.flexslider.js b/backend/tests/integration/tests/pruning/website/js/flexslider/jquery.flexslider.js
new file mode 100644
index 0000000000..9c6a947088
--- /dev/null
+++ b/backend/tests/integration/tests/pruning/website/js/flexslider/jquery.flexslider.js
@@ -0,0 +1,740 @@
+/*
+ * jQuery FlexSlider v1.8
+ * http://www.woothemes.com/flexslider/
+ *
+ * Copyright 2012 WooThemes
+ * Free to use under the MIT license.
+ * http://www.opensource.org/licenses/mit-license.php
+ *
+ * Contributing Author: Tyler Smith
+ */
+
+(function ($) {
+ //FlexSlider: Object Instance
+ $.flexslider = function (el, options) {
+ var slider = $(el);
+
+ // slider DOM reference for use outside of the plugin
+ $.data(el, "flexslider", slider);
+
+ slider.init = function () {
+ slider.vars = $.extend({}, $.flexslider.defaults, options);
+ $.data(el, "flexsliderInit", true);
+ slider.container = $(".slides", slider).eq(0);
+ slider.slides = $(".slides:first > li", slider);
+ slider.count = slider.slides.length;
+ slider.animating = false;
+ slider.currentSlide = slider.vars.slideToStart;
+ slider.animatingTo = slider.currentSlide;
+ slider.atEnd = slider.currentSlide == 0 ? true : false;
+ slider.eventType =
+ "ontouchstart" in document.documentElement ? "touchstart" : "click";
+ slider.cloneCount = 0;
+ slider.cloneOffset = 0;
+ slider.manualPause = false;
+ slider.vertical = slider.vars.slideDirection == "vertical";
+ slider.prop = slider.vertical ? "top" : "marginLeft";
+ slider.args = {};
+
+ //Test for webbkit CSS3 Animations
+ slider.transitions =
+ "webkitTransition" in document.body.style && slider.vars.useCSS;
+ if (slider.transitions) slider.prop = "-webkit-transform";
+
+ //Test for controlsContainer
+ if (slider.vars.controlsContainer != "") {
+ slider.controlsContainer = $(slider.vars.controlsContainer).eq(
+ $(".slides").index(slider.container),
+ );
+ slider.containerExists = slider.controlsContainer.length > 0;
+ }
+ //Test for manualControls
+ if (slider.vars.manualControls != "") {
+ slider.manualControls = $(
+ slider.vars.manualControls,
+ slider.containerExists ? slider.controlsContainer : slider,
+ );
+ slider.manualExists = slider.manualControls.length > 0;
+ }
+
+ ///////////////////////////////////////////////////////////////////
+ // FlexSlider: Randomize Slides
+ if (slider.vars.randomize) {
+ slider.slides.sort(function () {
+ return Math.round(Math.random()) - 0.5;
+ });
+ slider.container.empty().append(slider.slides);
+ }
+ ///////////////////////////////////////////////////////////////////
+
+ ///////////////////////////////////////////////////////////////////
+ // FlexSlider: Slider Animation Initialize
+ if (slider.vars.animation.toLowerCase() == "slide") {
+ if (slider.transitions) {
+ slider.setTransition(0);
+ }
+ slider.css({ overflow: "hidden" });
+ if (slider.vars.animationLoop) {
+ slider.cloneCount = 2;
+ slider.cloneOffset = 1;
+ slider.container
+ .append(slider.slides.filter(":first").clone().addClass("clone"))
+ .prepend(slider.slides.filter(":last").clone().addClass("clone"));
+ }
+ //create newSlides to capture possible clones
+ slider.newSlides = $(".slides:first > li", slider);
+ var sliderOffset = -1 * (slider.currentSlide + slider.cloneOffset);
+ if (slider.vertical) {
+ slider.newSlides.css({
+ display: "block",
+ width: "100%",
+ float: "left",
+ });
+ slider.container
+ .height((slider.count + slider.cloneCount) * 200 + "%")
+ .css("position", "absolute")
+ .width("100%");
+ //Timeout function to give browser enough time to get proper height initially
+ setTimeout(function () {
+ slider
+ .css({ position: "relative" })
+ .height(slider.slides.filter(":first").height());
+ slider.args[slider.prop] = slider.transitions
+ ? "translate3d(0," + sliderOffset * slider.height() + "px,0)"
+ : sliderOffset * slider.height() + "px";
+ slider.container.css(slider.args);
+ }, 100);
+ } else {
+ slider.args[slider.prop] = slider.transitions
+ ? "translate3d(" + sliderOffset * slider.width() + "px,0,0)"
+ : sliderOffset * slider.width() + "px";
+ slider.container
+ .width((slider.count + slider.cloneCount) * 200 + "%")
+ .css(slider.args);
+ //Timeout function to give browser enough time to get proper width initially
+ setTimeout(function () {
+ slider.newSlides
+ .width(slider.width())
+ .css({ float: "left", display: "block" });
+ }, 100);
+ }
+ } else {
+ //Default to fade
+ //Not supporting fade CSS3 transitions right now
+ slider.transitions = false;
+ slider.slides
+ .css({ width: "100%", float: "left", marginRight: "-100%" })
+ .eq(slider.currentSlide)
+ .fadeIn(slider.vars.animationDuration);
+ }
+ ///////////////////////////////////////////////////////////////////
+
+ ///////////////////////////////////////////////////////////////////
+ // FlexSlider: Control Nav
+ if (slider.vars.controlNav) {
+ if (slider.manualExists) {
+ slider.controlNav = slider.manualControls;
+ } else {
+ var controlNavScaffold = $(' ');
+ var j = 1;
+ for (var i = 0; i < slider.count; i++) {
+ controlNavScaffold.append("" + j + " ");
+ j++;
+ }
+
+ if (slider.containerExists) {
+ $(slider.controlsContainer).append(controlNavScaffold);
+ slider.controlNav = $(
+ ".flex-control-nav li a",
+ slider.controlsContainer,
+ );
+ } else {
+ slider.append(controlNavScaffold);
+ slider.controlNav = $(".flex-control-nav li a", slider);
+ }
+ }
+
+ slider.controlNav.eq(slider.currentSlide).addClass("active");
+
+ slider.controlNav.bind(slider.eventType, function (event) {
+ event.preventDefault();
+ if (!$(this).hasClass("active")) {
+ slider.controlNav.index($(this)) > slider.currentSlide
+ ? (slider.direction = "next")
+ : (slider.direction = "prev");
+ slider.flexAnimate(
+ slider.controlNav.index($(this)),
+ slider.vars.pauseOnAction,
+ );
+ }
+ });
+ }
+ ///////////////////////////////////////////////////////////////////
+
+ //////////////////////////////////////////////////////////////////
+ //FlexSlider: Direction Nav
+ if (slider.vars.directionNav) {
+ var directionNavScaffold = $(
+ '",
+ );
+
+ if (slider.containerExists) {
+ $(slider.controlsContainer).append(directionNavScaffold);
+ slider.directionNav = $(
+ ".flex-direction-nav li a",
+ slider.controlsContainer,
+ );
+ } else {
+ slider.append(directionNavScaffold);
+ slider.directionNav = $(".flex-direction-nav li a", slider);
+ }
+
+ //Set initial disable styles if necessary
+ if (!slider.vars.animationLoop) {
+ if (slider.currentSlide == 0) {
+ slider.directionNav.filter(".prev").addClass("disabled");
+ } else if (slider.currentSlide == slider.count - 1) {
+ slider.directionNav.filter(".next").addClass("disabled");
+ }
+ }
+
+ slider.directionNav.bind(slider.eventType, function (event) {
+ event.preventDefault();
+ var target = $(this).hasClass("next")
+ ? slider.getTarget("next")
+ : slider.getTarget("prev");
+
+ if (slider.canAdvance(target)) {
+ slider.flexAnimate(target, slider.vars.pauseOnAction);
+ }
+ });
+ }
+ //////////////////////////////////////////////////////////////////
+
+ //////////////////////////////////////////////////////////////////
+ //FlexSlider: Keyboard Nav
+ if (slider.vars.keyboardNav && $("ul.slides").length == 1) {
+ function keyboardMove(event) {
+ if (slider.animating) {
+ return;
+ } else if (event.keyCode != 39 && event.keyCode != 37) {
+ return;
+ } else {
+ if (event.keyCode == 39) {
+ var target = slider.getTarget("next");
+ } else if (event.keyCode == 37) {
+ var target = slider.getTarget("prev");
+ }
+
+ if (slider.canAdvance(target)) {
+ slider.flexAnimate(target, slider.vars.pauseOnAction);
+ }
+ }
+ }
+ $(document).bind("keyup", keyboardMove);
+ }
+ //////////////////////////////////////////////////////////////////
+
+ ///////////////////////////////////////////////////////////////////
+ // FlexSlider: Mousewheel interaction
+ if (slider.vars.mousewheel) {
+ slider.mousewheelEvent = /Firefox/i.test(navigator.userAgent)
+ ? "DOMMouseScroll"
+ : "mousewheel";
+ slider.bind(slider.mousewheelEvent, function (e) {
+ e.preventDefault();
+ e = e ? e : window.event;
+ var wheelData = e.detail
+ ? e.detail * -1
+ : e.originalEvent.wheelDelta / 40,
+ target =
+ wheelData < 0
+ ? slider.getTarget("next")
+ : slider.getTarget("prev");
+
+ if (slider.canAdvance(target)) {
+ slider.flexAnimate(target, slider.vars.pauseOnAction);
+ }
+ });
+ }
+ ///////////////////////////////////////////////////////////////////
+
+ //////////////////////////////////////////////////////////////////
+ //FlexSlider: Slideshow Setup
+ if (slider.vars.slideshow) {
+ //pauseOnHover
+ if (slider.vars.pauseOnHover && slider.vars.slideshow) {
+ slider.hover(
+ function () {
+ slider.pause();
+ },
+ function () {
+ if (!slider.manualPause) {
+ slider.resume();
+ }
+ },
+ );
+ }
+
+ //Initialize animation
+ slider.animatedSlides = setInterval(
+ slider.animateSlides,
+ slider.vars.slideshowSpeed,
+ );
+ }
+ //////////////////////////////////////////////////////////////////
+
+ //////////////////////////////////////////////////////////////////
+ //FlexSlider: Pause/Play
+ if (slider.vars.pausePlay) {
+ var pausePlayScaffold = $(
+ '
',
+ );
+
+ if (slider.containerExists) {
+ slider.controlsContainer.append(pausePlayScaffold);
+ slider.pausePlay = $(
+ ".flex-pauseplay span",
+ slider.controlsContainer,
+ );
+ } else {
+ slider.append(pausePlayScaffold);
+ slider.pausePlay = $(".flex-pauseplay span", slider);
+ }
+
+ var pausePlayState = slider.vars.slideshow ? "pause" : "play";
+ slider.pausePlay
+ .addClass(pausePlayState)
+ .text(
+ pausePlayState == "pause"
+ ? slider.vars.pauseText
+ : slider.vars.playText,
+ );
+
+ slider.pausePlay.bind(slider.eventType, function (event) {
+ event.preventDefault();
+ if ($(this).hasClass("pause")) {
+ slider.pause();
+ slider.manualPause = true;
+ } else {
+ slider.resume();
+ slider.manualPause = false;
+ }
+ });
+ }
+ //////////////////////////////////////////////////////////////////
+
+ //////////////////////////////////////////////////////////////////
+ //FlexSlider:Touch Swip Gestures
+ //Some brilliant concepts adapted from the following sources
+ //Source: TouchSwipe - http://www.netcu.de/jquery-touchwipe-iphone-ipad-library
+ //Source: SwipeJS - http://swipejs.com
+ if ("ontouchstart" in document.documentElement && slider.vars.touch) {
+ //For brevity, variables are named for x-axis scrolling
+ //The variables are then swapped if vertical sliding is applied
+ //This reduces redundant code...I think :)
+ //If debugging, recognize variables are named for horizontal scrolling
+ var startX,
+ startY,
+ offset,
+ cwidth,
+ dx,
+ startT,
+ scrolling = false;
+
+ slider.each(function () {
+ if ("ontouchstart" in document.documentElement) {
+ this.addEventListener("touchstart", onTouchStart, false);
+ }
+ });
+
+ function onTouchStart(e) {
+ if (slider.animating) {
+ e.preventDefault();
+ } else if (e.touches.length == 1) {
+ slider.pause();
+ cwidth = slider.vertical ? slider.height() : slider.width();
+ startT = Number(new Date());
+ offset = slider.vertical
+ ? (slider.currentSlide + slider.cloneOffset) * slider.height()
+ : (slider.currentSlide + slider.cloneOffset) * slider.width();
+ startX = slider.vertical ? e.touches[0].pageY : e.touches[0].pageX;
+ startY = slider.vertical ? e.touches[0].pageX : e.touches[0].pageY;
+ slider.setTransition(0);
+
+ this.addEventListener("touchmove", onTouchMove, false);
+ this.addEventListener("touchend", onTouchEnd, false);
+ }
+ }
+
+ function onTouchMove(e) {
+ dx = slider.vertical
+ ? startX - e.touches[0].pageY
+ : startX - e.touches[0].pageX;
+ scrolling = slider.vertical
+ ? Math.abs(dx) < Math.abs(e.touches[0].pageX - startY)
+ : Math.abs(dx) < Math.abs(e.touches[0].pageY - startY);
+
+ if (!scrolling) {
+ e.preventDefault();
+ if (slider.vars.animation == "slide" && slider.transitions) {
+ if (!slider.vars.animationLoop) {
+ dx =
+ dx /
+ ((slider.currentSlide == 0 && dx < 0) ||
+ (slider.currentSlide == slider.count - 1 && dx > 0)
+ ? Math.abs(dx) / cwidth + 2
+ : 1);
+ }
+ slider.args[slider.prop] = slider.vertical
+ ? "translate3d(0," + (-offset - dx) + "px,0)"
+ : "translate3d(" + (-offset - dx) + "px,0,0)";
+ slider.container.css(slider.args);
+ }
+ }
+ }
+
+ function onTouchEnd(e) {
+ slider.animating = false;
+ if (
+ slider.animatingTo == slider.currentSlide &&
+ !scrolling &&
+ !(dx == null)
+ ) {
+ var target =
+ dx > 0 ? slider.getTarget("next") : slider.getTarget("prev");
+ if (
+ (slider.canAdvance(target) &&
+ Number(new Date()) - startT < 550 &&
+ Math.abs(dx) > 20) ||
+ Math.abs(dx) > cwidth / 2
+ ) {
+ slider.flexAnimate(target, slider.vars.pauseOnAction);
+ } else if (slider.vars.animation !== "fade") {
+ slider.flexAnimate(
+ slider.currentSlide,
+ slider.vars.pauseOnAction,
+ );
+ }
+ }
+
+ //Finish the touch by undoing the touch session
+ this.removeEventListener("touchmove", onTouchMove, false);
+ this.removeEventListener("touchend", onTouchEnd, false);
+ startX = null;
+ startY = null;
+ dx = null;
+ offset = null;
+ }
+ }
+ //////////////////////////////////////////////////////////////////
+
+ //////////////////////////////////////////////////////////////////
+ //FlexSlider: Resize Functions (If necessary)
+ if (slider.vars.animation.toLowerCase() == "slide") {
+ $(window).resize(function () {
+ if (!slider.animating && slider.is(":visible")) {
+ if (slider.vertical) {
+ slider.height(slider.slides.filter(":first").height());
+ slider.args[slider.prop] =
+ -1 *
+ (slider.currentSlide + slider.cloneOffset) *
+ slider.slides.filter(":first").height() +
+ "px";
+ if (slider.transitions) {
+ slider.setTransition(0);
+ slider.args[slider.prop] = slider.vertical
+ ? "translate3d(0," + slider.args[slider.prop] + ",0)"
+ : "translate3d(" + slider.args[slider.prop] + ",0,0)";
+ }
+ slider.container.css(slider.args);
+ } else {
+ slider.newSlides.width(slider.width());
+ slider.args[slider.prop] =
+ -1 *
+ (slider.currentSlide + slider.cloneOffset) *
+ slider.width() +
+ "px";
+ if (slider.transitions) {
+ slider.setTransition(0);
+ slider.args[slider.prop] = slider.vertical
+ ? "translate3d(0," + slider.args[slider.prop] + ",0)"
+ : "translate3d(" + slider.args[slider.prop] + ",0,0)";
+ }
+ slider.container.css(slider.args);
+ }
+ }
+ });
+ }
+ //////////////////////////////////////////////////////////////////
+
+ //FlexSlider: start() Callback
+ slider.vars.start(slider);
+ };
+
+ //FlexSlider: Animation Actions
+ slider.flexAnimate = function (target, pause) {
+ if (!slider.animating && slider.is(":visible")) {
+ //Animating flag
+ slider.animating = true;
+
+ //FlexSlider: before() animation Callback
+ slider.animatingTo = target;
+ slider.vars.before(slider);
+
+ //Optional paramter to pause slider when making an anmiation call
+ if (pause) {
+ slider.pause();
+ }
+
+ //Update controlNav
+ if (slider.vars.controlNav) {
+ slider.controlNav.removeClass("active").eq(target).addClass("active");
+ }
+
+ //Is the slider at either end
+ slider.atEnd = target == 0 || target == slider.count - 1 ? true : false;
+ if (!slider.vars.animationLoop && slider.vars.directionNav) {
+ if (target == 0) {
+ slider.directionNav
+ .removeClass("disabled")
+ .filter(".prev")
+ .addClass("disabled");
+ } else if (target == slider.count - 1) {
+ slider.directionNav
+ .removeClass("disabled")
+ .filter(".next")
+ .addClass("disabled");
+ } else {
+ slider.directionNav.removeClass("disabled");
+ }
+ }
+
+ if (!slider.vars.animationLoop && target == slider.count - 1) {
+ slider.pause();
+ //FlexSlider: end() of cycle Callback
+ slider.vars.end(slider);
+ }
+
+ if (slider.vars.animation.toLowerCase() == "slide") {
+ var dimension = slider.vertical
+ ? slider.slides.filter(":first").height()
+ : slider.slides.filter(":first").width();
+
+ if (
+ slider.currentSlide == 0 &&
+ target == slider.count - 1 &&
+ slider.vars.animationLoop &&
+ slider.direction != "next"
+ ) {
+ slider.slideString = "0px";
+ } else if (
+ slider.currentSlide == slider.count - 1 &&
+ target == 0 &&
+ slider.vars.animationLoop &&
+ slider.direction != "prev"
+ ) {
+ slider.slideString = -1 * (slider.count + 1) * dimension + "px";
+ } else {
+ slider.slideString =
+ -1 * (target + slider.cloneOffset) * dimension + "px";
+ }
+ slider.args[slider.prop] = slider.slideString;
+
+ if (slider.transitions) {
+ slider.setTransition(slider.vars.animationDuration);
+ slider.args[slider.prop] = slider.vertical
+ ? "translate3d(0," + slider.slideString + ",0)"
+ : "translate3d(" + slider.slideString + ",0,0)";
+ slider.container
+ .css(slider.args)
+ .one("webkitTransitionEnd transitionend", function () {
+ slider.wrapup(dimension);
+ });
+ } else {
+ slider.container.animate(
+ slider.args,
+ slider.vars.animationDuration,
+ function () {
+ slider.wrapup(dimension);
+ },
+ );
+ }
+ } else {
+ //Default to Fade
+ slider.slides
+ .eq(slider.currentSlide)
+ .fadeOut(slider.vars.animationDuration);
+ slider.slides
+ .eq(target)
+ .fadeIn(slider.vars.animationDuration, function () {
+ slider.wrapup();
+ });
+ }
+ }
+ };
+
+ //FlexSlider: Function to minify redundant animation actions
+ slider.wrapup = function (dimension) {
+ if (slider.vars.animation == "slide") {
+ //Jump the slider if necessary
+ if (
+ slider.currentSlide == 0 &&
+ slider.animatingTo == slider.count - 1 &&
+ slider.vars.animationLoop
+ ) {
+ slider.args[slider.prop] = -1 * slider.count * dimension + "px";
+ if (slider.transitions) {
+ slider.setTransition(0);
+ slider.args[slider.prop] = slider.vertical
+ ? "translate3d(0," + slider.args[slider.prop] + ",0)"
+ : "translate3d(" + slider.args[slider.prop] + ",0,0)";
+ }
+ slider.container.css(slider.args);
+ } else if (
+ slider.currentSlide == slider.count - 1 &&
+ slider.animatingTo == 0 &&
+ slider.vars.animationLoop
+ ) {
+ slider.args[slider.prop] = -1 * dimension + "px";
+ if (slider.transitions) {
+ slider.setTransition(0);
+ slider.args[slider.prop] = slider.vertical
+ ? "translate3d(0," + slider.args[slider.prop] + ",0)"
+ : "translate3d(" + slider.args[slider.prop] + ",0,0)";
+ }
+ slider.container.css(slider.args);
+ }
+ }
+ slider.animating = false;
+ slider.currentSlide = slider.animatingTo;
+ //FlexSlider: after() animation Callback
+ slider.vars.after(slider);
+ };
+
+ //FlexSlider: Automatic Slideshow
+ slider.animateSlides = function () {
+ if (!slider.animating) {
+ slider.flexAnimate(slider.getTarget("next"));
+ }
+ };
+
+ //FlexSlider: Automatic Slideshow Pause
+ slider.pause = function () {
+ clearInterval(slider.animatedSlides);
+ if (slider.vars.pausePlay) {
+ slider.pausePlay
+ .removeClass("pause")
+ .addClass("play")
+ .text(slider.vars.playText);
+ }
+ };
+
+ //FlexSlider: Automatic Slideshow Start/Resume
+ slider.resume = function () {
+ slider.animatedSlides = setInterval(
+ slider.animateSlides,
+ slider.vars.slideshowSpeed,
+ );
+ if (slider.vars.pausePlay) {
+ slider.pausePlay
+ .removeClass("play")
+ .addClass("pause")
+ .text(slider.vars.pauseText);
+ }
+ };
+
+ //FlexSlider: Helper function for non-looping sliders
+ slider.canAdvance = function (target) {
+ if (!slider.vars.animationLoop && slider.atEnd) {
+ if (
+ slider.currentSlide == 0 &&
+ target == slider.count - 1 &&
+ slider.direction != "next"
+ ) {
+ return false;
+ } else if (
+ slider.currentSlide == slider.count - 1 &&
+ target == 0 &&
+ slider.direction == "next"
+ ) {
+ return false;
+ } else {
+ return true;
+ }
+ } else {
+ return true;
+ }
+ };
+
+ //FlexSlider: Helper function to determine animation target
+ slider.getTarget = function (dir) {
+ slider.direction = dir;
+ if (dir == "next") {
+ return slider.currentSlide == slider.count - 1
+ ? 0
+ : slider.currentSlide + 1;
+ } else {
+ return slider.currentSlide == 0
+ ? slider.count - 1
+ : slider.currentSlide - 1;
+ }
+ };
+
+ //FlexSlider: Helper function to set CSS3 transitions
+ slider.setTransition = function (dur) {
+ slider.container.css({ "-webkit-transition-duration": dur / 1000 + "s" });
+ };
+
+ //FlexSlider: Initialize
+ slider.init();
+ };
+
+ //FlexSlider: Default Settings
+ $.flexslider.defaults = {
+ animation: "slide", //String: Select your animation type, "fade" or "slide"
+ slideDirection: "horizontal", //String: Select the sliding direction, "horizontal" or "vertical"
+ slideshow: true, //Boolean: Animate slider automatically
+ slideshowSpeed: 7000, //Integer: Set the speed of the slideshow cycling, in milliseconds
+ animationDuration: 600, //Integer: Set the speed of animations, in milliseconds
+ directionNav: false, //Boolean: Create navigation for previous/next navigation? (true/false)
+ controlNav: true, //Boolean: Create navigation for paging control of each clide? Note: Leave true for manualControls usage
+ keyboardNav: true, //Boolean: Allow slider navigating via keyboard left/right keys
+ mousewheel: false, //Boolean: Allow slider navigating via mousewheel
+ prevText: "Previous", //String: Set the text for the "previous" directionNav item
+ nextText: "Next", //String: Set the text for the "next" directionNav item
+ pausePlay: false, //Boolean: Create pause/play dynamic element
+ pauseText: "Pause", //String: Set the text for the "pause" pausePlay item
+ playText: "Play", //String: Set the text for the "play" pausePlay item
+ randomize: false, //Boolean: Randomize slide order
+ slideToStart: 0, //Integer: The slide that the slider should start on. Array notation (0 = first slide)
+ animationLoop: true, //Boolean: Should the animation loop? If false, directionNav will received "disable" classes at either end
+ pauseOnAction: true, //Boolean: Pause the slideshow when interacting with control elements, highly recommended.
+ pauseOnHover: false, //Boolean: Pause the slideshow when hovering over slider, then resume when no longer hovering
+ useCSS: true, //Boolean: Override the use of CSS3 Translate3d animations
+ touch: true, //Boolean: Disable touchswipe events
+ controlsContainer: "", //Selector: Declare which container the navigation elements should be appended too. Default container is the flexSlider element. Example use would be ".flexslider-container", "#container", etc. If the given element is not found, the default action will be taken.
+ manualControls: "", //Selector: Declare custom control navigation. Example would be ".flex-control-nav li" or "#tabs-nav li img", etc. The number of elements in your controlNav should match the number of slides/tabs.
+ start: function () {}, //Callback: function(slider) - Fires when the slider loads the first slide
+ before: function () {}, //Callback: function(slider) - Fires asynchronously with each slider animation
+ after: function () {}, //Callback: function(slider) - Fires after each slider animation completes
+ end: function () {}, //Callback: function(slider) - Fires when the slider reaches the last slide (asynchronous)
+ };
+
+ //FlexSlider: Plugin Function
+ $.fn.flexslider = function (options) {
+ return this.each(function () {
+ var $slides = $(this).find(".slides > li");
+ if ($slides.length === 1) {
+ $slides.fadeIn(400);
+ if (options && options.start) options.start($(this));
+ } else if ($(this).data("flexsliderInit") != true) {
+ new $.flexslider(this, options);
+ }
+ });
+ };
+})(jQuery);
diff --git a/backend/tests/integration/tests/pruning/website/js/flexslider/setting.js b/backend/tests/integration/tests/pruning/website/js/flexslider/setting.js
new file mode 100644
index 0000000000..71cb55f029
--- /dev/null
+++ b/backend/tests/integration/tests/pruning/website/js/flexslider/setting.js
@@ -0,0 +1,3 @@
+$(window).load(function () {
+ $(".flexslider").flexslider();
+});
diff --git a/backend/tests/integration/tests/pruning/website/js/google-code-prettify/prettify.css b/backend/tests/integration/tests/pruning/website/js/google-code-prettify/prettify.css
new file mode 100644
index 0000000000..bdb779f759
--- /dev/null
+++ b/backend/tests/integration/tests/pruning/website/js/google-code-prettify/prettify.css
@@ -0,0 +1,59 @@
+.com {
+ color: #93a1a1;
+}
+.lit {
+ color: #195f91;
+}
+.pun,
+.opn,
+.clo {
+ color: #93a1a1;
+}
+.fun {
+ color: #dc322f;
+}
+.str,
+.atv {
+ color: #d14;
+}
+.kwd,
+.prettyprint .tag {
+ color: #1e347b;
+}
+.typ,
+.atn,
+.dec,
+.var {
+ color: teal;
+}
+.pln {
+ color: #48484c;
+}
+
+.prettyprint {
+ padding: 8px;
+ background-color: #f7f7f9;
+ border: 1px solid #e1e1e8;
+}
+.prettyprint.linenums {
+ -webkit-box-shadow:
+ inset 40px 0 0 #fbfbfc,
+ inset 41px 0 0 #ececf0;
+ -moz-box-shadow:
+ inset 40px 0 0 #fbfbfc,
+ inset 41px 0 0 #ececf0;
+ box-shadow:
+ inset 40px 0 0 #fbfbfc,
+ inset 41px 0 0 #ececf0;
+}
+
+/* Specify class=linenums on a pre to get line numbering */
+ol.linenums {
+ margin: 0 0 0 33px; /* IE indents via margin-left */
+}
+ol.linenums li {
+ padding-left: 12px;
+ color: #bebec5;
+ line-height: 20px;
+ text-shadow: 0 1px 0 #fff;
+}
diff --git a/backend/tests/integration/tests/pruning/website/js/google-code-prettify/prettify.js b/backend/tests/integration/tests/pruning/website/js/google-code-prettify/prettify.js
new file mode 100644
index 0000000000..fc1bd88060
--- /dev/null
+++ b/backend/tests/integration/tests/pruning/website/js/google-code-prettify/prettify.js
@@ -0,0 +1,743 @@
+var q = null;
+window.PR_SHOULD_USE_CONTINUATION = !0;
+(function () {
+ function L(a) {
+ function m(a) {
+ var f = a.charCodeAt(0);
+ if (f !== 92) return f;
+ var b = a.charAt(1);
+ return (f = r[b])
+ ? f
+ : "0" <= b && b <= "7"
+ ? parseInt(a.substring(1), 8)
+ : b === "u" || b === "x"
+ ? parseInt(a.substring(2), 16)
+ : a.charCodeAt(1);
+ }
+ function e(a) {
+ if (a < 32) return (a < 16 ? "\\x0" : "\\x") + a.toString(16);
+ a = String.fromCharCode(a);
+ if (a === "\\" || a === "-" || a === "[" || a === "]") a = "\\" + a;
+ return a;
+ }
+ function h(a) {
+ for (
+ var f = a
+ .substring(1, a.length - 1)
+ .match(
+ /\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g,
+ ),
+ a = [],
+ b = [],
+ o = f[0] === "^",
+ c = o ? 1 : 0,
+ i = f.length;
+ c < i;
+ ++c
+ ) {
+ var j = f[c];
+ if (/\\[bdsw]/i.test(j)) a.push(j);
+ else {
+ var j = m(j),
+ d;
+ c + 2 < i && "-" === f[c + 1]
+ ? ((d = m(f[c + 2])), (c += 2))
+ : (d = j);
+ b.push([j, d]);
+ d < 65 ||
+ j > 122 ||
+ (d < 65 ||
+ j > 90 ||
+ b.push([Math.max(65, j) | 32, Math.min(d, 90) | 32]),
+ d < 97 ||
+ j > 122 ||
+ b.push([Math.max(97, j) & -33, Math.min(d, 122) & -33]));
+ }
+ }
+ b.sort(function (a, f) {
+ return a[0] - f[0] || f[1] - a[1];
+ });
+ f = [];
+ j = [NaN, NaN];
+ for (c = 0; c < b.length; ++c)
+ (i = b[c]),
+ i[0] <= j[1] + 1 ? (j[1] = Math.max(j[1], i[1])) : f.push((j = i));
+ b = ["["];
+ o && b.push("^");
+ b.push.apply(b, a);
+ for (c = 0; c < f.length; ++c)
+ (i = f[c]),
+ b.push(e(i[0])),
+ i[1] > i[0] && (i[1] + 1 > i[0] && b.push("-"), b.push(e(i[1])));
+ b.push("]");
+ return b.join("");
+ }
+ function y(a) {
+ for (
+ var f = a.source.match(
+ /\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g,
+ ),
+ b = f.length,
+ d = [],
+ c = 0,
+ i = 0;
+ c < b;
+ ++c
+ ) {
+ var j = f[c];
+ j === "("
+ ? ++i
+ : "\\" === j.charAt(0) &&
+ (j = +j.substring(1)) &&
+ j <= i &&
+ (d[j] = -1);
+ }
+ for (c = 1; c < d.length; ++c) -1 === d[c] && (d[c] = ++t);
+ for (i = c = 0; c < b; ++c)
+ (j = f[c]),
+ j === "("
+ ? (++i, d[i] === void 0 && (f[c] = "(?:"))
+ : "\\" === j.charAt(0) &&
+ (j = +j.substring(1)) &&
+ j <= i &&
+ (f[c] = "\\" + d[i]);
+ for (i = c = 0; c < b; ++c)
+ "^" === f[c] && "^" !== f[c + 1] && (f[c] = "");
+ if (a.ignoreCase && s)
+ for (c = 0; c < b; ++c)
+ (j = f[c]),
+ (a = j.charAt(0)),
+ j.length >= 2 && a === "["
+ ? (f[c] = h(j))
+ : a !== "\\" &&
+ (f[c] = j.replace(/[A-Za-z]/g, function (a) {
+ a = a.charCodeAt(0);
+ return "[" + String.fromCharCode(a & -33, a | 32) + "]";
+ }));
+ return f.join("");
+ }
+ for (var t = 0, s = !1, l = !1, p = 0, d = a.length; p < d; ++p) {
+ var g = a[p];
+ if (g.ignoreCase) l = !0;
+ else if (
+ /[a-z]/i.test(
+ g.source.replace(/\\u[\da-f]{4}|\\x[\da-f]{2}|\\[^UXux]/gi, ""),
+ )
+ ) {
+ s = !0;
+ l = !1;
+ break;
+ }
+ }
+ for (
+ var r = { b: 8, t: 9, n: 10, v: 11, f: 12, r: 13 },
+ n = [],
+ p = 0,
+ d = a.length;
+ p < d;
+ ++p
+ ) {
+ g = a[p];
+ if (g.global || g.multiline) throw Error("" + g);
+ n.push("(?:" + y(g) + ")");
+ }
+ return RegExp(n.join("|"), l ? "gi" : "g");
+ }
+ function M(a) {
+ function m(a) {
+ switch (a.nodeType) {
+ case 1:
+ if (e.test(a.className)) break;
+ for (var g = a.firstChild; g; g = g.nextSibling) m(g);
+ g = a.nodeName;
+ if ("BR" === g || "LI" === g)
+ (h[s] = "\n"), (t[s << 1] = y++), (t[(s++ << 1) | 1] = a);
+ break;
+ case 3:
+ case 4:
+ (g = a.nodeValue),
+ g.length &&
+ ((g = p
+ ? g.replace(/\r\n?/g, "\n")
+ : g.replace(/[\t\n\r ]+/g, " ")),
+ (h[s] = g),
+ (t[s << 1] = y),
+ (y += g.length),
+ (t[(s++ << 1) | 1] = a));
+ }
+ }
+ var e = /(?:^|\s)nocode(?:\s|$)/,
+ h = [],
+ y = 0,
+ t = [],
+ s = 0,
+ l;
+ a.currentStyle
+ ? (l = a.currentStyle.whiteSpace)
+ : window.getComputedStyle &&
+ (l = document.defaultView
+ .getComputedStyle(a, q)
+ .getPropertyValue("white-space"));
+ var p = l && "pre" === l.substring(0, 3);
+ m(a);
+ return { a: h.join("").replace(/\n$/, ""), c: t };
+ }
+ function B(a, m, e, h) {
+ m && ((a = { a: m, d: a }), e(a), h.push.apply(h, a.e));
+ }
+ function x(a, m) {
+ function e(a) {
+ for (
+ var l = a.d,
+ p = [l, "pln"],
+ d = 0,
+ g = a.a.match(y) || [],
+ r = {},
+ n = 0,
+ z = g.length;
+ n < z;
+ ++n
+ ) {
+ var f = g[n],
+ b = r[f],
+ o = void 0,
+ c;
+ if (typeof b === "string") c = !1;
+ else {
+ var i = h[f.charAt(0)];
+ if (i) (o = f.match(i[1])), (b = i[0]);
+ else {
+ for (c = 0; c < t; ++c)
+ if (((i = m[c]), (o = f.match(i[1])))) {
+ b = i[0];
+ break;
+ }
+ o || (b = "pln");
+ }
+ if (
+ (c = b.length >= 5 && "lang-" === b.substring(0, 5)) &&
+ !(o && typeof o[1] === "string")
+ )
+ (c = !1), (b = "src");
+ c || (r[f] = b);
+ }
+ i = d;
+ d += f.length;
+ if (c) {
+ c = o[1];
+ var j = f.indexOf(c),
+ k = j + c.length;
+ o[2] && ((k = f.length - o[2].length), (j = k - c.length));
+ b = b.substring(5);
+ B(l + i, f.substring(0, j), e, p);
+ B(l + i + j, c, C(b, c), p);
+ B(l + i + k, f.substring(k), e, p);
+ } else p.push(l + i, b);
+ }
+ a.e = p;
+ }
+ var h = {},
+ y;
+ (function () {
+ for (
+ var e = a.concat(m), l = [], p = {}, d = 0, g = e.length;
+ d < g;
+ ++d
+ ) {
+ var r = e[d],
+ n = r[3];
+ if (n) for (var k = n.length; --k >= 0; ) h[n.charAt(k)] = r;
+ r = r[1];
+ n = "" + r;
+ p.hasOwnProperty(n) || (l.push(r), (p[n] = q));
+ }
+ l.push(/[\S\s]/);
+ y = L(l);
+ })();
+ var t = m.length;
+ return e;
+ }
+ function u(a) {
+ var m = [],
+ e = [];
+ a.tripleQuotedStrings
+ ? m.push([
+ "str",
+ /^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,
+ q,
+ "'\"",
+ ])
+ : a.multiLineStrings
+ ? m.push([
+ "str",
+ /^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/,
+ q,
+ "'\"`",
+ ])
+ : m.push([
+ "str",
+ /^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,
+ q,
+ "\"'",
+ ]);
+ a.verbatimStrings && e.push(["str", /^@"(?:[^"]|"")*(?:"|$)/, q]);
+ var h = a.hashComments;
+ h &&
+ (a.cStyleComments
+ ? (h > 1
+ ? m.push(["com", /^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/, q, "#"])
+ : m.push([
+ "com",
+ /^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,
+ q,
+ "#",
+ ]),
+ e.push([
+ "str",
+ /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,
+ q,
+ ]))
+ : m.push(["com", /^#[^\n\r]*/, q, "#"]));
+ a.cStyleComments &&
+ (e.push(["com", /^\/\/[^\n\r]*/, q]),
+ e.push(["com", /^\/\*[\S\s]*?(?:\*\/|$)/, q]));
+ a.regexLiterals &&
+ e.push([
+ "lang-regex",
+ /^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/,
+ ]);
+ (h = a.types) && e.push(["typ", h]);
+ a = ("" + a.keywords).replace(/^ | $/g, "");
+ a.length &&
+ e.push(["kwd", RegExp("^(?:" + a.replace(/[\s,]+/g, "|") + ")\\b"), q]);
+ m.push(["pln", /^\s+/, q, " \r\n\t\xa0"]);
+ e.push(
+ ["lit", /^@[$_a-z][\w$@]*/i, q],
+ ["typ", /^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/, q],
+ ["pln", /^[$_a-z][\w$@]*/i, q],
+ [
+ "lit",
+ /^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,
+ q,
+ "0123456789",
+ ],
+ ["pln", /^\\[\S\s]?/, q],
+ ["pun", /^.[^\s\w"-$'./@\\`]*/, q],
+ );
+ return x(m, e);
+ }
+ function D(a, m) {
+ function e(a) {
+ switch (a.nodeType) {
+ case 1:
+ if (k.test(a.className)) break;
+ if ("BR" === a.nodeName)
+ h(a), a.parentNode && a.parentNode.removeChild(a);
+ else for (a = a.firstChild; a; a = a.nextSibling) e(a);
+ break;
+ case 3:
+ case 4:
+ if (p) {
+ var b = a.nodeValue,
+ d = b.match(t);
+ if (d) {
+ var c = b.substring(0, d.index);
+ a.nodeValue = c;
+ (b = b.substring(d.index + d[0].length)) &&
+ a.parentNode.insertBefore(s.createTextNode(b), a.nextSibling);
+ h(a);
+ c || a.parentNode.removeChild(a);
+ }
+ }
+ }
+ }
+ function h(a) {
+ function b(a, d) {
+ var e = d ? a.cloneNode(!1) : a,
+ f = a.parentNode;
+ if (f) {
+ var f = b(f, 1),
+ g = a.nextSibling;
+ f.appendChild(e);
+ for (var h = g; h; h = g) (g = h.nextSibling), f.appendChild(h);
+ }
+ return e;
+ }
+ for (; !a.nextSibling; ) if (((a = a.parentNode), !a)) return;
+ for (
+ var a = b(a.nextSibling, 0), e;
+ (e = a.parentNode) && e.nodeType === 1;
+
+ )
+ a = e;
+ d.push(a);
+ }
+ var k = /(?:^|\s)nocode(?:\s|$)/,
+ t = /\r\n?|\n/,
+ s = a.ownerDocument,
+ l;
+ a.currentStyle
+ ? (l = a.currentStyle.whiteSpace)
+ : window.getComputedStyle &&
+ (l = s.defaultView
+ .getComputedStyle(a, q)
+ .getPropertyValue("white-space"));
+ var p = l && "pre" === l.substring(0, 3);
+ for (l = s.createElement("LI"); a.firstChild; ) l.appendChild(a.firstChild);
+ for (var d = [l], g = 0; g < d.length; ++g) e(d[g]);
+ m === (m | 0) && d[0].setAttribute("value", m);
+ var r = s.createElement("OL");
+ r.className = "linenums";
+ for (var n = Math.max(0, (m - 1) | 0) || 0, g = 0, z = d.length; g < z; ++g)
+ (l = d[g]),
+ (l.className = "L" + ((g + n) % 10)),
+ l.firstChild || l.appendChild(s.createTextNode("\xa0")),
+ r.appendChild(l);
+ a.appendChild(r);
+ }
+ function k(a, m) {
+ for (var e = m.length; --e >= 0; ) {
+ var h = m[e];
+ A.hasOwnProperty(h)
+ ? window.console &&
+ console.warn("cannot override language handler %s", h)
+ : (A[h] = a);
+ }
+ }
+ function C(a, m) {
+ if (!a || !A.hasOwnProperty(a))
+ a = /^\s*= o && (h += 2);
+ e >= c && (a += 2);
+ }
+ } catch (w) {
+ "console" in window && console.log(w && w.stack ? w.stack : w);
+ }
+ }
+ var v = ["break,continue,do,else,for,if,return,while"],
+ w = [
+ [
+ v,
+ "auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile",
+ ],
+ "catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof",
+ ],
+ F = [
+ w,
+ "alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where",
+ ],
+ G = [
+ w,
+ "abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient",
+ ],
+ H = [
+ G,
+ "as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var",
+ ],
+ w = [
+ w,
+ "debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN",
+ ],
+ I = [
+ v,
+ "and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None",
+ ],
+ J = [
+ v,
+ "alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END",
+ ],
+ v = [v, "case,done,elif,esac,eval,fi,function,in,local,set,then,until"],
+ K =
+ /^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,
+ N = /\S/,
+ O = u({
+ keywords: [
+ F,
+ H,
+ w,
+ "caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END" +
+ I,
+ J,
+ v,
+ ],
+ hashComments: !0,
+ cStyleComments: !0,
+ multiLineStrings: !0,
+ regexLiterals: !0,
+ }),
+ A = {};
+ k(O, ["default-code"]);
+ k(
+ x(
+ [],
+ [
+ ["pln", /^[^]+/],
+ ["dec", /^]*(?:>|$)/],
+ ["com", /^<\!--[\S\s]*?(?:--\>|$)/],
+ ["lang-", /^<\?([\S\s]+?)(?:\?>|$)/],
+ ["lang-", /^<%([\S\s]+?)(?:%>|$)/],
+ ["pun", /^(?:<[%?]|[%?]>)/],
+ ["lang-", /^]*>([\S\s]+?)<\/xmp\b[^>]*>/i],
+ ["lang-js", /^
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+