diff --git a/SickBeard.py b/SickBeard.py
index ed1b91ded35b9ee5f118d428b9418155456ba560..7337435ec6908a8fa5cdc67a081d3dc429e328d3 100755
--- a/SickBeard.py
+++ b/SickBeard.py
@@ -526,16 +526,7 @@ class SickRage(object):
                 if install_type in ('git', 'source'):
                     popen_list = [sys.executable, sickbeard.MY_FULLNAME]
                 elif install_type == 'win':
-                    if hasattr(sys, 'frozen'):
-                        # c:\dir\to\updater.exe 12345 c:\dir\to\sickbeard.exe
-                        popen_list = [os.path.join(sickbeard.PROG_DIR, 'updater.exe'), str(sickbeard.PID),
-                                      sys.executable]
-                    else:
-                        logger.log(u"Unknown SR launch method, please file a bug report about this", logger.ERROR)
-                        popen_list = [sys.executable, os.path.join(sickbeard.PROG_DIR, 'updater.py'),
-                                      str(sickbeard.PID),
-                                      sys.executable,
-                                      sickbeard.MY_FULLNAME]
+                    logger.log(u"You are using a binary Windows build of SickRage. Please switch to using git.", logger.ERROR)
 
                 if popen_list and not sickbeard.NO_RESTART:
                     popen_list += sickbeard.MY_ARGS
diff --git a/googlecode_upload.py b/googlecode_upload.py
deleted file mode 100644
index 1b93492508acd1ab892735445a95690a7a32ce54..0000000000000000000000000000000000000000
--- a/googlecode_upload.py
+++ /dev/null
@@ -1,250 +0,0 @@
-#!/usr/bin/env python2
-#
-# Copyright 2006, 2007 Google Inc. All Rights Reserved.
-# Author: danderson@google.com (David Anderson)
-#
-# Script for uploading files to a Google Code project.
-#
-# This is intended to be both a useful script for people who want to
-# streamline project uploads and a reference implementation for
-# uploading files to Google Code projects.
-#
-# To upload a file to Google Code, you need to provide a path to the
-# file on your local machine, a small summary of what the file is, a
-# project name, and a valid account that is a member or owner of that
-# project.  You can optionally provide a list of labels that apply to
-# the file.  The file will be uploaded under the same name that it has
-# in your local filesystem (that is, the "basename" or last path
-# component).  Run the script with '--help' to get the exact syntax
-# and available options.
-#
-# Note that the upload script requests that you enter your
-# googlecode.com password.  This is NOT your Gmail account password!
-# This is the password you use on googlecode.com for committing to
-# Subversion and uploading files.  You can find your password by going
-# to http://code.google.com/hosting/settings when logged in with your
-# Gmail account. If you have already committed to your project's
-# Subversion repository, the script will automatically retrieve your
-# credentials from there (unless disabled, see the output of '--help'
-# for details).
-#
-# If you are looking at this script as a reference for implementing
-# your own Google Code file uploader, then you should take a look at
-# the upload() function, which is the meat of the uploader.  You
-# basically need to build a multipart/form-data POST request with the
-# right fields and send it to https://PROJECT.googlecode.com/files .
-# Authenticate the request using HTTP Basic authentication, as is
-# shown below.
-#
-# Licensed under the terms of the Apache Software License 2.0:
-#  http://www.apache.org/licenses/LICENSE-2.0
-#
-# Questions, comments, feature requests and patches are most welcome.
-# Please direct all of these to the Google Code users group:
-#  http://groups.google.com/group/google-code-hosting
-
-"""Google Code file uploader script.
-"""
-
-__author__ = 'danderson@google.com (David Anderson)'
-
-import httplib
-import os.path
-import optparse
-import getpass
-import base64
-import sys
-
-
-def upload(file, project_name, user_name, password, summary, labels=None):
-  """Upload a file to a Google Code project's file server.
-
-  Args:
-    file: The local path to the file.
-    project_name: The name of your project on Google Code.
-    user_name: Your Google account name.
-    password: The googlecode.com password for your account.
-              Note that this is NOT your global Google Account password!
-    summary: A small description for the file.
-    labels: an optional list of label strings with which to tag the file.
-
-  Returns: a tuple:
-    http_status: 201 if the upload succeeded, something else if an
-                 error occured.
-    http_reason: The human-readable string associated with http_status
-    file_url: If the upload succeeded, the URL of the file on Google
-              Code, None otherwise.
-  """
-  # The login is the user part of user@gmail.com. If the login provided
-  # is in the full user@domain form, strip it down.
-  if user_name.endswith('@gmail.com'):
-    user_name = user_name[:user_name.index('@gmail.com')]
-
-  form_fields = [('summary', summary)]
-  if labels is not None:
-    form_fields.extend([('label', l.strip()) for l in labels])
-
-  content_type, body = encode_upload_request(form_fields, file)
-
-  upload_host = '%s.googlecode.com' % project_name
-  upload_uri = '/files'
-  auth_token = base64.b64encode('%s:%s'% (user_name, password))
-  headers = {
-    'Authorization': 'Basic %s' % auth_token,
-    'User-Agent': 'Googlecode.com uploader v0.9.4',
-    'Content-Type': content_type,
-    }
-
-  server = httplib.HTTPSConnection(upload_host)
-  server.request('POST', upload_uri, body, headers)
-  resp = server.getresponse()
-  server.close()
-
-  if resp.status == 201:
-    location = resp.getheader('Location', None)
-  else:
-    location = None
-  return resp.status, resp.reason, location
-
-
-def encode_upload_request(fields, file_path):
-  """Encode the given fields and file into a multipart form body.
-
-  fields is a sequence of (name, value) pairs. file is the path of
-  the file to upload. The file will be uploaded to Google Code with
-  the same file name.
-
-  Returns: (content_type, body) ready for httplib.HTTP instance
-  """
-  BOUNDARY = '----------Googlecode_boundary_reindeer_flotilla'
-  CRLF = '\r\n'
-
-  body = []
-
-  # Add the metadata about the upload first
-  for key, value in fields:
-    body.extend(
-      ['--' + BOUNDARY,
-       'Content-Disposition: form-data; name="%s"' % key,
-       '',
-       value,
-       ])
-
-  # Now add the file itself
-  file_name = os.path.basename(file_path)
-  f = open(file_path, 'rb')
-  file_content = f.read()
-  f.close()
-
-  body.extend(
-    ['--' + BOUNDARY,
-     'Content-Disposition: form-data; name="filename"; filename="%s"'
-     % file_name,
-     # The upload server determines the mime-type, no need to set it.
-     'Content-Type: application/octet-stream',
-     '',
-     file_content,
-     ])
-
-  # Finalize the form body
-  body.extend(['--' + BOUNDARY + '--', ''])
-
-  return 'multipart/form-data; boundary=%s' % BOUNDARY, CRLF.join(body)
-
-
-def upload_find_auth(file_path, project_name, summary, labels=None,
-                     user_name=None, password=None, tries=3):
-  """Find credentials and upload a file to a Google Code project's file server.
-
-  file_path, project_name, summary, and labels are passed as-is to upload.
-
-  Args:
-    file_path: The local path to the file.
-    project_name: The name of your project on Google Code.
-    summary: A small description for the file.
-    labels: an optional list of label strings with which to tag the file.
-    config_dir: Path to Subversion configuration directory, 'none', or None.
-    user_name: Your Google account name.
-    tries: How many attempts to make.
-  """
-
-  while tries > 0:
-    if user_name is None:
-      # Read username if not specified or loaded from svn config, or on
-      # subsequent tries.
-      sys.stdout.write('Please enter your googlecode.com username: ')
-      sys.stdout.flush()
-      user_name = sys.stdin.readline().rstrip()
-    if password is None:
-      # Read password if not loaded from svn config, or on subsequent tries.
-      print 'Please enter your googlecode.com password.'
-      print '** Note that this is NOT your Gmail account password! **'
-      print 'It is the password you use to access Subversion repositories,'
-      print 'and can be found here: http://code.google.com/hosting/settings'
-      password = getpass.getpass()
-
-    status, reason, url = upload(file_path, project_name, user_name, password,
-                                 summary, labels)
-    # Returns 403 Forbidden instead of 401 Unauthorized for bad
-    # credentials as of 2007-07-17.
-    if status in [httplib.FORBIDDEN, httplib.UNAUTHORIZED]:
-      # Rest for another try.
-      user_name = password = None
-      tries = tries - 1
-    else:
-      # We're done.
-      break
-
-  return status, reason, url
-
-
-def main():
-  parser = optparse.OptionParser(usage='googlecode-upload.py -s SUMMARY '
-                                 '-p PROJECT [options] FILE')
-  parser.add_option('-s', '--summary', dest='summary',
-                    help='Short description of the file')
-  parser.add_option('-p', '--project', dest='project',
-                    help='Google Code project name')
-  parser.add_option('-u', '--user', dest='user',
-                    help='Your Google Code username')
-  parser.add_option('-w', '--password', dest='password',
-                    help='Your Google Code password')
-  parser.add_option('-l', '--labels', dest='labels',
-                    help='An optional list of comma-separated labels to attach '
-                    'to the file')
-
-  options, args = parser.parse_args()
-
-  if not options.summary:
-    parser.error('File summary is missing.')
-  elif not options.project:
-    parser.error('Project name is missing.')
-  elif len(args) < 1:
-    parser.error('File to upload not provided.')
-  elif len(args) > 1:
-    parser.error('Only one file may be specified.')
-
-  file_path = args[0]
-
-  if options.labels:
-    labels = options.labels.split(',')
-  else:
-    labels = None
-
-def upload_file(file, project, summary, labels, username, password):
-
-  status, reason, url = upload_find_auth(file, project,
-                                         summary, labels,
-                                         username, password)
-  if url:
-    print 'The file was uploaded successfully.'
-    print 'URL: %s' % url
-    return 0
-  else:
-    print 'An error occurred. Your file was not uploaded.'
-    print 'Google Code upload server said: %s (%s)' % (reason, status)
-    return 1
-
-
-if __name__ == '__main__':
-  sys.exit(main())
diff --git a/gui/slick/css/browser.css b/gui/slick/css/browser.css
index db5957ddcc634423e2ce908373091b3170dc42e9..2a3ae33d679e50735283b2ea5c0e1fd74968e7f5 100644
--- a/gui/slick/css/browser.css
+++ b/gui/slick/css/browser.css
@@ -1,50 +1,59 @@
 #fileBrowserDialog {
-  max-height: 480px;
-  overflow-y: auto;
+    max-height: 480px;
+    overflow-y: auto;
 }
+
 #fileBrowserDialog ul {
-  margin: 0;
-  padding: 0;
+    margin: 0;
+    padding: 0;
 }
+
 #fileBrowserDialog ul li {
-  margin: 2px 0;
-  cursor: pointer;
-  list-style-type: none;
+    margin: 2px 0;
+    cursor: pointer;
+    list-style-type: none;
 }
+
 #fileBrowserDialog ul li a {
-  display: block;
-  padding: 4px 0;
+    display: block;
+    padding: 4px 0;
 }
+
 #fileBrowserDialog ul li a:hover {
-  color: #09A2FF;
-  background: none;
+    color: #09A2FF;
+    background: none;
 }
+
 #fileBrowserDialog ul li a span.ui-icon {
-  margin: 0 4px;
-  float: left;
+    margin: 0 4px;
+    float: left;
 }
 
 
-/* jquery ui autocomplete overrides to make it look more like the old autocomplete */
+/* jQuery-UI autocomplete overrides to make it look more like the old autocomplete */
 .ui-autocomplete {
-  max-height: 180px;
-  overflow-y: auto;
-  /* prevent horizontal scrollbar */
-  overflow-x: hidden;
-  /* add padding to account for vertical scrollbar */
-  padding-right: 20px;
+    max-height: 180px;
+    overflow-y: auto;
+    /* prevent horizontal scrollbar */
+    overflow-x: hidden;
+    /* add padding to account for vertical scrollbar */
+    padding-right: 20px;
 }
+
 * html .ui-autocomplete {
-  height: 180px;
+    height: 180px;
 }
+
 .ui-menu .ui-menu-item {
-  background-color: #eeeeee;
+    background-color: #eeeeee;
 }
+
 .ui-menu .ui-menu-item-alternate{
-  background-color: #ffffff;
+    background-color: #ffffff;
 }
+
 .ui-menu a.ui-state-hover{
-  background: none;
-  background-color: #0A246A;
-  color: #ffffff;
+    background: none;
+    background-color: #0A246A;
+    color: #ffffff;
 }
diff --git a/gui/slick/css/dark.css b/gui/slick/css/dark.css
index e608042ae82ebc4e602b5aead6f9328041c66ae9..ccb8734ac2dad9b45d5644ff1f414f42446f1f16 100644
--- a/gui/slick/css/dark.css
+++ b/gui/slick/css/dark.css
@@ -1,305 +1,74 @@
 /* =======================================================================
-fonts
+inc_top.mako
 ========================================================================== */
-/* Open Sans */
-/* Regular */
-@font-face {
-    font-family: 'Open Sans';
-    
-    src: url('fonts/OpenSans-Regular-webfont.eot');
-    src: url('fonts/OpenSans-Regular-webfont.eot?#iefix') format('embedded-opentype'),
-         url('fonts/OpenSans-Regular-webfont.woff') format('woff'),
-         url('fonts/OpenSans-Regular-webfont.ttf') format('truetype'),
-         url('fonts/OpenSans-Regular-webfont.svg#OpenSansRegular') format('svg');
-    font-weight: normal;
-    font-weight: 400;
-    font-style: normal;
-}
-
-/* Italic */
-@font-face {
-    font-family: 'Open Sans';
-    src: url('fonts/OpenSans-Italic-webfont.eot');
-    src: url('fonts/OpenSans-Italic-webfont.eot?#iefix') format('embedded-opentype'),
-         url('fonts/OpenSans-Italic-webfont.woff') format('woff'),
-         url('fonts/OpenSans-Italic-webfont.ttf') format('truetype'),
-         url('fonts/OpenSans-Italic-webfont.svg#OpenSansItalic') format('svg');
-    font-weight: normal;
-    font-weight: 400;
-    font-style: italic;
-}
-
-/* Light */
-@font-face {
-    font-family: 'Open Sans';
-    src: url('fonts/OpenSans-Light-webfont.eot');
-    src: url('fonts/OpenSans-Light-webfont.eot?#iefix') format('embedded-opentype'),
-         url('fonts/OpenSans-Light-webfont.woff') format('woff'),
-         url('fonts/OpenSans-Light-webfont.ttf') format('truetype'),
-         url('fonts/OpenSans-Light-webfont.svg#OpenSansLight') format('svg');
-    font-weight: 200;
-    font-style: normal;
-}
-
-/* Light Italic */
-@font-face {
-    font-family: 'Open Sans';
-    src: url('fonts/OpenSans-LightItalic-webfont.eot');
-    src: url('fonts/OpenSans-LightItalic-webfont.eot?#iefix') format('embedded-opentype'),
-         url('fonts/OpenSans-LightItalic-webfont.woff') format('woff'),
-         url('fonts/OpenSans-LightItalic-webfont.ttf') format('truetype'),
-         url('fonts/OpenSans-LightItalic-webfont.svg#OpenSansLightItalic') format('svg');
-    font-weight: 200;
-    font-style: italic;
-}
-
-/* Semibold */
-@font-face {
-    font-family: 'Open Sans';
-    src: url('fonts/OpenSans-Semibold-webfont.eot');
-    src: url('fonts/OpenSans-Semibold-webfont.eot?#iefix') format('embedded-opentype'),
-         url('fonts/OpenSans-Semibold-webfont.woff') format('woff'),
-         url('fonts/OpenSans-Semibold-webfont.ttf') format('truetype'),
-         url('fonts/OpenSans-Semibold-webfont.svg#OpenSansSemibold') format('svg');
-    font-weight: 600;
-    font-style: normal;
-}
-
-/* Semibold Italic */
-@font-face {
-    font-family: 'Open Sans';
-    src: url('fonts/OpenSans-SemiboldItalic-webfont.eot');
-    src: url('fonts/OpenSans-SemiboldItalic-webfont.eot?#iefix') format('embedded-opentype'),
-         url('fonts/OpenSans-SemiboldItalic-webfont.woff') format('woff'),
-         url('fonts/OpenSans-SemiboldItalic-webfont.ttf') format('truetype'),
-         url('fonts/OpenSans-SemiboldItalic-webfont.svg#OpenSansSemiboldItalic') format('svg');
-    font-weight: 600;
-    font-style: italic;
-}
-
-/* Bold */
-@font-face {
-    font-family: 'Open Sans';
-    src: url('fonts/OpenSans-Semibold-webfont.eot');
-    src: url('fonts/OpenSans-Semibold-webfont.eot?#iefix') format('embedded-opentype'),
-         url('fonts/OpenSans-Semibold-webfont.woff') format('woff'),
-         url('fonts/OpenSans-Semibold-webfont.ttf') format('truetype'),
-         url('fonts/OpenSans-Semibold-webfont.svg#OpenSansSemibold') format('svg');
-    font-weight: bold;
-    font-weight: 700;
-    font-style: normal;
-}
-
-/* Bold Italic */
-@font-face {
-    font-family: 'Open Sans';
-    src: url('fonts/OpenSans-SemiboldItalic-webfont.eot');
-    src: url('fonts/OpenSans-SemiboldItalic-webfont.eot?#iefix') format('embedded-opentype'),
-         url('fonts/OpenSans-SemiboldItalic-webfont.woff') format('woff'),
-         url('fonts/OpenSans-SemiboldItalic-webfont.ttf') format('truetype'),
-         url('fonts/OpenSans-SemiboldItalic-webfont.svg#OpenSansSemiboldItalic') format('svg');
-    font-weight: bold;
-    font-weight: 700;
-    font-style: italic;
-}
-
-/* Extra Bold */
-@font-face {
-    font-family: 'Open Sans';
-    src: url('fonts/OpenSans-Bold-webfont.eot');
-    src: url('fonts/OpenSans-Bold-webfont.eot?#iefix') format('embedded-opentype'),
-         url('fonts/OpenSans-Bold-webfont.woff') format('woff'),
-         url('fonts/OpenSans-Bold-webfont.ttf') format('truetype'),
-         url('fonts/OpenSans-Bold-webfont.svg#OpenSansBold') format('svg');
-    font-weight: 900;
-    font-style: normal;
-}
-
-/* Extra Bold Italic */
-@font-face {
-    font-family: 'Open Sans';
-    src: url('fonts/OpenSans-BoldItalic-webfont.eot');
-    src: url('fonts/OpenSans-BoldItalic-webfont.eot?#iefix') format('embedded-opentype'),
-         url('fonts/OpenSans-BoldItalic-webfont.woff') format('woff'),
-         url('fonts/OpenSans-BoldItalic-webfont.ttf') format('truetype'),
-         url('fonts/OpenSans-BoldItalic-webfont.svg#OpenSansBoldItalic') format('svg');
-    font-weight: 900;
-    font-style: italic;
-}
-
-/* Droid Sans */
-@font-face {
-    font-family: 'droid_sans_mono';
-    src: url('fonts/droidsansmono-webfont.eot');
-    src: url('fonts/droidsansmono-webfont.eot?#iefix') format('embedded-opentype'),
-         url('fonts/droidsansmono-webfont.woff') format('woff'),
-         url('fonts/droidsansmono-webfont.ttf') format('truetype'),
-         url('fonts/droidsansmono-webfont.svg#droid_sans_monoregular') format('svg');
-    font-weight: normal;
-    font-style: normal;
-}
-
-
-/* =======================================================================
-inc_top.tmpl
-========================================================================== */
-
-.navbaricon {
-	margin-top: -15px;
-	margin-bottom: -15px;
-}
-
-#contentWrapper { 
-/*	background: url("../images/bg.png") repeat 0 0 transparent; */
-}
-
-[class^="icon-"], 
-[class*=" icon-"] { 
-	background-image: url("../images/glyphicons-halflings.png"); 
-}
-
-.icon-white { 
-	background-image: url("../images/glyphicons-halflings-white.png"); 
-}
-
-.dropdown-menu li > a:hover > [class^="menu-icon-"], 
-.dropdown-menu li > a:hover > [class*=" menu-icon-"] { 
-	background-image: url("../images/menu/menu-icons-white.png"); 
-}
-
-[class^="icon16-"], 
-[class*=" icon16-"] { 
-	background-image: url("../images/glyphicons-config.png");
-}
-
-.ui-autocomplete-loading { 
-	background: white url("../images/loading16.gif") right center no-repeat; 
-}
-
-.browserDialog.busy .ui-dialog-buttonpane { 
-	background: url("../images/loading.gif") 10px 50% no-repeat !important; 
-}
-
-.ui-progressbar .ui-progressbar-overlay { 
-	background: url("../css/lib/images/animated-overlay.gif"); 
-}
-
-.ui-dialog, 
-.ui-dialog-buttonpane { 
-	background: #2a2a2a !important;; 
-}
 
-.ui-accordion-content, 
-.ui-tabs-panel { 
-	background: #ededed !important; 
-	background-image: none !important; 
+.ui-dialog,
+.ui-dialog-buttonpane {
+	background: #2a2a2a !important;
 }
 
-.ui-widget-content { 
-	background: #606060;
-	border: 1px solid #111;
+.ui-widget-content {
+    background: #606060;
+    border: 1px solid #111;
 	color: #fff;
 }
 
 .ui-widget-content a {
-    color: #fff;
+	color: #fff;
 }
 
 .ui-widget-content a:hover {
-    color: #09A2FF;
+	color: #09A2FF;
 	text-decoration: none;
 }
 
-.ui-widget-header { 
+.ui-widget-header {
 	background: #3d3d3d;
 	border: 1px solid #111;
 	color: #fff;
 }
 
-.ui-state-default, 
-.ui-widget-content .ui-state-default, 
-.ui-widget-header .ui-state-default { 
+.ui-state-default,
+.ui-widget-content .ui-state-default,
+.ui-widget-header .ui-state-default {
 	border: 1px solid #111;
 }
 
-.ui-state-hover, 
-.ui-widget-content .ui-state-hover, 
-.ui-widget-header .ui-state-hover, 
-.ui-state-focus, 
-.ui-widget-content .ui-state-focus, 
-.ui-widget-header .ui-state-focus { 
-	background: #3d3d3d; 
-}
-
-.ui-state-active, 
-.ui-widget-content .ui-state-active, 
-.ui-widget-header .ui-state-active { 
+.ui-state-hover,
+.ui-widget-content .ui-state-hover,
+.ui-widget-header .ui-state-hover,
+.ui-state-focus,
+.ui-widget-content .ui-state-focus,
+.ui-widget-header .ui-state-focus {
 	background: #3d3d3d;
 }
 
-.ui-state-highlight, 
-.ui-widget-content .ui-state-highlight, 
-.ui-widget-header .ui-state-highlight { 
-	background: #fbf9ee url("../css/lib/images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x; 
-}
-
-.ui-state-error, 
-.ui-widget-content .ui-state-error, 
-.ui-widget-header .ui-state-error { 
-	background: #fef1ec url("../css/lib/images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x; 
-}
-
-.ui-icon, 
-.ui-widget-content .ui-icon { 
-	background-image: url("../css/lib/images/ui-icons_ffffff_256x240.png"); 
-}
-
-.ui-widget-header .ui-icon { 
-	background-image: url("../css/lib/images/ui-icons_222222_256x240.png"); 
-}
-
-.ui-state-default .ui-icon { 
-	background-image: url('../css/lib/images/ui-icons_09a2ff_256x240.png'); 
-}
-
-.ui-state-hover .ui-icon, 
-.ui-state-focus .ui-icon { 
-	background-image: url("../css/lib/images/ui-icons_222222_256x240.png"); 
-}
-
-.ui-state-active .ui-icon { 
-	background-image: url("../css/lib/images/ui-icons_8c291d_256x240.png"); 
-}
-
-.ui-state-highlight .ui-icon { 
-	background-image: url("../css/lib/images/ui-icons_2e83ff_256x240.png"); 
-}
-
-.ui-state-error .ui-icon, 
-.ui-state-error-text .ui-icon { 
-	background-image: url("../css/lib/images/ui-icons_cd0a0a_256x240.png"); 
+.ui-state-active,
+.ui-widget-content .ui-state-active,
+.ui-widget-header .ui-state-active {
+	background: #3d3d3d;
 }
 
-.ui-widget-overlay { 
-	background: #000000 url("../css/lib/images/ui-bg_flat_0_000000_40x100.png") 50% 50% repeat-x; 
+.ui-icon,
+.ui-widget-content .ui-icon {
+	background-image: url("../css/lib/images/ui-icons_ffffff_256x240.png");
 }
 
-.ui-widget-shadow { 
-	background: #000000 url("../css/lib/images/ui-bg_flat_0_000000_40x100.png") 50% 50% repeat-x; 
+.ui-state-default .ui-icon {
+	background-image: url('../css/lib/images/ui-icons_09a2ff_256x240.png');
 }
 
-.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited {
-    color: #140F06;
-    text-decoration: none;
+.ui-widget-overlay {
+	background: #000000 url("../css/lib/images/ui-bg_flat_0_000000_40x100.png") 50% 50% repeat-x;
 }
 
 .ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited {
-    color: #fff;
-    text-decoration: none;
+	color: #fff;
+	text-decoration: none;
 }
 
 .ui-dialog .ui-dialog-titlebar-close {
-    background: #333;
+	background: #333;
 }
 
 .ui-tabs {
@@ -308,58 +77,19 @@ inc_top.tmpl
     border-width: 0px;
 }
 
-.ui-tabs .ui-tabs-nav {
-    padding-left: 0px;
-    background: transparent;
-    border-width: 0px 0px 0px 0px;
-    -moz-border-radius: 0px;
-    -webkit-border-radius: 0px;
-    border-radius: 0px;
-}
-
-.ui-tabs .ui-tabs-panel { 
+.ui-tabs .ui-tabs-panel {
 	background-color: #3d3d3d !important;
 	border: 1px solid #111 !important;
 }
 
-.ui-tabs .ui-tabs-nav li.ui-tabs-active {
-    border-top-left-radius: 5px;
-    border-top-right-radius: 5px;
-}
-
 .ui-tabs-nav > :not(.ui-tabs-active){
 	background: #333;
 	border-top-left-radius: 5px;
 	border-top-right-radius: 5px;
 }
 
-#content {
-    width: 95%;
-    min-width: 875px;
-    padding: 15px;
-    margin-left: auto;
-    margin-right: auto;
-    clear: both;
-}
-
-#SubMenu {
-	padding-right: 20px;
-	clear: both;
-	font-size: 12px;
-	float: right;
-}
-
-.upgrade-notification {
-	width: 600px; 
-	text-align: center; 
-	margin-left: auto; 
-	margin-right: auto; 
-	margin-top: 50px; 
-	margin-bottom: 0px;
-}
-
 [class^="menu-icon-"], [class*=" menu-icon-"] {
-    background: url("../images/menu/menu-icons-white.png");
+	background: url("../images/menu/menu-icons-white.png");
 	height: 16px;
 	width: 16px;
 	display: inline-block;
@@ -368,18 +98,6 @@ inc_top.tmpl
 	float: left;
 }
 
-@media(max-width:767px){
-	[class^="menu-icon-"], [class*=" menu-icon-"] {
-		background: url("../images/menu/menu-icons-white.png");
-		height: 16px;
-		width: 16px;
-		display: inline-block;
-		position: relative;
-		top: 2px;
-		float: left;
-	}
-}
-
 .menu-icon-addshow {
 	background-position: 0px 0px;
 }
@@ -461,7 +179,7 @@ inc_top.tmpl
 }
 
 [class^="submenu-icon-"], [class*=" submenu-icon-"] {
-    background: url("../images/menu/menu-icons-white.png");
+	background: url("../images/menu/menu-icons-white.png");
 	height: 16px;
 	width: 16px;
 }
@@ -491,7 +209,7 @@ inc_top.tmpl
 }
 
 /* =======================================================================
-inc_bottom.tmpl
+inc_bottom.mako
 ========================================================================== */
 
 .footer {
@@ -507,47 +225,33 @@ inc_bottom.tmpl
 	display: inline;
 }
 
-
 /* =======================================================================
-home.tmpl
+home.mako
 ========================================================================== */
 
 .imgbanner .banner {
-    border: 1px solid #111;
-    overflow: hidden;
-    height: 66px;
-    overflow: hidden;
-    border-radius: 8px;
-    vertical-align: top;
-    width: 360px;
+	border: 1px solid #111;
+	overflow: hidden;
+	height: 66px;
+	overflow: hidden;
+	border-radius: 8px;
+	vertical-align: top;
+	width: 360px;
 	display: block;
 	margin-left: auto;
 	margin-right: auto;
 }
 
 .imgsmallposter .small {
-    height: 66px;
-    overflow: hidden;
-    border-radius: 3px;
-    vertical-align: middle;
-    width: 45px;
+	height: 66px;
+	overflow: hidden;
+	border-radius: 3px;
+	vertical-align: middle;
+	width: 45px;
 	border: 1px solid #111;
 	margin-right: 5px;
 }
 
-.search {
-	margin-bottom: 10px;
-}
-
-.ui-progressbar {
-	height: 20px;
-	line-height: 18px;
-}
-
-.ui-progressbar .ui-progressbar-value {
-    box-sizing: content-box !important;
-}
-
 .progressbarText {
 	position: absolute;
 	top: 0;
@@ -561,62 +265,8 @@ home.tmpl
 	color: #fff;
 }
 
-.progress-100 {
-	background-image: -moz-linear-gradient(#395f07, #2a4705) !important;
-	background-image: linear-gradient(#395f07, #2a4705) !important;
-	background-image: -webkit-linear-gradient(#395f07, #2a4705) !important;
-	background-image: -o-linear-gradient(#395f07, #2a4705) !important;
-	-moz-border-radius: 3px;
-	-webkit-border-radius: 3px;
-	border-radius: 3px;
-}
-
-.progress-80 {
-	background-image: -moz-linear-gradient(#a6cf41, #5b990d) !important;
-	background-image: linear-gradient(#a6cf41, #5b990d) !important;
-	background-image: -webkit-linear-gradient(#a6cf41, #5b990d) !important;
-	background-image: -o-linear-gradient(#a6cf41, #5b990d) !important;
-	-moz-border-radius: 3px;
-	-webkit-border-radius: 3px;
-	border-radius: 3px;
-}
-
-.progress-60 {
-	background-image: -moz-linear-gradient(#fad440, #f2a70d) !important;
-	background-image: linear-gradient(#fad440, #f2a70d) !important;
-	background-image: -webkit-linear-gradient(#fad440, #f2a70d) !important;
-	background-image: -o-linear-gradient(#fad440, #f2a70d) !important;
-	-moz-border-radius: 3px;
-	-webkit-border-radius: 3px;
-	border-radius: 3px;
-}
-
-.progress-40 {
-	background-image: -moz-linear-gradient(#fab543, #f2700d) !important;
-	background-image: linear-gradient(#fab543, #f2700d) !important;
-	background-image: -webkit-linear-gradient(#fab543, #f2700d) !important;
-	background-image: -o-linear-gradient(#fab543, #f2700d) !important;
-	-moz-border-radius: 3px;
-	-webkit-border-radius: 3px;
-	border-radius: 3px;
-}
-
-.progress-20 {
-	background-image: -moz-linear-gradient(#da5945, #b11a10) !important;
-	background-image: linear-gradient(#da5945, #b11a10) !important;
-	background-image: -webkit-linear-gradient(#da5945, #b11a10) !important;
-	background-image: -o-linear-gradient(#da5945, #b11a10) !important;
-	-moz-border-radius: 3px;
-	-webkit-border-radius: 3px;
-	border-radius: 3px;
-}
-
-#container, #container-anime {
-	margin: 0 auto;
-}
-
 .show {
-    margin: 12px;
+	margin: 12px;
 	width: 188px;
 	height: 352px;
 	background-color: #333;
@@ -624,73 +274,13 @@ home.tmpl
 	border-radius: 6px;
 }
 
-.show-image {
-	overflow: hidden;
-	height: 273px;
-    width: 186px;
-	border-top-left-radius: 5px;
-	border-top-right-radius: 5px;
-}
-
-.show .ui-progressbar {
-	height: 7px !important;
-	top: -2px;
-}
-
-.show .ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br {
-    border-bottom-right-radius: 0px;
-}
-
-.show .ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl {
-    border-bottom-left-radius: 0px;
-}
-
-.show .ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr {
-    border-top-right-radius: 0px;
-}
-
-.show .ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl {
-    border-top-left-radius: 0px;
-}
-
-.show .ui-widget-content {
-    border-top: 1px solid #111;
-	border-bottom: 1px solid #111;
-	border-left: 0px;
-	border-right: 0px;
-}
-
-.show .progress-80 {
-	border-radius: 0px;
-}
-
-.show .progress-60 {
-	border-radius: 0px;
-}
-
-.show .progress-40 {
-	border-radius: 0px;
-}
-
-.show .progress-20 {
-	border-radius: 0px;
-}
-
-.show-title {
-	position: relative;
-	overflow: hidden;
-	white-space: nowrap;
-	font-size: 11px;
-	margin: 4px 4px 0px 4px;
-}
-
 .show-title:after {
 	content: "";
 	pointer-events: none;
 	position: absolute;
 	width: 20px;
 	height: 100%;
-	top: 0; 
+	top: 0;
 	right: 0;
 	background-image: -webkit-linear-gradient(right, rgba(51, 51, 51, 1), rgba(51, 51, 51, 0));
 	background-image: -moz-linear-gradient(right, rgba(51, 51, 51, 1), rgba(51, 51, 51, 0));
@@ -699,21 +289,13 @@ home.tmpl
 	background-image: linear-gradient(to left, rgba(51, 51, 51, 1), rgba(51, 51, 51, 0));
 }
 
-.show-date {
-	position: relative;
-	overflow: hidden;
-	white-space: nowrap;
-	font-size: 11px;
-	margin: 0px 4px 4px 4px;
-}
-
 .show-date:after {
 	content: "";
 	pointer-events: none;
 	position: absolute;
 	width: 20px;
 	height: 100%;
-	top: 0; 
+	top: 0;
 	right: 0;
 	background-image: -webkit-linear-gradient(right, rgba(51, 51, 51, 1), rgba(51, 51, 51, 0));
 	background-image: -moz-linear-gradient(right, rgba(51, 51, 51, 1), rgba(51, 51, 51, 0));
@@ -722,126 +304,33 @@ home.tmpl
 	background-image: linear-gradient(to left, rgba(51, 51, 51, 1), rgba(51, 51, 51, 0));
 }
 
-.show-table {	
-	text-align:center; 
-	vertical-align:middle;
-	width: 33%
-}
-
-.show-add {
-	font-size: 11px;
-	text-align: left;
-	display: block;
-}
-
-.show-status {
-	font-size: 11px;
-	text-align: left;
-	display: block;
-}
-
-.show-network-image {
-	width: 50px;
-	height: auto;
-}
-
-.show-dlstats {
-	font-size: 11px;
-	text-align: left;
-	display: block;
-	margin-left: 4px;
-}
-
-.show-quality {
-	font-size: 11px;
-	text-align: right;
-	display: block;
-	margin-right: 4px;
-}
-
-#sort-by {
-	display: inline;
-	list-style-type: none; 
- 	padding: 0;
-	margin-left: 5px;
-}
-
-#sort-by ul, #sort-by li {
-	display: inline;
-	margin: 0;
-	padding: 0;
-}
-
-.posterview {
-	margin: 0 auto;
-}
-
 td.tvShow a {
-    color: #fff;
-    text-decoration: none;
+	color: #fff;
+	text-decoration: none;
 }
 
 td.tvShow a:hover {
-    cursor: pointer;
-    color: #09A2FF;
+	cursor: pointer;
+	color: #09A2FF;
 }
 
-#popover-target label {
-  margin: 0 5px;
-  display: block;
-}
-#popover-target input {
-  margin-left: 5px;
-}
 .popover {
-  margin-left: -50px;
-  background-color: #333;
+    margin-left: -50px;
+    background-color: #333;
 }
 
 .popover-content {
-  background-color: #333;
+    background-color: #333;
 }
 
 .popover.bottom .arrow:after {
-  border-bottom-color: #333;
+    border-bottom-color: #333;
 }
 
 /* =======================================================================
-home_addShows.tmpl
+home_addShows.mako
 ========================================================================== */
 
-#addShowPortal {
-	width: 700px;
-	padding: 10px 0;
-	margin-right: auto;
-	margin-left: auto;
-}
-
-#addShowPortal  a {
-	padding: 10px;
-}
-
-div.button {
-    display: table-cell;
-    vertical-align: middle;
-	padding-left: 10px;
-}
-
-div.buttontext {
-	display: table-cell;
-	padding-left: 20px;
-	text-align: left;
-	white-space: normal;
-}
-
-div.buttontext h3 {
-	margin-top: 10px;
-}
-
-div.buttontext p {
-	font-size: 13px;
-}
-
 .icon-addnewshow {
 	background-image: url("../images/addshows/add-new32-white.png");
 	width: 32px;
@@ -867,22 +356,8 @@ div.buttontext p {
 }
 
 /* =======================================================================
-home_newShow.tmpl
+home_newShow.mako
 ========================================================================== */
-#addShowForm, #recommendedShowsForm {
-	width: 800px;
-	margin-left: auto;
-	margin-right: auto;
-	padding: 10px 0;
-	font-size:13px;
-}
-
-#newShowPortal {
-	width: 960px;
-	padding: 10px 0;
-	margin-right: auto;
-	margin-left: auto;
-}
 
 #displayText {
 	padding: 8px;
@@ -892,24 +367,10 @@ home_newShow.tmpl
 	border: 1px solid #111;
 }
 
-#searchResults input[type="radio"] {
-    vertical-align: -2px;
-}
-
 /* =======================================================================
-home_addExistingShow.tmpl
+home_addExistingShow.mako
 ========================================================================== */
 
-.existingtabs {
-	padding: 1em 1.4em;
-}
-
-ul#rootDirStaticList {
-    margin-right: auto;
-    margin-left: auto;
-    text-align: left;
-}
-
 ul#rootDirStaticList li {
 	padding: 4px 5px 4px 5px;
 	margin: 2px;
@@ -918,93 +379,22 @@ ul#rootDirStaticList li {
 	background: #3d3d3d;
 }
 
-ul#rootDirStaticList li label {
-    margin-top: 5px;
-	margin-bottom: 5px;
-}
-
-ul#rootDirStaticList li input[type="checkbox"] {
-    vertical-align: -2px;
-}
-
 /* =======================================================================
-home_trendingShows.tmpl
+home_trendingShows.mako
 ========================================================================== */
 
-.traktShowTitleIcons {
-    float: right;
-	padding-right: 4px;
-	padding-bottom: 4px;
-}
-
-.traktContainer p { 
-	padding-top: 2px;
-}
-
-.traktContainer p img { 
-	position: relative;
-	top: -2px;
-}
-
-.traktContainer p, .traktContainer i { 
-    white-space: nowrap;
-	font-size: 12px;
-	overflow: hidden;
-/*	text-shadow: 1px 1px 0px #000;*/
-	padding-left: 4px;
-	margin: 0;
-}
-
 .traktContainer {
-    margin: 12px;
+	margin: 12px;
 	width: 188px;
 	background-color: #333;
 	border: 1px solid #111;
 	border-radius: 6px;
 }
 
-.trakt-image {
-	overflow: hidden;
-	height: 273px;
-    width: 186px;
-	border-top-left-radius: 5px;
-	border-top-right-radius: 5px;
-	border-bottom: 1px solid #111;
-}
-
-
-/* =======================================================================
-home_postprocess.tmpl
-========================================================================== */
-
-#postProcess {
-	width: 800px;
-	padding-top: 10px;
-	margin-right: auto;
-    margin-left: auto;
-}
-
-
 /* =======================================================================
-displayShow.tmpl 
+displayShow.mako
 ========================================================================== */
 
-#posterCol {
-    float: left;
-	margin-right: 10px;
-	margin-bottom: 20px;
-}
-
-#showCol {
-    overflow: hidden;
-	margin-bottom: 20px;
-}
-
-.navShow {
-    display: inline;
-    cursor: pointer;
-}
-
 #prevShow,
 #nextShow,
 #topcontrol {
@@ -1013,71 +403,25 @@ displayShow.tmpl
 }
 
 h1.title {
-    padding-bottom: 12px;
-    margin-bottom: 15px;
-    line-height: 30px;
-    text-align: left;
-    text-rendering: optimizelegibility;
-    border-bottom: 1px solid #555;
+	padding-bottom: 12px;
+	margin-bottom: 15px;
+	line-height: 30px;
+	text-align: left;
+	text-rendering: optimizelegibility;
+	border-bottom: 1px solid #555;
 }
 
-.displayspecials {
-	position: relative; 
-	top: -24px;
-}
-
-#showinfo {
-	cursor: default;
-}
-
-#showinfo { 
-	display: inline-block;
-	position: relative;
-	top: -3px;
-}
-
-span.imdbstars {
-	display: inline-block; 
-	vertical-align: top;
-	cursor: help;
-	margin-top: 4px;
-}
-
-span.imdbstars, span.imdbstars > * {
-    height: 12px; 
-    background: url(../images/rating.png) 0 -12px repeat-x;
-    width: 120px;
-    display: inline-block;
-	vertical-align: top;
-}
-
-span.imdbstars > * {
-    background-position: 0 0;
-    max-width:120px; 
-}
-
-ul.tags {
-    list-style-type: none;
-	position: relative;
-	top: -5px;
-	margin-left: -40px;
-}
-
-ul.tags li {
-    margin-right: 4px;
-	margin-bottom: 5px;
-    padding: 3px 4px 3px 25px;
-	background: url(../images/tag.png) no-repeat scroll 5px 4px #15528F;
-    border-radius: 3px;
-	border: 1px solid #111;
-    color: #FFF;
-    font: 14px/18px "Open Sans", "Helvetica Neue", Helvetica, Arial, Geneva, sans-serif;
-	text-shadow: 0px 1px rgba(0, 0, 0, 0.8);
-    float: left;
-}
-
-ul.tags li a{
-    color: #FFF;
+ul.tags li {
+	margin-right: 4px;
+	margin-bottom: 5px;
+	padding: 3px 4px 3px 25px;
+	background: url(../images/tag.png) no-repeat scroll 5px 4px #15528F;
+	border-radius: 3px;
+	border: 1px solid #111;
+	color: #FFF;
+	font: 14px/18px "Open Sans", "Helvetica Neue", Helvetica, Arial, Geneva, sans-serif;
+	text-shadow: 0px 1px rgba(0, 0, 0, 0.8);
+	float: left;
 }
 
 .tvshowImg {
@@ -1098,127 +442,6 @@ ul.tags li a{
 	cursor: default;
 }
 
-.summaryTable {
-	max-width: 70%;
-	overflow: hidden;
-}
-
-#checkboxControls {
-	padding-top: 5px;
-}
-
-#checkboxControls span {
-	padding: 5px;
-	font-size: 13px;
-	font-weight: bold;
-	border-radius: 5px;
-}
-
-#checkboxControls label {
-    white-space: nowrap;
-    display: inline-block;
-}
-
-#checkboxControls input[type="checkbox"] {
-    vertical-align: -2px;
-}
-
-.unaired {
-  background-color: #f5f1e4;
-}
-.skipped {
-  background-color: #bedeed;
-}
-.good {
-  background-color: #c3e3c8;
-}
-.qual {
-  background-color: #ffda8a;
-}
-.wanted {
-  background-color: #ffb0b0;
-}
-.snatched {
-  background-color: #ebc1ea;
-}
-
-span.unaired {
-  	color: #584b20;
-	border: 1px solid #584b20;
-}
-span.skipped {
-  	color: #1d5068;
-	border: 1px solid #1d5068;
-}
-span.good {
-  	color: #295730;
-	border: 1px solid #295730;
-}
-span.qual {
-  	color: #765100;
-	border: 1px solid #765100;
-}
-span.wanted {
-  	color: #890000;
-	border: 1px solid #890000;
-}
-span.snatched {
-  	color: #652164;
-	border: 1px solid #652164;
-}
-
-span.unaired b,
-span.skipped b,
-span.good b,
-span.qual b,
-span.wanted b,
-span.snatched b {
-  	color: #000000;
-	font-weight: 800;
-}
-
-.plotInfo {
-    cursor: help;
-    float: right;
-    position: relative;
-    top: 2px;
-}
-
-.plotInfoNone {
-    cursor: help;
-    float: right;
-    position: relative;
-    top: 2px;
-	opacity: 0.4;
-}
-
-.displayShowTable {
-	table-layout: auto;
-	width: 100%;
-	border-collapse: collapse;
-	border-spacing: 0;
-	text-align: center;
-	border: none;
-	empty-cells: show;
-	color: #000 !important;
-}
-
-.displayShowTable.display_show {
-	clear:both
-}
-
-.displayShowTable th.row-seasonheader {
-	border: none !important;
-	background-color: #222 !important;
-	color: #fff !important;
-	padding-top: 15px !important;
-	text-align: left !important;
-}
-
-.displayShowTable td.col-search {
-    text-align: center;
-}
-  
 .sickbeardTable {
 	table-layout: auto;
 	width: 100%;
@@ -1237,7 +460,7 @@ span.snatched b {
 	white-space: nowrap;
 }
 
-.sickbeardTable th, 
+.sickbeardTable th,
 .sickbeardTable td {
 	border-top: 1px solid #222;
 	border-left: 1px solid #222;
@@ -1266,130 +489,10 @@ td.col-checkbox {
 	text-align: center;
 }
 
-th.col-checkbox input[type="checkbox"],
-td.col-checkbox input[type="checkbox"] {
-    vertical-align: -2px;
-}
-
-th.col-metadata,
-td.col-metadata {
-	width: 28px;
-}
-
-th.col-ep,
-td.col-ep {
-	width: 50px;
-	white-space: nowrap;
-}
-
-th.col-airdate,
-td.col-airdate {
-	width: 86px;
-	white-space: nowrap;
-}
-
-th.col-name,
-td.col-name {
-	min-width: 100px;
-}
-
-td.col-name {
-	text-align: left;
-}
-
-th.col-subtitles,
-td.col-subtitles {
-	width: 150px;
-	text-align: center;
-}
-
-th.col-status,
-td.col-status {
-	width: 210px;
-	text-align: center;
-}
-
-th.col-legend,
-td.col-legend {
-	width: 80px;
-}
-
-th.col-search,
-td.col-search {
-  width: 46px;
-}
-
-.showLegend {
-	padding-right: 6px;
-	padding-bottom: 1px;
-	width: 150px;
-}
-
-.input-scene {
-    height: 20px;
-    line-height: 1.5;
-    border-radius: 3px;
-}
-
-#editShow {
-    width: 700px;
-    padding-top: 10px;
-    margin-right: auto;
-    margin-left: auto;
-}
-
 /* =======================================================================
-comingEpisodes.tmpl
+comingEpisodes.mako
 ========================================================================== */
 
-.sort_data {
-	display: none;
-}
-
-
-.listing-key {
-    padding: 5px;
-    font-size: 13px;
-    font-weight: bold;
-    border-radius: 5px;
-}
-
-.listing-default {
-	background-color: #f5f1e4;
-}
-
-.listing-current {
-	background-color: #dfd;
-}
-
-.listing-overdue {
-	background-color: #fdd;
-}
-
-.listing-toofar {
-	background-color: #bedeed;
-}
-
-span.listing-default {
-  	color: #826f30;
-	border: 1px solid #826f30;
-}
-
-span.listing-current {
-  	color: #295730;
-	border: 1px solid #295730;
-}
-
-span.listing-overdue {
-  	color: #890000;
-	border: 1px solid #890000;
-}
-
-span.listing-toofar {
-  	color: #1d5068;
-	border: 1px solid #1d5068;
-}
-
 h2.day, h2.network {
 	margin: 10px 0;
 	font-size: 24px;
@@ -1403,13 +506,13 @@ h2.day, h2.network {
 }
 
 .tvshowDiv {
-    display: block;
-    clear: both;
-    border: 1px solid #ccc;
-    margin: auto;
-    padding: 0px;
-    text-align: left;
-    width: 750px;
+	display: block;
+	clear: both;
+	border: 1px solid #ccc;
+	margin: auto;
+	padding: 0px;
+	text-align: left;
+	width: 750px;
 	border-radius: 5px;
 	background: #fff;
 	cursor: default;
@@ -1418,73 +521,7 @@ h2.day, h2.network {
 }
 
 .tvshowDiv a:hover {
-    color: #09A2FF;
-}
-
-.tvshowDiv a, .tvshowDiv a:link, .tvshowDiv a:visited, .tvshowDiv a:hover  {
-	text-decoration: none;
-	background: none;
-}
-
-.tvshowTitle a {
-    color: #000000;
-    float: left; 
-    line-height: 1.4em;
-    font-size: 1.4em;
-    text-shadow: -1px -1px 0 #FFF);
-}
-
-.tvshowTitleIcons {
-    float: right;
-    padding: 3px 5px;
-}
-
-.tvshowDiv td {
-    padding: 5px 10px;
-}
-
-.tvshowDiv td.next_episode {
-    width: 100%;
-    height: 90%;	
-    border-bottom: 1px solid #ccc;
-    vertical-align: top;
-    color: #000;
-}
-
-.bannerThumb {
-    vertical-align: top;
-    height: auto;
-    width: 748px;
-	border-bottom: 1px solid #ccc;
-}
-
-.posterThumb {
-    vertical-align: top;
-    height: auto;
-    width: 180px;
-	border-right: 1px solid #ccc;
-}
-
-.ep_listing {
-    width: auto;
-    border: 1px solid #ccc;
-    margin-bottom: 10px;
-    padding: 10px;
-}
-
-.ep_summary {
-    margin-left: 5px;
-    font-style: italic;
-}
-
-.ep_summaryTrigger {
-	cursor: pointer;
-	vertical-align: middle;
-}
-
-.ep_summaryTriggerNone {
-	opacity: 0.4;
-	vertical-align: middle;
+	color: #09A2FF;
 }
 
 #showListTable td.tvShow a {
@@ -1492,114 +529,43 @@ h2.day, h2.network {
 }
 
 #showListTable td.tvShow a:hover {
-    cursor: pointer;
-    color: #09A2FF;
+	cursor: pointer;
+	color: #09A2FF;
 }
 
 table.cal-odd {
-    background-color: #333;
+	background-color: #333;
 }
+
 table.cal-even {
-    background-color: #3d3d3d;
+	background-color: #3d3d3d;
 }
+
 .calendarShow .text .airtime {
-    color:#fff
+	color:#fff
 }
+
 .calendarShow .text .episode-title {
-    color:#aaa
+	color:#aaa
 }
 
 /* =======================================================================
-config*.tmpl
+config*.mako
 ========================================================================== */
 
-#config-content {
-	display: block;
-	width: 960px;
-	padding: 0 0 40px;
-	margin: 0 auto;
-	clear: both;
-	text-align: left;
-}
-
 .component-group {
 	padding: 15px 15px 25px;
 	border-bottom: 1px dotted #555;
 	min-height: 200px;
 }
 
-.component-item {
-    border-bottom: 1px dotted #666;
-    min-height: 200px;
-}
-
-.component-group-desc{
-	float: left;
-	width: 250px;
-}
-
-.component-group-desc h3{
-	margin-top: 5px;
-}
-
 .component-group-desc p {
 	width: 90%;
 	margin: 10px 0;
 	color: #ddd;
 }
 
-#config div.field-pair {
-	padding: 12px 0px;
-}
-
-#config div.field-pair input {
-	float: left;
-	margin-right: 6px;
-}
-
-#config .nocheck, #config div #customQuality, .metadataDiv {
-	padding-left: 20px;
-}
-
-#config .metadataDiv {
-	display: none;
-}
-
-.component-group-save {
-	float: right;
-	padding-top: 10px;
-}
-
-select .selected {
-	font-weight: 700;
-}
-
-.jumbo {
-	font-size: 15px !important;
-	line-height: 24px;
-}
-
-.testNotification {
-    padding: 5px;
-    margin-bottom: 10px;
-    line-height: 20px;
-    border: 1px dotted #CCC;
-}
-
-#providerOrderList {
-    width: 250px;
-    padding-left: 20px;
-    list-style-type: none;
-}
-
-#provider_order_list, 
-#service_order_list {
-	width: 250px;
-	padding-left: 20px;
-	list-style-type: none;
-}
-
-#provider_order_list li, 
+#provider_order_list li,
 #service_order_list li {
 	padding: 5px;
 	margin: 5px 0;
@@ -1608,64 +574,23 @@ select .selected {
 	color: #fff;
 }
 
-#provider_order_list input, 
-#service_order_list input {
-	margin: 0px 2px;
-}
-
-#config .tip_scale label span.component-title {
-    width: 85px !important;
-    font-size: 12px !important;
-    margin-top: 2px !important;
-}
-
-#config .tip_scale label span.component-desc {
-    margin-left: 120px !important;
-    width: 220px !important;
-}
-
-.infoTableHeader, 
-.infoTableCell {
-	padding: 5px;
-}
-
-.infoTableSeperator { 
-	border-top: 1px dotted #666666; 
-}
-
 [class^="icon16-"], [class*=" icon16-"] {
-    background-image: url("../images/glyphicons-config-white.png");
-    background-position: -40px 0;
-    background-repeat: no-repeat;
-    display: inline-block;
-    height: 16px;
-    line-height: 16px;
-    vertical-align: text-top;
-    width: 16px;
-}
-
-.icon16-github {
-    background-position: 0 0;
-}
-.icon16-mirc {
-    background-position: -20px 0;
-}
-.icon16-sb {
-    background-position: -40px 0;
-}
-.icon16-web {
-    background-position: -60px 0;
-}
-.icon16-win {
-    background-position: -80px 0;
+	background-image: url("../images/glyphicons-config-white.png");
+	background-position: -40px 0;
+	background-repeat: no-repeat;
+	display: inline-block;
+	height: 16px;
+	line-height: 16px;
+	vertical-align: text-top;
+	width: 16px;
 }
 
 /* =======================================================================
-config_postProcessing.tmpl
+config_postProcessing.mako
 ========================================================================== */
 
 #config div.example {
-	padding: 10px; 
+	padding: 10px;
 	background-color: #333333;
 	border: 1px solid #111;
 }
@@ -1688,10 +613,6 @@ config_postProcessing.tmpl
 	background: #15528F;
 }
 
-.Key td {
-	padding: 1px 5px !important;
-}
-
 .Key tr {
 	border-bottom: 1px solid #111;
 }
@@ -1700,25 +621,10 @@ config_postProcessing.tmpl
 	background-color: #333;
 }
 
-.legend {
-	position: relative;
-	top: 2px;
-}
-
 /* =======================================================================
-config_notifications.tmpl
+config_notifications.mako
 ========================================================================== */
 
-div.metadata_options_wrapper {
-	float: left;
-	width: 190px;
-}
-
-div.metadata_example_wrapper {
-	float: right;
-	width: 325px;
-}
-
 div.metadata_options {
 	padding: 7px;
 	overflow: auto;
@@ -1740,10 +646,6 @@ div.metadata_options label {
 	color: #fff;
 }
 
-div.metadata_example {
-	padding: 8px;
-}
-
 div.metadata_example label {
 	display: block;
 	line-height: 21px;
@@ -1751,78 +653,18 @@ div.metadata_example label {
 	cursor: pointer;
 }
 
-div.metadataDiv .disabled {
-	color: #ccc;
-}
-
-.notifier-icon {
-    float: left;
-    margin: 6px 4px 0px 0px;
-}
-
-.warning {
-	border-color: #F89406;
-	background: url("../images/warning16.png") no-repeat right 5px center #fff;
-}
-
 /* =======================================================================
-manage*.tmpl
+manage*.mako
 ========================================================================== */
 
-.manageTable th {
-	white-space: normal;
-	line-height: 24px;
-}
-
-.manageTable td.tableright {
-	text-align: left;
-}
-
-td.tableright {
-	text-align: center;
-}
-
-.optionWrapper {
-	width: 450px;
-	margin-left: auto;
-	margin-right: auto;
-	padding: 6px 12px;
-}
-
-.optionWrapper span.selectTitle {
-	float: left;
-	text-align: left;
-	vertical-align: middle;
-	width: 225px;
-	padding: 6px 0px;
-}
-
-.optionWrapper div.selectChoices {
-	float: left;
-	width: 175px;
-	margin-left: 25px;
-}
-
-.optionWrapper br {
-	clear: both;
-}
-
-.manageCustom {
-	text-align: center;
-	padding: 6px;
-	margin-left: 25px;
-}
-
 .separator {
 	font-size: 90%;
 	color: #fff;
 }
 
 a.whitelink {
-
 }
 
-
 /* =======================================================================
 Global
 ========================================================================== */
@@ -1833,211 +675,27 @@ span.path {
 	background-color: #333;
 }
 
-.align-left {
-	text-align: left;
-}
-
-
-span.quality {
-	font: 12px/13px "Open Sans", verdana, sans-serif;
-	background-image:-webkit-linear-gradient(top, rgba(255,255,255,0.08),rgba(255,255,255,0) 50%,rgba(0,0,0,0) 50%,rgba(0,0,0,0.25));
-	background-image:-moz-linear-gradient(top, rgba(255,255,255,0.08),rgba(255,255,255,0) 50%,rgba(0,0,0,0) 50%,rgba(0,0,0,0.25));
-	background-image:-o-linear-gradient(top, rgba(255,255,255,0.08),rgba(255,255,255,0) 50%,rgba(0,0,0,0) 50%,rgba(0,0,0,0.25));
-	background-image:linear-gradient(to bottom, rgba(255,255,255,0.08),rgba(255,255,255,0) 50%,rgba(0,0,0,0) 50%,rgba(0,0,0,0.25));
-	-webkit-box-shadow:inset 0 1px rgba(255,255,255,0.1),inset 0 -1px 3px rgba(0,0,0,0.3),inset 0 0 0 1px rgba(255,255,255,0.08),0 1px 2px rgba(0,0,0,0.15);
-	box-shadow:inset 0 1px rgba(255,255,255,0.1),inset 0 -1px 3px rgba(0,0,0,0.3),inset 0 0 0 1px rgba(255,255,255,0.08),0 1px 2px rgba(0,0,0,0.15);
-	text-shadow: 0px 1px rgba(0, 0, 0, 0.8);
-	color: #FFFFFF;
-	display: inline-block;
-	padding: 2px 4px;
-	text-align: center;
-	vertical-align: baseline;
-	-webkit-border-radius: 4px;
-	-moz-border-radius: 4px;
-	border-radius: 4px;
-}
-
-span.Custom {
-	background-color: #621993;
-}
-
-span.HD {
-	background-color: #2672B6;
-}
-
-span.HDTV {
-	background-color: #2672B6;
-}
-
-span.HD720p {
-	background-color: #5b990d;
-}
-
-span.HD1080p {
-	background-color: #2672B6;
-}
-
-span.RawHD {
-	background-color: #cd7300;
-}
-
-span.RawHDTV {
-	background-color: #cd7300;
-}
-
-span.SD {
-	background-color: #BE2625;
-}
-
-span.SDTV {
-	background-color: #BE2625;
-}
-
-span.Any {
-	background-color: #666;
-}
-
-span.Unknown {
-	background-color: #999;
-}
-
-span.Proper {
-	background-color: #3F7F00;
-}
-
-span.false {
-	color: #993333;
-	/* red */
-}
-
-span.true {
-	color: #669966;
-	/* green */
-}
-
-option.flag {
-	padding-left: 35px;
-	background-repeat: no-repeat;
-	background-position: 10px 50%;
-}
-
-/* Anime section for editShow */
-.bwlWrapper {
-	height:auto;
-	margin: 0 auto;
-}
-
-#Anime {
-    clear: both;
-    overflow-x: hidden; 
-    overflow-y: hidden;
-    font-size: 14px;
-}
-
-#Anime div.component-group-desc {
-    float: left;
-    width: 165px;
-}
-
-#Anime div.component-group-desc p {
-    margin-bottom: 0.4em;
-    margin-left: 0;
-    margin-right: 0;
-    margin-top: 0.4em;
-    width: 95%;
-}
-
-div.blackwhitelist{
-	float:left;
-	text-align: center; 
-}
-div.blackwhitelist input {
-    margin: 5px 0px;
-}
-div.blackwhitelist.pool select{
-    min-width: 230px;
-}
-div.blackwhitelist.white select, div.blackwhitelist.black select {
-	min-width: 150px;
-}
-div.blackwhitelist span {
-	display: block;
-	text-align: center;
-}
-div.blackwhitelist.anidb, div.blackwhitelist.manual {
-	margin: 7px 0px;
-}
-
-
 /* =======================================================================
 bootstrap Overrides
 ========================================================================== */
 
-body { 
-	padding-top: 60px; 
+body {
+	padding-top: 60px;
 	overflow-y: scroll;
 	font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
 	color: #fff;
 	background-color: #222;
 }
 
-html * { 
-	outline: 0 !important; 
-}
-
-
-input[type="radio"] {
-    margin: 2px 0px 0px;
-    line-height: normal;
-}
-
-input, textarea, select, .uneditable-input {
-	width: auto;
-	color: #000;
-}
-
-.container-fluid {
-    margin-left: 10px;
-	margin-right: 10px;
-}
-
-.navbar-brand {
-    padding: 0px;
-}
-
 /* navbar styling */
 .navbar-default {
-    background-color: #15528F;
-    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#297AB8', endColorstr='#15528F');
-    background: -webkit-gradient(linear, left top, left bottom, from(#297AB8), to(#15528F));
-    background: -moz-linear-gradient(top,  #297AB8,  #15528F);
+	background-color: #15528F;
+	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#297AB8', endColorstr='#15528F');
+	background: -webkit-gradient(linear, left top, left bottom, from(#297AB8), to(#15528F));
+	background: -moz-linear-gradient(top,  #297AB8,  #15528F);
 	border-color: #3e3f3a;
 }
 
-.navbar-default .navbar-brand {
-	color: #ffffff;
-}
-
-.navbar-default .navbar-brand:hover,
-.navbar-default .navbar-brand:focus {
-	color: #ffffff;
-	background-color: transparent;
-}
-
-.navbar-default .navbar-text {
-	color: #dddddd;
-}
-
-.navbar-default .navbar-nav > li > a {
-	color: #dddddd;
-}
-
-.navbar-default .navbar-nav > li > a:hover,
-.navbar-default .navbar-nav > li > a:focus {
-	color: #ffffff;
-	background-color: transparent;
-}
-
 .navbar-default .navbar-nav > .active > a,
 .navbar-default .navbar-nav > .active > a:hover,
 .navbar-default .navbar-nav > .active > a:focus {
@@ -2045,17 +703,6 @@ input, textarea, select, .uneditable-input {
 	background-color: #124477;
 }
 
-.navbar-default .navbar-nav > .disabled > a,
-.navbar-default .navbar-nav > .disabled > a:hover,
-.navbar-default .navbar-nav > .disabled > a:focus {
-	color: #cccccc;
-	background-color: transparent;
-}
-
-.navbar-default .navbar-toggle {
-	border-color: #cccccc;
-}
-
 .navbar-default .navbar-toggle:hover,
 .navbar-default .navbar-toggle:focus {
 	background-color: #124477;
@@ -2065,11 +712,6 @@ input, textarea, select, .uneditable-input {
 	background-color: #124477;
 }
 
-.navbar-default .navbar-collapse,
-.navbar-default .navbar-form {
-	border-color: #3e3f3a;
-}
-
 .navbar-default .navbar-nav > .open > a,
 .navbar-default .navbar-nav > .open > a:hover,
 .navbar-default .navbar-nav > .open > a:focus {
@@ -2078,77 +720,29 @@ input, textarea, select, .uneditable-input {
 }
 
 @media (max-width: 767px) {
-  .navbar-default .navbar-nav .open .dropdown-menu > li > a {
-		color: #dddddd;
-  }
-  .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
-  .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
-		color: #ffffff;
-		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: #ffffff;
-		background-color: #124477;
-  }
-  .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: #cccccc;
-		background-color: transparent;
-  }
-}
-
-.navbar-default .navbar-link {
-	color: #dddddd;
-}
-
-.navbar-default .navbar-link:hover {
-	color: #ffffff;
-}
-
-.navbar-default .btn-link {
-	color: #98978b;
-}
-
-.navbar-default .btn-link:hover,
-.navbar-default .btn-link:focus {
-	color: #dddddd;
-}
-
-.navbar-default .btn-link[disabled]:hover,
-fieldset[disabled] .navbar-default .btn-link:hover,
-.navbar-default .btn-link[disabled]:focus,
-fieldset[disabled] .navbar-default .btn-link:focus {
-	color: #cccccc;
+    .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: #ffffff;
+        background-color: #124477;
+    }
 }
 
 .dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus {
-    color: #fff;
-    text-decoration: none;
-    background-color: #15528F;
+	color: #fff;
+	text-decoration: none;
+	background-color: #15528F;
 }
 
 .dropdown-menu > li > a {
-    padding: 4px 36px 4px 20px;
+	padding: 4px 36px 4px 20px;
 	color: #fff;
 }
 
 .dropdown-menu {
-    background-color: #333;
-    border: 1px solid rgba(0, 0, 0, 0.15);
-    box-shadow: 0px 6px 12px rgba(0, 0, 0, 0.176);
-}
-
-.form-control {
-    color: #000000;
-}
-
-.form-control-inline {
-    min-width: 0;
-    width: auto;
-    display: inline;
+	background-color: #333;
+	border: 1px solid rgba(0, 0, 0, 0.15);
+	box-shadow: 0px 6px 12px rgba(0, 0, 0, 0.176);
 }
 
 .btn {
@@ -2175,324 +769,79 @@ fieldset[disabled] .navbar-default .btn-link:focus {
 	background-image: -moz-linear-gradient(top, #297AB8, #15528F);
 	background-repeat: repeat-x;
 	border: 1px solid #111;
-	*border: 0;
-	border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-	border-color: #111 #111 #111;
-	border-bottom-color: #111;
-	-webkit-border-radius: 4px;
-	-moz-border-radius: 4px;
-	border-radius: 4px;
-	filter: progid:dximagetransform.microsoft.gradient(startColorstr='#297AB8', endColorstr='#15528F', GradientType=0);
-	filter: progid:dximagetransform.microsoft.gradient(enabled=false);
-	*zoom: 1;
-	-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.0), 0 1px 2px rgba(0, 0, 0, 0.05);
-    -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.0), 0 1px 2px rgba(0, 0, 0, 0.05);
-    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.0), 0 1px 2px rgba(0, 0, 0, 0.05);
-}
-
-.btn:hover,
-.btn:active,
-.btn.active,
-.btn.disabled,
-.btn[disabled] {
-	background-color: #2672B6;
-	*background-color: #2672B6;
-	color: #fff;
-}
-
-.btn:active,
-.btn.active {
-	background-color: #cccccc \9;
-	color: #fff;
-}
-
-.btn:first-child {
-	*margin-left: 0;
-}
-
-.btn:hover {
-	color: #fff;
-	text-decoration: none;
-	background-color: #2672B6;
-	*background-color: #2672B6;
-	background-position: 0 -150px;
-	-webkit-transition: background-position 0.0s linear;
-    -moz-transition: background-position 0.0s linear;
-    -ms-transition: background-position 0.0s linear;
-    -o-transition: background-position 0.0s linear;
-    transition: background-position 0.0s linear;
-}
-
-.btn:focus {
-	outline: thin dotted #333;
-	outline: 5px auto -webkit-focus-ring-color;
-	outline-offset: -2px;
-	color: #fff;
-}
-
-.btn.active,
-.btn:active {
-	background-color: #2672B6;
-	background-color: #2672B6 \9;
-	background-image: none;
-	color: #fff;
-	outline: 0;
-	-webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
-    -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
-    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
-}
-
-.btn.disabled,
-.btn[disabled] {
-	cursor: default;
-	background-color: #15528F;
-	background-image: none;
-	opacity: 0.65;
-	filter: alpha(opacity=65);
-	-webkit-box-shadow: none;
-    -moz-box-shadow: none;
-    box-shadow: none;
-}
-
-.btn-large {
-	padding: 9px 14px;
-	font-size: 15px;
-	line-height: normal;
-	-webkit-border-radius: 5px;
-    -moz-border-radius: 5px;
-    border-radius: 5px;
-}
-
-.btn-large [class^="icon-"] {
-	margin-top: 1px;
-}
-
-.btn-small {
-	padding: 5px 9px;
-	font-size: 11px;
-	line-height: 16px;
-}
-
-.btn-small [class^="icon-"] {
-	margin-top: -1px;
-}
-
-.btn-mini {
-	padding: 2px 6px;
-	font-size: 11px;
-	line-height: 14px;
-}
-
-.btn-primary,
-.btn-primary:hover,
-.btn-warning,
-.btn-warning:hover,
-.btn-danger,
-.btn-danger:hover,
-.btn-success,
-.btn-success:hover,
-.btn-info,
-.btn-info:hover,
-.btn-inverse,
-.btn-inverse:hover {
-	color: #ffffff;
-	text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
-}
-
-.btn-primary.active,
-.btn-warning.active,
-.btn-danger.active,
-.btn-success.active,
-.btn-info.active,
-.btn-inverse.active {
-	color: rgba(255, 255, 255, 1.0);
-}
-
-.btn-primary {
-	background-color: #0074cc;
-	*background-color: #0055cc;
-	background-image: -ms-linear-gradient(top, #0088cc, #0055cc);
-	background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0055cc));
-	background-image: -webkit-linear-gradient(top, #0088cc, #0055cc);
-	background-image: -o-linear-gradient(top, #0088cc, #0055cc);
-	background-image: -moz-linear-gradient(top, #0088cc, #0055cc);
-	background-image: linear-gradient(top, #0088cc, #0055cc);
-	background-repeat: repeat-x;
-	border-color: #0055cc #0055cc #003580;
-	border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-	filter: progid:dximagetransform.microsoft.gradient(startColorstr='#0088cc', endColorstr='#0055cc', GradientType=0);
-	filter: progid:dximagetransform.microsoft.gradient(enabled=false);
-}
-
-.btn-primary:hover,
-.btn-primary:active,
-.btn-primary.active,
-.btn-primary.disabled,
-.btn-primary[disabled] {
-	background-color: #0055cc;
-	*background-color: #004ab3;
-}
-
-.btn-primary:active,
-.btn-primary.active {
-	background-color: #004099 \9;
-}
-
-.btn-warning {
-	background-color: #faa732;
-	*background-color: #f89406;
-	background-image: -ms-linear-gradient(top, #fbb450, #f89406);
-	background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));
-	background-image: -webkit-linear-gradient(top, #fbb450, #f89406);
-	background-image: -o-linear-gradient(top, #fbb450, #f89406);
-	background-image: -moz-linear-gradient(top, #fbb450, #f89406);
-	background-image: linear-gradient(top, #fbb450, #f89406);
-	background-repeat: repeat-x;
-	border-color: #f89406 #f89406 #ad6704;
-	border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-	filter: progid:dximagetransform.microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);
-	filter: progid:dximagetransform.microsoft.gradient(enabled=false);
-}
-
-.btn-warning:hover,
-.btn-warning:active,
-.btn-warning.active,
-.btn-warning.disabled,
-.btn-warning[disabled] {
-	background-color: #f89406;
-	*background-color: #df8505;
-}
-
-.btn-warning:active,
-.btn-warning.active {
-	background-color: #c67605 \9;
-}
-
-.btn-danger {
-	background-color: #da4f49;
-	*background-color: #bd362f;
-	background-image: -ms-linear-gradient(top, #ee5f5b, #bd362f);
-	background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));
-	background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f);
-	background-image: -o-linear-gradient(top, #ee5f5b, #bd362f);
-	background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f);
-	background-image: linear-gradient(top, #ee5f5b, #bd362f);
-	background-repeat: repeat-x;
-	border-color: #bd362f #bd362f #802420;
-	border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-	filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#bd362f', GradientType=0);
-	filter: progid:dximagetransform.microsoft.gradient(enabled=false);
-}
-
-.btn-danger:hover,
-.btn-danger:active,
-.btn-danger.active,
-.btn-danger.disabled,
-.btn-danger[disabled] {
-	background-color: #bd362f;
-	*background-color: #a9302a;
-}
-
-.btn-danger:active,
-.btn-danger.active {
-	background-color: #942a25 \9;
-}
-
-.btn-success {
-	background-color: #5bb75b;
-	*background-color: #51a351;
-	background-image: -ms-linear-gradient(top, #62c462, #51a351);
-	background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));
-	background-image: -webkit-linear-gradient(top, #62c462, #51a351);
-	background-image: -o-linear-gradient(top, #62c462, #51a351);
-	background-image: -moz-linear-gradient(top, #62c462, #51a351);
-	background-image: linear-gradient(top, #62c462, #51a351);
-	background-repeat: repeat-x;
-	border-color: #51a351 #51a351 #387038;
-	border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-	filter: progid:dximagetransform.microsoft.gradient(startColorstr='#62c462', endColorstr='#51a351', GradientType=0);
-	filter: progid:dximagetransform.microsoft.gradient(enabled=false);
-}
-
-.btn-success:hover,
-.btn-success:active,
-.btn-success.active,
-.btn-success.disabled,
-.btn-success[disabled] {
-	background-color: #51a351;
-	*background-color: #499249;
-}
-
-.btn-success:active,
-.btn-success.active {
-	background-color: #408140 \9;
-}
-
-.btn-info {
-	background-color: #49afcd;
-	*background-color: #2f96b4;
-	background-image: -ms-linear-gradient(top, #5bc0de, #2f96b4);
-	background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));
-	background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4);
-	background-image: -o-linear-gradient(top, #5bc0de, #2f96b4);
-	background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4);
-	background-image: linear-gradient(top, #5bc0de, #2f96b4);
-	background-repeat: repeat-x;
-	border-color: #2f96b4 #2f96b4 #1f6377;
+	*border: 0;
 	border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-	filter: progid:dximagetransform.microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0);
+	border-color: #111 #111 #111;
+	border-bottom-color: #111;
+	-webkit-border-radius: 4px;
+	-moz-border-radius: 4px;
+	border-radius: 4px;
+	filter: progid:dximagetransform.microsoft.gradient(startColorstr='#297AB8', endColorstr='#15528F', GradientType=0);
 	filter: progid:dximagetransform.microsoft.gradient(enabled=false);
+	*zoom: 1;
+	-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.0), 0 1px 2px rgba(0, 0, 0, 0.05);
+	-moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.0), 0 1px 2px rgba(0, 0, 0, 0.05);
+	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.0), 0 1px 2px rgba(0, 0, 0, 0.05);
 }
 
-.btn-info:hover,
-.btn-info:active,
-.btn-info.active,
-.btn-info.disabled,
-.btn-info[disabled] {
-	background-color: #2f96b4;
-	*background-color: #2a85a0;
+.btn:hover,
+.btn:active,
+.btn.active,
+.btn.disabled,
+.btn[disabled] {
+	background-color: #2672B6;
+	*background-color: #2672B6;
+	color: #fff;
 }
 
-.btn-info:active,
-.btn-info.active {
-	background-color: #24748c \9;
+.btn:active,
+.btn.active {
+	background-color: #cccccc \9;
+	color: #fff;
 }
 
-.btn-inverse {
-	background-color: #414141;
-	*background-color: #222222;
-	background-image: -ms-linear-gradient(top, #555555, #222222);
-	background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#555555), to(#222222));
-	background-image: -webkit-linear-gradient(top, #555555, #222222);
-	background-image: -o-linear-gradient(top, #555555, #222222);
-	background-image: -moz-linear-gradient(top, #555555, #222222);
-	background-image: linear-gradient(top, #555555, #222222);
-	background-repeat: repeat-x;
-	border-color: #222222 #222222 #000000;
-	border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-	filter: progid:dximagetransform.microsoft.gradient(startColorstr='#555555', endColorstr='#222222', GradientType=0);
-	filter: progid:dximagetransform.microsoft.gradient(enabled=false);
+.btn:hover {
+	color: #fff;
+	text-decoration: none;
+	background-color: #2672B6;
+	*background-color: #2672B6;
+	background-position: 0 -150px;
+	-webkit-transition: background-position 0.0s linear;
+	-moz-transition: background-position 0.0s linear;
+	-ms-transition: background-position 0.0s linear;
+	-o-transition: background-position 0.0s linear;
+	transition: background-position 0.0s linear;
 }
 
-.btn-inverse:hover,
-.btn-inverse:active,
-.btn-inverse.active,
-.btn-inverse.disabled,
-.btn-inverse[disabled] {
-	background-color: #222222;
-	*background-color: #151515;
+.btn:focus {
+	outline: thin dotted #333;
+	outline: 5px auto -webkit-focus-ring-color;
+	outline-offset: -2px;
+	color: #fff;
 }
 
-.btn-inverse:active,
-.btn-inverse.active {
-	background-color: #080808 \9;
+.btn.active,
+.btn:active {
+	background-color: #2672B6;
+	background-color: #2672B6 \9;
+	background-image: none;
+	color: #fff;
+	outline: 0;
+	-webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
+	-moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
+	box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
 }
 
-.btn-xs {
-    padding: 1px 5px;
-    font-size: 12px;
-    line-height: 1.5;
-    border-radius: 3px;
+.btn.disabled,
+.btn[disabled] {
+	cursor: default;
+	background-color: #15528F;
+	background-image: none;
+	opacity: 0.65;
+	filter: alpha(opacity=65);
+	-webkit-box-shadow: none;
+	-moz-box-shadow: none;
+	box-shadow: none;
 }
 
 @media(min-width:768px){
@@ -2508,84 +857,16 @@ fieldset[disabled] .navbar-default .btn-link:focus {
 	}
 }
 
-label {
-    font-weight: normal;
-}
-
 pre {
-    color: #fff;
-    background-color: #3d3d3d;
-    border-color: #111;
-}
-
-.alert {
-	padding: 10px;
-	text-align: center;
-}
-
-/* =======================================================================
-input sizing (for config pages)
-========================================================================== */
-
-#config select {
-    min-width: 0;
-    width: auto;
-    display: inline;
-	margin-top: -4px;
-}
-
-.btn-inline {
- 	margin-top: -3px;
-}
-
-.input75 {
-	width: 75px;
-	margin-top: -4px;
-}
-
-.input100 {
-	width: 100px;
-	margin-top: -4px;
-}
-
-.input150 {
-	width: 150px;
-	margin-top: -4px;
-}
-
-.input200 {
-	width: 200px;
-	margin-top: -4px;
-}
-
-.input250 {
-	width: 250px;
-	margin-top: -4px;
-}
-
-.input300 {
-	width: 300px;
-	margin-top: -4px;
-}
-
-.input350 {
-	width: 350px;
-	margin-top: -4px;
+	color: #fff;
+	background-color: #3d3d3d;
+	border-color: #111;
 }
 
 /* =======================================================================
-browser.css
+browser.css overrides
 ========================================================================== */
 
-#fileBrowserDialog {
-	overflow-y: auto;
-}
-
-#fileBrowserDialog ul {
-	padding: 0;
-	margin: 0;
-}
-
 #fileBrowserDialog ul li {
 	margin: 2px 0;
 	list-style-type: none;
@@ -2593,116 +874,29 @@ browser.css
 	background: #333;
 }
 
-#fileBrowserDialog ul li a {
-	display: block;
-	padding: 4px 0;
-}
-
 #fileBrowserDialog ul li a:hover {
 	color: #09a2ff;
 	background: none;
 }
 
-#fileBrowserDialog ul li a span.ui-icon {
-	float: left;
-	margin: 0 4px;
-}
-
-#fileBrowserDialog h2 {
-	font-size: 20px;
-}
-
-.ui-autocomplete {
-	max-height: 180px;
-	overflow-x: hidden;
-	overflow-y: auto;
-}
-
-/* IE6 hack since it doesn't support max-height */
-* html .ui-autocomplete {
-	height: 180px;
-	padding-right: 20px;
-}
-
-.ui-menu .ui-menu-item {
-	background-color: #eee;
-}
-
-.ui-menu .ui-menu-item-alternate {
-	background-color: #fff;
-}
-
-.ui-autocomplete .ui-menu-item .ui-state-focus {
-	color: #fff;
-	background: none;
-	background-color: #0a246a;
-}
-
-/* restore 1.8.x resize handle on dialog button pane */
-.ui-dialog .ui-resizable-se {
-	width: 14px;
-	height: 14px;
-	right: 3px;
-	bottom: 3px;
-	background-position: -80px -224px;
-}
-
-
 /* =======================================================================
 formWizard.css
 ========================================================================== */
 
-fieldset.sectionwrap {
-	width: 800px;
-	padding: 5px;
-	text-align: left;
-	border-width: 0;
-}
-
 legend.legendStep {
 	color: #ffffff;
 	margin-bottom: 0px;
 }
 
-div.stepsguide {
-	margin-bottom: 15px;
-	overflow: hidden;
-	text-align: left;
-	cursor: pointer;
-}
-
-div.stepsguide .step {
-	float: left;
-	width: 33%;
-	font: bold 24px Arial;
-}
-
 div.stepsguide .step p {
 	margin: 12px 0;
 	border-bottom: 4px solid #23AFDC;
 }
 
-div.stepsguide .disabledstep {
-	color: #c4c4c4;
-}
-
 div.stepsguide .disabledstep p {
 	border-bottom: 4px solid #1178B3;
 }
 
-div.stepsguide .step .smalltext {
-	font-size: 13px;
-	font-weight: normal;
-}
-
-div.formpaginate {
-	width: 800px;
-	margin-top: 1em;
-	overflow: auto;
-	font-weight: bold;
-	text-align: center;
-}
-
 div.formpaginate .prev, div.formpaginate .next {
 	padding: 3px 6px;
 	color: #fff;
@@ -2714,31 +908,6 @@ div.formpaginate .prev, div.formpaginate .next {
 			border-radius: 6px;
 }
 
-.stepDiv {
-	padding: 15px 0;
-}
-
-/* step 3 related */
-#customQuality {
-	display: block;
-	padding: 10px 0;
-	overflow: hidden;
-	clear: both;
-}
-
-#customQualityWrapper div.component-group-desc {
-	float: left;
-	width: 172px;
-	margin-right: 10px;
-}	
-
-#customQualityWrapper div.component-group-desc p {
-	width: 85%;
-	margin: .8em 0;
-	font-size: 1.13em;
-	color: #666;
-}
-
 /* =======================================================================
 pnotify.css
 ========================================================================== */
@@ -2787,12 +956,6 @@ tablesorter.css
 	vertical-align: middle;
 }
 
-/* remove extra border from left edge */
-.tablesorter th:first-child,
-.tablesorter td:first-child {
-	border-left: none;
-}
-
 .tablesorter th {
 	color: #fff;
 	text-align: center;
@@ -2802,15 +965,6 @@ tablesorter.css
 	font-weight: normal;
 }
 
-.tablesorter .tablesorter-header {
-	padding: 4px 18px 4px 18px;
-	cursor: pointer;
-	background-image: url(data:image/gif;base64,R0lGODlhFQAJAIAAAP///////yH5BAEAAAEALAAAAAAVAAkAAAIXjI+AywnaYnhUMoqt3gZXPmVg94yJVQAAOw==);
-	background-position: center right;
-	background-repeat: no-repeat;
-	/* background-image: url(../images/tablesorter/bg.gif); */
-}
-
 .tablesorter thead .tablesorter-headerDesc {
 	background-color: #297AB8;
 	background-image: url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjB+gC+jP2ptn0WskLQA7);
@@ -2823,12 +977,6 @@ tablesorter.css
 	/* background-image: url(../images/tablesorter/desc.gif); */
 }
 
-.tablesorter thead .sorter-false {
-	background-image: none;
-	padding: 4px;
-	cursor: default;
-}
-
 thead.tablesorter-stickyHeader {
 	border-top: 2px solid #222;
 	border-bottom: 2px solid #222;
@@ -2843,18 +991,6 @@ thead.tablesorter-stickyHeader {
 	background-color: #2e2e2e;
 }
 
-/* filter widget */
-.tablesorter .filtered {
-	display: none;
-}
-.tablesorter input.tablesorter-filter {
-	width: 98%;
-	height: auto;
-	-webkit-box-sizing: border-box;
-		-moz-box-sizing: border-box;
-			box-sizing: border-box;
-}
-
 .tablesorter tr.tablesorter-filter-row,
 .tablesorter tr.tablesorter-filter-row td {
 	text-align: center;
@@ -2864,204 +1000,47 @@ thead.tablesorter-stickyHeader {
 
 /* hidden filter row */
 .tablesorter-filter-row.hideme td {
-  /*** *********************************************** ***/
-  /*** change this padding to modify the thickness     ***/
-  /*** of the closed filter row (height = padding x 2) ***/
-  padding: 2px;
-  /*** *********************************************** ***/
-  margin: 0;
-  line-height: 0;
-  cursor: pointer;
-}
-.tablesorter-filter-row.hideme * {
-  height: 1px;
-  min-height: 0;
-  border: 0;
-  padding: 0;
-  margin: 0;
-  /* don't use visibility: hidden because it disables tabbing */
-  opacity: 0;
-  filter: alpha(opacity=0);
-}
-
-/* optional disabled input styling */
-.tablesorter input.tablesorter-filter-row .disabled {
-	display: none;
-}
-
-.tablesorter-header-inner {
-	padding: 0 2px;
-	text-align: center;
-}
-
-.tablesorter tfoot tr {
-	color: #fff;
-	text-align: center;
-	text-shadow: -1px -1px 0 rgba(0,0,0,0.3);
-	background-color: #333;
-	border-collapse: collapse;
+	/*** *********************************************** ***/
+	/*** change this padding to modify the thickness     ***/
+	/*** of the closed filter row (height = padding x 2) ***/
+	padding: 2px;
+	/*** *********************************************** ***/
+	margin: 0;
+	line-height: 0;
+	cursor: pointer;
 }
 
-.tablesorter tfoot a {
-	color:#fff;
-	text-decoration: none;
+.tablesorter-filter-row.hideme * {
+	height: 1px;
+	min-height: 0;
+	border: 0;
+	padding: 0;
+	margin: 0;
+	/* don't use visibility: hidden because it disables tabbing */
+	opacity: 0;
+	filter: alpha(opacity=0);
 }
 
 #showListTable  tbody {
 	color: #000;
 }
 
-
 /* =======================================================================
 token-input.css
 ========================================================================== */
 
-ul.token-input-list {
-    overflow: hidden; 
-    height: auto !important; 
-    height: 1%;
-    width: 273px;
-    border: 1px solid #ccc;
-    cursor: text;
-    font-size: 10px;
-    font-family: Verdana;
-    z-index: 999;
-    margin: 0;
-    padding: 0 0 1px 0;
-    background-color: #fff;
-    list-style-type: none;
-/*    clear: left; */
-    border-top-left-radius: 3px;
-    border-top-right-radius: 3px;
-    border-bottom-left-radius: 3px;
-    border-bottom-right-radius: 3px;
-}
-
-ul.token-input-list li {
-    list-style-type: none;
-}
-
-ul.token-input-list li input {
-    border: 0;
-    padding: 3px 4px;
-    background-color: white;
-/*    -webkit-appearance: caret; */
-}
-
-li.token-input-token {
-    overflow: hidden; 
-    height: auto !important; 
-    height: 1%;
-    margin: 3px;
-    padding: 3px 5px 0 5px;
-    background-color: #d0efa0;
-    color: #000;
-    font-weight: bold;
-    cursor: default;
-    display: block;
-}
-
-li.token-input-token img {
-    padding-top: 7px;
-    padding-right: 4px;
-    float: left;
-}
-
-li.token-input-token input {
-    padding-top: 2px !important;
-    padding-right: 4px !important;
-    float: left;
-}
-
-li.token-input-token p {
-    float: left;
-    padding: 0;
-    margin: 0;
-    line-height: 2.0 !important;
-}
-
-li.token-input-token span {
-    float: right;
-    color: #777;
-    cursor: pointer;
-}
-
-li.token-input-selected-token {
-    background-color: #08844e;
-    color: #fff;
-}
-
-li.token-input-selected-token span {
-    color: #bbb;
-}
-
-li.token-input-input-token input {
-    margin: 3px 3px 3px 3px !important;
-}
-
 div.token-input-dropdown {
-    background-color: #fff;
-    color: #000;
-    border-left-color: #ccc;
-    border-right-color: #ccc;
-    border-bottom-color: #ccc;
-}
-
-div.token-input-dropdown p {
-    margin: 0;
-    padding: 3px;
-    font-weight: bold;
-    color: #777;
-}
-
-div.token-input-dropdown ul {
-    margin: 0;
-    padding: 0;
-}
-
-div.token-input-dropdown ul li {
-    background-color: #fff;
-    padding: 3px;
-    list-style-type: none;
-}
-
-div.token-input-dropdown ul li.token-input-dropdown-item {
-    background-color: #fafafa;
-}
-
-div.token-input-dropdown ul li.token-input-dropdown-item2 {
-    background-color: #fff;
-}
-
-div.token-input-dropdown ul li em {
-    font-weight: bold;
-    font-style: normal;
-}
-
-div.token-input-dropdown ul li.token-input-selected-dropdown-item {
-    background-color: #6196c2;
-}
-
-span.token-input-delete-token {
-    margin: 0 1px;
+	background-color: #fff;
+	color: #000;
+	border-left-color: #ccc;
+	border-right-color: #ccc;
+	border-bottom-color: #ccc;
 }
 
 /* =======================================================================
 jquery.confirm.css
 ========================================================================== */
 
-#confirmOverlay{
-	width: 100%;
-	height: 100%;
-	position: fixed;
-	top: 0;
-	left: 0;
-	background: url('../images/bg.gif');
-	background: -moz-linear-gradient(rgba(0,0,0,0.5), rgba(0,0,0,0.5)) repeat-x rgba(0,0,0,0.5);
-	background:-webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(0,0,0,0.5)), to(rgba(0,0,0,0.5))) repeat-x rgba(0,0,0,0.5);
-	z-index: 100000;
-}
-
 #confirmBox{
 	background: #222;
 	width: 460px;
@@ -3070,75 +1049,22 @@ jquery.confirm.css
 	top: 50%;
 	margin: -130px 0 0 -230px;
 	border: 1px solid #111;
-    box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.175);
-}
-
-#confirmBox h1,
-#confirmBox p{
-	padding: 6px 10px;
+	box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.175);
 }
 
 #confirmBox h1 {
-    background-color: #15528F;
+	background-color: #15528F;
 	border-bottom: 1px solid #111;
 	color: #fff;
-    margin: 0;
-    font-size: 22px;
-    text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.75);
+	margin: 0;
+	font-size: 22px;
+	text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.75);
 }
 
 #confirmBox p {
 	padding-top: 20px;
-    color: #fff;
-    text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.75);
-}
-
-#confirmButtons {
-	padding: 15px 0;
-	text-align: center;
-}
-
-#confirmBox .button {
-	margin-right: 15px;
-	padding: 2px 20px;
-	text-decoration: none;
-	display: inline-block;
 	color: #fff;
-	text-align:center;
 	text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.75);
-	background-clip: padding-box;
-	border: 1px solid #111;
-	border-radius: 3px;
-	cursor: pointer;
-	-webkit-box-sizing: border-box;
-	-moz-box-sizing: border-box;
-	box-sizing: border-box;
-	background-image: -webkit-linear-gradient(top, rgba(255,255,255,0.08),rgba(255,255,255,0) 50%,rgba(0,0,0,0) 51%,rgba(0,0,0,0.25));
-	background-image: -moz-linear-gradient(top, rgba(255,255,255,0.08),rgba(255,255,255,0) 50%,rgba(0,0,0,0) 51%,rgba(0,0,0,0.25));
-	background-image: -o-linear-gradient(top, rgba(255,255,255,0.08),rgba(255,255,255,0) 50%,rgba(0,0,0,0) 51%,rgba(0,0,0,0.25));
-	background-image: linear-gradient(to bottom, rgba(255,255,255,0.08),rgba(255,255,255,0) 50%,rgba(0,0,0,0) 51%,rgba(0,0,0,0.25));
-	-webkit-box-shadow: inset 0 1px rgba(255,255,255,0.1),inset 0 -1px 3px rgba(0,0,0,0.3),inset 0 0 0 1px rgba(255,255,255,0.08),0 1px 2px rgba(0,0,0,0.15);
-	box-shadow: inset 0 1px rgba(255,255,255,0.1),inset 0 -1px 3px rgba(0,0,0,0.3),inset 0 0 0 1px rgba(255,255,255,0.08),0 1px 2px rgba(0,0,0,0.15);
-}
-
-#confirmBox .button:last-child {	
-	margin-right:0;
-}
-
-#confirmBox .green {
-	background-color: #3F7636;
-}
-
-#confirmBox .green:hover {
-	background-color: #48873E;
-}
-
-#confirmBox .red {
-	background-color: #8D2D2B;
-}
-
-#confirmBox .red:hover {
-	background-color: #A13331;
 }
 
 /* =======================================================================
@@ -3146,20 +1072,21 @@ bootstarp modal
 ========================================================================== */
 
 .modal-content {
-  background-color: #3D3D3D;
+    background-color: #3D3D3D;
 }
+
 .modal-body {
-  background-color: #3D3D3D;
+    background-color: #3D3D3D;
 }
 
 .modal-header {
-    padding:9px 15px;
-    border-bottom:1px solid #eee;
-    background-color: #15528F;
-    -webkit-border-top-left-radius: 5px;
-    -webkit-border-top-right-radius: 5px;
-    -moz-border-radius-topleft: 5px;
-    -moz-border-radius-topright: 5px;
-     border-top-left-radius: 5px;
-     border-top-right-radius: 5px;
- }
+	padding:9px 15px;
+	border-bottom:1px solid #eee;
+	background-color: #15528F;
+	-webkit-border-top-left-radius: 5px;
+	-webkit-border-top-right-radius: 5px;
+	-moz-border-radius-topleft: 5px;
+	-moz-border-radius-topright: 5px;
+	 border-top-left-radius: 5px;
+	 border-top-right-radius: 5px;
+}
diff --git a/gui/slick/css/fonts/glyphicons-halflings-regular.eot b/gui/slick/css/fonts/glyphicons-halflings-regular.eot
index 4a4ca865d67e86f961bc6e2ef00bffa4e34bb9ed..b93a4953fff68df523aa7656497ee339d6026d64 100644
Binary files a/gui/slick/css/fonts/glyphicons-halflings-regular.eot and b/gui/slick/css/fonts/glyphicons-halflings-regular.eot differ
diff --git a/gui/slick/css/fonts/glyphicons-halflings-regular.svg b/gui/slick/css/fonts/glyphicons-halflings-regular.svg
index 25691af8f193a67185a696cb6626ea6418ff6a20..94fb5490a2ed10b2c69a4a567a4fd2e4f706d841 100644
Binary files a/gui/slick/css/fonts/glyphicons-halflings-regular.svg and b/gui/slick/css/fonts/glyphicons-halflings-regular.svg differ
diff --git a/gui/slick/css/fonts/glyphicons-halflings-regular.ttf b/gui/slick/css/fonts/glyphicons-halflings-regular.ttf
index 67fa00bf83801d2fa568546b982c80d27f6ef74e..1413fc609ab6f21774de0cb7e01360095584f65b 100644
Binary files a/gui/slick/css/fonts/glyphicons-halflings-regular.ttf and b/gui/slick/css/fonts/glyphicons-halflings-regular.ttf differ
diff --git a/gui/slick/css/fonts/glyphicons-halflings-regular.woff b/gui/slick/css/fonts/glyphicons-halflings-regular.woff
index 8c54182aa5d4d1ab3c9171976b615c1dcb1dc187..9e612858f802245ddcbf59788a0db942224bab35 100644
Binary files a/gui/slick/css/fonts/glyphicons-halflings-regular.woff and b/gui/slick/css/fonts/glyphicons-halflings-regular.woff differ
diff --git a/gui/slick/css/fonts/glyphicons-halflings-regular.woff2 b/gui/slick/css/fonts/glyphicons-halflings-regular.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..64539b54c3751a6d9adb44c8e3a45ba5a73b77f0
Binary files /dev/null and b/gui/slick/css/fonts/glyphicons-halflings-regular.woff2 differ
diff --git a/gui/slick/css/lib/bootstrap-formhelpers-2.3.0.css b/gui/slick/css/lib/bootstrap-formhelpers-2.3.0.css
deleted file mode 100644
index 2def9b4873113d65763e66df654cc7b5e1aeb64e..0000000000000000000000000000000000000000
--- a/gui/slick/css/lib/bootstrap-formhelpers-2.3.0.css
+++ /dev/null
@@ -1,2140 +0,0 @@
-/**
-* bootstrap-formhelpers.js v2.3.0 by @vincentlamanna
-* Copyright 2013 Vincent Lamanna
-* http://www.apache.org/licenses/LICENSE-2.0
-*/
-.bfh-flag-AD,
-.bfh-flag-AE,
-.bfh-flag-AF,
-.bfh-flag-AG,
-.bfh-flag-AI,
-.bfh-flag-AL,
-.bfh-flag-AM,
-.bfh-flag-AN,
-.bfh-flag-AO,
-.bfh-flag-AQ,
-.bfh-flag-AR,
-.bfh-flag-AS,
-.bfh-flag-AT,
-.bfh-flag-AU,
-.bfh-flag-AW,
-.bfh-flag-AX,
-.bfh-flag-AZ,
-.bfh-flag-BA,
-.bfh-flag-BB,
-.bfh-flag-BD,
-.bfh-flag-BE,
-.bfh-flag-BG,
-.bfh-flag-BH,
-.bfh-flag-BI,
-.bfh-flag-BJ,
-.bfh-flag-BL,
-.bfh-flag-BM,
-.bfh-flag-BN,
-.bfh-flag-BO,
-.bfh-flag-BR,
-.bfh-flag-BS,
-.bfh-flag-BT,
-.bfh-flag-BW,
-.bfh-flag-BY,
-.bfh-flag-BZ,
-.bfh-flag-CA,
-.bfh-flag-CD,
-.bfh-flag-CF,
-.bfh-flag-CG,
-.bfh-flag-CH,
-.bfh-flag-CI,
-.bfh-flag-CL,
-.bfh-flag-CM,
-.bfh-flag-CN,
-.bfh-flag-CO,
-.bfh-flag-CR,
-.bfh-flag-CV,
-.bfh-flag-CY,
-.bfh-flag-CZ,
-.bfh-flag-DJ,
-.bfh-flag-DK,
-.bfh-flag-DM,
-.bfh-flag-DO,
-.bfh-flag-DZ,
-.bfh-flag-EC,
-.bfh-flag-EE,
-.bfh-flag-EG,
-.bfh-flag-EH,
-.bfh-flag-ER,
-.bfh-flag-ES,
-.bfh-flag-ET,
-.bfh-flag-EU,
-.bfh-flag-FI,
-.bfh-flag-FJ,
-.bfh-flag-FK,
-.bfh-flag-FM,
-.bfh-flag-FO,
-.bfh-flag-FR,
-.bfh-flag-FX,
-.bfh-flag-GF,
-.bfh-flag-GP,
-.bfh-flag-MQ,
-.bfh-flag-NC,
-.bfh-flag-PF,
-.bfh-flag-PM,
-.bfh-flag-RE,
-.bfh-flag-TF,
-.bfh-flag-WF,
-.bfh-flag-GA,
-.bfh-flag-GB,
-.bfh-flag-GD,
-.bfh-flag-GE,
-.bfh-flag-GG,
-.bfh-flag-GH,
-.bfh-flag-GL,
-.bfh-flag-GM,
-.bfh-flag-GN,
-.bfh-flag-GQ,
-.bfh-flag-GR,
-.bfh-flag-GS,
-.bfh-flag-GT,
-.bfh-flag-GU,
-.bfh-flag-GW,
-.bfh-flag-GY,
-.bfh-flag-HK,
-.bfh-flag-HN,
-.bfh-flag-HR,
-.bfh-flag-HT,
-.bfh-flag-HU,
-.bfh-flag-ID,
-.bfh-flag-IE,
-.bfh-flag-IL,
-.bfh-flag-IM,
-.bfh-flag-IN,
-.bfh-flag-IQ,
-.bfh-flag-IS,
-.bfh-flag-IT,
-.bfh-flag-JE,
-.bfh-flag-JM,
-.bfh-flag-JO,
-.bfh-flag-JP,
-.bfh-flag-KE,
-.bfh-flag-KG,
-.bfh-flag-KH,
-.bfh-flag-KI,
-.bfh-flag-KM,
-.bfh-flag-KN,
-.bfh-flag-KP,
-.bfh-flag-KR,
-.bfh-flag-KV,
-.bfh-flag-KW,
-.bfh-flag-KY,
-.bfh-flag-LA,
-.bfh-flag-LC,
-.bfh-flag-LK,
-.bfh-flag-LR,
-.bfh-flag-LS,
-.bfh-flag-LT,
-.bfh-flag-LU,
-.bfh-flag-LV,
-.bfh-flag-LY,
-.bfh-flag-MA,
-.bfh-flag-ME,
-.bfh-flag-MG,
-.bfh-flag-MH,
-.bfh-flag-ML,
-.bfh-flag-MM,
-.bfh-flag-MP,
-.bfh-flag-MR,
-.bfh-flag-MS,
-.bfh-flag-MT,
-.bfh-flag-MU,
-.bfh-flag-MV,
-.bfh-flag-MW,
-.bfh-flag-MZ,
-.bfh-flag-NA,
-.bfh-flag-NE,
-.bfh-flag-NF,
-.bfh-flag-NG,
-.bfh-flag-NI,
-.bfh-flag-NL,
-.bfh-flag-NO,
-.bfh-flag-NP,
-.bfh-flag-NR,
-.bfh-flag-NZ,
-.bfh-flag-OM,
-.bfh-flag-PA,
-.bfh-flag-PE,
-.bfh-flag-PG,
-.bfh-flag-PH,
-.bfh-flag-PK,
-.bfh-flag-PL,
-.bfh-flag-PN,
-.bfh-flag-PS,
-.bfh-flag-PT,
-.bfh-flag-PW,
-.bfh-flag-PY,
-.bfh-flag-QA,
-.bfh-flag-RS,
-.bfh-flag-RU,
-.bfh-flag-RW,
-.bfh-flag-SA,
-.bfh-flag-SB,
-.bfh-flag-SC,
-.bfh-flag-SD,
-.bfh-flag-SE,
-.bfh-flag-SG,
-.bfh-flag-SH,
-.bfh-flag-SI,
-.bfh-flag-SK,
-.bfh-flag-SM,
-.bfh-flag-SN,
-.bfh-flag-SO,
-.bfh-flag-SR,
-.bfh-flag-SS,
-.bfh-flag-ST,
-.bfh-flag-SV,
-.bfh-flag-SY,
-.bfh-flag-SZ,
-.bfh-flag-TC,
-.bfh-flag-TD,
-.bfh-flag-TG,
-.bfh-flag-TH,
-.bfh-flag-TJ,
-.bfh-flag-TM,
-.bfh-flag-TN,
-.bfh-flag-TP,
-.bfh-flag-TR,
-.bfh-flag-TT,
-.bfh-flag-TV,
-.bfh-flag-TW,
-.bfh-flag-TZ,
-.bfh-flag-UA,
-.bfh-flag-UG,
-.bfh-flag-US,
-.bfh-flag-UY,
-.bfh-flag-UZ,
-.bfh-flag-VC,
-.bfh-flag-VE,
-.bfh-flag-VG,
-.bfh-flag-VI,
-.bfh-flag-VN,
-.bfh-flag-VU,
-.bfh-flag-WS,
-.bfh-flag-YE,
-.bfh-flag-ZA,
-.bfh-flag-ZM,
-.bfh-flag-BF,
-.bfh-flag-CU,
-.bfh-flag-DE,
-.bfh-flag-IR,
-.bfh-flag-KZ,
-.bfh-flag-LB,
-.bfh-flag-LI,
-.bfh-flag-MC,
-.bfh-flag-MD,
-.bfh-flag-MK,
-.bfh-flag-MN,
-.bfh-flag-MO,
-.bfh-flag-MX,
-.bfh-flag-MY,
-.bfh-flag-PR,
-.bfh-flag-RO,
-.bfh-flag-SL,
-.bfh-flag-TO,
-.bfh-flag-VA,
-.bfh-flag-ZW {
-  width: 16px;
-  height: 14px;
-  background: url(../img/bootstrap-formhelpers-countries.flags.png) no-repeat;
-}
-
-.bfh-flag-AD:empty,
-.bfh-flag-AE:empty,
-.bfh-flag-AF:empty,
-.bfh-flag-AG:empty,
-.bfh-flag-AI:empty,
-.bfh-flag-AL:empty,
-.bfh-flag-AM:empty,
-.bfh-flag-AN:empty,
-.bfh-flag-AO:empty,
-.bfh-flag-AQ:empty,
-.bfh-flag-AR:empty,
-.bfh-flag-AS:empty,
-.bfh-flag-AT:empty,
-.bfh-flag-AU:empty,
-.bfh-flag-AW:empty,
-.bfh-flag-AX:empty,
-.bfh-flag-AZ:empty,
-.bfh-flag-BA:empty,
-.bfh-flag-BB:empty,
-.bfh-flag-BD:empty,
-.bfh-flag-BE:empty,
-.bfh-flag-BG:empty,
-.bfh-flag-BH:empty,
-.bfh-flag-BI:empty,
-.bfh-flag-BJ:empty,
-.bfh-flag-BL:empty,
-.bfh-flag-BM:empty,
-.bfh-flag-BN:empty,
-.bfh-flag-BO:empty,
-.bfh-flag-BR:empty,
-.bfh-flag-BS:empty,
-.bfh-flag-BT:empty,
-.bfh-flag-BW:empty,
-.bfh-flag-BY:empty,
-.bfh-flag-BZ:empty,
-.bfh-flag-CA:empty,
-.bfh-flag-CD:empty,
-.bfh-flag-CF:empty,
-.bfh-flag-CG:empty,
-.bfh-flag-CH:empty,
-.bfh-flag-CI:empty,
-.bfh-flag-CL:empty,
-.bfh-flag-CM:empty,
-.bfh-flag-CN:empty,
-.bfh-flag-CO:empty,
-.bfh-flag-CR:empty,
-.bfh-flag-CV:empty,
-.bfh-flag-CY:empty,
-.bfh-flag-CZ:empty,
-.bfh-flag-DJ:empty,
-.bfh-flag-DK:empty,
-.bfh-flag-DM:empty,
-.bfh-flag-DO:empty,
-.bfh-flag-DZ:empty,
-.bfh-flag-EC:empty,
-.bfh-flag-EE:empty,
-.bfh-flag-EG:empty,
-.bfh-flag-EH:empty,
-.bfh-flag-ER:empty,
-.bfh-flag-ES:empty,
-.bfh-flag-ET:empty,
-.bfh-flag-EU:empty,
-.bfh-flag-FI:empty,
-.bfh-flag-FJ:empty,
-.bfh-flag-FK:empty,
-.bfh-flag-FM:empty,
-.bfh-flag-FO:empty,
-.bfh-flag-FR:empty,
-.bfh-flag-FX:empty,
-.bfh-flag-GF:empty,
-.bfh-flag-GP:empty,
-.bfh-flag-MQ:empty,
-.bfh-flag-NC:empty,
-.bfh-flag-PF:empty,
-.bfh-flag-PM:empty,
-.bfh-flag-RE:empty,
-.bfh-flag-TF:empty,
-.bfh-flag-WF:empty,
-.bfh-flag-GA:empty,
-.bfh-flag-GB:empty,
-.bfh-flag-GD:empty,
-.bfh-flag-GE:empty,
-.bfh-flag-GG:empty,
-.bfh-flag-GH:empty,
-.bfh-flag-GL:empty,
-.bfh-flag-GM:empty,
-.bfh-flag-GN:empty,
-.bfh-flag-GQ:empty,
-.bfh-flag-GR:empty,
-.bfh-flag-GS:empty,
-.bfh-flag-GT:empty,
-.bfh-flag-GU:empty,
-.bfh-flag-GW:empty,
-.bfh-flag-GY:empty,
-.bfh-flag-HK:empty,
-.bfh-flag-HN:empty,
-.bfh-flag-HR:empty,
-.bfh-flag-HT:empty,
-.bfh-flag-HU:empty,
-.bfh-flag-ID:empty,
-.bfh-flag-IE:empty,
-.bfh-flag-IL:empty,
-.bfh-flag-IM:empty,
-.bfh-flag-IN:empty,
-.bfh-flag-IQ:empty,
-.bfh-flag-IS:empty,
-.bfh-flag-IT:empty,
-.bfh-flag-JE:empty,
-.bfh-flag-JM:empty,
-.bfh-flag-JO:empty,
-.bfh-flag-JP:empty,
-.bfh-flag-KE:empty,
-.bfh-flag-KG:empty,
-.bfh-flag-KH:empty,
-.bfh-flag-KI:empty,
-.bfh-flag-KM:empty,
-.bfh-flag-KN:empty,
-.bfh-flag-KP:empty,
-.bfh-flag-KR:empty,
-.bfh-flag-KV:empty,
-.bfh-flag-KW:empty,
-.bfh-flag-KY:empty,
-.bfh-flag-LA:empty,
-.bfh-flag-LC:empty,
-.bfh-flag-LK:empty,
-.bfh-flag-LR:empty,
-.bfh-flag-LS:empty,
-.bfh-flag-LT:empty,
-.bfh-flag-LU:empty,
-.bfh-flag-LV:empty,
-.bfh-flag-LY:empty,
-.bfh-flag-MA:empty,
-.bfh-flag-ME:empty,
-.bfh-flag-MG:empty,
-.bfh-flag-MH:empty,
-.bfh-flag-ML:empty,
-.bfh-flag-MM:empty,
-.bfh-flag-MP:empty,
-.bfh-flag-MR:empty,
-.bfh-flag-MS:empty,
-.bfh-flag-MT:empty,
-.bfh-flag-MU:empty,
-.bfh-flag-MV:empty,
-.bfh-flag-MW:empty,
-.bfh-flag-MZ:empty,
-.bfh-flag-NA:empty,
-.bfh-flag-NE:empty,
-.bfh-flag-NF:empty,
-.bfh-flag-NG:empty,
-.bfh-flag-NI:empty,
-.bfh-flag-NL:empty,
-.bfh-flag-NO:empty,
-.bfh-flag-NP:empty,
-.bfh-flag-NR:empty,
-.bfh-flag-NZ:empty,
-.bfh-flag-OM:empty,
-.bfh-flag-PA:empty,
-.bfh-flag-PE:empty,
-.bfh-flag-PG:empty,
-.bfh-flag-PH:empty,
-.bfh-flag-PK:empty,
-.bfh-flag-PL:empty,
-.bfh-flag-PN:empty,
-.bfh-flag-PS:empty,
-.bfh-flag-PT:empty,
-.bfh-flag-PW:empty,
-.bfh-flag-PY:empty,
-.bfh-flag-QA:empty,
-.bfh-flag-RS:empty,
-.bfh-flag-RU:empty,
-.bfh-flag-RW:empty,
-.bfh-flag-SA:empty,
-.bfh-flag-SB:empty,
-.bfh-flag-SC:empty,
-.bfh-flag-SD:empty,
-.bfh-flag-SE:empty,
-.bfh-flag-SG:empty,
-.bfh-flag-SH:empty,
-.bfh-flag-SI:empty,
-.bfh-flag-SK:empty,
-.bfh-flag-SM:empty,
-.bfh-flag-SN:empty,
-.bfh-flag-SO:empty,
-.bfh-flag-SR:empty,
-.bfh-flag-SS:empty,
-.bfh-flag-ST:empty,
-.bfh-flag-SV:empty,
-.bfh-flag-SY:empty,
-.bfh-flag-SZ:empty,
-.bfh-flag-TC:empty,
-.bfh-flag-TD:empty,
-.bfh-flag-TG:empty,
-.bfh-flag-TH:empty,
-.bfh-flag-TJ:empty,
-.bfh-flag-TM:empty,
-.bfh-flag-TN:empty,
-.bfh-flag-TP:empty,
-.bfh-flag-TR:empty,
-.bfh-flag-TT:empty,
-.bfh-flag-TV:empty,
-.bfh-flag-TW:empty,
-.bfh-flag-TZ:empty,
-.bfh-flag-UA:empty,
-.bfh-flag-UG:empty,
-.bfh-flag-US:empty,
-.bfh-flag-UY:empty,
-.bfh-flag-UZ:empty,
-.bfh-flag-VC:empty,
-.bfh-flag-VE:empty,
-.bfh-flag-VG:empty,
-.bfh-flag-VI:empty,
-.bfh-flag-VN:empty,
-.bfh-flag-VU:empty,
-.bfh-flag-WS:empty,
-.bfh-flag-YE:empty,
-.bfh-flag-ZA:empty,
-.bfh-flag-ZM:empty,
-.bfh-flag-BF:empty,
-.bfh-flag-CU:empty,
-.bfh-flag-DE:empty,
-.bfh-flag-IR:empty,
-.bfh-flag-KZ:empty,
-.bfh-flag-LB:empty,
-.bfh-flag-LI:empty,
-.bfh-flag-MC:empty,
-.bfh-flag-MD:empty,
-.bfh-flag-MK:empty,
-.bfh-flag-MN:empty,
-.bfh-flag-MO:empty,
-.bfh-flag-MX:empty,
-.bfh-flag-MY:empty,
-.bfh-flag-PR:empty,
-.bfh-flag-RO:empty,
-.bfh-flag-SL:empty,
-.bfh-flag-TO:empty,
-.bfh-flag-VA:empty,
-.bfh-flag-ZW:empty {
-  width: 16px;
-}
-
-.bfh-flag-AD,
-.bfh-flag-AE,
-.bfh-flag-AF,
-.bfh-flag-AG,
-.bfh-flag-AI,
-.bfh-flag-AL,
-.bfh-flag-AM,
-.bfh-flag-AN,
-.bfh-flag-AO,
-.bfh-flag-AQ,
-.bfh-flag-AR,
-.bfh-flag-AS,
-.bfh-flag-AT,
-.bfh-flag-AU,
-.bfh-flag-AW,
-.bfh-flag-AX,
-.bfh-flag-AZ,
-.bfh-flag-BA,
-.bfh-flag-BB,
-.bfh-flag-BD,
-.bfh-flag-BE,
-.bfh-flag-BG,
-.bfh-flag-BH,
-.bfh-flag-BI,
-.bfh-flag-BJ,
-.bfh-flag-BL,
-.bfh-flag-BM,
-.bfh-flag-BN,
-.bfh-flag-BO,
-.bfh-flag-BR,
-.bfh-flag-BS,
-.bfh-flag-BT,
-.bfh-flag-BW,
-.bfh-flag-BY,
-.bfh-flag-BZ,
-.bfh-flag-CA,
-.bfh-flag-CD,
-.bfh-flag-CF,
-.bfh-flag-CG,
-.bfh-flag-CH,
-.bfh-flag-CI,
-.bfh-flag-CL,
-.bfh-flag-CM,
-.bfh-flag-CN,
-.bfh-flag-CO,
-.bfh-flag-CR,
-.bfh-flag-CV,
-.bfh-flag-CY,
-.bfh-flag-CZ,
-.bfh-flag-DJ,
-.bfh-flag-DK,
-.bfh-flag-DM,
-.bfh-flag-DO,
-.bfh-flag-DZ,
-.bfh-flag-EC,
-.bfh-flag-EE,
-.bfh-flag-EG,
-.bfh-flag-EH,
-.bfh-flag-ER,
-.bfh-flag-ES,
-.bfh-flag-ET,
-.bfh-flag-EU,
-.bfh-flag-FI,
-.bfh-flag-FJ,
-.bfh-flag-FK,
-.bfh-flag-FM,
-.bfh-flag-FO,
-.bfh-flag-FR,
-.bfh-flag-FX,
-.bfh-flag-GF,
-.bfh-flag-GP,
-.bfh-flag-MQ,
-.bfh-flag-NC,
-.bfh-flag-PF,
-.bfh-flag-PM,
-.bfh-flag-RE,
-.bfh-flag-TF,
-.bfh-flag-WF,
-.bfh-flag-GA,
-.bfh-flag-GB,
-.bfh-flag-GD,
-.bfh-flag-GE,
-.bfh-flag-GG,
-.bfh-flag-GH,
-.bfh-flag-GL,
-.bfh-flag-GM,
-.bfh-flag-GN,
-.bfh-flag-GQ,
-.bfh-flag-GR,
-.bfh-flag-GS,
-.bfh-flag-GT,
-.bfh-flag-GU,
-.bfh-flag-GW,
-.bfh-flag-GY,
-.bfh-flag-HK,
-.bfh-flag-HN,
-.bfh-flag-HR,
-.bfh-flag-HT,
-.bfh-flag-HU,
-.bfh-flag-ID,
-.bfh-flag-IE,
-.bfh-flag-IL,
-.bfh-flag-IM,
-.bfh-flag-IN,
-.bfh-flag-IQ,
-.bfh-flag-IS,
-.bfh-flag-IT,
-.bfh-flag-JE,
-.bfh-flag-JM,
-.bfh-flag-JO,
-.bfh-flag-JP,
-.bfh-flag-KE,
-.bfh-flag-KG,
-.bfh-flag-KH,
-.bfh-flag-KI,
-.bfh-flag-KM,
-.bfh-flag-KN,
-.bfh-flag-KP,
-.bfh-flag-KR,
-.bfh-flag-KV,
-.bfh-flag-KW,
-.bfh-flag-KY,
-.bfh-flag-LA,
-.bfh-flag-LC,
-.bfh-flag-LK,
-.bfh-flag-LR,
-.bfh-flag-LS,
-.bfh-flag-LT,
-.bfh-flag-LU,
-.bfh-flag-LV,
-.bfh-flag-LY,
-.bfh-flag-MA,
-.bfh-flag-ME,
-.bfh-flag-MG,
-.bfh-flag-MH,
-.bfh-flag-ML,
-.bfh-flag-MM,
-.bfh-flag-MP,
-.bfh-flag-MR,
-.bfh-flag-MS,
-.bfh-flag-MT,
-.bfh-flag-MU,
-.bfh-flag-MV,
-.bfh-flag-MW,
-.bfh-flag-MZ,
-.bfh-flag-NA,
-.bfh-flag-NE,
-.bfh-flag-NF,
-.bfh-flag-NG,
-.bfh-flag-NI,
-.bfh-flag-NL,
-.bfh-flag-NO,
-.bfh-flag-NP,
-.bfh-flag-NR,
-.bfh-flag-NZ,
-.bfh-flag-OM,
-.bfh-flag-PA,
-.bfh-flag-PE,
-.bfh-flag-PG,
-.bfh-flag-PH,
-.bfh-flag-PK,
-.bfh-flag-PL,
-.bfh-flag-PN,
-.bfh-flag-PS,
-.bfh-flag-PT,
-.bfh-flag-PW,
-.bfh-flag-PY,
-.bfh-flag-QA,
-.bfh-flag-RS,
-.bfh-flag-RU,
-.bfh-flag-RW,
-.bfh-flag-SA,
-.bfh-flag-SB,
-.bfh-flag-SC,
-.bfh-flag-SD,
-.bfh-flag-SE,
-.bfh-flag-SG,
-.bfh-flag-SH,
-.bfh-flag-SI,
-.bfh-flag-SK,
-.bfh-flag-SM,
-.bfh-flag-SN,
-.bfh-flag-SO,
-.bfh-flag-SR,
-.bfh-flag-SS,
-.bfh-flag-ST,
-.bfh-flag-SV,
-.bfh-flag-SY,
-.bfh-flag-SZ,
-.bfh-flag-TC,
-.bfh-flag-TD,
-.bfh-flag-TG,
-.bfh-flag-TH,
-.bfh-flag-TJ,
-.bfh-flag-TM,
-.bfh-flag-TN,
-.bfh-flag-TP,
-.bfh-flag-TR,
-.bfh-flag-TT,
-.bfh-flag-TV,
-.bfh-flag-TW,
-.bfh-flag-TZ,
-.bfh-flag-UA,
-.bfh-flag-UG,
-.bfh-flag-US,
-.bfh-flag-UY,
-.bfh-flag-UZ,
-.bfh-flag-VC,
-.bfh-flag-VE,
-.bfh-flag-VG,
-.bfh-flag-VI,
-.bfh-flag-VN,
-.bfh-flag-VU,
-.bfh-flag-WS,
-.bfh-flag-YE,
-.bfh-flag-ZA,
-.bfh-flag-ZM,
-.bfh-flag-BF,
-.bfh-flag-CU,
-.bfh-flag-DE,
-.bfh-flag-IR,
-.bfh-flag-KZ,
-.bfh-flag-LB,
-.bfh-flag-LI,
-.bfh-flag-MC,
-.bfh-flag-MD,
-.bfh-flag-MK,
-.bfh-flag-MN,
-.bfh-flag-MO,
-.bfh-flag-MX,
-.bfh-flag-MY,
-.bfh-flag-PR,
-.bfh-flag-RO,
-.bfh-flag-SL,
-.bfh-flag-TO,
-.bfh-flag-VA,
-.bfh-flag-ZW,
-.bfh-flag-EUR,
-.bfh-flag-XCD {
-  margin-right: 5px;
-}
-
-.bfh-flag-AD {
-  background-position: -1921px 0;
-}
-
-.bfh-flag-AE {
-  background-position: -1904px 0;
-}
-
-.bfh-flag-AF {
-  background-position: -3689px 0;
-}
-
-.bfh-flag-AG {
-  background-position: -34px 0;
-}
-
-.bfh-flag-AI {
-  background-position: -51px 0;
-}
-
-.bfh-flag-AL {
-  background-position: -68px 0;
-}
-
-.bfh-flag-AM {
-  background-position: -85px 0;
-}
-
-.bfh-flag-AN {
-  background-position: -102px 0;
-}
-
-.bfh-flag-AO {
-  background-position: -119px 0;
-}
-
-.bfh-flag-AQ {
-  background-position: -136px 0;
-}
-
-.bfh-flag-AR {
-  background-position: -153px 0;
-}
-
-.bfh-flag-AS {
-  background-position: -170px 0;
-}
-
-.bfh-flag-AT {
-  background-position: -187px 0;
-}
-
-.bfh-flag-AU {
-  background-position: -204px 0;
-}
-
-.bfh-flag-AW {
-  background-position: -221px 0;
-}
-
-.bfh-flag-AX {
-  background-position: -238px 0;
-}
-
-.bfh-flag-AZ {
-  background-position: -255px 0;
-}
-
-.bfh-flag-BA {
-  background-position: -272px 0;
-}
-
-.bfh-flag-BB {
-  background-position: -289px 0;
-}
-
-.bfh-flag-BD {
-  background-position: -306px 0;
-}
-
-.bfh-flag-BE {
-  background-position: -323px 0;
-}
-
-.bfh-flag-BG {
-  background-position: -340px 0;
-}
-
-.bfh-flag-BH {
-  background-position: -357px 0;
-}
-
-.bfh-flag-BI {
-  background-position: -374px 0;
-}
-
-.bfh-flag-BJ {
-  background-position: -391px 0;
-}
-
-.bfh-flag-BL {
-  background-position: -408px 0;
-}
-
-.bfh-flag-BM {
-  background-position: -425px 0;
-}
-
-.bfh-flag-BN {
-  background-position: -442px 0;
-}
-
-.bfh-flag-BO {
-  background-position: -459px 0;
-}
-
-.bfh-flag-BR {
-  background-position: -476px 0;
-}
-
-.bfh-flag-BS {
-  background-position: -493px 0;
-}
-
-.bfh-flag-BT {
-  background-position: -510px 0;
-}
-
-.bfh-flag-BW {
-  background-position: -527px 0;
-}
-
-.bfh-flag-BY {
-  background-position: -544px 0;
-}
-
-.bfh-flag-BZ {
-  background-position: -561px 0;
-}
-
-.bfh-flag-CA {
-  background-position: -578px 0;
-}
-
-.bfh-flag-CD {
-  background-position: -595px 0;
-}
-
-.bfh-flag-CF {
-  background-position: -612px 0;
-}
-
-.bfh-flag-CG {
-  background-position: -629px 0;
-}
-
-.bfh-flag-CH {
-  background-position: -646px 0;
-}
-
-.bfh-flag-CI {
-  background-position: -663px 0;
-}
-
-.bfh-flag-CL {
-  background-position: -680px 0;
-}
-
-.bfh-flag-CM {
-  background-position: -697px 0;
-}
-
-.bfh-flag-CN {
-  background-position: -714px 0;
-}
-
-.bfh-flag-CO {
-  background-position: -731px 0;
-}
-
-.bfh-flag-CR {
-  background-position: -748px 0;
-}
-
-.bfh-flag-CV {
-  background-position: -765px 0;
-}
-
-.bfh-flag-CY {
-  background-position: -782px 0;
-}
-
-.bfh-flag-CZ {
-  background-position: -799px 0;
-}
-
-.bfh-flag-DJ {
-  background-position: -816px 0;
-}
-
-.bfh-flag-DK {
-  background-position: -833px 0;
-}
-
-.bfh-flag-DM {
-  background-position: -850px 0;
-}
-
-.bfh-flag-DO {
-  background-position: -867px 0;
-}
-
-.bfh-flag-DZ {
-  background-position: -884px 0;
-}
-
-.bfh-flag-EC {
-  background-position: -901px 0;
-}
-
-.bfh-flag-EE {
-  background-position: -918px 0;
-}
-
-.bfh-flag-EG {
-  background-position: -935px 0;
-}
-
-.bfh-flag-EH {
-  background-position: -952px 0;
-}
-
-.bfh-flag-ER {
-  background-position: -969px 0;
-}
-
-.bfh-flag-ES {
-  background-position: -986px 0;
-}
-
-.bfh-flag-ET {
-  background-position: -1003px 0;
-}
-
-.bfh-flag-EU {
-  background-position: -1020px 0;
-}
-
-.bfh-flag-FI {
-  background-position: -1037px 0;
-}
-
-.bfh-flag-FJ {
-  background-position: -1054px 0;
-}
-
-.bfh-flag-FK {
-  background-position: -1071px 0;
-}
-
-.bfh-flag-FM {
-  background-position: -1088px 0;
-}
-
-.bfh-flag-FO {
-  background-position: -1105px 0;
-}
-
-.bfh-flag-FR,
-.bfh-flag-FX,
-.bfh-flag-GF,
-.bfh-flag-GP,
-.bfh-flag-MQ,
-.bfh-flag-NC,
-.bfh-flag-PF,
-.bfh-flag-PM,
-.bfh-flag-RE,
-.bfh-flag-TF,
-.bfh-flag-WF {
-  background-position: -1122px 0;
-}
-
-.bfh-flag-GA {
-  background-position: -1139px 0;
-}
-
-.bfh-flag-GB {
-  background-position: -1156px 0;
-}
-
-.bfh-flag-GD {
-  background-position: -1173px 0;
-}
-
-.bfh-flag-GE {
-  background-position: -1190px 0;
-}
-
-.bfh-flag-GG {
-  background-position: -1207px 0;
-}
-
-.bfh-flag-GH {
-  background-position: -1224px 0;
-}
-
-.bfh-flag-GL {
-  background-position: -1241px 0;
-}
-
-.bfh-flag-GM {
-  background-position: -1258px 0;
-}
-
-.bfh-flag-GN {
-  background-position: -1275px 0;
-}
-
-.bfh-flag-GQ {
-  background-position: -1292px 0;
-}
-
-.bfh-flag-GR {
-  background-position: -1309px 0;
-}
-
-.bfh-flag-GS {
-  background-position: -1326px 0;
-}
-
-.bfh-flag-GT {
-  background-position: -1343px 0;
-}
-
-.bfh-flag-GU {
-  background-position: -1360px 0;
-}
-
-.bfh-flag-GW {
-  background-position: -1377px 0;
-}
-
-.bfh-flag-GY {
-  background-position: -1394px 0;
-}
-
-.bfh-flag-HK {
-  background-position: -1411px 0;
-}
-
-.bfh-flag-HN {
-  background-position: -1428px 0;
-}
-
-.bfh-flag-HR {
-  background-position: -1445px 0;
-}
-
-.bfh-flag-HT {
-  background-position: -1462px 0;
-}
-
-.bfh-flag-HU {
-  background-position: -1479px 0;
-}
-
-.bfh-flag-ID {
-  background-position: -1496px 0;
-}
-
-.bfh-flag-IE {
-  background-position: -1513px 0;
-}
-
-.bfh-flag-IL {
-  background-position: -1530px 0;
-}
-
-.bfh-flag-IM {
-  background-position: -1547px 0;
-}
-
-.bfh-flag-IN {
-  background-position: -1564px 0;
-}
-
-.bfh-flag-IQ {
-  background-position: -1581px 0;
-}
-
-.bfh-flag-IS {
-  background-position: -1598px 0;
-}
-
-.bfh-flag-IT {
-  background-position: -1615px 0;
-}
-
-.bfh-flag-JE {
-  background-position: -1632px 0;
-}
-
-.bfh-flag-JM {
-  background-position: -1649px 0;
-}
-
-.bfh-flag-JO {
-  background-position: -1666px 0;
-}
-
-.bfh-flag-JP {
-  background-position: -1683px 0;
-}
-
-.bfh-flag-KE {
-  background-position: -1700px 0;
-}
-
-.bfh-flag-KG {
-  background-position: -1717px 0;
-}
-
-.bfh-flag-KH {
-  background-position: -1734px 0;
-}
-
-.bfh-flag-KI {
-  background-position: -1751px 0;
-}
-
-.bfh-flag-KM {
-  background-position: -1768px 0;
-}
-
-.bfh-flag-KN {
-  background-position: -1785px 0;
-}
-
-.bfh-flag-KP {
-  background-position: -1802px 0;
-}
-
-.bfh-flag-KR {
-  background-position: -1819px 0;
-}
-
-.bfh-flag-KV {
-  background-position: -1836px 0;
-}
-
-.bfh-flag-KW {
-  background-position: -1853px 0;
-}
-
-.bfh-flag-KY {
-  background-position: -1870px 0;
-}
-
-.bfh-flag-LA {
-  background-position: -1887px 0;
-}
-
-.bfh-flag-LC {
-  background-position: 0 0;
-}
-
-.bfh-flag-LK {
-  background-position: -17px 0;
-}
-
-.bfh-flag-LR {
-  background-position: -1938px 0;
-}
-
-.bfh-flag-LS {
-  background-position: -1955px 0;
-}
-
-.bfh-flag-LT {
-  background-position: -1972px 0;
-}
-
-.bfh-flag-LU {
-  background-position: -1989px 0;
-}
-
-.bfh-flag-LV {
-  background-position: -2006px 0;
-}
-
-.bfh-flag-LY {
-  background-position: -2023px 0;
-}
-
-.bfh-flag-MA {
-  background-position: -2040px 0;
-}
-
-.bfh-flag-ME {
-  background-position: -2057px 0;
-}
-
-.bfh-flag-MG {
-  background-position: -2074px 0;
-}
-
-.bfh-flag-MH {
-  background-position: -2091px 0;
-}
-
-.bfh-flag-ML {
-  background-position: -2108px 0;
-}
-
-.bfh-flag-MM {
-  background-position: -2125px 0;
-}
-
-.bfh-flag-MP {
-  background-position: -2142px 0;
-}
-
-.bfh-flag-MR {
-  background-position: -2159px 0;
-}
-
-.bfh-flag-MS {
-  background-position: -2176px 0;
-}
-
-.bfh-flag-MT {
-  background-position: -2193px 0;
-}
-
-.bfh-flag-MU {
-  background-position: -2210px 0;
-}
-
-.bfh-flag-MV {
-  background-position: -2227px 0;
-}
-
-.bfh-flag-MW {
-  background-position: -2244px 0;
-}
-
-.bfh-flag-MZ {
-  background-position: -2261px 0;
-}
-
-.bfh-flag-NA {
-  background-position: -2278px 0;
-}
-
-.bfh-flag-NE {
-  background-position: -2295px 0;
-}
-
-.bfh-flag-NF {
-  background-position: -2312px 0;
-}
-
-.bfh-flag-NG {
-  background-position: -2329px 0;
-}
-
-.bfh-flag-NI {
-  background-position: -2346px 0;
-}
-
-.bfh-flag-NL {
-  background-position: -2363px 0;
-}
-
-.bfh-flag-NO {
-  background-position: -2380px 0;
-}
-
-.bfh-flag-NP {
-  background-position: -2397px 0;
-}
-
-.bfh-flag-NR {
-  background-position: -2414px 0;
-}
-
-.bfh-flag-NZ {
-  background-position: -2431px 0;
-}
-
-.bfh-flag-OM {
-  background-position: -2448px 0;
-}
-
-.bfh-flag-PA {
-  background-position: -2465px 0;
-}
-
-.bfh-flag-PE {
-  background-position: -2482px 0;
-}
-
-.bfh-flag-PG {
-  background-position: -2499px 0;
-}
-
-.bfh-flag-PH {
-  background-position: -2516px 0;
-}
-
-.bfh-flag-PK {
-  background-position: -2533px 0;
-}
-
-.bfh-flag-PL {
-  background-position: -2550px 0;
-}
-
-.bfh-flag-PN {
-  background-position: -2567px 0;
-}
-
-.bfh-flag-PS {
-  background-position: -2584px 0;
-}
-
-.bfh-flag-PT {
-  background-position: -2601px 0;
-}
-
-.bfh-flag-PW {
-  background-position: -2618px 0;
-}
-
-.bfh-flag-PY {
-  background-position: -2635px 0;
-}
-
-.bfh-flag-QA {
-  background-position: -2652px 0;
-}
-
-.bfh-flag-RS {
-  background-position: -2669px 0;
-}
-
-.bfh-flag-RU {
-  background-position: -2686px 0;
-}
-
-.bfh-flag-RW {
-  background-position: -2703px 0;
-}
-
-.bfh-flag-SA {
-  background-position: -2720px 0;
-}
-
-.bfh-flag-SB {
-  background-position: -2737px 0;
-}
-
-.bfh-flag-SC {
-  background-position: -2754px 0;
-}
-
-.bfh-flag-SD {
-  background-position: -2771px 0;
-}
-
-.bfh-flag-SE {
-  background-position: -2788px 0;
-}
-
-.bfh-flag-SG {
-  background-position: -2805px 0;
-}
-
-.bfh-flag-SH {
-  background-position: -2822px 0;
-}
-
-.bfh-flag-SI {
-  background-position: -2839px 0;
-}
-
-.bfh-flag-SK {
-  background-position: -2856px 0;
-}
-
-.bfh-flag-SM {
-  background-position: -2873px 0;
-}
-
-.bfh-flag-SN {
-  background-position: -2890px 0;
-}
-
-.bfh-flag-SO {
-  background-position: -2907px 0;
-}
-
-.bfh-flag-SR {
-  background-position: -2924px 0;
-}
-
-.bfh-flag-SS {
-  background-position: -2941px 0;
-}
-
-.bfh-flag-ST {
-  background-position: -2958px 0;
-}
-
-.bfh-flag-SV {
-  background-position: -2975px 0;
-}
-
-.bfh-flag-SY {
-  background-position: -2992px 0;
-}
-
-.bfh-flag-SZ {
-  background-position: -3009px 0;
-}
-
-.bfh-flag-TC {
-  background-position: -3026px 0;
-}
-
-.bfh-flag-TD {
-  background-position: -3043px 0;
-}
-
-.bfh-flag-TG {
-  background-position: -3060px 0;
-}
-
-.bfh-flag-TH {
-  background-position: -3077px 0;
-}
-
-.bfh-flag-TJ {
-  background-position: -3094px 0;
-}
-
-.bfh-flag-TM {
-  background-position: -3111px 0;
-}
-
-.bfh-flag-TN {
-  background-position: -3128px 0;
-}
-
-.bfh-flag-TP {
-  background-position: -3145px 0;
-}
-
-.bfh-flag-TR {
-  background-position: -3162px 0;
-}
-
-.bfh-flag-TT {
-  background-position: -3179px 0;
-}
-
-.bfh-flag-TV {
-  background-position: -3196px 0;
-}
-
-.bfh-flag-TW {
-  background-position: -3213px 0;
-}
-
-.bfh-flag-TZ {
-  background-position: -3230px 0;
-}
-
-.bfh-flag-UA {
-  background-position: -3247px 0;
-}
-
-.bfh-flag-UG {
-  background-position: -3264px 0;
-}
-
-.bfh-flag-US {
-  background-position: -3281px 0;
-}
-
-.bfh-flag-UY {
-  background-position: -3298px 0;
-}
-
-.bfh-flag-UZ {
-  background-position: -3315px 0;
-}
-
-.bfh-flag-VC {
-  background-position: -3332px 0;
-}
-
-.bfh-flag-VE {
-  background-position: -3349px 0;
-}
-
-.bfh-flag-VG {
-  background-position: -3366px 0;
-}
-
-.bfh-flag-VI {
-  background-position: -3383px 0;
-}
-
-.bfh-flag-VN {
-  background-position: -3400px 0;
-}
-
-.bfh-flag-VU {
-  background-position: -3417px 0;
-}
-
-.bfh-flag-WS {
-  background-position: -3434px 0;
-}
-
-.bfh-flag-YE {
-  background-position: -3451px 0;
-}
-
-.bfh-flag-ZA {
-  background-position: -3468px 0;
-}
-
-.bfh-flag-ZM {
-  background-position: -3485px 0;
-}
-
-.bfh-flag-BF {
-  background-position: -3502px 0;
-}
-
-.bfh-flag-CU {
-  background-position: -3519px 0;
-}
-
-.bfh-flag-DE {
-  background-position: -3536px 0;
-}
-
-.bfh-flag-IR {
-  background-position: -3553px 0;
-}
-
-.bfh-flag-KZ {
-  background-position: -3570px 0;
-}
-
-.bfh-flag-LB {
-  background-position: -3587px 0;
-}
-
-.bfh-flag-LI {
-  background-position: -3604px 0;
-}
-
-.bfh-flag-MC {
-  background-position: -3621px 0;
-}
-
-.bfh-flag-MD {
-  background-position: -3638px 0;
-}
-
-.bfh-flag-MK {
-  background-position: -3655px 0;
-}
-
-.bfh-flag-MN {
-  background-position: -3672px 0;
-}
-
-.bfh-flag-MO {
-  background-position: -3706px 0;
-}
-
-.bfh-flag-MX {
-  background-position: -3723px 0;
-}
-
-.bfh-flag-MY {
-  background-position: -3740px 0;
-}
-
-.bfh-flag-PR {
-  background-position: -3757px 0;
-}
-
-.bfh-flag-RO {
-  background-position: -3774px 0;
-}
-
-.bfh-flag-SL {
-  background-position: -3791px 0;
-}
-
-.bfh-flag-TO {
-  background-position: -3808px 0;
-}
-
-.bfh-flag-VA {
-  background-position: -3825px 0;
-}
-
-.bfh-flag-ZW {
-  background-position: -3842px 0;
-}
-
-.bfh-flag-EUR {
-  background: url(../img/eu.png) no-repeat;
-}
-
-.bfh-flag-XCD {
-  background: url(../img/xcd.png) no-repeat;
-}
-
-.bfh-flag-AUD,
-.bfh-flag-CHF,
-.bfh-flag-DKK,
-.bfh-flag-EUR,
-.bfh-flag-XAF,
-.bfh-flag-XCD,
-.bfh-flag-XOF,
-.bfh-flag-XPF,
-.bfh-flag-ZAR {
-  width: 16px;
-  height: 14px;
-  background: url(../img/bootstrap-formhelpers-currencies.flags.png) no-repeat;
-}
-
-.bfh-flag-AUD:empty,
-.bfh-flag-CHF:empty,
-.bfh-flag-DKK:empty,
-.bfh-flag-EUR:empty,
-.bfh-flag-XAF:empty,
-.bfh-flag-XCD:empty,
-.bfh-flag-XOF:empty,
-.bfh-flag-XPF:empty,
-.bfh-flag-ZAR:empty {
-  width: 16px;
-}
-
-.bfh-flag-AUD,
-.bfh-flag-CHF,
-.bfh-flag-DKK,
-.bfh-flag-EUR,
-.bfh-flag-XAF,
-.bfh-flag-XCD,
-.bfh-flag-XOF,
-.bfh-flag-XPF,
-.bfh-flag-ZAR {
-  margin-right: 5px;
-}
-
-.bfh-flag-AUD {
-  background-position: -32px 0;
-}
-
-.bfh-flag-CHF {
-  background-position: -224px 0;
-}
-
-.bfh-flag-DKK {
-  background-position: -64px -16px;
-}
-
-.bfh-flag-EUR {
-  background-position: -96px -16px;
-}
-
-.bfh-flag-XAF {
-  background-position: -160px -80px;
-}
-
-.bfh-flag-XCD {
-  background-position: -176px -80px;
-}
-
-.bfh-flag-XOF {
-  background-position: -192px -80px;
-}
-
-.bfh-flag-XPF {
-  background-position: -208px -80px;
-}
-
-.bfh-flag-ZAR {
-  background-position: -224px -80px;
-}
-
-.bfh-selectbox {
-  position: relative;
-}
-
-.bfh-selectbox .bfh-selectbox-toggle {
-  display: inline-block;
-  padding: 6px 24px 6px 12px;
-  text-decoration: none;
-}
-
-.bfh-selectbox .bfh-selectbox-toggle:focus {
-  outline: 0;
-}
-
-.bfh-selectbox .bfh-selectbox-toggle .bfh-selectbox-option {
-  display: inline-block;
-  float: left;
-  width: 100%;
-  height: 20px;
-  overflow: hidden;
-  text-overflow: ellipsis;
-}
-
-.bfh-selectbox .bfh-selectbox-toggle .selectbox-caret {
-  float: right;
-  margin-top: 8px;
-  margin-right: -16px;
-  margin-left: -10px;
-}
-
-.bfh-selectbox .bfh-selectbox-options {
-  position: absolute;
-  top: 100%;
-  left: 0;
-  z-index: 1000;
-  display: none;
-  float: left;
-  min-width: 90px;
-  padding: 5px 0;
-  margin: -1px 0 0;
-  font-size: 14px;
-  background-color: #ffffff;
-  border: 1px solid #cccccc;
-  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;
-}
-
-.bfh-selectbox .bfh-selectbox-options.pull-right {
-  right: 0;
-  left: auto;
-}
-
-.bfh-selectbox .bfh-selectbox-options .divider {
-  height: 1px;
-  margin: 9px 0;
-  overflow: hidden;
-  background-color: #e5e5e5;
-}
-
-.bfh-selectbox .bfh-selectbox-options .bfh-selectbox-filter-container {
-  width: 100%;
-  padding: 5px;
-}
-
-.bfh-selectbox .bfh-selectbox-options ul {
-  max-width: 500px;
-  max-height: 200px;
-  padding: 0;
-  margin: 5px 0 0 0;
-  overflow-x: hidden;
-  overflow-y: auto;
-  list-style: none;
-}
-
-.bfh-selectbox .bfh-selectbox-options ul li > a {
-  display: block;
-  width: 100%;
-  min-height: 26px;
-  padding: 3px 20px;
-  overflow-x: hidden;
-  clear: both;
-  font-weight: normal;
-  line-height: 1.428571429;
-  color: #333333;
-  text-overflow: ellipsis;
-  white-space: nowrap;
-}
-
-.bfh-selectbox .bfh-selectbox-options ul li > a:hover,
-.bfh-selectbox .bfh-selectbox-options ul li > a:focus {
-  color: #262626;
-  text-decoration: none;
-  background-color: #f5f5f5;
-}
-
-.bfh-selectbox .bfh-selectbox-options ul .bfh-selectbox-options-header {
-  display: block;
-  padding: 3px 20px;
-  font-size: 12px;
-  line-height: 1.428571429;
-  color: #999999;
-}
-
-.bfh-selectbox .bfh-selectbox-options ul .disabled > a {
-  color: #999999;
-}
-
-.bfh-selectbox .bfh-selectbox-options ul .disabled > a:hover,
-.bfh-selectbox .bfh-selectbox-options ul .disabled > a:focus {
-  color: #999999;
-  text-decoration: none;
-  cursor: not-allowed;
-  background-color: transparent;
-  background-image: none;
-  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
-}
-
-.bfh-selectbox.open > .bfh-selectbox-options {
-  display: block;
-}
-
-.bfh-selectbox.open a {
-  outline: 0;
-}
-
-.pull-right > .bfh-selectbox-options {
-  right: 0;
-  left: auto;
-}
-
-.bfh-selectbox-up .caret,
-.navbar-fixed-bottom .bfh-selectbox .caret {
-  border-top: 0 dotted;
-  border-bottom: 4px solid #000000;
-  content: "";
-}
-
-.bfh-selectbox-up .bfh-selectbox-options,
-.navbar-fixed-bottom .bfh-selectbox .bfh-selectbox-options {
-  top: auto;
-  bottom: 100%;
-  margin-bottom: 1px;
-}
-
-@media (min-width: 768px) {
-  .navbar-right .bfh-selectbox-options {
-    right: 0;
-    left: auto;
-  }
-}
-
-.bfh-googlefonts .bfh-selectbox-options a {
-  width: 230px;
-  height: 30px;
-  text-indent: -9999px;
-  background-image: url(../img/bootstrap-formhelpers-googlefonts.png);
-}
-
-.bfh-googlefonts .bfh-selectbox-options a:focus {
-  background-color: transparent;
-  background-repeat: no-repeat;
-  outline: none;
-  filter: none;
-}
-
-.bfh-googlefonts .bfh-selectbox-options .active > a,
-.bfh-googlefonts .bfh-selectbox-options .active > a:hover {
-  background-color: transparent;
-  background-image: url(../img/bootstrap-formhelpers-googlefonts.png);
-  background-repeat: no-repeat;
-  outline: none;
-  filter: none;
-}
-
-.bfh-datepicker-calendar {
-  position: absolute;
-  top: 100%;
-  left: 0;
-  z-index: 1000;
-  display: none;
-  float: left;
-  min-width: 296px;
-}
-
-.bfh-datepicker-calendar > table.calendar {
-  width: 376px;
-  background: #ffffff;
-}
-
-.bfh-datepicker-calendar > table.calendar .months-header > th {
-  font-size: 12px;
-  text-align: center;
-}
-
-.bfh-datepicker-calendar > table.calendar .months-header > th.month > span {
-  display: inline-block;
-  width: 100px;
-}
-
-.bfh-datepicker-calendar > table.calendar .months-header > th.year > span {
-  display: inline-block;
-  width: 50px;
-}
-
-.bfh-datepicker-calendar > table.calendar .days-header > th {
-  width: 30px;
-  font-size: 11px;
-  line-height: 12px;
-  text-align: center;
-}
-
-.bfh-datepicker-calendar > table.calendar > tbody > tr > td {
-  width: 30px;
-  font-size: 11px;
-  line-height: 12px;
-  text-align: center;
-}
-
-.bfh-datepicker-calendar > table.calendar > tbody > tr > td.today {
-  color: #ffffff;
-  background-color: #428bca;
-}
-
-.bfh-datepicker-calendar > table.calendar > tbody > tr > td.off {
-  color: #999999;
-}
-
-.bfh-datepicker-calendar > table.calendar > tbody > tr > td:not(.off):hover {
-  color: #262626;
-  cursor: pointer;
-  background-color: #f5f5f5;
-}
-
-.bfh-datepicker {
-  position: relative;
-}
-
-.bfh-datepicker-toggle {
-  *margin-bottom: -3px;
-}
-
-.bfh-datepicker-toggle > input[readonly] {
-  cursor: inherit;
-  background-color: inherit;
-}
-
-.open > .bfh-datepicker-calendar {
-  display: block;
-}
-
-.bfh-timepicker-popover {
-  position: absolute;
-  top: 100%;
-  left: 0;
-  z-index: 1000;
-  display: none;
-  float: left;
-  min-width: 100px;
-  background-color: #ffffff;
-  border: 1px solid #cccccc;
-  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;
-}
-
-.bfh-timepicker-popover > table {
-  width: 180px;
-  margin: 0;
-}
-
-.bfh-timepicker-popover > table > tbody > tr > td {
-  text-align: center;
-  border: 0;
-}
-
-.bfh-timepicker-popover > table > tbody > tr > td.separator {
-  font-size: 20px;
-  font-weight: bold;
-  line-height: 28px;
-}
-
-.bfh-timepicker-popover > table > tbody > tr > td > div > input {
-  width: 42px !important;
-  text-align: center;
-}
-
-.bfh-timepicker {
-  position: relative;
-}
-
-.bfh-timepicker-toggle {
-  *margin-bottom: -3px;
-}
-
-.bfh-timepicker-toggle > input[readonly] {
-  cursor: inherit;
-  background-color: inherit;
-}
-
-.open > .bfh-timepicker-popover {
-  display: block;
-}
-
-.bfh-slider {
-  height: 20px;
-  margin-top: 8px;
-  margin-bottom: 23px;
-  background-color: #ffffff;
-  border: 1px solid #cccccc;
-  border: 1px solid rgba(0, 0, 0, 0.15);
-  border-radius: 4px;
-  -webkit-user-select: none;
-   -khtml-user-select: none;
-     -moz-user-select: none;
-       -o-user-select: none;
-}
-
-.bfh-slider > .bfh-slider-handle {
-  position: absolute;
-  width: 20px;
-  height: 34px;
-  margin-top: -7px;
-  cursor: col-resize;
-  background: #efefef;
-  border: 1px solid #cccccc;
-  border: 1px solid rgba(0, 0, 0, 0.15);
-  border-radius: 4px;
-}
-
-.bfh-slider > .bfh-slider-handle > .bfh-slider-value {
-  position: absolute;
-  width: 48px;
-  height: 20px;
-  margin-top: 5px;
-  margin-left: -15px;
-  line-height: 20px;
-  text-align: center;
-  cursor: col-resize;
-  background-color: #ffffff;
-  border: 1px solid #cccccc;
-  border: 1px solid rgba(0, 0, 0, 0.15);
-  border-radius: 4px;
-}
-
-.bfh-slider > .bfh-slider-handle > .bfh-slider-value .disabled {
-  color: #999999;
-}
-
-.bfh-slider.disabled .bfh-slider-value {
-  color: #999999;
-}
-
-.bfh-colorpicker-popover {
-  position: absolute;
-  top: 100%;
-  left: 0;
-  z-index: 1000;
-  display: none;
-  float: left;
-  min-width: 100px;
-  padding: 20px;
-  cursor: default;
-  background-color: #ffffff;
-  border: 1px solid #cccccc;
-  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;
-}
-
-.bfh-colorpicker-popover > canvas {
-  width: 384px;
-  height: 256px;
-}
-
-.bfh-colorpicker {
-  position: relative;
-}
-
-.bfh-colorpicker-toggle {
-  *margin-bottom: -3px;
-}
-
-.bfh-colorpicker-toggle > input[readonly] {
-  cursor: inherit;
-  background-color: inherit;
-}
-
-.bfh-colorpicker-toggle .bfh-colorpicker-icon {
-  display: block;
-  width: 16px;
-  height: 16px;
-}
-
-.open > .bfh-colorpicker-popover {
-  display: block;
-}
-
-.input-group > .bfh-number {
-  border-right: 0;
-}
-
-.input-group > .bfh-number-btn:hover {
-  background-color: #cccccc;
-}
\ No newline at end of file
diff --git a/gui/slick/css/lib/bootstrap-formhelpers.min-2.3.0.css b/gui/slick/css/lib/bootstrap-formhelpers.min-2.3.0.css
deleted file mode 100644
index bc8364488655d4f6a494065d97ef9462a9c4b470..0000000000000000000000000000000000000000
--- a/gui/slick/css/lib/bootstrap-formhelpers.min-2.3.0.css
+++ /dev/null
@@ -1,6 +0,0 @@
-/**
-* bootstrap-formhelpers.js v2.3.0 by @vincentlamanna
-* Copyright 2013 Vincent Lamanna
-* http://www.apache.org/licenses/LICENSE-2.0
-*/
-.bfh-flag-AD,.bfh-flag-AE,.bfh-flag-AF,.bfh-flag-AG,.bfh-flag-AI,.bfh-flag-AL,.bfh-flag-AM,.bfh-flag-AN,.bfh-flag-AO,.bfh-flag-AQ,.bfh-flag-AR,.bfh-flag-AS,.bfh-flag-AT,.bfh-flag-AU,.bfh-flag-AW,.bfh-flag-AX,.bfh-flag-AZ,.bfh-flag-BA,.bfh-flag-BB,.bfh-flag-BD,.bfh-flag-BE,.bfh-flag-BG,.bfh-flag-BH,.bfh-flag-BI,.bfh-flag-BJ,.bfh-flag-BL,.bfh-flag-BM,.bfh-flag-BN,.bfh-flag-BO,.bfh-flag-BR,.bfh-flag-BS,.bfh-flag-BT,.bfh-flag-BW,.bfh-flag-BY,.bfh-flag-BZ,.bfh-flag-CA,.bfh-flag-CD,.bfh-flag-CF,.bfh-flag-CG,.bfh-flag-CH,.bfh-flag-CI,.bfh-flag-CL,.bfh-flag-CM,.bfh-flag-CN,.bfh-flag-CO,.bfh-flag-CR,.bfh-flag-CV,.bfh-flag-CY,.bfh-flag-CZ,.bfh-flag-DJ,.bfh-flag-DK,.bfh-flag-DM,.bfh-flag-DO,.bfh-flag-DZ,.bfh-flag-EC,.bfh-flag-EE,.bfh-flag-EG,.bfh-flag-EH,.bfh-flag-ER,.bfh-flag-ES,.bfh-flag-ET,.bfh-flag-EU,.bfh-flag-FI,.bfh-flag-FJ,.bfh-flag-FK,.bfh-flag-FM,.bfh-flag-FO,.bfh-flag-FR,.bfh-flag-FX,.bfh-flag-GF,.bfh-flag-GP,.bfh-flag-MQ,.bfh-flag-NC,.bfh-flag-PF,.bfh-flag-PM,.bfh-flag-RE,.bfh-flag-TF,.bfh-flag-WF,.bfh-flag-GA,.bfh-flag-GB,.bfh-flag-GD,.bfh-flag-GE,.bfh-flag-GG,.bfh-flag-GH,.bfh-flag-GL,.bfh-flag-GM,.bfh-flag-GN,.bfh-flag-GQ,.bfh-flag-GR,.bfh-flag-GS,.bfh-flag-GT,.bfh-flag-GU,.bfh-flag-GW,.bfh-flag-GY,.bfh-flag-HK,.bfh-flag-HN,.bfh-flag-HR,.bfh-flag-HT,.bfh-flag-HU,.bfh-flag-ID,.bfh-flag-IE,.bfh-flag-IL,.bfh-flag-IM,.bfh-flag-IN,.bfh-flag-IQ,.bfh-flag-IS,.bfh-flag-IT,.bfh-flag-JE,.bfh-flag-JM,.bfh-flag-JO,.bfh-flag-JP,.bfh-flag-KE,.bfh-flag-KG,.bfh-flag-KH,.bfh-flag-KI,.bfh-flag-KM,.bfh-flag-KN,.bfh-flag-KP,.bfh-flag-KR,.bfh-flag-KV,.bfh-flag-KW,.bfh-flag-KY,.bfh-flag-LA,.bfh-flag-LC,.bfh-flag-LK,.bfh-flag-LR,.bfh-flag-LS,.bfh-flag-LT,.bfh-flag-LU,.bfh-flag-LV,.bfh-flag-LY,.bfh-flag-MA,.bfh-flag-ME,.bfh-flag-MG,.bfh-flag-MH,.bfh-flag-ML,.bfh-flag-MM,.bfh-flag-MP,.bfh-flag-MR,.bfh-flag-MS,.bfh-flag-MT,.bfh-flag-MU,.bfh-flag-MV,.bfh-flag-MW,.bfh-flag-MZ,.bfh-flag-NA,.bfh-flag-NE,.bfh-flag-NF,.bfh-flag-NG,.bfh-flag-NI,.bfh-flag-NL,.bfh-flag-NO,.bfh-flag-NP,.bfh-flag-NR,.bfh-flag-NZ,.bfh-flag-OM,.bfh-flag-PA,.bfh-flag-PE,.bfh-flag-PG,.bfh-flag-PH,.bfh-flag-PK,.bfh-flag-PL,.bfh-flag-PN,.bfh-flag-PS,.bfh-flag-PT,.bfh-flag-PW,.bfh-flag-PY,.bfh-flag-QA,.bfh-flag-RS,.bfh-flag-RU,.bfh-flag-RW,.bfh-flag-SA,.bfh-flag-SB,.bfh-flag-SC,.bfh-flag-SD,.bfh-flag-SE,.bfh-flag-SG,.bfh-flag-SH,.bfh-flag-SI,.bfh-flag-SK,.bfh-flag-SM,.bfh-flag-SN,.bfh-flag-SO,.bfh-flag-SR,.bfh-flag-SS,.bfh-flag-ST,.bfh-flag-SV,.bfh-flag-SY,.bfh-flag-SZ,.bfh-flag-TC,.bfh-flag-TD,.bfh-flag-TG,.bfh-flag-TH,.bfh-flag-TJ,.bfh-flag-TM,.bfh-flag-TN,.bfh-flag-TP,.bfh-flag-TR,.bfh-flag-TT,.bfh-flag-TV,.bfh-flag-TW,.bfh-flag-TZ,.bfh-flag-UA,.bfh-flag-UG,.bfh-flag-US,.bfh-flag-UY,.bfh-flag-UZ,.bfh-flag-VC,.bfh-flag-VE,.bfh-flag-VG,.bfh-flag-VI,.bfh-flag-VN,.bfh-flag-VU,.bfh-flag-WS,.bfh-flag-YE,.bfh-flag-ZA,.bfh-flag-ZM,.bfh-flag-BF,.bfh-flag-CU,.bfh-flag-DE,.bfh-flag-IR,.bfh-flag-KZ,.bfh-flag-LB,.bfh-flag-LI,.bfh-flag-MC,.bfh-flag-MD,.bfh-flag-MK,.bfh-flag-MN,.bfh-flag-MO,.bfh-flag-MX,.bfh-flag-MY,.bfh-flag-PR,.bfh-flag-RO,.bfh-flag-SL,.bfh-flag-TO,.bfh-flag-VA,.bfh-flag-ZW{width:16px;height:14px;background:url(../img/bootstrap-formhelpers-countries.flags.png) no-repeat}.bfh-flag-AD:empty,.bfh-flag-AE:empty,.bfh-flag-AF:empty,.bfh-flag-AG:empty,.bfh-flag-AI:empty,.bfh-flag-AL:empty,.bfh-flag-AM:empty,.bfh-flag-AN:empty,.bfh-flag-AO:empty,.bfh-flag-AQ:empty,.bfh-flag-AR:empty,.bfh-flag-AS:empty,.bfh-flag-AT:empty,.bfh-flag-AU:empty,.bfh-flag-AW:empty,.bfh-flag-AX:empty,.bfh-flag-AZ:empty,.bfh-flag-BA:empty,.bfh-flag-BB:empty,.bfh-flag-BD:empty,.bfh-flag-BE:empty,.bfh-flag-BG:empty,.bfh-flag-BH:empty,.bfh-flag-BI:empty,.bfh-flag-BJ:empty,.bfh-flag-BL:empty,.bfh-flag-BM:empty,.bfh-flag-BN:empty,.bfh-flag-BO:empty,.bfh-flag-BR:empty,.bfh-flag-BS:empty,.bfh-flag-BT:empty,.bfh-flag-BW:empty,.bfh-flag-BY:empty,.bfh-flag-BZ:empty,.bfh-flag-CA:empty,.bfh-flag-CD:empty,.bfh-flag-CF:empty,.bfh-flag-CG:empty,.bfh-flag-CH:empty,.bfh-flag-CI:empty,.bfh-flag-CL:empty,.bfh-flag-CM:empty,.bfh-flag-CN:empty,.bfh-flag-CO:empty,.bfh-flag-CR:empty,.bfh-flag-CV:empty,.bfh-flag-CY:empty,.bfh-flag-CZ:empty,.bfh-flag-DJ:empty,.bfh-flag-DK:empty,.bfh-flag-DM:empty,.bfh-flag-DO:empty,.bfh-flag-DZ:empty,.bfh-flag-EC:empty,.bfh-flag-EE:empty,.bfh-flag-EG:empty,.bfh-flag-EH:empty,.bfh-flag-ER:empty,.bfh-flag-ES:empty,.bfh-flag-ET:empty,.bfh-flag-EU:empty,.bfh-flag-FI:empty,.bfh-flag-FJ:empty,.bfh-flag-FK:empty,.bfh-flag-FM:empty,.bfh-flag-FO:empty,.bfh-flag-FR:empty,.bfh-flag-FX:empty,.bfh-flag-GF:empty,.bfh-flag-GP:empty,.bfh-flag-MQ:empty,.bfh-flag-NC:empty,.bfh-flag-PF:empty,.bfh-flag-PM:empty,.bfh-flag-RE:empty,.bfh-flag-TF:empty,.bfh-flag-WF:empty,.bfh-flag-GA:empty,.bfh-flag-GB:empty,.bfh-flag-GD:empty,.bfh-flag-GE:empty,.bfh-flag-GG:empty,.bfh-flag-GH:empty,.bfh-flag-GL:empty,.bfh-flag-GM:empty,.bfh-flag-GN:empty,.bfh-flag-GQ:empty,.bfh-flag-GR:empty,.bfh-flag-GS:empty,.bfh-flag-GT:empty,.bfh-flag-GU:empty,.bfh-flag-GW:empty,.bfh-flag-GY:empty,.bfh-flag-HK:empty,.bfh-flag-HN:empty,.bfh-flag-HR:empty,.bfh-flag-HT:empty,.bfh-flag-HU:empty,.bfh-flag-ID:empty,.bfh-flag-IE:empty,.bfh-flag-IL:empty,.bfh-flag-IM:empty,.bfh-flag-IN:empty,.bfh-flag-IQ:empty,.bfh-flag-IS:empty,.bfh-flag-IT:empty,.bfh-flag-JE:empty,.bfh-flag-JM:empty,.bfh-flag-JO:empty,.bfh-flag-JP:empty,.bfh-flag-KE:empty,.bfh-flag-KG:empty,.bfh-flag-KH:empty,.bfh-flag-KI:empty,.bfh-flag-KM:empty,.bfh-flag-KN:empty,.bfh-flag-KP:empty,.bfh-flag-KR:empty,.bfh-flag-KV:empty,.bfh-flag-KW:empty,.bfh-flag-KY:empty,.bfh-flag-LA:empty,.bfh-flag-LC:empty,.bfh-flag-LK:empty,.bfh-flag-LR:empty,.bfh-flag-LS:empty,.bfh-flag-LT:empty,.bfh-flag-LU:empty,.bfh-flag-LV:empty,.bfh-flag-LY:empty,.bfh-flag-MA:empty,.bfh-flag-ME:empty,.bfh-flag-MG:empty,.bfh-flag-MH:empty,.bfh-flag-ML:empty,.bfh-flag-MM:empty,.bfh-flag-MP:empty,.bfh-flag-MR:empty,.bfh-flag-MS:empty,.bfh-flag-MT:empty,.bfh-flag-MU:empty,.bfh-flag-MV:empty,.bfh-flag-MW:empty,.bfh-flag-MZ:empty,.bfh-flag-NA:empty,.bfh-flag-NE:empty,.bfh-flag-NF:empty,.bfh-flag-NG:empty,.bfh-flag-NI:empty,.bfh-flag-NL:empty,.bfh-flag-NO:empty,.bfh-flag-NP:empty,.bfh-flag-NR:empty,.bfh-flag-NZ:empty,.bfh-flag-OM:empty,.bfh-flag-PA:empty,.bfh-flag-PE:empty,.bfh-flag-PG:empty,.bfh-flag-PH:empty,.bfh-flag-PK:empty,.bfh-flag-PL:empty,.bfh-flag-PN:empty,.bfh-flag-PS:empty,.bfh-flag-PT:empty,.bfh-flag-PW:empty,.bfh-flag-PY:empty,.bfh-flag-QA:empty,.bfh-flag-RS:empty,.bfh-flag-RU:empty,.bfh-flag-RW:empty,.bfh-flag-SA:empty,.bfh-flag-SB:empty,.bfh-flag-SC:empty,.bfh-flag-SD:empty,.bfh-flag-SE:empty,.bfh-flag-SG:empty,.bfh-flag-SH:empty,.bfh-flag-SI:empty,.bfh-flag-SK:empty,.bfh-flag-SM:empty,.bfh-flag-SN:empty,.bfh-flag-SO:empty,.bfh-flag-SR:empty,.bfh-flag-SS:empty,.bfh-flag-ST:empty,.bfh-flag-SV:empty,.bfh-flag-SY:empty,.bfh-flag-SZ:empty,.bfh-flag-TC:empty,.bfh-flag-TD:empty,.bfh-flag-TG:empty,.bfh-flag-TH:empty,.bfh-flag-TJ:empty,.bfh-flag-TM:empty,.bfh-flag-TN:empty,.bfh-flag-TP:empty,.bfh-flag-TR:empty,.bfh-flag-TT:empty,.bfh-flag-TV:empty,.bfh-flag-TW:empty,.bfh-flag-TZ:empty,.bfh-flag-UA:empty,.bfh-flag-UG:empty,.bfh-flag-US:empty,.bfh-flag-UY:empty,.bfh-flag-UZ:empty,.bfh-flag-VC:empty,.bfh-flag-VE:empty,.bfh-flag-VG:empty,.bfh-flag-VI:empty,.bfh-flag-VN:empty,.bfh-flag-VU:empty,.bfh-flag-WS:empty,.bfh-flag-YE:empty,.bfh-flag-ZA:empty,.bfh-flag-ZM:empty,.bfh-flag-BF:empty,.bfh-flag-CU:empty,.bfh-flag-DE:empty,.bfh-flag-IR:empty,.bfh-flag-KZ:empty,.bfh-flag-LB:empty,.bfh-flag-LI:empty,.bfh-flag-MC:empty,.bfh-flag-MD:empty,.bfh-flag-MK:empty,.bfh-flag-MN:empty,.bfh-flag-MO:empty,.bfh-flag-MX:empty,.bfh-flag-MY:empty,.bfh-flag-PR:empty,.bfh-flag-RO:empty,.bfh-flag-SL:empty,.bfh-flag-TO:empty,.bfh-flag-VA:empty,.bfh-flag-ZW:empty{width:16px}.bfh-flag-AD,.bfh-flag-AE,.bfh-flag-AF,.bfh-flag-AG,.bfh-flag-AI,.bfh-flag-AL,.bfh-flag-AM,.bfh-flag-AN,.bfh-flag-AO,.bfh-flag-AQ,.bfh-flag-AR,.bfh-flag-AS,.bfh-flag-AT,.bfh-flag-AU,.bfh-flag-AW,.bfh-flag-AX,.bfh-flag-AZ,.bfh-flag-BA,.bfh-flag-BB,.bfh-flag-BD,.bfh-flag-BE,.bfh-flag-BG,.bfh-flag-BH,.bfh-flag-BI,.bfh-flag-BJ,.bfh-flag-BL,.bfh-flag-BM,.bfh-flag-BN,.bfh-flag-BO,.bfh-flag-BR,.bfh-flag-BS,.bfh-flag-BT,.bfh-flag-BW,.bfh-flag-BY,.bfh-flag-BZ,.bfh-flag-CA,.bfh-flag-CD,.bfh-flag-CF,.bfh-flag-CG,.bfh-flag-CH,.bfh-flag-CI,.bfh-flag-CL,.bfh-flag-CM,.bfh-flag-CN,.bfh-flag-CO,.bfh-flag-CR,.bfh-flag-CV,.bfh-flag-CY,.bfh-flag-CZ,.bfh-flag-DJ,.bfh-flag-DK,.bfh-flag-DM,.bfh-flag-DO,.bfh-flag-DZ,.bfh-flag-EC,.bfh-flag-EE,.bfh-flag-EG,.bfh-flag-EH,.bfh-flag-ER,.bfh-flag-ES,.bfh-flag-ET,.bfh-flag-EU,.bfh-flag-FI,.bfh-flag-FJ,.bfh-flag-FK,.bfh-flag-FM,.bfh-flag-FO,.bfh-flag-FR,.bfh-flag-FX,.bfh-flag-GF,.bfh-flag-GP,.bfh-flag-MQ,.bfh-flag-NC,.bfh-flag-PF,.bfh-flag-PM,.bfh-flag-RE,.bfh-flag-TF,.bfh-flag-WF,.bfh-flag-GA,.bfh-flag-GB,.bfh-flag-GD,.bfh-flag-GE,.bfh-flag-GG,.bfh-flag-GH,.bfh-flag-GL,.bfh-flag-GM,.bfh-flag-GN,.bfh-flag-GQ,.bfh-flag-GR,.bfh-flag-GS,.bfh-flag-GT,.bfh-flag-GU,.bfh-flag-GW,.bfh-flag-GY,.bfh-flag-HK,.bfh-flag-HN,.bfh-flag-HR,.bfh-flag-HT,.bfh-flag-HU,.bfh-flag-ID,.bfh-flag-IE,.bfh-flag-IL,.bfh-flag-IM,.bfh-flag-IN,.bfh-flag-IQ,.bfh-flag-IS,.bfh-flag-IT,.bfh-flag-JE,.bfh-flag-JM,.bfh-flag-JO,.bfh-flag-JP,.bfh-flag-KE,.bfh-flag-KG,.bfh-flag-KH,.bfh-flag-KI,.bfh-flag-KM,.bfh-flag-KN,.bfh-flag-KP,.bfh-flag-KR,.bfh-flag-KV,.bfh-flag-KW,.bfh-flag-KY,.bfh-flag-LA,.bfh-flag-LC,.bfh-flag-LK,.bfh-flag-LR,.bfh-flag-LS,.bfh-flag-LT,.bfh-flag-LU,.bfh-flag-LV,.bfh-flag-LY,.bfh-flag-MA,.bfh-flag-ME,.bfh-flag-MG,.bfh-flag-MH,.bfh-flag-ML,.bfh-flag-MM,.bfh-flag-MP,.bfh-flag-MR,.bfh-flag-MS,.bfh-flag-MT,.bfh-flag-MU,.bfh-flag-MV,.bfh-flag-MW,.bfh-flag-MZ,.bfh-flag-NA,.bfh-flag-NE,.bfh-flag-NF,.bfh-flag-NG,.bfh-flag-NI,.bfh-flag-NL,.bfh-flag-NO,.bfh-flag-NP,.bfh-flag-NR,.bfh-flag-NZ,.bfh-flag-OM,.bfh-flag-PA,.bfh-flag-PE,.bfh-flag-PG,.bfh-flag-PH,.bfh-flag-PK,.bfh-flag-PL,.bfh-flag-PN,.bfh-flag-PS,.bfh-flag-PT,.bfh-flag-PW,.bfh-flag-PY,.bfh-flag-QA,.bfh-flag-RS,.bfh-flag-RU,.bfh-flag-RW,.bfh-flag-SA,.bfh-flag-SB,.bfh-flag-SC,.bfh-flag-SD,.bfh-flag-SE,.bfh-flag-SG,.bfh-flag-SH,.bfh-flag-SI,.bfh-flag-SK,.bfh-flag-SM,.bfh-flag-SN,.bfh-flag-SO,.bfh-flag-SR,.bfh-flag-SS,.bfh-flag-ST,.bfh-flag-SV,.bfh-flag-SY,.bfh-flag-SZ,.bfh-flag-TC,.bfh-flag-TD,.bfh-flag-TG,.bfh-flag-TH,.bfh-flag-TJ,.bfh-flag-TM,.bfh-flag-TN,.bfh-flag-TP,.bfh-flag-TR,.bfh-flag-TT,.bfh-flag-TV,.bfh-flag-TW,.bfh-flag-TZ,.bfh-flag-UA,.bfh-flag-UG,.bfh-flag-US,.bfh-flag-UY,.bfh-flag-UZ,.bfh-flag-VC,.bfh-flag-VE,.bfh-flag-VG,.bfh-flag-VI,.bfh-flag-VN,.bfh-flag-VU,.bfh-flag-WS,.bfh-flag-YE,.bfh-flag-ZA,.bfh-flag-ZM,.bfh-flag-BF,.bfh-flag-CU,.bfh-flag-DE,.bfh-flag-IR,.bfh-flag-KZ,.bfh-flag-LB,.bfh-flag-LI,.bfh-flag-MC,.bfh-flag-MD,.bfh-flag-MK,.bfh-flag-MN,.bfh-flag-MO,.bfh-flag-MX,.bfh-flag-MY,.bfh-flag-PR,.bfh-flag-RO,.bfh-flag-SL,.bfh-flag-TO,.bfh-flag-VA,.bfh-flag-ZW,.bfh-flag-EUR,.bfh-flag-XCD{margin-right:5px}.bfh-flag-AD{background-position:-1921px 0}.bfh-flag-AE{background-position:-1904px 0}.bfh-flag-AF{background-position:-3689px 0}.bfh-flag-AG{background-position:-34px 0}.bfh-flag-AI{background-position:-51px 0}.bfh-flag-AL{background-position:-68px 0}.bfh-flag-AM{background-position:-85px 0}.bfh-flag-AN{background-position:-102px 0}.bfh-flag-AO{background-position:-119px 0}.bfh-flag-AQ{background-position:-136px 0}.bfh-flag-AR{background-position:-153px 0}.bfh-flag-AS{background-position:-170px 0}.bfh-flag-AT{background-position:-187px 0}.bfh-flag-AU{background-position:-204px 0}.bfh-flag-AW{background-position:-221px 0}.bfh-flag-AX{background-position:-238px 0}.bfh-flag-AZ{background-position:-255px 0}.bfh-flag-BA{background-position:-272px 0}.bfh-flag-BB{background-position:-289px 0}.bfh-flag-BD{background-position:-306px 0}.bfh-flag-BE{background-position:-323px 0}.bfh-flag-BG{background-position:-340px 0}.bfh-flag-BH{background-position:-357px 0}.bfh-flag-BI{background-position:-374px 0}.bfh-flag-BJ{background-position:-391px 0}.bfh-flag-BL{background-position:-408px 0}.bfh-flag-BM{background-position:-425px 0}.bfh-flag-BN{background-position:-442px 0}.bfh-flag-BO{background-position:-459px 0}.bfh-flag-BR{background-position:-476px 0}.bfh-flag-BS{background-position:-493px 0}.bfh-flag-BT{background-position:-510px 0}.bfh-flag-BW{background-position:-527px 0}.bfh-flag-BY{background-position:-544px 0}.bfh-flag-BZ{background-position:-561px 0}.bfh-flag-CA{background-position:-578px 0}.bfh-flag-CD{background-position:-595px 0}.bfh-flag-CF{background-position:-612px 0}.bfh-flag-CG{background-position:-629px 0}.bfh-flag-CH{background-position:-646px 0}.bfh-flag-CI{background-position:-663px 0}.bfh-flag-CL{background-position:-680px 0}.bfh-flag-CM{background-position:-697px 0}.bfh-flag-CN{background-position:-714px 0}.bfh-flag-CO{background-position:-731px 0}.bfh-flag-CR{background-position:-748px 0}.bfh-flag-CV{background-position:-765px 0}.bfh-flag-CY{background-position:-782px 0}.bfh-flag-CZ{background-position:-799px 0}.bfh-flag-DJ{background-position:-816px 0}.bfh-flag-DK{background-position:-833px 0}.bfh-flag-DM{background-position:-850px 0}.bfh-flag-DO{background-position:-867px 0}.bfh-flag-DZ{background-position:-884px 0}.bfh-flag-EC{background-position:-901px 0}.bfh-flag-EE{background-position:-918px 0}.bfh-flag-EG{background-position:-935px 0}.bfh-flag-EH{background-position:-952px 0}.bfh-flag-ER{background-position:-969px 0}.bfh-flag-ES{background-position:-986px 0}.bfh-flag-ET{background-position:-1003px 0}.bfh-flag-EU{background-position:-1020px 0}.bfh-flag-FI{background-position:-1037px 0}.bfh-flag-FJ{background-position:-1054px 0}.bfh-flag-FK{background-position:-1071px 0}.bfh-flag-FM{background-position:-1088px 0}.bfh-flag-FO{background-position:-1105px 0}.bfh-flag-FR,.bfh-flag-FX,.bfh-flag-GF,.bfh-flag-GP,.bfh-flag-MQ,.bfh-flag-NC,.bfh-flag-PF,.bfh-flag-PM,.bfh-flag-RE,.bfh-flag-TF,.bfh-flag-WF{background-position:-1122px 0}.bfh-flag-GA{background-position:-1139px 0}.bfh-flag-GB{background-position:-1156px 0}.bfh-flag-GD{background-position:-1173px 0}.bfh-flag-GE{background-position:-1190px 0}.bfh-flag-GG{background-position:-1207px 0}.bfh-flag-GH{background-position:-1224px 0}.bfh-flag-GL{background-position:-1241px 0}.bfh-flag-GM{background-position:-1258px 0}.bfh-flag-GN{background-position:-1275px 0}.bfh-flag-GQ{background-position:-1292px 0}.bfh-flag-GR{background-position:-1309px 0}.bfh-flag-GS{background-position:-1326px 0}.bfh-flag-GT{background-position:-1343px 0}.bfh-flag-GU{background-position:-1360px 0}.bfh-flag-GW{background-position:-1377px 0}.bfh-flag-GY{background-position:-1394px 0}.bfh-flag-HK{background-position:-1411px 0}.bfh-flag-HN{background-position:-1428px 0}.bfh-flag-HR{background-position:-1445px 0}.bfh-flag-HT{background-position:-1462px 0}.bfh-flag-HU{background-position:-1479px 0}.bfh-flag-ID{background-position:-1496px 0}.bfh-flag-IE{background-position:-1513px 0}.bfh-flag-IL{background-position:-1530px 0}.bfh-flag-IM{background-position:-1547px 0}.bfh-flag-IN{background-position:-1564px 0}.bfh-flag-IQ{background-position:-1581px 0}.bfh-flag-IS{background-position:-1598px 0}.bfh-flag-IT{background-position:-1615px 0}.bfh-flag-JE{background-position:-1632px 0}.bfh-flag-JM{background-position:-1649px 0}.bfh-flag-JO{background-position:-1666px 0}.bfh-flag-JP{background-position:-1683px 0}.bfh-flag-KE{background-position:-1700px 0}.bfh-flag-KG{background-position:-1717px 0}.bfh-flag-KH{background-position:-1734px 0}.bfh-flag-KI{background-position:-1751px 0}.bfh-flag-KM{background-position:-1768px 0}.bfh-flag-KN{background-position:-1785px 0}.bfh-flag-KP{background-position:-1802px 0}.bfh-flag-KR{background-position:-1819px 0}.bfh-flag-KV{background-position:-1836px 0}.bfh-flag-KW{background-position:-1853px 0}.bfh-flag-KY{background-position:-1870px 0}.bfh-flag-LA{background-position:-1887px 0}.bfh-flag-LC{background-position:0 0}.bfh-flag-LK{background-position:-17px 0}.bfh-flag-LR{background-position:-1938px 0}.bfh-flag-LS{background-position:-1955px 0}.bfh-flag-LT{background-position:-1972px 0}.bfh-flag-LU{background-position:-1989px 0}.bfh-flag-LV{background-position:-2006px 0}.bfh-flag-LY{background-position:-2023px 0}.bfh-flag-MA{background-position:-2040px 0}.bfh-flag-ME{background-position:-2057px 0}.bfh-flag-MG{background-position:-2074px 0}.bfh-flag-MH{background-position:-2091px 0}.bfh-flag-ML{background-position:-2108px 0}.bfh-flag-MM{background-position:-2125px 0}.bfh-flag-MP{background-position:-2142px 0}.bfh-flag-MR{background-position:-2159px 0}.bfh-flag-MS{background-position:-2176px 0}.bfh-flag-MT{background-position:-2193px 0}.bfh-flag-MU{background-position:-2210px 0}.bfh-flag-MV{background-position:-2227px 0}.bfh-flag-MW{background-position:-2244px 0}.bfh-flag-MZ{background-position:-2261px 0}.bfh-flag-NA{background-position:-2278px 0}.bfh-flag-NE{background-position:-2295px 0}.bfh-flag-NF{background-position:-2312px 0}.bfh-flag-NG{background-position:-2329px 0}.bfh-flag-NI{background-position:-2346px 0}.bfh-flag-NL{background-position:-2363px 0}.bfh-flag-NO{background-position:-2380px 0}.bfh-flag-NP{background-position:-2397px 0}.bfh-flag-NR{background-position:-2414px 0}.bfh-flag-NZ{background-position:-2431px 0}.bfh-flag-OM{background-position:-2448px 0}.bfh-flag-PA{background-position:-2465px 0}.bfh-flag-PE{background-position:-2482px 0}.bfh-flag-PG{background-position:-2499px 0}.bfh-flag-PH{background-position:-2516px 0}.bfh-flag-PK{background-position:-2533px 0}.bfh-flag-PL{background-position:-2550px 0}.bfh-flag-PN{background-position:-2567px 0}.bfh-flag-PS{background-position:-2584px 0}.bfh-flag-PT{background-position:-2601px 0}.bfh-flag-PW{background-position:-2618px 0}.bfh-flag-PY{background-position:-2635px 0}.bfh-flag-QA{background-position:-2652px 0}.bfh-flag-RS{background-position:-2669px 0}.bfh-flag-RU{background-position:-2686px 0}.bfh-flag-RW{background-position:-2703px 0}.bfh-flag-SA{background-position:-2720px 0}.bfh-flag-SB{background-position:-2737px 0}.bfh-flag-SC{background-position:-2754px 0}.bfh-flag-SD{background-position:-2771px 0}.bfh-flag-SE{background-position:-2788px 0}.bfh-flag-SG{background-position:-2805px 0}.bfh-flag-SH{background-position:-2822px 0}.bfh-flag-SI{background-position:-2839px 0}.bfh-flag-SK{background-position:-2856px 0}.bfh-flag-SM{background-position:-2873px 0}.bfh-flag-SN{background-position:-2890px 0}.bfh-flag-SO{background-position:-2907px 0}.bfh-flag-SR{background-position:-2924px 0}.bfh-flag-SS{background-position:-2941px 0}.bfh-flag-ST{background-position:-2958px 0}.bfh-flag-SV{background-position:-2975px 0}.bfh-flag-SY{background-position:-2992px 0}.bfh-flag-SZ{background-position:-3009px 0}.bfh-flag-TC{background-position:-3026px 0}.bfh-flag-TD{background-position:-3043px 0}.bfh-flag-TG{background-position:-3060px 0}.bfh-flag-TH{background-position:-3077px 0}.bfh-flag-TJ{background-position:-3094px 0}.bfh-flag-TM{background-position:-3111px 0}.bfh-flag-TN{background-position:-3128px 0}.bfh-flag-TP{background-position:-3145px 0}.bfh-flag-TR{background-position:-3162px 0}.bfh-flag-TT{background-position:-3179px 0}.bfh-flag-TV{background-position:-3196px 0}.bfh-flag-TW{background-position:-3213px 0}.bfh-flag-TZ{background-position:-3230px 0}.bfh-flag-UA{background-position:-3247px 0}.bfh-flag-UG{background-position:-3264px 0}.bfh-flag-US{background-position:-3281px 0}.bfh-flag-UY{background-position:-3298px 0}.bfh-flag-UZ{background-position:-3315px 0}.bfh-flag-VC{background-position:-3332px 0}.bfh-flag-VE{background-position:-3349px 0}.bfh-flag-VG{background-position:-3366px 0}.bfh-flag-VI{background-position:-3383px 0}.bfh-flag-VN{background-position:-3400px 0}.bfh-flag-VU{background-position:-3417px 0}.bfh-flag-WS{background-position:-3434px 0}.bfh-flag-YE{background-position:-3451px 0}.bfh-flag-ZA{background-position:-3468px 0}.bfh-flag-ZM{background-position:-3485px 0}.bfh-flag-BF{background-position:-3502px 0}.bfh-flag-CU{background-position:-3519px 0}.bfh-flag-DE{background-position:-3536px 0}.bfh-flag-IR{background-position:-3553px 0}.bfh-flag-KZ{background-position:-3570px 0}.bfh-flag-LB{background-position:-3587px 0}.bfh-flag-LI{background-position:-3604px 0}.bfh-flag-MC{background-position:-3621px 0}.bfh-flag-MD{background-position:-3638px 0}.bfh-flag-MK{background-position:-3655px 0}.bfh-flag-MN{background-position:-3672px 0}.bfh-flag-MO{background-position:-3706px 0}.bfh-flag-MX{background-position:-3723px 0}.bfh-flag-MY{background-position:-3740px 0}.bfh-flag-PR{background-position:-3757px 0}.bfh-flag-RO{background-position:-3774px 0}.bfh-flag-SL{background-position:-3791px 0}.bfh-flag-TO{background-position:-3808px 0}.bfh-flag-VA{background-position:-3825px 0}.bfh-flag-ZW{background-position:-3842px 0}.bfh-flag-EUR{background:url(../img/eu.png) no-repeat}.bfh-flag-XCD{background:url(../img/xcd.png) no-repeat}.bfh-flag-AUD,.bfh-flag-CHF,.bfh-flag-DKK,.bfh-flag-EUR,.bfh-flag-XAF,.bfh-flag-XCD,.bfh-flag-XOF,.bfh-flag-XPF,.bfh-flag-ZAR{width:16px;height:14px;background:url(../img/bootstrap-formhelpers-currencies.flags.png) no-repeat}.bfh-flag-AUD:empty,.bfh-flag-CHF:empty,.bfh-flag-DKK:empty,.bfh-flag-EUR:empty,.bfh-flag-XAF:empty,.bfh-flag-XCD:empty,.bfh-flag-XOF:empty,.bfh-flag-XPF:empty,.bfh-flag-ZAR:empty{width:16px}.bfh-flag-AUD,.bfh-flag-CHF,.bfh-flag-DKK,.bfh-flag-EUR,.bfh-flag-XAF,.bfh-flag-XCD,.bfh-flag-XOF,.bfh-flag-XPF,.bfh-flag-ZAR{margin-right:5px}.bfh-flag-AUD{background-position:-32px 0}.bfh-flag-CHF{background-position:-224px 0}.bfh-flag-DKK{background-position:-64px -16px}.bfh-flag-EUR{background-position:-96px -16px}.bfh-flag-XAF{background-position:-160px -80px}.bfh-flag-XCD{background-position:-176px -80px}.bfh-flag-XOF{background-position:-192px -80px}.bfh-flag-XPF{background-position:-208px -80px}.bfh-flag-ZAR{background-position:-224px -80px}.bfh-selectbox{position:relative}.bfh-selectbox .bfh-selectbox-toggle{display:inline-block;padding:6px 24px 6px 12px;text-decoration:none}.bfh-selectbox .bfh-selectbox-toggle:focus{outline:0}.bfh-selectbox .bfh-selectbox-toggle .bfh-selectbox-option{display:inline-block;float:left;width:100%;height:20px;overflow:hidden;text-overflow:ellipsis}.bfh-selectbox .bfh-selectbox-toggle .selectbox-caret{float:right;margin-top:8px;margin-right:-16px;margin-left:-10px}.bfh-selectbox .bfh-selectbox-options{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:90px;padding:5px 0;margin:-1px 0 0;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}.bfh-selectbox .bfh-selectbox-options.pull-right{right:0;left:auto}.bfh-selectbox .bfh-selectbox-options .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.bfh-selectbox .bfh-selectbox-options .bfh-selectbox-filter-container{width:100%;padding:5px}.bfh-selectbox .bfh-selectbox-options ul{max-width:500px;max-height:200px;padding:0;margin:5px 0 0 0;overflow-x:hidden;overflow-y:auto;list-style:none}.bfh-selectbox .bfh-selectbox-options ul li>a{display:block;width:100%;min-height:26px;padding:3px 20px;overflow-x:hidden;clear:both;font-weight:normal;line-height:1.428571429;color:#333;text-overflow:ellipsis;white-space:nowrap}.bfh-selectbox .bfh-selectbox-options ul li>a:hover,.bfh-selectbox .bfh-selectbox-options ul li>a:focus{color:#262626;text-decoration:none;background-color:#f5f5f5}.bfh-selectbox .bfh-selectbox-options ul .bfh-selectbox-options-header{display:block;padding:3px 20px;font-size:12px;line-height:1.428571429;color:#999}.bfh-selectbox .bfh-selectbox-options ul .disabled>a{color:#999}.bfh-selectbox .bfh-selectbox-options ul .disabled>a:hover,.bfh-selectbox .bfh-selectbox-options ul .disabled>a:focus{color:#999;text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.bfh-selectbox.open>.bfh-selectbox-options{display:block}.bfh-selectbox.open a{outline:0}.pull-right>.bfh-selectbox-options{right:0;left:auto}.bfh-selectbox-up .caret,.navbar-fixed-bottom .bfh-selectbox .caret{border-top:0 dotted;border-bottom:4px solid #000;content:""}.bfh-selectbox-up .bfh-selectbox-options,.navbar-fixed-bottom .bfh-selectbox .bfh-selectbox-options{top:auto;bottom:100%;margin-bottom:1px}@media(min-width:768px){.navbar-right .bfh-selectbox-options{right:0;left:auto}}.bfh-googlefonts .bfh-selectbox-options a{width:230px;height:30px;text-indent:-9999px;background-image:url(../img/bootstrap-formhelpers-googlefonts.png)}.bfh-googlefonts .bfh-selectbox-options a:focus{background-color:transparent;background-repeat:no-repeat;outline:0;filter:none}.bfh-googlefonts .bfh-selectbox-options .active>a,.bfh-googlefonts .bfh-selectbox-options .active>a:hover{background-color:transparent;background-image:url(../img/bootstrap-formhelpers-googlefonts.png);background-repeat:no-repeat;outline:0;filter:none}.bfh-datepicker-calendar{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:296px}.bfh-datepicker-calendar>table.calendar{width:376px;background:#fff}.bfh-datepicker-calendar>table.calendar .months-header>th{font-size:12px;text-align:center}.bfh-datepicker-calendar>table.calendar .months-header>th.month>span{display:inline-block;width:100px}.bfh-datepicker-calendar>table.calendar .months-header>th.year>span{display:inline-block;width:50px}.bfh-datepicker-calendar>table.calendar .days-header>th{width:30px;font-size:11px;line-height:12px;text-align:center}.bfh-datepicker-calendar>table.calendar>tbody>tr>td{width:30px;font-size:11px;line-height:12px;text-align:center}.bfh-datepicker-calendar>table.calendar>tbody>tr>td.today{color:#fff;background-color:#428bca}.bfh-datepicker-calendar>table.calendar>tbody>tr>td.off{color:#999}.bfh-datepicker-calendar>table.calendar>tbody>tr>td:not(.off):hover{color:#262626;cursor:pointer;background-color:#f5f5f5}.bfh-datepicker{position:relative}.bfh-datepicker-toggle{*margin-bottom:-3px}.bfh-datepicker-toggle>input[readonly]{cursor:inherit;background-color:inherit}.open>.bfh-datepicker-calendar{display:block}.bfh-timepicker-popover{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:100px;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}.bfh-timepicker-popover>table{width:180px;margin:0}.bfh-timepicker-popover>table>tbody>tr>td{text-align:center;border:0}.bfh-timepicker-popover>table>tbody>tr>td.separator{font-size:20px;font-weight:bold;line-height:28px}.bfh-timepicker-popover>table>tbody>tr>td>div>input{width:42px!important;text-align:center}.bfh-timepicker{position:relative}.bfh-timepicker-toggle{*margin-bottom:-3px}.bfh-timepicker-toggle>input[readonly]{cursor:inherit;background-color:inherit}.open>.bfh-timepicker-popover{display:block}.bfh-slider{height:20px;margin-top:8px;margin-bottom:23px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-o-user-select:none}.bfh-slider>.bfh-slider-handle{position:absolute;width:20px;height:34px;margin-top:-7px;cursor:col-resize;background:#efefef;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px}.bfh-slider>.bfh-slider-handle>.bfh-slider-value{position:absolute;width:48px;height:20px;margin-top:5px;margin-left:-15px;line-height:20px;text-align:center;cursor:col-resize;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px}.bfh-slider>.bfh-slider-handle>.bfh-slider-value .disabled{color:#999}.bfh-slider.disabled .bfh-slider-value{color:#999}.bfh-colorpicker-popover{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:100px;padding:20px;cursor:default;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}.bfh-colorpicker-popover>canvas{width:384px;height:256px}.bfh-colorpicker{position:relative}.bfh-colorpicker-toggle{*margin-bottom:-3px}.bfh-colorpicker-toggle>input[readonly]{cursor:inherit;background-color:inherit}.bfh-colorpicker-toggle .bfh-colorpicker-icon{display:block;width:16px;height:16px}.open>.bfh-colorpicker-popover{display:block}.input-group>.bfh-number{border-right:0}.input-group>.bfh-number-btn:hover{background-color:#ccc}
\ No newline at end of file
diff --git a/gui/slick/css/lib/bootstrap.css b/gui/slick/css/lib/bootstrap.css
deleted file mode 100644
index b5465ae14bc0345520c1f7e30809321ed96a7685..0000000000000000000000000000000000000000
--- a/gui/slick/css/lib/bootstrap.css
+++ /dev/null
@@ -1,6332 +0,0 @@
-/*!
- * Bootstrap v3.3.1 (http://getbootstrap.com)
- * Copyright 2011-2014 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */
-
-/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
-html {
-  font-family: sans-serif;
-  -webkit-text-size-adjust: 100%;
-      -ms-text-size-adjust: 100%;
-}
-body {
-  margin: 0;
-}
-article,
-aside,
-details,
-figcaption,
-figure,
-footer,
-header,
-hgroup,
-main,
-menu,
-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-color: transparent;
-}
-a:active,
-a:hover {
-  outline: 0;
-}
-abbr[title] {
-  border-bottom: 1px dotted;
-}
-b,
-strong {
-  font-weight: bold;
-}
-dfn {
-  font-style: italic;
-}
-h1 {
-  margin: .67em 0;
-  font-size: 2em;
-}
-mark {
-  color: #000;
-  background: #ff0;
-}
-small {
-  font-size: 80%;
-}
-sub,
-sup {
-  position: relative;
-  font-size: 75%;
-  line-height: 0;
-  vertical-align: baseline;
-}
-sup {
-  top: -.5em;
-}
-sub {
-  bottom: -.25em;
-}
-img {
-  border: 0;
-}
-svg:not(:root) {
-  overflow: hidden;
-}
-figure {
-  margin: 1em 40px;
-}
-hr {
-  height: 0;
-  -webkit-box-sizing: content-box;
-     -moz-box-sizing: content-box;
-          box-sizing: content-box;
-}
-pre {
-  overflow: auto;
-}
-code,
-kbd,
-pre,
-samp {
-  font-family: monospace, monospace;
-  font-size: 1em;
-}
-button,
-input,
-optgroup,
-select,
-textarea {
-  margin: 0;
-  font: inherit;
-  color: inherit;
-}
-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 {
-  padding: 0;
-  border: 0;
-}
-input {
-  line-height: normal;
-}
-input[type="checkbox"],
-input[type="radio"] {
-  -webkit-box-sizing: border-box;
-     -moz-box-sizing: border-box;
-          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-box-sizing: content-box;
-     -moz-box-sizing: content-box;
-          box-sizing: content-box;
-  -webkit-appearance: textfield;
-}
-input[type="search"]::-webkit-search-cancel-button,
-input[type="search"]::-webkit-search-decoration {
-  -webkit-appearance: none;
-}
-fieldset {
-  padding: .35em .625em .75em;
-  margin: 0 2px;
-  border: 1px solid #c0c0c0;
-}
-legend {
-  padding: 0;
-  border: 0;
-}
-textarea {
-  overflow: auto;
-}
-optgroup {
-  font-weight: bold;
-}
-table {
-  border-spacing: 0;
-  border-collapse: collapse;
-}
-td,
-th {
-  padding: 0;
-}
-/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
-@media print {
-  *,
-  *:before,
-  *:after {
-    color: #000 !important;
-    text-shadow: none !important;
-    background: transparent !important;
-    -webkit-box-shadow: none !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^="#"]:after,
-  a[href^="javascript:"]: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;
-  }
-  .btn > .caret,
-  .dropup > .btn > .caret {
-    border-top-color: #000 !important;
-  }
-  .label {
-    border: 1px solid #000;
-  }
-  .table {
-    border-collapse: collapse !important;
-  }
-  .table td,
-  .table th {
-    background-color: #fff !important;
-  }
-  .table-bordered th,
-  .table-bordered td {
-    border: 1px solid #ddd !important;
-  }
-}
-@font-face {
-  font-family: 'Glyphicons Halflings';
-
-  src: url('../../../../../../../Desktop/dist/fonts/glyphicons-halflings-regular.eot');
-  src: url('../../../../../../../Desktop/dist/fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../../../../../../../Desktop/dist/fonts/glyphicons-halflings-regular.woff') format('woff'), url('../../../../../../../Desktop/dist/fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../../../../../../../Desktop/dist/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: normal;
-  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,
-.glyphicon-eur: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";
-}
-* {
-  -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: 10px;
-
-  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
-}
-body {
-  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
-  font-size: 14px;
-  line-height: 1.42857143;
-  color: #333;
-  background-color: #fff;
-}
-input,
-button,
-select,
-textarea {
-  font-family: inherit;
-  font-size: inherit;
-  line-height: inherit;
-}
-a {
-  color: #337ab7;
-  text-decoration: none;
-}
-a:hover,
-a:focus {
-  color: #23527c;
-  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,
-.thumbnail > img,
-.thumbnail a > img,
-.carousel-inner > .item > img,
-.carousel-inner > .item > a > img {
-  display: block;
-  max-width: 100%;
-  height: auto;
-}
-.img-rounded {
-  border-radius: 6px;
-}
-.img-thumbnail {
-  display: inline-block;
-  max-width: 100%;
-  height: auto;
-  padding: 4px;
-  line-height: 1.42857143;
-  background-color: #fff;
-  border: 1px solid #ddd;
-  border-radius: 4px;
-  -webkit-transition: all .2s ease-in-out;
-       -o-transition: all .2s ease-in-out;
-          transition: all .2s ease-in-out;
-}
-.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;
-  padding: 0;
-  margin: -1px;
-  overflow: hidden;
-  clip: rect(0, 0, 0, 0);
-  border: 0;
-}
-.sr-only-focusable:active,
-.sr-only-focusable:focus {
-  position: static;
-  width: auto;
-  height: auto;
-  margin: 0;
-  overflow: visible;
-  clip: auto;
-}
-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: normal;
-  line-height: 1;
-  color: #777;
-}
-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: 300;
-  line-height: 1.4;
-}
-@media (min-width: 1050px) {
-  .lead {
-    font-size: 21px;
-  }
-}
-small,
-.small {
-  font-size: 85%;
-}
-mark,
-.mark {
-  padding: .2em;
-  background-color: #fcf8e3;
-}
-.text-left {
-  text-align: left;
-}
-.text-right {
-  text-align: right;
-}
-.text-center {
-  text-align: center;
-}
-.text-justify {
-  text-align: justify;
-}
-.text-nowrap {
-  white-space: nowrap;
-}
-.text-lowercase {
-  text-transform: lowercase;
-}
-.text-uppercase {
-  text-transform: uppercase;
-}
-.text-capitalize {
-  text-transform: capitalize;
-}
-.text-muted {
-  color: #777;
-}
-.text-primary {
-  color: #337ab7;
-}
-a.text-primary:hover {
-  color: #286090;
-}
-.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: #337ab7;
-}
-a.bg-primary:hover {
-  background-color: #286090;
-}
-.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;
-  margin-left: -5px;
-  list-style: none;
-}
-.list-inline > li {
-  display: inline-block;
-  padding-right: 5px;
-  padding-left: 5px;
-}
-dl {
-  margin-top: 0;
-  margin-bottom: 20px;
-}
-dt,
-dd {
-  line-height: 1.42857143;
-}
-dt {
-  font-weight: bold;
-}
-dd {
-  margin-left: 0;
-}
-@media (min-width: 1050px) {
-  .dl-horizontal dt {
-    float: left;
-    width: 160px;
-    overflow: hidden;
-    clear: left;
-    text-align: right;
-    text-overflow: ellipsis;
-    white-space: nowrap;
-  }
-  .dl-horizontal dd {
-    margin-left: 180px;
-  }
-}
-abbr[title],
-abbr[data-original-title] {
-  cursor: help;
-  border-bottom: 1px dotted #777;
-}
-.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.42857143;
-  color: #777;
-}
-blockquote footer:before,
-blockquote small:before,
-blockquote .small:before {
-  content: '\2014 \00A0';
-}
-.blockquote-reverse,
-blockquote.pull-right {
-  padding-right: 15px;
-  padding-left: 0;
-  text-align: right;
-  border-right: 5px solid #eee;
-  border-left: 0;
-}
-.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';
-}
-address {
-  margin-bottom: 20px;
-  font-style: normal;
-  line-height: 1.42857143;
-}
-code,
-kbd,
-pre,
-samp {
-  font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
-}
-code {
-  padding: 2px 4px;
-  font-size: 90%;
-  color: #c7254e;
-  background-color: #f9f2f4;
-  border-radius: 4px;
-}
-kbd {
-  padding: 2px 4px;
-  font-size: 90%;
-  color: #fff;
-  background-color: #333;
-  border-radius: 3px;
-  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);
-          box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);
-}
-kbd kbd {
-  padding: 0;
-  font-size: 100%;
-  font-weight: bold;
-  -webkit-box-shadow: none;
-          box-shadow: none;
-}
-pre {
-  display: block;
-  padding: 9.5px;
-  margin: 0 0 10px;
-  font-size: 13px;
-  line-height: 1.42857143;
-  color: #333;
-  word-break: break-all;
-  word-wrap: break-word;
-  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 {
-  padding-right: 15px;
-  padding-left: 15px;
-  margin-right: auto;
-  margin-left: auto;
-}
-@media (min-width: 1050px) {
-  .container {
-    width: 750px;
-  }
-}
-@media (min-width: 1051px) {
-  .container {
-    width: 970px;
-  }
-}
-@media (min-width: 1200px) {
-  .container {
-    width: 1170px;
-  }
-}
-.container-fluid {
-  padding-right: 15px;
-  padding-left: 15px;
-  margin-right: auto;
-  margin-left: auto;
-}
-.row {
-  margin-right: -15px;
-  margin-left: -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-right: 15px;
-  padding-left: 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.66666667%;
-}
-.col-xs-10 {
-  width: 83.33333333%;
-}
-.col-xs-9 {
-  width: 75%;
-}
-.col-xs-8 {
-  width: 66.66666667%;
-}
-.col-xs-7 {
-  width: 58.33333333%;
-}
-.col-xs-6 {
-  width: 50%;
-}
-.col-xs-5 {
-  width: 41.66666667%;
-}
-.col-xs-4 {
-  width: 33.33333333%;
-}
-.col-xs-3 {
-  width: 25%;
-}
-.col-xs-2 {
-  width: 16.66666667%;
-}
-.col-xs-1 {
-  width: 8.33333333%;
-}
-.col-xs-pull-12 {
-  right: 100%;
-}
-.col-xs-pull-11 {
-  right: 91.66666667%;
-}
-.col-xs-pull-10 {
-  right: 83.33333333%;
-}
-.col-xs-pull-9 {
-  right: 75%;
-}
-.col-xs-pull-8 {
-  right: 66.66666667%;
-}
-.col-xs-pull-7 {
-  right: 58.33333333%;
-}
-.col-xs-pull-6 {
-  right: 50%;
-}
-.col-xs-pull-5 {
-  right: 41.66666667%;
-}
-.col-xs-pull-4 {
-  right: 33.33333333%;
-}
-.col-xs-pull-3 {
-  right: 25%;
-}
-.col-xs-pull-2 {
-  right: 16.66666667%;
-}
-.col-xs-pull-1 {
-  right: 8.33333333%;
-}
-.col-xs-pull-0 {
-  right: auto;
-}
-.col-xs-push-12 {
-  left: 100%;
-}
-.col-xs-push-11 {
-  left: 91.66666667%;
-}
-.col-xs-push-10 {
-  left: 83.33333333%;
-}
-.col-xs-push-9 {
-  left: 75%;
-}
-.col-xs-push-8 {
-  left: 66.66666667%;
-}
-.col-xs-push-7 {
-  left: 58.33333333%;
-}
-.col-xs-push-6 {
-  left: 50%;
-}
-.col-xs-push-5 {
-  left: 41.66666667%;
-}
-.col-xs-push-4 {
-  left: 33.33333333%;
-}
-.col-xs-push-3 {
-  left: 25%;
-}
-.col-xs-push-2 {
-  left: 16.66666667%;
-}
-.col-xs-push-1 {
-  left: 8.33333333%;
-}
-.col-xs-push-0 {
-  left: auto;
-}
-.col-xs-offset-12 {
-  margin-left: 100%;
-}
-.col-xs-offset-11 {
-  margin-left: 91.66666667%;
-}
-.col-xs-offset-10 {
-  margin-left: 83.33333333%;
-}
-.col-xs-offset-9 {
-  margin-left: 75%;
-}
-.col-xs-offset-8 {
-  margin-left: 66.66666667%;
-}
-.col-xs-offset-7 {
-  margin-left: 58.33333333%;
-}
-.col-xs-offset-6 {
-  margin-left: 50%;
-}
-.col-xs-offset-5 {
-  margin-left: 41.66666667%;
-}
-.col-xs-offset-4 {
-  margin-left: 33.33333333%;
-}
-.col-xs-offset-3 {
-  margin-left: 25%;
-}
-.col-xs-offset-2 {
-  margin-left: 16.66666667%;
-}
-.col-xs-offset-1 {
-  margin-left: 8.33333333%;
-}
-.col-xs-offset-0 {
-  margin-left: 0;
-}
-@media (min-width: 1050px) {
-  .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.66666667%;
-  }
-  .col-sm-10 {
-    width: 83.33333333%;
-  }
-  .col-sm-9 {
-    width: 75%;
-  }
-  .col-sm-8 {
-    width: 66.66666667%;
-  }
-  .col-sm-7 {
-    width: 58.33333333%;
-  }
-  .col-sm-6 {
-    width: 50%;
-  }
-  .col-sm-5 {
-    width: 41.66666667%;
-  }
-  .col-sm-4 {
-    width: 33.33333333%;
-  }
-  .col-sm-3 {
-    width: 25%;
-  }
-  .col-sm-2 {
-    width: 16.66666667%;
-  }
-  .col-sm-1 {
-    width: 8.33333333%;
-  }
-  .col-sm-pull-12 {
-    right: 100%;
-  }
-  .col-sm-pull-11 {
-    right: 91.66666667%;
-  }
-  .col-sm-pull-10 {
-    right: 83.33333333%;
-  }
-  .col-sm-pull-9 {
-    right: 75%;
-  }
-  .col-sm-pull-8 {
-    right: 66.66666667%;
-  }
-  .col-sm-pull-7 {
-    right: 58.33333333%;
-  }
-  .col-sm-pull-6 {
-    right: 50%;
-  }
-  .col-sm-pull-5 {
-    right: 41.66666667%;
-  }
-  .col-sm-pull-4 {
-    right: 33.33333333%;
-  }
-  .col-sm-pull-3 {
-    right: 25%;
-  }
-  .col-sm-pull-2 {
-    right: 16.66666667%;
-  }
-  .col-sm-pull-1 {
-    right: 8.33333333%;
-  }
-  .col-sm-pull-0 {
-    right: auto;
-  }
-  .col-sm-push-12 {
-    left: 100%;
-  }
-  .col-sm-push-11 {
-    left: 91.66666667%;
-  }
-  .col-sm-push-10 {
-    left: 83.33333333%;
-  }
-  .col-sm-push-9 {
-    left: 75%;
-  }
-  .col-sm-push-8 {
-    left: 66.66666667%;
-  }
-  .col-sm-push-7 {
-    left: 58.33333333%;
-  }
-  .col-sm-push-6 {
-    left: 50%;
-  }
-  .col-sm-push-5 {
-    left: 41.66666667%;
-  }
-  .col-sm-push-4 {
-    left: 33.33333333%;
-  }
-  .col-sm-push-3 {
-    left: 25%;
-  }
-  .col-sm-push-2 {
-    left: 16.66666667%;
-  }
-  .col-sm-push-1 {
-    left: 8.33333333%;
-  }
-  .col-sm-push-0 {
-    left: auto;
-  }
-  .col-sm-offset-12 {
-    margin-left: 100%;
-  }
-  .col-sm-offset-11 {
-    margin-left: 91.66666667%;
-  }
-  .col-sm-offset-10 {
-    margin-left: 83.33333333%;
-  }
-  .col-sm-offset-9 {
-    margin-left: 75%;
-  }
-  .col-sm-offset-8 {
-    margin-left: 66.66666667%;
-  }
-  .col-sm-offset-7 {
-    margin-left: 58.33333333%;
-  }
-  .col-sm-offset-6 {
-    margin-left: 50%;
-  }
-  .col-sm-offset-5 {
-    margin-left: 41.66666667%;
-  }
-  .col-sm-offset-4 {
-    margin-left: 33.33333333%;
-  }
-  .col-sm-offset-3 {
-    margin-left: 25%;
-  }
-  .col-sm-offset-2 {
-    margin-left: 16.66666667%;
-  }
-  .col-sm-offset-1 {
-    margin-left: 8.33333333%;
-  }
-  .col-sm-offset-0 {
-    margin-left: 0;
-  }
-}
-@media (min-width: 1051px) {
-  .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.66666667%;
-  }
-  .col-md-10 {
-    width: 83.33333333%;
-  }
-  .col-md-9 {
-    width: 75%;
-  }
-  .col-md-8 {
-    width: 66.66666667%;
-  }
-  .col-md-7 {
-    width: 58.33333333%;
-  }
-  .col-md-6 {
-    width: 50%;
-  }
-  .col-md-5 {
-    width: 41.66666667%;
-  }
-  .col-md-4 {
-    width: 33.33333333%;
-  }
-  .col-md-3 {
-    width: 25%;
-  }
-  .col-md-2 {
-    width: 16.66666667%;
-  }
-  .col-md-1 {
-    width: 8.33333333%;
-  }
-  .col-md-pull-12 {
-    right: 100%;
-  }
-  .col-md-pull-11 {
-    right: 91.66666667%;
-  }
-  .col-md-pull-10 {
-    right: 83.33333333%;
-  }
-  .col-md-pull-9 {
-    right: 75%;
-  }
-  .col-md-pull-8 {
-    right: 66.66666667%;
-  }
-  .col-md-pull-7 {
-    right: 58.33333333%;
-  }
-  .col-md-pull-6 {
-    right: 50%;
-  }
-  .col-md-pull-5 {
-    right: 41.66666667%;
-  }
-  .col-md-pull-4 {
-    right: 33.33333333%;
-  }
-  .col-md-pull-3 {
-    right: 25%;
-  }
-  .col-md-pull-2 {
-    right: 16.66666667%;
-  }
-  .col-md-pull-1 {
-    right: 8.33333333%;
-  }
-  .col-md-pull-0 {
-    right: auto;
-  }
-  .col-md-push-12 {
-    left: 100%;
-  }
-  .col-md-push-11 {
-    left: 91.66666667%;
-  }
-  .col-md-push-10 {
-    left: 83.33333333%;
-  }
-  .col-md-push-9 {
-    left: 75%;
-  }
-  .col-md-push-8 {
-    left: 66.66666667%;
-  }
-  .col-md-push-7 {
-    left: 58.33333333%;
-  }
-  .col-md-push-6 {
-    left: 50%;
-  }
-  .col-md-push-5 {
-    left: 41.66666667%;
-  }
-  .col-md-push-4 {
-    left: 33.33333333%;
-  }
-  .col-md-push-3 {
-    left: 25%;
-  }
-  .col-md-push-2 {
-    left: 16.66666667%;
-  }
-  .col-md-push-1 {
-    left: 8.33333333%;
-  }
-  .col-md-push-0 {
-    left: auto;
-  }
-  .col-md-offset-12 {
-    margin-left: 100%;
-  }
-  .col-md-offset-11 {
-    margin-left: 91.66666667%;
-  }
-  .col-md-offset-10 {
-    margin-left: 83.33333333%;
-  }
-  .col-md-offset-9 {
-    margin-left: 75%;
-  }
-  .col-md-offset-8 {
-    margin-left: 66.66666667%;
-  }
-  .col-md-offset-7 {
-    margin-left: 58.33333333%;
-  }
-  .col-md-offset-6 {
-    margin-left: 50%;
-  }
-  .col-md-offset-5 {
-    margin-left: 41.66666667%;
-  }
-  .col-md-offset-4 {
-    margin-left: 33.33333333%;
-  }
-  .col-md-offset-3 {
-    margin-left: 25%;
-  }
-  .col-md-offset-2 {
-    margin-left: 16.66666667%;
-  }
-  .col-md-offset-1 {
-    margin-left: 8.33333333%;
-  }
-  .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.66666667%;
-  }
-  .col-lg-10 {
-    width: 83.33333333%;
-  }
-  .col-lg-9 {
-    width: 75%;
-  }
-  .col-lg-8 {
-    width: 66.66666667%;
-  }
-  .col-lg-7 {
-    width: 58.33333333%;
-  }
-  .col-lg-6 {
-    width: 50%;
-  }
-  .col-lg-5 {
-    width: 41.66666667%;
-  }
-  .col-lg-4 {
-    width: 33.33333333%;
-  }
-  .col-lg-3 {
-    width: 25%;
-  }
-  .col-lg-2 {
-    width: 16.66666667%;
-  }
-  .col-lg-1 {
-    width: 8.33333333%;
-  }
-  .col-lg-pull-12 {
-    right: 100%;
-  }
-  .col-lg-pull-11 {
-    right: 91.66666667%;
-  }
-  .col-lg-pull-10 {
-    right: 83.33333333%;
-  }
-  .col-lg-pull-9 {
-    right: 75%;
-  }
-  .col-lg-pull-8 {
-    right: 66.66666667%;
-  }
-  .col-lg-pull-7 {
-    right: 58.33333333%;
-  }
-  .col-lg-pull-6 {
-    right: 50%;
-  }
-  .col-lg-pull-5 {
-    right: 41.66666667%;
-  }
-  .col-lg-pull-4 {
-    right: 33.33333333%;
-  }
-  .col-lg-pull-3 {
-    right: 25%;
-  }
-  .col-lg-pull-2 {
-    right: 16.66666667%;
-  }
-  .col-lg-pull-1 {
-    right: 8.33333333%;
-  }
-  .col-lg-pull-0 {
-    right: auto;
-  }
-  .col-lg-push-12 {
-    left: 100%;
-  }
-  .col-lg-push-11 {
-    left: 91.66666667%;
-  }
-  .col-lg-push-10 {
-    left: 83.33333333%;
-  }
-  .col-lg-push-9 {
-    left: 75%;
-  }
-  .col-lg-push-8 {
-    left: 66.66666667%;
-  }
-  .col-lg-push-7 {
-    left: 58.33333333%;
-  }
-  .col-lg-push-6 {
-    left: 50%;
-  }
-  .col-lg-push-5 {
-    left: 41.66666667%;
-  }
-  .col-lg-push-4 {
-    left: 33.33333333%;
-  }
-  .col-lg-push-3 {
-    left: 25%;
-  }
-  .col-lg-push-2 {
-    left: 16.66666667%;
-  }
-  .col-lg-push-1 {
-    left: 8.33333333%;
-  }
-  .col-lg-push-0 {
-    left: auto;
-  }
-  .col-lg-offset-12 {
-    margin-left: 100%;
-  }
-  .col-lg-offset-11 {
-    margin-left: 91.66666667%;
-  }
-  .col-lg-offset-10 {
-    margin-left: 83.33333333%;
-  }
-  .col-lg-offset-9 {
-    margin-left: 75%;
-  }
-  .col-lg-offset-8 {
-    margin-left: 66.66666667%;
-  }
-  .col-lg-offset-7 {
-    margin-left: 58.33333333%;
-  }
-  .col-lg-offset-6 {
-    margin-left: 50%;
-  }
-  .col-lg-offset-5 {
-    margin-left: 41.66666667%;
-  }
-  .col-lg-offset-4 {
-    margin-left: 33.33333333%;
-  }
-  .col-lg-offset-3 {
-    margin-left: 25%;
-  }
-  .col-lg-offset-2 {
-    margin-left: 16.66666667%;
-  }
-  .col-lg-offset-1 {
-    margin-left: 8.33333333%;
-  }
-  .col-lg-offset-0 {
-    margin-left: 0;
-  }
-}
-table {
-  background-color: transparent;
-}
-caption {
-  padding-top: 8px;
-  padding-bottom: 8px;
-  color: #777;
-  text-align: left;
-}
-th {
-  text-align: left;
-}
-.table {
-  width: 100%;
-  max-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.42857143;
-  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) {
-  background-color: #f9f9f9;
-}
-.table-hover > tbody > tr:hover {
-  background-color: #f5f5f5;
-}
-table col[class*="col-"] {
-  position: static;
-  display: table-column;
-  float: none;
-}
-table td[class*="col-"],
-table th[class*="col-"] {
-  position: static;
-  display: table-cell;
-  float: none;
-}
-.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:hover > .active,
-.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:hover > .success,
-.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:hover > .info,
-.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:hover > .warning,
-.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:hover > .danger,
-.table-hover > tbody > tr.danger:hover > th {
-  background-color: #ebcccc;
-}
-.table-responsive {
-  min-height: .01%;
-  overflow-x: auto;
-}
-@media screen and (max-width: 767px) {
-  .table-responsive {
-    width: 100%;
-    margin-bottom: 15px;
-    overflow-y: hidden;
-    -ms-overflow-style: -ms-autohiding-scrollbar;
-    border: 1px solid #ddd;
-  }
-  .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 {
-  min-width: 0;
-  padding: 0;
-  margin: 0;
-  border: 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;
-  max-width: 100%;
-  margin-bottom: 5px;
-  font-weight: bold;
-}
-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.42857143;
-  color: #555;
-}
-.form-control {
-  display: block;
-  width: 100%;
-  height: 34px;
-  padding: 6px 12px;
-  font-size: 14px;
-  line-height: 1.42857143;
-  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, .075);
-          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
-  -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;
-       -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
-          transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
-}
-.form-control:focus {
-  border-color: #66afe9;
-  outline: 0;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);
-          box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);
-}
-.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="search"] {
-  -webkit-appearance: none;
-}
-@media screen and (-webkit-min-device-pixel-ratio: 0) {
-  input[type="date"],
-  input[type="time"],
-  input[type="datetime-local"],
-  input[type="month"] {
-    line-height: 34px;
-  }
-  input[type="date"].input-sm,
-  input[type="time"].input-sm,
-  input[type="datetime-local"].input-sm,
-  input[type="month"].input-sm {
-    line-height: 30px;
-  }
-  input[type="date"].input-lg,
-  input[type="time"].input-lg,
-  input[type="datetime-local"].input-lg,
-  input[type="month"].input-lg {
-    line-height: 46px;
-  }
-}
-.form-group {
-  margin-bottom: 15px;
-}
-.radio,
-.checkbox {
-  position: relative;
-  display: block;
-  margin-top: 10px;
-  margin-bottom: 10px;
-}
-.radio label,
-.checkbox label {
-  min-height: 20px;
-  padding-left: 20px;
-  margin-bottom: 0;
-  font-weight: normal;
-  cursor: pointer;
-}
-.radio input[type="radio"],
-.radio-inline input[type="radio"],
-.checkbox input[type="checkbox"],
-.checkbox-inline input[type="checkbox"] {
-  position: absolute;
-  margin-top: 4px \9;
-  margin-left: -20px;
-}
-.radio + .radio,
-.checkbox + .checkbox {
-  margin-top: -5px;
-}
-.radio-inline,
-.checkbox-inline {
-  display: inline-block;
-  padding-left: 20px;
-  margin-bottom: 0;
-  font-weight: normal;
-  vertical-align: middle;
-  cursor: pointer;
-}
-.radio-inline + .radio-inline,
-.checkbox-inline + .checkbox-inline {
-  margin-top: 0;
-  margin-left: 10px;
-}
-input[type="radio"][disabled],
-input[type="checkbox"][disabled],
-input[type="radio"].disabled,
-input[type="checkbox"].disabled,
-fieldset[disabled] input[type="radio"],
-fieldset[disabled] input[type="checkbox"] {
-  cursor: not-allowed;
-}
-.radio-inline.disabled,
-.checkbox-inline.disabled,
-fieldset[disabled] .radio-inline,
-fieldset[disabled] .checkbox-inline {
-  cursor: not-allowed;
-}
-.radio.disabled label,
-.checkbox.disabled label,
-fieldset[disabled] .radio label,
-fieldset[disabled] .checkbox label {
-  cursor: not-allowed;
-}
-.form-control-static {
-  padding-top: 7px;
-  padding-bottom: 7px;
-  margin-bottom: 0;
-}
-.form-control-static.input-lg,
-.form-control-static.input-sm {
-  padding-right: 0;
-  padding-left: 0;
-}
-.input-sm,
-.form-group-sm .form-control {
-  height: 30px;
-  padding: 5px 10px;
-  font-size: 12px;
-  line-height: 1.5;
-  border-radius: 3px;
-}
-select.input-sm,
-select.form-group-sm .form-control {
-  height: 30px;
-  line-height: 30px;
-}
-textarea.input-sm,
-textarea.form-group-sm .form-control,
-select[multiple].input-sm,
-select[multiple].form-group-sm .form-control {
-  height: auto;
-}
-.input-lg,
-.form-group-lg .form-control {
-  height: 46px;
-  padding: 10px 16px;
-  font-size: 18px;
-  line-height: 1.33;
-  border-radius: 6px;
-}
-select.input-lg,
-select.form-group-lg .form-control {
-  height: 46px;
-  line-height: 46px;
-}
-textarea.input-lg,
-textarea.form-group-lg .form-control,
-select[multiple].input-lg,
-select[multiple].form-group-lg .form-control {
-  height: auto;
-}
-.has-feedback {
-  position: relative;
-}
-.has-feedback .form-control {
-  padding-right: 42.5px;
-}
-.form-control-feedback {
-  position: absolute;
-  top: 0;
-  right: 0;
-  z-index: 2;
-  display: block;
-  width: 34px;
-  height: 34px;
-  line-height: 34px;
-  text-align: center;
-  pointer-events: none;
-}
-.input-lg + .form-control-feedback {
-  width: 46px;
-  height: 46px;
-  line-height: 46px;
-}
-.input-sm + .form-control-feedback {
-  width: 30px;
-  height: 30px;
-  line-height: 30px;
-}
-.has-success .help-block,
-.has-success .control-label,
-.has-success .radio,
-.has-success .checkbox,
-.has-success .radio-inline,
-.has-success .checkbox-inline,
-.has-success.radio label,
-.has-success.checkbox label,
-.has-success.radio-inline label,
-.has-success.checkbox-inline label {
-  color: #3c763d;
-}
-.has-success .form-control {
-  border-color: #3c763d;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
-          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
-}
-.has-success .form-control:focus {
-  border-color: #2b542c;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168;
-          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168;
-}
-.has-success .input-group-addon {
-  color: #3c763d;
-  background-color: #dff0d8;
-  border-color: #3c763d;
-}
-.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,
-.has-warning.radio label,
-.has-warning.checkbox label,
-.has-warning.radio-inline label,
-.has-warning.checkbox-inline label {
-  color: #8a6d3b;
-}
-.has-warning .form-control {
-  border-color: #8a6d3b;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
-          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
-}
-.has-warning .form-control:focus {
-  border-color: #66512c;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b;
-          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b;
-}
-.has-warning .input-group-addon {
-  color: #8a6d3b;
-  background-color: #fcf8e3;
-  border-color: #8a6d3b;
-}
-.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,
-.has-error.radio label,
-.has-error.checkbox label,
-.has-error.radio-inline label,
-.has-error.checkbox-inline label {
-  color: #a94442;
-}
-.has-error .form-control {
-  border-color: #a94442;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
-          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
-}
-.has-error .form-control:focus {
-  border-color: #843534;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483;
-          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483;
-}
-.has-error .input-group-addon {
-  color: #a94442;
-  background-color: #f2dede;
-  border-color: #a94442;
-}
-.has-error .form-control-feedback {
-  color: #a94442;
-}
-.has-feedback label ~ .form-control-feedback {
-  top: 25px;
-}
-.has-feedback label.sr-only ~ .form-control-feedback {
-  top: 0;
-}
-.help-block {
-  display: block;
-  margin-top: 5px;
-  margin-bottom: 10px;
-  color: #737373;
-}
-@media (min-width: 1050px) {
-  .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 .form-control-static {
-    display: inline-block;
-  }
-  .form-inline .input-group {
-    display: inline-table;
-    vertical-align: middle;
-  }
-  .form-inline .input-group .input-group-addon,
-  .form-inline .input-group .input-group-btn,
-  .form-inline .input-group .form-control {
-    width: auto;
-  }
-  .form-inline .input-group > .form-control {
-    width: 100%;
-  }
-  .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;
-    vertical-align: middle;
-  }
-  .form-inline .radio label,
-  .form-inline .checkbox label {
-    padding-left: 0;
-  }
-  .form-inline .radio input[type="radio"],
-  .form-inline .checkbox input[type="checkbox"] {
-    position: relative;
-    margin-left: 0;
-  }
-  .form-inline .has-feedback .form-control-feedback {
-    top: 0;
-  }
-}
-.form-horizontal .radio,
-.form-horizontal .checkbox,
-.form-horizontal .radio-inline,
-.form-horizontal .checkbox-inline {
-  padding-top: 7px;
-  margin-top: 0;
-  margin-bottom: 0;
-}
-.form-horizontal .radio,
-.form-horizontal .checkbox {
-  min-height: 27px;
-}
-.form-horizontal .form-group {
-  margin-right: -15px;
-  margin-left: -15px;
-}
-@media (min-width: 1050px) {
-  .form-horizontal .control-label {
-    padding-top: 7px;
-    margin-bottom: 0;
-    text-align: right;
-  }
-}
-.form-horizontal .has-feedback .form-control-feedback {
-  right: 15px;
-}
-@media (min-width: 1050px) {
-  .form-horizontal .form-group-lg .control-label {
-    padding-top: 14.3px;
-  }
-}
-@media (min-width: 1050px) {
-  .form-horizontal .form-group-sm .control-label {
-    padding-top: 6px;
-  }
-}
-.btn {
-  display: inline-block;
-  padding: 6px 12px;
-  margin-bottom: 0;
-  font-size: 14px;
-  font-weight: normal;
-  line-height: 1.42857143;
-  text-align: center;
-  white-space: nowrap;
-  vertical-align: middle;
-  -ms-touch-action: manipulation;
-      touch-action: manipulation;
-  cursor: pointer;
-  -webkit-user-select: none;
-     -moz-user-select: none;
-      -ms-user-select: none;
-          user-select: none;
-  background-image: none;
-  border: 1px solid transparent;
-  border-radius: 4px;
-}
-.btn:focus,
-.btn:active:focus,
-.btn.active:focus,
-.btn.focus,
-.btn:active.focus,
-.btn.active.focus {
-  outline: thin dotted;
-  outline: 5px auto -webkit-focus-ring-color;
-  outline-offset: -2px;
-}
-.btn:hover,
-.btn:focus,
-.btn.focus {
-  color: #333;
-  text-decoration: none;
-}
-.btn:active,
-.btn.active {
-  background-image: none;
-  outline: 0;
-  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
-          box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
-}
-.btn.disabled,
-.btn[disabled],
-fieldset[disabled] .btn {
-  pointer-events: none;
-  cursor: not-allowed;
-  filter: alpha(opacity=65);
-  -webkit-box-shadow: none;
-          box-shadow: none;
-  opacity: .65;
-}
-.btn-default {
-  color: #333;
-  background-color: #fff;
-  border-color: #ccc;
-}
-.btn-default:hover,
-.btn-default:focus,
-.btn-default.focus,
-.btn-default:active,
-.btn-default.active,
-.open > .dropdown-toggle.btn-default {
-  color: #333;
-  background-color: #e6e6e6;
-  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.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: #337ab7;
-  border-color: #2e6da4;
-}
-.btn-primary:hover,
-.btn-primary:focus,
-.btn-primary.focus,
-.btn-primary:active,
-.btn-primary.active,
-.open > .dropdown-toggle.btn-primary {
-  color: #fff;
-  background-color: #286090;
-  border-color: #204d74;
-}
-.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.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: #337ab7;
-  border-color: #2e6da4;
-}
-.btn-primary .badge {
-  color: #337ab7;
-  background-color: #fff;
-}
-.btn-success {
-  color: #fff;
-  background-color: #5cb85c;
-  border-color: #4cae4c;
-}
-.btn-success:hover,
-.btn-success:focus,
-.btn-success.focus,
-.btn-success:active,
-.btn-success.active,
-.open > .dropdown-toggle.btn-success {
-  color: #fff;
-  background-color: #449d44;
-  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.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.focus,
-.btn-info:active,
-.btn-info.active,
-.open > .dropdown-toggle.btn-info {
-  color: #fff;
-  background-color: #31b0d5;
-  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.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.focus,
-.btn-warning:active,
-.btn-warning.active,
-.open > .dropdown-toggle.btn-warning {
-  color: #fff;
-  background-color: #ec971f;
-  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.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.focus,
-.btn-danger:active,
-.btn-danger.active,
-.open > .dropdown-toggle.btn-danger {
-  color: #fff;
-  background-color: #c9302c;
-  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.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 {
-  font-weight: normal;
-  color: #337ab7;
-  border-radius: 0;
-}
-.btn-link,
-.btn-link:active,
-.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: #23527c;
-  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: #777;
-  text-decoration: none;
-}
-.btn-lg,
-.btn-group-lg > .btn {
-  padding: 10px 16px;
-  font-size: 18px;
-  line-height: 1.33;
-  border-radius: 6px;
-}
-.btn-sm,
-.btn-group-sm > .btn {
-  padding: 5px 10px;
-  font-size: 12px;
-  line-height: 1.5;
-  border-radius: 3px;
-}
-.btn-xs,
-.btn-group-xs > .btn {
-  padding: 1px 5px;
-  font-size: 12px;
-  line-height: 1.5;
-  border-radius: 3px;
-}
-.btn-block {
-  display: block;
-  width: 100%;
-}
-.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 .15s linear;
-       -o-transition: opacity .15s linear;
-          transition: opacity .15s linear;
-}
-.fade.in {
-  opacity: 1;
-}
-.collapse {
-  display: none;
-  visibility: hidden;
-}
-.collapse.in {
-  display: block;
-  visibility: visible;
-}
-tr.collapse.in {
-  display: table-row;
-}
-tbody.collapse.in {
-  display: table-row-group;
-}
-.collapsing {
-  position: relative;
-  height: 0;
-  overflow: hidden;
-  -webkit-transition-timing-function: ease;
-       -o-transition-timing-function: ease;
-          transition-timing-function: ease;
-  -webkit-transition-duration: .35s;
-       -o-transition-duration: .35s;
-          transition-duration: .35s;
-  -webkit-transition-property: height, visibility;
-       -o-transition-property: height, visibility;
-          transition-property: height, visibility;
-}
-.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;
-  font-size: 14px;
-  text-align: left;
-  list-style: none;
-  background-color: #fff;
-  -webkit-background-clip: padding-box;
-          background-clip: padding-box;
-  border: 1px solid #ccc;
-  border: 1px solid rgba(0, 0, 0, .15);
-  border-radius: 4px;
-  -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
-          box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
-}
-.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: normal;
-  line-height: 1.42857143;
-  color: #333;
-  white-space: nowrap;
-}
-.dropdown-menu > li > a:hover,
-.dropdown-menu > li > a:focus {
-  color: #262626;
-  text-decoration: none;
-  background-color: #f5f5f5;
-}
-.dropdown-menu > .active > a,
-.dropdown-menu > .active > a:hover,
-.dropdown-menu > .active > a:focus {
-  color: #fff;
-  text-decoration: none;
-  background-color: #337ab7;
-  outline: 0;
-}
-.dropdown-menu > .disabled > a,
-.dropdown-menu > .disabled > a:hover,
-.dropdown-menu > .disabled > a:focus {
-  color: #777;
-}
-.dropdown-menu > .disabled > a:hover,
-.dropdown-menu > .disabled > a:focus {
-  text-decoration: none;
-  cursor: not-allowed;
-  background-color: transparent;
-  background-image: none;
-  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
-}
-.open > .dropdown-menu {
-  display: block;
-}
-.open > a {
-  outline: 0;
-}
-.dropdown-menu-right {
-  right: 0;
-  left: auto;
-}
-.dropdown-menu-left {
-  right: auto;
-  left: 0;
-}
-.dropdown-header {
-  display: block;
-  padding: 3px 20px;
-  font-size: 12px;
-  line-height: 1.42857143;
-  color: #777;
-  white-space: nowrap;
-}
-.dropdown-backdrop {
-  position: fixed;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  z-index: 990;
-}
-.pull-right > .dropdown-menu {
-  right: 0;
-  left: auto;
-}
-.dropup .caret,
-.navbar-fixed-bottom .dropdown .caret {
-  content: "";
-  border-top: 0;
-  border-bottom: 4px solid;
-}
-.dropup .dropdown-menu,
-.navbar-fixed-bottom .dropdown .dropdown-menu {
-  top: auto;
-  bottom: 100%;
-  margin-bottom: 1px;
-}
-@media (min-width: 1050px) {
-  .navbar-right .dropdown-menu {
-    right: 0;
-    left: auto;
-  }
-  .navbar-right .dropdown-menu-left {
-    right: auto;
-    left: 0;
-  }
-}
-.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 + .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-top-right-radius: 0;
-  border-bottom-right-radius: 0;
-}
-.btn-group > .btn:last-child:not(:first-child),
-.btn-group > .dropdown-toggle:not(:first-child) {
-  border-top-left-radius: 0;
-  border-bottom-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-top-right-radius: 0;
-  border-bottom-right-radius: 0;
-}
-.btn-group > .btn-group:last-child > .btn:first-child {
-  border-top-left-radius: 0;
-  border-bottom-left-radius: 0;
-}
-.btn-group .dropdown-toggle:active,
-.btn-group.open .dropdown-toggle {
-  outline: 0;
-}
-.btn-group > .btn + .dropdown-toggle {
-  padding-right: 8px;
-  padding-left: 8px;
-}
-.btn-group > .btn-lg + .dropdown-toggle {
-  padding-right: 12px;
-  padding-left: 12px;
-}
-.btn-group.open .dropdown-toggle {
-  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
-          box-shadow: inset 0 3px 5px rgba(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-top-left-radius: 0;
-  border-top-right-radius: 0;
-  border-bottom-left-radius: 4px;
-}
-.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-left-radius: 0;
-  border-top-right-radius: 0;
-}
-.btn-group-justified {
-  display: table;
-  width: 100%;
-  table-layout: fixed;
-  border-collapse: separate;
-}
-.btn-group-justified > .btn,
-.btn-group-justified > .btn-group {
-  display: table-cell;
-  float: none;
-  width: 1%;
-}
-.btn-group-justified > .btn-group .btn {
-  width: 100%;
-}
-.btn-group-justified > .btn-group .dropdown-menu {
-  left: auto;
-}
-[data-toggle="buttons"] > .btn input[type="radio"],
-[data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
-[data-toggle="buttons"] > .btn input[type="checkbox"],
-[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] {
-  position: absolute;
-  clip: rect(0, 0, 0, 0);
-  pointer-events: none;
-}
-.input-group {
-  position: relative;
-  display: table;
-  border-collapse: separate;
-}
-.input-group[class*="col-"] {
-  float: none;
-  padding-right: 0;
-  padding-left: 0;
-}
-.input-group .form-control {
-  position: relative;
-  z-index: 2;
-  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: normal;
-  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-top-right-radius: 0;
-  border-bottom-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-top-left-radius: 0;
-  border-bottom-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 {
-  padding-left: 0;
-  margin-bottom: 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: #777;
-}
-.nav > li.disabled > a:hover,
-.nav > li.disabled > a:focus {
-  color: #777;
-  text-decoration: none;
-  cursor: not-allowed;
-  background-color: transparent;
-}
-.nav .open > a,
-.nav .open > a:hover,
-.nav .open > a:focus {
-  background-color: #eee;
-  border-color: #337ab7;
-}
-.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.42857143;
-  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;
-  cursor: default;
-  background-color: #fff;
-  border: 1px solid #ddd;
-  border-bottom-color: transparent;
-}
-.nav-tabs.nav-justified {
-  width: 100%;
-  border-bottom: 0;
-}
-.nav-tabs.nav-justified > li {
-  float: none;
-}
-.nav-tabs.nav-justified > li > a {
-  margin-bottom: 5px;
-  text-align: center;
-}
-.nav-tabs.nav-justified > .dropdown .dropdown-menu {
-  top: auto;
-  left: auto;
-}
-@media (min-width: 1050px) {
-  .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: 1050px) {
-  .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: #337ab7;
-}
-.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 {
-  margin-bottom: 5px;
-  text-align: center;
-}
-.nav-justified > .dropdown .dropdown-menu {
-  top: auto;
-  left: auto;
-}
-@media (min-width: 1050px) {
-  .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: 1050px) {
-  .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;
-  visibility: hidden;
-}
-.tab-content > .active {
-  display: block;
-  visibility: visible;
-}
-.nav-tabs .dropdown-menu {
-  margin-top: -1px;
-  border-top-left-radius: 0;
-  border-top-right-radius: 0;
-}
-.navbar {
-  position: relative;
-  min-height: 50px;
-  margin-bottom: 20px;
-  border: 1px solid transparent;
-}
-@media (min-width: 1050px) {
-  .navbar {
-    border-radius: 4px;
-  }
-}
-@media (min-width: 1050px) {
-  .navbar-header {
-    float: left;
-  }
-}
-.navbar-collapse {
-  padding-right: 15px;
-  padding-left: 15px;
-  overflow-x: visible;
-  -webkit-overflow-scrolling: touch;
-  border-top: 1px solid transparent;
-  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);
-          box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);
-}
-.navbar-collapse.in {
-  overflow-y: auto;
-}
-@media (min-width: 1050px) {
-  .navbar-collapse {
-    width: auto;
-    border-top: 0;
-    -webkit-box-shadow: none;
-            box-shadow: none;
-  }
-  .navbar-collapse.collapse {
-    display: block !important;
-    height: auto !important;
-    padding-bottom: 0;
-    overflow: visible !important;
-    visibility: visible !important;
-  }
-  .navbar-collapse.in {
-    overflow-y: visible;
-  }
-  .navbar-fixed-top .navbar-collapse,
-  .navbar-static-top .navbar-collapse,
-  .navbar-fixed-bottom .navbar-collapse {
-    padding-right: 0;
-    padding-left: 0;
-  }
-}
-.navbar-fixed-top .navbar-collapse,
-.navbar-fixed-bottom .navbar-collapse {
-  max-height: 340px;
-}
-@media (max-device-width: 480px) and (orientation: landscape) {
-  .navbar-fixed-top .navbar-collapse,
-  .navbar-fixed-bottom .navbar-collapse {
-    max-height: 200px;
-  }
-}
-.container > .navbar-header,
-.container-fluid > .navbar-header,
-.container > .navbar-collapse,
-.container-fluid > .navbar-collapse {
-  margin-right: -15px;
-  margin-left: -15px;
-}
-@media (min-width: 1050px) {
-  .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: 1050px) {
-  .navbar-static-top {
-    border-radius: 0;
-  }
-}
-.navbar-fixed-top,
-.navbar-fixed-bottom {
-  position: fixed;
-  right: 0;
-  left: 0;
-  z-index: 1030;
-}
-@media (min-width: 1050px) {
-  .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;
-  height: 50px;
-  padding: 15px 15px;
-  font-size: 18px;
-  line-height: 20px;
-}
-.navbar-brand:hover,
-.navbar-brand:focus {
-  text-decoration: none;
-}
-.navbar-brand > img {
-  display: block;
-}
-@media (min-width: 1050px) {
-  .navbar > .container .navbar-brand,
-  .navbar > .container-fluid .navbar-brand {
-    margin-left: -15px;
-  }
-}
-.navbar-toggle {
-  position: relative;
-  float: right;
-  padding: 9px 10px;
-  margin-top: 8px;
-  margin-right: 15px;
-  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: 1050px) {
-  .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;
-    -webkit-box-shadow: none;
-            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: 1050px) {
-  .navbar-nav {
-    float: left;
-    margin: 0;
-  }
-  .navbar-nav > li {
-    float: left;
-  }
-  .navbar-nav > li > a {
-    padding-top: 15px;
-    padding-bottom: 15px;
-  }
-}
-.navbar-form {
-  padding: 10px 15px;
-  margin-top: 8px;
-  margin-right: -15px;
-  margin-bottom: 8px;
-  margin-left: -15px;
-  border-top: 1px solid transparent;
-  border-bottom: 1px solid transparent;
-  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1);
-          box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1);
-}
-@media (min-width: 1050px) {
-  .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 .form-control-static {
-    display: inline-block;
-  }
-  .navbar-form .input-group {
-    display: inline-table;
-    vertical-align: middle;
-  }
-  .navbar-form .input-group .input-group-addon,
-  .navbar-form .input-group .input-group-btn,
-  .navbar-form .input-group .form-control {
-    width: auto;
-  }
-  .navbar-form .input-group > .form-control {
-    width: 100%;
-  }
-  .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;
-    vertical-align: middle;
-  }
-  .navbar-form .radio label,
-  .navbar-form .checkbox label {
-    padding-left: 0;
-  }
-  .navbar-form .radio input[type="radio"],
-  .navbar-form .checkbox input[type="checkbox"] {
-    position: relative;
-    margin-left: 0;
-  }
-  .navbar-form .has-feedback .form-control-feedback {
-    top: 0;
-  }
-}
-@media (max-width: 767px) {
-  .navbar-form .form-group {
-    margin-bottom: 5px;
-  }
-  .navbar-form .form-group:last-child {
-    margin-bottom: 0;
-  }
-}
-@media (min-width: 1050px) {
-  .navbar-form {
-    width: auto;
-    padding-top: 0;
-    padding-bottom: 0;
-    margin-right: 0;
-    margin-left: 0;
-    border: 0;
-    -webkit-box-shadow: none;
-            box-shadow: none;
-  }
-}
-.navbar-nav > li > .dropdown-menu {
-  margin-top: 0;
-  border-top-left-radius: 0;
-  border-top-right-radius: 0;
-}
-.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
-  border-top-left-radius: 4px;
-  border-top-right-radius: 4px;
-  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: 1050px) {
-  .navbar-text {
-    float: left;
-    margin-right: 15px;
-    margin-left: 15px;
-  }
-}
-@media (min-width: 1050px) {
-  .navbar-left {
-    float: left !important;
-  }
-  .navbar-right {
-    float: right !important;
-    margin-right: -15px;
-  }
-  .navbar-right ~ .navbar-right {
-    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 {
-  color: #555;
-  background-color: #e7e7e7;
-}
-@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-default .btn-link {
-  color: #777;
-}
-.navbar-default .btn-link:hover,
-.navbar-default .btn-link:focus {
-  color: #333;
-}
-.navbar-default .btn-link[disabled]:hover,
-fieldset[disabled] .navbar-default .btn-link:hover,
-.navbar-default .btn-link[disabled]:focus,
-fieldset[disabled] .navbar-default .btn-link:focus {
-  color: #ccc;
-}
-.navbar-inverse {
-  background-color: #222;
-  border-color: #080808;
-}
-.navbar-inverse .navbar-brand {
-  color: #9d9d9d;
-}
-.navbar-inverse .navbar-brand:hover,
-.navbar-inverse .navbar-brand:focus {
-  color: #fff;
-  background-color: transparent;
-}
-.navbar-inverse .navbar-text {
-  color: #9d9d9d;
-}
-.navbar-inverse .navbar-nav > li > a {
-  color: #9d9d9d;
-}
-.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 {
-  color: #fff;
-  background-color: #080808;
-}
-@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: #9d9d9d;
-  }
-  .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: #9d9d9d;
-}
-.navbar-inverse .navbar-link:hover {
-  color: #fff;
-}
-.navbar-inverse .btn-link {
-  color: #9d9d9d;
-}
-.navbar-inverse .btn-link:hover,
-.navbar-inverse .btn-link:focus {
-  color: #fff;
-}
-.navbar-inverse .btn-link[disabled]:hover,
-fieldset[disabled] .navbar-inverse .btn-link:hover,
-.navbar-inverse .btn-link[disabled]:focus,
-fieldset[disabled] .navbar-inverse .btn-link:focus {
-  color: #444;
-}
-.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 {
-  padding: 0 5px;
-  color: #ccc;
-  content: "/\00a0";
-}
-.breadcrumb > .active {
-  color: #777;
-}
-.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;
-  margin-left: -1px;
-  line-height: 1.42857143;
-  color: #337ab7;
-  text-decoration: none;
-  background-color: #fff;
-  border: 1px solid #ddd;
-}
-.pagination > li:first-child > a,
-.pagination > li:first-child > span {
-  margin-left: 0;
-  border-top-left-radius: 4px;
-  border-bottom-left-radius: 4px;
-}
-.pagination > li:last-child > a,
-.pagination > li:last-child > span {
-  border-top-right-radius: 4px;
-  border-bottom-right-radius: 4px;
-}
-.pagination > li > a:hover,
-.pagination > li > span:hover,
-.pagination > li > a:focus,
-.pagination > li > span:focus {
-  color: #23527c;
-  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;
-  cursor: default;
-  background-color: #337ab7;
-  border-color: #337ab7;
-}
-.pagination > .disabled > span,
-.pagination > .disabled > span:hover,
-.pagination > .disabled > span:focus,
-.pagination > .disabled > a,
-.pagination > .disabled > a:hover,
-.pagination > .disabled > a:focus {
-  color: #777;
-  cursor: not-allowed;
-  background-color: #fff;
-  border-color: #ddd;
-}
-.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-top-left-radius: 6px;
-  border-bottom-left-radius: 6px;
-}
-.pagination-lg > li:last-child > a,
-.pagination-lg > li:last-child > span {
-  border-top-right-radius: 6px;
-  border-bottom-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-top-left-radius: 3px;
-  border-bottom-left-radius: 3px;
-}
-.pagination-sm > li:last-child > a,
-.pagination-sm > li:last-child > span {
-  border-top-right-radius: 3px;
-  border-bottom-right-radius: 3px;
-}
-.pager {
-  padding-left: 0;
-  margin: 20px 0;
-  text-align: center;
-  list-style: none;
-}
-.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: #777;
-  cursor: not-allowed;
-  background-color: #fff;
-}
-.label {
-  display: inline;
-  padding: .2em .6em .3em;
-  font-size: 75%;
-  font-weight: bold;
-  line-height: 1;
-  color: #fff;
-  text-align: center;
-  white-space: nowrap;
-  vertical-align: baseline;
-  border-radius: .25em;
-}
-a.label:hover,
-a.label:focus {
-  color: #fff;
-  text-decoration: none;
-  cursor: pointer;
-}
-.label:empty {
-  display: none;
-}
-.btn .label {
-  position: relative;
-  top: -1px;
-}
-.label-default {
-  background-color: #777;
-}
-.label-default[href]:hover,
-.label-default[href]:focus {
-  background-color: #5e5e5e;
-}
-.label-primary {
-  background-color: #337ab7;
-}
-.label-primary[href]:hover,
-.label-primary[href]:focus {
-  background-color: #286090;
-}
-.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: bold;
-  line-height: 1;
-  color: #fff;
-  text-align: center;
-  white-space: nowrap;
-  vertical-align: baseline;
-  background-color: #777;
-  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;
-}
-.list-group-item.active > .badge,
-.nav-pills > .active > a > .badge {
-  color: #337ab7;
-  background-color: #fff;
-}
-.list-group-item > .badge {
-  float: right;
-}
-.list-group-item > .badge + .badge {
-  margin-right: 5px;
-}
-.nav-pills > li > a > .badge {
-  margin-left: 3px;
-}
-.jumbotron {
-  padding: 30px 15px;
-  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;
-}
-.jumbotron > hr {
-  border-top-color: #d5d5d5;
-}
-.container .jumbotron,
-.container-fluid .jumbotron {
-  border-radius: 6px;
-}
-.jumbotron .container {
-  max-width: 100%;
-}
-@media screen and (min-width: 768px) {
-  .jumbotron {
-    padding: 48px 0;
-  }
-  .container .jumbotron,
-  .container-fluid .jumbotron {
-    padding-right: 60px;
-    padding-left: 60px;
-  }
-  .jumbotron h1,
-  .jumbotron .h1 {
-    font-size: 63px;
-  }
-}
-.thumbnail {
-  display: block;
-  padding: 4px;
-  margin-bottom: 20px;
-  line-height: 1.42857143;
-  background-color: #fff;
-  border: 1px solid #ddd;
-  border-radius: 4px;
-  -webkit-transition: border .2s ease-in-out;
-       -o-transition: border .2s ease-in-out;
-          transition: border .2s ease-in-out;
-}
-.thumbnail > img,
-.thumbnail a > img {
-  margin-right: auto;
-  margin-left: auto;
-}
-a.thumbnail:hover,
-a.thumbnail:focus,
-a.thumbnail.active {
-  border-color: #337ab7;
-}
-.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: bold;
-}
-.alert > p,
-.alert > ul {
-  margin-bottom: 0;
-}
-.alert > p + p {
-  margin-top: 5px;
-}
-.alert-dismissable,
-.alert-dismissible {
-  padding-right: 35px;
-}
-.alert-dismissable .close,
-.alert-dismissible .close {
-  position: relative;
-  top: -2px;
-  right: -21px;
-  color: inherit;
-}
-.alert-success {
-  color: #3c763d;
-  background-color: #dff0d8;
-  border-color: #d6e9c6;
-}
-.alert-success hr {
-  border-top-color: #c9e2b3;
-}
-.alert-success .alert-link {
-  color: #2b542c;
-}
-.alert-info {
-  color: #31708f;
-  background-color: #d9edf7;
-  border-color: #bce8f1;
-}
-.alert-info hr {
-  border-top-color: #a6e1ec;
-}
-.alert-info .alert-link {
-  color: #245269;
-}
-.alert-warning {
-  color: #8a6d3b;
-  background-color: #fcf8e3;
-  border-color: #faebcc;
-}
-.alert-warning hr {
-  border-top-color: #f7e1b5;
-}
-.alert-warning .alert-link {
-  color: #66512c;
-}
-.alert-danger {
-  color: #a94442;
-  background-color: #f2dede;
-  border-color: #ebccd1;
-}
-.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;
-  }
-}
-@-o-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 {
-  height: 20px;
-  margin-bottom: 20px;
-  overflow: hidden;
-  background-color: #f5f5f5;
-  border-radius: 4px;
-  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1);
-          box-shadow: inset 0 1px 2px rgba(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: #337ab7;
-  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15);
-          box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15);
-  -webkit-transition: width .6s ease;
-       -o-transition: width .6s ease;
-          transition: width .6s ease;
-}
-.progress-striped .progress-bar,
-.progress-bar-striped {
-  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
-  background-image:      -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
-  background-image:         linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
-  -webkit-background-size: 40px 40px;
-          background-size: 40px 40px;
-}
-.progress.active .progress-bar,
-.progress-bar.active {
-  -webkit-animation: progress-bar-stripes 2s linear infinite;
-       -o-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, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
-  background-image:      -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
-  background-image:         linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .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, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
-  background-image:      -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
-  background-image:         linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .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, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
-  background-image:      -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
-  background-image:         linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .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, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
-  background-image:      -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
-  background-image:         linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
-}
-.media {
-  margin-top: 15px;
-}
-.media:first-child {
-  margin-top: 0;
-}
-.media-right,
-.media > .pull-right {
-  padding-left: 10px;
-}
-.media-left,
-.media > .pull-left {
-  padding-right: 10px;
-}
-.media-left,
-.media-right,
-.media-body {
-  display: table-cell;
-  vertical-align: top;
-}
-.media-middle {
-  vertical-align: middle;
-}
-.media-bottom {
-  vertical-align: bottom;
-}
-.media-heading {
-  margin-top: 0;
-  margin-bottom: 5px;
-}
-.media-list {
-  padding-left: 0;
-  list-style: none;
-}
-.list-group {
-  padding-left: 0;
-  margin-bottom: 20px;
-}
-.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-left-radius: 4px;
-  border-top-right-radius: 4px;
-}
-.list-group-item:last-child {
-  margin-bottom: 0;
-  border-bottom-right-radius: 4px;
-  border-bottom-left-radius: 4px;
-}
-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 {
-  color: #555;
-  text-decoration: none;
-  background-color: #f5f5f5;
-}
-.list-group-item.disabled,
-.list-group-item.disabled:hover,
-.list-group-item.disabled:focus {
-  color: #777;
-  cursor: not-allowed;
-  background-color: #eee;
-}
-.list-group-item.disabled .list-group-item-heading,
-.list-group-item.disabled:hover .list-group-item-heading,
-.list-group-item.disabled:focus .list-group-item-heading {
-  color: inherit;
-}
-.list-group-item.disabled .list-group-item-text,
-.list-group-item.disabled:hover .list-group-item-text,
-.list-group-item.disabled:focus .list-group-item-text {
-  color: #777;
-}
-.list-group-item.active,
-.list-group-item.active:hover,
-.list-group-item.active:focus {
-  z-index: 2;
-  color: #fff;
-  background-color: #337ab7;
-  border-color: #337ab7;
-}
-.list-group-item.active .list-group-item-heading,
-.list-group-item.active:hover .list-group-item-heading,
-.list-group-item.active:focus .list-group-item-heading,
-.list-group-item.active .list-group-item-heading > small,
-.list-group-item.active:hover .list-group-item-heading > small,
-.list-group-item.active:focus .list-group-item-heading > small,
-.list-group-item.active .list-group-item-heading > .small,
-.list-group-item.active:hover .list-group-item-heading > .small,
-.list-group-item.active:focus .list-group-item-heading > .small {
-  color: inherit;
-}
-.list-group-item.active .list-group-item-text,
-.list-group-item.active:hover .list-group-item-text,
-.list-group-item.active:focus .list-group-item-text {
-  color: #c7ddef;
-}
-.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, .05);
-          box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
-}
-.panel-body {
-  padding: 15px;
-}
-.panel-heading {
-  padding: 10px 15px;
-  border-bottom: 1px solid transparent;
-  border-top-left-radius: 3px;
-  border-top-right-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 > .list-group,
-.panel > .panel-collapse > .list-group {
-  margin-bottom: 0;
-}
-.panel > .list-group .list-group-item,
-.panel > .panel-collapse > .list-group .list-group-item {
-  border-width: 1px 0;
-  border-radius: 0;
-}
-.panel > .list-group:first-child .list-group-item:first-child,
-.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {
-  border-top: 0;
-  border-top-left-radius: 3px;
-  border-top-right-radius: 3px;
-}
-.panel > .list-group:last-child .list-group-item:last-child,
-.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {
-  border-bottom: 0;
-  border-bottom-right-radius: 3px;
-  border-bottom-left-radius: 3px;
-}
-.panel-heading + .list-group .list-group-item:first-child {
-  border-top-width: 0;
-}
-.list-group + .panel-footer {
-  border-top-width: 0;
-}
-.panel > .table,
-.panel > .table-responsive > .table,
-.panel > .panel-collapse > .table {
-  margin-bottom: 0;
-}
-.panel > .table caption,
-.panel > .table-responsive > .table caption,
-.panel > .panel-collapse > .table caption {
-  padding-right: 15px;
-  padding-left: 15px;
-}
-.panel > .table:first-child,
-.panel > .table-responsive:first-child > .table:first-child {
-  border-top-left-radius: 3px;
-  border-top-right-radius: 3px;
-}
-.panel > .table:first-child > thead:first-child > tr:first-child,
-.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,
-.panel > .table:first-child > tbody:first-child > tr:first-child,
-.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {
-  border-top-left-radius: 3px;
-  border-top-right-radius: 3px;
-}
-.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,
-.panel > .table-responsive:last-child > .table:last-child {
-  border-bottom-right-radius: 3px;
-  border-bottom-left-radius: 3px;
-}
-.panel > .table:last-child > tbody:last-child > tr:last-child,
-.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,
-.panel > .table:last-child > tfoot:last-child > tr:last-child,
-.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {
-  border-bottom-right-radius: 3px;
-  border-bottom-left-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,
-.panel > .table + .panel-body,
-.panel > .table-responsive + .panel-body {
-  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 > 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 > 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 {
-  border-bottom: 0;
-}
-.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,
-.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 {
-  border-bottom: 0;
-}
-.panel > .table-responsive {
-  margin-bottom: 0;
-  border: 0;
-}
-.panel-group {
-  margin-bottom: 20px;
-}
-.panel-group .panel {
-  margin-bottom: 0;
-  border-radius: 4px;
-}
-.panel-group .panel + .panel {
-  margin-top: 5px;
-}
-.panel-group .panel-heading {
-  border-bottom: 0;
-}
-.panel-group .panel-heading + .panel-collapse > .panel-body,
-.panel-group .panel-heading + .panel-collapse > .list-group {
-  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-heading .badge {
-  color: #f5f5f5;
-  background-color: #333;
-}
-.panel-default > .panel-footer + .panel-collapse > .panel-body {
-  border-bottom-color: #ddd;
-}
-.panel-primary {
-  border-color: #337ab7;
-}
-.panel-primary > .panel-heading {
-  color: #fff;
-  background-color: #337ab7;
-  border-color: #337ab7;
-}
-.panel-primary > .panel-heading + .panel-collapse > .panel-body {
-  border-top-color: #337ab7;
-}
-.panel-primary > .panel-heading .badge {
-  color: #337ab7;
-  background-color: #fff;
-}
-.panel-primary > .panel-footer + .panel-collapse > .panel-body {
-  border-bottom-color: #337ab7;
-}
-.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-heading .badge {
-  color: #dff0d8;
-  background-color: #3c763d;
-}
-.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-heading .badge {
-  color: #d9edf7;
-  background-color: #31708f;
-}
-.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-heading .badge {
-  color: #fcf8e3;
-  background-color: #8a6d3b;
-}
-.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-heading .badge {
-  color: #f2dede;
-  background-color: #a94442;
-}
-.panel-danger > .panel-footer + .panel-collapse > .panel-body {
-  border-bottom-color: #ebccd1;
-}
-.embed-responsive {
-  position: relative;
-  display: block;
-  height: 0;
-  padding: 0;
-  overflow: hidden;
-}
-.embed-responsive .embed-responsive-item,
-.embed-responsive iframe,
-.embed-responsive embed,
-.embed-responsive object,
-.embed-responsive video {
-  position: absolute;
-  top: 0;
-  bottom: 0;
-  left: 0;
-  width: 100%;
-  height: 100%;
-  border: 0;
-}
-.embed-responsive.embed-responsive-16by9 {
-  padding-bottom: 56.25%;
-}
-.embed-responsive.embed-responsive-4by3 {
-  padding-bottom: 75%;
-}
-.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, .05);
-          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05);
-}
-.well blockquote {
-  border-color: #ddd;
-  border-color: rgba(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: bold;
-  line-height: 1;
-  color: #000;
-  text-shadow: 0 1px 0 #fff;
-  filter: alpha(opacity=20);
-  opacity: .2;
-}
-.close:hover,
-.close:focus {
-  color: #000;
-  text-decoration: none;
-  cursor: pointer;
-  filter: alpha(opacity=50);
-  opacity: .5;
-}
-button.close {
-  -webkit-appearance: none;
-  padding: 0;
-  cursor: pointer;
-  background: transparent;
-  border: 0;
-}
-.modal-open {
-  overflow: hidden;
-}
-.modal {
-  position: fixed;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  z-index: 1040;
-  display: none;
-  overflow: hidden;
-  -webkit-overflow-scrolling: touch;
-  outline: 0;
-}
-.modal.fade .modal-dialog {
-  -webkit-transition: -webkit-transform .3s ease-out;
-       -o-transition:      -o-transform .3s ease-out;
-          transition:         transform .3s ease-out;
-  -webkit-transform: translate(0, -25%);
-      -ms-transform: translate(0, -25%);
-       -o-transform: translate(0, -25%);
-          transform: translate(0, -25%);
-}
-.modal.in .modal-dialog {
-  -webkit-transform: translate(0, 0);
-      -ms-transform: translate(0, 0);
-       -o-transform: translate(0, 0);
-          transform: translate(0, 0);
-}
-.modal-open .modal {
-  overflow-x: hidden;
-  overflow-y: auto;
-}
-.modal-dialog {
-  position: relative;
-  width: auto;
-  margin: 10px;
-}
-.modal-content {
-  position: relative;
-  background-color: #fff;
-  -webkit-background-clip: padding-box;
-          background-clip: padding-box;
-  border: 1px solid #999;
-  border: 1px solid rgba(0, 0, 0, .2);
-  border-radius: 6px;
-  outline: 0;
-  -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5);
-          box-shadow: 0 3px 9px rgba(0, 0, 0, .5);
-}
-.modal-backdrop {
-  position: absolute;
-  top: 0;
-  right: 0;
-  left: 0;
-  background-color: #000;
-}
-.modal-backdrop.fade {
-  filter: alpha(opacity=0);
-  opacity: 0;
-}
-.modal-backdrop.in {
-  filter: alpha(opacity=50);
-  opacity: .5;
-}
-.modal-header {
-  min-height: 16.42857143px;
-  padding: 15px;
-  border-bottom: 1px solid #e5e5e5;
-}
-.modal-header .close {
-  margin-top: -2px;
-}
-.modal-title {
-  margin: 0;
-  line-height: 1.42857143;
-}
-.modal-body {
-  position: relative;
-  padding: 15px;
-}
-.modal-footer {
-  padding: 15px;
-  text-align: right;
-  border-top: 1px solid #e5e5e5;
-}
-.modal-footer .btn + .btn {
-  margin-bottom: 0;
-  margin-left: 5px;
-}
-.modal-footer .btn-group .btn + .btn {
-  margin-left: -1px;
-}
-.modal-footer .btn-block + .btn-block {
-  margin-left: 0;
-}
-.modal-scrollbar-measure {
-  position: absolute;
-  top: -9999px;
-  width: 50px;
-  height: 50px;
-  overflow: scroll;
-}
-@media (min-width: 1050px) {
-  .modal-dialog {
-    width: 600px;
-    margin: 30px auto;
-  }
-  .modal-content {
-    -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
-            box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
-  }
-  .modal-sm {
-    width: 300px;
-  }
-}
-@media (min-width: 1051px) {
-  .modal-lg {
-    width: 900px;
-  }
-}
-.tooltip {
-  position: absolute;
-  z-index: 1070;
-  display: block;
-  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
-  font-size: 12px;
-  font-weight: normal;
-  line-height: 1.4;
-  visibility: visible;
-  filter: alpha(opacity=0);
-  opacity: 0;
-}
-.tooltip.in {
-  filter: alpha(opacity=90);
-  opacity: .9;
-}
-.tooltip.top {
-  padding: 5px 0;
-  margin-top: -3px;
-}
-.tooltip.right {
-  padding: 0 5px;
-  margin-left: 3px;
-}
-.tooltip.bottom {
-  padding: 5px 0;
-  margin-top: 3px;
-}
-.tooltip.left {
-  padding: 0 5px;
-  margin-left: -3px;
-}
-.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 {
-  right: 5px;
-  bottom: 0;
-  margin-bottom: -5px;
-  border-width: 5px 5px 0;
-  border-top-color: #000;
-}
-.tooltip.top-right .tooltip-arrow {
-  bottom: 0;
-  left: 5px;
-  margin-bottom: -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;
-  right: 5px;
-  margin-top: -5px;
-  border-width: 0 5px 5px;
-  border-bottom-color: #000;
-}
-.tooltip.bottom-right .tooltip-arrow {
-  top: 0;
-  left: 5px;
-  margin-top: -5px;
-  border-width: 0 5px 5px;
-  border-bottom-color: #000;
-}
-.popover {
-  position: absolute;
-  top: 0;
-  left: 0;
-  z-index: 1060;
-  display: none;
-  max-width: 276px;
-  padding: 1px;
-  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
-  font-size: 14px;
-  font-weight: normal;
-  line-height: 1.42857143;
-  text-align: left;
-  white-space: normal;
-  background-color: #fff;
-  -webkit-background-clip: padding-box;
-          background-clip: padding-box;
-  border: 1px solid #ccc;
-  border: 1px solid rgba(0, 0, 0, .2);
-  border-radius: 6px;
-  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2);
-          box-shadow: 0 5px 10px rgba(0, 0, 0, .2);
-}
-.popover.top {
-  margin-top: -10px;
-}
-.popover.right {
-  margin-left: 10px;
-}
-.popover.bottom {
-  margin-top: 10px;
-}
-.popover.left {
-  margin-left: -10px;
-}
-.popover-title {
-  padding: 8px 14px;
-  margin: 0;
-  font-size: 14px;
-  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 {
-  content: "";
-  border-width: 10px;
-}
-.popover.top > .arrow {
-  bottom: -11px;
-  left: 50%;
-  margin-left: -11px;
-  border-top-color: #999;
-  border-top-color: rgba(0, 0, 0, .25);
-  border-bottom-width: 0;
-}
-.popover.top > .arrow:after {
-  bottom: 1px;
-  margin-left: -10px;
-  content: " ";
-  border-top-color: #fff;
-  border-bottom-width: 0;
-}
-.popover.right > .arrow {
-  top: 50%;
-  left: -11px;
-  margin-top: -11px;
-  border-right-color: #999;
-  border-right-color: rgba(0, 0, 0, .25);
-  border-left-width: 0;
-}
-.popover.right > .arrow:after {
-  bottom: -10px;
-  left: 1px;
-  content: " ";
-  border-right-color: #fff;
-  border-left-width: 0;
-}
-.popover.bottom > .arrow {
-  top: -11px;
-  left: 50%;
-  margin-left: -11px;
-  border-top-width: 0;
-  border-bottom-color: #999;
-  border-bottom-color: rgba(0, 0, 0, .25);
-}
-.popover.bottom > .arrow:after {
-  top: 1px;
-  margin-left: -10px;
-  content: " ";
-  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, .25);
-}
-.popover.left > .arrow:after {
-  right: 1px;
-  bottom: -10px;
-  content: " ";
-  border-right-width: 0;
-  border-left-color: #fff;
-}
-.carousel {
-  position: relative;
-}
-.carousel-inner {
-  position: relative;
-  width: 100%;
-  overflow: hidden;
-}
-.carousel-inner > .item {
-  position: relative;
-  display: none;
-  -webkit-transition: .6s ease-in-out left;
-       -o-transition: .6s ease-in-out left;
-          transition: .6s ease-in-out left;
-}
-.carousel-inner > .item > img,
-.carousel-inner > .item > a > img {
-  line-height: 1;
-}
-@media all and (transform-3d), (-webkit-transform-3d) {
-  .carousel-inner > .item {
-    -webkit-transition: -webkit-transform .6s ease-in-out;
-         -o-transition:      -o-transform .6s ease-in-out;
-            transition:         transform .6s ease-in-out;
-
-    -webkit-backface-visibility: hidden;
-            backface-visibility: hidden;
-    -webkit-perspective: 1000;
-            perspective: 1000;
-  }
-  .carousel-inner > .item.next,
-  .carousel-inner > .item.active.right {
-    left: 0;
-    -webkit-transform: translate3d(100%, 0, 0);
-            transform: translate3d(100%, 0, 0);
-  }
-  .carousel-inner > .item.prev,
-  .carousel-inner > .item.active.left {
-    left: 0;
-    -webkit-transform: translate3d(-100%, 0, 0);
-            transform: translate3d(-100%, 0, 0);
-  }
-  .carousel-inner > .item.next.left,
-  .carousel-inner > .item.prev.right,
-  .carousel-inner > .item.active {
-    left: 0;
-    -webkit-transform: translate3d(0, 0, 0);
-            transform: translate3d(0, 0, 0);
-  }
-}
-.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;
-  bottom: 0;
-  left: 0;
-  width: 15%;
-  font-size: 20px;
-  color: #fff;
-  text-align: center;
-  text-shadow: 0 1px 2px rgba(0, 0, 0, .6);
-  filter: alpha(opacity=50);
-  opacity: .5;
-}
-.carousel-control.left {
-  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%);
-  background-image:      -o-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%);
-  background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .5)), to(rgba(0, 0, 0, .0001)));
-  background-image:         linear-gradient(to right, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%);
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
-  background-repeat: repeat-x;
-}
-.carousel-control.right {
-  right: 0;
-  left: auto;
-  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%);
-  background-image:      -o-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%);
-  background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .0001)), to(rgba(0, 0, 0, .5)));
-  background-image:         linear-gradient(to right, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%);
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
-  background-repeat: repeat-x;
-}
-.carousel-control:hover,
-.carousel-control:focus {
-  color: #fff;
-  text-decoration: none;
-  filter: alpha(opacity=90);
-  outline: 0;
-  opacity: .9;
-}
-.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%;
-  margin-left: -10px;
-}
-.carousel-control .icon-next,
-.carousel-control .glyphicon-chevron-right {
-  right: 50%;
-  margin-right: -10px;
-}
-.carousel-control .icon-prev,
-.carousel-control .icon-next {
-  width: 20px;
-  height: 20px;
-  margin-top: -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%;
-  padding-left: 0;
-  margin-left: -30%;
-  text-align: center;
-  list-style: none;
-}
-.carousel-indicators li {
-  display: inline-block;
-  width: 10px;
-  height: 10px;
-  margin: 1px;
-  text-indent: -999px;
-  cursor: pointer;
-  background-color: #000 \9;
-  background-color: rgba(0, 0, 0, 0);
-  border: 1px solid #fff;
-  border-radius: 10px;
-}
-.carousel-indicators .active {
-  width: 12px;
-  height: 12px;
-  margin: 0;
-  background-color: #fff;
-}
-.carousel-caption {
-  position: absolute;
-  right: 15%;
-  bottom: 20px;
-  left: 15%;
-  z-index: 10;
-  padding-top: 20px;
-  padding-bottom: 20px;
-  color: #fff;
-  text-align: center;
-  text-shadow: 0 1px 2px rgba(0, 0, 0, .6);
-}
-.carousel-caption .btn {
-  text-shadow: none;
-}
-@media screen and (min-width: 1050px) {
-  .carousel-control .glyphicon-chevron-left,
-  .carousel-control .glyphicon-chevron-right,
-  .carousel-control .icon-prev,
-  .carousel-control .icon-next {
-    width: 30px;
-    height: 30px;
-    margin-top: -15px;
-    font-size: 30px;
-  }
-  .carousel-control .glyphicon-chevron-left,
-  .carousel-control .icon-prev {
-    margin-left: -15px;
-  }
-  .carousel-control .glyphicon-chevron-right,
-  .carousel-control .icon-next {
-    margin-right: -15px;
-  }
-  .carousel-caption {
-    right: 20%;
-    left: 20%;
-    padding-bottom: 30px;
-  }
-  .carousel-indicators {
-    bottom: 20px;
-  }
-}
-.clearfix:before,
-.clearfix:after,
-.dl-horizontal dd:before,
-.dl-horizontal dd: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 {
-  display: table;
-  content: " ";
-}
-.clearfix:after,
-.dl-horizontal dd: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-right: auto;
-  margin-left: 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,
-.visible-sm,
-.visible-md,
-.visible-lg {
-  display: none !important;
-}
-.visible-xs-block,
-.visible-xs-inline,
-.visible-xs-inline-block,
-.visible-sm-block,
-.visible-sm-inline,
-.visible-sm-inline-block,
-.visible-md-block,
-.visible-md-inline,
-.visible-md-inline-block,
-.visible-lg-block,
-.visible-lg-inline,
-.visible-lg-inline-block {
-  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;
-  }
-}
-@media (max-width: 767px) {
-  .visible-xs-block {
-    display: block !important;
-  }
-}
-@media (max-width: 767px) {
-  .visible-xs-inline {
-    display: inline !important;
-  }
-}
-@media (max-width: 767px) {
-  .visible-xs-inline-block {
-    display: inline-block !important;
-  }
-}
-@media (min-width: 1050px) and (max-width: 1012px) {
-  .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;
-  }
-}
-@media (min-width: 1050px) and (max-width: 1012px) {
-  .visible-sm-block {
-    display: block !important;
-  }
-}
-@media (min-width: 1050px) and (max-width: 1012px) {
-  .visible-sm-inline {
-    display: inline !important;
-  }
-}
-@media (min-width: 1050px) and (max-width: 1012px) {
-  .visible-sm-inline-block {
-    display: inline-block !important;
-  }
-}
-@media (min-width: 1051px) 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;
-  }
-}
-@media (min-width: 1051px) and (max-width: 1199px) {
-  .visible-md-block {
-    display: block !important;
-  }
-}
-@media (min-width: 1051px) and (max-width: 1199px) {
-  .visible-md-inline {
-    display: inline !important;
-  }
-}
-@media (min-width: 1051px) and (max-width: 1199px) {
-  .visible-md-inline-block {
-    display: inline-block !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 (min-width: 1200px) {
-  .visible-lg-block {
-    display: block !important;
-  }
-}
-@media (min-width: 1200px) {
-  .visible-lg-inline {
-    display: inline !important;
-  }
-}
-@media (min-width: 1200px) {
-  .visible-lg-inline-block {
-    display: inline-block !important;
-  }
-}
-@media (max-width: 767px) {
-  .hidden-xs {
-    display: none !important;
-  }
-}
-@media (min-width: 1050px) and (max-width: 1012px) {
-  .hidden-sm {
-    display: none !important;
-  }
-}
-@media (min-width: 1051px) and (max-width: 1199px) {
-  .hidden-md {
-    display: none !important;
-  }
-}
-@media (min-width: 1200px) {
-  .hidden-lg {
-    display: none !important;
-  }
-}
-.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;
-  }
-}
-.visible-print-block {
-  display: none !important;
-}
-@media print {
-  .visible-print-block {
-    display: block !important;
-  }
-}
-.visible-print-inline {
-  display: none !important;
-}
-@media print {
-  .visible-print-inline {
-    display: inline !important;
-  }
-}
-.visible-print-inline-block {
-  display: none !important;
-}
-@media print {
-  .visible-print-inline-block {
-    display: inline-block !important;
-  }
-}
-@media print {
-  .hidden-print {
-    display: none !important;
-  }
-}
-/*# sourceMappingURL=bootstrap.css.map */
diff --git a/gui/slick/css/lib/bootstrap.css.map b/gui/slick/css/lib/bootstrap.css.map
deleted file mode 100644
index a02f6ba0a9602e353cf4a07f5ab7ad20a6dd7c96..0000000000000000000000000000000000000000
--- a/gui/slick/css/lib/bootstrap.css.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["bootstrap.css","less/normalize.less","less/print.less","less/glyphicons.less","less/scaffolding.less","less/mixins/vendor-prefixes.less","less/mixins/tab-focus.less","less/mixins/image.less","less/type.less","less/mixins/text-emphasis.less","less/mixins/background-variant.less","less/mixins/text-overflow.less","less/code.less","less/grid.less","less/mixins/grid.less","less/mixins/grid-framework.less","less/tables.less","less/mixins/table-row.less","less/forms.less","less/mixins/forms.less","less/buttons.less","less/mixins/buttons.less","less/mixins/opacity.less","less/component-animations.less","less/dropdowns.less","less/mixins/nav-divider.less","less/mixins/reset-filter.less","less/button-groups.less","less/mixins/border-radius.less","less/input-groups.less","less/navs.less","less/navbar.less","less/mixins/nav-vertical-align.less","less/utilities.less","less/breadcrumbs.less","less/pagination.less","less/mixins/pagination.less","less/pager.less","less/labels.less","less/mixins/labels.less","less/badges.less","less/jumbotron.less","less/thumbnails.less","less/alerts.less","less/mixins/alerts.less","less/progress-bars.less","less/mixins/gradients.less","less/mixins/progress-bar.less","less/media.less","less/list-group.less","less/mixins/list-group.less","less/panels.less","less/mixins/panels.less","less/responsive-embed.less","less/wells.less","less/close.less","less/modals.less","less/tooltip.less","less/popovers.less","less/carousel.less","less/mixins/clearfix.less","less/mixins/center-block.less","less/mixins/hide-text.less","less/responsive-utilities.less","less/mixins/responsive-visibility.less"],"names":[],"mappings":"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AAA;EHsR9C;AGrRmC;EAAW,kBAAA;EHwR9C;AGvRmC;EAAW,kBAAA;EH0R9C;AGzRmC;EAAW,kBAAA;EH4R9C;AG3RmC;EAAW,kBAAA;EH8R9C;AG7RmC;EAAW,kBAAA;EHgS9C;AG/RmC;EAAW,kBAAA;EHkS9C;AGjSmC;EAAW,kBAAA;EHoS9C;AGnSmC;EAAW,kBAAA;EHsS9C;AGrSmC;EAAW,kBAAA;EHwS9C;AGvSmC;EAAW,kBAAA;EH0S9C;AGzSmC;EAAW,kBAAA;EH4S9C;AG3SmC;EAAW,kBAAA;EH8S9C;AG7SmC;EAAW,kBAAA;EHgT9C;AG/SmC;EAAW,kBAAA;EHkT9C;AGjTmC;EAAW,kBAAA;EHoT9C;AGnTmC;EAAW,kBAAA;EHsT9C;AGrTmC;EAAW,kBAAA;EHwT9C;AGvTmC;EAAW,kBAAA;EH0T9C;AGzTmC;EAAW,kBAAA;EH4T9C;AG3TmC;EAAW,kBAAA;EH8T9C;AG7TmC;EAAW,kBAAA;EHgU9C;AG/TmC;EAAW,kBAAA;EHkU9C;AGjUmC;EAAW,kBAAA;EHoU9C;AGnUmC;EAAW,kBAAA;EHsU9C;AGrUmC;EAAW,kBAAA;EHwU9C;AGvUmC;EAAW,kBAAA;EH0U9C;AGzUmC;EAAW,kBAAA;EH4U9C;AG3UmC;EAAW,kBAAA;EH8U9C;AG7UmC;EAAW,kBAAA;EHgV9C;AG/UmC;EAAW,kBAAA;EHkV9C;AGjVmC;EAAW,kBAAA;EHoV9C;AGnVmC;EAAW,kBAAA;EHsV9C;AGrVmC;EAAW,kBAAA;EHwV9C;AGvVmC;EAAW,kBAAA;EH0V9C;AGzVmC;EAAW,kBAAA;EH4V9C;AG3VmC;EAAW,kBAAA;EH8V9C;AG7VmC;EAAW,kBAAA;EHgW9C;AG/VmC;EAAW,kBAAA;EHkW9C;AGjWmC;EAAW,kBAAA;EHoW9C;AGnWmC;EAAW,kBAAA;EHsW9C;AGrWmC;EAAW,kBAAA;EHwW9C;AGvWmC;EAAW,kBAAA;EH0W9C;AGzWmC;EAAW,kBAAA;EH4W9C;AG3WmC;EAAW,kBAAA;EH8W9C;AG7WmC;EAAW,kBAAA;EHgX9C;AG/WmC;EAAW,kBAAA;EHkX9C;AGjXmC;EAAW,kBAAA;EHoX9C;AGnXmC;EAAW,kBAAA;EHsX9C;AGrXmC;EAAW,kBAAA;EHwX9C;AGvXmC;EAAW,kBAAA;EH0X9C;AGzXmC;EAAW,kBAAA;EH4X9C;AG3XmC;EAAW,kBAAA;EH8X9C;AG7XmC;EAAW,kBAAA;EHgY9C;AG/XmC;EAAW,kBAAA;EHkY9C;AGjYmC;EAAW,kBAAA;EHoY9C;AGnYmC;EAAW,kBAAA;EHsY9C;AGrYmC;EAAW,kBAAA;EHwY9C;AGvYmC;EAAW,kBAAA;EH0Y9C;AGzYmC;EAAW,kBAAA;EH4Y9C;AG3YmC;EAAW,kBAAA;EH8Y9C;AG7YmC;EAAW,kBAAA;EHgZ9C;AG/YmC;EAAW,kBAAA;EHkZ9C;AGjZmC;EAAW,kBAAA;EHoZ9C;AGnZmC;EAAW,kBAAA;EHsZ9C;AGrZmC;EAAW,kBAAA;EHwZ9C;AGvZmC;EAAW,kBAAA;EH0Z9C;AGzZmC;EAAW,kBAAA;EH4Z9C;AG3ZmC;EAAW,kBAAA;EH8Z9C;AG7ZmC;EAAW,kBAAA;EHga9C;AG/ZmC;EAAW,kBAAA;EHka9C;AGjamC;EAAW,kBAAA;EHoa9C;AGnamC;EAAW,kBAAA;EHsa9C;AGramC;EAAW,kBAAA;EHwa9C;AGvamC;EAAW,kBAAA;EH0a9C;AGzamC;EAAW,kBAAA;EH4a9C;AG3amC;EAAW,kBAAA;EH8a9C;AG7amC;EAAW,kBAAA;EHgb9C;AG/amC;EAAW,kBAAA;EHkb9C;AGjbmC;EAAW,kBAAA;EHob9C;AGnbmC;EAAW,kBAAA;EHsb9C;AGrbmC;EAAW,kBAAA;EHwb9C;AGvbmC;EAAW,kBAAA;EH0b9C;AGzbmC;EAAW,kBAAA;EH4b9C;AG3bmC;EAAW,kBAAA;EH8b9C;AG7bmC;EAAW,kBAAA;EHgc9C;AG/bmC;EAAW,kBAAA;EHkc9C;AGjcmC;EAAW,kBAAA;EHoc9C;AGncmC;EAAW,kBAAA;EHsc9C;AGrcmC;EAAW,kBAAA;EHwc9C;AGvcmC;EAAW,kBAAA;EH0c9C;AGzcmC;EAAW,kBAAA;EH4c9C;AG3cmC;EAAW,kBAAA;EH8c9C;AG7cmC;EAAW,kBAAA;EHgd9C;AG/cmC;EAAW,kBAAA;EHkd9C;AGjdmC;EAAW,kBAAA;EHod9C;AGndmC;EAAW,kBAAA;EHsd9C;AGrdmC;EAAW,kBAAA;EHwd9C;AGvdmC;EAAW,kBAAA;EH0d9C;AGzdmC;EAAW,kBAAA;EH4d9C;AG3dmC;EAAW,kBAAA;EH8d9C;AG7dmC;EAAW,kBAAA;EHge9C;AG/dmC;EAAW,kBAAA;EHke9C;AGjemC;EAAW,kBAAA;EHoe9C;AGnemC;EAAW,kBAAA;EHse9C;AGremC;EAAW,kBAAA;EHwe9C;AGvemC;EAAW,kBAAA;EH0e9C;AGzemC;EAAW,kBAAA;EH4e9C;AG3emC;EAAW,kBAAA;EH8e9C;AG7emC;EAAW,kBAAA;EHgf9C;AG/emC;EAAW,kBAAA;EHkf9C;AGjfmC;EAAW,kBAAA;EHof9C;AGnfmC;EAAW,kBAAA;EHsf9C;AGrfmC;EAAW,kBAAA;EHwf9C;AGvfmC;EAAW,kBAAA;EH0f9C;AGzfmC;EAAW,kBAAA;EH4f9C;AG3fmC;EAAW,kBAAA;EH8f9C;AG7fmC;EAAW,kBAAA;EHggB9C;AG/fmC;EAAW,kBAAA;EHkgB9C;AGjgBmC;EAAW,kBAAA;EHogB9C;AGngBmC;EAAW,kBAAA;EHsgB9C;AGrgBmC;EAAW,kBAAA;EHwgB9C;AGvgBmC;EAAW,kBAAA;EH0gB9C;AGzgBmC;EAAW,kBAAA;EH4gB9C;AG3gBmC;EAAW,kBAAA;EH8gB9C;AG7gBmC;EAAW,kBAAA;EHghB9C;AG/gBmC;EAAW,kBAAA;EHkhB9C;AGjhBmC;EAAW,kBAAA;EHohB9C;AGnhBmC;EAAW,kBAAA;EHshB9C;AGrhBmC;EAAW,kBAAA;EHwhB9C;AGvhBmC;EAAW,kBAAA;EH0hB9C;AGzhBmC;EAAW,kBAAA;EH4hB9C;AG3hBmC;EAAW,kBAAA;EH8hB9C;AG7hBmC;EAAW,kBAAA;EHgiB9C;AG/hBmC;EAAW,kBAAA;EHkiB9C;AGjiBmC;EAAW,kBAAA;EHoiB9C;AGniBmC;EAAW,kBAAA;EHsiB9C;AGriBmC;EAAW,kBAAA;EHwiB9C;AGviBmC;EAAW,kBAAA;EH0iB9C;AGziBmC;EAAW,kBAAA;EH4iB9C;AG3iBmC;EAAW,kBAAA;EH8iB9C;AG7iBmC;EAAW,kBAAA;EHgjB9C;AG/iBmC;EAAW,kBA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EACE,mBAAA;Efi7CH;Ael7CC;EACE,2BAAA;Efo7CH;Aer7CC;EACE,2BAAA;Efu7CH;Aex7CC;EACE,kBAAA;Ef07CH;Ae37CC;EACE,2BAAA;Ef67CH;Ae97CC;EACE,2BAAA;Efg8CH;Aej8CC;EACE,kBAAA;Efm8CH;Aep8CC;EACE,2BAAA;Efs8CH;Aev8CC;EACE,2BAAA;Efy8CH;Ae18CC;EACE,kBAAA;Ef48CH;Ae78CC;EACE,2BAAA;Ef+8CH;Aeh9CC;EACE,0BAAA;Efk9CH;Aen9CC;EACE,iBAAA;Efq9CH;Aaz9CD;EE9BI;IACE,aAAA;If0/CH;Een/CD;IACE,aAAA;Ifq/CD;Eet/CD;IACE,qBAAA;Ifw/CD;Eez/CD;IACE,qBAAA;If2/CD;Ee5/CD;IACE,YAAA;If8/CD;Ee//CD;IACE,qBAAA;IfigDD;EelgDD;IACE,qBAAA;IfogDD;EergDD;IACE,YAAA;IfugDD;EexgDD;IACE,qBAAA;If0gDD;Ee3gDD;IACE,qBAAA;If6gDD;Ee9gDD;IACE,YAAA;IfghDD;EejhDD;IACE,qBAAA;IfmhDD;EephDD;IACE,oBAAA;IfshDD;EexgDD;IACE,aAAA;If0gDD;Ee3gDD;IACE,qBAAA;If6gDD;Ee9gDD;IACE,qBAAA;IfghDD;EejhDD;IACE,YAAA;IfmhDD;EephDD;IACE,qBAAA;IfshDD;EevhDD;IACE,qBAAA;IfyhDD;Ee1hDD;IACE,YAAA;If4hDD;Ee7hDD;IACE,qBAAA;If+hDD;EehiDD;IACE,qBAAA;IfkiDD;EeniDD;IACE,YAAA;IfqiDD;EetiDD;IACE,qBAAA;IfwiDD;EeziDD;IACE,oBAAA;If2iDD;EeviDD;IACE,aAAA;IfyiDD;EezjDD;IACE,YAAA;If2jDD;Ee5jDD;IACE,oBAAA;If8jDD;Ee/jDD;IACE,oBAAA;IfikDD;EelkDD;IACE,WAAA;IfokDD;EerkDD;IACE,oBAAA;IfukDD;EexkDD;IACE,oBAAA;If0kDD;Ee3kDD;IACE,WAAA;If6kDD;Ee9kDD;IACE,oBAAA;IfglDD;EejlDD;IACE,oBAAA;IfmlDD;EeplDD;IACE,WAAA;IfslDD;EevlDD;IACE,oBAAA;IfylDD;Ee1lDD;IACE,mBAAA;If4lDD;EexlDD;IACE,YAAA;If0lDD;Ee5kDD;IACE,mBAAA;If8kDD;Ee/kDD;IACE,2BAAA;IfilDD;EellDD;IACE,2BAAA;IfolDD;EerlDD;IACE,kBAAA;IfulDD;EexlDD;IACE,2BAAA;If0lDD;Ee3lDD;IACE,2BAAA;If6lDD;Ee9lDD;IACE,kBAAA;IfgmDD;EejmDD;IACE,2BAAA;IfmmDD;EepmDD;IACE,2BAAA;IfsmDD;EevmDD;IACE,kBAAA;IfymDD;Ee1mDD;IACE,2BAAA;If4mDD;Ee7mDD;IACE,0BAAA;If+mDD;EehnDD;IACE,iBAAA;IfknDD;EACF;Aa9mDD;EEvCI;IACE,aAAA;IfwpDH;EejpDD;IACE,aAAA;IfmpDD;EeppDD;IACE,qBAAA;IfspDD;EevpDD;IACE,qBAAA;IfypDD;Ee1pDD;IACE,YAAA;If4pDD;Ee7pDD;IACE,qBAAA;If+pDD;EehqDD;IACE,qBAAA;IfkqDD;EenqDD;IACE,YAAA;IfqqDD;EetqDD;IACE,qBAAA;IfwqDD;EezqDD;IACE,qBAAA;If2qDD;Ee5qDD;IACE,YAAA;If8qDD;Ee/qDD;IACE,qBAAA;IfirDD;EelrDD;IACE,oBAAA;IforDD;EetqDD;IACE,aAAA;IfwqDD;EezqDD;IACE,qBAAA;If2qDD;Ee5qDD;IACE,qBAAA;If8qDD;Ee/qDD;IACE,YAAA;IfirDD;EelrDD;IACE,qBAAA;IforDD;EerrDD;IACE,qBAAA;IfurDD;EexrDD;IACE,YAAA;If0rDD;Ee3rDD;IACE,qBAAA;If6rDD;Ee9rDD;IACE,qBAAA;IfgsDD;EejsDD;IACE,YAAA;IfmsDD;EepsDD;IACE,qBAAA;IfssDD;EevsDD;IACE,oBAAA;IfysDD;EersDD;IACE,aAAA;IfusDD;EevtDD;IACE,YAAA;IfytDD;Ee1tDD;IACE,oBAAA;If4tDD;Ee7tDD;IACE,oBAAA;If+tDD;EehuDD;IACE,WAAA;IfkuDD;EenuDD;IACE,oBAAA;IfquDD;EetuDD;IACE,oBAAA;IfwuDD;EezuDD;IACE,WAAA;If2uDD;Ee5uDD;IACE,oBAAA;If8uDD;Ee/uDD;IACE,oBAAA;IfivDD;EelvDD;IACE,WAAA;IfovDD;EervDD;IACE,oBAAA;IfuvDD;EexvDD;IACE,mBAAA;If0vDD;EetvDD;IACE,YAAA;IfwvDD;Ee1uDD;IACE,mBAAA;If4uDD;Ee7uDD;IACE,2BAAA;If+uDD;EehvDD;IACE,2BAAA;IfkvDD;EenvDD;IACE,kBAAA;IfqvDD;EetvDD;IACE,2BAAA;IfwvDD;EezvDD;IACE,2BAAA;If2vDD;Ee5vDD;IACE,kBAAA;If8vDD;Ee/vDD;IACE,2BAAA;IfiwDD;EelwDD;IACE,2BAAA;IfowDD;EerwDD;IACE,kBAAA;IfuwDD;EexwDD;IACE,2BAAA;If0wDD;Ee3wDD;IACE,0BAAA;If6wDD;Ee9wDD;IACE,iBAAA;IfgxDD;EACF;AarwDD;EE9CI;IACE,aAAA;IfszDH;Ee/yDD;IACE,aAAA;IfizDD;EelzDD;IACE,qBAAA;IfozDD;EerzDD;IACE,qBAAA;IfuzDD;EexzDD;IACE,YAAA;If0zDD;Ee3zDD;IACE,qBAAA;If6zDD;Ee9zDD;IACE,qBAAA;Ifg0DD;Eej0DD;IACE,YAAA;Ifm0DD;Eep0DD;IACE,qBAAA;Ifs0DD;Eev0DD;IACE,qBAAA;Ify0DD;Ee10DD;IACE,YAAA;If40DD;Ee70DD;IACE,qBAAA;If+0DD;Eeh1DD;IACE,oBAAA;Ifk1DD;Eep0DD;IACE,aAAA;Ifs0DD;Eev0DD;IACE,qBAAA;Ify0DD;Ee10DD;IACE,qBAAA;If40DD;Ee70DD;IACE,YAAA;If+0DD;Eeh1DD;IACE,qBAAA;Ifk1DD;Een1DD;IACE,qBAAA;Ifq1DD;Eet1DD;IACE,YAAA;Ifw1DD;Eez1DD;IACE,qBAAA;If21DD;Ee51DD;IACE,qBAAA;If81DD;Ee/1DD;IACE,YAAA;Ifi2DD;Eel2DD;IACE,qBAAA;Ifo2DD;Eer2DD;IACE,oBAAA;Ifu2DD;Een2DD;IACE,aAAA;Ifq2DD;Eer3DD;IACE,YAAA;Ifu3DD;Eex3DD;IACE,oBAAA;If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EACA,uBAAA;ErB+tFD;AqB7tFC;;;;;;EAME,gBAAA;EACA,2BAAA;EACI,uBAAA;ErB+tFP;AqB7tFC;;;EAGE,wBAAA;ErB+tFH;AqB1tFG;;;;;;;;;;;;;;;;;;EAME,2BAAA;EACI,uBAAA;ErBwuFT;AoBhtFD;ECnBI,gBAAA;EACA,2BAAA;ErBsuFH;AoBjtFD;ECxDE,gBAAA;EACA,2BAAA;EACA,uBAAA;ErB4wFD;AqB1wFC;;;;;;EAME,gBAAA;EACA,2BAAA;EACI,uBAAA;ErB4wFP;AqB1wFC;;;EAGE,wBAAA;ErB4wFH;AqBvwFG;;;;;;;;;;;;;;;;;;EAME,2BAAA;EACI,uBAAA;ErBqxFT;AoB1vFD;ECtBI,gBAAA;EACA,2BAAA;ErBmxFH;AoB1vFD;EC5DE,gBAAA;EACA,2BAAA;EACA,uBAAA;ErByzFD;AqBvzFC;;;;;;EAME,gBAAA;EACA,2BAAA;EACI,uBAAA;ErByzFP;AqBvzFC;;;EAGE,wBAAA;ErByzFH;AqBpzFG;;;;;;;;;;;;;;;;;;EAME,2BAAA;EACI,uBAAA;ErBk0FT;AoBnyFD;EC1BI,gBAAA;EACA,2BAAA;ErBg0FH;AoBnyFD;EChEE,gBAAA;EACA,2BAAA;EACA,uBAAA;ErBs2FD;AqBp2FC;;;;;;EAME,gBAAA;EACA,2BAAA;EACI,uBAAA;ErBs2FP;AqBp2FC;;;EAGE,wBAAA;ErBs2FH;AqBj2FG;;;;;;;;;;;;;;;;;;EAME,2BAAA;EACI,uBAAA;ErB+2FT;AoB50FD;EC9BI,gBAAA;EACA,2BAAA;ErB62FH;AoB50FD;ECpEE,gBAAA;EACA,2BAAA;EACA,uBAAA;ErBm5FD;AqBj5FC;;;;;;EAME,gBAAA;EACA,2BAAA;EACI,uBAAA;ErBm5FP;AqBj5FC;;;EAGE,wBAAA;ErBm5FH;AqB94FG;;;;;;;;;;;;;;;;;;EAME,2BAAA;EACI,uBAAA;ErB45FT;AoBr3FD;EClCI,gBAAA;EACA,2BAAA;ErB05FH;AoBr3FD;ECxEE,gBAAA;EACA,2BAAA;EACA,uBAAA;ErBg8FD;AqB97FC;;;;;;EAME,gBAAA;EACA,2BAAA;EACI,uBAAA;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","file":"bootstrap.css","sourcesContent":["/*! normalize.css v3.0.2 | MIT License | git.io/normalize */\nhtml {\n  font-family: sans-serif;\n  -ms-text-size-adjust: 100%;\n  -webkit-text-size-adjust: 100%;\n}\nbody {\n  margin: 0;\n}\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n  display: block;\n}\naudio,\ncanvas,\nprogress,\nvideo {\n  display: inline-block;\n  vertical-align: baseline;\n}\naudio:not([controls]) {\n  display: none;\n  height: 0;\n}\n[hidden],\ntemplate {\n  display: none;\n}\na {\n  background-color: transparent;\n}\na:active,\na:hover {\n  outline: 0;\n}\nabbr[title] {\n  border-bottom: 1px dotted;\n}\nb,\nstrong {\n  font-weight: bold;\n}\ndfn {\n  font-style: italic;\n}\nh1 {\n  font-size: 2em;\n  margin: 0.67em 0;\n}\nmark {\n  background: #ff0;\n  color: #000;\n}\nsmall {\n  font-size: 80%;\n}\nsub,\nsup {\n  font-size: 75%;\n  line-height: 0;\n  position: relative;\n  vertical-align: baseline;\n}\nsup {\n  top: -0.5em;\n}\nsub {\n  bottom: -0.25em;\n}\nimg {\n  border: 0;\n}\nsvg:not(:root) {\n  overflow: hidden;\n}\nfigure {\n  margin: 1em 40px;\n}\nhr {\n  -moz-box-sizing: content-box;\n  box-sizing: content-box;\n  height: 0;\n}\npre {\n  overflow: auto;\n}\ncode,\nkbd,\npre,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em;\n}\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  color: inherit;\n  font: inherit;\n  margin: 0;\n}\nbutton {\n  overflow: visible;\n}\nbutton,\nselect {\n  text-transform: none;\n}\nbutton,\nhtml input[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n  -webkit-appearance: button;\n  cursor: pointer;\n}\nbutton[disabled],\nhtml input[disabled] {\n  cursor: default;\n}\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n  border: 0;\n  padding: 0;\n}\ninput {\n  line-height: normal;\n}\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n  box-sizing: border-box;\n  padding: 0;\n}\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto;\n}\ninput[type=\"search\"] {\n  -webkit-appearance: textfield;\n  -moz-box-sizing: content-box;\n  -webkit-box-sizing: content-box;\n  box-sizing: content-box;\n}\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\nfieldset {\n  border: 1px solid #c0c0c0;\n  margin: 0 2px;\n  padding: 0.35em 0.625em 0.75em;\n}\nlegend {\n  border: 0;\n  padding: 0;\n}\ntextarea {\n  overflow: auto;\n}\noptgroup {\n  font-weight: bold;\n}\ntable {\n  border-collapse: collapse;\n  border-spacing: 0;\n}\ntd,\nth {\n  padding: 0;\n}\n/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n@media print {\n  *,\n  *:before,\n  *:after {\n    background: transparent !important;\n    color: #000 !important;\n    box-shadow: none !important;\n    text-shadow: none !important;\n  }\n  a,\n  a:visited {\n    text-decoration: underline;\n  }\n  a[href]:after {\n    content: \" (\" attr(href) \")\";\n  }\n  abbr[title]:after {\n    content: \" (\" attr(title) \")\";\n  }\n  a[href^=\"#\"]:after,\n  a[href^=\"javascript:\"]:after {\n    content: \"\";\n  }\n  pre,\n  blockquote {\n    border: 1px solid #999;\n    page-break-inside: avoid;\n  }\n  thead {\n    display: table-header-group;\n  }\n  tr,\n  img {\n    page-break-inside: avoid;\n  }\n  img {\n    max-width: 100% !important;\n  }\n  p,\n  h2,\n  h3 {\n    orphans: 3;\n    widows: 3;\n  }\n  h2,\n  h3 {\n    page-break-after: avoid;\n  }\n  select {\n    background: #fff !important;\n  }\n  .navbar {\n    display: none;\n  }\n  .btn > .caret,\n  .dropup > .btn > .caret {\n    border-top-color: #000 !important;\n  }\n  .label {\n    border: 1px solid #000;\n  }\n  .table {\n    border-collapse: collapse !important;\n  }\n  .table td,\n  .table th {\n    background-color: #fff !important;\n  }\n  .table-bordered th,\n  .table-bordered td {\n    border: 1px solid #ddd !important;\n  }\n}\n@font-face {\n  font-family: 'Glyphicons Halflings';\n  src: url('../fonts/glyphicons-halflings-regular.eot');\n  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');\n}\n.glyphicon {\n  position: relative;\n  top: 1px;\n  display: inline-block;\n  font-family: 'Glyphicons Halflings';\n  font-style: normal;\n  font-weight: normal;\n  line-height: 1;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n.glyphicon-asterisk:before {\n  content: \"\\2a\";\n}\n.glyphicon-plus:before {\n  content: \"\\2b\";\n}\n.glyphicon-euro:before,\n.glyphicon-eur:before {\n  content: \"\\20ac\";\n}\n.glyphicon-minus:before {\n  content: \"\\2212\";\n}\n.glyphicon-cloud:before {\n  content: \"\\2601\";\n}\n.glyphicon-envelope:before {\n  content: \"\\2709\";\n}\n.glyphicon-pencil:before {\n  content: \"\\270f\";\n}\n.glyphicon-glass:before {\n  content: \"\\e001\";\n}\n.glyphicon-music:before {\n  content: \"\\e002\";\n}\n.glyphicon-search:before {\n  content: \"\\e003\";\n}\n.glyphicon-heart:before {\n  content: \"\\e005\";\n}\n.glyphicon-star:before {\n  content: \"\\e006\";\n}\n.glyphicon-star-empty:before {\n  content: \"\\e007\";\n}\n.glyphicon-user:before {\n  content: \"\\e008\";\n}\n.glyphicon-film:before {\n  content: \"\\e009\";\n}\n.glyphicon-th-large:before {\n  content: \"\\e010\";\n}\n.glyphicon-th:before {\n  content: \"\\e011\";\n}\n.glyphicon-th-list:before {\n  content: \"\\e012\";\n}\n.glyphicon-ok:before {\n  content: \"\\e013\";\n}\n.glyphicon-remove:before {\n  content: \"\\e014\";\n}\n.glyphicon-zoom-in:before {\n  content: \"\\e015\";\n}\n.glyphicon-zoom-out:before {\n  content: \"\\e016\";\n}\n.glyphicon-off:before {\n  content: \"\\e017\";\n}\n.glyphicon-signal:before {\n  content: \"\\e018\";\n}\n.glyphicon-cog:before {\n  content: \"\\e019\";\n}\n.glyphicon-trash:before {\n  content: \"\\e020\";\n}\n.glyphicon-home:before {\n  content: \"\\e021\";\n}\n.glyphicon-file:before {\n  content: \"\\e022\";\n}\n.glyphicon-time:before {\n  content: \"\\e023\";\n}\n.glyphicon-road:before {\n  content: \"\\e024\";\n}\n.glyphicon-download-alt:before {\n  content: \"\\e025\";\n}\n.glyphicon-download:before {\n  content: \"\\e026\";\n}\n.glyphicon-upload:before {\n  content: \"\\e027\";\n}\n.glyphicon-inbox:before {\n  content: \"\\e028\";\n}\n.glyphicon-play-circle:before {\n  content: \"\\e029\";\n}\n.glyphicon-repeat:before {\n  content: \"\\e030\";\n}\n.glyphicon-refresh:before {\n  content: \"\\e031\";\n}\n.glyphicon-list-alt:before {\n  content: \"\\e032\";\n}\n.glyphicon-lock:before {\n  content: \"\\e033\";\n}\n.glyphicon-flag:before {\n  content: \"\\e034\";\n}\n.glyphicon-headphones:before {\n  content: \"\\e035\";\n}\n.glyphicon-volume-off:before {\n  content: \"\\e036\";\n}\n.glyphicon-volume-down:before {\n  content: \"\\e037\";\n}\n.glyphicon-volume-up:before {\n  content: \"\\e038\";\n}\n.glyphicon-qrcode:before {\n  content: \"\\e039\";\n}\n.glyphicon-barcode:before {\n  content: \"\\e040\";\n}\n.glyphicon-tag:before {\n  content: \"\\e041\";\n}\n.glyphicon-tags:before {\n  content: \"\\e042\";\n}\n.glyphicon-book:before {\n  content: \"\\e043\";\n}\n.glyphicon-bookmark:before {\n  content: \"\\e044\";\n}\n.glyphicon-print:before {\n  content: \"\\e045\";\n}\n.glyphicon-camera:before {\n  content: \"\\e046\";\n}\n.glyphicon-font:before {\n  content: \"\\e047\";\n}\n.glyphicon-bold:before {\n  content: \"\\e048\";\n}\n.glyphicon-italic:before {\n  content: \"\\e049\";\n}\n.glyphicon-text-height:before {\n  content: \"\\e050\";\n}\n.glyphicon-text-width:before {\n  content: \"\\e051\";\n}\n.glyphicon-align-left:before {\n  content: \"\\e052\";\n}\n.glyphicon-align-center:before {\n  content: \"\\e053\";\n}\n.glyphicon-align-right:before {\n  content: \"\\e054\";\n}\n.glyphicon-align-justify:before {\n  content: \"\\e055\";\n}\n.glyphicon-list:before {\n  content: \"\\e056\";\n}\n.glyphicon-indent-left:before {\n  content: \"\\e057\";\n}\n.glyphicon-indent-right:before {\n  content: \"\\e058\";\n}\n.glyphicon-facetime-video:before {\n  content: \"\\e059\";\n}\n.glyphicon-picture:before {\n  content: \"\\e060\";\n}\n.glyphicon-map-marker:before {\n  content: \"\\e062\";\n}\n.glyphicon-adjust:before {\n  content: \"\\e063\";\n}\n.glyphicon-tint:before {\n  content: \"\\e064\";\n}\n.glyphicon-edit:before {\n  content: \"\\e065\";\n}\n.glyphicon-share:before {\n  content: \"\\e066\";\n}\n.glyphicon-check:before {\n  content: \"\\e067\";\n}\n.glyphicon-move:before {\n  content: \"\\e068\";\n}\n.glyphicon-step-backward:before {\n  content: \"\\e069\";\n}\n.glyphicon-fast-backward:before {\n  content: \"\\e070\";\n}\n.glyphicon-backward:before {\n  content: \"\\e071\";\n}\n.glyphicon-play:before {\n  content: \"\\e072\";\n}\n.glyphicon-pause:before {\n  content: \"\\e073\";\n}\n.glyphicon-stop:before {\n  content: \"\\e074\";\n}\n.glyphicon-forward:before {\n  content: \"\\e075\";\n}\n.glyphicon-fast-forward:before {\n  content: \"\\e076\";\n}\n.glyphicon-step-forward:before {\n  content: \"\\e077\";\n}\n.glyphicon-eject:before {\n  content: \"\\e078\";\n}\n.glyphicon-chevron-left:before {\n  content: \"\\e079\";\n}\n.glyphicon-chevron-right:before {\n  content: \"\\e080\";\n}\n.glyphicon-plus-sign:before {\n  content: \"\\e081\";\n}\n.glyphicon-minus-sign:before {\n  content: \"\\e082\";\n}\n.glyphicon-remove-sign:before {\n  content: \"\\e083\";\n}\n.glyphicon-ok-sign:before {\n  content: \"\\e084\";\n}\n.glyphicon-question-sign:before {\n  content: \"\\e085\";\n}\n.glyphicon-info-sign:before {\n  content: \"\\e086\";\n}\n.glyphicon-screenshot:before {\n  content: \"\\e087\";\n}\n.glyphicon-remove-circle:before {\n  content: \"\\e088\";\n}\n.glyphicon-ok-circle:before {\n  content: \"\\e089\";\n}\n.glyphicon-ban-circle:before {\n  content: \"\\e090\";\n}\n.glyphicon-arrow-left:before {\n  content: \"\\e091\";\n}\n.glyphicon-arrow-right:before {\n  content: \"\\e092\";\n}\n.glyphicon-arrow-up:before {\n  content: \"\\e093\";\n}\n.glyphicon-arrow-down:before {\n  content: \"\\e094\";\n}\n.glyphicon-share-alt:before {\n  content: \"\\e095\";\n}\n.glyphicon-resize-full:before {\n  content: \"\\e096\";\n}\n.glyphicon-resize-small:before {\n  content: \"\\e097\";\n}\n.glyphicon-exclamation-sign:before {\n  content: \"\\e101\";\n}\n.glyphicon-gift:before {\n  content: \"\\e102\";\n}\n.glyphicon-leaf:before {\n  content: \"\\e103\";\n}\n.glyphicon-fire:before {\n  content: \"\\e104\";\n}\n.glyphicon-eye-open:before {\n  content: \"\\e105\";\n}\n.glyphicon-eye-close:before {\n  content: \"\\e106\";\n}\n.glyphicon-warning-sign:before {\n  content: \"\\e107\";\n}\n.glyphicon-plane:before {\n  content: \"\\e108\";\n}\n.glyphicon-calendar:before {\n  content: \"\\e109\";\n}\n.glyphicon-random:before {\n  content: \"\\e110\";\n}\n.glyphicon-comment:before {\n  content: \"\\e111\";\n}\n.glyphicon-magnet:before {\n  content: \"\\e112\";\n}\n.glyphicon-chevron-up:before {\n  content: \"\\e113\";\n}\n.glyphicon-chevron-down:before {\n  content: \"\\e114\";\n}\n.glyphicon-retweet:before {\n  content: \"\\e115\";\n}\n.glyphicon-shopping-cart:before {\n  content: \"\\e116\";\n}\n.glyphicon-folder-close:before {\n  content: \"\\e117\";\n}\n.glyphicon-folder-open:before {\n  content: \"\\e118\";\n}\n.glyphicon-resize-vertical:before {\n  content: \"\\e119\";\n}\n.glyphicon-resize-horizontal:before {\n  content: \"\\e120\";\n}\n.glyphicon-hdd:before {\n  content: \"\\e121\";\n}\n.glyphicon-bullhorn:before {\n  content: \"\\e122\";\n}\n.glyphicon-bell:before {\n  content: \"\\e123\";\n}\n.glyphicon-certificate:before {\n  content: \"\\e124\";\n}\n.glyphicon-thumbs-up:before {\n  content: \"\\e125\";\n}\n.glyphicon-thumbs-down:before {\n  content: \"\\e126\";\n}\n.glyphicon-hand-right:before {\n  content: \"\\e127\";\n}\n.glyphicon-hand-left:before {\n  content: \"\\e128\";\n}\n.glyphicon-hand-up:before {\n  content: \"\\e129\";\n}\n.glyphicon-hand-down:before {\n  content: \"\\e130\";\n}\n.glyphicon-circle-arrow-right:before {\n  content: \"\\e131\";\n}\n.glyphicon-circle-arrow-left:before {\n  content: \"\\e132\";\n}\n.glyphicon-circle-arrow-up:before {\n  content: \"\\e133\";\n}\n.glyphicon-circle-arrow-down:before {\n  content: \"\\e134\";\n}\n.glyphicon-globe:before {\n  content: \"\\e135\";\n}\n.glyphicon-wrench:before {\n  content: \"\\e136\";\n}\n.glyphicon-tasks:before {\n  content: \"\\e137\";\n}\n.glyphicon-filter:before {\n  content: \"\\e138\";\n}\n.glyphicon-briefcase:before {\n  content: \"\\e139\";\n}\n.glyphicon-fullscreen:before {\n  content: \"\\e140\";\n}\n.glyphicon-dashboard:before {\n  content: \"\\e141\";\n}\n.glyphicon-paperclip:before {\n  content: \"\\e142\";\n}\n.glyphicon-heart-empty:before {\n  content: \"\\e143\";\n}\n.glyphicon-link:before {\n  content: \"\\e144\";\n}\n.glyphicon-phone:before {\n  content: \"\\e145\";\n}\n.glyphicon-pushpin:before {\n  content: \"\\e146\";\n}\n.glyphicon-usd:before {\n  content: \"\\e148\";\n}\n.glyphicon-gbp:before {\n  content: \"\\e149\";\n}\n.glyphicon-sort:before {\n  content: \"\\e150\";\n}\n.glyphicon-sort-by-alphabet:before {\n  content: \"\\e151\";\n}\n.glyphicon-sort-by-alphabet-alt:before {\n  content: \"\\e152\";\n}\n.glyphicon-sort-by-order:before {\n  content: \"\\e153\";\n}\n.glyphicon-sort-by-order-alt:before {\n  content: \"\\e154\";\n}\n.glyphicon-sort-by-attributes:before {\n  content: \"\\e155\";\n}\n.glyphicon-sort-by-attributes-alt:before {\n  content: \"\\e156\";\n}\n.glyphicon-unchecked:before {\n  content: \"\\e157\";\n}\n.glyphicon-expand:before {\n  content: \"\\e158\";\n}\n.glyphicon-collapse-down:before {\n  content: \"\\e159\";\n}\n.glyphicon-collapse-up:before {\n  content: \"\\e160\";\n}\n.glyphicon-log-in:before {\n  content: \"\\e161\";\n}\n.glyphicon-flash:before {\n  content: \"\\e162\";\n}\n.glyphicon-log-out:before {\n  content: \"\\e163\";\n}\n.glyphicon-new-window:before {\n  content: \"\\e164\";\n}\n.glyphicon-record:before {\n  content: \"\\e165\";\n}\n.glyphicon-save:before {\n  content: \"\\e166\";\n}\n.glyphicon-open:before {\n  content: \"\\e167\";\n}\n.glyphicon-saved:before {\n  content: \"\\e168\";\n}\n.glyphicon-import:before {\n  content: \"\\e169\";\n}\n.glyphicon-export:before {\n  content: \"\\e170\";\n}\n.glyphicon-send:before {\n  content: \"\\e171\";\n}\n.glyphicon-floppy-disk:before {\n  content: \"\\e172\";\n}\n.glyphicon-floppy-saved:before {\n  content: \"\\e173\";\n}\n.glyphicon-floppy-remove:before {\n  content: \"\\e174\";\n}\n.glyphicon-floppy-save:before {\n  content: \"\\e175\";\n}\n.glyphicon-floppy-open:before {\n  content: \"\\e176\";\n}\n.glyphicon-credit-card:before {\n  content: \"\\e177\";\n}\n.glyphicon-transfer:before {\n  content: \"\\e178\";\n}\n.glyphicon-cutlery:before {\n  content: \"\\e179\";\n}\n.glyphicon-header:before {\n  content: \"\\e180\";\n}\n.glyphicon-compressed:before {\n  content: \"\\e181\";\n}\n.glyphicon-earphone:before {\n  content: \"\\e182\";\n}\n.glyphicon-phone-alt:before {\n  content: \"\\e183\";\n}\n.glyphicon-tower:before {\n  content: \"\\e184\";\n}\n.glyphicon-stats:before {\n  content: \"\\e185\";\n}\n.glyphicon-sd-video:before {\n  content: \"\\e186\";\n}\n.glyphicon-hd-video:before {\n  content: \"\\e187\";\n}\n.glyphicon-subtitles:before {\n  content: \"\\e188\";\n}\n.glyphicon-sound-stereo:before {\n  content: \"\\e189\";\n}\n.glyphicon-sound-dolby:before {\n  content: \"\\e190\";\n}\n.glyphicon-sound-5-1:before {\n  content: \"\\e191\";\n}\n.glyphicon-sound-6-1:before {\n  content: \"\\e192\";\n}\n.glyphicon-sound-7-1:before {\n  content: \"\\e193\";\n}\n.glyphicon-copyright-mark:before {\n  content: \"\\e194\";\n}\n.glyphicon-registration-mark:before {\n  content: \"\\e195\";\n}\n.glyphicon-cloud-download:before {\n  content: \"\\e197\";\n}\n.glyphicon-cloud-upload:before {\n  content: \"\\e198\";\n}\n.glyphicon-tree-conifer:before {\n  content: \"\\e199\";\n}\n.glyphicon-tree-deciduous:before {\n  content: \"\\e200\";\n}\n* {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\n*:before,\n*:after {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\nhtml {\n  font-size: 10px;\n  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\nbody {\n  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  font-size: 14px;\n  line-height: 1.42857143;\n  color: #333333;\n  background-color: #ffffff;\n}\ninput,\nbutton,\nselect,\ntextarea {\n  font-family: inherit;\n  font-size: inherit;\n  line-height: inherit;\n}\na {\n  color: #337ab7;\n  text-decoration: none;\n}\na:hover,\na:focus {\n  color: #23527c;\n  text-decoration: underline;\n}\na:focus {\n  outline: thin dotted;\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px;\n}\nfigure {\n  margin: 0;\n}\nimg {\n  vertical-align: middle;\n}\n.img-responsive,\n.thumbnail > img,\n.thumbnail a > img,\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n  display: block;\n  max-width: 100%;\n  height: auto;\n}\n.img-rounded {\n  border-radius: 6px;\n}\n.img-thumbnail {\n  padding: 4px;\n  line-height: 1.42857143;\n  background-color: #ffffff;\n  border: 1px solid #dddddd;\n  border-radius: 4px;\n  -webkit-transition: all 0.2s ease-in-out;\n  -o-transition: all 0.2s ease-in-out;\n  transition: all 0.2s ease-in-out;\n  display: inline-block;\n  max-width: 100%;\n  height: auto;\n}\n.img-circle {\n  border-radius: 50%;\n}\nhr {\n  margin-top: 20px;\n  margin-bottom: 20px;\n  border: 0;\n  border-top: 1px solid #eeeeee;\n}\n.sr-only {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  margin: -1px;\n  padding: 0;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  border: 0;\n}\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n  position: static;\n  width: auto;\n  height: auto;\n  margin: 0;\n  overflow: visible;\n  clip: auto;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n.h1,\n.h2,\n.h3,\n.h4,\n.h5,\n.h6 {\n  font-family: inherit;\n  font-weight: 500;\n  line-height: 1.1;\n  color: inherit;\n}\nh1 small,\nh2 small,\nh3 small,\nh4 small,\nh5 small,\nh6 small,\n.h1 small,\n.h2 small,\n.h3 small,\n.h4 small,\n.h5 small,\n.h6 small,\nh1 .small,\nh2 .small,\nh3 .small,\nh4 .small,\nh5 .small,\nh6 .small,\n.h1 .small,\n.h2 .small,\n.h3 .small,\n.h4 .small,\n.h5 .small,\n.h6 .small {\n  font-weight: normal;\n  line-height: 1;\n  color: #777777;\n}\nh1,\n.h1,\nh2,\n.h2,\nh3,\n.h3 {\n  margin-top: 20px;\n  margin-bottom: 10px;\n}\nh1 small,\n.h1 small,\nh2 small,\n.h2 small,\nh3 small,\n.h3 small,\nh1 .small,\n.h1 .small,\nh2 .small,\n.h2 .small,\nh3 .small,\n.h3 .small {\n  font-size: 65%;\n}\nh4,\n.h4,\nh5,\n.h5,\nh6,\n.h6 {\n  margin-top: 10px;\n  margin-bottom: 10px;\n}\nh4 small,\n.h4 small,\nh5 small,\n.h5 small,\nh6 small,\n.h6 small,\nh4 .small,\n.h4 .small,\nh5 .small,\n.h5 .small,\nh6 .small,\n.h6 .small {\n  font-size: 75%;\n}\nh1,\n.h1 {\n  font-size: 36px;\n}\nh2,\n.h2 {\n  font-size: 30px;\n}\nh3,\n.h3 {\n  font-size: 24px;\n}\nh4,\n.h4 {\n  font-size: 18px;\n}\nh5,\n.h5 {\n  font-size: 14px;\n}\nh6,\n.h6 {\n  font-size: 12px;\n}\np {\n  margin: 0 0 10px;\n}\n.lead {\n  margin-bottom: 20px;\n  font-size: 16px;\n  font-weight: 300;\n  line-height: 1.4;\n}\n@media (min-width: 768px) {\n  .lead {\n    font-size: 21px;\n  }\n}\nsmall,\n.small {\n  font-size: 85%;\n}\nmark,\n.mark {\n  background-color: #fcf8e3;\n  padding: .2em;\n}\n.text-left {\n  text-align: left;\n}\n.text-right {\n  text-align: right;\n}\n.text-center {\n  text-align: center;\n}\n.text-justify {\n  text-align: justify;\n}\n.text-nowrap {\n  white-space: nowrap;\n}\n.text-lowercase {\n  text-transform: lowercase;\n}\n.text-uppercase {\n  text-transform: uppercase;\n}\n.text-capitalize {\n  text-transform: capitalize;\n}\n.text-muted {\n  color: #777777;\n}\n.text-primary {\n  color: #337ab7;\n}\na.text-primary:hover {\n  color: #286090;\n}\n.text-success {\n  color: #3c763d;\n}\na.text-success:hover {\n  color: #2b542c;\n}\n.text-info {\n  color: #31708f;\n}\na.text-info:hover {\n  color: #245269;\n}\n.text-warning {\n  color: #8a6d3b;\n}\na.text-warning:hover {\n  color: #66512c;\n}\n.text-danger {\n  color: #a94442;\n}\na.text-danger:hover {\n  color: #843534;\n}\n.bg-primary {\n  color: #fff;\n  background-color: #337ab7;\n}\na.bg-primary:hover {\n  background-color: #286090;\n}\n.bg-success {\n  background-color: #dff0d8;\n}\na.bg-success:hover {\n  background-color: #c1e2b3;\n}\n.bg-info {\n  background-color: #d9edf7;\n}\na.bg-info:hover {\n  background-color: #afd9ee;\n}\n.bg-warning {\n  background-color: #fcf8e3;\n}\na.bg-warning:hover {\n  background-color: #f7ecb5;\n}\n.bg-danger {\n  background-color: #f2dede;\n}\na.bg-danger:hover {\n  background-color: #e4b9b9;\n}\n.page-header {\n  padding-bottom: 9px;\n  margin: 40px 0 20px;\n  border-bottom: 1px solid #eeeeee;\n}\nul,\nol {\n  margin-top: 0;\n  margin-bottom: 10px;\n}\nul ul,\nol ul,\nul ol,\nol ol {\n  margin-bottom: 0;\n}\n.list-unstyled {\n  padding-left: 0;\n  list-style: none;\n}\n.list-inline {\n  padding-left: 0;\n  list-style: none;\n  margin-left: -5px;\n}\n.list-inline > li {\n  display: inline-block;\n  padding-left: 5px;\n  padding-right: 5px;\n}\ndl {\n  margin-top: 0;\n  margin-bottom: 20px;\n}\ndt,\ndd {\n  line-height: 1.42857143;\n}\ndt {\n  font-weight: bold;\n}\ndd {\n  margin-left: 0;\n}\n@media (min-width: 768px) {\n  .dl-horizontal dt {\n    float: left;\n    width: 160px;\n    clear: left;\n    text-align: right;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n  }\n  .dl-horizontal dd {\n    margin-left: 180px;\n  }\n}\nabbr[title],\nabbr[data-original-title] {\n  cursor: help;\n  border-bottom: 1px dotted #777777;\n}\n.initialism {\n  font-size: 90%;\n  text-transform: uppercase;\n}\nblockquote {\n  padding: 10px 20px;\n  margin: 0 0 20px;\n  font-size: 17.5px;\n  border-left: 5px solid #eeeeee;\n}\nblockquote p:last-child,\nblockquote ul:last-child,\nblockquote ol:last-child {\n  margin-bottom: 0;\n}\nblockquote footer,\nblockquote small,\nblockquote .small {\n  display: block;\n  font-size: 80%;\n  line-height: 1.42857143;\n  color: #777777;\n}\nblockquote footer:before,\nblockquote small:before,\nblockquote .small:before {\n  content: '\\2014 \\00A0';\n}\n.blockquote-reverse,\nblockquote.pull-right {\n  padding-right: 15px;\n  padding-left: 0;\n  border-right: 5px solid #eeeeee;\n  border-left: 0;\n  text-align: right;\n}\n.blockquote-reverse footer:before,\nblockquote.pull-right footer:before,\n.blockquote-reverse small:before,\nblockquote.pull-right small:before,\n.blockquote-reverse .small:before,\nblockquote.pull-right .small:before {\n  content: '';\n}\n.blockquote-reverse footer:after,\nblockquote.pull-right footer:after,\n.blockquote-reverse small:after,\nblockquote.pull-right small:after,\n.blockquote-reverse .small:after,\nblockquote.pull-right .small:after {\n  content: '\\00A0 \\2014';\n}\naddress {\n  margin-bottom: 20px;\n  font-style: normal;\n  line-height: 1.42857143;\n}\ncode,\nkbd,\npre,\nsamp {\n  font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace;\n}\ncode {\n  padding: 2px 4px;\n  font-size: 90%;\n  color: #c7254e;\n  background-color: #f9f2f4;\n  border-radius: 4px;\n}\nkbd {\n  padding: 2px 4px;\n  font-size: 90%;\n  color: #ffffff;\n  background-color: #333333;\n  border-radius: 3px;\n  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\nkbd kbd {\n  padding: 0;\n  font-size: 100%;\n  font-weight: bold;\n  box-shadow: none;\n}\npre {\n  display: block;\n  padding: 9.5px;\n  margin: 0 0 10px;\n  font-size: 13px;\n  line-height: 1.42857143;\n  word-break: break-all;\n  word-wrap: break-word;\n  color: #333333;\n  background-color: #f5f5f5;\n  border: 1px solid #cccccc;\n  border-radius: 4px;\n}\npre code {\n  padding: 0;\n  font-size: inherit;\n  color: inherit;\n  white-space: pre-wrap;\n  background-color: transparent;\n  border-radius: 0;\n}\n.pre-scrollable {\n  max-height: 340px;\n  overflow-y: scroll;\n}\n.container {\n  margin-right: auto;\n  margin-left: auto;\n  padding-left: 15px;\n  padding-right: 15px;\n}\n@media (min-width: 768px) {\n  .container {\n    width: 750px;\n  }\n}\n@media (min-width: 992px) {\n  .container {\n    width: 970px;\n  }\n}\n@media (min-width: 1200px) {\n  .container {\n    width: 1170px;\n  }\n}\n.container-fluid {\n  margin-right: auto;\n  margin-left: auto;\n  padding-left: 15px;\n  padding-right: 15px;\n}\n.row {\n  margin-left: -15px;\n  margin-right: -15px;\n}\n.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 {\n  position: relative;\n  min-height: 1px;\n  padding-left: 15px;\n  padding-right: 15px;\n}\n.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 {\n  float: left;\n}\n.col-xs-12 {\n  width: 100%;\n}\n.col-xs-11 {\n  width: 91.66666667%;\n}\n.col-xs-10 {\n  width: 83.33333333%;\n}\n.col-xs-9 {\n  width: 75%;\n}\n.col-xs-8 {\n  width: 66.66666667%;\n}\n.col-xs-7 {\n  width: 58.33333333%;\n}\n.col-xs-6 {\n  width: 50%;\n}\n.col-xs-5 {\n  width: 41.66666667%;\n}\n.col-xs-4 {\n  width: 33.33333333%;\n}\n.col-xs-3 {\n  width: 25%;\n}\n.col-xs-2 {\n  width: 16.66666667%;\n}\n.col-xs-1 {\n  width: 8.33333333%;\n}\n.col-xs-pull-12 {\n  right: 100%;\n}\n.col-xs-pull-11 {\n  right: 91.66666667%;\n}\n.col-xs-pull-10 {\n  right: 83.33333333%;\n}\n.col-xs-pull-9 {\n  right: 75%;\n}\n.col-xs-pull-8 {\n  right: 66.66666667%;\n}\n.col-xs-pull-7 {\n  right: 58.33333333%;\n}\n.col-xs-pull-6 {\n  right: 50%;\n}\n.col-xs-pull-5 {\n  right: 41.66666667%;\n}\n.col-xs-pull-4 {\n  right: 33.33333333%;\n}\n.col-xs-pull-3 {\n  right: 25%;\n}\n.col-xs-pull-2 {\n  right: 16.66666667%;\n}\n.col-xs-pull-1 {\n  right: 8.33333333%;\n}\n.col-xs-pull-0 {\n  right: auto;\n}\n.col-xs-push-12 {\n  left: 100%;\n}\n.col-xs-push-11 {\n  left: 91.66666667%;\n}\n.col-xs-push-10 {\n  left: 83.33333333%;\n}\n.col-xs-push-9 {\n  left: 75%;\n}\n.col-xs-push-8 {\n  left: 66.66666667%;\n}\n.col-xs-push-7 {\n  left: 58.33333333%;\n}\n.col-xs-push-6 {\n  left: 50%;\n}\n.col-xs-push-5 {\n  left: 41.66666667%;\n}\n.col-xs-push-4 {\n  left: 33.33333333%;\n}\n.col-xs-push-3 {\n  left: 25%;\n}\n.col-xs-push-2 {\n  left: 16.66666667%;\n}\n.col-xs-push-1 {\n  left: 8.33333333%;\n}\n.col-xs-push-0 {\n  left: auto;\n}\n.col-xs-offset-12 {\n  margin-left: 100%;\n}\n.col-xs-offset-11 {\n  margin-left: 91.66666667%;\n}\n.col-xs-offset-10 {\n  margin-left: 83.33333333%;\n}\n.col-xs-offset-9 {\n  margin-left: 75%;\n}\n.col-xs-offset-8 {\n  margin-left: 66.66666667%;\n}\n.col-xs-offset-7 {\n  margin-left: 58.33333333%;\n}\n.col-xs-offset-6 {\n  margin-left: 50%;\n}\n.col-xs-offset-5 {\n  margin-left: 41.66666667%;\n}\n.col-xs-offset-4 {\n  margin-left: 33.33333333%;\n}\n.col-xs-offset-3 {\n  margin-left: 25%;\n}\n.col-xs-offset-2 {\n  margin-left: 16.66666667%;\n}\n.col-xs-offset-1 {\n  margin-left: 8.33333333%;\n}\n.col-xs-offset-0 {\n  margin-left: 0%;\n}\n@media (min-width: 768px) {\n  .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 {\n    float: left;\n  }\n  .col-sm-12 {\n    width: 100%;\n  }\n  .col-sm-11 {\n    width: 91.66666667%;\n  }\n  .col-sm-10 {\n    width: 83.33333333%;\n  }\n  .col-sm-9 {\n    width: 75%;\n  }\n  .col-sm-8 {\n    width: 66.66666667%;\n  }\n  .col-sm-7 {\n    width: 58.33333333%;\n  }\n  .col-sm-6 {\n    width: 50%;\n  }\n  .col-sm-5 {\n    width: 41.66666667%;\n  }\n  .col-sm-4 {\n    width: 33.33333333%;\n  }\n  .col-sm-3 {\n    width: 25%;\n  }\n  .col-sm-2 {\n    width: 16.66666667%;\n  }\n  .col-sm-1 {\n    width: 8.33333333%;\n  }\n  .col-sm-pull-12 {\n    right: 100%;\n  }\n  .col-sm-pull-11 {\n    right: 91.66666667%;\n  }\n  .col-sm-pull-10 {\n    right: 83.33333333%;\n  }\n  .col-sm-pull-9 {\n    right: 75%;\n  }\n  .col-sm-pull-8 {\n    right: 66.66666667%;\n  }\n  .col-sm-pull-7 {\n    right: 58.33333333%;\n  }\n  .col-sm-pull-6 {\n    right: 50%;\n  }\n  .col-sm-pull-5 {\n    right: 41.66666667%;\n  }\n  .col-sm-pull-4 {\n    right: 33.33333333%;\n  }\n  .col-sm-pull-3 {\n    right: 25%;\n  }\n  .col-sm-pull-2 {\n    right: 16.66666667%;\n  }\n  .col-sm-pull-1 {\n    right: 8.33333333%;\n  }\n  .col-sm-pull-0 {\n    right: auto;\n  }\n  .col-sm-push-12 {\n    left: 100%;\n  }\n  .col-sm-push-11 {\n    left: 91.66666667%;\n  }\n  .col-sm-push-10 {\n    left: 83.33333333%;\n  }\n  .col-sm-push-9 {\n    left: 75%;\n  }\n  .col-sm-push-8 {\n    left: 66.66666667%;\n  }\n  .col-sm-push-7 {\n    left: 58.33333333%;\n  }\n  .col-sm-push-6 {\n    left: 50%;\n  }\n  .col-sm-push-5 {\n    left: 41.66666667%;\n  }\n  .col-sm-push-4 {\n    left: 33.33333333%;\n  }\n  .col-sm-push-3 {\n    left: 25%;\n  }\n  .col-sm-push-2 {\n    left: 16.66666667%;\n  }\n  .col-sm-push-1 {\n    left: 8.33333333%;\n  }\n  .col-sm-push-0 {\n    left: auto;\n  }\n  .col-sm-offset-12 {\n    margin-left: 100%;\n  }\n  .col-sm-offset-11 {\n    margin-left: 91.66666667%;\n  }\n  .col-sm-offset-10 {\n    margin-left: 83.33333333%;\n  }\n  .col-sm-offset-9 {\n    margin-left: 75%;\n  }\n  .col-sm-offset-8 {\n    margin-left: 66.66666667%;\n  }\n  .col-sm-offset-7 {\n    margin-left: 58.33333333%;\n  }\n  .col-sm-offset-6 {\n    margin-left: 50%;\n  }\n  .col-sm-offset-5 {\n    margin-left: 41.66666667%;\n  }\n  .col-sm-offset-4 {\n    margin-left: 33.33333333%;\n  }\n  .col-sm-offset-3 {\n    margin-left: 25%;\n  }\n  .col-sm-offset-2 {\n    margin-left: 16.66666667%;\n  }\n  .col-sm-offset-1 {\n    margin-left: 8.33333333%;\n  }\n  .col-sm-offset-0 {\n    margin-left: 0%;\n  }\n}\n@media (min-width: 992px) {\n  .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 {\n    float: left;\n  }\n  .col-md-12 {\n    width: 100%;\n  }\n  .col-md-11 {\n    width: 91.66666667%;\n  }\n  .col-md-10 {\n    width: 83.33333333%;\n  }\n  .col-md-9 {\n    width: 75%;\n  }\n  .col-md-8 {\n    width: 66.66666667%;\n  }\n  .col-md-7 {\n    width: 58.33333333%;\n  }\n  .col-md-6 {\n    width: 50%;\n  }\n  .col-md-5 {\n    width: 41.66666667%;\n  }\n  .col-md-4 {\n    width: 33.33333333%;\n  }\n  .col-md-3 {\n    width: 25%;\n  }\n  .col-md-2 {\n    width: 16.66666667%;\n  }\n  .col-md-1 {\n    width: 8.33333333%;\n  }\n  .col-md-pull-12 {\n    right: 100%;\n  }\n  .col-md-pull-11 {\n    right: 91.66666667%;\n  }\n  .col-md-pull-10 {\n    right: 83.33333333%;\n  }\n  .col-md-pull-9 {\n    right: 75%;\n  }\n  .col-md-pull-8 {\n    right: 66.66666667%;\n  }\n  .col-md-pull-7 {\n    right: 58.33333333%;\n  }\n  .col-md-pull-6 {\n    right: 50%;\n  }\n  .col-md-pull-5 {\n    right: 41.66666667%;\n  }\n  .col-md-pull-4 {\n    right: 33.33333333%;\n  }\n  .col-md-pull-3 {\n    right: 25%;\n  }\n  .col-md-pull-2 {\n    right: 16.66666667%;\n  }\n  .col-md-pull-1 {\n    right: 8.33333333%;\n  }\n  .col-md-pull-0 {\n    right: auto;\n  }\n  .col-md-push-12 {\n    left: 100%;\n  }\n  .col-md-push-11 {\n    left: 91.66666667%;\n  }\n  .col-md-push-10 {\n    left: 83.33333333%;\n  }\n  .col-md-push-9 {\n    left: 75%;\n  }\n  .col-md-push-8 {\n    left: 66.66666667%;\n  }\n  .col-md-push-7 {\n    left: 58.33333333%;\n  }\n  .col-md-push-6 {\n    left: 50%;\n  }\n  .col-md-push-5 {\n    left: 41.66666667%;\n  }\n  .col-md-push-4 {\n    left: 33.33333333%;\n  }\n  .col-md-push-3 {\n    left: 25%;\n  }\n  .col-md-push-2 {\n    left: 16.66666667%;\n  }\n  .col-md-push-1 {\n    left: 8.33333333%;\n  }\n  .col-md-push-0 {\n    left: auto;\n  }\n  .col-md-offset-12 {\n    margin-left: 100%;\n  }\n  .col-md-offset-11 {\n    margin-left: 91.66666667%;\n  }\n  .col-md-offset-10 {\n    margin-left: 83.33333333%;\n  }\n  .col-md-offset-9 {\n    margin-left: 75%;\n  }\n  .col-md-offset-8 {\n    margin-left: 66.66666667%;\n  }\n  .col-md-offset-7 {\n    margin-left: 58.33333333%;\n  }\n  .col-md-offset-6 {\n    margin-left: 50%;\n  }\n  .col-md-offset-5 {\n    margin-left: 41.66666667%;\n  }\n  .col-md-offset-4 {\n    margin-left: 33.33333333%;\n  }\n  .col-md-offset-3 {\n    margin-left: 25%;\n  }\n  .col-md-offset-2 {\n    margin-left: 16.66666667%;\n  }\n  .col-md-offset-1 {\n    margin-left: 8.33333333%;\n  }\n  .col-md-offset-0 {\n    margin-left: 0%;\n  }\n}\n@media (min-width: 1200px) {\n  .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 {\n    float: left;\n  }\n  .col-lg-12 {\n    width: 100%;\n  }\n  .col-lg-11 {\n    width: 91.66666667%;\n  }\n  .col-lg-10 {\n    width: 83.33333333%;\n  }\n  .col-lg-9 {\n    width: 75%;\n  }\n  .col-lg-8 {\n    width: 66.66666667%;\n  }\n  .col-lg-7 {\n    width: 58.33333333%;\n  }\n  .col-lg-6 {\n    width: 50%;\n  }\n  .col-lg-5 {\n    width: 41.66666667%;\n  }\n  .col-lg-4 {\n    width: 33.33333333%;\n  }\n  .col-lg-3 {\n    width: 25%;\n  }\n  .col-lg-2 {\n    width: 16.66666667%;\n  }\n  .col-lg-1 {\n    width: 8.33333333%;\n  }\n  .col-lg-pull-12 {\n    right: 100%;\n  }\n  .col-lg-pull-11 {\n    right: 91.66666667%;\n  }\n  .col-lg-pull-10 {\n    right: 83.33333333%;\n  }\n  .col-lg-pull-9 {\n    right: 75%;\n  }\n  .col-lg-pull-8 {\n    right: 66.66666667%;\n  }\n  .col-lg-pull-7 {\n    right: 58.33333333%;\n  }\n  .col-lg-pull-6 {\n    right: 50%;\n  }\n  .col-lg-pull-5 {\n    right: 41.66666667%;\n  }\n  .col-lg-pull-4 {\n    right: 33.33333333%;\n  }\n  .col-lg-pull-3 {\n    right: 25%;\n  }\n  .col-lg-pull-2 {\n    right: 16.66666667%;\n  }\n  .col-lg-pull-1 {\n    right: 8.33333333%;\n  }\n  .col-lg-pull-0 {\n    right: auto;\n  }\n  .col-lg-push-12 {\n    left: 100%;\n  }\n  .col-lg-push-11 {\n    left: 91.66666667%;\n  }\n  .col-lg-push-10 {\n    left: 83.33333333%;\n  }\n  .col-lg-push-9 {\n    left: 75%;\n  }\n  .col-lg-push-8 {\n    left: 66.66666667%;\n  }\n  .col-lg-push-7 {\n    left: 58.33333333%;\n  }\n  .col-lg-push-6 {\n    left: 50%;\n  }\n  .col-lg-push-5 {\n    left: 41.66666667%;\n  }\n  .col-lg-push-4 {\n    left: 33.33333333%;\n  }\n  .col-lg-push-3 {\n    left: 25%;\n  }\n  .col-lg-push-2 {\n    left: 16.66666667%;\n  }\n  .col-lg-push-1 {\n    left: 8.33333333%;\n  }\n  .col-lg-push-0 {\n    left: auto;\n  }\n  .col-lg-offset-12 {\n    margin-left: 100%;\n  }\n  .col-lg-offset-11 {\n    margin-left: 91.66666667%;\n  }\n  .col-lg-offset-10 {\n    margin-left: 83.33333333%;\n  }\n  .col-lg-offset-9 {\n    margin-left: 75%;\n  }\n  .col-lg-offset-8 {\n    margin-left: 66.66666667%;\n  }\n  .col-lg-offset-7 {\n    margin-left: 58.33333333%;\n  }\n  .col-lg-offset-6 {\n    margin-left: 50%;\n  }\n  .col-lg-offset-5 {\n    margin-left: 41.66666667%;\n  }\n  .col-lg-offset-4 {\n    margin-left: 33.33333333%;\n  }\n  .col-lg-offset-3 {\n    margin-left: 25%;\n  }\n  .col-lg-offset-2 {\n    margin-left: 16.66666667%;\n  }\n  .col-lg-offset-1 {\n    margin-left: 8.33333333%;\n  }\n  .col-lg-offset-0 {\n    margin-left: 0%;\n  }\n}\ntable {\n  background-color: transparent;\n}\ncaption {\n  padding-top: 8px;\n  padding-bottom: 8px;\n  color: #777777;\n  text-align: left;\n}\nth {\n  text-align: left;\n}\n.table {\n  width: 100%;\n  max-width: 100%;\n  margin-bottom: 20px;\n}\n.table > thead > tr > th,\n.table > tbody > tr > th,\n.table > tfoot > tr > th,\n.table > thead > tr > td,\n.table > tbody > tr > td,\n.table > tfoot > tr > td {\n  padding: 8px;\n  line-height: 1.42857143;\n  vertical-align: top;\n  border-top: 1px solid #dddddd;\n}\n.table > thead > tr > th {\n  vertical-align: bottom;\n  border-bottom: 2px solid #dddddd;\n}\n.table > caption + thead > tr:first-child > th,\n.table > colgroup + thead > tr:first-child > th,\n.table > thead:first-child > tr:first-child > th,\n.table > caption + thead > tr:first-child > td,\n.table > colgroup + thead > tr:first-child > td,\n.table > thead:first-child > tr:first-child > td {\n  border-top: 0;\n}\n.table > tbody + tbody {\n  border-top: 2px solid #dddddd;\n}\n.table .table {\n  background-color: #ffffff;\n}\n.table-condensed > thead > tr > th,\n.table-condensed > tbody > tr > th,\n.table-condensed > tfoot > tr > th,\n.table-condensed > thead > tr > td,\n.table-condensed > tbody > tr > td,\n.table-condensed > tfoot > tr > td {\n  padding: 5px;\n}\n.table-bordered {\n  border: 1px solid #dddddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > tbody > tr > th,\n.table-bordered > tfoot > tr > th,\n.table-bordered > thead > tr > td,\n.table-bordered > tbody > tr > td,\n.table-bordered > tfoot > tr > td {\n  border: 1px solid #dddddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > thead > tr > td {\n  border-bottom-width: 2px;\n}\n.table-striped > tbody > tr:nth-child(odd) {\n  background-color: #f9f9f9;\n}\n.table-hover > tbody > tr:hover {\n  background-color: #f5f5f5;\n}\ntable col[class*=\"col-\"] {\n  position: static;\n  float: none;\n  display: table-column;\n}\ntable td[class*=\"col-\"],\ntable th[class*=\"col-\"] {\n  position: static;\n  float: none;\n  display: table-cell;\n}\n.table > thead > tr > td.active,\n.table > tbody > tr > td.active,\n.table > tfoot > tr > td.active,\n.table > thead > tr > th.active,\n.table > tbody > tr > th.active,\n.table > tfoot > tr > th.active,\n.table > thead > tr.active > td,\n.table > tbody > tr.active > td,\n.table > tfoot > tr.active > td,\n.table > thead > tr.active > th,\n.table > tbody > tr.active > th,\n.table > tfoot > tr.active > th {\n  background-color: #f5f5f5;\n}\n.table-hover > tbody > tr > td.active:hover,\n.table-hover > tbody > tr > th.active:hover,\n.table-hover > tbody > tr.active:hover > td,\n.table-hover > tbody > tr:hover > .active,\n.table-hover > tbody > tr.active:hover > th {\n  background-color: #e8e8e8;\n}\n.table > thead > tr > td.success,\n.table > tbody > tr > td.success,\n.table > tfoot > tr > td.success,\n.table > thead > tr > th.success,\n.table > tbody > tr > th.success,\n.table > tfoot > tr > th.success,\n.table > thead > tr.success > td,\n.table > tbody > tr.success > td,\n.table > tfoot > tr.success > td,\n.table > thead > tr.success > th,\n.table > tbody > tr.success > th,\n.table > tfoot > tr.success > th {\n  background-color: #dff0d8;\n}\n.table-hover > tbody > tr > td.success:hover,\n.table-hover > tbody > tr > th.success:hover,\n.table-hover > tbody > tr.success:hover > td,\n.table-hover > tbody > tr:hover > .success,\n.table-hover > tbody > tr.success:hover > th {\n  background-color: #d0e9c6;\n}\n.table > thead > tr > td.info,\n.table > tbody > tr > td.info,\n.table > tfoot > tr > td.info,\n.table > thead > tr > th.info,\n.table > tbody > tr > th.info,\n.table > tfoot > tr > th.info,\n.table > thead > tr.info > td,\n.table > tbody > tr.info > td,\n.table > tfoot > tr.info > td,\n.table > thead > tr.info > th,\n.table > tbody > tr.info > th,\n.table > tfoot > tr.info > th {\n  background-color: #d9edf7;\n}\n.table-hover > tbody > tr > td.info:hover,\n.table-hover > tbody > tr > th.info:hover,\n.table-hover > tbody > tr.info:hover > td,\n.table-hover > tbody > tr:hover > .info,\n.table-hover > tbody > tr.info:hover > th {\n  background-color: #c4e3f3;\n}\n.table > thead > tr > td.warning,\n.table > tbody > tr > td.warning,\n.table > tfoot > tr > td.warning,\n.table > thead > tr > th.warning,\n.table > tbody > tr > th.warning,\n.table > tfoot > tr > th.warning,\n.table > thead > tr.warning > td,\n.table > tbody > tr.warning > td,\n.table > tfoot > tr.warning > td,\n.table > thead > tr.warning > th,\n.table > tbody > tr.warning > th,\n.table > tfoot > tr.warning > th {\n  background-color: #fcf8e3;\n}\n.table-hover > tbody > tr > td.warning:hover,\n.table-hover > tbody > tr > th.warning:hover,\n.table-hover > tbody > tr.warning:hover > td,\n.table-hover > tbody > tr:hover > .warning,\n.table-hover > tbody > tr.warning:hover > th {\n  background-color: #faf2cc;\n}\n.table > thead > tr > td.danger,\n.table > tbody > tr > td.danger,\n.table > tfoot > tr > td.danger,\n.table > thead > tr > th.danger,\n.table > tbody > tr > th.danger,\n.table > tfoot > tr > th.danger,\n.table > thead > tr.danger > td,\n.table > tbody > tr.danger > td,\n.table > tfoot > tr.danger > td,\n.table > thead > tr.danger > th,\n.table > tbody > tr.danger > th,\n.table > tfoot > tr.danger > th {\n  background-color: #f2dede;\n}\n.table-hover > tbody > tr > td.danger:hover,\n.table-hover > tbody > tr > th.danger:hover,\n.table-hover > tbody > tr.danger:hover > td,\n.table-hover > tbody > tr:hover > .danger,\n.table-hover > tbody > tr.danger:hover > th {\n  background-color: #ebcccc;\n}\n.table-responsive {\n  overflow-x: auto;\n  min-height: 0.01%;\n}\n@media screen and (max-width: 767px) {\n  .table-responsive {\n    width: 100%;\n    margin-bottom: 15px;\n    overflow-y: hidden;\n    -ms-overflow-style: -ms-autohiding-scrollbar;\n    border: 1px solid #dddddd;\n  }\n  .table-responsive > .table {\n    margin-bottom: 0;\n  }\n  .table-responsive > .table > thead > tr > th,\n  .table-responsive > .table > tbody > tr > th,\n  .table-responsive > .table > tfoot > tr > th,\n  .table-responsive > .table > thead > tr > td,\n  .table-responsive > .table > tbody > tr > td,\n  .table-responsive > .table > tfoot > tr > td {\n    white-space: nowrap;\n  }\n  .table-responsive > .table-bordered {\n    border: 0;\n  }\n  .table-responsive > .table-bordered > thead > tr > th:first-child,\n  .table-responsive > .table-bordered > tbody > tr > th:first-child,\n  .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n  .table-responsive > .table-bordered > thead > tr > td:first-child,\n  .table-responsive > .table-bordered > tbody > tr > td:first-child,\n  .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n    border-left: 0;\n  }\n  .table-responsive > .table-bordered > thead > tr > th:last-child,\n  .table-responsive > .table-bordered > tbody > tr > th:last-child,\n  .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n  .table-responsive > .table-bordered > thead > tr > td:last-child,\n  .table-responsive > .table-bordered > tbody > tr > td:last-child,\n  .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n    border-right: 0;\n  }\n  .table-responsive > .table-bordered > tbody > tr:last-child > th,\n  .table-responsive > .table-bordered > tfoot > tr:last-child > th,\n  .table-responsive > .table-bordered > tbody > tr:last-child > td,\n  .table-responsive > .table-bordered > tfoot > tr:last-child > td {\n    border-bottom: 0;\n  }\n}\nfieldset {\n  padding: 0;\n  margin: 0;\n  border: 0;\n  min-width: 0;\n}\nlegend {\n  display: block;\n  width: 100%;\n  padding: 0;\n  margin-bottom: 20px;\n  font-size: 21px;\n  line-height: inherit;\n  color: #333333;\n  border: 0;\n  border-bottom: 1px solid #e5e5e5;\n}\nlabel {\n  display: inline-block;\n  max-width: 100%;\n  margin-bottom: 5px;\n  font-weight: bold;\n}\ninput[type=\"search\"] {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  margin: 4px 0 0;\n  margin-top: 1px \\9;\n  line-height: normal;\n}\ninput[type=\"file\"] {\n  display: block;\n}\ninput[type=\"range\"] {\n  display: block;\n  width: 100%;\n}\nselect[multiple],\nselect[size] {\n  height: auto;\n}\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n  outline: thin dotted;\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px;\n}\noutput {\n  display: block;\n  padding-top: 7px;\n  font-size: 14px;\n  line-height: 1.42857143;\n  color: #555555;\n}\n.form-control {\n  display: block;\n  width: 100%;\n  height: 34px;\n  padding: 6px 12px;\n  font-size: 14px;\n  line-height: 1.42857143;\n  color: #555555;\n  background-color: #ffffff;\n  background-image: none;\n  border: 1px solid #cccccc;\n  border-radius: 4px;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n  -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n  -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n}\n.form-control:focus {\n  border-color: #66afe9;\n  outline: 0;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\n  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\n}\n.form-control::-moz-placeholder {\n  color: #999999;\n  opacity: 1;\n}\n.form-control:-ms-input-placeholder {\n  color: #999999;\n}\n.form-control::-webkit-input-placeholder {\n  color: #999999;\n}\n.form-control[disabled],\n.form-control[readonly],\nfieldset[disabled] .form-control {\n  cursor: not-allowed;\n  background-color: #eeeeee;\n  opacity: 1;\n}\ntextarea.form-control {\n  height: auto;\n}\ninput[type=\"search\"] {\n  -webkit-appearance: none;\n}\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\n  input[type=\"date\"],\n  input[type=\"time\"],\n  input[type=\"datetime-local\"],\n  input[type=\"month\"] {\n    line-height: 34px;\n  }\n  input[type=\"date\"].input-sm,\n  input[type=\"time\"].input-sm,\n  input[type=\"datetime-local\"].input-sm,\n  input[type=\"month\"].input-sm {\n    line-height: 30px;\n  }\n  input[type=\"date\"].input-lg,\n  input[type=\"time\"].input-lg,\n  input[type=\"datetime-local\"].input-lg,\n  input[type=\"month\"].input-lg {\n    line-height: 46px;\n  }\n}\n.form-group {\n  margin-bottom: 15px;\n}\n.radio,\n.checkbox {\n  position: relative;\n  display: block;\n  margin-top: 10px;\n  margin-bottom: 10px;\n}\n.radio label,\n.checkbox label {\n  min-height: 20px;\n  padding-left: 20px;\n  margin-bottom: 0;\n  font-weight: normal;\n  cursor: pointer;\n}\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n  position: absolute;\n  margin-left: -20px;\n  margin-top: 4px \\9;\n}\n.radio + .radio,\n.checkbox + .checkbox {\n  margin-top: -5px;\n}\n.radio-inline,\n.checkbox-inline {\n  display: inline-block;\n  padding-left: 20px;\n  margin-bottom: 0;\n  vertical-align: middle;\n  font-weight: normal;\n  cursor: pointer;\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n  margin-top: 0;\n  margin-left: 10px;\n}\ninput[type=\"radio\"][disabled],\ninput[type=\"checkbox\"][disabled],\ninput[type=\"radio\"].disabled,\ninput[type=\"checkbox\"].disabled,\nfieldset[disabled] input[type=\"radio\"],\nfieldset[disabled] input[type=\"checkbox\"] {\n  cursor: not-allowed;\n}\n.radio-inline.disabled,\n.checkbox-inline.disabled,\nfieldset[disabled] .radio-inline,\nfieldset[disabled] .checkbox-inline {\n  cursor: not-allowed;\n}\n.radio.disabled label,\n.checkbox.disabled label,\nfieldset[disabled] .radio label,\nfieldset[disabled] .checkbox label {\n  cursor: not-allowed;\n}\n.form-control-static {\n  padding-top: 7px;\n  padding-bottom: 7px;\n  margin-bottom: 0;\n}\n.form-control-static.input-lg,\n.form-control-static.input-sm {\n  padding-left: 0;\n  padding-right: 0;\n}\n.input-sm,\n.form-group-sm .form-control {\n  height: 30px;\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 3px;\n}\nselect.input-sm,\nselect.form-group-sm .form-control {\n  height: 30px;\n  line-height: 30px;\n}\ntextarea.input-sm,\ntextarea.form-group-sm .form-control,\nselect[multiple].input-sm,\nselect[multiple].form-group-sm .form-control {\n  height: auto;\n}\n.input-lg,\n.form-group-lg .form-control {\n  height: 46px;\n  padding: 10px 16px;\n  font-size: 18px;\n  line-height: 1.33;\n  border-radius: 6px;\n}\nselect.input-lg,\nselect.form-group-lg .form-control {\n  height: 46px;\n  line-height: 46px;\n}\ntextarea.input-lg,\ntextarea.form-group-lg .form-control,\nselect[multiple].input-lg,\nselect[multiple].form-group-lg .form-control {\n  height: auto;\n}\n.has-feedback {\n  position: relative;\n}\n.has-feedback .form-control {\n  padding-right: 42.5px;\n}\n.form-control-feedback {\n  position: absolute;\n  top: 0;\n  right: 0;\n  z-index: 2;\n  display: block;\n  width: 34px;\n  height: 34px;\n  line-height: 34px;\n  text-align: center;\n  pointer-events: none;\n}\n.input-lg + .form-control-feedback {\n  width: 46px;\n  height: 46px;\n  line-height: 46px;\n}\n.input-sm + .form-control-feedback {\n  width: 30px;\n  height: 30px;\n  line-height: 30px;\n}\n.has-success .help-block,\n.has-success .control-label,\n.has-success .radio,\n.has-success .checkbox,\n.has-success .radio-inline,\n.has-success .checkbox-inline,\n.has-success.radio label,\n.has-success.checkbox label,\n.has-success.radio-inline label,\n.has-success.checkbox-inline label {\n  color: #3c763d;\n}\n.has-success .form-control {\n  border-color: #3c763d;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-success .form-control:focus {\n  border-color: #2b542c;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n}\n.has-success .input-group-addon {\n  color: #3c763d;\n  border-color: #3c763d;\n  background-color: #dff0d8;\n}\n.has-success .form-control-feedback {\n  color: #3c763d;\n}\n.has-warning .help-block,\n.has-warning .control-label,\n.has-warning .radio,\n.has-warning .checkbox,\n.has-warning .radio-inline,\n.has-warning .checkbox-inline,\n.has-warning.radio label,\n.has-warning.checkbox label,\n.has-warning.radio-inline label,\n.has-warning.checkbox-inline label {\n  color: #8a6d3b;\n}\n.has-warning .form-control {\n  border-color: #8a6d3b;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-warning .form-control:focus {\n  border-color: #66512c;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n}\n.has-warning .input-group-addon {\n  color: #8a6d3b;\n  border-color: #8a6d3b;\n  background-color: #fcf8e3;\n}\n.has-warning .form-control-feedback {\n  color: #8a6d3b;\n}\n.has-error .help-block,\n.has-error .control-label,\n.has-error .radio,\n.has-error .checkbox,\n.has-error .radio-inline,\n.has-error .checkbox-inline,\n.has-error.radio label,\n.has-error.checkbox label,\n.has-error.radio-inline label,\n.has-error.checkbox-inline label {\n  color: #a94442;\n}\n.has-error .form-control {\n  border-color: #a94442;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-error .form-control:focus {\n  border-color: #843534;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n}\n.has-error .input-group-addon {\n  color: #a94442;\n  border-color: #a94442;\n  background-color: #f2dede;\n}\n.has-error .form-control-feedback {\n  color: #a94442;\n}\n.has-feedback label ~ .form-control-feedback {\n  top: 25px;\n}\n.has-feedback label.sr-only ~ .form-control-feedback {\n  top: 0;\n}\n.help-block {\n  display: block;\n  margin-top: 5px;\n  margin-bottom: 10px;\n  color: #737373;\n}\n@media (min-width: 768px) {\n  .form-inline .form-group {\n    display: inline-block;\n    margin-bottom: 0;\n    vertical-align: middle;\n  }\n  .form-inline .form-control {\n    display: inline-block;\n    width: auto;\n    vertical-align: middle;\n  }\n  .form-inline .form-control-static {\n    display: inline-block;\n  }\n  .form-inline .input-group {\n    display: inline-table;\n    vertical-align: middle;\n  }\n  .form-inline .input-group .input-group-addon,\n  .form-inline .input-group .input-group-btn,\n  .form-inline .input-group .form-control {\n    width: auto;\n  }\n  .form-inline .input-group > .form-control {\n    width: 100%;\n  }\n  .form-inline .control-label {\n    margin-bottom: 0;\n    vertical-align: middle;\n  }\n  .form-inline .radio,\n  .form-inline .checkbox {\n    display: inline-block;\n    margin-top: 0;\n    margin-bottom: 0;\n    vertical-align: middle;\n  }\n  .form-inline .radio label,\n  .form-inline .checkbox label {\n    padding-left: 0;\n  }\n  .form-inline .radio input[type=\"radio\"],\n  .form-inline .checkbox input[type=\"checkbox\"] {\n    position: relative;\n    margin-left: 0;\n  }\n  .form-inline .has-feedback .form-control-feedback {\n    top: 0;\n  }\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox,\n.form-horizontal .radio-inline,\n.form-horizontal .checkbox-inline {\n  margin-top: 0;\n  margin-bottom: 0;\n  padding-top: 7px;\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox {\n  min-height: 27px;\n}\n.form-horizontal .form-group {\n  margin-left: -15px;\n  margin-right: -15px;\n}\n@media (min-width: 768px) {\n  .form-horizontal .control-label {\n    text-align: right;\n    margin-bottom: 0;\n    padding-top: 7px;\n  }\n}\n.form-horizontal .has-feedback .form-control-feedback {\n  right: 15px;\n}\n@media (min-width: 768px) {\n  .form-horizontal .form-group-lg .control-label {\n    padding-top: 14.3px;\n  }\n}\n@media (min-width: 768px) {\n  .form-horizontal .form-group-sm .control-label {\n    padding-top: 6px;\n  }\n}\n.btn {\n  display: inline-block;\n  margin-bottom: 0;\n  font-weight: normal;\n  text-align: center;\n  vertical-align: middle;\n  touch-action: manipulation;\n  cursor: pointer;\n  background-image: none;\n  border: 1px solid transparent;\n  white-space: nowrap;\n  padding: 6px 12px;\n  font-size: 14px;\n  line-height: 1.42857143;\n  border-radius: 4px;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n.btn:focus,\n.btn:active:focus,\n.btn.active:focus,\n.btn.focus,\n.btn:active.focus,\n.btn.active.focus {\n  outline: thin dotted;\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px;\n}\n.btn:hover,\n.btn:focus,\n.btn.focus {\n  color: #333333;\n  text-decoration: none;\n}\n.btn:active,\n.btn.active {\n  outline: 0;\n  background-image: none;\n  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn.disabled,\n.btn[disabled],\nfieldset[disabled] .btn {\n  cursor: not-allowed;\n  pointer-events: none;\n  opacity: 0.65;\n  filter: alpha(opacity=65);\n  -webkit-box-shadow: none;\n  box-shadow: none;\n}\n.btn-default {\n  color: #333333;\n  background-color: #ffffff;\n  border-color: #cccccc;\n}\n.btn-default:hover,\n.btn-default:focus,\n.btn-default.focus,\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n  color: #333333;\n  background-color: #e6e6e6;\n  border-color: #adadad;\n}\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n  background-image: none;\n}\n.btn-default.disabled,\n.btn-default[disabled],\nfieldset[disabled] .btn-default,\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled.focus,\n.btn-default[disabled].focus,\nfieldset[disabled] .btn-default.focus,\n.btn-default.disabled:active,\n.btn-default[disabled]:active,\nfieldset[disabled] .btn-default:active,\n.btn-default.disabled.active,\n.btn-default[disabled].active,\nfieldset[disabled] .btn-default.active {\n  background-color: #ffffff;\n  border-color: #cccccc;\n}\n.btn-default .badge {\n  color: #ffffff;\n  background-color: #333333;\n}\n.btn-primary {\n  color: #ffffff;\n  background-color: #337ab7;\n  border-color: #2e6da4;\n}\n.btn-primary:hover,\n.btn-primary:focus,\n.btn-primary.focus,\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n  color: #ffffff;\n  background-color: #286090;\n  border-color: #204d74;\n}\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n  background-image: none;\n}\n.btn-primary.disabled,\n.btn-primary[disabled],\nfieldset[disabled] .btn-primary,\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled.focus,\n.btn-primary[disabled].focus,\nfieldset[disabled] .btn-primary.focus,\n.btn-primary.disabled:active,\n.btn-primary[disabled]:active,\nfieldset[disabled] .btn-primary:active,\n.btn-primary.disabled.active,\n.btn-primary[disabled].active,\nfieldset[disabled] .btn-primary.active {\n  background-color: #337ab7;\n  border-color: #2e6da4;\n}\n.btn-primary .badge {\n  color: #337ab7;\n  background-color: #ffffff;\n}\n.btn-success {\n  color: #ffffff;\n  background-color: #5cb85c;\n  border-color: #4cae4c;\n}\n.btn-success:hover,\n.btn-success:focus,\n.btn-success.focus,\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n  color: #ffffff;\n  background-color: #449d44;\n  border-color: #398439;\n}\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n  background-image: none;\n}\n.btn-success.disabled,\n.btn-success[disabled],\nfieldset[disabled] .btn-success,\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled.focus,\n.btn-success[disabled].focus,\nfieldset[disabled] .btn-success.focus,\n.btn-success.disabled:active,\n.btn-success[disabled]:active,\nfieldset[disabled] .btn-success:active,\n.btn-success.disabled.active,\n.btn-success[disabled].active,\nfieldset[disabled] .btn-success.active {\n  background-color: #5cb85c;\n  border-color: #4cae4c;\n}\n.btn-success .badge {\n  color: #5cb85c;\n  background-color: #ffffff;\n}\n.btn-info {\n  color: #ffffff;\n  background-color: #5bc0de;\n  border-color: #46b8da;\n}\n.btn-info:hover,\n.btn-info:focus,\n.btn-info.focus,\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n  color: #ffffff;\n  background-color: #31b0d5;\n  border-color: #269abc;\n}\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n  background-image: none;\n}\n.btn-info.disabled,\n.btn-info[disabled],\nfieldset[disabled] .btn-info,\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled.focus,\n.btn-info[disabled].focus,\nfieldset[disabled] .btn-info.focus,\n.btn-info.disabled:active,\n.btn-info[disabled]:active,\nfieldset[disabled] .btn-info:active,\n.btn-info.disabled.active,\n.btn-info[disabled].active,\nfieldset[disabled] .btn-info.active {\n  background-color: #5bc0de;\n  border-color: #46b8da;\n}\n.btn-info .badge {\n  color: #5bc0de;\n  background-color: #ffffff;\n}\n.btn-warning {\n  color: #ffffff;\n  background-color: #f0ad4e;\n  border-color: #eea236;\n}\n.btn-warning:hover,\n.btn-warning:focus,\n.btn-warning.focus,\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n  color: #ffffff;\n  background-color: #ec971f;\n  border-color: #d58512;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n  background-image: none;\n}\n.btn-warning.disabled,\n.btn-warning[disabled],\nfieldset[disabled] .btn-warning,\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled.focus,\n.btn-warning[disabled].focus,\nfieldset[disabled] .btn-warning.focus,\n.btn-warning.disabled:active,\n.btn-warning[disabled]:active,\nfieldset[disabled] .btn-warning:active,\n.btn-warning.disabled.active,\n.btn-warning[disabled].active,\nfieldset[disabled] .btn-warning.active {\n  background-color: #f0ad4e;\n  border-color: #eea236;\n}\n.btn-warning .badge {\n  color: #f0ad4e;\n  background-color: #ffffff;\n}\n.btn-danger {\n  color: #ffffff;\n  background-color: #d9534f;\n  border-color: #d43f3a;\n}\n.btn-danger:hover,\n.btn-danger:focus,\n.btn-danger.focus,\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n  color: #ffffff;\n  background-color: #c9302c;\n  border-color: #ac2925;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n  background-image: none;\n}\n.btn-danger.disabled,\n.btn-danger[disabled],\nfieldset[disabled] .btn-danger,\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled.focus,\n.btn-danger[disabled].focus,\nfieldset[disabled] .btn-danger.focus,\n.btn-danger.disabled:active,\n.btn-danger[disabled]:active,\nfieldset[disabled] .btn-danger:active,\n.btn-danger.disabled.active,\n.btn-danger[disabled].active,\nfieldset[disabled] .btn-danger.active {\n  background-color: #d9534f;\n  border-color: #d43f3a;\n}\n.btn-danger .badge {\n  color: #d9534f;\n  background-color: #ffffff;\n}\n.btn-link {\n  color: #337ab7;\n  font-weight: normal;\n  border-radius: 0;\n}\n.btn-link,\n.btn-link:active,\n.btn-link.active,\n.btn-link[disabled],\nfieldset[disabled] .btn-link {\n  background-color: transparent;\n  -webkit-box-shadow: none;\n  box-shadow: none;\n}\n.btn-link,\n.btn-link:hover,\n.btn-link:focus,\n.btn-link:active {\n  border-color: transparent;\n}\n.btn-link:hover,\n.btn-link:focus {\n  color: #23527c;\n  text-decoration: underline;\n  background-color: transparent;\n}\n.btn-link[disabled]:hover,\nfieldset[disabled] .btn-link:hover,\n.btn-link[disabled]:focus,\nfieldset[disabled] .btn-link:focus {\n  color: #777777;\n  text-decoration: none;\n}\n.btn-lg,\n.btn-group-lg > .btn {\n  padding: 10px 16px;\n  font-size: 18px;\n  line-height: 1.33;\n  border-radius: 6px;\n}\n.btn-sm,\n.btn-group-sm > .btn {\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 3px;\n}\n.btn-xs,\n.btn-group-xs > .btn {\n  padding: 1px 5px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 3px;\n}\n.btn-block {\n  display: block;\n  width: 100%;\n}\n.btn-block + .btn-block {\n  margin-top: 5px;\n}\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n  width: 100%;\n}\n.fade {\n  opacity: 0;\n  -webkit-transition: opacity 0.15s linear;\n  -o-transition: opacity 0.15s linear;\n  transition: opacity 0.15s linear;\n}\n.fade.in {\n  opacity: 1;\n}\n.collapse {\n  display: none;\n  visibility: hidden;\n}\n.collapse.in {\n  display: block;\n  visibility: visible;\n}\ntr.collapse.in {\n  display: table-row;\n}\ntbody.collapse.in {\n  display: table-row-group;\n}\n.collapsing {\n  position: relative;\n  height: 0;\n  overflow: hidden;\n  -webkit-transition-property: height, visibility;\n  transition-property: height, visibility;\n  -webkit-transition-duration: 0.35s;\n  transition-duration: 0.35s;\n  -webkit-transition-timing-function: ease;\n  transition-timing-function: ease;\n}\n.caret {\n  display: inline-block;\n  width: 0;\n  height: 0;\n  margin-left: 2px;\n  vertical-align: middle;\n  border-top: 4px solid;\n  border-right: 4px solid transparent;\n  border-left: 4px solid transparent;\n}\n.dropdown {\n  position: relative;\n}\n.dropdown-toggle:focus {\n  outline: 0;\n}\n.dropdown-menu {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: 1000;\n  display: none;\n  float: left;\n  min-width: 160px;\n  padding: 5px 0;\n  margin: 2px 0 0;\n  list-style: none;\n  font-size: 14px;\n  text-align: left;\n  background-color: #ffffff;\n  border: 1px solid #cccccc;\n  border: 1px solid rgba(0, 0, 0, 0.15);\n  border-radius: 4px;\n  -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n  background-clip: padding-box;\n}\n.dropdown-menu.pull-right {\n  right: 0;\n  left: auto;\n}\n.dropdown-menu .divider {\n  height: 1px;\n  margin: 9px 0;\n  overflow: hidden;\n  background-color: #e5e5e5;\n}\n.dropdown-menu > li > a {\n  display: block;\n  padding: 3px 20px;\n  clear: both;\n  font-weight: normal;\n  line-height: 1.42857143;\n  color: #333333;\n  white-space: nowrap;\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n  text-decoration: none;\n  color: #262626;\n  background-color: #f5f5f5;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n  color: #ffffff;\n  text-decoration: none;\n  outline: 0;\n  background-color: #337ab7;\n}\n.dropdown-menu > .disabled > a,\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n  color: #777777;\n}\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n  text-decoration: none;\n  background-color: transparent;\n  background-image: none;\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n  cursor: not-allowed;\n}\n.open > .dropdown-menu {\n  display: block;\n}\n.open > a {\n  outline: 0;\n}\n.dropdown-menu-right {\n  left: auto;\n  right: 0;\n}\n.dropdown-menu-left {\n  left: 0;\n  right: auto;\n}\n.dropdown-header {\n  display: block;\n  padding: 3px 20px;\n  font-size: 12px;\n  line-height: 1.42857143;\n  color: #777777;\n  white-space: nowrap;\n}\n.dropdown-backdrop {\n  position: fixed;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  top: 0;\n  z-index: 990;\n}\n.pull-right > .dropdown-menu {\n  right: 0;\n  left: auto;\n}\n.dropup .caret,\n.navbar-fixed-bottom .dropdown .caret {\n  border-top: 0;\n  border-bottom: 4px solid;\n  content: \"\";\n}\n.dropup .dropdown-menu,\n.navbar-fixed-bottom .dropdown .dropdown-menu {\n  top: auto;\n  bottom: 100%;\n  margin-bottom: 1px;\n}\n@media (min-width: 768px) {\n  .navbar-right .dropdown-menu {\n    left: auto;\n    right: 0;\n  }\n  .navbar-right .dropdown-menu-left {\n    left: 0;\n    right: auto;\n  }\n}\n.btn-group,\n.btn-group-vertical {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n}\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n  position: relative;\n  float: left;\n}\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover,\n.btn-group > .btn:focus,\n.btn-group-vertical > .btn:focus,\n.btn-group > .btn:active,\n.btn-group-vertical > .btn:active,\n.btn-group > .btn.active,\n.btn-group-vertical > .btn.active {\n  z-index: 2;\n}\n.btn-group .btn + .btn,\n.btn-group .btn + .btn-group,\n.btn-group .btn-group + .btn,\n.btn-group .btn-group + .btn-group {\n  margin-left: -1px;\n}\n.btn-toolbar {\n  margin-left: -5px;\n}\n.btn-toolbar .btn-group,\n.btn-toolbar .input-group {\n  float: left;\n}\n.btn-toolbar > .btn,\n.btn-toolbar > .btn-group,\n.btn-toolbar > .input-group {\n  margin-left: 5px;\n}\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n  border-radius: 0;\n}\n.btn-group > .btn:first-child {\n  margin-left: 0;\n}\n.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\n  border-bottom-right-radius: 0;\n  border-top-right-radius: 0;\n}\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n  border-bottom-left-radius: 0;\n  border-top-left-radius: 0;\n}\n.btn-group > .btn-group {\n  float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n  border-radius: 0;\n}\n.btn-group > .btn-group:first-child > .btn:last-child,\n.btn-group > .btn-group:first-child > .dropdown-toggle {\n  border-bottom-right-radius: 0;\n  border-top-right-radius: 0;\n}\n.btn-group > .btn-group:last-child > .btn:first-child {\n  border-bottom-left-radius: 0;\n  border-top-left-radius: 0;\n}\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n  outline: 0;\n}\n.btn-group > .btn + .dropdown-toggle {\n  padding-left: 8px;\n  padding-right: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n  padding-left: 12px;\n  padding-right: 12px;\n}\n.btn-group.open .dropdown-toggle {\n  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn-group.open .dropdown-toggle.btn-link {\n  -webkit-box-shadow: none;\n  box-shadow: none;\n}\n.btn .caret {\n  margin-left: 0;\n}\n.btn-lg .caret {\n  border-width: 5px 5px 0;\n  border-bottom-width: 0;\n}\n.dropup .btn-lg .caret {\n  border-width: 0 5px 5px;\n}\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group,\n.btn-group-vertical > .btn-group > .btn {\n  display: block;\n  float: none;\n  width: 100%;\n  max-width: 100%;\n}\n.btn-group-vertical > .btn-group > .btn {\n  float: none;\n}\n.btn-group-vertical > .btn + .btn,\n.btn-group-vertical > .btn + .btn-group,\n.btn-group-vertical > .btn-group + .btn,\n.btn-group-vertical > .btn-group + .btn-group {\n  margin-top: -1px;\n  margin-left: 0;\n}\n.btn-group-vertical > .btn:not(:first-child):not(:last-child) {\n  border-radius: 0;\n}\n.btn-group-vertical > .btn:first-child:not(:last-child) {\n  border-top-right-radius: 4px;\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn:last-child:not(:first-child) {\n  border-bottom-left-radius: 4px;\n  border-top-right-radius: 0;\n  border-top-left-radius: 0;\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n  border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n  border-top-right-radius: 0;\n  border-top-left-radius: 0;\n}\n.btn-group-justified {\n  display: table;\n  width: 100%;\n  table-layout: fixed;\n  border-collapse: separate;\n}\n.btn-group-justified > .btn,\n.btn-group-justified > .btn-group {\n  float: none;\n  display: table-cell;\n  width: 1%;\n}\n.btn-group-justified > .btn-group .btn {\n  width: 100%;\n}\n.btn-group-justified > .btn-group .dropdown-menu {\n  left: auto;\n}\n[data-toggle=\"buttons\"] > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn input[type=\"checkbox\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"checkbox\"] {\n  position: absolute;\n  clip: rect(0, 0, 0, 0);\n  pointer-events: none;\n}\n.input-group {\n  position: relative;\n  display: table;\n  border-collapse: separate;\n}\n.input-group[class*=\"col-\"] {\n  float: none;\n  padding-left: 0;\n  padding-right: 0;\n}\n.input-group .form-control {\n  position: relative;\n  z-index: 2;\n  float: left;\n  width: 100%;\n  margin-bottom: 0;\n}\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n  height: 46px;\n  padding: 10px 16px;\n  font-size: 18px;\n  line-height: 1.33;\n  border-radius: 6px;\n}\nselect.input-group-lg > .form-control,\nselect.input-group-lg > .input-group-addon,\nselect.input-group-lg > .input-group-btn > .btn {\n  height: 46px;\n  line-height: 46px;\n}\ntextarea.input-group-lg > .form-control,\ntextarea.input-group-lg > .input-group-addon,\ntextarea.input-group-lg > .input-group-btn > .btn,\nselect[multiple].input-group-lg > .form-control,\nselect[multiple].input-group-lg > .input-group-addon,\nselect[multiple].input-group-lg > .input-group-btn > .btn {\n  height: auto;\n}\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n  height: 30px;\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 3px;\n}\nselect.input-group-sm > .form-control,\nselect.input-group-sm > .input-group-addon,\nselect.input-group-sm > .input-group-btn > .btn {\n  height: 30px;\n  line-height: 30px;\n}\ntextarea.input-group-sm > .form-control,\ntextarea.input-group-sm > .input-group-addon,\ntextarea.input-group-sm > .input-group-btn > .btn,\nselect[multiple].input-group-sm > .form-control,\nselect[multiple].input-group-sm > .input-group-addon,\nselect[multiple].input-group-sm > .input-group-btn > .btn {\n  height: auto;\n}\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n  display: table-cell;\n}\n.input-group-addon:not(:first-child):not(:last-child),\n.input-group-btn:not(:first-child):not(:last-child),\n.input-group .form-control:not(:first-child):not(:last-child) {\n  border-radius: 0;\n}\n.input-group-addon,\n.input-group-btn {\n  width: 1%;\n  white-space: nowrap;\n  vertical-align: middle;\n}\n.input-group-addon {\n  padding: 6px 12px;\n  font-size: 14px;\n  font-weight: normal;\n  line-height: 1;\n  color: #555555;\n  text-align: center;\n  background-color: #eeeeee;\n  border: 1px solid #cccccc;\n  border-radius: 4px;\n}\n.input-group-addon.input-sm {\n  padding: 5px 10px;\n  font-size: 12px;\n  border-radius: 3px;\n}\n.input-group-addon.input-lg {\n  padding: 10px 16px;\n  font-size: 18px;\n  border-radius: 6px;\n}\n.input-group-addon input[type=\"radio\"],\n.input-group-addon input[type=\"checkbox\"] {\n  margin-top: 0;\n}\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n  border-bottom-right-radius: 0;\n  border-top-right-radius: 0;\n}\n.input-group-addon:first-child {\n  border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n  border-bottom-left-radius: 0;\n  border-top-left-radius: 0;\n}\n.input-group-addon:last-child {\n  border-left: 0;\n}\n.input-group-btn {\n  position: relative;\n  font-size: 0;\n  white-space: nowrap;\n}\n.input-group-btn > .btn {\n  position: relative;\n}\n.input-group-btn > .btn + .btn {\n  margin-left: -1px;\n}\n.input-group-btn > .btn:hover,\n.input-group-btn > .btn:focus,\n.input-group-btn > .btn:active {\n  z-index: 2;\n}\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group {\n  margin-right: -1px;\n}\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group {\n  margin-left: -1px;\n}\n.nav {\n  margin-bottom: 0;\n  padding-left: 0;\n  list-style: none;\n}\n.nav > li {\n  position: relative;\n  display: block;\n}\n.nav > li > a {\n  position: relative;\n  display: block;\n  padding: 10px 15px;\n}\n.nav > li > a:hover,\n.nav > li > a:focus {\n  text-decoration: none;\n  background-color: #eeeeee;\n}\n.nav > li.disabled > a {\n  color: #777777;\n}\n.nav > li.disabled > a:hover,\n.nav > li.disabled > a:focus {\n  color: #777777;\n  text-decoration: none;\n  background-color: transparent;\n  cursor: not-allowed;\n}\n.nav .open > a,\n.nav .open > a:hover,\n.nav .open > a:focus {\n  background-color: #eeeeee;\n  border-color: #337ab7;\n}\n.nav .nav-divider {\n  height: 1px;\n  margin: 9px 0;\n  overflow: hidden;\n  background-color: #e5e5e5;\n}\n.nav > li > a > img {\n  max-width: none;\n}\n.nav-tabs {\n  border-bottom: 1px solid #dddddd;\n}\n.nav-tabs > li {\n  float: left;\n  margin-bottom: -1px;\n}\n.nav-tabs > li > a {\n  margin-right: 2px;\n  line-height: 1.42857143;\n  border: 1px solid transparent;\n  border-radius: 4px 4px 0 0;\n}\n.nav-tabs > li > a:hover {\n  border-color: #eeeeee #eeeeee #dddddd;\n}\n.nav-tabs > li.active > a,\n.nav-tabs > li.active > a:hover,\n.nav-tabs > li.active > a:focus {\n  color: #555555;\n  background-color: #ffffff;\n  border: 1px solid #dddddd;\n  border-bottom-color: transparent;\n  cursor: default;\n}\n.nav-tabs.nav-justified {\n  width: 100%;\n  border-bottom: 0;\n}\n.nav-tabs.nav-justified > li {\n  float: none;\n}\n.nav-tabs.nav-justified > li > a {\n  text-align: center;\n  margin-bottom: 5px;\n}\n.nav-tabs.nav-justified > .dropdown .dropdown-menu {\n  top: auto;\n  left: auto;\n}\n@media (min-width: 768px) {\n  .nav-tabs.nav-justified > li {\n    display: table-cell;\n    width: 1%;\n  }\n  .nav-tabs.nav-justified > li > a {\n    margin-bottom: 0;\n  }\n}\n.nav-tabs.nav-justified > li > a {\n  margin-right: 0;\n  border-radius: 4px;\n}\n.nav-tabs.nav-justified > .active > a,\n.nav-tabs.nav-justified > .active > a:hover,\n.nav-tabs.nav-justified > .active > a:focus {\n  border: 1px solid #dddddd;\n}\n@media (min-width: 768px) {\n  .nav-tabs.nav-justified > li > a {\n    border-bottom: 1px solid #dddddd;\n    border-radius: 4px 4px 0 0;\n  }\n  .nav-tabs.nav-justified > .active > a,\n  .nav-tabs.nav-justified > .active > a:hover,\n  .nav-tabs.nav-justified > .active > a:focus {\n    border-bottom-color: #ffffff;\n  }\n}\n.nav-pills > li {\n  float: left;\n}\n.nav-pills > li > a {\n  border-radius: 4px;\n}\n.nav-pills > li + li {\n  margin-left: 2px;\n}\n.nav-pills > li.active > a,\n.nav-pills > li.active > a:hover,\n.nav-pills > li.active > a:focus {\n  color: #ffffff;\n  background-color: #337ab7;\n}\n.nav-stacked > li {\n  float: none;\n}\n.nav-stacked > li + li {\n  margin-top: 2px;\n  margin-left: 0;\n}\n.nav-justified {\n  width: 100%;\n}\n.nav-justified > li {\n  float: none;\n}\n.nav-justified > li > a {\n  text-align: center;\n  margin-bottom: 5px;\n}\n.nav-justified > .dropdown .dropdown-menu {\n  top: auto;\n  left: auto;\n}\n@media (min-width: 768px) {\n  .nav-justified > li {\n    display: table-cell;\n    width: 1%;\n  }\n  .nav-justified > li > a {\n    margin-bottom: 0;\n  }\n}\n.nav-tabs-justified {\n  border-bottom: 0;\n}\n.nav-tabs-justified > li > a {\n  margin-right: 0;\n  border-radius: 4px;\n}\n.nav-tabs-justified > .active > a,\n.nav-tabs-justified > .active > a:hover,\n.nav-tabs-justified > .active > a:focus {\n  border: 1px solid #dddddd;\n}\n@media (min-width: 768px) {\n  .nav-tabs-justified > li > a {\n    border-bottom: 1px solid #dddddd;\n    border-radius: 4px 4px 0 0;\n  }\n  .nav-tabs-justified > .active > a,\n  .nav-tabs-justified > .active > a:hover,\n  .nav-tabs-justified > .active > a:focus {\n    border-bottom-color: #ffffff;\n  }\n}\n.tab-content > .tab-pane {\n  display: none;\n  visibility: hidden;\n}\n.tab-content > .active {\n  display: block;\n  visibility: visible;\n}\n.nav-tabs .dropdown-menu {\n  margin-top: -1px;\n  border-top-right-radius: 0;\n  border-top-left-radius: 0;\n}\n.navbar {\n  position: relative;\n  min-height: 50px;\n  margin-bottom: 20px;\n  border: 1px solid transparent;\n}\n@media (min-width: 768px) {\n  .navbar {\n    border-radius: 4px;\n  }\n}\n@media (min-width: 768px) {\n  .navbar-header {\n    float: left;\n  }\n}\n.navbar-collapse {\n  overflow-x: visible;\n  padding-right: 15px;\n  padding-left: 15px;\n  border-top: 1px solid transparent;\n  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);\n  -webkit-overflow-scrolling: touch;\n}\n.navbar-collapse.in {\n  overflow-y: auto;\n}\n@media (min-width: 768px) {\n  .navbar-collapse {\n    width: auto;\n    border-top: 0;\n    box-shadow: none;\n  }\n  .navbar-collapse.collapse {\n    display: block !important;\n    visibility: visible !important;\n    height: auto !important;\n    padding-bottom: 0;\n    overflow: visible !important;\n  }\n  .navbar-collapse.in {\n    overflow-y: visible;\n  }\n  .navbar-fixed-top .navbar-collapse,\n  .navbar-static-top .navbar-collapse,\n  .navbar-fixed-bottom .navbar-collapse {\n    padding-left: 0;\n    padding-right: 0;\n  }\n}\n.navbar-fixed-top .navbar-collapse,\n.navbar-fixed-bottom .navbar-collapse {\n  max-height: 340px;\n}\n@media (max-device-width: 480px) and (orientation: landscape) {\n  .navbar-fixed-top .navbar-collapse,\n  .navbar-fixed-bottom .navbar-collapse {\n    max-height: 200px;\n  }\n}\n.container > .navbar-header,\n.container-fluid > .navbar-header,\n.container > .navbar-collapse,\n.container-fluid > .navbar-collapse {\n  margin-right: -15px;\n  margin-left: -15px;\n}\n@media (min-width: 768px) {\n  .container > .navbar-header,\n  .container-fluid > .navbar-header,\n  .container > .navbar-collapse,\n  .container-fluid > .navbar-collapse {\n    margin-right: 0;\n    margin-left: 0;\n  }\n}\n.navbar-static-top {\n  z-index: 1000;\n  border-width: 0 0 1px;\n}\n@media (min-width: 768px) {\n  .navbar-static-top {\n    border-radius: 0;\n  }\n}\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n  position: fixed;\n  right: 0;\n  left: 0;\n  z-index: 1030;\n}\n@media (min-width: 768px) {\n  .navbar-fixed-top,\n  .navbar-fixed-bottom {\n    border-radius: 0;\n  }\n}\n.navbar-fixed-top {\n  top: 0;\n  border-width: 0 0 1px;\n}\n.navbar-fixed-bottom {\n  bottom: 0;\n  margin-bottom: 0;\n  border-width: 1px 0 0;\n}\n.navbar-brand {\n  float: left;\n  padding: 15px 15px;\n  font-size: 18px;\n  line-height: 20px;\n  height: 50px;\n}\n.navbar-brand:hover,\n.navbar-brand:focus {\n  text-decoration: none;\n}\n.navbar-brand > img {\n  display: block;\n}\n@media (min-width: 768px) {\n  .navbar > .container .navbar-brand,\n  .navbar > .container-fluid .navbar-brand {\n    margin-left: -15px;\n  }\n}\n.navbar-toggle {\n  position: relative;\n  float: right;\n  margin-right: 15px;\n  padding: 9px 10px;\n  margin-top: 8px;\n  margin-bottom: 8px;\n  background-color: transparent;\n  background-image: none;\n  border: 1px solid transparent;\n  border-radius: 4px;\n}\n.navbar-toggle:focus {\n  outline: 0;\n}\n.navbar-toggle .icon-bar {\n  display: block;\n  width: 22px;\n  height: 2px;\n  border-radius: 1px;\n}\n.navbar-toggle .icon-bar + .icon-bar {\n  margin-top: 4px;\n}\n@media (min-width: 768px) {\n  .navbar-toggle {\n    display: none;\n  }\n}\n.navbar-nav {\n  margin: 7.5px -15px;\n}\n.navbar-nav > li > a {\n  padding-top: 10px;\n  padding-bottom: 10px;\n  line-height: 20px;\n}\n@media (max-width: 767px) {\n  .navbar-nav .open .dropdown-menu {\n    position: static;\n    float: none;\n    width: auto;\n    margin-top: 0;\n    background-color: transparent;\n    border: 0;\n    box-shadow: none;\n  }\n  .navbar-nav .open .dropdown-menu > li > a,\n  .navbar-nav .open .dropdown-menu .dropdown-header {\n    padding: 5px 15px 5px 25px;\n  }\n  .navbar-nav .open .dropdown-menu > li > a {\n    line-height: 20px;\n  }\n  .navbar-nav .open .dropdown-menu > li > a:hover,\n  .navbar-nav .open .dropdown-menu > li > a:focus {\n    background-image: none;\n  }\n}\n@media (min-width: 768px) {\n  .navbar-nav {\n    float: left;\n    margin: 0;\n  }\n  .navbar-nav > li {\n    float: left;\n  }\n  .navbar-nav > li > a {\n    padding-top: 15px;\n    padding-bottom: 15px;\n  }\n}\n.navbar-form {\n  margin-left: -15px;\n  margin-right: -15px;\n  padding: 10px 15px;\n  border-top: 1px solid transparent;\n  border-bottom: 1px solid transparent;\n  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n  margin-top: 8px;\n  margin-bottom: 8px;\n}\n@media (min-width: 768px) {\n  .navbar-form .form-group {\n    display: inline-block;\n    margin-bottom: 0;\n    vertical-align: middle;\n  }\n  .navbar-form .form-control {\n    display: inline-block;\n    width: auto;\n    vertical-align: middle;\n  }\n  .navbar-form .form-control-static {\n    display: inline-block;\n  }\n  .navbar-form .input-group {\n    display: inline-table;\n    vertical-align: middle;\n  }\n  .navbar-form .input-group .input-group-addon,\n  .navbar-form .input-group .input-group-btn,\n  .navbar-form .input-group .form-control {\n    width: auto;\n  }\n  .navbar-form .input-group > .form-control {\n    width: 100%;\n  }\n  .navbar-form .control-label {\n    margin-bottom: 0;\n    vertical-align: middle;\n  }\n  .navbar-form .radio,\n  .navbar-form .checkbox {\n    display: inline-block;\n    margin-top: 0;\n    margin-bottom: 0;\n    vertical-align: middle;\n  }\n  .navbar-form .radio label,\n  .navbar-form .checkbox label {\n    padding-left: 0;\n  }\n  .navbar-form .radio input[type=\"radio\"],\n  .navbar-form .checkbox input[type=\"checkbox\"] {\n    position: relative;\n    margin-left: 0;\n  }\n  .navbar-form .has-feedback .form-control-feedback {\n    top: 0;\n  }\n}\n@media (max-width: 767px) {\n  .navbar-form .form-group {\n    margin-bottom: 5px;\n  }\n  .navbar-form .form-group:last-child {\n    margin-bottom: 0;\n  }\n}\n@media (min-width: 768px) {\n  .navbar-form {\n    width: auto;\n    border: 0;\n    margin-left: 0;\n    margin-right: 0;\n    padding-top: 0;\n    padding-bottom: 0;\n    -webkit-box-shadow: none;\n    box-shadow: none;\n  }\n}\n.navbar-nav > li > .dropdown-menu {\n  margin-top: 0;\n  border-top-right-radius: 0;\n  border-top-left-radius: 0;\n}\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n  border-top-right-radius: 4px;\n  border-top-left-radius: 4px;\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n.navbar-btn {\n  margin-top: 8px;\n  margin-bottom: 8px;\n}\n.navbar-btn.btn-sm {\n  margin-top: 10px;\n  margin-bottom: 10px;\n}\n.navbar-btn.btn-xs {\n  margin-top: 14px;\n  margin-bottom: 14px;\n}\n.navbar-text {\n  margin-top: 15px;\n  margin-bottom: 15px;\n}\n@media (min-width: 768px) {\n  .navbar-text {\n    float: left;\n    margin-left: 15px;\n    margin-right: 15px;\n  }\n}\n@media (min-width: 768px) {\n  .navbar-left {\n    float: left !important;\n  }\n  .navbar-right {\n    float: right !important;\n    margin-right: -15px;\n  }\n  .navbar-right ~ .navbar-right {\n    margin-right: 0;\n  }\n}\n.navbar-default {\n  background-color: #f8f8f8;\n  border-color: #e7e7e7;\n}\n.navbar-default .navbar-brand {\n  color: #777777;\n}\n.navbar-default .navbar-brand:hover,\n.navbar-default .navbar-brand:focus {\n  color: #5e5e5e;\n  background-color: transparent;\n}\n.navbar-default .navbar-text {\n  color: #777777;\n}\n.navbar-default .navbar-nav > li > a {\n  color: #777777;\n}\n.navbar-default .navbar-nav > li > a:hover,\n.navbar-default .navbar-nav > li > a:focus {\n  color: #333333;\n  background-color: transparent;\n}\n.navbar-default .navbar-nav > .active > a,\n.navbar-default .navbar-nav > .active > a:hover,\n.navbar-default .navbar-nav > .active > a:focus {\n  color: #555555;\n  background-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .disabled > a,\n.navbar-default .navbar-nav > .disabled > a:hover,\n.navbar-default .navbar-nav > .disabled > a:focus {\n  color: #cccccc;\n  background-color: transparent;\n}\n.navbar-default .navbar-toggle {\n  border-color: #dddddd;\n}\n.navbar-default .navbar-toggle:hover,\n.navbar-default .navbar-toggle:focus {\n  background-color: #dddddd;\n}\n.navbar-default .navbar-toggle .icon-bar {\n  background-color: #888888;\n}\n.navbar-default .navbar-collapse,\n.navbar-default .navbar-form {\n  border-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .open > a:hover,\n.navbar-default .navbar-nav > .open > a:focus {\n  background-color: #e7e7e7;\n  color: #555555;\n}\n@media (max-width: 767px) {\n  .navbar-default .navbar-nav .open .dropdown-menu > li > a {\n    color: #777777;\n  }\n  .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,\n  .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {\n    color: #333333;\n    background-color: transparent;\n  }\n  .navbar-default .navbar-nav .open .dropdown-menu > .active > a,\n  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,\n  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {\n    color: #555555;\n    background-color: #e7e7e7;\n  }\n  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,\n  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n    color: #cccccc;\n    background-color: transparent;\n  }\n}\n.navbar-default .navbar-link {\n  color: #777777;\n}\n.navbar-default .navbar-link:hover {\n  color: #333333;\n}\n.navbar-default .btn-link {\n  color: #777777;\n}\n.navbar-default .btn-link:hover,\n.navbar-default .btn-link:focus {\n  color: #333333;\n}\n.navbar-default .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-default .btn-link:hover,\n.navbar-default .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-default .btn-link:focus {\n  color: #cccccc;\n}\n.navbar-inverse {\n  background-color: #222222;\n  border-color: #080808;\n}\n.navbar-inverse .navbar-brand {\n  color: #9d9d9d;\n}\n.navbar-inverse .navbar-brand:hover,\n.navbar-inverse .navbar-brand:focus {\n  color: #ffffff;\n  background-color: transparent;\n}\n.navbar-inverse .navbar-text {\n  color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a {\n  color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a:hover,\n.navbar-inverse .navbar-nav > li > a:focus {\n  color: #ffffff;\n  background-color: transparent;\n}\n.navbar-inverse .navbar-nav > .active > a,\n.navbar-inverse .navbar-nav > .active > a:hover,\n.navbar-inverse .navbar-nav > .active > a:focus {\n  color: #ffffff;\n  background-color: #080808;\n}\n.navbar-inverse .navbar-nav > .disabled > a,\n.navbar-inverse .navbar-nav > .disabled > a:hover,\n.navbar-inverse .navbar-nav > .disabled > a:focus {\n  color: #444444;\n  background-color: transparent;\n}\n.navbar-inverse .navbar-toggle {\n  border-color: #333333;\n}\n.navbar-inverse .navbar-toggle:hover,\n.navbar-inverse .navbar-toggle:focus {\n  background-color: #333333;\n}\n.navbar-inverse .navbar-toggle .icon-bar {\n  background-color: #ffffff;\n}\n.navbar-inverse .navbar-collapse,\n.navbar-inverse .navbar-form {\n  border-color: #101010;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .open > a:hover,\n.navbar-inverse .navbar-nav > .open > a:focus {\n  background-color: #080808;\n  color: #ffffff;\n}\n@media (max-width: 767px) {\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {\n    border-color: #080808;\n  }\n  .navbar-inverse .navbar-nav .open .dropdown-menu .divider {\n    background-color: #080808;\n  }\n  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {\n    color: #9d9d9d;\n  }\n  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,\n  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {\n    color: #ffffff;\n    background-color: transparent;\n  }\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {\n    color: #ffffff;\n    background-color: #080808;\n  }\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n    color: #444444;\n    background-color: transparent;\n  }\n}\n.navbar-inverse .navbar-link {\n  color: #9d9d9d;\n}\n.navbar-inverse .navbar-link:hover {\n  color: #ffffff;\n}\n.navbar-inverse .btn-link {\n  color: #9d9d9d;\n}\n.navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link:focus {\n  color: #ffffff;\n}\n.navbar-inverse .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-inverse .btn-link:focus {\n  color: #444444;\n}\n.breadcrumb {\n  padding: 8px 15px;\n  margin-bottom: 20px;\n  list-style: none;\n  background-color: #f5f5f5;\n  border-radius: 4px;\n}\n.breadcrumb > li {\n  display: inline-block;\n}\n.breadcrumb > li + li:before {\n  content: \"/\\00a0\";\n  padding: 0 5px;\n  color: #cccccc;\n}\n.breadcrumb > .active {\n  color: #777777;\n}\n.pagination {\n  display: inline-block;\n  padding-left: 0;\n  margin: 20px 0;\n  border-radius: 4px;\n}\n.pagination > li {\n  display: inline;\n}\n.pagination > li > a,\n.pagination > li > span {\n  position: relative;\n  float: left;\n  padding: 6px 12px;\n  line-height: 1.42857143;\n  text-decoration: none;\n  color: #337ab7;\n  background-color: #ffffff;\n  border: 1px solid #dddddd;\n  margin-left: -1px;\n}\n.pagination > li:first-child > a,\n.pagination > li:first-child > span {\n  margin-left: 0;\n  border-bottom-left-radius: 4px;\n  border-top-left-radius: 4px;\n}\n.pagination > li:last-child > a,\n.pagination > li:last-child > span {\n  border-bottom-right-radius: 4px;\n  border-top-right-radius: 4px;\n}\n.pagination > li > a:hover,\n.pagination > li > span:hover,\n.pagination > li > a:focus,\n.pagination > li > span:focus {\n  color: #23527c;\n  background-color: #eeeeee;\n  border-color: #dddddd;\n}\n.pagination > .active > a,\n.pagination > .active > span,\n.pagination > .active > a:hover,\n.pagination > .active > span:hover,\n.pagination > .active > a:focus,\n.pagination > .active > span:focus {\n  z-index: 2;\n  color: #ffffff;\n  background-color: #337ab7;\n  border-color: #337ab7;\n  cursor: default;\n}\n.pagination > .disabled > span,\n.pagination > .disabled > span:hover,\n.pagination > .disabled > span:focus,\n.pagination > .disabled > a,\n.pagination > .disabled > a:hover,\n.pagination > .disabled > a:focus {\n  color: #777777;\n  background-color: #ffffff;\n  border-color: #dddddd;\n  cursor: not-allowed;\n}\n.pagination-lg > li > a,\n.pagination-lg > li > span {\n  padding: 10px 16px;\n  font-size: 18px;\n}\n.pagination-lg > li:first-child > a,\n.pagination-lg > li:first-child > span {\n  border-bottom-left-radius: 6px;\n  border-top-left-radius: 6px;\n}\n.pagination-lg > li:last-child > a,\n.pagination-lg > li:last-child > span {\n  border-bottom-right-radius: 6px;\n  border-top-right-radius: 6px;\n}\n.pagination-sm > li > a,\n.pagination-sm > li > span {\n  padding: 5px 10px;\n  font-size: 12px;\n}\n.pagination-sm > li:first-child > a,\n.pagination-sm > li:first-child > span {\n  border-bottom-left-radius: 3px;\n  border-top-left-radius: 3px;\n}\n.pagination-sm > li:last-child > a,\n.pagination-sm > li:last-child > span {\n  border-bottom-right-radius: 3px;\n  border-top-right-radius: 3px;\n}\n.pager {\n  padding-left: 0;\n  margin: 20px 0;\n  list-style: none;\n  text-align: center;\n}\n.pager li {\n  display: inline;\n}\n.pager li > a,\n.pager li > span {\n  display: inline-block;\n  padding: 5px 14px;\n  background-color: #ffffff;\n  border: 1px solid #dddddd;\n  border-radius: 15px;\n}\n.pager li > a:hover,\n.pager li > a:focus {\n  text-decoration: none;\n  background-color: #eeeeee;\n}\n.pager .next > a,\n.pager .next > span {\n  float: right;\n}\n.pager .previous > a,\n.pager .previous > span {\n  float: left;\n}\n.pager .disabled > a,\n.pager .disabled > a:hover,\n.pager .disabled > a:focus,\n.pager .disabled > span {\n  color: #777777;\n  background-color: #ffffff;\n  cursor: not-allowed;\n}\n.label {\n  display: inline;\n  padding: .2em .6em .3em;\n  font-size: 75%;\n  font-weight: bold;\n  line-height: 1;\n  color: #ffffff;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: baseline;\n  border-radius: .25em;\n}\na.label:hover,\na.label:focus {\n  color: #ffffff;\n  text-decoration: none;\n  cursor: pointer;\n}\n.label:empty {\n  display: none;\n}\n.btn .label {\n  position: relative;\n  top: -1px;\n}\n.label-default {\n  background-color: #777777;\n}\n.label-default[href]:hover,\n.label-default[href]:focus {\n  background-color: #5e5e5e;\n}\n.label-primary {\n  background-color: #337ab7;\n}\n.label-primary[href]:hover,\n.label-primary[href]:focus {\n  background-color: #286090;\n}\n.label-success {\n  background-color: #5cb85c;\n}\n.label-success[href]:hover,\n.label-success[href]:focus {\n  background-color: #449d44;\n}\n.label-info {\n  background-color: #5bc0de;\n}\n.label-info[href]:hover,\n.label-info[href]:focus {\n  background-color: #31b0d5;\n}\n.label-warning {\n  background-color: #f0ad4e;\n}\n.label-warning[href]:hover,\n.label-warning[href]:focus {\n  background-color: #ec971f;\n}\n.label-danger {\n  background-color: #d9534f;\n}\n.label-danger[href]:hover,\n.label-danger[href]:focus {\n  background-color: #c9302c;\n}\n.badge {\n  display: inline-block;\n  min-width: 10px;\n  padding: 3px 7px;\n  font-size: 12px;\n  font-weight: bold;\n  color: #ffffff;\n  line-height: 1;\n  vertical-align: baseline;\n  white-space: nowrap;\n  text-align: center;\n  background-color: #777777;\n  border-radius: 10px;\n}\n.badge:empty {\n  display: none;\n}\n.btn .badge {\n  position: relative;\n  top: -1px;\n}\n.btn-xs .badge {\n  top: 0;\n  padding: 1px 5px;\n}\na.badge:hover,\na.badge:focus {\n  color: #ffffff;\n  text-decoration: none;\n  cursor: pointer;\n}\n.list-group-item.active > .badge,\n.nav-pills > .active > a > .badge {\n  color: #337ab7;\n  background-color: #ffffff;\n}\n.list-group-item > .badge {\n  float: right;\n}\n.list-group-item > .badge + .badge {\n  margin-right: 5px;\n}\n.nav-pills > li > a > .badge {\n  margin-left: 3px;\n}\n.jumbotron {\n  padding: 30px 15px;\n  margin-bottom: 30px;\n  color: inherit;\n  background-color: #eeeeee;\n}\n.jumbotron h1,\n.jumbotron .h1 {\n  color: inherit;\n}\n.jumbotron p {\n  margin-bottom: 15px;\n  font-size: 21px;\n  font-weight: 200;\n}\n.jumbotron > hr {\n  border-top-color: #d5d5d5;\n}\n.container .jumbotron,\n.container-fluid .jumbotron {\n  border-radius: 6px;\n}\n.jumbotron .container {\n  max-width: 100%;\n}\n@media screen and (min-width: 768px) {\n  .jumbotron {\n    padding: 48px 0;\n  }\n  .container .jumbotron,\n  .container-fluid .jumbotron {\n    padding-left: 60px;\n    padding-right: 60px;\n  }\n  .jumbotron h1,\n  .jumbotron .h1 {\n    font-size: 63px;\n  }\n}\n.thumbnail {\n  display: block;\n  padding: 4px;\n  margin-bottom: 20px;\n  line-height: 1.42857143;\n  background-color: #ffffff;\n  border: 1px solid #dddddd;\n  border-radius: 4px;\n  -webkit-transition: border 0.2s ease-in-out;\n  -o-transition: border 0.2s ease-in-out;\n  transition: border 0.2s ease-in-out;\n}\n.thumbnail > img,\n.thumbnail a > img {\n  margin-left: auto;\n  margin-right: auto;\n}\na.thumbnail:hover,\na.thumbnail:focus,\na.thumbnail.active {\n  border-color: #337ab7;\n}\n.thumbnail .caption {\n  padding: 9px;\n  color: #333333;\n}\n.alert {\n  padding: 15px;\n  margin-bottom: 20px;\n  border: 1px solid transparent;\n  border-radius: 4px;\n}\n.alert h4 {\n  margin-top: 0;\n  color: inherit;\n}\n.alert .alert-link {\n  font-weight: bold;\n}\n.alert > p,\n.alert > ul {\n  margin-bottom: 0;\n}\n.alert > p + p {\n  margin-top: 5px;\n}\n.alert-dismissable,\n.alert-dismissible {\n  padding-right: 35px;\n}\n.alert-dismissable .close,\n.alert-dismissible .close {\n  position: relative;\n  top: -2px;\n  right: -21px;\n  color: inherit;\n}\n.alert-success {\n  background-color: #dff0d8;\n  border-color: #d6e9c6;\n  color: #3c763d;\n}\n.alert-success hr {\n  border-top-color: #c9e2b3;\n}\n.alert-success .alert-link {\n  color: #2b542c;\n}\n.alert-info {\n  background-color: #d9edf7;\n  border-color: #bce8f1;\n  color: #31708f;\n}\n.alert-info hr {\n  border-top-color: #a6e1ec;\n}\n.alert-info .alert-link {\n  color: #245269;\n}\n.alert-warning {\n  background-color: #fcf8e3;\n  border-color: #faebcc;\n  color: #8a6d3b;\n}\n.alert-warning hr {\n  border-top-color: #f7e1b5;\n}\n.alert-warning .alert-link {\n  color: #66512c;\n}\n.alert-danger {\n  background-color: #f2dede;\n  border-color: #ebccd1;\n  color: #a94442;\n}\n.alert-danger hr {\n  border-top-color: #e4b9c0;\n}\n.alert-danger .alert-link {\n  color: #843534;\n}\n@-webkit-keyframes progress-bar-stripes {\n  from {\n    background-position: 40px 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n@keyframes progress-bar-stripes {\n  from {\n    background-position: 40px 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n.progress {\n  overflow: hidden;\n  height: 20px;\n  margin-bottom: 20px;\n  background-color: #f5f5f5;\n  border-radius: 4px;\n  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n.progress-bar {\n  float: left;\n  width: 0%;\n  height: 100%;\n  font-size: 12px;\n  line-height: 20px;\n  color: #ffffff;\n  text-align: center;\n  background-color: #337ab7;\n  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n  -webkit-transition: width 0.6s ease;\n  -o-transition: width 0.6s ease;\n  transition: width 0.6s ease;\n}\n.progress-striped .progress-bar,\n.progress-bar-striped {\n  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);\n  background-image: -o-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);\n  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);\n  background-size: 40px 40px;\n}\n.progress.active .progress-bar,\n.progress-bar.active {\n  -webkit-animation: progress-bar-stripes 2s linear infinite;\n  -o-animation: progress-bar-stripes 2s linear infinite;\n  animation: progress-bar-stripes 2s linear infinite;\n}\n.progress-bar-success {\n  background-color: #5cb85c;\n}\n.progress-striped .progress-bar-success {\n  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);\n  background-image: -o-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);\n  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);\n}\n.progress-bar-info {\n  background-color: #5bc0de;\n}\n.progress-striped .progress-bar-info {\n  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);\n  background-image: -o-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);\n  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);\n}\n.progress-bar-warning {\n  background-color: #f0ad4e;\n}\n.progress-striped .progress-bar-warning {\n  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);\n  background-image: -o-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);\n  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);\n}\n.progress-bar-danger {\n  background-color: #d9534f;\n}\n.progress-striped .progress-bar-danger {\n  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);\n  background-image: -o-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);\n  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);\n}\n.media {\n  margin-top: 15px;\n}\n.media:first-child {\n  margin-top: 0;\n}\n.media-right,\n.media > .pull-right {\n  padding-left: 10px;\n}\n.media-left,\n.media > .pull-left {\n  padding-right: 10px;\n}\n.media-left,\n.media-right,\n.media-body {\n  display: table-cell;\n  vertical-align: top;\n}\n.media-middle {\n  vertical-align: middle;\n}\n.media-bottom {\n  vertical-align: bottom;\n}\n.media-heading {\n  margin-top: 0;\n  margin-bottom: 5px;\n}\n.media-list {\n  padding-left: 0;\n  list-style: none;\n}\n.list-group {\n  margin-bottom: 20px;\n  padding-left: 0;\n}\n.list-group-item {\n  position: relative;\n  display: block;\n  padding: 10px 15px;\n  margin-bottom: -1px;\n  background-color: #ffffff;\n  border: 1px solid #dddddd;\n}\n.list-group-item:first-child {\n  border-top-right-radius: 4px;\n  border-top-left-radius: 4px;\n}\n.list-group-item:last-child {\n  margin-bottom: 0;\n  border-bottom-right-radius: 4px;\n  border-bottom-left-radius: 4px;\n}\na.list-group-item {\n  color: #555555;\n}\na.list-group-item .list-group-item-heading {\n  color: #333333;\n}\na.list-group-item:hover,\na.list-group-item:focus {\n  text-decoration: none;\n  color: #555555;\n  background-color: #f5f5f5;\n}\n.list-group-item.disabled,\n.list-group-item.disabled:hover,\n.list-group-item.disabled:focus {\n  background-color: #eeeeee;\n  color: #777777;\n  cursor: not-allowed;\n}\n.list-group-item.disabled .list-group-item-heading,\n.list-group-item.disabled:hover .list-group-item-heading,\n.list-group-item.disabled:focus .list-group-item-heading {\n  color: inherit;\n}\n.list-group-item.disabled .list-group-item-text,\n.list-group-item.disabled:hover .list-group-item-text,\n.list-group-item.disabled:focus .list-group-item-text {\n  color: #777777;\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n  z-index: 2;\n  color: #ffffff;\n  background-color: #337ab7;\n  border-color: #337ab7;\n}\n.list-group-item.active .list-group-item-heading,\n.list-group-item.active:hover .list-group-item-heading,\n.list-group-item.active:focus .list-group-item-heading,\n.list-group-item.active .list-group-item-heading > small,\n.list-group-item.active:hover .list-group-item-heading > small,\n.list-group-item.active:focus .list-group-item-heading > small,\n.list-group-item.active .list-group-item-heading > .small,\n.list-group-item.active:hover .list-group-item-heading > .small,\n.list-group-item.active:focus .list-group-item-heading > .small {\n  color: inherit;\n}\n.list-group-item.active .list-group-item-text,\n.list-group-item.active:hover .list-group-item-text,\n.list-group-item.active:focus .list-group-item-text {\n  color: #c7ddef;\n}\n.list-group-item-success {\n  color: #3c763d;\n  background-color: #dff0d8;\n}\na.list-group-item-success {\n  color: #3c763d;\n}\na.list-group-item-success .list-group-item-heading {\n  color: inherit;\n}\na.list-group-item-success:hover,\na.list-group-item-success:focus {\n  color: #3c763d;\n  background-color: #d0e9c6;\n}\na.list-group-item-success.active,\na.list-group-item-success.active:hover,\na.list-group-item-success.active:focus {\n  color: #fff;\n  background-color: #3c763d;\n  border-color: #3c763d;\n}\n.list-group-item-info {\n  color: #31708f;\n  background-color: #d9edf7;\n}\na.list-group-item-info {\n  color: #31708f;\n}\na.list-group-item-info .list-group-item-heading {\n  color: inherit;\n}\na.list-group-item-info:hover,\na.list-group-item-info:focus {\n  color: #31708f;\n  background-color: #c4e3f3;\n}\na.list-group-item-info.active,\na.list-group-item-info.active:hover,\na.list-group-item-info.active:focus {\n  color: #fff;\n  background-color: #31708f;\n  border-color: #31708f;\n}\n.list-group-item-warning {\n  color: #8a6d3b;\n  background-color: #fcf8e3;\n}\na.list-group-item-warning {\n  color: #8a6d3b;\n}\na.list-group-item-warning .list-group-item-heading {\n  color: inherit;\n}\na.list-group-item-warning:hover,\na.list-group-item-warning:focus {\n  color: #8a6d3b;\n  background-color: #faf2cc;\n}\na.list-group-item-warning.active,\na.list-group-item-warning.active:hover,\na.list-group-item-warning.active:focus {\n  color: #fff;\n  background-color: #8a6d3b;\n  border-color: #8a6d3b;\n}\n.list-group-item-danger {\n  color: #a94442;\n  background-color: #f2dede;\n}\na.list-group-item-danger {\n  color: #a94442;\n}\na.list-group-item-danger .list-group-item-heading {\n  color: inherit;\n}\na.list-group-item-danger:hover,\na.list-group-item-danger:focus {\n  color: #a94442;\n  background-color: #ebcccc;\n}\na.list-group-item-danger.active,\na.list-group-item-danger.active:hover,\na.list-group-item-danger.active:focus {\n  color: #fff;\n  background-color: #a94442;\n  border-color: #a94442;\n}\n.list-group-item-heading {\n  margin-top: 0;\n  margin-bottom: 5px;\n}\n.list-group-item-text {\n  margin-bottom: 0;\n  line-height: 1.3;\n}\n.panel {\n  margin-bottom: 20px;\n  background-color: #ffffff;\n  border: 1px solid transparent;\n  border-radius: 4px;\n  -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.panel-body {\n  padding: 15px;\n}\n.panel-heading {\n  padding: 10px 15px;\n  border-bottom: 1px solid transparent;\n  border-top-right-radius: 3px;\n  border-top-left-radius: 3px;\n}\n.panel-heading > .dropdown .dropdown-toggle {\n  color: inherit;\n}\n.panel-title {\n  margin-top: 0;\n  margin-bottom: 0;\n  font-size: 16px;\n  color: inherit;\n}\n.panel-title > a {\n  color: inherit;\n}\n.panel-footer {\n  padding: 10px 15px;\n  background-color: #f5f5f5;\n  border-top: 1px solid #dddddd;\n  border-bottom-right-radius: 3px;\n  border-bottom-left-radius: 3px;\n}\n.panel > .list-group,\n.panel > .panel-collapse > .list-group {\n  margin-bottom: 0;\n}\n.panel > .list-group .list-group-item,\n.panel > .panel-collapse > .list-group .list-group-item {\n  border-width: 1px 0;\n  border-radius: 0;\n}\n.panel > .list-group:first-child .list-group-item:first-child,\n.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {\n  border-top: 0;\n  border-top-right-radius: 3px;\n  border-top-left-radius: 3px;\n}\n.panel > .list-group:last-child .list-group-item:last-child,\n.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {\n  border-bottom: 0;\n  border-bottom-right-radius: 3px;\n  border-bottom-left-radius: 3px;\n}\n.panel-heading + .list-group .list-group-item:first-child {\n  border-top-width: 0;\n}\n.list-group + .panel-footer {\n  border-top-width: 0;\n}\n.panel > .table,\n.panel > .table-responsive > .table,\n.panel > .panel-collapse > .table {\n  margin-bottom: 0;\n}\n.panel > .table caption,\n.panel > .table-responsive > .table caption,\n.panel > .panel-collapse > .table caption {\n  padding-left: 15px;\n  padding-right: 15px;\n}\n.panel > .table:first-child,\n.panel > .table-responsive:first-child > .table:first-child {\n  border-top-right-radius: 3px;\n  border-top-left-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {\n  border-top-left-radius: 3px;\n  border-top-right-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {\n  border-top-left-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {\n  border-top-right-radius: 3px;\n}\n.panel > .table:last-child,\n.panel > .table-responsive:last-child > .table:last-child {\n  border-bottom-right-radius: 3px;\n  border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {\n  border-bottom-left-radius: 3px;\n  border-bottom-right-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {\n  border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {\n  border-bottom-right-radius: 3px;\n}\n.panel > .panel-body + .table,\n.panel > .panel-body + .table-responsive,\n.panel > .table + .panel-body,\n.panel > .table-responsive + .panel-body {\n  border-top: 1px solid #dddddd;\n}\n.panel > .table > tbody:first-child > tr:first-child th,\n.panel > .table > tbody:first-child > tr:first-child td {\n  border-top: 0;\n}\n.panel > .table-bordered,\n.panel > .table-responsive > .table-bordered {\n  border: 0;\n}\n.panel > .table-bordered > thead > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,\n.panel > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-bordered > thead > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,\n.panel > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-bordered > tfoot > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n  border-left: 0;\n}\n.panel > .table-bordered > thead > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,\n.panel > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-bordered > thead > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,\n.panel > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-bordered > tfoot > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n  border-right: 0;\n}\n.panel > .table-bordered > thead > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,\n.panel > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-bordered > thead > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,\n.panel > .table-bordered > tbody > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {\n  border-bottom: 0;\n}\n.panel > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-bordered > tfoot > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {\n  border-bottom: 0;\n}\n.panel > .table-responsive {\n  border: 0;\n  margin-bottom: 0;\n}\n.panel-group {\n  margin-bottom: 20px;\n}\n.panel-group .panel {\n  margin-bottom: 0;\n  border-radius: 4px;\n}\n.panel-group .panel + .panel {\n  margin-top: 5px;\n}\n.panel-group .panel-heading {\n  border-bottom: 0;\n}\n.panel-group .panel-heading + .panel-collapse > .panel-body,\n.panel-group .panel-heading + .panel-collapse > .list-group {\n  border-top: 1px solid #dddddd;\n}\n.panel-group .panel-footer {\n  border-top: 0;\n}\n.panel-group .panel-footer + .panel-collapse .panel-body {\n  border-bottom: 1px solid #dddddd;\n}\n.panel-default {\n  border-color: #dddddd;\n}\n.panel-default > .panel-heading {\n  color: #333333;\n  background-color: #f5f5f5;\n  border-color: #dddddd;\n}\n.panel-default > .panel-heading + .panel-collapse > .panel-body {\n  border-top-color: #dddddd;\n}\n.panel-default > .panel-heading .badge {\n  color: #f5f5f5;\n  background-color: #333333;\n}\n.panel-default > .panel-footer + .panel-collapse > .panel-body {\n  border-bottom-color: #dddddd;\n}\n.panel-primary {\n  border-color: #337ab7;\n}\n.panel-primary > .panel-heading {\n  color: #ffffff;\n  background-color: #337ab7;\n  border-color: #337ab7;\n}\n.panel-primary > .panel-heading + .panel-collapse > .panel-body {\n  border-top-color: #337ab7;\n}\n.panel-primary > .panel-heading .badge {\n  color: #337ab7;\n  background-color: #ffffff;\n}\n.panel-primary > .panel-footer + .panel-collapse > .panel-body {\n  border-bottom-color: #337ab7;\n}\n.panel-success {\n  border-color: #d6e9c6;\n}\n.panel-success > .panel-heading {\n  color: #3c763d;\n  background-color: #dff0d8;\n  border-color: #d6e9c6;\n}\n.panel-success > .panel-heading + .panel-collapse > .panel-body {\n  border-top-color: #d6e9c6;\n}\n.panel-success > .panel-heading .badge {\n  color: #dff0d8;\n  background-color: #3c763d;\n}\n.panel-success > .panel-footer + .panel-collapse > .panel-body {\n  border-bottom-color: #d6e9c6;\n}\n.panel-info {\n  border-color: #bce8f1;\n}\n.panel-info > .panel-heading {\n  color: #31708f;\n  background-color: #d9edf7;\n  border-color: #bce8f1;\n}\n.panel-info > .panel-heading + .panel-collapse > .panel-body {\n  border-top-color: #bce8f1;\n}\n.panel-info > .panel-heading .badge {\n  color: #d9edf7;\n  background-color: #31708f;\n}\n.panel-info > .panel-footer + .panel-collapse > .panel-body {\n  border-bottom-color: #bce8f1;\n}\n.panel-warning {\n  border-color: #faebcc;\n}\n.panel-warning > .panel-heading {\n  color: #8a6d3b;\n  background-color: #fcf8e3;\n  border-color: #faebcc;\n}\n.panel-warning > .panel-heading + .panel-collapse > .panel-body {\n  border-top-color: #faebcc;\n}\n.panel-warning > .panel-heading .badge {\n  color: #fcf8e3;\n  background-color: #8a6d3b;\n}\n.panel-warning > .panel-footer + .panel-collapse > .panel-body {\n  border-bottom-color: #faebcc;\n}\n.panel-danger {\n  border-color: #ebccd1;\n}\n.panel-danger > .panel-heading {\n  color: #a94442;\n  background-color: #f2dede;\n  border-color: #ebccd1;\n}\n.panel-danger > .panel-heading + .panel-collapse > .panel-body {\n  border-top-color: #ebccd1;\n}\n.panel-danger > .panel-heading .badge {\n  color: #f2dede;\n  background-color: #a94442;\n}\n.panel-danger > .panel-footer + .panel-collapse > .panel-body {\n  border-bottom-color: #ebccd1;\n}\n.embed-responsive {\n  position: relative;\n  display: block;\n  height: 0;\n  padding: 0;\n  overflow: hidden;\n}\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n  position: absolute;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  height: 100%;\n  width: 100%;\n  border: 0;\n}\n.embed-responsive.embed-responsive-16by9 {\n  padding-bottom: 56.25%;\n}\n.embed-responsive.embed-responsive-4by3 {\n  padding-bottom: 75%;\n}\n.well {\n  min-height: 20px;\n  padding: 19px;\n  margin-bottom: 20px;\n  background-color: #f5f5f5;\n  border: 1px solid #e3e3e3;\n  border-radius: 4px;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.well blockquote {\n  border-color: #ddd;\n  border-color: rgba(0, 0, 0, 0.15);\n}\n.well-lg {\n  padding: 24px;\n  border-radius: 6px;\n}\n.well-sm {\n  padding: 9px;\n  border-radius: 3px;\n}\n.close {\n  float: right;\n  font-size: 21px;\n  font-weight: bold;\n  line-height: 1;\n  color: #000000;\n  text-shadow: 0 1px 0 #ffffff;\n  opacity: 0.2;\n  filter: alpha(opacity=20);\n}\n.close:hover,\n.close:focus {\n  color: #000000;\n  text-decoration: none;\n  cursor: pointer;\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n}\nbutton.close {\n  padding: 0;\n  cursor: pointer;\n  background: transparent;\n  border: 0;\n  -webkit-appearance: none;\n}\n.modal-open {\n  overflow: hidden;\n}\n.modal {\n  display: none;\n  overflow: hidden;\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1040;\n  -webkit-overflow-scrolling: touch;\n  outline: 0;\n}\n.modal.fade .modal-dialog {\n  -webkit-transform: translate(0, -25%);\n  -ms-transform: translate(0, -25%);\n  -o-transform: translate(0, -25%);\n  transform: translate(0, -25%);\n  -webkit-transition: -webkit-transform 0.3s ease-out;\n  -moz-transition: -moz-transform 0.3s ease-out;\n  -o-transition: -o-transform 0.3s ease-out;\n  transition: transform 0.3s ease-out;\n}\n.modal.in .modal-dialog {\n  -webkit-transform: translate(0, 0);\n  -ms-transform: translate(0, 0);\n  -o-transform: translate(0, 0);\n  transform: translate(0, 0);\n}\n.modal-open .modal {\n  overflow-x: hidden;\n  overflow-y: auto;\n}\n.modal-dialog {\n  position: relative;\n  width: auto;\n  margin: 10px;\n}\n.modal-content {\n  position: relative;\n  background-color: #ffffff;\n  border: 1px solid #999999;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  border-radius: 6px;\n  -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n  box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n  background-clip: padding-box;\n  outline: 0;\n}\n.modal-backdrop {\n  position: absolute;\n  top: 0;\n  right: 0;\n  left: 0;\n  background-color: #000000;\n}\n.modal-backdrop.fade {\n  opacity: 0;\n  filter: alpha(opacity=0);\n}\n.modal-backdrop.in {\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n}\n.modal-header {\n  padding: 15px;\n  border-bottom: 1px solid #e5e5e5;\n  min-height: 16.42857143px;\n}\n.modal-header .close {\n  margin-top: -2px;\n}\n.modal-title {\n  margin: 0;\n  line-height: 1.42857143;\n}\n.modal-body {\n  position: relative;\n  padding: 15px;\n}\n.modal-footer {\n  padding: 15px;\n  text-align: right;\n  border-top: 1px solid #e5e5e5;\n}\n.modal-footer .btn + .btn {\n  margin-left: 5px;\n  margin-bottom: 0;\n}\n.modal-footer .btn-group .btn + .btn {\n  margin-left: -1px;\n}\n.modal-footer .btn-block + .btn-block {\n  margin-left: 0;\n}\n.modal-scrollbar-measure {\n  position: absolute;\n  top: -9999px;\n  width: 50px;\n  height: 50px;\n  overflow: scroll;\n}\n@media (min-width: 768px) {\n  .modal-dialog {\n    width: 600px;\n    margin: 30px auto;\n  }\n  .modal-content {\n    -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n  }\n  .modal-sm {\n    width: 300px;\n  }\n}\n@media (min-width: 992px) {\n  .modal-lg {\n    width: 900px;\n  }\n}\n.tooltip {\n  position: absolute;\n  z-index: 1070;\n  display: block;\n  visibility: visible;\n  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  font-size: 12px;\n  font-weight: normal;\n  line-height: 1.4;\n  opacity: 0;\n  filter: alpha(opacity=0);\n}\n.tooltip.in {\n  opacity: 0.9;\n  filter: alpha(opacity=90);\n}\n.tooltip.top {\n  margin-top: -3px;\n  padding: 5px 0;\n}\n.tooltip.right {\n  margin-left: 3px;\n  padding: 0 5px;\n}\n.tooltip.bottom {\n  margin-top: 3px;\n  padding: 5px 0;\n}\n.tooltip.left {\n  margin-left: -3px;\n  padding: 0 5px;\n}\n.tooltip-inner {\n  max-width: 200px;\n  padding: 3px 8px;\n  color: #ffffff;\n  text-align: center;\n  text-decoration: none;\n  background-color: #000000;\n  border-radius: 4px;\n}\n.tooltip-arrow {\n  position: absolute;\n  width: 0;\n  height: 0;\n  border-color: transparent;\n  border-style: solid;\n}\n.tooltip.top .tooltip-arrow {\n  bottom: 0;\n  left: 50%;\n  margin-left: -5px;\n  border-width: 5px 5px 0;\n  border-top-color: #000000;\n}\n.tooltip.top-left .tooltip-arrow {\n  bottom: 0;\n  right: 5px;\n  margin-bottom: -5px;\n  border-width: 5px 5px 0;\n  border-top-color: #000000;\n}\n.tooltip.top-right .tooltip-arrow {\n  bottom: 0;\n  left: 5px;\n  margin-bottom: -5px;\n  border-width: 5px 5px 0;\n  border-top-color: #000000;\n}\n.tooltip.right .tooltip-arrow {\n  top: 50%;\n  left: 0;\n  margin-top: -5px;\n  border-width: 5px 5px 5px 0;\n  border-right-color: #000000;\n}\n.tooltip.left .tooltip-arrow {\n  top: 50%;\n  right: 0;\n  margin-top: -5px;\n  border-width: 5px 0 5px 5px;\n  border-left-color: #000000;\n}\n.tooltip.bottom .tooltip-arrow {\n  top: 0;\n  left: 50%;\n  margin-left: -5px;\n  border-width: 0 5px 5px;\n  border-bottom-color: #000000;\n}\n.tooltip.bottom-left .tooltip-arrow {\n  top: 0;\n  right: 5px;\n  margin-top: -5px;\n  border-width: 0 5px 5px;\n  border-bottom-color: #000000;\n}\n.tooltip.bottom-right .tooltip-arrow {\n  top: 0;\n  left: 5px;\n  margin-top: -5px;\n  border-width: 0 5px 5px;\n  border-bottom-color: #000000;\n}\n.popover {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 1060;\n  display: none;\n  max-width: 276px;\n  padding: 1px;\n  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  font-size: 14px;\n  font-weight: normal;\n  line-height: 1.42857143;\n  text-align: left;\n  background-color: #ffffff;\n  background-clip: padding-box;\n  border: 1px solid #cccccc;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  border-radius: 6px;\n  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n  white-space: normal;\n}\n.popover.top {\n  margin-top: -10px;\n}\n.popover.right {\n  margin-left: 10px;\n}\n.popover.bottom {\n  margin-top: 10px;\n}\n.popover.left {\n  margin-left: -10px;\n}\n.popover-title {\n  margin: 0;\n  padding: 8px 14px;\n  font-size: 14px;\n  background-color: #f7f7f7;\n  border-bottom: 1px solid #ebebeb;\n  border-radius: 5px 5px 0 0;\n}\n.popover-content {\n  padding: 9px 14px;\n}\n.popover > .arrow,\n.popover > .arrow:after {\n  position: absolute;\n  display: block;\n  width: 0;\n  height: 0;\n  border-color: transparent;\n  border-style: solid;\n}\n.popover > .arrow {\n  border-width: 11px;\n}\n.popover > .arrow:after {\n  border-width: 10px;\n  content: \"\";\n}\n.popover.top > .arrow {\n  left: 50%;\n  margin-left: -11px;\n  border-bottom-width: 0;\n  border-top-color: #999999;\n  border-top-color: rgba(0, 0, 0, 0.25);\n  bottom: -11px;\n}\n.popover.top > .arrow:after {\n  content: \" \";\n  bottom: 1px;\n  margin-left: -10px;\n  border-bottom-width: 0;\n  border-top-color: #ffffff;\n}\n.popover.right > .arrow {\n  top: 50%;\n  left: -11px;\n  margin-top: -11px;\n  border-left-width: 0;\n  border-right-color: #999999;\n  border-right-color: rgba(0, 0, 0, 0.25);\n}\n.popover.right > .arrow:after {\n  content: \" \";\n  left: 1px;\n  bottom: -10px;\n  border-left-width: 0;\n  border-right-color: #ffffff;\n}\n.popover.bottom > .arrow {\n  left: 50%;\n  margin-left: -11px;\n  border-top-width: 0;\n  border-bottom-color: #999999;\n  border-bottom-color: rgba(0, 0, 0, 0.25);\n  top: -11px;\n}\n.popover.bottom > .arrow:after {\n  content: \" \";\n  top: 1px;\n  margin-left: -10px;\n  border-top-width: 0;\n  border-bottom-color: #ffffff;\n}\n.popover.left > .arrow {\n  top: 50%;\n  right: -11px;\n  margin-top: -11px;\n  border-right-width: 0;\n  border-left-color: #999999;\n  border-left-color: rgba(0, 0, 0, 0.25);\n}\n.popover.left > .arrow:after {\n  content: \" \";\n  right: 1px;\n  border-right-width: 0;\n  border-left-color: #ffffff;\n  bottom: -10px;\n}\n.carousel {\n  position: relative;\n}\n.carousel-inner {\n  position: relative;\n  overflow: hidden;\n  width: 100%;\n}\n.carousel-inner > .item {\n  display: none;\n  position: relative;\n  -webkit-transition: 0.6s ease-in-out left;\n  -o-transition: 0.6s ease-in-out left;\n  transition: 0.6s ease-in-out left;\n}\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n  line-height: 1;\n}\n@media all and (transform-3d), (-webkit-transform-3d) {\n  .carousel-inner > .item {\n    transition: transform 0.6s ease-in-out;\n    backface-visibility: hidden;\n    perspective: 1000;\n  }\n  .carousel-inner > .item.next,\n  .carousel-inner > .item.active.right {\n    transform: translate3d(100%, 0, 0);\n    left: 0;\n  }\n  .carousel-inner > .item.prev,\n  .carousel-inner > .item.active.left {\n    transform: translate3d(-100%, 0, 0);\n    left: 0;\n  }\n  .carousel-inner > .item.next.left,\n  .carousel-inner > .item.prev.right,\n  .carousel-inner > .item.active {\n    transform: translate3d(0, 0, 0);\n    left: 0;\n  }\n}\n.carousel-inner > .active,\n.carousel-inner > .next,\n.carousel-inner > .prev {\n  display: block;\n}\n.carousel-inner > .active {\n  left: 0;\n}\n.carousel-inner > .next,\n.carousel-inner > .prev {\n  position: absolute;\n  top: 0;\n  width: 100%;\n}\n.carousel-inner > .next {\n  left: 100%;\n}\n.carousel-inner > .prev {\n  left: -100%;\n}\n.carousel-inner > .next.left,\n.carousel-inner > .prev.right {\n  left: 0;\n}\n.carousel-inner > .active.left {\n  left: -100%;\n}\n.carousel-inner > .active.right {\n  left: 100%;\n}\n.carousel-control {\n  position: absolute;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  width: 15%;\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n  font-size: 20px;\n  color: #ffffff;\n  text-align: center;\n  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n}\n.carousel-control.left {\n  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n  background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);\n}\n.carousel-control.right {\n  left: auto;\n  right: 0;\n  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n  background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);\n}\n.carousel-control:hover,\n.carousel-control:focus {\n  outline: 0;\n  color: #ffffff;\n  text-decoration: none;\n  opacity: 0.9;\n  filter: alpha(opacity=90);\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-left,\n.carousel-control .glyphicon-chevron-right {\n  position: absolute;\n  top: 50%;\n  z-index: 5;\n  display: inline-block;\n}\n.carousel-control .icon-prev,\n.carousel-control .glyphicon-chevron-left {\n  left: 50%;\n  margin-left: -10px;\n}\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-right {\n  right: 50%;\n  margin-right: -10px;\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next {\n  width: 20px;\n  height: 20px;\n  margin-top: -10px;\n  font-family: serif;\n}\n.carousel-control .icon-prev:before {\n  content: '\\2039';\n}\n.carousel-control .icon-next:before {\n  content: '\\203a';\n}\n.carousel-indicators {\n  position: absolute;\n  bottom: 10px;\n  left: 50%;\n  z-index: 15;\n  width: 60%;\n  margin-left: -30%;\n  padding-left: 0;\n  list-style: none;\n  text-align: center;\n}\n.carousel-indicators li {\n  display: inline-block;\n  width: 10px;\n  height: 10px;\n  margin: 1px;\n  text-indent: -999px;\n  border: 1px solid #ffffff;\n  border-radius: 10px;\n  cursor: pointer;\n  background-color: #000 \\9;\n  background-color: rgba(0, 0, 0, 0);\n}\n.carousel-indicators .active {\n  margin: 0;\n  width: 12px;\n  height: 12px;\n  background-color: #ffffff;\n}\n.carousel-caption {\n  position: absolute;\n  left: 15%;\n  right: 15%;\n  bottom: 20px;\n  z-index: 10;\n  padding-top: 20px;\n  padding-bottom: 20px;\n  color: #ffffff;\n  text-align: center;\n  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n}\n.carousel-caption .btn {\n  text-shadow: none;\n}\n@media screen and (min-width: 768px) {\n  .carousel-control .glyphicon-chevron-left,\n  .carousel-control .glyphicon-chevron-right,\n  .carousel-control .icon-prev,\n  .carousel-control .icon-next {\n    width: 30px;\n    height: 30px;\n    margin-top: -15px;\n    font-size: 30px;\n  }\n  .carousel-control .glyphicon-chevron-left,\n  .carousel-control .icon-prev {\n    margin-left: -15px;\n  }\n  .carousel-control .glyphicon-chevron-right,\n  .carousel-control .icon-next {\n    margin-right: -15px;\n  }\n  .carousel-caption {\n    left: 20%;\n    right: 20%;\n    padding-bottom: 30px;\n  }\n  .carousel-indicators {\n    bottom: 20px;\n  }\n}\n.clearfix:before,\n.clearfix:after,\n.dl-horizontal dd:before,\n.dl-horizontal dd:after,\n.container:before,\n.container:after,\n.container-fluid:before,\n.container-fluid:after,\n.row:before,\n.row:after,\n.form-horizontal .form-group:before,\n.form-horizontal .form-group:after,\n.btn-toolbar:before,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:before,\n.btn-group-vertical > .btn-group:after,\n.nav:before,\n.nav:after,\n.navbar:before,\n.navbar:after,\n.navbar-header:before,\n.navbar-header:after,\n.navbar-collapse:before,\n.navbar-collapse:after,\n.pager:before,\n.pager:after,\n.panel-body:before,\n.panel-body:after,\n.modal-footer:before,\n.modal-footer:after {\n  content: \" \";\n  display: table;\n}\n.clearfix:after,\n.dl-horizontal dd:after,\n.container:after,\n.container-fluid:after,\n.row:after,\n.form-horizontal .form-group:after,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:after,\n.nav:after,\n.navbar:after,\n.navbar-header:after,\n.navbar-collapse:after,\n.pager:after,\n.panel-body:after,\n.modal-footer:after {\n  clear: both;\n}\n.center-block {\n  display: block;\n  margin-left: auto;\n  margin-right: auto;\n}\n.pull-right {\n  float: right !important;\n}\n.pull-left {\n  float: left !important;\n}\n.hide {\n  display: none !important;\n}\n.show {\n  display: block !important;\n}\n.invisible {\n  visibility: hidden;\n}\n.text-hide {\n  font: 0/0 a;\n  color: transparent;\n  text-shadow: none;\n  background-color: transparent;\n  border: 0;\n}\n.hidden {\n  display: none !important;\n  visibility: hidden !important;\n}\n.affix {\n  position: fixed;\n}\n@-ms-viewport {\n  width: device-width;\n}\n.visible-xs,\n.visible-sm,\n.visible-md,\n.visible-lg {\n  display: none !important;\n}\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n  display: none !important;\n}\n@media (max-width: 767px) {\n  .visible-xs {\n    display: block !important;\n  }\n  table.visible-xs {\n    display: table;\n  }\n  tr.visible-xs {\n    display: table-row !important;\n  }\n  th.visible-xs,\n  td.visible-xs {\n    display: table-cell !important;\n  }\n}\n@media (max-width: 767px) {\n  .visible-xs-block {\n    display: block !important;\n  }\n}\n@media (max-width: 767px) {\n  .visible-xs-inline {\n    display: inline !important;\n  }\n}\n@media (max-width: 767px) {\n  .visible-xs-inline-block {\n    display: inline-block !important;\n  }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n  .visible-sm {\n    display: block !important;\n  }\n  table.visible-sm {\n    display: table;\n  }\n  tr.visible-sm {\n    display: table-row !important;\n  }\n  th.visible-sm,\n  td.visible-sm {\n    display: table-cell !important;\n  }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n  .visible-sm-block {\n    display: block !important;\n  }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n  .visible-sm-inline {\n    display: inline !important;\n  }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n  .visible-sm-inline-block {\n    display: inline-block !important;\n  }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n  .visible-md {\n    display: block !important;\n  }\n  table.visible-md {\n    display: table;\n  }\n  tr.visible-md {\n    display: table-row !important;\n  }\n  th.visible-md,\n  td.visible-md {\n    display: table-cell !important;\n  }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n  .visible-md-block {\n    display: block !important;\n  }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n  .visible-md-inline {\n    display: inline !important;\n  }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n  .visible-md-inline-block {\n    display: inline-block !important;\n  }\n}\n@media (min-width: 1200px) {\n  .visible-lg {\n    display: block !important;\n  }\n  table.visible-lg {\n    display: table;\n  }\n  tr.visible-lg {\n    display: table-row !important;\n  }\n  th.visible-lg,\n  td.visible-lg {\n    display: table-cell !important;\n  }\n}\n@media (min-width: 1200px) {\n  .visible-lg-block {\n    display: block !important;\n  }\n}\n@media (min-width: 1200px) {\n  .visible-lg-inline {\n    display: inline !important;\n  }\n}\n@media (min-width: 1200px) {\n  .visible-lg-inline-block {\n    display: inline-block !important;\n  }\n}\n@media (max-width: 767px) {\n  .hidden-xs {\n    display: none !important;\n  }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n  .hidden-sm {\n    display: none !important;\n  }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n  .hidden-md {\n    display: none !important;\n  }\n}\n@media (min-width: 1200px) {\n  .hidden-lg {\n    display: none !important;\n  }\n}\n.visible-print {\n  display: none !important;\n}\n@media print {\n  .visible-print {\n    display: block !important;\n  }\n  table.visible-print {\n    display: table;\n  }\n  tr.visible-print {\n    display: table-row !important;\n  }\n  th.visible-print,\n  td.visible-print {\n    display: table-cell !important;\n  }\n}\n.visible-print-block {\n  display: none !important;\n}\n@media print {\n  .visible-print-block {\n    display: block !important;\n  }\n}\n.visible-print-inline {\n  display: none !important;\n}\n@media print {\n  .visible-print-inline {\n    display: inline !important;\n  }\n}\n.visible-print-inline-block {\n  display: none !important;\n}\n@media print {\n  .visible-print-inline-block {\n    display: inline-block !important;\n  }\n}\n@media print {\n  .hidden-print {\n    display: none !important;\n  }\n}\n/*# sourceMappingURL=bootstrap.css.map */","/*! normalize.css v3.0.2 | MIT License | git.io/normalize */\n\n//\n// 1. Set default font family to sans-serif.\n// 2. Prevent iOS text size adjust after orientation change, without disabling\n//    user zoom.\n//\n\nhtml {\n  font-family: sans-serif; // 1\n  -ms-text-size-adjust: 100%; // 2\n  -webkit-text-size-adjust: 100%; // 2\n}\n\n//\n// Remove default margin.\n//\n\nbody {\n  margin: 0;\n}\n\n// HTML5 display definitions\n// ==========================================================================\n\n//\n// Correct `block` display not defined for any HTML5 element in IE 8/9.\n// Correct `block` display not defined for `details` or `summary` in IE 10/11\n// and Firefox.\n// Correct `block` display not defined for `main` in IE 11.\n//\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n  display: block;\n}\n\n//\n// 1. Correct `inline-block` display not defined in IE 8/9.\n// 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n//\n\naudio,\ncanvas,\nprogress,\nvideo {\n  display: inline-block; // 1\n  vertical-align: baseline; // 2\n}\n\n//\n// Prevent modern browsers from displaying `audio` without controls.\n// Remove excess height in iOS 5 devices.\n//\n\naudio:not([controls]) {\n  display: none;\n  height: 0;\n}\n\n//\n// Address `[hidden]` styling not present in IE 8/9/10.\n// Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.\n//\n\n[hidden],\ntemplate {\n  display: none;\n}\n\n// Links\n// ==========================================================================\n\n//\n// Remove the gray background color from active links in IE 10.\n//\n\na {\n  background-color: transparent;\n}\n\n//\n// Improve readability when focused and also mouse hovered in all browsers.\n//\n\na:active,\na:hover {\n  outline: 0;\n}\n\n// Text-level semantics\n// ==========================================================================\n\n//\n// Address styling not present in IE 8/9/10/11, Safari, and Chrome.\n//\n\nabbr[title] {\n  border-bottom: 1px dotted;\n}\n\n//\n// Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\n//\n\nb,\nstrong {\n  font-weight: bold;\n}\n\n//\n// Address styling not present in Safari and Chrome.\n//\n\ndfn {\n  font-style: italic;\n}\n\n//\n// Address variable `h1` font-size and margin within `section` and `article`\n// contexts in Firefox 4+, Safari, and Chrome.\n//\n\nh1 {\n  font-size: 2em;\n  margin: 0.67em 0;\n}\n\n//\n// Address styling not present in IE 8/9.\n//\n\nmark {\n  background: #ff0;\n  color: #000;\n}\n\n//\n// Address inconsistent and variable font size in all browsers.\n//\n\nsmall {\n  font-size: 80%;\n}\n\n//\n// Prevent `sub` and `sup` affecting `line-height` in all browsers.\n//\n\nsub,\nsup {\n  font-size: 75%;\n  line-height: 0;\n  position: relative;\n  vertical-align: baseline;\n}\n\nsup {\n  top: -0.5em;\n}\n\nsub {\n  bottom: -0.25em;\n}\n\n// Embedded content\n// ==========================================================================\n\n//\n// Remove border when inside `a` element in IE 8/9/10.\n//\n\nimg {\n  border: 0;\n}\n\n//\n// Correct overflow not hidden in IE 9/10/11.\n//\n\nsvg:not(:root) {\n  overflow: hidden;\n}\n\n// Grouping content\n// ==========================================================================\n\n//\n// Address margin not present in IE 8/9 and Safari.\n//\n\nfigure {\n  margin: 1em 40px;\n}\n\n//\n// Address differences between Firefox and other browsers.\n//\n\nhr {\n  -moz-box-sizing: content-box;\n  box-sizing: content-box;\n  height: 0;\n}\n\n//\n// Contain overflow in all browsers.\n//\n\npre {\n  overflow: auto;\n}\n\n//\n// Address odd `em`-unit font size rendering in all browsers.\n//\n\ncode,\nkbd,\npre,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em;\n}\n\n// Forms\n// ==========================================================================\n\n//\n// Known limitation: by default, Chrome and Safari on OS X allow very limited\n// styling of `select`, unless a `border` property is set.\n//\n\n//\n// 1. Correct color not being inherited.\n//    Known issue: affects color of disabled elements.\n// 2. Correct font properties not being inherited.\n// 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\n//\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  color: inherit; // 1\n  font: inherit; // 2\n  margin: 0; // 3\n}\n\n//\n// Address `overflow` set to `hidden` in IE 8/9/10/11.\n//\n\nbutton {\n  overflow: visible;\n}\n\n//\n// Address inconsistent `text-transform` inheritance for `button` and `select`.\n// All other form control elements do not inherit `text-transform` values.\n// Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\n// Correct `select` style inheritance in Firefox.\n//\n\nbutton,\nselect {\n  text-transform: none;\n}\n\n//\n// 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n//    and `video` controls.\n// 2. Correct inability to style clickable `input` types in iOS.\n// 3. Improve usability and consistency of cursor style between image-type\n//    `input` and others.\n//\n\nbutton,\nhtml input[type=\"button\"], // 1\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n  -webkit-appearance: button; // 2\n  cursor: pointer; // 3\n}\n\n//\n// Re-set default cursor for disabled elements.\n//\n\nbutton[disabled],\nhtml input[disabled] {\n  cursor: default;\n}\n\n//\n// Remove inner padding and border in Firefox 4+.\n//\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n  border: 0;\n  padding: 0;\n}\n\n//\n// Address Firefox 4+ setting `line-height` on `input` using `!important` in\n// the UA stylesheet.\n//\n\ninput {\n  line-height: normal;\n}\n\n//\n// It's recommended that you don't attempt to style these elements.\n// Firefox's implementation doesn't respect box-sizing, padding, or width.\n//\n// 1. Address box sizing set to `content-box` in IE 8/9/10.\n// 2. Remove excess padding in IE 8/9/10.\n//\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n  box-sizing: border-box; // 1\n  padding: 0; // 2\n}\n\n//\n// Fix the cursor style for Chrome's increment/decrement buttons. For certain\n// `font-size` values of the `input`, it causes the cursor style of the\n// decrement button to change from `default` to `text`.\n//\n\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto;\n}\n\n//\n// 1. Address `appearance` set to `searchfield` in Safari and Chrome.\n// 2. Address `box-sizing` set to `border-box` in Safari and Chrome\n//    (include `-moz` to future-proof).\n//\n\ninput[type=\"search\"] {\n  -webkit-appearance: textfield; // 1\n  -moz-box-sizing: content-box;\n  -webkit-box-sizing: content-box; // 2\n  box-sizing: content-box;\n}\n\n//\n// Remove inner padding and search cancel button in Safari and Chrome on OS X.\n// Safari (but not Chrome) clips the cancel button when the search input has\n// padding (and `textfield` appearance).\n//\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\n//\n// Define consistent border, margin, and padding.\n//\n\nfieldset {\n  border: 1px solid #c0c0c0;\n  margin: 0 2px;\n  padding: 0.35em 0.625em 0.75em;\n}\n\n//\n// 1. Correct `color` not being inherited in IE 8/9/10/11.\n// 2. Remove padding so people aren't caught out if they zero out fieldsets.\n//\n\nlegend {\n  border: 0; // 1\n  padding: 0; // 2\n}\n\n//\n// Remove default vertical scrollbar in IE 8/9/10/11.\n//\n\ntextarea {\n  overflow: auto;\n}\n\n//\n// Don't inherit the `font-weight` (applied by a rule above).\n// NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n//\n\noptgroup {\n  font-weight: bold;\n}\n\n// Tables\n// ==========================================================================\n\n//\n// Remove most spacing between table cells.\n//\n\ntable {\n  border-collapse: collapse;\n  border-spacing: 0;\n}\n\ntd,\nth {\n  padding: 0;\n}\n","/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n\n// ==========================================================================\n// Print styles.\n// Inlined to avoid the additional HTTP request: h5bp.com/r\n// ==========================================================================\n\n@media print {\n    *,\n    *:before,\n    *:after {\n        background: transparent !important;\n        color: #000 !important; // Black prints faster: h5bp.com/s\n        box-shadow: none !important;\n        text-shadow: none !important;\n    }\n\n    a,\n    a:visited {\n        text-decoration: underline;\n    }\n\n    a[href]:after {\n        content: \" (\" attr(href) \")\";\n    }\n\n    abbr[title]:after {\n        content: \" (\" attr(title) \")\";\n    }\n\n    // Don't show links that are fragment identifiers,\n    // or use the `javascript:` pseudo protocol\n    a[href^=\"#\"]:after,\n    a[href^=\"javascript:\"]:after {\n        content: \"\";\n    }\n\n    pre,\n    blockquote {\n        border: 1px solid #999;\n        page-break-inside: avoid;\n    }\n\n    thead {\n        display: table-header-group; // h5bp.com/t\n    }\n\n    tr,\n    img {\n        page-break-inside: avoid;\n    }\n\n    img {\n        max-width: 100% !important;\n    }\n\n    p,\n    h2,\n    h3 {\n        orphans: 3;\n        widows: 3;\n    }\n\n    h2,\n    h3 {\n        page-break-after: avoid;\n    }\n\n    // Bootstrap specific changes start\n    //\n    // Chrome (OSX) fix for https://github.com/twbs/bootstrap/issues/11245\n    // Once fixed, we can just straight up remove this.\n    select {\n        background: #fff !important;\n    }\n\n    // Bootstrap components\n    .navbar {\n        display: none;\n    }\n    .btn,\n    .dropup > .btn {\n        > .caret {\n            border-top-color: #000 !important;\n        }\n    }\n    .label {\n        border: 1px solid #000;\n    }\n\n    .table {\n        border-collapse: collapse !important;\n\n        td,\n        th {\n            background-color: #fff !important;\n        }\n    }\n    .table-bordered {\n        th,\n        td {\n            border: 1px solid #ddd !important;\n        }\n    }\n\n    // Bootstrap specific changes end\n}\n","//\n// Glyphicons for Bootstrap\n//\n// Since icons are fonts, they can be placed anywhere text is placed and are\n// thus automatically sized to match the surrounding child. To use, create an\n// inline element with the appropriate classes, like so:\n//\n// <a href=\"#\"><span class=\"glyphicon glyphicon-star\"></span> Star</a>\n\n// Import the fonts\n@font-face {\n  font-family: 'Glyphicons Halflings';\n  src: url('@{icon-font-path}@{icon-font-name}.eot');\n  src: url('@{icon-font-path}@{icon-font-name}.eot?#iefix') format('embedded-opentype'),\n       url('@{icon-font-path}@{icon-font-name}.woff') format('woff'),\n       url('@{icon-font-path}@{icon-font-name}.ttf') format('truetype'),\n       url('@{icon-font-path}@{icon-font-name}.svg#@{icon-font-svg-id}') format('svg');\n}\n\n// Catchall baseclass\n.glyphicon {\n  position: relative;\n  top: 1px;\n  display: inline-block;\n  font-family: 'Glyphicons Halflings';\n  font-style: normal;\n  font-weight: normal;\n  line-height: 1;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n\n// Individual icons\n.glyphicon-asterisk               { &:before { content: \"\\2a\"; } }\n.glyphicon-plus                   { &:before { content: \"\\2b\"; } }\n.glyphicon-euro,\n.glyphicon-eur                    { &:before { content: \"\\20ac\"; } }\n.glyphicon-minus                  { &:before { content: \"\\2212\"; } }\n.glyphicon-cloud                  { &:before { content: \"\\2601\"; } }\n.glyphicon-envelope               { &:before { content: \"\\2709\"; } }\n.glyphicon-pencil                 { &:before { content: \"\\270f\"; } }\n.glyphicon-glass                  { &:before { content: \"\\e001\"; } }\n.glyphicon-music                  { &:before { content: \"\\e002\"; } }\n.glyphicon-search                 { &:before { content: \"\\e003\"; } }\n.glyphicon-heart                  { &:before { content: \"\\e005\"; } }\n.glyphicon-star                   { &:before { content: \"\\e006\"; } }\n.glyphicon-star-empty             { &:before { content: \"\\e007\"; } }\n.glyphicon-user                   { &:before { content: \"\\e008\"; } }\n.glyphicon-film                   { &:before { content: \"\\e009\"; } }\n.glyphicon-th-large               { &:before { content: \"\\e010\"; } }\n.glyphicon-th                     { &:before { content: \"\\e011\"; } }\n.glyphicon-th-list                { &:before { content: \"\\e012\"; } }\n.glyphicon-ok                     { &:before { content: \"\\e013\"; } }\n.glyphicon-remove                 { &:before { content: \"\\e014\"; } }\n.glyphicon-zoom-in                { &:before { content: \"\\e015\"; } }\n.glyphicon-zoom-out               { &:before { content: \"\\e016\"; } }\n.glyphicon-off                    { &:before { content: \"\\e017\"; } }\n.glyphicon-signal                 { &:before { content: \"\\e018\"; } }\n.glyphicon-cog                    { &:before { content: \"\\e019\"; } }\n.glyphicon-trash                  { &:before { content: \"\\e020\"; } }\n.glyphicon-home                   { &:before { content: \"\\e021\"; } }\n.glyphicon-file                   { &:before { content: \"\\e022\"; } }\n.glyphicon-time                   { &:before { content: \"\\e023\"; } }\n.glyphicon-road                   { &:before { content: \"\\e024\"; } }\n.glyphicon-download-alt           { &:before { content: \"\\e025\"; } }\n.glyphicon-download               { &:before { content: \"\\e026\"; } }\n.glyphicon-upload                 { &:before { content: \"\\e027\"; } }\n.glyphicon-inbox                  { &:before { content: \"\\e028\"; } }\n.glyphicon-play-circle            { &:before { content: \"\\e029\"; } }\n.glyphicon-repeat                 { &:before { content: \"\\e030\"; } }\n.glyphicon-refresh                { &:before { content: \"\\e031\"; } }\n.glyphicon-list-alt               { &:before { content: \"\\e032\"; } }\n.glyphicon-lock                   { &:before { content: \"\\e033\"; } }\n.glyphicon-flag                   { &:before { content: \"\\e034\"; } }\n.glyphicon-headphones             { &:before { content: \"\\e035\"; } }\n.glyphicon-volume-off             { &:before { content: \"\\e036\"; } }\n.glyphicon-volume-down            { &:before { content: \"\\e037\"; } }\n.glyphicon-volume-up              { &:before { content: \"\\e038\"; } }\n.glyphicon-qrcode                 { &:before { content: \"\\e039\"; } }\n.glyphicon-barcode                { &:before { content: \"\\e040\"; } }\n.glyphicon-tag                    { &:before { content: \"\\e041\"; } }\n.glyphicon-tags                   { &:before { content: \"\\e042\"; } }\n.glyphicon-book                   { &:before { content: \"\\e043\"; } }\n.glyphicon-bookmark               { &:before { content: \"\\e044\"; } }\n.glyphicon-print                  { &:before { content: \"\\e045\"; } }\n.glyphicon-camera                 { &:before { content: \"\\e046\"; } }\n.glyphicon-font                   { &:before { content: \"\\e047\"; } }\n.glyphicon-bold                   { &:before { content: \"\\e048\"; } }\n.glyphicon-italic                 { &:before { content: \"\\e049\"; } }\n.glyphicon-text-height            { &:before { content: \"\\e050\"; } }\n.glyphicon-text-width             { &:before { content: \"\\e051\"; } }\n.glyphicon-align-left             { &:before { content: \"\\e052\"; } }\n.glyphicon-align-center           { &:before { content: \"\\e053\"; } }\n.glyphicon-align-right            { &:before { content: \"\\e054\"; } }\n.glyphicon-align-justify          { &:before { content: \"\\e055\"; } }\n.glyphicon-list                   { &:before { content: \"\\e056\"; } }\n.glyphicon-indent-left            { &:before { content: \"\\e057\"; } }\n.glyphicon-indent-right           { &:before { content: \"\\e058\"; } }\n.glyphicon-facetime-video         { &:before { content: \"\\e059\"; } }\n.glyphicon-picture                { &:before { content: \"\\e060\"; } }\n.glyphicon-map-marker             { &:before { content: \"\\e062\"; } }\n.glyphicon-adjust                 { &:before { content: \"\\e063\"; } }\n.glyphicon-tint                   { &:before { content: \"\\e064\"; } }\n.glyphicon-edit                   { &:before { content: \"\\e065\"; } }\n.glyphicon-share                  { &:before { content: \"\\e066\"; } }\n.glyphicon-check                  { &:before { content: \"\\e067\"; } }\n.glyphicon-move                   { &:before { content: \"\\e068\"; } }\n.glyphicon-step-backward          { &:before { content: \"\\e069\"; } }\n.glyphicon-fast-backward          { &:before { content: \"\\e070\"; } }\n.glyphicon-backward               { &:before { content: \"\\e071\"; } }\n.glyphicon-play                   { &:before { content: \"\\e072\"; } }\n.glyphicon-pause                  { &:before { content: \"\\e073\"; } }\n.glyphicon-stop                   { &:before { content: \"\\e074\"; } }\n.glyphicon-forward                { &:before { content: \"\\e075\"; } }\n.glyphicon-fast-forward           { &:before { content: \"\\e076\"; } }\n.glyphicon-step-forward           { &:before { content: \"\\e077\"; } }\n.glyphicon-eject                  { &:before { content: \"\\e078\"; } }\n.glyphicon-chevron-left           { &:before { content: \"\\e079\"; } }\n.glyphicon-chevron-right          { &:before { content: \"\\e080\"; } }\n.glyphicon-plus-sign              { &:before { content: \"\\e081\"; } }\n.glyphicon-minus-sign             { &:before { content: \"\\e082\"; } }\n.glyphicon-remove-sign            { &:before { content: \"\\e083\"; } }\n.glyphicon-ok-sign                { &:before { content: \"\\e084\"; } }\n.glyphicon-question-sign          { &:before { content: \"\\e085\"; } }\n.glyphicon-info-sign              { &:before { content: \"\\e086\"; } }\n.glyphicon-screenshot             { &:before { content: \"\\e087\"; } }\n.glyphicon-remove-circle          { &:before { content: \"\\e088\"; } }\n.glyphicon-ok-circle              { &:before { content: \"\\e089\"; } }\n.glyphicon-ban-circle             { &:before { content: \"\\e090\"; } }\n.glyphicon-arrow-left             { &:before { content: \"\\e091\"; } }\n.glyphicon-arrow-right            { &:before { content: \"\\e092\"; } }\n.glyphicon-arrow-up               { &:before { content: \"\\e093\"; } }\n.glyphicon-arrow-down             { &:before { content: \"\\e094\"; } }\n.glyphicon-share-alt              { &:before { content: \"\\e095\"; } }\n.glyphicon-resize-full            { &:before { content: \"\\e096\"; } }\n.glyphicon-resize-small           { &:before { content: \"\\e097\"; } }\n.glyphicon-exclamation-sign       { &:before { content: \"\\e101\"; } }\n.glyphicon-gift                   { &:before { content: \"\\e102\"; } }\n.glyphicon-leaf                   { &:before { content: \"\\e103\"; } }\n.glyphicon-fire                   { &:before { content: \"\\e104\"; } }\n.glyphicon-eye-open               { &:before { content: \"\\e105\"; } }\n.glyphicon-eye-close              { &:before { content: \"\\e106\"; } }\n.glyphicon-warning-sign           { &:before { content: \"\\e107\"; } }\n.glyphicon-plane                  { &:before { content: \"\\e108\"; } }\n.glyphicon-calendar               { &:before { content: \"\\e109\"; } }\n.glyphicon-random                 { &:before { content: \"\\e110\"; } }\n.glyphicon-comment                { &:before { content: \"\\e111\"; } }\n.glyphicon-magnet                 { &:before { content: \"\\e112\"; } }\n.glyphicon-chevron-up             { &:before { content: \"\\e113\"; } }\n.glyphicon-chevron-down           { &:before { content: \"\\e114\"; } }\n.glyphicon-retweet                { &:before { content: \"\\e115\"; } }\n.glyphicon-shopping-cart          { &:before { content: \"\\e116\"; } }\n.glyphicon-folder-close           { &:before { content: \"\\e117\"; } }\n.glyphicon-folder-open            { &:before { content: \"\\e118\"; } }\n.glyphicon-resize-vertical        { &:before { content: \"\\e119\"; } }\n.glyphicon-resize-horizontal      { &:before { content: \"\\e120\"; } }\n.glyphicon-hdd                    { &:before { content: \"\\e121\"; } }\n.glyphicon-bullhorn               { &:before { content: \"\\e122\"; } }\n.glyphicon-bell                   { &:before { content: \"\\e123\"; } }\n.glyphicon-certificate            { &:before { content: \"\\e124\"; } }\n.glyphicon-thumbs-up              { &:before { content: \"\\e125\"; } }\n.glyphicon-thumbs-down            { &:before { content: \"\\e126\"; } }\n.glyphicon-hand-right             { &:before { content: \"\\e127\"; } }\n.glyphicon-hand-left              { &:before { content: \"\\e128\"; } }\n.glyphicon-hand-up                { &:before { content: \"\\e129\"; } }\n.glyphicon-hand-down              { &:before { content: \"\\e130\"; } }\n.glyphicon-circle-arrow-right     { &:before { content: \"\\e131\"; } }\n.glyphicon-circle-arrow-left      { &:before { content: \"\\e132\"; } }\n.glyphicon-circle-arrow-up        { &:before { content: \"\\e133\"; } }\n.glyphicon-circle-arrow-down      { &:before { content: \"\\e134\"; } }\n.glyphicon-globe                  { &:before { content: \"\\e135\"; } }\n.glyphicon-wrench                 { &:before { content: \"\\e136\"; } }\n.glyphicon-tasks                  { &:before { content: \"\\e137\"; } }\n.glyphicon-filter                 { &:before { content: \"\\e138\"; } }\n.glyphicon-briefcase              { &:before { content: \"\\e139\"; } }\n.glyphicon-fullscreen             { &:before { content: \"\\e140\"; } }\n.glyphicon-dashboard              { &:before { content: \"\\e141\"; } }\n.glyphicon-paperclip              { &:before { content: \"\\e142\"; } }\n.glyphicon-heart-empty            { &:before { content: \"\\e143\"; } }\n.glyphicon-link                   { &:before { content: \"\\e144\"; } }\n.glyphicon-phone                  { &:before { content: \"\\e145\"; } }\n.glyphicon-pushpin                { &:before { content: \"\\e146\"; } }\n.glyphicon-usd                    { &:before { content: \"\\e148\"; } }\n.glyphicon-gbp                    { &:before { content: \"\\e149\"; } }\n.glyphicon-sort                   { &:before { content: \"\\e150\"; } }\n.glyphicon-sort-by-alphabet       { &:before { content: \"\\e151\"; } }\n.glyphicon-sort-by-alphabet-alt   { &:before { content: \"\\e152\"; } }\n.glyphicon-sort-by-order          { &:before { content: \"\\e153\"; } }\n.glyphicon-sort-by-order-alt      { &:before { content: \"\\e154\"; } }\n.glyphicon-sort-by-attributes     { &:before { content: \"\\e155\"; } }\n.glyphicon-sort-by-attributes-alt { &:before { content: \"\\e156\"; } }\n.glyphicon-unchecked              { &:before { content: \"\\e157\"; } }\n.glyphicon-expand                 { &:before { content: \"\\e158\"; } }\n.glyphicon-collapse-down          { &:before { content: \"\\e159\"; } }\n.glyphicon-collapse-up            { &:before { content: \"\\e160\"; } }\n.glyphicon-log-in                 { &:before { content: \"\\e161\"; } }\n.glyphicon-flash                  { &:before { content: \"\\e162\"; } }\n.glyphicon-log-out                { &:before { content: \"\\e163\"; } }\n.glyphicon-new-window             { &:before { content: \"\\e164\"; } }\n.glyphicon-record                 { &:before { content: \"\\e165\"; } }\n.glyphicon-save                   { &:before { content: \"\\e166\"; } }\n.glyphicon-open                   { &:before { content: \"\\e167\"; } }\n.glyphicon-saved                  { &:before { content: \"\\e168\"; } }\n.glyphicon-import                 { &:before { content: \"\\e169\"; } }\n.glyphicon-export                 { &:before { content: \"\\e170\"; } }\n.glyphicon-send                   { &:before { content: \"\\e171\"; } }\n.glyphicon-floppy-disk            { &:before { content: \"\\e172\"; } }\n.glyphicon-floppy-saved           { &:before { content: \"\\e173\"; } }\n.glyphicon-floppy-remove          { &:before { content: \"\\e174\"; } }\n.glyphicon-floppy-save            { &:before { content: \"\\e175\"; } }\n.glyphicon-floppy-open            { &:before { content: \"\\e176\"; } }\n.glyphicon-credit-card            { &:before { content: \"\\e177\"; } }\n.glyphicon-transfer               { &:before { content: \"\\e178\"; } }\n.glyphicon-cutlery                { &:before { content: \"\\e179\"; } }\n.glyphicon-header                 { &:before { content: \"\\e180\"; } }\n.glyphicon-compressed             { &:before { content: \"\\e181\"; } }\n.glyphicon-earphone               { &:before { content: \"\\e182\"; } }\n.glyphicon-phone-alt              { &:before { content: \"\\e183\"; } }\n.glyphicon-tower                  { &:before { content: \"\\e184\"; } }\n.glyphicon-stats                  { &:before { content: \"\\e185\"; } }\n.glyphicon-sd-video               { &:before { content: \"\\e186\"; } }\n.glyphicon-hd-video               { &:before { content: \"\\e187\"; } }\n.glyphicon-subtitles              { &:before { content: \"\\e188\"; } }\n.glyphicon-sound-stereo           { &:before { content: \"\\e189\"; } }\n.glyphicon-sound-dolby            { &:before { content: \"\\e190\"; } }\n.glyphicon-sound-5-1              { &:before { content: \"\\e191\"; } }\n.glyphicon-sound-6-1              { &:before { content: \"\\e192\"; } }\n.glyphicon-sound-7-1              { &:before { content: \"\\e193\"; } }\n.glyphicon-copyright-mark         { &:before { content: \"\\e194\"; } }\n.glyphicon-registration-mark      { &:before { content: \"\\e195\"; } }\n.glyphicon-cloud-download         { &:before { content: \"\\e197\"; } }\n.glyphicon-cloud-upload           { &:before { content: \"\\e198\"; } }\n.glyphicon-tree-conifer           { &:before { content: \"\\e199\"; } }\n.glyphicon-tree-deciduous         { &:before { content: \"\\e200\"; } }\n","//\n// Scaffolding\n// --------------------------------------------------\n\n\n// Reset the box-sizing\n//\n// Heads up! This reset may cause conflicts with some third-party widgets.\n// For recommendations on resolving such conflicts, see\n// http://getbootstrap.com/getting-started/#third-box-sizing\n* {\n  .box-sizing(border-box);\n}\n*:before,\n*:after {\n  .box-sizing(border-box);\n}\n\n\n// Body reset\n\nhtml {\n  font-size: 10px;\n  -webkit-tap-highlight-color: rgba(0,0,0,0);\n}\n\nbody {\n  font-family: @font-family-base;\n  font-size: @font-size-base;\n  line-height: @line-height-base;\n  color: @text-color;\n  background-color: @body-bg;\n}\n\n// Reset fonts for relevant elements\ninput,\nbutton,\nselect,\ntextarea {\n  font-family: inherit;\n  font-size: inherit;\n  line-height: inherit;\n}\n\n\n// Links\n\na {\n  color: @link-color;\n  text-decoration: none;\n\n  &:hover,\n  &:focus {\n    color: @link-hover-color;\n    text-decoration: @link-hover-decoration;\n  }\n\n  &:focus {\n    .tab-focus();\n  }\n}\n\n\n// Figures\n//\n// We reset this here because previously Normalize had no `figure` margins. This\n// ensures we don't break anyone's use of the element.\n\nfigure {\n  margin: 0;\n}\n\n\n// Images\n\nimg {\n  vertical-align: middle;\n}\n\n// Responsive images (ensure images don't scale beyond their parents)\n.img-responsive {\n  .img-responsive();\n}\n\n// Rounded corners\n.img-rounded {\n  border-radius: @border-radius-large;\n}\n\n// Image thumbnails\n//\n// Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`.\n.img-thumbnail {\n  padding: @thumbnail-padding;\n  line-height: @line-height-base;\n  background-color: @thumbnail-bg;\n  border: 1px solid @thumbnail-border;\n  border-radius: @thumbnail-border-radius;\n  .transition(all .2s ease-in-out);\n\n  // Keep them at most 100% wide\n  .img-responsive(inline-block);\n}\n\n// Perfect circle\n.img-circle {\n  border-radius: 50%; // set radius in percents\n}\n\n\n// Horizontal rules\n\nhr {\n  margin-top:    @line-height-computed;\n  margin-bottom: @line-height-computed;\n  border: 0;\n  border-top: 1px solid @hr-border;\n}\n\n\n// Only display content to screen readers\n//\n// See: http://a11yproject.com/posts/how-to-hide-content/\n\n.sr-only {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  margin: -1px;\n  padding: 0;\n  overflow: hidden;\n  clip: rect(0,0,0,0);\n  border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n// Useful for \"Skip to main content\" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n// Credit: HTML5 Boilerplate\n\n.sr-only-focusable {\n  &:active,\n  &:focus {\n    position: static;\n    width: auto;\n    height: auto;\n    margin: 0;\n    overflow: visible;\n    clip: auto;\n  }\n}\n","// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They will be removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n.animation(@animation) {\n  -webkit-animation: @animation;\n       -o-animation: @animation;\n          animation: @animation;\n}\n.animation-name(@name) {\n  -webkit-animation-name: @name;\n          animation-name: @name;\n}\n.animation-duration(@duration) {\n  -webkit-animation-duration: @duration;\n          animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n  -webkit-animation-timing-function: @timing-function;\n          animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n  -webkit-animation-delay: @delay;\n          animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n  -webkit-animation-iteration-count: @iteration-count;\n          animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n  -webkit-animation-direction: @direction;\n          animation-direction: @direction;\n}\n.animation-fill-mode(@fill-mode) {\n  -webkit-animation-fill-mode: @fill-mode;\n          animation-fill-mode: @fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n.backface-visibility(@visibility){\n  -webkit-backface-visibility: @visibility;\n     -moz-backface-visibility: @visibility;\n          backface-visibility: @visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n.box-shadow(@shadow) {\n  -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n          box-shadow: @shadow;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n  -webkit-box-sizing: @boxmodel;\n     -moz-box-sizing: @boxmodel;\n          box-sizing: @boxmodel;\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n  -webkit-column-count: @column-count;\n     -moz-column-count: @column-count;\n          column-count: @column-count;\n  -webkit-column-gap: @column-gap;\n     -moz-column-gap: @column-gap;\n          column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n  word-wrap: break-word;\n  -webkit-hyphens: @mode;\n     -moz-hyphens: @mode;\n      -ms-hyphens: @mode; // IE10+\n       -o-hyphens: @mode;\n          hyphens: @mode;\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n  // Firefox\n  &::-moz-placeholder {\n    color: @color;\n    opacity: 1; // See https://github.com/twbs/bootstrap/pull/11526\n  }\n  &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n  &::-webkit-input-placeholder  { color: @color; } // Safari and Chrome\n}\n\n// Transformations\n.scale(@ratio) {\n  -webkit-transform: scale(@ratio);\n      -ms-transform: scale(@ratio); // IE9 only\n       -o-transform: scale(@ratio);\n          transform: scale(@ratio);\n}\n.scale(@ratioX; @ratioY) {\n  -webkit-transform: scale(@ratioX, @ratioY);\n      -ms-transform: scale(@ratioX, @ratioY); // IE9 only\n       -o-transform: scale(@ratioX, @ratioY);\n          transform: scale(@ratioX, @ratioY);\n}\n.scaleX(@ratio) {\n  -webkit-transform: scaleX(@ratio);\n      -ms-transform: scaleX(@ratio); // IE9 only\n       -o-transform: scaleX(@ratio);\n          transform: scaleX(@ratio);\n}\n.scaleY(@ratio) {\n  -webkit-transform: scaleY(@ratio);\n      -ms-transform: scaleY(@ratio); // IE9 only\n       -o-transform: scaleY(@ratio);\n          transform: scaleY(@ratio);\n}\n.skew(@x; @y) {\n  -webkit-transform: skewX(@x) skewY(@y);\n      -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n       -o-transform: skewX(@x) skewY(@y);\n          transform: skewX(@x) skewY(@y);\n}\n.translate(@x; @y) {\n  -webkit-transform: translate(@x, @y);\n      -ms-transform: translate(@x, @y); // IE9 only\n       -o-transform: translate(@x, @y);\n          transform: translate(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n  -webkit-transform: translate3d(@x, @y, @z);\n          transform: translate3d(@x, @y, @z);\n}\n.rotate(@degrees) {\n  -webkit-transform: rotate(@degrees);\n      -ms-transform: rotate(@degrees); // IE9 only\n       -o-transform: rotate(@degrees);\n          transform: rotate(@degrees);\n}\n.rotateX(@degrees) {\n  -webkit-transform: rotateX(@degrees);\n      -ms-transform: rotateX(@degrees); // IE9 only\n       -o-transform: rotateX(@degrees);\n          transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n  -webkit-transform: rotateY(@degrees);\n      -ms-transform: rotateY(@degrees); // IE9 only\n       -o-transform: rotateY(@degrees);\n          transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n  -webkit-perspective: @perspective;\n     -moz-perspective: @perspective;\n          perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n  -webkit-perspective-origin: @perspective;\n     -moz-perspective-origin: @perspective;\n          perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n  -webkit-transform-origin: @origin;\n     -moz-transform-origin: @origin;\n      -ms-transform-origin: @origin; // IE9 only\n          transform-origin: @origin;\n}\n\n\n// Transitions\n\n.transition(@transition) {\n  -webkit-transition: @transition;\n       -o-transition: @transition;\n          transition: @transition;\n}\n.transition-property(@transition-property) {\n  -webkit-transition-property: @transition-property;\n          transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n  -webkit-transition-delay: @transition-delay;\n          transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n  -webkit-transition-duration: @transition-duration;\n          transition-duration: @transition-duration;\n}\n.transition-timing-function(@timing-function) {\n  -webkit-transition-timing-function: @timing-function;\n          transition-timing-function: @timing-function;\n}\n.transition-transform(@transition) {\n  -webkit-transition: -webkit-transform @transition;\n     -moz-transition: -moz-transform @transition;\n       -o-transition: -o-transform @transition;\n          transition: transform @transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n.user-select(@select) {\n  -webkit-user-select: @select;\n     -moz-user-select: @select;\n      -ms-user-select: @select; // IE10+\n          user-select: @select;\n}\n","// WebKit-style focus\n\n.tab-focus() {\n  // Default\n  outline: thin dotted;\n  // WebKit\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px;\n}\n","// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n.img-responsive(@display: block) {\n  display: @display;\n  max-width: 100%; // Part 1: Set a maximum relative to the parent\n  height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size. Note that the\n// spelling of `min--moz-device-pixel-ratio` is intentional.\n.img-retina(@file-1x; @file-2x; @width-1x; @height-1x) {\n  background-image: url(\"@{file-1x}\");\n\n  @media\n  only screen and (-webkit-min-device-pixel-ratio: 2),\n  only screen and (   min--moz-device-pixel-ratio: 2),\n  only screen and (     -o-min-device-pixel-ratio: 2/1),\n  only screen and (        min-device-pixel-ratio: 2),\n  only screen and (                min-resolution: 192dpi),\n  only screen and (                min-resolution: 2dppx) {\n    background-image: url(\"@{file-2x}\");\n    background-size: @width-1x @height-1x;\n  }\n}\n","//\n// Typography\n// --------------------------------------------------\n\n\n// Headings\n// -------------------------\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n  font-family: @headings-font-family;\n  font-weight: @headings-font-weight;\n  line-height: @headings-line-height;\n  color: @headings-color;\n\n  small,\n  .small {\n    font-weight: normal;\n    line-height: 1;\n    color: @headings-small-color;\n  }\n}\n\nh1, .h1,\nh2, .h2,\nh3, .h3 {\n  margin-top: @line-height-computed;\n  margin-bottom: (@line-height-computed / 2);\n\n  small,\n  .small {\n    font-size: 65%;\n  }\n}\nh4, .h4,\nh5, .h5,\nh6, .h6 {\n  margin-top: (@line-height-computed / 2);\n  margin-bottom: (@line-height-computed / 2);\n\n  small,\n  .small {\n    font-size: 75%;\n  }\n}\n\nh1, .h1 { font-size: @font-size-h1; }\nh2, .h2 { font-size: @font-size-h2; }\nh3, .h3 { font-size: @font-size-h3; }\nh4, .h4 { font-size: @font-size-h4; }\nh5, .h5 { font-size: @font-size-h5; }\nh6, .h6 { font-size: @font-size-h6; }\n\n\n// Body text\n// -------------------------\n\np {\n  margin: 0 0 (@line-height-computed / 2);\n}\n\n.lead {\n  margin-bottom: @line-height-computed;\n  font-size: floor((@font-size-base * 1.15));\n  font-weight: 300;\n  line-height: 1.4;\n\n  @media (min-width: @screen-sm-min) {\n    font-size: (@font-size-base * 1.5);\n  }\n}\n\n\n// Emphasis & misc\n// -------------------------\n\n// Ex: (12px small font / 14px base font) * 100% = about 85%\nsmall,\n.small {\n  font-size: floor((100% * @font-size-small / @font-size-base));\n}\n\nmark,\n.mark {\n  background-color: @state-warning-bg;\n  padding: .2em;\n}\n\n// Alignment\n.text-left           { text-align: left; }\n.text-right          { text-align: right; }\n.text-center         { text-align: center; }\n.text-justify        { text-align: justify; }\n.text-nowrap         { white-space: nowrap; }\n\n// Transformation\n.text-lowercase      { text-transform: lowercase; }\n.text-uppercase      { text-transform: uppercase; }\n.text-capitalize     { text-transform: capitalize; }\n\n// Contextual colors\n.text-muted {\n  color: @text-muted;\n}\n.text-primary {\n  .text-emphasis-variant(@brand-primary);\n}\n.text-success {\n  .text-emphasis-variant(@state-success-text);\n}\n.text-info {\n  .text-emphasis-variant(@state-info-text);\n}\n.text-warning {\n  .text-emphasis-variant(@state-warning-text);\n}\n.text-danger {\n  .text-emphasis-variant(@state-danger-text);\n}\n\n// Contextual backgrounds\n// For now we'll leave these alongside the text classes until v4 when we can\n// safely shift things around (per SemVer rules).\n.bg-primary {\n  // Given the contrast here, this is the only class to have its color inverted\n  // automatically.\n  color: #fff;\n  .bg-variant(@brand-primary);\n}\n.bg-success {\n  .bg-variant(@state-success-bg);\n}\n.bg-info {\n  .bg-variant(@state-info-bg);\n}\n.bg-warning {\n  .bg-variant(@state-warning-bg);\n}\n.bg-danger {\n  .bg-variant(@state-danger-bg);\n}\n\n\n// Page header\n// -------------------------\n\n.page-header {\n  padding-bottom: ((@line-height-computed / 2) - 1);\n  margin: (@line-height-computed * 2) 0 @line-height-computed;\n  border-bottom: 1px solid @page-header-border-color;\n}\n\n\n// Lists\n// -------------------------\n\n// Unordered and Ordered lists\nul,\nol {\n  margin-top: 0;\n  margin-bottom: (@line-height-computed / 2);\n  ul,\n  ol {\n    margin-bottom: 0;\n  }\n}\n\n// List options\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n.list-unstyled {\n  padding-left: 0;\n  list-style: none;\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n  .list-unstyled();\n  margin-left: -5px;\n\n  > li {\n    display: inline-block;\n    padding-left: 5px;\n    padding-right: 5px;\n  }\n}\n\n// Description Lists\ndl {\n  margin-top: 0; // Remove browser default\n  margin-bottom: @line-height-computed;\n}\ndt,\ndd {\n  line-height: @line-height-base;\n}\ndt {\n  font-weight: bold;\n}\ndd {\n  margin-left: 0; // Undo browser default\n}\n\n// Horizontal description lists\n//\n// Defaults to being stacked without any of the below styles applied, until the\n// grid breakpoint is reached (default of ~768px).\n\n.dl-horizontal {\n  dd {\n    &:extend(.clearfix all); // Clear the floated `dt` if an empty `dd` is present\n  }\n\n  @media (min-width: @grid-float-breakpoint) {\n    dt {\n      float: left;\n      width: (@dl-horizontal-offset - 20);\n      clear: left;\n      text-align: right;\n      .text-overflow();\n    }\n    dd {\n      margin-left: @dl-horizontal-offset;\n    }\n  }\n}\n\n\n// Misc\n// -------------------------\n\n// Abbreviations and acronyms\nabbr[title],\n// Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257\nabbr[data-original-title] {\n  cursor: help;\n  border-bottom: 1px dotted @abbr-border-color;\n}\n.initialism {\n  font-size: 90%;\n  text-transform: uppercase;\n}\n\n// Blockquotes\nblockquote {\n  padding: (@line-height-computed / 2) @line-height-computed;\n  margin: 0 0 @line-height-computed;\n  font-size: @blockquote-font-size;\n  border-left: 5px solid @blockquote-border-color;\n\n  p,\n  ul,\n  ol {\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n\n  // Note: Deprecated small and .small as of v3.1.0\n  // Context: https://github.com/twbs/bootstrap/issues/11660\n  footer,\n  small,\n  .small {\n    display: block;\n    font-size: 80%; // back to default font-size\n    line-height: @line-height-base;\n    color: @blockquote-small-color;\n\n    &:before {\n      content: '\\2014 \\00A0'; // em dash, nbsp\n    }\n  }\n}\n\n// Opposite alignment of blockquote\n//\n// Heads up: `blockquote.pull-right` has been deprecated as of v3.1.0.\n.blockquote-reverse,\nblockquote.pull-right {\n  padding-right: 15px;\n  padding-left: 0;\n  border-right: 5px solid @blockquote-border-color;\n  border-left: 0;\n  text-align: right;\n\n  // Account for citation\n  footer,\n  small,\n  .small {\n    &:before { content: ''; }\n    &:after {\n      content: '\\00A0 \\2014'; // nbsp, em dash\n    }\n  }\n}\n\n// Addresses\naddress {\n  margin-bottom: @line-height-computed;\n  font-style: normal;\n  line-height: @line-height-base;\n}\n","// Typography\n\n.text-emphasis-variant(@color) {\n  color: @color;\n  a&:hover {\n    color: darken(@color, 10%);\n  }\n}\n","// Contextual backgrounds\n\n.bg-variant(@color) {\n  background-color: @color;\n  a&:hover {\n    background-color: darken(@color, 10%);\n  }\n}\n","// Text overflow\n// Requires inline-block or block for proper styling\n\n.text-overflow() {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n","//\n// Code (inline and block)\n// --------------------------------------------------\n\n\n// Inline and block code styles\ncode,\nkbd,\npre,\nsamp {\n  font-family: @font-family-monospace;\n}\n\n// Inline code\ncode {\n  padding: 2px 4px;\n  font-size: 90%;\n  color: @code-color;\n  background-color: @code-bg;\n  border-radius: @border-radius-base;\n}\n\n// User input typically entered via keyboard\nkbd {\n  padding: 2px 4px;\n  font-size: 90%;\n  color: @kbd-color;\n  background-color: @kbd-bg;\n  border-radius: @border-radius-small;\n  box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);\n\n  kbd {\n    padding: 0;\n    font-size: 100%;\n    font-weight: bold;\n    box-shadow: none;\n  }\n}\n\n// Blocks of code\npre {\n  display: block;\n  padding: ((@line-height-computed - 1) / 2);\n  margin: 0 0 (@line-height-computed / 2);\n  font-size: (@font-size-base - 1); // 14px to 13px\n  line-height: @line-height-base;\n  word-break: break-all;\n  word-wrap: break-word;\n  color: @pre-color;\n  background-color: @pre-bg;\n  border: 1px solid @pre-border-color;\n  border-radius: @border-radius-base;\n\n  // Account for some code outputs that place code tags in pre tags\n  code {\n    padding: 0;\n    font-size: inherit;\n    color: inherit;\n    white-space: pre-wrap;\n    background-color: transparent;\n    border-radius: 0;\n  }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n  max-height: @pre-scrollable-max-height;\n  overflow-y: scroll;\n}\n","//\n// Grid system\n// --------------------------------------------------\n\n\n// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n.container {\n  .container-fixed();\n\n  @media (min-width: @screen-sm-min) {\n    width: @container-sm;\n  }\n  @media (min-width: @screen-md-min) {\n    width: @container-md;\n  }\n  @media (min-width: @screen-lg-min) {\n    width: @container-lg;\n  }\n}\n\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but without any defined\n// width for fluid, full width layouts.\n\n.container-fluid {\n  .container-fixed();\n}\n\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n.row {\n  .make-row();\n}\n\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n.make-grid-columns();\n\n\n// Extra small grid\n//\n// Columns, offsets, pushes, and pulls for extra small devices like\n// smartphones.\n\n.make-grid(xs);\n\n\n// Small grid\n//\n// Columns, offsets, pushes, and pulls for the small device range, from phones\n// to tablets.\n\n@media (min-width: @screen-sm-min) {\n  .make-grid(sm);\n}\n\n\n// Medium grid\n//\n// Columns, offsets, pushes, and pulls for the desktop device range.\n\n@media (min-width: @screen-md-min) {\n  .make-grid(md);\n}\n\n\n// Large grid\n//\n// Columns, offsets, pushes, and pulls for the large desktop device range.\n\n@media (min-width: @screen-lg-min) {\n  .make-grid(lg);\n}\n","// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n// Centered container element\n.container-fixed(@gutter: @grid-gutter-width) {\n  margin-right: auto;\n  margin-left: auto;\n  padding-left:  (@gutter / 2);\n  padding-right: (@gutter / 2);\n  &:extend(.clearfix all);\n}\n\n// Creates a wrapper for a series of columns\n.make-row(@gutter: @grid-gutter-width) {\n  margin-left:  (@gutter / -2);\n  margin-right: (@gutter / -2);\n  &:extend(.clearfix all);\n}\n\n// Generate the extra small columns\n.make-xs-column(@columns; @gutter: @grid-gutter-width) {\n  position: relative;\n  float: left;\n  width: percentage((@columns / @grid-columns));\n  min-height: 1px;\n  padding-left:  (@gutter / 2);\n  padding-right: (@gutter / 2);\n}\n.make-xs-column-offset(@columns) {\n  margin-left: percentage((@columns / @grid-columns));\n}\n.make-xs-column-push(@columns) {\n  left: percentage((@columns / @grid-columns));\n}\n.make-xs-column-pull(@columns) {\n  right: percentage((@columns / @grid-columns));\n}\n\n// Generate the small columns\n.make-sm-column(@columns; @gutter: @grid-gutter-width) {\n  position: relative;\n  min-height: 1px;\n  padding-left:  (@gutter / 2);\n  padding-right: (@gutter / 2);\n\n  @media (min-width: @screen-sm-min) {\n    float: left;\n    width: percentage((@columns / @grid-columns));\n  }\n}\n.make-sm-column-offset(@columns) {\n  @media (min-width: @screen-sm-min) {\n    margin-left: percentage((@columns / @grid-columns));\n  }\n}\n.make-sm-column-push(@columns) {\n  @media (min-width: @screen-sm-min) {\n    left: percentage((@columns / @grid-columns));\n  }\n}\n.make-sm-column-pull(@columns) {\n  @media (min-width: @screen-sm-min) {\n    right: percentage((@columns / @grid-columns));\n  }\n}\n\n// Generate the medium columns\n.make-md-column(@columns; @gutter: @grid-gutter-width) {\n  position: relative;\n  min-height: 1px;\n  padding-left:  (@gutter / 2);\n  padding-right: (@gutter / 2);\n\n  @media (min-width: @screen-md-min) {\n    float: left;\n    width: percentage((@columns / @grid-columns));\n  }\n}\n.make-md-column-offset(@columns) {\n  @media (min-width: @screen-md-min) {\n    margin-left: percentage((@columns / @grid-columns));\n  }\n}\n.make-md-column-push(@columns) {\n  @media (min-width: @screen-md-min) {\n    left: percentage((@columns / @grid-columns));\n  }\n}\n.make-md-column-pull(@columns) {\n  @media (min-width: @screen-md-min) {\n    right: percentage((@columns / @grid-columns));\n  }\n}\n\n// Generate the large columns\n.make-lg-column(@columns; @gutter: @grid-gutter-width) {\n  position: relative;\n  min-height: 1px;\n  padding-left:  (@gutter / 2);\n  padding-right: (@gutter / 2);\n\n  @media (min-width: @screen-lg-min) {\n    float: left;\n    width: percentage((@columns / @grid-columns));\n  }\n}\n.make-lg-column-offset(@columns) {\n  @media (min-width: @screen-lg-min) {\n    margin-left: percentage((@columns / @grid-columns));\n  }\n}\n.make-lg-column-push(@columns) {\n  @media (min-width: @screen-lg-min) {\n    left: percentage((@columns / @grid-columns));\n  }\n}\n.make-lg-column-pull(@columns) {\n  @media (min-width: @screen-lg-min) {\n    right: percentage((@columns / @grid-columns));\n  }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `@grid-columns`.\n\n.make-grid-columns() {\n  // Common styles for all sizes of grid columns, widths 1-12\n  .col(@index) { // initial\n    @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n    .col((@index + 1), @item);\n  }\n  .col(@index, @list) when (@index =< @grid-columns) { // general; \"=<\" isn't a typo\n    @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n    .col((@index + 1), ~\"@{list}, @{item}\");\n  }\n  .col(@index, @list) when (@index > @grid-columns) { // terminal\n    @{list} {\n      position: relative;\n      // Prevent columns from collapsing when empty\n      min-height: 1px;\n      // Inner gutter via padding\n      padding-left:  (@grid-gutter-width / 2);\n      padding-right: (@grid-gutter-width / 2);\n    }\n  }\n  .col(1); // kickstart it\n}\n\n.float-grid-columns(@class) {\n  .col(@index) { // initial\n    @item: ~\".col-@{class}-@{index}\";\n    .col((@index + 1), @item);\n  }\n  .col(@index, @list) when (@index =< @grid-columns) { // general\n    @item: ~\".col-@{class}-@{index}\";\n    .col((@index + 1), ~\"@{list}, @{item}\");\n  }\n  .col(@index, @list) when (@index > @grid-columns) { // terminal\n    @{list} {\n      float: left;\n    }\n  }\n  .col(1); // kickstart it\n}\n\n.calc-grid-column(@index, @class, @type) when (@type = width) and (@index > 0) {\n  .col-@{class}-@{index} {\n    width: percentage((@index / @grid-columns));\n  }\n}\n.calc-grid-column(@index, @class, @type) when (@type = push) and (@index > 0) {\n  .col-@{class}-push-@{index} {\n    left: percentage((@index / @grid-columns));\n  }\n}\n.calc-grid-column(@index, @class, @type) when (@type = push) and (@index = 0) {\n  .col-@{class}-push-0 {\n    left: auto;\n  }\n}\n.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index > 0) {\n  .col-@{class}-pull-@{index} {\n    right: percentage((@index / @grid-columns));\n  }\n}\n.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index = 0) {\n  .col-@{class}-pull-0 {\n    right: auto;\n  }\n}\n.calc-grid-column(@index, @class, @type) when (@type = offset) {\n  .col-@{class}-offset-@{index} {\n    margin-left: percentage((@index / @grid-columns));\n  }\n}\n\n// Basic looping in LESS\n.loop-grid-columns(@index, @class, @type) when (@index >= 0) {\n  .calc-grid-column(@index, @class, @type);\n  // next iteration\n  .loop-grid-columns((@index - 1), @class, @type);\n}\n\n// Create grid for specific class\n.make-grid(@class) {\n  .float-grid-columns(@class);\n  .loop-grid-columns(@grid-columns, @class, width);\n  .loop-grid-columns(@grid-columns, @class, pull);\n  .loop-grid-columns(@grid-columns, @class, push);\n  .loop-grid-columns(@grid-columns, @class, offset);\n}\n","//\n// Tables\n// --------------------------------------------------\n\n\ntable {\n  background-color: @table-bg;\n}\ncaption {\n  padding-top: @table-cell-padding;\n  padding-bottom: @table-cell-padding;\n  color: @text-muted;\n  text-align: left;\n}\nth {\n  text-align: left;\n}\n\n\n// Baseline styles\n\n.table {\n  width: 100%;\n  max-width: 100%;\n  margin-bottom: @line-height-computed;\n  // Cells\n  > thead,\n  > tbody,\n  > tfoot {\n    > tr {\n      > th,\n      > td {\n        padding: @table-cell-padding;\n        line-height: @line-height-base;\n        vertical-align: top;\n        border-top: 1px solid @table-border-color;\n      }\n    }\n  }\n  // Bottom align for column headings\n  > thead > tr > th {\n    vertical-align: bottom;\n    border-bottom: 2px solid @table-border-color;\n  }\n  // Remove top border from thead by default\n  > caption + thead,\n  > colgroup + thead,\n  > thead:first-child {\n    > tr:first-child {\n      > th,\n      > td {\n        border-top: 0;\n      }\n    }\n  }\n  // Account for multiple tbody instances\n  > tbody + tbody {\n    border-top: 2px solid @table-border-color;\n  }\n\n  // Nesting\n  .table {\n    background-color: @body-bg;\n  }\n}\n\n\n// Condensed table w/ half padding\n\n.table-condensed {\n  > thead,\n  > tbody,\n  > tfoot {\n    > tr {\n      > th,\n      > td {\n        padding: @table-condensed-cell-padding;\n      }\n    }\n  }\n}\n\n\n// Bordered version\n//\n// Add borders all around the table and between all the columns.\n\n.table-bordered {\n  border: 1px solid @table-border-color;\n  > thead,\n  > tbody,\n  > tfoot {\n    > tr {\n      > th,\n      > td {\n        border: 1px solid @table-border-color;\n      }\n    }\n  }\n  > thead > tr {\n    > th,\n    > td {\n      border-bottom-width: 2px;\n    }\n  }\n}\n\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n  > tbody > tr:nth-child(odd) {\n    background-color: @table-bg-accent;\n  }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n  > tbody > tr:hover {\n    background-color: @table-bg-hover;\n  }\n}\n\n\n// Table cell sizing\n//\n// Reset default table behavior\n\ntable col[class*=\"col-\"] {\n  position: static; // Prevent border hiding in Firefox and IE9/10 (see https://github.com/twbs/bootstrap/issues/11623)\n  float: none;\n  display: table-column;\n}\ntable {\n  td,\n  th {\n    &[class*=\"col-\"] {\n      position: static; // Prevent border hiding in Firefox and IE9/10 (see https://github.com/twbs/bootstrap/issues/11623)\n      float: none;\n      display: table-cell;\n    }\n  }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n// Generate the contextual variants\n.table-row-variant(active; @table-bg-active);\n.table-row-variant(success; @state-success-bg);\n.table-row-variant(info; @state-info-bg);\n.table-row-variant(warning; @state-warning-bg);\n.table-row-variant(danger; @state-danger-bg);\n\n\n// Responsive tables\n//\n// Wrap your tables in `.table-responsive` and we'll make them mobile friendly\n// by enabling horizontal scrolling. Only applies <768px. Everything above that\n// will display normally.\n\n.table-responsive {\n  overflow-x: auto;\n  min-height: 0.01%; // Workaround for IE9 bug (see https://github.com/twbs/bootstrap/issues/14837)\n\n  @media screen and (max-width: @screen-xs-max) {\n    width: 100%;\n    margin-bottom: (@line-height-computed * 0.75);\n    overflow-y: hidden;\n    -ms-overflow-style: -ms-autohiding-scrollbar;\n    border: 1px solid @table-border-color;\n\n    // Tighten up spacing\n    > .table {\n      margin-bottom: 0;\n\n      // Ensure the content doesn't wrap\n      > thead,\n      > tbody,\n      > tfoot {\n        > tr {\n          > th,\n          > td {\n            white-space: nowrap;\n          }\n        }\n      }\n    }\n\n    // Special overrides for the bordered tables\n    > .table-bordered {\n      border: 0;\n\n      // Nuke the appropriate borders so that the parent can handle them\n      > thead,\n      > tbody,\n      > tfoot {\n        > tr {\n          > th:first-child,\n          > td:first-child {\n            border-left: 0;\n          }\n          > th:last-child,\n          > td:last-child {\n            border-right: 0;\n          }\n        }\n      }\n\n      // Only nuke the last row's bottom-border in `tbody` and `tfoot` since\n      // chances are there will be only one `tr` in a `thead` and that would\n      // remove the border altogether.\n      > tbody,\n      > tfoot {\n        > tr:last-child {\n          > th,\n          > td {\n            border-bottom: 0;\n          }\n        }\n      }\n\n    }\n  }\n}\n","// Tables\n\n.table-row-variant(@state; @background) {\n  // Exact selectors below required to override `.table-striped` and prevent\n  // inheritance to nested tables.\n  .table > thead > tr,\n  .table > tbody > tr,\n  .table > tfoot > tr {\n    > td.@{state},\n    > th.@{state},\n    &.@{state} > td,\n    &.@{state} > th {\n      background-color: @background;\n    }\n  }\n\n  // Hover states for `.table-hover`\n  // Note: this is not available for cells or rows within `thead` or `tfoot`.\n  .table-hover > tbody > tr {\n    > td.@{state}:hover,\n    > th.@{state}:hover,\n    &.@{state}:hover > td,\n    &:hover > .@{state},\n    &.@{state}:hover > th {\n      background-color: darken(@background, 5%);\n    }\n  }\n}\n","//\n// Forms\n// --------------------------------------------------\n\n\n// Normalize non-controls\n//\n// Restyle and baseline non-control form elements.\n\nfieldset {\n  padding: 0;\n  margin: 0;\n  border: 0;\n  // Chrome and Firefox set a `min-width: min-content;` on fieldsets,\n  // so we reset that to ensure it behaves more like a standard block element.\n  // See https://github.com/twbs/bootstrap/issues/12359.\n  min-width: 0;\n}\n\nlegend {\n  display: block;\n  width: 100%;\n  padding: 0;\n  margin-bottom: @line-height-computed;\n  font-size: (@font-size-base * 1.5);\n  line-height: inherit;\n  color: @legend-color;\n  border: 0;\n  border-bottom: 1px solid @legend-border-color;\n}\n\nlabel {\n  display: inline-block;\n  max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141)\n  margin-bottom: 5px;\n  font-weight: bold;\n}\n\n\n// Normalize form controls\n//\n// While most of our form styles require extra classes, some basic normalization\n// is required to ensure optimum display with or without those classes to better\n// address browser inconsistencies.\n\n// Override content-box in Normalize (* isn't specific enough)\ninput[type=\"search\"] {\n  .box-sizing(border-box);\n}\n\n// Position radios and checkboxes better\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  margin: 4px 0 0;\n  margin-top: 1px \\9; // IE8-9\n  line-height: normal;\n}\n\n// Set the height of file controls to match text inputs\ninput[type=\"file\"] {\n  display: block;\n}\n\n// Make range inputs behave like textual form controls\ninput[type=\"range\"] {\n  display: block;\n  width: 100%;\n}\n\n// Make multiple select elements height not fixed\nselect[multiple],\nselect[size] {\n  height: auto;\n}\n\n// Focus for file, radio, and checkbox\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n  .tab-focus();\n}\n\n// Adjust output element\noutput {\n  display: block;\n  padding-top: (@padding-base-vertical + 1);\n  font-size: @font-size-base;\n  line-height: @line-height-base;\n  color: @input-color;\n}\n\n\n// Common form controls\n//\n// Shared size and type resets for form controls. Apply `.form-control` to any\n// of the following form controls:\n//\n// select\n// textarea\n// input[type=\"text\"]\n// input[type=\"password\"]\n// input[type=\"datetime\"]\n// input[type=\"datetime-local\"]\n// input[type=\"date\"]\n// input[type=\"month\"]\n// input[type=\"time\"]\n// input[type=\"week\"]\n// input[type=\"number\"]\n// input[type=\"email\"]\n// input[type=\"url\"]\n// input[type=\"search\"]\n// input[type=\"tel\"]\n// input[type=\"color\"]\n\n.form-control {\n  display: block;\n  width: 100%;\n  height: @input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)\n  padding: @padding-base-vertical @padding-base-horizontal;\n  font-size: @font-size-base;\n  line-height: @line-height-base;\n  color: @input-color;\n  background-color: @input-bg;\n  background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n  border: 1px solid @input-border;\n  border-radius: @input-border-radius;\n  .box-shadow(inset 0 1px 1px rgba(0,0,0,.075));\n  .transition(~\"border-color ease-in-out .15s, box-shadow ease-in-out .15s\");\n\n  // Customize the `:focus` state to imitate native WebKit styles.\n  .form-control-focus();\n\n  // Placeholder\n  .placeholder();\n\n  // Disabled and read-only inputs\n  //\n  // HTML5 says that controls under a fieldset > legend:first-child won't be\n  // disabled if the fieldset is disabled. Due to implementation difficulty, we\n  // don't honor that edge case; we style them as disabled anyway.\n  &[disabled],\n  &[readonly],\n  fieldset[disabled] & {\n    cursor: @cursor-disabled;\n    background-color: @input-bg-disabled;\n    opacity: 1; // iOS fix for unreadable disabled content\n  }\n\n  // Reset height for `textarea`s\n  textarea& {\n    height: auto;\n  }\n}\n\n\n// Search inputs in iOS\n//\n// This overrides the extra rounded corners on search inputs in iOS so that our\n// `.form-control` class can properly style them. Note that this cannot simply\n// be added to `.form-control` as it's not specific enough. For details, see\n// https://github.com/twbs/bootstrap/issues/11586.\n\ninput[type=\"search\"] {\n  -webkit-appearance: none;\n}\n\n\n// Special styles for iOS temporal inputs\n//\n// In Mobile Safari, setting `display: block` on temporal inputs causes the\n// text within the input to become vertically misaligned. As a workaround, we\n// set a pixel line-height that matches the given height of the input, but only\n// for Safari.\n\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\n  input[type=\"date\"],\n  input[type=\"time\"],\n  input[type=\"datetime-local\"],\n  input[type=\"month\"] {\n    line-height: @input-height-base;\n  }\n  input[type=\"date\"].input-sm,\n  input[type=\"time\"].input-sm,\n  input[type=\"datetime-local\"].input-sm,\n  input[type=\"month\"].input-sm {\n    line-height: @input-height-small;\n  }\n  input[type=\"date\"].input-lg,\n  input[type=\"time\"].input-lg,\n  input[type=\"datetime-local\"].input-lg,\n  input[type=\"month\"].input-lg {\n    line-height: @input-height-large;\n  }\n}\n\n\n// Form groups\n//\n// Designed to help with the organization and spacing of vertical forms. For\n// horizontal forms, use the predefined grid classes.\n\n.form-group {\n  margin-bottom: 15px;\n}\n\n\n// Checkboxes and radios\n//\n// Indent the labels to position radios/checkboxes as hanging controls.\n\n.radio,\n.checkbox {\n  position: relative;\n  display: block;\n  margin-top: 10px;\n  margin-bottom: 10px;\n\n  label {\n    min-height: @line-height-computed; // Ensure the input doesn't jump when there is no text\n    padding-left: 20px;\n    margin-bottom: 0;\n    font-weight: normal;\n    cursor: pointer;\n  }\n}\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n  position: absolute;\n  margin-left: -20px;\n  margin-top: 4px \\9;\n}\n\n.radio + .radio,\n.checkbox + .checkbox {\n  margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing\n}\n\n// Radios and checkboxes on same line\n.radio-inline,\n.checkbox-inline {\n  display: inline-block;\n  padding-left: 20px;\n  margin-bottom: 0;\n  vertical-align: middle;\n  font-weight: normal;\n  cursor: pointer;\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n  margin-top: 0;\n  margin-left: 10px; // space out consecutive inline controls\n}\n\n// Apply same disabled cursor tweak as for inputs\n// Some special care is needed because <label>s don't inherit their parent's `cursor`.\n//\n// Note: Neither radios nor checkboxes can be readonly.\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  &[disabled],\n  &.disabled,\n  fieldset[disabled] & {\n    cursor: @cursor-disabled;\n  }\n}\n// These classes are used directly on <label>s\n.radio-inline,\n.checkbox-inline {\n  &.disabled,\n  fieldset[disabled] & {\n    cursor: @cursor-disabled;\n  }\n}\n// These classes are used on elements with <label> descendants\n.radio,\n.checkbox {\n  &.disabled,\n  fieldset[disabled] & {\n    label {\n      cursor: @cursor-disabled;\n    }\n  }\n}\n\n\n// Static form control text\n//\n// Apply class to a `p` element to make any string of text align with labels in\n// a horizontal form layout.\n\n.form-control-static {\n  // Size it appropriately next to real form controls\n  padding-top: (@padding-base-vertical + 1);\n  padding-bottom: (@padding-base-vertical + 1);\n  // Remove default margin from `p`\n  margin-bottom: 0;\n\n  &.input-lg,\n  &.input-sm {\n    padding-left: 0;\n    padding-right: 0;\n  }\n}\n\n\n// Form control sizing\n//\n// Build on `.form-control` with modifier classes to decrease or increase the\n// height and font-size of form controls.\n\n.input-sm,\n.form-group-sm .form-control {\n  .input-size(@input-height-small; @padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @input-border-radius-small);\n}\n\n.input-lg,\n.form-group-lg .form-control {\n  .input-size(@input-height-large; @padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @input-border-radius-large);\n}\n\n\n// Form control feedback states\n//\n// Apply contextual and semantic states to individual form controls.\n\n.has-feedback {\n  // Enable absolute positioning\n  position: relative;\n\n  // Ensure icons don't overlap text\n  .form-control {\n    padding-right: (@input-height-base * 1.25);\n  }\n}\n// Feedback icon (requires .glyphicon classes)\n.form-control-feedback {\n  position: absolute;\n  top: 0;\n  right: 0;\n  z-index: 2; // Ensure icon is above input groups\n  display: block;\n  width: @input-height-base;\n  height: @input-height-base;\n  line-height: @input-height-base;\n  text-align: center;\n  pointer-events: none;\n}\n.input-lg + .form-control-feedback {\n  width: @input-height-large;\n  height: @input-height-large;\n  line-height: @input-height-large;\n}\n.input-sm + .form-control-feedback {\n  width: @input-height-small;\n  height: @input-height-small;\n  line-height: @input-height-small;\n}\n\n// Feedback states\n.has-success {\n  .form-control-validation(@state-success-text; @state-success-text; @state-success-bg);\n}\n.has-warning {\n  .form-control-validation(@state-warning-text; @state-warning-text; @state-warning-bg);\n}\n.has-error {\n  .form-control-validation(@state-danger-text; @state-danger-text; @state-danger-bg);\n}\n\n// Reposition feedback icon if input has visible label above\n.has-feedback label {\n\n  & ~ .form-control-feedback {\n     top: (@line-height-computed + 5); // Height of the `label` and its margin\n  }\n  &.sr-only ~ .form-control-feedback {\n     top: 0;\n  }\n}\n\n\n// Help text\n//\n// Apply to any element you wish to create light text for placement immediately\n// below a form control. Use for general help, formatting, or instructional text.\n\n.help-block {\n  display: block; // account for any element using help-block\n  margin-top: 5px;\n  margin-bottom: 10px;\n  color: lighten(@text-color, 25%); // lighten the text some for contrast\n}\n\n\n// Inline forms\n//\n// Make forms appear inline(-block) by adding the `.form-inline` class. Inline\n// forms begin stacked on extra small (mobile) devices and then go inline when\n// viewports reach <768px.\n//\n// Requires wrapping inputs and labels with `.form-group` for proper display of\n// default HTML form controls and our custom form controls (e.g., input groups).\n//\n// Heads up! This is mixin-ed into `.navbar-form` in navbars.less.\n\n.form-inline {\n\n  // Kick in the inline\n  @media (min-width: @screen-sm-min) {\n    // Inline-block all the things for \"inline\"\n    .form-group {\n      display: inline-block;\n      margin-bottom: 0;\n      vertical-align: middle;\n    }\n\n    // In navbar-form, allow folks to *not* use `.form-group`\n    .form-control {\n      display: inline-block;\n      width: auto; // Prevent labels from stacking above inputs in `.form-group`\n      vertical-align: middle;\n    }\n\n    // Make static controls behave like regular ones\n    .form-control-static {\n      display: inline-block;\n    }\n\n    .input-group {\n      display: inline-table;\n      vertical-align: middle;\n\n      .input-group-addon,\n      .input-group-btn,\n      .form-control {\n        width: auto;\n      }\n    }\n\n    // Input groups need that 100% width though\n    .input-group > .form-control {\n      width: 100%;\n    }\n\n    .control-label {\n      margin-bottom: 0;\n      vertical-align: middle;\n    }\n\n    // Remove default margin on radios/checkboxes that were used for stacking, and\n    // then undo the floating of radios and checkboxes to match (which also avoids\n    // a bug in WebKit: https://github.com/twbs/bootstrap/issues/1969).\n    .radio,\n    .checkbox {\n      display: inline-block;\n      margin-top: 0;\n      margin-bottom: 0;\n      vertical-align: middle;\n\n      label {\n        padding-left: 0;\n      }\n    }\n    .radio input[type=\"radio\"],\n    .checkbox input[type=\"checkbox\"] {\n      position: relative;\n      margin-left: 0;\n    }\n\n    // Re-override the feedback icon.\n    .has-feedback .form-control-feedback {\n      top: 0;\n    }\n  }\n}\n\n\n// Horizontal forms\n//\n// Horizontal forms are built on grid classes and allow you to create forms with\n// labels on the left and inputs on the right.\n\n.form-horizontal {\n\n  // Consistent vertical alignment of radios and checkboxes\n  //\n  // Labels also get some reset styles, but that is scoped to a media query below.\n  .radio,\n  .checkbox,\n  .radio-inline,\n  .checkbox-inline {\n    margin-top: 0;\n    margin-bottom: 0;\n    padding-top: (@padding-base-vertical + 1); // Default padding plus a border\n  }\n  // Account for padding we're adding to ensure the alignment and of help text\n  // and other content below items\n  .radio,\n  .checkbox {\n    min-height: (@line-height-computed + (@padding-base-vertical + 1));\n  }\n\n  // Make form groups behave like rows\n  .form-group {\n    .make-row();\n  }\n\n  // Reset spacing and right align labels, but scope to media queries so that\n  // labels on narrow viewports stack the same as a default form example.\n  @media (min-width: @screen-sm-min) {\n    .control-label {\n      text-align: right;\n      margin-bottom: 0;\n      padding-top: (@padding-base-vertical + 1); // Default padding plus a border\n    }\n  }\n\n  // Validation states\n  //\n  // Reposition the icon because it's now within a grid column and columns have\n  // `position: relative;` on them. Also accounts for the grid gutter padding.\n  .has-feedback .form-control-feedback {\n    right: (@grid-gutter-width / 2);\n  }\n\n  // Form group sizes\n  //\n  // Quick utility class for applying `.input-lg` and `.input-sm` styles to the\n  // inputs and labels within a `.form-group`.\n  .form-group-lg {\n    @media (min-width: @screen-sm-min) {\n      .control-label {\n        padding-top: ((@padding-large-vertical * @line-height-large) + 1);\n      }\n    }\n  }\n  .form-group-sm {\n    @media (min-width: @screen-sm-min) {\n      .control-label {\n        padding-top: (@padding-small-vertical + 1);\n      }\n    }\n  }\n}\n","// Form validation states\n//\n// Used in forms.less to generate the form validation CSS for warnings, errors,\n// and successes.\n\n.form-control-validation(@text-color: #555; @border-color: #ccc; @background-color: #f5f5f5) {\n  // Color the label and help text\n  .help-block,\n  .control-label,\n  .radio,\n  .checkbox,\n  .radio-inline,\n  .checkbox-inline,\n  &.radio label,\n  &.checkbox label,\n  &.radio-inline label,\n  &.checkbox-inline label  {\n    color: @text-color;\n  }\n  // Set the border and box shadow on specific inputs to match\n  .form-control {\n    border-color: @border-color;\n    .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work\n    &:focus {\n      border-color: darken(@border-color, 10%);\n      @shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten(@border-color, 20%);\n      .box-shadow(@shadow);\n    }\n  }\n  // Set validation states also for addons\n  .input-group-addon {\n    color: @text-color;\n    border-color: @border-color;\n    background-color: @background-color;\n  }\n  // Optional feedback icon\n  .form-control-feedback {\n    color: @text-color;\n  }\n}\n\n\n// Form control focus state\n//\n// Generate a customized focus state and for any input with the specified color,\n// which defaults to the `@input-border-focus` variable.\n//\n// We highly encourage you to not customize the default value, but instead use\n// this to tweak colors on an as-needed basis. This aesthetic change is based on\n// WebKit's default styles, but applicable to a wider range of browsers. Its\n// usability and accessibility should be taken into account with any change.\n//\n// Example usage: change the default blue border and shadow to white for better\n// contrast against a dark gray background.\n.form-control-focus(@color: @input-border-focus) {\n  @color-rgba: rgba(red(@color), green(@color), blue(@color), .6);\n  &:focus {\n    border-color: @color;\n    outline: 0;\n    .box-shadow(~\"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px @{color-rgba}\");\n  }\n}\n\n// Form control sizing\n//\n// Relative text size, padding, and border-radii changes for form controls. For\n// horizontal sizing, wrap controls in the predefined grid classes. `<select>`\n// element gets special love because it's special, and that's a fact!\n.input-size(@input-height; @padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n  height: @input-height;\n  padding: @padding-vertical @padding-horizontal;\n  font-size: @font-size;\n  line-height: @line-height;\n  border-radius: @border-radius;\n\n  select& {\n    height: @input-height;\n    line-height: @input-height;\n  }\n\n  textarea&,\n  select[multiple]& {\n    height: auto;\n  }\n}\n","//\n// Buttons\n// --------------------------------------------------\n\n\n// Base styles\n// --------------------------------------------------\n\n.btn {\n  display: inline-block;\n  margin-bottom: 0; // For input.btn\n  font-weight: @btn-font-weight;\n  text-align: center;\n  vertical-align: middle;\n  touch-action: manipulation;\n  cursor: pointer;\n  background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n  border: 1px solid transparent;\n  white-space: nowrap;\n  .button-size(@padding-base-vertical; @padding-base-horizontal; @font-size-base; @line-height-base; @border-radius-base);\n  .user-select(none);\n\n  &,\n  &:active,\n  &.active {\n    &:focus,\n    &.focus {\n      .tab-focus();\n    }\n  }\n\n  &:hover,\n  &:focus,\n  &.focus {\n    color: @btn-default-color;\n    text-decoration: none;\n  }\n\n  &:active,\n  &.active {\n    outline: 0;\n    background-image: none;\n    .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n  }\n\n  &.disabled,\n  &[disabled],\n  fieldset[disabled] & {\n    cursor: @cursor-disabled;\n    pointer-events: none; // Future-proof disabling of clicks\n    .opacity(.65);\n    .box-shadow(none);\n  }\n}\n\n\n// Alternate buttons\n// --------------------------------------------------\n\n.btn-default {\n  .button-variant(@btn-default-color; @btn-default-bg; @btn-default-border);\n}\n.btn-primary {\n  .button-variant(@btn-primary-color; @btn-primary-bg; @btn-primary-border);\n}\n// Success appears as green\n.btn-success {\n  .button-variant(@btn-success-color; @btn-success-bg; @btn-success-border);\n}\n// Info appears as blue-green\n.btn-info {\n  .button-variant(@btn-info-color; @btn-info-bg; @btn-info-border);\n}\n// Warning appears as orange\n.btn-warning {\n  .button-variant(@btn-warning-color; @btn-warning-bg; @btn-warning-border);\n}\n// Danger and error appear as red\n.btn-danger {\n  .button-variant(@btn-danger-color; @btn-danger-bg; @btn-danger-border);\n}\n\n\n// Link buttons\n// -------------------------\n\n// Make a button look and behave like a link\n.btn-link {\n  color: @link-color;\n  font-weight: normal;\n  border-radius: 0;\n\n  &,\n  &:active,\n  &.active,\n  &[disabled],\n  fieldset[disabled] & {\n    background-color: transparent;\n    .box-shadow(none);\n  }\n  &,\n  &:hover,\n  &:focus,\n  &:active {\n    border-color: transparent;\n  }\n  &:hover,\n  &:focus {\n    color: @link-hover-color;\n    text-decoration: underline;\n    background-color: transparent;\n  }\n  &[disabled],\n  fieldset[disabled] & {\n    &:hover,\n    &:focus {\n      color: @btn-link-disabled-color;\n      text-decoration: none;\n    }\n  }\n}\n\n\n// Button Sizes\n// --------------------------------------------------\n\n.btn-lg {\n  // line-height: ensure even-numbered height of button next to large input\n  .button-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large);\n}\n.btn-sm {\n  // line-height: ensure proper height of button next to small input\n  .button-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small);\n}\n.btn-xs {\n  .button-size(@padding-xs-vertical; @padding-xs-horizontal; @font-size-small; @line-height-small; @border-radius-small);\n}\n\n\n// Block button\n// --------------------------------------------------\n\n.btn-block {\n  display: block;\n  width: 100%;\n}\n\n// Vertically space out multiple block buttons\n.btn-block + .btn-block {\n  margin-top: 5px;\n}\n\n// Specificity overrides\ninput[type=\"submit\"],\ninput[type=\"reset\"],\ninput[type=\"button\"] {\n  &.btn-block {\n    width: 100%;\n  }\n}\n","// Button variants\n//\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n\n.button-variant(@color; @background; @border) {\n  color: @color;\n  background-color: @background;\n  border-color: @border;\n\n  &:hover,\n  &:focus,\n  &.focus,\n  &:active,\n  &.active,\n  .open > .dropdown-toggle& {\n    color: @color;\n    background-color: darken(@background, 10%);\n        border-color: darken(@border, 12%);\n  }\n  &:active,\n  &.active,\n  .open > .dropdown-toggle& {\n    background-image: none;\n  }\n  &.disabled,\n  &[disabled],\n  fieldset[disabled] & {\n    &,\n    &:hover,\n    &:focus,\n    &.focus,\n    &:active,\n    &.active {\n      background-color: @background;\n          border-color: @border;\n    }\n  }\n\n  .badge {\n    color: @background;\n    background-color: @color;\n  }\n}\n\n// Button sizes\n.button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n  padding: @padding-vertical @padding-horizontal;\n  font-size: @font-size;\n  line-height: @line-height;\n  border-radius: @border-radius;\n}\n","// Opacity\n\n.opacity(@opacity) {\n  opacity: @opacity;\n  // IE8 filter\n  @opacity-ie: (@opacity * 100);\n  filter: ~\"alpha(opacity=@{opacity-ie})\";\n}\n","//\n// Component animations\n// --------------------------------------------------\n\n// Heads up!\n//\n// We don't use the `.opacity()` mixin here since it causes a bug with text\n// fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552.\n\n.fade {\n  opacity: 0;\n  .transition(opacity .15s linear);\n  &.in {\n    opacity: 1;\n  }\n}\n\n.collapse {\n  display: none;\n  visibility: hidden;\n\n  &.in      { display: block; visibility: visible; }\n  tr&.in    { display: table-row; }\n  tbody&.in { display: table-row-group; }\n}\n\n.collapsing {\n  position: relative;\n  height: 0;\n  overflow: hidden;\n  .transition-property(~\"height, visibility\");\n  .transition-duration(.35s);\n  .transition-timing-function(ease);\n}\n","//\n// Dropdown menus\n// --------------------------------------------------\n\n\n// Dropdown arrow/caret\n.caret {\n  display: inline-block;\n  width: 0;\n  height: 0;\n  margin-left: 2px;\n  vertical-align: middle;\n  border-top:   @caret-width-base solid;\n  border-right: @caret-width-base solid transparent;\n  border-left:  @caret-width-base solid transparent;\n}\n\n// The dropdown wrapper (div)\n.dropdown {\n  position: relative;\n}\n\n// Prevent the focus on the dropdown toggle when closing dropdowns\n.dropdown-toggle:focus {\n  outline: 0;\n}\n\n// The dropdown menu (ul)\n.dropdown-menu {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: @zindex-dropdown;\n  display: none; // none by default, but block on \"open\" of the menu\n  float: left;\n  min-width: 160px;\n  padding: 5px 0;\n  margin: 2px 0 0; // override default ul\n  list-style: none;\n  font-size: @font-size-base;\n  text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)\n  background-color: @dropdown-bg;\n  border: 1px solid @dropdown-fallback-border; // IE8 fallback\n  border: 1px solid @dropdown-border;\n  border-radius: @border-radius-base;\n  .box-shadow(0 6px 12px rgba(0,0,0,.175));\n  background-clip: padding-box;\n\n  // Aligns the dropdown menu to right\n  //\n  // Deprecated as of 3.1.0 in favor of `.dropdown-menu-[dir]`\n  &.pull-right {\n    right: 0;\n    left: auto;\n  }\n\n  // Dividers (basically an hr) within the dropdown\n  .divider {\n    .nav-divider(@dropdown-divider-bg);\n  }\n\n  // Links within the dropdown menu\n  > li > a {\n    display: block;\n    padding: 3px 20px;\n    clear: both;\n    font-weight: normal;\n    line-height: @line-height-base;\n    color: @dropdown-link-color;\n    white-space: nowrap; // prevent links from randomly breaking onto new lines\n  }\n}\n\n// Hover/Focus state\n.dropdown-menu > li > a {\n  &:hover,\n  &:focus {\n    text-decoration: none;\n    color: @dropdown-link-hover-color;\n    background-color: @dropdown-link-hover-bg;\n  }\n}\n\n// Active state\n.dropdown-menu > .active > a {\n  &,\n  &:hover,\n  &:focus {\n    color: @dropdown-link-active-color;\n    text-decoration: none;\n    outline: 0;\n    background-color: @dropdown-link-active-bg;\n  }\n}\n\n// Disabled state\n//\n// Gray out text and ensure the hover/focus state remains gray\n\n.dropdown-menu > .disabled > a {\n  &,\n  &:hover,\n  &:focus {\n    color: @dropdown-link-disabled-color;\n  }\n\n  // Nuke hover/focus effects\n  &:hover,\n  &:focus {\n    text-decoration: none;\n    background-color: transparent;\n    background-image: none; // Remove CSS gradient\n    .reset-filter();\n    cursor: @cursor-disabled;\n  }\n}\n\n// Open state for the dropdown\n.open {\n  // Show the menu\n  > .dropdown-menu {\n    display: block;\n  }\n\n  // Remove the outline when :focus is triggered\n  > a {\n    outline: 0;\n  }\n}\n\n// Menu positioning\n//\n// Add extra class to `.dropdown-menu` to flip the alignment of the dropdown\n// menu with the parent.\n.dropdown-menu-right {\n  left: auto; // Reset the default from `.dropdown-menu`\n  right: 0;\n}\n// With v3, we enabled auto-flipping if you have a dropdown within a right\n// aligned nav component. To enable the undoing of that, we provide an override\n// to restore the default dropdown menu alignment.\n//\n// This is only for left-aligning a dropdown menu within a `.navbar-right` or\n// `.pull-right` nav component.\n.dropdown-menu-left {\n  left: 0;\n  right: auto;\n}\n\n// Dropdown section headers\n.dropdown-header {\n  display: block;\n  padding: 3px 20px;\n  font-size: @font-size-small;\n  line-height: @line-height-base;\n  color: @dropdown-header-color;\n  white-space: nowrap; // as with > li > a\n}\n\n// Backdrop to catch body clicks on mobile, etc.\n.dropdown-backdrop {\n  position: fixed;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  top: 0;\n  z-index: (@zindex-dropdown - 10);\n}\n\n// Right aligned dropdowns\n.pull-right > .dropdown-menu {\n  right: 0;\n  left: auto;\n}\n\n// Allow for dropdowns to go bottom up (aka, dropup-menu)\n//\n// Just add .dropup after the standard .dropdown class and you're set, bro.\n// TODO: abstract this so that the navbar fixed styles are not placed here?\n\n.dropup,\n.navbar-fixed-bottom .dropdown {\n  // Reverse the caret\n  .caret {\n    border-top: 0;\n    border-bottom: @caret-width-base solid;\n    content: \"\";\n  }\n  // Different positioning for bottom up menu\n  .dropdown-menu {\n    top: auto;\n    bottom: 100%;\n    margin-bottom: 1px;\n  }\n}\n\n\n// Component alignment\n//\n// Reiterate per navbar.less and the modified component alignment there.\n\n@media (min-width: @grid-float-breakpoint) {\n  .navbar-right {\n    .dropdown-menu {\n      .dropdown-menu-right();\n    }\n    // Necessary for overrides of the default right aligned menu.\n    // Will remove come v4 in all likelihood.\n    .dropdown-menu-left {\n      .dropdown-menu-left();\n    }\n  }\n}\n","// Horizontal dividers\n//\n// Dividers (basically an hr) within dropdowns and nav lists\n\n.nav-divider(@color: #e5e5e5) {\n  height: 1px;\n  margin: ((@line-height-computed / 2) - 1) 0;\n  overflow: hidden;\n  background-color: @color;\n}\n","// Reset filters for IE\n//\n// When you need to remove a gradient background, do not forget to use this to reset\n// the IE filter for IE9 and below.\n\n.reset-filter() {\n  filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"));\n}\n","//\n// Button groups\n// --------------------------------------------------\n\n// Make the div behave like a button\n.btn-group,\n.btn-group-vertical {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle; // match .btn alignment given font-size hack above\n  > .btn {\n    position: relative;\n    float: left;\n    // Bring the \"active\" button to the front\n    &:hover,\n    &:focus,\n    &:active,\n    &.active {\n      z-index: 2;\n    }\n  }\n}\n\n// Prevent double borders when buttons are next to each other\n.btn-group {\n  .btn + .btn,\n  .btn + .btn-group,\n  .btn-group + .btn,\n  .btn-group + .btn-group {\n    margin-left: -1px;\n  }\n}\n\n// Optional: Group multiple button groups together for a toolbar\n.btn-toolbar {\n  margin-left: -5px; // Offset the first child's margin\n  &:extend(.clearfix all);\n\n  .btn-group,\n  .input-group {\n    float: left;\n  }\n  > .btn,\n  > .btn-group,\n  > .input-group {\n    margin-left: 5px;\n  }\n}\n\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n  border-radius: 0;\n}\n\n// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match\n.btn-group > .btn:first-child {\n  margin-left: 0;\n  &:not(:last-child):not(.dropdown-toggle) {\n    .border-right-radius(0);\n  }\n}\n// Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n  .border-left-radius(0);\n}\n\n// Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group)\n.btn-group > .btn-group {\n  float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n  border-radius: 0;\n}\n.btn-group > .btn-group:first-child {\n  > .btn:last-child,\n  > .dropdown-toggle {\n    .border-right-radius(0);\n  }\n}\n.btn-group > .btn-group:last-child > .btn:first-child {\n  .border-left-radius(0);\n}\n\n// On active and open, don't show outline\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n  outline: 0;\n}\n\n\n// Sizing\n//\n// Remix the default button sizing classes into new ones for easier manipulation.\n\n.btn-group-xs > .btn { &:extend(.btn-xs); }\n.btn-group-sm > .btn { &:extend(.btn-sm); }\n.btn-group-lg > .btn { &:extend(.btn-lg); }\n\n\n// Split button dropdowns\n// ----------------------\n\n// Give the line between buttons some depth\n.btn-group > .btn + .dropdown-toggle {\n  padding-left: 8px;\n  padding-right: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n  padding-left: 12px;\n  padding-right: 12px;\n}\n\n// The clickable button for toggling the menu\n// Remove the gradient and set the same inset shadow as the :active state\n.btn-group.open .dropdown-toggle {\n  .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n\n  // Show no shadow for `.btn-link` since it has no other button styles.\n  &.btn-link {\n    .box-shadow(none);\n  }\n}\n\n\n// Reposition the caret\n.btn .caret {\n  margin-left: 0;\n}\n// Carets in other button sizes\n.btn-lg .caret {\n  border-width: @caret-width-large @caret-width-large 0;\n  border-bottom-width: 0;\n}\n// Upside down carets for .dropup\n.dropup .btn-lg .caret {\n  border-width: 0 @caret-width-large @caret-width-large;\n}\n\n\n// Vertical button groups\n// ----------------------\n\n.btn-group-vertical {\n  > .btn,\n  > .btn-group,\n  > .btn-group > .btn {\n    display: block;\n    float: none;\n    width: 100%;\n    max-width: 100%;\n  }\n\n  // Clear floats so dropdown menus can be properly placed\n  > .btn-group {\n    &:extend(.clearfix all);\n    > .btn {\n      float: none;\n    }\n  }\n\n  > .btn + .btn,\n  > .btn + .btn-group,\n  > .btn-group + .btn,\n  > .btn-group + .btn-group {\n    margin-top: -1px;\n    margin-left: 0;\n  }\n}\n\n.btn-group-vertical > .btn {\n  &:not(:first-child):not(:last-child) {\n    border-radius: 0;\n  }\n  &:first-child:not(:last-child) {\n    border-top-right-radius: @border-radius-base;\n    .border-bottom-radius(0);\n  }\n  &:last-child:not(:first-child) {\n    border-bottom-left-radius: @border-radius-base;\n    .border-top-radius(0);\n  }\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n  border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child:not(:last-child) {\n  > .btn:last-child,\n  > .dropdown-toggle {\n    .border-bottom-radius(0);\n  }\n}\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n  .border-top-radius(0);\n}\n\n\n// Justified button groups\n// ----------------------\n\n.btn-group-justified {\n  display: table;\n  width: 100%;\n  table-layout: fixed;\n  border-collapse: separate;\n  > .btn,\n  > .btn-group {\n    float: none;\n    display: table-cell;\n    width: 1%;\n  }\n  > .btn-group .btn {\n    width: 100%;\n  }\n\n  > .btn-group .dropdown-menu {\n    left: auto;\n  }\n}\n\n\n// Checkbox and radio options\n//\n// In order to support the browser's form validation feedback, powered by the\n// `required` attribute, we have to \"hide\" the inputs via `clip`. We cannot use\n// `display: none;` or `visibility: hidden;` as that also hides the popover.\n// Simply visually hiding the inputs via `opacity` would leave them clickable in\n// certain cases which is prevented by using `clip` and `pointer-events`.\n// This way, we ensure a DOM element is visible to position the popover from.\n//\n// See https://github.com/twbs/bootstrap/pull/12794 and\n// https://github.com/twbs/bootstrap/pull/14559 for more information.\n\n[data-toggle=\"buttons\"] {\n  > .btn,\n  > .btn-group > .btn {\n    input[type=\"radio\"],\n    input[type=\"checkbox\"] {\n      position: absolute;\n      clip: rect(0,0,0,0);\n      pointer-events: none;\n    }\n  }\n}\n","// Single side border-radius\n\n.border-top-radius(@radius) {\n  border-top-right-radius: @radius;\n   border-top-left-radius: @radius;\n}\n.border-right-radius(@radius) {\n  border-bottom-right-radius: @radius;\n     border-top-right-radius: @radius;\n}\n.border-bottom-radius(@radius) {\n  border-bottom-right-radius: @radius;\n   border-bottom-left-radius: @radius;\n}\n.border-left-radius(@radius) {\n  border-bottom-left-radius: @radius;\n     border-top-left-radius: @radius;\n}\n","//\n// Input groups\n// --------------------------------------------------\n\n// Base styles\n// -------------------------\n.input-group {\n  position: relative; // For dropdowns\n  display: table;\n  border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table\n\n  // Undo padding and float of grid classes\n  &[class*=\"col-\"] {\n    float: none;\n    padding-left: 0;\n    padding-right: 0;\n  }\n\n  .form-control {\n    // Ensure that the input is always above the *appended* addon button for\n    // proper border colors.\n    position: relative;\n    z-index: 2;\n\n    // IE9 fubars the placeholder attribute in text inputs and the arrows on\n    // select elements in input groups. To fix it, we float the input. Details:\n    // https://github.com/twbs/bootstrap/issues/11561#issuecomment-28936855\n    float: left;\n\n    width: 100%;\n    margin-bottom: 0;\n  }\n}\n\n// Sizing options\n//\n// Remix the default form control sizing classes into new ones for easier\n// manipulation.\n\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n  .input-lg();\n}\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n  .input-sm();\n}\n\n\n// Display as table-cell\n// -------------------------\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n  display: table-cell;\n\n  &:not(:first-child):not(:last-child) {\n    border-radius: 0;\n  }\n}\n// Addon and addon wrapper for buttons\n.input-group-addon,\n.input-group-btn {\n  width: 1%;\n  white-space: nowrap;\n  vertical-align: middle; // Match the inputs\n}\n\n// Text input groups\n// -------------------------\n.input-group-addon {\n  padding: @padding-base-vertical @padding-base-horizontal;\n  font-size: @font-size-base;\n  font-weight: normal;\n  line-height: 1;\n  color: @input-color;\n  text-align: center;\n  background-color: @input-group-addon-bg;\n  border: 1px solid @input-group-addon-border-color;\n  border-radius: @border-radius-base;\n\n  // Sizing\n  &.input-sm {\n    padding: @padding-small-vertical @padding-small-horizontal;\n    font-size: @font-size-small;\n    border-radius: @border-radius-small;\n  }\n  &.input-lg {\n    padding: @padding-large-vertical @padding-large-horizontal;\n    font-size: @font-size-large;\n    border-radius: @border-radius-large;\n  }\n\n  // Nuke default margins from checkboxes and radios to vertically center within.\n  input[type=\"radio\"],\n  input[type=\"checkbox\"] {\n    margin-top: 0;\n  }\n}\n\n// Reset rounded corners\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n  .border-right-radius(0);\n}\n.input-group-addon:first-child {\n  border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n  .border-left-radius(0);\n}\n.input-group-addon:last-child {\n  border-left: 0;\n}\n\n// Button input groups\n// -------------------------\n.input-group-btn {\n  position: relative;\n  // Jankily prevent input button groups from wrapping with `white-space` and\n  // `font-size` in combination with `inline-block` on buttons.\n  font-size: 0;\n  white-space: nowrap;\n\n  // Negative margin for spacing, position for bringing hovered/focused/actived\n  // element above the siblings.\n  > .btn {\n    position: relative;\n    + .btn {\n      margin-left: -1px;\n    }\n    // Bring the \"active\" button to the front\n    &:hover,\n    &:focus,\n    &:active {\n      z-index: 2;\n    }\n  }\n\n  // Negative margin to only have a 1px border between the two\n  &:first-child {\n    > .btn,\n    > .btn-group {\n      margin-right: -1px;\n    }\n  }\n  &:last-child {\n    > .btn,\n    > .btn-group {\n      margin-left: -1px;\n    }\n  }\n}\n","//\n// Navs\n// --------------------------------------------------\n\n\n// Base class\n// --------------------------------------------------\n\n.nav {\n  margin-bottom: 0;\n  padding-left: 0; // Override default ul/ol\n  list-style: none;\n  &:extend(.clearfix all);\n\n  > li {\n    position: relative;\n    display: block;\n\n    > a {\n      position: relative;\n      display: block;\n      padding: @nav-link-padding;\n      &:hover,\n      &:focus {\n        text-decoration: none;\n        background-color: @nav-link-hover-bg;\n      }\n    }\n\n    // Disabled state sets text to gray and nukes hover/tab effects\n    &.disabled > a {\n      color: @nav-disabled-link-color;\n\n      &:hover,\n      &:focus {\n        color: @nav-disabled-link-hover-color;\n        text-decoration: none;\n        background-color: transparent;\n        cursor: @cursor-disabled;\n      }\n    }\n  }\n\n  // Open dropdowns\n  .open > a {\n    &,\n    &:hover,\n    &:focus {\n      background-color: @nav-link-hover-bg;\n      border-color: @link-color;\n    }\n  }\n\n  // Nav dividers (deprecated with v3.0.1)\n  //\n  // This should have been removed in v3 with the dropping of `.nav-list`, but\n  // we missed it. We don't currently support this anywhere, but in the interest\n  // of maintaining backward compatibility in case you use it, it's deprecated.\n  .nav-divider {\n    .nav-divider();\n  }\n\n  // Prevent IE8 from misplacing imgs\n  //\n  // See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989\n  > li > a > img {\n    max-width: none;\n  }\n}\n\n\n// Tabs\n// -------------------------\n\n// Give the tabs something to sit on\n.nav-tabs {\n  border-bottom: 1px solid @nav-tabs-border-color;\n  > li {\n    float: left;\n    // Make the list-items overlay the bottom border\n    margin-bottom: -1px;\n\n    // Actual tabs (as links)\n    > a {\n      margin-right: 2px;\n      line-height: @line-height-base;\n      border: 1px solid transparent;\n      border-radius: @border-radius-base @border-radius-base 0 0;\n      &:hover {\n        border-color: @nav-tabs-link-hover-border-color @nav-tabs-link-hover-border-color @nav-tabs-border-color;\n      }\n    }\n\n    // Active state, and its :hover to override normal :hover\n    &.active > a {\n      &,\n      &:hover,\n      &:focus {\n        color: @nav-tabs-active-link-hover-color;\n        background-color: @nav-tabs-active-link-hover-bg;\n        border: 1px solid @nav-tabs-active-link-hover-border-color;\n        border-bottom-color: transparent;\n        cursor: default;\n      }\n    }\n  }\n  // pulling this in mainly for less shorthand\n  &.nav-justified {\n    .nav-justified();\n    .nav-tabs-justified();\n  }\n}\n\n\n// Pills\n// -------------------------\n.nav-pills {\n  > li {\n    float: left;\n\n    // Links rendered as pills\n    > a {\n      border-radius: @nav-pills-border-radius;\n    }\n    + li {\n      margin-left: 2px;\n    }\n\n    // Active state\n    &.active > a {\n      &,\n      &:hover,\n      &:focus {\n        color: @nav-pills-active-link-hover-color;\n        background-color: @nav-pills-active-link-hover-bg;\n      }\n    }\n  }\n}\n\n\n// Stacked pills\n.nav-stacked {\n  > li {\n    float: none;\n    + li {\n      margin-top: 2px;\n      margin-left: 0; // no need for this gap between nav items\n    }\n  }\n}\n\n\n// Nav variations\n// --------------------------------------------------\n\n// Justified nav links\n// -------------------------\n\n.nav-justified {\n  width: 100%;\n\n  > li {\n    float: none;\n    > a {\n      text-align: center;\n      margin-bottom: 5px;\n    }\n  }\n\n  > .dropdown .dropdown-menu {\n    top: auto;\n    left: auto;\n  }\n\n  @media (min-width: @screen-sm-min) {\n    > li {\n      display: table-cell;\n      width: 1%;\n      > a {\n        margin-bottom: 0;\n      }\n    }\n  }\n}\n\n// Move borders to anchors instead of bottom of list\n//\n// Mixin for adding on top the shared `.nav-justified` styles for our tabs\n.nav-tabs-justified {\n  border-bottom: 0;\n\n  > li > a {\n    // Override margin from .nav-tabs\n    margin-right: 0;\n    border-radius: @border-radius-base;\n  }\n\n  > .active > a,\n  > .active > a:hover,\n  > .active > a:focus {\n    border: 1px solid @nav-tabs-justified-link-border-color;\n  }\n\n  @media (min-width: @screen-sm-min) {\n    > li > a {\n      border-bottom: 1px solid @nav-tabs-justified-link-border-color;\n      border-radius: @border-radius-base @border-radius-base 0 0;\n    }\n    > .active > a,\n    > .active > a:hover,\n    > .active > a:focus {\n      border-bottom-color: @nav-tabs-justified-active-link-border-color;\n    }\n  }\n}\n\n\n// Tabbable tabs\n// -------------------------\n\n// Hide tabbable panes to start, show them when `.active`\n.tab-content {\n  > .tab-pane {\n    display: none;\n    visibility: hidden;\n  }\n  > .active {\n    display: block;\n    visibility: visible;\n  }\n}\n\n\n// Dropdowns\n// -------------------------\n\n// Specific dropdowns\n.nav-tabs .dropdown-menu {\n  // make dropdown border overlap tab border\n  margin-top: -1px;\n  // Remove the top rounded corners here since there is a hard edge above the menu\n  .border-top-radius(0);\n}\n","//\n// Navbars\n// --------------------------------------------------\n\n\n// Wrapper and base class\n//\n// Provide a static navbar from which we expand to create full-width, fixed, and\n// other navbar variations.\n\n.navbar {\n  position: relative;\n  min-height: @navbar-height; // Ensure a navbar always shows (e.g., without a .navbar-brand in collapsed mode)\n  margin-bottom: @navbar-margin-bottom;\n  border: 1px solid transparent;\n\n  // Prevent floats from breaking the navbar\n  &:extend(.clearfix all);\n\n  @media (min-width: @grid-float-breakpoint) {\n    border-radius: @navbar-border-radius;\n  }\n}\n\n\n// Navbar heading\n//\n// Groups `.navbar-brand` and `.navbar-toggle` into a single component for easy\n// styling of responsive aspects.\n\n.navbar-header {\n  &:extend(.clearfix all);\n\n  @media (min-width: @grid-float-breakpoint) {\n    float: left;\n  }\n}\n\n\n// Navbar collapse (body)\n//\n// Group your navbar content into this for easy collapsing and expanding across\n// various device sizes. By default, this content is collapsed when <768px, but\n// will expand past that for a horizontal display.\n//\n// To start (on mobile devices) the navbar links, forms, and buttons are stacked\n// vertically and include a `max-height` to overflow in case you have too much\n// content for the user's viewport.\n\n.navbar-collapse {\n  overflow-x: visible;\n  padding-right: @navbar-padding-horizontal;\n  padding-left:  @navbar-padding-horizontal;\n  border-top: 1px solid transparent;\n  box-shadow: inset 0 1px 0 rgba(255,255,255,.1);\n  &:extend(.clearfix all);\n  -webkit-overflow-scrolling: touch;\n\n  &.in {\n    overflow-y: auto;\n  }\n\n  @media (min-width: @grid-float-breakpoint) {\n    width: auto;\n    border-top: 0;\n    box-shadow: none;\n\n    &.collapse {\n      display: block !important;\n      visibility: visible !important;\n      height: auto !important;\n      padding-bottom: 0; // Override default setting\n      overflow: visible !important;\n    }\n\n    &.in {\n      overflow-y: visible;\n    }\n\n    // Undo the collapse side padding for navbars with containers to ensure\n    // alignment of right-aligned contents.\n    .navbar-fixed-top &,\n    .navbar-static-top &,\n    .navbar-fixed-bottom & {\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n}\n\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n  .navbar-collapse {\n    max-height: @navbar-collapse-max-height;\n\n    @media (max-device-width: @screen-xs-min) and (orientation: landscape) {\n      max-height: 200px;\n    }\n  }\n}\n\n\n// Both navbar header and collapse\n//\n// When a container is present, change the behavior of the header and collapse.\n\n.container,\n.container-fluid {\n  > .navbar-header,\n  > .navbar-collapse {\n    margin-right: -@navbar-padding-horizontal;\n    margin-left:  -@navbar-padding-horizontal;\n\n    @media (min-width: @grid-float-breakpoint) {\n      margin-right: 0;\n      margin-left:  0;\n    }\n  }\n}\n\n\n//\n// Navbar alignment options\n//\n// Display the navbar across the entirety of the page or fixed it to the top or\n// bottom of the page.\n\n// Static top (unfixed, but 100% wide) navbar\n.navbar-static-top {\n  z-index: @zindex-navbar;\n  border-width: 0 0 1px;\n\n  @media (min-width: @grid-float-breakpoint) {\n    border-radius: 0;\n  }\n}\n\n// Fix the top/bottom navbars when screen real estate supports it\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n  position: fixed;\n  right: 0;\n  left: 0;\n  z-index: @zindex-navbar-fixed;\n\n  // Undo the rounded corners\n  @media (min-width: @grid-float-breakpoint) {\n    border-radius: 0;\n  }\n}\n.navbar-fixed-top {\n  top: 0;\n  border-width: 0 0 1px;\n}\n.navbar-fixed-bottom {\n  bottom: 0;\n  margin-bottom: 0; // override .navbar defaults\n  border-width: 1px 0 0;\n}\n\n\n// Brand/project name\n\n.navbar-brand {\n  float: left;\n  padding: @navbar-padding-vertical @navbar-padding-horizontal;\n  font-size: @font-size-large;\n  line-height: @line-height-computed;\n  height: @navbar-height;\n\n  &:hover,\n  &:focus {\n    text-decoration: none;\n  }\n\n  > img {\n    display: block;\n  }\n\n  @media (min-width: @grid-float-breakpoint) {\n    .navbar > .container &,\n    .navbar > .container-fluid & {\n      margin-left: -@navbar-padding-horizontal;\n    }\n  }\n}\n\n\n// Navbar toggle\n//\n// Custom button for toggling the `.navbar-collapse`, powered by the collapse\n// JavaScript plugin.\n\n.navbar-toggle {\n  position: relative;\n  float: right;\n  margin-right: @navbar-padding-horizontal;\n  padding: 9px 10px;\n  .navbar-vertical-align(34px);\n  background-color: transparent;\n  background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n  border: 1px solid transparent;\n  border-radius: @border-radius-base;\n\n  // We remove the `outline` here, but later compensate by attaching `:hover`\n  // styles to `:focus`.\n  &:focus {\n    outline: 0;\n  }\n\n  // Bars\n  .icon-bar {\n    display: block;\n    width: 22px;\n    height: 2px;\n    border-radius: 1px;\n  }\n  .icon-bar + .icon-bar {\n    margin-top: 4px;\n  }\n\n  @media (min-width: @grid-float-breakpoint) {\n    display: none;\n  }\n}\n\n\n// Navbar nav links\n//\n// Builds on top of the `.nav` components with its own modifier class to make\n// the nav the full height of the horizontal nav (above 768px).\n\n.navbar-nav {\n  margin: (@navbar-padding-vertical / 2) -@navbar-padding-horizontal;\n\n  > li > a {\n    padding-top:    10px;\n    padding-bottom: 10px;\n    line-height: @line-height-computed;\n  }\n\n  @media (max-width: @grid-float-breakpoint-max) {\n    // Dropdowns get custom display when collapsed\n    .open .dropdown-menu {\n      position: static;\n      float: none;\n      width: auto;\n      margin-top: 0;\n      background-color: transparent;\n      border: 0;\n      box-shadow: none;\n      > li > a,\n      .dropdown-header {\n        padding: 5px 15px 5px 25px;\n      }\n      > li > a {\n        line-height: @line-height-computed;\n        &:hover,\n        &:focus {\n          background-image: none;\n        }\n      }\n    }\n  }\n\n  // Uncollapse the nav\n  @media (min-width: @grid-float-breakpoint) {\n    float: left;\n    margin: 0;\n\n    > li {\n      float: left;\n      > a {\n        padding-top:    @navbar-padding-vertical;\n        padding-bottom: @navbar-padding-vertical;\n      }\n    }\n  }\n}\n\n\n// Navbar form\n//\n// Extension of the `.form-inline` with some extra flavor for optimum display in\n// our navbars.\n\n.navbar-form {\n  margin-left: -@navbar-padding-horizontal;\n  margin-right: -@navbar-padding-horizontal;\n  padding: 10px @navbar-padding-horizontal;\n  border-top: 1px solid transparent;\n  border-bottom: 1px solid transparent;\n  @shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);\n  .box-shadow(@shadow);\n\n  // Mixin behavior for optimum display\n  .form-inline();\n\n  .form-group {\n    @media (max-width: @grid-float-breakpoint-max) {\n      margin-bottom: 5px;\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  // Vertically center in expanded, horizontal navbar\n  .navbar-vertical-align(@input-height-base);\n\n  // Undo 100% width for pull classes\n  @media (min-width: @grid-float-breakpoint) {\n    width: auto;\n    border: 0;\n    margin-left: 0;\n    margin-right: 0;\n    padding-top: 0;\n    padding-bottom: 0;\n    .box-shadow(none);\n  }\n}\n\n\n// Dropdown menus\n\n// Menu position and menu carets\n.navbar-nav > li > .dropdown-menu {\n  margin-top: 0;\n  .border-top-radius(0);\n}\n// Menu position and menu caret support for dropups via extra dropup class\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n  .border-top-radius(@navbar-border-radius);\n  .border-bottom-radius(0);\n}\n\n\n// Buttons in navbars\n//\n// Vertically center a button within a navbar (when *not* in a form).\n\n.navbar-btn {\n  .navbar-vertical-align(@input-height-base);\n\n  &.btn-sm {\n    .navbar-vertical-align(@input-height-small);\n  }\n  &.btn-xs {\n    .navbar-vertical-align(22);\n  }\n}\n\n\n// Text in navbars\n//\n// Add a class to make any element properly align itself vertically within the navbars.\n\n.navbar-text {\n  .navbar-vertical-align(@line-height-computed);\n\n  @media (min-width: @grid-float-breakpoint) {\n    float: left;\n    margin-left: @navbar-padding-horizontal;\n    margin-right: @navbar-padding-horizontal;\n  }\n}\n\n\n// Component alignment\n//\n// Repurpose the pull utilities as their own navbar utilities to avoid specificity\n// issues with parents and chaining. Only do this when the navbar is uncollapsed\n// though so that navbar contents properly stack and align in mobile.\n//\n// Declared after the navbar components to ensure more specificity on the margins.\n\n@media (min-width: @grid-float-breakpoint) {\n  .navbar-left  { .pull-left(); }\n  .navbar-right {\n    .pull-right();\n    margin-right: -@navbar-padding-horizontal;\n\n    ~ .navbar-right {\n      margin-right: 0;\n    }\n  }\n}\n\n\n// Alternate navbars\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n  background-color: @navbar-default-bg;\n  border-color: @navbar-default-border;\n\n  .navbar-brand {\n    color: @navbar-default-brand-color;\n    &:hover,\n    &:focus {\n      color: @navbar-default-brand-hover-color;\n      background-color: @navbar-default-brand-hover-bg;\n    }\n  }\n\n  .navbar-text {\n    color: @navbar-default-color;\n  }\n\n  .navbar-nav {\n    > li > a {\n      color: @navbar-default-link-color;\n\n      &:hover,\n      &:focus {\n        color: @navbar-default-link-hover-color;\n        background-color: @navbar-default-link-hover-bg;\n      }\n    }\n    > .active > a {\n      &,\n      &:hover,\n      &:focus {\n        color: @navbar-default-link-active-color;\n        background-color: @navbar-default-link-active-bg;\n      }\n    }\n    > .disabled > a {\n      &,\n      &:hover,\n      &:focus {\n        color: @navbar-default-link-disabled-color;\n        background-color: @navbar-default-link-disabled-bg;\n      }\n    }\n  }\n\n  .navbar-toggle {\n    border-color: @navbar-default-toggle-border-color;\n    &:hover,\n    &:focus {\n      background-color: @navbar-default-toggle-hover-bg;\n    }\n    .icon-bar {\n      background-color: @navbar-default-toggle-icon-bar-bg;\n    }\n  }\n\n  .navbar-collapse,\n  .navbar-form {\n    border-color: @navbar-default-border;\n  }\n\n  // Dropdown menu items\n  .navbar-nav {\n    // Remove background color from open dropdown\n    > .open > a {\n      &,\n      &:hover,\n      &:focus {\n        background-color: @navbar-default-link-active-bg;\n        color: @navbar-default-link-active-color;\n      }\n    }\n\n    @media (max-width: @grid-float-breakpoint-max) {\n      // Dropdowns get custom display when collapsed\n      .open .dropdown-menu {\n        > li > a {\n          color: @navbar-default-link-color;\n          &:hover,\n          &:focus {\n            color: @navbar-default-link-hover-color;\n            background-color: @navbar-default-link-hover-bg;\n          }\n        }\n        > .active > a {\n          &,\n          &:hover,\n          &:focus {\n            color: @navbar-default-link-active-color;\n            background-color: @navbar-default-link-active-bg;\n          }\n        }\n        > .disabled > a {\n          &,\n          &:hover,\n          &:focus {\n            color: @navbar-default-link-disabled-color;\n            background-color: @navbar-default-link-disabled-bg;\n          }\n        }\n      }\n    }\n  }\n\n\n  // Links in navbars\n  //\n  // Add a class to ensure links outside the navbar nav are colored correctly.\n\n  .navbar-link {\n    color: @navbar-default-link-color;\n    &:hover {\n      color: @navbar-default-link-hover-color;\n    }\n  }\n\n  .btn-link {\n    color: @navbar-default-link-color;\n    &:hover,\n    &:focus {\n      color: @navbar-default-link-hover-color;\n    }\n    &[disabled],\n    fieldset[disabled] & {\n      &:hover,\n      &:focus {\n        color: @navbar-default-link-disabled-color;\n      }\n    }\n  }\n}\n\n// Inverse navbar\n\n.navbar-inverse {\n  background-color: @navbar-inverse-bg;\n  border-color: @navbar-inverse-border;\n\n  .navbar-brand {\n    color: @navbar-inverse-brand-color;\n    &:hover,\n    &:focus {\n      color: @navbar-inverse-brand-hover-color;\n      background-color: @navbar-inverse-brand-hover-bg;\n    }\n  }\n\n  .navbar-text {\n    color: @navbar-inverse-color;\n  }\n\n  .navbar-nav {\n    > li > a {\n      color: @navbar-inverse-link-color;\n\n      &:hover,\n      &:focus {\n        color: @navbar-inverse-link-hover-color;\n        background-color: @navbar-inverse-link-hover-bg;\n      }\n    }\n    > .active > a {\n      &,\n      &:hover,\n      &:focus {\n        color: @navbar-inverse-link-active-color;\n        background-color: @navbar-inverse-link-active-bg;\n      }\n    }\n    > .disabled > a {\n      &,\n      &:hover,\n      &:focus {\n        color: @navbar-inverse-link-disabled-color;\n        background-color: @navbar-inverse-link-disabled-bg;\n      }\n    }\n  }\n\n  // Darken the responsive nav toggle\n  .navbar-toggle {\n    border-color: @navbar-inverse-toggle-border-color;\n    &:hover,\n    &:focus {\n      background-color: @navbar-inverse-toggle-hover-bg;\n    }\n    .icon-bar {\n      background-color: @navbar-inverse-toggle-icon-bar-bg;\n    }\n  }\n\n  .navbar-collapse,\n  .navbar-form {\n    border-color: darken(@navbar-inverse-bg, 7%);\n  }\n\n  // Dropdowns\n  .navbar-nav {\n    > .open > a {\n      &,\n      &:hover,\n      &:focus {\n        background-color: @navbar-inverse-link-active-bg;\n        color: @navbar-inverse-link-active-color;\n      }\n    }\n\n    @media (max-width: @grid-float-breakpoint-max) {\n      // Dropdowns get custom display\n      .open .dropdown-menu {\n        > .dropdown-header {\n          border-color: @navbar-inverse-border;\n        }\n        .divider {\n          background-color: @navbar-inverse-border;\n        }\n        > li > a {\n          color: @navbar-inverse-link-color;\n          &:hover,\n          &:focus {\n            color: @navbar-inverse-link-hover-color;\n            background-color: @navbar-inverse-link-hover-bg;\n          }\n        }\n        > .active > a {\n          &,\n          &:hover,\n          &:focus {\n            color: @navbar-inverse-link-active-color;\n            background-color: @navbar-inverse-link-active-bg;\n          }\n        }\n        > .disabled > a {\n          &,\n          &:hover,\n          &:focus {\n            color: @navbar-inverse-link-disabled-color;\n            background-color: @navbar-inverse-link-disabled-bg;\n          }\n        }\n      }\n    }\n  }\n\n  .navbar-link {\n    color: @navbar-inverse-link-color;\n    &:hover {\n      color: @navbar-inverse-link-hover-color;\n    }\n  }\n\n  .btn-link {\n    color: @navbar-inverse-link-color;\n    &:hover,\n    &:focus {\n      color: @navbar-inverse-link-hover-color;\n    }\n    &[disabled],\n    fieldset[disabled] & {\n      &:hover,\n      &:focus {\n        color: @navbar-inverse-link-disabled-color;\n      }\n    }\n  }\n}\n","// Navbar vertical align\n//\n// Vertically center elements in the navbar.\n// Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.\n\n.navbar-vertical-align(@element-height) {\n  margin-top: ((@navbar-height - @element-height) / 2);\n  margin-bottom: ((@navbar-height - @element-height) / 2);\n}\n","//\n// Utility classes\n// --------------------------------------------------\n\n\n// Floats\n// -------------------------\n\n.clearfix {\n  .clearfix();\n}\n.center-block {\n  .center-block();\n}\n.pull-right {\n  float: right !important;\n}\n.pull-left {\n  float: left !important;\n}\n\n\n// Toggling content\n// -------------------------\n\n// Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1\n.hide {\n  display: none !important;\n}\n.show {\n  display: block !important;\n}\n.invisible {\n  visibility: hidden;\n}\n.text-hide {\n  .text-hide();\n}\n\n\n// Hide from screenreaders and browsers\n//\n// Credit: HTML5 Boilerplate\n\n.hidden {\n  display: none !important;\n  visibility: hidden !important;\n}\n\n\n// For Affix plugin\n// -------------------------\n\n.affix {\n  position: fixed;\n}\n","//\n// Breadcrumbs\n// --------------------------------------------------\n\n\n.breadcrumb {\n  padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal;\n  margin-bottom: @line-height-computed;\n  list-style: none;\n  background-color: @breadcrumb-bg;\n  border-radius: @border-radius-base;\n\n  > li {\n    display: inline-block;\n\n    + li:before {\n      content: \"@{breadcrumb-separator}\\00a0\"; // Unicode space added since inline-block means non-collapsing white-space\n      padding: 0 5px;\n      color: @breadcrumb-color;\n    }\n  }\n\n  > .active {\n    color: @breadcrumb-active-color;\n  }\n}\n","//\n// Pagination (multiple pages)\n// --------------------------------------------------\n.pagination {\n  display: inline-block;\n  padding-left: 0;\n  margin: @line-height-computed 0;\n  border-radius: @border-radius-base;\n\n  > li {\n    display: inline; // Remove list-style and block-level defaults\n    > a,\n    > span {\n      position: relative;\n      float: left; // Collapse white-space\n      padding: @padding-base-vertical @padding-base-horizontal;\n      line-height: @line-height-base;\n      text-decoration: none;\n      color: @pagination-color;\n      background-color: @pagination-bg;\n      border: 1px solid @pagination-border;\n      margin-left: -1px;\n    }\n    &:first-child {\n      > a,\n      > span {\n        margin-left: 0;\n        .border-left-radius(@border-radius-base);\n      }\n    }\n    &:last-child {\n      > a,\n      > span {\n        .border-right-radius(@border-radius-base);\n      }\n    }\n  }\n\n  > li > a,\n  > li > span {\n    &:hover,\n    &:focus {\n      color: @pagination-hover-color;\n      background-color: @pagination-hover-bg;\n      border-color: @pagination-hover-border;\n    }\n  }\n\n  > .active > a,\n  > .active > span {\n    &,\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: @pagination-active-color;\n      background-color: @pagination-active-bg;\n      border-color: @pagination-active-border;\n      cursor: default;\n    }\n  }\n\n  > .disabled {\n    > span,\n    > span:hover,\n    > span:focus,\n    > a,\n    > a:hover,\n    > a:focus {\n      color: @pagination-disabled-color;\n      background-color: @pagination-disabled-bg;\n      border-color: @pagination-disabled-border;\n      cursor: @cursor-disabled;\n    }\n  }\n}\n\n// Sizing\n// --------------------------------------------------\n\n// Large\n.pagination-lg {\n  .pagination-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @border-radius-large);\n}\n\n// Small\n.pagination-sm {\n  .pagination-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @border-radius-small);\n}\n","// Pagination\n\n.pagination-size(@padding-vertical; @padding-horizontal; @font-size; @border-radius) {\n  > li {\n    > a,\n    > span {\n      padding: @padding-vertical @padding-horizontal;\n      font-size: @font-size;\n    }\n    &:first-child {\n      > a,\n      > span {\n        .border-left-radius(@border-radius);\n      }\n    }\n    &:last-child {\n      > a,\n      > span {\n        .border-right-radius(@border-radius);\n      }\n    }\n  }\n}\n","//\n// Pager pagination\n// --------------------------------------------------\n\n\n.pager {\n  padding-left: 0;\n  margin: @line-height-computed 0;\n  list-style: none;\n  text-align: center;\n  &:extend(.clearfix all);\n  li {\n    display: inline;\n    > a,\n    > span {\n      display: inline-block;\n      padding: 5px 14px;\n      background-color: @pager-bg;\n      border: 1px solid @pager-border;\n      border-radius: @pager-border-radius;\n    }\n\n    > a:hover,\n    > a:focus {\n      text-decoration: none;\n      background-color: @pager-hover-bg;\n    }\n  }\n\n  .next {\n    > a,\n    > span {\n      float: right;\n    }\n  }\n\n  .previous {\n    > a,\n    > span {\n      float: left;\n    }\n  }\n\n  .disabled {\n    > a,\n    > a:hover,\n    > a:focus,\n    > span {\n      color: @pager-disabled-color;\n      background-color: @pager-bg;\n      cursor: @cursor-disabled;\n    }\n  }\n}\n","//\n// Labels\n// --------------------------------------------------\n\n.label {\n  display: inline;\n  padding: .2em .6em .3em;\n  font-size: 75%;\n  font-weight: bold;\n  line-height: 1;\n  color: @label-color;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: baseline;\n  border-radius: .25em;\n\n  // Add hover effects, but only for links\n  a& {\n    &:hover,\n    &:focus {\n      color: @label-link-hover-color;\n      text-decoration: none;\n      cursor: pointer;\n    }\n  }\n\n  // Empty labels collapse automatically (not available in IE8)\n  &:empty {\n    display: none;\n  }\n\n  // Quick fix for labels in buttons\n  .btn & {\n    position: relative;\n    top: -1px;\n  }\n}\n\n// Colors\n// Contextual variations (linked labels get darker on :hover)\n\n.label-default {\n  .label-variant(@label-default-bg);\n}\n\n.label-primary {\n  .label-variant(@label-primary-bg);\n}\n\n.label-success {\n  .label-variant(@label-success-bg);\n}\n\n.label-info {\n  .label-variant(@label-info-bg);\n}\n\n.label-warning {\n  .label-variant(@label-warning-bg);\n}\n\n.label-danger {\n  .label-variant(@label-danger-bg);\n}\n","// Labels\n\n.label-variant(@color) {\n  background-color: @color;\n\n  &[href] {\n    &:hover,\n    &:focus {\n      background-color: darken(@color, 10%);\n    }\n  }\n}\n","//\n// Badges\n// --------------------------------------------------\n\n\n// Base class\n.badge {\n  display: inline-block;\n  min-width: 10px;\n  padding: 3px 7px;\n  font-size: @font-size-small;\n  font-weight: @badge-font-weight;\n  color: @badge-color;\n  line-height: @badge-line-height;\n  vertical-align: baseline;\n  white-space: nowrap;\n  text-align: center;\n  background-color: @badge-bg;\n  border-radius: @badge-border-radius;\n\n  // Empty badges collapse automatically (not available in IE8)\n  &:empty {\n    display: none;\n  }\n\n  // Quick fix for badges in buttons\n  .btn & {\n    position: relative;\n    top: -1px;\n  }\n  .btn-xs & {\n    top: 0;\n    padding: 1px 5px;\n  }\n\n  // Hover state, but only for links\n  a& {\n    &:hover,\n    &:focus {\n      color: @badge-link-hover-color;\n      text-decoration: none;\n      cursor: pointer;\n    }\n  }\n\n  // Account for badges in navs\n  .list-group-item.active > &,\n  .nav-pills > .active > a > & {\n    color: @badge-active-color;\n    background-color: @badge-active-bg;\n  }\n  .list-group-item > & {\n    float: right;\n  }\n  .list-group-item > & + & {\n    margin-right: 5px;\n  }\n  .nav-pills > li > a > & {\n    margin-left: 3px;\n  }\n}\n","//\n// Jumbotron\n// --------------------------------------------------\n\n\n.jumbotron {\n  padding: @jumbotron-padding (@jumbotron-padding / 2);\n  margin-bottom: @jumbotron-padding;\n  color: @jumbotron-color;\n  background-color: @jumbotron-bg;\n\n  h1,\n  .h1 {\n    color: @jumbotron-heading-color;\n  }\n  p {\n    margin-bottom: (@jumbotron-padding / 2);\n    font-size: @jumbotron-font-size;\n    font-weight: 200;\n  }\n\n  > hr {\n    border-top-color: darken(@jumbotron-bg, 10%);\n  }\n\n  .container &,\n  .container-fluid & {\n    border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container\n  }\n\n  .container {\n    max-width: 100%;\n  }\n\n  @media screen and (min-width: @screen-sm-min) {\n    padding: (@jumbotron-padding * 1.6) 0;\n\n    .container &,\n    .container-fluid & {\n      padding-left:  (@jumbotron-padding * 2);\n      padding-right: (@jumbotron-padding * 2);\n    }\n\n    h1,\n    .h1 {\n      font-size: (@font-size-base * 4.5);\n    }\n  }\n}\n","//\n// Thumbnails\n// --------------------------------------------------\n\n\n// Mixin and adjust the regular image class\n.thumbnail {\n  display: block;\n  padding: @thumbnail-padding;\n  margin-bottom: @line-height-computed;\n  line-height: @line-height-base;\n  background-color: @thumbnail-bg;\n  border: 1px solid @thumbnail-border;\n  border-radius: @thumbnail-border-radius;\n  .transition(border .2s ease-in-out);\n\n  > img,\n  a > img {\n    &:extend(.img-responsive);\n    margin-left: auto;\n    margin-right: auto;\n  }\n\n  // Add a hover state for linked versions only\n  a&:hover,\n  a&:focus,\n  a&.active {\n    border-color: @link-color;\n  }\n\n  // Image captions\n  .caption {\n    padding: @thumbnail-caption-padding;\n    color: @thumbnail-caption-color;\n  }\n}\n","//\n// Alerts\n// --------------------------------------------------\n\n\n// Base styles\n// -------------------------\n\n.alert {\n  padding: @alert-padding;\n  margin-bottom: @line-height-computed;\n  border: 1px solid transparent;\n  border-radius: @alert-border-radius;\n\n  // Headings for larger alerts\n  h4 {\n    margin-top: 0;\n    // Specified for the h4 to prevent conflicts of changing @headings-color\n    color: inherit;\n  }\n  // Provide class for links that match alerts\n  .alert-link {\n    font-weight: @alert-link-font-weight;\n  }\n\n  // Improve alignment and spacing of inner content\n  > p,\n  > ul {\n    margin-bottom: 0;\n  }\n  > p + p {\n    margin-top: 5px;\n  }\n}\n\n// Dismissible alerts\n//\n// Expand the right padding and account for the close button's positioning.\n\n.alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0.\n.alert-dismissible {\n  padding-right: (@alert-padding + 20);\n\n  // Adjust close link position\n  .close {\n    position: relative;\n    top: -2px;\n    right: -21px;\n    color: inherit;\n  }\n}\n\n// Alternate styles\n//\n// Generate contextual modifier classes for colorizing the alert.\n\n.alert-success {\n  .alert-variant(@alert-success-bg; @alert-success-border; @alert-success-text);\n}\n.alert-info {\n  .alert-variant(@alert-info-bg; @alert-info-border; @alert-info-text);\n}\n.alert-warning {\n  .alert-variant(@alert-warning-bg; @alert-warning-border; @alert-warning-text);\n}\n.alert-danger {\n  .alert-variant(@alert-danger-bg; @alert-danger-border; @alert-danger-text);\n}\n","// Alerts\n\n.alert-variant(@background; @border; @text-color) {\n  background-color: @background;\n  border-color: @border;\n  color: @text-color;\n\n  hr {\n    border-top-color: darken(@border, 5%);\n  }\n  .alert-link {\n    color: darken(@text-color, 10%);\n  }\n}\n","//\n// Progress bars\n// --------------------------------------------------\n\n\n// Bar animations\n// -------------------------\n\n// WebKit\n@-webkit-keyframes progress-bar-stripes {\n  from  { background-position: 40px 0; }\n  to    { background-position: 0 0; }\n}\n\n// Spec and IE10+\n@keyframes progress-bar-stripes {\n  from  { background-position: 40px 0; }\n  to    { background-position: 0 0; }\n}\n\n\n// Bar itself\n// -------------------------\n\n// Outer container\n.progress {\n  overflow: hidden;\n  height: @line-height-computed;\n  margin-bottom: @line-height-computed;\n  background-color: @progress-bg;\n  border-radius: @progress-border-radius;\n  .box-shadow(inset 0 1px 2px rgba(0,0,0,.1));\n}\n\n// Bar of progress\n.progress-bar {\n  float: left;\n  width: 0%;\n  height: 100%;\n  font-size: @font-size-small;\n  line-height: @line-height-computed;\n  color: @progress-bar-color;\n  text-align: center;\n  background-color: @progress-bar-bg;\n  .box-shadow(inset 0 -1px 0 rgba(0,0,0,.15));\n  .transition(width .6s ease);\n}\n\n// Striped bars\n//\n// `.progress-striped .progress-bar` is deprecated as of v3.2.0 in favor of the\n// `.progress-bar-striped` class, which you just add to an existing\n// `.progress-bar`.\n.progress-striped .progress-bar,\n.progress-bar-striped {\n  #gradient > .striped();\n  background-size: 40px 40px;\n}\n\n// Call animation for the active one\n//\n// `.progress.active .progress-bar` is deprecated as of v3.2.0 in favor of the\n// `.progress-bar.active` approach.\n.progress.active .progress-bar,\n.progress-bar.active {\n  .animation(progress-bar-stripes 2s linear infinite);\n}\n\n\n// Variations\n// -------------------------\n\n.progress-bar-success {\n  .progress-bar-variant(@progress-bar-success-bg);\n}\n\n.progress-bar-info {\n  .progress-bar-variant(@progress-bar-info-bg);\n}\n\n.progress-bar-warning {\n  .progress-bar-variant(@progress-bar-warning-bg);\n}\n\n.progress-bar-danger {\n  .progress-bar-variant(@progress-bar-danger-bg);\n}\n","// Gradients\n\n#gradient {\n\n  // Horizontal gradient, from left to right\n  //\n  // Creates two color stops, start and end, by specifying a color and position for each color stop.\n  // Color stops are not available in IE9 and below.\n  .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n    background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n    background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12\n    background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n    background-repeat: repeat-x;\n    filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down\n  }\n\n  // Vertical gradient, from top to bottom\n  //\n  // Creates two color stops, start and end, by specifying a color and position for each color stop.\n  // Color stops are not available in IE9 and below.\n  .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n    background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent);  // Safari 5.1-6, Chrome 10+\n    background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent);  // Opera 12\n    background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n    background-repeat: repeat-x;\n    filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down\n  }\n\n  .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {\n    background-repeat: repeat-x;\n    background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+\n    background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12\n    background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n  }\n  .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n    background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n    background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n    background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);\n    background-repeat: no-repeat;\n    filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n  }\n  .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n    background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n    background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n    background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n    background-repeat: no-repeat;\n    filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n  }\n  .radial(@inner-color: #555; @outer-color: #333) {\n    background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);\n    background-image: radial-gradient(circle, @inner-color, @outer-color);\n    background-repeat: no-repeat;\n  }\n  .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {\n    background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n    background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n    background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n  }\n}\n","// Progress bars\n\n.progress-bar-variant(@color) {\n  background-color: @color;\n\n  // Deprecated parent class requirement as of v3.2.0\n  .progress-striped & {\n    #gradient > .striped();\n  }\n}\n",".media {\n  // Proper spacing between instances of .media\n  margin-top: 15px;\n\n  &:first-child {\n    margin-top: 0;\n  }\n}\n\n.media-right,\n.media > .pull-right {\n  padding-left: 10px;\n}\n\n.media-left,\n.media > .pull-left {\n  padding-right: 10px;\n}\n\n.media-left,\n.media-right,\n.media-body {\n  display: table-cell;\n  vertical-align: top;\n}\n\n.media-middle {\n  vertical-align: middle;\n}\n\n.media-bottom {\n  vertical-align: bottom;\n}\n\n// Reset margins on headings for tighter default spacing\n.media-heading {\n  margin-top: 0;\n  margin-bottom: 5px;\n}\n\n// Media list variation\n//\n// Undo default ul/ol styles\n.media-list {\n  padding-left: 0;\n  list-style: none;\n}\n","//\n// List groups\n// --------------------------------------------------\n\n\n// Base class\n//\n// Easily usable on <ul>, <ol>, or <div>.\n\n.list-group {\n  // No need to set list-style: none; since .list-group-item is block level\n  margin-bottom: 20px;\n  padding-left: 0; // reset padding because ul and ol\n}\n\n\n// Individual list items\n//\n// Use on `li`s or `div`s within the `.list-group` parent.\n\n.list-group-item {\n  position: relative;\n  display: block;\n  padding: 10px 15px;\n  // Place the border on the list items and negative margin up for better styling\n  margin-bottom: -1px;\n  background-color: @list-group-bg;\n  border: 1px solid @list-group-border;\n\n  // Round the first and last items\n  &:first-child {\n    .border-top-radius(@list-group-border-radius);\n  }\n  &:last-child {\n    margin-bottom: 0;\n    .border-bottom-radius(@list-group-border-radius);\n  }\n}\n\n\n// Linked list items\n//\n// Use anchor elements instead of `li`s or `div`s to create linked list items.\n// Includes an extra `.active` modifier class for showing selected items.\n\na.list-group-item {\n  color: @list-group-link-color;\n\n  .list-group-item-heading {\n    color: @list-group-link-heading-color;\n  }\n\n  // Hover state\n  &:hover,\n  &:focus {\n    text-decoration: none;\n    color: @list-group-link-hover-color;\n    background-color: @list-group-hover-bg;\n  }\n}\n\n.list-group-item {\n  // Disabled state\n  &.disabled,\n  &.disabled:hover,\n  &.disabled:focus {\n    background-color: @list-group-disabled-bg;\n    color: @list-group-disabled-color;\n    cursor: @cursor-disabled;\n\n    // Force color to inherit for custom content\n    .list-group-item-heading {\n      color: inherit;\n    }\n    .list-group-item-text {\n      color: @list-group-disabled-text-color;\n    }\n  }\n\n  // Active class on item itself, not parent\n  &.active,\n  &.active:hover,\n  &.active:focus {\n    z-index: 2; // Place active items above their siblings for proper border styling\n    color: @list-group-active-color;\n    background-color: @list-group-active-bg;\n    border-color: @list-group-active-border;\n\n    // Force color to inherit for custom content\n    .list-group-item-heading,\n    .list-group-item-heading > small,\n    .list-group-item-heading > .small {\n      color: inherit;\n    }\n    .list-group-item-text {\n      color: @list-group-active-text-color;\n    }\n  }\n}\n\n\n// Contextual variants\n//\n// Add modifier classes to change text and background color on individual items.\n// Organizationally, this must come after the `:hover` states.\n\n.list-group-item-variant(success; @state-success-bg; @state-success-text);\n.list-group-item-variant(info; @state-info-bg; @state-info-text);\n.list-group-item-variant(warning; @state-warning-bg; @state-warning-text);\n.list-group-item-variant(danger; @state-danger-bg; @state-danger-text);\n\n\n// Custom content options\n//\n// Extra classes for creating well-formatted content within `.list-group-item`s.\n\n.list-group-item-heading {\n  margin-top: 0;\n  margin-bottom: 5px;\n}\n.list-group-item-text {\n  margin-bottom: 0;\n  line-height: 1.3;\n}\n","// List Groups\n\n.list-group-item-variant(@state; @background; @color) {\n  .list-group-item-@{state} {\n    color: @color;\n    background-color: @background;\n\n    a& {\n      color: @color;\n\n      .list-group-item-heading {\n        color: inherit;\n      }\n\n      &:hover,\n      &:focus {\n        color: @color;\n        background-color: darken(@background, 5%);\n      }\n      &.active,\n      &.active:hover,\n      &.active:focus {\n        color: #fff;\n        background-color: @color;\n        border-color: @color;\n      }\n    }\n  }\n}\n","//\n// Panels\n// --------------------------------------------------\n\n\n// Base class\n.panel {\n  margin-bottom: @line-height-computed;\n  background-color: @panel-bg;\n  border: 1px solid transparent;\n  border-radius: @panel-border-radius;\n  .box-shadow(0 1px 1px rgba(0,0,0,.05));\n}\n\n// Panel contents\n.panel-body {\n  padding: @panel-body-padding;\n  &:extend(.clearfix all);\n}\n\n// Optional heading\n.panel-heading {\n  padding: @panel-heading-padding;\n  border-bottom: 1px solid transparent;\n  .border-top-radius((@panel-border-radius - 1));\n\n  > .dropdown .dropdown-toggle {\n    color: inherit;\n  }\n}\n\n// Within heading, strip any `h*` tag of its default margins for spacing.\n.panel-title {\n  margin-top: 0;\n  margin-bottom: 0;\n  font-size: ceil((@font-size-base * 1.125));\n  color: inherit;\n\n  > a {\n    color: inherit;\n  }\n}\n\n// Optional footer (stays gray in every modifier class)\n.panel-footer {\n  padding: @panel-footer-padding;\n  background-color: @panel-footer-bg;\n  border-top: 1px solid @panel-inner-border;\n  .border-bottom-radius((@panel-border-radius - 1));\n}\n\n\n// List groups in panels\n//\n// By default, space out list group content from panel headings to account for\n// any kind of custom content between the two.\n\n.panel {\n  > .list-group,\n  > .panel-collapse > .list-group {\n    margin-bottom: 0;\n\n    .list-group-item {\n      border-width: 1px 0;\n      border-radius: 0;\n    }\n\n    // Add border top radius for first one\n    &:first-child {\n      .list-group-item:first-child {\n        border-top: 0;\n        .border-top-radius((@panel-border-radius - 1));\n      }\n    }\n    // Add border bottom radius for last one\n    &:last-child {\n      .list-group-item:last-child {\n        border-bottom: 0;\n        .border-bottom-radius((@panel-border-radius - 1));\n      }\n    }\n  }\n}\n// Collapse space between when there's no additional content.\n.panel-heading + .list-group {\n  .list-group-item:first-child {\n    border-top-width: 0;\n  }\n}\n.list-group + .panel-footer {\n  border-top-width: 0;\n}\n\n// Tables in panels\n//\n// Place a non-bordered `.table` within a panel (not within a `.panel-body`) and\n// watch it go full width.\n\n.panel {\n  > .table,\n  > .table-responsive > .table,\n  > .panel-collapse > .table {\n    margin-bottom: 0;\n\n    caption {\n      padding-left: @panel-body-padding;\n      padding-right: @panel-body-padding;\n    }\n  }\n  // Add border top radius for first one\n  > .table:first-child,\n  > .table-responsive:first-child > .table:first-child {\n    .border-top-radius((@panel-border-radius - 1));\n\n    > thead:first-child,\n    > tbody:first-child {\n      > tr:first-child {\n        border-top-left-radius: (@panel-border-radius - 1);\n        border-top-right-radius: (@panel-border-radius - 1);\n\n        td:first-child,\n        th:first-child {\n          border-top-left-radius: (@panel-border-radius - 1);\n        }\n        td:last-child,\n        th:last-child {\n          border-top-right-radius: (@panel-border-radius - 1);\n        }\n      }\n    }\n  }\n  // Add border bottom radius for last one\n  > .table:last-child,\n  > .table-responsive:last-child > .table:last-child {\n    .border-bottom-radius((@panel-border-radius - 1));\n\n    > tbody:last-child,\n    > tfoot:last-child {\n      > tr:last-child {\n        border-bottom-left-radius: (@panel-border-radius - 1);\n        border-bottom-right-radius: (@panel-border-radius - 1);\n\n        td:first-child,\n        th:first-child {\n          border-bottom-left-radius: (@panel-border-radius - 1);\n        }\n        td:last-child,\n        th:last-child {\n          border-bottom-right-radius: (@panel-border-radius - 1);\n        }\n      }\n    }\n  }\n  > .panel-body + .table,\n  > .panel-body + .table-responsive,\n  > .table + .panel-body,\n  > .table-responsive + .panel-body {\n    border-top: 1px solid @table-border-color;\n  }\n  > .table > tbody:first-child > tr:first-child th,\n  > .table > tbody:first-child > tr:first-child td {\n    border-top: 0;\n  }\n  > .table-bordered,\n  > .table-responsive > .table-bordered {\n    border: 0;\n    > thead,\n    > tbody,\n    > tfoot {\n      > tr {\n        > th:first-child,\n        > td:first-child {\n          border-left: 0;\n        }\n        > th:last-child,\n        > td:last-child {\n          border-right: 0;\n        }\n      }\n    }\n    > thead,\n    > tbody {\n      > tr:first-child {\n        > td,\n        > th {\n          border-bottom: 0;\n        }\n      }\n    }\n    > tbody,\n    > tfoot {\n      > tr:last-child {\n        > td,\n        > th {\n          border-bottom: 0;\n        }\n      }\n    }\n  }\n  > .table-responsive {\n    border: 0;\n    margin-bottom: 0;\n  }\n}\n\n\n// Collapsable panels (aka, accordion)\n//\n// Wrap a series of panels in `.panel-group` to turn them into an accordion with\n// the help of our collapse JavaScript plugin.\n\n.panel-group {\n  margin-bottom: @line-height-computed;\n\n  // Tighten up margin so it's only between panels\n  .panel {\n    margin-bottom: 0;\n    border-radius: @panel-border-radius;\n\n    + .panel {\n      margin-top: 5px;\n    }\n  }\n\n  .panel-heading {\n    border-bottom: 0;\n\n    + .panel-collapse > .panel-body,\n    + .panel-collapse > .list-group {\n      border-top: 1px solid @panel-inner-border;\n    }\n  }\n\n  .panel-footer {\n    border-top: 0;\n    + .panel-collapse .panel-body {\n      border-bottom: 1px solid @panel-inner-border;\n    }\n  }\n}\n\n\n// Contextual variations\n.panel-default {\n  .panel-variant(@panel-default-border; @panel-default-text; @panel-default-heading-bg; @panel-default-border);\n}\n.panel-primary {\n  .panel-variant(@panel-primary-border; @panel-primary-text; @panel-primary-heading-bg; @panel-primary-border);\n}\n.panel-success {\n  .panel-variant(@panel-success-border; @panel-success-text; @panel-success-heading-bg; @panel-success-border);\n}\n.panel-info {\n  .panel-variant(@panel-info-border; @panel-info-text; @panel-info-heading-bg; @panel-info-border);\n}\n.panel-warning {\n  .panel-variant(@panel-warning-border; @panel-warning-text; @panel-warning-heading-bg; @panel-warning-border);\n}\n.panel-danger {\n  .panel-variant(@panel-danger-border; @panel-danger-text; @panel-danger-heading-bg; @panel-danger-border);\n}\n","// Panels\n\n.panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) {\n  border-color: @border;\n\n  & > .panel-heading {\n    color: @heading-text-color;\n    background-color: @heading-bg-color;\n    border-color: @heading-border;\n\n    + .panel-collapse > .panel-body {\n      border-top-color: @border;\n    }\n    .badge {\n      color: @heading-bg-color;\n      background-color: @heading-text-color;\n    }\n  }\n  & > .panel-footer {\n    + .panel-collapse > .panel-body {\n      border-bottom-color: @border;\n    }\n  }\n}\n","// Embeds responsive\n//\n// Credit: Nicolas Gallagher and SUIT CSS.\n\n.embed-responsive {\n  position: relative;\n  display: block;\n  height: 0;\n  padding: 0;\n  overflow: hidden;\n\n  .embed-responsive-item,\n  iframe,\n  embed,\n  object,\n  video {\n    position: absolute;\n    top: 0;\n    left: 0;\n    bottom: 0;\n    height: 100%;\n    width: 100%;\n    border: 0;\n  }\n\n  // Modifier class for 16:9 aspect ratio\n  &.embed-responsive-16by9 {\n    padding-bottom: 56.25%;\n  }\n\n  // Modifier class for 4:3 aspect ratio\n  &.embed-responsive-4by3 {\n    padding-bottom: 75%;\n  }\n}\n","//\n// Wells\n// --------------------------------------------------\n\n\n// Base class\n.well {\n  min-height: 20px;\n  padding: 19px;\n  margin-bottom: 20px;\n  background-color: @well-bg;\n  border: 1px solid @well-border;\n  border-radius: @border-radius-base;\n  .box-shadow(inset 0 1px 1px rgba(0,0,0,.05));\n  blockquote {\n    border-color: #ddd;\n    border-color: rgba(0,0,0,.15);\n  }\n}\n\n// Sizes\n.well-lg {\n  padding: 24px;\n  border-radius: @border-radius-large;\n}\n.well-sm {\n  padding: 9px;\n  border-radius: @border-radius-small;\n}\n","//\n// Close icons\n// --------------------------------------------------\n\n\n.close {\n  float: right;\n  font-size: (@font-size-base * 1.5);\n  font-weight: @close-font-weight;\n  line-height: 1;\n  color: @close-color;\n  text-shadow: @close-text-shadow;\n  .opacity(.2);\n\n  &:hover,\n  &:focus {\n    color: @close-color;\n    text-decoration: none;\n    cursor: pointer;\n    .opacity(.5);\n  }\n\n  // Additional properties for button version\n  // iOS requires the button element instead of an anchor tag.\n  // If you want the anchor version, it requires `href=\"#\"`.\n  button& {\n    padding: 0;\n    cursor: pointer;\n    background: transparent;\n    border: 0;\n    -webkit-appearance: none;\n  }\n}\n","//\n// Modals\n// --------------------------------------------------\n\n// .modal-open      - body class for killing the scroll\n// .modal           - container to scroll within\n// .modal-dialog    - positioning shell for the actual modal\n// .modal-content   - actual modal w/ bg and corners and shit\n\n// Kill the scroll on the body\n.modal-open {\n  overflow: hidden;\n}\n\n// Container that the modal scrolls within\n.modal {\n  display: none;\n  overflow: hidden;\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: @zindex-modal;\n  -webkit-overflow-scrolling: touch;\n\n  // Prevent Chrome on Windows from adding a focus outline. For details, see\n  // https://github.com/twbs/bootstrap/pull/10951.\n  outline: 0;\n\n  // When fading in the modal, animate it to slide down\n  &.fade .modal-dialog {\n    .translate(0, -25%);\n    .transition-transform(~\"0.3s ease-out\");\n  }\n  &.in .modal-dialog { .translate(0, 0) }\n}\n.modal-open .modal {\n  overflow-x: hidden;\n  overflow-y: auto;\n}\n\n// Shell div to position the modal with bottom padding\n.modal-dialog {\n  position: relative;\n  width: auto;\n  margin: 10px;\n}\n\n// Actual modal\n.modal-content {\n  position: relative;\n  background-color: @modal-content-bg;\n  border: 1px solid @modal-content-fallback-border-color; //old browsers fallback (ie8 etc)\n  border: 1px solid @modal-content-border-color;\n  border-radius: @border-radius-large;\n  .box-shadow(0 3px 9px rgba(0,0,0,.5));\n  background-clip: padding-box;\n  // Remove focus outline from opened modal\n  outline: 0;\n}\n\n// Modal background\n.modal-backdrop {\n  position: absolute;\n  top: 0;\n  right: 0;\n  left: 0;\n  background-color: @modal-backdrop-bg;\n  // Fade for backdrop\n  &.fade { .opacity(0); }\n  &.in { .opacity(@modal-backdrop-opacity); }\n}\n\n// Modal header\n// Top section of the modal w/ title and dismiss\n.modal-header {\n  padding: @modal-title-padding;\n  border-bottom: 1px solid @modal-header-border-color;\n  min-height: (@modal-title-padding + @modal-title-line-height);\n}\n// Close icon\n.modal-header .close {\n  margin-top: -2px;\n}\n\n// Title text within header\n.modal-title {\n  margin: 0;\n  line-height: @modal-title-line-height;\n}\n\n// Modal body\n// Where all modal content resides (sibling of .modal-header and .modal-footer)\n.modal-body {\n  position: relative;\n  padding: @modal-inner-padding;\n}\n\n// Footer (for actions)\n.modal-footer {\n  padding: @modal-inner-padding;\n  text-align: right; // right align buttons\n  border-top: 1px solid @modal-footer-border-color;\n  &:extend(.clearfix all); // clear it in case folks use .pull-* classes on buttons\n\n  // Properly space out buttons\n  .btn + .btn {\n    margin-left: 5px;\n    margin-bottom: 0; // account for input[type=\"submit\"] which gets the bottom margin like all other inputs\n  }\n  // but override that for button groups\n  .btn-group .btn + .btn {\n    margin-left: -1px;\n  }\n  // and override it for block buttons as well\n  .btn-block + .btn-block {\n    margin-left: 0;\n  }\n}\n\n// Measure scrollbar width for padding body during modal show/hide\n.modal-scrollbar-measure {\n  position: absolute;\n  top: -9999px;\n  width: 50px;\n  height: 50px;\n  overflow: scroll;\n}\n\n// Scale up the modal\n@media (min-width: @screen-sm-min) {\n  // Automatically set modal's width for larger viewports\n  .modal-dialog {\n    width: @modal-md;\n    margin: 30px auto;\n  }\n  .modal-content {\n    .box-shadow(0 5px 15px rgba(0,0,0,.5));\n  }\n\n  // Modal sizes\n  .modal-sm { width: @modal-sm; }\n}\n\n@media (min-width: @screen-md-min) {\n  .modal-lg { width: @modal-lg; }\n}\n","//\n// Tooltips\n// --------------------------------------------------\n\n\n// Base class\n.tooltip {\n  position: absolute;\n  z-index: @zindex-tooltip;\n  display: block;\n  visibility: visible;\n  // Reset font and text propertes given new insertion method\n  font-family: @font-family-base;\n  font-size: @font-size-small;\n  font-weight: normal;\n  line-height: 1.4;\n  .opacity(0);\n\n  &.in     { .opacity(@tooltip-opacity); }\n  &.top    { margin-top:  -3px; padding: @tooltip-arrow-width 0; }\n  &.right  { margin-left:  3px; padding: 0 @tooltip-arrow-width; }\n  &.bottom { margin-top:   3px; padding: @tooltip-arrow-width 0; }\n  &.left   { margin-left: -3px; padding: 0 @tooltip-arrow-width; }\n}\n\n// Wrapper for the tooltip content\n.tooltip-inner {\n  max-width: @tooltip-max-width;\n  padding: 3px 8px;\n  color: @tooltip-color;\n  text-align: center;\n  text-decoration: none;\n  background-color: @tooltip-bg;\n  border-radius: @border-radius-base;\n}\n\n// Arrows\n.tooltip-arrow {\n  position: absolute;\n  width: 0;\n  height: 0;\n  border-color: transparent;\n  border-style: solid;\n}\n// Note: Deprecated .top-left, .top-right, .bottom-left, and .bottom-right as of v3.3.1\n.tooltip {\n  &.top .tooltip-arrow {\n    bottom: 0;\n    left: 50%;\n    margin-left: -@tooltip-arrow-width;\n    border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n    border-top-color: @tooltip-arrow-color;\n  }\n  &.top-left .tooltip-arrow {\n    bottom: 0;\n    right: @tooltip-arrow-width;\n    margin-bottom: -@tooltip-arrow-width;\n    border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n    border-top-color: @tooltip-arrow-color;\n  }\n  &.top-right .tooltip-arrow {\n    bottom: 0;\n    left: @tooltip-arrow-width;\n    margin-bottom: -@tooltip-arrow-width;\n    border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n    border-top-color: @tooltip-arrow-color;\n  }\n  &.right .tooltip-arrow {\n    top: 50%;\n    left: 0;\n    margin-top: -@tooltip-arrow-width;\n    border-width: @tooltip-arrow-width @tooltip-arrow-width @tooltip-arrow-width 0;\n    border-right-color: @tooltip-arrow-color;\n  }\n  &.left .tooltip-arrow {\n    top: 50%;\n    right: 0;\n    margin-top: -@tooltip-arrow-width;\n    border-width: @tooltip-arrow-width 0 @tooltip-arrow-width @tooltip-arrow-width;\n    border-left-color: @tooltip-arrow-color;\n  }\n  &.bottom .tooltip-arrow {\n    top: 0;\n    left: 50%;\n    margin-left: -@tooltip-arrow-width;\n    border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n    border-bottom-color: @tooltip-arrow-color;\n  }\n  &.bottom-left .tooltip-arrow {\n    top: 0;\n    right: @tooltip-arrow-width;\n    margin-top: -@tooltip-arrow-width;\n    border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n    border-bottom-color: @tooltip-arrow-color;\n  }\n  &.bottom-right .tooltip-arrow {\n    top: 0;\n    left: @tooltip-arrow-width;\n    margin-top: -@tooltip-arrow-width;\n    border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n    border-bottom-color: @tooltip-arrow-color;\n  }\n}\n","//\n// Popovers\n// --------------------------------------------------\n\n\n.popover {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: @zindex-popover;\n  display: none;\n  max-width: @popover-max-width;\n  padding: 1px;\n  // Reset font and text propertes given new insertion method\n  font-family: @font-family-base;\n  font-size: @font-size-base;\n  font-weight: normal;\n  line-height: @line-height-base;\n  text-align: left;\n  background-color: @popover-bg;\n  background-clip: padding-box;\n  border: 1px solid @popover-fallback-border-color;\n  border: 1px solid @popover-border-color;\n  border-radius: @border-radius-large;\n  .box-shadow(0 5px 10px rgba(0,0,0,.2));\n\n  // Overrides for proper insertion\n  white-space: normal;\n\n  // Offset the popover to account for the popover arrow\n  &.top     { margin-top: -@popover-arrow-width; }\n  &.right   { margin-left: @popover-arrow-width; }\n  &.bottom  { margin-top: @popover-arrow-width; }\n  &.left    { margin-left: -@popover-arrow-width; }\n}\n\n.popover-title {\n  margin: 0; // reset heading margin\n  padding: 8px 14px;\n  font-size: @font-size-base;\n  background-color: @popover-title-bg;\n  border-bottom: 1px solid darken(@popover-title-bg, 5%);\n  border-radius: (@border-radius-large - 1) (@border-radius-large - 1) 0 0;\n}\n\n.popover-content {\n  padding: 9px 14px;\n}\n\n// Arrows\n//\n// .arrow is outer, .arrow:after is inner\n\n.popover > .arrow {\n  &,\n  &:after {\n    position: absolute;\n    display: block;\n    width: 0;\n    height: 0;\n    border-color: transparent;\n    border-style: solid;\n  }\n}\n.popover > .arrow {\n  border-width: @popover-arrow-outer-width;\n}\n.popover > .arrow:after {\n  border-width: @popover-arrow-width;\n  content: \"\";\n}\n\n.popover {\n  &.top > .arrow {\n    left: 50%;\n    margin-left: -@popover-arrow-outer-width;\n    border-bottom-width: 0;\n    border-top-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n    border-top-color: @popover-arrow-outer-color;\n    bottom: -@popover-arrow-outer-width;\n    &:after {\n      content: \" \";\n      bottom: 1px;\n      margin-left: -@popover-arrow-width;\n      border-bottom-width: 0;\n      border-top-color: @popover-arrow-color;\n    }\n  }\n  &.right > .arrow {\n    top: 50%;\n    left: -@popover-arrow-outer-width;\n    margin-top: -@popover-arrow-outer-width;\n    border-left-width: 0;\n    border-right-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n    border-right-color: @popover-arrow-outer-color;\n    &:after {\n      content: \" \";\n      left: 1px;\n      bottom: -@popover-arrow-width;\n      border-left-width: 0;\n      border-right-color: @popover-arrow-color;\n    }\n  }\n  &.bottom > .arrow {\n    left: 50%;\n    margin-left: -@popover-arrow-outer-width;\n    border-top-width: 0;\n    border-bottom-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n    border-bottom-color: @popover-arrow-outer-color;\n    top: -@popover-arrow-outer-width;\n    &:after {\n      content: \" \";\n      top: 1px;\n      margin-left: -@popover-arrow-width;\n      border-top-width: 0;\n      border-bottom-color: @popover-arrow-color;\n    }\n  }\n\n  &.left > .arrow {\n    top: 50%;\n    right: -@popover-arrow-outer-width;\n    margin-top: -@popover-arrow-outer-width;\n    border-right-width: 0;\n    border-left-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n    border-left-color: @popover-arrow-outer-color;\n    &:after {\n      content: \" \";\n      right: 1px;\n      border-right-width: 0;\n      border-left-color: @popover-arrow-color;\n      bottom: -@popover-arrow-width;\n    }\n  }\n}\n","//\n// Carousel\n// --------------------------------------------------\n\n\n// Wrapper for the slide container and indicators\n.carousel {\n  position: relative;\n}\n\n.carousel-inner {\n  position: relative;\n  overflow: hidden;\n  width: 100%;\n\n  > .item {\n    display: none;\n    position: relative;\n    .transition(.6s ease-in-out left);\n\n    // Account for jankitude on images\n    > img,\n    > a > img {\n      &:extend(.img-responsive);\n      line-height: 1;\n    }\n\n    // WebKit CSS3 transforms for supported devices\n    @media all and (transform-3d), (-webkit-transform-3d) {\n      transition: transform .6s ease-in-out;\n      backface-visibility: hidden;\n      perspective: 1000;\n\n      &.next,\n      &.active.right {\n        transform: translate3d(100%, 0, 0);\n        left: 0;\n      }\n      &.prev,\n      &.active.left {\n        transform: translate3d(-100%, 0, 0);\n        left: 0;\n      }\n      &.next.left,\n      &.prev.right,\n      &.active {\n        transform: translate3d(0, 0, 0);\n        left: 0;\n      }\n    }\n  }\n\n  > .active,\n  > .next,\n  > .prev {\n    display: block;\n  }\n\n  > .active {\n    left: 0;\n  }\n\n  > .next,\n  > .prev {\n    position: absolute;\n    top: 0;\n    width: 100%;\n  }\n\n  > .next {\n    left: 100%;\n  }\n  > .prev {\n    left: -100%;\n  }\n  > .next.left,\n  > .prev.right {\n    left: 0;\n  }\n\n  > .active.left {\n    left: -100%;\n  }\n  > .active.right {\n    left: 100%;\n  }\n\n}\n\n// Left/right controls for nav\n// ---------------------------\n\n.carousel-control {\n  position: absolute;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  width: @carousel-control-width;\n  .opacity(@carousel-control-opacity);\n  font-size: @carousel-control-font-size;\n  color: @carousel-control-color;\n  text-align: center;\n  text-shadow: @carousel-text-shadow;\n  // We can't have this transition here because WebKit cancels the carousel\n  // animation if you trip this while in the middle of another animation.\n\n  // Set gradients for backgrounds\n  &.left {\n    #gradient > .horizontal(@start-color: rgba(0,0,0,.5); @end-color: rgba(0,0,0,.0001));\n  }\n  &.right {\n    left: auto;\n    right: 0;\n    #gradient > .horizontal(@start-color: rgba(0,0,0,.0001); @end-color: rgba(0,0,0,.5));\n  }\n\n  // Hover/focus state\n  &:hover,\n  &:focus {\n    outline: 0;\n    color: @carousel-control-color;\n    text-decoration: none;\n    .opacity(.9);\n  }\n\n  // Toggles\n  .icon-prev,\n  .icon-next,\n  .glyphicon-chevron-left,\n  .glyphicon-chevron-right {\n    position: absolute;\n    top: 50%;\n    z-index: 5;\n    display: inline-block;\n  }\n  .icon-prev,\n  .glyphicon-chevron-left {\n    left: 50%;\n    margin-left: -10px;\n  }\n  .icon-next,\n  .glyphicon-chevron-right {\n    right: 50%;\n    margin-right: -10px;\n  }\n  .icon-prev,\n  .icon-next {\n    width:  20px;\n    height: 20px;\n    margin-top: -10px;\n    font-family: serif;\n  }\n\n\n  .icon-prev {\n    &:before {\n      content: '\\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039)\n    }\n  }\n  .icon-next {\n    &:before {\n      content: '\\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A)\n    }\n  }\n}\n\n// Optional indicator pips\n//\n// Add an unordered list with the following class and add a list item for each\n// slide your carousel holds.\n\n.carousel-indicators {\n  position: absolute;\n  bottom: 10px;\n  left: 50%;\n  z-index: 15;\n  width: 60%;\n  margin-left: -30%;\n  padding-left: 0;\n  list-style: none;\n  text-align: center;\n\n  li {\n    display: inline-block;\n    width:  10px;\n    height: 10px;\n    margin: 1px;\n    text-indent: -999px;\n    border: 1px solid @carousel-indicator-border-color;\n    border-radius: 10px;\n    cursor: pointer;\n\n    // IE8-9 hack for event handling\n    //\n    // Internet Explorer 8-9 does not support clicks on elements without a set\n    // `background-color`. We cannot use `filter` since that's not viewed as a\n    // background color by the browser. Thus, a hack is needed.\n    //\n    // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we\n    // set alpha transparency for the best results possible.\n    background-color: #000 \\9; // IE8\n    background-color: rgba(0,0,0,0); // IE9\n  }\n  .active {\n    margin: 0;\n    width:  12px;\n    height: 12px;\n    background-color: @carousel-indicator-active-bg;\n  }\n}\n\n// Optional captions\n// -----------------------------\n// Hidden by default for smaller viewports\n.carousel-caption {\n  position: absolute;\n  left: 15%;\n  right: 15%;\n  bottom: 20px;\n  z-index: 10;\n  padding-top: 20px;\n  padding-bottom: 20px;\n  color: @carousel-caption-color;\n  text-align: center;\n  text-shadow: @carousel-text-shadow;\n  & .btn {\n    text-shadow: none; // No shadow for button elements in carousel-caption\n  }\n}\n\n\n// Scale up controls for tablets and up\n@media screen and (min-width: @screen-sm-min) {\n\n  // Scale up the controls a smidge\n  .carousel-control {\n    .glyphicon-chevron-left,\n    .glyphicon-chevron-right,\n    .icon-prev,\n    .icon-next {\n      width: 30px;\n      height: 30px;\n      margin-top: -15px;\n      font-size: 30px;\n    }\n    .glyphicon-chevron-left,\n    .icon-prev {\n      margin-left: -15px;\n    }\n    .glyphicon-chevron-right,\n    .icon-next {\n      margin-right: -15px;\n    }\n  }\n\n  // Show and left align the captions\n  .carousel-caption {\n    left: 20%;\n    right: 20%;\n    padding-bottom: 30px;\n  }\n\n  // Move up the indicators\n  .carousel-indicators {\n    bottom: 20px;\n  }\n}\n","// Clearfix\n//\n// For modern browsers\n// 1. The space content is one way to avoid an Opera bug when the\n//    contenteditable attribute is included anywhere else in the document.\n//    Otherwise it causes space to appear at the top and bottom of elements\n//    that are clearfixed.\n// 2. The use of `table` rather than `block` is only necessary if using\n//    `:before` to contain the top-margins of child elements.\n//\n// Source: http://nicolasgallagher.com/micro-clearfix-hack/\n\n.clearfix() {\n  &:before,\n  &:after {\n    content: \" \"; // 1\n    display: table; // 2\n  }\n  &:after {\n    clear: both;\n  }\n}\n","// Center-align a block level element\n\n.center-block() {\n  display: block;\n  margin-left: auto;\n  margin-right: auto;\n}\n","// CSS image replacement\n//\n// Heads up! v3 launched with with only `.hide-text()`, but per our pattern for\n// mixins being reused as classes with the same name, this doesn't hold up. As\n// of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`.\n//\n// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757\n\n// Deprecated as of v3.0.1 (will be removed in v4)\n.hide-text() {\n  font: ~\"0/0\" a;\n  color: transparent;\n  text-shadow: none;\n  background-color: transparent;\n  border: 0;\n}\n\n// New mixin to use as of v3.0.1\n.text-hide() {\n  .hide-text();\n}\n","//\n// Responsive: Utility classes\n// --------------------------------------------------\n\n\n// IE10 in Windows (Phone) 8\n//\n// Support for responsive views via media queries is kind of borked in IE10, for\n// Surface/desktop in split view and for Windows Phone 8. This particular fix\n// must be accompanied by a snippet of JavaScript to sniff the user agent and\n// apply some conditional CSS to *only* the Surface/desktop Windows 8. Look at\n// our Getting Started page for more information on this bug.\n//\n// For more information, see the following:\n//\n// Issue: https://github.com/twbs/bootstrap/issues/10497\n// Docs: http://getbootstrap.com/getting-started/#support-ie10-width\n// Source: http://timkadlec.com/2013/01/windows-phone-8-and-device-width/\n// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/\n\n@-ms-viewport {\n  width: device-width;\n}\n\n\n// Visibility utilities\n// Note: Deprecated .visible-xs, .visible-sm, .visible-md, and .visible-lg as of v3.2.0\n.visible-xs,\n.visible-sm,\n.visible-md,\n.visible-lg {\n  .responsive-invisibility();\n}\n\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n  display: none !important;\n}\n\n.visible-xs {\n  @media (max-width: @screen-xs-max) {\n    .responsive-visibility();\n  }\n}\n.visible-xs-block {\n  @media (max-width: @screen-xs-max) {\n    display: block !important;\n  }\n}\n.visible-xs-inline {\n  @media (max-width: @screen-xs-max) {\n    display: inline !important;\n  }\n}\n.visible-xs-inline-block {\n  @media (max-width: @screen-xs-max) {\n    display: inline-block !important;\n  }\n}\n\n.visible-sm {\n  @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n    .responsive-visibility();\n  }\n}\n.visible-sm-block {\n  @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n    display: block !important;\n  }\n}\n.visible-sm-inline {\n  @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n    display: inline !important;\n  }\n}\n.visible-sm-inline-block {\n  @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n    display: inline-block !important;\n  }\n}\n\n.visible-md {\n  @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n    .responsive-visibility();\n  }\n}\n.visible-md-block {\n  @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n    display: block !important;\n  }\n}\n.visible-md-inline {\n  @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n    display: inline !important;\n  }\n}\n.visible-md-inline-block {\n  @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n    display: inline-block !important;\n  }\n}\n\n.visible-lg {\n  @media (min-width: @screen-lg-min) {\n    .responsive-visibility();\n  }\n}\n.visible-lg-block {\n  @media (min-width: @screen-lg-min) {\n    display: block !important;\n  }\n}\n.visible-lg-inline {\n  @media (min-width: @screen-lg-min) {\n    display: inline !important;\n  }\n}\n.visible-lg-inline-block {\n  @media (min-width: @screen-lg-min) {\n    display: inline-block !important;\n  }\n}\n\n.hidden-xs {\n  @media (max-width: @screen-xs-max) {\n    .responsive-invisibility();\n  }\n}\n.hidden-sm {\n  @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n    .responsive-invisibility();\n  }\n}\n.hidden-md {\n  @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n    .responsive-invisibility();\n  }\n}\n.hidden-lg {\n  @media (min-width: @screen-lg-min) {\n    .responsive-invisibility();\n  }\n}\n\n\n// Print utilities\n//\n// Media queries are placed on the inside to be mixin-friendly.\n\n// Note: Deprecated .visible-print as of v3.2.0\n.visible-print {\n  .responsive-invisibility();\n\n  @media print {\n    .responsive-visibility();\n  }\n}\n.visible-print-block {\n  display: none !important;\n\n  @media print {\n    display: block !important;\n  }\n}\n.visible-print-inline {\n  display: none !important;\n\n  @media print {\n    display: inline !important;\n  }\n}\n.visible-print-inline-block {\n  display: none !important;\n\n  @media print {\n    display: inline-block !important;\n  }\n}\n\n.hidden-print {\n  @media print {\n    .responsive-invisibility();\n  }\n}\n","// Responsive utilities\n\n//\n// More easily include all the states for responsive-utilities.less.\n.responsive-visibility() {\n  display: block !important;\n  table&  { display: table; }\n  tr&     { display: table-row !important; }\n  th&,\n  td&     { display: table-cell !important; }\n}\n\n.responsive-invisibility() {\n  display: none !important;\n}\n"]}
\ No newline at end of file
diff --git a/gui/slick/css/lib/bootstrap.min.css b/gui/slick/css/lib/bootstrap.min.css
index 517f756696ebe24b8d62ee412d5283bb78cfd1db..d65c66b1ba297eeb3b5976b71c64c736b41bb763 100644
Binary files a/gui/slick/css/lib/bootstrap.min.css and b/gui/slick/css/lib/bootstrap.min.css differ
diff --git a/gui/slick/css/lib/images/ui-bg_flat_0_000000_40x100.png b/gui/slick/css/lib/images/ui-bg_flat_0_000000_40x100.png
index 3815e78a6dc4a1e2a06f7c7e408d1bd52ca9f91d..a6cdf6fad1aadee1dcbaab1585efca119763be58 100644
Binary files a/gui/slick/css/lib/images/ui-bg_flat_0_000000_40x100.png and b/gui/slick/css/lib/images/ui-bg_flat_0_000000_40x100.png differ
diff --git a/gui/slick/css/lib/images/ui-bg_flat_0_aaaaaa_40x100.png b/gui/slick/css/lib/images/ui-bg_flat_0_aaaaaa_40x100.png
index 5b5dab2ab7b1c50dea9cfe73dc5a269a92d2d4b4..5cbfd5e48b226389c50061ae3c273e9ef1f0083d 100644
Binary files a/gui/slick/css/lib/images/ui-bg_flat_0_aaaaaa_40x100.png and b/gui/slick/css/lib/images/ui-bg_flat_0_aaaaaa_40x100.png differ
diff --git a/gui/slick/css/lib/images/ui-bg_flat_0_ffffff_40x100.png b/gui/slick/css/lib/images/ui-bg_flat_0_ffffff_40x100.png
index 74d39425c3745c60011f314ed1c3578bdf42dbb6..671b76a378bda22b654356f4e224f97db00bf5bf 100644
Binary files a/gui/slick/css/lib/images/ui-bg_flat_0_ffffff_40x100.png and b/gui/slick/css/lib/images/ui-bg_flat_0_ffffff_40x100.png differ
diff --git a/gui/slick/css/lib/images/ui-bg_glass_55_fbf9ee_1x400.png b/gui/slick/css/lib/images/ui-bg_glass_55_fbf9ee_1x400.png
index 448f5ffe858b483353bed25002edd4bba14c8ab5..da641533642a611580bbc9a00601ed29412f8509 100644
Binary files a/gui/slick/css/lib/images/ui-bg_glass_55_fbf9ee_1x400.png and b/gui/slick/css/lib/images/ui-bg_glass_55_fbf9ee_1x400.png differ
diff --git a/gui/slick/css/lib/images/ui-bg_glass_95_fef1ec_1x400.png b/gui/slick/css/lib/images/ui-bg_glass_95_fef1ec_1x400.png
index 20eb6cab098981e24fdf0355889964af5ec6e1df..ef6166187604dda6166e56d3434e4a9226cfea38 100644
Binary files a/gui/slick/css/lib/images/ui-bg_glass_95_fef1ec_1x400.png and b/gui/slick/css/lib/images/ui-bg_glass_95_fef1ec_1x400.png differ
diff --git a/gui/slick/css/lib/images/ui-bg_highlight-soft_75_dcdcdc_1x100.png b/gui/slick/css/lib/images/ui-bg_highlight-soft_75_dcdcdc_1x100.png
index 26edadf48dd6bfc6391846a02da1dd729a671e1a..c439a85028bf02176eb098829d9c4cc41155668b 100644
Binary files a/gui/slick/css/lib/images/ui-bg_highlight-soft_75_dcdcdc_1x100.png and b/gui/slick/css/lib/images/ui-bg_highlight-soft_75_dcdcdc_1x100.png differ
diff --git a/gui/slick/css/lib/images/ui-bg_highlight-soft_75_dddddd_1x100.png b/gui/slick/css/lib/images/ui-bg_highlight-soft_75_dddddd_1x100.png
index e60afb4efb49ad7eb126067bab8ac61c879860f1..aa0022e3b3a3e5e93d35651b5db08a626349f6b8 100644
Binary files a/gui/slick/css/lib/images/ui-bg_highlight-soft_75_dddddd_1x100.png and b/gui/slick/css/lib/images/ui-bg_highlight-soft_75_dddddd_1x100.png differ
diff --git a/gui/slick/css/lib/images/ui-bg_highlight-soft_75_efefef_1x100.png b/gui/slick/css/lib/images/ui-bg_highlight-soft_75_efefef_1x100.png
index 265552081d58898bb3b85083e8294693bc528cca..862b9c0cd844d76ba49fe1912ff5540ea303546d 100644
Binary files a/gui/slick/css/lib/images/ui-bg_highlight-soft_75_efefef_1x100.png and b/gui/slick/css/lib/images/ui-bg_highlight-soft_75_efefef_1x100.png differ
diff --git a/gui/slick/css/lib/images/ui-bg_inset-soft_75_dfdfdf_1x100.png b/gui/slick/css/lib/images/ui-bg_inset-soft_75_dfdfdf_1x100.png
index 05373b49d4b1649d40315ea9c390e3d3638ee38e..a5d4c5b2ab2d9e3b48755b34f162b11c514647b3 100644
Binary files a/gui/slick/css/lib/images/ui-bg_inset-soft_75_dfdfdf_1x100.png and b/gui/slick/css/lib/images/ui-bg_inset-soft_75_dfdfdf_1x100.png differ
diff --git a/gui/slick/css/lib/images/ui-icons_222222_256x240.png b/gui/slick/css/lib/images/ui-icons_222222_256x240.png
index c1cb1170c8b3795835b8831ab81fa9ae63b606b1..e9c8e16ac5e7f61c843fbac290ce30c5de7e40b6 100644
Binary files a/gui/slick/css/lib/images/ui-icons_222222_256x240.png and b/gui/slick/css/lib/images/ui-icons_222222_256x240.png differ
diff --git a/gui/slick/css/lib/images/ui-icons_2e83ff_256x240.png b/gui/slick/css/lib/images/ui-icons_2e83ff_256x240.png
index 84b601bf0f726bf95801da487deaf2344a32e4b8..f2bf8388370920783b94285cb75827ce4b4cc1c5 100644
Binary files a/gui/slick/css/lib/images/ui-icons_2e83ff_256x240.png and b/gui/slick/css/lib/images/ui-icons_2e83ff_256x240.png differ
diff --git a/gui/slick/css/lib/images/ui-icons_8c291d_256x240.png b/gui/slick/css/lib/images/ui-icons_8c291d_256x240.png
index 168def7426de04faf27d2a5bc4956e842b675175..a35a1a60febbcd0742a97b24a1943099f7fead92 100644
Binary files a/gui/slick/css/lib/images/ui-icons_8c291d_256x240.png and b/gui/slick/css/lib/images/ui-icons_8c291d_256x240.png differ
diff --git a/gui/slick/css/lib/images/ui-icons_cd0a0a_256x240.png b/gui/slick/css/lib/images/ui-icons_cd0a0a_256x240.png
index ed5b6b0930f672fa08e9b9bdbe5e55370fd1dc30..49370189231d006600b0f0c2967cad1583eba634 100644
Binary files a/gui/slick/css/lib/images/ui-icons_cd0a0a_256x240.png and b/gui/slick/css/lib/images/ui-icons_cd0a0a_256x240.png differ
diff --git a/gui/slick/css/lib/jquery-ui-1.10.4.custom.css b/gui/slick/css/lib/jquery-ui-1.10.4.custom.css
deleted file mode 100644
index a61154cf77cde4cc99b0157d223a3214ada4380e..0000000000000000000000000000000000000000
--- a/gui/slick/css/lib/jquery-ui-1.10.4.custom.css
+++ /dev/null
@@ -1,855 +0,0 @@
-/*! jQuery UI - v1.10.4 - 2014-02-03
-* http://jqueryui.com
-* Includes: jquery.ui.core.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.dialog.css, jquery.ui.menu.css, jquery.ui.progressbar.css, jquery.ui.tabs.css, jquery.ui.theme.css
-* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=%23ffffff&bgTextureHeader=flat&bgImgOpacityHeader=0&borderColorHeader=%23aaaaaa&fcHeader=%23222222&iconColorHeader=%23222222&bgColorContent=%23dcdcdc&bgTextureContent=highlight_soft&bgImgOpacityContent=75&borderColorContent=%23aaaaaa&fcContent=%23222222&iconColorContent=%23222222&bgColorDefault=%23efefef&bgTextureDefault=highlight_soft&bgImgOpacityDefault=75&borderColorDefault=%23aaaaaa&fcDefault=%23222222&iconColorDefault=%238c291d&bgColorHover=%23dddddd&bgTextureHover=highlight_soft&bgImgOpacityHover=75&borderColorHover=%23999999&fcHover=%23222222&iconColorHover=%23222222&bgColorActive=%23dfdfdf&bgTextureActive=inset_soft&bgImgOpacityActive=75&borderColorActive=%23aaaaaa&fcActive=%23140f06&iconColorActive=%238c291d&bgColorHighlight=%23fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=%23aaaaaa&fcHighlight=%23363636&iconColorHighlight=%232e83ff&bgColorError=%23fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=%23aaaaaa&fcError=%238c291d&iconColorError=%23cd0a0a&bgColorOverlay=%23aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=35&bgColorShadow=%23000000&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=35&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px&ctl=themeroller
-* Copyright 2014 jQuery Foundation and other contributors; Licensed MIT */
-
-/* Layout helpers
-----------------------------------*/
-.ui-helper-hidden {
-	display: none;
-}
-.ui-helper-hidden-accessible {
-	border: 0;
-	clip: rect(0 0 0 0);
-	height: 1px;
-	margin: -1px;
-	overflow: hidden;
-	padding: 0;
-	position: absolute;
-	width: 1px;
-}
-.ui-helper-reset {
-	margin: 0;
-	padding: 0;
-	border: 0;
-	outline: 0;
-	line-height: 1.3;
-	text-decoration: none;
-	font-size: 100%;
-	list-style: none;
-}
-.ui-helper-clearfix:before,
-.ui-helper-clearfix:after {
-	content: "";
-	display: table;
-	border-collapse: collapse;
-}
-.ui-helper-clearfix:after {
-	clear: both;
-}
-.ui-helper-clearfix {
-	min-height: 0; /* support: IE7 */
-}
-.ui-helper-zfix {
-	width: 100%;
-	height: 100%;
-	top: 0;
-	left: 0;
-	position: absolute;
-	opacity: 0;
-	filter:Alpha(Opacity=0);
-}
-
-.ui-front {
-	z-index: 100;
-}
-
-
-/* Interaction Cues
-----------------------------------*/
-.ui-state-disabled {
-	cursor: default !important;
-}
-
-
-/* Icons
-----------------------------------*/
-
-/* states and images */
-.ui-icon {
-	display: block;
-	text-indent: -99999px;
-	overflow: hidden;
-	background-repeat: no-repeat;
-}
-
-
-/* Misc visuals
-----------------------------------*/
-
-/* Overlays */
-.ui-widget-overlay {
-	position: fixed;
-	top: 0;
-	left: 0;
-	width: 100%;
-	height: 100%;
-}
-.ui-resizable {
-	position: relative;
-}
-.ui-resizable-handle {
-	position: absolute;
-	font-size: 0.1px;
-	display: block;
-}
-.ui-resizable-disabled .ui-resizable-handle,
-.ui-resizable-autohide .ui-resizable-handle {
-	display: none;
-}
-.ui-resizable-n {
-	cursor: n-resize;
-	height: 7px;
-	width: 100%;
-	top: -5px;
-	left: 0;
-}
-.ui-resizable-s {
-	cursor: s-resize;
-	height: 7px;
-	width: 100%;
-	bottom: -5px;
-	left: 0;
-}
-.ui-resizable-e {
-	cursor: e-resize;
-	width: 7px;
-	right: -5px;
-	top: 0;
-	height: 100%;
-}
-.ui-resizable-w {
-	cursor: w-resize;
-	width: 7px;
-	left: -5px;
-	top: 0;
-	height: 100%;
-}
-.ui-resizable-se {
-	cursor: se-resize;
-	width: 12px;
-	height: 12px;
-	right: 1px;
-	bottom: 1px;
-}
-.ui-resizable-sw {
-	cursor: sw-resize;
-	width: 9px;
-	height: 9px;
-	left: -5px;
-	bottom: -5px;
-}
-.ui-resizable-nw {
-	cursor: nw-resize;
-	width: 9px;
-	height: 9px;
-	left: -5px;
-	top: -5px;
-}
-.ui-resizable-ne {
-	cursor: ne-resize;
-	width: 9px;
-	height: 9px;
-	right: -5px;
-	top: -5px;
-}
-.ui-selectable-helper {
-	position: absolute;
-	z-index: 100;
-	border: 1px dotted black;
-}
-.ui-autocomplete {
-	position: absolute;
-	top: 0;
-	left: 0;
-	cursor: default;
-}
-.ui-button {
-	display: inline-block;
-	position: relative;
-	padding: 0;
-	line-height: normal;
-	margin-right: .1em;
-	cursor: pointer;
-	vertical-align: middle;
-	text-align: center;
-	overflow: visible; /* removes extra width in IE */
-}
-.ui-button,
-.ui-button:link,
-.ui-button:visited,
-.ui-button:hover,
-.ui-button:active {
-	text-decoration: none;
-}
-/* to make room for the icon, a width needs to be set here */
-.ui-button-icon-only {
-	width: 2.2em;
-}
-/* button elements seem to need a little more width */
-button.ui-button-icon-only {
-	width: 2.4em;
-}
-.ui-button-icons-only {
-	width: 3.4em;
-}
-button.ui-button-icons-only {
-	width: 3.7em;
-}
-
-/* button text element */
-.ui-button .ui-button-text {
-	display: block;
-	line-height: normal;
-}
-.ui-button-text-only .ui-button-text {
-	padding: .4em 1em;
-}
-.ui-button-icon-only .ui-button-text,
-.ui-button-icons-only .ui-button-text {
-	padding: .4em;
-	text-indent: -9999999px;
-}
-.ui-button-text-icon-primary .ui-button-text,
-.ui-button-text-icons .ui-button-text {
-	padding: .4em 1em .4em 2.1em;
-}
-.ui-button-text-icon-secondary .ui-button-text,
-.ui-button-text-icons .ui-button-text {
-	padding: .4em 2.1em .4em 1em;
-}
-.ui-button-text-icons .ui-button-text {
-	padding-left: 2.1em;
-	padding-right: 2.1em;
-}
-/* no icon support for input elements, provide padding by default */
-input.ui-button {
-	padding: .4em 1em;
-}
-
-/* button icon element(s) */
-.ui-button-icon-only .ui-icon,
-.ui-button-text-icon-primary .ui-icon,
-.ui-button-text-icon-secondary .ui-icon,
-.ui-button-text-icons .ui-icon,
-.ui-button-icons-only .ui-icon {
-	position: absolute;
-	top: 50%;
-	margin-top: -8px;
-}
-.ui-button-icon-only .ui-icon {
-	left: 50%;
-	margin-left: -8px;
-}
-.ui-button-text-icon-primary .ui-button-icon-primary,
-.ui-button-text-icons .ui-button-icon-primary,
-.ui-button-icons-only .ui-button-icon-primary {
-	left: .5em;
-}
-.ui-button-text-icon-secondary .ui-button-icon-secondary,
-.ui-button-text-icons .ui-button-icon-secondary,
-.ui-button-icons-only .ui-button-icon-secondary {
-	right: .5em;
-}
-
-/* button sets */
-.ui-buttonset {
-	margin-right: 7px;
-}
-.ui-buttonset .ui-button {
-	margin-left: 0;
-	margin-right: -.3em;
-}
-
-/* workarounds */
-/* reset extra padding in Firefox, see h5bp.com/l */
-input.ui-button::-moz-focus-inner,
-button.ui-button::-moz-focus-inner {
-	border: 0;
-	padding: 0;
-}
-.ui-dialog {
-	overflow: hidden;
-	position: absolute;
-	top: 0;
-	left: 0;
-	padding: .2em;
-	outline: 0;
-}
-.ui-dialog .ui-dialog-titlebar {
-	padding: .4em 1em;
-	position: relative;
-}
-.ui-dialog .ui-dialog-title {
-	float: left;
-	margin: .1em 0;
-	white-space: nowrap;
-	width: 90%;
-	overflow: hidden;
-	text-overflow: ellipsis;
-}
-.ui-dialog .ui-dialog-titlebar-close {
-	position: absolute;
-	right: .3em;
-	top: 50%;
-	width: 20px;
-	margin: -10px 0 0 0;
-	padding: 1px;
-	height: 20px;
-}
-.ui-dialog .ui-dialog-content {
-	position: relative;
-	border: 0;
-	padding: .5em 1em;
-	background: none;
-	overflow: auto;
-}
-.ui-dialog .ui-dialog-buttonpane {
-	text-align: left;
-	border-width: 1px 0 0 0;
-	background-image: none;
-	margin-top: .5em;
-	padding: .3em 1em .5em .4em;
-}
-.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
-	float: right;
-}
-.ui-dialog .ui-dialog-buttonpane button {
-	margin: .5em .4em .5em 0;
-	cursor: pointer;
-}
-.ui-dialog .ui-resizable-se {
-	width: 12px;
-	height: 12px;
-	right: -5px;
-	bottom: -5px;
-	background-position: 16px 16px;
-}
-.ui-draggable .ui-dialog-titlebar {
-	cursor: move;
-}
-.ui-menu {
-	list-style: none;
-	padding: 2px;
-	margin: 0;
-	display: block;
-	outline: none;
-}
-.ui-menu .ui-menu {
-	margin-top: -3px;
-	position: absolute;
-}
-.ui-menu .ui-menu-item {
-	margin: 0;
-	padding: 0;
-	width: 100%;
-	/* support: IE10, see #8844 */
-	list-style-image: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);
-}
-.ui-menu .ui-menu-divider {
-	margin: 5px -2px 5px -2px;
-	height: 0;
-	font-size: 0;
-	line-height: 0;
-	border-width: 1px 0 0 0;
-}
-.ui-menu .ui-menu-item a {
-	text-decoration: none;
-	display: block;
-	padding: 2px .4em;
-	line-height: 1.5;
-	min-height: 0; /* support: IE7 */
-	font-weight: normal;
-}
-.ui-menu .ui-menu-item a.ui-state-focus,
-.ui-menu .ui-menu-item a.ui-state-active {
-	font-weight: normal;
-	margin: -1px;
-}
-
-.ui-menu .ui-state-disabled {
-	font-weight: normal;
-	margin: .4em 0 .2em;
-	line-height: 1.5;
-}
-.ui-menu .ui-state-disabled a {
-	cursor: default;
-}
-
-/* icon support */
-.ui-menu-icons {
-	position: relative;
-}
-.ui-menu-icons .ui-menu-item a {
-	position: relative;
-	padding-left: 2em;
-}
-
-/* left-aligned */
-.ui-menu .ui-icon {
-	position: absolute;
-	top: .2em;
-	left: .2em;
-}
-
-/* right-aligned */
-.ui-menu .ui-menu-icon {
-	position: static;
-	float: right;
-}
-.ui-progressbar {
-	height: 2em;
-	text-align: left;
-	overflow: hidden;
-}
-.ui-progressbar .ui-progressbar-value {
-	margin: -1px;
-	height: 100%;
-}
-.ui-progressbar .ui-progressbar-overlay {
-	/* background: url("images/animated-overlay.gif"); */
-	height: 100%;
-	filter: alpha(opacity=25);
-	opacity: 0.25;
-}
-.ui-progressbar-indeterminate .ui-progressbar-value {
-	background-image: none;
-}
-.ui-tabs {
-	position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
-	padding: .2em;
-}
-.ui-tabs .ui-tabs-nav {
-	margin: 0;
-	padding: .2em .2em 0;
-}
-.ui-tabs .ui-tabs-nav li {
-	list-style: none;
-	float: left;
-	position: relative;
-	top: 0;
-	margin: 1px .2em 0 0;
-	border-bottom-width: 0;
-	padding: 0;
-	white-space: nowrap;
-}
-.ui-tabs .ui-tabs-nav .ui-tabs-anchor {
-	float: left;
-	padding: .5em 1em;
-	text-decoration: none;
-}
-.ui-tabs .ui-tabs-nav li.ui-tabs-active {
-	margin-bottom: -1px;
-	padding-bottom: 1px;
-}
-.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,
-.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,
-.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor {
-	cursor: text;
-}
-.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor {
-	cursor: pointer;
-}
-.ui-tabs .ui-tabs-panel {
-	display: block;
-	border-width: 0;
-	background: none;
-}
-
-/* Component containers
-----------------------------------*/
-.ui-widget {
-
-}
-.ui-widget .ui-widget {
-
-}
-.ui-widget input,
-.ui-widget select,
-.ui-widget textarea,
-.ui-widget button {
-
-}
-.ui-widget-content {
-	border: 1px solid #aaaaaa;
-	/* background: #dcdcdc url(images/ui-bg_highlight-soft_75_dcdcdc_1x100.png) 50% top repeat-x; */
-	color: #222222;
-}
-.ui-widget-content a {
-	color: #222222;
-}
-.ui-widget-header {
-	border: 1px solid #aaaaaa;
-	/* background: #ffffff url(images/ui-bg_flat_0_ffffff_40x100.png) 50% 50% repeat-x; */
-	color: #222222;
-	font-weight: bold;
-}
-.ui-widget-header a {
-	color: #222222;
-}
-
-/* Interaction states
-----------------------------------*/
-.ui-state-default,
-.ui-widget-content .ui-state-default,
-.ui-widget-header .ui-state-default {
-	border: 1px solid #aaaaaa;
-	/* background: #efefef url(images/ui-bg_highlight-soft_75_efefef_1x100.png) 50% 50% repeat-x; */
-	font-weight: bold;
-	color: #222222;
-}
-.ui-state-default a,
-.ui-state-default a:link,
-.ui-state-default a:visited {
-	color: #222222;
-	text-decoration: none;
-}
-.ui-state-hover,
-.ui-widget-content .ui-state-hover,
-.ui-widget-header .ui-state-hover,
-.ui-state-focus,
-.ui-widget-content .ui-state-focus,
-.ui-widget-header .ui-state-focus {
-	border: 1px solid #999999;
-	/* background: #dddddd url(images/ui-bg_highlight-soft_75_dddddd_1x100.png) 50% 50% repeat-x; */
-	font-weight: bold;
-	color: #222222;
-}
-.ui-state-hover a,
-.ui-state-hover a:hover,
-.ui-state-hover a:link,
-.ui-state-hover a:visited,
-.ui-state-focus a,
-.ui-state-focus a:hover,
-.ui-state-focus a:link,
-.ui-state-focus a:visited {
-	color: #222222;
-	text-decoration: none;
-}
-.ui-state-active,
-.ui-widget-content .ui-state-active,
-.ui-widget-header .ui-state-active {
-	border: 1px solid #aaaaaa;
-	background: #dfdfdf url(images/ui-bg_inset-soft_75_dfdfdf_1x100.png) 50% 50% repeat-x;
-	font-weight: bold;
-	color: #140f06;
-}
-.ui-state-active a,
-.ui-state-active a:link,
-.ui-state-active a:visited {
-	color: #140f06;
-	text-decoration: none;
-}
-
-/* Interaction Cues
-----------------------------------*/
-.ui-state-highlight,
-.ui-widget-content .ui-state-highlight,
-.ui-widget-header .ui-state-highlight {
-	border: 1px solid #aaaaaa;
-	/* background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; */
-	color: #363636;
-}
-.ui-state-highlight a,
-.ui-widget-content .ui-state-highlight a,
-.ui-widget-header .ui-state-highlight a {
-	color: #363636;
-}
-.ui-state-error,
-.ui-widget-content .ui-state-error,
-.ui-widget-header .ui-state-error {
-	border: 1px solid #aaaaaa;
-	/* background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; */
-	color: #8c291d;
-}
-.ui-state-error a,
-.ui-widget-content .ui-state-error a,
-.ui-widget-header .ui-state-error a {
-	color: #8c291d;
-}
-.ui-state-error-text,
-.ui-widget-content .ui-state-error-text,
-.ui-widget-header .ui-state-error-text {
-	color: #8c291d;
-}
-.ui-priority-primary,
-.ui-widget-content .ui-priority-primary,
-.ui-widget-header .ui-priority-primary {
-	font-weight: bold;
-}
-.ui-priority-secondary,
-.ui-widget-content .ui-priority-secondary,
-.ui-widget-header .ui-priority-secondary {
-	opacity: .7;
-	filter:Alpha(Opacity=70);
-	font-weight: normal;
-}
-.ui-state-disabled,
-.ui-widget-content .ui-state-disabled,
-.ui-widget-header .ui-state-disabled {
-	opacity: .35;
-	filter:Alpha(Opacity=35);
-	background-image: none;
-}
-.ui-state-disabled .ui-icon {
-	filter:Alpha(Opacity=35); /* For IE8 - See #6059 */
-}
-
-/* Icons
-----------------------------------*/
-
-/* states and images */
-.ui-icon {
-	width: 16px;
-	height: 16px;
-}
-/*
-.ui-icon,
-.ui-widget-content .ui-icon {
-	background-image: url(images/ui-icons_222222_256x240.png);
-}
-.ui-widget-header .ui-icon {
-	background-image: url(images/ui-icons_222222_256x240.png);
-}
-.ui-state-default .ui-icon {
-	background-image: url(images/ui-icons_8c291d_256x240.png);
-}
-.ui-state-hover .ui-icon,
-.ui-state-focus .ui-icon {
-	background-image: url(images/ui-icons_222222_256x240.png);
-}
-.ui-state-active .ui-icon {
-	background-image: url(images/ui-icons_8c291d_256x240.png);
-}
-.ui-state-highlight .ui-icon {
-	background-image: url(images/ui-icons_2e83ff_256x240.png);
-}
-.ui-state-error .ui-icon,
-.ui-state-error-text .ui-icon {
-	background-image: url(images/ui-icons_cd0a0a_256x240.png);
-}
-*/
-
-/* positioning */
-.ui-icon-blank { background-position: 16px 16px; }
-.ui-icon-carat-1-n { background-position: 0 0; }
-.ui-icon-carat-1-ne { background-position: -16px 0; }
-.ui-icon-carat-1-e { background-position: -32px 0; }
-.ui-icon-carat-1-se { background-position: -48px 0; }
-.ui-icon-carat-1-s { background-position: -64px 0; }
-.ui-icon-carat-1-sw { background-position: -80px 0; }
-.ui-icon-carat-1-w { background-position: -96px 0; }
-.ui-icon-carat-1-nw { background-position: -112px 0; }
-.ui-icon-carat-2-n-s { background-position: -128px 0; }
-.ui-icon-carat-2-e-w { background-position: -144px 0; }
-.ui-icon-triangle-1-n { background-position: 0 -16px; }
-.ui-icon-triangle-1-ne { background-position: -16px -16px; }
-.ui-icon-triangle-1-e { background-position: -32px -16px; }
-.ui-icon-triangle-1-se { background-position: -48px -16px; }
-.ui-icon-triangle-1-s { background-position: -64px -16px; }
-.ui-icon-triangle-1-sw { background-position: -80px -16px; }
-.ui-icon-triangle-1-w { background-position: -96px -16px; }
-.ui-icon-triangle-1-nw { background-position: -112px -16px; }
-.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
-.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
-.ui-icon-arrow-1-n { background-position: 0 -32px; }
-.ui-icon-arrow-1-ne { background-position: -16px -32px; }
-.ui-icon-arrow-1-e { background-position: -32px -32px; }
-.ui-icon-arrow-1-se { background-position: -48px -32px; }
-.ui-icon-arrow-1-s { background-position: -64px -32px; }
-.ui-icon-arrow-1-sw { background-position: -80px -32px; }
-.ui-icon-arrow-1-w { background-position: -96px -32px; }
-.ui-icon-arrow-1-nw { background-position: -112px -32px; }
-.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
-.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
-.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
-.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
-.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
-.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
-.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
-.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
-.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
-.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
-.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
-.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
-.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
-.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
-.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
-.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
-.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
-.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
-.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
-.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
-.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
-.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
-.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
-.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
-.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
-.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
-.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
-.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
-.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
-.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
-.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
-.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
-.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
-.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
-.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
-.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
-.ui-icon-arrow-4 { background-position: 0 -80px; }
-.ui-icon-arrow-4-diag { background-position: -16px -80px; }
-.ui-icon-extlink { background-position: -32px -80px; }
-.ui-icon-newwin { background-position: -48px -80px; }
-.ui-icon-refresh { background-position: -64px -80px; }
-.ui-icon-shuffle { background-position: -80px -80px; }
-.ui-icon-transfer-e-w { background-position: -96px -80px; }
-.ui-icon-transferthick-e-w { background-position: -112px -80px; }
-.ui-icon-folder-collapsed { background-position: 0 -96px; }
-.ui-icon-folder-open { background-position: -16px -96px; }
-.ui-icon-document { background-position: -32px -96px; }
-.ui-icon-document-b { background-position: -48px -96px; }
-.ui-icon-note { background-position: -64px -96px; }
-.ui-icon-mail-closed { background-position: -80px -96px; }
-.ui-icon-mail-open { background-position: -96px -96px; }
-.ui-icon-suitcase { background-position: -112px -96px; }
-.ui-icon-comment { background-position: -128px -96px; }
-.ui-icon-person { background-position: -144px -96px; }
-.ui-icon-print { background-position: -160px -96px; }
-.ui-icon-trash { background-position: -176px -96px; }
-.ui-icon-locked { background-position: -192px -96px; }
-.ui-icon-unlocked { background-position: -208px -96px; }
-.ui-icon-bookmark { background-position: -224px -96px; }
-.ui-icon-tag { background-position: -240px -96px; }
-.ui-icon-home { background-position: 0 -112px; }
-.ui-icon-flag { background-position: -16px -112px; }
-.ui-icon-calendar { background-position: -32px -112px; }
-.ui-icon-cart { background-position: -48px -112px; }
-.ui-icon-pencil { background-position: -64px -112px; }
-.ui-icon-clock { background-position: -80px -112px; }
-.ui-icon-disk { background-position: -96px -112px; }
-.ui-icon-calculator { background-position: -112px -112px; }
-.ui-icon-zoomin { background-position: -128px -112px; }
-.ui-icon-zoomout { background-position: -144px -112px; }
-.ui-icon-search { background-position: -160px -112px; }
-.ui-icon-wrench { background-position: -176px -112px; }
-.ui-icon-gear { background-position: -192px -112px; }
-.ui-icon-heart { background-position: -208px -112px; }
-.ui-icon-star { background-position: -224px -112px; }
-.ui-icon-link { background-position: -240px -112px; }
-.ui-icon-cancel { background-position: 0 -128px; }
-.ui-icon-plus { background-position: -16px -128px; }
-.ui-icon-plusthick { background-position: -32px -128px; }
-.ui-icon-minus { background-position: -48px -128px; }
-.ui-icon-minusthick { background-position: -64px -128px; }
-.ui-icon-close { background-position: -80px -128px; }
-.ui-icon-closethick { background-position: -96px -128px; }
-.ui-icon-key { background-position: -112px -128px; }
-.ui-icon-lightbulb { background-position: -128px -128px; }
-.ui-icon-scissors { background-position: -144px -128px; }
-.ui-icon-clipboard { background-position: -160px -128px; }
-.ui-icon-copy { background-position: -176px -128px; }
-.ui-icon-contact { background-position: -192px -128px; }
-.ui-icon-image { background-position: -208px -128px; }
-.ui-icon-video { background-position: -224px -128px; }
-.ui-icon-script { background-position: -240px -128px; }
-.ui-icon-alert { background-position: 0 -144px; }
-.ui-icon-info { background-position: -16px -144px; }
-.ui-icon-notice { background-position: -32px -144px; }
-.ui-icon-help { background-position: -48px -144px; }
-.ui-icon-check { background-position: -64px -144px; }
-.ui-icon-bullet { background-position: -80px -144px; }
-.ui-icon-radio-on { background-position: -96px -144px; }
-.ui-icon-radio-off { background-position: -112px -144px; }
-.ui-icon-pin-w { background-position: -128px -144px; }
-.ui-icon-pin-s { background-position: -144px -144px; }
-.ui-icon-play { background-position: 0 -160px; }
-.ui-icon-pause { background-position: -16px -160px; }
-.ui-icon-seek-next { background-position: -32px -160px; }
-.ui-icon-seek-prev { background-position: -48px -160px; }
-.ui-icon-seek-end { background-position: -64px -160px; }
-.ui-icon-seek-start { background-position: -80px -160px; }
-/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
-.ui-icon-seek-first { background-position: -80px -160px; }
-.ui-icon-stop { background-position: -96px -160px; }
-.ui-icon-eject { background-position: -112px -160px; }
-.ui-icon-volume-off { background-position: -128px -160px; }
-.ui-icon-volume-on { background-position: -144px -160px; }
-.ui-icon-power { background-position: 0 -176px; }
-.ui-icon-signal-diag { background-position: -16px -176px; }
-.ui-icon-signal { background-position: -32px -176px; }
-.ui-icon-battery-0 { background-position: -48px -176px; }
-.ui-icon-battery-1 { background-position: -64px -176px; }
-.ui-icon-battery-2 { background-position: -80px -176px; }
-.ui-icon-battery-3 { background-position: -96px -176px; }
-.ui-icon-circle-plus { background-position: 0 -192px; }
-.ui-icon-circle-minus { background-position: -16px -192px; }
-.ui-icon-circle-close { background-position: -32px -192px; }
-.ui-icon-circle-triangle-e { background-position: -48px -192px; }
-.ui-icon-circle-triangle-s { background-position: -64px -192px; }
-.ui-icon-circle-triangle-w { background-position: -80px -192px; }
-.ui-icon-circle-triangle-n { background-position: -96px -192px; }
-.ui-icon-circle-arrow-e { background-position: -112px -192px; }
-.ui-icon-circle-arrow-s { background-position: -128px -192px; }
-.ui-icon-circle-arrow-w { background-position: -144px -192px; }
-.ui-icon-circle-arrow-n { background-position: -160px -192px; }
-.ui-icon-circle-zoomin { background-position: -176px -192px; }
-.ui-icon-circle-zoomout { background-position: -192px -192px; }
-.ui-icon-circle-check { background-position: -208px -192px; }
-.ui-icon-circlesmall-plus { background-position: 0 -208px; }
-.ui-icon-circlesmall-minus { background-position: -16px -208px; }
-.ui-icon-circlesmall-close { background-position: -32px -208px; }
-.ui-icon-squaresmall-plus { background-position: -48px -208px; }
-.ui-icon-squaresmall-minus { background-position: -64px -208px; }
-.ui-icon-squaresmall-close { background-position: -80px -208px; }
-.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
-.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
-.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
-.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
-.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
-.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
-
-
-/* Misc visuals
-----------------------------------*/
-
-/* Corner radius */
-.ui-corner-all,
-.ui-corner-top,
-.ui-corner-left,
-.ui-corner-tl {
-	border-top-left-radius: 4px;
-}
-.ui-corner-all,
-.ui-corner-top,
-.ui-corner-right,
-.ui-corner-tr {
-	border-top-right-radius: 4px;
-}
-.ui-corner-all,
-.ui-corner-bottom,
-.ui-corner-left,
-.ui-corner-bl {
-	border-bottom-left-radius: 4px;
-}
-.ui-corner-all,
-.ui-corner-bottom,
-.ui-corner-right,
-.ui-corner-br {
-	border-bottom-right-radius: 4px;
-}
-
-/* Overlays */
-.ui-widget-overlay {
-	/* background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; */
-	opacity: .35;
-	filter: Alpha(Opacity=35);
-}
-.ui-widget-shadow {
-	margin: -8px 0 0 -8px;
-	padding: 8px;
-	/* background: #000000 url(images/ui-bg_flat_0_000000_40x100.png) 50% 50% repeat-x; */
-	opacity: .35;
-	filter: Alpha(Opacity=35);
-	border-radius: 8px;
-}
diff --git a/gui/slick/css/lib/jquery-ui-1.10.4.custom.min.css b/gui/slick/css/lib/jquery-ui-1.10.4.custom.min.css
new file mode 100755
index 0000000000000000000000000000000000000000..b84acdccdb760465bcea11ba2666f20bd9fd79cd
Binary files /dev/null and b/gui/slick/css/lib/jquery-ui-1.10.4.custom.min.css differ
diff --git a/gui/slick/css/light.css b/gui/slick/css/light.css
index c75cbdd08c8bf6d7b1cf0c715fd81116adb7aaa0..0b5212cc10c070a0d898b1ee4f521ce98bd42071 100644
--- a/gui/slick/css/light.css
+++ b/gui/slick/css/light.css
@@ -1,547 +1,6 @@
 /* =======================================================================
-fonts
+home.mako
 ========================================================================== */
-/* Open Sans */
-/* Regular */
-@font-face {
-    font-family: 'Open Sans';
-    
-    src: url('fonts/OpenSans-Regular-webfont.eot');
-    src: url('fonts/OpenSans-Regular-webfont.eot?#iefix') format('embedded-opentype'),
-         url('fonts/OpenSans-Regular-webfont.woff') format('woff'),
-         url('fonts/OpenSans-Regular-webfont.ttf') format('truetype'),
-         url('fonts/OpenSans-Regular-webfont.svg#OpenSansRegular') format('svg');
-    font-weight: normal;
-    font-weight: 400;
-    font-style: normal;
-}
-
-/* Italic */
-@font-face {
-    font-family: 'Open Sans';
-    src: url('fonts/OpenSans-Italic-webfont.eot');
-    src: url('fonts/OpenSans-Italic-webfont.eot?#iefix') format('embedded-opentype'),
-         url('fonts/OpenSans-Italic-webfont.woff') format('woff'),
-         url('fonts/OpenSans-Italic-webfont.ttf') format('truetype'),
-         url('fonts/OpenSans-Italic-webfont.svg#OpenSansItalic') format('svg');
-    font-weight: normal;
-    font-weight: 400;
-    font-style: italic;
-}
-
-/* Light */
-@font-face {
-    font-family: 'Open Sans';
-    src: url('fonts/OpenSans-Light-webfont.eot');
-    src: url('fonts/OpenSans-Light-webfont.eot?#iefix') format('embedded-opentype'),
-         url('fonts/OpenSans-Light-webfont.woff') format('woff'),
-         url('fonts/OpenSans-Light-webfont.ttf') format('truetype'),
-         url('fonts/OpenSans-Light-webfont.svg#OpenSansLight') format('svg');
-    font-weight: 200;
-    font-style: normal;
-}
-
-/* Light Italic */
-@font-face {
-    font-family: 'Open Sans';
-    src: url('fonts/OpenSans-LightItalic-webfont.eot');
-    src: url('fonts/OpenSans-LightItalic-webfont.eot?#iefix') format('embedded-opentype'),
-         url('fonts/OpenSans-LightItalic-webfont.woff') format('woff'),
-         url('fonts/OpenSans-LightItalic-webfont.ttf') format('truetype'),
-         url('fonts/OpenSans-LightItalic-webfont.svg#OpenSansLightItalic') format('svg');
-    font-weight: 200;
-    font-style: italic;
-}
-
-/* Semibold */
-@font-face {
-    font-family: 'Open Sans';
-    src: url('fonts/OpenSans-Semibold-webfont.eot');
-    src: url('fonts/OpenSans-Semibold-webfont.eot?#iefix') format('embedded-opentype'),
-         url('fonts/OpenSans-Semibold-webfont.woff') format('woff'),
-         url('fonts/OpenSans-Semibold-webfont.ttf') format('truetype'),
-         url('fonts/OpenSans-Semibold-webfont.svg#OpenSansSemibold') format('svg');
-    font-weight: 600;
-    font-style: normal;
-}
-
-/* Semibold Italic */
-@font-face {
-    font-family: 'Open Sans';
-    src: url('fonts/OpenSans-SemiboldItalic-webfont.eot');
-    src: url('fonts/OpenSans-SemiboldItalic-webfont.eot?#iefix') format('embedded-opentype'),
-         url('fonts/OpenSans-SemiboldItalic-webfont.woff') format('woff'),
-         url('fonts/OpenSans-SemiboldItalic-webfont.ttf') format('truetype'),
-         url('fonts/OpenSans-SemiboldItalic-webfont.svg#OpenSansSemiboldItalic') format('svg');
-    font-weight: 600;
-    font-style: italic;
-}
-
-/* Bold */
-@font-face {
-    font-family: 'Open Sans';
-    src: url('fonts/OpenSans-Semibold-webfont.eot');
-    src: url('fonts/OpenSans-Semibold-webfont.eot?#iefix') format('embedded-opentype'),
-         url('fonts/OpenSans-Semibold-webfont.woff') format('woff'),
-         url('fonts/OpenSans-Semibold-webfont.ttf') format('truetype'),
-         url('fonts/OpenSans-Semibold-webfont.svg#OpenSansSemibold') format('svg');
-    font-weight: bold;
-    font-weight: 700;
-    font-style: normal;
-}
-
-/* Bold Italic */
-@font-face {
-    font-family: 'Open Sans';
-    src: url('fonts/OpenSans-SemiboldItalic-webfont.eot');
-    src: url('fonts/OpenSans-SemiboldItalic-webfont.eot?#iefix') format('embedded-opentype'),
-         url('fonts/OpenSans-SemiboldItalic-webfont.woff') format('woff'),
-         url('fonts/OpenSans-SemiboldItalic-webfont.ttf') format('truetype'),
-         url('fonts/OpenSans-SemiboldItalic-webfont.svg#OpenSansSemiboldItalic') format('svg');
-    font-weight: bold;
-    font-weight: 700;
-    font-style: italic;
-}
-
-/* Extra Bold */
-@font-face {
-    font-family: 'Open Sans';
-    src: url('fonts/OpenSans-Bold-webfont.eot');
-    src: url('fonts/OpenSans-Bold-webfont.eot?#iefix') format('embedded-opentype'),
-         url('fonts/OpenSans-Bold-webfont.woff') format('woff'),
-         url('fonts/OpenSans-Bold-webfont.ttf') format('truetype'),
-         url('fonts/OpenSans-Bold-webfont.svg#OpenSansBold') format('svg');
-    font-weight: 900;
-    font-style: normal;
-}
-
-/* Extra Bold Italic */
-@font-face {
-    font-family: 'Open Sans';
-    src: url('fonts/OpenSans-BoldItalic-webfont.eot');
-    src: url('fonts/OpenSans-BoldItalic-webfont.eot?#iefix') format('embedded-opentype'),
-         url('fonts/OpenSans-BoldItalic-webfont.woff') format('woff'),
-         url('fonts/OpenSans-BoldItalic-webfont.ttf') format('truetype'),
-         url('fonts/OpenSans-BoldItalic-webfont.svg#OpenSansBoldItalic') format('svg');
-    font-weight: 900;
-    font-style: italic;
-}
-
-/* Droid Sans */
-@font-face {
-    font-family: 'droid_sans_mono';
-    src: url('fonts/droidsansmono-webfont.eot');
-    src: url('fonts/droidsansmono-webfont.eot?#iefix') format('embedded-opentype'),
-         url('fonts/droidsansmono-webfont.woff') format('woff'),
-         url('fonts/droidsansmono-webfont.ttf') format('truetype'),
-         url('fonts/droidsansmono-webfont.svg#droid_sans_monoregular') format('svg');
-    font-weight: normal;
-    font-style: normal;
-}
-
-
-/* =======================================================================
-inc_top.tmpl
-========================================================================== */
-
-.navbaricon {
-	margin-top: -15px;
-	margin-bottom: -15px;
-}
-
-#contentWrapper { 
-/*	background: url("../images/bg.png") repeat 0 0 transparent; */
-}
-
-[class^="icon-"], 
-[class*=" icon-"] { 
-	background-image: url("../images/glyphicons-halflings.png"); 
-}
-
-.icon-white { 
-	background-image: url("../images/glyphicons-halflings-white.png"); 
-}
-
-.dropdown-menu li > a:hover > [class^="menu-icon-"], 
-.dropdown-menu li > a:hover > [class*=" menu-icon-"] { 
-	background-image: url("../images/menu/menu-icons-white.png"); 
-}
-
-[class^="icon16-"], 
-[class*=" icon16-"] { 
-	background-image: url("../images/glyphicons-config.png");
-}
-
-.ui-autocomplete-loading { 
-	background: white url("../images/loading16.gif") right center no-repeat; 
-}
-
-.browserDialog.busy .ui-dialog-buttonpane { 
-	background: url("../images/loading.gif") 10px 50% no-repeat !important; 
-}
-
-.ui-progressbar .ui-progressbar-overlay { 
-	background: url("../css/lib/images/animated-overlay.gif"); 
-}
-
-.ui-dialog, 
-.ui-dialog-buttonpane { 
-	background: #eceadf url("../css/lib/images/ui-bg_fine-grain_10_eceadf_60x60.png") 50% 50% repeat !important; 
-}
-
-.ui-accordion-content, 
-.ui-tabs-panel { 
-	background: #ededed !important; 
-	background-image: none !important; 
-}
-
-.ui-widget-content { 
-	background: #dcdcdc url("../css/lib/images/ui-bg_highlight-soft_75_dcdcdc_1x100.png") 50% top repeat-x; 
-}
-
-.ui-widget-header { 
-	background: #ffffff url("../css/lib/images/ui-bg_flat_0_ffffff_40x100.png") 50% 50% repeat-x; 
-}
-
-.ui-state-default, 
-.ui-widget-content .ui-state-default, 
-.ui-widget-header .ui-state-default { 
-	background: #ffffff; 
-	border: 1px solid #CCCCCC;
-}
-
-.ui-state-hover, 
-.ui-widget-content .ui-state-hover, 
-.ui-widget-header .ui-state-hover, 
-.ui-state-focus, 
-.ui-widget-content .ui-state-focus, 
-.ui-widget-header .ui-state-focus { 
-	background: #ffffff; 
-}
-
-.ui-state-active, 
-.ui-widget-content .ui-state-active, 
-.ui-widget-header .ui-state-active { 
-	background: #F7F7F7;
-}
-
-.ui-state-highlight, 
-.ui-widget-content .ui-state-highlight, 
-.ui-widget-header .ui-state-highlight { 
-	background: #fbf9ee url("../css/lib/images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x; 
-}
-
-.ui-state-error, 
-.ui-widget-content .ui-state-error, 
-.ui-widget-header .ui-state-error { 
-	background: #fef1ec url("../css/lib/images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x; 
-}
-
-.ui-icon, 
-.ui-widget-content .ui-icon { 
-	background-image: url("../css/lib/images/ui-icons_222222_256x240.png"); 
-}
-
-.ui-widget-header .ui-icon { 
-	background-image: url("../css/lib/images/ui-icons_222222_256x240.png"); 
-}
-
-.ui-state-default .ui-icon { 
-	background-image: url("../css/lib/images/ui-icons_8c291d_256x240.png"); 
-}
-
-.ui-state-hover .ui-icon, 
-.ui-state-focus .ui-icon { 
-	background-image: url("../css/lib/images/ui-icons_222222_256x240.png"); 
-}
-
-.ui-state-active .ui-icon { 
-	background-image: url("../css/lib/images/ui-icons_8c291d_256x240.png"); 
-}
-
-.ui-state-highlight .ui-icon { 
-	background-image: url("../css/lib/images/ui-icons_2e83ff_256x240.png"); 
-}
-
-.ui-state-error .ui-icon, 
-.ui-state-error-text .ui-icon { 
-	background-image: url("../css/lib/images/ui-icons_cd0a0a_256x240.png"); 
-}
-
-.ui-widget-overlay { 
-	background: #aaaaaa url("../css/lib/images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x; 
-}
-
-.ui-widget-shadow { 
-	background: #000000 url("../css/lib/images/ui-bg_flat_0_000000_40x100.png") 50% 50% repeat-x; 
-}
-
-.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited {
-    color: #140F06;
-    text-decoration: none;
-}
-.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited {
-    color: #222;
-    text-decoration: none;
-}
-
-.ui-tabs {
-    padding: 0px;
-    background: none;
-    border-width: 0px;
-}
-
-.ui-tabs .ui-tabs-nav {
-    padding-left: 0px;
-    background: transparent;
-    border-width: 0px 0px 0px 0px;
-    -moz-border-radius: 0px;
-    -webkit-border-radius: 0px;
-    border-radius: 0px;
-}
-
-.ui-tabs .ui-tabs-panel { 
-	background-color: #F7F7F7 !important;
-	border: 1px solid #CCCCCC !important;
-}
-
-.ui-tabs .ui-tabs-nav li.ui-tabs-active {
-    border-top-left-radius: 5px;
-    border-top-right-radius: 5px;
-}
-
-.ui-tabs-nav > :not(.ui-tabs-active){ 
-	border-top-left-radius: 5px;
-	border-top-right-radius: 5px;
-}
-
-#content {
-    width: 95%;
-    min-width: 875px;
-    padding: 15px;
-    margin-left: auto;
-    margin-right: auto;
-    clear: both;
-}
-
-#SubMenu {
-	padding-right: 20px;
-	clear: both;
-	font-size: 12px;
-	float: right;
-}
-
-.upgrade-notification {
-	width: 600px; 
-	text-align: center; 
-	margin-left: auto; 
-	margin-right: auto; 
-	margin-top: 50px; 
-	margin-bottom: 0px;
-}
-
-[class^="menu-icon-"], [class*=" menu-icon-"] {
-    background: url("../images/menu/menu-icons-black.png");
-	height: 16px;
-	width: 16px;
-	display: inline-block;
-	position: relative;
-	top: 2px;
-	float: left;
-}
-
-@media(max-width:767px){
-	[class^="menu-icon-"], [class*=" menu-icon-"] {
-		background: url("../images/menu/menu-icons-white.png");
-		height: 16px;
-		width: 16px;
-		display: inline-block;
-		position: relative;
-		top: 2px;
-		float: left;
-	}
-}
-
-.menu-icon-addshow {
-	background-position: 0px 0px;
-}
-
-.menu-icon-anime {
-	background-position: -21px 0px;
-}
-
-.menu-icon-backlog-view {
-	background-position: -42px 0px;
-}
-
-.menu-icon-backlog {
-	background-position: -63px 0px;
-}
-
-.menu-icon-bittorrent {
-	background-position: -84px 0px;
-}
-
-.menu-icon-config-index {
-	background-position: -105px 0px;
-}
-
-.menu-icon-config {
-	background-position: -126px 0px;
-}
-
-.menu-icon-failed-download {
-	background-position: -147px 0px;
-}
-
-.menu-icon-home {
-	background-position: -168px 0px;
-}
-
-.menu-icon-manage {
-	background-position: -189px 0px;
-}
-
-.menu-icon-manage-searches {
-	background-position: -210px 0px;
-}
-
-.menu-icon-poster {
-	background-position: -231px 0px;
-}
-
-.menu-icon-postprocess {
-	background-position: -252px 0px;
-}
-
-.menu-icon-restart {
-	background-position: -273px 0px;
-}
-
-.menu-icon-shutdown {
-	background-position: -294px 0px;
-}
-
-.menu-icon-update {
-	background-position: -315px 0px;
-}
-
-.menu-icon-viewlog-errors {
-	background-position: -336px 0px;
-}
-
-.menu-icon-viewlog {
-	background-position: -357px 0px;
-}
-
-.menu-icon-kodi {
-	background-position: -378px 0px;
-}
-
-.menu-icon-help {
-	background-position: -399px 0px;
-}
-
-[class^="submenu-icon-"], [class*=" submenu-icon-"] {
-    background: url("../images/menu/menu-icons-black.png");
-	height: 16px;
-	width: 16px;
-}
-
-.submenu-icon-anime {
-	background-position: -21px 0px;
-}
-
-.submenu-icon-bittorrent {
-	background-position: -84px 0px;
-}
-
-.submenu-icon-failed-download {
-	background-position: -147px 0px;
-}
-
-.submenu-icon-restart {
-	background-position: -273px 0px;
-}
-
-.submenu-icon-shutdown {
-	background-position: -294px 0px;
-}
-
-.submenu-icon-kodi {
-	background-position: -378px 0px;
-}
-
-/* =======================================================================
-inc_bottom.tmpl
-========================================================================== */
-
-.footer {
-	width: 100%;
-	padding: 20px 0;
-	color: #4e4e4e;
-	text-align: center;
-	font-size: 12px;
-}
-
-.footerhighlight {
-	color: #111;
-	display: inline;
-}
-
-
-/* =======================================================================
-home.tmpl
-========================================================================== */
-
-.imgbanner .banner {
-    border: 1px solid #ccc;
-    overflow: hidden;
-    height: 66px;
-    overflow: hidden;
-    border-radius: 8px;
-    vertical-align: top;
-    width: 360px;
-	display: block;
-	margin-left: auto;
-	margin-right: auto;
-}
-
-.imgsmallposter .small {
-    height: 66px;
-    overflow: hidden;
-    border-radius: 3px;
-    vertical-align: middle;
-    width: 45px;
-	border: 1px solid #ccc;
-	margin-right: 5px;
-}
-
-.search {
-	margin-bottom: 10px;
-}
-
-.ui-progressbar {
-	height: 20px;
-	line-height: 18px;
-}
-
-.ui-progressbar .ui-progressbar-value {
-    box-sizing: content-box !important;
-}
-
-.progressbarText {
-	position: absolute;
-	top: 0;
-	width: 100%;
-	height: 100%;
-	overflow: visible;
-	text-align: center;
-	text-shadow: 0 0 0.1em #fff;
-	vertical-align: middle;
-	font-size: 12px;
-	color: #000000;
-}
 
 .progress-100 {
 	background-image: -moz-linear-gradient(#a6cf41, #5b990d) !important;
@@ -593,2340 +52,108 @@ home.tmpl
 	border-radius: 3px;
 }
 
-#container, #container-anime {
-	margin: 0 auto;
-}
-
-.show {
-    margin: 12px;
-	width: 188px;
-	height: 352px;
-	background-color: #DFDACF;
-	border: 1px solid #111;
-	border-radius: 6px;
-}
-
-.show-image {
-	overflow: hidden;
-	height: 273px;
-    width: 186px;
-	border-top-left-radius: 5px;
-	border-top-right-radius: 5px;
-}
+/* =======================================================================
+displayShow.mako
+========================================================================== */
 
-.show .ui-progressbar {
-	height: 7px !important;
-	top: -2px;
+.displayShowTable th.row-seasonheader {
+	border: none !important;
+	background-color: #fff !important;
+	color: #000 !important;
+	padding-top: 15px !important;
+	text-align: left !important;
 }
 
-.show .ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br {
-    border-bottom-right-radius: 0px;
-}
+/* =======================================================================
+comingEpisodes.mako
+========================================================================== */
 
-.show .ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl {
-    border-bottom-left-radius: 0px;
+table.cal-odd {
+    background-color: #ddd;
 }
 
-.show .ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr {
-    border-top-right-radius: 0px;
+table.cal-even {
+    background-color: #d2d2d2;
 }
 
-.show .ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl {
-    border-top-left-radius: 0px;
+.calendarShow .text .airtime {
+    color:#000
 }
 
-.show .ui-widget-content {
-    border-top: 1px solid #111;
-	border-bottom: 1px solid #111;
-	border-left: 0px;
-	border-right: 0px;
+.calendarShow .text .episode-title {
+    color:#888
 }
 
-.show .progress-80 {
-	border-radius: 0px;
-}
+/* =======================================================================
+bootstrap Overrides
+========================================================================== */
 
-.show .progress-60 {
-	border-radius: 0px;
+/* navbar styling */
+.navbar-default {
+    background-color: #333333;
+    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#555555', endColorstr='#333333');
+    background: -webkit-gradient(linear, left top, left bottom, from(#555), to(#333));
+    background: -moz-linear-gradient(top,  #555,  #333);
+	border-color: #3e3f3a;
 }
 
-.show .progress-40 {
-	border-radius: 0px;
+.navbar-default .navbar-collapse,
+.navbar-default .navbar-form {
+	border-color: #3e3f3a;
 }
 
-.show .progress-20 {
-	border-radius: 0px;
+.dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus {
+    color: #fff;
+    text-decoration: none;
+    background-color: #333;
 }
 
-.show-title {
-	position: relative;
-	overflow: hidden;
-	white-space: nowrap;
-	font-size: 11px;
-	margin: 4px 4px 0px 4px;
+pre {
+    color: #000;
+    background-color: #F5F5F5;
+    border-color: #ccc;
 }
 
-.show-title:after {
-	content: "";
-	pointer-events: none;
-	position: absolute;
-	width: 20px;
-	height: 100%;
-	top: 0; 
-	right: 0;
-	background-image: -webkit-linear-gradient(right, rgba(223, 218, 207, 1), rgba(223, 218, 207, 0));
-	background-image: -moz-linear-gradient(right, rgba(223, 218, 207, 1), rgba(223, 218, 207, 0));
-	background-image: -ms-linear-gradient(right, rgba(223, 218, 207, 1), rgba(223, 218, 207, 0));
-	background-image: -o-linear-gradient(right, rgba(223, 218, 207, 1), rgba(223, 218, 207, 0));
-	background-image: linear-gradient(to left, rgba(223, 218, 207, 1), rgba(223, 218, 207, 0));
-}
+/* =======================================================================
+tablesorter.css
+========================================================================== */
 
-.show-date {
-	position: relative;
-	overflow: hidden;
-	white-space: nowrap;
-	font-size: 11px;
-	margin: 0px 4px 4px 4px;
+.tablesorter {
+	width: 100%;
+	margin-right: auto;
+	margin-left: auto;
+	color: #000;
+	text-align: left;
+	background-color: #ddd;
+	border-spacing: 0;
 }
 
-.show-date:after {
-	content: "";
-	pointer-events: none;
-	position: absolute;
-	width: 20px;
-	height: 100%;
-	top: 0; 
-	right: 0;
-	background-image: -webkit-linear-gradient(right, rgba(223, 218, 207, 1), rgba(223, 218, 207, 0));
-	background-image: -moz-linear-gradient(right, rgba(223, 218, 207, 1), rgba(223, 218, 207, 0));
-	background-image: -ms-linear-gradient(right, rgba(223, 218, 207, 1), rgba(223, 218, 207, 0));
-	background-image: -o-linear-gradient(right, rgba(223, 218, 207, 1), rgba(223, 218, 207, 0));
-	background-image: linear-gradient(to left, rgba(223, 218, 207, 1), rgba(223, 218, 207, 0));
+/* hidden filter row */
+.tablesorter-filter-row.hideme td {
+    /*** *********************************************** ***/
+    /*** change this padding to modify the thickness     ***/
+    /*** of the closed filter row (height = padding x 2) ***/
+    padding: 2px;
+    /*** *********************************************** ***/
+    margin: 0;
+    line-height: 0;
+    cursor: pointer;
 }
 
-.show-table {	
-	text-align:center; 
-	vertical-align:middle;
-	width: 33%
+.tablesorter-filter-row.hideme * {
+    height: 1px;
+    min-height: 0;
+    border: 0;
+    padding: 0;
+    margin: 0;
+    /* don't use visibility: hidden because it disables tabbing */
+    opacity: 0;
+    filter: alpha(opacity=0);
 }
 
-.show-add {
-	font-size: 11px;
-	text-align: left;
-	display: block;
-}
-
-.show-status {
-	font-size: 11px;
-	text-align: left;
-	display: block;
-}
-
-.show-network-image {
-	width: 50px;
-	height: auto;
-}
-
-.show-dlstats {
-	font-size: 11px;
-	text-align: left;
-	display: block;
-	margin-left: 4px;
-}
-
-.show-quality {
-	font-size: 11px;
-	text-align: right;
-	display: block;
-	margin-right: 4px;
-}
-
-#sort-by {
-	display: inline;
-	list-style-type: none; 
- 	padding: 0;
-	margin-left: 5px;
-}
-
-#sort-by ul, #sort-by li {
-	display: inline;
-	margin: 0;
-	padding: 0;
-}
-
-.posterview {
-	margin: 0 auto;
-}
-
-td.tvShow a {
-    color: #000;
-    text-decoration: none;
-}
-
-td.tvShow a:hover {
-    cursor: pointer;
-    color: #428BCA;
-}
-
-#popover-target label {
-  margin: 0 5px;
-  display: block;
-}
-#popover-target input {
-  margin-left: 5px;
-}
-.popover {
-  margin-left: -50px;
-}
-
-/* =======================================================================
-home_addShows.tmpl
-========================================================================== */
-
-#addShowPortal {
-	width: 700px;
-	padding: 10px 0;
-	margin-right: auto;
-	margin-left: auto;
-}
-
-#addShowPortal  a {
-	padding: 10px;
-}
-
-div.button {
-    display: table-cell;
-    vertical-align: middle;
-	padding-left: 10px;
-}
-
-div.buttontext {
-	display: table-cell;
-	padding-left: 20px;
-	text-align: left;
-	white-space: normal;
-}
-
-div.buttontext h3 {
-	margin-top: 10px;
-}
-
-div.buttontext p {
-	font-size: 13px;
-}
-
-.icon-addnewshow {
-	background-image: url("../images/addshows/add-new32-black.png");
-	width: 32px;
-	height: 32px;
-}
-
-.icon-addtrendingshow {
-	background-image: url("../images/addshows/add-trending32-black.png");
-	width: 32px;
-	height: 32px;
-}
-
-.icon-addrecommendedshow {
-	background-image: url("../images/addshows/add-trakt32-black.png");
-	width: 32px;
-	height: 32px;
-}
-
-.icon-addexistingshow {
-	background-image: url("../images/addshows/add-existing32-black.png");
-	width: 32px;
-	height: 32px;
-}
-
-/* =======================================================================
-home_newShow.tmpl
-========================================================================== */
-#addShowForm, #recommendedShowsForm {
-	width: 800px;
-	margin-left: auto;
-	margin-right: auto;
-	padding: 10px 0;
-	font-size:13px;
-}
-
-#newShowPortal {
-	width: 960px;
-	padding: 10px 0;
-	margin-right: auto;
-	margin-left: auto;
-}
-
-#displayText {
-	padding: 8px;
-	overflow: hidden;
-	font-size: 14px;
-	background-color: #efefef;
-	border: 1px solid #dfdede;
-}
-
-#searchResults input[type="radio"] {
-    vertical-align: -2px;
-}
-
-/* =======================================================================
-home_addExistingShow.tmpl
-========================================================================== */
-
-.existingtabs {
-	padding: 1em 1.4em;
-}
-
-ul#rootDirStaticList {
-    margin-right: auto;
-    margin-left: auto;
-    text-align: left;
-}
-
-ul#rootDirStaticList li {
-	padding: 4px 5px 4px 5px;
-	margin: 2px;
-	list-style: none outside none;
-	cursor: pointer;
-	background: url('../css/lib/images/ui-bg_highlight-soft_75_efefef_1x100.png') repeat-x scroll 50% 50% #EFEFEF;
-}
-
-ul#rootDirStaticList li label {
-    margin-top: 5px;
-	margin-bottom: 5px;
-}
-
-ul#rootDirStaticList li input[type="checkbox"] {
-    vertical-align: -2px;
-}
-
-/* =======================================================================
-home_trendingShows.tmpl
-========================================================================== */
-
-.traktShowTitleIcons {
-    float: right;
-	padding-right: 4px;
-	padding-bottom: 4px;
-}
-
-.traktContainer p { 
-	padding-top: 2px;
-}
-
-.traktContainer p img { 
-	position: relative;
-	top: -2px;
-}
-
-.traktContainer p, .traktContainer i { 
-    white-space: nowrap;
-	font-size: 12px;
-	overflow: hidden;
-/*	text-shadow: 1px 1px 0px #000;*/
-	padding-left: 4px;
-	margin: 0;
-}
-
-.traktContainer {
-    margin: 12px;
-	width: 188px;
-	background-color: #DFDACF;
-	border: 1px solid #111;
-	border-radius: 6px;
-}
-
-.trakt-image {
-	overflow: hidden;
-	height: 273px;
-    width: 186px;
-	border-top-left-radius: 5px;
-	border-top-right-radius: 5px;
-	border-bottom: 1px solid #111;
-}
-
-
-/* =======================================================================
-home_postprocess.tmpl
-========================================================================== */
-
-#postProcess {
-	width: 800px;
-	padding-top: 10px;
-	margin-right: auto;
-    margin-left: auto;
-}
-
-
-/* =======================================================================
-displayShow.tmpl 
-========================================================================== */
-
-#posterCol {
-    float: left;
-	margin-right: 10px;
-	margin-bottom: 20px;
-}
-
-#showCol {
-    overflow: hidden;
-	margin-bottom: 20px;
-}
-
-.navShow {
-    display: inline;
-    cursor: pointer;
-}
-
-#prevShow,
-#nextShow,
-#topcontrol {
-	-webkit-filter: grayscale(100%);
-	filter: grayscale(100%);
-	filter: gray;
-	filter: url("data:image/svg+xml;utf8,<svg version='1.1' xmlns='http://www.w3.org/2000/svg' height='0'><filter id='greyscale'><feColorMatrix type='matrix' values='0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0' /></filter></svg>#greyscale");
-}
-
-h1.title {
-    padding-bottom: 12px;
-    margin-bottom: 15px;
-    line-height: 30px;
-    text-align: left;
-    text-rendering: optimizelegibility;
-    border-bottom: 1px solid #888;
-}
-
-.displayspecials {
-	position: relative; 
-	top: -24px;
-}
-
-#showinfo {
-	cursor: default;
-}
-
-#showinfo { 
-	display: inline-block;
-	position: relative;
-	top: -3px;
-}
-
-span.imdbstars {
-	display: inline-block; 
-	vertical-align: top;
-	cursor: help;
-	margin-top: 4px;
-}
-
-span.imdbstars, span.imdbstars > * {
-    height: 12px; 
-    background: url(../images/rating.png) 0 -12px repeat-x;
-    width: 120px;
-    display: inline-block;
-	vertical-align: top;
-}
-
-span.imdbstars > * {
-    background-position: 0 0;
-    max-width:120px; 
-}
-
-ul.tags {
-    list-style-type: none;
-	position: relative;
-	top: -5px;
-	margin-left: -40px;
-}
-
-ul.tags li {
-    margin-right: 4px;
-	margin-bottom: 5px;
-    padding: 3px 4px 3px 25px;
-	background: url(../images/tag.png) no-repeat scroll 5px 4px #555;
-    border-radius: 3px;
-	border: 1px solid #111;
-    color: #FFF;
-    font: 14px/18px "Open Sans", "Helvetica Neue", Helvetica, Arial, Geneva, sans-serif;
-	text-shadow: 0px 1px rgba(0, 0, 0, 0.8);
-    float: left;
-}
-
-ul.tags li a{
-    color: #FFF;
-}
-
-.tvshowImg {
-	border: 1px solid #ccc;
-	border-radius: 5px;
-	height: 311px;
-	width: auto;
-	float: left;
-}
-
-#summary {
-	padding: 10px;
-	background-color: #efefef;
-	border: 1px solid #dfdede;
-	width: 100%;
-	height: 250px;
-	overflow: auto;
-	cursor: default;
-}
-
-.summaryTable {
-	max-width: 70%;
-	overflow: hidden;
-}
-
-#checkboxControls {
-	padding-top: 5px;
-}
-
-#checkboxControls span {
-	padding: 5px;
-	font-size: 13px;
-	font-weight: bold;
-	border-radius: 5px;
-}
-
-#checkboxControls label {
-    white-space: nowrap;
-    display: inline-block;
-}
-
-#checkboxControls input[type="checkbox"] {
-    vertical-align: -2px;
-}
-
-.unaired {
-  background-color: #f5f1e4;
-}
-.skipped {
-  background-color: #bedeed;
-}
-.good {
-  background-color: #c3e3c8;
-}
-.qual {
-  background-color: #ffda8a;
-}
-.wanted {
-  background-color: #ffb0b0;
-}
-.snatched {
-  background-color: #ebc1ea;
-}
-
-span.unaired {
-  	color: #584b20;
-	border: 1px solid #584b20;
-}
-span.skipped {
-  	color: #1d5068;
-	border: 1px solid #1d5068;
-}
-span.good {
-  	color: #295730;
-	border: 1px solid #295730;
-}
-span.qual {
-  	color: #765100;
-	border: 1px solid #765100;
-}
-span.wanted {
-  	color: #890000;
-	border: 1px solid #890000;
-}
-span.snatched {
-  	color: #652164;
-	border: 1px solid #652164;
-}
-
-span.unaired b,
-span.skipped b,
-span.good b,
-span.qual b,
-span.wanted b,
-span.snatched b {
-  	color: #000000;
-	font-weight: 800;
-}
-
-.plotInfo {
-    cursor: help;
-    float: right;
-    position: relative;
-    top: 2px;
-}
-
-.plotInfoNone {
-    cursor: help;
-    float: right;
-    position: relative;
-    top: 2px;
-	opacity: 0.4;
-}
-
-.displayShowTable {
-	table-layout: auto;
-	width: 100%;
-	border-collapse: collapse;
-	border-spacing: 0;
-	text-align: center;
-	border: none;
-	empty-cells: show;
-	color: #000 !important;
-}
-
-.displayShowTable.display_show {
-	clear:both
-}
-
-.displayShowTable th.row-seasonheader {
-	border: none !important;
-	background-color: #fff !important;
-	color: #000 !important; 
-	padding-top: 15px !important;
-	text-align: left !important;
-}
-
-.displayShowTable td.col-search {
-    text-align: center;
-}
-
-.sickbeardTable {
-	table-layout: auto;
-	width: 100%;
-	border-collapse: collapse;
-	border-spacing: 0;
-	text-align: center;
-	border: none;
-	empty-cells: show;
-}
-
-.sickbeardTable th{
-	color: #fff;
-	text-align: center;
-	background-color: #333;
-	white-space: nowrap;
-}
-
-.sickbeardTable th, 
-.sickbeardTable td {
-	border-top: 1px solid #fff;
-	border-left: 1px solid #fff;
-	padding: 4px;
-}
-
-th.row-seasonheader {
-	border: none;
-	background-color: #fff;
-	color: #000;
-	padding-top: 15px;
-	text-align: left;
-}
-
-tr.seasonheader {
-	padding-bottom: 5px;
-	padding-top: 10px;
-	text-align: left;
-	border: none;
-	color: #fff;
-}
-
-th.col-checkbox,
-td.col-checkbox {
-	width: 30px;
-	border-left: none;
-	text-align: center;
-}
-
-th.col-checkbox input[type="checkbox"],
-td.col-checkbox input[type="checkbox"] {
-    vertical-align: -2px;
-}
-
-th.col-metadata,
-td.col-metadata {
-	width: 28px;
-}
-
-th.col-ep,
-td.col-ep {
-	width: 50px;
-	white-space: nowrap;
-}
-
-th.col-airdate,
-td.col-airdate {
-	width: 86px;
-	white-space: nowrap;
-}
-
-th.col-name,
-td.col-name {
-	min-width: 100px;
-}
-
-td.col-name {
-	text-align: left;
-}
-
-th.col-subtitles,
-td.col-subtitles {
-	width: 150px;
-	text-align: center;
-}
-
-th.col-status,
-td.col-status {
-	width: 210px;
-	text-align: center;
-}
-
-th.col-legend,
-td.col-legend {
-	width: 80px;
-}
-
-th.col-search,
-td.col-search {
-  width: 46px;
-}
-
-.showLegend {
-	padding-right: 6px;
-	padding-bottom: 1px;
-	width: 150px;
-}
-
-.input-scene {
-    height: 20px;
-    line-height: 1.5;
-    border-radius: 3px;
-}
-
-#editShow {
-    width: 700px;
-    padding-top: 10px;
-    margin-right: auto;
-    margin-left: auto;
-}
-
-/* =======================================================================
-comingEpisodes.tmpl
-========================================================================== */
-
-.sort_data {
-	display: none;
-}
-
-.key {
-	margin-bottom: 20px;
-}
-
-.listing-key {
-    padding: 5px;
-    font-size: 13px;
-    font-weight: bold;
-    border-radius: 5px;
-}
-
-.listing-default {
-	background-color: #f5f1e4;
-}
-
-.listing-current {
-	background-color: #dfd;
-}
-
-.listing-overdue {
-	background-color: #fdd;
-}
-
-.listing-toofar {
-	background-color: #bedeed;
-}
-
-span.listing-default {
-  	color: #826f30;
-	border: 1px solid #826f30;
-}
-
-span.listing-current {
-  	color: #295730;
-	border: 1px solid #295730;
-}
-
-span.listing-overdue {
-  	color: #890000;
-	border: 1px solid #890000;
-}
-
-span.listing-toofar {
-  	color: #1d5068;
-	border: 1px solid #1d5068;
-}
-
-h2.day, h2.network {
-	margin: 10px 0;
-	font-size: 24px;
-	line-height: 36px;
-	font-weight: bold;
-	letter-spacing: 1px;
-	color: #FFF;
-	text-align: center;
-	text-shadow: -1px -1px 0px rgba(0, 0, 0, 0.3);
-	background-color: #333;
-}
-
-.tvshowDiv {
-    display: block;
-    clear: both;
-    border: 1px solid #ccc;
-    margin: auto;
-    padding: 0px;
-    text-align: left;
-    width: 750px;
-	border-radius: 5px;
-	background: #fff;
-	cursor: default;
-	overflow: hidden;
-}
-
-.tvshowDiv a:hover {
-    color: #428BCA;
-}
-
-.tvshowDiv a, .tvshowDiv a:link, .tvshowDiv a:visited, .tvshowDiv a:hover  {
-	text-decoration: none;
-	background: none;
-}
-
-.tvshowTitle a {
-    color: #000000;
-    float: left; 
-    line-height: 1.4em;
-    font-size: 1.4em;
-    text-shadow: -1px -1px 0 #FFF);
-}
-
-.tvshowTitleIcons {
-    float: right;
-    padding: 3px 5px;
-}
-
-.tvshowDiv td {
-    padding: 5px 10px;
-}
-
-.tvshowDiv td.next_episode {
-    width: 100%;
-    height: 90%;	
-    border-bottom: 1px solid #ccc;
-    vertical-align: top;
-    color: #000;
-}
-
-.bannerThumb {
-    vertical-align: top;
-    height: auto;
-    width: 748px;
-	border-bottom: 1px solid #ccc;
-}
-
-.posterThumb {
-    vertical-align: top;
-    height: auto;
-    width: 180px;
-	border-right: 1px solid #ccc;
-}
-
-.ep_listing {
-    width: auto;
-    border: 1px solid #ccc;
-    margin-bottom: 10px;
-    padding: 10px;
-}
-
-.ep_summary {
-    margin-left: 5px;
-    font-style: italic;
-}
-
-.ep_summaryTrigger {
-	cursor: pointer;
-	vertical-align: middle;
-}
-
-.ep_summaryTriggerNone {
-	opacity: 0.4;
-	vertical-align: middle;
-}
-
-table.cal-odd {
-    background-color: #ddd;
-}
-table.cal-even {
-    background-color: #d2d2d2;
-}
-.calendarShow .text .airtime {
-    color:#000
-}
-.calendarShow .text .episode-title {
-    color:#888
-}
-
-/* =======================================================================
-config*.tmpl
-========================================================================== */
-
-#config-content {
-	display: block;
-	width: 960px;
-	padding: 0 0 40px;
-	margin: 0 auto;
-	clear: both;
-	text-align: left;
-}
-
-.component-group {
-	padding: 15px 15px 25px;
-	border-bottom: 1px dotted #ccc;
-	min-height: 200px;
-}
-
-.component-item {
-    border-bottom: 1px dotted #666;
-    min-height: 200px;
-}
-
-.component-group-desc{
-	float: left;
-	width: 250px;
-}
-
-.component-group-desc h3{
-	margin-top: 5px;
-}
-
-.component-group-desc p {
-	width: 90%;
-	margin: 10px 0;
-	color: #666;
-}
-
-#config div.field-pair {
-	padding: 12px 0px;
-}
-
-#config div.field-pair input {
-	float: left;
-	margin-right: 6px;
-}
-
-#config .nocheck, #config div #customQuality, .metadataDiv {
-	padding-left: 20px;
-}
-
-#config .metadataDiv {
-	display: none;
-}
-
-.component-group-save {
-	float: right;
-	padding-top: 10px;
-}
-
-select .selected {
-	font-weight: 700;
-}
-
-.jumbo {
-	font-size: 15px !important;
-	line-height: 24px;
-}
-
-.testNotification {
-    padding: 5px;
-    margin-bottom: 10px;
-    line-height: 20px;
-    border: 1px dotted #CCC;
-}
-
-#providerOrderList {
-    width: 250px;
-    padding-left: 20px;
-    list-style-type: none;
-}
-
-#provider_order_list, 
-#service_order_list {
-	width: 250px;
-	padding-left: 20px;
-	list-style-type: none;
-}
-
-#provider_order_list li, 
-#service_order_list li {
-	padding: 5px;
-	margin: 5px 0;
-	font-size: 14px;
-}
-
-#provider_order_list input, 
-#service_order_list input {
-	margin: 0px 2px;
-}
-
-#config .tip_scale label span.component-title {
-    width: 85px !important;
-    font-size: 12px !important;
-    margin-top: 2px !important;
-}
-
-#config .tip_scale label span.component-desc {
-    margin-left: 120px !important;
-    width: 220px !important;
-}
-
-.infoTableHeader, 
-.infoTableCell {
-	padding: 5px;
-}
-
-.infoTableSeperator { 
-	border-top: 1px dotted #666666; 
-}
-
-[class^="icon16-"], [class*=" icon16-"] {
-    background-image: url("../images/glyphicons-config-black.png");
-    background-position: -40px 0;
-    background-repeat: no-repeat;
-    display: inline-block;
-    height: 16px;
-    line-height: 16px;
-    vertical-align: text-top;
-    width: 16px;
-}
-
-.icon16-github {
-    background-position: 0 0;
-}
-.icon16-mirc {
-    background-position: -20px 0;
-}
-.icon16-sb {
-    background-position: -40px 0;
-}
-.icon16-web {
-    background-position: -60px 0;
-}
-.icon16-win {
-    background-position: -80px 0;
-}
-
-/* =======================================================================
-config_postProcessing.tmpl
-========================================================================== */
-
-#config div.example {
-	padding: 10px; background-color: #efefef;
-}
-
-.Key {
-	width: 100%;
-	padding: 6px;
-	font-size: 13px;
-	background-color: #f4f4f4;
-	border: 1px solid #ccc;
-	border-collapse: collapse;
-	border-spacing: 0;
-}
-
-.Key th, .tableHeader {
-	padding: 3px 9px;
-	margin: 0;
-	color: #fff;
-	text-align: center;
-	background: none repeat scroll 0 0 #666;
-}
-
-.Key td {
-	padding: 1px 5px !important;
-}
-
-.Key tr {
-	border-bottom: 1px solid #ccc;
-}
-
-.Key tr.even {
-	background-color: #dfdede;
-}
-
-.legend {
-	position: relative;
-	top: 2px;
-}
-
-/* =======================================================================
-config_notifications.tmpl
-========================================================================== */
-
-div.metadata_options_wrapper {
-	float: left;
-	width: 190px;
-}
-
-div.metadata_example_wrapper {
-	float: right;
-	width: 325px;
-}
-
-div.metadata_options {
-	padding: 7px;
-	overflow: auto;
-	background: #f5f1e4;
-	border: 1px solid #ccc;
-}
-
-div.metadata_options label:hover {
-	color: #fff;
-	background-color: #57442b;
-	cursor: pointer;
-}
-
-div.metadata_options label {
-	display: block;
-	padding-left: 7px;
-	line-height: 20px;
-	color: #036;
-}
-
-div.metadata_example {
-	padding: 8px;
-}
-
-div.metadata_example label {
-	display: block;
-	line-height: 21px;
-	color: #000;
-	cursor: pointer;
-}
-
-div.metadataDiv .disabled {
-	color: #ccc;
-}
-
-.notifier-icon {
-    float: left;
-    margin: 6px 4px 0px 0px;
-}
-
-.warning {
-	border-color: #F89406;
-	background: url("../images/warning16.png") no-repeat right 5px center #fff;
-}
-
-/* =======================================================================
-manage*.tmpl
-========================================================================== */
-
-.manageTable th {
-	white-space: normal;
-	line-height: 24px;
-}
-
-.manageTable td.tableright {
-	text-align: left;
-}
-
-td.tableright {
-	text-align: center;
-}
-
-.optionWrapper {
-	width: 450px;
-	margin-left: auto;
-	margin-right: auto;
-	padding: 6px 12px;
-}
-
-.optionWrapper span.selectTitle {
-	float: left;
-	text-align: left;
-	vertical-align: middle;
-	width: 225px;
-	padding: 6px 0px;
-}
-
-.optionWrapper div.selectChoices {
-	float: left;
-	width: 175px;
-	margin-left: 25px;
-}
-
-.optionWrapper br {
-	clear: both;
-}
-
-.manageCustom {
-	text-align: center;
-	padding: 6px;
-	margin-left: 25px;
-}
-
-.separator {
-	font-size: 90%;
-	color: #333333;
-}
-
-a.whitelink {
-	color: #fff;
-}
-
-
-/* =======================================================================
-Global
-========================================================================== */
-
-span.path {
-	padding: 3px 6px;
-	color: #8b0000;
-	background-color: #f5f1e4;
-}
-
-.align-left {
-	text-align: left;
-}
-
-.h2footer {
-	margin: -45px 0 8px;
-	line-height: 18px;
-}
-
-span.quality {
-	font: 12px/13px "Open Sans", verdana, sans-serif;
-	background-image:-webkit-linear-gradient(top, rgba(255,255,255,0.08),rgba(255,255,255,0) 50%,rgba(0,0,0,0) 50%,rgba(0,0,0,0.25));
-	background-image:-moz-linear-gradient(top, rgba(255,255,255,0.08),rgba(255,255,255,0) 50%,rgba(0,0,0,0) 50%,rgba(0,0,0,0.25));
-	background-image:-o-linear-gradient(top, rgba(255,255,255,0.08),rgba(255,255,255,0) 50%,rgba(0,0,0,0) 50%,rgba(0,0,0,0.25));
-	background-image:linear-gradient(to bottom, rgba(255,255,255,0.08),rgba(255,255,255,0) 50%,rgba(0,0,0,0) 50%,rgba(0,0,0,0.25));
-	-webkit-box-shadow:inset 0 1px rgba(255,255,255,0.1),inset 0 -1px 3px rgba(0,0,0,0.3),inset 0 0 0 1px rgba(255,255,255,0.08),0 1px 2px rgba(0,0,0,0.15);
-	box-shadow:inset 0 1px rgba(255,255,255,0.1),inset 0 -1px 3px rgba(0,0,0,0.3),inset 0 0 0 1px rgba(255,255,255,0.08),0 1px 2px rgba(0,0,0,0.15);
-	text-shadow: 0px 1px rgba(0, 0, 0, 0.8);
-	color: #FFFFFF;
-	display: inline-block;
-	padding: 2px 4px;
-	text-align: center;
-	vertical-align: baseline;
-	-webkit-border-radius: 4px;
-	-moz-border-radius: 4px;
-	border-radius: 4px;
-}
-
-span.Custom {
-	background-color: #621993;
-}
-
-span.HD {
-	background-color: #2672B6;
-}
-
-span.HDTV {
-	background-color: #2672B6;
-}
-
-span.HD720p {
-	background-color: #5b990d;
-}
-
-span.HD1080p {
-	background-color: #2672B6;
-}
-
-span.RawHD {
-	background-color: #cd7300;
-}
-
-span.RawHDTV {
-	background-color: #cd7300;
-}
-
-span.SD {
-	background-color: #BE2625;
-}
-
-span.SDTV {
-	background-color: #BE2625;
-}
-
-span.Any {
-	background-color: #666;
-}
-
-span.Unknown {
-	background-color: #999;
-}
-
-span.Proper {
-	background-color: #3F7F00;
-}
-
-span.false {
-	color: #993333;
-	/* red */
-}
-
-span.true {
-	color: #669966;
-	/* green */
-}
-
-option.flag {
-	padding-left: 35px;
-	background-repeat: no-repeat;
-	background-position: 10px 50%;
-}
-
-/* Anime section for editShow */
-.bwlWrapper {
-	height:auto;
-	margin: 0 auto;
-}
-
-#Anime {
-    clear: both;
-    overflow-x: hidden; 
-    overflow-y: hidden;
-    font-size: 14px;
-}
-
-#Anime div.component-group-desc {
-    float: left;
-    width: 165px;
-}
-
-#Anime div.component-group-desc p {
-    margin-bottom: 0.4em;
-    margin-left: 0;
-    margin-right: 0;
-    margin-top: 0.4em;
-    width: 95%;
-}
-
-div.blackwhitelist{
-	float:left;
-	text-align: center; 
-}
-div.blackwhitelist input {
-    margin: 5px 0px;
-}
-div.blackwhitelist.pool select{
-    width: 230px;
-}
-div.blackwhitelist.white select, div.blackwhitelist.black select {
-	width: 150px;
-}
-div.blackwhitelist span {
-	display: block;
-	text-align: center;
-}
-div.blackwhitelist.anidb, div.blackwhitelist.manual {
-	margin: 7px 0px;
-}
-
-
-/* =======================================================================
-bootstrap Overrides
-========================================================================== */
-
-body { 
-	padding-top: 60px; 
-	overflow-y: scroll;
-	font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
-	color: #000;
-}
-
-html * { 
-	outline: 0 !important; 
-}
-
-input[type="radio"] {
-    margin: 2px 0px 0px;
-    line-height: normal;
-}
-
-input, textarea, select, .uneditable-input {
-	width: auto;
-	color: #000;
-}
-
-.container-fluid {
-    margin-left: 10px;
-	margin-right: 10px;
-}
-
-.navbar-brand {
-    padding: 0px;
-}
-
-/* navbar styling */
-.navbar-default {
-    background-color: #333333;
-    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#555555', endColorstr='#333333');
-    background: -webkit-gradient(linear, left top, left bottom, from(#555), to(#333));
-    background: -moz-linear-gradient(top,  #555,  #333);
-	border-color: #3e3f3a;
-}
-
-.navbar-default .navbar-brand {
-	color: #ffffff;
-}
-
-.navbar-default .navbar-brand:hover,
-.navbar-default .navbar-brand:focus {
-	color: #ffffff;
-	background-color: transparent;
-}
-
-.navbar-default .navbar-text {
-	color: #dddddd;
-}
-
-.navbar-default .navbar-nav > li > a {
-	color: #dddddd;
-}
-
-.navbar-default .navbar-nav > li > a:hover,
-.navbar-default .navbar-nav > li > a:focus {
-	color: #ffffff;
-	background-color: transparent;
-}
-
-.navbar-default .navbar-nav > .active > a,
-.navbar-default .navbar-nav > .active > a:hover,
-.navbar-default .navbar-nav > .active > a:focus {
-	color: #ffffff;
-	background-color: #333333;
-}
-
-.navbar-default .navbar-nav > .disabled > a,
-.navbar-default .navbar-nav > .disabled > a:hover,
-.navbar-default .navbar-nav > .disabled > a:focus {
-	color: #cccccc;
-	background-color: transparent;
-}
-
-.navbar-default .navbar-toggle {
-	border-color: #cccccc;
-}
-
-.navbar-default .navbar-toggle:hover,
-.navbar-default .navbar-toggle:focus {
-	background-color: #333333;
-}
-
-.navbar-default .navbar-toggle .icon-bar {
-	background-color: #333333;
-}
-
-.navbar-default .navbar-collapse,
-.navbar-default .navbar-form {
-	border-color: #3e3f3a;
-}
-
-.navbar-default .navbar-nav > .open > a,
-.navbar-default .navbar-nav > .open > a:hover,
-.navbar-default .navbar-nav > .open > a:focus {
-	background-color: #333333;
-	color: #ffffff;
-}
-
-@media (max-width: 767px) {
-  .navbar-default .navbar-nav .open .dropdown-menu > li > a {
-		color: #dddddd;
-  }
-  .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
-  .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
-		color: #ffffff;
-		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: #ffffff;
-		background-color: #333333;
-  }
-  .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: #cccccc;
-		background-color: transparent;
-  }
-}
-
-.navbar-default .navbar-link {
-	color: #dddddd;
-}
-
-.navbar-default .navbar-link:hover {
-	color: #ffffff;
-}
-
-.navbar-default .btn-link {
-	color: #98978b;
-}
-
-.navbar-default .btn-link:hover,
-.navbar-default .btn-link:focus {
-	color: #dddddd;
-}
-
-.navbar-default .btn-link[disabled]:hover,
-fieldset[disabled] .navbar-default .btn-link:hover,
-.navbar-default .btn-link[disabled]:focus,
-fieldset[disabled] .navbar-default .btn-link:focus {
-	color: #cccccc;
-}
-
-.dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus {
-    color: #fff;
-    text-decoration: none;
-    background-color: #333;
-}
-
-.dropdown-menu > li > a {
-    padding: 4px 36px 4px 20px;
-}
-
-.dropdown-menu {
-    background-color: #F5F1E4;
-    border: 1px solid rgba(0, 0, 0, 0.15);
-    box-shadow: 0px 6px 12px rgba(0, 0, 0, 0.176);
-}
-
-.form-control {
-    color: #000000;
-}
-
-.form-control-inline {
-    min-width: 0;
-    width: auto;
-    display: inline;
-}
-
-.btn {
-	display: inline-block;
-	*display: inline;
-	padding: 4px 10px 4px;
-	margin-bottom: 0;
-	*margin-left: .3em;
-	font-size: 12px;
-	line-height: 16px;
-	*line-height: 20px;
-	color: #333333;
-	text-align: center;
-	text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
-	vertical-align: middle;
-	cursor: pointer;
-	background-color: #f5f5f5;
-	*background-color: #e6e6e6;
-	background-image: -ms-linear-gradient(top, #ffffff, #e6e6e6);
-	background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));
-	background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);
-	background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);
-	background-image: linear-gradient(top, #ffffff, #e6e6e6);
-	background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);
-	background-repeat: repeat-x;
-	border: 1px solid #cccccc;
-	*border: 0;
-	border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-	border-color: #e6e6e6 #e6e6e6 #bfbfbf;
-	border-bottom-color: #b3b3b3;
-	-webkit-border-radius: 4px;
-	-moz-border-radius: 4px;
-	border-radius: 4px;
-	filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);
-	filter: progid:dximagetransform.microsoft.gradient(enabled=false);
-	*zoom: 1;
-	-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
-    -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
-    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
-}
-
-.btn:hover,
-.btn:active,
-.btn.active,
-.btn.disabled,
-.btn[disabled] {
-	background-color: #e6e6e6;
-	*background-color: #d9d9d9;
-}
-
-.btn:active,
-.btn.active {
-	background-color: #cccccc \9;
-}
-
-.btn:first-child {
-	*margin-left: 0;
-}
-
-.btn:hover {
-	color: #333333;
-	text-decoration: none;
-	background-color: #e6e6e6;
-	*background-color: #d9d9d9;
-	background-position: 0 -15px;
-	-webkit-transition: background-position 0.1s linear;
-    -moz-transition: background-position 0.1s linear;
-    -ms-transition: background-position 0.1s linear;
-    -o-transition: background-position 0.1s linear;
-    transition: background-position 0.1s linear;
-}
-
-.btn:focus {
-	outline: thin dotted #333;
-	outline: 5px auto -webkit-focus-ring-color;
-	outline-offset: -2px;
-}
-
-.btn.active,
-.btn:active {
-	background-color: #e6e6e6;
-	background-color: #d9d9d9 \9;
-	background-image: none;
-	outline: 0;
-	-webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
-    -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
-    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
-}
-
-.btn.disabled,
-.btn[disabled] {
-	cursor: default;
-	background-color: #e6e6e6;
-	background-image: none;
-	opacity: 0.65;
-	filter: alpha(opacity=65);
-	-webkit-box-shadow: none;
-    -moz-box-shadow: none;
-    box-shadow: none;
-}
-
-.btn-large {
-	padding: 9px 14px;
-	font-size: 15px;
-	line-height: normal;
-	-webkit-border-radius: 5px;
-    -moz-border-radius: 5px;
-    border-radius: 5px;
-}
-
-.btn-large [class^="icon-"] {
-	margin-top: 1px;
-}
-
-.btn-small {
-	padding: 5px 9px;
-	font-size: 11px;
-	line-height: 16px;
-}
-
-.btn-small [class^="icon-"] {
-	margin-top: -1px;
-}
-
-.btn-mini {
-	padding: 2px 6px;
-	font-size: 11px;
-	line-height: 14px;
-}
-
-.btn-primary,
-.btn-primary:hover,
-.btn-warning,
-.btn-warning:hover,
-.btn-danger,
-.btn-danger:hover,
-.btn-success,
-.btn-success:hover,
-.btn-info,
-.btn-info:hover,
-.btn-inverse,
-.btn-inverse:hover {
-	color: #ffffff;
-	text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
-}
-
-.btn-primary.active,
-.btn-warning.active,
-.btn-danger.active,
-.btn-success.active,
-.btn-info.active,
-.btn-inverse.active {
-	color: rgba(255, 255, 255, 0.75);
-}
-
-.btn-primary {
-	background-color: #0074cc;
-	*background-color: #0055cc;
-	background-image: -ms-linear-gradient(top, #0088cc, #0055cc);
-	background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0055cc));
-	background-image: -webkit-linear-gradient(top, #0088cc, #0055cc);
-	background-image: -o-linear-gradient(top, #0088cc, #0055cc);
-	background-image: -moz-linear-gradient(top, #0088cc, #0055cc);
-	background-image: linear-gradient(top, #0088cc, #0055cc);
-	background-repeat: repeat-x;
-	border-color: #0055cc #0055cc #003580;
-	border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-	filter: progid:dximagetransform.microsoft.gradient(startColorstr='#0088cc', endColorstr='#0055cc', GradientType=0);
-	filter: progid:dximagetransform.microsoft.gradient(enabled=false);
-}
-
-.btn-primary:hover,
-.btn-primary:active,
-.btn-primary.active,
-.btn-primary.disabled,
-.btn-primary[disabled] {
-	background-color: #0055cc;
-	*background-color: #004ab3;
-}
-
-.btn-primary:active,
-.btn-primary.active {
-	background-color: #004099 \9;
-}
-
-.btn-warning {
-	background-color: #faa732;
-	*background-color: #f89406;
-	background-image: -ms-linear-gradient(top, #fbb450, #f89406);
-	background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));
-	background-image: -webkit-linear-gradient(top, #fbb450, #f89406);
-	background-image: -o-linear-gradient(top, #fbb450, #f89406);
-	background-image: -moz-linear-gradient(top, #fbb450, #f89406);
-	background-image: linear-gradient(top, #fbb450, #f89406);
-	background-repeat: repeat-x;
-	border-color: #f89406 #f89406 #ad6704;
-	border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-	filter: progid:dximagetransform.microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);
-	filter: progid:dximagetransform.microsoft.gradient(enabled=false);
-}
-
-.btn-warning:hover,
-.btn-warning:active,
-.btn-warning.active,
-.btn-warning.disabled,
-.btn-warning[disabled] {
-	background-color: #f89406;
-	*background-color: #df8505;
-}
-
-.btn-warning:active,
-.btn-warning.active {
-	background-color: #c67605 \9;
-}
-
-.btn-danger {
-	background-color: #da4f49;
-	*background-color: #bd362f;
-	background-image: -ms-linear-gradient(top, #ee5f5b, #bd362f);
-	background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));
-	background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f);
-	background-image: -o-linear-gradient(top, #ee5f5b, #bd362f);
-	background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f);
-	background-image: linear-gradient(top, #ee5f5b, #bd362f);
-	background-repeat: repeat-x;
-	border-color: #bd362f #bd362f #802420;
-	border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-	filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#bd362f', GradientType=0);
-	filter: progid:dximagetransform.microsoft.gradient(enabled=false);
-}
-
-.btn-danger:hover,
-.btn-danger:active,
-.btn-danger.active,
-.btn-danger.disabled,
-.btn-danger[disabled] {
-	background-color: #bd362f;
-	*background-color: #a9302a;
-}
-
-.btn-danger:active,
-.btn-danger.active {
-	background-color: #942a25 \9;
-}
-
-.btn-success {
-	background-color: #5bb75b;
-	*background-color: #51a351;
-	background-image: -ms-linear-gradient(top, #62c462, #51a351);
-	background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));
-	background-image: -webkit-linear-gradient(top, #62c462, #51a351);
-	background-image: -o-linear-gradient(top, #62c462, #51a351);
-	background-image: -moz-linear-gradient(top, #62c462, #51a351);
-	background-image: linear-gradient(top, #62c462, #51a351);
-	background-repeat: repeat-x;
-	border-color: #51a351 #51a351 #387038;
-	border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-	filter: progid:dximagetransform.microsoft.gradient(startColorstr='#62c462', endColorstr='#51a351', GradientType=0);
-	filter: progid:dximagetransform.microsoft.gradient(enabled=false);
-}
-
-.btn-success:hover,
-.btn-success:active,
-.btn-success.active,
-.btn-success.disabled,
-.btn-success[disabled] {
-	background-color: #51a351;
-	*background-color: #499249;
-}
-
-.btn-success:active,
-.btn-success.active {
-	background-color: #408140 \9;
-}
-
-.btn-info {
-	background-color: #49afcd;
-	*background-color: #2f96b4;
-	background-image: -ms-linear-gradient(top, #5bc0de, #2f96b4);
-	background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));
-	background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4);
-	background-image: -o-linear-gradient(top, #5bc0de, #2f96b4);
-	background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4);
-	background-image: linear-gradient(top, #5bc0de, #2f96b4);
-	background-repeat: repeat-x;
-	border-color: #2f96b4 #2f96b4 #1f6377;
-	border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-	filter: progid:dximagetransform.microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0);
-	filter: progid:dximagetransform.microsoft.gradient(enabled=false);
-}
-
-.btn-info:hover,
-.btn-info:active,
-.btn-info.active,
-.btn-info.disabled,
-.btn-info[disabled] {
-	background-color: #2f96b4;
-	*background-color: #2a85a0;
-}
-
-.btn-info:active,
-.btn-info.active {
-	background-color: #24748c \9;
-}
-
-.btn-inverse {
-	background-color: #414141;
-	*background-color: #222222;
-	background-image: -ms-linear-gradient(top, #555555, #222222);
-	background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#555555), to(#222222));
-	background-image: -webkit-linear-gradient(top, #555555, #222222);
-	background-image: -o-linear-gradient(top, #555555, #222222);
-	background-image: -moz-linear-gradient(top, #555555, #222222);
-	background-image: linear-gradient(top, #555555, #222222);
-	background-repeat: repeat-x;
-	border-color: #222222 #222222 #000000;
-	border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-	filter: progid:dximagetransform.microsoft.gradient(startColorstr='#555555', endColorstr='#222222', GradientType=0);
-	filter: progid:dximagetransform.microsoft.gradient(enabled=false);
-}
-
-.btn-inverse:hover,
-.btn-inverse:active,
-.btn-inverse.active,
-.btn-inverse.disabled,
-.btn-inverse[disabled] {
-	background-color: #222222;
-	*background-color: #151515;
-}
-
-.btn-inverse:active,
-.btn-inverse.active {
-	background-color: #080808 \9;
-}
-
-.btn-xs {
-    padding: 1px 5px;
-    font-size: 12px;
-    line-height: 1.5;
-    border-radius: 3px;
-}
-
-@media(min-width:768px){
-	.navbar .nav > li > .dropdown-menu:after {
-		position: absolute;
-		top: -6px;
-		right: 12px;
-		display: inline-block;
-		border-right: 6px solid transparent;
-		border-bottom: 6px solid #F5F1E4;
-		border-left: 6px solid transparent;
-		content: "";
-	}
-}
-
-label {
-    font-weight: normal;
-}
-
-pre {
-    color: #000;
-    background-color: #F5F5F5;
-    border-color: #ccc;
-}
-
-.alert {
-	padding: 10px;
-	text-align: center;
-}
-
-/* =======================================================================
-input sizing (for config pages)
-========================================================================== */
-
-#config select {
-    min-width: 0;
-    width: auto;
-    display: inline;
-	margin-top: -4px;
-}
-
-.btn-inline {
- 	margin-top: -3px;
-}
-
-.input75 {
-	width: 75px;
-	margin-top: -4px;
-}
-
-.input100 {
-	width: 100px;
-	margin-top: -4px;
-}
-
-.input150 {
-	width: 150px;
-	margin-top: -4px;
-}
-
-.input200 {
-	width: 200px;
-	margin-top: -4px;
-}
-
-.input250 {
-	width: 250px;
-	margin-top: -4px;
-}
-
-.input300 {
-	width: 300px;
-	margin-top: -4px;
-}
-
-.input350 {
-	width: 350px;
-	margin-top: -4px;
-}
-
-/* =======================================================================
-browser.css
-========================================================================== */
-
-#fileBrowserDialog {
-	overflow-y: auto;
-}
-
-#fileBrowserDialog ul {
-	padding: 0;
-	margin: 0;
-}
-
-#fileBrowserDialog ul li {
-	margin: 2px 0;
-	list-style-type: none;
-	cursor: pointer;
-}
-
-#fileBrowserDialog ul li a {
-	display: block;
-	padding: 4px 0;
-}
-
-#fileBrowserDialog ul li a:hover {
-	color: #00f;
-	background: none;
-}
-
-#fileBrowserDialog ul li a span.ui-icon {
-	float: left;
-	margin: 0 4px;
-}
-
-#fileBrowserDialog h2 {
-	font-size: 20px;
-}
-
-.ui-autocomplete {
-	max-height: 180px;
-	overflow-x: hidden;
-	overflow-y: auto;
-}
-
-/* IE6 hack since it doesn't support max-height */
-* html .ui-autocomplete {
-	height: 180px;
-	padding-right: 20px;
-}
-
-.ui-menu .ui-menu-item {
-	background-color: #eee;
-}
-
-.ui-menu .ui-menu-item-alternate {
-	background-color: #fff;
-}
-
-.ui-autocomplete .ui-menu-item .ui-state-focus {
-	color: #fff;
-	background: none;
-	background-color: #0a246a;
-}
-
-/* restore 1.8.x resize handle on dialog button pane */
-.ui-dialog .ui-resizable-se {
-	width: 14px;
-	height: 14px;
-	right: 3px;
-	bottom: 3px;
-	background-position: -80px -224px;
-}
-
-
-/* =======================================================================
-formWizard.css
-========================================================================== */
-
-fieldset.sectionwrap {
-	width: 800px;
-	padding: 5px;
-	text-align: left;
-	border-width: 0;
-}
-
-legend.legendStep {
-	color: #57442b;
-	margin-bottom: 0px;
-}
-
-div.stepsguide {
-	margin-bottom: 15px;
-	overflow: hidden;
-	text-align: left;
-	cursor: pointer;
-}
-
-div.stepsguide .step {
-	float: left;
-	width: 33%;
-	font: bold 24px Arial;
-}
-
-div.stepsguide .step p {
-	margin: 12px 0;
-	border-bottom: 4px solid #57442b;
-}
-
-div.stepsguide .disabledstep {
-	color: #c4c4c4;
-}
-
-div.stepsguide .disabledstep p {
-	border-bottom: 4px solid #8a775e;
-}
-
-div.stepsguide .step .smalltext {
-	font-size: 13px;
-	font-weight: normal;
-}
-
-div.formpaginate {
-	width: 800px;
-	margin-top: 1em;
-	overflow: auto;
-	font-weight: bold;
-	text-align: center;
-}
-
-div.formpaginate .prev, div.formpaginate .next {
-	padding: 3px 6px;
-	color: #fff;
-	cursor: hand;
-	cursor: pointer;
-	background: #57442b;
-	-webkit-border-radius: 6px;
-		-moz-border-radius: 6px;
-			border-radius: 6px;
-}
-
-.stepDiv {
-	padding: 15px 0;
-}
-
-/* step 3 related */
-#customQuality {
-	display: block;
-	padding: 10px 0;
-	overflow: hidden;
-	clear: both;
-}
-
-#customQualityWrapper div.component-group-desc {
-	float: left;
-	width: 172px;
-	margin-right: 10px;
-}	
-
-#customQualityWrapper div.component-group-desc p {
-	width: 85%;
-	margin: .8em 0;
-	font-size: 1.13em;
-	color: #666;
-}
-
-/* =======================================================================
-tablesorter.css
-========================================================================== */
-
-.tablesorter {
-	width: 100%;
-	margin-right: auto;
-	margin-left: auto;
-	color: #000;
-	text-align: left;
-	background-color: #ddd;
-	border-spacing: 0;
-}
-
-.tablesorter th,
-.tablesorter td {
-	padding: 4px;
-	border-top: #fff 1px solid;
-	border-left: #fff 1px solid;
-	vertical-align: middle;
-}
-
-/* remove extra border from left edge */
-.tablesorter th:first-child,
-.tablesorter td:first-child {
-	border-left: none;
-}
-
-.tablesorter th {
-	color: #fff;
-	text-align: center;
-	text-shadow: -1px -1px 0 rgba(0,0,0,0.3);
-	background-color: #333;
-	border-collapse: collapse;
-	font-weight: normal;
-}
-
-.tablesorter .tablesorter-header {
-	padding: 4px 18px 4px 18px;
-	cursor: pointer;
-	background-image: url(data:image/gif;base64,R0lGODlhFQAJAIAAAP///////yH5BAEAAAEALAAAAAAVAAkAAAIXjI+AywnaYnhUMoqt3gZXPmVg94yJVQAAOw==);
-	background-position: center right;
-	background-repeat: no-repeat;
-	/* background-image: url(../images/tablesorter/bg.gif); */
-}
-
-.tablesorter thead .tablesorter-headerDesc {
-	background-color: #555;
-	background-image: url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjB+gC+jP2ptn0WskLQA7);
-	/* background-image: url(../images/tablesorter/asc.gif); */
-}
-
-.tablesorter thead .tablesorter-headerAsc {
-  background-color: #555;
-  background-image: url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjI8Bya2wnINUMopZAQA7);
-  /* background-image: url(../images/tablesorter/desc.gif); */
-}
-
-.tablesorter thead .sorter-false {
-	background-image: none;
-	padding: 4px;
-	cursor: default;
-}
-
-thead.tablesorter-stickyHeader {
-	border-top: 2px solid #fff;
-	border-bottom: 2px solid #fff;
-}
-
-/* Zebra Widget - row alternating colors */
-.tablesorter tr.odd, .sickbeardTable tr.odd {
-	background-color: #f5f1e4;
-}
-
-.tablesorter tr.even, .sickbeardTable tr.even {
-	background-color: #dfdacf;
-}
-
-/* filter widget */
-.tablesorter .filtered {
-	display: none;
-}
-.tablesorter input.tablesorter-filter {
-	width: 98%;
-	height: auto;
-	-webkit-box-sizing: border-box;
-		-moz-box-sizing: border-box;
-			box-sizing: border-box;
-}
-
-.tablesorter tr.tablesorter-filter-row,
-.tablesorter tr.tablesorter-filter-row td {
-	text-align: center;
-	background: #eee;
-	border-bottom: 1px solid #ddd;
-}
-
-/* optional disabled input styling */
-.tablesorter input.tablesorter-filter-row .disabled {
-	display: none;
-}
-
-/* hidden filter row */
-.tablesorter-filter-row.hideme td {
-  /*** *********************************************** ***/
-  /*** change this padding to modify the thickness     ***/
-  /*** of the closed filter row (height = padding x 2) ***/
-  padding: 2px;
-  /*** *********************************************** ***/
-  margin: 0;
-  line-height: 0;
-  cursor: pointer;
-}
-.tablesorter-filter-row.hideme * {
-  height: 1px;
-  min-height: 0;
-  border: 0;
-  padding: 0;
-  margin: 0;
-  /* don't use visibility: hidden because it disables tabbing */
-  opacity: 0;
-  filter: alpha(opacity=0);
-}
-
-
-.tablesorter-header-inner {
-	padding: 0 2px;
-	text-align: center;
-}
-
-.tablesorter tfoot tr {
-	color: #fff;
-	text-align: center;
-	text-shadow: -1px -1px 0 rgba(0,0,0,0.3);
-	background-color: #333;
-	border-collapse: collapse;
-}
-
-.tablesorter tfoot a {
-	color:#fff;
-	text-decoration: none;
-}
-
-/* =======================================================================
-token-input.css
-========================================================================== */
-
-ul.token-input-list {
-    overflow: hidden; 
-    height: auto !important; 
-    height: 1%;
-    width: 273px;
-    border: 1px solid #ccc;
-    cursor: text;
-    font-size: 10px;
-    font-family: Verdana;
-    z-index: 999;
-    margin: 0;
-    padding: 0 0 1px 0;
-    background-color: #fff;
-    list-style-type: none;
-/*    clear: left; */
-    border-top-left-radius: 3px;
-    border-top-right-radius: 3px;
-    border-bottom-left-radius: 3px;
-    border-bottom-right-radius: 3px;
-}
-
-ul.token-input-list li {
-    list-style-type: none;
-}
-
-ul.token-input-list li input {
-    border: 0;
-    padding: 3px 4px;
-    background-color: white;
-/*    -webkit-appearance: caret; */
-}
-
-li.token-input-token {
-    overflow: hidden; 
-    height: auto !important; 
-    height: 1%;
-    margin: 3px;
-    padding: 3px 5px 0 5px;
-    background-color: #d0efa0;
-    color: #000;
-    font-weight: bold;
-    cursor: default;
-    display: block;
-}
-
-li.token-input-token img {
-    padding-top: 7px;
-    padding-right: 4px;
-    float: left;
-}
-
-li.token-input-token input {
-    padding-top: 2px !important;
-    padding-right: 4px !important;
-    float: left;
-}
-
-li.token-input-token p {
-    float: left;
-    padding: 0;
-    margin: 0;
-    line-height: 2.0 !important;
-}
-
-li.token-input-token span {
-    float: right;
-    color: #777;
-    cursor: pointer;
-}
-
-li.token-input-selected-token {
-    background-color: #08844e;
-    color: #fff;
-}
-
-li.token-input-selected-token span {
-    color: #bbb;
-}
-
-li.token-input-input-token input {
-    margin: 3px 3px 3px 3px !important;
-}
+/* =======================================================================
+token-input.css
+========================================================================== */
 
 div.token-input-dropdown {
     background-color: #fff;
@@ -2936,140 +163,6 @@ div.token-input-dropdown {
     border-bottom-color: #ccc;
 }
 
-div.token-input-dropdown p {
-    margin: 0;
-    padding: 3px;
-    font-weight: bold;
-    color: #777;
-}
-
-div.token-input-dropdown ul {
-    margin: 0;
-    padding: 0;
-}
-
-div.token-input-dropdown ul li {
-    background-color: #fff;
-    padding: 3px;
-    list-style-type: none;
-}
-
-div.token-input-dropdown ul li.token-input-dropdown-item {
-    background-color: #fafafa;
-}
-
-div.token-input-dropdown ul li.token-input-dropdown-item2 {
-    background-color: #fff;
-}
-
-div.token-input-dropdown ul li em {
-    font-weight: bold;
-    font-style: normal;
-}
-
-div.token-input-dropdown ul li.token-input-selected-dropdown-item {
-    background-color: #6196c2;
-}
-
-span.token-input-delete-token {
-    margin: 0 1px;
-}
-
-/* =======================================================================
-jquery.confirm.css
-========================================================================== */
-
-#confirmOverlay{
-	width: 100%;
-	height: 100%;
-	position: fixed;
-	top: 0;
-	left: 0;
-	background: url('../images/bg.gif');
-	background: -moz-linear-gradient(rgba(0,0,0,0.5), rgba(0,0,0,0.5)) repeat-x rgba(0,0,0,0.5);
-	background:-webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(0,0,0,0.5)), to(rgba(0,0,0,0.5))) repeat-x rgba(0,0,0,0.5);
-	z-index: 100000;
-}
-
-#confirmBox{
-	background: #F5F1E4;
-	width: 460px;
-	position: fixed;
-	left: 50%;
-	top: 50%;
-	margin: -130px 0 0 -230px;
-	border: 1px solid #111;
-    box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.175);
-}
-
-#confirmBox h1,
-#confirmBox p{
-	padding: 6px 10px;
-}
-
-#confirmBox h1 {
-    background-color: #333;
-	border-bottom: 1px solid #111;
-	color: #fff;
-    margin: 0;
-    font-size: 22px;
-    text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.75);
-}
-
-#confirmBox p {
-	padding-top: 20px;
-    color: #000;
-    text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.75);
-}
-
-#confirmButtons {
-	padding: 15px 0;
-	text-align: center;
-}
-
-#confirmBox .button {
-	margin-right: 15px;
-	padding: 2px 20px;
-	text-decoration: none;
-	display: inline-block;
-	color: #fff;
-	text-align:center;
-	text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.75);
-	background-clip: padding-box;
-	border: 1px solid #111;
-	border-radius: 3px;
-	cursor: pointer;
-	-webkit-box-sizing: border-box;
-	-moz-box-sizing: border-box;
-	box-sizing: border-box;
-	background-image: -webkit-linear-gradient(top, rgba(255,255,255,0.08),rgba(255,255,255,0) 50%,rgba(0,0,0,0) 51%,rgba(0,0,0,0.25));
-	background-image: -moz-linear-gradient(top, rgba(255,255,255,0.08),rgba(255,255,255,0) 50%,rgba(0,0,0,0) 51%,rgba(0,0,0,0.25));
-	background-image: -o-linear-gradient(top, rgba(255,255,255,0.08),rgba(255,255,255,0) 50%,rgba(0,0,0,0) 51%,rgba(0,0,0,0.25));
-	background-image: linear-gradient(to bottom, rgba(255,255,255,0.08),rgba(255,255,255,0) 50%,rgba(0,0,0,0) 51%,rgba(0,0,0,0.25));
-	-webkit-box-shadow: inset 0 1px rgba(255,255,255,0.1),inset 0 -1px 3px rgba(0,0,0,0.3),inset 0 0 0 1px rgba(255,255,255,0.08),0 1px 2px rgba(0,0,0,0.15);
-	box-shadow: inset 0 1px rgba(255,255,255,0.1),inset 0 -1px 3px rgba(0,0,0,0.3),inset 0 0 0 1px rgba(255,255,255,0.08),0 1px 2px rgba(0,0,0,0.15);
-}
-
-#confirmBox .button:last-child {	
-	margin-right:0;
-}
-
-#confirmBox .green {
-	background-color: #3F7636;
-}
-
-#confirmBox .green:hover {
-	background-color: #48873E;
-}
-
-#confirmBox .red {
-	background-color: #8D2D2B;
-}
-
-#confirmBox .red:hover {
-	background-color: #A13331;
-}
-
 /* =======================================================================
 bootstarp modal
 ========================================================================== */
diff --git a/gui/slick/css/print.css b/gui/slick/css/print.css
new file mode 100644
index 0000000000000000000000000000000000000000..680e5faf08ffe4a780d66543c84f18ff1597e75e
--- /dev/null
+++ b/gui/slick/css/print.css
@@ -0,0 +1,16 @@
+@media print {
+    /* Remove the top padding because we don't print the top bar */
+    body {
+        padding-top: 0;
+    }
+
+    /* Hide URLs */
+    a[href]:after {
+        content: none !important;
+    }
+
+    #content {
+        margin-left: 0;
+        margin-right: 0;
+    }
+}
diff --git a/gui/slick/css/style.css b/gui/slick/css/style.css
index 0eaa72bcefe36486b327026f958c7ef265737b5a..00ade317f9583a7cc70ea6938c8e8c43a5cd6920 100644
--- a/gui/slick/css/style.css
+++ b/gui/slick/css/style.css
@@ -6,11 +6,11 @@ fonts
 @font-face {
 	font-family: 'Open Sans';
 
-	src:url('fonts/OpenSans-Regular-webfont.eot');
-	src:url('fonts/OpenSans-Regular-webfont.eot?#iefix') format('embedded-opentype'),
-		url('fonts/OpenSans-Regular-webfont.woff') format('woff'),
-		url('fonts/OpenSans-Regular-webfont.ttf') format('truetype'),
-		url('fonts/OpenSans-Regular-webfont.svg#OpenSansRegular') format('svg');
+	src: url('fonts/OpenSans-Regular-webfont.eot');
+	src: url('fonts/OpenSans-Regular-webfont.eot?#iefix') format('embedded-opentype'),
+		 url('fonts/OpenSans-Regular-webfont.woff') format('woff'),
+		 url('fonts/OpenSans-Regular-webfont.ttf') format('truetype'),
+		 url('fonts/OpenSans-Regular-webfont.svg#OpenSansRegular') format('svg');
 	font-weight: normal;
 	font-weight: 400;
 	font-style: normal;
@@ -19,11 +19,11 @@ fonts
 /* Italic */
 @font-face {
 	font-family: 'Open Sans';
-	src:url('fonts/OpenSans-Italic-webfont.eot');
-	src:url('fonts/OpenSans-Italic-webfont.eot?#iefix') format('embedded-opentype'),
-		url('fonts/OpenSans-Italic-webfont.woff') format('woff'),
-		url('fonts/OpenSans-Italic-webfont.ttf') format('truetype'),
-		url('fonts/OpenSans-Italic-webfont.svg#OpenSansItalic') format('svg');
+	src: url('fonts/OpenSans-Italic-webfont.eot');
+	src: url('fonts/OpenSans-Italic-webfont.eot?#iefix') format('embedded-opentype'),
+		 url('fonts/OpenSans-Italic-webfont.woff') format('woff'),
+		 url('fonts/OpenSans-Italic-webfont.ttf') format('truetype'),
+		 url('fonts/OpenSans-Italic-webfont.svg#OpenSansItalic') format('svg');
 	font-weight: normal;
 	font-weight: 400;
 	font-style: italic;
@@ -32,11 +32,11 @@ fonts
 /* Light */
 @font-face {
 	font-family: 'Open Sans';
-	src:url('fonts/OpenSans-Light-webfont.eot');
-	src:url('fonts/OpenSans-Light-webfont.eot?#iefix') format('embedded-opentype'),
-		url('fonts/OpenSans-Light-webfont.woff') format('woff'),
-		url('fonts/OpenSans-Light-webfont.ttf') format('truetype'),
-		url('fonts/OpenSans-Light-webfont.svg#OpenSansLight') format('svg');
+	src: url('fonts/OpenSans-Light-webfont.eot');
+	src: url('fonts/OpenSans-Light-webfont.eot?#iefix') format('embedded-opentype'),
+		 url('fonts/OpenSans-Light-webfont.woff') format('woff'),
+		 url('fonts/OpenSans-Light-webfont.ttf') format('truetype'),
+		 url('fonts/OpenSans-Light-webfont.svg#OpenSansLight') format('svg');
 	font-weight: 200;
 	font-style: normal;
 }
@@ -44,11 +44,11 @@ fonts
 /* Light Italic */
 @font-face {
 	font-family: 'Open Sans';
-	src:url('fonts/OpenSans-LightItalic-webfont.eot');
-	src:url('fonts/OpenSans-LightItalic-webfont.eot?#iefix') format('embedded-opentype'),
-		url('fonts/OpenSans-LightItalic-webfont.woff') format('woff'),
-		url('fonts/OpenSans-LightItalic-webfont.ttf') format('truetype'),
-		url('fonts/OpenSans-LightItalic-webfont.svg#OpenSansLightItalic') format('svg');
+	src: url('fonts/OpenSans-LightItalic-webfont.eot');
+	src: url('fonts/OpenSans-LightItalic-webfont.eot?#iefix') format('embedded-opentype'),
+		 url('fonts/OpenSans-LightItalic-webfont.woff') format('woff'),
+		 url('fonts/OpenSans-LightItalic-webfont.ttf') format('truetype'),
+		 url('fonts/OpenSans-LightItalic-webfont.svg#OpenSansLightItalic') format('svg');
 	font-weight: 200;
 	font-style: italic;
 }
@@ -56,11 +56,11 @@ fonts
 /* Semibold */
 @font-face {
 	font-family: 'Open Sans';
-	src:url('fonts/OpenSans-Semibold-webfont.eot');
-	src:url('fonts/OpenSans-Semibold-webfont.eot?#iefix') format('embedded-opentype'),
-		url('fonts/OpenSans-Semibold-webfont.woff') format('woff'),
-		url('fonts/OpenSans-Semibold-webfont.ttf') format('truetype'),
-		url('fonts/OpenSans-Semibold-webfont.svg#OpenSansSemibold') format('svg');
+	src: url('fonts/OpenSans-Semibold-webfont.eot');
+	src: url('fonts/OpenSans-Semibold-webfont.eot?#iefix') format('embedded-opentype'),
+		 url('fonts/OpenSans-Semibold-webfont.woff') format('woff'),
+		 url('fonts/OpenSans-Semibold-webfont.ttf') format('truetype'),
+		 url('fonts/OpenSans-Semibold-webfont.svg#OpenSansSemibold') format('svg');
 	font-weight: 600;
 	font-style: normal;
 }
@@ -68,11 +68,11 @@ fonts
 /* Semibold Italic */
 @font-face {
 	font-family: 'Open Sans';
-	src:url('fonts/OpenSans-SemiboldItalic-webfont.eot');
-	src:url('fonts/OpenSans-SemiboldItalic-webfont.eot?#iefix') format('embedded-opentype'),
-		url('fonts/OpenSans-SemiboldItalic-webfont.woff') format('woff'),
-		url('fonts/OpenSans-SemiboldItalic-webfont.ttf') format('truetype'),
-		url('fonts/OpenSans-SemiboldItalic-webfont.svg#OpenSansSemiboldItalic') format('svg');
+	src: url('fonts/OpenSans-SemiboldItalic-webfont.eot');
+	src: url('fonts/OpenSans-SemiboldItalic-webfont.eot?#iefix') format('embedded-opentype'),
+		 url('fonts/OpenSans-SemiboldItalic-webfont.woff') format('woff'),
+		 url('fonts/OpenSans-SemiboldItalic-webfont.ttf') format('truetype'),
+		 url('fonts/OpenSans-SemiboldItalic-webfont.svg#OpenSansSemiboldItalic') format('svg');
 	font-weight: 600;
 	font-style: italic;
 }
@@ -80,11 +80,11 @@ fonts
 /* Bold */
 @font-face {
 	font-family: 'Open Sans';
-	src:url('fonts/OpenSans-Semibold-webfont.eot');
-	src:url('fonts/OpenSans-Semibold-webfont.eot?#iefix') format('embedded-opentype'),
-		url('fonts/OpenSans-Semibold-webfont.woff') format('woff'),
-		url('fonts/OpenSans-Semibold-webfont.ttf') format('truetype'),
-		url('fonts/OpenSans-Semibold-webfont.svg#OpenSansSemibold') format('svg');
+	src: url('fonts/OpenSans-Semibold-webfont.eot');
+	src: url('fonts/OpenSans-Semibold-webfont.eot?#iefix') format('embedded-opentype'),
+		 url('fonts/OpenSans-Semibold-webfont.woff') format('woff'),
+		 url('fonts/OpenSans-Semibold-webfont.ttf') format('truetype'),
+		 url('fonts/OpenSans-Semibold-webfont.svg#OpenSansSemibold') format('svg');
 	font-weight: bold;
 	font-weight: 700;
 	font-style: normal;
@@ -93,11 +93,11 @@ fonts
 /* Bold Italic */
 @font-face {
 	font-family: 'Open Sans';
-	src:url('fonts/OpenSans-SemiboldItalic-webfont.eot');
-	src:url('fonts/OpenSans-SemiboldItalic-webfont.eot?#iefix') format('embedded-opentype'),
-		url('fonts/OpenSans-SemiboldItalic-webfont.woff') format('woff'),
-		url('fonts/OpenSans-SemiboldItalic-webfont.ttf') format('truetype'),
-		url('fonts/OpenSans-SemiboldItalic-webfont.svg#OpenSansSemiboldItalic') format('svg');
+	src: url('fonts/OpenSans-SemiboldItalic-webfont.eot');
+	src: url('fonts/OpenSans-SemiboldItalic-webfont.eot?#iefix') format('embedded-opentype'),
+		 url('fonts/OpenSans-SemiboldItalic-webfont.woff') format('woff'),
+		 url('fonts/OpenSans-SemiboldItalic-webfont.ttf') format('truetype'),
+		 url('fonts/OpenSans-SemiboldItalic-webfont.svg#OpenSansSemiboldItalic') format('svg');
 	font-weight: bold;
 	font-weight: 700;
 	font-style: italic;
@@ -106,11 +106,11 @@ fonts
 /* Extra Bold */
 @font-face {
 	font-family: 'Open Sans';
-	src:url('fonts/OpenSans-Bold-webfont.eot');
-	src:url('fonts/OpenSans-Bold-webfont.eot?#iefix') format('embedded-opentype'),
-		url('fonts/OpenSans-Bold-webfont.woff') format('woff'),
-		url('fonts/OpenSans-Bold-webfont.ttf') format('truetype'),
-		url('fonts/OpenSans-Bold-webfont.svg#OpenSansBold') format('svg');
+	src: url('fonts/OpenSans-Bold-webfont.eot');
+	src: url('fonts/OpenSans-Bold-webfont.eot?#iefix') format('embedded-opentype'),
+		 url('fonts/OpenSans-Bold-webfont.woff') format('woff'),
+		 url('fonts/OpenSans-Bold-webfont.ttf') format('truetype'),
+		 url('fonts/OpenSans-Bold-webfont.svg#OpenSansBold') format('svg');
 	font-weight: 900;
 	font-style: normal;
 }
@@ -118,11 +118,11 @@ fonts
 /* Extra Bold Italic */
 @font-face {
 	font-family: 'Open Sans';
-	src:url('fonts/OpenSans-BoldItalic-webfont.eot');
-	src:url('fonts/OpenSans-BoldItalic-webfont.eot?#iefix') format('embedded-opentype'),
-		url('fonts/OpenSans-BoldItalic-webfont.woff') format('woff'),
-		url('fonts/OpenSans-BoldItalic-webfont.ttf') format('truetype'),
-		url('fonts/OpenSans-BoldItalic-webfont.svg#OpenSansBoldItalic') format('svg');
+	src: url('fonts/OpenSans-BoldItalic-webfont.eot');
+	src: url('fonts/OpenSans-BoldItalic-webfont.eot?#iefix') format('embedded-opentype'),
+		 url('fonts/OpenSans-BoldItalic-webfont.woff') format('woff'),
+		 url('fonts/OpenSans-BoldItalic-webfont.ttf') format('truetype'),
+		 url('fonts/OpenSans-BoldItalic-webfont.svg#OpenSansBoldItalic') format('svg');
 	font-weight: 900;
 	font-style: italic;
 }
@@ -130,18 +130,18 @@ fonts
 /* Droid Sans */
 @font-face {
 	font-family: 'droid_sans_mono';
-	src:url('fonts/droidsansmono-webfont.eot');
-	src:url('fonts/droidsansmono-webfont.eot?#iefix') format('embedded-opentype'),
-		url('fonts/droidsansmono-webfont.woff') format('woff'),
-		url('fonts/droidsansmono-webfont.ttf') format('truetype'),
-		url('fonts/droidsansmono-webfont.svg#droid_sans_monoregular') format('svg');
+	src: url('fonts/droidsansmono-webfont.eot');
+	src: url('fonts/droidsansmono-webfont.eot?#iefix') format('embedded-opentype'),
+		 url('fonts/droidsansmono-webfont.woff') format('woff'),
+		 url('fonts/droidsansmono-webfont.ttf') format('truetype'),
+		 url('fonts/droidsansmono-webfont.svg#droid_sans_monoregular') format('svg');
 	font-weight: normal;
 	font-style: normal;
 }
 
 
 /* =======================================================================
-inc_top.tmpl
+inc_top.mako
 ========================================================================== */
 
 .navbaricon {
@@ -149,137 +149,138 @@ inc_top.tmpl
 	margin-bottom: -15px;
 }
 
-#contentWrapper { 
+#contentWrapper {
 /*	background: url("../images/bg.png") repeat 0 0 transparent; */
 }
 
-[class^="icon-"], 
-[class*=" icon-"] { 
-	background-image: url("../images/glyphicons-halflings.png"); 
+[class^="icon-"],
+[class*=" icon-"] {
+	background-image: url("../images/glyphicons-halflings.png");
 }
 
-.icon-white { 
-	background-image: url("../images/glyphicons-halflings-white.png"); 
+.icon-white {
+	background-image: url("../images/glyphicons-halflings-white.png");
 }
 
-.dropdown-menu li > a:hover > [class^="menu-icon-"], 
-.dropdown-menu li > a:hover > [class*=" menu-icon-"] { 
-	background-image: url("../images/menu/menu-icons-white.png"); 
+.dropdown-menu li > a:hover > [class^="menu-icon-"],
+.dropdown-menu li > a:hover > [class*=" menu-icon-"] {
+	background-image: url("../images/menu/menu-icons-white.png");
 }
 
-[class^="icon16-"], 
-[class*=" icon16-"] { 
+[class^="icon16-"],
+[class*=" icon16-"] {
 	background-image: url("../images/glyphicons-config.png");
 }
 
-.ui-autocomplete-loading { 
-	background: white url("../images/loading16.gif") right center no-repeat; 
+.ui-autocomplete-loading {
+	background: white url("../images/loading16.gif") right center no-repeat;
 }
 
-.browserDialog.busy .ui-dialog-buttonpane { 
-	background: url("../images/loading.gif") 10px 50% no-repeat !important; 
+.browserDialog.busy .ui-dialog-buttonpane {
+	background: url("../images/loading.gif") 10px 50% no-repeat !important;
 }
 
-.ui-progressbar .ui-progressbar-overlay { 
-	background: url("../css/lib/images/animated-overlay.gif"); 
+.ui-progressbar .ui-progressbar-overlay {
+	background: url("../css/lib/images/animated-overlay.gif");
 }
 
-.ui-dialog, 
-.ui-dialog-buttonpane { 
-	background: #eceadf url("../css/lib/images/ui-bg_fine-grain_10_eceadf_60x60.png") 50% 50% repeat !important; 
+.ui-dialog,
+.ui-dialog-buttonpane {
+	background: #eceadf url("../css/lib/images/ui-bg_fine-grain_10_eceadf_60x60.png") 50% 50% repeat !important;
 }
 
-.ui-accordion-content, 
-.ui-tabs-panel { 
-	background: #ededed !important; 
-	background-image: none !important; 
+.ui-accordion-content,
+.ui-tabs-panel {
+	background: #ededed !important;
+	background-image: none !important;
 }
 
-.ui-widget-content { 
-	background: #dcdcdc url("../css/lib/images/ui-bg_highlight-soft_75_dcdcdc_1x100.png") 50% top repeat-x; 
+.ui-widget-content {
+	background: #dcdcdc url("../css/lib/images/ui-bg_highlight-soft_75_dcdcdc_1x100.png") 50% top repeat-x;
 }
 
-.ui-widget-header { 
-	background: #ffffff url("../css/lib/images/ui-bg_flat_0_ffffff_40x100.png") 50% 50% repeat-x; 
+.ui-widget-header {
+	background: #ffffff url("../css/lib/images/ui-bg_flat_0_ffffff_40x100.png") 50% 50% repeat-x;
 }
 
-.ui-state-default, 
-.ui-widget-content .ui-state-default, 
-.ui-widget-header .ui-state-default { 
-	background: #ffffff; 
+.ui-state-default,
+.ui-widget-content .ui-state-default,
+.ui-widget-header .ui-state-default {
+	background: #ffffff;
 	border: 1px solid #CCCCCC;
 }
 
-.ui-state-hover, 
-.ui-widget-content .ui-state-hover, 
-.ui-widget-header .ui-state-hover, 
-.ui-state-focus, 
-.ui-widget-content .ui-state-focus, 
-.ui-widget-header .ui-state-focus { 
-	background: #ffffff; 
+.ui-state-hover,
+.ui-widget-content .ui-state-hover,
+.ui-widget-header .ui-state-hover,
+.ui-state-focus,
+.ui-widget-content .ui-state-focus,
+.ui-widget-header .ui-state-focus {
+	background: #ffffff;
 }
 
-.ui-state-active, 
-.ui-widget-content .ui-state-active, 
-.ui-widget-header .ui-state-active { 
+.ui-state-active,
+.ui-widget-content .ui-state-active,
+.ui-widget-header .ui-state-active {
 	background: #F7F7F7;
 }
 
-.ui-state-highlight, 
-.ui-widget-content .ui-state-highlight, 
-.ui-widget-header .ui-state-highlight { 
-	background: #fbf9ee url("../css/lib/images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x; 
+.ui-state-highlight,
+.ui-widget-content .ui-state-highlight,
+.ui-widget-header .ui-state-highlight {
+	background: #fbf9ee url("../css/lib/images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;
 }
 
-.ui-state-error, 
-.ui-widget-content .ui-state-error, 
-.ui-widget-header .ui-state-error { 
-	background: #fef1ec url("../css/lib/images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x; 
+.ui-state-error,
+.ui-widget-content .ui-state-error,
+.ui-widget-header .ui-state-error {
+	background: #fef1ec url("../css/lib/images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;
 }
 
-.ui-icon, 
-.ui-widget-content .ui-icon { 
-	background-image: url("../css/lib/images/ui-icons_222222_256x240.png"); 
+.ui-icon,
+.ui-widget-content .ui-icon {
+	background-image: url("../css/lib/images/ui-icons_222222_256x240.png");
 }
 
-.ui-widget-header .ui-icon { 
-	background-image: url("../css/lib/images/ui-icons_222222_256x240.png"); 
+.ui-widget-header .ui-icon {
+	background-image: url("../css/lib/images/ui-icons_222222_256x240.png");
 }
 
-.ui-state-default .ui-icon { 
-	background-image: url("../css/lib/images/ui-icons_8c291d_256x240.png"); 
+.ui-state-default .ui-icon {
+	background-image: url("../css/lib/images/ui-icons_8c291d_256x240.png");
 }
 
-.ui-state-hover .ui-icon, 
-.ui-state-focus .ui-icon { 
-	background-image: url("../css/lib/images/ui-icons_222222_256x240.png"); 
+.ui-state-hover .ui-icon,
+.ui-state-focus .ui-icon {
+	background-image: url("../css/lib/images/ui-icons_222222_256x240.png");
 }
 
-.ui-state-active .ui-icon { 
-	background-image: url("../css/lib/images/ui-icons_8c291d_256x240.png"); 
+.ui-state-active .ui-icon {
+	background-image: url("../css/lib/images/ui-icons_8c291d_256x240.png");
 }
 
-.ui-state-highlight .ui-icon { 
-	background-image: url("../css/lib/images/ui-icons_2e83ff_256x240.png"); 
+.ui-state-highlight .ui-icon {
+	background-image: url("../css/lib/images/ui-icons_2e83ff_256x240.png");
 }
 
-.ui-state-error .ui-icon, 
-.ui-state-error-text .ui-icon { 
-	background-image: url("../css/lib/images/ui-icons_cd0a0a_256x240.png"); 
+.ui-state-error .ui-icon,
+.ui-state-error-text .ui-icon {
+	background-image: url("../css/lib/images/ui-icons_cd0a0a_256x240.png");
 }
 
-.ui-widget-overlay { 
-	background: #aaaaaa url("../css/lib/images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x; 
+.ui-widget-overlay {
+	background: #aaaaaa url("../css/lib/images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;
 }
 
-.ui-widget-shadow { 
-	background: #000000 url("../css/lib/images/ui-bg_flat_0_000000_40x100.png") 50% 50% repeat-x; 
+.ui-widget-shadow {
+	background: #000000 url("../css/lib/images/ui-bg_flat_0_000000_40x100.png") 50% 50% repeat-x;
 }
 
 .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited {
 	color: #140F06;
 	text-decoration: none;
 }
+
 .ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited {
 	color: #222;
 	text-decoration: none;
@@ -300,7 +301,7 @@ inc_top.tmpl
 	border-radius: 0px;
 }
 
-.ui-tabs .ui-tabs-panel { 
+.ui-tabs .ui-tabs-panel {
 	background-color: #F7F7F7 !important;
 	border: 1px solid #CCCCCC !important;
 }
@@ -310,7 +311,7 @@ inc_top.tmpl
 	border-top-right-radius: 5px;
 }
 
-.ui-tabs-nav > :not(.ui-tabs-active){ 
+.ui-tabs-nav > :not(.ui-tabs-active){
 	border-top-left-radius: 5px;
 	border-top-right-radius: 5px;
 }
@@ -332,11 +333,11 @@ inc_top.tmpl
 }
 
 .upgrade-notification {
-	width: 600px; 
-	text-align: center; 
-	margin-left: auto; 
-	margin-right: auto; 
-	margin-top: 50px; 
+	width: 600px;
+	text-align: center;
+	margin-left: auto;
+	margin-right: auto;
+	margin-top: 50px;
 	margin-bottom: 0px;
 }
 
@@ -473,7 +474,7 @@ inc_top.tmpl
 }
 
 /* =======================================================================
-inc_bottom.tmpl
+inc_bottom.mako
 ========================================================================== */
 
 .footer {
@@ -490,7 +491,7 @@ inc_bottom.tmpl
 }
 
 /* =======================================================================
-inc_rootDirs.tmpl
+inc_rootDirs.mako
 ========================================================================== */
 .rootdir-selectbox,
 .rootdir-selectbox #rootDirs,
@@ -505,7 +506,7 @@ inc_rootDirs.tmpl
 }
 
 /* =======================================================================
-home.tmpl
+home.mako
 ========================================================================== */
 
 .imgbanner .banner {
@@ -665,23 +666,8 @@ home.tmpl
 .show .progress-40,
 .show .progress-60,
 .show .progress-80 {
-	height: 7px
-}
-
-.show .progress-80 {
-	border-radius: 0px;
-}
-
-.show .progress-60 {
-	border-radius: 0px;
-}
-
-.show .progress-40 {
-	border-radius: 0px;
-}
-
-.show .progress-20 {
 	border-radius: 0px;
+	height: 7px
 }
 
 .show-title {
@@ -698,7 +684,7 @@ home.tmpl
 	position: absolute;
 	width: 20px;
 	height: 100%;
-	top: 0; 
+	top: 0;
 	right: 0;
 	background-image: -webkit-linear-gradient(right, rgba(223, 218, 207, 1), rgba(223, 218, 207, 0));
 	background-image: -moz-linear-gradient(right, rgba(223, 218, 207, 1), rgba(223, 218, 207, 0));
@@ -721,7 +707,7 @@ home.tmpl
 	position: absolute;
 	width: 20px;
 	height: 100%;
-	top: 0; 
+	top: 0;
 	right: 0;
 	background-image: -webkit-linear-gradient(right, rgba(223, 218, 207, 1), rgba(223, 218, 207, 0));
 	background-image: -moz-linear-gradient(right, rgba(223, 218, 207, 1), rgba(223, 218, 207, 0));
@@ -730,8 +716,8 @@ home.tmpl
 	background-image: linear-gradient(to left, rgba(223, 218, 207, 1), rgba(223, 218, 207, 0));
 }
 
-.show-table {	
-	text-align:center; 
+.show-table {
+	text-align:center;
 	vertical-align:middle;
 	width: 33%
 }
@@ -769,7 +755,7 @@ home.tmpl
 
 #sort-by {
 	display: inline;
-	list-style-type: none; 
+	list-style-type: none;
 	padding: 0;
 	margin-left: 5px;
 }
@@ -795,18 +781,20 @@ td.tvShow a:hover {
 }
 
 #popover-target label {
-  margin: 0 5px;
-  display: block;
+    margin: 0 5px;
+    display: block;
 }
+
 #popover-target input {
-  margin-left: 5px;
+    margin-left: 5px;
 }
+
 .popover {
-  margin-left: -50px;
+    margin-left: -50px;
 }
 
 /* =======================================================================
-home_addShows.tmpl
+home_addShows.mako
 ========================================================================== */
 
 #addShowPortal {
@@ -866,8 +854,9 @@ div.buttontext p {
 }
 
 /* =======================================================================
-home_newShow.tmpl
+home_newShow.mako
 ========================================================================== */
+
 #addShowForm, #recommendedShowsForm {
 	width: 800px;
 	margin-left: auto;
@@ -896,7 +885,7 @@ home_newShow.tmpl
 }
 
 /* =======================================================================
-home_addExistingShow.tmpl
+home_addExistingShow.mako
 ========================================================================== */
 
 .existingtabs {
@@ -927,7 +916,7 @@ ul#rootDirStaticList li input[type="checkbox"] {
 }
 
 /* =======================================================================
-home_trendingShows.tmpl
+home_trendingShows.mako
 ========================================================================== */
 
 .traktShowTitleIcons {
@@ -936,16 +925,16 @@ home_trendingShows.tmpl
 	padding-bottom: 4px;
 }
 
-.traktContainer p { 
+.traktContainer p {
 	padding-top: 2px;
 }
 
-.traktContainer p img { 
+.traktContainer p img {
 	position: relative;
 	top: -2px;
 }
 
-.traktContainer p, .traktContainer i { 
+.traktContainer p, .traktContainer i {
 	white-space: nowrap;
 	font-size: 12px;
 	overflow: hidden;
@@ -971,9 +960,8 @@ home_trendingShows.tmpl
 	border-bottom: 1px solid #111;
 }
 
-
 /* =======================================================================
-home_postprocess.tmpl
+home_postprocess.mako
 ========================================================================== */
 
 #postProcess {
@@ -983,9 +971,8 @@ home_postprocess.tmpl
 	margin-left: auto;
 }
 
-
 /* =======================================================================
-displayShow.tmpl 
+displayShow.mako
 ========================================================================== */
 
 #posterCol {
@@ -1023,7 +1010,7 @@ h1.title {
 }
 
 .displayspecials {
-	position: relative; 
+	position: relative;
 	top: -24px;
 }
 
@@ -1031,14 +1018,14 @@ h1.title {
 	cursor: default;
 }
 
-#showinfo { 
+#showinfo {
 	display: inline-block;
 	position: relative;
 	top: -3px;
 }
 
 span.imdbstars {
-	display: inline-block; 
+	display: inline-block;
 	vertical-align: top;
 	cursor: help;
 	margin-top: 4px;
@@ -1125,22 +1112,22 @@ ul.tags li a{
 }
 
 .unaired {
-  background-color: #f5f1e4;
+    background-color: #f5f1e4;
 }
 .skipped {
-  background-color: #bedeed;
+    background-color: #bedeed;
 }
 .good {
-  background-color: #c3e3c8;
+    background-color: #c3e3c8;
 }
 .qual {
-  background-color: #ffda8a;
+    background-color: #ffda8a;
 }
 .wanted {
-  background-color: #ffb0b0;
+    background-color: #ffb0b0;
 }
 .snatched {
-  background-color: #ebc1ea;
+    background-color: #ebc1ea;
 }
 
 span.unaired {
@@ -1217,7 +1204,7 @@ span.snatched b {
 }
 
 .displayShowTable td.col-search {
-    text-align: center;
+	text-align: center;
 }
 
 .sickbeardTable {
@@ -1229,6 +1216,7 @@ span.snatched b {
 	border: none;
 	empty-cells: show;
 }
+
 .sickbeardTable.display_show {
 	clear:both
 }
@@ -1240,7 +1228,7 @@ span.snatched b {
 	white-space: nowrap;
 }
 
-.sickbeardTable th, 
+.sickbeardTable th,
 .sickbeardTable td {
 	border-top: 1px solid #fff;
 	border-left: 1px solid #fff;
@@ -1313,6 +1301,11 @@ td.col-status {
 	text-align: center;
 }
 
+th.col-quality,
+td.col-quality {
+	width: 110px;
+}
+
 th.col-legend,
 td.col-legend {
 	width: 80px;
@@ -1343,7 +1336,7 @@ td.col-search {
 }
 
 /* =======================================================================
-comingEpisodes.tmpl
+comingEpisodes.mako
 ========================================================================== */
 
 .sort_data {
@@ -1437,7 +1430,7 @@ h2.day, h2.network {
 	float: left;
 	line-height: 1.4em;
 	font-size: 1.4em;
-	text-shadow: -1px -1px 0 #FFF);
+	text-shadow: -1px -1px 0 #FFF;
 }
 
 .tvshowTitleIcons {
@@ -1494,7 +1487,7 @@ h2.day, h2.network {
 }
 
 .calendarWrapper {
-	width:1000px; 
+	width:1000px;
 	margin:0 auto;
 	padding:0 3px
 }
@@ -1513,6 +1506,7 @@ h2.day, h2.network {
 .calendarShow .poster {
 	padding-bottom:2px
 }
+
 .calendarShow .poster img {
 	width:142px;
 	height:auto
@@ -1536,7 +1530,7 @@ h2.day, h2.network {
 }
 
 /* =======================================================================
-config*.tmpl
+config*.mako
 ========================================================================== */
 
 #config-content {
@@ -1610,6 +1604,7 @@ config*.tmpl
 #config label.space-right {
 	margin-right:10px
 }
+
 #config .metadataDiv {
 	display: none;
 }
@@ -1641,21 +1636,21 @@ select .selected {
 	list-style-type: none;
 }
 
-#provider_order_list, 
+#provider_order_list,
 #service_order_list {
 	width: 250px;
 	padding-left: 20px;
 	list-style-type: none;
 }
 
-#provider_order_list li, 
+#provider_order_list li,
 #service_order_list li {
 	padding: 5px;
 	margin: 5px 0;
 	font-size: 14px;
 }
 
-#provider_order_list input, 
+#provider_order_list input,
 #service_order_list input {
 	margin: 0px 2px;
 }
@@ -1671,13 +1666,13 @@ select .selected {
 	width: 220px !important;
 }
 
-.infoTableHeader, 
+.infoTableHeader,
 .infoTableCell {
 	padding: 5px;
 }
 
-.infoTableSeperator { 
-	border-top: 1px dotted #666666; 
+.infoTableSeperator {
+	border-top: 1px dotted #666666;
 }
 
 [class^="icon16-"], [class*=" icon16-"] {
@@ -1708,7 +1703,7 @@ select .selected {
 }
 
 /* =======================================================================
-config_postProcessing.tmpl
+config_postProcessing.mako
 ========================================================================== */
 
 #config div.example {
@@ -1751,7 +1746,7 @@ config_postProcessing.tmpl
 }
 
 /* =======================================================================
-config_notifications.tmpl
+config_notifications.mako
 ========================================================================== */
 
 div.metadata_options_wrapper {
@@ -1810,7 +1805,7 @@ div.metadataDiv .disabled {
 }
 
 /* =======================================================================
-manage*.tmpl
+manage*.mako
 ========================================================================== */
 
 .manageTable th {
@@ -1866,7 +1861,6 @@ a.whitelink {
 	color: #fff;
 }
 
-
 /* =======================================================================
 Global
 ========================================================================== */
@@ -1905,6 +1899,17 @@ span.quality {
 	border-radius: 4px;
 }
 
+span.any-hd {
+	background-color: #2672b6;
+	background: repeating-linear-gradient(
+		-45deg,
+		#2672b6,
+		#2672b6 10px,
+		#5b990d 10px,
+		#5b990d 20px
+	);
+}
+
 span.Custom {
 	background-color: #621993;
 }
@@ -1941,6 +1946,10 @@ span.SDTV {
 	background-color: #BE2625;
 }
 
+span.SDDVD {
+	background-color: #BE2625;
+}
+
 span.Any {
 	background-color: #666;
 }
@@ -1997,39 +2006,43 @@ option.flag {
 
 div.blackwhitelist{
 	float:left;
-	text-align: center; 
+	text-align: center;
 }
+
 div.blackwhitelist input {
 	margin: 5px 0px;
 }
+
 div.blackwhitelist.pool select{
 	width: 230px;
 }
+
 div.blackwhitelist.white select, div.blackwhitelist.black select {
 	width: 150px;
 }
+
 div.blackwhitelist span {
 	display: block;
 	text-align: center;
 }
+
 div.blackwhitelist.anidb, div.blackwhitelist.manual {
 	margin: 7px 0px;
 }
 
-
 /* =======================================================================
 bootstrap Overrides
 ========================================================================== */
 
-body { 
-	padding-top: 60px; 
+body {
+	padding-top: 60px;
 	overflow-y: scroll;
 	font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
 	color: #000;
 }
 
-html * { 
-	outline: 0 !important; 
+html * {
+	outline: 0 !important;
 }
 
 input[type="checkbox"] {
@@ -2108,11 +2121,6 @@ input, textarea, select, .uneditable-input {
 	background-color: #333333;
 }
 
-.navbar-default .navbar-collapse,
-.navbar-default .navbar-form {
-	border-color: #3e3f3a;
-}
-
 .navbar-default .navbar-nav > .open > a,
 .navbar-default .navbar-nav > .open > a:hover,
 .navbar-default .navbar-nav > .open > a:focus {
@@ -2121,26 +2129,26 @@ input, textarea, select, .uneditable-input {
 }
 
 @media (max-width: 767px) {
-  .navbar-default .navbar-nav .open .dropdown-menu > li > a {
-		color: #dddddd;
-  }
-  .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
-  .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
-		color: #ffffff;
-		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: #ffffff;
-		background-color: #333333;
-  }
-  .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: #cccccc;
-		background-color: transparent;
-  }
+    .navbar-default .navbar-nav .open .dropdown-menu > li > a {
+        color: #dddddd;
+    }
+    .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
+    .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
+        color: #ffffff;
+        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: #ffffff;
+        background-color: #333333;
+    }
+    .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: #cccccc;
+        background-color: transparent;
+    }
 }
 
 .navbar-default .navbar-link {
@@ -2610,39 +2618,18 @@ input sizing (for config pages)
 }
 
 /* =======================================================================
-browser.css
+browser.css overrides
 ========================================================================== */
 
 #fileBrowserDialog {
 	overflow-y: auto;
 }
 
-#fileBrowserDialog ul {
-	padding: 0;
-	margin: 0;
-}
-
-#fileBrowserDialog ul li {
-	margin: 2px 0;
-	list-style-type: none;
-	cursor: pointer;
-}
-
-#fileBrowserDialog ul li a {
-	display: block;
-	padding: 4px 0;
-}
-
 #fileBrowserDialog ul li a:hover {
 	color: #00f;
 	background: none;
 }
 
-#fileBrowserDialog ul li a span.ui-icon {
-	float: left;
-	margin: 0 4px;
-}
-
 #fileBrowserDialog h2 {
 	font-size: 20px;
 }
@@ -2659,14 +2646,6 @@ browser.css
 	padding-right: 20px;
 }
 
-.ui-menu .ui-menu-item {
-	background-color: #eee;
-}
-
-.ui-menu .ui-menu-item-alternate {
-	background-color: #fff;
-}
-
 .ui-autocomplete .ui-menu-item .ui-state-focus {
 	color: #fff;
 	background: none;
@@ -2682,7 +2661,6 @@ browser.css
 	background-position: -80px -224px;
 }
 
-
 /* =======================================================================
 formWizard.css
 ========================================================================== */
@@ -2795,7 +2773,7 @@ div.field-pair input {
 	float: left;
 	width: 172px;
 	margin-right: 10px;
-}	
+}
 
 #customQualityWrapper div.component-group-desc p {
 	width: 85%;
@@ -2886,6 +2864,7 @@ thead.tablesorter-stickyHeader {
 .tablesorter .filtered {
 	display: none;
 }
+
 .tablesorter input.tablesorter-filter {
 	width: 98%;
 	height: auto;
@@ -3074,6 +3053,7 @@ span.token-input-delete-token {
 	z-index: 0;
 	background-image: url(/images/poster-dark.jpg)
 }
+
 /* =======================================================================
 jquery.confirm.css
 ========================================================================== */
@@ -3149,7 +3129,7 @@ jquery.confirm.css
 	box-shadow: inset 0 1px rgba(255,255,255,0.1),inset 0 -1px 3px rgba(0,0,0,0.3),inset 0 0 0 1px rgba(255,255,255,0.08),0 1px 2px rgba(0,0,0,0.15);
 }
 
-#confirmBox .button:last-child {	
+#confirmBox .button:last-child {
 	margin-right:0;
 }
 
@@ -3174,12 +3154,12 @@ pnotify.css
 ========================================================================== */
 
 .ui-pnotify-sticker {
-    margin-top: -12px;
+	margin-top: -12px;
 }
 
 .ui-pnotify-closer {
-    margin-top: -12px;
-    margin-right: -10px;
+	margin-top: -12px;
+	margin-right: -10px;
 }
 
 /* =======================================================================
@@ -3190,67 +3170,67 @@ login.css
 	display: block;
 }
 
-	.login h1 {
-		padding: 0 0 10px;
-		font-size: 60px;
-		font-family: Lobster;
-		font-weight: normal;
-	}
+.login h1 {
+    padding: 0 0 10px;
+    font-size: 60px;
+    font-family: Lobster;
+    font-weight: normal;
+}
 
-	.login form {
-		padding: 0;
-		height: 300px;
-		width: 400px;
-		position: fixed;
-		left: 50%;
-		top: 50%;
-		margin: -200px 0 0 -200px;
-	}
-		@media all and (max-width: 480px) {
-
-			.login form {
-				padding: 0;
-				height: 300px;
-				width: 90%;
-				position: absolute;
-				left: 5%;
-				top: 10px;
-				margin: 0;
-			}
-
-		}
-
-	.login .ctrlHolder {
-		padding: 0;
-		margin: 0 0 20px;
-	}
-		.login .ctrlHolder:hover {
-			background: none;
-		}
-
-	.login input[type=text],
-	.login input[type=password] {
-		width: 100% !important;
-		font-size: 25px;
-		padding: 14px !important;
-	}
+.login form {
+    padding: 0;
+    height: 300px;
+    width: 400px;
+    position: fixed;
+    left: 50%;
+    top: 50%;
+    margin: -200px 0 0 -200px;
+}
 
-	.login .remember_me {
-		font-size: 15px;
-		float: left;
-		width: 150px;
-		padding: 20px 0;
-	}
+@media all and (max-width: 480px) {
+    .login form {
+        padding: 0;
+        height: 300px;
+        width: 90%;
+        position: absolute;
+        left: 5%;
+        top: 10px;
+        margin: 0;
+    }
+}
 
-		.login .remember_me .check {
-			margin: 5px 5px 0 0;
-		}
+.login .ctrlHolder {
+    padding: 0;
+    margin: 0 0 20px;
+}
 
-	.login .button {
-		font-size: 25px;
-		padding: 20px;
-		float: right;
-	}
+.login .ctrlHolder:hover {
+    background: none;
+}
+
+.login input[type=text],
+.login input[type=password] {
+    width: 100% !important;
+    font-size: 25px;
+    padding: 14px !important;
+}
+
+.login .remember_me {
+    font-size: 15px;
+    float: left;
+    width: 150px;
+    padding: 20px 0;
+}
+
+.login .remember_me .check {
+    margin: 5px 5px 0 0;
+}
+
+.login .button {
+    font-size: 25px;
+    padding: 20px;
+    float: right;
+}
 
 /* =======================================================================
 IMDB Popular
@@ -3296,4 +3276,4 @@ IMDB Popular
 
 .popularShow p{
 	margin-bottom:0px;
-}
\ No newline at end of file
+}
diff --git a/gui/slick/images/network/crackle.png b/gui/slick/images/network/crackle.png
index 5f3ab658ae86356a824fcb9765c71a3417c6385c..d46a69572152f949b4e5bebe99865f2fa861127b 100644
Binary files a/gui/slick/images/network/crackle.png and b/gui/slick/images/network/crackle.png differ
diff --git a/gui/slick/images/network/yorin.png b/gui/slick/images/network/yorin.png
new file mode 100644
index 0000000000000000000000000000000000000000..cf6a306d01ada1c083afa5cf0fda78a864b06b51
Binary files /dev/null and b/gui/slick/images/network/yorin.png differ
diff --git a/gui/slick/interfaces/default/comingEpisodes.mako b/gui/slick/interfaces/default/comingEpisodes.mako
index 0c16007460a045b600c682a47662cde44cb55764..5eb8c52c862324f1f76a7ef98909bfec2da74db1 100644
--- a/gui/slick/interfaces/default/comingEpisodes.mako
+++ b/gui/slick/interfaces/default/comingEpisodes.mako
@@ -2,7 +2,6 @@
     import sickbeard
     from sickbeard.helpers import anon_url
     from sickbeard import sbdatetime
-    from sickbeard.common import qualityPresets, qualityPresetStrings
     import datetime
     import time
     import re
@@ -10,6 +9,7 @@
 <%
     sort = sickbeard.COMING_EPS_SORT
 %>
+<%namespace file="/inc_defs.mako" import="renderQualityPill"/>
 <%include file="/inc_top.mako"/>
 <script type="text/javascript" src="${sbRoot}/js/ajaxEpSearch.js?${sbPID}"></script>
 <h1 class="header">${header}</h1>
@@ -221,11 +221,7 @@ $(document).ready(function(){
             </td>
 
             <td align="center">
-% if int(cur_result['quality']) in qualityPresets:
-                <span class="quality ${qualityPresetStrings[int(cur_result['quality'])]}">${qualityPresetStrings[int(cur_result['quality'])]}</span>
-% else:
-                <span class="quality Custom">Custom</span>
-% endif
+	        ${renderQualityPill(cur_result['quality'])}
             </td>
 
             <td align="center" style="vertical-align: middle;">
@@ -428,11 +424,7 @@ $(document).ready(function(){
 
                 <div class="clearfix">
                     <span class="title">Quality:</span>
-                    % if int(cur_result['quality']) in qualityPresets:
-                        <span class="quality ${qualityPresetStrings[int(cur_result['quality'])]}">${qualityPresetStrings[int(cur_result['quality'])]}</span>
-                    % else:
-                        <span class="quality Custom">Custom</span>
-                    % endif
+	            ${renderQualityPill(cur_result['quality'])}
                 </div>
             </td>
         </tr>
diff --git a/gui/slick/interfaces/default/displayShow.mako b/gui/slick/interfaces/default/displayShow.mako
index 9df75375cf7ed0b3ba2f28e561b41b1ceb611746..c08b5fb4c5f46a2fa50694091c5fc5c049d4201f 100644
--- a/gui/slick/interfaces/default/displayShow.mako
+++ b/gui/slick/interfaces/default/displayShow.mako
@@ -7,11 +7,11 @@
     import sickbeard.helpers
 
     from sickbeard.common import SKIPPED, WANTED, UNAIRED, ARCHIVED, IGNORED, SNATCHED, SNATCHED_PROPER, SNATCHED_BEST, FAILED
-    from sickbeard.common import Quality, qualityPresets, qualityPresetStrings, statusStrings, Overview
+    from sickbeard.common import Quality, qualityPresets, statusStrings, Overview
 
     from sickbeard.helpers import anon_url
 %>
-
+<%namespace file="/inc_defs.mako" import="renderQualityPill"/>
 <%include file="/inc_top.mako"/>
 <script type="text/javascript" src="${sbRoot}/js/lib/jquery.bookmarkscroll.js?${sbPID}"></script>
 
@@ -204,13 +204,13 @@ $(document).ready(function(){
                 <% anyQualities, bestQualities = Quality.splitQuality(int(show.quality)) %>
                     <tr><td class="showLegend">Quality: </td><td>
                 % if show.quality in qualityPresets:
-                    <span class="quality ${qualityPresetStrings[show.quality]}">${qualityPresetStrings[show.quality]}</span>
+                    ${renderQualityPill(show.quality)}
                 % else:
                 % if anyQualities:
-                    <i>Initial:</i> ${", ".join([Quality.qualityStrings[x] for x in sorted(anyQualities)])}${("", "</br>")[bool(bestQualities)]}
+                    <i>Initial:</i> ${", ".join([capture(renderQualityPill, x) for x in sorted(anyQualities)])}${("", "</br>")[bool(bestQualities)]}
                 % endif
                 % if bestQualities:
-                    <i>Replace with:</i> ${", ".join([Quality.qualityStrings[x] for x in sorted(bestQualities)])}
+                    <i>Replace with:</i> ${", ".join([capture(renderQualityPill, x) for x in sorted(bestQualities)])}
                 % endif
                 % endif
 
@@ -559,7 +559,7 @@ $(document).ready(function(){
             </td>
                 <% curStatus, curQuality = Quality.splitCompositeStatus(int(epResult["status"])) %>
                 % if curQuality != Quality.NONE:
-                    <td class="col-status">${statusStrings[curStatus]} <span class="quality ${Quality.qualityStrings[curQuality].replace("720p","HD720p").replace("1080p","HD1080p").replace("HDTV", "HD720p")}">${Quality.qualityStrings[curQuality]}</span></td>
+                    <td class="col-status">${statusStrings[curStatus]} ${renderQualityPill(curQuality)}</td>
                 % else:
                     <td class="col-status">${statusStrings[curStatus]}</td>
                 % endif
diff --git a/gui/slick/interfaces/default/history.mako b/gui/slick/interfaces/default/history.mako
index fc1818746a838e4647208cc9a2713df38ca87674..bdba48fd79a112f9957dcd7cec8ffe5c6aa8633d 100644
--- a/gui/slick/interfaces/default/history.mako
+++ b/gui/slick/interfaces/default/history.mako
@@ -11,12 +11,13 @@
     from sickbeard.providers import generic
 
     from sickbeard.common import SKIPPED, WANTED, UNAIRED, ARCHIVED, IGNORED, SNATCHED, SNATCHED_PROPER, SNATCHED_BEST, FAILED, DOWNLOADED, SUBTITLED
-    from sickbeard.common import Quality, qualityPresets, qualityPresetStrings, statusStrings, Overview
+    from sickbeard.common import Quality, statusStrings, Overview
 %>
 <%
     layout = sickbeard.HISTORY_LAYOUT
     history_limit = sickbeard.HISTORY_LIMIT
 %>
+<%namespace file="/inc_defs.mako" import="renderQualityPill"/>
 <%include file="/inc_top.mako"/>
 
 <style type="text/css">
@@ -155,7 +156,7 @@ $(document).ready(function(){
                 % endif
                 </td>
                 <span style="display: none;">${curQuality}</span>
-                <td align="center"><span class="quality ${Quality.qualityStrings[curQuality].replace("720p","HD720p").replace("1080p","HD1080p").replace("HDTV", "HD720p")}">${Quality.qualityStrings[curQuality]}</span></td>
+                <td align="center">${renderQualityPill(curQuality)}</td>
             </tr>
         % endfor
         </tbody>
@@ -228,7 +229,7 @@ $(document).ready(function(){
                     % endfor
                 </td>
                 % endif
-                <td align="center" width="14%" quality="${curQuality}"><span class="quality ${Quality.qualityStrings[curQuality].replace("720p","HD720p").replace("1080p","HD1080p").replace("RawHD TV", "RawHD").replace("HD TV", "HD720p")}">${Quality.qualityStrings[curQuality]}</span></td>
+                <td align="center" width="14%" quality="${curQuality}">${renderQualityPill(curQuality)}</td>
             </tr>
         % endfor
         </tbody>
diff --git a/gui/slick/interfaces/default/home.mako b/gui/slick/interfaces/default/home.mako
index 909aadb0479e16ebb790f771f6f3cc9b1b570898..debfaecc8359cff4f6819c8977160dcd4a515ace 100644
--- a/gui/slick/interfaces/default/home.mako
+++ b/gui/slick/interfaces/default/home.mako
@@ -7,6 +7,7 @@
     import datetime
     import re
 %>
+<%namespace file="/inc_defs.mako" import="renderQualityPill"/>
 <%include file="/inc_top.mako"/>
 <%
     myDB = db.DBConnection()
@@ -42,7 +43,6 @@
 %>
 
 <script type="text/javascript" charset="utf-8">
-
 $.tablesorter.addParser({
     id: 'loadingNames',
     is: function(s) {
@@ -108,6 +108,20 @@ $.tablesorter.addParser({
 
 $(document).ready(function(){
 
+    $('[data-src]').each(function(){
+       $(this).attr('src', $(this).data('src'));
+    });
+
+    // This needs to be refined to work a little faster.
+    $('.progressbar').each(function(progressbar){
+        var showId = $(this).data('show-id');
+        var percentage = $(this).data('progress-percentage');
+        var classToAdd = percentage == 100 ? 100 : percentage > 80 ? 80 : percentage > 60 ? 60 : percentage > 40 ? 40 : 20;
+        $(this).progressbar({ value:  percentage });
+        $(this).data('progress-text') ? $(this).append('<div class="progressbarText" title="' + $(this).data('progress-tip') + '">' + $(this).data('progress-text') + '</div>') : '';
+        $(this).find('.ui-progressbar-value').addClass('progress-' + classToAdd);
+    });
+
     $("img#network").on('error', function(){
         $(this).parent().text($(this).attr('alt'));
         $(this).remove();
@@ -120,7 +134,7 @@ $(document).ready(function(){
             1: function(node) { return $(node).find("span").text().toLowerCase(); },
             3: function(node) { return $(node).find("span").prop("title").toLowerCase(); },
             4: function(node) { return $(node).find("span").text().toLowerCase(); },
-            5: function(node) { return $(node).find("span").text(); },
+            5: function(node) { return $(node).find("span:first").text(); },
             6: function(node) { return $(node).find("img").attr("alt"); }
         },
         widgets: ['saveSort', 'zebra', 'stickyHeaders', 'filter', 'columnSelector'],
@@ -211,7 +225,7 @@ $(document).ready(function(){
             1: function(node) { return $(node).find("span").text().toLowerCase(); },
             3: function(node) { return $(node).find("span").prop("title").toLowerCase(); },
             4: function(node) { return $(node).find("span").text().toLowerCase(); },
-            5: function(node) { return $(node).find("span").text(); },
+            5: function(node) { return $(node).find("span:first").text(); },
             6: function(node) { return $(node).find("img").attr("alt"); }
         },
         widgets: ['saveSort', 'zebra', 'stickyHeaders', 'filter', 'columnSelector'],
@@ -388,7 +402,7 @@ $(document).ready(function(){
     <h1 class="title">${title}</h1>
 % endif
 
-<div id="HomeLayout" class="pull-right" style="margin-top: -40px;">
+<div id="HomeLayout" class="pull-right hidden-print" style="margin-top: -40px;">
     % if layout != 'poster':
         <button id="popover" type="button" class="btn btn-inline">Select Column</button>
     % endif
@@ -440,7 +454,7 @@ $(document).ready(function(){
 % for curLoadingShow in sickbeard.showQueueScheduler.action.loadingShowList:
     % if curLoadingShow.show == None:
         <div class="show" data-name="0" data-date="010101" data-network="0" data-progress="101">
-            <img alt="" title="${curLoadingShow.show_name}" class="show-image" style="border-bottom: 1px solid #111;" src="${sbRoot}/images/poster.png" />
+            <img alt="" title="${curLoadingShow.show_name}" class="show-image" style="border-bottom: 1px solid #111;" data-src="${sbRoot}/images/poster.png" />
             <div class="show-details">
                 <div class="show-add">Loading... (${curLoadingShow.show_name})</div>
             </div>
@@ -514,33 +528,10 @@ $(document).ready(function(){
 %>
     <div class="show" id="show${curShow.indexerid}" data-name="${curShow.name}" data-date="${data_date}" data-network="${curShow.network}" data-progress="${progressbar_percent}">
         <div class="show-image">
-            <a href="${sbRoot}/home/displayShow?show=${curShow.indexerid}"><img alt="" class="show-image" src="${sbRoot}/showPoster/?show=${curShow.indexerid}&amp;which=poster_thumb" /></a>
+            <a href="${sbRoot}/home/displayShow?show=${curShow.indexerid}"><img alt="" class="show-image" data-src="${sbRoot}/showPoster/?show=${curShow.indexerid}&amp;which=poster_thumb" /></a>
         </div>
 
-        <div id="progressbar${curShow.indexerid}"></div>
-            <script type="text/javascript">
-                $(function() {
-                    $("#progressbar${curShow.indexerid}").progressbar({
-                    value: ${progressbar_percent} });
-                    classvalue = ${progressbar_percent}
-                    if (classvalue<20) {
-                        classtoadd = "progress-20"
-                    }
-                    if (classvalue>=20 && classvalue<40) {
-                        classtoadd = "progress-40"
-                    }
-                    if (classvalue>=40 && classvalue<80) {
-                        classtoadd = "progress-60"
-                    }
-                    if (classvalue>=80 && classvalue<100) {
-                        classtoadd = "progress-80"
-                    }
-                    if (classvalue==100) {
-                        classtoadd = "progress-100"
-                    }
-                    $("#progressbar${curShow.indexerid} > .ui-progressbar-value").addClass(classtoadd);
-                });
-            </script>
+        <div class="progressbar hidden-print" style="position:relative;" data-show-id="${curShow.indexerid}" data-progress-percentage="${progressbar_percent}"></div>
 
         <div class="show-title">
             ${curShow.name}
@@ -581,9 +572,9 @@ $(document).ready(function(){
                 <td class="show-table">
                     % if layout != 'simple':
                         % if curShow.network:
-                            <span title="${curShow.network}"><img class="show-network-image" src="${sbRoot}/showNetworkLogo/?show=${curShow.indexerid}" alt="${curShow.network}" title="${curShow.network}" /></span>
+                            <span title="${curShow.network}"><img class="show-network-image" data-src="${sbRoot}/showNetworkLogo/?show=${curShow.indexerid}" alt="${curShow.network}" title="${curShow.network}" /></span>
                         % else:
-                            <span title="No Network"><img class="show-network-image" src="${sbRoot}/images/network/nonetwork.png" alt="No Network" title="No Network" /></span>
+                            <span title="No Network"><img class="show-network-image" data-src="${sbRoot}/images/network/nonetwork.png" alt="No Network" title="No Network" /></span>
                         % endif
                     % else:
                         <span title="${curShow.network}">${curShow.network}</span>
@@ -591,11 +582,7 @@ $(document).ready(function(){
                 </td>
 
                 <td class="show-table">
-                    % if curShow.quality in qualityPresets:
-                        <span class="show-quality">${qualityPresetStrings[curShow.quality]}</span>
-                    % else:
-                        <span class="show-quality">Custom</span>
-                    % endif
+		    ${renderQualityPill(curShow.quality, overrideClass="show-quality")}
                 </td>
             </tr>
         </table>
@@ -623,7 +610,7 @@ $(document).ready(function(){
         </tr>
     </thead>
 
-    <tfoot>
+    <tfoot class="hidden-print">
         <tr>
             <th rowspan="1" colspan="1" align="center"><a href="${sbRoot}/home/addShows/">Add Show</a></th>
             <th>&nbsp;</th>
@@ -750,7 +737,7 @@ $(document).ready(function(){
         <td class="tvShow">
             <div class="imgsmallposter ${layout}">
                 <a href="${sbRoot}/showPoster/?show=${curShow.indexerid}&amp;which=${layout}" rel="dialog" title="${curShow.name}">
-                    <img src="${sbRoot}/showPoster/?show=${curShow.indexerid}&amp;which=poster_thumb" class="${layout}" alt="${curShow.indexerid}"/>
+                    <img data-src="${sbRoot}/showPoster/?show=${curShow.indexerid}&amp;which=poster_thumb" class="${layout}" alt="${curShow.indexerid}"/>
                 </a>
                 <a href="${sbRoot}/home/displayShow?show=${curShow.indexerid}" style="vertical-align: middle;">${curShow.name}</a>
             </div>
@@ -760,7 +747,7 @@ $(document).ready(function(){
             <span style="display: none;">${curShow.name}</span>
             <div class="imgbanner ${layout}">
                 <a href="${sbRoot}/home/displayShow?show=${curShow.indexerid}">
-                <img src="${sbRoot}/showPoster/?show=${curShow.indexerid}&amp;which=banner" class="${layout}" alt="${curShow.indexerid}" title="${curShow.name}"/>
+                <img data-src="${sbRoot}/showPoster/?show=${curShow.indexerid}&amp;which=banner" class="${layout}" alt="${curShow.indexerid}" title="${curShow.name}"/>
             </div>
         </td>
     % elif layout == 'simple':
@@ -770,9 +757,11 @@ $(document).ready(function(){
     % if layout != 'simple':
         <td align="center">
         % if curShow.network:
-            <span title="${curShow.network}"><img id="network" width="54" height="27" src="${sbRoot}/showNetworkLogo/?show=${curShow.indexerid}" alt="${curShow.network}" title="${curShow.network}" /></span>
+            <span title="${curShow.network}" class="hidden-print"><img id="network" width="54" height="27" data-src="${sbRoot}/showNetworkLogo/?show=${curShow.indexerid}" alt="${curShow.network}" title="${curShow.network}" /></span>
+            <span class="visible-print-inline">${curShow.network}</span>
         % else:
-            <span title="No Network"><img id="network" width="54" height="27" src="${sbRoot}/images/network/nonetwork.png" alt="No Network" title="No Network" /></span>
+            <span title="No Network" class="hidden-print"><img id="network" width="54" height="27" data-src="${sbRoot}/images/network/nonetwork.png" alt="No Network" title="No Network" /></span>
+            <span class="visible-print-inline">No Network</span>
         % endif
         </td>
     % else:
@@ -781,41 +770,17 @@ $(document).ready(function(){
         </td>
     % endif
 
-    % if curShow.quality in qualityPresets:
-        <td align="center"><span class="quality ${qualityPresetStrings[curShow.quality]}">${qualityPresetStrings[curShow.quality]}</span></td>
-    % else:
-        <td align="center"><span class="quality Custom">Custom</span></td>
-    % endif
+        <td align="center">${renderQualityPill(curShow.quality)}</td>
 
-        <td align="center"><span style="display: none;">${download_stat}</span><div id="progressbar${curShow.indexerid}" style="position:relative;"></div>
-            <script type="text/javascript">
-                $(function() {
-                    $("#progressbar${curShow.indexerid}").progressbar({
-                    value: ${progressbar_percent} });
-                    $("#progressbar${curShow.indexerid}").append( "<div class='progressbarText' title='${download_stat_tip}'>${download_stat}</div>" )
-                    classvalue = ${progressbar_percent}
-                    if (classvalue<20) {
-                        classtoadd = "progress-20"
-                    }
-                    if (classvalue>=20 && classvalue<40) {
-                        classtoadd = "progress-40"
-                    }
-                    if (classvalue>=40 && classvalue<80) {
-                        classtoadd = "progress-60"
-                    }
-                    if (classvalue>=80 && classvalue<100) {
-                        classtoadd = "progress-80"
-                    }
-                    if (classvalue==100) {
-                        classtoadd = "progress-100"
-                    }
-                    $("#progressbar${curShow.indexerid} > .ui-progressbar-value").addClass(classtoadd);
-                });
-            </script>
+        <td align="center">
+            ## This first span is used for sorting and is never displayed to user
+            <span style="display: none;">${download_stat}</span>
+            <div class="progressbar hidden-print" style="position:relative;" data-show-id="${curShow.indexerid}" data-progress-percentage="${progressbar_percent}" data-progress-text="${download_stat}" data-progress-tip="${download_stat_tip}"></div>
+            <span class="visible-print-inline">${download_stat}</span>
         </td>
 
         <td align="center">
-            <img src="${sbRoot}/images/${('no16.png", alt="No"', 'yes16.png", alt="Yes"')[int(curShow.paused) == 0 and curShow.status == 'Continuing']} width="16" height="16" />
+            <img data-src="${sbRoot}/images/${('no16.png" alt="No"', 'yes16.png" alt="Yes"')[int(curShow.paused) == 0 and curShow.status == 'Continuing']} width="16" height="16" />
         </td>
 
         <td align="center">
diff --git a/gui/slick/interfaces/default/inc_defs.mako b/gui/slick/interfaces/default/inc_defs.mako
new file mode 100644
index 0000000000000000000000000000000000000000..2d44ac5b3e7bd5c313209ba9c82f727a5e3aaaf3
--- /dev/null
+++ b/gui/slick/interfaces/default/inc_defs.mako
@@ -0,0 +1,23 @@
+<%!
+    from sickbeard.common import Quality, qualityPresets, qualityPresetStrings
+%>
+<%def name="renderQualityPill(quality, overrideClass=None)"><%
+    if quality in qualityPresets:
+        cssClass = qualityPresetStrings[quality]
+        qualityString = qualityPresetStrings[quality]
+    elif quality in Quality.combinedQualityStrings:
+        cssClass = Quality.cssClassStrings[quality]
+        qualityString = Quality.combinedQualityStrings[quality]
+    elif quality in Quality.qualityStrings:
+        cssClass = Quality.cssClassStrings[quality]
+        qualityString = Quality.qualityStrings[quality]
+    else:
+        cssClass = "Custom"
+        qualityString = "Custom"
+
+    if overrideClass == None:
+        cssClass = "quality " + cssClass
+    else:
+        cssClass = overrideClass
+
+%><span class="${cssClass}">${qualityString}</span></%def>
diff --git a/gui/slick/interfaces/default/inc_top.mako b/gui/slick/interfaces/default/inc_top.mako
index a5ede60447b25de329231aaade64f0e18d25bb6b..d8bcb92a2770778fa297bfa1efcfeb3bf90e542e 100644
--- a/gui/slick/interfaces/default/inc_top.mako
+++ b/gui/slick/interfaces/default/inc_top.mako
@@ -43,12 +43,13 @@
         <meta name="msapplication-TileImage" content="${sbRoot}/images/ico/favicon-144.png">
         <meta name="msapplication-config" content="${sbRoot}/css/browserconfig.xml">
 
-        <link rel="stylesheet" type="text/css" href="${sbRoot}/css/lib/bootstrap.css?${sbPID}"/>
+        <link rel="stylesheet" type="text/css" href="${sbRoot}/css/lib/bootstrap.min.css?${sbPID}"/>
         <link rel="stylesheet" type="text/css" href="${sbRoot}/css/browser.css?${sbPID}" />
-        <link rel="stylesheet" type="text/css" href="${sbRoot}/css/lib/jquery-ui-1.10.4.custom.css?${sbPID}" />
+        <link rel="stylesheet" type="text/css" href="${sbRoot}/css/lib/jquery-ui-1.10.4.custom.min.css?${sbPID}" />
         <link rel="stylesheet" type="text/css" href="${sbRoot}/css/lib/jquery.qtip-2.2.1.min.css?${sbPID}"/>
         <link rel="stylesheet" type="text/css" href="${sbRoot}/css/style.css?${sbPID}"/>
         <link rel="stylesheet" type="text/css" href="${sbRoot}/css/${sickbeard.THEME_NAME}.css?${sbPID}" />
+        <link rel="stylesheet" type="text/css" href="${sbRoot}/css/print.css?${sbPID}" />
         % if sbLogin:
         <link rel="stylesheet" type="text/css" href="${sbRoot}/css/lib/pnotify.custom.min.css?${sbPID}" />
         <link rel="stylesheet" type="text/css" href="${sbRoot}/css/country-flags.css?${sbPID}"/>
@@ -142,7 +143,7 @@
     </head>
 
     <body>
-        <nav class="navbar navbar-default navbar-fixed-top" role="navigation">
+        <nav class="navbar navbar-default navbar-fixed-top hidden-print" role="navigation">
             <div class="container-fluid">
                 <div class="navbar-header">
                     <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
@@ -245,7 +246,7 @@
         </nav>
 
         % if not submenu is UNDEFINED:
-        <div id="SubMenu">
+        <div id="SubMenu" class="hidden-print">
         <span>
         <% first = True %>
         % for menuItem in submenu:
@@ -271,13 +272,13 @@
         % endif
 
         % if sickbeard.BRANCH and sickbeard.BRANCH != 'master' and not sickbeard.DEVELOPER and sbLogin:
-        <div class="alert alert-danger upgrade-notification" role="alert">
+        <div class="alert alert-danger upgrade-notification hidden-print" role="alert">
             <span>You're using the ${sickbeard.BRANCH} branch. Please use 'master' unless specifically asked</span>
         </div>
         % endif
 
         % if sickbeard.NEWEST_VERSION_STRING and sbLogin:
-        <div class="alert alert-success upgrade-notification" role="alert">
+        <div class="alert alert-success upgrade-notification hidden-print" role="alert">
             <span>${sickbeard.NEWEST_VERSION_STRING}</span>
         </div>
         % endif
diff --git a/gui/slick/interfaces/default/manage.mako b/gui/slick/interfaces/default/manage.mako
index ceb4bbb8f8b9c8f373f8b1a59dc8c4b128a6f5d9..a444883f4ade65a635a27c1d55ee919e0d847779 100644
--- a/gui/slick/interfaces/default/manage.mako
+++ b/gui/slick/interfaces/default/manage.mako
@@ -1,8 +1,9 @@
 <%!
     import sickbeard
     from sickbeard.common import SKIPPED, WANTED, UNAIRED, ARCHIVED, IGNORED, SNATCHED, SNATCHED_PROPER, SNATCHED_BEST, FAILED
-    from sickbeard.common import Quality, qualityPresets, qualityPresetStrings, statusStrings
+    from sickbeard.common import statusStrings
 %>
+<%namespace file="/inc_defs.mako" import="renderQualityPill"/>
 <%include file="/inc_top.mako"/>
 <script type="text/javascript" src="${sbRoot}/js/lib/bootbox.min.js?${sbPID}"></script>
 <script type="text/javascript" charset="utf-8">
@@ -81,7 +82,7 @@ $(document).ready(function()
         <tr>
             <th class="col-checkbox">Edit<br/><input type="checkbox" class="bulkCheck" id="editCheck" /></th>
             <th class="nowrap" style="text-align: left;">Show Name</th>
-            <th class="col-legend">Quality</th>
+            <th class="col-quality">Quality</th>
             <th class="col-legend">Sports</th>
             <th class="col-legend">Scene</th>
             <th class="col-legend">Anime</th>
@@ -160,11 +161,7 @@ $(document).ready(function()
         <tr>
             <td align="center"><input type="checkbox" class="editCheck" id="edit-${curShow.indexerid}" /></td>
             <td class="tvShow"><a href="${sbRoot}/home/displayShow?show=${curShow.indexerid}">${curShow.name}</a></td>
-        % if curShow.quality in qualityPresets:
-            <td align="center"><span class="quality ${qualityPresetStrings[curShow.quality]}">${qualityPresetStrings[curShow.quality]}</span></td>
-        % else:
-            <td align="center"><span class="quality Custom">Custom</span></td>
-        % endif
+            <td align="center">${renderQualityPill(curShow.quality)}</td>
             <td align="center"><img src="${sbRoot}/images/${('no16.png" alt="N"', 'yes16.png" alt="Y"')[int(curShow.is_sports) == 1]} width="16" height="16" /></td>
             <td align="center"><img src="${sbRoot}/images/${('no16.png" alt="N"', 'yes16.png" alt="Y"')[int(curShow.is_scene) == 1]} width="16" height="16" /></td>
             <td align="center"><img src="${sbRoot}/images/${('no16.png" alt="N"', 'yes16.png" alt="Y"')[int(curShow.is_anime) == 1]} width="16" height="16" /></td>
diff --git a/gui/slick/js/displayShow.js b/gui/slick/js/displayShow.js
index fb13af78ae2b75e31d81470b27313683f018dd9f..c7d59a8beb134cbf0261e8de65186d14421b5680 100644
--- a/gui/slick/js/displayShow.js
+++ b/gui/slick/js/displayShow.js
@@ -47,6 +47,7 @@ $(document).ready(function () {
         var seasCheck = this;
         var seasNo = $(seasCheck).attr('id');
 
+        $('#collapseSeason-' + seasNo).collapse('show');
         $('.epCheck:visible').each(function () {
             var epParts = $(this).attr('id').split('x');
 
diff --git a/gui/slick/js/fancybox/jquery.fancybox.js b/gui/slick/js/fancybox/jquery.fancybox.js
deleted file mode 100644
index e8e1987c6cbd752cf39f724e084865a85b56ac9f..0000000000000000000000000000000000000000
--- a/gui/slick/js/fancybox/jquery.fancybox.js
+++ /dev/null
@@ -1,2020 +0,0 @@
-/*!
- * fancyBox - jQuery Plugin
- * version: 2.1.5 (Fri, 14 Jun 2013)
- * @requires jQuery v1.6 or later
- *
- * Examples at http://fancyapps.com/fancybox/
- * License: www.fancyapps.com/fancybox/#license
- *
- * Copyright 2012 Janis Skarnelis - janis@fancyapps.com
- *
- */
-
-(function (window, document, $, undefined) {
-	"use strict";
-
-	var H = $("html"),
-		W = $(window),
-		D = $(document),
-		F = $.fancybox = function () {
-			F.open.apply( this, arguments );
-		},
-		IE =  navigator.userAgent.match(/msie/i),
-		didUpdate	= null,
-		isTouch		= document.createTouch !== undefined,
-
-		isQuery	= function(obj) {
-			return obj && obj.hasOwnProperty && obj instanceof $;
-		},
-		isString = function(str) {
-			return str && $.type(str) === "string";
-		},
-		isPercentage = function(str) {
-			return isString(str) && str.indexOf('%') > 0;
-		},
-		isScrollable = function(el) {
-			return (el && !(el.style.overflow && el.style.overflow === 'hidden') && ((el.clientWidth && el.scrollWidth > el.clientWidth) || (el.clientHeight && el.scrollHeight > el.clientHeight)));
-		},
-		getScalar = function(orig, dim) {
-			var value = parseInt(orig, 10) || 0;
-
-			if (dim && isPercentage(orig)) {
-				value = F.getViewport()[ dim ] / 100 * value;
-			}
-
-			return Math.ceil(value);
-		},
-		getValue = function(value, dim) {
-			return getScalar(value, dim) + 'px';
-		};
-
-	$.extend(F, {
-		// The current version of fancyBox
-		version: '2.1.5',
-
-		defaults: {
-			padding : 15,
-			margin  : 20,
-
-			width     : 800,
-			height    : 600,
-			minWidth  : 100,
-			minHeight : 100,
-			maxWidth  : 9999,
-			maxHeight : 9999,
-			pixelRatio: 1, // Set to 2 for retina display support
-
-			autoSize   : true,
-			autoHeight : false,
-			autoWidth  : false,
-
-			autoResize  : true,
-			autoCenter  : !isTouch,
-			fitToView   : true,
-			aspectRatio : false,
-			topRatio    : 0.5,
-			leftRatio   : 0.5,
-
-			scrolling : 'auto', // 'auto', 'yes' or 'no'
-			wrapCSS   : '',
-
-			arrows     : true,
-			closeBtn   : true,
-			closeClick : false,
-			nextClick  : false,
-			mouseWheel : true,
-			autoPlay   : false,
-			playSpeed  : 3000,
-			preload    : 3,
-			modal      : false,
-			loop       : true,
-
-			ajax  : {
-				dataType : 'html',
-				headers  : { 'X-fancyBox': true }
-			},
-			iframe : {
-				scrolling : 'auto',
-				preload   : true
-			},
-			swf : {
-				wmode: 'transparent',
-				allowfullscreen   : 'true',
-				allowscriptaccess : 'always'
-			},
-
-			keys  : {
-				next : {
-					13 : 'left', // enter
-					34 : 'up',   // page down
-					39 : 'left', // right arrow
-					40 : 'up'    // down arrow
-				},
-				prev : {
-					8  : 'right',  // backspace
-					33 : 'down',   // page up
-					37 : 'right',  // left arrow
-					38 : 'down'    // up arrow
-				},
-				close  : [27], // escape key
-				play   : [32], // space - start/stop slideshow
-				toggle : [70]  // letter "f" - toggle fullscreen
-			},
-
-			direction : {
-				next : 'left',
-				prev : 'right'
-			},
-
-			scrollOutside  : true,
-
-			// Override some properties
-			index   : 0,
-			type    : null,
-			href    : null,
-			content : null,
-			title   : null,
-
-			// HTML templates
-			tpl: {
-				wrap     : '<div class="fancybox-wrap" tabIndex="-1"><div class="fancybox-skin"><div class="fancybox-outer"><div class="fancybox-inner"></div></div></div></div>',
-				image    : '<img class="fancybox-image" src="{href}" alt="" />',
-				iframe   : '<iframe id="fancybox-frame{rnd}" name="fancybox-frame{rnd}" class="fancybox-iframe" frameborder="0" vspace="0" hspace="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen' + (IE ? ' allowtransparency="true"' : '') + '></iframe>',
-				error    : '<p class="fancybox-error">The requested content cannot be loaded.<br/>Please try again later.</p>',
-				closeBtn : '<a title="Close" class="fancybox-item fancybox-close" href="javascript:;"></a>',
-				next     : '<a title="Next" class="fancybox-nav fancybox-next" href="javascript:;"><span></span></a>',
-				prev     : '<a title="Previous" class="fancybox-nav fancybox-prev" href="javascript:;"><span></span></a>'
-			},
-
-			// Properties for each animation type
-			// Opening fancyBox
-			openEffect  : 'fade', // 'elastic', 'fade' or 'none'
-			openSpeed   : 250,
-			openEasing  : 'swing',
-			openOpacity : true,
-			openMethod  : 'zoomIn',
-
-			// Closing fancyBox
-			closeEffect  : 'fade', // 'elastic', 'fade' or 'none'
-			closeSpeed   : 250,
-			closeEasing  : 'swing',
-			closeOpacity : true,
-			closeMethod  : 'zoomOut',
-
-			// Changing next gallery item
-			nextEffect : 'elastic', // 'elastic', 'fade' or 'none'
-			nextSpeed  : 250,
-			nextEasing : 'swing',
-			nextMethod : 'changeIn',
-
-			// Changing previous gallery item
-			prevEffect : 'elastic', // 'elastic', 'fade' or 'none'
-			prevSpeed  : 250,
-			prevEasing : 'swing',
-			prevMethod : 'changeOut',
-
-			// Enable default helpers
-			helpers : {
-				overlay : true,
-				title   : true
-			},
-
-			// Callbacks
-			onCancel     : $.noop, // If canceling
-			beforeLoad   : $.noop, // Before loading
-			afterLoad    : $.noop, // After loading
-			beforeShow   : $.noop, // Before changing in current item
-			afterShow    : $.noop, // After opening
-			beforeChange : $.noop, // Before changing gallery item
-			beforeClose  : $.noop, // Before closing
-			afterClose   : $.noop  // After closing
-		},
-
-		//Current state
-		group    : {}, // Selected group
-		opts     : {}, // Group options
-		previous : null,  // Previous element
-		coming   : null,  // Element being loaded
-		current  : null,  // Currently loaded element
-		isActive : false, // Is activated
-		isOpen   : false, // Is currently open
-		isOpened : false, // Have been fully opened at least once
-
-		wrap  : null,
-		skin  : null,
-		outer : null,
-		inner : null,
-
-		player : {
-			timer    : null,
-			isActive : false
-		},
-
-		// Loaders
-		ajaxLoad   : null,
-		imgPreload : null,
-
-		// Some collections
-		transitions : {},
-		helpers     : {},
-
-		/*
-		 *	Static methods
-		 */
-
-		open: function (group, opts) {
-			if (!group) {
-				return;
-			}
-
-			if (!$.isPlainObject(opts)) {
-				opts = {};
-			}
-
-			// Close if already active
-			if (false === F.close(true)) {
-				return;
-			}
-
-			// Normalize group
-			if (!$.isArray(group)) {
-				group = isQuery(group) ? $(group).get() : [group];
-			}
-
-			// Recheck if the type of each element is `object` and set content type (image, ajax, etc)
-			$.each(group, function(i, element) {
-				var obj = {},
-					href,
-					title,
-					content,
-					type,
-					rez,
-					hrefParts,
-					selector;
-
-				if ($.type(element) === "object") {
-					// Check if is DOM element
-					if (element.nodeType) {
-						element = $(element);
-					}
-
-					if (isQuery(element)) {
-						obj = {
-							href    : element.data('fancybox-href') || element.attr('href'),
-							title   : element.data('fancybox-title') || element.attr('title'),
-							isDom   : true,
-							element : element
-						};
-
-						if ($.metadata) {
-							$.extend(true, obj, element.metadata());
-						}
-
-					} else {
-						obj = element;
-					}
-				}
-
-				href  = opts.href  || obj.href || (isString(element) ? element : null);
-				title = opts.title !== undefined ? opts.title : obj.title || '';
-
-				content = opts.content || obj.content;
-				type    = content ? 'html' : (opts.type  || obj.type);
-
-				if (!type && obj.isDom) {
-					type = element.data('fancybox-type');
-
-					if (!type) {
-						rez  = element.prop('class').match(/fancybox\.(\w+)/);
-						type = rez ? rez[1] : null;
-					}
-				}
-
-				if (isString(href)) {
-					// Try to guess the content type
-					if (!type) {
-						if (F.isImage(href)) {
-							type = 'image';
-
-						} else if (F.isSWF(href)) {
-							type = 'swf';
-
-						} else if (href.charAt(0) === '#') {
-							type = 'inline';
-
-						} else if (isString(element)) {
-							type    = 'html';
-							content = element;
-						}
-					}
-
-					// Split url into two pieces with source url and content selector, e.g,
-					// "/mypage.html #my_id" will load "/mypage.html" and display element having id "my_id"
-					if (type === 'ajax') {
-						hrefParts = href.split(/\s+/, 2);
-						href      = hrefParts.shift();
-						selector  = hrefParts.shift();
-					}
-				}
-
-				if (!content) {
-					if (type === 'inline') {
-						if (href) {
-							content = $( isString(href) ? href.replace(/.*(?=#[^\s]+$)/, '') : href ); //strip for ie7
-
-						} else if (obj.isDom) {
-							content = element;
-						}
-
-					} else if (type === 'html') {
-						content = href;
-
-					} else if (!type && !href && obj.isDom) {
-						type    = 'inline';
-						content = element;
-					}
-				}
-
-				$.extend(obj, {
-					href     : href,
-					type     : type,
-					content  : content,
-					title    : title,
-					selector : selector
-				});
-
-				group[ i ] = obj;
-			});
-
-			// Extend the defaults
-			F.opts = $.extend(true, {}, F.defaults, opts);
-
-			// All options are merged recursive except keys
-			if (opts.keys !== undefined) {
-				F.opts.keys = opts.keys ? $.extend({}, F.defaults.keys, opts.keys) : false;
-			}
-
-			F.group = group;
-
-			return F._start(F.opts.index);
-		},
-
-		// Cancel image loading or abort ajax request
-		cancel: function () {
-			var coming = F.coming;
-
-			if (!coming || false === F.trigger('onCancel')) {
-				return;
-			}
-
-			F.hideLoading();
-
-			if (F.ajaxLoad) {
-				F.ajaxLoad.abort();
-			}
-
-			F.ajaxLoad = null;
-
-			if (F.imgPreload) {
-				F.imgPreload.onload = F.imgPreload.onerror = null;
-			}
-
-			if (coming.wrap) {
-				coming.wrap.stop(true, true).trigger('onReset').remove();
-			}
-
-			F.coming = null;
-
-			// If the first item has been canceled, then clear everything
-			if (!F.current) {
-				F._afterZoomOut( coming );
-			}
-		},
-
-		// Start closing animation if is open; remove immediately if opening/closing
-		close: function (event) {
-			F.cancel();
-
-			if (false === F.trigger('beforeClose')) {
-				return;
-			}
-
-			F.unbindEvents();
-
-			if (!F.isActive) {
-				return;
-			}
-
-			if (!F.isOpen || event === true) {
-				$('.fancybox-wrap').stop(true).trigger('onReset').remove();
-
-				F._afterZoomOut();
-
-			} else {
-				F.isOpen = F.isOpened = false;
-				F.isClosing = true;
-
-				$('.fancybox-item, .fancybox-nav').remove();
-
-				F.wrap.stop(true, true).removeClass('fancybox-opened');
-
-				F.transitions[ F.current.closeMethod ]();
-			}
-		},
-
-		// Manage slideshow:
-		//   $.fancybox.play(); - toggle slideshow
-		//   $.fancybox.play( true ); - start
-		//   $.fancybox.play( false ); - stop
-		play: function ( action ) {
-			var clear = function () {
-					clearTimeout(F.player.timer);
-				},
-				set = function () {
-					clear();
-
-					if (F.current && F.player.isActive) {
-						F.player.timer = setTimeout(F.next, F.current.playSpeed);
-					}
-				},
-				stop = function () {
-					clear();
-
-					D.unbind('.player');
-
-					F.player.isActive = false;
-
-					F.trigger('onPlayEnd');
-				},
-				start = function () {
-					if (F.current && (F.current.loop || F.current.index < F.group.length - 1)) {
-						F.player.isActive = true;
-
-						D.bind({
-							'onCancel.player beforeClose.player' : stop,
-							'onUpdate.player'   : set,
-							'beforeLoad.player' : clear
-						});
-
-						set();
-
-						F.trigger('onPlayStart');
-					}
-				};
-
-			if (action === true || (!F.player.isActive && action !== false)) {
-				start();
-			} else {
-				stop();
-			}
-		},
-
-		// Navigate to next gallery item
-		next: function ( direction ) {
-			var current = F.current;
-
-			if (current) {
-				if (!isString(direction)) {
-					direction = current.direction.next;
-				}
-
-				F.jumpto(current.index + 1, direction, 'next');
-			}
-		},
-
-		// Navigate to previous gallery item
-		prev: function ( direction ) {
-			var current = F.current;
-
-			if (current) {
-				if (!isString(direction)) {
-					direction = current.direction.prev;
-				}
-
-				F.jumpto(current.index - 1, direction, 'prev');
-			}
-		},
-
-		// Navigate to gallery item by index
-		jumpto: function ( index, direction, router ) {
-			var current = F.current;
-
-			if (!current) {
-				return;
-			}
-
-			index = getScalar(index);
-
-			F.direction = direction || current.direction[ (index >= current.index ? 'next' : 'prev') ];
-			F.router    = router || 'jumpto';
-
-			if (current.loop) {
-				if (index < 0) {
-					index = current.group.length + (index % current.group.length);
-				}
-
-				index = index % current.group.length;
-			}
-
-			if (current.group[ index ] !== undefined) {
-				F.cancel();
-
-				F._start(index);
-			}
-		},
-
-		// Center inside viewport and toggle position type to fixed or absolute if needed
-		reposition: function (e, onlyAbsolute) {
-			var current = F.current,
-				wrap    = current ? current.wrap : null,
-				pos;
-
-			if (wrap) {
-				pos = F._getPosition(onlyAbsolute);
-
-				if (e && e.type === 'scroll') {
-					delete pos.position;
-
-					wrap.stop(true, true).animate(pos, 200);
-
-				} else {
-					wrap.css(pos);
-
-					current.pos = $.extend({}, current.dim, pos);
-				}
-			}
-		},
-
-		update: function (e) {
-			var type = (e && e.type),
-				anyway = !type || type === 'orientationchange';
-
-			if (anyway) {
-				clearTimeout(didUpdate);
-
-				didUpdate = null;
-			}
-
-			if (!F.isOpen || didUpdate) {
-				return;
-			}
-
-			didUpdate = setTimeout(function() {
-				var current = F.current;
-
-				if (!current || F.isClosing) {
-					return;
-				}
-
-				F.wrap.removeClass('fancybox-tmp');
-
-				if (anyway || type === 'load' || (type === 'resize' && current.autoResize)) {
-					F._setDimension();
-				}
-
-				if (!(type === 'scroll' && current.canShrink)) {
-					F.reposition(e);
-				}
-
-				F.trigger('onUpdate');
-
-				didUpdate = null;
-
-			}, (anyway && !isTouch ? 0 : 300));
-		},
-
-		// Shrink content to fit inside viewport or restore if resized
-		toggle: function ( action ) {
-			if (F.isOpen) {
-				F.current.fitToView = $.type(action) === "boolean" ? action : !F.current.fitToView;
-
-				// Help browser to restore document dimensions
-				if (isTouch) {
-					F.wrap.removeAttr('style').addClass('fancybox-tmp');
-
-					F.trigger('onUpdate');
-				}
-
-				F.update();
-			}
-		},
-
-		hideLoading: function () {
-			D.unbind('.loading');
-
-			$('#fancybox-loading').remove();
-		},
-
-		showLoading: function () {
-			var el, viewport;
-
-			F.hideLoading();
-
-			el = $('<div id="fancybox-loading"><div></div></div>').click(F.cancel).appendTo('body');
-
-			// If user will press the escape-button, the request will be canceled
-			D.bind('keydown.loading', function(e) {
-				if ((e.which || e.keyCode) === 27) {
-					e.preventDefault();
-
-					F.cancel();
-				}
-			});
-
-			if (!F.defaults.fixed) {
-				viewport = F.getViewport();
-
-				el.css({
-					position : 'absolute',
-					top  : (viewport.h * 0.5) + viewport.y,
-					left : (viewport.w * 0.5) + viewport.x
-				});
-			}
-		},
-
-		getViewport: function () {
-			var locked = (F.current && F.current.locked) || false,
-				rez    = {
-					x: W.scrollLeft(),
-					y: W.scrollTop()
-				};
-
-			if (locked) {
-				rez.w = locked[0].clientWidth;
-				rez.h = locked[0].clientHeight;
-
-			} else {
-				// See http://bugs.jquery.com/ticket/6724
-				rez.w = isTouch && window.innerWidth  ? window.innerWidth  : W.width();
-				rez.h = isTouch && window.innerHeight ? window.innerHeight : W.height();
-			}
-
-			return rez;
-		},
-
-		// Unbind the keyboard / clicking actions
-		unbindEvents: function () {
-			if (F.wrap && isQuery(F.wrap)) {
-				F.wrap.unbind('.fb');
-			}
-
-			D.unbind('.fb');
-			W.unbind('.fb');
-		},
-
-		bindEvents: function () {
-			var current = F.current,
-				keys;
-
-			if (!current) {
-				return;
-			}
-
-			// Changing document height on iOS devices triggers a 'resize' event,
-			// that can change document height... repeating infinitely
-			W.bind('orientationchange.fb' + (isTouch ? '' : ' resize.fb') + (current.autoCenter && !current.locked ? ' scroll.fb' : ''), F.update);
-
-			keys = current.keys;
-
-			if (keys) {
-				D.bind('keydown.fb', function (e) {
-					var code   = e.which || e.keyCode,
-						target = e.target || e.srcElement;
-
-					// Skip esc key if loading, because showLoading will cancel preloading
-					if (code === 27 && F.coming) {
-						return false;
-					}
-
-					// Ignore key combinations and key events within form elements
-					if (!e.ctrlKey && !e.altKey && !e.shiftKey && !e.metaKey && !(target && (target.type || $(target).is('[contenteditable]')))) {
-						$.each(keys, function(i, val) {
-							if (current.group.length > 1 && val[ code ] !== undefined) {
-								F[ i ]( val[ code ] );
-
-								e.preventDefault();
-								return false;
-							}
-
-							if ($.inArray(code, val) > -1) {
-								F[ i ] ();
-
-								e.preventDefault();
-								return false;
-							}
-						});
-					}
-				});
-			}
-
-			if ($.fn.mousewheel && current.mouseWheel) {
-				F.wrap.bind('mousewheel.fb', function (e, delta, deltaX, deltaY) {
-					var target = e.target || null,
-						parent = $(target),
-						canScroll = false;
-
-					while (parent.length) {
-						if (canScroll || parent.is('.fancybox-skin') || parent.is('.fancybox-wrap')) {
-							break;
-						}
-
-						canScroll = isScrollable( parent[0] );
-						parent    = $(parent).parent();
-					}
-
-					if (delta !== 0 && !canScroll) {
-						if (F.group.length > 1 && !current.canShrink) {
-							if (deltaY > 0 || deltaX > 0) {
-								F.prev( deltaY > 0 ? 'down' : 'left' );
-
-							} else if (deltaY < 0 || deltaX < 0) {
-								F.next( deltaY < 0 ? 'up' : 'right' );
-							}
-
-							e.preventDefault();
-						}
-					}
-				});
-			}
-		},
-
-		trigger: function (event, o) {
-			var ret, obj = o || F.coming || F.current;
-
-			if (!obj) {
-				return;
-			}
-
-			if ($.isFunction( obj[event] )) {
-				ret = obj[event].apply(obj, Array.prototype.slice.call(arguments, 1));
-			}
-
-			if (ret === false) {
-				return false;
-			}
-
-			if (obj.helpers) {
-				$.each(obj.helpers, function (helper, opts) {
-					if (opts && F.helpers[helper] && $.isFunction(F.helpers[helper][event])) {
-						F.helpers[helper][event]($.extend(true, {}, F.helpers[helper].defaults, opts), obj);
-					}
-				});
-			}
-
-			D.trigger(event);
-		},
-
-		isImage: function (str) {
-			return isString(str) && str.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i);
-		},
-
-		isSWF: function (str) {
-			return isString(str) && str.match(/\.(swf)((\?|#).*)?$/i);
-		},
-
-		_start: function (index) {
-			var coming = {},
-				obj,
-				href,
-				type,
-				margin,
-				padding;
-
-			index = getScalar( index );
-			obj   = F.group[ index ] || null;
-
-			if (!obj) {
-				return false;
-			}
-
-			coming = $.extend(true, {}, F.opts, obj);
-
-			// Convert margin and padding properties to array - top, right, bottom, left
-			margin  = coming.margin;
-			padding = coming.padding;
-
-			if ($.type(margin) === 'number') {
-				coming.margin = [margin, margin, margin, margin];
-			}
-
-			if ($.type(padding) === 'number') {
-				coming.padding = [padding, padding, padding, padding];
-			}
-
-			// 'modal' propery is just a shortcut
-			if (coming.modal) {
-				$.extend(true, coming, {
-					closeBtn   : false,
-					closeClick : false,
-					nextClick  : false,
-					arrows     : false,
-					mouseWheel : false,
-					keys       : null,
-					helpers: {
-						overlay : {
-							closeClick : false
-						}
-					}
-				});
-			}
-
-			// 'autoSize' property is a shortcut, too
-			if (coming.autoSize) {
-				coming.autoWidth = coming.autoHeight = true;
-			}
-
-			if (coming.width === 'auto') {
-				coming.autoWidth = true;
-			}
-
-			if (coming.height === 'auto') {
-				coming.autoHeight = true;
-			}
-
-			/*
-			 * Add reference to the group, so it`s possible to access from callbacks, example:
-			 * afterLoad : function() {
-			 *     this.title = 'Image ' + (this.index + 1) + ' of ' + this.group.length + (this.title ? ' - ' + this.title : '');
-			 * }
-			 */
-
-			coming.group  = F.group;
-			coming.index  = index;
-
-			// Give a chance for callback or helpers to update coming item (type, title, etc)
-			F.coming = coming;
-
-			if (false === F.trigger('beforeLoad')) {
-				F.coming = null;
-
-				return;
-			}
-
-			type = coming.type;
-			href = coming.href;
-
-			if (!type) {
-				F.coming = null;
-
-				//If we can not determine content type then drop silently or display next/prev item if looping through gallery
-				if (F.current && F.router && F.router !== 'jumpto') {
-					F.current.index = index;
-
-					return F[ F.router ]( F.direction );
-				}
-
-				return false;
-			}
-
-			F.isActive = true;
-
-			if (type === 'image' || type === 'swf') {
-				coming.autoHeight = coming.autoWidth = false;
-				coming.scrolling  = 'visible';
-			}
-
-			if (type === 'image') {
-				coming.aspectRatio = true;
-			}
-
-			if (type === 'iframe' && isTouch) {
-				coming.scrolling = 'scroll';
-			}
-
-			// Build the neccessary markup
-			coming.wrap = $(coming.tpl.wrap).addClass('fancybox-' + (isTouch ? 'mobile' : 'desktop') + ' fancybox-type-' + type + ' fancybox-tmp ' + coming.wrapCSS).appendTo( coming.parent || 'body' );
-
-			$.extend(coming, {
-				skin  : $('.fancybox-skin',  coming.wrap),
-				outer : $('.fancybox-outer', coming.wrap),
-				inner : $('.fancybox-inner', coming.wrap)
-			});
-
-			$.each(["Top", "Right", "Bottom", "Left"], function(i, v) {
-				coming.skin.css('padding' + v, getValue(coming.padding[ i ]));
-			});
-
-			F.trigger('onReady');
-
-			// Check before try to load; 'inline' and 'html' types need content, others - href
-			if (type === 'inline' || type === 'html') {
-				if (!coming.content || !coming.content.length) {
-					return F._error( 'content' );
-				}
-
-			} else if (!href) {
-				return F._error( 'href' );
-			}
-
-			if (type === 'image') {
-				F._loadImage();
-
-			} else if (type === 'ajax') {
-				F._loadAjax();
-
-			} else if (type === 'iframe') {
-				F._loadIframe();
-
-			} else {
-				F._afterLoad();
-			}
-		},
-
-		_error: function ( type ) {
-			$.extend(F.coming, {
-				type       : 'html',
-				autoWidth  : true,
-				autoHeight : true,
-				minWidth   : 0,
-				minHeight  : 0,
-				scrolling  : 'no',
-				hasError   : type,
-				content    : F.coming.tpl.error
-			});
-
-			F._afterLoad();
-		},
-
-		_loadImage: function () {
-			// Reset preload image so it is later possible to check "complete" property
-			var img = F.imgPreload = new Image();
-
-			img.onload = function () {
-				this.onload = this.onerror = null;
-
-				F.coming.width  = this.width / F.opts.pixelRatio;
-				F.coming.height = this.height / F.opts.pixelRatio;
-
-				F._afterLoad();
-			};
-
-			img.onerror = function () {
-				this.onload = this.onerror = null;
-
-				F._error( 'image' );
-			};
-
-			img.src = F.coming.href;
-
-			if (img.complete !== true) {
-				F.showLoading();
-			}
-		},
-
-		_loadAjax: function () {
-			var coming = F.coming;
-
-			F.showLoading();
-
-			F.ajaxLoad = $.ajax($.extend({}, coming.ajax, {
-				url: coming.href,
-				error: function (jqXHR, textStatus) {
-					if (F.coming && textStatus !== 'abort') {
-						F._error( 'ajax', jqXHR );
-
-					} else {
-						F.hideLoading();
-					}
-				},
-				success: function (data, textStatus) {
-					if (textStatus === 'success') {
-						coming.content = data;
-
-						F._afterLoad();
-					}
-				}
-			}));
-		},
-
-		_loadIframe: function() {
-			var coming = F.coming,
-				iframe = $(coming.tpl.iframe.replace(/\{rnd\}/g, new Date().getTime()))
-					.attr('scrolling', isTouch ? 'auto' : coming.iframe.scrolling)
-					.attr('src', coming.href);
-
-			// This helps IE
-			$(coming.wrap).bind('onReset', function () {
-				try {
-					$(this).find('iframe').hide().attr('src', '//about:blank').end().empty();
-				} catch (e) {}
-			});
-
-			if (coming.iframe.preload) {
-				F.showLoading();
-
-				iframe.one('load', function() {
-					$(this).data('ready', 1);
-
-					// iOS will lose scrolling if we resize
-					if (!isTouch) {
-						$(this).bind('load.fb', F.update);
-					}
-
-					// Without this trick:
-					//   - iframe won't scroll on iOS devices
-					//   - IE7 sometimes displays empty iframe
-					$(this).parents('.fancybox-wrap').width('100%').removeClass('fancybox-tmp').show();
-
-					F._afterLoad();
-				});
-			}
-
-			coming.content = iframe.appendTo( coming.inner );
-
-			if (!coming.iframe.preload) {
-				F._afterLoad();
-			}
-		},
-
-		_preloadImages: function() {
-			var group   = F.group,
-				current = F.current,
-				len     = group.length,
-				cnt     = current.preload ? Math.min(current.preload, len - 1) : 0,
-				item,
-				i;
-
-			for (i = 1; i <= cnt; i += 1) {
-				item = group[ (current.index + i ) % len ];
-
-				if (item.type === 'image' && item.href) {
-					new Image().src = item.href;
-				}
-			}
-		},
-
-		_afterLoad: function () {
-			var coming   = F.coming,
-				previous = F.current,
-				placeholder = 'fancybox-placeholder',
-				current,
-				content,
-				type,
-				scrolling,
-				href,
-				embed;
-
-			F.hideLoading();
-
-			if (!coming || F.isActive === false) {
-				return;
-			}
-
-			if (false === F.trigger('afterLoad', coming, previous)) {
-				coming.wrap.stop(true).trigger('onReset').remove();
-
-				F.coming = null;
-
-				return;
-			}
-
-			if (previous) {
-				F.trigger('beforeChange', previous);
-
-				previous.wrap.stop(true).removeClass('fancybox-opened')
-					.find('.fancybox-item, .fancybox-nav')
-					.remove();
-			}
-
-			F.unbindEvents();
-
-			current   = coming;
-			content   = coming.content;
-			type      = coming.type;
-			scrolling = coming.scrolling;
-
-			$.extend(F, {
-				wrap  : current.wrap,
-				skin  : current.skin,
-				outer : current.outer,
-				inner : current.inner,
-				current  : current,
-				previous : previous
-			});
-
-			href = current.href;
-
-			switch (type) {
-				case 'inline':
-				case 'ajax':
-				case 'html':
-					if (current.selector) {
-						content = $('<div>').html(content).find(current.selector);
-
-					} else if (isQuery(content)) {
-						if (!content.data(placeholder)) {
-							content.data(placeholder, $('<div class="' + placeholder + '"></div>').insertAfter( content ).hide() );
-						}
-
-						content = content.show().detach();
-
-						current.wrap.bind('onReset', function () {
-							if ($(this).find(content).length) {
-								content.hide().replaceAll( content.data(placeholder) ).data(placeholder, false);
-							}
-						});
-					}
-				break;
-
-				case 'image':
-					content = current.tpl.image.replace('{href}', href);
-				break;
-
-				case 'swf':
-					content = '<object id="fancybox-swf" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%"><param name="movie" value="' + href + '"></param>';
-					embed   = '';
-
-					$.each(current.swf, function(name, val) {
-						content += '<param name="' + name + '" value="' + val + '"></param>';
-						embed   += ' ' + name + '="' + val + '"';
-					});
-
-					content += '<embed src="' + href + '" type="application/x-shockwave-flash" width="100%" height="100%"' + embed + '></embed></object>';
-				break;
-			}
-
-			if (!(isQuery(content) && content.parent().is(current.inner))) {
-				current.inner.append( content );
-			}
-
-			// Give a chance for helpers or callbacks to update elements
-			F.trigger('beforeShow');
-
-			// Set scrolling before calculating dimensions
-			current.inner.css('overflow', scrolling === 'yes' ? 'scroll' : (scrolling === 'no' ? 'hidden' : scrolling));
-
-			// Set initial dimensions and start position
-			F._setDimension();
-
-			F.reposition();
-
-			F.isOpen = false;
-			F.coming = null;
-
-			F.bindEvents();
-
-			if (!F.isOpened) {
-				$('.fancybox-wrap').not( current.wrap ).stop(true).trigger('onReset').remove();
-
-			} else if (previous.prevMethod) {
-				F.transitions[ previous.prevMethod ]();
-			}
-
-			F.transitions[ F.isOpened ? current.nextMethod : current.openMethod ]();
-
-			F._preloadImages();
-		},
-
-		_setDimension: function () {
-			var viewport   = F.getViewport(),
-				steps      = 0,
-				canShrink  = false,
-				canExpand  = false,
-				wrap       = F.wrap,
-				skin       = F.skin,
-				inner      = F.inner,
-				current    = F.current,
-				width      = current.width,
-				height     = current.height,
-				minWidth   = current.minWidth,
-				minHeight  = current.minHeight,
-				maxWidth   = current.maxWidth,
-				maxHeight  = current.maxHeight,
-				scrolling  = current.scrolling,
-				scrollOut  = current.scrollOutside ? current.scrollbarWidth : 0,
-				margin     = current.margin,
-				wMargin    = getScalar(margin[1] + margin[3]),
-				hMargin    = getScalar(margin[0] + margin[2]),
-				wPadding,
-				hPadding,
-				wSpace,
-				hSpace,
-				origWidth,
-				origHeight,
-				origMaxWidth,
-				origMaxHeight,
-				ratio,
-				width_,
-				height_,
-				maxWidth_,
-				maxHeight_,
-				iframe,
-				body;
-
-			// Reset dimensions so we could re-check actual size
-			wrap.add(skin).add(inner).width('auto').height('auto').removeClass('fancybox-tmp');
-
-			wPadding = getScalar(skin.outerWidth(true)  - skin.width());
-			hPadding = getScalar(skin.outerHeight(true) - skin.height());
-
-			// Any space between content and viewport (margin, padding, border, title)
-			wSpace = wMargin + wPadding;
-			hSpace = hMargin + hPadding;
-
-			origWidth  = isPercentage(width)  ? (viewport.w - wSpace) * getScalar(width)  / 100 : width;
-			origHeight = isPercentage(height) ? (viewport.h - hSpace) * getScalar(height) / 100 : height;
-
-			if (current.type === 'iframe') {
-				iframe = current.content;
-
-				if (current.autoHeight && iframe.data('ready') === 1) {
-					try {
-						if (iframe[0].contentWindow.document.location) {
-							inner.width( origWidth ).height(9999);
-
-							body = iframe.contents().find('body');
-
-							if (scrollOut) {
-								body.css('overflow-x', 'hidden');
-							}
-
-							origHeight = body.outerHeight(true);
-						}
-
-					} catch (e) {}
-				}
-
-			} else if (current.autoWidth || current.autoHeight) {
-				inner.addClass( 'fancybox-tmp' );
-
-				// Set width or height in case we need to calculate only one dimension
-				if (!current.autoWidth) {
-					inner.width( origWidth );
-				}
-
-				if (!current.autoHeight) {
-					inner.height( origHeight );
-				}
-
-				if (current.autoWidth) {
-					origWidth = inner.width();
-				}
-
-				if (current.autoHeight) {
-					origHeight = inner.height();
-				}
-
-				inner.removeClass( 'fancybox-tmp' );
-			}
-
-			width  = getScalar( origWidth );
-			height = getScalar( origHeight );
-
-			ratio  = origWidth / origHeight;
-
-			// Calculations for the content
-			minWidth  = getScalar(isPercentage(minWidth) ? getScalar(minWidth, 'w') - wSpace : minWidth);
-			maxWidth  = getScalar(isPercentage(maxWidth) ? getScalar(maxWidth, 'w') - wSpace : maxWidth);
-
-			minHeight = getScalar(isPercentage(minHeight) ? getScalar(minHeight, 'h') - hSpace : minHeight);
-			maxHeight = getScalar(isPercentage(maxHeight) ? getScalar(maxHeight, 'h') - hSpace : maxHeight);
-
-			// These will be used to determine if wrap can fit in the viewport
-			origMaxWidth  = maxWidth;
-			origMaxHeight = maxHeight;
-
-			if (current.fitToView) {
-				maxWidth  = Math.min(viewport.w - wSpace, maxWidth);
-				maxHeight = Math.min(viewport.h - hSpace, maxHeight);
-			}
-
-			maxWidth_  = viewport.w - wMargin;
-			maxHeight_ = viewport.h - hMargin;
-
-			if (current.aspectRatio) {
-				if (width > maxWidth) {
-					width  = maxWidth;
-					height = getScalar(width / ratio);
-				}
-
-				if (height > maxHeight) {
-					height = maxHeight;
-					width  = getScalar(height * ratio);
-				}
-
-				if (width < minWidth) {
-					width  = minWidth;
-					height = getScalar(width / ratio);
-				}
-
-				if (height < minHeight) {
-					height = minHeight;
-					width  = getScalar(height * ratio);
-				}
-
-			} else {
-				width = Math.max(minWidth, Math.min(width, maxWidth));
-
-				if (current.autoHeight && current.type !== 'iframe') {
-					inner.width( width );
-
-					height = inner.height();
-				}
-
-				height = Math.max(minHeight, Math.min(height, maxHeight));
-			}
-
-			// Try to fit inside viewport (including the title)
-			if (current.fitToView) {
-				inner.width( width ).height( height );
-
-				wrap.width( width + wPadding );
-
-				// Real wrap dimensions
-				width_  = wrap.width();
-				height_ = wrap.height();
-
-				if (current.aspectRatio) {
-					while ((width_ > maxWidth_ || height_ > maxHeight_) && width > minWidth && height > minHeight) {
-						if (steps++ > 19) {
-							break;
-						}
-
-						height = Math.max(minHeight, Math.min(maxHeight, height - 10));
-						width  = getScalar(height * ratio);
-
-						if (width < minWidth) {
-							width  = minWidth;
-							height = getScalar(width / ratio);
-						}
-
-						if (width > maxWidth) {
-							width  = maxWidth;
-							height = getScalar(width / ratio);
-						}
-
-						inner.width( width ).height( height );
-
-						wrap.width( width + wPadding );
-
-						width_  = wrap.width();
-						height_ = wrap.height();
-					}
-
-				} else {
-					width  = Math.max(minWidth,  Math.min(width,  width  - (width_  - maxWidth_)));
-					height = Math.max(minHeight, Math.min(height, height - (height_ - maxHeight_)));
-				}
-			}
-
-			if (scrollOut && scrolling === 'auto' && height < origHeight && (width + wPadding + scrollOut) < maxWidth_) {
-				width += scrollOut;
-			}
-
-			inner.width( width ).height( height );
-
-			wrap.width( width + wPadding );
-
-			width_  = wrap.width();
-			height_ = wrap.height();
-
-			canShrink = (width_ > maxWidth_ || height_ > maxHeight_) && width > minWidth && height > minHeight;
-			canExpand = current.aspectRatio ? (width < origMaxWidth && height < origMaxHeight && width < origWidth && height < origHeight) : ((width < origMaxWidth || height < origMaxHeight) && (width < origWidth || height < origHeight));
-
-			$.extend(current, {
-				dim : {
-					width	: getValue( width_ ),
-					height	: getValue( height_ )
-				},
-				origWidth  : origWidth,
-				origHeight : origHeight,
-				canShrink  : canShrink,
-				canExpand  : canExpand,
-				wPadding   : wPadding,
-				hPadding   : hPadding,
-				wrapSpace  : height_ - skin.outerHeight(true),
-				skinSpace  : skin.height() - height
-			});
-
-			if (!iframe && current.autoHeight && height > minHeight && height < maxHeight && !canExpand) {
-				inner.height('auto');
-			}
-		},
-
-		_getPosition: function (onlyAbsolute) {
-			var current  = F.current,
-				viewport = F.getViewport(),
-				margin   = current.margin,
-				width    = F.wrap.width()  + margin[1] + margin[3],
-				height   = F.wrap.height() + margin[0] + margin[2],
-				rez      = {
-					position: 'absolute',
-					top  : margin[0],
-					left : margin[3]
-				};
-
-			if (current.autoCenter && current.fixed && !onlyAbsolute && height <= viewport.h && width <= viewport.w) {
-				rez.position = 'fixed';
-
-			} else if (!current.locked) {
-				rez.top  += viewport.y;
-				rez.left += viewport.x;
-			}
-
-			rez.top  = getValue(Math.max(rez.top,  rez.top  + ((viewport.h - height) * current.topRatio)));
-			rez.left = getValue(Math.max(rez.left, rez.left + ((viewport.w - width)  * current.leftRatio)));
-
-			return rez;
-		},
-
-		_afterZoomIn: function () {
-			var current = F.current;
-
-			if (!current) {
-				return;
-			}
-
-			F.isOpen = F.isOpened = true;
-
-			F.wrap.css('overflow', 'visible').addClass('fancybox-opened');
-
-			F.update();
-
-			// Assign a click event
-			if ( current.closeClick || (current.nextClick && F.group.length > 1) ) {
-				F.inner.css('cursor', 'pointer').bind('click.fb', function(e) {
-					if (!$(e.target).is('a') && !$(e.target).parent().is('a')) {
-						e.preventDefault();
-
-						F[ current.closeClick ? 'close' : 'next' ]();
-					}
-				});
-			}
-
-			// Create a close button
-			if (current.closeBtn) {
-				$(current.tpl.closeBtn).appendTo(F.skin).bind('click.fb', function(e) {
-					e.preventDefault();
-
-					F.close();
-				});
-			}
-
-			// Create navigation arrows
-			if (current.arrows && F.group.length > 1) {
-				if (current.loop || current.index > 0) {
-					$(current.tpl.prev).appendTo(F.outer).bind('click.fb', F.prev);
-				}
-
-				if (current.loop || current.index < F.group.length - 1) {
-					$(current.tpl.next).appendTo(F.outer).bind('click.fb', F.next);
-				}
-			}
-
-			F.trigger('afterShow');
-
-			// Stop the slideshow if this is the last item
-			if (!current.loop && current.index === current.group.length - 1) {
-				F.play( false );
-
-			} else if (F.opts.autoPlay && !F.player.isActive) {
-				F.opts.autoPlay = false;
-
-				F.play();
-			}
-		},
-
-		_afterZoomOut: function ( obj ) {
-			obj = obj || F.current;
-
-			$('.fancybox-wrap').trigger('onReset').remove();
-
-			$.extend(F, {
-				group  : {},
-				opts   : {},
-				router : false,
-				current   : null,
-				isActive  : false,
-				isOpened  : false,
-				isOpen    : false,
-				isClosing : false,
-				wrap   : null,
-				skin   : null,
-				outer  : null,
-				inner  : null
-			});
-
-			F.trigger('afterClose', obj);
-		}
-	});
-
-	/*
-	 *	Default transitions
-	 */
-
-	F.transitions = {
-		getOrigPosition: function () {
-			var current  = F.current,
-				element  = current.element,
-				orig     = current.orig,
-				pos      = {},
-				width    = 50,
-				height   = 50,
-				hPadding = current.hPadding,
-				wPadding = current.wPadding,
-				viewport = F.getViewport();
-
-			if (!orig && current.isDom && element.is(':visible')) {
-				orig = element.find('img:first');
-
-				if (!orig.length) {
-					orig = element;
-				}
-			}
-
-			if (isQuery(orig)) {
-				pos = orig.offset();
-
-				if (orig.is('img')) {
-					width  = orig.outerWidth();
-					height = orig.outerHeight();
-				}
-
-			} else {
-				pos.top  = viewport.y + (viewport.h - height) * current.topRatio;
-				pos.left = viewport.x + (viewport.w - width)  * current.leftRatio;
-			}
-
-			if (F.wrap.css('position') === 'fixed' || current.locked) {
-				pos.top  -= viewport.y;
-				pos.left -= viewport.x;
-			}
-
-			pos = {
-				top     : getValue(pos.top  - hPadding * current.topRatio),
-				left    : getValue(pos.left - wPadding * current.leftRatio),
-				width   : getValue(width  + wPadding),
-				height  : getValue(height + hPadding)
-			};
-
-			return pos;
-		},
-
-		step: function (now, fx) {
-			var ratio,
-				padding,
-				value,
-				prop       = fx.prop,
-				current    = F.current,
-				wrapSpace  = current.wrapSpace,
-				skinSpace  = current.skinSpace;
-
-			if (prop === 'width' || prop === 'height') {
-				ratio = fx.end === fx.start ? 1 : (now - fx.start) / (fx.end - fx.start);
-
-				if (F.isClosing) {
-					ratio = 1 - ratio;
-				}
-
-				padding = prop === 'width' ? current.wPadding : current.hPadding;
-				value   = now - padding;
-
-				F.skin[ prop ](  getScalar( prop === 'width' ?  value : value - (wrapSpace * ratio) ) );
-				F.inner[ prop ]( getScalar( prop === 'width' ?  value : value - (wrapSpace * ratio) - (skinSpace * ratio) ) );
-			}
-		},
-
-		zoomIn: function () {
-			var current  = F.current,
-				startPos = current.pos,
-				effect   = current.openEffect,
-				elastic  = effect === 'elastic',
-				endPos   = $.extend({opacity : 1}, startPos);
-
-			// Remove "position" property that breaks older IE
-			delete endPos.position;
-
-			if (elastic) {
-				startPos = this.getOrigPosition();
-
-				if (current.openOpacity) {
-					startPos.opacity = 0.1;
-				}
-
-			} else if (effect === 'fade') {
-				startPos.opacity = 0.1;
-			}
-
-			F.wrap.css(startPos).animate(endPos, {
-				duration : effect === 'none' ? 0 : current.openSpeed,
-				easing   : current.openEasing,
-				step     : elastic ? this.step : null,
-				complete : F._afterZoomIn
-			});
-		},
-
-		zoomOut: function () {
-			var current  = F.current,
-				effect   = current.closeEffect,
-				elastic  = effect === 'elastic',
-				endPos   = {opacity : 0.1};
-
-			if (elastic) {
-				endPos = this.getOrigPosition();
-
-				if (current.closeOpacity) {
-					endPos.opacity = 0.1;
-				}
-			}
-
-			F.wrap.animate(endPos, {
-				duration : effect === 'none' ? 0 : current.closeSpeed,
-				easing   : current.closeEasing,
-				step     : elastic ? this.step : null,
-				complete : F._afterZoomOut
-			});
-		},
-
-		changeIn: function () {
-			var current   = F.current,
-				effect    = current.nextEffect,
-				startPos  = current.pos,
-				endPos    = { opacity : 1 },
-				direction = F.direction,
-				distance  = 200,
-				field;
-
-			startPos.opacity = 0.1;
-
-			if (effect === 'elastic') {
-				field = direction === 'down' || direction === 'up' ? 'top' : 'left';
-
-				if (direction === 'down' || direction === 'right') {
-					startPos[ field ] = getValue(getScalar(startPos[ field ]) - distance);
-					endPos[ field ]   = '+=' + distance + 'px';
-
-				} else {
-					startPos[ field ] = getValue(getScalar(startPos[ field ]) + distance);
-					endPos[ field ]   = '-=' + distance + 'px';
-				}
-			}
-
-			// Workaround for http://bugs.jquery.com/ticket/12273
-			if (effect === 'none') {
-				F._afterZoomIn();
-
-			} else {
-				F.wrap.css(startPos).animate(endPos, {
-					duration : current.nextSpeed,
-					easing   : current.nextEasing,
-					complete : F._afterZoomIn
-				});
-			}
-		},
-
-		changeOut: function () {
-			var previous  = F.previous,
-				effect    = previous.prevEffect,
-				endPos    = { opacity : 0.1 },
-				direction = F.direction,
-				distance  = 200;
-
-			if (effect === 'elastic') {
-				endPos[ direction === 'down' || direction === 'up' ? 'top' : 'left' ] = ( direction === 'up' || direction === 'left' ? '-' : '+' ) + '=' + distance + 'px';
-			}
-
-			previous.wrap.animate(endPos, {
-				duration : effect === 'none' ? 0 : previous.prevSpeed,
-				easing   : previous.prevEasing,
-				complete : function () {
-					$(this).trigger('onReset').remove();
-				}
-			});
-		}
-	};
-
-	/*
-	 *	Overlay helper
-	 */
-
-	F.helpers.overlay = {
-		defaults : {
-			closeClick : true,      // if true, fancyBox will be closed when user clicks on the overlay
-			speedOut   : 200,       // duration of fadeOut animation
-			showEarly  : true,      // indicates if should be opened immediately or wait until the content is ready
-			css        : {},        // custom CSS properties
-			locked     : !isTouch,  // if true, the content will be locked into overlay
-			fixed      : true       // if false, the overlay CSS position property will not be set to "fixed"
-		},
-
-		overlay : null,      // current handle
-		fixed   : false,     // indicates if the overlay has position "fixed"
-		el      : $('html'), // element that contains "the lock"
-
-		// Public methods
-		create : function(opts) {
-			opts = $.extend({}, this.defaults, opts);
-
-			if (this.overlay) {
-				this.close();
-			}
-
-			this.overlay = $('<div class="fancybox-overlay"></div>').appendTo( F.coming ? F.coming.parent : opts.parent );
-			this.fixed   = false;
-
-			if (opts.fixed && F.defaults.fixed) {
-				this.overlay.addClass('fancybox-overlay-fixed');
-
-				this.fixed = true;
-			}
-		},
-
-		open : function(opts) {
-			var that = this;
-
-			opts = $.extend({}, this.defaults, opts);
-
-			if (this.overlay) {
-				this.overlay.unbind('.overlay').width('auto').height('auto');
-
-			} else {
-				this.create(opts);
-			}
-
-			if (!this.fixed) {
-				W.bind('resize.overlay', $.proxy( this.update, this) );
-
-				this.update();
-			}
-
-			if (opts.closeClick) {
-				this.overlay.bind('click.overlay', function(e) {
-					if ($(e.target).hasClass('fancybox-overlay')) {
-						if (F.isActive) {
-							F.close();
-						} else {
-							that.close();
-						}
-
-						return false;
-					}
-				});
-			}
-
-			this.overlay.css( opts.css ).show();
-		},
-
-		close : function() {
-			var scrollV, scrollH;
-
-			W.unbind('resize.overlay');
-
-			if (this.el.hasClass('fancybox-lock')) {
-				$('.fancybox-margin').removeClass('fancybox-margin');
-
-				scrollV = W.scrollTop();
-				scrollH = W.scrollLeft();
-
-				this.el.removeClass('fancybox-lock');
-
-				W.scrollTop( scrollV ).scrollLeft( scrollH );
-			}
-
-			$('.fancybox-overlay').remove().hide();
-
-			$.extend(this, {
-				overlay : null,
-				fixed   : false
-			});
-		},
-
-		// Private, callbacks
-
-		update : function () {
-			var width = '100%', offsetWidth;
-
-			// Reset width/height so it will not mess
-			this.overlay.width(width).height('100%');
-
-			// jQuery does not return reliable result for IE
-			if (IE) {
-				offsetWidth = Math.max(document.documentElement.offsetWidth, document.body.offsetWidth);
-
-				if (D.width() > offsetWidth) {
-					width = D.width();
-				}
-
-			} else if (D.width() > W.width()) {
-				width = D.width();
-			}
-
-			this.overlay.width(width).height(D.height());
-		},
-
-		// This is where we can manipulate DOM, because later it would cause iframes to reload
-		onReady : function (opts, obj) {
-			var overlay = this.overlay;
-
-			$('.fancybox-overlay').stop(true, true);
-
-			if (!overlay) {
-				this.create(opts);
-			}
-
-			if (opts.locked && this.fixed && obj.fixed) {
-				if (!overlay) {
-					this.margin = D.height() > W.height() ? $('html').css('margin-right').replace("px", "") : false;
-				}
-
-				obj.locked = this.overlay.append( obj.wrap );
-				obj.fixed  = false;
-			}
-
-			if (opts.showEarly === true) {
-				this.beforeShow.apply(this, arguments);
-			}
-		},
-
-		beforeShow : function(opts, obj) {
-			var scrollV, scrollH;
-
-			if (obj.locked) {
-				if (this.margin !== false) {
-					$('*').filter(function(){
-						return ($(this).css('position') === 'fixed' && !$(this).hasClass("fancybox-overlay") && !$(this).hasClass("fancybox-wrap") );
-					}).addClass('fancybox-margin');
-
-					this.el.addClass('fancybox-margin');
-				}
-
-				scrollV = W.scrollTop();
-				scrollH = W.scrollLeft();
-
-				this.el.addClass('fancybox-lock');
-
-				W.scrollTop( scrollV ).scrollLeft( scrollH );
-			}
-
-			this.open(opts);
-		},
-
-		onUpdate : function() {
-			if (!this.fixed) {
-				this.update();
-			}
-		},
-
-		afterClose: function (opts) {
-			// Remove overlay if exists and fancyBox is not opening
-			// (e.g., it is not being open using afterClose callback)
-			//if (this.overlay && !F.isActive) {
-			if (this.overlay && !F.coming) {
-				this.overlay.fadeOut(opts.speedOut, $.proxy( this.close, this ));
-			}
-		}
-	};
-
-	/*
-	 *	Title helper
-	 */
-
-	F.helpers.title = {
-		defaults : {
-			type     : 'float', // 'float', 'inside', 'outside' or 'over',
-			position : 'bottom' // 'top' or 'bottom'
-		},
-
-		beforeShow: function (opts) {
-			var current = F.current,
-				text    = current.title,
-				type    = opts.type,
-				title,
-				target;
-
-			if ($.isFunction(text)) {
-				text = text.call(current.element, current);
-			}
-
-			if (!isString(text) || $.trim(text) === '') {
-				return;
-			}
-
-			title = $('<div class="fancybox-title fancybox-title-' + type + '-wrap">' + text + '</div>');
-
-			switch (type) {
-				case 'inside':
-					target = F.skin;
-				break;
-
-				case 'outside':
-					target = F.wrap;
-				break;
-
-				case 'over':
-					target = F.inner;
-				break;
-
-				default: // 'float'
-					target = F.skin;
-
-					title.appendTo('body');
-
-					if (IE) {
-						title.width( title.width() );
-					}
-
-					title.wrapInner('<span class="child"></span>');
-
-					//Increase bottom margin so this title will also fit into viewport
-					F.current.margin[2] += Math.abs( getScalar(title.css('margin-bottom')) );
-				break;
-			}
-
-			title[ (opts.position === 'top' ? 'prependTo'  : 'appendTo') ](target);
-		}
-	};
-
-	// jQuery plugin initialization
-	$.fn.fancybox = function (options) {
-		var index,
-			that     = $(this),
-			selector = this.selector || '',
-			run      = function(e) {
-				var what = $(this).blur(), idx = index, relType, relVal;
-
-				if (!(e.ctrlKey || e.altKey || e.shiftKey || e.metaKey) && !what.is('.fancybox-wrap')) {
-					relType = options.groupAttr || 'data-fancybox-group';
-					relVal  = what.attr(relType);
-
-					if (!relVal) {
-						relType = 'rel';
-						relVal  = what.get(0)[ relType ];
-					}
-
-					if (relVal && relVal !== '' && relVal !== 'nofollow') {
-						what = selector.length ? $(selector) : that;
-						what = what.filter('[' + relType + '="' + relVal + '"]');
-						idx  = what.index(this);
-					}
-
-					options.index = idx;
-
-					// Stop an event from bubbling if everything is fine
-					if (F.open(what, options) !== false) {
-						e.preventDefault();
-					}
-				}
-			};
-
-		options = options || {};
-		index   = options.index || 0;
-
-		if (!selector || options.live === false) {
-			that.unbind('click.fb-start').bind('click.fb-start', run);
-
-		} else {
-			D.undelegate(selector, 'click.fb-start').delegate(selector + ":not('.fancybox-item, .fancybox-nav')", 'click.fb-start', run);
-		}
-
-		this.filter('[data-fancybox-start=1]').trigger('click');
-
-		return this;
-	};
-
-	// Tests that need a body at doc ready
-	D.ready(function() {
-		var w1, w2;
-
-		if ( $.scrollbarWidth === undefined ) {
-			// http://benalman.com/projects/jquery-misc-plugins/#scrollbarwidth
-			$.scrollbarWidth = function() {
-				var parent = $('<div style="width:50px;height:50px;overflow:auto"><div/></div>').appendTo('body'),
-					child  = parent.children(),
-					width  = child.innerWidth() - child.height( 99 ).innerWidth();
-
-				parent.remove();
-
-				return width;
-			};
-		}
-
-		if ( $.support.fixedPosition === undefined ) {
-			$.support.fixedPosition = (function() {
-				var elem  = $('<div style="position:fixed;top:20px;"></div>').appendTo('body'),
-					fixed = ( elem[0].offsetTop === 20 || elem[0].offsetTop === 15 );
-
-				elem.remove();
-
-				return fixed;
-			}());
-		}
-
-		$.extend(F.defaults, {
-			scrollbarWidth : $.scrollbarWidth(),
-			fixed  : $.support.fixedPosition,
-			parent : $('body')
-		});
-
-		//Get real width of page scroll-bar
-		w1 = $(window).width();
-
-		H.addClass('fancybox-lock-test');
-
-		w2 = $(window).width();
-
-		H.removeClass('fancybox-lock-test');
-
-		$("<style type='text/css'>.fancybox-margin{margin-right:" + (w2 - w1) + "px;}</style>").appendTo("head");
-	});
-
-}(window, document, jQuery));
\ No newline at end of file
diff --git a/gui/slick/js/lib/bootstrap-formhelpers-2.3.0.js b/gui/slick/js/lib/bootstrap-formhelpers-2.3.0.js
deleted file mode 100644
index 9d2da5a66f4b4f5a07e50cfb8889fd116f0d2127..0000000000000000000000000000000000000000
--- a/gui/slick/js/lib/bootstrap-formhelpers-2.3.0.js
+++ /dev/null
@@ -1,17922 +0,0 @@
-/**
-* bootstrap-formhelpers.js v2.3.0 by @vincentlamanna
-* Copyright 2013 Vincent Lamanna
-* http://www.apache.org/licenses/LICENSE-2.0
-*/
-if (!jQuery) { throw new Error("Bootstrap Form Helpers requires jQuery"); }
-
-/* ==========================================================
- * bootstrap-formhelpers-countries.en_US.js
- * https://github.com/vlamanna/BootstrapFormHelpers
- * ==========================================================
- * Copyright 2012 Vincent Lamanna
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================================================== */
- 
-var BFHCountriesList = {
-  'AF': 'Afghanistan',
-  'AL': 'Albania',
-  'DZ': 'Algeria',
-  'AS': 'American Samoa',
-  'AD': 'Andorra',
-  'AO': 'Angola',
-  'AI': 'Anguilla',
-  'AQ': 'Antarctica',
-  'AG': 'Antigua and Barbuda',
-  'AR': 'Argentina',
-  'AM': 'Armenia',
-  'AW': 'Aruba',
-  'AU': 'Australia',
-  'AT': 'Austria',
-  'AZ': 'Azerbaijan',
-  'BH': 'Bahrain',
-  'BD': 'Bangladesh',
-  'BB': 'Barbados',
-  'BY': 'Belarus',
-  'BE': 'Belgium',
-  'BZ': 'Belize',
-  'BJ': 'Benin',
-  'BM': 'Bermuda',
-  'BT': 'Bhutan',
-  'BO': 'Bolivia',
-  'BA': 'Bosnia and Herzegovina',
-  'BW': 'Botswana',
-  'BV': 'Bouvet Island',
-  'BR': 'Brazil',
-  'IO': 'British Indian Ocean Territory',
-  'VG': 'British Virgin Islands',
-  'BN': 'Brunei',
-  'BG': 'Bulgaria',
-  'BF': 'Burkina Faso',
-  'BI': 'Burundi',
-  'CI': 'Côte d\'Ivoire',
-  'KH': 'Cambodia',
-  'CM': 'Cameroon',
-  'CA': 'Canada',
-  'CV': 'Cape Verde',
-  'KY': 'Cayman Islands',
-  'CF': 'Central African Republic',
-  'TD': 'Chad',
-  'CL': 'Chile',
-  'CN': 'China',
-  'CX': 'Christmas Island',
-  'CC': 'Cocos (Keeling) Islands',
-  'CO': 'Colombia',
-  'KM': 'Comoros',
-  'CG': 'Congo',
-  'CK': 'Cook Islands',
-  'CR': 'Costa Rica',
-  'HR': 'Croatia',
-  'CU': 'Cuba',
-  'CY': 'Cyprus',
-  'CZ': 'Czech Republic',
-  'CD': 'Democratic Republic of the Congo',
-  'DK': 'Denmark',
-  'DJ': 'Djibouti',
-  'DM': 'Dominica',
-  'DO': 'Dominican Republic',
-  'TP': 'East Timor',
-  'EC': 'Ecuador',
-  'EG': 'Egypt',
-  'SV': 'El Salvador',
-  'GQ': 'Equatorial Guinea',
-  'ER': 'Eritrea',
-  'EE': 'Estonia',
-  'ET': 'Ethiopia',
-  'FO': 'Faeroe Islands',
-  'FK': 'Falkland Islands',
-  'FJ': 'Fiji',
-  'FI': 'Finland',
-  'MK': 'Former Yugoslav Republic of Macedonia',
-  'FR': 'France',
-  'FX': 'France, Metropolitan',
-  'GF': 'French Guiana',
-  'PF': 'French Polynesia',
-  'TF': 'French Southern Territories',
-  'GA': 'Gabon',
-  'GE': 'Georgia',
-  'DE': 'Germany',
-  'GH': 'Ghana',
-  'GI': 'Gibraltar',
-  'GR': 'Greece',
-  'GL': 'Greenland',
-  'GD': 'Grenada',
-  'GP': 'Guadeloupe',
-  'GU': 'Guam',
-  'GT': 'Guatemala',
-  'GN': 'Guinea',
-  'GW': 'Guinea-Bissau',
-  'GY': 'Guyana',
-  'HT': 'Haiti',
-  'HM': 'Heard and Mc Donald Islands',
-  'HN': 'Honduras',
-  'HK': 'Hong Kong',
-  'HU': 'Hungary',
-  'IS': 'Iceland',
-  'IN': 'India',
-  'ID': 'Indonesia',
-  'IR': 'Iran',
-  'IQ': 'Iraq',
-  'IE': 'Ireland',
-  'IL': 'Israel',
-  'IT': 'Italy',
-  'JM': 'Jamaica',
-  'JP': 'Japan',
-  'JO': 'Jordan',
-  'KZ': 'Kazakhstan',
-  'KE': 'Kenya',
-  'KI': 'Kiribati',
-  'KW': 'Kuwait',
-  'KG': 'Kyrgyzstan',
-  'LA': 'Laos',
-  'LV': 'Latvia',
-  'LB': 'Lebanon',
-  'LS': 'Lesotho',
-  'LR': 'Liberia',
-  'LY': 'Libya',
-  'LI': 'Liechtenstein',
-  'LT': 'Lithuania',
-  'LU': 'Luxembourg',
-  'MO': 'Macau',
-  'MG': 'Madagascar',
-  'MW': 'Malawi',
-  'MY': 'Malaysia',
-  'MV': 'Maldives',
-  'ML': 'Mali',
-  'MT': 'Malta',
-  'MH': 'Marshall Islands',
-  'MQ': 'Martinique',
-  'MR': 'Mauritania',
-  'MU': 'Mauritius',
-  'YT': 'Mayotte',
-  'MX': 'Mexico',
-  'FM': 'Micronesia',
-  'MD': 'Moldova',
-  'MC': 'Monaco',
-  'MN': 'Mongolia',
-  'ME': 'Montenegro',
-  'MS': 'Montserrat',
-  'MA': 'Morocco',
-  'MZ': 'Mozambique',
-  'MM': 'Myanmar',
-  'NA': 'Namibia',
-  'NR': 'Nauru',
-  'NP': 'Nepal',
-  'NL': 'Netherlands',
-  'AN': 'Netherlands Antilles',
-  'NC': 'New Caledonia',
-  'NZ': 'New Zealand',
-  'NI': 'Nicaragua',
-  'NE': 'Niger',
-  'NG': 'Nigeria',
-  'NU': 'Niue',
-  'NF': 'Norfolk Island',
-  'KP': 'North Korea',
-  'MP': 'Northern Marianas',
-  'NO': 'Norway',
-  'OM': 'Oman',
-  'PK': 'Pakistan',
-  'PW': 'Palau',
-  'PS': 'Palestine',
-  'PA': 'Panama',
-  'PG': 'Papua New Guinea',
-  'PY': 'Paraguay',
-  'PE': 'Peru',
-  'PH': 'Philippines',
-  'PN': 'Pitcairn Islands',
-  'PL': 'Poland',
-  'PT': 'Portugal',
-  'PR': 'Puerto Rico',
-  'QA': 'Qatar',
-  'RE': 'Reunion',
-  'RO': 'Romania',
-  'RU': 'Russia',
-  'RW': 'Rwanda',
-  'ST': 'São Tomé and Príncipe',
-  'SH': 'Saint Helena',
-  'PM': 'St. Pierre and Miquelon',
-  'KN': 'Saint Kitts and Nevis',
-  'LC': 'Saint Lucia',
-  'VC': 'Saint Vincent and the Grenadines',
-  'WS': 'Samoa',
-  'SM': 'San Marino',
-  'SA': 'Saudi Arabia',
-  'SN': 'Senegal',
-  'RS': 'Serbia',
-  'SC': 'Seychelles',
-  'SL': 'Sierra Leone',
-  'SG': 'Singapore',
-  'SK': 'Slovakia',
-  'SI': 'Slovenia',
-  'SB': 'Solomon Islands',
-  'SO': 'Somalia',
-  'ZA': 'South Africa',
-  'GS': 'South Georgia and the South Sandwich Islands',
-  'KR': 'South Korea',
-  'ES': 'Spain',
-  'LK': 'Sri Lanka',
-  'SD': 'Sudan',
-  'SR': 'Suriname',
-  'SJ': 'Svalbard and Jan Mayen Islands',
-  'SZ': 'Swaziland',
-  'SE': 'Sweden',
-  'CH': 'Switzerland',
-  'SY': 'Syria',
-  'TW': 'Taiwan',
-  'TJ': 'Tajikistan',
-  'TZ': 'Tanzania',
-  'TH': 'Thailand',
-  'BS': 'The Bahamas',
-  'GM': 'The Gambia',
-  'TG': 'Togo',
-  'TK': 'Tokelau',
-  'TO': 'Tonga',
-  'TT': 'Trinidad and Tobago',
-  'TN': 'Tunisia',
-  'TR': 'Turkey',
-  'TM': 'Turkmenistan',
-  'TC': 'Turks and Caicos Islands',
-  'TV': 'Tuvalu',
-  'VI': 'US Virgin Islands',
-  'UG': 'Uganda',
-  'UA': 'Ukraine',
-  'AE': 'United Arab Emirates',
-  'GB': 'United Kingdom',
-  'US': 'United States',
-  'UM': 'United States Minor Outlying Islands',
-  'UY': 'Uruguay',
-  'UZ': 'Uzbekistan',
-  'VU': 'Vanuatu',
-  'VA': 'Vatican City',
-  'VE': 'Venezuela',
-  'VN': 'Vietnam',
-  'WF': 'Wallis and Futuna Islands',
-  'EH': 'Western Sahara',
-  'YE': 'Yemen',
-  'ZM': 'Zambia',
-  'ZW': 'Zimbabwe'
-};
-
- /* ==========================================================
- * bootstrap-formhelpers-currencies.en_US.js
- * https://github.com/vlamanna/BootstrapFormHelpers
- * ==========================================================
- * Copyright 2013 Vincent Lamanna
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================================================== */
- 
-var BFHCurrenciesList = {
-  'AED':{'label':'United Arab Emirates dirham','currencyflag':'','symbol':'د.إ'},
-  'AFN':{'label':'Afghan afghani','currencyflag':'','symbol':'؋'},
-  'ALL':{'label':'Albanian lek','currencyflag':'','symbol':'L'},
-  'AMD':{'label':'Armenian dram','currencyflag':'','symbol':'դր'},
-  'AOA':{'label':'Angolan kwanza','currencyflag':'','symbol':'Kz'},
-  'ARS':{'label':'Argentine peso','currencyflag':'','symbol':'$'},
-  'AUD':{'label':'Australian dollar','currencyflag':'AUD','symbol':'$'},
-  'AWG':{'label':'Aruban florin','currencyflag':'','symbol':'ƒ'},
-  'AZN':{'label':'Azerbaijani manat','currencyflag':'','symbol':''},
-  'BAM':{'label':'Bosnia and Herzegovina convertible mark','currencyflag':'','symbol':'KM'},
-  'BBD':{'label':'Barbadian dollar','currencyflag':'','symbol':'$'},
-  'BDT':{'label':'Bangladeshi taka','currencyflag':'','symbol':'৳'},
-  'BGN':{'label':'Bulgarian lev','currencyflag':'','symbol':'лв'},
-  'BHD':{'label':'Bahraini dinar','currencyflag':'','symbol':'.د.ب'},
-  'BIF':{'label':'Burundian franc','currencyflag':'','symbol':'Fr'},
-  'BMD':{'label':'Bermudian dollar','currencyflag':'','symbol':'$'},
-  'BND':{'label':'Brunei dollar','currencyflag':'','symbol':'$'},
-  'BOB':{'label':'Bolivian boliviano','currencyflag':'','symbol':'Bs'},
-  'BRL':{'label':'Brazilian real','currencyflag':'','symbol':'R$'},
-  'BSD':{'label':'Bahamian dollar','currencyflag':'','symbol':'$'},
-  'BTN':{'label':'Bhutanese ngultrum','currencyflag':'','symbol':'Nu'},
-  'BWP':{'label':'Botswana pula','currencyflag':'','symbol':'P'},
-  'BYR':{'label':'Belarusian ruble','currencyflag':'','symbol':'Br'},
-  'BZD':{'label':'Belize dollar','currencyflag':'','symbol':'$'},
-  'CAD':{'label':'Canadian dollar','currencyflag':'','symbol':'$'},
-  'CDF':{'label':'Congolese franc','currencyflag':'','symbol':'Fr'},
-  'CHF':{'label':'Swiss franc','currencyflag':'CHF','symbol':'Fr'},
-  'CLP':{'label':'Chilean peso','currencyflag':'','symbol':'$'},
-  'CNY':{'label':'Chinese yuan','currencyflag':'','symbol':'¥'},
-  'COP':{'label':'Colombian peso','currencyflag':'','symbol':'$'},
-  'CRC':{'label':'Costa Rican colón','currencyflag':'','symbol':'₡'},
-  'CUP':{'label':'Cuban convertible peso','currencyflag':'','symbol':'$'},
-  'CVE':{'label':'Cape Verdean escudo','currencyflag':'','symbol':'$'},
-  'CZK':{'label':'Czech koruna','currencyflag':'','symbol':'Kč'},
-  'DJF':{'label':'Djiboutian franc','currencyflag':'','symbol':'Fr'},
-  'DKK':{'label':'Danish krone','currencyflag':'DKK','symbol':'kr'},
-  'DOP':{'label':'Dominican peso','currencyflag':'','symbol':'$'},
-  'DZD':{'label':'Algerian dinar','currencyflag':'','symbol':'د.ج'},
-  'EGP':{'label':'Egyptian pound','currencyflag':'','symbol':'ج.م'},
-  'ERN':{'label':'Eritrean nakfa','currencyflag':'','symbol':'Nfk'},
-  'ETB':{'label':'Ethiopian birr','currencyflag':'','symbol':'Br'},
-  'EUR':{'label':'Euro','currencyflag':'EUR','symbol':'€'},
-  'FJD':{'label':'Fijian dollar','currencyflag':'','symbol':'$'},
-  'FKP':{'label':'Falkland Islands pound','currencyflag':'','symbol':'£'},
-  'GBP':{'label':'British pound','currencyflag':'','symbol':'£'},
-  'GEL':{'label':'Georgian lari','currencyflag':'','symbol':'ლ'},
-  'GHS':{'label':'Ghana cedi','currencyflag':'','symbol':'₵'},
-  'GMD':{'label':'Gambian dalasi','currencyflag':'','symbol':'D'},
-  'GNF':{'label':'Guinean franc','currencyflag':'','symbol':'Fr'},
-  'GTQ':{'label':'Guatemalan quetzal','currencyflag':'','symbol':'Q'},
-  'GYD':{'label':'Guyanese dollar','currencyflag':'','symbol':'$'},
-  'HKD':{'label':'Hong Kong dollar','currencyflag':'','symbol':'$'},
-  'HNL':{'label':'Honduran lempira','currencyflag':'','symbol':'L'},
-  'HRK':{'label':'Croatian kuna','currencyflag':'','symbol':'kn'},
-  'HTG':{'label':'Haitian gourde','currencyflag':'','symbol':'G'},
-  'HUF':{'label':'Hungarian forint','currencyflag':'','symbol':'Ft'},
-  'IDR':{'label':'Indonesian rupiah','currencyflag':'','symbol':'Rp'},
-  'ILS':{'label':'Israeli new shekel','currencyflag':'','symbol':'₪'},
-  'IMP':{'label':'Manx pound','currencyflag':'','symbol':'£'},
-  'INR':{'label':'Indian rupee','currencyflag':'','symbol':''},
-  'IQD':{'label':'Iraqi dinar','currencyflag':'','symbol':'ع.د'},
-  'IRR':{'label':'Iranian rial','currencyflag':'','symbol':'﷼'},
-  'ISK':{'label':'Icelandic króna','currencyflag':'','symbol':'kr'},
-  'JEP':{'label':'Jersey pound','currencyflag':'','symbol':'£'},
-  'JMD':{'label':'Jamaican dollar','currencyflag':'','symbol':'$'},
-  'JOD':{'label':'Jordanian dinar','currencyflag':'','symbol':'د.ا'},
-  'JPY':{'label':'Japanese yen','currencyflag':'','symbol':'¥'},
-  'KES':{'label':'Kenyan shilling','currencyflag':'','symbol':'Sh'},
-  'KGS':{'label':'Kyrgyzstani som','currencyflag':'','symbol':'лв'},
-  'KHR':{'label':'Cambodian riel','currencyflag':'','symbol':'៛'},
-  'KMF':{'label':'Comorian franc','currencyflag':'','symbol':'Fr'},
-  'KPW':{'label':'North Korean won','currencyflag':'','symbol':'₩'},
-  'KRW':{'label':'South Korean won','currencyflag':'','symbol':'₩'},
-  'KWD':{'label':'Kuwaiti dinar','currencyflag':'','symbol':'د.ك'},
-  'KYD':{'label':'Cayman Islands dollar','currencyflag':'','symbol':'$'},
-  'KZT':{'label':'Kazakhstani tenge','currencyflag':'','symbol':'₸'},
-  'LAK':{'label':'Lao kip','currencyflag':'','symbol':'₭'},
-  'LBP':{'label':'Lebanese pound','currencyflag':'','symbol':'ل.ل'},
-  'LKR':{'label':'Sri Lankan rupee','currencyflag':'','symbol':'Rs'},
-  'LRD':{'label':'Liberian dollar','currencyflag':'','symbol':'$'},
-  'LSL':{'label':'Lesotho loti','currencyflag':'','symbol':'L'},
-  'LTL':{'label':'Lithuanian litas','currencyflag':'','symbol':'Lt'},
-  'LVL':{'label':'Latvian lats','currencyflag':'','symbol':'Ls'},
-  'LYD':{'label':'Libyan dinar','currencyflag':'','symbol':'ل.د'},
-  'MAD':{'label':'Moroccan dirham','currencyflag':'','symbol':'د.م.'},
-  'MDL':{'label':'Moldovan leu','currencyflag':'','symbol':'L'},
-  'MGA':{'label':'Malagasy ariary','currencyflag':'','symbol':'Ar'},
-  'MKD':{'label':'Macedonian denar','currencyflag':'','symbol':'ден'},
-  'MMK':{'label':'Burmese kyat','currencyflag':'','symbol':'Ks'},
-  'MNT':{'label':'Mongolian tögrög','currencyflag':'','symbol':'₮'},
-  'MOP':{'label':'Macanese pataca','currencyflag':'','symbol':'P'},
-  'MRO':{'label':'Mauritanian ouguiya','currencyflag':'','symbol':'UM'},
-  'MUR':{'label':'Mauritian rupee','currencyflag':'','symbol':'Rs'},
-  'MVR':{'label':'Maldivian rufiyaa','currencyflag':'','symbol':'.ރ'},
-  'MWK':{'label':'Malawian kwacha','currencyflag':'','symbol':'MK'},
-  'MXN':{'label':'Mexican peso','currencyflag':'','symbol':'$'},
-  'MYR':{'label':'Malaysian ringgit','currencyflag':'','symbol':'MR'},
-  'MZN':{'label':'Mozambican metical','currencyflag':'','symbol':'MT'},
-  'NAD':{'label':'Namibian dollar','currencyflag':'','symbol':'$'},
-  'NGN':{'label':'Nigerian naira','currencyflag':'','symbol':'₦'},
-  'NIO':{'label':'Nicaraguan córdoba','currencyflag':'','symbol':'C$'},
-  'NOK':{'label':'Norwegian krone','currencyflag':'','symbol':'kr'},
-  'NPR':{'label':'Nepalese rupee','currencyflag':'','symbol':'Rs'},
-  'NZD':{'label':'New Zealand dollar','currencyflag':'','symbol':'$'},
-  'OMR':{'label':'Omani rial','currencyflag':'','symbol':'ر.ع.'},
-  'PAB':{'label':'Panamanian balboa','currencyflag':'','symbol':'B/.'},
-  'PEN':{'label':'Peruvian nuevo sol','currencyflag':'','symbol':'S/.'},
-  'PGK':{'label':'Papua New Guinean kina','currencyflag':'','symbol':'K'},
-  'PHP':{'label':'Philippine peso','currencyflag':'','symbol':'₱'},
-  'PKR':{'label':'Pakistani rupee','currencyflag':'','symbol':'Rs'},
-  'PLN':{'label':'Polish złoty','currencyflag':'','symbol':'zł'},
-  'PRB':{'label':'Transnistrian ruble','currencyflag':'','symbol':'р.'},
-  'PYG':{'label':'Paraguayan guaraní','currencyflag':'','symbol':'₲'},
-  'QAR':{'label':'Qatari riyal','currencyflag':'','symbol':'ر.ق'},
-  'RON':{'label':'Romanian leu','currencyflag':'','symbol':'L'},
-  'RSD':{'label':'Serbian dinar','currencyflag':'','symbol':'дин'},
-  'RUB':{'label':'Russian ruble','currencyflag':'','symbol':'руб.'},
-  'RWF':{'label':'Rwandan franc','currencyflag':'','symbol':'Fr'},
-  'SAR':{'label':'Saudi riyal','currencyflag':'','symbol':'ر.س'},
-  'SBD':{'label':'Solomon Islands dollar','currencyflag':'','symbol':'$'},
-  'SCR':{'label':'Seychellois rupee','currencyflag':'','symbol':'Rs'},
-  'SDG':{'label':'Singapore dollar','currencyflag':'','symbol':'$'},
-  'SEK':{'label':'Swedish krona','currencyflag':'','symbol':'kr'},
-  'SGD':{'label':'Singapore dollar','currencyflag':'','symbol':'$'},
-  'SHP':{'label':'Saint Helena pound','currencyflag':'','symbol':'£'},
-  'SLL':{'label':'Sierra Leonean leone','currencyflag':'','symbol':'Le'},
-  'SOS':{'label':'Somali shilling','currencyflag':'','symbol':'Sh'},
-  'SRD':{'label':'Surinamese dollar','currencyflag':'','symbol':'$'},
-  'SSP':{'label':'South Sudanese pound','currencyflag':'','symbol':'£'},
-  'STD':{'label':'São Tomé and Príncipe dobra','currencyflag':'','symbol':'Db'},
-  'SVC':{'label':'Salvadoran colón','currencyflag':'','symbol':'₡'},
-  'SYP':{'label':'Syrian pound','currencyflag':'','symbol':'£'},
-  'SZL':{'label':'Swazi lilangeni','currencyflag':'','symbol':'L'},
-  'THB':{'label':'Thai baht','currencyflag':'','symbol':'฿'},
-  'TJS':{'label':'Tajikistani somoni','currencyflag':'','symbol':'SM'},
-  'TMT':{'label':'Turkmenistan manat','currencyflag':'','symbol':'m'},
-  'TND':{'label':'Tunisian dinar','currencyflag':'','symbol':'د.ت'},
-  'TOP':{'label':'Tongan paʻanga','currencyflag':'','symbol':'T$'},
-  'TRY':{'label':'Turkish lira','currencyflag':'','symbol':'&#8378;'},
-  'TTD':{'label':'Trinidad and Tobago dollar','currencyflag':'','symbol':'$'},
-  'TWD':{'label':'New Taiwan dollar','currencyflag':'','symbol':'$'},
-  'TZS':{'label':'Tanzanian shilling','currencyflag':'','symbol':'Sh'},
-  'UAH':{'label':'Ukrainian hryvnia','currencyflag':'','symbol':'₴'},
-  'UGX':{'label':'Ugandan shilling','currencyflag':'','symbol':'Sh'},
-  'USD':{'label':'United States dollar','currencyflag':'','symbol':'$'},
-  'UYU':{'label':'Uruguayan peso','currencyflag':'','symbol':'$'},
-  'UZS':{'label':'Uzbekistani som','currencyflag':'','symbol':'лв'},
-  'VEF':{'label':'Venezuelan bolívar','currencyflag':'','symbol':'Bs F'},
-  'VND':{'label':'Vietnamese đồng','currencyflag':'','symbol':'₫'},
-  'VUV':{'label':'Vanuatu vatu','currencyflag':'','symbol':'Vt'},
-  'WST':{'label':'Samoan tālā','currencyflag':'','symbol':'T'},
-  'XAF':{'label':'Central African CFA franc','currencyflag':'XAF','symbol':'Fr'},
-  'XCD':{'label':'East Caribbean dollar','currencyflag':'XCD','symbol':'$'},
-  'XOF':{'label':'West African CFA franc','currencyflag':'XOF','symbol':'Fr'},
-  'XPF':{'label':'CFP franc','currencyflag':'XPF','symbol':'Fr'},
-  'YER':{'label':'Yemeni rial','currencyflag':'','symbol':'﷼'},
-  'ZAR':{'label':'South African rand','currencyflag':'ZAR','symbol':'R'},
-  'ZMW':{'label':'Zambian kwacha','currencyflag':'','symbol':'ZK'},
-  'ZWL':{'label':'Zimbabwean dollar','currencyflag':'','symbol':'$'}
-};
-
-/* ==========================================================
- * bootstrap-formhelpers-datepicker.en_US.js
- * https://github.com/vlamanna/BootstrapFormHelpers
- * ==========================================================
- * Copyright 2012 Vincent Lamanna
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================================================== */
- 
-var BFHMonthsList = [
-  'January',
-  'February',
-  'March',
-  'April',
-  'May',
-  'June',
-  'July',
-  'August',
-  'September',
-  'October',
-  'November',
-  'December'
-];
- 
-var BFHDaysList = [
-  'SUN',
-  'MON',
-  'TUE',
-  'WED',
-  'THU',
-  'FRI',
-  'SAT'
-];
- 
-var BFHDayOfWeekStart = 0;
-
-/* ==========================================================
- * bootstrap-formhelpers-fonts.en_US.js
- * https://github.com/vlamanna/BootstrapFormHelpers
- * ==========================================================
- * Copyright 2012 Vincent Lamanna
- *
- * Licensed under the Apache License, Version 2.0 (the "License")
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================================================== */
- 
-var BFHFontsList = {
-  'Andale Mono': '"Andale Mono", AndaleMono, monospace',
-  'Arial': 'Arial, "Helvetica Neue", Helvetica, sans-serif',
-  'Arial Black': '"Arial Black", "Arial Bold", Gadget, sans-serif',
-  'Arial Narrow': '"Arial Narrow", Arial, sans-serif',
-  'Arial Rounded MT Bold': '"Arial Rounded MT Bold", "Helvetica Rounded", Arial, sans-serif',
-  'Avant Garde': '"Avant Garde", Avantgarde, "Century Gothic", CenturyGothic, "AppleGothic", sans-serif',
-  'Baskerville': 'Baskerville, "Baskerville Old Face", "Hoefler Text", Garamond, "Times New Roman", serif',
-  'Big Caslon': '"Big Caslon", "Book Antiqua", "Palatino Linotype", Georgia, serif',
-  'Bodoni MT': '"Bodoni MT", Didot, "Didot LT STD", "Hoefler Text", Garamond, "Times New Roman", serif',
-  'Book Antiqua': '"Book Antiqua", Palatino, "Palatino Linotype", "Palatino LT STD", Georgia, serif',
-  'Brush Script MT': '"Brush Script MT", cursive',
-  'Calibri': 'Calibri, Candara, Segoe, "Segoe UI", Optima, Arial, sans-serif',
-  'Calisto MT': '"Calisto MT", "Bookman Old Style", Bookman, "Goudy Old Style", Garamond, "Hoefler Text", "Bitstream Charter", Georgia, serif',
-  'Cambrio': 'Cambria, Georgia, serif',
-  'Candara': 'Candara, Calibri, Segoe, "Segoe UI", Optima, Arial, sans-serif',
-  'Century Gothic': '"Century Gothic", CenturyGothic, AppleGothic, sans-serif',
-  'Consolas': 'Consolas, monaco, monospace',
-  'Copperplate': 'Copperplate, "Copperplate Gothic Light", fantasy',
-  'Courier New': '"Courier New", Courier, "Lucida Sans Typewriter", "Lucida Typewriter", monospace',
-  'Didot': 'Didot, "Didot LT STD", "Hoefler Text", Garamond, "Times New Roman", serif',
-  'Franklin Gothic Medium': '"Franklin Gothic Medium", "Franklin Gothic", "ITC Franklin Gothic", Arial, sans-serif',
-  'Futura': 'Futura, "Trebuchet MS", Arial, sans-serif',
-  'Garamond': 'Garamond, Baskerville, "Baskerville Old Face", "Hoefler Text", "Times New Roman", serif',
-  'Geneva': 'Geneva, Tahoma, Verdana, sans-serif',
-  'Georgia': 'Georgia, Times, "Times New Roman", serif',
-  'Gill Sans': '"Gill Sans", "Gill Sans MT", Calibri, sans-serif',
-  'Goudy Old Style': '"Goudy Old Style", Garamond, "Big Caslon", "Times New Roman", serif',
-  'Helvetica': '"Helvetica Neue", Helvetica, Arial, sans-serif',
-  'Hoefler Text': '"Hoefler Text", "Baskerville old face", Garamond, "Times New Roman", serif',
-  'Impact': 'Impact, Haettenschweiler, "Franklin Gothic Bold", Charcoal, "Helvetica Inserat", "Bitstream Vera Sans Bold", "Arial Black", sans serif',
-  'Lucida Bright': '"Lucida Bright", Georgia, serif',
-  'Lucida Console': '"Lucida Console", "Lucida Sans Typewriter", Monaco, "Bitstream Vera Sans Mono", monospace',
-  'Lucida Sans Typewriter': '"Lucida Sans Typewriter", "Lucida Console", Monaco, "Bitstream Vera Sans Mono", monospace',
-  'Lucida Grande': '"Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Verdana, sans-serif',
-  'Monaco': 'Monaco, Consolas, "Lucida Console", monospace',
-  'Optima': 'Optima, Segoe, "Segoe UI", Candara, Calibri, Arial, sans-serif',
-  'Palatino': 'Palatino, "Palatino Linotype", "Palatino LT STD", "Book Antiqua", Georgia, serif',
-  'Papyrus': 'Papyrus, fantasy',
-  'Perpetua': 'Perpetua, Baskerville, "Big Caslon", "Palatino Linotype", Palatino, "URW Palladio L", "Nimbus Roman No9 L", serif',
-  'Rockwell': 'Rockwell, "Courier Bold", Courier, Georgia, Times, "Times New Roman", serif',
-  'Rockwell Extra Bold': '"Rockwell Extra Bold", "Rockwell Bold", monospace',
-  'Segoe UI': '"Segoe UI", Frutiger, "Frutiger Linotype',
-  'Tahoma': 'Tahoma, Verdana, Segoe, sans-serif',
-  'Times New Roman': 'TimesNewRoman, "Times New Roman", Times, Baskerville, Georgia, serif',
-  'Trebuchet MS': '"Trebuchet MS", "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Tahoma, sans-serif',
-  'Verdana': 'Verdana, Geneva, sans-serif'
-};
-
-/* ==========================================================
- * bootstrap-formhelpers-fontsizes.en_US.js
- * https://github.com/vlamanna/BootstrapFormHelpers
- * ==========================================================
- * Copyright 2012 Vincent Lamanna
- *
- * Licensed under the Apache License, Version 2.0 (the "License")
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================================================== */
- 
-var BFHFontSizesList = {
-  '8': '8px',
-  '9': '9px',
-  '10': '10px',
-  '11': '11px',
-  '12': '12px',
-  '14': '14px',
-  '16': '16px',
-  '18': '18px',
-  '20': '20px',
-  '24': '24px',
-  '28': '28px',
-  '36': '36px',
-  '48': '48px'
-};
-
-/* ==========================================================
- * bootstrap-formhelpers-googlefonts.en_US.js
- * https://github.com/vlamanna/BootstrapFormHelpers
- * ==========================================================
- * Copyright 2012 Vincent Lamanna
- * contributed by Aaron Collegeman, Squidoo, 2012
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================================================== */
-
-var BFHGoogleFontsList = {
-  'kind': 'webfonts#webfontList',
-  'items': [
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'ABeeZee',
-      'variants': [
-        'regular',
-        'italic'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Abel',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Abril Fatface',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Aclonica',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Acme',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Actor',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Adamina',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Advent Pro',
-      'variants': [
-        '100',
-        '200',
-        '300',
-        'regular',
-        '500',
-        '600',
-        '700'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin',
-        'greek'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Aguafina Script',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Akronim',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Aladin',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Aldrich',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Alegreya',
-      'variants': [
-        'regular',
-        'italic',
-        '700',
-        '700italic',
-        '900',
-        '900italic'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Alegreya SC',
-      'variants': [
-        'regular',
-        'italic',
-        '700',
-        '700italic',
-        '900',
-        '900italic'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Alex Brush',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Alfa Slab One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Alice',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Alike',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Alike Angular',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Allan',
-      'variants': [
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Allerta',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Allerta Stencil',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Allura',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Almendra',
-      'variants': [
-        'regular',
-        'italic',
-        '700',
-        '700italic'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Almendra Display',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Almendra SC',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Amarante',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Amaranth',
-      'variants': [
-        'regular',
-        'italic',
-        '700',
-        '700italic'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Amatic SC',
-      'variants': [
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Amethysta',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Anaheim',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Andada',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Andika',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'cyrillic',
-        'latin-ext',
-        'latin',
-        'cyrillic-ext'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Angkor',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'khmer'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Annie Use Your Telescope',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Anonymous Pro',
-      'variants': [
-        'regular',
-        'italic',
-        '700',
-        '700italic'
-      ],
-      'subsets': [
-        'cyrillic',
-        'greek-ext',
-        'latin-ext',
-        'latin',
-        'greek',
-        'cyrillic-ext'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Antic',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Antic Didone',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Antic Slab',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Anton',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Arapey',
-      'variants': [
-        'regular',
-        'italic'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Arbutus',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Arbutus Slab',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Architects Daughter',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Archivo Black',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Archivo Narrow',
-      'variants': [
-        'regular',
-        'italic',
-        '700',
-        '700italic'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Arimo',
-      'variants': [
-        'regular',
-        'italic',
-        '700',
-        '700italic'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Arizonia',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Armata',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Artifika',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Arvo',
-      'variants': [
-        'regular',
-        'italic',
-        '700',
-        '700italic'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Asap',
-      'variants': [
-        'regular',
-        'italic',
-        '700',
-        '700italic'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Asset',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Astloch',
-      'variants': [
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Asul',
-      'variants': [
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Atomic Age',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Aubrey',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Audiowide',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Autour One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Average',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Average Sans',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Averia Gruesa Libre',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Averia Libre',
-      'variants': [
-        '300',
-        '300italic',
-        'regular',
-        'italic',
-        '700',
-        '700italic'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Averia Sans Libre',
-      'variants': [
-        '300',
-        '300italic',
-        'regular',
-        'italic',
-        '700',
-        '700italic'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Averia Serif Libre',
-      'variants': [
-        '300',
-        '300italic',
-        'regular',
-        'italic',
-        '700',
-        '700italic'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Bad Script',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'cyrillic',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Balthazar',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Bangers',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Basic',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Battambang',
-      'variants': [
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'khmer'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Baumans',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Bayon',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'khmer'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Belgrano',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Belleza',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'BenchNine',
-      'variants': [
-        '300',
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Bentham',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Berkshire Swash',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Bevan',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Bigelow Rules',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Bigshot One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Bilbo',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Bilbo Swash Caps',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Bitter',
-      'variants': [
-        'regular',
-        'italic',
-        '700'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Black Ops One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Bokor',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'khmer'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Bonbon',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Boogaloo',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Bowlby One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Bowlby One SC',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Brawler',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Bree Serif',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Bubblegum Sans',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Bubbler One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Buda',
-      'variants': [
-        '300'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Buenard',
-      'variants': [
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Butcherman',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Butterfly Kids',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Cabin',
-      'variants': [
-        'regular',
-        'italic',
-        '500',
-        '500italic',
-        '600',
-        '600italic',
-        '700',
-        '700italic'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Cabin Condensed',
-      'variants': [
-        'regular',
-        '500',
-        '600',
-        '700'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Cabin Sketch',
-      'variants': [
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Caesar Dressing',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Cagliostro',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Calligraffitti',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Cambo',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Candal',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Cantarell',
-      'variants': [
-        'regular',
-        'italic',
-        '700',
-        '700italic'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Cantata One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Cantora One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Capriola',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Cardo',
-      'variants': [
-        'regular',
-        'italic',
-        '700'
-      ],
-      'subsets': [
-        'greek-ext',
-        'latin-ext',
-        'latin',
-        'greek'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Carme',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Carrois Gothic',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Carrois Gothic SC',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Carter One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Caudex',
-      'variants': [
-        'regular',
-        'italic',
-        '700',
-        '700italic'
-      ],
-      'subsets': [
-        'greek-ext',
-        'latin-ext',
-        'latin',
-        'greek'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Cedarville Cursive',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Ceviche One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Changa One',
-      'variants': [
-        'regular',
-        'italic'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Chango',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Chau Philomene One',
-      'variants': [
-        'regular',
-        'italic'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Chela One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Chelsea Market',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Chenla',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'khmer'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Cherry Cream Soda',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Cherry Swash',
-      'variants': [
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Chewy',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Chicle',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Chivo',
-      'variants': [
-        'regular',
-        'italic',
-        '900',
-        '900italic'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Cinzel',
-      'variants': [
-        'regular',
-        '700',
-        '900'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Cinzel Decorative',
-      'variants': [
-        'regular',
-        '700',
-        '900'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Clicker Script',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Coda',
-      'variants': [
-        'regular',
-        '800'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Coda Caption',
-      'variants': [
-        '800'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Codystar',
-      'variants': [
-        '300',
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Combo',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Comfortaa',
-      'variants': [
-        '300',
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'cyrillic',
-        'latin-ext',
-        'latin',
-        'greek',
-        'cyrillic-ext'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Coming Soon',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Concert One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Condiment',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Content',
-      'variants': [
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'khmer'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Contrail One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Convergence',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Cookie',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Copse',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Corben',
-      'variants': [
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Courgette',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Cousine',
-      'variants': [
-        'regular',
-        'italic',
-        '700',
-        '700italic'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Coustard',
-      'variants': [
-        'regular',
-        '900'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Covered By Your Grace',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Crafty Girls',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Creepster',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Crete Round',
-      'variants': [
-        'regular',
-        'italic'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Crimson Text',
-      'variants': [
-        'regular',
-        'italic',
-        '600',
-        '600italic',
-        '700',
-        '700italic'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Croissant One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Crushed',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Cuprum',
-      'variants': [
-        'regular',
-        'italic',
-        '700',
-        '700italic'
-      ],
-      'subsets': [
-        'cyrillic',
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Cutive',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Cutive Mono',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Damion',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Dancing Script',
-      'variants': [
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Dangrek',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'khmer'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Dawning of a New Day',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Days One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Delius',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Delius Swash Caps',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Delius Unicase',
-      'variants': [
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Della Respira',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Devonshire',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Didact Gothic',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'cyrillic',
-        'greek-ext',
-        'latin-ext',
-        'latin',
-        'greek',
-        'cyrillic-ext'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Diplomata',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Diplomata SC',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Doppio One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Dorsa',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Dosis',
-      'variants': [
-        '200',
-        '300',
-        'regular',
-        '500',
-        '600',
-        '700',
-        '800'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Dr Sugiyama',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Droid Sans',
-      'variants': [
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Droid Sans Mono',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Droid Serif',
-      'variants': [
-        'regular',
-        'italic',
-        '700',
-        '700italic'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Duru Sans',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Dynalight',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'EB Garamond',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'cyrillic',
-        'latin-ext',
-        'latin',
-        'vietnamese',
-        'cyrillic-ext'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Eagle Lake',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Eater',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Economica',
-      'variants': [
-        'regular',
-        'italic',
-        '700',
-        '700italic'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Electrolize',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Emblema One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Emilys Candy',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Engagement',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Englebert',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Enriqueta',
-      'variants': [
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Erica One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Esteban',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Euphoria Script',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Ewert',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Exo',
-      'variants': [
-        '100',
-        '100italic',
-        '200',
-        '200italic',
-        '300',
-        '300italic',
-        'regular',
-        'italic',
-        '500',
-        '500italic',
-        '600',
-        '600italic',
-        '700',
-        '700italic',
-        '800',
-        '800italic',
-        '900',
-        '900italic'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Expletus Sans',
-      'variants': [
-        'regular',
-        'italic',
-        '500',
-        '500italic',
-        '600',
-        '600italic',
-        '700',
-        '700italic'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Fanwood Text',
-      'variants': [
-        'regular',
-        'italic'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Fascinate',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Fascinate Inline',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Faster One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Fasthand',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'khmer'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Federant',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Federo',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Felipa',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Fenix',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Finger Paint',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Fjord One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Flamenco',
-      'variants': [
-        '300',
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Flavors',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Fondamento',
-      'variants': [
-        'regular',
-        'italic'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Fontdiner Swanky',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Forum',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'cyrillic',
-        'latin-ext',
-        'latin',
-        'cyrillic-ext'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Francois One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Freckle Face',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Fredericka the Great',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Fredoka One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Freehand',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'khmer'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Fresca',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Frijole',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Fugaz One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'GFS Didot',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'greek'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'GFS Neohellenic',
-      'variants': [
-        'regular',
-        'italic',
-        '700',
-        '700italic'
-      ],
-      'subsets': [
-        'greek'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Gafata',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Galdeano',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Galindo',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Gentium Basic',
-      'variants': [
-        'regular',
-        'italic',
-        '700',
-        '700italic'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Gentium Book Basic',
-      'variants': [
-        'regular',
-        'italic',
-        '700',
-        '700italic'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Geo',
-      'variants': [
-        'regular',
-        'italic'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Geostar',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Geostar Fill',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Germania One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Gilda Display',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Give You Glory',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Glass Antiqua',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Glegoo',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Gloria Hallelujah',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Goblin One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Gochi Hand',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Gorditas',
-      'variants': [
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Goudy Bookletter 1911',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Graduate',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Gravitas One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Great Vibes',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Griffy',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Gruppo',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Gudea',
-      'variants': [
-        'regular',
-        'italic',
-        '700'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Habibi',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Hammersmith One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Hanalei',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Hanalei Fill',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Handlee',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Hanuman',
-      'variants': [
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'khmer'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Happy Monkey',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Headland One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Henny Penny',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Herr Von Muellerhoff',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Holtwood One SC',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Homemade Apple',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Homenaje',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'IM Fell DW Pica',
-      'variants': [
-        'regular',
-        'italic'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'IM Fell DW Pica SC',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'IM Fell Double Pica',
-      'variants': [
-        'regular',
-        'italic'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'IM Fell Double Pica SC',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'IM Fell English',
-      'variants': [
-        'regular',
-        'italic'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'IM Fell English SC',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'IM Fell French Canon',
-      'variants': [
-        'regular',
-        'italic'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'IM Fell French Canon SC',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'IM Fell Great Primer',
-      'variants': [
-        'regular',
-        'italic'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'IM Fell Great Primer SC',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Iceberg',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Iceland',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Imprima',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Inconsolata',
-      'variants': [
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Inder',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Indie Flower',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Inika',
-      'variants': [
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Irish Grover',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Istok Web',
-      'variants': [
-        'regular',
-        'italic',
-        '700',
-        '700italic'
-      ],
-      'subsets': [
-        'cyrillic',
-        'latin-ext',
-        'latin',
-        'cyrillic-ext'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Italiana',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Italianno',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Jacques Francois',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Jacques Francois Shadow',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Jim Nightshade',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Jockey One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Jolly Lodger',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Josefin Sans',
-      'variants': [
-        '100',
-        '100italic',
-        '300',
-        '300italic',
-        'regular',
-        'italic',
-        '600',
-        '600italic',
-        '700',
-        '700italic'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Josefin Slab',
-      'variants': [
-        '100',
-        '100italic',
-        '300',
-        '300italic',
-        'regular',
-        'italic',
-        '600',
-        '600italic',
-        '700',
-        '700italic'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Joti One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Judson',
-      'variants': [
-        'regular',
-        'italic',
-        '700'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Julee',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Julius Sans One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Junge',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Jura',
-      'variants': [
-        '300',
-        'regular',
-        '500',
-        '600'
-      ],
-      'subsets': [
-        'cyrillic',
-        'greek-ext',
-        'latin-ext',
-        'latin',
-        'greek',
-        'cyrillic-ext'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Just Another Hand',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Just Me Again Down Here',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Kameron',
-      'variants': [
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Karla',
-      'variants': [
-        'regular',
-        'italic',
-        '700',
-        '700italic'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Kaushan Script',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Keania One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Kelly Slab',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'cyrillic',
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Kenia',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Khmer',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'khmer'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Kite One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Knewave',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Kotta One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Koulen',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'khmer'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Kranky',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Kreon',
-      'variants': [
-        '300',
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Kristi',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Krona One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'La Belle Aurore',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Lancelot',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Lato',
-      'variants': [
-        '100',
-        '100italic',
-        '300',
-        '300italic',
-        'regular',
-        'italic',
-        '700',
-        '700italic',
-        '900',
-        '900italic'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'League Script',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Leckerli One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Ledger',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'cyrillic',
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Lekton',
-      'variants': [
-        'regular',
-        'italic',
-        '700'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Lemon',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Life Savers',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Lilita One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Limelight',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Linden Hill',
-      'variants': [
-        'regular',
-        'italic'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Lobster',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'cyrillic',
-        'latin-ext',
-        'latin',
-        'cyrillic-ext'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Lobster Two',
-      'variants': [
-        'regular',
-        'italic',
-        '700',
-        '700italic'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Londrina Outline',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Londrina Shadow',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Londrina Sketch',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Londrina Solid',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Lora',
-      'variants': [
-        'regular',
-        'italic',
-        '700',
-        '700italic'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Love Ya Like A Sister',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Loved by the King',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Lovers Quarrel',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Luckiest Guy',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Lusitana',
-      'variants': [
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Lustria',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Macondo',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Macondo Swash Caps',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Magra',
-      'variants': [
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Maiden Orange',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Mako',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Marcellus',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Marcellus SC',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Marck Script',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'cyrillic',
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Margarine',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Marko One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Marmelad',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'cyrillic',
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Marvel',
-      'variants': [
-        'regular',
-        'italic',
-        '700',
-        '700italic'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Mate',
-      'variants': [
-        'regular',
-        'italic'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Mate SC',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Maven Pro',
-      'variants': [
-        'regular',
-        '500',
-        '700',
-        '900'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'McLaren',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Meddon',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'MedievalSharp',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Medula One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Megrim',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Meie Script',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Merienda',
-      'variants': [
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Merienda One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Merriweather',
-      'variants': [
-        '300',
-        'regular',
-        '700',
-        '900'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Metal',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'khmer'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Metal Mania',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Metamorphous',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Metrophobic',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Michroma',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Miltonian',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Miltonian Tattoo',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Miniver',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Miss Fajardose',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Modern Antiqua',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Molengo',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Molle',
-      'variants': [
-        'italic'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Monofett',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Monoton',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Monsieur La Doulaise',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Montaga',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Montez',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Montserrat',
-      'variants': [
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Montserrat Alternates',
-      'variants': [
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Montserrat Subrayada',
-      'variants': [
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Moul',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'khmer'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Moulpali',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'khmer'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Mountains of Christmas',
-      'variants': [
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Mouse Memoirs',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Mr Bedfort',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Mr Dafoe',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Mr De Haviland',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Mrs Saint Delafield',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Mrs Sheppards',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Muli',
-      'variants': [
-        '300',
-        '300italic',
-        'regular',
-        'italic'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Mystery Quest',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Neucha',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'cyrillic',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Neuton',
-      'variants': [
-        '200',
-        '300',
-        'regular',
-        'italic',
-        '700',
-        '800'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'News Cycle',
-      'variants': [
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Niconne',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Nixie One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Nobile',
-      'variants': [
-        'regular',
-        'italic',
-        '700',
-        '700italic'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Nokora',
-      'variants': [
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'khmer'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Norican',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Nosifer',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Nothing You Could Do',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Noticia Text',
-      'variants': [
-        'regular',
-        'italic',
-        '700',
-        '700italic'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin',
-        'vietnamese'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Nova Cut',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Nova Flat',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Nova Mono',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin',
-        'greek'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Nova Oval',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Nova Round',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Nova Script',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Nova Slim',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Nova Square',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Numans',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Nunito',
-      'variants': [
-        '300',
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Odor Mean Chey',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'khmer'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Offside',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Old Standard TT',
-      'variants': [
-        'regular',
-        'italic',
-        '700'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Oldenburg',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Oleo Script',
-      'variants': [
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Oleo Script Swash Caps',
-      'variants': [
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Open Sans',
-      'variants': [
-        '300',
-        '300italic',
-        'regular',
-        'italic',
-        '600',
-        '600italic',
-        '700',
-        '700italic',
-        '800',
-        '800italic'
-      ],
-      'subsets': [
-        'cyrillic',
-        'greek-ext',
-        'latin-ext',
-        'latin',
-        'vietnamese',
-        'greek',
-        'cyrillic-ext'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Open Sans Condensed',
-      'variants': [
-        '300',
-        '300italic',
-        '700'
-      ],
-      'subsets': [
-        'cyrillic',
-        'greek-ext',
-        'latin-ext',
-        'latin',
-        'vietnamese',
-        'greek',
-        'cyrillic-ext'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Oranienbaum',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'cyrillic',
-        'latin-ext',
-        'latin',
-        'cyrillic-ext'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Orbitron',
-      'variants': [
-        'regular',
-        '500',
-        '700',
-        '900'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Oregano',
-      'variants': [
-        'regular',
-        'italic'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Orienta',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Original Surfer',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Oswald',
-      'variants': [
-        '300',
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Over the Rainbow',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Overlock',
-      'variants': [
-        'regular',
-        'italic',
-        '700',
-        '700italic',
-        '900',
-        '900italic'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Overlock SC',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Ovo',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Oxygen',
-      'variants': [
-        '300',
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Oxygen Mono',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'PT Mono',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'cyrillic',
-        'latin-ext',
-        'latin',
-        'cyrillic-ext'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'PT Sans',
-      'variants': [
-        'regular',
-        'italic',
-        '700',
-        '700italic'
-      ],
-      'subsets': [
-        'cyrillic',
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'PT Sans Caption',
-      'variants': [
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'cyrillic',
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'PT Sans Narrow',
-      'variants': [
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'cyrillic',
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'PT Serif',
-      'variants': [
-        'regular',
-        'italic',
-        '700',
-        '700italic'
-      ],
-      'subsets': [
-        'cyrillic',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'PT Serif Caption',
-      'variants': [
-        'regular',
-        'italic'
-      ],
-      'subsets': [
-        'cyrillic',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Pacifico',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Paprika',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Parisienne',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Passero One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Passion One',
-      'variants': [
-        'regular',
-        '700',
-        '900'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Patrick Hand',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Patua One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Paytone One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Peralta',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Permanent Marker',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Petit Formal Script',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Petrona',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Philosopher',
-      'variants': [
-        'regular',
-        'italic',
-        '700',
-        '700italic'
-      ],
-      'subsets': [
-        'cyrillic',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Piedra',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Pinyon Script',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Pirata One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Plaster',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Play',
-      'variants': [
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'cyrillic',
-        'greek-ext',
-        'latin-ext',
-        'latin',
-        'greek',
-        'cyrillic-ext'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Playball',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Playfair Display',
-      'variants': [
-        'regular',
-        'italic',
-        '700',
-        '700italic',
-        '900',
-        '900italic'
-      ],
-      'subsets': [
-        'cyrillic',
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Playfair Display SC',
-      'variants': [
-        'regular',
-        'italic',
-        '700',
-        '700italic',
-        '900',
-        '900italic'
-      ],
-      'subsets': [
-        'cyrillic',
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Podkova',
-      'variants': [
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Poiret One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'cyrillic',
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Poller One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Poly',
-      'variants': [
-        'regular',
-        'italic'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Pompiere',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Pontano Sans',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Port Lligat Sans',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Port Lligat Slab',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Prata',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Preahvihear',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'khmer'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Press Start 2P',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'cyrillic',
-        'latin-ext',
-        'latin',
-        'greek'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Princess Sofia',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Prociono',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Prosto One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'cyrillic',
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Puritan',
-      'variants': [
-        'regular',
-        'italic',
-        '700',
-        '700italic'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Purple Purse',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Quando',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Quantico',
-      'variants': [
-        'regular',
-        'italic',
-        '700',
-        '700italic'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Quattrocento',
-      'variants': [
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Quattrocento Sans',
-      'variants': [
-        'regular',
-        'italic',
-        '700',
-        '700italic'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Questrial',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Quicksand',
-      'variants': [
-        '300',
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Quintessential',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Qwigley',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Racing Sans One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Radley',
-      'variants': [
-        'regular',
-        'italic'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Raleway',
-      'variants': [
-        '100',
-        '200',
-        '300',
-        'regular',
-        '500',
-        '600',
-        '700',
-        '800',
-        '900'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Raleway Dots',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Rambla',
-      'variants': [
-        'regular',
-        'italic',
-        '700',
-        '700italic'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Rammetto One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Ranchers',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Rancho',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Rationale',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Redressed',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Reenie Beanie',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Revalia',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Ribeye',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Ribeye Marrow',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Righteous',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Risque',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Rochester',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Rock Salt',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Rokkitt',
-      'variants': [
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Romanesco',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Ropa Sans',
-      'variants': [
-        'regular',
-        'italic'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Rosario',
-      'variants': [
-        'regular',
-        'italic',
-        '700',
-        '700italic'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Rosarivo',
-      'variants': [
-        'regular',
-        'italic'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Rouge Script',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Ruda',
-      'variants': [
-        'regular',
-        '700',
-        '900'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Rufina',
-      'variants': [
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Ruge Boogie',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Ruluko',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Rum Raisin',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Ruslan Display',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'cyrillic',
-        'latin-ext',
-        'latin',
-        'cyrillic-ext'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Russo One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'cyrillic',
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Ruthie',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Rye',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Sacramento',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Sail',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Salsa',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Sanchez',
-      'variants': [
-        'regular',
-        'italic'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Sancreek',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Sansita One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Sarina',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Satisfy',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Scada',
-      'variants': [
-        'regular',
-        'italic',
-        '700',
-        '700italic'
-      ],
-      'subsets': [
-        'cyrillic',
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Schoolbell',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Seaweed Script',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Sevillana',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Seymour One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'cyrillic',
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Shadows Into Light',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Shadows Into Light Two',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Shanti',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Share',
-      'variants': [
-        'regular',
-        'italic',
-        '700',
-        '700italic'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Share Tech',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Share Tech Mono',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Shojumaru',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Short Stack',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Siemreap',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'khmer'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Sigmar One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Signika',
-      'variants': [
-        '300',
-        'regular',
-        '600',
-        '700'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Signika Negative',
-      'variants': [
-        '300',
-        'regular',
-        '600',
-        '700'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Simonetta',
-      'variants': [
-        'regular',
-        'italic',
-        '900',
-        '900italic'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Sirin Stencil',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Six Caps',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Skranji',
-      'variants': [
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Slackey',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Smokum',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Smythe',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Sniglet',
-      'variants': [
-        '800'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Snippet',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Snowburst One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Sofadi One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Sofia',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Sonsie One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Sorts Mill Goudy',
-      'variants': [
-        'regular',
-        'italic'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Source Code Pro',
-      'variants': [
-        '200',
-        '300',
-        'regular',
-        '600',
-        '700',
-        '900'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Source Sans Pro',
-      'variants': [
-        '200',
-        '200italic',
-        '300',
-        '300italic',
-        'regular',
-        'italic',
-        '600',
-        '600italic',
-        '700',
-        '700italic',
-        '900',
-        '900italic'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Special Elite',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Spicy Rice',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Spinnaker',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Spirax',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Squada One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Stalemate',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Stalinist One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'cyrillic',
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Stardos Stencil',
-      'variants': [
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Stint Ultra Condensed',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Stint Ultra Expanded',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Stoke',
-      'variants': [
-        '300',
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Strait',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Sue Ellen Francisco',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Sunshiney',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Supermercado One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Suwannaphum',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'khmer'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Swanky and Moo Moo',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Syncopate',
-      'variants': [
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Tangerine',
-      'variants': [
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Taprom',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'khmer'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Telex',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Tenor Sans',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'cyrillic',
-        'latin-ext',
-        'latin',
-        'cyrillic-ext'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Text Me One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'The Girl Next Door',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Tienne',
-      'variants': [
-        'regular',
-        '700',
-        '900'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Tinos',
-      'variants': [
-        'regular',
-        'italic',
-        '700',
-        '700italic'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Titan One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Titillium Web',
-      'variants': [
-        '200',
-        '200italic',
-        '300',
-        '300italic',
-        'regular',
-        'italic',
-        '600',
-        '600italic',
-        '700',
-        '700italic',
-        '900'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Trade Winds',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Trocchi',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Trochut',
-      'variants': [
-        'regular',
-        'italic',
-        '700'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Trykker',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Tulpen One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Ubuntu',
-      'variants': [
-        '300',
-        '300italic',
-        'regular',
-        'italic',
-        '500',
-        '500italic',
-        '700',
-        '700italic'
-      ],
-      'subsets': [
-        'cyrillic',
-        'greek-ext',
-        'latin-ext',
-        'latin',
-        'greek',
-        'cyrillic-ext'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Ubuntu Condensed',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'cyrillic',
-        'greek-ext',
-        'latin-ext',
-        'latin',
-        'greek',
-        'cyrillic-ext'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Ubuntu Mono',
-      'variants': [
-        'regular',
-        'italic',
-        '700',
-        '700italic'
-      ],
-      'subsets': [
-        'cyrillic',
-        'greek-ext',
-        'latin-ext',
-        'latin',
-        'greek',
-        'cyrillic-ext'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Ultra',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Uncial Antiqua',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Underdog',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'cyrillic',
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Unica One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'UnifrakturCook',
-      'variants': [
-        '700'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'UnifrakturMaguntia',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Unkempt',
-      'variants': [
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Unlock',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Unna',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'VT323',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Vampiro One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Varela',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Varela Round',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Vast Shadow',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Vibur',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Vidaloka',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Viga',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Voces',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Volkhov',
-      'variants': [
-        'regular',
-        'italic',
-        '700',
-        '700italic'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Vollkorn',
-      'variants': [
-        'regular',
-        'italic',
-        '700',
-        '700italic'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Voltaire',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Waiting for the Sunrise',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Wallpoet',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Walter Turncoat',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Warnes',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Wellfleet',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Wire One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Yanone Kaffeesatz',
-      'variants': [
-        '200',
-        '300',
-        'regular',
-        '700'
-      ],
-      'subsets': [
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Yellowtail',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Yeseva One',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'cyrillic',
-        'latin-ext',
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Yesteryear',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    },
-    {
-      'kind': 'webfonts#webfont',
-      'family': 'Zeyada',
-      'variants': [
-        'regular'
-      ],
-      'subsets': [
-        'latin'
-      ]
-    }
-  ]
-};
-
-/* ==========================================================
- * bootstrap-formhelpers-languages.en_US.js
- * https://github.com/vlamanna/BootstrapFormHelpers
- * ==========================================================
- * Copyright 2012 Vincent Lamanna
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================================================== */
- 
-var BFHLanguagesList = {
-  'om': 'Afaan Oromoo',
-  'aa': 'Afaraf',
-  'af': 'Afrikaans',
-  'ak': 'Akan',
-  'an': 'aragonés',
-  'ig': 'Asụsụ Igbo',
-  'gn': 'Avañe\'ẽ',
-  'ae': 'avesta',
-  'ay': 'aymar aru',
-  'az': 'azərbaycan dili',
-  'id': 'Bahasa Indonesia',
-  'ms': 'bahasa Melayu',
-  'bm': 'bamanankan',
-  'jv': 'basa Jawa',
-  'su': 'Basa Sunda',
-  'bi': 'Bislama',
-  'bs': 'bosanski jezik',
-  'br': 'brezhoneg',
-  'ca': 'català',
-  'ch': 'Chamoru',
-  'ny': 'chiCheŵa',
-  'sn': 'chiShona',
-  'co': 'corsu',
-  'cy': 'Cymraeg',
-  'da': 'dansk',
-  'se': 'Davvisámegiella',
-  'de': 'Deutsch',
-  'nv': 'Diné bizaad',
-  'et': 'eesti',
-  'na': 'Ekakairũ Naoero',
-  'en': 'English',
-  'es': 'español',
-  'eo': 'Esperanto',
-  'eu': 'euskara',
-  'ee': 'Eʋegbe',
-  'to': 'faka Tonga',
-  'mg': 'fiteny malagasy',
-  'fr': 'français',
-  'fy': 'Frysk',
-  'ff': 'Fulfulde',
-  'fo': 'føroyskt',
-  'ga': 'Gaeilge',
-  'gv': 'Gaelg',
-  'sm': 'gagana fa\'a Samoa',
-  'gl': 'galego',
-  'sq': 'gjuha shqipe',
-  'gd': 'Gàidhlig',
-  'ki': 'Gĩkũyũ',
-  'ha': 'Hausa',
-  'ho': 'Hiri Motu',
-  'hr': 'hrvatski jezik',
-  'io': 'Ido',
-  'rw': 'Ikinyarwanda',
-  'rn': 'Ikirundi',
-  'ia': 'Interlingua',
-  'nd': 'isiNdebele',
-  'nr': 'isiNdebele',
-  'xh': 'isiXhosa',
-  'zu': 'isiZulu',
-  'it': 'italiano',
-  'ik': 'Iñupiaq',
-  'pl': 'polski',
-  'mh': 'Kajin M̧ajeļ',
-  'kl': 'kalaallisut',
-  'kr': 'Kanuri',
-  'kw': 'Kernewek',
-  'kg': 'KiKongo',
-  'sw': 'Kiswahili',
-  'ht': 'Kreyòl ayisyen',
-  'kj': 'Kuanyama',
-  'ku': 'Kurdî',
-  'la': 'latine',
-  'lv': 'latviešu valoda',
-  'lt': 'lietuvių kalba',
-  'ro': 'limba română',
-  'li': 'Limburgs',
-  'ln': 'Lingála',
-  'lg': 'Luganda',
-  'lb': 'Lëtzebuergesch',
-  'hu': 'magyar',
-  'mt': 'Malti',
-  'nl': 'Nederlands',
-  'no': 'Norsk',
-  'nb': 'Norsk bokmål',
-  'nn': 'Norsk nynorsk',
-  'uz': 'O\'zbek',
-  'oc': 'occitan',
-  'ie': 'Interlingue',
-  'hz': 'Otjiherero',
-  'ng': 'Owambo',
-  'pt': 'português',
-  'ty': 'Reo Tahiti',
-  'rm': 'rumantsch grischun',
-  'qu': 'Runa Simi',
-  'sc': 'sardu',
-  'za': 'Saɯ cueŋƅ',
-  'st': 'Sesotho',
-  'tn': 'Setswana',
-  'ss': 'SiSwati',
-  'sl': 'slovenski jezik',
-  'sk': 'slovenčina',
-  'so': 'Soomaaliga',
-  'fi': 'suomi',
-  'sv': 'Svenska',
-  'mi': 'te reo Māori',
-  'vi': 'Tiếng Việt',
-  'lu': 'Tshiluba',
-  've': 'Tshivenḓa',
-  'tw': 'Twi',
-  'tk': 'Türkmen',
-  'tr': 'Türkçe',
-  'ug': 'Uyƣurqə',
-  'vo': 'Volapük',
-  'fj': 'vosa Vakaviti',
-  'wa': 'walon',
-  'tl': 'Wikang Tagalog',
-  'wo': 'Wollof',
-  'ts': 'Xitsonga',
-  'yo': 'Yorùbá',
-  'sg': 'yângâ tî sängö',
-  'is': 'Íslenska',
-  'cs': 'čeština',
-  'el': 'ελληνικά',
-  'av': 'авар мацӀ',
-  'ab': 'аҧсуа бызшәа',
-  'ba': 'башҡорт теле',
-  'be': 'беларуская мова',
-  'bg': 'български език',
-  'os': 'ирон æвзаг',
-  'kv': 'коми кыв',
-  'ky': 'Кыргызча',
-  'mk': 'македонски јазик',
-  'mn': 'монгол',
-  'ce': 'нохчийн мотт',
-  'ru': 'русский язык',
-  'sr': 'српски језик',
-  'tt': 'татар теле',
-  'tg': 'тоҷикӣ',
-  'uk': 'українська мова',
-  'cv': 'чӑваш чӗлхи',
-  'cu': 'ѩзыкъ словѣньскъ',
-  'kk': 'қазақ тілі',
-  'hy': 'Հայերեն',
-  'yi': 'ייִדיש',
-  'he': 'עברית',
-  'ur': 'اردو',
-  'ar': 'العربية',
-  'fa': 'فارسی',
-  'ps': 'پښتو',
-  'ks': 'कश्मीरी',
-  'ne': 'नेपाली',
-  'pi': 'पाऴि',
-  'bh': 'भोजपुरी',
-  'mr': 'मराठी',
-  'sa': 'संस्कृतम्',
-  'sd': 'सिन्धी',
-  'hi': 'हिन्दी',
-  'as': 'অসমীয়া',
-  'bn': 'বাংলা',
-  'pa': 'ਪੰਜਾਬੀ',
-  'gu': 'ગુજરાતી',
-  'or': 'ଓଡ଼ିଆ',
-  'ta': 'தமிழ்',
-  'te': 'తెలుగు',
-  'kn': 'ಕನ್ನಡ',
-  'ml': 'മലയാളം',
-  'si': 'සිංහල',
-  'th': 'ไทย',
-  'lo': 'ພາສາລາວ',
-  'bo': 'བོད་ཡིག',
-  'dz': 'རྫོང་ཁ',
-  'my': 'ဗမာစာ',
-  'ka': 'ქართული',
-  'ti': 'ትግርኛ',
-  'am': 'አማርኛ',
-  'iu': 'ᐃᓄᒃᑎᑐᑦ',
-  'oj': 'ᐊᓂᔑᓈᐯᒧᐎᓐ',
-  'cr': 'ᓀᐦᐃᔭᐍᐏᐣ',
-  'km': 'ខ្មែរ',
-  'zh': '中文 (Zhōngwén)',
-  'ja': '日本語 (にほんご)',
-  'ii': 'ꆈꌠ꒿ Nuosuhxop',
-  'ko': '한국어 (韓國語)'
-};
-
-/* ==========================================================
- * bootstrap-formhelpers-phone.en_US.js
- * https://github.com/vlamanna/BootstrapFormHelpers
- * ==========================================================
- * Copyright 2012 Vincent Lamanna
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file edcept in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either edpress or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================================================== */
- 
-var BFHPhoneFormatList = {
-  'AF': '+93 0dd ddd dddd',
-  'AL': '+355 0dd ddd ddd',
-  'DZ': '+213 0ddd dd dd dd',
-  'AS': '+1 (ddd) ddd-dddd',
-  'AD': '+376 ddddddddd',
-  'AO': '+244 ddd ddd ddd',
-  'AI': '+1 (ddd) ddd-dddd',
-  'AQ': '+672 ddddddddd',
-  'AG': '+1 (ddd) ddd-dddd',
-  'AR': '+54 ddddddddd',
-  'AM': '+374 0dd dddddd',
-  'AW': '+297 ddd dddd',
-  'AU': '+61 ddd ddd ddd',
-  'AT': '+43 0dddd ddddddddd',
-  'AZ': '+994 ddddddddd',
-  'BH': '+973 ddddddddd',
-  'BD': '+880 ddddddddd',
-  'BB': '+1 ddddddddd',
-  'BY': '+375 ddddddddd',
-  'BE': '+32 ddddddddd',
-  'BZ': '+501 ddddddddd',
-  'BJ': '+229 ddddddddd',
-  'BM': '+1 (ddd) ddd-dddd',
-  'BT': '+975 ddddddddd',
-  'BO': '+591 ddddddddd',
-  'BA': '+387 ddddddddd',
-  'BW': '+267 ddddddddd',
-  'BV': '+0 ddddddddd',
-  'BR': '+55 ddddddddd',
-  'IO': '+0 ddddddddd',
-  'VG': '+1 (ddd) ddd-dddd',
-  'BN': '+673 ddddddddd',
-  'BG': '+359 ddddddddd',
-  'BF': '+226 ddddddddd',
-  'BI': '+257 ddddddddd',
-  'CI': '+225 ddddddddd',
-  'KH': '+855 ddddddddd',
-  'CM': '+237 ddddddddd',
-  'CA': '+1 (ddd) ddd-dddd',
-  'CV': '+238 ddddddddd',
-  'KY': '+1 (ddd) ddd-dddd',
-  'CF': '+236 ddddddddd',
-  'TD': '+235 ddddddddd',
-  'CL': '+56 ddddddddd',
-  'CN': '+86 ddddddddd',
-  'CX': '+61 ddddddddd',
-  'CC': '+61 ddddddddd',
-  'CO': '+57 ddddddddd',
-  'KM': '+269 ddddddddd',
-  'CG': '+242 ddddddddd',
-  'CK': '+682 ddddddddd',
-  'CR': '+506 ddddddddd',
-  'HR': '+385 ddddddddd',
-  'CU': '+53 ddddddddd',
-  'CY': '+357 ddddddddd',
-  'CZ': '+420 ddddddddd',
-  'CD': '+243 ddddddddd',
-  'DK': '+45 ddddddddd',
-  'DJ': '+253 ddddddddd',
-  'DM': '+1 (ddd) ddd-dddd',
-  'DO': '+1 (ddd) ddd-dddd',
-  'TL': '+670 ddddddddd',
-  'EC': '+593 ddddddddd',
-  'EG': '+20 ddddddddd',
-  'SV': '+503 ddddddddd',
-  'GQ': '+240 ddddddddd',
-  'ER': '+291 ddddddddd',
-  'EE': '+372 ddddddddd',
-  'ET': '+251 ddddddddd',
-  'FO': '+298 ddddddddd',
-  'FK': '+500 ddddddddd',
-  'FJ': '+679 ddddddddd',
-  'FI': '+358 ddddddddd',
-  'MK': '+389 ddddddddd',
-  'FR': '+33 d dd dd dd dd',
-  'GF': '+594 ddddddddd',
-  'PF': '+689 ddddddddd',
-  'TF': '+262 ddddddddd',
-  'GA': '+241 ddddddddd',
-  'GE': '+995 ddddddddd',
-  'DE': '+49 ddddddddd',
-  'GH': '+233 ddddddddd',
-  'GI': '+350 ddddddddd',
-  'GR': '+30 ddddddddd',
-  'GL': '+299 ddddddddd',
-  'GD': '+1 (ddd) ddd-dddd',
-  'GP': '+590 ddddddddd',
-  'GU': '+1 (ddd) ddd-dddd',
-  'GT': '+502 ddddddddd',
-  'GN': '+224 ddddddddd',
-  'GW': '+245 ddddddddd',
-  'GY': '+592 ddddddddd',
-  'HT': '+509 ddddddddd',
-  'HM': '+0 ddddddddd',
-  'HN': '+504 ddddddddd',
-  'HK': '+852 ddddddddd',
-  'HU': '+36 ddddddddd',
-  'IS': '+354 ddddddddd',
-  'IN': '+91 ddddddddd',
-  'ID': '+62 ddddddddd',
-  'IR': '+98 ddddddddd',
-  'IQ': '+964 ddddddddd',
-  'IE': '+353 ddddddddd',
-  'IL': '+972 ddddddddd',
-  'IT': '+39 ddddddddd',
-  'JM': '+1 (ddd) ddd-dddd',
-  'JP': '+81 ddddddddd',
-  'JO': '+962 ddddddddd',
-  'KZ': '+7 ddddddddd',
-  'KE': '+254 ddddddddd',
-  'KI': '+686 ddddddddd',
-  'KW': '+965 ddddddddd',
-  'KG': '+996 ddddddddd',
-  'LA': '+856 ddddddddd',
-  'LV': '+371 ddddddddd',
-  'LB': '+961 ddddddddd',
-  'LS': '+266 ddddddddd',
-  'LR': '+231 ddddddddd',
-  'LY': '+218 ddddddddd',
-  'LI': '+423 ddddddddd',
-  'LT': '+370 ddddddddd',
-  'LU': '+352 ddddddddd',
-  'MO': '+853 ddddddddd',
-  'MG': '+261 ddddddddd',
-  'MW': '+265 ddddddddd',
-  'MY': '+60 ddddddddd',
-  'MV': '+960 ddddddddd',
-  'ML': '+223 ddddddddd',
-  'MT': '+356 ddddddddd',
-  'MH': '+692 ddddddddd',
-  'MQ': '+596 ddddddddd',
-  'MR': '+222 ddddddddd',
-  'MU': '+230 ddddddddd',
-  'YT': '+262 ddddddddd',
-  'MX': '+52 ddddddddd',
-  'FM': '+691 ddddddddd',
-  'MD': '+373 ddddddddd',
-  'MC': '+377 ddddddddd',
-  'MN': '+976 ddddddddd',
-  'MS': '+1 (ddd) ddd-dddd',
-  'MA': '+212 ddddddddd',
-  'MZ': '+258 ddddddddd',
-  'MM': '+95 ddddddddd',
-  'NA': '+264 ddddddddd',
-  'NR': '+674 ddddddddd',
-  'NP': '+977 ddddddddd',
-  'NL': '+31 ddddddddd',
-  'AN': '+599 ddddddddd',
-  'NC': '+687 ddddddddd',
-  'NZ': '+64 ddddddddd',
-  'NI': '+505 ddddddddd',
-  'NE': '+227 ddddddddd',
-  'NG': '+234 ddddddddd',
-  'NU': '+683 ddddddddd',
-  'NF': '+672 ddddddddd',
-  'KP': '+850 ddddddddd',
-  'MP': '+1 (ddd) ddd-dddd',
-  'NO': '+47 ddddddddd',
-  'OM': '+968 ddddddddd',
-  'PK': '+92 ddddddddd',
-  'PW': '+680 ddddddddd',
-  'PA': '+507 ddddddddd',
-  'PG': '+675 ddddddddd',
-  'PY': '+595 ddddddddd',
-  'PE': '+51 ddddddddd',
-  'PH': '+63 ddddddddd',
-  'PN': '+870 ddddddddd',
-  'PL': '+48 ddddddddd',
-  'PT': '+351 ddddddddd',
-  'PR': '+1 (ddd) ddd-dddd',
-  'QA': '+974 ddddddddd',
-  'RE': '+262 ddddddddd',
-  'RO': '+40 ddddddddd',
-  'RU': '+7 ddddddddd',
-  'RW': '+250 ddddddddd',
-  'ST': '+239 ddddddddd',
-  'SH': '+290 ddddddddd',
-  'KN': '+1 (ddd) ddd-dddd',
-  'LC': '+1 (ddd) ddd-dddd',
-  'PM': '+508 ddddddddd',
-  'VC': '+1 (ddd) ddd-dddd',
-  'WS': '+685 ddddddddd',
-  'SM': '+378 ddddddddd',
-  'SA': '+966 ddddddddd',
-  'SN': '+221 ddddddddd',
-  'SC': '+248 ddddddddd',
-  'SL': '+232 ddddddddd',
-  'SG': '+65 ddddddddd',
-  'SK': '+421 ddddddddd',
-  'SI': '+386 ddddddddd',
-  'SB': '+677 ddddddddd',
-  'SO': '+252 ddddddddd',
-  'ZA': '+27 ddddddddd',
-  'GS': '+0 ddddddddd',
-  'KR': '+82 ddddddddd',
-  'ES': '+34 ddddddddd',
-  'LK': '+94 ddddddddd',
-  'SD': '+249 ddddddddd',
-  'SR': '+597 ddddddddd',
-  'SJ': '+0 ddddddddd',
-  'SZ': '+268 ddddddddd',
-  'SE': '+46 ddddddddd',
-  'CH': '+41 ddddddddd',
-  'SY': '+963 ddddddddd',
-  'TW': '+886 ddddddddd',
-  'TJ': '+992 ddddddddd',
-  'TZ': '+255 ddddddddd',
-  'TH': '+66 ddddddddd',
-  'BS': '+1 (ddd) ddd-dddd',
-  'GM': '+220 ddddddddd',
-  'TG': '+228 ddddddddd',
-  'TK': '+690 ddddddddd',
-  'TO': '+676 ddddddddd',
-  'TT': '+1 (ddd) ddd-dddd',
-  'TN': '+216 ddddddddd',
-  'TR': '+90 ddddddddd',
-  'TM': '+993 ddddddddd',
-  'TC': '+1 (ddd) ddd-dddd',
-  'TV': '+688 ddddddddd',
-  'VI': '+1 (ddd) ddd-dddd',
-  'UG': '+256 ddddddddd',
-  'UA': '+380 ddddddddd',
-  'AE': '+971 ddddddddd',
-  'GB': '+44 (ddd) dddd dddd',
-  'US': '+1 (ddd) ddd-dddd',
-  'UM': '+0 ddddddddd',
-  'UY': '+598 ddddddddd',
-  'UZ': '+998 ddddddddd',
-  'VU': '+678 ddddddddd',
-  'VA': '+39 ddddddddd',
-  'VE': '+58 ddddddddd',
-  'VN': '+84 ddddddddd',
-  'WF': '+681 ddddddddd',
-  'EH': '+0 ddddddddd',
-  'YE': '+967 ddddddddd',
-  'YU': '+0 ddddddddd',
-  'ZM': '+260 ddddddddd',
-  'ZW': '+263 ddddddddd'
-};
-
-/* ==========================================================
- * bootstrap-formhelpers-states.en_US.js
- * https://github.com/vlamanna/BootstrapFormHelpers
- * ==========================================================
- * Copyright 2012 Vincent Lamanna
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================================================== */
-
-var BFHStatesList = {
-  'AF':{
-    '1' : {'code':'BAL','name':'Balkh'},
-    '2' : {'code':'BAM','name':'Bamian'},
-    '3' : {'code':'BDG','name':'Badghis'},
-    '4' : {'code':'BDS','name':'Badakhshan'},
-    '5' : {'code':'BGL','name':'Baghlan'},
-    '6' : {'code':'FRA','name':'Farah'},
-    '7' : {'code':'FYB','name':'Faryab'},
-    '8' : {'code':'GHA','name':'Ghazni'},
-    '9' : {'code':'GHO','name':'Ghowr'},
-    '10' : {'code':'HEL','name':'Helmand'},
-    '11' : {'code':'HER','name':'Herat'},
-    '12' : {'code':'JOW','name':'Jowzjan'},
-    '13' : {'code':'KAB','name':'Kabul'},
-    '14' : {'code':'KAN','name':'Kandahar'},
-    '15' : {'code':'KAP','name':'Kapisa'},
-    '16' : {'code':'KDZ','name':'Kondoz'},
-    '17' : {'code':'KHO','name':'Khost'},
-    '18' : {'code':'KNR','name':'Konar'},
-    '19' : {'code':'LAG','name':'Laghman'},
-    '20' : {'code':'LOW','name':'Lowgar'},
-    '21' : {'code':'NAN','name':'Nangrahar'},
-    '22' : {'code':'NIM','name':'Nimruz'},
-    '23' : {'code':'NUR','name':'Nurestan'},
-    '24' : {'code':'ORU','name':'Oruzgan'},
-    '25' : {'code':'PAR','name':'Parwan'},
-    '26' : {'code':'PIA','name':'Paktia'},
-    '27' : {'code':'PKA','name':'Paktika'},
-    '28' : {'code':'SAM','name':'Samangan'},
-    '29' : {'code':'SAR','name':'Sar-e Pol'},
-    '30' : {'code':'TAK','name':'Takhar'},
-    '31' : {'code':'WAR','name':'Wardak'},
-    '32' : {'code':'ZAB','name':'Zabol'}
-  },
-  'AL':{
-    '1' : {'code':'BR','name':'Berat'},
-    '2' : {'code':'BU','name':'Bulqize'},
-    '3' : {'code':'DI','name':'Diber'},
-    '4' : {'code':'DL','name':'Delvine'},
-    '5' : {'code':'DR','name':'Durres'},
-    '6' : {'code':'DV','name':'Devoll'},
-    '7' : {'code':'EL','name':'Elbasan'},
-    '8' : {'code':'ER','name':'Kolonje'},
-    '9' : {'code':'FR','name':'Fier'},
-    '10' : {'code':'GJ','name':'Gjirokaster'},
-    '11' : {'code':'GR','name':'Gramsh'},
-    '12' : {'code':'HA','name':'Has'},
-    '13' : {'code':'KA','name':'Kavaje'},
-    '14' : {'code':'KB','name':'Kurbin'},
-    '15' : {'code':'KC','name':'Kucove'},
-    '16' : {'code':'KO','name':'Korce'},
-    '17' : {'code':'KR','name':'Kruje'},
-    '18' : {'code':'KU','name':'Kukes'},
-    '19' : {'code':'LB','name':'Librazhd'},
-    '20' : {'code':'LE','name':'Lezhe'},
-    '21' : {'code':'LU','name':'Lushnje'},
-    '22' : {'code':'MK','name':'Mallakaster'},
-    '23' : {'code':'MM','name':'Malesi e Madhe'},
-    '24' : {'code':'MR','name':'Mirdite'},
-    '25' : {'code':'MT','name':'Mat'},
-    '26' : {'code':'PG','name':'Pogradec'},
-    '27' : {'code':'PQ','name':'Peqin'},
-    '28' : {'code':'PR','name':'Permet'},
-    '29' : {'code':'PU','name':'Puke'},
-    '30' : {'code':'SH','name':'Shkoder'},
-    '31' : {'code':'SK','name':'Skrapar'},
-    '32' : {'code':'SR','name':'Sarande'},
-    '33' : {'code':'TE','name':'Tepelene'},
-    '34' : {'code':'TP','name':'Tropoje'},
-    '35' : {'code':'TR','name':'Tirane'},
-    '36' : {'code':'VL','name':'Vlore'}
-  },
-  'DZ':{
-    '1' : {'code':'ADE','name':'Ain Defla'},
-    '2' : {'code':'ADR','name':'Adrar'},
-    '3' : {'code':'ALG','name':'Alger'},
-    '4' : {'code':'ANN','name':'Annaba'},
-    '5' : {'code':'ATE','name':'Ain Temouchent'},
-    '6' : {'code':'BAT','name':'Batna'},
-    '7' : {'code':'BBA','name':'Bordj Bou Arreridj'},
-    '8' : {'code':'BEC','name':'Bechar'},
-    '9' : {'code':'BEJ','name':'Bejaia'},
-    '10' : {'code':'BIS','name':'Biskra'},
-    '11' : {'code':'BLI','name':'Blida'},
-    '12' : {'code':'BMD','name':'Boumerdes'},
-    '13' : {'code':'BOA','name':'Bouira'},
-    '14' : {'code':'CHL','name':'Chlef'},
-    '15' : {'code':'CON','name':'Constantine'},
-    '16' : {'code':'DJE','name':'Djelfa'},
-    '17' : {'code':'EBA','name':'El Bayadh'},
-    '18' : {'code':'EOU','name':'El Oued'},
-    '19' : {'code':'ETA','name':'El Tarf'},
-    '20' : {'code':'GHA','name':'Ghardaia'},
-    '21' : {'code':'GUE','name':'Guelma'},
-    '22' : {'code':'ILL','name':'Illizi'},
-    '23' : {'code':'JIJ','name':'Jijel'},
-    '24' : {'code':'KHE','name':'Khenchela'},
-    '25' : {'code':'LAG','name':'Laghouat'},
-    '26' : {'code':'MED','name':'Medea'},
-    '27' : {'code':'MIL','name':'Mila'},
-    '28' : {'code':'MOS','name':'Mostaganem'},
-    '29' : {'code':'MSI','name':'M\'Sila'},
-    '30' : {'code':'MUA','name':'Muaskar'},
-    '31' : {'code':'NAA','name':'Naama'},
-    '32' : {'code':'OEB','name':'Oum el-Bouaghi'},
-    '33' : {'code':'ORA','name':'Oran'},
-    '34' : {'code':'OUA','name':'Ouargla'},
-    '35' : {'code':'REL','name':'Relizane'},
-    '36' : {'code':'SAH','name':'Souk Ahras'},
-    '37' : {'code':'SAI','name':'Saida'},
-    '38' : {'code':'SBA','name':'Sidi Bel Abbes'},
-    '39' : {'code':'SET','name':'Setif'},
-    '40' : {'code':'SKI','name':'Skikda'},
-    '41' : {'code':'TAM','name':'Tamanghasset'},
-    '42' : {'code':'TEB','name':'Tebessa'},
-    '43' : {'code':'TIA','name':'Tiaret'},
-    '44' : {'code':'TIN','name':'Tindouf'},
-    '45' : {'code':'TIP','name':'Tipaza'},
-    '46' : {'code':'TIS','name':'Tissemsilt'},
-    '47' : {'code':'TLE','name':'Tlemcen'},
-    '48' : {'code':'TOU','name':'Tizi Ouzou'}
-  },
-  'AS':{
-    '1' : {'code':'E','name':'Eastern'},
-    '2' : {'code':'M','name':'Manu\'a'},
-    '3' : {'code':'R','name':'Rose Island'},
-    '4' : {'code':'S','name':'Swains Island'},
-    '5' : {'code':'W','name':'Western'}
-  },
-  'AD':{
-    '1' : {'code':'ALV','name':'Andorra la Vella'},
-    '2' : {'code':'CAN','name':'Canillo'},
-    '3' : {'code':'ENC','name':'Encamp'},
-    '4' : {'code':'ESE','name':'Escaldes-Engordany'},
-    '5' : {'code':'LMA','name':'La Massana'},
-    '6' : {'code':'ORD','name':'Ordino'},
-    '7' : {'code':'SJL','name':'Sant Julià de Lòria'}
-  },
-  'AO':{
-    '1' : {'code':'BGO','name':'Bengo'},
-    '2' : {'code':'BGU','name':'Benguela'},
-    '3' : {'code':'BIE','name':'Bie'},
-    '4' : {'code':'CAB','name':'Cabinda'},
-    '5' : {'code':'CCU','name':'Cuando-Cubango'},
-    '6' : {'code':'CNO','name':'Cuanza Norte'},
-    '7' : {'code':'CUS','name':'Cuanza Sul'},
-    '8' : {'code':'CNN','name':'Cunene'},
-    '9' : {'code':'HUA','name':'Huambo'},
-    '10' : {'code':'HUI','name':'Huila'},
-    '11' : {'code':'LUA','name':'Luanda'},
-    '12' : {'code':'LNO','name':'Lunda Norte'},
-    '13' : {'code':'LSU','name':'Lunda Sul'},
-    '14' : {'code':'MAL','name':'Malange'},
-    '15' : {'code':'MOX','name':'Moxico'},
-    '16' : {'code':'NAM','name':'Namibe'},
-    '17' : {'code':'UIG','name':'Uige'},
-    '18' : {'code':'ZAI','name':'Zaire'}
-  },
-  'AI':{
-    '1' : {'code':'ANG','name':'Anguillita'},
-    '2' : {'code':'ANG','name':'Anguila'},
-    '3' : {'code':'DOG','name':'Dog'},
-    '4' : {'code':'LIT','name':'Little Scrub'},
-    '5' : {'code':'PRI','name':'Prickly Pear'},
-    '6' : {'code':'SAN','name':'Sandy'},
-    '7' : {'code':'SCR','name':'Scrub'},
-    '8' : {'code':'SEA','name':'Seal'},
-    '9' : {'code':'SOM','name':'Sombrero'}
-  },
-  'AQ':{
-    '1' : {'code':'ASG','name':'Saint George'},
-    '2' : {'code':'ASH','name':'Saint Philip'},
-    '3' : {'code':'ASJ','name':'Saint John'},
-    '4' : {'code':'ASL','name':'Saint Paul'},
-    '5' : {'code':'ASM','name':'Saint Mary'},
-    '6' : {'code':'ASR','name':'Saint Peter'},
-    '7' : {'code':'BAR','name':'Barbuda'},
-    '8' : {'code':'RED','name':'Redonda'}
-  },
-  'AR':{
-    '1' : {'code':'AN','name':'Antartida e Islas del Atlantico'},
-    '2' : {'code':'BA','name':'Buenos Aires'},
-    '3' : {'code':'CA','name':'Catamarca'},
-    '4' : {'code':'CH','name':'Chaco'},
-    '5' : {'code':'CU','name':'Chubut'},
-    '6' : {'code':'CO','name':'Cordoba'},
-    '7' : {'code':'CR','name':'Corrientes'},
-    '8' : {'code':'CF','name':'Capital Federal'},
-    '9' : {'code':'ER','name':'Entre Rios'},
-    '10' : {'code':'FO','name':'Formosa'},
-    '11' : {'code':'JU','name':'Jujuy'},
-    '12' : {'code':'LP','name':'La Pampa'},
-    '13' : {'code':'LR','name':'La Rioja'},
-    '14' : {'code':'ME','name':'Mendoza'},
-    '15' : {'code':'MI','name':'Misiones'},
-    '16' : {'code':'NE','name':'Neuquen'},
-    '17' : {'code':'RN','name':'Rio Negro'},
-    '18' : {'code':'SA','name':'Salta'},
-    '19' : {'code':'SJ','name':'San Juan'},
-    '20' : {'code':'SL','name':'San Luis'},
-    '21' : {'code':'SC','name':'Santa Cruz'},
-    '22' : {'code':'SF','name':'Santa Fe'},
-    '23' : {'code':'SD','name':'Santiago del Estero'},
-    '24' : {'code':'TF','name':'Tierra del Fuego'},
-    '25' : {'code':'TU','name':'Tucuman'}
-  },
-  'AM':{
-    '1' : {'code':'AGT','name':'Aragatsotn'},
-    '2' : {'code':'ARR','name':'Ararat'},
-    '3' : {'code':'ARM','name':'Armavir'},
-    '4' : {'code':'GEG','name':'Geghark \'unik\''},
-    '5' : {'code':'KOT','name':'Kotayk\''},
-    '6' : {'code':'LOR','name':'Lorri'},
-    '7' : {'code':'SHI','name':'Shirak'},
-    '8' : {'code':'SYU','name':'Syunik\''},
-    '9' : {'code':'TAV','name':'Tavush'},
-    '10' : {'code':'VAY','name':'Vayots\' Dzor'},
-    '11' : {'code':'YER','name':'Yerevan'}
-  },
-  'AW':{
-    '1' : {'code':'ARU','name':'Aruba'},
-    '2' : {'code':'DRU','name':'Druif Beach'},
-    '3' : {'code':'MAN','name':'Manchebo Beach'},
-    '4' : {'code':'NOO','name':'Noord'},
-    '5' : {'code':'ORA','name':'Oranjestad'},
-    '6' : {'code':'PAL','name':'Palm Beach'},
-    '7' : {'code':'ROO','name':'Rooi Thomas'},
-    '8' : {'code':'SIN','name':'Sint Nicolaas'},
-    '9' : {'code':'SIN','name':'Sint Nicolas'},
-    '10' : {'code':'WAY','name':'Wayaca'}
-  },
-  'AU':{
-    '1' : {'code':'ACT','name':'Australian Capital Territory'},
-    '2' : {'code':'NSW','name':'New South Wales'},
-    '3' : {'code':'NT','name':'Northern Territory'},
-    '4' : {'code':'QLD','name':'Queensland'},
-    '5' : {'code':'SA','name':'South Australia'},
-    '6' : {'code':'TAS','name':'Tasmania'},
-    '7' : {'code':'VIC','name':'Victoria'},
-    '8' : {'code':'WA','name':'Western Australia'}
-  },
-  'AT':{
-    '1' : {'code':'BUR','name':'Burgenland'},
-    '2' : {'code':'KAR','name':'Krnten'},
-    '3' : {'code':'NOS','name':'Niederöesterreich'},
-    '4' : {'code':'OOS','name':'Oberöesterreich'},
-    '5' : {'code':'SAL','name':'Salzburg'},
-    '6' : {'code':'STE','name':'Steiermark'},
-    '7' : {'code':'TIR','name':'Tirol'},
-    '8' : {'code':'VOR','name':'Vorarlberg'},
-    '9' : {'code':'WIE','name':'Wien'}
-  },
-  'AZ':{
-    '1' : {'code':'AB','name':'Ali Bayramli'},
-    '2' : {'code':'ABS','name':'Abseron'},
-    '3' : {'code':'AGC','name':'AgcabAdi'},
-    '4' : {'code':'AGM','name':'Agdam'},
-    '5' : {'code':'AGS','name':'Agdas'},
-    '6' : {'code':'AGA','name':'Agstafa'},
-    '7' : {'code':'AGU','name':'Agsu'},
-    '8' : {'code':'AST','name':'Astara'},
-    '9' : {'code':'BA','name':'Baki'},
-    '10' : {'code':'BAB','name':'BabAk'},
-    '11' : {'code':'BAL','name':'BalakAn'},
-    '12' : {'code':'BAR','name':'BArdA'},
-    '13' : {'code':'BEY','name':'Beylaqan'},
-    '14' : {'code':'BIL','name':'Bilasuvar'},
-    '15' : {'code':'CAB','name':'Cabrayil'},
-    '16' : {'code':'CAL','name':'Calilabab'},
-    '17' : {'code':'CUL','name':'Culfa'},
-    '18' : {'code':'DAS','name':'Daskasan'},
-    '19' : {'code':'DAV','name':'Davaci'},
-    '20' : {'code':'FUZ','name':'Fuzuli'},
-    '21' : {'code':'GA','name':'Ganca'},
-    '22' : {'code':'GAD','name':'Gadabay'},
-    '23' : {'code':'GOR','name':'Goranboy'},
-    '24' : {'code':'GOY','name':'Goycay'},
-    '25' : {'code':'HAC','name':'Haciqabul'},
-    '26' : {'code':'IMI','name':'Imisli'},
-    '27' : {'code':'ISM','name':'Ismayilli'},
-    '28' : {'code':'KAL','name':'Kalbacar'},
-    '29' : {'code':'KUR','name':'Kurdamir'},
-    '30' : {'code':'LA','name':'Lankaran'},
-    '31' : {'code':'LAC','name':'Lacin'},
-    '32' : {'code':'LAN','name':'Lankaran'},
-    '33' : {'code':'LER','name':'Lerik'},
-    '34' : {'code':'MAS','name':'Masalli'},
-    '35' : {'code':'MI','name':'Mingacevir'},
-    '36' : {'code':'NA','name':'Naftalan'},
-    '37' : {'code':'NX','name':'Naxcivan'},
-    '38' : {'code':'NEF','name':'Neftcala'},
-    '39' : {'code':'OGU','name':'Oguz'},
-    '40' : {'code':'ORD','name':'Ordubad'},
-    '41' : {'code':'QAB','name':'Qabala'},
-    '42' : {'code':'QAX','name':'Qax'},
-    '43' : {'code':'QAZ','name':'Qazax'},
-    '44' : {'code':'QOB','name':'Qobustan'},
-    '45' : {'code':'QBA','name':'Quba'},
-    '46' : {'code':'QBI','name':'Qubadli'},
-    '47' : {'code':'QUS','name':'Qusar'},
-    '48' : {'code':'SA','name':'Saki'},
-    '49' : {'code':'SAT','name':'Saatli'},
-    '50' : {'code':'SAB','name':'Sabirabad'},
-    '51' : {'code':'SAD','name':'Sadarak'},
-    '52' : {'code':'SAH','name':'Sahbuz'},
-    '53' : {'code':'SAK','name':'Saki'},
-    '54' : {'code':'SAL','name':'Salyan'},
-    '55' : {'code':'SM','name':'Sumqayit'},
-    '56' : {'code':'SMI','name':'Samaxi'},
-    '57' : {'code':'SKR','name':'Samkir'},
-    '58' : {'code':'SMX','name':'Samux'},
-    '59' : {'code':'SAR','name':'Sarur'},
-    '60' : {'code':'SIY','name':'Siyazan'},
-    '61' : {'code':'SS','name':'Susa'},
-    '62' : {'code':'SUS','name':'Susa'},
-    '63' : {'code':'TAR','name':'Tartar'},
-    '64' : {'code':'TOV','name':'Tovuz'},
-    '65' : {'code':'UCA','name':'Ucar'},
-    '66' : {'code':'XA','name':'Xankandi'},
-    '67' : {'code':'XAC','name':'Xacmaz'},
-    '68' : {'code':'XAN','name':'Xanlar'},
-    '69' : {'code':'XIZ','name':'Xizi'},
-    '70' : {'code':'XCI','name':'Xocali'},
-    '71' : {'code':'XVD','name':'Xocavand'},
-    '72' : {'code':'YAR','name':'Yardimli'},
-    '73' : {'code':'YEV','name':'Yevlax'},
-    '74' : {'code':'ZAN','name':'Zangilan'},
-    '75' : {'code':'ZAQ','name':'Zaqatala'},
-    '76' : {'code':'ZAR','name':'Zardab'}
-  },
-  'BS':{
-    '1' : {'code':'ACK','name':'Acklins'},
-    '2' : {'code':'BER','name':'Berry Islands'},
-    '3' : {'code':'BIM','name':'Bimini'},
-    '4' : {'code':'BLK','name':'Black Point'},
-    '5' : {'code':'CAT','name':'Cat Island'},
-    '6' : {'code':'CAB','name':'Central Abaco'},
-    '7' : {'code':'CAN','name':'Central Andros'},
-    '8' : {'code':'CEL','name':'Central Eleuthera'},
-    '9' : {'code':'FRE','name':'City of Freeport'},
-    '10' : {'code':'CRO','name':'Crooked Island'},
-    '11' : {'code':'EGB','name':'East Grand Bahama'},
-    '12' : {'code':'EXU','name':'Exuma'},
-    '13' : {'code':'GRD','name':'Grand Cay'},
-    '14' : {'code':'HAR','name':'Harbour Island'},
-    '15' : {'code':'HOP','name':'Hope Town'},
-    '16' : {'code':'INA','name':'Inagua'},
-    '17' : {'code':'LNG','name':'Long Island'},
-    '18' : {'code':'MAN','name':'Mangrove Cay'},
-    '19' : {'code':'MAY','name':'Mayaguana'},
-    '20' : {'code':'MOO','name':'Moore\'s Island'},
-    '21' : {'code':'NAB','name':'North Abaco'},
-    '22' : {'code':'NAN','name':'North Andros'},
-    '23' : {'code':'NEL','name':'North Eleuthera'},
-    '24' : {'code':'RAG','name':'Ragged Island'},
-    '25' : {'code':'RUM','name':'Rum Cay'},
-    '26' : {'code':'SAL','name':'San Salvador'},
-    '27' : {'code':'SAB','name':'South Abaco'},
-    '28' : {'code':'SAN','name':'South Andros'},
-    '29' : {'code':'SEL','name':'South Eleuthera'},
-    '30' : {'code':'SWE','name':'Spanish Wells'},
-    '31' : {'code':'WGB','name':'West Grand Bahama'}
-  },
-  'BH':{
-    '1' : {'code':'CAP','name':'Capital'},
-    '2' : {'code':'CEN','name':'Central'},
-    '3' : {'code':'MUH','name':'Muharraq'},
-    '4' : {'code':'NOR','name':'Northern'},
-    '5' : {'code':'SOU','name':'Southern'}
-  },
-  'BD':{
-    '1' : {'code':'BAR','name':'Barisal'},
-    '2' : {'code':'CHI','name':'Chittagong'},
-    '3' : {'code':'DHA','name':'Dhaka'},
-    '4' : {'code':'KHU','name':'Khulna'},
-    '5' : {'code':'RAJ','name':'Rajshahi'},
-    '6' : {'code':'SYL','name':'Sylhet'}
-  },
-  'BB':{
-    '1' : {'code':'CC','name':'Christ Church'},
-    '2' : {'code':'AND','name':'Saint Andrew'},
-    '3' : {'code':'GEO','name':'Saint George'},
-    '4' : {'code':'JAM','name':'Saint James'},
-    '5' : {'code':'JOH','name':'Saint John'},
-    '6' : {'code':'JOS','name':'Saint Joseph'},
-    '7' : {'code':'LUC','name':'Saint Lucy'},
-    '8' : {'code':'MIC','name':'Saint Michael'},
-    '9' : {'code':'PET','name':'Saint Peter'},
-    '10' : {'code':'PHI','name':'Saint Philip'},
-    '11' : {'code':'THO','name':'Saint Thomas'}
-  },
-  'BY':{
-    '1' : {'code':'BR','name':'Brestskaya (Brest)'},
-    '2' : {'code':'HO','name':'Homyel\'skaya (Homyel\')'},
-    '3' : {'code':'HM','name':'Horad Minsk'},
-    '4' : {'code':'HR','name':'Hrodzyenskaya (Hrodna)'},
-    '5' : {'code':'MA','name':'Mahilyowskaya (Mahilyow)'},
-    '6' : {'code':'MI','name':'Minskaya'},
-    '7' : {'code':'VI','name':'Vitsyebskaya (Vitsyebsk)'}
-  },
-  'BE':{
-    '1' : {'code':'VAN','name':'Antwerpen'},
-    '2' : {'code':'WBR','name':'Brabant Wallon'},
-    '3' : {'code':'WHT','name':'Hainaut'},
-    '4' : {'code':'WLG','name':'Liege'},
-    '5' : {'code':'VLI','name':'Limburg'},
-    '6' : {'code':'WLX','name':'Luxembourg'},
-    '7' : {'code':'WNA','name':'Namur'},
-    '8' : {'code':'VOV','name':'Oost-Vlaanderen'},
-    '9' : {'code':'VBR','name':'Vlaams Brabant'},
-    '10' : {'code':'VWV','name':'West-Vlaanderen'}
-  },
-  'BZ':{
-    '1' : {'code':'BZ','name':'Belize'},
-    '2' : {'code':'CY','name':'Cayo'},
-    '3' : {'code':'CR','name':'Corozal'},
-    '4' : {'code':'OW','name':'Orange Walk'},
-    '5' : {'code':'SC','name':'Stann Creek'},
-    '6' : {'code':'TO','name':'Toledo'}
-  },
-  'BJ':{
-    '1' : {'code':'AL','name':'Alibori'},
-    '2' : {'code':'AK','name':'Atakora'},
-    '3' : {'code':'AQ','name':'Atlantique'},
-    '4' : {'code':'BO','name':'Borgou'},
-    '5' : {'code':'CO','name':'Collines'},
-    '6' : {'code':'DO','name':'Donga'},
-    '7' : {'code':'KO','name':'Kouffo'},
-    '8' : {'code':'LI','name':'Littoral'},
-    '9' : {'code':'MO','name':'Mono'},
-    '10' : {'code':'OU','name':'Oueme'},
-    '11' : {'code':'PL','name':'Plateau'},
-    '12' : {'code':'ZO','name':'Zou'}
-  },
-  'BM':{
-    '1' : {'code':'DS','name':'Devonshire'},
-    '2' : {'code':'HC','name':'Hamilton City'},
-    '3' : {'code':'HA','name':'Hamilton'},
-    '4' : {'code':'PG','name':'Paget'},
-    '5' : {'code':'PB','name':'Pembroke'},
-    '6' : {'code':'GC','name':'Saint George City'},
-    '7' : {'code':'SG','name':'Saint George\'s'},
-    '8' : {'code':'SA','name':'Sandys'},
-    '9' : {'code':'SM','name':'Smith\'s'},
-    '10' : {'code':'SH','name':'Southampton'},
-    '11' : {'code':'WA','name':'Warwick'}
-  },
-  'BT':{
-    '1' : {'code':'BUM','name':'Bumthang'},
-    '2' : {'code':'CHU','name':'Chukha'},
-    '3' : {'code':'DAG','name':'Dagana'},
-    '4' : {'code':'GAS','name':'Gasa'},
-    '5' : {'code':'HAA','name':'Haa'},
-    '6' : {'code':'LHU','name':'Lhuntse'},
-    '7' : {'code':'MON','name':'Mongar'},
-    '8' : {'code':'PAR','name':'Paro'},
-    '9' : {'code':'PEM','name':'Pemagatshel'},
-    '10' : {'code':'PUN','name':'Punakha'},
-    '11' : {'code':'SJO','name':'Samdrup Jongkhar'},
-    '12' : {'code':'SAT','name':'Samtse'},
-    '13' : {'code':'SAR','name':'Sarpang'},
-    '14' : {'code':'THI','name':'Thimphu'},
-    '15' : {'code':'TRG','name':'Trashigang'},
-    '16' : {'code':'TRY','name':'Trashiyangste'},
-    '17' : {'code':'TRO','name':'Trongsa'},
-    '18' : {'code':'TSI','name':'Tsirang'},
-    '19' : {'code':'WPH','name':'Wangdue Phodrang'},
-    '20' : {'code':'ZHE','name':'Zhemgang'}
-  },
-  'BO':{
-    '1' : {'code':'BEN','name':'Beni'},
-    '2' : {'code':'CHU','name':'Chuquisaca'},
-    '3' : {'code':'COC','name':'Cochabamba'},
-    '4' : {'code':'LPZ','name':'La Paz'},
-    '5' : {'code':'ORU','name':'Oruro'},
-    '6' : {'code':'PAN','name':'Pando'},
-    '7' : {'code':'POT','name':'Potosi'},
-    '8' : {'code':'SCZ','name':'Santa Cruz'},
-    '9' : {'code':'TAR','name':'Tarija'}
-  },
-  'BA':{
-    '1' : {'code':'BRO','name':'Brcko district'},
-    '2' : {'code':'FBP','name':'Bosanskopodrinjski Kanton'},
-    '3' : {'code':'FHN','name':'Hercegovacko-neretvanski Kanton'},
-    '4' : {'code':'FPO','name':'Posavski Kanton'},
-    '5' : {'code':'FSA','name':'Kanton Sarajevo'},
-    '6' : {'code':'FSB','name':'Srednjebosanski Kanton'},
-    '7' : {'code':'FTU','name':'Tuzlanski Kanton'},
-    '8' : {'code':'FUS','name':'Unsko-Sanski Kanton'},
-    '9' : {'code':'FZA','name':'Zapadnobosanska'},
-    '10' : {'code':'FZE','name':'Zenicko-Dobojski Kanton'},
-    '11' : {'code':'FZH','name':'Zapadnohercegovacka Zupanija'},
-    '12' : {'code':'SBI','name':'Bijeljina'},
-    '13' : {'code':'SBL','name':'Banja Luka'},
-    '14' : {'code':'SDO','name':'Doboj'},
-    '15' : {'code':'SFO','name':'Foca'},
-    '16' : {'code':'SSR','name':'Sarajevo-Romanija or Sokolac'},
-    '17' : {'code':'STR','name':'Trebinje'},
-    '18' : {'code':'SVL','name':'Vlasenica'}
-  },
-  'BW':{
-    '1' : {'code':'CE','name':'Central'},
-    '2' : {'code':'GH','name':'Ghanzi'},
-    '3' : {'code':'KD','name':'Kgalagadi'},
-    '4' : {'code':'KT','name':'Kgatleng'},
-    '5' : {'code':'KW','name':'Kweneng'},
-    '6' : {'code':'NG','name':'Ngamiland'},
-    '7' : {'code':'NE','name':'North East'},
-    '8' : {'code':'NW','name':'North West'},
-    '9' : {'code':'SE','name':'South East'},
-    '10' : {'code':'SO','name':'Southern'}
-  },
-  'BR':{
-    '1' : {'code':'AC','name':'Acre'},
-    '2' : {'code':'AL','name':'Alagoas'},
-    '3' : {'code':'AP','name':'Amapa'},
-    '4' : {'code':'AM','name':'Amazonas'},
-    '5' : {'code':'BA','name':'Bahia'},
-    '6' : {'code':'CE','name':'Ceara'},
-    '7' : {'code':'DF','name':'Distrito Federal'},
-    '8' : {'code':'ES','name':'Espirito Santo'},
-    '9' : {'code':'GO','name':'Goias'},
-    '10' : {'code':'MA','name':'Maranhao'},
-    '11' : {'code':'MT','name':'Mato Grosso'},
-    '12' : {'code':'MS','name':'Mato Grosso do Sul'},
-    '13' : {'code':'MG','name':'Minas Gerais'},
-    '14' : {'code':'PA','name':'Para'},
-    '15' : {'code':'PB','name':'Paraiba'},
-    '16' : {'code':'PR','name':'Parana'},
-    '17' : {'code':'PE','name':'Pernambuco'},
-    '18' : {'code':'PI','name':'Piaui'},
-    '19' : {'code':'RJ','name':'Rio de Janeiro'},
-    '20' : {'code':'RN','name':'Rio Grande do Norte'},
-    '21' : {'code':'RS','name':'Rio Grande do Sul'},
-    '22' : {'code':'RO','name':'Rondonia'},
-    '23' : {'code':'RR','name':'Roraima'},
-    '24' : {'code':'SC','name':'Santa Catarina'},
-    '25' : {'code':'SP','name':'Sao Paulo'},
-    '26' : {'code':'SE','name':'Sergipe'},
-    '27' : {'code':'TO','name':'Tocantins'}
-  },
-  'IO':{
-    '1' : {'code':'DG','name':'Diego Garcia'},
-    '2' : {'code':'DI','name':'Danger Island'},
-    '3' : {'code':'EA','name':'Eagle Islands'},
-    '4' : {'code':'EG','name':'Egmont Islands'},
-    '5' : {'code':'NI','name':'Nelsons Island'},
-    '6' : {'code':'PB','name':'Peros Banhos'},
-    '7' : {'code':'SI','name':'Salomon Islands'},
-    '8' : {'code':'TB','name':'Three Brothers'}
-  },
-  'BN':{
-    '1' : {'code':'BEL','name':'Belait'},
-    '2' : {'code':'BRM','name':'Brunei and Muara'},
-    '3' : {'code':'TEM','name':'Temburong'},
-    '4' : {'code':'TUT','name':'Tutong'}
-  },
-  'BG':{
-    '1' : {'code':'BG-01','name':'Blagoevgrad'},
-    '2' : {'code':'BG-02','name':'Burgas'},
-    '3' : {'code':'BG-03','name':'Dobrich'},
-    '4' : {'code':'BG-04','name':'Gabrovo'},
-    '5' : {'code':'BG-05','name':'Haskovo'},
-    '6' : {'code':'BG-06','name':'Kardjali'},
-    '7' : {'code':'BG-07','name':'Kyustendil'},
-    '8' : {'code':'BG-08','name':'Lovech'},
-    '9' : {'code':'BG-09','name':'Montana'},
-    '10' : {'code':'BG-10','name':'Pazardjik'},
-    '11' : {'code':'BG-11','name':'Pernik'},
-    '12' : {'code':'BG-12','name':'Pleven'},
-    '13' : {'code':'BG-13','name':'Plovdiv'},
-    '14' : {'code':'BG-14','name':'Razgrad'},
-    '15' : {'code':'BG-15','name':'Shumen'},
-    '16' : {'code':'BG-16','name':'Silistra'},
-    '17' : {'code':'BG-17','name':'Sliven'},
-    '18' : {'code':'BG-18','name':'Smolyan'},
-    '19' : {'code':'BG-19','name':'Sofia'},
-    '20' : {'code':'BG-20','name':'Sofia - town'},
-    '21' : {'code':'BG-21','name':'Stara Zagora'},
-    '22' : {'code':'BG-22','name':'Targovishte'},
-    '23' : {'code':'BG-23','name':'Varna'},
-    '24' : {'code':'BG-24','name':'Veliko Tarnovo'},
-    '25' : {'code':'BG-25','name':'Vidin'},
-    '26' : {'code':'BG-26','name':'Vratza'},
-    '27' : {'code':'BG-27','name':'Yambol'}
-  },
-  'BF':{
-    '1' : {'code':'BAL','name':'Bale'},
-    '2' : {'code':'BAM','name':'Bam'},
-    '3' : {'code':'BAN','name':'Banwa'},
-    '4' : {'code':'BAZ','name':'Bazega'},
-    '5' : {'code':'BOR','name':'Bougouriba'},
-    '6' : {'code':'BLG','name':'Boulgou'},
-    '7' : {'code':'BOK','name':'Boulkiemde'},
-    '8' : {'code':'COM','name':'Comoe'},
-    '9' : {'code':'GAN','name':'Ganzourgou'},
-    '10' : {'code':'GNA','name':'Gnagna'},
-    '11' : {'code':'GOU','name':'Gourma'},
-    '12' : {'code':'HOU','name':'Houet'},
-    '13' : {'code':'IOA','name':'Ioba'},
-    '14' : {'code':'KAD','name':'Kadiogo'},
-    '15' : {'code':'KEN','name':'Kenedougou'},
-    '16' : {'code':'KOD','name':'Komondjari'},
-    '17' : {'code':'KOP','name':'Kompienga'},
-    '18' : {'code':'KOS','name':'Kossi'},
-    '19' : {'code':'KOL','name':'Koulpelogo'},
-    '20' : {'code':'KOT','name':'Kouritenga'},
-    '21' : {'code':'KOW','name':'Kourweogo'},
-    '22' : {'code':'LER','name':'Leraba'},
-    '23' : {'code':'LOR','name':'Loroum'},
-    '24' : {'code':'MOU','name':'Mouhoun'},
-    '25' : {'code':'NAH','name':'Nahouri'},
-    '26' : {'code':'NAM','name':'Namentenga'},
-    '27' : {'code':'NAY','name':'Nayala'},
-    '28' : {'code':'NOU','name':'Noumbiel'},
-    '29' : {'code':'OUB','name':'Oubritenga'},
-    '30' : {'code':'OUD','name':'Oudalan'},
-    '31' : {'code':'PAS','name':'Passore'},
-    '32' : {'code':'PON','name':'Poni'},
-    '33' : {'code':'SAG','name':'Sanguie'},
-    '34' : {'code':'SAM','name':'Sanmatenga'},
-    '35' : {'code':'SEN','name':'Seno'},
-    '36' : {'code':'SIS','name':'Sissili'},
-    '37' : {'code':'SOM','name':'Soum'},
-    '38' : {'code':'SOR','name':'Sourou'},
-    '39' : {'code':'TAP','name':'Tapoa'},
-    '40' : {'code':'TUY','name':'Tuy'},
-    '41' : {'code':'YAG','name':'Yagha'},
-    '42' : {'code':'YAT','name':'Yatenga'},
-    '43' : {'code':'ZIR','name':'Ziro'},
-    '44' : {'code':'ZOD','name':'Zondoma'},
-    '45' : {'code':'ZOW','name':'Zoundweogo'}
-  },
-  'BI':{
-    '1' : {'code':'BB','name':'Bubanza'},
-    '2' : {'code':'BJ','name':'Bujumbura'},
-    '3' : {'code':'BR','name':'Bururi'},
-    '4' : {'code':'CA','name':'Cankuzo'},
-    '5' : {'code':'CI','name':'Cibitoke'},
-    '6' : {'code':'GI','name':'Gitega'},
-    '7' : {'code':'KR','name':'Karuzi'},
-    '8' : {'code':'KY','name':'Kayanza'},
-    '9' : {'code':'KI','name':'Kirundo'},
-    '10' : {'code':'MA','name':'Makamba'},
-    '11' : {'code':'MU','name':'Muramvya'},
-    '12' : {'code':'MY','name':'Muyinga'},
-    '13' : {'code':'MW','name':'Mwaro'},
-    '14' : {'code':'NG','name':'Ngozi'},
-    '15' : {'code':'RT','name':'Rutana'},
-    '16' : {'code':'RY','name':'Ruyigi'}
-  },
-  'KH':{
-    '1' : {'code':'BA','name':'Battambang'},
-    '2' : {'code':'BM','name':'Banteay Meanchey'},
-    '3' : {'code':'KB','name':'Keb'},
-    '4' : {'code':'KK','name':'Kaoh Kong'},
-    '5' : {'code':'KL','name':'Kandal'},
-    '6' : {'code':'KM','name':'Kampong Cham'},
-    '7' : {'code':'KN','name':'Kampong Chhnang'},
-    '8' : {'code':'KO','name':'Kampong Som'},
-    '9' : {'code':'KP','name':'Kampot'},
-    '10' : {'code':'KR','name':'Kratie'},
-    '11' : {'code':'KT','name':'Kampong Thom'},
-    '12' : {'code':'KU','name':'Kampong Speu'},
-    '13' : {'code':'MK','name':'Mondul Kiri'},
-    '14' : {'code':'OM','name':'Oddar Meancheay'},
-    '15' : {'code':'PA','name':'Pailin'},
-    '16' : {'code':'PG','name':'Prey Veng'},
-    '17' : {'code':'PP','name':'Phnom Penh'},
-    '18' : {'code':'PR','name':'Preah Vihear'},
-    '19' : {'code':'PS','name':'Preah Seihanu (Kompong Som or Si)'},
-    '20' : {'code':'PU','name':'Pursat'},
-    '21' : {'code':'RK','name':'Ratanak Kiri'},
-    '22' : {'code':'SI','name':'Siemreap'},
-    '23' : {'code':'SR','name':'Svay Rieng'},
-    '24' : {'code':'ST','name':'Stung Treng'},
-    '25' : {'code':'TK','name':'Takeo'}
-  },
-  'CM':{
-    '1' : {'code':'ADA','name':'Adamawa (Adamaoua)'},
-    '2' : {'code':'CEN','name':'Centre'},
-    '3' : {'code':'EST','name':'East (Est)'},
-    '4' : {'code':'EXN','name':'Extrême-Nord'},
-    '5' : {'code':'LIT','name':'Littoral'},
-    '6' : {'code':'NOR','name':'North (Nord)'},
-    '7' : {'code':'NOT','name':'Northwest (Nord-Ouest)'},
-    '8' : {'code':'OUE','name':'West (Ouest)'},
-    '9' : {'code':'SUD','name':'South (Sud)'},
-    '10' : {'code':'SOU','name':'Southwest (Sud-Ouest)'}
-  },
-  'CA':{
-    '1' : {'code':'AB','name':'Alberta'},
-    '2' : {'code':'BC','name':'British Columbia'},
-    '3' : {'code':'MB','name':'Manitoba'},
-    '4' : {'code':'NB','name':'New Brunswick'},
-    '5' : {'code':'NL','name':'Newfoundland and Labrador'},
-    '6' : {'code':'NT','name':'Northwest Territories'},
-    '7' : {'code':'NS','name':'Nova Scotia'},
-    '8' : {'code':'NU','name':'Nunavut'},
-    '9' : {'code':'ON','name':'Ontario'},
-    '10' : {'code':'PE','name':'Prince Edward Island'},
-    '11' : {'code':'QC','name':'Québec'},
-    '12' : {'code':'SK','name':'Saskatchewan'},
-    '13' : {'code':'YT','name':'Yukon Territory'}
-  },
-  'CV':{
-    '1' : {'code':'BV','name':'Boa Vista'},
-    '2' : {'code':'BR','name':'Brava'},
-    '3' : {'code':'CS','name':'Calheta de Sao Miguel'},
-    '4' : {'code':'MA','name':'Maio'},
-    '5' : {'code':'MO','name':'Mosteiros'},
-    '6' : {'code':'PA','name':'Paul'},
-    '7' : {'code':'PN','name':'Porto Novo'},
-    '8' : {'code':'PR','name':'Praia'},
-    '9' : {'code':'RG','name':'Ribeira Grande'},
-    '10' : {'code':'SL','name':'Sal'},
-    '11' : {'code':'CA','name':'Santa Catarina'},
-    '12' : {'code':'CR','name':'Santa Cruz'},
-    '13' : {'code':'SD','name':'Sao Domingos'},
-    '14' : {'code':'SF','name':'Sao Filipe'},
-    '15' : {'code':'SN','name':'Sao Nicolau'},
-    '16' : {'code':'SV','name':'Sao Vicente'},
-    '17' : {'code':'TA','name':'Tarrafal'}
-  },
-  'KY':{
-    '1' : {'code':'CR','name':'Creek'},
-    '2' : {'code':'EA','name':'Eastern'},
-    '3' : {'code':'ML','name':'Midland'},
-    '4' : {'code':'ST','name':'South Town'},
-    '5' : {'code':'SP','name':'Spot Bay'},
-    '6' : {'code':'SK','name':'Stake Bay'},
-    '7' : {'code':'WD','name':'West End'},
-    '8' : {'code':'WN','name':'Western'}
-  },
-  'CF':{
-    '1' : {'code':'BAN','name':'Bangui'},
-    '2' : {'code':'BBA','name':'Bamingui-Bangoran'},
-    '3' : {'code':'BKO','name':'Basse-Kotto'},
-    '4' : {'code':'HKO','name':'Haute-Kotto'},
-    '5' : {'code':'HMB','name':'Haut-Mbomou'},
-    '6' : {'code':'KEM','name':'Kemo'},
-    '7' : {'code':'LOB','name':'Lobaye'},
-    '8' : {'code':'MBO','name':'Mbomou'},
-    '9' : {'code':'MKD','name':'Mambéré-Kadéï'},
-    '10' : {'code':'NGR','name':'Nana-Grebizi'},
-    '11' : {'code':'NMM','name':'Nana-Mambere'},
-    '12' : {'code':'OMP','name':'Ombella-M\'Poko'},
-    '13' : {'code':'OPE','name':'Ouham-Pende'},
-    '14' : {'code':'OUH','name':'Ouham'},
-    '15' : {'code':'OUK','name':'Ouaka'},
-    '16' : {'code':'SMB','name':'Sangha-Mbaere'},
-    '17' : {'code':'VAK','name':'Vakaga'}
-  },
-  'TD':{
-    '1' : {'code':'BA','name':'Batha'},
-    '2' : {'code':'BI','name':'Biltine'},
-    '3' : {'code':'BE','name':'Borkou-Ennedi-Tibesti'},
-    '4' : {'code':'CB','name':'Chari-Baguirmi'},
-    '5' : {'code':'GU','name':'Guera'},
-    '6' : {'code':'KA','name':'Kanem'},
-    '7' : {'code':'LA','name':'Lac'},
-    '8' : {'code':'LC','name':'Logone Occidental'},
-    '9' : {'code':'LR','name':'Logone Oriental'},
-    '10' : {'code':'MK','name':'Mayo-Kebbi'},
-    '11' : {'code':'MC','name':'Moyen-Chari'},
-    '12' : {'code':'OU','name':'Ouaddai'},
-    '13' : {'code':'SA','name':'Salamat'},
-    '14' : {'code':'TA','name':'Tandjile'}
-  },
-  'CL':{
-    '1' : {'code':'AI','name':'Aisen del General Carlos Ibanez'},
-    '2' : {'code':'AN','name':'Antofagasta'},
-    '3' : {'code':'AR','name':'Araucania'},
-    '4' : {'code':'AT','name':'Atacama'},
-    '5' : {'code':'BI','name':'Bio-Bio'},
-    '6' : {'code':'CO','name':'Coquimbo'},
-    '7' : {'code':'LI','name':'Libertador General Bernardo O\'Hi'},
-    '8' : {'code':'LL','name':'Los Lagos'},
-    '9' : {'code':'MA','name':'Magallanes y de la Antartica Chi'},
-    '10' : {'code':'ML','name':'Maule'},
-    '11' : {'code':'RM','name':'Region Metropolitana'},
-    '12' : {'code':'TA','name':'Tarapaca'},
-    '13' : {'code':'VS','name':'Valparaiso'}
-  },
-  'CN':{
-    '1' : {'code':'AN','name':'Anhui'},
-    '2' : {'code':'BE','name':'Beijing'},
-    '3' : {'code':'CH','name':'Chongqing'},
-    '4' : {'code':'FU','name':'Fujian'},
-    '5' : {'code':'GA','name':'Gansu'},
-    '6' : {'code':'GU','name':'Guangdong'},
-    '7' : {'code':'GX','name':'Guangxi'},
-    '8' : {'code':'GZ','name':'Guizhou'},
-    '9' : {'code':'HA','name':'Hainan'},
-    '10' : {'code':'HB','name':'Hebei'},
-    '11' : {'code':'HL','name':'Heilongjiang'},
-    '12' : {'code':'HE','name':'Henan'},
-    '13' : {'code':'HK','name':'Hong Kong'},
-    '14' : {'code':'HU','name':'Hubei'},
-    '15' : {'code':'HN','name':'Hunan'},
-    '16' : {'code':'IM','name':'Inner Mongolia'},
-    '17' : {'code':'JI','name':'Jiangsu'},
-    '18' : {'code':'JX','name':'Jiangxi'},
-    '19' : {'code':'JL','name':'Jilin'},
-    '20' : {'code':'LI','name':'Liaoning'},
-    '21' : {'code':'MA','name':'Macau'},
-    '22' : {'code':'NI','name':'Ningxia'},
-    '23' : {'code':'SH','name':'Shaanxi'},
-    '24' : {'code':'SA','name':'Shandong'},
-    '25' : {'code':'SG','name':'Shanghai'},
-    '26' : {'code':'SX','name':'Shanxi'},
-    '27' : {'code':'SI','name':'Sichuan'},
-    '28' : {'code':'TI','name':'Tianjin'},
-    '29' : {'code':'XI','name':'Xinjiang'},
-    '30' : {'code':'YU','name':'Yunnan'},
-    '31' : {'code':'ZH','name':'Zhejiang'}
-  },
-  'CC':{
-    '1' : {'code':'D','name':'Direction Island'},
-    '2' : {'code':'H','name':'Home Island'},
-    '3' : {'code':'O','name':'Horsburgh Island'},
-    '4' : {'code':'S','name':'South Island'},
-    '5' : {'code':'W','name':'West Island'}
-  },
-  'CO':{
-    '1' : {'code':'AMZ','name':'Amazonas'},
-    '2' : {'code':'ANT','name':'Antioquia'},
-    '3' : {'code':'ARA','name':'Arauca'},
-    '4' : {'code':'ATL','name':'Atlantico'},
-    '5' : {'code':'BDC','name':'Bogota D.C.'},
-    '6' : {'code':'BOL','name':'Bolivar'},
-    '7' : {'code':'BOY','name':'Boyaca'},
-    '8' : {'code':'CAL','name':'Caldas'},
-    '9' : {'code':'CAQ','name':'Caqueta'},
-    '10' : {'code':'CAS','name':'Casanare'},
-    '11' : {'code':'CAU','name':'Cauca'},
-    '12' : {'code':'CES','name':'Cesar'},
-    '13' : {'code':'CHO','name':'Choco'},
-    '14' : {'code':'COR','name':'Cordoba'},
-    '15' : {'code':'CAM','name':'Cundinamarca'},
-    '16' : {'code':'GNA','name':'Guainia'},
-    '17' : {'code':'GJR','name':'Guajira'},
-    '18' : {'code':'GVR','name':'Guaviare'},
-    '19' : {'code':'HUI','name':'Huila'},
-    '20' : {'code':'MAG','name':'Magdalena'},
-    '21' : {'code':'MET','name':'Meta'},
-    '22' : {'code':'NAR','name':'Narino'},
-    '23' : {'code':'NDS','name':'Norte de Santander'},
-    '24' : {'code':'PUT','name':'Putumayo'},
-    '25' : {'code':'QUI','name':'Quindio'},
-    '26' : {'code':'RIS','name':'Risaralda'},
-    '27' : {'code':'SAP','name':'San Andres y Providencia'},
-    '28' : {'code':'SAN','name':'Santander'},
-    '29' : {'code':'SUC','name':'Sucre'},
-    '30' : {'code':'TOL','name':'Tolima'},
-    '31' : {'code':'VDC','name':'Valle del Cauca'},
-    '32' : {'code':'VAU','name':'Vaupes'},
-    '33' : {'code':'VIC','name':'Vichada'}
-  },
-  'KM':{
-    '1' : {'code':'G','name':'Grande Comore'},
-    '2' : {'code':'A','name':'Anjouan'},
-    '3' : {'code':'M','name':'Moheli'}
-  },
-  'CG':{
-    '1' : {'code':'BO','name':'Bouenza'},
-    '2' : {'code':'BR','name':'Brazzaville'},
-    '3' : {'code':'CU','name':'Cuvette'},
-    '4' : {'code':'CO','name':'Cuvette-Ouest'},
-    '5' : {'code':'KO','name':'Kouilou'},
-    '6' : {'code':'LE','name':'Lekoumou'},
-    '7' : {'code':'LI','name':'Likouala'},
-    '8' : {'code':'NI','name':'Niari'},
-    '9' : {'code':'PL','name':'Plateaux'},
-    '10' : {'code':'PO','name':'Pool'},
-    '11' : {'code':'SA','name':'Sangha'}
-  },
-  'CK':{
-    '1' : {'code':'AI','name':'Aitutaki'},
-    '2' : {'code':'AT','name':'Atiu'},
-    '3' : {'code':'MA','name':'Manuae'},
-    '4' : {'code':'MG','name':'Mangaia'},
-    '5' : {'code':'MK','name':'Manihiki'},
-    '6' : {'code':'MT','name':'Mitiaro'},
-    '7' : {'code':'MU','name':'Mauke'},
-    '8' : {'code':'NI','name':'Nassau Island'},
-    '9' : {'code':'PA','name':'Palmerston'},
-    '10' : {'code':'PE','name':'Penrhyn'},
-    '11' : {'code':'PU','name':'Pukapuka'},
-    '12' : {'code':'RK','name':'Rakahanga'},
-    '13' : {'code':'RR','name':'Rarotonga'},
-    '14' : {'code':'SU','name':'Surwarrow'},
-    '15' : {'code':'TA','name':'Takutea'}
-  },
-  'CR':{
-    '1' : {'code':'AL','name':'Alajuela'},
-    '2' : {'code':'CA','name':'Cartago'},
-    '3' : {'code':'GU','name':'Guanacaste'},
-    '4' : {'code':'HE','name':'Heredia'},
-    '5' : {'code':'LI','name':'Limon'},
-    '6' : {'code':'PU','name':'Puntarenas'},
-    '7' : {'code':'SJ','name':'San Jose'}
-  },
-  'CI':{
-    '1' : {'code':'ABE','name':'Abengourou'},
-    '2' : {'code':'ABI','name':'Abidjan'},
-    '3' : {'code':'ABO','name':'Aboisso'},
-    '4' : {'code':'ADI','name':'Adiake'},
-    '5' : {'code':'ADZ','name':'Adzope'},
-    '6' : {'code':'AGB','name':'Agboville'},
-    '7' : {'code':'AGN','name':'Agnibilekrou'},
-    '8' : {'code':'ALE','name':'Alepe'},
-    '9' : {'code':'BOC','name':'Bocanda'},
-    '10' : {'code':'BAN','name':'Bangolo'},
-    '11' : {'code':'BEO','name':'Beoumi'},
-    '12' : {'code':'BIA','name':'Biankouma'},
-    '13' : {'code':'BDK','name':'Bondoukou'},
-    '14' : {'code':'BGN','name':'Bongouanou'},
-    '15' : {'code':'BFL','name':'Bouafle'},
-    '16' : {'code':'BKE','name':'Bouake'},
-    '17' : {'code':'BNA','name':'Bouna'},
-    '18' : {'code':'BDL','name':'Boundiali'},
-    '19' : {'code':'DKL','name':'Dabakala'},
-    '20' : {'code':'DBU','name':'Dabou'},
-    '21' : {'code':'DAL','name':'Daloa'},
-    '22' : {'code':'DAN','name':'Danane'},
-    '23' : {'code':'DAO','name':'Daoukro'},
-    '24' : {'code':'DIM','name':'Dimbokro'},
-    '25' : {'code':'DIV','name':'Divo'},
-    '26' : {'code':'DUE','name':'Duekoue'},
-    '27' : {'code':'FER','name':'Ferkessedougou'},
-    '28' : {'code':'GAG','name':'Gagnoa'},
-    '29' : {'code':'GBA','name':'Grand-Bassam'},
-    '30' : {'code':'GLA','name':'Grand-Lahou'},
-    '31' : {'code':'GUI','name':'Guiglo'},
-    '32' : {'code':'ISS','name':'Issia'},
-    '33' : {'code':'JAC','name':'Jacqueville'},
-    '34' : {'code':'KAT','name':'Katiola'},
-    '35' : {'code':'KOR','name':'Korhogo'},
-    '36' : {'code':'LAK','name':'Lakota'},
-    '37' : {'code':'MAN','name':'Man'},
-    '38' : {'code':'MKN','name':'Mankono'},
-    '39' : {'code':'MBA','name':'Mbahiakro'},
-    '40' : {'code':'ODI','name':'Odienne'},
-    '41' : {'code':'OUM','name':'Oume'},
-    '42' : {'code':'SAK','name':'Sakassou'},
-    '43' : {'code':'SPE','name':'San-Pedro'},
-    '44' : {'code':'SAS','name':'Sassandra'},
-    '45' : {'code':'SEG','name':'Seguela'},
-    '46' : {'code':'SIN','name':'Sinfra'},
-    '47' : {'code':'SOU','name':'Soubre'},
-    '48' : {'code':'TAB','name':'Tabou'},
-    '49' : {'code':'TAN','name':'Tanda'},
-    '50' : {'code':'TIE','name':'Tiebissou'},
-    '51' : {'code':'TIN','name':'Tingrela'},
-    '52' : {'code':'TIA','name':'Tiassale'},
-    '53' : {'code':'TBA','name':'Touba'},
-    '54' : {'code':'TLP','name':'Toulepleu'},
-    '55' : {'code':'TMD','name':'Toumodi'},
-    '56' : {'code':'VAV','name':'Vavoua'},
-    '57' : {'code':'YAM','name':'Yamoussoukro'},
-    '58' : {'code':'ZUE','name':'Zuenoula'}
-  },
-  'HR':{
-    '1' : {'code':'BB','name':'Bjelovar-Bilogora'},
-    '2' : {'code':'CZ','name':'City of Zagreb'},
-    '3' : {'code':'DN','name':'Dubrovnik-Neretva'},
-    '4' : {'code':'IS','name':'Istra'},
-    '5' : {'code':'KA','name':'Karlovac'},
-    '6' : {'code':'KK','name':'Koprivnica-Krizevci'},
-    '7' : {'code':'KZ','name':'Krapina-Zagorje'},
-    '8' : {'code':'LS','name':'Lika-Senj'},
-    '9' : {'code':'ME','name':'Medimurje'},
-    '10' : {'code':'OB','name':'Osijek-Baranja'},
-    '11' : {'code':'PS','name':'Pozega-Slavonia'},
-    '12' : {'code':'PG','name':'Primorje-Gorski Kotar'},
-    '13' : {'code':'SI','name':'Sibenik'},
-    '14' : {'code':'SM','name':'Sisak-Moslavina'},
-    '15' : {'code':'SB','name':'Slavonski Brod-Posavina'},
-    '16' : {'code':'SD','name':'Split-Dalmatia'},
-    '17' : {'code':'VA','name':'Varazdin'},
-    '18' : {'code':'VP','name':'Virovitica-Podravina'},
-    '19' : {'code':'VS','name':'Vukovar-Srijem'},
-    '20' : {'code':'ZK','name':'Zadar-Knin'},
-    '21' : {'code':'ZA','name':'Zagreb'}
-  },
-  'CU':{
-    '1' : {'code':'CA','name':'Camaguey'},
-    '2' : {'code':'CD','name':'Ciego de Avila'},
-    '3' : {'code':'CI','name':'Cienfuegos'},
-    '4' : {'code':'CH','name':'Ciudad de La Habana'},
-    '5' : {'code':'GR','name':'Granma'},
-    '6' : {'code':'GU','name':'Guantanamo'},
-    '7' : {'code':'HO','name':'Holguin'},
-    '8' : {'code':'IJ','name':'Isla de la Juventud'},
-    '9' : {'code':'LH','name':'La Habana'},
-    '10' : {'code':'LT','name':'Las Tunas'},
-    '11' : {'code':'MA','name':'Matanzas'},
-    '12' : {'code':'PR','name':'Pinar del Rio'},
-    '13' : {'code':'SS','name':'Sancti Spiritus'},
-    '14' : {'code':'SC','name':'Santiago de Cuba'},
-    '15' : {'code':'VC','name':'Villa Clara'}
-  },
-  'CY':{
-    '1' : {'code':'F','name':'Famagusta'},
-    '2' : {'code':'K','name':'Kyrenia'},
-    '3' : {'code':'A','name':'Larnaca'},
-    '4' : {'code':'I','name':'Limassol'},
-    '5' : {'code':'N','name':'Nicosia'},
-    '6' : {'code':'P','name':'Paphos'}
-  },
-  'CZ':{
-    '1' : {'code':'A','name':'Hlavní město Praha'},
-    '2' : {'code':'B','name':'Jihomoravský'},
-    '3' : {'code':'C','name':'Jihočeský'},
-    '4' : {'code':'E','name':'Pardubický'},
-    '5' : {'code':'H','name':'Královéhradecký'},
-    '6' : {'code':'J','name':'Vysočina'},
-    '7' : {'code':'K','name':'Karlovarský'},
-    '8' : {'code':'L','name':'Liberecký'},
-    '9' : {'code':'M','name':'Olomoucký'},
-    '10' : {'code':'P','name':'Plzeňský'},
-    '11' : {'code':'S','name':'Středočeský'},
-    '12' : {'code':'T','name':'Moravskoslezský'},
-    '13' : {'code':'U','name':'Ústecký'},
-    '14' : {'code':'Z','name':'Zlínský'}
-  },
-  'DK':{
-    '1' : {'code':'AR','name':'Arhus'},
-    '2' : {'code':'BH','name':'Bornholm'},
-    '3' : {'code':'CO','name':'Copenhagen'},
-    '4' : {'code':'FO','name':'Faroe Islands'},
-    '5' : {'code':'FR','name':'Frederiksborg'},
-    '6' : {'code':'FY','name':'Fyn'},
-    '7' : {'code':'KO','name':'Kobenhavn'},
-    '8' : {'code':'NO','name':'Nordjylland'},
-    '9' : {'code':'RI','name':'Ribe'},
-    '10' : {'code':'RK','name':'Ringkobing'},
-    '11' : {'code':'RO','name':'Roskilde'},
-    '12' : {'code':'SO','name':'Sonderjylland'},
-    '13' : {'code':'ST','name':'Storstrom'},
-    '14' : {'code':'VK','name':'Vejle'},
-    '15' : {'code':'VJ','name':'Vestjælland'},
-    '16' : {'code':'VB','name':'Viborg'}
-  },
-  'DJ':{
-    '1' : {'code':'S','name':'\'Ali Sabih'},
-    '2' : {'code':'K','name':'Dikhil'},
-    '3' : {'code':'J','name':'Djibouti'},
-    '4' : {'code':'O','name':'Obock'},
-    '5' : {'code':'T','name':'Tadjoura'}
-  },
-  'DM':{
-    '1' : {'code':'AND','name':'Saint Andrew Parish'},
-    '2' : {'code':'DAV','name':'Saint David Parish'},
-    '3' : {'code':'GEO','name':'Saint George Parish'},
-    '4' : {'code':'JOH','name':'Saint John Parish'},
-    '5' : {'code':'JOS','name':'Saint Joseph Parish'},
-    '6' : {'code':'LUK','name':'Saint Luke Parish'},
-    '7' : {'code':'MAR','name':'Saint Mark Parish'},
-    '8' : {'code':'PAT','name':'Saint Patrick Parish'},
-    '9' : {'code':'PAU','name':'Saint Paul Parish'},
-    '10' : {'code':'PET','name':'Saint Peter Parish'}
-  },
-  'DO':{
-    '1' : {'code':'DN','name':'Distrito Nacional'},
-    '2' : {'code':'AZ','name':'Azua'},
-    '3' : {'code':'BC','name':'Baoruco'},
-    '4' : {'code':'BH','name':'Barahona'},
-    '5' : {'code':'DJ','name':'Dajabon'},
-    '6' : {'code':'DU','name':'Duarte'},
-    '7' : {'code':'EL','name':'Elias Pina'},
-    '8' : {'code':'SY','name':'El Seybo'},
-    '9' : {'code':'ET','name':'Espaillat'},
-    '10' : {'code':'HM','name':'Hato Mayor'},
-    '11' : {'code':'IN','name':'Independencia'},
-    '12' : {'code':'AL','name':'La Altagracia'},
-    '13' : {'code':'RO','name':'La Romana'},
-    '14' : {'code':'VE','name':'La Vega'},
-    '15' : {'code':'MT','name':'Maria Trinidad Sanchez'},
-    '16' : {'code':'MN','name':'Monsenor Nouel'},
-    '17' : {'code':'MC','name':'Monte Cristi'},
-    '18' : {'code':'MP','name':'Monte Plata'},
-    '19' : {'code':'PD','name':'Pedernales'},
-    '20' : {'code':'PR','name':'Peravia (Bani)'},
-    '21' : {'code':'PP','name':'Puerto Plata'},
-    '22' : {'code':'SL','name':'Salcedo'},
-    '23' : {'code':'SM','name':'Samana'},
-    '24' : {'code':'SH','name':'Sanchez Ramirez'},
-    '25' : {'code':'SC','name':'San Cristobal'},
-    '26' : {'code':'JO','name':'San Jose de Ocoa'},
-    '27' : {'code':'SJ','name':'San Juan'},
-    '28' : {'code':'PM','name':'San Pedro de Macoris'},
-    '29' : {'code':'SA','name':'Santiago'},
-    '30' : {'code':'ST','name':'Santiago Rodriguez'},
-    '31' : {'code':'SD','name':'Santo Domingo'},
-    '32' : {'code':'VA','name':'Valverde'}
-  },
-  'TP':{
-    '1' : {'code':'AL','name':'Aileu'},
-    '2' : {'code':'AN','name':'Ainaro'},
-    '3' : {'code':'BA','name':'Baucau'},
-    '4' : {'code':'BO','name':'Bobonaro'},
-    '5' : {'code':'CO','name':'Cova Lima'},
-    '6' : {'code':'DI','name':'Dili'},
-    '7' : {'code':'ER','name':'Ermera'},
-    '8' : {'code':'LA','name':'Lautem'},
-    '9' : {'code':'LI','name':'Liquica'},
-    '10' : {'code':'MT','name':'Manatuto'},
-    '11' : {'code':'MF','name':'Manufahi'},
-    '12' : {'code':'OE','name':'Oecussi'},
-    '13' : {'code':'VI','name':'Viqueque'}
-  },
-  'EC':{
-    '1' : {'code':'AZU','name':'Azuay'},
-    '2' : {'code':'BOL','name':'Bolivar'},
-    '3' : {'code':'CAN','name':'Cañar'},
-    '4' : {'code':'CAR','name':'Carchi'},
-    '5' : {'code':'CHI','name':'Chimborazo'},
-    '6' : {'code':'COT','name':'Cotopaxi'},
-    '7' : {'code':'EOR','name':'El Oro'},
-    '8' : {'code':'ESM','name':'Esmeraldas'},
-    '9' : {'code':'GPS','name':'Galápagos'},
-    '10' : {'code':'GUA','name':'Guayas'},
-    '11' : {'code':'IMB','name':'Imbabura'},
-    '12' : {'code':'LOJ','name':'Loja'},
-    '13' : {'code':'LRO','name':'Los Ríos'},
-    '14' : {'code':'MAN','name':'Manabí'},
-    '15' : {'code':'MSA','name':'Morona Santiago'},
-    '16' : {'code':'NAP','name':'Napo'},
-    '17' : {'code':'ORE','name':'Orellana'},
-    '18' : {'code':'PAS','name':'Pastaza'},
-    '19' : {'code':'PIC','name':'Pichincha'},
-    '20' : {'code':'SUC','name':'Sucumbíos'},
-    '21' : {'code':'TUN','name':'Tungurahua'},
-    '22' : {'code':'ZCH','name':'Zamora Chinchipe'}
-  },
-  'EG':{
-    '1' : {'code':'DHY','name':'Ad Daqahliyah'},
-    '2' : {'code':'BAM','name':'Al Bahr al Ahmar'},
-    '3' : {'code':'BHY','name':'Al Buhayrah'},
-    '4' : {'code':'FYM','name':'Al Fayyum'},
-    '5' : {'code':'GBY','name':'Al Gharbiyah'},
-    '6' : {'code':'IDR','name':'Al Iskandariyah'},
-    '7' : {'code':'IML','name':'Al Isma \'iliyah'},
-    '8' : {'code':'JZH','name':'Al Jizah'},
-    '9' : {'code':'MFY','name':'Al Minufiyah'},
-    '10' : {'code':'MNY','name':'Al Minya'},
-    '11' : {'code':'QHR','name':'Al Qahirah'},
-    '12' : {'code':'QLY','name':'Al Qalyubiyah'},
-    '13' : {'code':'WJD','name':'Al Wadi al Jadid'},
-    '14' : {'code':'SHQ','name':'Ash Sharqiyah'},
-    '15' : {'code':'SWY','name':'As Suways'},
-    '16' : {'code':'ASW','name':'Aswan'},
-    '17' : {'code':'ASY','name':'Asyut'},
-    '18' : {'code':'BSW','name':'Bani Suwayf'},
-    '19' : {'code':'BSD','name':'Bur Sa\'id'},
-    '20' : {'code':'DMY','name':'Dumyat'},
-    '21' : {'code':'JNS','name':'Janub Sina\''},
-    '22' : {'code':'KSH','name':'Kafr ash Shaykh'},
-    '23' : {'code':'MAT','name':'Matruh'},
-    '24' : {'code':'QIN','name':'Qina'},
-    '25' : {'code':'SHS','name':'Shamal Sina\''},
-    '26' : {'code':'SUH','name':'Suhaj'}
-  },
-  'SV':{
-    '1' : {'code':'AH','name':'Ahuachapan'},
-    '2' : {'code':'CA','name':'Cabanas'},
-    '3' : {'code':'CH','name':'Chalatenango'},
-    '4' : {'code':'CU','name':'Cuscatlan'},
-    '5' : {'code':'LB','name':'La Libertad'},
-    '6' : {'code':'PZ','name':'La Paz'},
-    '7' : {'code':'UN','name':'La Union'},
-    '8' : {'code':'MO','name':'Morazan'},
-    '9' : {'code':'SM','name':'San Miguel'},
-    '10' : {'code':'SS','name':'San Salvador'},
-    '11' : {'code':'SV','name':'San Vicente'},
-    '12' : {'code':'SA','name':'Santa Ana'},
-    '13' : {'code':'SO','name':'Sonsonate'},
-    '14' : {'code':'US','name':'Usulutan'}
-  },
-  'GQ':{
-    '1' : {'code':'AN','name':'Provincia Annobon'},
-    '2' : {'code':'BN','name':'Provincia Bioko Norte'},
-    '3' : {'code':'BS','name':'Provincia Bioko Sur'},
-    '4' : {'code':'CS','name':'Provincia Centro Sur'},
-    '5' : {'code':'KN','name':'Provincia Kie-Ntem'},
-    '6' : {'code':'LI','name':'Provincia Litoral'},
-    '7' : {'code':'WN','name':'Provincia Wele-Nzas'}
-  },
-  'ER':{
-    '1' : {'code':'MA','name':'Central (Maekel)'},
-    '2' : {'code':'KE','name':'Anseba (Keren)'},
-    '3' : {'code':'DK','name':'Southern Red Sea (Debub-Keih-Bah)'},
-    '4' : {'code':'SK','name':'Northern Red Sea (Semien-Keih-Ba)'},
-    '5' : {'code':'DE','name':'Southern (Debub)'},
-    '6' : {'code':'BR','name':'Gash-Barka (Barentu)'}
-  },
-  'EE':{
-    '1' : {'code':'HA','name':'Harjumaa (Tallinn)'},
-    '2' : {'code':'HI','name':'Hiiumaa (Kardla)'},
-    '3' : {'code':'IV','name':'Ida-Virumaa (Johvi)'},
-    '4' : {'code':'JA','name':'Jarvamaa (Paide)'},
-    '5' : {'code':'JO','name':'Jogevamaa (Jogeva)'},
-    '6' : {'code':'LV','name':'Laane-Virumaa (Rakvere)'},
-    '7' : {'code':'LA','name':'Laanemaa (Haapsalu)'},
-    '8' : {'code':'PA','name':'Parnumaa (Parnu)'},
-    '9' : {'code':'PO','name':'Polvamaa (Polva)'},
-    '10' : {'code':'RA','name':'Raplamaa (Rapla)'},
-    '11' : {'code':'SA','name':'Saaremaa (Kuessaare)'},
-    '12' : {'code':'TA','name':'Tartumaa (Tartu)'},
-    '13' : {'code':'VA','name':'Valgamaa (Valga)'},
-    '14' : {'code':'VI','name':'Viljandimaa (Viljandi)'},
-    '15' : {'code':'VO','name':'Vorumaa (Voru)'}
-  },
-  'ET':{
-    '1' : {'code':'AF','name':'Afar'},
-    '2' : {'code':'AH','name':'Amhara'},
-    '3' : {'code':'BG','name':'Benishangul-Gumaz'},
-    '4' : {'code':'GB','name':'Gambela'},
-    '5' : {'code':'HR','name':'Hariai'},
-    '6' : {'code':'OR','name':'Oromia'},
-    '7' : {'code':'SM','name':'Somali'},
-    '8' : {'code':'SN','name':'Southern Nations - Nationalities'},
-    '9' : {'code':'TG','name':'Tigray'},
-    '10' : {'code':'AA','name':'Addis Ababa'},
-    '11' : {'code':'DD','name':'Dire Dawa'}
-  },
-  'FO':{
-    '1' : {'code':'TÛR','name':'Tûrshavnar Kommuna'},
-    '2' : {'code':'KLA','name':'Klaksvík'},
-    '3' : {'code':'RUN','name':'Runavík'},
-    '4' : {'code':'TVØ','name':'Tvøroyri'},
-    '5' : {'code':'FUG','name':'Fuglafjørður'},
-    '6' : {'code':'SUN','name':'Sunda Kommuna'},
-    '7' : {'code':'VáG','name':'Vágur'},
-    '8' : {'code':'NES','name':'Nes'},
-    '9' : {'code':'VES','name':'Vestmanna'},
-    '10' : {'code':'MIð','name':'Miðvágur'},
-    '11' : {'code':'SØR','name':'Sørvágur'},
-    '12' : {'code':'GØT','name':'Gøtu Kommuna'},
-    '13' : {'code':'SJû','name':'Sjûvar Kommuna'},
-    '14' : {'code':'LEI','name':'Leirvík'},
-    '15' : {'code':'SAN','name':'Sandavágur'},
-    '16' : {'code':'HVA','name':'Hvalba'},
-    '17' : {'code':'EIð','name':'Eiði'},
-    '18' : {'code':'KVí','name':'Kvívík'},
-    '19' : {'code':'SAN','name':'Sandur'},
-    '20' : {'code':'SKO','name':'Skopun'},
-    '21' : {'code':'HVA','name':'Hvannasund'},
-    '22' : {'code':'SUM','name':'Sumba'},
-    '23' : {'code':'VIð','name':'Viðareiði'},
-    '24' : {'code':'POR','name':'Porkeri'},
-    '25' : {'code':'SKá','name':'Skálavík'},
-    '26' : {'code':'KUN','name':'Kunoy'},
-    '27' : {'code':'HÚS','name':'HÚsavík'},
-    '28' : {'code':'HOV','name':'Hov'},
-    '29' : {'code':'FáM','name':'Fámjin'},
-    '30' : {'code':'FUN','name':'Funningur'},
-    '31' : {'code':'HÚS','name':'HÚsar'},
-    '32' : {'code':'SKÚ','name':'SkÚvoy'},
-    '33' : {'code':'SVí','name':'Svínoy'},
-    '34' : {'code':'FUG','name':'Fugloy'}
-  },
-  'FJ':{
-    '1' : {'code':'C','name':'Central Division'},
-    '2' : {'code':'E','name':'Eastern Division'},
-    '3' : {'code':'N','name':'Northern Division'},
-    '4' : {'code':'R','name':'Rotuma'},
-    '5' : {'code':'W','name':'Western Division'}
-  },
-  'FI':{
-    '1' : {'code':'AL','name':'Ahvenanmaan Laani'},
-    '2' : {'code':'ES','name':'Etela-Suomen Laani'},
-    '3' : {'code':'IS','name':'Ita-Suomen Laani'},
-    '4' : {'code':'LS','name':'Lansi-Suomen Laani'},
-    '5' : {'code':'LA','name':'Lapin Lanani'},
-    '6' : {'code':'OU','name':'Oulun Laani'}
-  },
-  'FR':{
-    '1' : {'code':'AL','name':'Alsace'},
-    '2' : {'code':'AQ','name':'Aquitaine'},
-    '3' : {'code':'AU','name':'Auvergne'},
-    '4' : {'code':'BR','name':'Brittany'},
-    '5' : {'code':'BU','name':'Burgundy'},
-    '6' : {'code':'CE','name':'Center Loire Valley'},
-    '7' : {'code':'CH','name':'Champagne'},
-    '8' : {'code':'CO','name':'Corse'},
-    '9' : {'code':'FR','name':'France Comte'},
-    '10' : {'code':'LA','name':'Languedoc Roussillon'},
-    '11' : {'code':'LI','name':'Limousin'},
-    '12' : {'code':'LO','name':'Lorraine'},
-    '13' : {'code':'MI','name':'Midi Pyrenees'},
-    '14' : {'code':'NO','name':'Nord Pas de Calais'},
-    '15' : {'code':'NR','name':'Normandy'},
-    '16' : {'code':'PA','name':'Paris / Ile de France'},
-    '17' : {'code':'PI','name':'Picardie'},
-    '18' : {'code':'PO','name':'Poitou Charente'},
-    '19' : {'code':'PR','name':'Provence'},
-    '20' : {'code':'RH','name':'Rhone Alps'},
-    '21' : {'code':'RI','name':'Riviera'},
-    '22' : {'code':'WE','name':'Western Loire Valley'}
-  },
-  'FX':{
-    '1' : {'code':'Et','name':'Etranger'},
-    '2' : {'code':'01','name':'Ain'},
-    '3' : {'code':'02','name':'Aisne'},
-    '4' : {'code':'03','name':'Allier'},
-    '5' : {'code':'04','name':'Alpes de Haute Provence'},
-    '6' : {'code':'05','name':'Hautes-Alpes'},
-    '7' : {'code':'06','name':'Alpes Maritimes'},
-    '8' : {'code':'07','name':'Ardèche'},
-    '9' : {'code':'08','name':'Ardennes'},
-    '10' : {'code':'09','name':'Ariège'},
-    '11' : {'code':'10','name':'Aube'},
-    '12' : {'code':'11','name':'Aude'},
-    '13' : {'code':'12','name':'Aveyron'},
-    '14' : {'code':'13','name':'Bouches du Rhône'},
-    '15' : {'code':'14','name':'Calvados'},
-    '16' : {'code':'15','name':'Cantal'},
-    '17' : {'code':'16','name':'Charente'},
-    '18' : {'code':'17','name':'Charente Maritime'},
-    '19' : {'code':'18','name':'Cher'},
-    '20' : {'code':'19','name':'Corrèze'},
-    '21' : {'code':'2A','name':'Corse du Sud'},
-    '22' : {'code':'2B','name':'Haute Corse'},
-    '23' : {'code':'21','name':'Côte d\'or'},
-    '24' : {'code':'22','name':'Côtes d\'Armor'},
-    '25' : {'code':'23','name':'Creuse'},
-    '26' : {'code':'24','name':'Dordogne'},
-    '27' : {'code':'25','name':'Doubs'},
-    '28' : {'code':'26','name':'Drôme'},
-    '29' : {'code':'27','name':'Eure'},
-    '30' : {'code':'28','name':'Eure et Loir'},
-    '31' : {'code':'29','name':'Finistère'},
-    '32' : {'code':'30','name':'Gard'},
-    '33' : {'code':'31','name':'Haute Garonne'},
-    '34' : {'code':'32','name':'Gers'},
-    '35' : {'code':'33','name':'Gironde'},
-    '36' : {'code':'34','name':'Hérault'},
-    '37' : {'code':'35','name':'Ille et Vilaine'},
-    '38' : {'code':'36','name':'Indre'},
-    '39' : {'code':'37','name':'Indre et Loire'},
-    '40' : {'code':'38','name':'Isére'},
-    '41' : {'code':'39','name':'Jura'},
-    '42' : {'code':'40','name':'Landes'},
-    '43' : {'code':'41','name':'Loir et Cher'},
-    '44' : {'code':'42','name':'Loire'},
-    '45' : {'code':'43','name':'Haute Loire'},
-    '46' : {'code':'44','name':'Loire Atlantique'},
-    '47' : {'code':'45','name':'Loiret'},
-    '48' : {'code':'46','name':'Lot'},
-    '49' : {'code':'47','name':'Lot et Garonne'},
-    '50' : {'code':'48','name':'Lozère'},
-    '51' : {'code':'49','name':'Maine et Loire'},
-    '52' : {'code':'50','name':'Manche'},
-    '53' : {'code':'51','name':'Marne'},
-    '54' : {'code':'52','name':'Haute Marne'},
-    '55' : {'code':'53','name':'Mayenne'},
-    '56' : {'code':'54','name':'Meurthe et Moselle'},
-    '57' : {'code':'55','name':'Meuse'},
-    '58' : {'code':'56','name':'Morbihan'},
-    '59' : {'code':'57','name':'Moselle'},
-    '60' : {'code':'58','name':'Nièvre'},
-    '61' : {'code':'59','name':'Nord'},
-    '62' : {'code':'60','name':'Oise'},
-    '63' : {'code':'61','name':'Orne'},
-    '64' : {'code':'62','name':'Pas de Calais'},
-    '65' : {'code':'63','name':'Puy de Dôme'},
-    '66' : {'code':'64','name':'Pyrenees Atlantique'},
-    '67' : {'code':'65','name':'Hautes Pyrenees'},
-    '68' : {'code':'66','name':'Pyrenees Orientale'},
-    '69' : {'code':'67','name':'Bas Rhin'},
-    '70' : {'code':'68','name':'Haut Rhin'},
-    '71' : {'code':'69','name':'Rhône'},
-    '72' : {'code':'70','name':'Haute Saône'},
-    '73' : {'code':'71','name':'Saône et Loire'},
-    '74' : {'code':'72','name':'Sarthe'},
-    '75' : {'code':'73','name':'Savoie'},
-    '76' : {'code':'74','name':'Haute Savoie'},
-    '77' : {'code':'75','name':'Paris'},
-    '78' : {'code':'76','name':'Seine Martitime'},
-    '79' : {'code':'77','name':'Seine et Marne'},
-    '80' : {'code':'78','name':'Yvelines'},
-    '81' : {'code':'79','name':'Deux Sèvres'},
-    '82' : {'code':'80','name':'Somme'},
-    '83' : {'code':'81','name':'Tarn'},
-    '84' : {'code':'82','name':'Tarn et Garonne'},
-    '85' : {'code':'83','name':'Var'},
-    '86' : {'code':'84','name':'Vaucluse'},
-    '87' : {'code':'85','name':'Vendée'},
-    '88' : {'code':'86','name':'Vienne'},
-    '89' : {'code':'87','name':'Haute Vienne'},
-    '90' : {'code':'88','name':'Vosges'},
-    '91' : {'code':'89','name':'Yonne'},
-    '92' : {'code':'90','name':'Territoire de Belfort'},
-    '93' : {'code':'91','name':'Essonne'},
-    '94' : {'code':'92','name':'Hauts de Seine'},
-    '95' : {'code':'93','name':'Seine St-Denis'},
-    '96' : {'code':'94','name':'Val de Marne'},
-    '97' : {'code':'95','name':'Val d\'oise'}
-  },
-  'GF':{
-    '1' : {'code':'AWA','name':'Awala-Yalimapo'},
-    '2' : {'code':'MAN','name':'Mana'},
-    '3' : {'code':'SAI','name':'Saint-Laurent-Du-Maroni'},
-    '4' : {'code':'APA','name':'Apatou'},
-    '5' : {'code':'GRA','name':'Grand-Santi'},
-    '6' : {'code':'PAP','name':'Papaïchton'},
-    '7' : {'code':'SAÜ','name':'SaÜl'},
-    '8' : {'code':'MAR','name':'Maripasoula'},
-    '9' : {'code':'CAM','name':'Camopi'},
-    '10' : {'code':'SAI','name':'Saint-Georges'},
-    '11' : {'code':'OUA','name':'Ouanary'},
-    '12' : {'code':'RéG','name':'Régina'},
-    '13' : {'code':'ROU','name':'Roura'},
-    '14' : {'code':'SAI','name':'Saint-élie'},
-    '15' : {'code':'IRA','name':'Iracoubo'},
-    '16' : {'code':'SIN','name':'Sinnamary'},
-    '17' : {'code':'KOU','name':'Kourou'},
-    '18' : {'code':'MAC','name':'Macouria'},
-    '19' : {'code':'MON','name':'Montsinéry-Tonnegrande'},
-    '20' : {'code':'MAT','name':'Matoury'},
-    '21' : {'code':'CAY','name':'Cayenne'},
-    '22' : {'code':'REM','name':'Remire-Montjoly'}
-  },
-  'PF':{
-    '1' : {'code':'M','name':'Archipel des Marquises'},
-    '2' : {'code':'T','name':'Archipel des Tuamotu'},
-    '3' : {'code':'I','name':'Archipel des Tubuai'},
-    '4' : {'code':'V','name':'Iles du Vent'},
-    '5' : {'code':'S','name':'Iles Sous-le-Vent'}
-  },
-  'TF':{
-    '1' : {'code':'C','name':'Iles Crozet'},
-    '2' : {'code':'K','name':'Iles Kerguelen'},
-    '3' : {'code':'A','name':'Ile Amsterdam'},
-    '4' : {'code':'P','name':'Ile Saint-Paul'},
-    '5' : {'code':'D','name':'Adelie Land'}
-  },
-  'GA':{
-    '1' : {'code':'ES','name':'Estuaire'},
-    '2' : {'code':'HO','name':'Haut-Ogooue'},
-    '3' : {'code':'MO','name':'Moyen-Ogooue'},
-    '4' : {'code':'NG','name':'Ngounie'},
-    '5' : {'code':'NY','name':'Nyanga'},
-    '6' : {'code':'OI','name':'Ogooue-Ivindo'},
-    '7' : {'code':'OL','name':'Ogooue-Lolo'},
-    '8' : {'code':'OM','name':'Ogooue-Maritime'},
-    '9' : {'code':'WN','name':'Woleu-Ntem'}
-  },
-  'GM':{
-    '1' : {'code':'BJ','name':'Banjul'},
-    '2' : {'code':'BS','name':'Basse'},
-    '3' : {'code':'BR','name':'Brikama'},
-    '4' : {'code':'JA','name':'Janjangbure'},
-    '5' : {'code':'KA','name':'Kanifeng'},
-    '6' : {'code':'KE','name':'Kerewan'},
-    '7' : {'code':'KU','name':'Kuntaur'},
-    '8' : {'code':'MA','name':'Mansakonko'},
-    '9' : {'code':'LR','name':'Lower River'},
-    '10' : {'code':'CR','name':'Central River'},
-    '11' : {'code':'NB','name':'North Bank'},
-    '12' : {'code':'UR','name':'Upper River'},
-    '13' : {'code':'WE','name':'Western'}
-  },
-  'GE':{
-    '1' : {'code':'AB','name':'Abkhazia'},
-    '2' : {'code':'AJ','name':'Ajaria'},
-    '3' : {'code':'GU','name':'Guria'},
-    '4' : {'code':'IM','name':'Imereti'},
-    '5' : {'code':'KA','name':'Kakheti'},
-    '6' : {'code':'KK','name':'Kvemo Kartli'},
-    '7' : {'code':'MM','name':'Mtskheta-Mtianeti'},
-    '8' : {'code':'RL','name':'Racha Lechkhumi and Kvemo Svanet'},
-    '9' : {'code':'SJ','name':'Samtskhe-Javakheti'},
-    '10' : {'code':'SK','name':'Shida Kartli'},
-    '11' : {'code':'SZ','name':'Samegrelo-Zemo Svaneti'},
-    '12' : {'code':'TB','name':'Tbilisi'}
-  },
-  'DE':{
-    '1' : {'code':'BAW','name':'Baden-Württemberg'},
-    '2' : {'code':'BAY','name':'Bayern'},
-    '3' : {'code':'BER','name':'Berlin'},
-    '4' : {'code':'BRG','name':'Brandenburg'},
-    '5' : {'code':'BRE','name':'Bremen'},
-    '6' : {'code':'HAM','name':'Hamburg'},
-    '7' : {'code':'HES','name':'Hessen'},
-    '8' : {'code':'MEC','name':'Mecklenburg-Vorpommern'},
-    '9' : {'code':'NDS','name':'Niedersachsen'},
-    '10' : {'code':'NRW','name':'Nordrhein-Westfalen'},
-    '11' : {'code':'RHE','name':'Rheinland-Pfalz'},
-    '12' : {'code':'SAR','name':'Saarland'},
-    '13' : {'code':'SAS','name':'Sachsen'},
-    '14' : {'code':'SAC','name':'Sachsen-Anhalt'},
-    '15' : {'code':'SCN','name':'Schleswig-Holstein'},
-    '16' : {'code':'THE','name':'Thüringen'}
-  },
-  'GH':{
-    '1' : {'code':'AS','name':'Ashanti Region'},
-    '2' : {'code':'BA','name':'Brong-Ahafo Region'},
-    '3' : {'code':'CE','name':'Central Region'},
-    '4' : {'code':'EA','name':'Eastern Region'},
-    '5' : {'code':'GA','name':'Greater Accra Region'},
-    '6' : {'code':'NO','name':'Northern Region'},
-    '7' : {'code':'UE','name':'Upper East Region'},
-    '8' : {'code':'UW','name':'Upper West Region'},
-    '9' : {'code':'VO','name':'Volta Region'},
-    '10' : {'code':'WE','name':'Western Region'}
-  },
-  'GI':{
-    '1' : {'code':'EAS','name':'East Side'},
-    '2' : {'code':'NOR','name':'North District'},
-    '3' : {'code':'REC','name':'Reclamation Areas'},
-    '4' : {'code':'SAN','name':'Sandpits Area'},
-    '5' : {'code':'SOU','name':'South District'},
-    '6' : {'code':'TOW','name':'Town Area'},
-    '7' : {'code':'UPP','name':'Upper Town'},
-    '8' : {'code':'OTH','name':'Other'}
-  },
-  'GR':{
-    '1' : {'code':'AT','name':'Attica'},
-    '2' : {'code':'CN','name':'Central Greece'},
-    '3' : {'code':'CM','name':'Central Macedonia'},
-    '4' : {'code':'CR','name':'Crete'},
-    '5' : {'code':'EM','name':'East Macedonia and Thrace'},
-    '6' : {'code':'EP','name':'Epirus'},
-    '7' : {'code':'II','name':'Ionian Islands'},
-    '8' : {'code':'NA','name':'North Aegean'},
-    '9' : {'code':'PP','name':'Peloponnesos'},
-    '10' : {'code':'SA','name':'South Aegean'},
-    '11' : {'code':'TH','name':'Thessaly'},
-    '12' : {'code':'WG','name':'West Greece'},
-    '13' : {'code':'WM','name':'West Macedonia'}
-  },
-  'GL':{
-    '1' : {'code':'A','name':'Avannaa'},
-    '2' : {'code':'T','name':'Tunu'},
-    '3' : {'code':'K','name':'Kitaa'}
-  },
-  '86':{
-    '1' : {'code':'A','name':'Saint Andrew'},
-    '2' : {'code':'D','name':'Saint David'},
-    '3' : {'code':'G','name':'Saint George'},
-    '4' : {'code':'J','name':'Saint John'},
-    '5' : {'code':'M','name':'Saint Mark'},
-    '6' : {'code':'P','name':'Saint Patrick'},
-    '7' : {'code':'C','name':'Carriacou'},
-    '8' : {'code':'Q','name':'Petit Martinique'}
-  },
-  'GP':{
-    '1' : {'code':'ARR','name':'Arrondissements Of The Guadeloup'},
-    '2' : {'code':'CAN','name':'Cantons Of The Guadeloup Depart'},
-    '3' : {'code':'COM','name':'Communes Of The Guadeloup Depart'}
-  },
-  'GU':{
-    '1' : {'code':'AGA','name':'Agana Heights'},
-    '2' : {'code':'AGA','name':'Agat'},
-    '3' : {'code':'ASA','name':'Asan Maina'},
-    '4' : {'code':'BAR','name':'Barrigada'},
-    '5' : {'code':'CHA','name':'Chalan Pago Ordot'},
-    '6' : {'code':'DED','name':'Dededo'},
-    '7' : {'code':'HAG','name':'HagÅtña'},
-    '8' : {'code':'INA','name':'Inarajan'},
-    '9' : {'code':'MAN','name':'Mangilao'},
-    '10' : {'code':'MER','name':'Merizo'},
-    '11' : {'code':'MON','name':'Mongmong Toto Maite'},
-    '12' : {'code':'PIT','name':'Piti'},
-    '13' : {'code':'SAN','name':'Santa Rita'},
-    '14' : {'code':'SIN','name':'Sinajana'},
-    '15' : {'code':'TAL','name':'Talofofo'},
-    '16' : {'code':'TAM','name':'Tamuning'},
-    '17' : {'code':'UMA','name':'Umatac'},
-    '18' : {'code':'YIG','name':'Yigo'},
-    '19' : {'code':'YON','name':'Yona'}
-  },
-  'GT':{
-    '1' : {'code':'AV','name':'Alta Verapaz'},
-    '2' : {'code':'BV','name':'Baja Verapaz'},
-    '3' : {'code':'CM','name':'Chimaltenango'},
-    '4' : {'code':'CQ','name':'Chiquimula'},
-    '5' : {'code':'PE','name':'El Peten'},
-    '6' : {'code':'PR','name':'El Progreso'},
-    '7' : {'code':'QC','name':'El Quiche'},
-    '8' : {'code':'ES','name':'Escuintla'},
-    '9' : {'code':'GU','name':'Guatemala'},
-    '10' : {'code':'HU','name':'Huehuetenango'},
-    '11' : {'code':'IZ','name':'Izabal'},
-    '12' : {'code':'JA','name':'Jalapa'},
-    '13' : {'code':'JU','name':'Jutiapa'},
-    '14' : {'code':'QZ','name':'Quetzaltenango'},
-    '15' : {'code':'RE','name':'Retalhuleu'},
-    '16' : {'code':'ST','name':'Sacatepequez'},
-    '17' : {'code':'SM','name':'San Marcos'},
-    '18' : {'code':'SR','name':'Santa Rosa'},
-    '19' : {'code':'SO','name':'Solola'},
-    '20' : {'code':'SU','name':'Suchitepequez'},
-    '21' : {'code':'TO','name':'Totonicapan'},
-    '22' : {'code':'ZA','name':'Zacapa'}
-  },
-  'GN':{
-    '1' : {'code':'CNK','name':'Conakry'},
-    '2' : {'code':'BYL','name':'Beyla'},
-    '3' : {'code':'BFA','name':'Boffa'},
-    '4' : {'code':'BOK','name':'Boke'},
-    '5' : {'code':'COY','name':'Coyah'},
-    '6' : {'code':'DBL','name':'Dabola'},
-    '7' : {'code':'DLB','name':'Dalaba'},
-    '8' : {'code':'DGR','name':'Dinguiraye'},
-    '9' : {'code':'DBR','name':'Dubreka'},
-    '10' : {'code':'FRN','name':'Faranah'},
-    '11' : {'code':'FRC','name':'Forecariah'},
-    '12' : {'code':'FRI','name':'Fria'},
-    '13' : {'code':'GAO','name':'Gaoual'},
-    '14' : {'code':'GCD','name':'Gueckedou'},
-    '15' : {'code':'KNK','name':'Kankan'},
-    '16' : {'code':'KRN','name':'Kerouane'},
-    '17' : {'code':'KND','name':'Kindia'},
-    '18' : {'code':'KSD','name':'Kissidougou'},
-    '19' : {'code':'KBA','name':'Koubia'},
-    '20' : {'code':'KDA','name':'Koundara'},
-    '21' : {'code':'KRA','name':'Kouroussa'},
-    '22' : {'code':'LAB','name':'Labe'},
-    '23' : {'code':'LLM','name':'Lelouma'},
-    '24' : {'code':'LOL','name':'Lola'},
-    '25' : {'code':'MCT','name':'Macenta'},
-    '26' : {'code':'MAL','name':'Mali'},
-    '27' : {'code':'MAM','name':'Mamou'},
-    '28' : {'code':'MAN','name':'Mandiana'},
-    '29' : {'code':'NZR','name':'Nzerekore'},
-    '30' : {'code':'PIT','name':'Pita'},
-    '31' : {'code':'SIG','name':'Siguiri'},
-    '32' : {'code':'TLM','name':'Telimele'},
-    '33' : {'code':'TOG','name':'Tougue'},
-    '34' : {'code':'YOM','name':'Yomou'}
-  },
-  'GW':{
-    '1' : {'code':'BF','name':'Bafata Region'},
-    '2' : {'code':'BB','name':'Biombo Region'},
-    '3' : {'code':'BS','name':'Bissau Region'},
-    '4' : {'code':'BL','name':'Bolama Region'},
-    '5' : {'code':'CA','name':'Cacheu Region'},
-    '6' : {'code':'GA','name':'Gabu Region'},
-    '7' : {'code':'OI','name':'Oio Region'},
-    '8' : {'code':'QU','name':'Quinara Region'},
-    '9' : {'code':'TO','name':'Tombali Region'}
-  },
-  'GY':{
-    '1' : {'code':'BW','name':'Barima-Waini'},
-    '2' : {'code':'CM','name':'Cuyuni-Mazaruni'},
-    '3' : {'code':'DM','name':'Demerara-Mahaica'},
-    '4' : {'code':'EC','name':'East Berbice-Corentyne'},
-    '5' : {'code':'EW','name':'Essequibo Islands-West Demerara'},
-    '6' : {'code':'MB','name':'Mahaica-Berbice'},
-    '7' : {'code':'PM','name':'Pomeroon-Supenaam'},
-    '8' : {'code':'PI','name':'Potaro-Siparuni'},
-    '9' : {'code':'UD','name':'Upper Demerara-Berbice'},
-    '10' : {'code':'UT','name':'Upper Takutu-Upper Essequibo'}
-  },
-  'HT':{
-    '1' : {'code':'AR','name':'Artibonite'},
-    '2' : {'code':'CE','name':'Centre'},
-    '3' : {'code':'GA','name':'Grand\'Anse'},
-    '4' : {'code':'ND','name':'Nord'},
-    '5' : {'code':'NE','name':'Nord-Est'},
-    '6' : {'code':'NO','name':'Nord-Ouest'},
-    '7' : {'code':'OU','name':'Ouest'},
-    '8' : {'code':'SD','name':'Sud'},
-    '9' : {'code':'SE','name':'Sud-Est'}
-  },
-  'HM':{
-    '1' : {'code':'F','name':'Flat Island'},
-    '2' : {'code':'M','name':'McDonald Island'},
-    '3' : {'code':'S','name':'Shag Island'},
-    '4' : {'code':'H','name':'Heard Island'}
-  },
-  'HN':{
-    '1' : {'code':'AT','name':'Atlantida'},
-    '2' : {'code':'CH','name':'Choluteca'},
-    '3' : {'code':'CL','name':'Colon'},
-    '4' : {'code':'CM','name':'Comayagua'},
-    '5' : {'code':'CP','name':'Copan'},
-    '6' : {'code':'CR','name':'Cortes'},
-    '7' : {'code':'PA','name':'El Paraiso'},
-    '8' : {'code':'FM','name':'Francisco Morazan'},
-    '9' : {'code':'GD','name':'Gracias a Dios'},
-    '10' : {'code':'IN','name':'Intibuca'},
-    '11' : {'code':'IB','name':'Islas de la Bahia (Bay Islands)'},
-    '12' : {'code':'PZ','name':'La Paz'},
-    '13' : {'code':'LE','name':'Lempira'},
-    '14' : {'code':'OC','name':'Ocotepeque'},
-    '15' : {'code':'OL','name':'Olancho'},
-    '16' : {'code':'SB','name':'Santa Barbara'},
-    '17' : {'code':'VA','name':'Valle'},
-    '18' : {'code':'YO','name':'Yoro'}
-  },
-  'HK':{
-    '1' : {'code':'HCW','name':'Central and Western Hong Kong Is'},
-    '2' : {'code':'HEA','name':'Eastern Hong Kong Island'},
-    '3' : {'code':'HSO','name':'Southern Hong Kong Island'},
-    '4' : {'code':'HWC','name':'Wan Chai Hong Kong Island'},
-    '5' : {'code':'KKC','name':'Kowloon City Kowloon'},
-    '6' : {'code':'KKT','name':'Kwun Tong Kowloon'},
-    '7' : {'code':'KSS','name':'Sham Shui Po Kowloon'},
-    '8' : {'code':'KWT','name':'Wong Tai Sin Kowloon'},
-    '9' : {'code':'KYT','name':'Yau Tsim Mong Kowloon'},
-    '10' : {'code':'NIS','name':'Islands New Territories'},
-    '11' : {'code':'NKT','name':'Kwai Tsing New Territories'},
-    '12' : {'code':'NNO','name':'North New Territories'},
-    '13' : {'code':'NSK','name':'Sai Kung New Territories'},
-    '14' : {'code':'NST','name':'Sha Tin New Territories'},
-    '15' : {'code':'NTP','name':'Tai Po New Territories'},
-    '16' : {'code':'NTW','name':'Tsuen Wan New Territories'},
-    '17' : {'code':'NTM','name':'Tuen Mun New Territories'},
-    '18' : {'code':'NYL','name':'Yuen Long New Territories'}
-  },
-  'HU':{
-    '1' : {'code':'BK','name':'Bacs-Kiskun'},
-    '2' : {'code':'BA','name':'Baranya'},
-    '3' : {'code':'BE','name':'Bekes'},
-    '4' : {'code':'BS','name':'Bekescsaba'},
-    '5' : {'code':'BZ','name':'Borsod-Abauj-Zemplen'},
-    '6' : {'code':'BU','name':'Budapest'},
-    '7' : {'code':'CS','name':'Csongrad'},
-    '8' : {'code':'DE','name':'Debrecen'},
-    '9' : {'code':'DU','name':'Dunaujvaros'},
-    '10' : {'code':'EG','name':'Eger'},
-    '11' : {'code':'FE','name':'Fejer'},
-    '12' : {'code':'GY','name':'Gyor'},
-    '13' : {'code':'GM','name':'Gyor-Moson-Sopron'},
-    '14' : {'code':'HB','name':'Hajdu-Bihar'},
-    '15' : {'code':'HE','name':'Heves'},
-    '16' : {'code':'HO','name':'Hodmezovasarhely'},
-    '17' : {'code':'JN','name':'Jasz-Nagykun-Szolnok'},
-    '18' : {'code':'KA','name':'Kaposvar'},
-    '19' : {'code':'KE','name':'Kecskemet'},
-    '20' : {'code':'KO','name':'Komarom-Esztergom'},
-    '21' : {'code':'MI','name':'Miskolc'},
-    '22' : {'code':'NA','name':'Nagykanizsa'},
-    '23' : {'code':'NO','name':'Nograd'},
-    '24' : {'code':'NY','name':'Nyiregyhaza'},
-    '25' : {'code':'PE','name':'Pecs'},
-    '26' : {'code':'PS','name':'Pest'},
-    '27' : {'code':'SO','name':'Somogy'},
-    '28' : {'code':'SP','name':'Sopron'},
-    '29' : {'code':'SS','name':'Szabolcs-Szatmar-Bereg'},
-    '30' : {'code':'SZ','name':'Szeged'},
-    '31' : {'code':'SE','name':'Szekesfehervar'},
-    '32' : {'code':'SL','name':'Szolnok'},
-    '33' : {'code':'SM','name':'Szombathely'},
-    '34' : {'code':'TA','name':'Tatabanya'},
-    '35' : {'code':'TO','name':'Tolna'},
-    '36' : {'code':'VA','name':'Vas'},
-    '37' : {'code':'VE','name':'Veszprem'},
-    '38' : {'code':'ZA','name':'Zala'},
-    '39' : {'code':'ZZ','name':'Zalaegerszeg'}
-  },
-  'IS':{
-    '1' : {'code':'AL','name':'Austurland'},
-    '2' : {'code':'HF','name':'Hofuoborgarsvaeoi'},
-    '3' : {'code':'NE','name':'Norourland eystra'},
-    '4' : {'code':'NV','name':'Norourland vestra'},
-    '5' : {'code':'SL','name':'Suourland'},
-    '6' : {'code':'SN','name':'Suournes'},
-    '7' : {'code':'VF','name':'Vestfiroir'},
-    '8' : {'code':'VL','name':'Vesturland'}
-  },
-  'IN':{
-    '1' : {'code':'AN','name':'Andaman and Nicobar Islands'},
-    '2' : {'code':'AP','name':'Andhra Pradesh'},
-    '3' : {'code':'AR','name':'Arunachal Pradesh'},
-    '4' : {'code':'AS','name':'Assam'},
-    '5' : {'code':'BI','name':'Bihar'},
-    '6' : {'code':'CH','name':'Chandigarh'},
-    '7' : {'code':'DA','name':'Dadra and Nagar Haveli'},
-    '8' : {'code':'DM','name':'Daman and Diu'},
-    '9' : {'code':'DE','name':'Delhi'},
-    '10' : {'code':'GO','name':'Goa'},
-    '11' : {'code':'GU','name':'Gujarat'},
-    '12' : {'code':'HA','name':'Haryana'},
-    '13' : {'code':'HP','name':'Himachal Pradesh'},
-    '14' : {'code':'JA','name':'Jammu and Kashmir'},
-    '15' : {'code':'KA','name':'Karnataka'},
-    '16' : {'code':'KE','name':'Kerala'},
-    '17' : {'code':'LI','name':'Lakshadweep Islands'},
-    '18' : {'code':'MP','name':'Madhya Pradesh'},
-    '19' : {'code':'MA','name':'Maharashtra'},
-    '20' : {'code':'MN','name':'Manipur'},
-    '21' : {'code':'ME','name':'Meghalaya'},
-    '22' : {'code':'MI','name':'Mizoram'},
-    '23' : {'code':'NA','name':'Nagaland'},
-    '24' : {'code':'OR','name':'Orissa'},
-    '25' : {'code':'PO','name':'Pondicherry'},
-    '26' : {'code':'PU','name':'Punjab'},
-    '27' : {'code':'RA','name':'Rajasthan'},
-    '28' : {'code':'SI','name':'Sikkim'},
-    '29' : {'code':'TN','name':'Tamil Nadu'},
-    '30' : {'code':'TR','name':'Tripura'},
-    '31' : {'code':'UP','name':'Uttar Pradesh'},
-    '32' : {'code':'WB','name':'West Bengal'}
-  },
-  'ID':{
-    '1' : {'code':'DA','name':'Daista Aceh'},
-    '2' : {'code':'SU','name':'Sumatera Utara'},
-    '3' : {'code':'SB','name':'Sumatera Barat'},
-    '4' : {'code':'SI','name':'Riau'},
-    '5' : {'code':'JA','name':'Jambi'},
-    '6' : {'code':'SS','name':'Sumatera Selatan'},
-    '7' : {'code':'BE','name':'Bengkulu'},
-    '8' : {'code':'LA','name':'Lampung'},
-    '9' : {'code':'JK','name':'Dki Jakarta'},
-    '10' : {'code':'JB','name':'Jawa Barat'},
-    '11' : {'code':'JT','name':'Jawa Tengah'},
-    '12' : {'code':'DY','name':'Daista Yogyakarta'},
-    '13' : {'code':'JT','name':'Jawa Timur'},
-    '14' : {'code':'KB','name':'Kalimantan Barat'},
-    '15' : {'code':'KT','name':'Kalimantan Tengah'},
-    '16' : {'code':'KI','name':'Kalimantan Timur'},
-    '17' : {'code':'KS','name':'Kalimantan Selatan'},
-    '18' : {'code':'BA','name':'Bali'},
-    '19' : {'code':'NB','name':'Nusa Tenggara Barat'},
-    '20' : {'code':'NT','name':'Nusa Tenggara Timur'},
-    '21' : {'code':'SN','name':'Sulawesi Selatan'},
-    '22' : {'code':'ST','name':'Sulawesi Tengah'},
-    '23' : {'code':'SA','name':'Sulawesi Utara'},
-    '24' : {'code':'SG','name':'Sulawesi Tenggara'},
-    '25' : {'code':'MA','name':'Maluku'},
-    '26' : {'code':'MU','name':'Maluku Utara'},
-    '27' : {'code':'IJ','name':'Irian Jaya Timur'},
-    '28' : {'code':'IT','name':'Irian Jaya Tengah'},
-    '29' : {'code':'IB','name':'Irian Jawa Barat'},
-    '30' : {'code':'BT','name':'Banten'},
-    '31' : {'code':'BB','name':'Bangka Belitung'},
-    '32' : {'code':'GO','name':'Gorontalo'}
-  },
-  'IR':{
-    '1' : {'code':'ARD','name':'Ardabil'},
-    '2' : {'code':'BSH','name':'Bushehr'},
-    '3' : {'code':'CMB','name':'Chahar Mahaal and Bakhtiari'},
-    '4' : {'code':'EAZ','name':'East Azarbaijan'},
-    '5' : {'code':'EFH','name':'Esfahan'},
-    '6' : {'code':'FAR','name':'Fars'},
-    '7' : {'code':'GIL','name':'Gilan'},
-    '8' : {'code':'GLS','name':'Golestan'},
-    '9' : {'code':'HMD','name':'Hamadan'},
-    '10' : {'code':'HRM','name':'Hormozgan'},
-    '11' : {'code':'ILM','name':'Ilam'},
-    '12' : {'code':'KBA','name':'Kohkiluyeh and Buyer Ahmad'},
-    '13' : {'code':'KRB','name':'Kerman'},
-    '14' : {'code':'KRD','name':'Kurdistan'},
-    '15' : {'code':'KRM','name':'Kermanshah'},
-    '16' : {'code':'KZT','name':'Khuzestan'},
-    '17' : {'code':'LRS','name':'Lorestan'},
-    '18' : {'code':'MKZ','name':'Markazi'},
-    '19' : {'code':'MZD','name':'Mazandaran'},
-    '20' : {'code':'NKH','name':'North Khorasan'},
-    '21' : {'code':'QAZ','name':'Qazvin'},
-    '22' : {'code':'QOM','name':'Qom'},
-    '23' : {'code':'RKH','name':'Razavi Khorasan'},
-    '24' : {'code':'SBL','name':'Sistan and Baluchistan'},
-    '25' : {'code':'SKH','name':'South Khorasan'},
-    '26' : {'code':'SMN','name':'Semnan'},
-    '27' : {'code':'TEH','name':'Tehran'},
-    '28' : {'code':'WEZ','name':'West Azarbaijan'},
-    '29' : {'code':'YZD','name':'Yazd'},
-    '30' : {'code':'ZAN','name':'Zanjan'}
-  },
-  'IQ':{
-    '1' : {'code':'AB','name':'Al Anbar'},
-    '2' : {'code':'AL','name':'Arbil'},
-    '3' : {'code':'BA','name':'Al Basrah'},
-    '4' : {'code':'BB','name':'Babil'},
-    '5' : {'code':'BD','name':'Baghdad'},
-    '6' : {'code':'DH','name':'Dahuk'},
-    '7' : {'code':'DQ','name':'Dhi Qar'},
-    '8' : {'code':'DY','name':'Diyala'},
-    '9' : {'code':'KB','name':'Al Karbala'},
-    '10' : {'code':'MU','name':'Al Muthanna'},
-    '11' : {'code':'MY','name':'Maysan'},
-    '12' : {'code':'NJ','name':'An Najaf'},
-    '13' : {'code':'NN','name':'Ninawa'},
-    '14' : {'code':'QA','name':'Al Qadisyah'},
-    '15' : {'code':'SD','name':'Salah ad Din'},
-    '16' : {'code':'SL','name':'As Sulaymaniyah'},
-    '17' : {'code':'TM','name':'At Ta\'mim'},
-    '18' : {'code':'WS','name':'Wasit'}
-  },
-  'IE':{
-    '1' : {'code':'CA','name':'Carlow'},
-    '2' : {'code':'CV','name':'Cavan'},
-    '3' : {'code':'CL','name':'Clare'},
-    '4' : {'code':'CO','name':'Cork'},
-    '5' : {'code':'DO','name':'Donegal'},
-    '6' : {'code':'DU','name':'Dublin'},
-    '7' : {'code':'GA','name':'Galway'},
-    '8' : {'code':'KE','name':'Kerry'},
-    '9' : {'code':'KI','name':'Kildare'},
-    '10' : {'code':'KL','name':'Kilkenny'},
-    '11' : {'code':'LA','name':'Laois'},
-    '12' : {'code':'LE','name':'Leitrim'},
-    '13' : {'code':'LI','name':'Limerick'},
-    '14' : {'code':'LO','name':'Longford'},
-    '15' : {'code':'LU','name':'Louth'},
-    '16' : {'code':'MA','name':'Mayo'},
-    '17' : {'code':'ME','name':'Meath'},
-    '18' : {'code':'MO','name':'Monaghan'},
-    '19' : {'code':'OF','name':'Offaly'},
-    '20' : {'code':'RO','name':'Roscommon'},
-    '21' : {'code':'SL','name':'Sligo'},
-    '22' : {'code':'TI','name':'Tipperary'},
-    '23' : {'code':'WA','name':'Waterford'},
-    '24' : {'code':'WE','name':'Westmeath'},
-    '25' : {'code':'WX','name':'Wexford'},
-    '26' : {'code':'WI','name':'Wicklow'}
-  },
-  'IL':{
-    '1' : {'code':'BS','name':'Be\'er Sheva'},
-    '2' : {'code':'BH','name':'Bika\'at Hayarden'},
-    '3' : {'code':'EA','name':'Eilat and Arava'},
-    '4' : {'code':'GA','name':'Galil'},
-    '5' : {'code':'HA','name':'Haifa'},
-    '6' : {'code':'JM','name':'Jehuda Mountains'},
-    '7' : {'code':'JE','name':'Jerusalem'},
-    '8' : {'code':'NE','name':'Negev'},
-    '10' : {'code':'SE','name':'Semaria'},
-    '11' : {'code':'SH','name':'Sharon'},
-    '12' : {'code':'TA','name':'Tel Aviv (Gosh Dan)'}
-  },
-  'IT':{
-    '1' : {'code':'AG','name':'Agrigento'},
-    '2' : {'code':'AL','name':'Alessandria'},
-    '3' : {'code':'AN','name':'Ancona'},
-    '4' : {'code':'AO','name':'Aosta'},
-    '5' : {'code':'AR','name':'Arezzo'},
-    '6' : {'code':'AP','name':'Ascoli Piceno'},
-    '7' : {'code':'AT','name':'Asti'},
-    '8' : {'code':'AV','name':'Avellino'},
-    '9' : {'code':'BA','name':'Bari'},
-    '10' : {'code':'BL','name':'Belluno'},
-    '11' : {'code':'BN','name':'Benevento'},
-    '12' : {'code':'BG','name':'Bergamo'},
-    '13' : {'code':'BI','name':'Biella'},
-    '14' : {'code':'BO','name':'Bologna'},
-    '15' : {'code':'BZ','name':'Bolzano'},
-    '16' : {'code':'BS','name':'Brescia'},
-    '17' : {'code':'BR','name':'Brindisi'},
-    '18' : {'code':'CA','name':'Cagliari'},
-    '19' : {'code':'CL','name':'Caltanissetta'},
-    '20' : {'code':'CB','name':'Campobasso'},
-    '21' : {'code':'CE','name':'Caserta'},
-    '22' : {'code':'CT','name':'Catania'},
-    '23' : {'code':'CZ','name':'Catanzaro'},
-    '24' : {'code':'CH','name':'Chieti'},
-    '25' : {'code':'CO','name':'Como'},
-    '26' : {'code':'CS','name':'Cosenza'},
-    '27' : {'code':'CR','name':'Cremona'},
-    '28' : {'code':'KR','name':'Crotone'},
-    '29' : {'code':'CN','name':'Cuneo'},
-    '30' : {'code':'EN','name':'Enna'},
-    '31' : {'code':'FE','name':'Ferrara'},
-    '32' : {'code':'FI','name':'Firenze'},
-    '33' : {'code':'FG','name':'Foggia'},
-    '34' : {'code':'FO','name':'Forlì'},
-    '35' : {'code':'FR','name':'Frosinone'},
-    '36' : {'code':'GE','name':'Genova'},
-    '37' : {'code':'GO','name':'Gorizia'},
-    '38' : {'code':'GR','name':'Grosseto'},
-    '39' : {'code':'IM','name':'Imperia'},
-    '40' : {'code':'IS','name':'Isernia'},
-    '41' : {'code':'AQ','name':'Aquila'},
-    '42' : {'code':'SP','name':'La Spezia'},
-    '43' : {'code':'LT','name':'Latina'},
-    '44' : {'code':'LE','name':'Lecce'},
-    '45' : {'code':'LC','name':'Lecco'},
-    '46' : {'code':'LI','name':'Livorno'},
-    '47' : {'code':'LO','name':'Lodi'},
-    '48' : {'code':'LU','name':'Lucca'},
-    '49' : {'code':'MC','name':'Macerata'},
-    '50' : {'code':'MN','name':'Mantova'},
-    '51' : {'code':'MS','name':'Massa-Carrara'},
-    '52' : {'code':'MT','name':'Matera'},
-    '53' : {'code':'ME','name':'Messina'},
-    '54' : {'code':'MI','name':'Milano'},
-    '55' : {'code':'MO','name':'Modena'},
-    '56' : {'code':'NA','name':'Napoli'},
-    '57' : {'code':'NO','name':'Novara'},
-    '58' : {'code':'NU','name':'Nuoro'},
-    '59' : {'code':'OR','name':'Oristano'},
-    '60' : {'code':'PD','name':'Padova'},
-    '61' : {'code':'PA','name':'Palermo'},
-    '62' : {'code':'PR','name':'Parma'},
-    '63' : {'code':'PG','name':'Perugia'},
-    '64' : {'code':'PV','name':'Pavia'},
-    '65' : {'code':'PU','name':'Pesaro Urbino'},
-    '66' : {'code':'PE','name':'Pescara'},
-    '67' : {'code':'PC','name':'Piacenza'},
-    '68' : {'code':'PI','name':'Pisa'},
-    '69' : {'code':'PT','name':'Pistoia'},
-    '70' : {'code':'PN','name':'Pordenone'},
-    '71' : {'code':'PZ','name':'Potenza'},
-    '72' : {'code':'PO','name':'Prato'},
-    '73' : {'code':'RG','name':'Ragusa'},
-    '74' : {'code':'RA','name':'Ravenna'},
-    '75' : {'code':'RC','name':'Reggio Calabria'},
-    '76' : {'code':'RE','name':'Reggio Emilia'},
-    '77' : {'code':'RI','name':'Rieti'},
-    '78' : {'code':'RN','name':'Rimini'},
-    '79' : {'code':'RM','name':'Roma'},
-    '80' : {'code':'RO','name':'Rovigo'},
-    '81' : {'code':'SA','name':'Salerno'},
-    '82' : {'code':'SS','name':'Sassari'},
-    '83' : {'code':'SV','name':'Savona'},
-    '84' : {'code':'SI','name':'Siena'},
-    '85' : {'code':'SR','name':'Siracusa'},
-    '86' : {'code':'SO','name':'Sondrio'},
-    '87' : {'code':'TA','name':'Taranto'},
-    '88' : {'code':'TE','name':'Teramo'},
-    '89' : {'code':'TR','name':'Terni'},
-    '90' : {'code':'TO','name':'Torino'},
-    '91' : {'code':'TP','name':'Trapani'},
-    '92' : {'code':'TN','name':'Trento'},
-    '93' : {'code':'TV','name':'Treviso'},
-    '94' : {'code':'TS','name':'Trieste'},
-    '95' : {'code':'UD','name':'Udine'},
-    '96' : {'code':'VA','name':'Varese'},
-    '97' : {'code':'VE','name':'Venezia'},
-    '98' : {'code':'VB','name':'Verbania'},
-    '99' : {'code':'VC','name':'Vercelli'},
-    '100' : {'code':'VR','name':'Verona'},
-    '101' : {'code':'VV','name':'Vibo Valentia'},
-    '102' : {'code':'VI','name':'Vicenza'},
-    '103' : {'code':'VT','name':'Viterbo'},
-    '104' : {'code':'CI','name':'Carbonia-Iglesias'},
-    '105' : {'code':'VS','name':'Medio Campidano'},
-    '106' : {'code':'OG','name':'Ogliastra'},
-    '107' : {'code':'OT','name':'Olbia-Tempio'},
-    '108' : {'code':'MB','name':'Monza e Brianza'},
-    '109' : {'code':'FM','name':'Fermo'},
-    '110' : {'code':'BT','name':'Barletta-Andria-Trani'}
-  },
-  'JM':{
-    '1' : {'code':'CLA','name':'Clarendon Parish'},
-    '2' : {'code':'HAN','name':'Hanover Parish'},
-    '3' : {'code':'KIN','name':'Kingston Parish'},
-    '4' : {'code':'MAN','name':'Manchester Parish'},
-    '5' : {'code':'POR','name':'Portland Parish'},
-    '6' : {'code':'AND','name':'Saint Andrew Parish'},
-    '7' : {'code':'ANN','name':'Saint Ann Parish'},
-    '8' : {'code':'CAT','name':'Saint Catherine Parish'},
-    '9' : {'code':'ELI','name':'Saint Elizabeth Parish'},
-    '10' : {'code':'JAM','name':'Saint James Parish'},
-    '11' : {'code':'MAR','name':'Saint Mary Parish'},
-    '12' : {'code':'THO','name':'Saint Thomas Parish'},
-    '13' : {'code':'TRL','name':'Trelawny Parish'},
-    '14' : {'code':'WML','name':'Westmoreland Parish'}
-  },
-  'JP':{
-    '1' : {'code':'AI','name':'Aichi'},
-    '2' : {'code':'AK','name':'Akita'},
-    '3' : {'code':'AO','name':'Aomori'},
-    '4' : {'code':'CH','name':'Chiba'},
-    '5' : {'code':'EH','name':'Ehime'},
-    '6' : {'code':'FK','name':'Fukui'},
-    '7' : {'code':'FU','name':'Fukuoka'},
-    '8' : {'code':'FS','name':'Fukushima'},
-    '9' : {'code':'GI','name':'Gifu'},
-    '10' : {'code':'GU','name':'Gumma'},
-    '11' : {'code':'HI','name':'Hiroshima'},
-    '12' : {'code':'HO','name':'Hokkaido'},
-    '13' : {'code':'HY','name':'Hyogo'},
-    '14' : {'code':'IB','name':'Ibaraki'},
-    '15' : {'code':'IS','name':'Ishikawa'},
-    '16' : {'code':'IW','name':'Iwate'},
-    '17' : {'code':'KA','name':'Kagawa'},
-    '18' : {'code':'KG','name':'Kagoshima'},
-    '19' : {'code':'KN','name':'Kanagawa'},
-    '20' : {'code':'KO','name':'Kochi'},
-    '21' : {'code':'KU','name':'Kumamoto'},
-    '22' : {'code':'KY','name':'Kyoto'},
-    '23' : {'code':'MI','name':'Mie'},
-    '24' : {'code':'MY','name':'Miyagi'},
-    '25' : {'code':'MZ','name':'Miyazaki'},
-    '26' : {'code':'NA','name':'Nagano'},
-    '27' : {'code':'NG','name':'Nagasaki'},
-    '28' : {'code':'NR','name':'Nara'},
-    '29' : {'code':'NI','name':'Niigata'},
-    '30' : {'code':'OI','name':'Oita'},
-    '31' : {'code':'OK','name':'Okayama'},
-    '32' : {'code':'ON','name':'Okinawa'},
-    '33' : {'code':'OS','name':'Osaka'},
-    '34' : {'code':'SA','name':'Saga'},
-    '35' : {'code':'SI','name':'Saitama'},
-    '36' : {'code':'SH','name':'Shiga'},
-    '37' : {'code':'SM','name':'Shimane'},
-    '38' : {'code':'SZ','name':'Shizuoka'},
-    '39' : {'code':'TO','name':'Tochigi'},
-    '40' : {'code':'TS','name':'Tokushima'},
-    '41' : {'code':'TK','name':'Tokyo'},
-    '42' : {'code':'TT','name':'Tottori'},
-    '43' : {'code':'TY','name':'Toyama'},
-    '44' : {'code':'WA','name':'Wakayama'},
-    '45' : {'code':'YA','name':'Yamagata'},
-    '46' : {'code':'YM','name':'Yamaguchi'},
-    '47' : {'code':'YN','name':'Yamanashi'}
-  },
-  'JO':{
-    '1' : {'code':'AM','name':'\'Amman'},
-    '2' : {'code':'AJ','name':'Ajlun'},
-    '3' : {'code':'AA','name':'Al\'Aqabah'},
-    '4' : {'code':'AB','name':'Al Balqa\''},
-    '5' : {'code':'AK','name':'Al Karak'},
-    '6' : {'code':'AL','name':'Al Mafraq'},
-    '7' : {'code':'AT','name':'At Tafilah'},
-    '8' : {'code':'AZ','name':'Az Zarqa\''},
-    '9' : {'code':'IR','name':'Irbid'},
-    '10' : {'code':'JA','name':'Jarash'},
-    '11' : {'code':'MA','name':'Ma\'an'},
-    '12' : {'code':'MD','name':'Madaba'}
-  },
-  'KZ':{
-    '1' : {'code':'AL','name':'Almaty'},
-    '2' : {'code':'AC','name':'Almaty City'},
-    '3' : {'code':'AM','name':'Aqmola'},
-    '4' : {'code':'AQ','name':'Aqtobe'},
-    '5' : {'code':'AS','name':'Astana City'},
-    '6' : {'code':'AT','name':'Atyrau'},
-    '7' : {'code':'BA','name':'Batys Qazaqstan'},
-    '8' : {'code':'BY','name':'Bayqongyr City'},
-    '9' : {'code':'MA','name':'Mangghystau'},
-    '10' : {'code':'ON','name':'Ongtustik Qazaqstan'},
-    '11' : {'code':'PA','name':'Pavlodar'},
-    '12' : {'code':'QA','name':'Qaraghandy'},
-    '13' : {'code':'QO','name':'Qostanay'},
-    '14' : {'code':'QY','name':'Qyzylorda'},
-    '15' : {'code':'SH','name':'Shyghys Qazaqstan'},
-    '16' : {'code':'SO','name':'Soltustik Qazaqstan'},
-    '17' : {'code':'ZH','name':'Zhambyl'}
-  },
-  'KE':{
-    '1' : {'code':'CE','name':'Central'},
-    '2' : {'code':'CO','name':'Coast'},
-    '3' : {'code':'EA','name':'Eastern'},
-    '4' : {'code':'NA','name':'Nairobi Area'},
-    '5' : {'code':'NE','name':'North Eastern'},
-    '6' : {'code':'NY','name':'Nyanza'},
-    '7' : {'code':'RV','name':'Rift Valley'},
-    '8' : {'code':'WE','name':'Western'}
-  },
-  'KI':{
-    '1' : {'code':'AG','name':'Abaiang'},
-    '2' : {'code':'AM','name':'Abemama'},
-    '3' : {'code':'AK','name':'Aranuka'},
-    '4' : {'code':'AO','name':'Arorae'},
-    '5' : {'code':'BA','name':'Banaba'},
-    '6' : {'code':'BE','name':'Beru'},
-    '7' : {'code':'bT','name':'Butaritari'},
-    '8' : {'code':'KA','name':'Kanton'},
-    '9' : {'code':'KR','name':'Kiritimati'},
-    '10' : {'code':'KU','name':'Kuria'},
-    '11' : {'code':'MI','name':'Maiana'},
-    '12' : {'code':'MN','name':'Makin'},
-    '13' : {'code':'ME','name':'Marakei'},
-    '14' : {'code':'NI','name':'Nikunau'},
-    '15' : {'code':'NO','name':'Nonouti'},
-    '16' : {'code':'ON','name':'Onotoa'},
-    '17' : {'code':'TT','name':'Tabiteuea'},
-    '18' : {'code':'TR','name':'Tabuaeran'},
-    '19' : {'code':'TM','name':'Tamana'},
-    '20' : {'code':'TW','name':'Tarawa'},
-    '21' : {'code':'TE','name':'Teraina'}
-  },
-  'KP':{
-    '1' : {'code':'CHA','name':'Chagang-do'},
-    '2' : {'code':'HAB','name':'Hamgyong-bukto'},
-    '3' : {'code':'HAN','name':'Hamgyong-namdo'},
-    '4' : {'code':'HWB','name':'Hwanghae-bukto'},
-    '5' : {'code':'HWN','name':'Hwanghae-namdo'},
-    '6' : {'code':'KAN','name':'Kangwon-do'},
-    '7' : {'code':'PYB','name':'P\'yongan-bukto'},
-    '8' : {'code':'PYN','name':'P\'yongan-namdo'},
-    '9' : {'code':'YAN','name':'Ryanggang-do (Yanggang-do)'},
-    '10' : {'code':'NAJ','name':'Rason Directly Governed City'},
-    '11' : {'code':'PYO','name':'P\'yongyang Special City'}
-  },
-  'KR':{
-    '1' : {'code':'CO','name':'Ch\'ungch\'ong-bukto'},
-    '2' : {'code':'CH','name':'Ch\'ungch\'ong-namdo'},
-    '3' : {'code':'CD','name':'Cheju-do'},
-    '4' : {'code':'CB','name':'Cholla-bukto'},
-    '5' : {'code':'CN','name':'Cholla-namdo'},
-    '6' : {'code':'IG','name':'Inch\'on-gwangyoksi'},
-    '7' : {'code':'KA','name':'Kangwon-do'},
-    '8' : {'code':'KG','name':'Kwangju-gwangyoksi'},
-    '9' : {'code':'KD','name':'Kyonggi-do'},
-    '10' : {'code':'KB','name':'Kyongsang-bukto'},
-    '11' : {'code':'KN','name':'Kyongsang-namdo'},
-    '12' : {'code':'PG','name':'Pusan-gwangyoksi'},
-    '13' : {'code':'SO','name':'Soul-t\'ukpyolsi'},
-    '14' : {'code':'TA','name':'Taegu-gwangyoksi'},
-    '15' : {'code':'TG','name':'Taejon-gwangyoksi'}
-  },
-  'KW':{
-    '1' : {'code':'AL','name':'Al\'Asimah'},
-    '2' : {'code':'AA','name':'Al Ahmadi'},
-    '3' : {'code':'AF','name':'Al Farwaniyah'},
-    '4' : {'code':'AJ','name':'Al Jahra\''},
-    '5' : {'code':'HA','name':'Hawalli'}
-  },
-  'KG':{
-    '1' : {'code':'GB','name':'Bishkek'},
-    '2' : {'code':'B','name':'Batken'},
-    '3' : {'code':'C','name':'Chu'},
-    '4' : {'code':'J','name':'Jalal-Abad'},
-    '5' : {'code':'N','name':'Naryn'},
-    '6' : {'code':'O','name':'Osh'},
-    '7' : {'code':'T','name':'Talas'},
-    '8' : {'code':'Y','name':'Ysyk-Kol'}
-  },
-  'LA':{
-    '1' : {'code':'VT','name':'Vientiane'},
-    '2' : {'code':'AT','name':'Attapu'},
-    '3' : {'code':'BK','name':'Bokeo'},
-    '4' : {'code':'BL','name':'Bolikhamxai'},
-    '5' : {'code':'CH','name':'Champasak'},
-    '6' : {'code':'HO','name':'Houaphan'},
-    '7' : {'code':'KH','name':'Khammouan'},
-    '8' : {'code':'LM','name':'Louang Namtha'},
-    '9' : {'code':'LP','name':'Louangphabang'},
-    '10' : {'code':'OU','name':'Oudomxai'},
-    '11' : {'code':'PH','name':'Phongsali'},
-    '12' : {'code':'SL','name':'Salavan'},
-    '13' : {'code':'SV','name':'Savannakhet'},
-    '14' : {'code':'VI','name':'Vientiane'},
-    '15' : {'code':'XA','name':'Xaignabouli'},
-    '16' : {'code':'XE','name':'Xekong'},
-    '17' : {'code':'XI','name':'Xiangkhoang'},
-    '18' : {'code':'XN','name':'Xaisomboun'}
-  },
-  'LV':{
-    '1' : {'code':'AIZ','name':'Aizkraukles Rajons'},
-    '2' : {'code':'ALU','name':'Aluksnes Rajons'},
-    '3' : {'code':'BAL','name':'Balvu Rajons'},
-    '4' : {'code':'BAU','name':'Bauskas Rajons'},
-    '5' : {'code':'CES','name':'Cesu Rajons'},
-    '6' : {'code':'DGR','name':'Daugavpils Rajons'},
-    '7' : {'code':'DOB','name':'Dobeles Rajons'},
-    '8' : {'code':'GUL','name':'Gulbenes Rajons'},
-    '9' : {'code':'JEK','name':'Jekabpils Rajons'},
-    '10' : {'code':'JGR','name':'Jelgavas Rajons'},
-    '11' : {'code':'KRA','name':'Kraslavas Rajons'},
-    '12' : {'code':'KUL','name':'Kuldigas Rajons'},
-    '13' : {'code':'LPR','name':'Liepajas Rajons'},
-    '14' : {'code':'LIM','name':'Limbazu Rajons'},
-    '15' : {'code':'LUD','name':'Ludzas Rajons'},
-    '16' : {'code':'MAD','name':'Madonas Rajons'},
-    '17' : {'code':'OGR','name':'Ogres Rajons'},
-    '18' : {'code':'PRE','name':'Preilu Rajons'},
-    '19' : {'code':'RZR','name':'Rezeknes Rajons'},
-    '20' : {'code':'RGR','name':'Rigas Rajons'},
-    '21' : {'code':'SAL','name':'Saldus Rajons'},
-    '22' : {'code':'TAL','name':'Talsu Rajons'},
-    '23' : {'code':'TUK','name':'Tukuma Rajons'},
-    '24' : {'code':'VLK','name':'Valkas Rajons'},
-    '25' : {'code':'VLM','name':'Valmieras Rajons'},
-    '26' : {'code':'VSR','name':'Ventspils Rajons'},
-    '27' : {'code':'DGV','name':'Daugavpils'},
-    '28' : {'code':'JGV','name':'Jelgava'},
-    '29' : {'code':'JUR','name':'Jurmala'},
-    '30' : {'code':'LPK','name':'Liepaja'},
-    '31' : {'code':'RZK','name':'Rezekne'},
-    '32' : {'code':'RGA','name':'Riga'},
-    '33' : {'code':'VSL','name':'Ventspils'}
-  },
-  'LB':{
-    '1' : {'code':'BIN','name':'Bint Jbeil'},
-    '2' : {'code':'HAS','name':'Hasbaya'},
-    '3' : {'code':'MAR','name':'Marjeyoun'},
-    '4' : {'code':'NAB','name':'Nabatieh'},
-    '5' : {'code':'BAA','name':'Baalbek'},
-    '6' : {'code':'HER','name':'Hermel'},
-    '7' : {'code':'RAS','name':'Rashaya'},
-    '8' : {'code':'WES','name':'Western Beqaa'},
-    '9' : {'code':'ZAH','name':'Zahle'},
-    '10' : {'code':'AKK','name':'Akkar'},
-    '11' : {'code':'BAT','name':'Batroun'},
-    '12' : {'code':'BSH','name':'Bsharri'},
-    '13' : {'code':'KOU','name':'Koura'},
-    '14' : {'code':'MIN','name':'Miniyeh-Danniyeh'},
-    '15' : {'code':'TRI','name':'Tripoli'},
-    '16' : {'code':'ZGH','name':'Zgharta'},
-    '17' : {'code':'ALE','name':'Aley'},
-    '18' : {'code':'BAA','name':'Baabda'},
-    '19' : {'code':'BYB','name':'Byblos'},
-    '20' : {'code':'CHO','name':'Chouf'},
-    '21' : {'code':'KES','name':'Kesrwan'},
-    '22' : {'code':'MAT','name':'Matn'},
-    '23' : {'code':'JEZ','name':'Jezzine'},
-    '24' : {'code':'SID','name':'Sidon'},
-    '25' : {'code':'TYR','name':'Tyre'}
-  },
-  'LS':{
-    '1' : {'code':'BE','name':'Berea'},
-    '2' : {'code':'BB','name':'Butha-Buthe'},
-    '3' : {'code':'LE','name':'Leribe'},
-    '4' : {'code':'MF','name':'Mafeteng'},
-    '5' : {'code':'MS','name':'Maseru'},
-    '6' : {'code':'MH','name':'Mohale\'s Hoek'},
-    '7' : {'code':'MK','name':'Mokhotlong'},
-    '8' : {'code':'QN','name':'Qacha\'s Nek'},
-    '9' : {'code':'QT','name':'Quthing'},
-    '10' : {'code':'TT','name':'Thaba-Tseka'}
-  },
-  'LR':{
-    '1' : {'code':'BI','name':'Bomi'},
-    '2' : {'code':'BG','name':'Bong'},
-    '3' : {'code':'GB','name':'Grand Bassa'},
-    '4' : {'code':'CM','name':'Grand Cape Mount'},
-    '5' : {'code':'GG','name':'Grand Gedeh'},
-    '6' : {'code':'GK','name':'Grand Kru'},
-    '7' : {'code':'LO','name':'Lofa'},
-    '8' : {'code':'MG','name':'Margibi'},
-    '9' : {'code':'ML','name':'Maryland'},
-    '10' : {'code':'MS','name':'Montserrado'},
-    '11' : {'code':'NB','name':'Nimba'},
-    '12' : {'code':'RC','name':'River Cess'},
-    '13' : {'code':'SN','name':'Sinoe'}
-  },
-  'LY':{
-    '1' : {'code':'AJ','name':'Ajdabiya'},
-    '2' : {'code':'AZ','name':'Al \'Aziziyah'},
-    '3' : {'code':'FA','name':'Al Fatih'},
-    '4' : {'code':'JA','name':'Al Jabal al Akhdar'},
-    '5' : {'code':'JU','name':'Al Jufrah'},
-    '6' : {'code':'KH','name':'Al Khums'},
-    '7' : {'code':'KU','name':'Al Kufrah'},
-    '8' : {'code':'NK','name':'An Nuqat al Khams'},
-    '9' : {'code':'AS','name':'Ash Shati\''},
-    '10' : {'code':'AW','name':'Awbari'},
-    '11' : {'code':'ZA','name':'Az Zawiyah'},
-    '12' : {'code':'BA','name':'Banghazi'},
-    '13' : {'code':'DA','name':'Darnah'},
-    '14' : {'code':'GD','name':'Ghadamis'},
-    '15' : {'code':'GY','name':'Gharyan'},
-    '16' : {'code':'MI','name':'Misratah'},
-    '17' : {'code':'MZ','name':'Murzuq'},
-    '18' : {'code':'SB','name':'Sabha'},
-    '19' : {'code':'SW','name':'Sawfajjin'},
-    '20' : {'code':'SU','name':'Surt'},
-    '21' : {'code':'TL','name':'Tarabulus (Tripoli)'},
-    '22' : {'code':'TH','name':'Tarhunah'},
-    '23' : {'code':'TU','name':'Tubruq'},
-    '24' : {'code':'YA','name':'Yafran'},
-    '25' : {'code':'ZL','name':'Zlitan'}
-  },
-  'LI':{
-    '1' : {'code':'V','name':'Vaduz'},
-    '2' : {'code':'A','name':'Schaan'},
-    '3' : {'code':'B','name':'Balzers'},
-    '4' : {'code':'N','name':'Triesen'},
-    '5' : {'code':'E','name':'Eschen'},
-    '6' : {'code':'M','name':'Mauren'},
-    '7' : {'code':'T','name':'Triesenberg'},
-    '8' : {'code':'R','name':'Ruggell'},
-    '9' : {'code':'G','name':'Gamprin'},
-    '10' : {'code':'L','name':'Schellenberg'},
-    '11' : {'code':'P','name':'Planken'}
-  },
-  'LT':{
-    '1' : {'code':'AL','name':'Alytus'},
-    '2' : {'code':'KA','name':'Kaunas'},
-    '3' : {'code':'KL','name':'Klaipeda'},
-    '4' : {'code':'MA','name':'Marijampole'},
-    '5' : {'code':'PA','name':'Panevezys'},
-    '6' : {'code':'SI','name':'Siauliai'},
-    '7' : {'code':'TA','name':'Taurage'},
-    '8' : {'code':'TE','name':'Telsiai'},
-    '9' : {'code':'UT','name':'Utena'},
-    '10' : {'code':'VI','name':'Vilnius'}
-  },
-  'LU':{
-    '1' : {'code':'DD','name':'Diekirch'},
-    '2' : {'code':'DC','name':'Clervaux'},
-    '3' : {'code':'DR','name':'Redange'},
-    '4' : {'code':'DV','name':'Vianden'},
-    '5' : {'code':'DW','name':'Wiltz'},
-    '6' : {'code':'GG','name':'Grevenmacher'},
-    '7' : {'code':'GE','name':'Echternach'},
-    '8' : {'code':'GR','name':'Remich'},
-    '9' : {'code':'LL','name':'Luxembourg'},
-    '10' : {'code':'LC','name':'Capellen'},
-    '11' : {'code':'LE','name':'Esch-sur-Alzette'},
-    '12' : {'code':'LM','name':'Mersch'}
-  },
-  'MO':{
-    '1' : {'code':'OLF','name':'Our Lady Fatima Parish'},
-    '2' : {'code':'ANT','name':'St. Anthony Parish'},
-    '3' : {'code':'LAZ','name':'St. Lazarus Parish'},
-    '4' : {'code':'CAT','name':'Cathedral Parish'},
-    '5' : {'code':'LAW','name':'St. Lawrence Parish'}
-  },
-  'MK':{
-    '1' : {'code':'AER','name':'Aerodrom'},
-    '2' : {'code':'ARA','name':'Aračinovo'},
-    '3' : {'code':'BER','name':'Berovo'},
-    '4' : {'code':'BIT','name':'Bitola'},
-    '5' : {'code':'BOG','name':'Bogdanci'},
-    '6' : {'code':'BOG','name':'Bogovinje'},
-    '7' : {'code':'BOS','name':'Bosilovo'},
-    '8' : {'code':'BRV','name':'Brvenica'},
-    '9' : {'code':'BUT','name':'Butel'},
-    '10' : {'code':'ČAI','name':'Čair'},
-    '11' : {'code':'ČAš','name':'Čaška'},
-    '12' : {'code':'CEN','name':'Centar'},
-    '13' : {'code':'CEN','name':'Centar Župa'},
-    '14' : {'code':'Češ','name':'Češinovo-Obleš'},
-    '15' : {'code':'ČUČ','name':'Čučer-Sandevo'},
-    '16' : {'code':'DEB','name':'Debar'},
-    '17' : {'code':'DEB','name':'Debarca'},
-    '18' : {'code':'DEL','name':'Delčevo'},
-    '19' : {'code':'DEM','name':'Demir Hisar'},
-    '20' : {'code':'DEM','name':'Demir Kapija'},
-    '21' : {'code':'DOL','name':'Dolneni'},
-    '22' : {'code':'DRU','name':'Drugovo'},
-    '23' : {'code':'GAZ','name':'Gazi Baba'},
-    '24' : {'code':'GEV','name':'Gevgelija'},
-    '25' : {'code':'GJO','name':'Gjorče Petrov'},
-    '26' : {'code':'GOS','name':'Gostivar'},
-    '27' : {'code':'GRA','name':'Gradsko'},
-    '28' : {'code':'ILI','name':'Ilinden'},
-    '29' : {'code':'JEG','name':'Jegunovce'},
-    '30' : {'code':'KAR','name':'Karbinci'},
-    '31' : {'code':'KAR','name':'Karpoš'},
-    '32' : {'code':'KAV','name':'Kavadarci'},
-    '33' : {'code':'KIČ','name':'Kičevo'},
-    '34' : {'code':'KIS','name':'Kisela Voda'},
-    '35' : {'code':'KOč','name':'Kočani'},
-    '36' : {'code':'KON','name':'Konče'},
-    '37' : {'code':'KRA','name':'Kratovo'},
-    '38' : {'code':'KRI','name':'Kriva Palanka'},
-    '39' : {'code':'KRI','name':'Krivogaštani'},
-    '40' : {'code':'KRU','name':'Kruševo'},
-    '41' : {'code':'KUM','name':'Kumanovo'},
-    '42' : {'code':'LIP','name':'Lipkovo'},
-    '43' : {'code':'LOZ','name':'Lozovo'},
-    '44' : {'code':'MAK','name':'Makedonska Kamenica'},
-    '45' : {'code':'MAK','name':'Makedonski Brod'},
-    '46' : {'code':'MAV','name':'Mavrovo and Rostuša'},
-    '47' : {'code':'MOG','name':'Mogila'},
-    '48' : {'code':'NEG','name':'Negotino'},
-    '49' : {'code':'NOV','name':'Novaci'},
-    '50' : {'code':'NOV','name':'Novo Selo'},
-    '51' : {'code':'OHR','name':'Ohrid'},
-    '52' : {'code':'OSL','name':'Oslomej'},
-    '53' : {'code':'PEH','name':'Pehčevo'},
-    '54' : {'code':'PET','name':'Petrovec'},
-    '55' : {'code':'PLA','name':'Plasnica'},
-    '56' : {'code':'PRI','name':'Prilep'},
-    '57' : {'code':'PRO','name':'Probištip'},
-    '58' : {'code':'RAD','name':'Radoviš'},
-    '59' : {'code':'RAN','name':'Rankovce'},
-    '60' : {'code':'RES','name':'Resen'},
-    '61' : {'code':'ROS','name':'Rosoman'},
-    '62' : {'code':'SAR','name':'Saraj'},
-    '63' : {'code':'SOP','name':'Sopište'},
-    '64' : {'code':'STA','name':'Star Dojran'},
-    '65' : {'code':'STA','name':'Staro Nagoričane'},
-    '66' : {'code':'ŠTI','name':'Štip'},
-    '67' : {'code':'STR','name':'Struga'},
-    '68' : {'code':'STR','name':'Strumica'},
-    '69' : {'code':'STU','name':'Studeničani'},
-    '70' : {'code':'ŠUT','name':'Šuto Orizari'},
-    '71' : {'code':'SVE','name':'Sveti Nikole'},
-    '72' : {'code':'TEA','name':'Tearce'},
-    '73' : {'code':'TET','name':'Tetovo'},
-    '74' : {'code':'VAL','name':'Valandovo'},
-    '75' : {'code':'VAS','name':'Vasilevo'},
-    '76' : {'code':'VEL','name':'Veles'},
-    '77' : {'code':'VEV','name':'Vevčani'},
-    '78' : {'code':'VIN','name':'Vinica'},
-    '79' : {'code':'VRA','name':'Vraneštica'},
-    '80' : {'code':'VRA','name':'Vrapčište'},
-    '81' : {'code':'ZAJ','name':'Zajas'},
-    '82' : {'code':'ZEL','name':'Zelenikovo'},
-    '83' : {'code':'ŽEL','name':'Želino'},
-    '84' : {'code':'ZRN','name':'Zrnovci'}
-  },
-  'MG':{
-    '1' : {'code':'AN','name':'Antananarivo'},
-    '2' : {'code':'AS','name':'Antsiranana'},
-    '3' : {'code':'FN','name':'Fianarantsoa'},
-    '4' : {'code':'MJ','name':'Mahajanga'},
-    '5' : {'code':'TM','name':'Toamasina'},
-    '6' : {'code':'TL','name':'Toliara'}
-  },
-  'MW':{
-    '1' : {'code':'BLK','name':'Balaka'},
-    '2' : {'code':'BLT','name':'Blantyre'},
-    '3' : {'code':'CKW','name':'Chikwawa'},
-    '4' : {'code':'CRD','name':'Chiradzulu'},
-    '5' : {'code':'CTP','name':'Chitipa'},
-    '6' : {'code':'DDZ','name':'Dedza'},
-    '7' : {'code':'DWA','name':'Dowa'},
-    '8' : {'code':'KRG','name':'Karonga'},
-    '9' : {'code':'KSG','name':'Kasungu'},
-    '10' : {'code':'LKM','name':'Likoma'},
-    '11' : {'code':'LLG','name':'Lilongwe'},
-    '12' : {'code':'MCG','name':'Machinga'},
-    '13' : {'code':'MGC','name':'Mangochi'},
-    '14' : {'code':'MCH','name':'Mchinji'},
-    '15' : {'code':'MLJ','name':'Mulanje'},
-    '16' : {'code':'MWZ','name':'Mwanza'},
-    '17' : {'code':'MZM','name':'Mzimba'},
-    '18' : {'code':'NTU','name':'Ntcheu'},
-    '19' : {'code':'NKB','name':'Nkhata Bay'},
-    '20' : {'code':'NKH','name':'Nkhotakota'},
-    '21' : {'code':'NSJ','name':'Nsanje'},
-    '22' : {'code':'NTI','name':'Ntchisi'},
-    '23' : {'code':'PHL','name':'Phalombe'},
-    '24' : {'code':'RMP','name':'Rumphi'},
-    '25' : {'code':'SLM','name':'Salima'},
-    '26' : {'code':'THY','name':'Thyolo'},
-    '27' : {'code':'ZBA','name':'Zomba'}
-  },
-  'MY':{
-    '1' : {'code':'Johor','name':'Johor'},
-    '2' : {'code':'Kedah','name':'Kedah'},
-    '3' : {'code':'Kelantan','name':'Kelantan'},
-    '4' : {'code':'Labuan','name':'Labuan'},
-    '5' : {'code':'Melaka','name':'Melaka'},
-    '6' : {'code':'Negeri Sembilan','name':'Negeri Sembilan'},
-    '7' : {'code':'Pahang','name':'Pahang'},
-    '8' : {'code':'Perak','name':'Perak'},
-    '9' : {'code':'Perlis','name':'Perlis'},
-    '10' : {'code':'Pulau Pinang','name':'Pulau Pinang'},
-    '11' : {'code':'Sabah','name':'Sabah'},
-    '12' : {'code':'Sarawak','name':'Sarawak'},
-    '13' : {'code':'Selangor','name':'Selangor'},
-    '14' : {'code':'Terengganu','name':'Terengganu'},
-    '15' : {'code':'Kuala Lumpur','name':'Kuala Lumpur'}
-  },
-  'MV':{
-    '1' : {'code':'AAD','name':'Ari Atoll Dheknu'},
-    '2' : {'code':'AAU','name':'Ari Atoll Uthuru'},
-    '3' : {'code':'ADD','name':'Addu'},
-    '4' : {'code':'FAA','name':'Faadhippolhu'},
-    '5' : {'code':'FEA','name':'Felidhe Atoll'},
-    '6' : {'code':'FMU','name':'Fua Mulaku'},
-    '7' : {'code':'HAD','name':'Huvadhu Atoll Dhekunu'},
-    '8' : {'code':'HAU','name':'Huvadhu Atoll Uthuru'},
-    '9' : {'code':'HDH','name':'Hadhdhunmathi'},
-    '10' : {'code':'KLH','name':'Kolhumadulu'},
-    '11' : {'code':'MAA','name':'Male Atoll'},
-    '12' : {'code':'MAD','name':'Maalhosmadulu Dhekunu'},
-    '13' : {'code':'MAU','name':'Maalhosmadulu Uthuru'},
-    '14' : {'code':'MLD','name':'Miladhunmadulu Dhekunu'},
-    '15' : {'code':'MLU','name':'Miladhunmadulu Uthuru'},
-    '16' : {'code':'MUA','name':'Mulaku Atoll'},
-    '17' : {'code':'NAD','name':'Nilandhe Atoll Dhekunu'},
-    '18' : {'code':'NAU','name':'Nilandhe Atoll Uthuru'},
-    '19' : {'code':'THD','name':'Thiladhunmathi Dhekunu'},
-    '20' : {'code':'THU','name':'Thiladhunmathi Uthuru'}
-  },
-  'ML':{
-    '1' : {'code':'GA','name':'Gao'},
-    '2' : {'code':'KY','name':'Kayes'},
-    '3' : {'code':'KD','name':'Kidal'},
-    '4' : {'code':'KL','name':'Koulikoro'},
-    '5' : {'code':'MP','name':'Mopti'},
-    '6' : {'code':'SG','name':'Segou'},
-    '7' : {'code':'SK','name':'Sikasso'},
-    '8' : {'code':'TB','name':'Tombouctou'},
-    '9' : {'code':'CD','name':'Bamako Capital District'}
-  },
-  'MT':{
-    '1' : {'code':'ATT','name':'Attard'},
-    '2' : {'code':'BAL','name':'Balzan'},
-    '3' : {'code':'BGU','name':'Birgu'},
-    '4' : {'code':'BKK','name':'Birkirkara'},
-    '5' : {'code':'BRZ','name':'Birzebbuga'},
-    '6' : {'code':'BOR','name':'Bormla'},
-    '7' : {'code':'DIN','name':'Dingli'},
-    '8' : {'code':'FGU','name':'Fgura'},
-    '9' : {'code':'FLO','name':'Floriana'},
-    '10' : {'code':'GDJ','name':'Gudja'},
-    '11' : {'code':'GZR','name':'Gzira'},
-    '12' : {'code':'GRG','name':'Gargur'},
-    '13' : {'code':'GXQ','name':'Gaxaq'},
-    '14' : {'code':'HMR','name':'Hamrun'},
-    '15' : {'code':'IKL','name':'Iklin'},
-    '16' : {'code':'ISL','name':'Isla'},
-    '17' : {'code':'KLK','name':'Kalkara'},
-    '18' : {'code':'KRK','name':'Kirkop'},
-    '19' : {'code':'LIJ','name':'Lija'},
-    '20' : {'code':'LUQ','name':'Luqa'},
-    '21' : {'code':'MRS','name':'Marsa'},
-    '22' : {'code':'MKL','name':'Marsaskala'},
-    '23' : {'code':'MXL','name':'Marsaxlokk'},
-    '24' : {'code':'MDN','name':'Mdina'},
-    '25' : {'code':'MEL','name':'Melliea'},
-    '26' : {'code':'MGR','name':'Mgarr'},
-    '27' : {'code':'MST','name':'Mosta'},
-    '28' : {'code':'MQA','name':'Mqabba'},
-    '29' : {'code':'MSI','name':'Msida'},
-    '30' : {'code':'MTF','name':'Mtarfa'},
-    '31' : {'code':'NAX','name':'Naxxar'},
-    '32' : {'code':'PAO','name':'Paola'},
-    '33' : {'code':'PEM','name':'Pembroke'},
-    '34' : {'code':'PIE','name':'Pieta'},
-    '35' : {'code':'QOR','name':'Qormi'},
-    '36' : {'code':'QRE','name':'Qrendi'},
-    '37' : {'code':'RAB','name':'Rabat'},
-    '38' : {'code':'SAF','name':'Safi'},
-    '39' : {'code':'SGI','name':'San Giljan'},
-    '40' : {'code':'SLU','name':'Santa Lucija'},
-    '41' : {'code':'SPB','name':'San Pawl il-Bahar'},
-    '42' : {'code':'SGW','name':'San Gwann'},
-    '43' : {'code':'SVE','name':'Santa Venera'},
-    '44' : {'code':'SIG','name':'Siggiewi'},
-    '45' : {'code':'SLM','name':'Sliema'},
-    '46' : {'code':'SWQ','name':'Swieqi'},
-    '47' : {'code':'TXB','name':'Ta Xbiex'},
-    '48' : {'code':'TRX','name':'Tarxien'},
-    '49' : {'code':'VLT','name':'Valletta'},
-    '50' : {'code':'XGJ','name':'Xgajra'},
-    '51' : {'code':'ZBR','name':'Zabbar'},
-    '52' : {'code':'ZBG','name':'Zebbug'},
-    '53' : {'code':'ZJT','name':'Zejtun'},
-    '54' : {'code':'ZRQ','name':'Zurrieq'},
-    '55' : {'code':'FNT','name':'Fontana'},
-    '56' : {'code':'GHJ','name':'Ghajnsielem'},
-    '57' : {'code':'GHR','name':'Gharb'},
-    '58' : {'code':'GHS','name':'Ghasri'},
-    '59' : {'code':'KRC','name':'Kercem'},
-    '60' : {'code':'MUN','name':'Munxar'},
-    '61' : {'code':'NAD','name':'Nadur'},
-    '62' : {'code':'QAL','name':'Qala'},
-    '63' : {'code':'VIC','name':'Victoria'},
-    '64' : {'code':'SLA','name':'San Lawrenz'},
-    '65' : {'code':'SNT','name':'Sannat'},
-    '66' : {'code':'ZAG','name':'Xagra'},
-    '67' : {'code':'XEW','name':'Xewkija'},
-    '68' : {'code':'ZEB','name':'Zebbug'}
-  },
-  'MH':{
-    '1' : {'code':'ALG','name':'Ailinginae'},
-    '2' : {'code':'ALL','name':'Ailinglaplap'},
-    '3' : {'code':'ALK','name':'Ailuk'},
-    '4' : {'code':'ARN','name':'Arno'},
-    '5' : {'code':'AUR','name':'Aur'},
-    '6' : {'code':'BKR','name':'Bikar'},
-    '7' : {'code':'BKN','name':'Bikini'},
-    '8' : {'code':'BKK','name':'Bokak'},
-    '9' : {'code':'EBN','name':'Ebon'},
-    '10' : {'code':'ENT','name':'Enewetak'},
-    '11' : {'code':'EKB','name':'Erikub'},
-    '12' : {'code':'JBT','name':'Jabat'},
-    '13' : {'code':'JLT','name':'Jaluit'},
-    '14' : {'code':'JEM','name':'Jemo'},
-    '15' : {'code':'KIL','name':'Kili'},
-    '16' : {'code':'KWJ','name':'Kwajalein'},
-    '17' : {'code':'LAE','name':'Lae'},
-    '18' : {'code':'LIB','name':'Lib'},
-    '19' : {'code':'LKP','name':'Likiep'},
-    '20' : {'code':'MJR','name':'Majuro'},
-    '21' : {'code':'MLP','name':'Maloelap'},
-    '22' : {'code':'MJT','name':'Mejit'},
-    '23' : {'code':'MIL','name':'Mili'},
-    '24' : {'code':'NMK','name':'Namorik'},
-    '25' : {'code':'NAM','name':'Namu'},
-    '26' : {'code':'RGL','name':'Rongelap'},
-    '27' : {'code':'RGK','name':'Rongrik'},
-    '28' : {'code':'TOK','name':'Toke'},
-    '29' : {'code':'UJA','name':'Ujae'},
-    '30' : {'code':'UJL','name':'Ujelang'},
-    '31' : {'code':'UTK','name':'Utirik'},
-    '32' : {'code':'WTH','name':'Wotho'},
-    '33' : {'code':'WTJ','name':'Wotje'}
-  },
-  'MQ':{
-    '1' : {'code':'LAJ','name':'L\'Ajoupa-Bouillon'},
-    '2' : {'code':'LES','name':'Les Anses-d\'Arlet'},
-    '3' : {'code':'BAS','name':'Basse-Pointe'},
-    '4' : {'code':'BEL','name':'Bellefontaine'},
-    '5' : {'code':'LE','name':'Le Carbet'},
-    '6' : {'code':'CAS','name':'Case-Pilote'},
-    '7' : {'code':'LE','name':'Le Diamant'},
-    '8' : {'code':'DUC','name':'Ducos'},
-    '9' : {'code':'FON','name':'Fonds-Saint-Denis'},
-    '10' : {'code':'FOR','name':'Fort-De-France'},
-    '11' : {'code':'LE','name':'Le François'},
-    '12' : {'code':'GRA','name':'Grand\'Rivière'},
-    '13' : {'code':'GRO','name':'Gros-Morne'},
-    '14' : {'code':'LE','name':'Le Lamentin'},
-    '15' : {'code':'LE','name':'Le Lorrain'},
-    '16' : {'code':'MAC','name':'Macouba'},
-    '17' : {'code':'LE','name':'Le Marigot'},
-    '18' : {'code':'LE','name':'Le Marin'},
-    '19' : {'code':'LE','name':'Le Morne-Rouge'},
-    '20' : {'code':'LE','name':'Le Morne-Vert'},
-    '21' : {'code':'LE','name':'Le Prêcheur'},
-    '22' : {'code':'RIV','name':'Rivière-Pilote'},
-    '23' : {'code':'RIV','name':'Rivière-Salée'},
-    '24' : {'code':'LE','name':'Le Robert'},
-    '25' : {'code':'SAI','name':'Sainte-Anne'},
-    '26' : {'code':'SAI','name':'Sainte-Luce'},
-    '27' : {'code':'SAI','name':'Sainte-Marie'},
-    '28' : {'code':'SAI','name':'Saint-Esprit'},
-    '29' : {'code':'SAI','name':'Saint-Joseph'},
-    '30' : {'code':'SAI','name':'Saint-Pierre'},
-    '31' : {'code':'SCH','name':'Schœlcher'},
-    '32' : {'code':'LA','name':'La Trinité'},
-    '33' : {'code':'LES','name':'Les Trois-Îlets'},
-    '34' : {'code':'LE','name':'Le Vauclin'}
-  },
-  'MR':{
-    '1' : {'code':'AD','name':'Adrar'},
-    '2' : {'code':'AS','name':'Assaba'},
-    '3' : {'code':'BR','name':'Brakna'},
-    '4' : {'code':'DN','name':'Dakhlet Nouadhibou'},
-    '5' : {'code':'GO','name':'Gorgol'},
-    '6' : {'code':'GM','name':'Guidimaka'},
-    '7' : {'code':'HC','name':'Hodh Ech Chargui'},
-    '8' : {'code':'HG','name':'Hodh El Gharbi'},
-    '9' : {'code':'IN','name':'Inchiri'},
-    '10' : {'code':'TA','name':'Tagant'},
-    '11' : {'code':'TZ','name':'Tiris Zemmour'},
-    '12' : {'code':'TR','name':'Trarza'},
-    '13' : {'code':'NO','name':'Nouakchott'}
-  },
-  'MU':{
-    '1' : {'code':'AG','name':'Agalega Islands'},
-    '2' : {'code':'BL','name':'Black River'},
-    '3' : {'code':'BR','name':'Beau Bassin-Rose Hill'},
-    '4' : {'code':'CC','name':'Cargados Carajos Shoals (Saint B)'},
-    '5' : {'code':'CU','name':'Curepipe'},
-    '6' : {'code':'FL','name':'Flacq'},
-    '7' : {'code':'GP','name':'Grand Port'},
-    '8' : {'code':'MO','name':'Moka'},
-    '9' : {'code':'PA','name':'Pamplemousses'},
-    '10' : {'code':'PL','name':'Port Louis'},
-    '11' : {'code':'PU','name':'Port Louis'},
-    '12' : {'code':'PW','name':'Plaines Wilhems'},
-    '13' : {'code':'QB','name':'Quatre Bornes'},
-    '14' : {'code':'RO','name':'Rodrigues'},
-    '15' : {'code':'RR','name':'Riviere du Rempart'},
-    '16' : {'code':'SA','name':'Savanne'},
-    '17' : {'code':'VP','name':'Vacoas-Phoenix'}
-  },
-  'YT':{
-    '1' : {'code':'DZA','name':'Dzaoudzi'},
-    '2' : {'code':'PAM','name':'Pamandzi'},
-    '3' : {'code':'MAM','name':'Mamoudzou'},
-    '4' : {'code':'DEM','name':'Dembeni'},
-    '5' : {'code':'BAN','name':'Bandrele'},
-    '6' : {'code':'KAN','name':'Kani-Kéli'},
-    '7' : {'code':'BOU','name':'Bouéni'},
-    '8' : {'code':'CHI','name':'Chirongui'},
-    '9' : {'code':'SAD','name':'Sada'},
-    '10' : {'code':'OUA','name':'Ouangani'},
-    '11' : {'code':'CHI','name':'Chiconi'},
-    '12' : {'code':'TSI','name':'Tsingoni'},
-    '13' : {'code':'MTS','name':'M\'Tsangamouji'},
-    '14' : {'code':'ACO','name':'Acoua'},
-    '15' : {'code':'MTS','name':'Mtsamboro'},
-    '16' : {'code':'BAN','name':'Bandraboua'},
-    '17' : {'code':'KOU','name':'Koungou'}
-  },
-  'MX':{
-    '1' : {'code':'AGU','name':'Aguascalientes'},
-    '2' : {'code':'BCN','name':'Baja California Norte'},
-    '3' : {'code':'BCS','name':'Baja California Sur'},
-    '4' : {'code':'CAM','name':'Campeche'},
-    '5' : {'code':'CHP','name':'Chiapas'},
-    '6' : {'code':'CHH','name':'Chihuahua'},
-    '7' : {'code':'COA','name':'Coahuila de Zaragoza'},
-    '8' : {'code':'COL','name':'Colima'},
-    '9' : {'code':'DIF','name':'Distrito Federal'},
-    '10' : {'code':'DUR','name':'Durango'},
-    '11' : {'code':'GUA','name':'Guanajuato'},
-    '12' : {'code':'GRO','name':'Guerrero'},
-    '13' : {'code':'HID','name':'Hidalgo'},
-    '14' : {'code':'JAL','name':'Jalisco'},
-    '15' : {'code':'MEX','name':'Mexico'},
-    '16' : {'code':'MIC','name':'Michoacan de Ocampo'},
-    '17' : {'code':'MOR','name':'Morelos'},
-    '18' : {'code':'NAY','name':'Nayarit'},
-    '19' : {'code':'NLE','name':'Nuevo Leon'},
-    '20' : {'code':'OAX','name':'Oaxaca'},
-    '21' : {'code':'PUE','name':'Puebla'},
-    '22' : {'code':'QUE','name':'Queretaro de Arteaga'},
-    '23' : {'code':'ROO','name':'Quintana Roo'},
-    '24' : {'code':'SLP','name':'San Luis Potosi'},
-    '25' : {'code':'SIN','name':'Sinaloa'},
-    '26' : {'code':'SON','name':'Sonora'},
-    '27' : {'code':'TAB','name':'Tabasco'},
-    '28' : {'code':'TAM','name':'Tamaulipas'},
-    '29' : {'code':'TLA','name':'Tlaxcala'},
-    '30' : {'code':'VER','name':'Veracruz-Llave'},
-    '31' : {'code':'YUC','name':'Yucatan'},
-    '32' : {'code':'ZAC','name':'Zacatecas'}
-  },
-  'FM':{
-    '1' : {'code':'C','name':'Chuuk'},
-    '2' : {'code':'K','name':'Kosrae'},
-    '3' : {'code':'P','name':'Pohnpei'},
-    '4' : {'code':'Y','name':'Yap'}
-  },
-  'MD':{
-    '1' : {'code':'GA','name':'Gagauzia'},
-    '2' : {'code':'CU','name':'Chisinau'},
-    '3' : {'code':'BA','name':'Balti'},
-    '4' : {'code':'CA','name':'Cahul'},
-    '5' : {'code':'ED','name':'Edinet'},
-    '6' : {'code':'LA','name':'Lapusna'},
-    '7' : {'code':'OR','name':'Orhei'},
-    '8' : {'code':'SO','name':'Soroca'},
-    '9' : {'code':'TI','name':'Tighina'},
-    '10' : {'code':'UN','name':'Ungheni'},
-    '11' : {'code':'SN','name':'Stânga Nistrului'}
-  },
-  'MC':{
-    '1' : {'code':'FV','name':'Fontvieille'},
-    '2' : {'code':'LC','name':'La Condamine'},
-    '3' : {'code':'MV','name':'Monaco-Ville'},
-    '4' : {'code':'MC','name':'Monte-Carlo'}
-  },
-  'MN':{
-    '1' : {'code':'1','name':'Ulanbaatar'},
-    '2' : {'code':'035','name':'Orhon'},
-    '3' : {'code':'037','name':'Darhan uul'},
-    '4' : {'code':'039','name':'Hentiy'},
-    '5' : {'code':'041','name':'Hovsgol'},
-    '6' : {'code':'043','name':'Hovd'},
-    '7' : {'code':'046','name':'Uvs'},
-    '8' : {'code':'047','name':'Tov'},
-    '9' : {'code':'049','name':'Selenge'},
-    '10' : {'code':'051','name':'Suhbaatar'},
-    '11' : {'code':'053','name':'Omnogovi'},
-    '12' : {'code':'055','name':'Ovorhangay'},
-    '13' : {'code':'057','name':'Dzavhan'},
-    '14' : {'code':'059','name':'DundgovL'},
-    '15' : {'code':'061','name':'Dornod'},
-    '16' : {'code':'063','name':'Dornogov'},
-    '17' : {'code':'064','name':'Govi-Sumber'},
-    '18' : {'code':'065','name':'Govi-Altay'},
-    '19' : {'code':'067','name':'Bulgan'},
-    '20' : {'code':'069','name':'Bayanhongor'},
-    '21' : {'code':'071','name':'Bayan-Olgiy'},
-    '22' : {'code':'073','name':'Arhangay'}
-  },
-  'MS':{
-    '1' : {'code':'A','name':'Saint Anthony'},
-    '2' : {'code':'G','name':'Saint Georges'},
-    '3' : {'code':'P','name':'Saint Peter'}
-  },
-  'MA':{
-    '1' : {'code':'AGD','name':'Agadir'},
-    '2' : {'code':'HOC','name':'Al Hoceima'},
-    '3' : {'code':'AZI','name':'Azilal'},
-    '4' : {'code':'BME','name':'Beni Mellal'},
-    '5' : {'code':'BSL','name':'Ben Slimane'},
-    '6' : {'code':'BLM','name':'Boulemane'},
-    '7' : {'code':'CBL','name':'Casablanca'},
-    '8' : {'code':'CHA','name':'Chaouen'},
-    '9' : {'code':'EJA','name':'El Jadida'},
-    '10' : {'code':'EKS','name':'El Kelaa des Sraghna'},
-    '11' : {'code':'ERA','name':'Er Rachidia'},
-    '12' : {'code':'ESS','name':'Essaouira'},
-    '13' : {'code':'FES','name':'Fes'},
-    '14' : {'code':'FIG','name':'Figuig'},
-    '15' : {'code':'GLM','name':'Guelmim'},
-    '16' : {'code':'IFR','name':'Ifrane'},
-    '17' : {'code':'KEN','name':'Kenitra'},
-    '18' : {'code':'KHM','name':'Khemisset'},
-    '19' : {'code':'KHN','name':'Khenifra'},
-    '20' : {'code':'KHO','name':'Khouribga'},
-    '21' : {'code':'LYN','name':'Laayoune'},
-    '22' : {'code':'LAR','name':'Larache'},
-    '23' : {'code':'MRK','name':'Marrakech'},
-    '24' : {'code':'MKN','name':'Meknes'},
-    '25' : {'code':'NAD','name':'Nador'},
-    '26' : {'code':'ORZ','name':'Ouarzazate'},
-    '27' : {'code':'OUJ','name':'Oujda'},
-    '28' : {'code':'RSA','name':'Rabat-Sale'},
-    '29' : {'code':'SAF','name':'Safi'},
-    '30' : {'code':'SET','name':'Settat'},
-    '31' : {'code':'SKA','name':'Sidi Kacem'},
-    '32' : {'code':'TGR','name':'Tangier'},
-    '33' : {'code':'TAN','name':'Tan-Tan'},
-    '34' : {'code':'TAO','name':'Taounate'},
-    '35' : {'code':'TRD','name':'Taroudannt'},
-    '36' : {'code':'TAT','name':'Tata'},
-    '37' : {'code':'TAZ','name':'Taza'},
-    '38' : {'code':'TET','name':'Tetouan'},
-    '39' : {'code':'TIZ','name':'Tiznit'},
-    '40' : {'code':'ADK','name':'Ad Dakhla'},
-    '41' : {'code':'BJD','name':'Boujdour'},
-    '42' : {'code':'ESM','name':'Es Smara'}
-  },
-  'MZ':{
-    '1' : {'code':'CD','name':'Cabo Delgado'},
-    '2' : {'code':'GZ','name':'Gaza'},
-    '3' : {'code':'IN','name':'Inhambane'},
-    '4' : {'code':'MN','name':'Manica'},
-    '5' : {'code':'MC','name':'Maputo (city)'},
-    '6' : {'code':'MP','name':'Maputo'},
-    '7' : {'code':'NA','name':'Nampula'},
-    '8' : {'code':'NI','name':'Niassa'},
-    '9' : {'code':'SO','name':'Sofala'},
-    '10' : {'code':'TE','name':'Tete'},
-    '11' : {'code':'ZA','name':'Zambezia'}
-  },
-  'MM':{
-    '1' : {'code':'AY','name':'Ayeyarwady'},
-    '2' : {'code':'BG','name':'Bago'},
-    '3' : {'code':'MG','name':'Magway'},
-    '4' : {'code':'MD','name':'Mandalay'},
-    '5' : {'code':'SG','name':'Sagaing'},
-    '6' : {'code':'TN','name':'Tanintharyi'},
-    '7' : {'code':'YG','name':'Yangon'},
-    '8' : {'code':'CH','name':'Chin State'},
-    '9' : {'code':'KC','name':'Kachin State'},
-    '10' : {'code':'KH','name':'Kayah State'},
-    '11' : {'code':'KN','name':'Kayin State'},
-    '12' : {'code':'MN','name':'Mon State'},
-    '13' : {'code':'RK','name':'Rakhine State'},
-    '14' : {'code':'SH','name':'Shan State'}
-  },
-  'NA':{
-    '1' : {'code':'CA','name':'Caprivi'},
-    '2' : {'code':'ER','name':'Erongo'},
-    '3' : {'code':'HA','name':'Hardap'},
-    '4' : {'code':'KR','name':'Karas'},
-    '5' : {'code':'KV','name':'Kavango'},
-    '6' : {'code':'KH','name':'Khomas'},
-    '7' : {'code':'KU','name':'Kunene'},
-    '8' : {'code':'OW','name':'Ohangwena'},
-    '9' : {'code':'OK','name':'Omaheke'},
-    '10' : {'code':'OT','name':'Omusati'},
-    '11' : {'code':'ON','name':'Oshana'},
-    '12' : {'code':'OO','name':'Oshikoto'},
-    '13' : {'code':'OJ','name':'Otjozondjupa'}
-  },
-  'NR':{
-    '1' : {'code':'AO','name':'Aiwo'},
-    '2' : {'code':'AA','name':'Anabar'},
-    '3' : {'code':'AT','name':'Anetan'},
-    '4' : {'code':'AI','name':'Anibare'},
-    '5' : {'code':'BA','name':'Baiti'},
-    '6' : {'code':'BO','name':'Boe'},
-    '7' : {'code':'BU','name':'Buada'},
-    '8' : {'code':'DE','name':'Denigomodu'},
-    '9' : {'code':'EW','name':'Ewa'},
-    '10' : {'code':'IJ','name':'Ijuw'},
-    '11' : {'code':'ME','name':'Meneng'},
-    '12' : {'code':'NI','name':'Nibok'},
-    '13' : {'code':'UA','name':'Uaboe'},
-    '14' : {'code':'YA','name':'Yaren'}
-  },
-  'NP':{
-    '1' : {'code':'BA','name':'Bagmati'},
-    '2' : {'code':'BH','name':'Bheri'},
-    '3' : {'code':'DH','name':'Dhawalagiri'},
-    '4' : {'code':'GA','name':'Gandaki'},
-    '5' : {'code':'JA','name':'Janakpur'},
-    '6' : {'code':'KA','name':'Karnali'},
-    '7' : {'code':'KO','name':'Kosi'},
-    '8' : {'code':'LU','name':'Lumbini'},
-    '9' : {'code':'MA','name':'Mahakali'},
-    '10' : {'code':'ME','name':'Mechi'},
-    '11' : {'code':'NA','name':'Narayani'},
-    '12' : {'code':'RA','name':'Rapti'},
-    '13' : {'code':'SA','name':'Sagarmatha'},
-    '14' : {'code':'SE','name':'Seti'}
-  },
-  'NL':{
-    '1' : {'code':'DR','name':'Drenthe'},
-    '2' : {'code':'FL','name':'Flevoland'},
-    '3' : {'code':'FR','name':'Friesland'},
-    '4' : {'code':'GE','name':'Gelderland'},
-    '5' : {'code':'GR','name':'Groningen'},
-    '6' : {'code':'LI','name':'Limburg'},
-    '7' : {'code':'NB','name':'Noord Brabant'},
-    '8' : {'code':'NH','name':'Noord Holland'},
-    '9' : {'code':'OV','name':'Overijssel'},
-    '10' : {'code':'UT','name':'Utrecht'},
-    '11' : {'code':'ZE','name':'Zeeland'},
-    '12' : {'code':'ZH','name':'Zuid Holland'}
-  },
-  'AN':{
-    '1' : {'code':'BON','name':'Bonaire'},
-    '2' : {'code':'CUR','name':'Curaçao'},
-    '3' : {'code':'SAB','name':'Saba'},
-    '4' : {'code':'SEU','name':'Sint Eustatius'},
-    '5' : {'code':'SMA','name':'Sint Maarten'}
-  },
-  'NC':{
-    '1' : {'code':'L','name':'Iles Loyaute'},
-    '2' : {'code':'N','name':'Nord'},
-    '3' : {'code':'S','name':'Sud'}
-  },
-  'NZ':{
-    '1' : {'code':'AUK','name':'Auckland'},
-    '2' : {'code':'BOP','name':'Bay of Plenty'},
-    '3' : {'code':'CAN','name':'Canterbury'},
-    '4' : {'code':'COR','name':'Coromandel'},
-    '5' : {'code':'GIS','name':'Gisborne'},
-    '6' : {'code':'FIO','name':'Fiordland'},
-    '7' : {'code':'HKB','name':'Hawke\'s Bay'},
-    '8' : {'code':'MBH','name':'Marlborough'},
-    '9' : {'code':'MWT','name':'Manawatu-Wanganui'},
-    '10' : {'code':'MCM','name':'Mt Cook-Mackenzie'},
-    '11' : {'code':'NSN','name':'Nelson'},
-    '12' : {'code':'NTL','name':'Northland'},
-    '13' : {'code':'OTA','name':'Otago'},
-    '14' : {'code':'STL','name':'Southland'},
-    '15' : {'code':'TKI','name':'Taranaki'},
-    '16' : {'code':'WGN','name':'Wellington'},
-    '17' : {'code':'WKO','name':'Waikato'},
-    '18' : {'code':'WAI','name':'Wairprarapa'},
-    '19' : {'code':'WTC','name':'West Coast'}
-  },
-  'NI':{
-    '1' : {'code':'AN','name':'Atlantico Norte'},
-    '2' : {'code':'AS','name':'Atlantico Sur'},
-    '3' : {'code':'BO','name':'Boaco'},
-    '4' : {'code':'CA','name':'Carazo'},
-    '5' : {'code':'CI','name':'Chinandega'},
-    '6' : {'code':'CO','name':'Chontales'},
-    '7' : {'code':'ES','name':'Esteli'},
-    '8' : {'code':'GR','name':'Granada'},
-    '9' : {'code':'JI','name':'Jinotega'},
-    '10' : {'code':'LE','name':'Leon'},
-    '11' : {'code':'MD','name':'Madriz'},
-    '12' : {'code':'MN','name':'Managua'},
-    '13' : {'code':'MS','name':'Masaya'},
-    '14' : {'code':'MT','name':'Matagalpa'},
-    '15' : {'code':'NS','name':'Nuevo Segovia'},
-    '16' : {'code':'RS','name':'Rio San Juan'},
-    '17' : {'code':'RI','name':'Rivas'}
-  },
-  'NE':{
-    '1' : {'code':'AG','name':'Agadez'},
-    '2' : {'code':'DF','name':'Diffa'},
-    '3' : {'code':'DS','name':'Dosso'},
-    '4' : {'code':'MA','name':'Maradi'},
-    '5' : {'code':'NM','name':'Niamey'},
-    '6' : {'code':'TH','name':'Tahoua'},
-    '7' : {'code':'TL','name':'Tillaberi'},
-    '8' : {'code':'ZD','name':'Zinder'}
-  },
-  'NG':{
-    '1' : {'code':'AB','name':'Abia'},
-    '2' : {'code':'CT','name':'Abuja Federal Capital Territory'},
-    '3' : {'code':'AD','name':'Adamawa'},
-    '4' : {'code':'AK','name':'Akwa Ibom'},
-    '5' : {'code':'AN','name':'Anambra'},
-    '6' : {'code':'BC','name':'Bauchi'},
-    '7' : {'code':'BY','name':'Bayelsa'},
-    '8' : {'code':'BN','name':'Benue'},
-    '9' : {'code':'BO','name':'Borno'},
-    '10' : {'code':'CR','name':'Cross River'},
-    '11' : {'code':'DE','name':'Delta'},
-    '12' : {'code':'EB','name':'Ebonyi'},
-    '13' : {'code':'ED','name':'Edo'},
-    '14' : {'code':'EK','name':'Ekiti'},
-    '15' : {'code':'EN','name':'Enugu'},
-    '16' : {'code':'GO','name':'Gombe'},
-    '17' : {'code':'IM','name':'Imo'},
-    '18' : {'code':'JI','name':'Jigawa'},
-    '19' : {'code':'KD','name':'Kaduna'},
-    '20' : {'code':'KN','name':'Kano'},
-    '21' : {'code':'KT','name':'Katsina'},
-    '22' : {'code':'KE','name':'Kebbi'},
-    '23' : {'code':'KO','name':'Kogi'},
-    '24' : {'code':'KW','name':'Kwara'},
-    '25' : {'code':'LA','name':'Lagos'},
-    '26' : {'code':'NA','name':'Nassarawa'},
-    '27' : {'code':'NI','name':'Niger'},
-    '28' : {'code':'OG','name':'Ogun'},
-    '29' : {'code':'ONG','name':'Ondo'},
-    '30' : {'code':'OS','name':'Osun'},
-    '31' : {'code':'OY','name':'Oyo'},
-    '32' : {'code':'PL','name':'Plateau'},
-    '33' : {'code':'RI','name':'Rivers'},
-    '34' : {'code':'SO','name':'Sokoto'},
-    '35' : {'code':'TA','name':'Taraba'},
-    '36' : {'code':'YO','name':'Yobe'},
-    '37' : {'code':'ZA','name':'Zamfara'}
-  },
-  'NU':{
-    '1' : {'code':'MAK','name':'Makefu'},
-    '2' : {'code':'TUA','name':'Tuapa'},
-    '3' : {'code':'NAM','name':'Namukulu'},
-    '4' : {'code':'HIK','name':'Hikutavake'},
-    '5' : {'code':'TOI','name':'Toi'},
-    '6' : {'code':'MUT','name':'Mutalau'},
-    '7' : {'code':'LAK','name':'Lakepa'},
-    '8' : {'code':'LIK','name':'Liku'},
-    '9' : {'code':'HAK','name':'Hakupu'},
-    '10' : {'code':'VAI','name':'Vaiea'},
-    '11' : {'code':'AVA','name':'Avatele'},
-    '12' : {'code':'TAM','name':'Tamakautoga'},
-    '13' : {'code':'ALO','name':'Alofi South'},
-    '14' : {'code':'ALO','name':'Alofi North'}
-  },
-  'NF':{
-    '1' : {'code':'NOR','name':'Norfolk Island'}
-  },
-  'MP':{
-    '1' : {'code':'N','name':'Northern Islands'},
-    '2' : {'code':'R','name':'Rota'},
-    '3' : {'code':'S','name':'Saipan'},
-    '4' : {'code':'T','name':'Tinian'}
-  },
-  'NO':{
-    '1' : {'code':'AK','name':'Akershus'},
-    '2' : {'code':'AA','name':'Aust-Agder'},
-    '3' : {'code':'BU','name':'Buskerud'},
-    '4' : {'code':'FM','name':'Finnmark'},
-    '5' : {'code':'HM','name':'Hedmark'},
-    '6' : {'code':'HL','name':'Hordaland'},
-    '7' : {'code':'MR','name':'Møre og Romsdal'},
-    '8' : {'code':'NL','name':'Nordland'},
-    '9' : {'code':'NT','name':'Nord-Trøndelag'},
-    '10' : {'code':'OP','name':'Oppland'},
-    '11' : {'code':'OL','name':'Oslo'},
-    '12' : {'code':'RL','name':'Rogaland'},
-    '13' : {'code':'SJ','name':'Sogn og Fjordane'},
-    '14' : {'code':'ST','name':'Sør-Trøndelag'},
-    '15' : {'code':'SV','name':'Svalbard'},
-    '16' : {'code':'TM','name':'Telemark'},
-    '17' : {'code':'TR','name':'Troms'},
-    '18' : {'code':'VA','name':'Vest-Agder'},
-    '19' : {'code':'VF','name':'Vestfold'},
-    '20' : {'code':'OF','name':'Østfold'}
-  },
-  'OM':{
-    '1' : {'code':'DA','name':'Ad Dakhiliyah'},
-    '2' : {'code':'BA','name':'Al Batinah'},
-    '3' : {'code':'WU','name':'Al Wusta'},
-    '4' : {'code':'SH','name':'Ash Sharqiyah'},
-    '5' : {'code':'ZA','name':'Az Zahirah'},
-    '6' : {'code':'MA','name':'Masqat'},
-    '7' : {'code':'MU','name':'Musandam'},
-    '8' : {'code':'ZU','name':'Zufar'}
-  },
-  'PK':{
-    '1' : {'code':'B','name':'Balochistan'},
-    '2' : {'code':'T','name':'Federally Administered Tribal Ar'},
-    '3' : {'code':'I','name':'Islamabad Capital Territory'},
-    '4' : {'code':'N','name':'North-West Frontier'},
-    '5' : {'code':'P','name':'Punjab'},
-    '6' : {'code':'S','name':'Sindh'}
-  },
-  'PW':{
-    '1' : {'code':'AM','name':'Aimeliik'},
-    '2' : {'code':'AR','name':'Airai'},
-    '3' : {'code':'AN','name':'Angaur'},
-    '4' : {'code':'HA','name':'Hatohobei'},
-    '5' : {'code':'KA','name':'Kayangel'},
-    '6' : {'code':'KO','name':'Koror'},
-    '7' : {'code':'ME','name':'Melekeok'},
-    '8' : {'code':'NA','name':'Ngaraard'},
-    '9' : {'code':'NG','name':'Ngarchelong'},
-    '10' : {'code':'ND','name':'Ngardmau'},
-    '11' : {'code':'NT','name':'Ngatpang'},
-    '12' : {'code':'NC','name':'Ngchesar'},
-    '13' : {'code':'NR','name':'Ngeremlengui'},
-    '14' : {'code':'NW','name':'Ngiwal'},
-    '15' : {'code':'PE','name':'Peleliu'},
-    '16' : {'code':'SO','name':'Sonsorol'}
-  },
-  'PA':{
-    '1' : {'code':'BT','name':'Bocas del Toro'},
-    '2' : {'code':'CH','name':'Chiriqui'},
-    '3' : {'code':'CC','name':'Cocle'},
-    '4' : {'code':'CL','name':'Colon'},
-    '5' : {'code':'DA','name':'Darien'},
-    '6' : {'code':'HE','name':'Herrera'},
-    '7' : {'code':'LS','name':'Los Santos'},
-    '8' : {'code':'PA','name':'Panama'},
-    '9' : {'code':'SB','name':'San Blas'},
-    '10' : {'code':'VG','name':'Veraguas'}
-  },
-  'PG':{
-    '1' : {'code':'BV','name':'Bougainville'},
-    '2' : {'code':'CE','name':'Central'},
-    '3' : {'code':'CH','name':'Chimbu'},
-    '4' : {'code':'EH','name':'Eastern Highlands'},
-    '5' : {'code':'EB','name':'East New Britain'},
-    '6' : {'code':'ES','name':'East Sepik'},
-    '7' : {'code':'EN','name':'Enga'},
-    '8' : {'code':'GU','name':'Gulf'},
-    '9' : {'code':'MD','name':'Madang'},
-    '10' : {'code':'MN','name':'Manus'},
-    '11' : {'code':'MB','name':'Milne Bay'},
-    '12' : {'code':'MR','name':'Morobe'},
-    '13' : {'code':'NC','name':'National Capital'},
-    '14' : {'code':'NI','name':'New Ireland'},
-    '15' : {'code':'NO','name':'Northern'},
-    '16' : {'code':'SA','name':'Sandaun'},
-    '17' : {'code':'SH','name':'Southern Highlands'},
-    '18' : {'code':'WE','name':'Western'},
-    '19' : {'code':'WH','name':'Western Highlands'},
-    '20' : {'code':'WB','name':'West New Britain'}
-  },
-  'PY':{
-    '1' : {'code':'AG','name':'Alto Paraguay'},
-    '2' : {'code':'AN','name':'Alto Parana'},
-    '3' : {'code':'AM','name':'Amambay'},
-    '4' : {'code':'AS','name':'Asuncion'},
-    '5' : {'code':'BO','name':'Boqueron'},
-    '6' : {'code':'CG','name':'Caaguazu'},
-    '7' : {'code':'CZ','name':'Caazapa'},
-    '8' : {'code':'CN','name':'Canindeyu'},
-    '9' : {'code':'CE','name':'Central'},
-    '10' : {'code':'CC','name':'Concepcion'},
-    '11' : {'code':'CD','name':'Cordillera'},
-    '12' : {'code':'GU','name':'Guaira'},
-    '13' : {'code':'IT','name':'Itapua'},
-    '14' : {'code':'MI','name':'Misiones'},
-    '15' : {'code':'NE','name':'Neembucu'},
-    '16' : {'code':'PA','name':'Paraguari'},
-    '17' : {'code':'PH','name':'Presidente Hayes'},
-    '18' : {'code':'SP','name':'San Pedro'}
-  },
-  'PE':{
-    '1' : {'code':'AM','name':'Amazonas'},
-    '2' : {'code':'AN','name':'Ancash'},
-    '3' : {'code':'AP','name':'Apurimac'},
-    '4' : {'code':'AR','name':'Arequipa'},
-    '5' : {'code':'AY','name':'Ayacucho'},
-    '6' : {'code':'CJ','name':'Cajamarca'},
-    '7' : {'code':'CL','name':'Callao'},
-    '8' : {'code':'CU','name':'Cusco'},
-    '9' : {'code':'HV','name':'Huancavelica'},
-    '10' : {'code':'HO','name':'Huanuco'},
-    '11' : {'code':'IC','name':'Ica'},
-    '12' : {'code':'JU','name':'Junin'},
-    '13' : {'code':'LD','name':'La Libertad'},
-    '14' : {'code':'LY','name':'Lambayeque'},
-    '15' : {'code':'LI','name':'Lima'},
-    '16' : {'code':'LO','name':'Loreto'},
-    '17' : {'code':'MD','name':'Madre de Dios'},
-    '18' : {'code':'MO','name':'Moquegua'},
-    '19' : {'code':'PA','name':'Pasco'},
-    '20' : {'code':'PI','name':'Piura'},
-    '21' : {'code':'PU','name':'Puno'},
-    '22' : {'code':'SM','name':'San Martin'},
-    '23' : {'code':'TA','name':'Tacna'},
-    '24' : {'code':'TU','name':'Tumbes'},
-    '25' : {'code':'UC','name':'Ucayali'}
-  },
-  'PH':{
-    '1' : {'code':'ABR','name':'Abra'},
-    '2' : {'code':'ANO','name':'Agusan del Norte'},
-    '3' : {'code':'ASU','name':'Agusan del Sur'},
-    '4' : {'code':'AKL','name':'Aklan'},
-    '5' : {'code':'ALB','name':'Albay'},
-    '6' : {'code':'ANT','name':'Antique'},
-    '7' : {'code':'APY','name':'Apayao'},
-    '8' : {'code':'AUR','name':'Aurora'},
-    '9' : {'code':'BAS','name':'Basilan'},
-    '10' : {'code':'BTA','name':'Bataan'},
-    '11' : {'code':'BTE','name':'Batanes'},
-    '12' : {'code':'BTG','name':'Batangas'},
-    '13' : {'code':'BLR','name':'Biliran'},
-    '14' : {'code':'BEN','name':'Benguet'},
-    '15' : {'code':'BOL','name':'Bohol'},
-    '16' : {'code':'BUK','name':'Bukidnon'},
-    '17' : {'code':'BUL','name':'Bulacan'},
-    '18' : {'code':'CAG','name':'Cagayan'},
-    '19' : {'code':'CNO','name':'Camarines Norte'},
-    '20' : {'code':'CSU','name':'Camarines Sur'},
-    '21' : {'code':'CAM','name':'Camiguin'},
-    '22' : {'code':'CAP','name':'Capiz'},
-    '23' : {'code':'CAT','name':'Catanduanes'},
-    '24' : {'code':'CAV','name':'Cavite'},
-    '25' : {'code':'CEB','name':'Cebu'},
-    '26' : {'code':'CMP','name':'Compostela'},
-    '27' : {'code':'DNO','name':'Davao del Norte'},
-    '28' : {'code':'DSU','name':'Davao del Sur'},
-    '29' : {'code':'DOR','name':'Davao Oriental'},
-    '30' : {'code':'ESA','name':'Eastern Samar'},
-    '31' : {'code':'GUI','name':'Guimaras'},
-    '32' : {'code':'IFU','name':'Ifugao'},
-    '33' : {'code':'INO','name':'Ilocos Norte'},
-    '34' : {'code':'ISU','name':'Ilocos Sur'},
-    '35' : {'code':'ILO','name':'Iloilo'},
-    '36' : {'code':'ISA','name':'Isabela'},
-    '37' : {'code':'KAL','name':'Kalinga'},
-    '38' : {'code':'LAG','name':'Laguna'},
-    '39' : {'code':'LNO','name':'Lanao del Norte'},
-    '40' : {'code':'LSU','name':'Lanao del Sur'},
-    '41' : {'code':'UNI','name':'La Union'},
-    '42' : {'code':'LEY','name':'Leyte'},
-    '43' : {'code':'MAG','name':'Maguindanao'},
-    '44' : {'code':'MRN','name':'Marinduque'},
-    '45' : {'code':'MSB','name':'Masbate'},
-    '46' : {'code':'MIC','name':'Mindoro Occidental'},
-    '47' : {'code':'MIR','name':'Mindoro Oriental'},
-    '48' : {'code':'MSC','name':'Misamis Occidental'},
-    '49' : {'code':'MOR','name':'Misamis Oriental'},
-    '50' : {'code':'MOP','name':'Mountain'},
-    '51' : {'code':'NOC','name':'Negros Occidental'},
-    '52' : {'code':'NOR','name':'Negros Oriental'},
-    '53' : {'code':'NCT','name':'North Cotabato'},
-    '54' : {'code':'NSM','name':'Northern Samar'},
-    '55' : {'code':'NEC','name':'Nueva Ecija'},
-    '56' : {'code':'NVZ','name':'Nueva Vizcaya'},
-    '57' : {'code':'PLW','name':'Palawan'},
-    '58' : {'code':'PMP','name':'Pampanga'},
-    '59' : {'code':'PNG','name':'Pangasinan'},
-    '60' : {'code':'QZN','name':'Quezon'},
-    '61' : {'code':'QRN','name':'Quirino'},
-    '62' : {'code':'RIZ','name':'Rizal'},
-    '63' : {'code':'ROM','name':'Romblon'},
-    '64' : {'code':'SMR','name':'Samar'},
-    '65' : {'code':'SRG','name':'Sarangani'},
-    '66' : {'code':'SQJ','name':'Siquijor'},
-    '67' : {'code':'SRS','name':'Sorsogon'},
-    '68' : {'code':'SCO','name':'South Cotabato'},
-    '69' : {'code':'SLE','name':'Southern Leyte'},
-    '70' : {'code':'SKU','name':'Sultan Kudarat'},
-    '71' : {'code':'SLU','name':'Sulu'},
-    '72' : {'code':'SNO','name':'Surigao del Norte'},
-    '73' : {'code':'SSU','name':'Surigao del Sur'},
-    '74' : {'code':'TAR','name':'Tarlac'},
-    '75' : {'code':'TAW','name':'Tawi-Tawi'},
-    '76' : {'code':'ZBL','name':'Zambales'},
-    '77' : {'code':'ZNO','name':'Zamboanga del Norte'},
-    '78' : {'code':'ZSU','name':'Zamboanga del Sur'},
-    '79' : {'code':'ZSI','name':'Zamboanga Sibugay'}
-  },
-  'PN':{
-    '1' : {'code':'PIT','name':'Pitcairn Island'}
-  },
-  'PL':{
-    '1': {'code':'DO','name':'Dolnośląskie'},
-    '2' : {'code':'KP','name':'Kujawsko-Pomorskie'},
-    '3': {'code':'LL','name':'Lubelskie'},
-    '4': {'code':'LU','name':'Lubuskie'},
-    '5': {'code':'LO','name':'Łódzkie'},
-    '6': {'code':'ML','name':'Małopolskie'},
-    '7' : {'code':'MZ','name':'Mazowieckie'},
-    '8' : {'code':'OP','name':'Opolskie'},
-    '9' : {'code':'PP','name':'Podkarpackie'},
-    '10' : {'code':'PL','name':'Podlaskie'},
-    '11' : {'code':'PM','name':'Pomorskie'},
-    '12': {'code':'SL','name':'Śląskie'},
-    '13': {'code':'SW','name':'Świętokrzyskie'},
-    '14': {'code':'WM','name':'Warmińsko-Mazurskie'},
-    '15' : {'code':'WP','name':'Wielkopolskie'},
-    '16' : {'code':'ZA','name':'Zachodniopomorskie'}
-  },
-  'PT':{
-    '1' : {'code':'AC','name':'Açores'},
-    '2' : {'code':'AV','name':'Aveiro'},
-    '3' : {'code':'BE','name':'Beja'},
-    '4' : {'code':'BR','name':'Braga'},
-    '5' : {'code':'BA','name':'Bragança'},
-    '6' : {'code':'CB','name':'Castelo Branco'},
-    '7' : {'code':'CO','name':'Coimbra'},
-    '8' : {'code':'EV','name':'évora'},
-    '9' : {'code':'FA','name':'Faro'},
-    '10' : {'code':'GU','name':'Guarda'},
-    '12' : {'code':'LE','name':'Leiria'},
-    '13' : {'code':'LI','name':'Lisboa'},
-    '14' : {'code':'ME','name':'Madeira'},
-    '15' : {'code':'PO','name':'Portalegre'},
-    '16' : {'code':'PR','name':'Porto'},
-    '17' : {'code':'SA','name':'Santarém'},
-    '18' : {'code':'SE','name':'SetÚbal'},
-    '19' : {'code':'VC','name':'Viana do Castelo'},
-    '20' : {'code':'VR','name':'Vila Real'},
-    '21' : {'code':'VI','name':'Viseu'}
-  },
-  'PR':{
-    '1' : {'code':'A-A','name':'Añasco'},
-    '2' : {'code':'ADJ','name':'Adjuntas'},
-    '3' : {'code':'AGU','name':'Aguada'},
-    '4' : {'code':'AGU','name':'Aguadilla'},
-    '5' : {'code':'AGU','name':'Aguas Buenas'},
-    '6' : {'code':'AIB','name':'Aibonito'},
-    '7' : {'code':'ARE','name':'Arecibo'},
-    '8' : {'code':'ARR','name':'Arroyo'},
-    '9' : {'code':'BAR','name':'Barceloneta'},
-    '10' : {'code':'BAR','name':'Barranquitas'},
-    '11' : {'code':'BAY','name':'Bayamón'},
-    '12' : {'code':'CAB','name':'Cabo Rojo'},
-    '13' : {'code':'CAG','name':'Caguas'},
-    '14' : {'code':'CAM','name':'Camuy'},
-    '15' : {'code':'CAN','name':'Canóvanas'},
-    '16' : {'code':'CAR','name':'Carolina'},
-    '17' : {'code':'CAT','name':'Cataño'},
-    '18' : {'code':'CAY','name':'Cayey'},
-    '19' : {'code':'CEI','name':'Ceiba'},
-    '20' : {'code':'CIA','name':'Ciales'},
-    '21' : {'code':'CID','name':'Cidra'},
-    '22' : {'code':'COA','name':'Coamo'},
-    '23' : {'code':'COM','name':'Comerío'},
-    '24' : {'code':'COR','name':'Corozal'},
-    '25' : {'code':'CUL','name':'Culebra'},
-    '26' : {'code':'DOR','name':'Dorado'},
-    '27' : {'code':'FAJ','name':'Fajardo'},
-    '28' : {'code':'FLO','name':'Florida'},
-    '29' : {'code':'GUA','name':'Guayama'},
-    '30' : {'code':'GUA','name':'Guayanilla'},
-    '31' : {'code':'GUA','name':'Guaynabo'},
-    '32' : {'code':'GUR','name':'Gurabo'},
-    '33' : {'code':'GU¡','name':'Guánica'},
-    '34' : {'code':'HAT','name':'Hatillo'},
-    '35' : {'code':'HOR','name':'Hormigueros'},
-    '36' : {'code':'HUM','name':'Humacao'},
-    '37' : {'code':'ISA','name':'Isabela'},
-    '38' : {'code':'JAY','name':'Jayuya'},
-    '39' : {'code':'JUA','name':'Juana Díaz'},
-    '40' : {'code':'JUN','name':'Juncos'},
-    '41' : {'code':'LAJ','name':'Lajas'},
-    '42' : {'code':'LAR','name':'Lares'},
-    '43' : {'code':'LAS','name':'Las Marías'},
-    '44' : {'code':'LAS','name':'Las Piedras'},
-    '45' : {'code':'LOÕ','name':'Loíza'},
-    '46' : {'code':'LUQ','name':'Luquillo'},
-    '47' : {'code':'MAN','name':'Manatí'},
-    '48' : {'code':'MAR','name':'Maricao'},
-    '49' : {'code':'MAU','name':'Maunabo'},
-    '50' : {'code':'MAY','name':'Mayagüez'},
-    '51' : {'code':'MOC','name':'Moca'},
-    '52' : {'code':'MOR','name':'Morovis'},
-    '53' : {'code':'NAG','name':'Naguabo'},
-    '54' : {'code':'NAR','name':'Naranjito'},
-    '55' : {'code':'ORO','name':'Orocovis'},
-    '56' : {'code':'PAT','name':'Patillas'},
-    '57' : {'code':'PE-','name':'Peñuelas'},
-    '58' : {'code':'PON','name':'Ponce'},
-    '59' : {'code':'QUE','name':'Quebradillas'},
-    '60' : {'code':'RIN','name':'Rincón'},
-    '61' : {'code':'RIO','name':'Rio Grande'},
-    '62' : {'code':'SAB','name':'Sabana Grande'},
-    '63' : {'code':'SAL','name':'Salinas'},
-    '64' : {'code':'SAN','name':'San Germàn'},
-    '65' : {'code':'SAN','name':'San Juan'},
-    '66' : {'code':'SAN','name':'San Lorenzo'},
-    '67' : {'code':'SAN','name':'San Sebastiàn'},
-    '68' : {'code':'SAN','name':'Santa Isabel'},
-    '69' : {'code':'TOA','name':'Toa Alta'},
-    '70' : {'code':'TOA','name':'Toa Baja'},
-    '71' : {'code':'TRU','name':'Trujillo Alto'},
-    '72' : {'code':'UTU','name':'Utuado'},
-    '73' : {'code':'VEG','name':'Vega Alta'},
-    '74' : {'code':'VEG','name':'Vega Baja'},
-    '75' : {'code':'VIE','name':'Vieques'},
-    '76' : {'code':'VIL','name':'Villalba'},
-    '77' : {'code':'YAB','name':'Yabucoa'},
-    '78' : {'code':'YAU','name':'Yauco'}
-  },
-  'QA':{
-    '1' : {'code':'DW','name':'Ad Dawhah'},
-    '2' : {'code':'GW','name':'Al Ghuwayriyah'},
-    '3' : {'code':'JM','name':'Al Jumayliyah'},
-    '4' : {'code':'KR','name':'Al Khawr'},
-    '5' : {'code':'WK','name':'Al Wakrah'},
-    '6' : {'code':'RN','name':'Ar Rayyan'},
-    '7' : {'code':'JB','name':'Jarayan al Batinah'},
-    '8' : {'code':'MS','name':'Madinat ash Shamal'},
-    '9' : {'code':'UD','name':'Umm Sa\'id'},
-    '10' : {'code':'UL','name':'Umm Salal'}
-  },
-  'RO':{
-    '1' : {'code':'AB','name':'Alba'},
-    '2' : {'code':'AR','name':'Arad'},
-    '3' : {'code':'AG','name':'Arges'},
-    '4' : {'code':'BC','name':'Bacau'},
-    '5' : {'code':'BH','name':'Bihor'},
-    '6' : {'code':'BN','name':'Bistrita-Nasaud'},
-    '7' : {'code':'BT','name':'Botosani'},
-    '8' : {'code':'BV','name':'Brasov'},
-    '9' : {'code':'BR','name':'Braila'},
-    '10' : {'code':'B','name':'Bucuresti'},
-    '11' : {'code':'BZ','name':'Buzau'},
-    '12' : {'code':'CS','name':'Caras-Severin'},
-    '13' : {'code':'CL','name':'Calarasi'},
-    '14' : {'code':'CJ','name':'Cluj'},
-    '15' : {'code':'CT','name':'Constanta'},
-    '16' : {'code':'CV','name':'Covasna'},
-    '17' : {'code':'DB','name':'Dimbovita'},
-    '18' : {'code':'DJ','name':'Dolj'},
-    '19' : {'code':'GL','name':'Galati'},
-    '20' : {'code':'GR','name':'Giurgiu'},
-    '21' : {'code':'GJ','name':'Gorj'},
-    '22' : {'code':'HR','name':'Harghita'},
-    '23' : {'code':'HD','name':'Hunedoara'},
-    '24' : {'code':'IL','name':'Ialomita'},
-    '25' : {'code':'IS','name':'Iasi'},
-    '26' : {'code':'IF','name':'Ilfov'},
-    '27' : {'code':'MM','name':'Maramures'},
-    '28' : {'code':'MH','name':'Mehedinti'},
-    '29' : {'code':'MS','name':'Mures'},
-    '30' : {'code':'NT','name':'Neamt'},
-    '31' : {'code':'OT','name':'Olt'},
-    '32' : {'code':'PH','name':'Prahova'},
-    '33' : {'code':'SM','name':'Satu-Mare'},
-    '34' : {'code':'SJ','name':'Salaj'},
-    '35' : {'code':'SB','name':'Sibiu'},
-    '36' : {'code':'SV','name':'Suceava'},
-    '37' : {'code':'TR','name':'Teleorman'},
-    '38' : {'code':'TM','name':'Timis'},
-    '39' : {'code':'TL','name':'Tulcea'},
-    '40' : {'code':'VS','name':'Vaslui'},
-    '41' : {'code':'VL','name':'Valcea'},
-    '42' : {'code':'VN','name':'Vrancea'}
-  },
-  'RU':{
-    '1' : {'code':'AB','name':'Abakan'},
-    '2' : {'code':'AG','name':'Aginskoye'},
-    '3' : {'code':'AN','name':'Anadyr'},
-    '4' : {'code':'AR','name':'Arkahangelsk'},
-    '5' : {'code':'AS','name':'Astrakhan'},
-    '6' : {'code':'BA','name':'Barnaul'},
-    '7' : {'code':'BE','name':'Belgorod'},
-    '8' : {'code':'BI','name':'Birobidzhan'},
-    '9' : {'code':'BL','name':'Blagoveshchensk'},
-    '10' : {'code':'BR','name':'Bryansk'},
-    '11' : {'code':'CH','name':'Cheboksary'},
-    '12' : {'code':'CL','name':'Chelyabinsk'},
-    '13' : {'code':'CR','name':'Cherkessk'},
-    '14' : {'code':'CI','name':'Chita'},
-    '15' : {'code':'DU','name':'Dudinka'},
-    '16' : {'code':'EL','name':'Elista'},
-    '17' : {'code':'GO','name':'Gomo-Altaysk'},
-    '18' : {'code':'GA','name':'Gorno-Altaysk'},
-    '19' : {'code':'GR','name':'Groznyy'},
-    '20' : {'code':'IR','name':'Irkutsk'},
-    '21' : {'code':'IV','name':'Ivanovo'},
-    '22' : {'code':'IZ','name':'Izhevsk'},
-    '23' : {'code':'KA','name':'Kalinigrad'},
-    '24' : {'code':'KL','name':'Kaluga'},
-    '25' : {'code':'KS','name':'Kasnodar'},
-    '26' : {'code':'KZ','name':'Kazan'},
-    '27' : {'code':'KE','name':'Kemerovo'},
-    '28' : {'code':'KH','name':'Khabarovsk'},
-    '29' : {'code':'KM','name':'Khanty-Mansiysk'},
-    '30' : {'code':'KO','name':'Kostroma'},
-    '31' : {'code':'KR','name':'Krasnodar'},
-    '32' : {'code':'KN','name':'Krasnoyarsk'},
-    '33' : {'code':'KU','name':'Kudymkar'},
-    '34' : {'code':'KG','name':'Kurgan'},
-    '35' : {'code':'KK','name':'Kursk'},
-    '36' : {'code':'KY','name':'Kyzyl'},
-    '37' : {'code':'LI','name':'Lipetsk'},
-    '38' : {'code':'MA','name':'Magadan'},
-    '39' : {'code':'MK','name':'Makhachkala'},
-    '40' : {'code':'MY','name':'Maykop'},
-    '41' : {'code':'MO','name':'Moscow'},
-    '42' : {'code':'MU','name':'Murmansk'},
-    '43' : {'code':'NA','name':'Nalchik'},
-    '44' : {'code':'NR','name':'Naryan Mar'},
-    '45' : {'code':'NZ','name':'Nazran'},
-    '46' : {'code':'NI','name':'Nizhniy Novgorod'},
-    '47' : {'code':'NO','name':'Novgorod'},
-    '48' : {'code':'NV','name':'Novosibirsk'},
-    '49' : {'code':'OM','name':'Omsk'},
-    '50' : {'code':'OR','name':'Orel'},
-    '51' : {'code':'OE','name':'Orenburg'},
-    '52' : {'code':'PA','name':'Palana'},
-    '53' : {'code':'PE','name':'Penza'},
-    '54' : {'code':'PR','name':'Perm'},
-    '55' : {'code':'PK','name':'Petropavlovsk-Kamchatskiy'},
-    '56' : {'code':'PT','name':'Petrozavodsk'},
-    '57' : {'code':'PS','name':'Pskov'},
-    '58' : {'code':'RO','name':'Rostov-na-Donu'},
-    '59' : {'code':'RY','name':'Ryazan'},
-    '60' : {'code':'SL','name':'Salekhard'},
-    '61' : {'code':'SA','name':'Samara'},
-    '62' : {'code':'SR','name':'Saransk'},
-    '63' : {'code':'SV','name':'Saratov'},
-    '64' : {'code':'SM','name':'Smolensk'},
-    '65' : {'code':'SP','name':'St. Petersburg'},
-    '66' : {'code':'ST','name':'Stavropol'},
-    '67' : {'code':'SY','name':'Syktyvkar'},
-    '68' : {'code':'TA','name':'Tambov'},
-    '69' : {'code':'TO','name':'Tomsk'},
-    '70' : {'code':'TU','name':'Tula'},
-    '71' : {'code':'TR','name':'Tura'},
-    '72' : {'code':'TV','name':'Tver'},
-    '73' : {'code':'TY','name':'Tyumen'},
-    '74' : {'code':'UF','name':'Ufa'},
-    '75' : {'code':'UL','name':'Ul\'yanovsk'},
-    '76' : {'code':'UU','name':'Ulan-Ude'},
-    '77' : {'code':'US','name':'Ust\'-Ordynskiy'},
-    '78' : {'code':'VL','name':'Vladikavkaz'},
-    '79' : {'code':'VA','name':'Vladimir'},
-    '80' : {'code':'VV','name':'Vladivostok'},
-    '81' : {'code':'VG','name':'Volgograd'},
-    '82' : {'code':'VD','name':'Vologda'},
-    '83' : {'code':'VO','name':'Voronezh'},
-    '84' : {'code':'VY','name':'Vyatka'},
-    '85' : {'code':'YA','name':'Yakutsk'},
-    '86' : {'code':'YR','name':'Yaroslavl'},
-    '87' : {'code':'YE','name':'Yekaterinburg'},
-    '88' : {'code':'YO','name':'Yoshkar-Ola'}
-  },
-  'RW':{
-    '1' : {'code':'BU','name':'Butare'},
-    '2' : {'code':'BY','name':'Byumba'},
-    '3' : {'code':'CY','name':'Cyangugu'},
-    '4' : {'code':'GK','name':'Gikongoro'},
-    '5' : {'code':'GS','name':'Gisenyi'},
-    '6' : {'code':'GT','name':'Gitarama'},
-    '7' : {'code':'KG','name':'Kibungo'},
-    '8' : {'code':'KY','name':'Kibuye'},
-    '9' : {'code':'KR','name':'Kigali Rurale'},
-    '10' : {'code':'KV','name':'Kigali-ville'},
-    '11' : {'code':'RU','name':'Ruhengeri'},
-    '12' : {'code':'UM','name':'Umutara'}
-  },
-  'KN':{
-    '1' : {'code':'CCN','name':'Christ Church Nichola Town'},
-    '2' : {'code':'SAS','name':'Saint Anne Sandy Point'},
-    '3' : {'code':'SGB','name':'Saint George Basseterre'},
-    '4' : {'code':'SGG','name':'Saint George Gingerland'},
-    '5' : {'code':'SJW','name':'Saint James Windward'},
-    '6' : {'code':'SJC','name':'Saint John Capesterre'},
-    '7' : {'code':'SJF','name':'Saint John Figtree'},
-    '8' : {'code':'SMC','name':'Saint Mary Cayon'},
-    '9' : {'code':'CAP','name':'Saint Paul Capesterre'},
-    '10' : {'code':'CHA','name':'Saint Paul Charlestown'},
-    '11' : {'code':'SPB','name':'Saint Peter Basseterre'},
-    '12' : {'code':'STL','name':'Saint Thomas Lowland'},
-    '13' : {'code':'STM','name':'Saint Thomas Middle Island'},
-    '14' : {'code':'TPP','name':'Trinity Palmetto Point'}
-  },
-  'LC':{
-    '1' : {'code':'AR','name':'Anse-la-Raye'},
-    '2' : {'code':'CA','name':'Castries'},
-    '3' : {'code':'CH','name':'Choiseul'},
-    '4' : {'code':'DA','name':'Dauphin'},
-    '5' : {'code':'DE','name':'Dennery'},
-    '6' : {'code':'GI','name':'Gros-Islet'},
-    '7' : {'code':'LA','name':'Laborie'},
-    '8' : {'code':'MI','name':'Micoud'},
-    '9' : {'code':'PR','name':'Praslin'},
-    '10' : {'code':'SO','name':'Soufriere'},
-    '11' : {'code':'VF','name':'Vieux-Fort'}
-  },
-  'VC':{
-    '1' : {'code':'C','name':'Charlotte'},
-    '2' : {'code':'R','name':'Grenadines'},
-    '3' : {'code':'A','name':'Saint Andrew'},
-    '4' : {'code':'D','name':'Saint David'},
-    '5' : {'code':'G','name':'Saint George'},
-    '6' : {'code':'P','name':'Saint Patrick'}
-  },
-  'WS':{
-    '1' : {'code':'AN','name':'A\'ana'},
-    '2' : {'code':'AI','name':'Aiga-i-le-Tai'},
-    '3' : {'code':'AT','name':'Atua'},
-    '4' : {'code':'FA','name':'Fa\'asaleleaga'},
-    '5' : {'code':'GE','name':'Gaga\'emauga'},
-    '6' : {'code':'GF','name':'Gagaifomauga'},
-    '7' : {'code':'PA','name':'Palauli'},
-    '8' : {'code':'SA','name':'Satupa\'itea'},
-    '9' : {'code':'TU','name':'Tuamasaga'},
-    '10' : {'code':'VF','name':'Va\'a-o-Fonoti'},
-    '11' : {'code':'VS','name':'Vaisigano'}
-  },
-  'SM':{
-    '1' : {'code':'AC','name':'Acquaviva'},
-    '2' : {'code':'BM','name':'Borgo Maggiore'},
-    '3' : {'code':'CH','name':'Chiesanuova'},
-    '4' : {'code':'DO','name':'Domagnano'},
-    '5' : {'code':'FA','name':'Faetano'},
-    '6' : {'code':'FI','name':'Fiorentino'},
-    '7' : {'code':'MO','name':'Montegiardino'},
-    '8' : {'code':'SM','name':'Citta di San Marino'},
-    '9' : {'code':'SE','name':'Serravalle'}
-  },
-  'ST':{
-    '1' : {'code':'S','name':'Sao Tome'},
-    '2' : {'code':'P','name':'Principe'}
-  },
-  'SA':{
-    '1' : {'code':'BH','name':'Al Bahah'},
-    '2' : {'code':'HS','name':'Al Hudud ash Shamaliyah'},
-    '3' : {'code':'JF','name':'Al Jawf'},
-    '4' : {'code':'MD','name':'Al Madinah'},
-    '5' : {'code':'QS','name':'Al Qasim'},
-    '6' : {'code':'RD','name':'Ar Riyad'},
-    '7' : {'code':'AQ','name':'Ash Sharqiyah (Eastern)'},
-    '8' : {'code':'AS','name':'\'Asir'},
-    '9' : {'code':'HL','name':'Ha\'il'},
-    '10' : {'code':'JZ','name':'Jizan'},
-    '11' : {'code':'ML','name':'Makkah'},
-    '12' : {'code':'NR','name':'Najran'},
-    '13' : {'code':'TB','name':'Tabuk'}
-  },
-  'SN':{
-    '1' : {'code':'DA','name':'Dakar'},
-    '2' : {'code':'DI','name':'Diourbel'},
-    '3' : {'code':'FA','name':'Fatick'},
-    '4' : {'code':'KA','name':'Kaolack'},
-    '5' : {'code':'KO','name':'Kolda'},
-    '6' : {'code':'LO','name':'Louga'},
-    '7' : {'code':'MA','name':'Matam'},
-    '8' : {'code':'SL','name':'Saint-Louis'},
-    '9' : {'code':'TA','name':'Tambacounda'},
-    '10' : {'code':'TH','name':'Thies'},
-    '11' : {'code':'ZI','name':'Ziguinchor'}
-  },
-  'SC':{
-    '1' : {'code':'AP','name':'Anse aux Pins'},
-    '2' : {'code':'AB','name':'Anse Boileau'},
-    '3' : {'code':'AE','name':'Anse Etoile'},
-    '4' : {'code':'AL','name':'Anse Louis'},
-    '5' : {'code':'AR','name':'Anse Royale'},
-    '6' : {'code':'BL','name':'Baie Lazare'},
-    '7' : {'code':'BS','name':'Baie Sainte Anne'},
-    '8' : {'code':'BV','name':'Beau Vallon'},
-    '9' : {'code':'BA','name':'Bel Air'},
-    '10' : {'code':'BO','name':'Bel Ombre'},
-    '11' : {'code':'CA','name':'Cascade'},
-    '12' : {'code':'GL','name':'Glacis'},
-    '13' : {'code':'GM','name':'Grand\' Anse (on Mahe)'},
-    '14' : {'code':'GP','name':'Grand\' Anse (on Praslin)'},
-    '15' : {'code':'DG','name':'La Digue'},
-    '16' : {'code':'RA','name':'La Riviere Anglaise'},
-    '17' : {'code':'MB','name':'Mont Buxton'},
-    '18' : {'code':'MF','name':'Mont Fleuri'},
-    '19' : {'code':'PL','name':'Plaisance'},
-    '20' : {'code':'PR','name':'Pointe La Rue'},
-    '21' : {'code':'PG','name':'Port Glaud'},
-    '22' : {'code':'SL','name':'Saint Louis'},
-    '23' : {'code':'TA','name':'Takamaka'}
-  },
-  'SL':{
-    '1' : {'code':'E','name':'Eastern'},
-    '2' : {'code':'N','name':'Northern'},
-    '3' : {'code':'S','name':'Southern'},
-    '4' : {'code':'W','name':'Western'}
-  },
-  'SK':{
-    '1' : {'code':'BA','name':'Banskobystricky'},
-    '2' : {'code':'BR','name':'Bratislavsky'},
-    '3' : {'code':'KO','name':'Kosicky'},
-    '4' : {'code':'NI','name':'Nitriansky'},
-    '5' : {'code':'PR','name':'Presovsky'},
-    '6' : {'code':'TC','name':'Trenciansky'},
-    '7' : {'code':'TV','name':'Trnavsky'},
-    '8' : {'code':'ZI','name':'Zilinsky'}
-  },
-  'SI':{
-    '1' : {'code':'4','name':'Štajerska'},
-    '2' : {'code':'2A','name':'Gorenjska'},
-    '3' : {'code':'5','name':'Prekmurje'},
-    '4' : {'code':'3','name':'Koroška'},
-    '5' : {'code':'2B','name':'Notranjska'},
-    '6' : {'code':'1','name':'Primorska'},
-    '7' : {'code':'2C','name':'Dolenjska'},
-    '8' : {'code':'2C','name':'Bela Krajina'}
-  },
-  'SB':{
-    '1' : {'code':'CE','name':'Central'},
-    '2' : {'code':'CH','name':'Choiseul'},
-    '3' : {'code':'GC','name':'Guadalcanal'},
-    '4' : {'code':'HO','name':'Honiara'},
-    '5' : {'code':'IS','name':'Isabel'},
-    '6' : {'code':'MK','name':'Makira'},
-    '7' : {'code':'ML','name':'Malaita'},
-    '8' : {'code':'RB','name':'Rennell and Bellona'},
-    '9' : {'code':'TM','name':'Temotu'},
-    '10' : {'code':'WE','name':'Western'}
-  },
-  'SO':{
-    '1' : {'code':'AW','name':'Awdal'},
-    '2' : {'code':'BK','name':'Bakool'},
-    '3' : {'code':'BN','name':'Banaadir'},
-    '4' : {'code':'BR','name':'Bari'},
-    '5' : {'code':'BY','name':'Bay'},
-    '6' : {'code':'GA','name':'Galguduud'},
-    '7' : {'code':'GE','name':'Gedo'},
-    '8' : {'code':'HI','name':'Hiiraan'},
-    '9' : {'code':'JD','name':'Jubbada Dhexe'},
-    '10' : {'code':'JH','name':'Jubbada Hoose'},
-    '11' : {'code':'MU','name':'Mudug'},
-    '12' : {'code':'NU','name':'Nugaal'},
-    '13' : {'code':'SA','name':'Sanaag'},
-    '14' : {'code':'SD','name':'Shabeellaha Dhexe'},
-    '15' : {'code':'SH','name':'Shabeellaha Hoose'},
-    '16' : {'code':'SL','name':'Sool'},
-    '17' : {'code':'TO','name':'Togdheer'},
-    '18' : {'code':'WG','name':'Woqooyi Galbeed'}
-  },
-  'ZA':{
-    '1' : {'code':'EC','name':'Eastern Cape'},
-    '2' : {'code':'FS','name':'Free State'},
-    '3' : {'code':'GT','name':'Gauteng'},
-    '4' : {'code':'KN','name':'KwaZulu-Natal'},
-    '5' : {'code':'LP','name':'Limpopo'},
-    '6' : {'code':'MP','name':'Mpumalanga'},
-    '7' : {'code':'NW','name':'North West'},
-    '8' : {'code':'NC','name':'Northern Cape'},
-    '9' : {'code':'WC','name':'Western Cape'}
-  },
-  'ES':{
-    '1' : {'code':'CA','name':'La Coruña'},
-    '2' : {'code':'AL','name':'Álava'},
-    '3' : {'code':'AB','name':'Albacete'},
-    '4' : {'code':'AC','name':'Alicante'},
-    '5' : {'code':'AM','name':'Almeria'},
-    '6' : {'code':'AS','name':'Asturias'},
-    '7' : {'code':'AV','name':'Ávila'},
-    '8' : {'code':'BJ','name':'Badajoz'},
-    '9' : {'code':'IB','name':'Baleares'},
-    '10' : {'code':'BA','name':'Barcelona'},
-    '11' : {'code':'BU','name':'Burgos'},
-    '12' : {'code':'CC','name':'Cáceres'},
-    '13' : {'code':'CZ','name':'Cádiz'},
-    '14' : {'code':'CT','name':'Cantabria'},
-    '15' : {'code':'CL','name':'Castellón'},
-    '16' : {'code':'CE','name':'Ceuta'},
-    '17' : {'code':'CR','name':'Ciudad Real'},
-    '18' : {'code':'CD','name':'Córdoba'},
-    '19' : {'code':'CU','name':'Cuenca'},
-    '20' : {'code':'GI','name':'Gerona'},
-    '21' : {'code':'GD','name':'Granada'},
-    '22' : {'code':'GJ','name':'Guadalajara'},
-    '23' : {'code':'GP','name':'Guipúzcoa'},
-    '24' : {'code':'HL','name':'Huelva'},
-    '25' : {'code':'HS','name':'Huesca'},
-    '26' : {'code':'JN','name':'Jaén'},
-    '27' : {'code':'RJ','name':'La Rioja'},
-    '28' : {'code':'PM','name':'Las Palmas'},
-    '29' : {'code':'LE','name':'León'},
-    '30' : {'code':'LL','name':'Lérida'},
-    '31' : {'code':'LG','name':'Lugo'},
-    '32' : {'code':'MD','name':'Madrid'},
-    '33' : {'code':'MA','name':'Málaga'},
-    '34' : {'code':'ML','name':'Melilla'},
-    '35' : {'code':'MU','name':'Murcia'},
-    '36' : {'code':'NV','name':'Navarra'},
-    '37' : {'code':'OU','name':'Ourense'},
-    '38' : {'code':'PL','name':'Palencia'},
-    '39' : {'code':'PO','name':'Pontevedra'},
-    '40' : {'code':'SL','name':'Salamanca'},
-    '41' : {'code':'SC','name':'Santa Cruz de Tenerife'},
-    '42' : {'code':'SG','name':'Segovia'},
-    '43' : {'code':'SV','name':'Sevilla'},
-    '44' : {'code':'SO','name':'Soria'},
-    '45' : {'code':'TA','name':'Tarragona'},
-    '46' : {'code':'TE','name':'Teruel'},
-    '47' : {'code':'TO','name':'Toledo'},
-    '48' : {'code':'VC','name':'Valencia'},
-    '49' : {'code':'VD','name':'Valladolid'},
-    '50' : {'code':'VZ','name':'Vizcaya'},
-    '51' : {'code':'ZM','name':'Zamora'},
-    '52' : {'code':'ZR','name':'Zaragoza'}
-  },
-  'LK':{
-    '1' : {'code':'CE','name':'Central'},
-    '2' : {'code':'EA','name':'Eastern'},
-    '3' : {'code':'NC','name':'North Central'},
-    '4' : {'code':'NO','name':'Northern'},
-    '5' : {'code':'NW','name':'North Western'},
-    '6' : {'code':'SA','name':'Sabaragamuwa'},
-    '7' : {'code':'SO','name':'Southern'},
-    '8' : {'code':'UV','name':'Uva'},
-    '9' : {'code':'WE','name':'Western'}
-  },
-  'SH':{
-    '1' : {'code':'A','name':'Ascension'},
-    '2' : {'code':'S','name':'Saint Helena'},
-    '3' : {'code':'T','name':'Tristan da Cunha'}
-  },
-  'PM':{
-    '1' : {'code':'P','name':'Saint Pierre'},
-    '2' : {'code':'M','name':'Miquelon'}
-  },
-  'SD':{
-    '1' : {'code':'ANL','name':'A\'ali an Nil'},
-    '2' : {'code':'BAM','name':'Al Bahr al Ahmar'},
-    '3' : {'code':'BRT','name':'Al Buhayrat'},
-    '4' : {'code':'JZR','name':'Al Jazirah'},
-    '5' : {'code':'KRT','name':'Al Khartum'},
-    '6' : {'code':'QDR','name':'Al Qadarif'},
-    '7' : {'code':'WDH','name':'Al Wahdah'},
-    '8' : {'code':'ANB','name':'An Nil al Abyad'},
-    '9' : {'code':'ANZ','name':'An Nil al Azraq'},
-    '10' : {'code':'ASH','name':'Ash Shamaliyah'},
-    '11' : {'code':'BJA','name':'Bahr al Jabal'},
-    '12' : {'code':'GIS','name':'Gharb al Istiwa\'iyah'},
-    '13' : {'code':'GBG','name':'Gharb Bahr al Ghazal'},
-    '14' : {'code':'GDA','name':'Gharb Darfur'},
-    '15' : {'code':'GKU','name':'Gharb Kurdufan'},
-    '16' : {'code':'JDA','name':'Janub Darfur'},
-    '17' : {'code':'JKU','name':'Janub Kurdufan'},
-    '18' : {'code':'JQL','name':'Junqali'},
-    '19' : {'code':'KSL','name':'Kassala'},
-    '20' : {'code':'NNL','name':'Nahr an Nil'},
-    '21' : {'code':'SBG','name':'Shamal Bahr al Ghazal'},
-    '22' : {'code':'SDA','name':'Shamal Darfur'},
-    '23' : {'code':'SKU','name':'Shamal Kurdufan'},
-    '24' : {'code':'SIS','name':'Sharq al Istiwa\'iyah'},
-    '25' : {'code':'SNR','name':'Sinnar'},
-    '26' : {'code':'WRB','name':'Warab'}
-  },
-  'SR':{
-    '1' : {'code':'BR','name':'Brokopondo'},
-    '2' : {'code':'CM','name':'Commewijne'},
-    '3' : {'code':'CR','name':'Coronie'},
-    '4' : {'code':'MA','name':'Marowijne'},
-    '5' : {'code':'NI','name':'Nickerie'},
-    '6' : {'code':'PA','name':'Para'},
-    '7' : {'code':'PM','name':'Paramaribo'},
-    '9' : {'code':'SA','name':'Saramacca'},
-    '10' : {'code':'SI','name':'Sipaliwini'},
-    '11' : {'code':'WA','name':'Wanica'}
-  },
-  'SZ':{
-    '1' : {'code':'H','name':'Hhohho'},
-    '2' : {'code':'L','name':'Lubombo'},
-    '3' : {'code':'M','name':'Manzini'},
-    '4' : {'code':'S','name':'Shishelweni'}
-  },
-  'SE':{
-    '1' : {'code':'K','name':'Blekinge'},
-    '2' : {'code':'W','name':'Dalama'},
-    '3' : {'code':'I','name':'Gotland'},
-    '4' : {'code':'X','name':'Gävleborg'},
-    '5' : {'code':'N','name':'Halland'},
-    '6' : {'code':'Z','name':'Jämtland'},
-    '7' : {'code':'F','name':'Jönköping'},
-    '8' : {'code':'H','name':'Kalmar'},
-    '9' : {'code':'G','name':'Kronoberg'},
-    '10' : {'code':'BD','name':'Norrbotten'},
-    '11' : {'code':'M','name':'Skåne'},
-    '12' : {'code':'AB','name':'Stockholm'},
-    '13' : {'code':'D','name':'Södermanland'},
-    '14' : {'code':'C','name':'Uppsala'},
-    '15' : {'code':'S','name':'Värmland'},
-    '16' : {'code':'AC','name':'Västerbotten'},
-    '17' : {'code':'Y','name':'Västernorrland'},
-    '18' : {'code':'U','name':'Västmanland'},
-    '19' : {'code':'O','name':'Västra Götaland'},
-    '20' : {'code':'T','name':'Örebro'},
-    '21' : {'code':'E','name':'Östergötland'}
-  },
-  'CH':{
-    '1' : {'code':'AG','name':'Aargau'},
-    '2' : {'code':'AR','name':'Appenzell Ausserrhoden'},
-    '3' : {'code':'AI','name':'Appenzell Innerrhoden'},
-    '4' : {'code':'BS','name':'Basel-Stadt'},
-    '5' : {'code':'BL','name':'Basel-Landschaft'},
-    '6' : {'code':'BE','name':'Bern'},
-    '7' : {'code':'FR','name':'Fribourg'},
-    '8' : {'code':'GE','name':'Genève'},
-    '9' : {'code':'GL','name':'Glarus'},
-    '10' : {'code':'GR','name':'Graubünden'},
-    '11' : {'code':'JU','name':'Jura'},
-    '12' : {'code':'LU','name':'Lucerne'},
-    '13' : {'code':'NE','name':'Neuchâtel'},
-    '14' : {'code':'NW','name':'Nidwalden'},
-    '15' : {'code':'OW','name':'Obwalden'},
-    '16' : {'code':'SG','name':'St. Gallen'},
-    '17' : {'code':'SH','name':'Schaffhausen'},
-    '18' : {'code':'SZ','name':'Schwyz'},
-    '19' : {'code':'SO','name':'Solothurn'},
-    '20' : {'code':'TG','name':'Thurgau'},
-    '21' : {'code':'TI','name':'Ticino'},
-    '22' : {'code':'UR','name':'Uri'},
-    '23' : {'code':'VS','name':'Valais'},
-    '24' : {'code':'VD','name':'Vaud'},
-    '25' : {'code':'ZG','name':'Zug'},
-    '26' : {'code':'ZH','name':'Zürich'}
-  },
-  'SY':{
-    '1' : {'code':'HA','name':'Al Hasakah'},
-    '2' : {'code':'LA','name':'Al Ladhiqiyah'},
-    '3' : {'code':'QU','name':'Al Qunaytirah'},
-    '4' : {'code':'RQ','name':'Ar Raqqah'},
-    '5' : {'code':'SU','name':'As Suwayda'},
-    '6' : {'code':'DA','name':'Dara'},
-    '7' : {'code':'DZ','name':'Dayr az Zawr'},
-    '8' : {'code':'DI','name':'Dimashq'},
-    '9' : {'code':'HL','name':'Halab'},
-    '10' : {'code':'HM','name':'Hamah'},
-    '11' : {'code':'HI','name':'Hims'},
-    '12' : {'code':'ID','name':'Idlib'},
-    '13' : {'code':'RD','name':'Rif Dimashq'},
-    '14' : {'code':'TA','name':'Tartus'}
-  },
-  'TW':{
-    '1' : {'code':'CH','name':'Chang-hua'},
-    '2' : {'code':'CI','name':'Chia-i'},
-    '3' : {'code':'HS','name':'Hsin-chu'},
-    '4' : {'code':'HL','name':'Hua-lien'},
-    '5' : {'code':'IL','name':'I-lan'},
-    '6' : {'code':'KH','name':'Kao-hsiung county'},
-    '7' : {'code':'KM','name':'Kin-men'},
-    '8' : {'code':'LC','name':'Lien-chiang'},
-    '9' : {'code':'ML','name':'Miao-li'},
-    '10' : {'code':'NT','name':'Nan-t\'ou'},
-    '11' : {'code':'PH','name':'P\'eng-hu'},
-    '12' : {'code':'PT','name':'P\'ing-tung'},
-    '13' : {'code':'TG','name':'T\'ai-chung'},
-    '14' : {'code':'TA','name':'T\'ai-nan'},
-    '15' : {'code':'TP','name':'T\'ai-pei county'},
-    '16' : {'code':'TT','name':'T\'ai-tung'},
-    '17' : {'code':'TY','name':'T\'ao-yuan'},
-    '18' : {'code':'YL','name':'Yun-lin'},
-    '19' : {'code':'CC','name':'Chia-i city'},
-    '20' : {'code':'CL','name':'Chi-lung'},
-    '21' : {'code':'HC','name':'Hsin-chu'},
-    '22' : {'code':'TH','name':'T\'ai-chung'},
-    '23' : {'code':'TN','name':'T\'ai-nan'},
-    '24' : {'code':'KC','name':'Kao-hsiung city'},
-    '25' : {'code':'TC','name':'T\'ai-pei city'}
-  },
-  'TJ':{
-    '1' : {'code':'GB','name':'Gorno-Badakhstan'},
-    '2' : {'code':'KT','name':'Khatlon'},
-    '3' : {'code':'SU','name':'Sughd'}
-  },
-  'TZ':{
-    '1' : {'code':'AR','name':'Arusha'},
-    '2' : {'code':'DS','name':'Dar es Salaam'},
-    '3' : {'code':'DO','name':'Dodoma'},
-    '4' : {'code':'IR','name':'Iringa'},
-    '5' : {'code':'KA','name':'Kagera'},
-    '6' : {'code':'KI','name':'Kigoma'},
-    '7' : {'code':'KJ','name':'Kilimanjaro'},
-    '8' : {'code':'LN','name':'Lindi'},
-    '9' : {'code':'MY','name':'Manyara'},
-    '10' : {'code':'MR','name':'Mara'},
-    '11' : {'code':'MB','name':'Mbeya'},
-    '12' : {'code':'MO','name':'Morogoro'},
-    '13' : {'code':'MT','name':'Mtwara'},
-    '14' : {'code':'MW','name':'Mwanza'},
-    '15' : {'code':'PN','name':'Pemba North'},
-    '16' : {'code':'PS','name':'Pemba South'},
-    '17' : {'code':'PW','name':'Pwani'},
-    '18' : {'code':'RK','name':'Rukwa'},
-    '19' : {'code':'RV','name':'Ruvuma'},
-    '20' : {'code':'SH','name':'Shinyanga'},
-    '21' : {'code':'SI','name':'Singida'},
-    '22' : {'code':'TB','name':'Tabora'},
-    '23' : {'code':'TN','name':'Tanga'},
-    '24' : {'code':'ZC','name':'Zanzibar Central/South'},
-    '25' : {'code':'ZN','name':'Zanzibar North'},
-    '26' : {'code':'ZU','name':'Zanzibar Urban/West'}
-  },
-  'TH':{
-    '1' : {'code':'Amnat Charoen','name':'Amnat Charoen'},
-    '2' : {'code':'Ang Thong','name':'Ang Thong'},
-    '3' : {'code':'Ayutthaya','name':'Ayutthaya'},
-    '4' : {'code':'Bangkok','name':'Bangkok'},
-    '5' : {'code':'Buriram','name':'Buriram'},
-    '6' : {'code':'Chachoengsao','name':'Chachoengsao'},
-    '7' : {'code':'Chai Nat','name':'Chai Nat'},
-    '8' : {'code':'Chaiyaphum','name':'Chaiyaphum'},
-    '9' : {'code':'Chanthaburi','name':'Chanthaburi'},
-    '10' : {'code':'Chiang Mai','name':'Chiang Mai'},
-    '11' : {'code':'Chiang Rai','name':'Chiang Rai'},
-    '12' : {'code':'Chon Buri','name':'Chon Buri'},
-    '13' : {'code':'Chumphon','name':'Chumphon'},
-    '14' : {'code':'Kalasin','name':'Kalasin'},
-    '15' : {'code':'Kamphaeng Phet','name':'Kamphaeng Phet'},
-    '16' : {'code':'Kanchanaburi','name':'Kanchanaburi'},
-    '17' : {'code':'Khon Kaen','name':'Khon Kaen'},
-    '18' : {'code':'Krabi','name':'Krabi'},
-    '19' : {'code':'Lampang','name':'Lampang'},
-    '20' : {'code':'Lamphun','name':'Lamphun'},
-    '21' : {'code':'Loei','name':'Loei'},
-    '22' : {'code':'Lop Buri','name':'Lop Buri'},
-    '23' : {'code':'Mae Hong Son','name':'Mae Hong Son'},
-    '24' : {'code':'Maha Sarakham','name':'Maha Sarakham'},
-    '25' : {'code':'Mukdahan','name':'Mukdahan'},
-    '26' : {'code':'Nakhon Nayok','name':'Nakhon Nayok'},
-    '27' : {'code':'Nakhon Pathom','name':'Nakhon Pathom'},
-    '28' : {'code':'Nakhon Phanom','name':'Nakhon Phanom'},
-    '29' : {'code':'Nakhon Ratchasima','name':'Nakhon Ratchasima'},
-    '30' : {'code':'Nakhon Sawan','name':'Nakhon Sawan'},
-    '31' : {'code':'Nakhon Si Thammarat','name':'Nakhon Si Thammarat'},
-    '32' : {'code':'Nan','name':'Nan'},
-    '33' : {'code':'Narathiwat','name':'Narathiwat'},
-    '34' : {'code':'Nong Bua Lamphu','name':'Nong Bua Lamphu'},
-    '35' : {'code':'Nong Khai','name':'Nong Khai'},
-    '36' : {'code':'Nonthaburi','name':'Nonthaburi'},
-    '37' : {'code':'Pathum Thani','name':'Pathum Thani'},
-    '38' : {'code':'Pattani','name':'Pattani'},
-    '39' : {'code':'Phangnga','name':'Phangnga'},
-    '40' : {'code':'Phatthalung','name':'Phatthalung'},
-    '41' : {'code':'Phayao','name':'Phayao'},
-    '42' : {'code':'Phetchabun','name':'Phetchabun'},
-    '43' : {'code':'Phetchaburi','name':'Phetchaburi'},
-    '44' : {'code':'Phichit','name':'Phichit'},
-    '45' : {'code':'Phitsanulok','name':'Phitsanulok'},
-    '46' : {'code':'Phrae','name':'Phrae'},
-    '47' : {'code':'Phuket','name':'Phuket'},
-    '48' : {'code':'Prachin Buri','name':'Prachin Buri'},
-    '49' : {'code':'Prachuap Khiri Khan','name':'Prachuap Khiri Khan'},
-    '50' : {'code':'Ranong','name':'Ranong'},
-    '51' : {'code':'Ratchaburi','name':'Ratchaburi'},
-    '52' : {'code':'Rayong','name':'Rayong'},
-    '53' : {'code':'Roi Et','name':'Roi Et'},
-    '54' : {'code':'Sa Kaeo','name':'Sa Kaeo'},
-    '55' : {'code':'Sakon Nakhon','name':'Sakon Nakhon'},
-    '56' : {'code':'Samut Prakan','name':'Samut Prakan'},
-    '57' : {'code':'Samut Sakhon','name':'Samut Sakhon'},
-    '58' : {'code':'Samut Songkhram','name':'Samut Songkhram'},
-    '59' : {'code':'Sara Buri','name':'Sara Buri'},
-    '60' : {'code':'Satun','name':'Satun'},
-    '61' : {'code':'Sing Buri','name':'Sing Buri'},
-    '62' : {'code':'Sisaket','name':'Sisaket'},
-    '63' : {'code':'Songkhla','name':'Songkhla'},
-    '64' : {'code':'Sukhothai','name':'Sukhothai'},
-    '65' : {'code':'Suphan Buri','name':'Suphan Buri'},
-    '66' : {'code':'Surat Thani','name':'Surat Thani'},
-    '67' : {'code':'Surin','name':'Surin'},
-    '68' : {'code':'Tak','name':'Tak'},
-    '69' : {'code':'Trang','name':'Trang'},
-    '70' : {'code':'Trat','name':'Trat'},
-    '71' : {'code':'Ubon Ratchathani','name':'Ubon Ratchathani'},
-    '72' : {'code':'Udon Thani','name':'Udon Thani'},
-    '73' : {'code':'Uthai Thani','name':'Uthai Thani'},
-    '74' : {'code':'Uttaradit','name':'Uttaradit'},
-    '75' : {'code':'Yala','name':'Yala'},
-    '76' : {'code':'Yasothon','name':'Yasothon'}
-  },
-  'TG':{
-    '1' : {'code':'K','name':'Kara'},
-    '2' : {'code':'P','name':'Plateaux'},
-    '3' : {'code':'S','name':'Savanes'},
-    '4' : {'code':'C','name':'Centrale'},
-    '5' : {'code':'M','name':'Maritime'}
-  },
-  'TK':{
-    '1' : {'code':'A','name':'Atafu'},
-    '2' : {'code':'F','name':'Fakaofo'},
-    '3' : {'code':'N','name':'Nukunonu'}
-  },
-  'TO':{
-    '1' : {'code':'H','name':'Ha\'apai'},
-    '2' : {'code':'T','name':'Tongatapu'},
-    '3' : {'code':'V','name':'Vava\'u'}
-  },
-  'TT':{
-    '1' : {'code':'CT','name':'Couva/Tabaquite/Talparo'},
-    '2' : {'code':'DM','name':'Diego Martin'},
-    '3' : {'code':'MR','name':'Mayaro/Rio Claro'},
-    '4' : {'code':'PD','name':'Penal/Debe'},
-    '5' : {'code':'PT','name':'Princes Town'},
-    '6' : {'code':'SG','name':'Sangre Grande'},
-    '7' : {'code':'SL','name':'San Juan/Laventille'},
-    '8' : {'code':'SI','name':'Siparia'},
-    '9' : {'code':'TP','name':'Tunapuna/Piarco'},
-    '10' : {'code':'PS','name':'Port of Spain'},
-    '11' : {'code':'SF','name':'San Fernando'},
-    '12' : {'code':'AR','name':'Arima'},
-    '13' : {'code':'PF','name':'Point Fortin'},
-    '14' : {'code':'CH','name':'Chaguanas'},
-    '15' : {'code':'TO','name':'Tobago'}
-  },
-  'TN':{
-    '1' : {'code':'AR','name':'Ariana'},
-    '2' : {'code':'BJ','name':'Beja'},
-    '3' : {'code':'BA','name':'Ben Arous'},
-    '4' : {'code':'BI','name':'Bizerte'},
-    '5' : {'code':'GB','name':'Gabes'},
-    '6' : {'code':'GF','name':'Gafsa'},
-    '7' : {'code':'JE','name':'Jendouba'},
-    '8' : {'code':'KR','name':'Kairouan'},
-    '9' : {'code':'KS','name':'Kasserine'},
-    '10' : {'code':'KB','name':'Kebili'},
-    '11' : {'code':'KF','name':'Kef'},
-    '12' : {'code':'MH','name':'Mahdia'},
-    '13' : {'code':'MN','name':'Manouba'},
-    '14' : {'code':'ME','name':'Medenine'},
-    '15' : {'code':'MO','name':'Monastir'},
-    '16' : {'code':'NA','name':'Nabeul'},
-    '17' : {'code':'SF','name':'Sfax'},
-    '18' : {'code':'SD','name':'Sidi'},
-    '19' : {'code':'SL','name':'Siliana'},
-    '20' : {'code':'SO','name':'Sousse'},
-    '21' : {'code':'TA','name':'Tataouine'},
-    '22' : {'code':'TO','name':'Tozeur'},
-    '23' : {'code':'TU','name':'Tunis'},
-    '24' : {'code':'ZA','name':'Zaghouan'}
-  },
-  'TR':{
-    '1' : {'code':'ADA','name':'Adana'},
-    '2' : {'code':'ADI','name':'Adiyaman'},
-    '3' : {'code':'AFY','name':'Afyonkarahisar'},
-    '4' : {'code':'AGR','name':'Agri'},
-    '5' : {'code':'AKS','name':'Aksaray'},
-    '6' : {'code':'AMA','name':'Amasya'},
-    '7' : {'code':'ANK','name':'Ankara'},
-    '8' : {'code':'ANT','name':'Antalya'},
-    '9' : {'code':'ARD','name':'Ardahan'},
-    '10' : {'code':'ART','name':'Artvin'},
-    '11' : {'code':'AYI','name':'Aydin'},
-    '12' : {'code':'BAL','name':'Balikesir'},
-    '13' : {'code':'BAR','name':'Bartin'},
-    '14' : {'code':'BAT','name':'Batman'},
-    '15' : {'code':'BAY','name':'Bayburt'},
-    '16' : {'code':'BIL','name':'Bilecik'},
-    '17' : {'code':'BIN','name':'Bingol'},
-    '18' : {'code':'BIT','name':'Bitlis'},
-    '19' : {'code':'BOL','name':'Bolu'},
-    '20' : {'code':'BRD','name':'Burdur'},
-    '21' : {'code':'BRS','name':'Bursa'},
-    '22' : {'code':'CKL','name':'Canakkale'},
-    '23' : {'code':'CKR','name':'Cankiri'},
-    '24' : {'code':'COR','name':'Corum'},
-    '25' : {'code':'DEN','name':'Denizli'},
-    '26' : {'code':'DIY','name':'Diyarbakir'},
-    '27' : {'code':'DUZ','name':'Duzce'},
-    '28' : {'code':'EDI','name':'Edirne'},
-    '29' : {'code':'ELA','name':'Elazig'},
-    '30' : {'code':'EZC','name':'Erzincan'},
-    '31' : {'code':'EZR','name':'Erzurum'},
-    '32' : {'code':'ESK','name':'Eskisehir'},
-    '33' : {'code':'GAZ','name':'Gaziantep'},
-    '34' : {'code':'GIR','name':'Giresun'},
-    '35' : {'code':'GMS','name':'Gumushane'},
-    '36' : {'code':'HKR','name':'Hakkari'},
-    '37' : {'code':'HTY','name':'Hatay'},
-    '38' : {'code':'IGD','name':'Igdir'},
-    '39' : {'code':'ISP','name':'Isparta'},
-    '40' : {'code':'IST','name':'Istanbul'},
-    '41' : {'code':'IZM','name':'Izmir'},
-    '42' : {'code':'KAH','name':'Kahramanmaras'},
-    '43' : {'code':'KRB','name':'Karabuk'},
-    '44' : {'code':'KRM','name':'Karaman'},
-    '45' : {'code':'KRS','name':'Kars'},
-    '46' : {'code':'KAS','name':'Kastamonu'},
-    '47' : {'code':'KAY','name':'Kayseri'},
-    '48' : {'code':'KLS','name':'Kilis'},
-    '49' : {'code':'KRK','name':'Kirikkale'},
-    '50' : {'code':'KLR','name':'Kirklareli'},
-    '51' : {'code':'KRH','name':'Kirsehir'},
-    '52' : {'code':'KOC','name':'Kocaeli'},
-    '53' : {'code':'KON','name':'Konya'},
-    '54' : {'code':'KUT','name':'Kutahya'},
-    '55' : {'code':'MAL','name':'Malatya'},
-    '56' : {'code':'MAN','name':'Manisa'},
-    '57' : {'code':'MAR','name':'Mardin'},
-    '58' : {'code':'MER','name':'Mersin'},
-    '59' : {'code':'MUG','name':'Mugla'},
-    '60' : {'code':'MUS','name':'Mus'},
-    '61' : {'code':'NEV','name':'Nevsehir'},
-    '62' : {'code':'NIG','name':'Nigde'},
-    '63' : {'code':'ORD','name':'Ordu'},
-    '64' : {'code':'OSM','name':'Osmaniye'},
-    '65' : {'code':'RIZ','name':'Rize'},
-    '66' : {'code':'SAK','name':'Sakarya'},
-    '67' : {'code':'SAM','name':'Samsun'},
-    '68' : {'code':'SAN','name':'Sanliurfa'},
-    '69' : {'code':'SII','name':'Siirt'},
-    '70' : {'code':'SIN','name':'Sinop'},
-    '71' : {'code':'SIR','name':'Sirnak'},
-    '72' : {'code':'SIV','name':'Sivas'},
-    '73' : {'code':'TEL','name':'Tekirdag'},
-    '74' : {'code':'TOK','name':'Tokat'},
-    '75' : {'code':'TRA','name':'Trabzon'},
-    '76' : {'code':'TUN','name':'Tunceli'},
-    '77' : {'code':'USK','name':'Usak'},
-    '78' : {'code':'VAN','name':'Van'},
-    '79' : {'code':'YAL','name':'Yalova'},
-    '80' : {'code':'YOZ','name':'Yozgat'},
-    '81' : {'code':'ZON','name':'Zonguldak'}
-  },
-  'TM':{
-    '1' : {'code':'A','name':'Ahal Welayaty'},
-    '2' : {'code':'B','name':'Balkan Welayaty'},
-    '3' : {'code':'D','name':'Dashhowuz Welayaty'},
-    '4' : {'code':'L','name':'Lebap Welayaty'},
-    '5' : {'code':'M','name':'Mary Welayaty'}
-  },
-  'TC':{
-    '1' : {'code':'AC','name':'Ambergris Cays'},
-    '2' : {'code':'DC','name':'Dellis Cay'},
-    '3' : {'code':'FC','name':'French Cay'},
-    '4' : {'code':'LW','name':'Little Water Cay'},
-    '5' : {'code':'RC','name':'Parrot Cay'},
-    '6' : {'code':'PN','name':'Pine Cay'},
-    '7' : {'code':'SL','name':'Salt Cay'},
-    '8' : {'code':'GT','name':'Grand Turk'},
-    '9' : {'code':'SC','name':'South Caicos'},
-    '10' : {'code':'EC','name':'East Caicos'},
-    '11' : {'code':'MC','name':'Middle Caicos'},
-    '12' : {'code':'NC','name':'North Caicos'},
-    '13' : {'code':'PR','name':'Providenciales'},
-    '14' : {'code':'WC','name':'West Caicos'}
-  },
-  'TV':{
-    '1' : {'code':'NMG','name':'Nanumanga'},
-    '2' : {'code':'NLK','name':'Niulakita'},
-    '3' : {'code':'NTO','name':'Niutao'},
-    '4' : {'code':'FUN','name':'Funafuti'},
-    '5' : {'code':'NME','name':'Nanumea'},
-    '6' : {'code':'NUI','name':'Nui'},
-    '7' : {'code':'NFT','name':'Nukufetau'},
-    '8' : {'code':'NLL','name':'Nukulaelae'},
-    '9' : {'code':'VAI','name':'Vaitupu'}
-  },
-  'UG':{
-    '1' : {'code':'KAL','name':'Kalangala'},
-    '2' : {'code':'KMP','name':'Kampala'},
-    '3' : {'code':'KAY','name':'Kayunga'},
-    '4' : {'code':'KIB','name':'Kiboga'},
-    '5' : {'code':'LUW','name':'Luwero'},
-    '6' : {'code':'MAS','name':'Masaka'},
-    '7' : {'code':'MPI','name':'Mpigi'},
-    '8' : {'code':'MUB','name':'Mubende'},
-    '9' : {'code':'MUK','name':'Mukono'},
-    '10' : {'code':'NKS','name':'Nakasongola'},
-    '11' : {'code':'RAK','name':'Rakai'},
-    '12' : {'code':'SEM','name':'Sembabule'},
-    '13' : {'code':'WAK','name':'Wakiso'},
-    '14' : {'code':'BUG','name':'Bugiri'},
-    '15' : {'code':'BUS','name':'Busia'},
-    '16' : {'code':'IGA','name':'Iganga'},
-    '17' : {'code':'JIN','name':'Jinja'},
-    '18' : {'code':'KAB','name':'Kaberamaido'},
-    '19' : {'code':'KML','name':'Kamuli'},
-    '20' : {'code':'KPC','name':'Kapchorwa'},
-    '21' : {'code':'KTK','name':'Katakwi'},
-    '22' : {'code':'KUM','name':'Kumi'},
-    '23' : {'code':'MAY','name':'Mayuge'},
-    '24' : {'code':'MBA','name':'Mbale'},
-    '25' : {'code':'PAL','name':'Pallisa'},
-    '26' : {'code':'SIR','name':'Sironko'},
-    '27' : {'code':'SOR','name':'Soroti'},
-    '28' : {'code':'TOR','name':'Tororo'},
-    '29' : {'code':'ADJ','name':'Adjumani'},
-    '30' : {'code':'APC','name':'Apac'},
-    '31' : {'code':'ARU','name':'Arua'},
-    '32' : {'code':'GUL','name':'Gulu'},
-    '33' : {'code':'KIT','name':'Kitgum'},
-    '34' : {'code':'KOT','name':'Kotido'},
-    '35' : {'code':'LIR','name':'Lira'},
-    '36' : {'code':'MRT','name':'Moroto'},
-    '37' : {'code':'MOY','name':'Moyo'},
-    '38' : {'code':'NAK','name':'Nakapiripirit'},
-    '39' : {'code':'NEB','name':'Nebbi'},
-    '40' : {'code':'PAD','name':'Pader'},
-    '41' : {'code':'YUM','name':'Yumbe'},
-    '42' : {'code':'BUN','name':'Bundibugyo'},
-    '43' : {'code':'BSH','name':'Bushenyi'},
-    '44' : {'code':'HOI','name':'Hoima'},
-    '45' : {'code':'KBL','name':'Kabale'},
-    '46' : {'code':'KAR','name':'Kabarole'},
-    '47' : {'code':'KAM','name':'Kamwenge'},
-    '48' : {'code':'KAN','name':'Kanungu'},
-    '49' : {'code':'KAS','name':'Kasese'},
-    '50' : {'code':'KBA','name':'Kibaale'},
-    '51' : {'code':'KIS','name':'Kisoro'},
-    '52' : {'code':'KYE','name':'Kyenjojo'},
-    '53' : {'code':'MSN','name':'Masindi'},
-    '54' : {'code':'MBR','name':'Mbarara'},
-    '55' : {'code':'NTU','name':'Ntungamo'},
-    '56' : {'code':'RUK','name':'Rukungiri'}
-  },
-  'UA':{
-    '1' : {'code':'CK','name':'Cherkasy'},
-    '2' : {'code':'CH','name':'Chernihiv'},
-    '3' : {'code':'CV','name':'Chernivtsi'},
-    '4' : {'code':'CR','name':'Crimea'},
-    '5' : {'code':'DN','name':'Dnipropetrovs\'k'},
-    '6' : {'code':'DO','name':'Donets\'k'},
-    '7' : {'code':'IV','name':'Ivano-Frankivs\'k'},
-    '8' : {'code':'KL','name':'Kharkiv Kherson'},
-    '9' : {'code':'KM','name':'Khmel\'nyts\'kyy'},
-    '10' : {'code':'KR','name':'Kirovohrad'},
-    '11' : {'code':'KV','name':'Kiev'},
-    '12' : {'code':'KY','name':'Kyyiv'},
-    '13' : {'code':'LU','name':'Luhans\'k'},
-    '14' : {'code':'LV','name':'L\'viv'},
-    '15' : {'code':'MY','name':'Mykolayiv'},
-    '16' : {'code':'OD','name':'Odesa'},
-    '17' : {'code':'PO','name':'Poltava'},
-    '18' : {'code':'RI','name':'Rivne'},
-    '19' : {'code':'SE','name':'Sevastopol'},
-    '20' : {'code':'SU','name':'Sumy'},
-    '21' : {'code':'TE','name':'Ternopil\''},
-    '22' : {'code':'VI','name':'Vinnytsya'},
-    '23' : {'code':'VO','name':'Volyn\''},
-    '24' : {'code':'ZK','name':'Zakarpattya'},
-    '25' : {'code':'ZA','name':'Zaporizhzhya'},
-    '26' : {'code':'ZH','name':'Zhytomyr'}
-  },
-  'AE':{
-    '1' : {'code':'AZ','name':'Abu Zaby'},
-    '2' : {'code':'AJ','name':'\'Ajman'},
-    '3' : {'code':'FU','name':'Al Fujayrah'},
-    '4' : {'code':'SH','name':'Ash Shariqah'},
-    '5' : {'code':'DU','name':'Dubayy'},
-    '6' : {'code':'RK','name':'R\'as al Khaymah'},
-    '7' : {'code':'UQ','name':'Umm al Qaywayn'}
-  },
-  'GB':{
-    '1' : {'code':'ABN','name':'Aberdeen'},
-    '2' : {'code':'ABNS','name':'Aberdeenshire'},
-    '3' : {'code':'ANG','name':'Anglesey'},
-    '4' : {'code':'AGS','name':'Angus'},
-    '5' : {'code':'ARY','name':'Argyll and Bute'},
-    '6' : {'code':'BEDS','name':'Bedfordshire'},
-    '7' : {'code':'BERKS','name':'Berkshire'},
-    '8' : {'code':'BLA','name':'Blaenau Gwent'},
-    '9' : {'code':'BRI','name':'Bridgend'},
-    '10' : {'code':'BSTL','name':'Bristol'},
-    '11' : {'code':'BUCKS','name':'Buckinghamshire'},
-    '12' : {'code':'CAE','name':'Caerphilly'},
-    '13' : {'code':'CAMBS','name':'Cambridgeshire'},
-    '14' : {'code':'CDF','name':'Cardiff'},
-    '15' : {'code':'CARM','name':'Carmarthenshire'},
-    '16' : {'code':'CDGN','name':'Ceredigion'},
-    '17' : {'code':'CHES','name':'Cheshire'},
-    '18' : {'code':'CLACK','name':'Clackmannanshire'},
-    '19' : {'code':'CON','name':'Conwy'},
-    '20' : {'code':'CORN','name':'Cornwall'},
-    '21' : {'code':'DNBG','name':'Denbighshire'},
-    '22' : {'code':'DERBY','name':'Derbyshire'},
-    '23' : {'code':'DVN','name':'Devon'},
-    '24' : {'code':'DOR','name':'Dorset'},
-    '25' : {'code':'DGL','name':'Dumfries and Galloway'},
-    '26' : {'code':'DUND','name':'Dundee'},
-    '27' : {'code':'DHM','name':'Durham'},
-    '28' : {'code':'ARYE','name':'East Ayrshire'},
-    '29' : {'code':'DUNBE','name':'East Dunbartonshire'},
-    '30' : {'code':'LOTE','name':'East Lothian'},
-    '31' : {'code':'RENE','name':'East Renfrewshire'},
-    '32' : {'code':'ERYS','name':'East Riding of Yorkshire'},
-    '33' : {'code':'SXE','name':'East Sussex'},
-    '34' : {'code':'EDIN','name':'Edinburgh'},
-    '35' : {'code':'ESX','name':'Essex'},
-    '36' : {'code':'FALK','name':'Falkirk'},
-    '37' : {'code':'FFE','name':'Fife'},
-    '38' : {'code':'FLINT','name':'Flintshire'},
-    '39' : {'code':'GLAS','name':'Glasgow'},
-    '40' : {'code':'GLOS','name':'Gloucestershire'},
-    '41' : {'code':'LDN','name':'Greater London'},
-    '42' : {'code':'MCH','name':'Greater Manchester'},
-    '43' : {'code':'GDD','name':'Gwynedd'},
-    '44' : {'code':'HANTS','name':'Hampshire'},
-    '45' : {'code':'HWR','name':'Herefordshire'},
-    '46' : {'code':'HERTS','name':'Hertfordshire'},
-    '47' : {'code':'HLD','name':'Highlands'},
-    '48' : {'code':'IVER','name':'Inverclyde'},
-    '49' : {'code':'IOW','name':'Isle of Wight'},
-    '50' : {'code':'KNT','name':'Kent'},
-    '51' : {'code':'LANCS','name':'Lancashire'},
-    '52' : {'code':'LEICS','name':'Leicestershire'},
-    '53' : {'code':'LINCS','name':'Lincolnshire'},
-    '54' : {'code':'MSY','name':'Merseyside'},
-    '55' : {'code':'MERT','name':'Merthyr Tydfil'},
-    '56' : {'code':'MLOT','name':'Midlothian'},
-    '57' : {'code':'MMOUTH','name':'Monmouthshire'},
-    '58' : {'code':'MORAY','name':'Moray'},
-    '59' : {'code':'NPRTAL','name':'Neath Port Talbot'},
-    '60' : {'code':'NEWPT','name':'Newport'},
-    '61' : {'code':'NOR','name':'Norfolk'},
-    '62' : {'code':'ARYN','name':'North Ayrshire'},
-    '63' : {'code':'LANN','name':'North Lanarkshire'},
-    '64' : {'code':'YSN','name':'North Yorkshire'},
-    '65' : {'code':'NHM','name':'Northamptonshire'},
-    '66' : {'code':'NLD','name':'Northumberland'},
-    '67' : {'code':'NOT','name':'Nottinghamshire'},
-    '68' : {'code':'ORK','name':'Orkney Islands'},
-    '69' : {'code':'OFE','name':'Oxfordshire'},
-    '70' : {'code':'PEM','name':'Pembrokeshire'},
-    '71' : {'code':'PERTH','name':'Perth and Kinross'},
-    '72' : {'code':'PWS','name':'Powys'},
-    '73' : {'code':'REN','name':'Renfrewshire'},
-    '74' : {'code':'RHON','name':'Rhondda Cynon Taff'},
-    '75' : {'code':'RUT','name':'Rutland'},
-    '76' : {'code':'BOR','name':'Scottish Borders'},
-    '77' : {'code':'SHET','name':'Shetland Islands'},
-    '78' : {'code':'SPE','name':'Shropshire'},
-    '79' : {'code':'SOM','name':'Somerset'},
-    '80' : {'code':'ARYS','name':'South Ayrshire'},
-    '81' : {'code':'LANS','name':'South Lanarkshire'},
-    '82' : {'code':'YSS','name':'South Yorkshire'},
-    '83' : {'code':'SFD','name':'Staffordshire'},
-    '84' : {'code':'STIR','name':'Stirling'},
-    '85' : {'code':'SFK','name':'Suffolk'},
-    '86' : {'code':'SRY','name':'Surrey'},
-    '87' : {'code':'SWAN','name':'Swansea'},
-    '88' : {'code':'TORF','name':'Torfaen'},
-    '89' : {'code':'TWR','name':'Tyne and Wear'},
-    '90' : {'code':'VGLAM','name':'Vale of Glamorgan'},
-    '91' : {'code':'WARKS','name':'Warwickshire'},
-    '92' : {'code':'WDUN','name':'West Dunbartonshire'},
-    '93' : {'code':'WLOT','name':'West Lothian'},
-    '94' : {'code':'WMD','name':'West Midlands'},
-    '95' : {'code':'SXW','name':'West Sussex'},
-    '96' : {'code':'YSW','name':'West Yorkshire'},
-    '97' : {'code':'WIL','name':'Western Isles'},
-    '98' : {'code':'WLT','name':'Wiltshire'},
-    '99' : {'code':'WORCS','name':'Worcestershire'},
-    '100' : {'code':'WRX','name':'Wrexham'}
-  },
-  'US':{
-    '1' : {'code':'AL','name':'Alabama'},
-    '2' : {'code':'AK','name':'Alaska'},
-    '3' : {'code':'AS','name':'American Samoa'},
-    '4' : {'code':'AZ','name':'Arizona'},
-    '5' : {'code':'AR','name':'Arkansas'},
-    '6' : {'code':'AF','name':'Armed Forces Africa'},
-    '7' : {'code':'AA','name':'Armed Forces Americas'},
-    '8' : {'code':'AC','name':'Armed Forces Canada'},
-    '9' : {'code':'AE','name':'Armed Forces Europe'},
-    '10' : {'code':'AM','name':'Armed Forces Middle East'},
-    '11' : {'code':'AP','name':'Armed Forces Pacific'},
-    '12' : {'code':'CA','name':'California'},
-    '13' : {'code':'CO','name':'Colorado'},
-    '14' : {'code':'CT','name':'Connecticut'},
-    '15' : {'code':'DE','name':'Delaware'},
-    '16' : {'code':'DC','name':'District of Columbia'},
-    '17' : {'code':'FM','name':'Federated States Of Micronesia'},
-    '18' : {'code':'FL','name':'Florida'},
-    '19' : {'code':'GA','name':'Georgia'},
-    '20' : {'code':'GU','name':'Guam'},
-    '21' : {'code':'HI','name':'Hawaii'},
-    '22' : {'code':'ID','name':'Idaho'},
-    '23' : {'code':'IL','name':'Illinois'},
-    '24' : {'code':'IN','name':'Indiana'},
-    '25' : {'code':'IA','name':'Iowa'},
-    '26' : {'code':'KS','name':'Kansas'},
-    '27' : {'code':'KY','name':'Kentucky'},
-    '28' : {'code':'LA','name':'Louisiana'},
-    '29' : {'code':'ME','name':'Maine'},
-    '30' : {'code':'MH','name':'Marshall Islands'},
-    '31' : {'code':'MD','name':'Maryland'},
-    '32' : {'code':'MA','name':'Massachusetts'},
-    '33' : {'code':'MI','name':'Michigan'},
-    '34' : {'code':'MN','name':'Minnesota'},
-    '35' : {'code':'MS','name':'Mississippi'},
-    '36' : {'code':'MO','name':'Missouri'},
-    '37' : {'code':'MT','name':'Montana'},
-    '38' : {'code':'NE','name':'Nebraska'},
-    '39' : {'code':'NV','name':'Nevada'},
-    '40' : {'code':'NH','name':'New Hampshire'},
-    '41' : {'code':'NJ','name':'New Jersey'},
-    '42' : {'code':'NM','name':'New Mexico'},
-    '43' : {'code':'NY','name':'New York'},
-    '44' : {'code':'NC','name':'North Carolina'},
-    '45' : {'code':'ND','name':'North Dakota'},
-    '46' : {'code':'MP','name':'Northern Mariana Islands'},
-    '47' : {'code':'OH','name':'Ohio'},
-    '48' : {'code':'OK','name':'Oklahoma'},
-    '49' : {'code':'OR','name':'Oregon'},
-    '50' : {'code':'PW','name':'Palau'},
-    '51' : {'code':'PA','name':'Pennsylvania'},
-    '52' : {'code':'PR','name':'Puerto Rico'},
-    '53' : {'code':'RI','name':'Rhode Island'},
-    '54' : {'code':'SC','name':'South Carolina'},
-    '55' : {'code':'SD','name':'South Dakota'},
-    '56' : {'code':'TN','name':'Tennessee'},
-    '57' : {'code':'TX','name':'Texas'},
-    '58' : {'code':'UT','name':'Utah'},
-    '59' : {'code':'VT','name':'Vermont'},
-    '60' : {'code':'VI','name':'Virgin Islands'},
-    '61' : {'code':'VA','name':'Virginia'},
-    '62' : {'code':'WA','name':'Washington'},
-    '63' : {'code':'WV','name':'West Virginia'},
-    '64' : {'code':'WI','name':'Wisconsin'},
-    '65' : {'code':'WY','name':'Wyoming'}
-  },
-  'UM':{
-    '1' : {'code':'BI','name':'Baker Island'},
-    '2' : {'code':'HI','name':'Howland Island'},
-    '3' : {'code':'JI','name':'Jarvis Island'},
-    '4' : {'code':'JA','name':'Johnston Atoll'},
-    '5' : {'code':'KR','name':'Kingman Reef'},
-    '6' : {'code':'MA','name':'Midway Atoll'},
-    '7' : {'code':'NI','name':'Navassa Island'},
-    '8' : {'code':'PA','name':'Palmyra Atoll'},
-    '9' : {'code':'WI','name':'Wake Island'}
-  },
-  'UY':{
-    '1' : {'code':'AR','name':'Artigas'},
-    '2' : {'code':'CA','name':'Canelones'},
-    '3' : {'code':'CL','name':'Cerro Largo'},
-    '4' : {'code':'CO','name':'Colonia'},
-    '5' : {'code':'DU','name':'Durazno'},
-    '6' : {'code':'FS','name':'Flores'},
-    '7' : {'code':'FA','name':'Florida'},
-    '8' : {'code':'LA','name':'Lavalleja'},
-    '9' : {'code':'MA','name':'Maldonado'},
-    '10' : {'code':'MO','name':'Montevideo'},
-    '11' : {'code':'PA','name':'Paysandu'},
-    '12' : {'code':'RN','name':'Rio Negro'},
-    '13' : {'code':'RV','name':'Rivera'},
-    '14' : {'code':'RO','name':'Rocha'},
-    '15' : {'code':'SL','name':'Salto'},
-    '16' : {'code':'SJ','name':'San Jose'},
-    '17' : {'code':'SO','name':'Soriano'},
-    '18' : {'code':'TA','name':'Tacuarembo'},
-    '19' : {'code':'TT','name':'Treinta y Tres'}
-  },
-  'UZ':{
-    '1' : {'code':'AN','name':'Andijon'},
-    '2' : {'code':'BU','name':'Buxoro'},
-    '3' : {'code':'FA','name':'Farg\'ona'},
-    '4' : {'code':'JI','name':'Jizzax'},
-    '5' : {'code':'NG','name':'Namangan'},
-    '6' : {'code':'NW','name':'Navoiy'},
-    '7' : {'code':'QA','name':'Qashqadaryo'},
-    '8' : {'code':'QR','name':'Qoraqalpog\'iston Republikasi'},
-    '9' : {'code':'SA','name':'Samarqand'},
-    '10' : {'code':'SI','name':'Sirdaryo'},
-    '11' : {'code':'SU','name':'Surxondaryo'},
-    '12' : {'code':'TK','name':'Toshkent City'},
-    '13' : {'code':'TO','name':'Toshkent Region'},
-    '14' : {'code':'XO','name':'Xorazm'}
-  },
-  'VU':{
-    '1' : {'code':'MA','name':'Malampa'},
-    '2' : {'code':'PE','name':'Penama'},
-    '3' : {'code':'SA','name':'Sanma'},
-    '4' : {'code':'SH','name':'Shefa'},
-    '5' : {'code':'TA','name':'Tafea'},
-    '6' : {'code':'TO','name':'Torba'}
-  },
-  'VE':{
-    '1' : {'code':'AM','name':'Amazonas'},
-    '2' : {'code':'AN','name':'Anzoategui'},
-    '3' : {'code':'AP','name':'Apure'},
-    '4' : {'code':'AR','name':'Aragua'},
-    '5' : {'code':'BA','name':'Barinas'},
-    '6' : {'code':'BO','name':'Bolivar'},
-    '7' : {'code':'CA','name':'Carabobo'},
-    '8' : {'code':'CO','name':'Cojedes'},
-    '9' : {'code':'DA','name':'Delta Amacuro'},
-    '10' : {'code':'DF','name':'Dependencias Federales'},
-    '11' : {'code':'DI','name':'Distrito Federal'},
-    '12' : {'code':'FA','name':'Falcon'},
-    '13' : {'code':'GU','name':'Guarico'},
-    '14' : {'code':'LA','name':'Lara'},
-    '15' : {'code':'ME','name':'Merida'},
-    '16' : {'code':'MI','name':'Miranda'},
-    '17' : {'code':'MO','name':'Monagas'},
-    '18' : {'code':'NE','name':'Nueva Esparta'},
-    '19' : {'code':'PO','name':'Portuguesa'},
-    '20' : {'code':'SU','name':'Sucre'},
-    '21' : {'code':'TA','name':'Tachira'},
-    '22' : {'code':'TR','name':'Trujillo'},
-    '23' : {'code':'VA','name':'Vargas'},
-    '24' : {'code':'YA','name':'Yaracuy'},
-    '25' : {'code':'ZU','name':'Zulia'}
-  },
-  'VN':{
-    '1' : {'code':'AG','name':'An Giang'},
-    '2' : {'code':'BG','name':'Bac Giang'},
-    '3' : {'code':'BK','name':'Bac Kan'},
-    '4' : {'code':'BL','name':'Bac Lieu'},
-    '5' : {'code':'BC','name':'Bac Ninh'},
-    '6' : {'code':'BR','name':'Ba Ria-Vung Tau'},
-    '7' : {'code':'BN','name':'Ben Tre'},
-    '8' : {'code':'BH','name':'Binh Dinh'},
-    '9' : {'code':'BU','name':'Binh Duong'},
-    '10' : {'code':'BP','name':'Binh Phuoc'},
-    '11' : {'code':'BT','name':'Binh Thuan'},
-    '12' : {'code':'CM','name':'Ca Mau'},
-    '13' : {'code':'CT','name':'Can Tho'},
-    '14' : {'code':'CB','name':'Cao Bang'},
-    '15' : {'code':'DL','name':'Dak Lak'},
-    '16' : {'code':'DG','name':'Dak Nong'},
-    '17' : {'code':'DN','name':'Da Nang'},
-    '18' : {'code':'DB','name':'Dien Bien'},
-    '19' : {'code':'DI','name':'Dong Nai'},
-    '20' : {'code':'DT','name':'Dong Thap'},
-    '21' : {'code':'GL','name':'Gia Lai'},
-    '22' : {'code':'HG','name':'Ha Giang'},
-    '23' : {'code':'HD','name':'Hai Duong'},
-    '24' : {'code':'HP','name':'Hai Phong'},
-    '25' : {'code':'HM','name':'Ha Nam'},
-    '26' : {'code':'HI','name':'Ha Noi'},
-    '27' : {'code':'HT','name':'Ha Tay'},
-    '28' : {'code':'HH','name':'Ha Tinh'},
-    '29' : {'code':'HB','name':'Hoa Binh'},
-    '30' : {'code':'HC','name':'Ho Chin Minh'},
-    '31' : {'code':'HU','name':'Hau Giang'},
-    '32' : {'code':'HY','name':'Hung Yen'}
-  },
-  'VI':{
-    '1' : {'code':'C','name':'Saint Croix'},
-    '2' : {'code':'J','name':'Saint John'},
-    '3' : {'code':'T','name':'Saint Thomas'}
-  },
-  'WF':{
-    '1' : {'code':'A','name':'Alo'},
-    '2' : {'code':'S','name':'Sigave'},
-    '3' : {'code':'W','name':'Wallis'}
-  },
-  'YE':{
-    '1' : {'code':'AB','name':'Abyan'},
-    '2' : {'code':'AD','name':'Adan'},
-    '3' : {'code':'AM','name':'Amran'},
-    '4' : {'code':'BA','name':'Al Bayda'},
-    '5' : {'code':'DA','name':'Ad Dali'},
-    '6' : {'code':'DH','name':'Dhamar'},
-    '7' : {'code':'HD','name':'Hadramawt'},
-    '8' : {'code':'HJ','name':'Hajjah'},
-    '9' : {'code':'HU','name':'Al Hudaydah'},
-    '10' : {'code':'IB','name':'Ibb'},
-    '11' : {'code':'JA','name':'Al Jawf'},
-    '12' : {'code':'LA','name':'Lahij'},
-    '13' : {'code':'MA','name':'Ma\'rib'},
-    '14' : {'code':'MR','name':'Al Mahrah'},
-    '15' : {'code':'MW','name':'Al Mahwit'},
-    '16' : {'code':'SD','name':'Sa\'dah'},
-    '17' : {'code':'SN','name':'San\'a'},
-    '18' : {'code':'SH','name':'Shabwah'},
-    '19' : {'code':'TA','name':'Ta\'izz'}
-  },
-  'YU':{
-    '1' : {'code':'KOS','name':'Kosovo'},
-    '2' : {'code':'MON','name':'Montenegro'},
-    '3' : {'code':'SER','name':'Serbia'},
-    '4' : {'code':'VOJ','name':'Vojvodina'}
-  },
-  'ZR':{
-    '1' : {'code':'BC','name':'Bas-Congo'},
-    '2' : {'code':'BN','name':'Bandundu'},
-    '3' : {'code':'EQ','name':'Equateur'},
-    '4' : {'code':'KA','name':'Katanga'},
-    '5' : {'code':'KE','name':'Kasai-Oriental'},
-    '6' : {'code':'KN','name':'Kinshasa'},
-    '7' : {'code':'KW','name':'Kasai-Occidental'},
-    '8' : {'code':'MA','name':'Maniema'},
-    '9' : {'code':'NK','name':'Nord-Kivu'},
-    '10' : {'code':'OR','name':'Orientale'},
-    '11' : {'code':'SK','name':'Sud-Kivu'}
-  },
-  'ZM':{
-    '1' : {'code':'CE','name':'Central'},
-    '2' : {'code':'CB','name':'Copperbelt'},
-    '3' : {'code':'EA','name':'Eastern'},
-    '4' : {'code':'LP','name':'Luapula'},
-    '5' : {'code':'LK','name':'Lusaka'},
-    '6' : {'code':'NO','name':'Northern'},
-    '7' : {'code':'NW','name':'North-Western'},
-    '8' : {'code':'SO','name':'Southern'},
-    '9' : {'code':'WE','name':'Western'}
-  },
-  'ZW':{
-    '1' : {'code':'BU','name':'Bulawayo'},
-    '2' : {'code':'HA','name':'Harare'},
-    '3' : {'code':'ML','name':'Manicaland'},
-    '4' : {'code':'MC','name':'Mashonaland Central'},
-    '5' : {'code':'ME','name':'Mashonaland East'},
-    '6' : {'code':'MW','name':'Mashonaland West'},
-    '7' : {'code':'MV','name':'Masvingo'},
-    '8' : {'code':'MN','name':'Matabeleland North'},
-    '9' : {'code':'MS','name':'Matabeleland South'},
-    '10' : {'code':'MD','name':'Midlands'}
-  }
-};
-
-/* ==========================================================
- * bootstrap-formhelpers-timepicker.en_US.js
- * https://github.com/vlamanna/BootstrapFormHelpers
- * ==========================================================
- * Copyright 2012 Vincent Lamanna
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================================================== */
- 
-var BFHTimePickerDelimiter = ':';
-
-var BFHTimePickerModes = {
-  'am': 'AM',
-  'pm': 'PM'
-};
-/* ==========================================================
- * bootstrap-formhelpers-timezones.en_US.js
- * https://github.com/vlamanna/BootstrapFormHelpers
- * ==========================================================
- * Copyright 2012 Vincent Lamanna
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================================================== */
- 
-var BFHTimezonesList = {
-  'AF': {
-    'Asia/Kabul': 'Kabul'
-  },
-  'AL': {
-    'Europe/Tirane': 'Tirane'
-  },
-  'DZ': {
-    'Africa/Algiers': 'Algiers'
-  },
-  'AS': {
-    'Pacific/Pago_Pago': 'Pago Pago'
-  },
-  'AD': {
-    'Europe/Andorra': 'Andorra'
-  },
-  'AO': {
-    'Africa/Luanda': 'Luanda'
-  },
-  'AI': {
-    'America/Anguilla': 'Anguilla'
-  },
-  'AQ': {
-    'Antarctica/Casey': 'Casey',
-    'Antarctica/Davis': 'Davis',
-    'Antarctica/DumontDUrville': 'DumontDUrville',
-    'Antarctica/Macquarie': 'Macquarie',
-    'Antarctica/Mawson': 'Mawson',
-    'Antarctica/McMurdo': 'McMurdo',
-    'Antarctica/Palmer': 'Palmer',
-    'Antarctica/Rothera': 'Rothera',
-    'Antarctica/South_Pole': 'South Pole',
-    'Antarctica/Syowa': 'Syowa',
-    'Antarctica/Vostok': 'Vostok'
-  },
-  'AG': {
-    'America/Antigua': 'Antigua'
-  },
-  'AR': {
-    'America/Argentina/Buenos_Aires': 'Argentina / Buenos Aires',
-    'America/Argentina/Catamarca': 'Argentina / Catamarca',
-    'America/Argentina/Cordoba': 'Argentina / Cordoba',
-    'America/Argentina/Jujuy': 'Argentina / Jujuy',
-    'America/Argentina/La_Rioja': 'Argentina / La Rioja',
-    'America/Argentina/Mendoza': 'Argentina / Mendoza',
-    'America/Argentina/Rio_Gallegos': 'Argentina / Rio Gallegos',
-    'America/Argentina/Salta': 'Argentina / Salta',
-    'America/Argentina/San_Juan': 'Argentina / San Juan',
-    'America/Argentina/San_Luis': 'Argentina / San Luis',
-    'America/Argentina/Tucuman': 'Argentina / Tucuman',
-    'America/Argentina/Ushuaia': 'Argentina / Ushuaia'
-  },
-  'AM': {
-    'Asia/Yerevan': 'Yerevan'
-  },
-  'AW': {
-    'America/Aruba': 'Aruba'
-  },
-  'AU': {
-    'Australia/Adelaide': 'Adelaide',
-    'Australia/Brisbane': 'Brisbane',
-    'Australia/Broken_Hill': 'Broken Hill',
-    'Australia/Currie': 'Currie',
-    'Australia/Darwin': 'Darwin',
-    'Australia/Eucla': 'Eucla',
-    'Australia/Hobart': 'Hobart',
-    'Australia/Lindeman': 'Lindeman',
-    'Australia/Lord_Howe': 'Lord Howe',
-    'Australia/Melbourne': 'Melbourne',
-    'Australia/Perth': 'Perth',
-    'Australia/Sydney': 'Sydney'
-  },
-  'AT': {
-    'Europe/Vienna': 'Vienna'
-  },
-  'AZ': {
-    'Asia/Baku': 'Baku'
-  },
-  'BH': {
-    'Asia/Bahrain': 'Bahrain'
-  },
-  'BD': {
-    'Asia/Dhaka': 'Dhaka'
-  },
-  'BB': {
-    'America/Barbados': 'Barbados'
-  },
-  'BY': {
-    'Europe/Minsk': 'Minsk'
-  },
-  'BE': {
-    'Europe/Brussels': 'Brussels'
-  },
-  'BZ': {
-    'America/Belize': 'Belize'
-  },
-  'BJ': {
-    'Africa/Porto-Novo': 'Porto-Novo'
-  },
-  'BM': {
-    'Atlantic/Bermuda': 'Bermuda'
-  },
-  'BT': {
-    'Asia/Thimphu': 'Thimphu'
-  },
-  'BO': {
-    'America/La_Paz': 'La Paz'
-  },
-  'BA': {
-    'Europe/Sarajevo': 'Sarajevo'
-  },
-  'BW': {
-    'Africa/Gaborone': 'Gaborone'
-  },
-  'BR': {
-    'America/Araguaina': 'Araguaina',
-    'America/Bahia': 'Bahia',
-    'America/Belem': 'Belem',
-    'America/Boa_Vista': 'Boa Vista',
-    'America/Campo_Grande': 'Campo Grande',
-    'America/Cuiaba': 'Cuiaba',
-    'America/Eirunepe': 'Eirunepe',
-    'America/Fortaleza': 'Fortaleza',
-    'America/Maceio': 'Maceio',
-    'America/Manaus': 'Manaus',
-    'America/Noronha': 'Noronha',
-    'America/Porto_Velho': 'Porto Velho',
-    'America/Recife': 'Recife',
-    'America/Rio_Branco': 'Rio Branco',
-    'America/Santarem': 'Santarem',
-    'America/Sao_Paulo': 'Sao Paulo'
-  },
-  'VG': {
-    'America/Tortola': 'Tortola'
-  },
-  'BN': {
-    'Asia/Brunei': 'Brunei'
-  },
-  'BG': {
-    'Europe/Sofia': 'Sofia'
-  },
-  'BF': {
-    'Africa/Ouagadougou': 'Ouagadougou'
-  },
-  'BI': {
-    'Africa/Bujumbura': 'Bujumbura'
-  },
-  'CI': {
-    'Africa/Abidjan': 'Abidjan'
-  },
-  'KH': {
-    'Asia/Phnom_Penh': 'Phnom Penh'
-  },
-  'CM': {
-    'Africa/Douala': 'Douala'
-  },
-  'CA': {
-    'America/Atikokan': 'Atikokan',
-    'America/Blanc-Sablon': 'Blanc-Sablon',
-    'America/Cambridge_Bay': 'Cambridge Bay',
-    'America/Creston': 'Creston',
-    'America/Dawson': 'Dawson',
-    'America/Dawson_Creek': 'Dawson Creek',
-    'America/Edmonton': 'Edmonton',
-    'America/Glace_Bay': 'Glace Bay',
-    'America/Goose_Bay': 'Goose Bay',
-    'America/Halifax': 'Halifax',
-    'America/Inuvik': 'Inuvik',
-    'America/Iqaluit': 'Iqaluit',
-    'America/Moncton': 'Moncton',
-    'America/Montreal': 'Montreal',
-    'America/Nipigon': 'Nipigon',
-    'America/Pangnirtung': 'Pangnirtung',
-    'America/Rainy_River': 'Rainy River',
-    'America/Rankin_Inlet': 'Rankin Inlet',
-    'America/Regina': 'Regina',
-    'America/Resolute': 'Resolute',
-    'America/St_Johns': 'St Johns',
-    'America/Swift_Current': 'Swift Current',
-    'America/Thunder_Bay': 'Thunder Bay',
-    'America/Toronto': 'Toronto',
-    'America/Vancouver': 'Vancouver',
-    'America/Whitehorse': 'Whitehorse',
-    'America/Winnipeg': 'Winnipeg',
-    'America/Yellowknife': 'Yellowknife'
-  },
-  'CV': {
-    'Atlantic/Cape_Verde': 'Cape Verde'
-  },
-  'KY': {
-    'America/Cayman': 'Cayman'
-  },
-  'CF': {
-    'Africa/Bangui': 'Bangui'
-  },
-  'TD': {
-    'Africa/Ndjamena': 'Ndjamena'
-  },
-  'CL': {
-    'America/Santiago': 'Santiago',
-    'Pacific/Easter': 'Easter'
-  },
-  'CN': {
-    'Asia/Chongqing': 'Chongqing',
-    'Asia/Harbin': 'Harbin',
-    'Asia/Kashgar': 'Kashgar',
-    'Asia/Shanghai': 'Shanghai',
-    'Asia/Urumqi': 'Urumqi'
-  },
-  'CO': {
-    'America/Bogota': 'Bogota'
-  },
-  'KM': {
-    'Indian/Comoro': 'Comoro'
-  },
-  'CG': {
-    'Africa/Brazzaville': 'Brazzaville'
-  },
-  'CR': {
-    'America/Costa_Rica': 'Costa Rica'
-  },
-  'HR': {
-    'Europe/Zagreb': 'Zagreb'
-  },
-  'CU': {
-    'America/Havana': 'Havana'
-  },
-  'CY': {
-    'Asia/Nicosia': 'Nicosia'
-  },
-  'CZ': {
-    'Europe/Prague': 'Prague'
-  },
-  'CD': {
-    'Africa/Kinshasa': 'Kinshasa',
-    'Africa/Lubumbashi': 'Lubumbashi'
-  },
-  'DK': {
-    'Europe/Copenhagen': 'Copenhagen'
-  },
-  'DJ': {
-    'Africa/Djibouti': 'Djibouti'
-  },
-  'DM': {
-    'America/Dominica': 'Dominica'
-  },
-  'DO': {
-    'America/Santo_Domingo': 'Santo Domingo'
-  },
-  'TP': {
-  },
-  'EC': {
-    'America/Guayaquil': 'Guayaquil',
-    'Pacific/Galapagos': 'Galapagos'
-  },
-  'EG': {
-    'Africa/Cairo': 'Cairo'
-  },
-  'SV': {
-    'America/El_Salvador': 'El Salvador'
-  },
-  'GQ': {
-    'Africa/Malabo': 'Malabo'
-  },
-  'ER': {
-    'Africa/Asmara': 'Asmara'
-  },
-  'EE': {
-    'Europe/Tallinn': 'Tallinn'
-  },
-  'ET': {
-    'Africa/Addis_Ababa': 'Addis Ababa'
-  },
-  'FO': {
-    'Atlantic/Faroe': 'Faroe'
-  },
-  'FK': {
-    'Atlantic/Stanley': 'Stanley'
-  },
-  'FJ': {
-    'Pacific/Fiji': 'Fiji'
-  },
-  'FI': {
-    'Europe/Helsinki': 'Helsinki'
-  },
-  'MK': {
-    'Europe/Skopje': 'Skopje'
-  },
-  'FR': {
-    'Europe/Paris': 'Paris'
-  },
-  'GA': {
-    'Africa/Libreville': 'Libreville'
-  },
-  'GE': {
-    'Asia/Tbilisi': 'Tbilisi'
-  },
-  'DE': {
-    'Europe/Berlin': 'Berlin'
-  },
-  'GH': {
-    'Africa/Accra': 'Accra'
-  },
-  'GR': {
-    'Europe/Athens': 'Athens'
-  },
-  'GL': {
-    'America/Danmarkshavn': 'Danmarkshavn',
-    'America/Godthab': 'Godthab',
-    'America/Scoresbysund': 'Scoresbysund',
-    'America/Thule': 'Thule'
-  },
-  'GD': {
-    'America/Grenada': 'Grenada'
-  },
-  'GU': {
-    'Pacific/Guam': 'Guam'
-  },
-  'GT': {
-    'America/Guatemala': 'Guatemala'
-  },
-  'GN': {
-    'Africa/Conakry': 'Conakry'
-  },
-  'GW': {
-    'Africa/Bissau': 'Bissau'
-  },
-  'GY': {
-    'America/Guyana': 'Guyana'
-  },
-  'HT': {
-    'America/Port-au-Prince': 'Port-au-Prince'
-  },
-  'HN': {
-    'America/Tegucigalpa': 'Tegucigalpa'
-  },
-  'HK': {
-    'Asia/Hong_Kong': 'Hong Kong'
-  },
-  'HU': {
-    'Europe/Budapest': 'Budapest'
-  },
-  'IS': {
-    'Atlantic/Reykjavik': 'Reykjavik'
-  },
-  'IN': {
-    'Asia/Kolkata': 'Kolkata'
-  },
-  'ID': {
-    'Asia/Jakarta': 'Jakarta',
-    'Asia/Jayapura': 'Jayapura',
-    'Asia/Makassar': 'Makassar',
-    'Asia/Pontianak': 'Pontianak'
-  },
-  'IR': {
-    'Asia/Tehran': 'Tehran'
-  },
-  'IQ': {
-    'Asia/Baghdad': 'Baghdad'
-  },
-  'IE': {
-    'Europe/Dublin': 'Dublin'
-  },
-  'IL': {
-    'Asia/Jerusalem': 'Jerusalem'
-  },
-  'IT': {
-    'Europe/Rome': 'Rome'
-  },
-  'JM': {
-    'America/Jamaica': 'Jamaica'
-  },
-  'JP': {
-    'Asia/Tokyo': 'Tokyo'
-  },
-  'JO': {
-    'Asia/Amman': 'Amman'
-  },
-  'KZ': {
-    'Asia/Almaty': 'Almaty',
-    'Asia/Aqtau': 'Aqtau',
-    'Asia/Aqtobe': 'Aqtobe',
-    'Asia/Oral': 'Oral',
-    'Asia/Qyzylorda': 'Qyzylorda'
-  },
-  'KE': {
-    'Africa/Nairobi': 'Nairobi'
-  },
-  'KI': {
-    'Pacific/Enderbury': 'Enderbury',
-    'Pacific/Kiritimati': 'Kiritimati',
-    'Pacific/Tarawa': 'Tarawa'
-  },
-  'KW': {
-    'Asia/Kuwait': 'Kuwait'
-  },
-  'KG': {
-    'Asia/Bishkek': 'Bishkek'
-  },
-  'LA': {
-    'Asia/Vientiane': 'Vientiane'
-  },
-  'LV': {
-    'Europe/Riga': 'Riga'
-  },
-  'LB': {
-    'Asia/Beirut': 'Beirut'
-  },
-  'LS': {
-    'Africa/Maseru': 'Maseru'
-  },
-  'LR': {
-    'Africa/Monrovia': 'Monrovia'
-  },
-  'LY': {
-    'Africa/Tripoli': 'Tripoli'
-  },
-  'LI': {
-    'Europe/Vaduz': 'Vaduz'
-  },
-  'LT': {
-    'Europe/Vilnius': 'Vilnius'
-  },
-  'LU': {
-    'Europe/Luxembourg': 'Luxembourg'
-  },
-  'MO': {
-    'Asia/Macau': 'Macau'
-  },
-  'MG': {
-    'Indian/Antananarivo': 'Antananarivo'
-  },
-  'MW': {
-    'Africa/Blantyre': 'Blantyre'
-  },
-  'MY': {
-    'Asia/Kuala_Lumpur': 'Kuala Lumpur',
-    'Asia/Kuching': 'Kuching'
-  },
-  'MV': {
-    'Indian/Maldives': 'Maldives'
-  },
-  'ML': {
-    'Africa/Bamako': 'Bamako'
-  },
-  'MT': {
-    'Europe/Malta': 'Malta'
-  },
-  'MH': {
-    'Pacific/Kwajalein': 'Kwajalein',
-    'Pacific/Majuro': 'Majuro'
-  },
-  'MR': {
-    'Africa/Nouakchott': 'Nouakchott'
-  },
-  'MU': {
-    'Indian/Mauritius': 'Mauritius'
-  },
-  'MX': {
-    'America/Bahia_Banderas': 'Bahia Banderas',
-    'America/Cancun': 'Cancun',
-    'America/Chihuahua': 'Chihuahua',
-    'America/Hermosillo': 'Hermosillo',
-    'America/Matamoros': 'Matamoros',
-    'America/Mazatlan': 'Mazatlan',
-    'America/Merida': 'Merida',
-    'America/Mexico_City': 'Mexico City',
-    'America/Monterrey': 'Monterrey',
-    'America/Ojinaga': 'Ojinaga',
-    'America/Santa_Isabel': 'Santa Isabel',
-    'America/Tijuana': 'Tijuana'
-  },
-  'FM': {
-    'Pacific/Chuuk': 'Chuuk',
-    'Pacific/Kosrae': 'Kosrae',
-    'Pacific/Pohnpei': 'Pohnpei'
-  },
-  'MD': {
-    'Europe/Chisinau': 'Chisinau'
-  },
-  'MC': {
-    'Europe/Monaco': 'Monaco'
-  },
-  'MN': {
-    'Asia/Choibalsan': 'Choibalsan',
-    'Asia/Hovd': 'Hovd',
-    'Asia/Ulaanbaatar': 'Ulaanbaatar'
-  },
-  'ME': {
-    'Europe/Podgorica': 'Podgorica'
-  },
-  'MS': {
-    'America/Montserrat': 'Montserrat'
-  },
-  'MA': {
-    'Africa/Casablanca': 'Casablanca'
-  },
-  'MZ': {
-    'Africa/Maputo': 'Maputo'
-  },
-  'MM': {
-    'Asia/Rangoon': 'Rangoon'
-  },
-  'NA': {
-    'Africa/Windhoek': 'Windhoek'
-  },
-  'NR': {
-    'Pacific/Nauru': 'Nauru'
-  },
-  'NP': {
-    'Asia/Kathmandu': 'Kathmandu'
-  },
-  'NL': {
-    'Europe/Amsterdam': 'Amsterdam'
-  },
-  'AN': {
-  },
-  'NZ': {
-    'Pacific/Auckland': 'Auckland',
-    'Pacific/Chatham': 'Chatham'
-  },
-  'NI': {
-    'America/Managua': 'Managua'
-  },
-  'NE': {
-    'Africa/Niamey': 'Niamey'
-  },
-  'NG': {
-    'Africa/Lagos': 'Lagos'
-  },
-  'NF': {
-    'Pacific/Norfolk': 'Norfolk'
-  },
-  'KP': {
-    'Asia/Pyongyang': 'Pyongyang'
-  },
-  'MP': {
-    'Pacific/Saipan': 'Saipan'
-  },
-  'NO': {
-    'Europe/Oslo': 'Oslo'
-  },
-  'OM': {
-    'Asia/Muscat': 'Muscat'
-  },
-  'PK': {
-    'Asia/Karachi': 'Karachi'
-  },
-  'PW': {
-    'Pacific/Palau': 'Palau'
-  },
-  'PA': {
-    'America/Panama': 'Panama'
-  },
-  'PG': {
-    'Pacific/Port_Moresby': 'Port Moresby'
-  },
-  'PY': {
-    'America/Asuncion': 'Asuncion'
-  },
-  'PE': {
-    'America/Lima': 'Lima'
-  },
-  'PH': {
-    'Asia/Manila': 'Manila'
-  },
-  'PN': {
-    'Pacific/Pitcairn': 'Pitcairn'
-  },
-  'PL': {
-    'Europe/Warsaw': 'Warsaw'
-  },
-  'PT': {
-    'Atlantic/Azores': 'Azores',
-    'Atlantic/Madeira': 'Madeira',
-    'Europe/Lisbon': 'Lisbon'
-  },
-  'PR': {
-    'America/Puerto_Rico': 'Puerto Rico'
-  },
-  'QA': {
-    'Asia/Qatar': 'Qatar'
-  },
-  'RO': {
-    'Europe/Bucharest': 'Bucharest'
-  },
-  'RU': {
-    'Asia/Anadyr': 'Anadyr',
-    'Asia/Irkutsk': 'Irkutsk',
-    'Asia/Kamchatka': 'Kamchatka',
-    'Asia/Krasnoyarsk': 'Krasnoyarsk',
-    'Asia/Magadan': 'Magadan',
-    'Asia/Novokuznetsk': 'Novokuznetsk',
-    'Asia/Novosibirsk': 'Novosibirsk',
-    'Asia/Omsk': 'Omsk',
-    'Asia/Sakhalin': 'Sakhalin',
-    'Asia/Vladivostok': 'Vladivostok',
-    'Asia/Yakutsk': 'Yakutsk',
-    'Asia/Yekaterinburg': 'Yekaterinburg',
-    'Europe/Kaliningrad': 'Kaliningrad',
-    'Europe/Moscow': 'Moscow',
-    'Europe/Samara': 'Samara',
-    'Europe/Volgograd': 'Volgograd'
-  },
-  'RW': {
-    'Africa/Kigali': 'Kigali'
-  },
-  'ST': {
-    'Africa/Sao_Tome': 'Sao Tome'
-  },
-  'SH': {
-    'Atlantic/St_Helena': 'St Helena'
-  },
-  'KN': {
-    'America/St_Kitts': 'St Kitts'
-  },
-  'LC': {
-    'America/St_Lucia': 'St Lucia'
-  },
-  'VC': {
-    'America/St_Vincent': 'St Vincent'
-  },
-  'WS': {
-    'Pacific/Apia': 'Apia'
-  },
-  'SM': {
-    'Europe/San_Marino': 'San Marino'
-  },
-  'SA': {
-    'Asia/Riyadh': 'Riyadh'
-  },
-  'SN': {
-    'Africa/Dakar': 'Dakar'
-  },
-  'RS': {
-    'Europe/Belgrade': 'Belgrade'
-  },
-  'SC': {
-    'Indian/Mahe': 'Mahe'
-  },
-  'SL': {
-    'Africa/Freetown': 'Freetown'
-  },
-  'SG': {
-    'Asia/Singapore': 'Singapore'
-  },
-  'SK': {
-    'Europe/Bratislava': 'Bratislava'
-  },
-  'SI': {
-    'Europe/Ljubljana': 'Ljubljana'
-  },
-  'SB': {
-    'Pacific/Guadalcanal': 'Guadalcanal'
-  },
-  'SO': {
-    'Africa/Mogadishu': 'Mogadishu'
-  },
-  'ZA': {
-    'Africa/Johannesburg': 'Johannesburg'
-  },
-  'GS': {
-    'Atlantic/South_Georgia': 'South Georgia'
-  },
-  'KR': {
-    'Asia/Seoul': 'Seoul'
-  },
-  'ES': {
-    'Africa/Ceuta': 'Ceuta',
-    'Atlantic/Canary': 'Canary',
-    'Europe/Madrid': 'Madrid'
-  },
-  'LK': {
-    'Asia/Colombo': 'Colombo'
-  },
-  'SD': {
-    'Africa/Khartoum': 'Khartoum'
-  },
-  'SR': {
-    'America/Paramaribo': 'Paramaribo'
-  },
-  'SZ': {
-    'Africa/Mbabane': 'Mbabane'
-  },
-  'SE': {
-    'Europe/Stockholm': 'Stockholm'
-  },
-  'CH': {
-    'Europe/Zurich': 'Zurich'
-  },
-  'SY': {
-    'Asia/Damascus': 'Damascus'
-  },
-  'TW': {
-    'Asia/Taipei': 'Taipei'
-  },
-  'TJ': {
-    'Asia/Dushanbe': 'Dushanbe'
-  },
-  'TZ': {
-    'Africa/Dar_es_Salaam': 'Dar es Salaam'
-  },
-  'TH': {
-    'Asia/Bangkok': 'Bangkok'
-  },
-  'BS': {
-    'America/Nassau': 'Nassau'
-  },
-  'GM': {
-    'Africa/Banjul': 'Banjul'
-  },
-  'TG': {
-    'Africa/Lome': 'Lome'
-  },
-  'TO': {
-    'Pacific/Tongatapu': 'Tongatapu'
-  },
-  'TT': {
-    'America/Port_of_Spain': 'Port of Spain'
-  },
-  'TN': {
-    'Africa/Tunis': 'Tunis'
-  },
-  'TR': {
-    'Europe/Istanbul': 'Istanbul'
-  },
-  'TM': {
-    'Asia/Ashgabat': 'Ashgabat'
-  },
-  'TC': {
-    'America/Grand_Turk': 'Grand Turk'
-  },
-  'TV': {
-    'Pacific/Funafuti': 'Funafuti'
-  },
-  'VI': {
-    'America/St_Thomas': 'St Thomas'
-  },
-  'UG': {
-    'Africa/Kampala': 'Kampala'
-  },
-  'UA': {
-    'Europe/Kiev': 'Kiev',
-    'Europe/Simferopol': 'Simferopol',
-    'Europe/Uzhgorod': 'Uzhgorod',
-    'Europe/Zaporozhye': 'Zaporozhye'
-  },
-  'AE': {
-    'Asia/Dubai': 'Dubai'
-  },
-  'GB': {
-    'Europe/London': 'London'
-  },
-  'US': {
-    'America/Adak': 'Adak',
-    'America/Anchorage': 'Anchorage',
-    'America/Boise': 'Boise',
-    'America/Chicago': 'Chicago',
-    'America/Denver': 'Denver',
-    'America/Detroit': 'Detroit',
-    'America/Indiana/Indianapolis': 'Indiana / Indianapolis',
-    'America/Indiana/Knox': 'Indiana / Knox',
-    'America/Indiana/Marengo': 'Indiana / Marengo',
-    'America/Indiana/Petersburg': 'Indiana / Petersburg',
-    'America/Indiana/Tell_City': 'Indiana / Tell City',
-    'America/Indiana/Vevay': 'Indiana / Vevay',
-    'America/Indiana/Vincennes': 'Indiana / Vincennes',
-    'America/Indiana/Winamac': 'Indiana / Winamac',
-    'America/Juneau': 'Juneau',
-    'America/Kentucky/Louisville': 'Kentucky / Louisville',
-    'America/Kentucky/Monticello': 'Kentucky / Monticello',
-    'America/Los_Angeles': 'Los Angeles',
-    'America/Menominee': 'Menominee',
-    'America/Metlakatla': 'Metlakatla',
-    'America/New_York': 'New York',
-    'America/Nome': 'Nome',
-    'America/North_Dakota/Beulah': 'North Dakota / Beulah',
-    'America/North_Dakota/Center': 'North Dakota / Center',
-    'America/North_Dakota/New_Salem': 'North Dakota / New Salem',
-    'America/Phoenix': 'Phoenix',
-    'America/Shiprock': 'Shiprock',
-    'America/Sitka': 'Sitka',
-    'America/Yakutat': 'Yakutat',
-    'Pacific/Honolulu': 'Honolulu'
-  },
-  'UY': {
-    'America/Montevideo': 'Montevideo'
-  },
-  'UZ': {
-    'Asia/Samarkand': 'Samarkand',
-    'Asia/Tashkent': 'Tashkent'
-  },
-  'VU': {
-    'Pacific/Efate': 'Efate'
-  },
-  'VA': {
-    'Europe/Vatican': 'Vatican'
-  },
-  'VE': {
-    'America/Caracas': 'Caracas'
-  },
-  'VN': {
-    'Asia/Ho_Chi_Minh': 'Ho Chi Minh'
-  },
-  'EH': {
-    'Africa/El_Aaiun': 'El Aaiun'
-  },
-  'YE': {
-    'Asia/Aden': 'Aden'
-  },
-  'ZM': {
-    'Africa/Lusaka': 'Lusaka'
-  },
-  'ZW': {
-    'Africa/Harare': 'Harare'
-  }
-};
-
-/* ==========================================================
- * bootstrap-formhelpers-colorpicker.js
- * https://github.com/vlamanna/BootstrapFormHelpers
- * ==========================================================
- * Copyright 2012 Vincent Lamanna
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================================================== */
- 
- 
-+function ($) {
-
-  'use strict';
-  
-  
-  /* COLORPICKER CLASS DEFINITION
-  * ========================= */
-
-  var toggle = '[data-toggle=bfh-colorpicker]',
-      BFHColorPicker = function (element, options) {
-        this.options = $.extend({}, $.fn.bfhcolorpicker.defaults, options);
-        this.$element = $(element);
-
-        this.initPopover();
-      };
-
-  BFHColorPicker.prototype = {
-
-    constructor: BFHColorPicker,
-
-    initPalette: function() {
-      var $canvas,
-          context,
-          gradient;
-          
-      $canvas = this.$element.find('canvas');
-      context = $canvas[0].getContext('2d');
-      
-      gradient = context.createLinearGradient(0, 0, $canvas.width(), 0);
-      
-      gradient.addColorStop(0,    'rgb(255, 255, 255)');
-      gradient.addColorStop(0.1,  'rgb(255,   0,   0)');
-      gradient.addColorStop(0.25, 'rgb(255,   0, 255)');
-      gradient.addColorStop(0.4,  'rgb(0,     0, 255)');
-      gradient.addColorStop(0.55, 'rgb(0,   255, 255)');
-      gradient.addColorStop(0.7,  'rgb(0,   255,   0)');
-      gradient.addColorStop(0.85, 'rgb(255, 255,   0)');
-      gradient.addColorStop(1,    'rgb(255,   0,   0)');
-      
-      context.fillStyle = gradient;
-      context.fillRect(0, 0, context.canvas.width, context.canvas.height);
-      
-      gradient = context.createLinearGradient(0, 0, 0, $canvas.height());
-      gradient.addColorStop(0,   'rgba(255, 255, 255, 1)');
-      gradient.addColorStop(0.5, 'rgba(255, 255, 255, 0)');
-      gradient.addColorStop(0.5, 'rgba(0,     0,   0, 0)');
-      gradient.addColorStop(1,   'rgba(0,     0,   0, 1)');
-      
-      context.fillStyle = gradient;
-      context.fillRect(0, 0, context.canvas.width, context.canvas.height);
-    },
-    
-    initPopover: function() {
-      var iconLeft,
-          iconRight;
-
-      iconLeft = '';
-      iconRight = '';
-      if (this.options.align === 'right') {
-        iconRight = '<span class="input-group-addon"><span class="bfh-colorpicker-icon"></span></span>';
-      } else {
-        iconLeft = '<span class="input-group-addon"><span class="bfh-colorpicker-icon"></span></span>';
-      }
-
-      this.$element.html(
-        '<div class="input-group bfh-colorpicker-toggle" data-toggle="bfh-colorpicker">' +
-        iconLeft +
-        '<input type="text" name="' + this.options.name + '" class="' + this.options.input + '" placeholder="' + this.options.placeholder + '" readonly>' +
-        iconRight +
-        '</div>' +
-        '<div class="bfh-colorpicker-popover">' +
-        '<canvas class="bfh-colorpicker-palette" width="384" height="256"></canvas>' +
-        '</div>'
-      );
-
-      this.$element
-        .on('click.bfhcolorpicker.data-api touchstart.bfhcolorpicker.data-api', toggle, BFHColorPicker.prototype.toggle)
-        .on('mousedown.bfhcolorpicker.data-api', 'canvas', BFHColorPicker.prototype.mouseDown)
-        .on('click.bfhcolorpicker.data-api touchstart.bfhcolorpicker.data-api', '.bfh-colorpicker-popover', function() { return false; });
-
-      this.initPalette();
-      
-      this.$element.val(this.options.color);
-    },
-    
-    updateVal: function(positionX, positionY) {
-      var $canvas,
-          context,
-          colorX,
-          colorY,
-          snappiness,
-          imageData,
-          newColor;
-      
-      snappiness = 5;
-      
-      $canvas = this.$element.find('canvas');
-      context = $canvas[0].getContext('2d');
-      
-      colorX = positionX - $canvas.offset().left;
-      colorY = positionY - $canvas.offset().top;
-      
-      colorX = Math.round(colorX / snappiness) * snappiness;
-      colorY = Math.round(colorY / snappiness) * snappiness;
-      
-      if (colorX < 0) {
-        colorX = 0;
-      }
-      if (colorX >= $canvas.width()) {
-        colorX = $canvas.width() - 1;
-      }
-      
-      if (colorY < 0) {
-        colorY = 0;
-      }
-      if (colorY > $canvas.height()) {
-        colorY = $canvas.height();
-      }
-      
-      imageData = context.getImageData(colorX, colorY, 1, 1);
-      newColor = rgbToHex(imageData.data[0], imageData.data[1], imageData.data[2]);
-      
-      if (newColor !== this.$element.val()) {
-        this.$element.val(newColor);
-        
-        this.$element.trigger('change.bfhcolorpicker');
-      }
-    },
-    
-    mouseDown: function(e) {
-      var $this,
-          $parent;
-      
-      $this = $(this);
-      $parent = getParent($this);
-      
-      $(document)
-        .on('mousemove.bfhcolorpicker.data-api', {colorpicker: $parent}, BFHColorPicker.prototype.mouseMove)
-        .one('mouseup.bfhcolorpicker.data-api', {colorpicker: $parent}, BFHColorPicker.prototype.mouseUp);
-    },
-    
-    mouseMove: function(e) {
-      var $this;
-      
-      $this = e.data.colorpicker;
-      
-      $this.data('bfhcolorpicker').updateVal(e.pageX, e.pageY);
-    },
-    
-    mouseUp: function(e) {
-      var $this;
-      
-      $this = e.data.colorpicker;
-      
-      $this.data('bfhcolorpicker').updateVal(e.pageX, e.pageY);
-      
-      $(document).off('mousemove.bfhcolorpicker.data-api');
-      
-      if ($this.data('bfhcolorpicker').options.close === true) {
-        clearMenus();
-      }
-    },
-
-    toggle: function (e) {
-      var $this,
-          $parent,
-          isActive;
-
-      $this = $(this);
-      $parent = getParent($this);
-
-      if ($parent.is('.disabled') || $parent.attr('disabled') !== undefined) {
-        return true;
-      }
-
-      isActive = $parent.hasClass('open');
-
-      clearMenus();
-
-      if (!isActive) {
-        $parent.trigger(e = $.Event('show.bfhcolorpicker'));
-
-        if (e.isDefaultPrevented()) {
-          return true;
-        }
-
-        $parent
-          .toggleClass('open')
-          .trigger('shown.bfhcolorpicker');
-
-        $this.focus();
-      }
-
-      return false;
-    }
-  };
-  
-  function componentToHex(c) {
-    var hex = c.toString(16);
-    return hex.length === 1 ? '0' + hex : hex;
-  }
-
-  function rgbToHex(r, g, b) {
-    return '#' + componentToHex(r) + componentToHex(g) + componentToHex(b);
-  }
-      
-  function clearMenus() {
-    var $parent;
-
-    $(toggle).each(function (e) {
-      $parent = getParent($(this));
-
-      if (!$parent.hasClass('open')) {
-        return true;
-      }
-
-      $parent.trigger(e = $.Event('hide.bfhcolorpicker'));
-
-      if (e.isDefaultPrevented()) {
-        return true;
-      }
-
-      $parent
-        .removeClass('open')
-        .trigger('hidden.bfhcolorpicker');
-    });
-  }
-
-  function getParent($this) {
-    return $this.closest('.bfh-colorpicker');
-  }
-  
-  
-  /* COLORPICKER PLUGIN DEFINITION
-   * ========================== */
-
-  var old = $.fn.bfhcolorpicker;
-
-  $.fn.bfhcolorpicker = function (option) {
-    return this.each(function () {
-      var $this,
-          data,
-          options;
-
-      $this = $(this);
-      data = $this.data('bfhcolorpicker');
-      options = typeof option === 'object' && option;
-      this.type = 'bfhcolorpicker';
-
-      if (!data) {
-        $this.data('bfhcolorpicker', (data = new BFHColorPicker(this, options)));
-      }
-      if (typeof option === 'string') {
-        data[option].call($this);
-      }
-    });
-  };
-
-  $.fn.bfhcolorpicker.Constructor = BFHColorPicker;
-
-  $.fn.bfhcolorpicker.defaults = {
-    align: 'left',
-    input: 'form-control',
-    placeholder: '',
-    name: '',
-    color: '#000000',
-    close: true
-  };
-  
-  
-  /* COLORPICKER NO CONFLICT
-   * ========================== */
-
-  $.fn.bfhcolorpicker.noConflict = function () {
-    $.fn.bfhcolorpicker = old;
-    return this;
-  };
-  
-  
-  /* COLORPICKER VALHOOKS
-   * ========================== */
-
-  var origHook;
-  if ($.valHooks.div){
-    origHook = $.valHooks.div;
-  }
-  $.valHooks.div = {
-    get: function(el) {
-      if ($(el).hasClass('bfh-colorpicker')) {
-        return $(el).find('input[type="text"]').val();
-      } else if (origHook) {
-        return origHook.get(el);
-      }
-    },
-    set: function(el, val) {
-      if ($(el).hasClass('bfh-colorpicker')) {
-        $(el).find('.bfh-colorpicker-icon').css('background-color', val);
-        $(el).find('input[type="text"]').val(val);
-      } else if (origHook) {
-        return origHook.set(el,val);
-      }
-    }
-  };
-  
-  
-  /* COLORPICKER DATA-API
-   * ============== */
-
-  $(document).ready( function () {
-    $('div.bfh-colorpicker').each(function () {
-      var $colorpicker;
-
-      $colorpicker = $(this);
-
-      $colorpicker.bfhcolorpicker($colorpicker.data());
-    });
-  });
-  
-  
-  /* APPLY TO STANDARD COLORPICKER ELEMENTS
-   * =================================== */
-
-  $(document)
-    .on('click.bfhcolorpicker.data-api', clearMenus);
-
-}(window.jQuery);
-/* ==========================================================
- * bootstrap-formhelpers-countries.js
- * https://github.com/vlamanna/BootstrapFormHelpers
- * ==========================================================
- * Copyright 2012 Vincent Lamanna
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================================================== */
-
-+function ($) {
-
-  'use strict';
-
-
-  /* COUNTRIES CLASS DEFINITION
-   * ====================== */
-
-  var BFHCountries = function (element, options) {
-    this.options = $.extend({}, $.fn.bfhcountries.defaults, options);
-    this.$element = $(element);
-
-    if (this.$element.is('select')) {
-      this.addCountries();
-    }
-
-    if (this.$element.hasClass('bfh-selectbox')) {
-      this.addBootstrapCountries();
-    }
-
-    if (this.$element.is('span')) {
-      this.displayCountry();
-    }
-  };
-
-  BFHCountries.prototype = {
-
-    constructor: BFHCountries,
-
-    getCountries: function() {
-      var country,
-          countries;
-
-      if (this.options.available) {
-        if (typeof this.options.available === 'string') {
-          countries = [];
-  
-          this.options.available = this.options.available.split(',');
-  
-          for (country in BFHCountriesList) {
-            if (BFHCountriesList.hasOwnProperty(country)) {
-              if ($.inArray(country, this.options.available) >= 0) {
-                countries[country] = BFHCountriesList[country];
-              }
-            }
-          }
-        } else {
-          countries = this.options.available;
-        }
-
-        return countries;
-      } else {
-        return BFHCountriesList;
-      }
-    },
-
-    addCountries: function () {
-      var value,
-          country,
-          countries;
-
-      value = this.options.country;
-      countries = this.getCountries();
-
-      this.$element.html('');
-
-      if (this.options.blank === true) {
-        this.$element.append('<option value=""></option>');
-      }
-
-      for (country in countries) {
-        if (countries.hasOwnProperty(country)) {
-          this.$element.append('<option value="' + country + '">' + countries[country] + '</option>');
-        }
-      }
-
-      this.$element.val(value);
-    },
-
-    addBootstrapCountries: function() {
-      var $input,
-          $toggle,
-          $options,
-          value,
-          country,
-          countries;
-
-      value = this.options.country;
-      $input = this.$element.find('input[type="hidden"]');
-      $toggle = this.$element.find('.bfh-selectbox-option');
-      $options = this.$element.find('[role=option]');
-      countries = this.getCountries();
-
-      $options.html('');
-
-      if (this.options.blank === true) {
-        $options.append('<li><a tabindex="-1" href="#" data-option=""></a></li>');
-      }
-
-      for (country in countries) {
-        if (countries.hasOwnProperty(country)) {
-          if (this.options.flags === true) {
-            $options.append('<li><a tabindex="-1" href="#" data-option="' + country + '"><i class="glyphicon bfh-flag-' + country + '"></i>' + countries[country] + '</a></li>');
-          } else {
-            $options.append('<li><a tabindex="-1" href="#" data-option="' + country + '">' + countries[country] + '</a></li>');
-          }
-        }
-      }
-
-      this.$element.val(value);
-    },
-
-    displayCountry: function () {
-      var value;
-
-      value = this.options.country;
-
-      if (this.options.flags === true) {
-        this.$element.html('<i class="glyphicon bfh-flag-' + value + '"></i> ' + BFHCountriesList[value]);
-      } else {
-        this.$element.html(BFHCountriesList[value]);
-      }
-    }
-
-  };
-
-
-  /* COUNTRY PLUGIN DEFINITION
-   * ======================= */
-
-  var old = $.fn.bfhcountries;
-
-  $.fn.bfhcountries = function (option) {
-    return this.each(function () {
-      var $this,
-          data,
-          options;
-
-      $this = $(this);
-      data = $this.data('bfhcountries');
-      options = typeof option === 'object' && option;
-
-      if (!data) {
-        $this.data('bfhcountries', (data = new BFHCountries(this, options)));
-      }
-      if (typeof option === 'string') {
-        data[option].call($this);
-      }
-    });
-  };
-
-  $.fn.bfhcountries.Constructor = BFHCountries;
-
-  $.fn.bfhcountries.defaults = {
-    country: '',
-    available: '',
-    flags: false,
-    blank: true
-  };
-
-
-  /* COUNTRY NO CONFLICT
-   * ========================== */
-
-  $.fn.bfhcountries.noConflict = function () {
-    $.fn.bfhcountries = old;
-    return this;
-  };
-
-
-  /* COUNTRY DATA-API
-   * ============== */
-
-  $(document).ready( function () {
-    $('form select.bfh-countries, span.bfh-countries, div.bfh-countries').each(function () {
-      var $countries;
-
-      $countries = $(this);
-
-      if ($countries.hasClass('bfh-selectbox')) {
-        $countries.bfhselectbox($countries.data());
-      }
-      $countries.bfhcountries($countries.data());
-    });
-  });
-
-}(window.jQuery);
-
-/* ==========================================================
- * bootstrap-formhelpers-currencies.js
- * https://github.com/vlamanna/BootstrapFormHelpers
- * ==========================================================
- * Copyright 2013 Vincent Lamanna
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================================================== */
-
-+function ($) {
-
-  'use strict';
-
-
-  /* COUNTRIES CLASS DEFINITION
-   * ====================== */
-
-  var BFHCurrencies = function (element, options) {
-    this.options = $.extend({}, $.fn.bfhcurrencies.defaults, options);
-    this.$element = $(element);
-
-    if (this.$element.is('select')) {
-      this.addCurrencies();
-    }
-
-    if (this.$element.hasClass('bfh-selectbox')) {
-      this.addBootstrapCurrencies();
-    }
-
-    if (this.$element.is('span')) {
-      this.displayCurrency();
-    }
-  };
-
-  BFHCurrencies.prototype = {
-
-    constructor: BFHCurrencies,
-
-    getCurrencies: function () {
-      var currency,
-          currencies;
-
-      if (this.options.available) {
-        currencies = [];
-
-        this.options.available = this.options.available.split(',');
-
-        for (currency in BFHCurrenciesList) {
-          if (BFHCurrenciesList.hasOwnProperty(currency)) {
-            if ($.inArray(currency, this.options.available) >= 0) {
-              currencies[currency] = BFHCurrenciesList[currency];
-            }
-          }
-        }
-
-        return currencies;
-      } else {
-        return BFHCurrenciesList;
-      }
-    },
-
-    addCurrencies: function () {
-      var value,
-          currency,
-          currencies;
-
-      value = this.options.currency;
-      currencies = this.getCurrencies();
-
-      this.$element.html('');
-
-      if (this.options.blank === true) {
-        this.$element.append('<option value=""></option>');
-      }
-
-      for (currency in currencies) {
-        if (currencies.hasOwnProperty(currency)) {
-          this.$element.append('<option value="' + currency + '">' + currencies[currency].label + '</option>');
-        }
-      }
-
-      this.$element.val(value);
-    },
-
-
-    addBootstrapCurrencies: function() {
-      var $input,
-          $toggle,
-          $options,
-          value,
-          currency,
-          currencies,
-          flag;
-
-      value = this.options.currency;
-      $input = this.$element.find('input[type="hidden"]');
-      $toggle = this.$element.find('.bfh-selectbox-option');
-      $options = this.$element.find('[role=option]');
-      currencies = this.getCurrencies();
-
-      $options.html('');
-
-      if (this.options.blank === true) {
-        $options.append('<li><a tabindex="-1" href="#" data-option=""></a></li>');
-      }
-
-      for (currency in currencies) {
-        if (currencies.hasOwnProperty(currency)) {
-          if (this.options.flags === true) {
-            if (currencies[currency].currencyflag) {
-              flag = currencies[currency].currencyflag;
-            } else {
-              flag = currency.substr(0,2);
-            }
-            $options.append('<li><a tabindex="-1" href="#" data-option="' + currency +  '"><i class="glyphicon bfh-flag-' + flag + '"></i>' + currencies[currency].label + '</a></li>');
-          } else {
-            $options.append('<li><a tabindex="-1" href="#" data-option="' + currency + '">' + currencies[currency].label + '</a></li>');
-          }
-        }
-      }
-
-      this.$element.val(value);
-    },
-
-    displayCurrency: function () {
-      var value,
-          flag;
-
-      value = this.options.currency;
-
-      if (this.options.flags === true) {
-        if (BFHCurrenciesList[value].currencyflag) {
-          flag = BFHCurrenciesList[value].currencyflag;
-        } else {
-          flag = value.substr(0,2);
-        }
-        this.$element.html('<i class="glyphicon bfh-flag-' + flag + '"></i> ' + BFHCurrenciesList[value].label);
-      } else {
-        this.$element.html(BFHCurrenciesList[value].label);
-      }
-    }
-
-  };
-
-
-  /* CURRENCY PLUGIN DEFINITION
-   * ======================= */
-
-  var old = $.fn.bfhcurrencies;
-
-  $.fn.bfhcurrencies = function (option) {
-    return this.each(function () {
-      var $this,
-          data,
-          options;
-
-      $this = $(this);
-      data = $this.data('bfhcurrencies');
-      options = typeof option === 'object' && option;
-
-      if (!data) {
-        $this.data('bfhcurrencies', (data = new BFHCurrencies(this, options)));
-      }
-      if (typeof option === 'string') {
-        data[option].call($this);
-      }
-    });
-  };
-
-  $.fn.bfhcurrencies.Constructor = BFHCurrencies;
-
-  $.fn.bfhcurrencies.defaults = {
-    currency: '',
-    available: '',
-    flags: false,
-    blank: true
-  };
-
-
-  /* CURRENCY NO CONFLICT
-   * ========================== */
-
-  $.fn.bfhcurrencies.noConflict = function () {
-    $.fn.bfhcurrencies = old;
-    return this;
-  };
-
-
-  /* CURRENCY DATA-API
-   * ============== */
-
-  $(document).ready( function () {
-    $('form select.bfh-currencies, span.bfh-currencies, div.bfh-currencies').each(function () {
-      var $currencies;
-
-      $currencies = $(this);
-
-      if ($currencies.hasClass('bfh-selectbox')) {
-        $currencies.bfhselectbox($currencies.data());
-      }
-      $currencies.bfhcurrencies($currencies.data());
-    });
-  });
-
-
-}(window.jQuery);
-
-/* ==========================================================
- * bootstrap-formhelpers-datepicker.js
- * https://github.com/vlamanna/BootstrapFormHelpers
- * ==========================================================
- * Copyright 2012 Vincent Lamanna
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================================================== */
-
-+function ($) {
-
-  'use strict';
-
-
-  /* BFHDATEPICKER CLASS DEFINITION
-   * ========================= */
-
-  var toggle = '[data-toggle=bfh-datepicker]',
-      BFHDatePicker = function (element, options) {
-        this.options = $.extend({}, $.fn.bfhdatepicker.defaults, options);
-        this.$element = $(element);
-
-        this.initCalendar();
-      };
-
-  BFHDatePicker.prototype = {
-
-    constructor: BFHDatePicker,
-
-    setDate: function() {
-      var date,
-          today,
-          format;
-
-      date = this.options.date;
-      format = this.options.format;
-
-      if (date === '' || date === 'today' || date === undefined) {
-        today = new Date();
-
-        if (date === 'today') {
-          this.$element.val(formatDate(format, today.getMonth(), today.getFullYear(), today.getDate()));
-        }
-
-        this.$element.data('month', today.getMonth());
-        this.$element.data('year', today.getFullYear());
-      } else {
-        this.$element.val(date);
-        this.$element.data('month', Number(getDatePart(format, date, 'm') - 1));
-        this.$element.data('year', Number(getDatePart(format, date, 'y')));
-      }
-    },
-
-    setDateLimit: function(date, limitPrefix) {
-      var today,
-          format;
-
-      format = this.options.format;
-
-      if (date !== '') {
-        this.$element.data(limitPrefix + 'limit', true);
-
-        if (date === 'today') {
-          today = new Date();
-
-          this.$element.data(limitPrefix + 'day', today.getDate());
-          this.$element.data(limitPrefix + 'month', today.getMonth());
-          this.$element.data(limitPrefix + 'year', today.getFullYear());
-        } else {
-          this.$element.data(limitPrefix + 'day', Number(getDatePart(format, date, 'd')));
-          this.$element.data(limitPrefix + 'month', Number(getDatePart(format, date, 'm') - 1));
-          this.$element.data(limitPrefix + 'year', Number(getDatePart(format, date, 'y')));
-        }
-      } else {
-        this.$element.data(limitPrefix + 'limit', false);
-      }
-    },
-
-    initCalendar: function() {
-      var iconLeft,
-          iconRight,
-          iconAddon;
-
-      iconLeft = '';
-      iconRight = '';
-      iconAddon = '';
-      if (this.options.icon !== '') {
-        if (this.options.align === 'right') {
-          iconRight = '<span class="input-group-addon"><i class="' + this.options.icon + '"></i></span>';
-        } else {
-          iconLeft = '<span class="input-group-addon"><i class="' + this.options.icon + '"></i></span>';
-        }
-        iconAddon = 'input-group';
-      }
-
-      this.$element.html(
-        '<div class="' + iconAddon + ' bfh-datepicker-toggle" data-toggle="bfh-datepicker">' +
-        iconLeft +
-        '<input type="text" name="' + this.options.name + '" class="' + this.options.input + '" placeholder="' + this.options.placeholder + '" readonly>' +
-        iconRight +
-        '</div>' +
-        '<div class="bfh-datepicker-calendar">' +
-        '<table class="calendar table table-bordered">' +
-        '<thead>' +
-        '<tr class="months-header">' +
-        '<th class="month" colspan="4">' +
-        '<a class="previous" href="#"><i class="glyphicon glyphicon-chevron-left"></i></a>' +
-        '<span></span>' +
-        '<a class="next" href="#"><i class="glyphicon glyphicon-chevron-right"></i></a>' +
-        '</th>' +
-        '<th class="year" colspan="3">' +
-        '<a class="previous" href="#"><i class="glyphicon glyphicon-chevron-left"></i></a>' +
-        '<span></span>' +
-        '<a class="next" href="#"><i class="glyphicon glyphicon-chevron-right"></i></a>' +
-        '</th>' +
-        '</tr>' +
-        '<tr class="days-header">' +
-        '</tr>' +
-        '</thead>' +
-        '<tbody>' +
-        '</tbody>' +
-        '</table>' +
-        '</div>'
-      );
-
-      this.$element
-        .on('click.bfhdatepicker.data-api touchstart.bfhdatepicker.data-api', toggle, BFHDatePicker.prototype.toggle)
-        .on('click.bfhdatepicker.data-api touchstart.bfhdatepicker.data-api', '.bfh-datepicker-calendar > table.calendar .month > .previous', BFHDatePicker.prototype.previousMonth)
-        .on('click.bfhdatepicker.data-api touchstart.bfhdatepicker.data-api', '.bfh-datepicker-calendar > table.calendar .month > .next', BFHDatePicker.prototype.nextMonth)
-        .on('click.bfhdatepicker.data-api touchstart.bfhdatepicker.data-api', '.bfh-datepicker-calendar > table.calendar .year > .previous', BFHDatePicker.prototype.previousYear)
-        .on('click.bfhdatepicker.data-api touchstart.bfhdatepicker.data-api', '.bfh-datepicker-calendar > table.calendar .year > .next', BFHDatePicker.prototype.nextYear)
-        .on('click.bfhdatepicker.data-api touchstart.bfhdatepicker.data-api', '.bfh-datepicker-calendar > table.calendar td:not(.off)', BFHDatePicker.prototype.select)
-        .on('click.bfhdatepicker.data-api touchstart.bfhdatepicker.data-api', '.bfh-datepicker-calendar > table.calendar', function() { return false; });
-
-      this.setDate();
-      this.setDateLimit(this.options.min, 'lower');
-      this.setDateLimit(this.options.max, 'higher');
-
-      this.updateCalendar();
-    },
-
-    updateCalendarHeader: function($calendar, month, year) {
-      var $daysHeader,
-          day;
-
-      $calendar.find('table > thead > tr > th.month > span').text(BFHMonthsList[month]);
-      $calendar.find('table > thead > tr > th.year > span').text(year);
-
-      $daysHeader = $calendar.find('table > thead > tr.days-header');
-      $daysHeader.html('');
-      for (day=BFHDayOfWeekStart; day < BFHDaysList.length; day=day+1) {
-        $daysHeader.append('<th>' + BFHDaysList[day] + '</th>');
-      }
-      for (day=0; day < BFHDayOfWeekStart; day=day+1) {
-        $daysHeader.append('<th>' + BFHDaysList[day] + '</th>');
-      }
-    },
-
-    checkMinDate: function(day, month, year) {
-      var lowerlimit,
-          lowerday,
-          lowermonth,
-          loweryear;
-
-      lowerlimit = this.$element.data('lowerlimit');
-
-      if (lowerlimit === true) {
-        lowerday = this.$element.data('lowerday');
-        lowermonth = this.$element.data('lowermonth');
-        loweryear = this.$element.data('loweryear');
-
-        if ((day < lowerday && month === lowermonth && year === loweryear) || (month < lowermonth && year === loweryear) || (year < loweryear)) {
-          return true;
-        }
-      }
-
-      return false;
-    },
-
-    checkMaxDate: function(day, month, year) {
-      var higherlimit,
-          higherday,
-          highermonth,
-          higheryear;
-
-      higherlimit = this.$element.data('higherlimit');
-
-      if (higherlimit === true) {
-        higherday = this.$element.data('higherday');
-        highermonth = this.$element.data('highermonth');
-        higheryear = this.$element.data('higheryear');
-
-        if ((day > higherday && month === highermonth && year === higheryear) || (month > highermonth && year === higheryear) || (year > higheryear)) {
-          return true;
-        }
-      }
-
-      return false;
-    },
-
-    checkToday: function(day, month, year) {
-      var today;
-
-      today = new Date();
-
-      if (day === today.getDate() && month === today.getMonth() && year === today.getFullYear()) {
-        return true;
-      }
-
-      return false;
-    },
-
-    updateCalendarDays: function($calendar, month, year) {
-      var $days,
-          numDaysPreviousMonth,
-          numDaysCurrentMonth,
-          firstDay,
-          lastDay,
-          row,
-          day;
-
-      $days = $calendar.find('table > tbody').html('');
-      numDaysPreviousMonth = getNumDaysInMonth(month, year);
-      numDaysCurrentMonth = getNumDaysInMonth(month + 1, year);
-      firstDay = getDayOfWeek(month, year, 1);
-      lastDay = getDayOfWeek(month, year, numDaysCurrentMonth);
-
-      row = '';
-      for (day=0; day < (firstDay - BFHDayOfWeekStart + 7) % 7; day=day+1) {
-        row += '<td class="off">' + (numDaysPreviousMonth - (firstDay - BFHDayOfWeekStart + 7) % 7 + day + 1) + '</td>';
-      }
-
-      for (day=1; day <= numDaysCurrentMonth; day=day+1) {
-        if (this.checkMinDate(day, month, year)) {
-          row += '<td data-day="' + day + '" class="off">' + day + '</td>';
-        } else if (this.checkMaxDate(day, month, year)) {
-          row += '<td data-day="' + day + '" class="off">' + day + '</td>';
-        } else if (this.checkToday(day, month, year)) {
-          row += '<td data-day="' + day + '" class="today">' + day + '</td>';
-        } else {
-          row += '<td data-day="' + day + '">' + day + '</td>';
-        }
-        if (getDayOfWeek(month, year, day) === (6 + BFHDayOfWeekStart) % 7) {
-          $days.append('<tr>' + row + '</tr>');
-          row = '';
-        }
-      }
-
-      for (day=1; day <= (7 - ((lastDay + 1 - BFHDayOfWeekStart + 7) % 7)) % 7 + 1; day=day+1) {
-        row += '<td class="off">' + day + '</td>';
-        if (day === (7 - ((lastDay + 1 - BFHDayOfWeekStart + 7) % 7)) % 7) {
-          $days.append('<tr>' + row + '</tr>');
-        }
-      }
-    },
-
-    updateCalendar: function () {
-      var $calendar,
-          month,
-          year;
-
-      $calendar = this.$element.find('.bfh-datepicker-calendar');
-      month = this.$element.data('month');
-      year = this.$element.data('year');
-
-      this.updateCalendarHeader($calendar, month, year);
-      this.updateCalendarDays($calendar, month, year);
-    },
-
-    previousMonth: function () {
-      var $this,
-          $parent,
-          $datePicker;
-
-      $this = $(this);
-      $parent = getParent($this);
-
-      if (Number($parent.data('month')) === 0) {
-        $parent.data('month', 11);
-        $parent.data('year', Number($parent.data('year')) - 1);
-      } else {
-        $parent.data('month', Number($parent.data('month')) - 1);
-      }
-
-      $datePicker = $parent.data('bfhdatepicker');
-      $datePicker.updateCalendar();
-
-      return false;
-    },
-
-    nextMonth: function () {
-      var $this,
-          $parent,
-          $datePicker;
-
-      $this = $(this);
-      $parent = getParent($this);
-
-      if (Number($parent.data('month')) === 11) {
-        $parent.data('month', 0);
-        $parent.data('year', Number($parent.data('year')) + 1);
-      } else {
-        $parent.data('month', Number($parent.data('month')) + 1);
-      }
-
-      $datePicker = $parent.data('bfhdatepicker');
-      $datePicker.updateCalendar();
-
-      return false;
-    },
-
-    previousYear: function () {
-      var $this,
-          $parent,
-          $datePicker;
-
-      $this = $(this);
-      $parent = getParent($this);
-
-      $parent.data('year', Number($parent.data('year')) - 1);
-
-      $datePicker = $parent.data('bfhdatepicker');
-      $datePicker.updateCalendar();
-
-      return false;
-    },
-
-    nextYear: function () {
-      var $this,
-          $parent,
-          $datePicker;
-
-      $this = $(this);
-      $parent = getParent($this);
-
-      $parent.data('year', Number($parent.data('year')) + 1);
-
-      $datePicker = $parent.data('bfhdatepicker');
-      $datePicker.updateCalendar();
-
-      return false;
-    },
-
-    select: function (e) {
-      var $this,
-          $parent,
-          $datePicker,
-          month,
-          year,
-          day;
-
-      $this = $(this);
-
-      e.preventDefault();
-      e.stopPropagation();
-
-      $parent = getParent($this);
-      $datePicker = $parent.data('bfhdatepicker');
-      month = $parent.data('month');
-      year = $parent.data('year');
-      day = $this.data('day');
-
-      $parent.val(formatDate($datePicker.options.format, month, year, day));
-      $parent.trigger('change.bfhdatepicker');
-
-      if ($datePicker.options.close === true) {
-        clearMenus();
-      }
-    },
-
-    toggle: function (e) {
-      var $this,
-          $parent,
-          isActive;
-
-      $this = $(this);
-      $parent = getParent($this);
-
-      if ($parent.is('.disabled') || $parent.attr('disabled') !== undefined) {
-        return true;
-      }
-
-      isActive = $parent.hasClass('open');
-
-      clearMenus();
-
-      if (!isActive) {
-        $parent.trigger(e = $.Event('show.bfhdatepicker'));
-
-        if (e.isDefaultPrevented()) {
-          return true;
-        }
-
-        $parent
-          .toggleClass('open')
-          .trigger('shown.bfhdatepicker');
-
-        $this.focus();
-      }
-
-      return false;
-    }
-  };
-
-  function getNumDaysInMonth(month, year) {
-    return new Date(year, month, 0).getDate();
-  }
-
-  function getDayOfWeek(month, year, day) {
-    return new Date(year, month, day).getDay();
-  }
-
-  function formatDate(format, month, year, day) {
-    month += 1;
-    month = String(month);
-    day = String(day);
-
-    if (month.length === 1) {
-      month = '0' + month;
-    }
-    if (day.length === 1) {
-      day = '0' + day;
-    }
-
-    return format.replace('m', month).replace('y', year).replace('d', day);
-  }
-
-  function getDatePart(format, date, part) {
-    var partPositions,
-        partPosition,
-        parts;
-
-    partPositions = [
-      {'part': 'm', 'position': format.indexOf('m')},
-      {'part': 'y', 'position': format.indexOf('y')},
-      {'part': 'd', 'position': format.indexOf('d')}
-    ];
-
-    partPositions.sort(function(a, b) {return a.position - b.position;});
-
-    parts = date.match(/(\d+)/g);
-
-    for (partPosition in partPositions) {
-      if (partPositions.hasOwnProperty(partPosition)) {
-        if (partPositions[partPosition].part === part) {
-          return Number(parts[partPosition]).toString();
-        }
-      }
-    }
-  }
-
-  function clearMenus() {
-    var $parent;
-
-    $(toggle).each(function (e) {
-      $parent = getParent($(this));
-
-      if (!$parent.hasClass('open')) {
-        return true;
-      }
-
-      $parent.trigger(e = $.Event('hide.bfhdatepicker'));
-
-      if (e.isDefaultPrevented()) {
-        return true;
-      }
-
-      $parent
-        .removeClass('open')
-        .trigger('hidden.bfhdatepicker');
-    });
-  }
-
-  function getParent($this) {
-    return $this.closest('.bfh-datepicker');
-  }
-
-
-  /* DATEPICKER PLUGIN DEFINITION
-   * ========================== */
-
-  var old = $.fn.bfhdatepicker;
-
-  $.fn.bfhdatepicker = function (option) {
-    return this.each(function () {
-      var $this,
-          data,
-          options;
-
-      $this = $(this);
-      data = $this.data('bfhdatepicker');
-      options = typeof option === 'object' && option;
-      this.type = 'bfhdatepicker';
-
-      if (!data) {
-        $this.data('bfhdatepicker', (data = new BFHDatePicker(this, options)));
-      }
-      if (typeof option === 'string') {
-        data[option].call($this);
-      }
-    });
-  };
-
-  $.fn.bfhdatepicker.Constructor = BFHDatePicker;
-
-  $.fn.bfhdatepicker.defaults = {
-    icon: 'glyphicon glyphicon-calendar',
-    align: 'left',
-    input: 'form-control',
-    placeholder: '',
-    name: '',
-    date: 'today',
-    format: 'm/d/y',
-    min: '',
-    max: '',
-    close: true
-  };
-
-
-  /* DATEPICKER NO CONFLICT
-   * ========================== */
-
-  $.fn.bfhdatepicker.noConflict = function () {
-    $.fn.bfhdatepicker = old;
-    return this;
-  };
-
-
-  /* DATEPICKER VALHOOKS
-   * ========================== */
-
-  var origHook;
-  if ($.valHooks.div){
-    origHook = $.valHooks.div;
-  }
-  $.valHooks.div = {
-    get: function(el) {
-      if ($(el).hasClass('bfh-datepicker')) {
-        return $(el).find('input[type="text"]').val();
-      } else if (origHook) {
-        return origHook.get(el);
-      }
-    },
-    set: function(el, val) {
-      if ($(el).hasClass('bfh-datepicker')) {
-        $(el).find('input[type="text"]').val(val);
-      } else if (origHook) {
-        return origHook.set(el,val);
-      }
-    }
-  };
-
-
-  /* DATEPICKER DATA-API
-   * ============== */
-
-  $(document).ready( function () {
-    $('div.bfh-datepicker').each(function () {
-      var $datepicker;
-
-      $datepicker = $(this);
-
-      $datepicker.bfhdatepicker($datepicker.data());
-    });
-  });
-
-
-  /* APPLY TO STANDARD DATEPICKER ELEMENTS
-   * =================================== */
-
-  $(document)
-    .on('click.bfhdatepicker.data-api', clearMenus);
-
-}(window.jQuery);
-
-/* ==========================================================
- * bootstrap-formhelpers-fonts.js
- * https://github.com/vlamanna/BootstrapFormHelpers
- * ==========================================================
- * Copyright 2012 Vincent Lamanna
- * contributed by Aaron Collegeman, Squidoo, 2012
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================================================== */
-
-+function ($) {
-
-  'use strict';
-
-
-  /* FONTS CLASS DEFINITION
-   * ====================== */
-
-  var BFHFonts = function (element, options) {
-    this.options = $.extend({}, $.fn.bfhfonts.defaults, options);
-    this.$element = $(element);
-
-    if (this.$element.is('select')) {
-      this.addFonts();
-    }
-
-    if (this.$element.hasClass('bfh-selectbox')) {
-      this.addBootstrapFonts();
-    }
-  };
-
-  BFHFonts.prototype = {
-
-    constructor: BFHFonts,
-
-    getFonts: function() {
-      var font,
-          fonts;
-
-      if (this.options.available) {
-        fonts = [];
-
-        this.options.available = this.options.available.split(',');
-
-        for (font in BFHFontsList) {
-          if (BFHFontsList.hasOwnProperty(font)) {
-            if ($.inArray(font, this.options.available) >= 0) {
-              fonts[font] = BFHFontsList[font];
-            }
-          }
-        }
-
-        return fonts;
-      } else {
-        return BFHFontsList;
-      }
-    },
-
-    addFonts: function () {
-      var value,
-          font,
-          fonts;
-
-      value = this.options.font;
-      fonts = this.getFonts();
-
-      this.$element.html('');
-
-      if (this.options.blank === true) {
-        this.$element.append('<option value=""></option>');
-      }
-
-      for (font in fonts) {
-        if (fonts.hasOwnProperty(font)) {
-          this.$element.append('<option value="' + font + '">' + font + '</option>');
-        }
-      }
-
-      this.$element.val(value);
-    },
-
-    addBootstrapFonts: function() {
-      var $input,
-          $toggle,
-          $options,
-          value,
-          font,
-          fonts;
-
-      value = this.options.font;
-      $input = this.$element.find('input[type="hidden"]');
-      $toggle = this.$element.find('.bfh-selectbox-option');
-      $options = this.$element.find('[role=option]');
-      fonts = this.getFonts();
-
-      $options.html('');
-
-      if (this.options.blank === true) {
-        $options.append('<li><a tabindex="-1" href="#" data-option=""></a></li>');
-      }
-
-      for (font in fonts) {
-        if (fonts.hasOwnProperty(font)) {
-          $options.append('<li><a tabindex="-1" href="#" style=\'font-family: ' + fonts[font] + '\' data-option="' + font + '">' + font + '</a></li>');
-        }
-      }
-
-      this.$element.val(value);
-    }
-
-  };
-
-
-  /* FONTS PLUGIN DEFINITION
-   * ======================= */
-
-  var old = $.fn.bfhfonts;
-
-  $.fn.bfhfonts = function (option) {
-    return this.each(function () {
-      var $this,
-          data,
-          options;
-
-      $this = $(this);
-      data = $this.data('bfhfonts');
-      options = typeof option === 'object' && option;
-
-      if (!data) {
-        $this.data('bfhfonts', (data = new BFHFonts(this, options)));
-      }
-      if (typeof option === 'string') {
-        data[option].call($this);
-      }
-    });
-  };
-
-  $.fn.bfhfonts.Constructor = BFHFonts;
-
-  $.fn.bfhfonts.defaults = {
-    font: '',
-    available: '',
-    blank: true
-  };
-
-
-  /* FONTS NO CONFLICT
-   * ========================== */
-
-  $.fn.bfhfonts.noConflict = function () {
-    $.fn.bfhfonts = old;
-    return this;
-  };
-
-
-  /* FONTS DATA-API
-   * ============== */
-
-  $(document).ready( function () {
-    $('form select.bfh-fonts, span.bfh-fonts, div.bfh-fonts').each(function () {
-      var $fonts;
-
-      $fonts = $(this);
-
-      if ($fonts.hasClass('bfh-selectbox')) {
-        $fonts.bfhselectbox($fonts.data());
-      }
-      $fonts.bfhfonts($fonts.data());
-    });
-  });
-
-}(window.jQuery);
-
-/* ==========================================================
- * bootstrap-formhelpers-fontsizes.js
- * https://github.com/vlamanna/BootstrapFormHelpers
- * ==========================================================
- * Copyright 2012 Vincent Lamanna
- * contributed by Aaron Collegeman, Squidoo, 2012
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================================================== */
-
-+function ($) {
-
-  'use strict';
-
-
-  /* FONTSIZES CLASS DEFINITION
-   * ====================== */
-
-  var BFHFontSizes = function (element, options) {
-    this.options = $.extend({}, $.fn.bfhfontsizes.defaults, options);
-    this.$element = $(element);
-
-    if (this.$element.is('select')) {
-      this.addFontSizes();
-    }
-
-    if (this.$element.hasClass('bfh-selectbox')) {
-      this.addBootstrapFontSizes();
-    }
-  };
-
-  BFHFontSizes.prototype = {
-
-    constructor: BFHFontSizes,
-
-    getFontsizes: function() {
-      var fontsize,
-          fontsizes;
-
-      if (this.options.available) {
-        fontsizes = [];
-
-        this.options.available = this.options.available.split(',');
-
-        for (fontsize in BFHFontSizesList) {
-          if (BFHFontSizesList.hasOwnProperty(fontsize)) {
-            if ($.inArray(fontsize, this.options.available) >= 0) {
-              fontsizes[fontsize] = BFHFontSizesList[fontsize];
-            }
-          }
-        }
-
-        return fontsizes;
-      } else {
-        return BFHFontSizesList;
-      }
-    },
-
-    addFontSizes: function () {
-      var value,
-          fontsize,
-          fontsizes;
-
-      value = this.options.fontsize;
-      fontsizes = this.getFontsizes();
-
-      this.$element.html('');
-
-      if (this.options.blank === true) {
-        this.$element.append('<option value=""></option>');
-      }
-
-      for (fontsize in fontsizes) {
-        if (fontsizes.hasOwnProperty(fontsize)) {
-          this.$element.append('<option value="' + fontsize + '">' + fontsizes[fontsize] + '</option>');
-        }
-      }
-
-      this.$element.val(value);
-    },
-
-    addBootstrapFontSizes: function() {
-      var $input,
-          $toggle,
-          $options,
-          value,
-          fontsize,
-          fontsizes;
-
-      value = this.options.fontsize;
-      $input = this.$element.find('input[type="hidden"]');
-      $toggle = this.$element.find('.bfh-selectbox-option');
-      $options = this.$element.find('[role=option]');
-      fontsizes = this.getFontsizes();
-
-      $options.html('');
-
-      if (this.options.blank === true) {
-        $options.append('<li><a tabindex="-1" href="#" data-option=""></a></li>');
-      }
-
-      for (fontsize in fontsizes) {
-        if (fontsizes.hasOwnProperty(fontsize)) {
-          $options.append('<li><a tabindex="-1" href="#" data-option="' + fontsize + '">' + fontsizes[fontsize] + '</a></li>');
-        }
-      }
-
-      this.$element.val(value);
-    }
-
-  };
-
-
-  /* FONTSIZES PLUGIN DEFINITION
-   * ======================= */
-
-  var old = $.fn.bfhfontsizes;
-
-  $.fn.bfhfontsizes = function (option) {
-    return this.each(function () {
-      var $this,
-          data,
-          options;
-
-      $this = $(this);
-      data = $this.data('bfhfontsizes');
-      options = typeof option === 'object' && option;
-
-      if (!data) {
-        $this.data('bfhfontsizes', (data = new BFHFontSizes(this, options)));
-      }
-      if (typeof option === 'string') {
-        data[option].call($this);
-      }
-    });
-  };
-
-  $.fn.bfhfontsizes.Constructor = BFHFontSizes;
-
-  $.fn.bfhfontsizes.defaults = {
-    fontsize: '',
-    available: '',
-    blank: true
-  };
-
-
-  /* FONTSIZES NO CONFLICT
-   * ========================== */
-
-  $.fn.bfhfontsizes.noConflict = function () {
-    $.fn.bfhfontsizes = old;
-    return this;
-  };
-
-
-  /* FONTSIZES DATA-API
-   * ============== */
-
-  $(document).ready( function () {
-    $('form select.bfh-fontsizes, span.bfh-fontsizes, div.bfh-fontsizes').each(function () {
-      var $fontSizes;
-
-      $fontSizes = $(this);
-
-      if ($fontSizes.hasClass('bfh-selectbox')) {
-        $fontSizes.bfhselectbox($fontSizes.data());
-      }
-      $fontSizes.bfhfontsizes($fontSizes.data());
-    });
-  });
-
-}(window.jQuery);
-
-/* ==========================================================
- * bootstrap-formhelpers-googlefonts.js
- * https://github.com/vlamanna/BootstrapFormHelpers
- * ==========================================================
- * Copyright 2012 Vincent Lamanna
- * contributed by Aaron Collegeman, Squidoo, 2012
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================================================== */
-
-+function ($) {
-
-  'use strict';
-
-
-  /* GOOGLE FONTS CLASS DEFINITION
-   * ====================== */
-
-  var BFHGoogleFonts = function (element, options) {
-    this.options = $.extend({}, $.fn.bfhgooglefonts.defaults, options);
-    this.$element = $(element);
-
-    if (this.$element.is('select')) {
-      this.addFonts();
-    }
-
-    if (this.$element.hasClass('bfh-selectbox')) {
-      this.addBootstrapFonts();
-    }
-  };
-
-  BFHGoogleFonts.prototype = {
-
-    constructor: BFHGoogleFonts,
-
-    getFonts: function() {
-      var font,
-          fonts;
-
-      fonts = [];
-
-      if (this.options.subset) {
-        for (font in BFHGoogleFontsList.items) {
-          if (BFHGoogleFontsList.items.hasOwnProperty(font)) {
-            if ($.inArray(this.options.subset, BFHGoogleFontsList.items[font].subsets) >= 0) {
-              fonts[BFHGoogleFontsList.items[font].family] = {
-                'info': BFHGoogleFontsList.items[font],
-                'index': parseInt(font, 10)
-              };
-            }
-          }
-        }
-      } else if (this.options.available) {
-        this.options.available = this.options.available.split(',');
-
-        for (font in BFHGoogleFontsList.items) {
-          if (BFHGoogleFontsList.items.hasOwnProperty(font)) {
-            if ($.inArray(BFHGoogleFontsList.items[font].family, this.options.available) >= 0) {
-              fonts[BFHGoogleFontsList.items[font].family] = {
-                'info': BFHGoogleFontsList.items[font],
-                'index': parseInt(font, 10)
-              };
-            }
-          }
-        }
-      } else {
-        for (font in BFHGoogleFontsList.items) {
-          if (BFHGoogleFontsList.items.hasOwnProperty(font)) {
-            fonts[BFHGoogleFontsList.items[font].family] = {
-              'info': BFHGoogleFontsList.items[font],
-              'index': parseInt(font, 10)
-            };
-          }
-        }
-      }
-
-      return fonts;
-    },
-
-    addFonts: function () {
-      var value,
-          font,
-          fonts;
-
-      value = this.options.font;
-      fonts = this.getFonts();
-
-      this.$element.html('');
-
-      if (this.options.blank === true) {
-        this.$element.append('<option value=""></option>');
-      }
-
-      for (font in fonts) {
-        if (fonts.hasOwnProperty(font)) {
-          this.$element.append('<option value="' + fonts[font].info.family + '">' + fonts[font].info.family + '</option>');
-        }
-      }
-
-      this.$element.val(value);
-    },
-
-    addBootstrapFonts: function() {
-      var $input,
-          $toggle,
-          $options,
-          value,
-          font,
-          fonts;
-
-      value = this.options.font;
-      $input = this.$element.find('input[type="hidden"]');
-      $toggle = this.$element.find('.bfh-selectbox-option');
-      $options = this.$element.find('[role=option]');
-      fonts = this.getFonts();
-
-      $options.html('');
-
-      if (this.options.blank === true) {
-        $options.append('<li><a tabindex="-1" href="#" data-option="" style="background-image: none;"></a></li>');
-      }
-
-      for (font in fonts) {
-        if (fonts.hasOwnProperty(font)) {
-          $options.append('<li><a tabindex="-1" href="#" style="background-position: 0 -' + ((fonts[font].index * 30) - 2) + 'px;" data-option="' + fonts[font].info.family + '">' + fonts[font].info.family + '</a></li>');
-        }
-      }
-
-      this.$element.val(value);
-    }
-
-  };
-
-
-  /* GOOGLE FONTS PLUGIN DEFINITION
-   * ======================= */
-
-  var old = $.fn.bfhgooglefonts;
-
-  $.fn.bfhgooglefonts = function (option) {
-    return this.each(function () {
-      var $this,
-          data,
-          options;
-
-      $this = $(this);
-      data = $this.data('bfhgooglefonts');
-      options = typeof option === 'object' && option;
-
-      if (!data) {
-        $this.data('bfhgooglefonts', (data = new BFHGoogleFonts(this, options)));
-      }
-      if (typeof option === 'string') {
-        data[option].call($this);
-      }
-    });
-  };
-
-  $.fn.bfhgooglefonts.Constructor = BFHGoogleFonts;
-
-  $.fn.bfhgooglefonts.defaults = {
-    font: '',
-    available: '',
-    subset: '',
-    blank: true
-  };
-
-
-  /* GOOGLE FONTS NO CONFLICT
-   * ========================== */
-
-  $.fn.bfhgooglefonts.noConflict = function () {
-    $.fn.bfhgooglefonts = old;
-    return this;
-  };
-
-
-  /* GOOGLE FONTS DATA-API
-   * ============== */
-
-  $(document).ready( function () {
-    $('form select.bfh-googlefonts, span.bfh-googlefonts, div.bfh-googlefonts').each(function () {
-      var $googleFonts;
-
-      $googleFonts = $(this);
-
-      if ($googleFonts.hasClass('bfh-selectbox')) {
-        $googleFonts.bfhselectbox($googleFonts.data());
-      }
-      $googleFonts.bfhgooglefonts($googleFonts.data());
-    });
-  });
-
-}(window.jQuery);
-
-/* ==========================================================
- * bootstrap-formhelpers-languages.js
- * https://github.com/vlamanna/BootstrapFormHelpers
- * ==========================================================
- * Copyright 2012 Vincent Lamanna
- * Contribution 2013 Tomasz Kuter
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================================================== */
-
-+function ($) {
-
-  'use strict';
-
-
-  /* LANGUAGES CLASS DEFINITION
-   * ====================== */
-
-  var BFHLanguages = function (element, options) {
-    this.options = $.extend({}, $.fn.bfhlanguages.defaults, options);
-    this.$element = $(element);
-
-    if (this.$element.is('select')) {
-      this.addLanguages();
-    }
-
-    if (this.$element.is('span')) {
-      this.displayLanguage();
-    }
-
-    if (this.$element.hasClass('bfh-selectbox')) {
-      this.addBootstrapLanguages();
-    }
-  };
-
-  BFHLanguages.prototype = {
-
-    constructor: BFHLanguages,
-
-    getLanguages: function () {
-      var split,
-          language,
-          languages;
-
-      if (this.options.available) {
-        languages = [];
-
-        this.options.available = this.options.available.split(',');
-
-        for (language in this.options.available) {
-          if (this.options.available.hasOwnProperty(language)) {
-            if (this.options.available[language].indexOf('_') !== -1) {
-              split = this.options.available[language].split('_');
-              languages[split[0]] = {name: BFHLanguagesList[split[0]], country: split[1]};
-            } else {
-              languages[this.options.available[language]] = BFHLanguagesList[this.options.available[language]];
-            }
-          }
-        }
-
-        return languages;
-      } else {
-        return BFHLanguagesList;
-      }
-    },
-
-    addLanguages: function () {
-      var split,
-          value,
-          languages,
-          language;
-
-      value = this.options.language;
-      languages = this.getLanguages();
-
-      this.$element.html('');
-
-      if (this.options.blank === true) {
-        this.$element.append('<option value=""></option>');
-      }
-
-      for (language in languages) {
-        if (languages.hasOwnProperty(language)) {
-          if (languages[language].hasOwnProperty('name')) {
-            this.$element.append('<option value="' + language + '_' + languages[language].country + '">' + languages[language].name.toProperCase() + ' (' + BFHCountriesList[languages[language].country] + ')</option>');
-          } else {
-            this.$element.append('<option value="' + language + '">' + languages[language].toProperCase() + '</option>');
-          }
-        }
-      }
-
-      this.$element.val(value);
-    },
-
-    addBootstrapLanguages: function() {
-      var $input,
-          $toggle,
-          $options,
-          value,
-          languages,
-          language,
-          split;
-
-      value = this.options.language;
-      $input = this.$element.find('input[type="hidden"]');
-      $toggle = this.$element.find('.bfh-selectbox-option');
-      $options = this.$element.find('[role=option]');
-      languages = this.getLanguages();
-
-      $options.html('');
-
-      if (this.options.blank === true) {
-        $options.append('<li><a tabindex="-1" href="#" data-option=""></a></li>');
-      }
-
-      for (language in languages) {
-        if (languages.hasOwnProperty(language)) {
-          if (languages[language].hasOwnProperty('name')) {
-            if (this.options.flags === true) {
-              $options.append('<li><a tabindex="-1" href="#" data-option="' + language + '_' + languages[language].country + '"><i class="glyphicon bfh-flag-' + languages[language].country + '"></i>' + languages[language].name.toProperCase() + '</a></li>');
-            } else {
-              $options.append('<li><a tabindex="-1" href="#" data-option="' + language + '_' + languages[language].country + '">' + languages[language].name.toProperCase() + ' (' + BFHCountriesList[languages[language].country] + ')</a></li>');
-            }
-          } else {
-            $options.append('<li><a tabindex="-1" href="#" data-option="' + language + '">' + languages[language] + '</a></li>');
-          }
-        }
-      }
-
-      this.$element.val(value);
-    },
-
-    displayLanguage: function () {
-      var value;
-
-      value = this.options.language;
-
-      if (value.indexOf('_') !== -1) {
-        value = value.split('_');
-        if (this.options.flags === true) {
-          this.$element.html('<i class="glyphicon bfh-flag-' + value[1] + '"></i> ' + BFHLanguagesList[value[0]].toProperCase());
-        } else {
-          this.$element.html(BFHLanguagesList[value[0]].toProperCase() + ' (' + BFHCountriesList[value[1]] + ')');
-        }
-      } else {
-        this.$element.html(BFHLanguagesList[value].toProperCase());
-      }
-    }
-
-  };
-
-
-  /* LANGUAGES PLUGIN DEFINITION
-   * ======================= */
-
-  var old = $.fn.bfhlanguages;
-
-  $.fn.bfhlanguages = function (option) {
-    return this.each(function () {
-      var $this,
-          data,
-          options;
-
-      $this = $(this);
-      data = $this.data('bfhlanguages');
-      options = typeof option === 'object' && option;
-
-      if (!data) {
-        $this.data('bfhlanguages', (data = new BFHLanguages(this, options)));
-      }
-      if (typeof option === 'string') {
-        data[option].call($this);
-      }
-    });
-  };
-
-  $.fn.bfhlanguages.Constructor = BFHLanguages;
-
-  $.fn.bfhlanguages.defaults = {
-    language: '',
-    available: '',
-    flags: false,
-    blank: true
-  };
-
-
-  /* LANGUAGES NO CONFLICT
-   * ========================== */
-
-  $.fn.bfhlanguages.noConflict = function () {
-    $.fn.bfhlanguages = old;
-    return this;
-  };
-
-
-  /* LANGUAGES DATA-API
-   * ============== */
-
-  $(document).ready( function () {
-    $('form select.bfh-languages, span.bfh-languages, div.bfh-languages').each(function () {
-      var $languages;
-
-      $languages = $(this);
-
-      if ($languages.hasClass('bfh-selectbox')) {
-        $languages.bfhselectbox($languages.data());
-      }
-      $languages.bfhlanguages($languages.data());
-    });
-  });
-
-
-  /* LANGUAGES HELPERS
-   * ============== */
-
-  String.prototype.toProperCase = function () {
-    return this.replace(/\w\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();});
-  };
-
-}(window.jQuery);
-
-/* ==========================================================
- * bootstrap-formhelpers-number.js
- * https://github.com/vlamanna/BootstrapFormHelpers
- * ==========================================================
- * Copyright 2012 Vincent Lamanna
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================================================== */
-
-+function ($) {
-
-  'use strict';
-
-
-  /* NUMBER CLASS DEFINITION
-   * ====================== */
-
-  var BFHNumber = function (element, options) {
-    this.options = $.extend({}, $.fn.bfhnumber.defaults, options);
-    this.$element = $(element);
-
-    this.initInput();
-  };
-
-  BFHNumber.prototype = {
-
-    constructor: BFHNumber,
-
-    initInput: function() {
-      var value;
-      
-      if (this.options.buttons === true) {
-        this.$element.wrap('<div class="input-group"></div>');
-        this.$element.parent().append('<span class="input-group-addon bfh-number-btn inc"><span class="glyphicon glyphicon-chevron-up"></span></span>');
-        this.$element.parent().append('<span class="input-group-addon bfh-number-btn dec"><span class="glyphicon glyphicon-chevron-down"></span></span>');
-      }
-      
-      this.$element.on('change.bfhnumber.data-api', BFHNumber.prototype.change);
-        
-      if (this.options.keyboard === true) {
-        this.$element.on('keydown.bfhnumber.data-api', BFHNumber.prototype.keydown);
-      }
-      
-      if (this.options.buttons === true) {
-        this.$element.parent()
-          .on('mousedown.bfhnumber.data-api', '.inc', BFHNumber.prototype.btninc)
-          .on('mousedown.bfhnumber.data-api', '.dec', BFHNumber.prototype.btndec);
-      }
-      
-      this.formatNumber();
-    },
-    
-    keydown: function(e) {
-      var $this;
-      
-      $this = $(this).data('bfhnumber');
-      
-      if ($this.$element.is('.disabled') || $this.$element.attr('disabled') !== undefined) {
-        return true;
-      }
-      
-      switch (e.which) {
-        case 38:
-          $this.increment();
-          break;
-        case 40:
-          $this.decrement();
-          break;
-        default:
-      }
-      
-      return true;
-    },
-    
-    mouseup: function(e) {
-      var $this,
-          timer,
-          interval;
-      
-      $this = e.data.btn;
-      timer = $this.$element.data('timer');
-      interval = $this.$element.data('interval');
-      
-      clearTimeout(timer);
-      clearInterval(interval);
-    },
-    
-    btninc: function() {
-      var $this,
-          timer;
-      
-      $this = $(this).parent().find('.bfh-number').data('bfhnumber');
-      
-      if ($this.$element.is('.disabled') || $this.$element.attr('disabled') !== undefined) {
-        return true;
-      }
-      
-      $this.increment();
-      
-      timer = setTimeout(function() {
-        var interval;
-        interval = setInterval(function() {
-          $this.increment();
-        }, 80);
-        $this.$element.data('interval', interval);
-      }, 750);
-      $this.$element.data('timer', timer);
-      
-      $(document).one('mouseup', {btn: $this}, BFHNumber.prototype.mouseup);
-      
-      return true;
-    },
-    
-    btndec: function() {
-      var $this,
-          timer;
-      
-      $this = $(this).parent().find('.bfh-number').data('bfhnumber');
-      
-      if ($this.$element.is('.disabled') || $this.$element.attr('disabled') !== undefined) {
-        return true;
-      }
-      
-      $this.decrement();
-      
-      timer = setTimeout(function() {
-        var interval;
-        interval = setInterval(function() {
-          $this.decrement();
-        }, 80);
-        $this.$element.data('interval', interval);
-      }, 750);
-      $this.$element.data('timer', timer);
-      
-      $(document).one('mouseup', {btn: $this}, BFHNumber.prototype.mouseup);
-      
-      return true;
-    },
-    
-    change: function() {
-      var $this;
-
-      $this = $(this).data('bfhnumber');
-
-      if ($this.$element.is('.disabled') || $this.$element.attr('disabled') !== undefined) {
-        return true;
-      }
-
-      $this.formatNumber();
-
-      return true;
-    },
-    
-    increment: function() {
-      var value;
-      
-      value = this.getValue();
-      
-      value = value + 1;
-      
-      this.$element.val(value).change();
-    },
-    
-    decrement: function() {
-      var value;
-      
-      value = this.getValue();
-      
-      value = value - 1;
-      
-      this.$element.val(value).change();
-    },
-    
-    getValue: function() {
-      var value;
-      
-      value = this.$element.val();
-      if (value !== '-1') {
-        value = String(value).replace(/\D/g, '');
-      }
-      if (String(value).length === 0) {
-        value = this.options.min;
-      }
-      
-      return parseInt(value);
-    },
-    
-    formatNumber: function() {
-      var value,
-          maxLength,
-          length,
-          zero;
-      
-      value = this.getValue();
-      
-      if (value > this.options.max) {
-        if (this.options.wrap === true) {
-          value = this.options.min;
-        } else {
-          value = this.options.max;
-        }
-      }
-      
-      if (value < this.options.min) {
-        if (this.options.wrap === true) {
-          value = this.options.max;
-        } else {
-          value = this.options.min;
-        }
-      }
-      
-      if (this.options.zeros === true) {
-        maxLength = String(this.options.max).length;
-        length = String(value).length;
-        for (zero=length; zero < maxLength; zero = zero + 1) {
-          value = '0' + value;
-        }
-      }
-      
-      if (value !== this.$element.val()) {
-        this.$element.val(value);
-      }
-    }
-
-  };
-
-  /* NUMBER PLUGIN DEFINITION
-   * ======================= */
-
-  var old = $.fn.bfhnumber;
-
-  $.fn.bfhnumber = function (option) {
-    return this.each(function () {
-      var $this,
-          data,
-          options;
-
-      $this = $(this);
-      data = $this.data('bfhnumber');
-      options = typeof option === 'object' && option;
-
-      if (!data) {
-        $this.data('bfhnumber', (data = new BFHNumber(this, options)));
-      }
-      if (typeof option === 'string') {
-        data[option].call($this);
-      }
-    });
-  };
-
-  $.fn.bfhnumber.Constructor = BFHNumber;
-
-  $.fn.bfhnumber.defaults = {
-    min: 0,
-    max: 9999,
-    zeros: false,
-    keyboard: true,
-    buttons: true,
-    wrap: false
-  };
-
-
-  /* NUMBER NO CONFLICT
-   * ========================== */
-
-  $.fn.bfhnumber.noConflict = function () {
-    $.fn.bfhnumber = old;
-    return this;
-  };
-
-
-  /* NUMBER DATA-API
-   * ============== */
-
-  $(document).ready( function () {
-    $('form input[type="text"].bfh-number, form input[type="number"].bfh-number').each(function () {
-      var $number;
-
-      $number = $(this);
-
-      $number.bfhnumber($number.data());
-    });
-  });
-
-
-  /* APPLY TO STANDARD NUMBER ELEMENTS
-   * =================================== */
-
-
-}(window.jQuery);
-
-/* ==========================================================
- * bootstrap-formhelpers-phone.js
- * https://github.com/vlamanna/BootstrapFormHelpers
- * ==========================================================
- * Copyright 2012 Vincent Lamanna
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================================================== */
-
-+function ($) {
-
-  'use strict';
-
-
-  /* PHONE CLASS DEFINITION
-   * ====================== */
-
-  var BFHPhone = function (element, options) {
-    this.options = $.extend({}, $.fn.bfhphone.defaults, options);
-    this.$element = $(element);
-
-    if (this.$element.is('input[type="text"]') || this.$element.is('input[type="tel"]')) {
-      this.addFormatter();
-    }
-
-    if (this.$element.is('span')) {
-      this.displayFormatter();
-    }
-  };
-
-  BFHPhone.prototype = {
-
-    constructor: BFHPhone,
-
-    addFormatter: function() {
-      var $country;
-
-      if (this.options.country !== '') {
-        $country = $(document).find('#' + this.options.country);
-
-        if ($country.length !== 0) {
-          this.options.format = BFHPhoneFormatList[$country.val()];
-          $country.on('change', {phone: this}, this.changeCountry);
-        } else {
-          this.options.format = BFHPhoneFormatList[this.options.country];
-        }
-      }
-      
-      this.$element.on('keyup.bfhphone.data-api', BFHPhone.prototype.change);
-
-      this.loadFormatter();
-    },
-
-    loadFormatter: function () {
-      var formattedNumber;
-
-      formattedNumber = formatNumber(this.options.format, this.$element.val());
-
-      this.$element.val(formattedNumber);
-    },
-
-    displayFormatter: function () {
-      var formattedNumber;
-
-      if (this.options.country !== '') {
-        this.options.format = BFHPhoneFormatList[this.options.country];
-      }
-
-      formattedNumber = formatNumber(this.options.format, this.options.number);
-
-      this.$element.html(formattedNumber);
-    },
-
-    changeCountry: function (e) {
-      var $this,
-          $phone;
-
-      $this = $(this);
-      $phone = e.data.phone;
-
-      $phone.$element.val(String($phone.$element.val()).replace(/\+\d*/g, ''));
-      $phone.options.format = BFHPhoneFormatList[$this.val()];
-
-      $phone.loadFormatter();
-    },
-
-    change: function(e) {
-      var $this,
-          cursorPosition,
-          cursorEnd,
-          formattedNumber;
-
-      $this = $(this).data('bfhphone');
-
-      if ($this.$element.is('.disabled') || $this.$element.attr('disabled') !== undefined) {
-        return true;
-      }
-
-      cursorPosition = getCursorPosition($this.$element[0]);
-
-      cursorEnd = false;
-      if (cursorPosition === $this.$element.val().length) {
-        cursorEnd = true;
-      }
-      
-      if (e.which === 8 && $this.options.format.charAt($this.$element.val().length) !== 'd') {
-        $this.$element.val(String($this.$element.val()).substring(0, $this.$element.val().length - 1));
-      }
-
-      formattedNumber = formatNumber($this.options.format, $this.$element.val());
-      
-      if (formattedNumber === $this.$element.val()) {
-        return true;
-      }
-      
-      $this.$element.val(formattedNumber);
-
-      if (cursorEnd) {
-        cursorPosition = $this.$element.val().length;
-      }
-
-      setCursorPosition($this.$element[0], cursorPosition);
-
-      return true;
-    }
-
-  };
-
-  function formatNumber(format, number) {
-    var formattedNumber,
-        indexFormat,
-        indexNumber,
-        lastCharacter;
-
-    formattedNumber = '';
-    number = String(number).replace(/\D/g, '');
-
-    for (indexFormat = 0, indexNumber = 0; indexFormat < format.length; indexFormat = indexFormat + 1) {
-      if (/\d/g.test(format.charAt(indexFormat))) {
-        if (format.charAt(indexFormat) === number.charAt(indexNumber)) {
-          formattedNumber += number.charAt(indexNumber);
-          indexNumber = indexNumber + 1;
-        } else {
-          formattedNumber += format.charAt(indexFormat);
-        }
-      } else if (format.charAt(indexFormat) !== 'd') {
-        if (number.charAt(indexNumber) !== '' || format.charAt(indexFormat) === '+') {
-          formattedNumber += format.charAt(indexFormat);
-        }
-      } else {
-        if (number.charAt(indexNumber) === '') {
-          formattedNumber += '';
-        } else {
-          formattedNumber += number.charAt(indexNumber);
-          indexNumber = indexNumber + 1;
-        }
-      }
-    }
-    
-    lastCharacter = format.charAt(formattedNumber.length);
-    if (lastCharacter !== 'd') {
-      formattedNumber += lastCharacter;
-    }
-
-    return formattedNumber;
-  }
-
-  function getCursorPosition($element) {
-    var position = 0,
-        selection;
-
-    if (document.selection) {
-      // IE Support
-      $element.focus();
-      selection = document.selection.createRange();
-      selection.moveStart ('character', -$element.value.length);
-      position = selection.text.length;
-    } else if ($element.selectionStart || $element.selectionStart === 0) {
-      position = $element.selectionStart;
-    }
-
-    return position;
-  }
-
-  function setCursorPosition($element, position) {
-    var selection;
-
-    if (document.selection) {
-      // IE Support
-      $element.focus ();
-      selection = document.selection.createRange();
-      selection.moveStart ('character', -$element.value.length);
-      selection.moveStart ('character', position);
-      selection.moveEnd ('character', 0);
-      selection.select ();
-    } else if ($element.selectionStart || $element.selectionStart === 0) {
-      $element.selectionStart = position;
-      $element.selectionEnd = position;
-      $element.focus ();
-    }
-  }
-
-  /* PHONE PLUGIN DEFINITION
-   * ======================= */
-
-  var old = $.fn.bfhphone;
-
-  $.fn.bfhphone = function (option) {
-    return this.each(function () {
-      var $this,
-          data,
-          options;
-
-      $this = $(this);
-      data = $this.data('bfhphone');
-      options = typeof option === 'object' && option;
-
-      if (!data) {
-        $this.data('bfhphone', (data = new BFHPhone(this, options)));
-      }
-      if (typeof option === 'string') {
-        data[option].call($this);
-      }
-    });
-  };
-
-  $.fn.bfhphone.Constructor = BFHPhone;
-
-  $.fn.bfhphone.defaults = {
-    format: '',
-    number: '',
-    country: ''
-  };
-
-
-  /* PHONE NO CONFLICT
-   * ========================== */
-
-  $.fn.bfhphone.noConflict = function () {
-    $.fn.bfhphone = old;
-    return this;
-  };
-
-
-  /* PHONE DATA-API
-   * ============== */
-
-  $(document).ready( function () {
-    $('form input[type="text"].bfh-phone, form input[type="tel"].bfh-phone, span.bfh-phone').each(function () {
-      var $phone;
-
-      $phone = $(this);
-
-      $phone.bfhphone($phone.data());
-    });
-  });
-
-}(window.jQuery);
-
-/* ==========================================================
- * bootstrap-formhelpers-selectbox.js
- * https://github.com/vlamanna/BootstrapFormHelpers
- * ==========================================================
- * Copyright 2012 Vincent Lamanna
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================================================== */
-
-+function ($) {
-
-  'use strict';
-
-
-  /* SELECTBOX CLASS DEFINITION
-   * ========================= */
-
-  var toggle = '[data-toggle=bfh-selectbox]',
-      BFHSelectBox = function (element, options) {
-        this.options = $.extend({}, $.fn.bfhselectbox.defaults, options);
-        this.$element = $(element);
-
-        this.initSelectBox();
-      };
-
-  BFHSelectBox.prototype = {
-
-    constructor: BFHSelectBox,
-
-    initSelectBox: function () {
-      var options;
-
-      options = '';
-      this.$element.find('div').each(function() {
-        options = options + '<li><a tabindex="-1" href="#" data-option="' + $(this).data('value') + '">' + $(this).html() + '</a></li>';
-      });
-
-      this.$element.html(
-        '<input type="hidden" name="' + this.options.name + '" value="">' +
-		'<a class="bfh-selectbox-toggle ' + this.options.input + '" role="button" data-toggle="bfh-selectbox" href="#">' +
-		'<span class="bfh-selectbox-option"></span>' +
-		'<span class="' + this.options.icon + ' selectbox-caret"></span>' +
-		'</a>' +
-		'<div class="bfh-selectbox-options">' +
-		'<div role="listbox">' +
-		'<ul role="option">' +
-		'</ul>' +
-		'</div>' +
-		'</div>'
-      );
-
-      this.$element.find('[role=option]').html(options);
-
-      if (this.options.filter === true) {
-        this.$element.find('.bfh-selectbox-options').prepend('<div class="bfh-selectbox-filter-container"><input type="text" class="bfh-selectbox-filter form-control"></div>');
-      }
-
-      this.$element.val(this.options.value);
-
-      this.$element
-        .on('click.bfhselectbox.data-api touchstart.bfhselectbox.data-api', toggle, BFHSelectBox.prototype.toggle)
-		.on('keydown.bfhselectbox.data-api', toggle + ', [role=option]' , BFHSelectBox.prototype.keydown)
-		.on('mouseenter.bfhselectbox.data-api', '[role=option] > li > a', BFHSelectBox.prototype.mouseenter)
-		.on('click.bfhselectbox.data-api', '[role=option] > li > a', BFHSelectBox.prototype.select)
-		.on('click.bfhselectbox.data-api', '.bfh-selectbox-filter', function () { return false; })
-		.on('propertychange.bfhselectbox.data-api change.bfhselectbox.data-api input.bfhselectbox.data-api paste.bfhselectbox.data-api', '.bfh-selectbox-filter', BFHSelectBox.prototype.filter);
-    },
-
-    toggle: function (e) {
-      var $this,
-          $parent,
-          isActive;
-
-      $this = $(this);
-      $parent = getParent($this);
-
-      if ($parent.is('.disabled') || $parent.attr('disabled') !== undefined) {
-        return true;
-      }
-
-      isActive = $parent.hasClass('open');
-
-      clearMenus();
-
-      if (!isActive) {
-        $parent.trigger(e = $.Event('show.bfhselectbox'));
-
-        if (e.isDefaultPrevented()) {
-          return true;
-        }
-
-        $parent
-          .toggleClass('open')
-          .trigger('shown.bfhselectbox')
-          .find('[role=option] > li > [data-option="' + $parent.val() + '"]').focus();
-      }
-
-      return false;
-    },
-
-    filter: function() {
-      var $this,
-          $parent,
-          $items;
-
-      $this = $(this);
-      $parent = getParent($this);
-
-      $items = $('[role=option] li a', $parent);
-      $items
-        .hide()
-        .filter(function() {
-          return ($(this).text().toUpperCase().indexOf($this.val().toUpperCase()) !== -1);
-        })
-        .show();
-    },
-
-    keydown: function (e) {
-      var $this,
-          $items,
-          $parent,
-          $subItems,
-          isActive,
-          index,
-          selectedIndex;
-
-      if (!/(38|40|27)/.test(e.keyCode)) {
-        return true;
-      }
-
-      $this = $(this);
-
-      e.preventDefault();
-      e.stopPropagation();
-
-      $parent = getParent($this);
-      isActive = $parent.hasClass('open');
-
-      if (!isActive || (isActive && e.keyCode === 27)) {
-        if (e.which === 27) {
-          $parent.find(toggle).focus();
-        }
-
-        return $this.click();
-      }
-
-      $items = $('[role=option] li:not(.divider) a:visible', $parent);
-
-      if (!$items.length) {
-        return true;
-      }
-
-      $('body').off('mouseenter.bfh-selectbox.data-api', '[role=option] > li > a', BFHSelectBox.prototype.mouseenter);
-      index = $items.index($items.filter(':focus'));
-
-      if (e.keyCode === 38 && index > 0) {
-        index = index - 1;
-      }
-
-      if (e.keyCode === 40 && index < $items.length - 1) {
-        index = index + 1;
-      }
-
-      if (!index) {
-        index = 0;
-      }
-
-      $items.eq(index).focus();
-      $('body').on('mouseenter.bfh-selectbox.data-api', '[role=option] > li > a', BFHSelectBox.prototype.mouseenter);
-    },
-
-    mouseenter: function () {
-      var $this;
-
-      $this = $(this);
-
-      $this.focus();
-    },
-
-    select: function (e) {
-      var $this,
-          $parent,
-          $span,
-          $input;
-
-      $this = $(this);
-
-      e.preventDefault();
-      e.stopPropagation();
-
-      if ($this.is('.disabled') || $this.attr('disabled') !== undefined) {
-        return true;
-      }
-
-      $parent = getParent($this);
-
-      $parent.val($this.data('option'));
-      $parent.trigger('change.bfhselectbox');
-
-      clearMenus();
-    }
-
-  };
-
-  function clearMenus() {
-    var $parent;
-
-    $(toggle).each(function (e) {
-      $parent = getParent($(this));
-
-      if (!$parent.hasClass('open')) {
-        return true;
-      }
-
-      $parent.trigger(e = $.Event('hide.bfhselectbox'));
-
-      if (e.isDefaultPrevented()) {
-        return true;
-      }
-
-      $parent
-        .removeClass('open')
-        .trigger('hidden.bfhselectbox');
-    });
-  }
-
-  function getParent($this) {
-    return $this.closest('.bfh-selectbox');
-  }
-
-
-  /* SELECTBOX PLUGIN DEFINITION
-   * ========================== */
-
-  var old = $.fn.bfhselectbox;
-
-  $.fn.bfhselectbox = function (option) {
-    return this.each(function () {
-      var $this,
-          data,
-          options;
-
-      $this = $(this);
-      data = $this.data('bfhselectbox');
-      options = typeof option === 'object' && option;
-      this.type = 'bfhselectbox';
-
-      if (!data) {
-        $this.data('bfhselectbox', (data = new BFHSelectBox(this, options)));
-      }
-      if (typeof option === 'string') {
-        data[option].call($this);
-      }
-    });
-  };
-
-  $.fn.bfhselectbox.Constructor = BFHSelectBox;
-
-  $.fn.bfhselectbox.defaults = {
-    icon: 'caret',
-    input: 'form-control',
-    name: '',
-    value: '',
-    filter: false
-  };
-
-
-  /* SELECTBOX NO CONFLICT
-   * ========================== */
-
-  $.fn.bfhselectbox.noConflict = function () {
-    $.fn.bfhselectbox = old;
-    return this;
-  };
-
-
-  /* SELECTBOX VALHOOKS
-   * ========================== */
-
-  var origHook;
-  if ($.valHooks.div){
-    origHook = $.valHooks.div;
-  }
-  $.valHooks.div = {
-    get: function(el) {
-      if ($(el).hasClass('bfh-selectbox')) {
-        return $(el).find('input[type="hidden"]').val();
-      } else if (origHook) {
-        return origHook.get(el);
-      }
-    },
-    set: function(el, val) {
-      var $el,
-          html;
-
-      if ($(el).hasClass('bfh-selectbox')) {
-
-        $el = $(el);
-        if ($el.find('li a[data-option=\'' + val + '\']').length > 0) {
-          html = $el.find('li a[data-option=\'' + val + '\']').html();
-        } else if ($el.find('li a').length > 0) {
-          html = $el.find('li a').eq(0).html();
-        } else {
-          val = '';
-          html = '';
-        }
-
-        $el.find('input[type="hidden"]').val(val);
-        $el.find('.bfh-selectbox-option').html(html);
-      } else if (origHook) {
-        return origHook.set(el,val);
-      }
-    }
-  };
-
-
-  /* SELECTBOX DATA-API
-   * ============== */
-
-  $(document).ready( function () {
-    $('div.bfh-selectbox').each(function () {
-      var $selectbox;
-
-      $selectbox = $(this);
-
-      $selectbox.bfhselectbox($selectbox.data());
-    });
-  });
-
-
-  /* APPLY TO STANDARD SELECTBOX ELEMENTS
-   * =================================== */
-
-  $(document)
-    .on('click.bfhselectbox.data-api', clearMenus);
-
-}(window.jQuery);
-
-/* ==========================================================
- * bootstrap-formhelpers-slider.js
- * https://github.com/vlamanna/BootstrapFormHelpers
- * ==========================================================
- * Copyright 2012 Vincent Lamanna
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================================================== */
-
-+function ($) {
-
-  'use strict';
-
-
-  /* BFHSLIDER CLASS DEFINITION
-   * ========================= */
-
-  var BFHSlider = function (element, options) {
-        this.options = $.extend({}, $.fn.bfhslider.defaults, options);
-        this.$element = $(element);
-        
-        this.initSlider();
-      };
-
-  BFHSlider.prototype = {
-
-    constructor: BFHSlider,
-
-    initSlider: function() {
-      if (this.options.value === '') {
-        this.options.value = this.options.min;
-      }
-      
-      this.$element.html(
-        '<input type="hidden" name="' + this.options.name + '" value="">' +
-        '<div class="bfh-slider-handle"><div class="bfh-slider-value"></div></div>'
-      );
-      
-      this.$element.find('input[type="hidden"]').val(this.options.value);
-      this.updateHandle(this.options.value);
-      
-      this.$element.on('mousedown.bfhslider.data-api', BFHSlider.prototype.mouseDown);
-    },
-    
-    updateHandle: function(val) {
-      var positionX,
-          width,
-          left,
-          span;
-          
-      span = this.options.max - this.options.min;
-      width = this.$element.width();
-      left = this.$element.position().left;
-      
-      positionX = Math.round((val - this.options.min) * (width - 20) / span + left);
-      
-      this.$element.find('.bfh-slider-handle').css('left', positionX + 'px');
-      this.$element.find('.bfh-slider-value').text(val);
-    },
-    
-    updateVal: function(positionX) {
-      var width,
-          left,
-          right,
-          val,
-          span;
-      
-      span = this.options.max - this.options.min;
-      width = this.$element.width();
-      left = this.$element.offset().left;
-      right = left + width;
-      
-      if (positionX < left) {
-        positionX = left;
-      }
-      
-      if (positionX + 20 > right) {
-        positionX = right;
-      }
-      
-      val = (positionX - left) / width;
-      val = Math.ceil(val * span + this.options.min);
-      
-      if (val === this.$element.val()) {
-        return true;
-      }
-      
-      this.$element.val(val);
-      
-      this.$element.trigger('change.bfhslider');
-    },
-    
-    mouseDown: function() {
-      var $this;
-      
-      $this = $(this);
-      
-      if ($this.is('.disabled') || $this.attr('disabled') !== undefined) {
-        return true;
-      }
-      
-      $(document)
-        .on('mousemove.bfhslider.data-api', {slider: $this}, BFHSlider.prototype.mouseMove)
-        .one('mouseup.bfhslider.data-api', {slider: $this}, BFHSlider.prototype.mouseUp);
-    },
-    
-    mouseMove: function(e) {
-      var $this;
-      
-      $this = e.data.slider;
-      
-      $this.data('bfhslider').updateVal(e.pageX);
-    },
-    
-    mouseUp: function(e) {
-      var $this;
-      
-      $this = e.data.slider;
-      
-      $this.data('bfhslider').updateVal(e.pageX);
-      
-      $(document).off('mousemove.bfhslider.data-api');
-    }
-  };
-
-
-  /* SLIDER PLUGIN DEFINITION
-   * ========================== */
-
-  var old = $.fn.bfhslider;
-
-  $.fn.bfhslider = function (option) {
-    return this.each(function () {
-      var $this,
-          data,
-          options;
-
-      $this = $(this);
-      data = $this.data('bfhslider');
-      options = typeof option === 'object' && option;
-      this.type = 'bfhslider';
-
-      if (!data) {
-        $this.data('bfhslider', (data = new BFHSlider(this, options)));
-      }
-      if (typeof option === 'string') {
-        data[option].call($this);
-      }
-    });
-  };
-
-  $.fn.bfhslider.Constructor = BFHSlider;
-
-  $.fn.bfhslider.defaults = {
-    name: '',
-    value: '',
-    min: 0,
-    max: 100
-  };
-
-
-  /* SLIDER NO CONFLICT
-   * ========================== */
-
-  $.fn.bfhslider.noConflict = function () {
-    $.fn.bfhslider = old;
-    return this;
-  };
-
-
-  /* SLIDER VALHOOKS
-   * ========================== */
-
-  var origHook;
-  if ($.valHooks.div){
-    origHook = $.valHooks.div;
-  }
-  $.valHooks.div = {
-    get: function(el) {
-      if ($(el).hasClass('bfh-slider')) {
-        return $(el).find('input[type="hidden"]').val();
-      } else if (origHook) {
-        return origHook.get(el);
-      }
-    },
-    set: function(el, val) {
-      if ($(el).hasClass('bfh-slider')) {
-        $(el).find('input[type="hidden"]').val(val);
-        $(el).data('bfhslider').updateHandle(val);
-      } else if (origHook) {
-        return origHook.set(el,val);
-      }
-    }
-  };
-
-
-  /* SLIDER DATA-API
-   * ============== */
-
-  $(document).ready( function () {
-    $('div.bfh-slider').each(function () {
-      var $slider;
-
-      $slider = $(this);
-
-      $slider.bfhslider($slider.data());
-    });
-  });
-
-}(window.jQuery);
-
-/* ==========================================================
- * bootstrap-formhelpers-states.js
- * https://github.com/vlamanna/BootstrapFormHelpers
- * ==========================================================
- * Copyright 2012 Vincent Lamanna
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================================================== */
-
-+function ($) {
-
-  'use strict';
-
-
-  /* STATES CLASS DEFINITION
-   * ====================== */
-
-  var BFHStates = function (element, options) {
-    this.options = $.extend({}, $.fn.bfhstates.defaults, options);
-    this.$element = $(element);
-
-    if (this.$element.is('select')) {
-      this.addStates();
-    }
-
-    if (this.$element.hasClass('bfh-selectbox')) {
-      this.addBootstrapStates();
-    }
-
-    if (this.$element.is('span')) {
-      this.displayState();
-    }
-  };
-
-  BFHStates.prototype = {
-
-    constructor: BFHStates,
-
-    addStates: function () {
-      var country,
-          $country;
-
-      country = this.options.country;
-
-      if (country !== '') {
-        $country = $(document).find('#' + country);
-
-        if ($country.length !== 0) {
-          country = $country.val();
-          $country.on('change', {state: this}, this.changeCountry);
-        }
-      }
-
-      this.loadStates(country);
-    },
-
-    loadStates: function (country) {
-      var value,
-          state;
-
-      value = this.options.state;
-
-      this.$element.html('');
-
-      if (this.options.blank === true) {
-        this.$element.append('<option value=""></option>');
-      }
-
-      for (state in BFHStatesList[country]) {
-        if (BFHStatesList[country].hasOwnProperty(state)) {
-          this.$element.append('<option value="' + BFHStatesList[country][state].code + '">' + BFHStatesList[country][state].name + '</option>');
-        }
-      }
-
-      this.$element.val(value);
-    },
-
-    changeCountry: function (e) {
-      var $this,
-          $state,
-          country;
-
-      $this = $(this);
-      $state = e.data.state;
-      country = $this.val();
-
-      $state.loadStates(country);
-    },
-
-    addBootstrapStates: function() {
-      var country,
-          $country;
-
-      country = this.options.country;
-
-      if (country !== '') {
-        $country = $(document).find('#' + country);
-
-        if ($country.length !== 0) {
-          country = $country.find('input[type="hidden"]').val();
-          $country.on('change.bfhselectbox', {state: this}, this.changeBootstrapCountry);
-        }
-      }
-
-      this.loadBootstrapStates(country);
-    },
-
-    loadBootstrapStates: function(country) {
-      var $input,
-          $toggle,
-          $options,
-          stateCode,
-          stateName,
-          state;
-
-      stateCode = this.options.state;
-      stateName = '';
-      $input = this.$element.find('input[type="hidden"]');
-      $toggle = this.$element.find('.bfh-selectbox-option');
-      $options = this.$element.find('[role=option]');
-
-      $options.html('');
-
-      if (this.options.blank === true) {
-        $options.append('<li><a tabindex="-1" href="#" data-option=""></a></li>');
-      }
-
-      for (state in BFHStatesList[country]) {
-        if (BFHStatesList[country].hasOwnProperty(state)) {
-          $options.append('<li><a tabindex="-1" href="#" data-option="' + BFHStatesList[country][state].code + '">' + BFHStatesList[country][state].name + '</a></li>');
-
-          if (BFHStatesList[country][state].code === stateCode) {
-            stateName = BFHStatesList[country][state].name;
-          }
-        }
-      }
-
-      this.$element.val(stateCode);
-    },
-
-    changeBootstrapCountry: function (e) {
-      var $this,
-          $state,
-          country;
-
-      $this = $(this);
-      $state = e.data.state;
-      country = $this.val();
-
-      $state.loadBootstrapStates(country);
-    },
-
-    displayState: function () {
-      var country,
-          stateCode,
-          stateName,
-          state;
-
-      country = this.options.country;
-      stateCode = this.options.state;
-      stateName = '';
-
-      for (state in BFHStatesList[country]) {
-        if (BFHStatesList[country].hasOwnProperty(state)) {
-          if (BFHStatesList[country][state].code === stateCode) {
-            stateName = BFHStatesList[country][state].name;
-            break;
-          }
-        }
-      }
-      this.$element.html(stateName);
-    }
-
-  };
-
-
-  /* STATES PLUGIN DEFINITION
-   * ======================= */
-
-  var old = $.fn.bfhstates;
-
-  $.fn.bfhstates = function (option) {
-    return this.each(function () {
-      var $this,
-          data,
-          options;
-
-      $this = $(this);
-      data = $this.data('bfhstates');
-      options = typeof option === 'object' && option;
-
-      if (!data) {
-        $this.data('bfhstates', (data = new BFHStates(this, options)));
-      }
-      if (typeof option === 'string') {
-        data[option].call($this);
-      }
-    });
-  };
-
-  $.fn.bfhstates.Constructor = BFHStates;
-
-  $.fn.bfhstates.defaults = {
-    country: '',
-    state: '',
-    blank: true
-  };
-
-
-  /* STATES NO CONFLICT
-   * ========================== */
-
-  $.fn.bfhstates.noConflict = function () {
-    $.fn.bfhstates = old;
-    return this;
-  };
-
-
-  /* STATES DATA-API
-   * ============== */
-
-  $(document).ready( function () {
-    $('form select.bfh-states, span.bfh-states, div.bfh-states').each(function () {
-      var $states;
-
-      $states = $(this);
-
-      if ($states.hasClass('bfh-selectbox')) {
-        $states.bfhselectbox($states.data());
-      }
-      $states.bfhstates($states.data());
-    });
-  });
-
-}(window.jQuery);
-
-/* ==========================================================
- * bootstrap-formhelpers-timepicker.js
- * https://github.com/vlamanna/BootstrapFormHelpers
- * ==========================================================
- * Copyright 2012 Vincent Lamanna
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================================================== */
-
-
-+function ($) {
-
-  'use strict';
-
-
- /* TIMEPICKER CLASS DEFINITION
-  * ========================= */
-
-  var toggle = '[data-toggle=bfh-timepicker]',
-      BFHTimePicker = function (element, options) {
-        this.options = $.extend({}, $.fn.bfhtimepicker.defaults, options);
-        this.$element = $(element);
-
-        this.initPopover();
-      };
-
-  BFHTimePicker.prototype = {
-
-    constructor: BFHTimePicker,
-
-    setTime: function() {
-      var time,
-          today,
-          timeParts,
-          hours,
-          minutes,
-          mode,
-          currentMode;
-
-      time = this.options.time;
-      mode = '';
-      currentMode = '';
-      
-      if (time === '' || time === 'now' || time === undefined) {
-        today = new Date();
-
-        hours = today.getHours();
-        minutes = today.getMinutes();
-        
-        if (this.options.mode === '12h') {
-          if (hours > 12) {
-            hours = hours - 12;
-            mode = ' ' + BFHTimePickerModes.pm;
-            currentMode = 'pm';
-          } else {
-            mode = ' ' + BFHTimePickerModes.am;
-            currentMode = 'am';
-          }
-        }
-        
-        if (time === 'now') {
-          this.$element.find('.bfh-timepicker-toggle > input[type="text"]').val(formatTime(hours, minutes) + mode);
-        }
-
-        this.$element.data('hour', hours);
-        this.$element.data('minute', minutes);
-        this.$element.data('mode', currentMode);
-      } else {
-        timeParts = String(time).split(BFHTimePickerDelimiter);
-        hours = timeParts[0];
-        minutes = timeParts[1];
-        
-        if (this.options.mode === '12h') {
-          timeParts = String(minutes).split(' ');
-          minutes = timeParts[0];
-          if (timeParts[1] === BFHTimePickerModes.pm) {
-            currentMode = 'pm';
-          } else {
-            currentMode = 'am';
-          }
-        }
-        
-        this.$element.find('.bfh-timepicker-toggle > input[type="text"]').val(time);
-        this.$element.data('hour', hours);
-        this.$element.data('minute', minutes);
-        this.$element.data('mode', currentMode);
-      }
-    },
-
-    initPopover: function() {
-      var iconLeft,
-          iconRight,
-          iconAddon,
-          modeAddon,
-          modeMax;
-
-      iconLeft = '';
-      iconRight = '';
-      iconAddon = '';
-      if (this.options.icon !== '') {
-        if (this.options.align === 'right') {
-          iconRight = '<span class="input-group-addon"><i class="' + this.options.icon + '"></i></span>';
-        } else {
-          iconLeft = '<span class="input-group-addon"><i class="' + this.options.icon + '"></i></span>';
-        }
-        iconAddon = 'input-group';
-      }
-      
-      modeAddon = '';
-      modeMax = '23';
-      if (this.options.mode === '12h') {
-        modeAddon = '<td>' +
-          '<div class="bfh-selectbox" data-input="' + this.options.input + '" data-value="am">' +
-          '<div data-value="am">' + BFHTimePickerModes.am + '</div>' +
-          '<div data-value="pm">' + BFHTimePickerModes.pm + '</div>' +
-          '</div>';
-        modeMax = '11';
-      }
-
-      this.$element.html(
-        '<div class="' + iconAddon + ' bfh-timepicker-toggle" data-toggle="bfh-timepicker">' +
-        iconLeft +
-        '<input type="text" name="' + this.options.name + '" class="' + this.options.input + '" placeholder="' + this.options.placeholder + '" readonly>' +
-        iconRight +
-        '</div>' +
-        '<div class="bfh-timepicker-popover">' +
-        '<table class="table">' +
-        '<tbody>' +
-        '<tr>' +
-        '<td class="hour">' +
-        '<input type="text" class="' + this.options.input + ' bfh-number"  data-min="0" data-max="' + modeMax + '" data-zeros="true" data-wrap="true">' +
-        '</td>' +
-        '<td class="separator">' + BFHTimePickerDelimiter + '</td>' +
-        '<td class="minute">' +
-        '<input type="text" class="' + this.options.input + ' bfh-number"  data-min="0" data-max="59" data-zeros="true" data-wrap="true">' +
-        '</td>' +
-        modeAddon +
-        '</tr>' +
-        '</tbody>' +
-        '</table>' +
-        '</div>'
-      );
-
-      this.$element
-        .on('click.bfhtimepicker.data-api touchstart.bfhtimepicker.data-api', toggle, BFHTimePicker.prototype.toggle)
-        .on('click.bfhtimepicker.data-api touchstart.bfhtimepicker.data-api', '.bfh-timepicker-popover > table', function() { return false; });
-
-      this.$element.find('.bfh-number').each(function () {
-        var $number;
-
-        $number = $(this);
-
-        $number.bfhnumber($number.data());
-        
-        $number.on('change', BFHTimePicker.prototype.change);
-      });
-      
-      this.$element.find('.bfh-selectbox').each(function() {
-        var $selectbox;
-
-        $selectbox = $(this);
-
-        $selectbox.bfhselectbox($selectbox.data());
-        
-        $selectbox.on('change.bfhselectbox', BFHTimePicker.prototype.change);
-      });
-      
-      this.setTime();
-
-      this.updatePopover();
-    },
-
-    updatePopover: function() {
-      var hour,
-          minute,
-          mode;
-
-      hour = this.$element.data('hour');
-      minute = this.$element.data('minute');
-      mode = this.$element.data('mode');
-
-      this.$element.find('.hour input[type=text]').val(hour).change();
-      this.$element.find('.minute input[type=text]').val(minute).change();
-      this.$element.find('.bfh-selectbox').val(mode);
-    },
-    
-    change: function() {
-      var $this,
-          $parent,
-          $timePicker,
-          mode;
-
-      $this = $(this);
-      $parent = getParent($this);
-      
-      $timePicker = $parent.data('bfhtimepicker');
-      
-      if ($timePicker && $timePicker !== 'undefined') {
-        mode = '';
-        if ($timePicker.options.mode === '12h') {
-          mode = ' ' + BFHTimePickerModes[$parent.find('.bfh-selectbox').val()];
-        }
-        
-        $parent.find('.bfh-timepicker-toggle > input[type="text"]').val($parent.find('.hour input[type=text]').val() + BFHTimePickerDelimiter + $parent.find('.minute input[type=text]').val() + mode);
-
-        $parent.trigger('change.bfhtimepicker');
-      }
-
-      return false;
-    },
-
-    toggle: function(e) {
-      var $this,
-          $parent,
-          isActive;
-
-      $this = $(this);
-      $parent = getParent($this);
-
-      if ($parent.is('.disabled') || $parent.attr('disabled') !== undefined) {
-        return true;
-      }
-
-      isActive = $parent.hasClass('open');
-
-      clearMenus();
-
-      if (!isActive) {
-        $parent.trigger(e = $.Event('show.bfhtimepicker'));
-
-        if (e.isDefaultPrevented()) {
-          return true;
-        }
-
-        $parent
-          .toggleClass('open')
-          .trigger('shown.bfhtimepicker');
-
-        $this.focus();
-      }
-
-      return false;
-    }
-  };
-
-  function formatTime(hour, minute) {
-    hour = String(hour);
-    if (hour.length === 1) {
-      hour = '0' + hour;
-    }
-
-    minute = String(minute);
-    if (minute.length === 1) {
-      minute = '0' + minute;
-    }
-
-    return hour + BFHTimePickerDelimiter + minute;
-  }
-  
-  function clearMenus() {
-    var $parent;
-
-    $(toggle).each(function (e) {
-      $parent = getParent($(this));
-
-      if (!$parent.hasClass('open')) {
-        return true;
-      }
-
-      $parent.trigger(e = $.Event('hide.bfhtimepicker'));
-
-      if (e.isDefaultPrevented()) {
-        return true;
-      }
-
-      $parent
-        .removeClass('open')
-        .trigger('hidden.bfhtimepicker');
-    });
-  }
-
-  function getParent($this) {
-    return $this.closest('.bfh-timepicker');
-  }
-
-
-  /* TIMEPICKER PLUGIN DEFINITION
-   * ========================== */
-
-  var old = $.fn.bfhtimepicker;
-
-  $.fn.bfhtimepicker = function (option) {
-    return this.each(function () {
-      var $this,
-          data,
-          options;
-
-      $this = $(this);
-      data = $this.data('bfhtimepicker');
-      options = typeof option === 'object' && option;
-      this.type = 'bfhtimepicker';
-
-      if (!data) {
-        $this.data('bfhtimepicker', (data = new BFHTimePicker(this, options)));
-      }
-      if (typeof option === 'string') {
-        data[option].call($this);
-      }
-    });
-  };
-
-  $.fn.bfhtimepicker.Constructor = BFHTimePicker;
-
-  $.fn.bfhtimepicker.defaults = {
-    icon: 'glyphicon glyphicon-time',
-    align: 'left',
-    input: 'form-control',
-    placeholder: '',
-    name: '',
-    time: 'now',
-    mode: '24h'
-  };
-
-
-  /* TIMEPICKER NO CONFLICT
-   * ========================== */
-
-  $.fn.bfhtimepicker.noConflict = function () {
-    $.fn.bfhtimepicker = old;
-    return this;
-  };
-
-
-  /* TIMEPICKER VALHOOKS
-   * ========================== */
-
-  var origHook;
-  if ($.valHooks.div){
-    origHook = $.valHooks.div;
-  }
-  $.valHooks.div = {
-    get: function(el) {
-      if ($(el).hasClass('bfh-timepicker')) {
-        return $(el).find('.bfh-timepicker-toggle > input[type="text"]').val();
-      } else if (origHook) {
-        return origHook.get(el);
-      }
-    },
-    set: function(el, val) {
-      var $timepicker;
-      if ($(el).hasClass('bfh-timepicker')) {
-        $timepicker = $(el).data('bfhtimepicker');
-        $timepicker.options.time = val;
-        $timepicker.setTime();
-        $timepicker.updatePopover();
-      } else if (origHook) {
-        return origHook.set(el,val);
-      }
-    }
-  };
-
-
-  /* TIMEPICKER DATA-API
-   * ============== */
-
-  $(document).ready( function () {
-    $('div.bfh-timepicker').each(function () {
-      var $timepicker;
-
-      $timepicker = $(this);
-
-      $timepicker.bfhtimepicker($timepicker.data());
-    });
-  });
-
-
-  /* APPLY TO STANDARD TIMEPICKER ELEMENTS
-   * =================================== */
-
-  $(document)
-    .on('click.bfhtimepicker.data-api', clearMenus);
-
-}(window.jQuery);
-
-/* ==========================================================
- * bootstrap-formhelpers-timezones.js
- * https://github.com/vlamanna/BootstrapFormHelpers
- * ==========================================================
- * Copyright 2012 Vincent Lamanna
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================================================== */
-
-+function ($) {
-
-  'use strict';
-
-
-  /* TIMEZONES CLASS DEFINITION
-   * ====================== */
-
-  var BFHTimezones = function (element, options) {
-    this.options = $.extend({}, $.fn.bfhtimezones.defaults, options);
-    this.$element = $(element);
-
-    if (this.$element.is('select')) {
-      this.addTimezones();
-    }
-
-    if (this.$element.hasClass('bfh-selectbox')) {
-      this.addBootstrapTimezones();
-    }
-  };
-
-  BFHTimezones.prototype = {
-
-    constructor: BFHTimezones,
-
-    addTimezones: function () {
-      var country,
-          $country;
-
-      country = this.options.country;
-
-      if (country !== '') {
-        $country = $(document).find('#' + country);
-
-        if ($country.length !== 0) {
-          country = $country.val();
-          $country.on('change', {timezone: this}, this.changeCountry);
-        }
-      }
-
-      this.loadTimezones(country);
-    },
-
-    loadTimezones: function (country) {
-      var value,
-          timezone;
-
-      value = this.options.timezone;
-
-      this.$element.html('');
-
-      if (this.options.blank === true) {
-        this.$element.append('<option value=""></option>');
-      }
-
-      for (timezone in BFHTimezonesList[country]) {
-        if (BFHTimezonesList[country].hasOwnProperty(timezone)) {
-          this.$element.append('<option value="' + timezone + '">' + BFHTimezonesList[country][timezone] + '</option>');
-        }
-      }
-
-      this.$element.val(value);
-    },
-
-    changeCountry: function (e) {
-      var $this,
-          $timezone,
-          country;
-
-      $this = $(this);
-      $timezone = e.data.timezone;
-      country = $this.val();
-
-      $timezone.loadTimezones(country);
-    },
-
-    addBootstrapTimezones: function() {
-      var country,
-          $country;
-
-      country = this.options.country;
-
-      if (country !== '') {
-        $country = $(document).find('#' + country);
-
-        if ($country.length !== 0) {
-          country = $country.find('input[type="hidden"]').val();
-          $country.on('change.bfhselectbox', {timezone: this}, this.changeBootstrapCountry);
-        }
-      }
-
-      this.loadBootstrapTimezones(country);
-    },
-
-    loadBootstrapTimezones: function(country) {
-      var $input,
-          $toggle,
-          $options,
-          value,
-          timezone;
-
-      value = this.options.timezone;
-      $input = this.$element.find('input[type="hidden"]');
-      $toggle = this.$element.find('.bfh-selectbox-option');
-      $options = this.$element.find('[role=option]');
-
-      $options.html('');
-
-      if (this.options.blank === true) {
-        $options.append('<li><a tabindex="-1" href="#" data-option=""></a></li>');
-      }
-
-      for (timezone in BFHTimezonesList[country]) {
-        if (BFHTimezonesList[country].hasOwnProperty(timezone)) {
-          $options.append('<li><a tabindex="-1" href="#" data-option="' + timezone + '">' + BFHTimezonesList[country][timezone] + '</a></li>');
-        }
-      }
-
-      this.$element.val(value);
-    },
-
-    changeBootstrapCountry: function (e) {
-      var $this,
-          $timezone,
-          country;
-
-      $this = $(this);
-      $timezone = e.data.timezone;
-      country = $this.val();
-
-      $timezone.loadBootstrapTimezones(country);
-    }
-
-  };
-
-
-  /* TIMEZONES PLUGIN DEFINITION
-   * ======================= */
-
-  var old = $.fn.bfhtimezones;
-
-  $.fn.bfhtimezones = function (option) {
-    return this.each(function () {
-      var $this,
-          data,
-          options;
-
-      $this = $(this);
-      data = $this.data('bfhtimezones');
-      options = typeof option === 'object' && option;
-
-      if (!data) {
-        $this.data('bfhtimezones', (data = new BFHTimezones(this, options)));
-      }
-      if (typeof option === 'string') {
-        data[option].call($this);
-      }
-    });
-  };
-
-  $.fn.bfhtimezones.Constructor = BFHTimezones;
-
-  $.fn.bfhtimezones.defaults = {
-    country: '',
-    timezone: '',
-    blank: true
-  };
-
-
-  /* TIMEZONES NO CONFLICT
-   * ========================== */
-
-  $.fn.bfhtimezones.noConflict = function () {
-    $.fn.bfhtimezones = old;
-    return this;
-  };
-
-
-  /* TIMEZONES DATA-API
-   * ============== */
-
-  $(document).ready( function () {
-    $('form select.bfh-timezones, div.bfh-timezones').each(function () {
-      var $timezones;
-
-      $timezones = $(this);
-
-      if ($timezones.hasClass('bfh-selectbox')) {
-        $timezones.bfhselectbox($timezones.data());
-      }
-      $timezones.bfhtimezones($timezones.data());
-    });
-  });
-
-}(window.jQuery);
diff --git a/gui/slick/js/lib/bootstrap.js b/gui/slick/js/lib/bootstrap.js
deleted file mode 100644
index b6ac8d9903bd002426887977dd457f19b8fa9bb9..0000000000000000000000000000000000000000
--- a/gui/slick/js/lib/bootstrap.js
+++ /dev/null
@@ -1,2320 +0,0 @@
-/*!
- * Bootstrap v3.3.1 (http://getbootstrap.com)
- * Copyright 2011-2014 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */
-
-if (typeof jQuery === 'undefined') {
-  throw new Error('Bootstrap\'s JavaScript requires jQuery')
-}
-
-+function ($) {
-  var version = $.fn.jquery.split(' ')[0].split('.')
-  if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1)) {
-    throw new Error('Bootstrap\'s JavaScript requires jQuery version 1.9.1 or higher')
-  }
-}(jQuery);
-
-/* ========================================================================
- * Bootstrap: transition.js v3.3.1
- * http://getbootstrap.com/javascript/#transitions
- * ========================================================================
- * Copyright 2011-2014 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * ======================================================================== */
-
-
-+function ($) {
-  'use strict';
-
-  // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
-  // ============================================================
-
-  function transitionEnd() {
-    var el = document.createElement('bootstrap')
-
-    var transEndEventNames = {
-      WebkitTransition : 'webkitTransitionEnd',
-      MozTransition    : 'transitionend',
-      OTransition      : 'oTransitionEnd otransitionend',
-      transition       : 'transitionend'
-    }
-
-    for (var name in transEndEventNames) {
-      if (el.style[name] !== undefined) {
-        return { end: transEndEventNames[name] }
-      }
-    }
-
-    return false // explicit for ie8 (  ._.)
-  }
-
-  // http://blog.alexmaccaw.com/css-transitions
-  $.fn.emulateTransitionEnd = function (duration) {
-    var called = false
-    var $el = this
-    $(this).one('bsTransitionEnd', function () { called = true })
-    var callback = function () { if (!called) $($el).trigger($.support.transition.end) }
-    setTimeout(callback, duration)
-    return this
-  }
-
-  $(function () {
-    $.support.transition = transitionEnd()
-
-    if (!$.support.transition) return
-
-    $.event.special.bsTransitionEnd = {
-      bindType: $.support.transition.end,
-      delegateType: $.support.transition.end,
-      handle: function (e) {
-        if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)
-      }
-    }
-  })
-
-}(jQuery);
-
-/* ========================================================================
- * Bootstrap: alert.js v3.3.1
- * http://getbootstrap.com/javascript/#alerts
- * ========================================================================
- * Copyright 2011-2014 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * ======================================================================== */
-
-
-+function ($) {
-  'use strict';
-
-  // ALERT CLASS DEFINITION
-  // ======================
-
-  var dismiss = '[data-dismiss="alert"]'
-  var Alert   = function (el) {
-    $(el).on('click', dismiss, this.close)
-  }
-
-  Alert.VERSION = '3.3.1'
-
-  Alert.TRANSITION_DURATION = 150
-
-  Alert.prototype.close = function (e) {
-    var $this    = $(this)
-    var selector = $this.attr('data-target')
-
-    if (!selector) {
-      selector = $this.attr('href')
-      selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
-    }
-
-    var $parent = $(selector)
-
-    if (e) e.preventDefault()
-
-    if (!$parent.length) {
-      $parent = $this.closest('.alert')
-    }
-
-    $parent.trigger(e = $.Event('close.bs.alert'))
-
-    if (e.isDefaultPrevented()) return
-
-    $parent.removeClass('in')
-
-    function removeElement() {
-      // detach from parent, fire event then clean up data
-      $parent.detach().trigger('closed.bs.alert').remove()
-    }
-
-    $.support.transition && $parent.hasClass('fade') ?
-      $parent
-        .one('bsTransitionEnd', removeElement)
-        .emulateTransitionEnd(Alert.TRANSITION_DURATION) :
-      removeElement()
-  }
-
-
-  // ALERT PLUGIN DEFINITION
-  // =======================
-
-  function Plugin(option) {
-    return this.each(function () {
-      var $this = $(this)
-      var data  = $this.data('bs.alert')
-
-      if (!data) $this.data('bs.alert', (data = new Alert(this)))
-      if (typeof option == 'string') data[option].call($this)
-    })
-  }
-
-  var old = $.fn.alert
-
-  $.fn.alert             = Plugin
-  $.fn.alert.Constructor = Alert
-
-
-  // ALERT NO CONFLICT
-  // =================
-
-  $.fn.alert.noConflict = function () {
-    $.fn.alert = old
-    return this
-  }
-
-
-  // ALERT DATA-API
-  // ==============
-
-  $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)
-
-}(jQuery);
-
-/* ========================================================================
- * Bootstrap: button.js v3.3.1
- * http://getbootstrap.com/javascript/#buttons
- * ========================================================================
- * Copyright 2011-2014 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * ======================================================================== */
-
-
-+function ($) {
-  'use strict';
-
-  // BUTTON PUBLIC CLASS DEFINITION
-  // ==============================
-
-  var Button = function (element, options) {
-    this.$element  = $(element)
-    this.options   = $.extend({}, Button.DEFAULTS, options)
-    this.isLoading = false
-  }
-
-  Button.VERSION  = '3.3.1'
-
-  Button.DEFAULTS = {
-    loadingText: 'loading...'
-  }
-
-  Button.prototype.setState = function (state) {
-    var d    = 'disabled'
-    var $el  = this.$element
-    var val  = $el.is('input') ? 'val' : 'html'
-    var data = $el.data()
-
-    state = state + 'Text'
-
-    if (data.resetText == null) $el.data('resetText', $el[val]())
-
-    // push to event loop to allow forms to submit
-    setTimeout($.proxy(function () {
-      $el[val](data[state] == null ? this.options[state] : data[state])
-
-      if (state == 'loadingText') {
-        this.isLoading = true
-        $el.addClass(d).attr(d, d)
-      } else if (this.isLoading) {
-        this.isLoading = false
-        $el.removeClass(d).removeAttr(d)
-      }
-    }, this), 0)
-  }
-
-  Button.prototype.toggle = function () {
-    var changed = true
-    var $parent = this.$element.closest('[data-toggle="buttons"]')
-
-    if ($parent.length) {
-      var $input = this.$element.find('input')
-      if ($input.prop('type') == 'radio') {
-        if ($input.prop('checked') && this.$element.hasClass('active')) changed = false
-        else $parent.find('.active').removeClass('active')
-      }
-      if (changed) $input.prop('checked', !this.$element.hasClass('active')).trigger('change')
-    } else {
-      this.$element.attr('aria-pressed', !this.$element.hasClass('active'))
-    }
-
-    if (changed) this.$element.toggleClass('active')
-  }
-
-
-  // BUTTON PLUGIN DEFINITION
-  // ========================
-
-  function Plugin(option) {
-    return this.each(function () {
-      var $this   = $(this)
-      var data    = $this.data('bs.button')
-      var options = typeof option == 'object' && option
-
-      if (!data) $this.data('bs.button', (data = new Button(this, options)))
-
-      if (option == 'toggle') data.toggle()
-      else if (option) data.setState(option)
-    })
-  }
-
-  var old = $.fn.button
-
-  $.fn.button             = Plugin
-  $.fn.button.Constructor = Button
-
-
-  // BUTTON NO CONFLICT
-  // ==================
-
-  $.fn.button.noConflict = function () {
-    $.fn.button = old
-    return this
-  }
-
-
-  // BUTTON DATA-API
-  // ===============
-
-  $(document)
-    .on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) {
-      var $btn = $(e.target)
-      if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
-      Plugin.call($btn, 'toggle')
-      e.preventDefault()
-    })
-    .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) {
-      $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))
-    })
-
-}(jQuery);
-
-/* ========================================================================
- * Bootstrap: carousel.js v3.3.1
- * http://getbootstrap.com/javascript/#carousel
- * ========================================================================
- * Copyright 2011-2014 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * ======================================================================== */
-
-
-+function ($) {
-  'use strict';
-
-  // CAROUSEL CLASS DEFINITION
-  // =========================
-
-  var Carousel = function (element, options) {
-    this.$element    = $(element)
-    this.$indicators = this.$element.find('.carousel-indicators')
-    this.options     = options
-    this.paused      =
-    this.sliding     =
-    this.interval    =
-    this.$active     =
-    this.$items      = null
-
-    this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))
-
-    this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element
-      .on('mouseenter.bs.carousel', $.proxy(this.pause, this))
-      .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))
-  }
-
-  Carousel.VERSION  = '3.3.1'
-
-  Carousel.TRANSITION_DURATION = 600
-
-  Carousel.DEFAULTS = {
-    interval: 5000,
-    pause: 'hover',
-    wrap: true,
-    keyboard: true
-  }
-
-  Carousel.prototype.keydown = function (e) {
-    if (/input|textarea/i.test(e.target.tagName)) return
-    switch (e.which) {
-      case 37: this.prev(); break
-      case 39: this.next(); break
-      default: return
-    }
-
-    e.preventDefault()
-  }
-
-  Carousel.prototype.cycle = function (e) {
-    e || (this.paused = false)
-
-    this.interval && clearInterval(this.interval)
-
-    this.options.interval
-      && !this.paused
-      && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))
-
-    return this
-  }
-
-  Carousel.prototype.getItemIndex = function (item) {
-    this.$items = item.parent().children('.item')
-    return this.$items.index(item || this.$active)
-  }
-
-  Carousel.prototype.getItemForDirection = function (direction, active) {
-    var delta = direction == 'prev' ? -1 : 1
-    var activeIndex = this.getItemIndex(active)
-    var itemIndex = (activeIndex + delta) % this.$items.length
-    return this.$items.eq(itemIndex)
-  }
-
-  Carousel.prototype.to = function (pos) {
-    var that        = this
-    var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))
-
-    if (pos > (this.$items.length - 1) || pos < 0) return
-
-    if (this.sliding)       return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, "slid"
-    if (activeIndex == pos) return this.pause().cycle()
-
-    return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos))
-  }
-
-  Carousel.prototype.pause = function (e) {
-    e || (this.paused = true)
-
-    if (this.$element.find('.next, .prev').length && $.support.transition) {
-      this.$element.trigger($.support.transition.end)
-      this.cycle(true)
-    }
-
-    this.interval = clearInterval(this.interval)
-
-    return this
-  }
-
-  Carousel.prototype.next = function () {
-    if (this.sliding) return
-    return this.slide('next')
-  }
-
-  Carousel.prototype.prev = function () {
-    if (this.sliding) return
-    return this.slide('prev')
-  }
-
-  Carousel.prototype.slide = function (type, next) {
-    var $active   = this.$element.find('.item.active')
-    var $next     = next || this.getItemForDirection(type, $active)
-    var isCycling = this.interval
-    var direction = type == 'next' ? 'left' : 'right'
-    var fallback  = type == 'next' ? 'first' : 'last'
-    var that      = this
-
-    if (!$next.length) {
-      if (!this.options.wrap) return
-      $next = this.$element.find('.item')[fallback]()
-    }
-
-    if ($next.hasClass('active')) return (this.sliding = false)
-
-    var relatedTarget = $next[0]
-    var slideEvent = $.Event('slide.bs.carousel', {
-      relatedTarget: relatedTarget,
-      direction: direction
-    })
-    this.$element.trigger(slideEvent)
-    if (slideEvent.isDefaultPrevented()) return
-
-    this.sliding = true
-
-    isCycling && this.pause()
-
-    if (this.$indicators.length) {
-      this.$indicators.find('.active').removeClass('active')
-      var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])
-      $nextIndicator && $nextIndicator.addClass('active')
-    }
-
-    var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, "slid"
-    if ($.support.transition && this.$element.hasClass('slide')) {
-      $next.addClass(type)
-      $next[0].offsetWidth // force reflow
-      $active.addClass(direction)
-      $next.addClass(direction)
-      $active
-        .one('bsTransitionEnd', function () {
-          $next.removeClass([type, direction].join(' ')).addClass('active')
-          $active.removeClass(['active', direction].join(' '))
-          that.sliding = false
-          setTimeout(function () {
-            that.$element.trigger(slidEvent)
-          }, 0)
-        })
-        .emulateTransitionEnd(Carousel.TRANSITION_DURATION)
-    } else {
-      $active.removeClass('active')
-      $next.addClass('active')
-      this.sliding = false
-      this.$element.trigger(slidEvent)
-    }
-
-    isCycling && this.cycle()
-
-    return this
-  }
-
-
-  // CAROUSEL PLUGIN DEFINITION
-  // ==========================
-
-  function Plugin(option) {
-    return this.each(function () {
-      var $this   = $(this)
-      var data    = $this.data('bs.carousel')
-      var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)
-      var action  = typeof option == 'string' ? option : options.slide
-
-      if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))
-      if (typeof option == 'number') data.to(option)
-      else if (action) data[action]()
-      else if (options.interval) data.pause().cycle()
-    })
-  }
-
-  var old = $.fn.carousel
-
-  $.fn.carousel             = Plugin
-  $.fn.carousel.Constructor = Carousel
-
-
-  // CAROUSEL NO CONFLICT
-  // ====================
-
-  $.fn.carousel.noConflict = function () {
-    $.fn.carousel = old
-    return this
-  }
-
-
-  // CAROUSEL DATA-API
-  // =================
-
-  var clickHandler = function (e) {
-    var href
-    var $this   = $(this)
-    var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7
-    if (!$target.hasClass('carousel')) return
-    var options = $.extend({}, $target.data(), $this.data())
-    var slideIndex = $this.attr('data-slide-to')
-    if (slideIndex) options.interval = false
-
-    Plugin.call($target, options)
-
-    if (slideIndex) {
-      $target.data('bs.carousel').to(slideIndex)
-    }
-
-    e.preventDefault()
-  }
-
-  $(document)
-    .on('click.bs.carousel.data-api', '[data-slide]', clickHandler)
-    .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)
-
-  $(window).on('load', function () {
-    $('[data-ride="carousel"]').each(function () {
-      var $carousel = $(this)
-      Plugin.call($carousel, $carousel.data())
-    })
-  })
-
-}(jQuery);
-
-/* ========================================================================
- * Bootstrap: collapse.js v3.3.1
- * http://getbootstrap.com/javascript/#collapse
- * ========================================================================
- * Copyright 2011-2014 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * ======================================================================== */
-
-
-+function ($) {
-  'use strict';
-
-  // COLLAPSE PUBLIC CLASS DEFINITION
-  // ================================
-
-  var Collapse = function (element, options) {
-    this.$element      = $(element)
-    this.options       = $.extend({}, Collapse.DEFAULTS, options)
-    this.$trigger      = $(this.options.trigger).filter('[href="#' + element.id + '"], [data-target="#' + element.id + '"]')
-    this.transitioning = null
-
-    if (this.options.parent) {
-      this.$parent = this.getParent()
-    } else {
-      this.addAriaAndCollapsedClass(this.$element, this.$trigger)
-    }
-
-    if (this.options.toggle) this.toggle()
-  }
-
-  Collapse.VERSION  = '3.3.1'
-
-  Collapse.TRANSITION_DURATION = 350
-
-  Collapse.DEFAULTS = {
-    toggle: true,
-    trigger: '[data-toggle="collapse"]'
-  }
-
-  Collapse.prototype.dimension = function () {
-    var hasWidth = this.$element.hasClass('width')
-    return hasWidth ? 'width' : 'height'
-  }
-
-  Collapse.prototype.show = function () {
-    if (this.transitioning || this.$element.hasClass('in')) return
-
-    var activesData
-    var actives = this.$parent && this.$parent.find('> .panel').children('.in, .collapsing')
-
-    if (actives && actives.length) {
-      activesData = actives.data('bs.collapse')
-      if (activesData && activesData.transitioning) return
-    }
-
-    var startEvent = $.Event('show.bs.collapse')
-    this.$element.trigger(startEvent)
-    if (startEvent.isDefaultPrevented()) return
-
-    if (actives && actives.length) {
-      Plugin.call(actives, 'hide')
-      activesData || actives.data('bs.collapse', null)
-    }
-
-    var dimension = this.dimension()
-
-    this.$element
-      .removeClass('collapse')
-      .addClass('collapsing')[dimension](0)
-      .attr('aria-expanded', true)
-
-    this.$trigger
-      .removeClass('collapsed')
-      .attr('aria-expanded', true)
-
-    this.transitioning = 1
-
-    var complete = function () {
-      this.$element
-        .removeClass('collapsing')
-        .addClass('collapse in')[dimension]('')
-      this.transitioning = 0
-      this.$element
-        .trigger('shown.bs.collapse')
-    }
-
-    if (!$.support.transition) return complete.call(this)
-
-    var scrollSize = $.camelCase(['scroll', dimension].join('-'))
-
-    this.$element
-      .one('bsTransitionEnd', $.proxy(complete, this))
-      .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])
-  }
-
-  Collapse.prototype.hide = function () {
-    if (this.transitioning || !this.$element.hasClass('in')) return
-
-    var startEvent = $.Event('hide.bs.collapse')
-    this.$element.trigger(startEvent)
-    if (startEvent.isDefaultPrevented()) return
-
-    var dimension = this.dimension()
-
-    this.$element[dimension](this.$element[dimension]())[0].offsetHeight
-
-    this.$element
-      .addClass('collapsing')
-      .removeClass('collapse in')
-      .attr('aria-expanded', false)
-
-    this.$trigger
-      .addClass('collapsed')
-      .attr('aria-expanded', false)
-
-    this.transitioning = 1
-
-    var complete = function () {
-      this.transitioning = 0
-      this.$element
-        .removeClass('collapsing')
-        .addClass('collapse')
-        .trigger('hidden.bs.collapse')
-    }
-
-    if (!$.support.transition) return complete.call(this)
-
-    this.$element
-      [dimension](0)
-      .one('bsTransitionEnd', $.proxy(complete, this))
-      .emulateTransitionEnd(Collapse.TRANSITION_DURATION)
-  }
-
-  Collapse.prototype.toggle = function () {
-    this[this.$element.hasClass('in') ? 'hide' : 'show']()
-  }
-
-  Collapse.prototype.getParent = function () {
-    return $(this.options.parent)
-      .find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]')
-      .each($.proxy(function (i, element) {
-        var $element = $(element)
-        this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)
-      }, this))
-      .end()
-  }
-
-  Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {
-    var isOpen = $element.hasClass('in')
-
-    $element.attr('aria-expanded', isOpen)
-    $trigger
-      .toggleClass('collapsed', !isOpen)
-      .attr('aria-expanded', isOpen)
-  }
-
-  function getTargetFromTrigger($trigger) {
-    var href
-    var target = $trigger.attr('data-target')
-      || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
-
-    return $(target)
-  }
-
-
-  // COLLAPSE PLUGIN DEFINITION
-  // ==========================
-
-  function Plugin(option) {
-    return this.each(function () {
-      var $this   = $(this)
-      var data    = $this.data('bs.collapse')
-      var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)
-
-      if (!data && options.toggle && option == 'show') options.toggle = false
-      if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))
-      if (typeof option == 'string') data[option]()
-    })
-  }
-
-  var old = $.fn.collapse
-
-  $.fn.collapse             = Plugin
-  $.fn.collapse.Constructor = Collapse
-
-
-  // COLLAPSE NO CONFLICT
-  // ====================
-
-  $.fn.collapse.noConflict = function () {
-    $.fn.collapse = old
-    return this
-  }
-
-
-  // COLLAPSE DATA-API
-  // =================
-
-  $(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) {
-    var $this   = $(this)
-
-    if (!$this.attr('data-target')) e.preventDefault()
-
-    var $target = getTargetFromTrigger($this)
-    var data    = $target.data('bs.collapse')
-    var option  = data ? 'toggle' : $.extend({}, $this.data(), { trigger: this })
-
-    Plugin.call($target, option)
-  })
-
-}(jQuery);
-
-/* ========================================================================
- * Bootstrap: dropdown.js v3.3.1
- * http://getbootstrap.com/javascript/#dropdowns
- * ========================================================================
- * Copyright 2011-2014 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * ======================================================================== */
-
-
-+function ($) {
-  'use strict';
-
-  // DROPDOWN CLASS DEFINITION
-  // =========================
-
-  var backdrop = '.dropdown-backdrop'
-  var toggle   = '[data-toggle="dropdown"]'
-  var Dropdown = function (element) {
-    $(element).on('click.bs.dropdown', this.toggle)
-  }
-
-  Dropdown.VERSION = '3.3.1'
-
-  Dropdown.prototype.toggle = function (e) {
-    var $this = $(this)
-
-    if ($this.is('.disabled, :disabled')) return
-
-    var $parent  = getParent($this)
-    var isActive = $parent.hasClass('open')
-
-    clearMenus()
-
-    if (!isActive) {
-      if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {
-        // if mobile we use a backdrop because click events don't delegate
-        $('<div class="dropdown-backdrop"/>').insertAfter($(this)).on('click', clearMenus)
-      }
-
-      var relatedTarget = { relatedTarget: this }
-      $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))
-
-      if (e.isDefaultPrevented()) return
-
-      $this
-        .trigger('focus')
-        .attr('aria-expanded', 'true')
-
-      $parent
-        .toggleClass('open')
-        .trigger('shown.bs.dropdown', relatedTarget)
-    }
-
-    return false
-  }
-
-  Dropdown.prototype.keydown = function (e) {
-    if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return
-
-    var $this = $(this)
-
-    e.preventDefault()
-    e.stopPropagation()
-
-    if ($this.is('.disabled, :disabled')) return
-
-    var $parent  = getParent($this)
-    var isActive = $parent.hasClass('open')
-
-    if ((!isActive && e.which != 27) || (isActive && e.which == 27)) {
-      if (e.which == 27) $parent.find(toggle).trigger('focus')
-      return $this.trigger('click')
-    }
-
-    var desc = ' li:not(.divider):visible a'
-    var $items = $parent.find('[role="menu"]' + desc + ', [role="listbox"]' + desc)
-
-    if (!$items.length) return
-
-    var index = $items.index(e.target)
-
-    if (e.which == 38 && index > 0)                 index--                        // up
-    if (e.which == 40 && index < $items.length - 1) index++                        // down
-    if (!~index)                                      index = 0
-
-    $items.eq(index).trigger('focus')
-  }
-
-  function clearMenus(e) {
-    if (e && e.which === 3) return
-    $(backdrop).remove()
-    $(toggle).each(function () {
-      var $this         = $(this)
-      var $parent       = getParent($this)
-      var relatedTarget = { relatedTarget: this }
-
-      if (!$parent.hasClass('open')) return
-
-      $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))
-
-      if (e.isDefaultPrevented()) return
-
-      $this.attr('aria-expanded', 'false')
-      $parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget)
-    })
-  }
-
-  function getParent($this) {
-    var selector = $this.attr('data-target')
-
-    if (!selector) {
-      selector = $this.attr('href')
-      selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
-    }
-
-    var $parent = selector && $(selector)
-
-    return $parent && $parent.length ? $parent : $this.parent()
-  }
-
-
-  // DROPDOWN PLUGIN DEFINITION
-  // ==========================
-
-  function Plugin(option) {
-    return this.each(function () {
-      var $this = $(this)
-      var data  = $this.data('bs.dropdown')
-
-      if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))
-      if (typeof option == 'string') data[option].call($this)
-    })
-  }
-
-  var old = $.fn.dropdown
-
-  $.fn.dropdown             = Plugin
-  $.fn.dropdown.Constructor = Dropdown
-
-
-  // DROPDOWN NO CONFLICT
-  // ====================
-
-  $.fn.dropdown.noConflict = function () {
-    $.fn.dropdown = old
-    return this
-  }
-
-
-  // APPLY TO STANDARD DROPDOWN ELEMENTS
-  // ===================================
-
-  $(document)
-    .on('click.bs.dropdown.data-api', clearMenus)
-    .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
-    .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)
-    .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)
-    .on('keydown.bs.dropdown.data-api', '[role="menu"]', Dropdown.prototype.keydown)
-    .on('keydown.bs.dropdown.data-api', '[role="listbox"]', Dropdown.prototype.keydown)
-
-}(jQuery);
-
-/* ========================================================================
- * Bootstrap: modal.js v3.3.1
- * http://getbootstrap.com/javascript/#modals
- * ========================================================================
- * Copyright 2011-2014 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * ======================================================================== */
-
-
-+function ($) {
-  'use strict';
-
-  // MODAL CLASS DEFINITION
-  // ======================
-
-  var Modal = function (element, options) {
-    this.options        = options
-    this.$body          = $(document.body)
-    this.$element       = $(element)
-    this.$backdrop      =
-    this.isShown        = null
-    this.scrollbarWidth = 0
-
-    if (this.options.remote) {
-      this.$element
-        .find('.modal-content')
-        .load(this.options.remote, $.proxy(function () {
-          this.$element.trigger('loaded.bs.modal')
-        }, this))
-    }
-  }
-
-  Modal.VERSION  = '3.3.1'
-
-  Modal.TRANSITION_DURATION = 300
-  Modal.BACKDROP_TRANSITION_DURATION = 150
-
-  Modal.DEFAULTS = {
-    backdrop: true,
-    keyboard: true,
-    show: true
-  }
-
-  Modal.prototype.toggle = function (_relatedTarget) {
-    return this.isShown ? this.hide() : this.show(_relatedTarget)
-  }
-
-  Modal.prototype.show = function (_relatedTarget) {
-    var that = this
-    var e    = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })
-
-    this.$element.trigger(e)
-
-    if (this.isShown || e.isDefaultPrevented()) return
-
-    this.isShown = true
-
-    this.checkScrollbar()
-    this.setScrollbar()
-    this.$body.addClass('modal-open')
-
-    this.escape()
-    this.resize()
-
-    this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
-
-    this.backdrop(function () {
-      var transition = $.support.transition && that.$element.hasClass('fade')
-
-      if (!that.$element.parent().length) {
-        that.$element.appendTo(that.$body) // don't move modals dom position
-      }
-
-      that.$element
-        .show()
-        .scrollTop(0)
-
-      if (that.options.backdrop) that.adjustBackdrop()
-      that.adjustDialog()
-
-      if (transition) {
-        that.$element[0].offsetWidth // force reflow
-      }
-
-      that.$element
-        .addClass('in')
-        .attr('aria-hidden', false)
-
-      that.enforceFocus()
-
-      var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })
-
-      transition ?
-        that.$element.find('.modal-dialog') // wait for modal to slide in
-          .one('bsTransitionEnd', function () {
-            that.$element.trigger('focus').trigger(e)
-          })
-          .emulateTransitionEnd(Modal.TRANSITION_DURATION) :
-        that.$element.trigger('focus').trigger(e)
-    })
-  }
-
-  Modal.prototype.hide = function (e) {
-    if (e) e.preventDefault()
-
-    e = $.Event('hide.bs.modal')
-
-    this.$element.trigger(e)
-
-    if (!this.isShown || e.isDefaultPrevented()) return
-
-    this.isShown = false
-
-    this.escape()
-    this.resize()
-
-    $(document).off('focusin.bs.modal')
-
-    this.$element
-      .removeClass('in')
-      .attr('aria-hidden', true)
-      .off('click.dismiss.bs.modal')
-
-    $.support.transition && this.$element.hasClass('fade') ?
-      this.$element
-        .one('bsTransitionEnd', $.proxy(this.hideModal, this))
-        .emulateTransitionEnd(Modal.TRANSITION_DURATION) :
-      this.hideModal()
-  }
-
-  Modal.prototype.enforceFocus = function () {
-    $(document)
-      .off('focusin.bs.modal') // guard against infinite focus loop
-      .on('focusin.bs.modal', $.proxy(function (e) {
-        if (this.$element[0] !== e.target && !this.$element.has(e.target).length) {
-          this.$element.trigger('focus')
-        }
-      }, this))
-  }
-
-  Modal.prototype.escape = function () {
-    if (this.isShown && this.options.keyboard) {
-      this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {
-        e.which == 27 && this.hide()
-      }, this))
-    } else if (!this.isShown) {
-      this.$element.off('keydown.dismiss.bs.modal')
-    }
-  }
-
-  Modal.prototype.resize = function () {
-    if (this.isShown) {
-      $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))
-    } else {
-      $(window).off('resize.bs.modal')
-    }
-  }
-
-  Modal.prototype.hideModal = function () {
-    var that = this
-    this.$element.hide()
-    this.backdrop(function () {
-      that.$body.removeClass('modal-open')
-      that.resetAdjustments()
-      that.resetScrollbar()
-      that.$element.trigger('hidden.bs.modal')
-    })
-  }
-
-  Modal.prototype.removeBackdrop = function () {
-    this.$backdrop && this.$backdrop.remove()
-    this.$backdrop = null
-  }
-
-  Modal.prototype.backdrop = function (callback) {
-    var that = this
-    var animate = this.$element.hasClass('fade') ? 'fade' : ''
-
-    if (this.isShown && this.options.backdrop) {
-      var doAnimate = $.support.transition && animate
-
-      this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
-        .prependTo(this.$element)
-        .on('click.dismiss.bs.modal', $.proxy(function (e) {
-          if (e.target !== e.currentTarget) return
-          this.options.backdrop == 'static'
-            ? this.$element[0].focus.call(this.$element[0])
-            : this.hide.call(this)
-        }, this))
-
-      if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
-
-      this.$backdrop.addClass('in')
-
-      if (!callback) return
-
-      doAnimate ?
-        this.$backdrop
-          .one('bsTransitionEnd', callback)
-          .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :
-        callback()
-
-    } else if (!this.isShown && this.$backdrop) {
-      this.$backdrop.removeClass('in')
-
-      var callbackRemove = function () {
-        that.removeBackdrop()
-        callback && callback()
-      }
-      $.support.transition && this.$element.hasClass('fade') ?
-        this.$backdrop
-          .one('bsTransitionEnd', callbackRemove)
-          .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :
-        callbackRemove()
-
-    } else if (callback) {
-      callback()
-    }
-  }
-
-  // these following methods are used to handle overflowing modals
-
-  Modal.prototype.handleUpdate = function () {
-    if (this.options.backdrop) this.adjustBackdrop()
-    this.adjustDialog()
-  }
-
-  Modal.prototype.adjustBackdrop = function () {
-    this.$backdrop
-      .css('height', 0)
-      .css('height', this.$element[0].scrollHeight)
-  }
-
-  Modal.prototype.adjustDialog = function () {
-    var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight
-
-    this.$element.css({
-      paddingLeft:  !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',
-      paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''
-    })
-  }
-
-  Modal.prototype.resetAdjustments = function () {
-    this.$element.css({
-      paddingLeft: '',
-      paddingRight: ''
-    })
-  }
-
-  Modal.prototype.checkScrollbar = function () {
-    this.bodyIsOverflowing = document.body.scrollHeight > document.documentElement.clientHeight
-    this.scrollbarWidth = this.measureScrollbar()
-  }
-
-  Modal.prototype.setScrollbar = function () {
-    var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)
-    if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)
-  }
-
-  Modal.prototype.resetScrollbar = function () {
-    this.$body.css('padding-right', '')
-  }
-
-  Modal.prototype.measureScrollbar = function () { // thx walsh
-    var scrollDiv = document.createElement('div')
-    scrollDiv.className = 'modal-scrollbar-measure'
-    this.$body.append(scrollDiv)
-    var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth
-    this.$body[0].removeChild(scrollDiv)
-    return scrollbarWidth
-  }
-
-
-  // MODAL PLUGIN DEFINITION
-  // =======================
-
-  function Plugin(option, _relatedTarget) {
-    return this.each(function () {
-      var $this   = $(this)
-      var data    = $this.data('bs.modal')
-      var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)
-
-      if (!data) $this.data('bs.modal', (data = new Modal(this, options)))
-      if (typeof option == 'string') data[option](_relatedTarget)
-      else if (options.show) data.show(_relatedTarget)
-    })
-  }
-
-  var old = $.fn.modal
-
-  $.fn.modal             = Plugin
-  $.fn.modal.Constructor = Modal
-
-
-  // MODAL NO CONFLICT
-  // =================
-
-  $.fn.modal.noConflict = function () {
-    $.fn.modal = old
-    return this
-  }
-
-
-  // MODAL DATA-API
-  // ==============
-
-  $(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) {
-    var $this   = $(this)
-    var href    = $this.attr('href')
-    var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) // strip for ie7
-    var option  = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
-
-    if ($this.is('a')) e.preventDefault()
-
-    $target.one('show.bs.modal', function (showEvent) {
-      if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown
-      $target.one('hidden.bs.modal', function () {
-        $this.is(':visible') && $this.trigger('focus')
-      })
-    })
-    Plugin.call($target, option, this)
-  })
-
-}(jQuery);
-
-/* ========================================================================
- * Bootstrap: tooltip.js v3.3.1
- * http://getbootstrap.com/javascript/#tooltip
- * Inspired by the original jQuery.tipsy by Jason Frame
- * ========================================================================
- * Copyright 2011-2014 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * ======================================================================== */
-
-
-+function ($) {
-  'use strict';
-
-  // TOOLTIP PUBLIC CLASS DEFINITION
-  // ===============================
-
-  var Tooltip = function (element, options) {
-    this.type       =
-    this.options    =
-    this.enabled    =
-    this.timeout    =
-    this.hoverState =
-    this.$element   = null
-
-    this.init('tooltip', element, options)
-  }
-
-  Tooltip.VERSION  = '3.3.1'
-
-  Tooltip.TRANSITION_DURATION = 150
-
-  Tooltip.DEFAULTS = {
-    animation: true,
-    placement: 'top',
-    selector: false,
-    template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
-    trigger: 'hover focus',
-    title: '',
-    delay: 0,
-    html: false,
-    container: false,
-    viewport: {
-      selector: 'body',
-      padding: 0
-    }
-  }
-
-  Tooltip.prototype.init = function (type, element, options) {
-    this.enabled   = true
-    this.type      = type
-    this.$element  = $(element)
-    this.options   = this.getOptions(options)
-    this.$viewport = this.options.viewport && $(this.options.viewport.selector || this.options.viewport)
-
-    var triggers = this.options.trigger.split(' ')
-
-    for (var i = triggers.length; i--;) {
-      var trigger = triggers[i]
-
-      if (trigger == 'click') {
-        this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
-      } else if (trigger != 'manual') {
-        var eventIn  = trigger == 'hover' ? 'mouseenter' : 'focusin'
-        var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'
-
-        this.$element.on(eventIn  + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
-        this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
-      }
-    }
-
-    this.options.selector ?
-      (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :
-      this.fixTitle()
-  }
-
-  Tooltip.prototype.getDefaults = function () {
-    return Tooltip.DEFAULTS
-  }
-
-  Tooltip.prototype.getOptions = function (options) {
-    options = $.extend({}, this.getDefaults(), this.$element.data(), options)
-
-    if (options.delay && typeof options.delay == 'number') {
-      options.delay = {
-        show: options.delay,
-        hide: options.delay
-      }
-    }
-
-    return options
-  }
-
-  Tooltip.prototype.getDelegateOptions = function () {
-    var options  = {}
-    var defaults = this.getDefaults()
-
-    this._options && $.each(this._options, function (key, value) {
-      if (defaults[key] != value) options[key] = value
-    })
-
-    return options
-  }
-
-  Tooltip.prototype.enter = function (obj) {
-    var self = obj instanceof this.constructor ?
-      obj : $(obj.currentTarget).data('bs.' + this.type)
-
-    if (self && self.$tip && self.$tip.is(':visible')) {
-      self.hoverState = 'in'
-      return
-    }
-
-    if (!self) {
-      self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
-      $(obj.currentTarget).data('bs.' + this.type, self)
-    }
-
-    clearTimeout(self.timeout)
-
-    self.hoverState = 'in'
-
-    if (!self.options.delay || !self.options.delay.show) return self.show()
-
-    self.timeout = setTimeout(function () {
-      if (self.hoverState == 'in') self.show()
-    }, self.options.delay.show)
-  }
-
-  Tooltip.prototype.leave = function (obj) {
-    var self = obj instanceof this.constructor ?
-      obj : $(obj.currentTarget).data('bs.' + this.type)
-
-    if (!self) {
-      self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
-      $(obj.currentTarget).data('bs.' + this.type, self)
-    }
-
-    clearTimeout(self.timeout)
-
-    self.hoverState = 'out'
-
-    if (!self.options.delay || !self.options.delay.hide) return self.hide()
-
-    self.timeout = setTimeout(function () {
-      if (self.hoverState == 'out') self.hide()
-    }, self.options.delay.hide)
-  }
-
-  Tooltip.prototype.show = function () {
-    var e = $.Event('show.bs.' + this.type)
-
-    if (this.hasContent() && this.enabled) {
-      this.$element.trigger(e)
-
-      var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])
-      if (e.isDefaultPrevented() || !inDom) return
-      var that = this
-
-      var $tip = this.tip()
-
-      var tipId = this.getUID(this.type)
-
-      this.setContent()
-      $tip.attr('id', tipId)
-      this.$element.attr('aria-describedby', tipId)
-
-      if (this.options.animation) $tip.addClass('fade')
-
-      var placement = typeof this.options.placement == 'function' ?
-        this.options.placement.call(this, $tip[0], this.$element[0]) :
-        this.options.placement
-
-      var autoToken = /\s?auto?\s?/i
-      var autoPlace = autoToken.test(placement)
-      if (autoPlace) placement = placement.replace(autoToken, '') || 'top'
-
-      $tip
-        .detach()
-        .css({ top: 0, left: 0, display: 'block' })
-        .addClass(placement)
-        .data('bs.' + this.type, this)
-
-      this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
-
-      var pos          = this.getPosition()
-      var actualWidth  = $tip[0].offsetWidth
-      var actualHeight = $tip[0].offsetHeight
-
-      if (autoPlace) {
-        var orgPlacement = placement
-        var $container   = this.options.container ? $(this.options.container) : this.$element.parent()
-        var containerDim = this.getPosition($container)
-
-        placement = placement == 'bottom' && pos.bottom + actualHeight > containerDim.bottom ? 'top'    :
-                    placement == 'top'    && pos.top    - actualHeight < containerDim.top    ? 'bottom' :
-                    placement == 'right'  && pos.right  + actualWidth  > containerDim.width  ? 'left'   :
-                    placement == 'left'   && pos.left   - actualWidth  < containerDim.left   ? 'right'  :
-                    placement
-
-        $tip
-          .removeClass(orgPlacement)
-          .addClass(placement)
-      }
-
-      var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)
-
-      this.applyPlacement(calculatedOffset, placement)
-
-      var complete = function () {
-        var prevHoverState = that.hoverState
-        that.$element.trigger('shown.bs.' + that.type)
-        that.hoverState = null
-
-        if (prevHoverState == 'out') that.leave(that)
-      }
-
-      $.support.transition && this.$tip.hasClass('fade') ?
-        $tip
-          .one('bsTransitionEnd', complete)
-          .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :
-        complete()
-    }
-  }
-
-  Tooltip.prototype.applyPlacement = function (offset, placement) {
-    var $tip   = this.tip()
-    var width  = $tip[0].offsetWidth
-    var height = $tip[0].offsetHeight
-
-    // manually read margins because getBoundingClientRect includes difference
-    var marginTop = parseInt($tip.css('margin-top'), 10)
-    var marginLeft = parseInt($tip.css('margin-left'), 10)
-
-    // we must check for NaN for ie 8/9
-    if (isNaN(marginTop))  marginTop  = 0
-    if (isNaN(marginLeft)) marginLeft = 0
-
-    offset.top  = offset.top  + marginTop
-    offset.left = offset.left + marginLeft
-
-    // $.fn.offset doesn't round pixel values
-    // so we use setOffset directly with our own function B-0
-    $.offset.setOffset($tip[0], $.extend({
-      using: function (props) {
-        $tip.css({
-          top: Math.round(props.top),
-          left: Math.round(props.left)
-        })
-      }
-    }, offset), 0)
-
-    $tip.addClass('in')
-
-    // check to see if placing tip in new offset caused the tip to resize itself
-    var actualWidth  = $tip[0].offsetWidth
-    var actualHeight = $tip[0].offsetHeight
-
-    if (placement == 'top' && actualHeight != height) {
-      offset.top = offset.top + height - actualHeight
-    }
-
-    var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)
-
-    if (delta.left) offset.left += delta.left
-    else offset.top += delta.top
-
-    var isVertical          = /top|bottom/.test(placement)
-    var arrowDelta          = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight
-    var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'
-
-    $tip.offset(offset)
-    this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)
-  }
-
-  Tooltip.prototype.replaceArrow = function (delta, dimension, isHorizontal) {
-    this.arrow()
-      .css(isHorizontal ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')
-      .css(isHorizontal ? 'top' : 'left', '')
-  }
-
-  Tooltip.prototype.setContent = function () {
-    var $tip  = this.tip()
-    var title = this.getTitle()
-
-    $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)
-    $tip.removeClass('fade in top bottom left right')
-  }
-
-  Tooltip.prototype.hide = function (callback) {
-    var that = this
-    var $tip = this.tip()
-    var e    = $.Event('hide.bs.' + this.type)
-
-    function complete() {
-      if (that.hoverState != 'in') $tip.detach()
-      that.$element
-        .removeAttr('aria-describedby')
-        .trigger('hidden.bs.' + that.type)
-      callback && callback()
-    }
-
-    this.$element.trigger(e)
-
-    if (e.isDefaultPrevented()) return
-
-    $tip.removeClass('in')
-
-    $.support.transition && this.$tip.hasClass('fade') ?
-      $tip
-        .one('bsTransitionEnd', complete)
-        .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :
-      complete()
-
-    this.hoverState = null
-
-    return this
-  }
-
-  Tooltip.prototype.fixTitle = function () {
-    var $e = this.$element
-    if ($e.attr('title') || typeof ($e.attr('data-original-title')) != 'string') {
-      $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')
-    }
-  }
-
-  Tooltip.prototype.hasContent = function () {
-    return this.getTitle()
-  }
-
-  Tooltip.prototype.getPosition = function ($element) {
-    $element   = $element || this.$element
-
-    var el     = $element[0]
-    var isBody = el.tagName == 'BODY'
-
-    var elRect    = el.getBoundingClientRect()
-    if (elRect.width == null) {
-      // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093
-      elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })
-    }
-    var elOffset  = isBody ? { top: 0, left: 0 } : $element.offset()
-    var scroll    = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }
-    var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null
-
-    return $.extend({}, elRect, scroll, outerDims, elOffset)
-  }
-
-  Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {
-    return placement == 'bottom' ? { top: pos.top + pos.height,   left: pos.left + pos.width / 2 - actualWidth / 2  } :
-           placement == 'top'    ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2  } :
-           placement == 'left'   ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :
-        /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width   }
-
-  }
-
-  Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {
-    var delta = { top: 0, left: 0 }
-    if (!this.$viewport) return delta
-
-    var viewportPadding = this.options.viewport && this.options.viewport.padding || 0
-    var viewportDimensions = this.getPosition(this.$viewport)
-
-    if (/right|left/.test(placement)) {
-      var topEdgeOffset    = pos.top - viewportPadding - viewportDimensions.scroll
-      var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight
-      if (topEdgeOffset < viewportDimensions.top) { // top overflow
-        delta.top = viewportDimensions.top - topEdgeOffset
-      } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow
-        delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset
-      }
-    } else {
-      var leftEdgeOffset  = pos.left - viewportPadding
-      var rightEdgeOffset = pos.left + viewportPadding + actualWidth
-      if (leftEdgeOffset < viewportDimensions.left) { // left overflow
-        delta.left = viewportDimensions.left - leftEdgeOffset
-      } else if (rightEdgeOffset > viewportDimensions.width) { // right overflow
-        delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset
-      }
-    }
-
-    return delta
-  }
-
-  Tooltip.prototype.getTitle = function () {
-    var title
-    var $e = this.$element
-    var o  = this.options
-
-    title = $e.attr('data-original-title')
-      || (typeof o.title == 'function' ? o.title.call($e[0]) :  o.title)
-
-    return title
-  }
-
-  Tooltip.prototype.getUID = function (prefix) {
-    do prefix += ~~(Math.random() * 1000000)
-    while (document.getElementById(prefix))
-    return prefix
-  }
-
-  Tooltip.prototype.tip = function () {
-    return (this.$tip = this.$tip || $(this.options.template))
-  }
-
-  Tooltip.prototype.arrow = function () {
-    return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))
-  }
-
-  Tooltip.prototype.enable = function () {
-    this.enabled = true
-  }
-
-  Tooltip.prototype.disable = function () {
-    this.enabled = false
-  }
-
-  Tooltip.prototype.toggleEnabled = function () {
-    this.enabled = !this.enabled
-  }
-
-  Tooltip.prototype.toggle = function (e) {
-    var self = this
-    if (e) {
-      self = $(e.currentTarget).data('bs.' + this.type)
-      if (!self) {
-        self = new this.constructor(e.currentTarget, this.getDelegateOptions())
-        $(e.currentTarget).data('bs.' + this.type, self)
-      }
-    }
-
-    self.tip().hasClass('in') ? self.leave(self) : self.enter(self)
-  }
-
-  Tooltip.prototype.destroy = function () {
-    var that = this
-    clearTimeout(this.timeout)
-    this.hide(function () {
-      that.$element.off('.' + that.type).removeData('bs.' + that.type)
-    })
-  }
-
-
-  // TOOLTIP PLUGIN DEFINITION
-  // =========================
-
-  function Plugin(option) {
-    return this.each(function () {
-      var $this    = $(this)
-      var data     = $this.data('bs.tooltip')
-      var options  = typeof option == 'object' && option
-      var selector = options && options.selector
-
-      if (!data && option == 'destroy') return
-      if (selector) {
-        if (!data) $this.data('bs.tooltip', (data = {}))
-        if (!data[selector]) data[selector] = new Tooltip(this, options)
-      } else {
-        if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))
-      }
-      if (typeof option == 'string') data[option]()
-    })
-  }
-
-  var old = $.fn.tooltip
-
-  $.fn.tooltip             = Plugin
-  $.fn.tooltip.Constructor = Tooltip
-
-
-  // TOOLTIP NO CONFLICT
-  // ===================
-
-  $.fn.tooltip.noConflict = function () {
-    $.fn.tooltip = old
-    return this
-  }
-
-}(jQuery);
-
-/* ========================================================================
- * Bootstrap: popover.js v3.3.1
- * http://getbootstrap.com/javascript/#popovers
- * ========================================================================
- * Copyright 2011-2014 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * ======================================================================== */
-
-
-+function ($) {
-  'use strict';
-
-  // POPOVER PUBLIC CLASS DEFINITION
-  // ===============================
-
-  var Popover = function (element, options) {
-    this.init('popover', element, options)
-  }
-
-  if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
-
-  Popover.VERSION  = '3.3.1'
-
-  Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {
-    placement: 'right',
-    trigger: 'click',
-    content: '',
-    template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
-  })
-
-
-  // NOTE: POPOVER EXTENDS tooltip.js
-  // ================================
-
-  Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)
-
-  Popover.prototype.constructor = Popover
-
-  Popover.prototype.getDefaults = function () {
-    return Popover.DEFAULTS
-  }
-
-  Popover.prototype.setContent = function () {
-    var $tip    = this.tip()
-    var title   = this.getTitle()
-    var content = this.getContent()
-
-    $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
-    $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events
-      this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'
-    ](content)
-
-    $tip.removeClass('fade top bottom left right in')
-
-    // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do
-    // this manually by checking the contents.
-    if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()
-  }
-
-  Popover.prototype.hasContent = function () {
-    return this.getTitle() || this.getContent()
-  }
-
-  Popover.prototype.getContent = function () {
-    var $e = this.$element
-    var o  = this.options
-
-    return $e.attr('data-content')
-      || (typeof o.content == 'function' ?
-            o.content.call($e[0]) :
-            o.content)
-  }
-
-  Popover.prototype.arrow = function () {
-    return (this.$arrow = this.$arrow || this.tip().find('.arrow'))
-  }
-
-  Popover.prototype.tip = function () {
-    if (!this.$tip) this.$tip = $(this.options.template)
-    return this.$tip
-  }
-
-
-  // POPOVER PLUGIN DEFINITION
-  // =========================
-
-  function Plugin(option) {
-    return this.each(function () {
-      var $this    = $(this)
-      var data     = $this.data('bs.popover')
-      var options  = typeof option == 'object' && option
-      var selector = options && options.selector
-
-      if (!data && option == 'destroy') return
-      if (selector) {
-        if (!data) $this.data('bs.popover', (data = {}))
-        if (!data[selector]) data[selector] = new Popover(this, options)
-      } else {
-        if (!data) $this.data('bs.popover', (data = new Popover(this, options)))
-      }
-      if (typeof option == 'string') data[option]()
-    })
-  }
-
-  var old = $.fn.popover
-
-  $.fn.popover             = Plugin
-  $.fn.popover.Constructor = Popover
-
-
-  // POPOVER NO CONFLICT
-  // ===================
-
-  $.fn.popover.noConflict = function () {
-    $.fn.popover = old
-    return this
-  }
-
-}(jQuery);
-
-/* ========================================================================
- * Bootstrap: scrollspy.js v3.3.1
- * http://getbootstrap.com/javascript/#scrollspy
- * ========================================================================
- * Copyright 2011-2014 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * ======================================================================== */
-
-
-+function ($) {
-  'use strict';
-
-  // SCROLLSPY CLASS DEFINITION
-  // ==========================
-
-  function ScrollSpy(element, options) {
-    var process  = $.proxy(this.process, this)
-
-    this.$body          = $('body')
-    this.$scrollElement = $(element).is('body') ? $(window) : $(element)
-    this.options        = $.extend({}, ScrollSpy.DEFAULTS, options)
-    this.selector       = (this.options.target || '') + ' .nav li > a'
-    this.offsets        = []
-    this.targets        = []
-    this.activeTarget   = null
-    this.scrollHeight   = 0
-
-    this.$scrollElement.on('scroll.bs.scrollspy', process)
-    this.refresh()
-    this.process()
-  }
-
-  ScrollSpy.VERSION  = '3.3.1'
-
-  ScrollSpy.DEFAULTS = {
-    offset: 10
-  }
-
-  ScrollSpy.prototype.getScrollHeight = function () {
-    return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)
-  }
-
-  ScrollSpy.prototype.refresh = function () {
-    var offsetMethod = 'offset'
-    var offsetBase   = 0
-
-    if (!$.isWindow(this.$scrollElement[0])) {
-      offsetMethod = 'position'
-      offsetBase   = this.$scrollElement.scrollTop()
-    }
-
-    this.offsets = []
-    this.targets = []
-    this.scrollHeight = this.getScrollHeight()
-
-    var self     = this
-
-    this.$body
-      .find(this.selector)
-      .map(function () {
-        var $el   = $(this)
-        var href  = $el.data('target') || $el.attr('href')
-        var $href = /^#./.test(href) && $(href)
-
-        return ($href
-          && $href.length
-          && $href.is(':visible')
-          && [[$href[offsetMethod]().top + offsetBase, href]]) || null
-      })
-      .sort(function (a, b) { return a[0] - b[0] })
-      .each(function () {
-        self.offsets.push(this[0])
-        self.targets.push(this[1])
-      })
-  }
-
-  ScrollSpy.prototype.process = function () {
-    var scrollTop    = this.$scrollElement.scrollTop() + this.options.offset
-    var scrollHeight = this.getScrollHeight()
-    var maxScroll    = this.options.offset + scrollHeight - this.$scrollElement.height()
-    var offsets      = this.offsets
-    var targets      = this.targets
-    var activeTarget = this.activeTarget
-    var i
-
-    if (this.scrollHeight != scrollHeight) {
-      this.refresh()
-    }
-
-    if (scrollTop >= maxScroll) {
-      return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)
-    }
-
-    if (activeTarget && scrollTop < offsets[0]) {
-      this.activeTarget = null
-      return this.clear()
-    }
-
-    for (i = offsets.length; i--;) {
-      activeTarget != targets[i]
-        && scrollTop >= offsets[i]
-        && (!offsets[i + 1] || scrollTop <= offsets[i + 1])
-        && this.activate(targets[i])
-    }
-  }
-
-  ScrollSpy.prototype.activate = function (target) {
-    this.activeTarget = target
-
-    this.clear()
-
-    var selector = this.selector +
-        '[data-target="' + target + '"],' +
-        this.selector + '[href="' + target + '"]'
-
-    var active = $(selector)
-      .parents('li')
-      .addClass('active')
-
-    if (active.parent('.dropdown-menu').length) {
-      active = active
-        .closest('li.dropdown')
-        .addClass('active')
-    }
-
-    active.trigger('activate.bs.scrollspy')
-  }
-
-  ScrollSpy.prototype.clear = function () {
-    $(this.selector)
-      .parentsUntil(this.options.target, '.active')
-      .removeClass('active')
-  }
-
-
-  // SCROLLSPY PLUGIN DEFINITION
-  // ===========================
-
-  function Plugin(option) {
-    return this.each(function () {
-      var $this   = $(this)
-      var data    = $this.data('bs.scrollspy')
-      var options = typeof option == 'object' && option
-
-      if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))
-      if (typeof option == 'string') data[option]()
-    })
-  }
-
-  var old = $.fn.scrollspy
-
-  $.fn.scrollspy             = Plugin
-  $.fn.scrollspy.Constructor = ScrollSpy
-
-
-  // SCROLLSPY NO CONFLICT
-  // =====================
-
-  $.fn.scrollspy.noConflict = function () {
-    $.fn.scrollspy = old
-    return this
-  }
-
-
-  // SCROLLSPY DATA-API
-  // ==================
-
-  $(window).on('load.bs.scrollspy.data-api', function () {
-    $('[data-spy="scroll"]').each(function () {
-      var $spy = $(this)
-      Plugin.call($spy, $spy.data())
-    })
-  })
-
-}(jQuery);
-
-/* ========================================================================
- * Bootstrap: tab.js v3.3.1
- * http://getbootstrap.com/javascript/#tabs
- * ========================================================================
- * Copyright 2011-2014 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * ======================================================================== */
-
-
-+function ($) {
-  'use strict';
-
-  // TAB CLASS DEFINITION
-  // ====================
-
-  var Tab = function (element) {
-    this.element = $(element)
-  }
-
-  Tab.VERSION = '3.3.1'
-
-  Tab.TRANSITION_DURATION = 150
-
-  Tab.prototype.show = function () {
-    var $this    = this.element
-    var $ul      = $this.closest('ul:not(.dropdown-menu)')
-    var selector = $this.data('target')
-
-    if (!selector) {
-      selector = $this.attr('href')
-      selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
-    }
-
-    if ($this.parent('li').hasClass('active')) return
-
-    var $previous = $ul.find('.active:last a')
-    var hideEvent = $.Event('hide.bs.tab', {
-      relatedTarget: $this[0]
-    })
-    var showEvent = $.Event('show.bs.tab', {
-      relatedTarget: $previous[0]
-    })
-
-    $previous.trigger(hideEvent)
-    $this.trigger(showEvent)
-
-    if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return
-
-    var $target = $(selector)
-
-    this.activate($this.closest('li'), $ul)
-    this.activate($target, $target.parent(), function () {
-      $previous.trigger({
-        type: 'hidden.bs.tab',
-        relatedTarget: $this[0]
-      })
-      $this.trigger({
-        type: 'shown.bs.tab',
-        relatedTarget: $previous[0]
-      })
-    })
-  }
-
-  Tab.prototype.activate = function (element, container, callback) {
-    var $active    = container.find('> .active')
-    var transition = callback
-      && $.support.transition
-      && (($active.length && $active.hasClass('fade')) || !!container.find('> .fade').length)
-
-    function next() {
-      $active
-        .removeClass('active')
-        .find('> .dropdown-menu > .active')
-          .removeClass('active')
-        .end()
-        .find('[data-toggle="tab"]')
-          .attr('aria-expanded', false)
-
-      element
-        .addClass('active')
-        .find('[data-toggle="tab"]')
-          .attr('aria-expanded', true)
-
-      if (transition) {
-        element[0].offsetWidth // reflow for transition
-        element.addClass('in')
-      } else {
-        element.removeClass('fade')
-      }
-
-      if (element.parent('.dropdown-menu')) {
-        element
-          .closest('li.dropdown')
-            .addClass('active')
-          .end()
-          .find('[data-toggle="tab"]')
-            .attr('aria-expanded', true)
-      }
-
-      callback && callback()
-    }
-
-    $active.length && transition ?
-      $active
-        .one('bsTransitionEnd', next)
-        .emulateTransitionEnd(Tab.TRANSITION_DURATION) :
-      next()
-
-    $active.removeClass('in')
-  }
-
-
-  // TAB PLUGIN DEFINITION
-  // =====================
-
-  function Plugin(option) {
-    return this.each(function () {
-      var $this = $(this)
-      var data  = $this.data('bs.tab')
-
-      if (!data) $this.data('bs.tab', (data = new Tab(this)))
-      if (typeof option == 'string') data[option]()
-    })
-  }
-
-  var old = $.fn.tab
-
-  $.fn.tab             = Plugin
-  $.fn.tab.Constructor = Tab
-
-
-  // TAB NO CONFLICT
-  // ===============
-
-  $.fn.tab.noConflict = function () {
-    $.fn.tab = old
-    return this
-  }
-
-
-  // TAB DATA-API
-  // ============
-
-  var clickHandler = function (e) {
-    e.preventDefault()
-    Plugin.call($(this), 'show')
-  }
-
-  $(document)
-    .on('click.bs.tab.data-api', '[data-toggle="tab"]', clickHandler)
-    .on('click.bs.tab.data-api', '[data-toggle="pill"]', clickHandler)
-
-}(jQuery);
-
-/* ========================================================================
- * Bootstrap: affix.js v3.3.1
- * http://getbootstrap.com/javascript/#affix
- * ========================================================================
- * Copyright 2011-2014 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * ======================================================================== */
-
-
-+function ($) {
-  'use strict';
-
-  // AFFIX CLASS DEFINITION
-  // ======================
-
-  var Affix = function (element, options) {
-    this.options = $.extend({}, Affix.DEFAULTS, options)
-
-    this.$target = $(this.options.target)
-      .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))
-      .on('click.bs.affix.data-api',  $.proxy(this.checkPositionWithEventLoop, this))
-
-    this.$element     = $(element)
-    this.affixed      =
-    this.unpin        =
-    this.pinnedOffset = null
-
-    this.checkPosition()
-  }
-
-  Affix.VERSION  = '3.3.1'
-
-  Affix.RESET    = 'affix affix-top affix-bottom'
-
-  Affix.DEFAULTS = {
-    offset: 0,
-    target: window
-  }
-
-  Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {
-    var scrollTop    = this.$target.scrollTop()
-    var position     = this.$element.offset()
-    var targetHeight = this.$target.height()
-
-    if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false
-
-    if (this.affixed == 'bottom') {
-      if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'
-      return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'
-    }
-
-    var initializing   = this.affixed == null
-    var colliderTop    = initializing ? scrollTop : position.top
-    var colliderHeight = initializing ? targetHeight : height
-
-    if (offsetTop != null && colliderTop <= offsetTop) return 'top'
-    if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'
-
-    return false
-  }
-
-  Affix.prototype.getPinnedOffset = function () {
-    if (this.pinnedOffset) return this.pinnedOffset
-    this.$element.removeClass(Affix.RESET).addClass('affix')
-    var scrollTop = this.$target.scrollTop()
-    var position  = this.$element.offset()
-    return (this.pinnedOffset = position.top - scrollTop)
-  }
-
-  Affix.prototype.checkPositionWithEventLoop = function () {
-    setTimeout($.proxy(this.checkPosition, this), 1)
-  }
-
-  Affix.prototype.checkPosition = function () {
-    if (!this.$element.is(':visible')) return
-
-    var height       = this.$element.height()
-    var offset       = this.options.offset
-    var offsetTop    = offset.top
-    var offsetBottom = offset.bottom
-    var scrollHeight = $('body').height()
-
-    if (typeof offset != 'object')         offsetBottom = offsetTop = offset
-    if (typeof offsetTop == 'function')    offsetTop    = offset.top(this.$element)
-    if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)
-
-    var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)
-
-    if (this.affixed != affix) {
-      if (this.unpin != null) this.$element.css('top', '')
-
-      var affixType = 'affix' + (affix ? '-' + affix : '')
-      var e         = $.Event(affixType + '.bs.affix')
-
-      this.$element.trigger(e)
-
-      if (e.isDefaultPrevented()) return
-
-      this.affixed = affix
-      this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null
-
-      this.$element
-        .removeClass(Affix.RESET)
-        .addClass(affixType)
-        .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')
-    }
-
-    if (affix == 'bottom') {
-      this.$element.offset({
-        top: scrollHeight - height - offsetBottom
-      })
-    }
-  }
-
-
-  // AFFIX PLUGIN DEFINITION
-  // =======================
-
-  function Plugin(option) {
-    return this.each(function () {
-      var $this   = $(this)
-      var data    = $this.data('bs.affix')
-      var options = typeof option == 'object' && option
-
-      if (!data) $this.data('bs.affix', (data = new Affix(this, options)))
-      if (typeof option == 'string') data[option]()
-    })
-  }
-
-  var old = $.fn.affix
-
-  $.fn.affix             = Plugin
-  $.fn.affix.Constructor = Affix
-
-
-  // AFFIX NO CONFLICT
-  // =================
-
-  $.fn.affix.noConflict = function () {
-    $.fn.affix = old
-    return this
-  }
-
-
-  // AFFIX DATA-API
-  // ==============
-
-  $(window).on('load', function () {
-    $('[data-spy="affix"]').each(function () {
-      var $spy = $(this)
-      var data = $spy.data()
-
-      data.offset = data.offset || {}
-
-      if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom
-      if (data.offsetTop    != null) data.offset.top    = data.offsetTop
-
-      Plugin.call($spy, data)
-    })
-  })
-
-}(jQuery);
diff --git a/gui/slick/js/lib/bootstrap.min.js b/gui/slick/js/lib/bootstrap.min.js
index d839865900c1ab1245618347dcb0a0d4bb01b893..133aeecb98aa2b05d2dc1fcd623afcb37204828a 100644
Binary files a/gui/slick/js/lib/bootstrap.min.js and b/gui/slick/js/lib/bootstrap.min.js differ
diff --git a/gui/slick/js/lib/jquery-1.11.2.min.map b/gui/slick/js/lib/jquery-1.11.2.min.map
deleted file mode 100644
index 837de0b541282ce2acb49f6020ce30f73f18c1bb..0000000000000000000000000000000000000000
--- a/gui/slick/js/lib/jquery-1.11.2.min.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"jquery-1.11.2.min.js","sources":["jquery-1.11.2.js"],"names":["global","factory","module","exports","document","w","Error","window","this","noGlobal","deletedIds","slice","concat","push","indexOf","class2type","toString","hasOwn","hasOwnProperty","support","version","jQuery","selector","context","fn","init","rtrim","rmsPrefix","rdashAlpha","fcamelCase","all","letter","toUpperCase","prototype","jquery","constructor","length","toArray","call","get","num","pushStack","elems","ret","merge","prevObject","each","callback","args","map","elem","i","apply","arguments","first","eq","last","len","j","end","sort","splice","extend","src","copyIsArray","copy","name","options","clone","target","deep","isFunction","isPlainObject","isArray","undefined","expando","Math","random","replace","isReady","error","msg","noop","obj","type","Array","isWindow","isNumeric","parseFloat","isEmptyObject","key","nodeType","e","ownLast","globalEval","data","trim","execScript","camelCase","string","nodeName","toLowerCase","value","isArraylike","text","makeArray","arr","results","Object","inArray","max","second","grep","invert","callbackInverse","matches","callbackExpect","arg","guid","proxy","tmp","now","Date","split","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","sortOrder","a","b","MAX_NEGATIVE","pop","push_native","list","booleans","whitespace","characterEncoding","identifier","attributes","pseudos","rwhitespace","RegExp","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rnative","rquickExpr","rsibling","rescape","runescape","funescape","_","escaped","escapedWhitespace","high","String","fromCharCode","unloadHandler","childNodes","els","seed","match","m","groups","old","nid","newContext","newSelector","ownerDocument","exec","getElementById","parentNode","id","getElementsByTagName","getElementsByClassName","qsa","test","getAttribute","setAttribute","toSelector","testContext","join","querySelectorAll","qsaError","removeAttribute","keys","cache","cacheLength","shift","markFunction","assert","div","createElement","removeChild","addHandle","attrs","handler","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createPositionalPseudo","argument","matchIndexes","documentElement","node","hasCompare","parent","doc","defaultView","top","addEventListener","attachEvent","className","appendChild","createComment","getById","getElementsByName","find","filter","attrId","getAttributeNode","tag","innerHTML","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","attr","val","specified","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","nodeValue","selectors","createPseudo","relative",">","dir"," ","+","~","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","simple","forward","ofType","xml","outerCache","nodeIndex","start","useCache","lastChild","pseudo","setFilters","idx","matched","not","matcher","unmatched","has","innerText","lang","elemLang","hash","location","root","focus","activeElement","hasFocus","href","tabIndex","enabled","disabled","checked","selected","selectedIndex","empty","header","button","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","filters","parseOnly","tokens","soFar","preFilters","cached","addCombinator","combinator","base","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","multipleContexts","contexts","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","token","compiled","div1","defaultValue","unique","isXMLDoc","rneedsContext","rsingleTag","risSimple","winnow","qualifier","self","is","rootjQuery","charAt","parseHTML","ready","rparentsprev","guaranteedUnique","children","contents","next","prev","until","sibling","n","r","targets","closest","l","pos","index","prevAll","add","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","siblings","contentDocument","contentWindow","reverse","rnotwhite","optionsCache","createOptions","object","flag","Callbacks","firing","memory","fired","firingLength","firingIndex","firingStart","stack","once","fire","stopOnFalse","disable","remove","lock","locked","fireWith","Deferred","func","tuples","state","promise","always","deferred","fail","then","fns","newDefer","tuple","returned","resolve","reject","progress","notify","pipe","stateString","when","subordinate","resolveValues","remaining","updateFunc","values","progressValues","notifyWith","resolveWith","progressContexts","resolveContexts","readyList","readyWait","holdReady","hold","wait","body","setTimeout","triggerHandler","off","detach","removeEventListener","completed","detachEvent","event","readyState","frameElement","doScroll","doScrollCheck","strundefined","inlineBlockNeedsLayout","container","style","cssText","zoom","offsetWidth","deleteExpando","acceptData","noData","rbrace","rmultiDash","dataAttr","parseJSON","isEmptyDataObject","internalData","pvt","thisCache","internalKey","isNode","toJSON","internalRemoveData","cleanData","applet ","embed ","object ","hasData","removeData","_data","_removeData","queue","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","count","defer","pnum","source","cssExpand","isHidden","el","css","access","chainable","emptyGet","raw","bulk","rcheckableType","fragment","createDocumentFragment","leadingWhitespace","tbody","htmlSerialize","html5Clone","cloneNode","outerHTML","appendChecked","noCloneChecked","checkClone","noCloneEvent","click","eventName","change","focusin","rformElems","rkeyEvent","rmouseEvent","rfocusMorph","rtypenamespace","returnTrue","returnFalse","safeActiveElement","err","types","events","t","handleObjIn","special","eventHandle","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","trigger","onlyHandlers","ontype","bubbleType","eventPath","Event","isTrigger","namespace_re","noBubble","parentWindow","isPropagationStopped","preventDefault","isDefaultPrevented","_default","fix","handlerQueue","delegateTarget","preDispatch","currentTarget","isImmediatePropagationStopped","stopPropagation","postDispatch","sel","prop","originalEvent","fixHook","fixHooks","mouseHooks","keyHooks","props","srcElement","metaKey","original","which","charCode","keyCode","eventDoc","fromElement","pageX","clientX","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","relatedTarget","toElement","load","blur","beforeunload","returnValue","simulate","bubble","isSimulated","defaultPrevented","timeStamp","cancelBubble","stopImmediatePropagation","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","submitBubbles","form","_submit_bubble","changeBubbles","propertyName","_just_changed","focusinBubbles","attaches","on","one","origFn","createSafeFragment","nodeNames","safeFrag","rinlinejQuery","rnoshimcache","rleadingWhitespace","rxhtmlTag","rtagName","rtbody","rhtml","rnoInnerhtml","rchecked","rscriptType","rscriptTypeMasked","rcleanScript","wrapMap","option","legend","area","param","thead","tr","col","td","safeFragment","fragmentDiv","optgroup","tfoot","colgroup","caption","th","getAll","found","fixDefaultChecked","defaultChecked","manipulationTarget","content","disableScript","restoreScript","setGlobalEval","refElements","cloneCopyEvent","dest","oldData","curData","fixCloneNodeIssues","defaultSelected","dataAndEvents","deepDataAndEvents","destElements","srcElements","inPage","buildFragment","scripts","selection","wrap","safe","nodes","createTextNode","append","domManip","prepend","insertBefore","before","after","keepData","html","replaceWith","replaceChild","hasScripts","set","iNoClone","_evalUrl","appendTo","prependTo","insertAfter","replaceAll","insert","iframe","elemdisplay","actualDisplay","display","getDefaultComputedStyle","defaultDisplay","write","close","shrinkWrapBlocksVal","shrinkWrapBlocks","width","rmargin","rnumnonpx","getStyles","curCSS","rposition","getComputedStyle","opener","computed","minWidth","maxWidth","getPropertyValue","currentStyle","left","rs","rsLeft","runtimeStyle","pixelLeft","addGetHookIf","conditionFn","hookFn","condition","pixelPositionVal","boxSizingReliableVal","reliableHiddenOffsetsVal","reliableMarginRightVal","opacity","cssFloat","backgroundClip","clearCloneStyle","boxSizing","MozBoxSizing","WebkitBoxSizing","reliableHiddenOffsets","computeStyleTests","boxSizingReliable","pixelPosition","reliableMarginRight","marginRight","offsetHeight","swap","ralpha","ropacity","rdisplayswap","rnumsplit","rrelNum","cssShow","position","visibility","cssNormalTransform","letterSpacing","fontWeight","cssPrefixes","vendorPropName","capName","origName","showHide","show","hidden","setPositiveNumber","subtract","augmentWidthOrHeight","extra","isBorderBox","styles","getWidthOrHeight","valueIsBorderBox","cssHooks","cssNumber","columnCount","fillOpacity","flexGrow","flexShrink","lineHeight","order","orphans","widows","zIndex","cssProps","float","$1","margin","padding","border","prefix","suffix","expand","expanded","parts","hide","toggle","Tween","easing","unit","propHooks","run","percent","eased","duration","step","tween","fx","linear","p","swing","cos","PI","fxNow","timerId","rfxtypes","rfxnum","rrun","animationPrefilters","defaultPrefilter","tweeners","*","createTween","scale","maxIterations","createFxNow","genFx","includeWidth","height","animation","collection","opts","oldfire","checkDisplay","anim","dataShow","unqueued","overflow","overflowX","overflowY","propFilter","specialEasing","Animation","properties","stopped","tick","currentTime","startTime","tweens","originalProperties","originalOptions","gotoEnd","rejectWith","timer","complete","tweener","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","interval","setInterval","clearInterval","slow","fast","delay","time","timeout","clearTimeout","getSetAttribute","hrefNormalized","checkOn","optSelected","enctype","optDisabled","radioValue","rreturn","valHooks","optionSet","scrollHeight","nodeHook","boolHook","ruseDefault","getSetInput","removeAttr","nType","attrHooks","propName","attrNames","propFix","getter","setAttributeNode","createAttribute","coords","contenteditable","rfocusable","rclickable","removeProp","for","class","notxml","tabindex","parseInt","rclass","addClass","classes","clazz","finalValue","proceed","removeClass","toggleClass","stateVal","classNames","hasClass","hover","fnOver","fnOut","bind","unbind","delegate","undelegate","nonce","rquery","rvalidtokens","JSON","parse","requireNonComma","depth","str","comma","open","Function","parseXML","DOMParser","parseFromString","ActiveXObject","async","loadXML","ajaxLocParts","ajaxLocation","rhash","rts","rheaders","rlocalProtocol","rnoContent","rprotocol","rurl","prefilters","transports","allTypes","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","ajaxHandleResponses","s","responses","firstDataType","ct","finalDataType","mimeType","getResponseHeader","converters","ajaxConvert","response","isSuccess","conv2","current","conv","responseFields","dataFilter","active","lastModified","etag","url","isLocal","processData","contentType","accepts","json","* text","text html","text json","text xml","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","cacheURL","responseHeadersString","timeoutTimer","fireGlobals","transport","responseHeaders","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","lname","overrideMimeType","code","status","abort","statusText","finalText","success","method","crossDomain","traditional","hasContent","ifModified","headers","beforeSend","send","nativeStatusText","modified","getJSON","getScript","throws","wrapAll","wrapInner","unwrap","visible","r20","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","v","encodeURIComponent","serialize","serializeArray","xhr","createStandardXHR","createActiveXHR","xhrId","xhrCallbacks","xhrSupported","cors","username","xhrFields","isAbort","onreadystatechange","responseText","XMLHttpRequest","script","text script","head","scriptCharset","charset","onload","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","keepScripts","parsed","_load","params","animated","getWindow","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","using","win","box","getBoundingClientRect","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","size","andSelf","define","amd","_jQuery","_$","$","noConflict"],"mappings":"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"}
\ No newline at end of file
diff --git a/gui/slick/js/lib/jquery-ui-1.10.4.custom.min.js b/gui/slick/js/lib/jquery-ui-1.10.4.custom.min.js
index b384e05049605c00b56d92b2e1e66017d951231c..ce23cf3e604b1ce1abbdf84d3cb40d6bf3eaa2af 100644
Binary files a/gui/slick/js/lib/jquery-ui-1.10.4.custom.min.js and b/gui/slick/js/lib/jquery-ui-1.10.4.custom.min.js differ
diff --git a/gui/slick/js/lib/npm.js b/gui/slick/js/lib/npm.js
deleted file mode 100644
index bf6aa80602d9303b61e8d5e63c10568e55b6a4d8..0000000000000000000000000000000000000000
--- a/gui/slick/js/lib/npm.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.
-require('../../js/transition.js')
-require('../../js/alert.js')
-require('../../js/button.js')
-require('../../js/carousel.js')
-require('../../js/collapse.js')
-require('../../js/dropdown.js')
-require('../../js/modal.js')
-require('../../js/tooltip.js')
-require('../../js/popover.js')
-require('../../js/scrollspy.js')
-require('../../js/tab.js')
-require('../../js/affix.js')
\ No newline at end of file
diff --git a/gui/slick/js/script.js b/gui/slick/js/script.js
index a3882d44b2d15846bd2bbf5687e2ab50f6df1651..d1be809feb07db04d984d66ff96e20fa03993f38 100644
--- a/gui/slick/js/script.js
+++ b/gui/slick/js/script.js
@@ -63,7 +63,7 @@ function resetFilters(text) {
 
 function initFancybox() {
     if ($("a[rel=dialog]").length > 0) {
-        $.getScript(sbRoot + '/js/fancybox/jquery.fancybox.js', function () {
+        $.getScript(sbRoot + '/js/fancybox/jquery.fancybox.pack.js', function () {
             $("head").append("<link rel='stylesheet' href='" + sbRoot + "/js/fancybox/jquery.fancybox.css'>");
             $("a[rel=dialog]").fancybox({
                 type: "image",
@@ -99,7 +99,7 @@ function initTabs() {
             }
 
             //Dont use the builtin fx effects. This will fade in/out both tabs, we dont want that
-            //Fadein the new tab yourself            
+            //Fadein the new tab yourself
             $(ui.newPanel).hide().fadeIn(0);
 
             if (lastOpenedPanel) {
diff --git a/lib/guessit/__init__.py b/lib/guessit/__init__.py
index c89c19c07f95b4a992d16917cb3e99933eea934f..269566e75c36369d033aba53e792b687899e51eb 100644
--- a/lib/guessit/__init__.py
+++ b/lib/guessit/__init__.py
@@ -93,6 +93,10 @@ from copy import deepcopy
 import babelfish
 import os.path
 import logging
+from guessit.options import get_opts
+import shlex
+# Needed for guessit.plugins.transformers.reload() to be called.
+from guessit.plugins import transformers
 
 log = logging.getLogger(__name__)
 
@@ -271,8 +275,16 @@ def guess_file_info(filename, info=None, options=None, **kwargs):
     """
     info = info or 'filename'
     options = options or {}
+
+    if isinstance(options, base_text_type):
+        args = shlex.split(options)
+        options = vars(get_opts().parse_args(args))
     if default_options:
-        merged_options = deepcopy(default_options)
+        if isinstance(default_options, base_text_type):
+            default_args = shlex.split(default_options)
+            merged_options = vars(get_opts().parse_args(default_args))
+        else:
+            merged_options = deepcopy(default_options)
         merged_options.update(options)
         options = merged_options
 
diff --git a/lib/guessit/__main__.py b/lib/guessit/__main__.py
index a44b7d5c8ed1c9a7ab2bedf79f3486018bdcc15b..a8ff99746f847f8878a1a5afa71ece9c485dea7a 100644
--- a/lib/guessit/__main__.py
+++ b/lib/guessit/__main__.py
@@ -181,16 +181,16 @@ def submit_bug(filename, options):
         opts = dict((k, v) for k, v in options.__dict__.items()
                     if v and k != 'submit_bug')
 
-        r = requests.post('http://localhost:5000/bugs', {'filename': filename,
+        r = requests.post('http://guessit.io/bugs', {'filename': filename,
                                                          'version': __version__,
                                                          'options': str(opts)})
         if r.status_code == 200:
             print('Successfully submitted file: %s' % r.text)
         else:
-            print('Could not submit bug at the moment, please try again later.')
+            print('Could not submit bug at the moment, please try again later: %s %s' % (r.status_code, r.reason))
 
     except RequestException as e:
-        print('Could not submit bug at the moment, please try again later.')
+        print('Could not submit bug at the moment, please try again later: %s' % e)
 
 
 def main(args=None, setup_logging=True):
diff --git a/lib/guessit/__version__.py b/lib/guessit/__version__.py
index b4dd8f8ec51d5d0c9b82fb2b1b3abbc07dc60317..e24d8dea4851f5714d50f0c877d4b99f33108f6c 100644
--- a/lib/guessit/__version__.py
+++ b/lib/guessit/__version__.py
@@ -17,4 +17,4 @@
 # You should have received a copy of the Lesser GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
-__version__ = '0.10.4.dev0'
+__version__ = '0.11.0.dev0'
diff --git a/lib/guessit/containers.py b/lib/guessit/containers.py
index ab97e6f1600e6df71aecce67eb6b9a2bc6793fea..30d7871fa15cfa888048bdb1f5415955c3df7abb 100644
--- a/lib/guessit/containers.py
+++ b/lib/guessit/containers.py
@@ -153,12 +153,16 @@ class DefaultValidator(object):
     def validate(self, prop, string, node, match, entry_start, entry_end):
         span = _get_span(prop, match)
         span = _trim_span(span, string[span[0]:span[1]])
+        return DefaultValidator.validate_string(string, span, entry_start, entry_end)
+
+    @staticmethod
+    def validate_string(string, span, entry_start=None, entry_end=None):
         start, end = span
 
         sep_start = start <= 0 or string[start - 1] in sep
         sep_end = end >= len(string) or string[end] in sep
-        start_by_other = start in entry_end
-        end_by_other = end in entry_start
+        start_by_other = start in entry_end if entry_end else False
+        end_by_other = end in entry_start if entry_start else False
         if (sep_start or start_by_other) and (sep_end or end_by_other):
             return True
         return False
@@ -235,6 +239,13 @@ class NeighborValidator(DefaultValidator):
 
         return False
 
+class FullMatchValidator(DefaultValidator):
+    """Make sure the node match fully"""
+    def validate(self, prop, string, node, match, entry_start, entry_end):
+        at_start, at_end = _get_positions(prop, string, node, match, entry_start, entry_end)
+
+        return at_start and at_end
+
 
 class LeavesValidator(DefaultValidator):
     def __init__(self, lambdas=None, previous_lambdas=None, next_lambdas=None, both_side=False, default_=True):
@@ -290,7 +301,7 @@ class LeavesValidator(DefaultValidator):
 
 class _Property:
     """Represents a property configuration."""
-    def __init__(self, keys=None, pattern=None, canonical_form=None, canonical_from_pattern=True, confidence=1.0, enhance=True, global_span=False, validator=DefaultValidator(), formatter=None, disabler=None, confidence_lambda=None):
+    def __init__(self, keys=None, pattern=None, canonical_form=None, canonical_from_pattern=True, confidence=1.0, enhance=True, global_span=False, validator=DefaultValidator(), formatter=None, disabler=None, confidence_lambda=None, remove_duplicates=False):
         """
         :param keys: Keys of the property (format, screenSize, ...)
         :type keys: string
@@ -309,6 +320,8 @@ class _Property:
         :type validator: :class:`DefaultValidator`
         :param formatter: Formater to use
         :type formatter: function
+        :param remove_duplicates: Keep only the last match if multiple values are found
+        :type remove_duplicates: bool
         """
         if isinstance(keys, list):
             self.keys = keys
@@ -335,6 +348,7 @@ class _Property:
         self.validator = validator
         self.formatter = formatter
         self.disabler = disabler
+        self.remove_duplicates = remove_duplicates
 
     def disabled(self, options):
         if self.disabler:
@@ -479,7 +493,8 @@ class PropertiesContainer(object):
                         entries.append((prop, match))
                 else:
                     matches = list(prop.compiled.finditer(string))
-                    duplicate_matches[prop] = matches
+                    if prop.remove_duplicates:
+                        duplicate_matches[prop] = matches
                     for match in matches:
                         entries.append((prop, match))
 
@@ -490,6 +505,9 @@ class PropertiesContainer(object):
                 if computed_confidence is not None:
                     prop.confidence = computed_confidence
 
+        entries.sort(key=lambda entry: -entry[0].confidence)
+        # sort entries, from most confident to less confident
+
         if validate:
             # compute entries start and ends
             for prop, match in entries:
@@ -531,7 +549,7 @@ class PropertiesContainer(object):
                         del entry_end[end]
 
         for prop, prop_duplicate_matches in duplicate_matches.items():
-            # Keeping the last valid match.
+            # Keeping the last valid match only.
             # Needed for the.100.109.hdtv-lol.mp4
             for duplicate_match in prop_duplicate_matches[:-1]:
                 entries.remove((prop, duplicate_match))
@@ -561,8 +579,8 @@ class PropertiesContainer(object):
                         for prop, match in key_entries:
                             start, end = _get_span(prop, match)
                             if not best_prop or \
-                            best_prop.confidence < best_prop.confidence or \
-                            best_prop.confidence == best_prop.confidence and \
+                            best_prop.confidence < prop.confidence or \
+                            best_prop.confidence == prop.confidence and \
                             best_match.span()[1] - best_match.span()[0] < match.span()[1] - match.span()[0]:
                                 best_prop, best_match = prop, match
 
diff --git a/lib/guessit/guess.py b/lib/guessit/guess.py
index c8e4720f33a88ed48bdc2391b9b8e007895ce31b..133c1769d3954a28c2e980cf0a4a2839fb0a0ed4 100644
--- a/lib/guessit/guess.py
+++ b/lib/guessit/guess.py
@@ -503,7 +503,7 @@ def smart_merge(guesses):
 
     # 1- try to merge similar information together and give it a higher
     #    confidence
-    for int_part in ('year', 'season', 'episodeNumber'):
+    for int_part in ('year', 'season'):
         merge_similar_guesses(guesses, int_part, choose_int)
 
     for string_part in ('title', 'series', 'container', 'format',
diff --git a/lib/guessit/language.py b/lib/guessit/language.py
index 9654b624acb1fbe83fe549833a5de46f054b3802..0d7b6bc4cd130beab76d76615bd8121bd6107bad 100644
--- a/lib/guessit/language.py
+++ b/lib/guessit/language.py
@@ -186,7 +186,7 @@ LNG_COMMON_WORDS = frozenset([
     'la', 'el', 'del', 'por', 'mar', 'al',
     # other
     'ind', 'arw', 'ts', 'ii', 'bin', 'chan', 'ss', 'san', 'oss', 'iii',
-    'vi', 'ben', 'da', 'lt', 'ch', 'sr',
+    'vi', 'ben', 'da', 'lt', 'ch', 'sr', 'ps', 'cx',
     # new from babelfish
     'mkv', 'avi', 'dmd', 'the', 'dis', 'cut', 'stv', 'des', 'dia', 'and',
     'cab', 'sub', 'mia', 'rim', 'las', 'une', 'par', 'srt', 'ano', 'toy',
@@ -207,7 +207,7 @@ LNG_COMMON_WORDS_STRICT = frozenset(['brazil'])
 
 
 subtitle_prefixes = ['sub', 'subs', 'st', 'vost', 'subforced', 'fansub', 'hardsub']
-subtitle_suffixes = ['subforced', 'fansub', 'hardsub']
+subtitle_suffixes = ['subforced', 'fansub', 'hardsub', 'sub', 'subs']
 lang_prefixes = ['true']
 
 
diff --git a/lib/guessit/matcher.py b/lib/guessit/matcher.py
index ba233d6c3209cc72c7f7041f582a6c7d0477f222..e1ed26f1b2fec36ea1c1653a7b3dc3d3027d3a4e 100644
--- a/lib/guessit/matcher.py
+++ b/lib/guessit/matcher.py
@@ -269,35 +269,29 @@ class GuessFinder(object):
                         self.process_node(node, partial_span=relative_span)
                     return
 
-
         # restore sentinels compensation
         if isinstance(result, Guess):
             guess = result
         else:
-            guess = Guess(result, confidence=self.confidence, input=string, span=span)
+            no_sentinel_string =string[1:-1]
+            guess = Guess(result, confidence=self.confidence, input=no_sentinel_string, span=span)
 
         if not iterative:
             found_guess(node, guess, logger=self.logger)
         else:
             absolute_span = (span[0] + node.offset, span[1] + node.offset)
             node.partition(span)
+            found_child = None
 
-            if node.is_leaf():
-                # FIXME: this seems like it is dead code...
-                found_guess(node, guess, logger=self.logger)
+            for child in node.children:
+                if child.span == absolute_span:
+                    # if we have a match on one of our children, mark it as such...
+                    found_guess(child, guess, logger=self.logger)
+                    found_child = child
+                    break
 
-            else:
-                found_child = None
-
-                for child in node.children:
-                    if child.span == absolute_span:
-                        # if we have a match on one of our children, mark it as such...
-                        found_guess(child, guess, logger=self.logger)
-                        found_child = child
-                        break
-
-                # ...and only then recurse on the other children
-                for child in node.children:
-                    if child is not found_child:
-                        self.process_node(child)
+            # ...and only then recurse on the other children
+            for child in node.children:
+                if child is not found_child:
+                    self.process_node(child)
 
diff --git a/lib/guessit/matchtree.py b/lib/guessit/matchtree.py
index 4b6d85e5c3d7f12579c9dbe6e50d2449263985f3..dc4304ddebcbff186b4833f5f05d7a0432c0d723 100644
--- a/lib/guessit/matchtree.py
+++ b/lib/guessit/matchtree.py
@@ -30,7 +30,6 @@ from guessit.patterns import group_delimiters
 from guessit.guess import (smart_merge,
                            Guess)
 
-
 log = logging.getLogger(__name__)
 
 
@@ -75,7 +74,7 @@ class BaseMatchTree(UnicodeMixin):
     (as shown by the ``f``'s on the last-but-one line).
     """
 
-    def __init__(self, string='', span=None, parent=None, clean_function=None):
+    def __init__(self, string='', span=None, parent=None, clean_function=None, category=None):
         self.string = string
         self.span = span or (0, len(string))
         self.parent = parent
@@ -83,6 +82,7 @@ class BaseMatchTree(UnicodeMixin):
         self.guess = Guess()
         self._clean_value = None
         self._clean_function = clean_function or clean_default
+        self.category = category
 
     @property
     def value(self):
@@ -116,6 +116,32 @@ class BaseMatchTree(UnicodeMixin):
 
         return result
 
+    @property
+    def raw(self):
+        result = {}
+        for guess in self.guesses:
+            for k in guess.keys():
+                result[k] = guess.raw(k)
+        return result
+
+    @property
+    def guesses(self):
+        """
+        List all guesses, including children ones.
+
+        :return: list of guesses objects
+        """
+
+        result = []
+
+        if self.guess:
+            result.append(self.guess)
+
+        for c in self.children:
+            result.extend(c.guesses)
+
+        return result
+
     @property
     def root(self):
         """Return the root node of the tree."""
@@ -124,6 +150,23 @@ class BaseMatchTree(UnicodeMixin):
 
         return self.parent.root
 
+    @property
+    def ancestors(self):
+        """
+        Retrieve all ancestors, from this node to root node.
+
+        :return: a list of MatchTree objects
+        """
+        ret = [self]
+
+        if not self.parent:
+            return ret
+
+        parent_ancestors = self.parent.ancestors
+        ret.extend(parent_ancestors)
+
+        return ret
+
     @property
     def depth(self):
         """Return the depth of this node."""
@@ -136,16 +179,25 @@ class BaseMatchTree(UnicodeMixin):
         """Return whether this node is a leaf or not."""
         return self.children == []
 
-    def add_child(self, span):
-        """Add a new child node to this node with the given span."""
-        child = MatchTree(self.string, span=span, parent=self, clean_function=self._clean_function)
+    def add_child(self, span, category=None):
+        """Add a new child node to this node with the given span.
+
+        :param span: span of the new MatchTree
+        :param category: category of the new MatchTree
+        :return: A new MatchTree instance having self as a parent
+        """
+        child = MatchTree(self.string, span=span, parent=self, clean_function=self._clean_function, category=category)
         self.children.append(child)
         return child
 
     def get_partition_spans(self, indices):
         """Return the list of absolute spans for the regions of the original
         string defined by splitting this node at the given indices (relative
-        to this node)"""
+        to this node)
+
+        :param indices: indices of the partition spans
+        :return: a list of tuple of the spans
+        """
         indices = sorted(indices)
         if indices[-1] > len(self.value):
             log.error('Filename: {}'.format(self.string))
@@ -163,20 +215,29 @@ class BaseMatchTree(UnicodeMixin):
 
         return spans
 
-    def partition(self, indices):
+    def partition(self, indices, category=None):
         """Partition this node by splitting it at the given indices,
-        relative to this node."""
+        relative to this node.
+
+        :param indices: indices of the partition spans
+        :param category: category of the new MatchTree
+        :return: a list of created MatchTree instances
+        """
+        created = []
         for partition_span in self.get_partition_spans(indices):
-            self.add_child(span=partition_span)
+            created.append(self.add_child(span=partition_span, category=category))
+        return created
 
-    def split_on_components(self, components):
+    def split_on_components(self, components, category=None):
         offset = 0
+        created = []
         for c in components:
             start = self.value.find(c, offset)
             end = start + len(c)
-            self.add_child(span=(self.offset + start,
-                                 self.offset + end))
+            created.append(self.add_child(span=(self.offset + start,
+                                       self.offset + end), category=category))
             offset = end
+        return created
 
     def nodes_at_depth(self, depth):
         """Return all the nodes at a given depth in the tree"""
@@ -213,7 +274,7 @@ class BaseMatchTree(UnicodeMixin):
             raise ValueError('Non-existent node index: %s' % (idx,))
 
     def nodes(self):
-        """Return all the nodes and subnodes in this tree."""
+        """Return a generator of all nodes and subnodes in this tree."""
         yield self
         for child in self.children:
             for node in child.nodes():
@@ -225,7 +286,6 @@ class BaseMatchTree(UnicodeMixin):
             yield self
         else:
             for child in self.children:
-                # pylint: disable=W0212
                 for leaf in child.leaves():
                     yield leaf
 
diff --git a/lib/guessit/patterns/list.py b/lib/guessit/patterns/list.py
new file mode 100644
index 0000000000000000000000000000000000000000..3ca9a50fb8427cc55da2ebfdf500199a8b84e413
--- /dev/null
+++ b/lib/guessit/patterns/list.py
@@ -0,0 +1,80 @@
+import re
+from guessit.patterns import sep, build_or_pattern
+from guessit.patterns.numeral import parse_numeral
+
+range_separators = ['-', 'to', 'a']
+discrete_separators = ['&', 'and', 'et']
+excluded_separators = ['.']  # Dot cannot serve as a discrete_separator
+
+discrete_sep = sep
+for range_separator in range_separators:
+    discrete_sep = discrete_sep.replace(range_separator, '')
+for excluded_separator in excluded_separators:
+    discrete_sep = discrete_sep.replace(excluded_separator, '')
+discrete_separators.append(discrete_sep)
+all_separators = list(range_separators)
+all_separators.extend(discrete_separators)
+
+range_separators_re = re.compile(build_or_pattern(range_separators), re.IGNORECASE)
+discrete_separators_re = re.compile(build_or_pattern(discrete_separators), re.IGNORECASE)
+all_separators_re = re.compile(build_or_pattern(all_separators), re.IGNORECASE)
+
+
+def list_parser(value, property_list_name, discrete_separators_re=discrete_separators_re, range_separators_re=range_separators_re, allow_discrete=False, fill_gaps=False):
+    discrete_elements = filter(lambda x: x != '', discrete_separators_re.split(value))
+    discrete_elements = [x.strip() for x in discrete_elements]
+
+    proper_discrete_elements = []
+    i = 0
+    while i < len(discrete_elements):
+        if i < len(discrete_elements) - 2 and range_separators_re.match(discrete_elements[i+1]):
+            proper_discrete_elements.append(discrete_elements[i] + discrete_elements[i+1] + discrete_elements[i+2])
+            i += 3
+        else:
+            match = range_separators_re.search(discrete_elements[i])
+            if match and match.start() == 0:
+                proper_discrete_elements[i - 1] += discrete_elements[i]
+            elif match and match.end() == len(discrete_elements[i]):
+                proper_discrete_elements.append(discrete_elements[i] + discrete_elements[i + 1])
+            else:
+                proper_discrete_elements.append(discrete_elements[i])
+            i += 1
+
+    discrete_elements = proper_discrete_elements
+
+    ret = []
+
+    for discrete_element in discrete_elements:
+        range_values = filter(lambda x: x != '', range_separators_re.split(discrete_element))
+        range_values = [x.strip() for x in range_values]
+        if len(range_values) > 1:
+            for x in range(0, len(range_values) - 1):
+                start_range_ep = parse_numeral(range_values[x])
+                end_range_ep = parse_numeral(range_values[x+1])
+                for range_ep in range(start_range_ep, end_range_ep + 1):
+                    if range_ep not in ret:
+                        ret.append(range_ep)
+        else:
+            discrete_value = parse_numeral(discrete_element)
+            if discrete_value not in ret:
+                ret.append(discrete_value)
+
+    if len(ret) > 1:
+        if not allow_discrete:
+            valid_ret = list()
+            # replace discrete elements by ranges
+            valid_ret.append(ret[0])
+            for i in range(0, len(ret) - 1):
+                previous = valid_ret[len(valid_ret) - 1]
+                if ret[i+1] < previous:
+                    pass
+                else:
+                    valid_ret.append(ret[i+1])
+            ret = valid_ret
+        if fill_gaps:
+            ret = list(range(min(ret), max(ret) + 1))
+        if len(ret) > 1:
+            return {None: ret[0], property_list_name: ret}
+    if len(ret) > 0:
+        return ret[0]
+    return None
\ No newline at end of file
diff --git a/lib/guessit/test/episodes.yaml b/lib/guessit/test/episodes.yaml
index 2542a7dbefdad51d68343479abf46ca85f3bd33f..55165ba3ceaa6e95e9671c2575cda3b4cd0acc26 100644
--- a/lib/guessit/test/episodes.yaml
+++ b/lib/guessit/test/episodes.yaml
@@ -629,7 +629,7 @@
   format: HDTV
   releaseGroup: lol
 
-? 03-Criminal.Minds.5x03.Reckoner.ENG.-.sub.FR.HDTV.XviD-STi.[tvu.org.ru].avi
+? Criminal.Minds.5x03.Reckoner.ENG.-.sub.FR.HDTV.XviD-STi.[tvu.org.ru].avi
 : series: Criminal Minds
   language: English
   subtitleLanguage: French
@@ -1187,3 +1187,620 @@
   episodeNumber: 6
   title: I'm Sorry, Who's Yosi?
 
+? 24.S05E07.FRENCH.DVDRip.XviD-FiXi0N.avi
+: episodeNumber: 7
+  format: DVD
+  language: fr
+  season: 5
+  series: '24'
+  videoCodec: XviD
+  releaseGroup: FiXi0N
+
+? 12.Monkeys.S01E12.FRENCH.BDRip.x264-VENUE.mkv
+: episodeNumber: 12
+  format: BluRay
+  language: fr
+  releaseGroup: VENUE
+  season: 1
+  series: 12 Monkeys
+  videoCodec: h264
+
+? The.Daily.Show.2015.07.01.Kirsten.Gillibrand.Extended.720p.CC.WEBRip.AAC2.0.x264-BTW.mkv
+: audioChannels: '2.0'
+  audioCodec: AAC
+  date: 2015-07-01
+  format: WEBRip
+  other: CC
+  releaseGroup: BTW
+  screenSize: 720p
+  series: The Daily Show
+  title: Kirsten Gillibrand Extended
+  videoCodec: h264
+
+? The.Daily.Show.2015.07.02.Sarah.Vowell.CC.WEBRip.AAC2.0.x264-BTW.mkv
+: audioChannels: '2.0'
+  audioCodec: AAC
+  date: 2015-07-02
+  format: WEBRip
+  other: CC
+  releaseGroup: BTW
+  series: The Daily Show
+  title: Sarah Vowell
+  videoCodec: h264
+
+? 90.Day.Fiance.S02E07.I.Have.To.Tell.You.Something.720p.HDTV.x264-W4F
+: options: -n
+  episodeNumber: 7
+  format: HDTV
+  screenSize: 720p
+  season: 2
+  series: 90 Day Fiance
+  title: I Have To Tell You Something
+
+? Doctor.Who.2005.S04E06.FRENCH.LD.DVDRip.XviD-TRACKS.avi
+: episodeNumber: 6
+  format: DVD
+  language: fr
+  releaseGroup: TRACKS
+  season: 4
+  series: Doctor Who
+  other: LD
+  videoCodec: XviD
+  year: 2005
+
+? Astro.Le.Petit.Robot.S01E01+02.FRENCH.DVDRiP.X264.INT-BOOLZ.mkv
+: episodeNumber: 1
+  episodeList: [1, 2]
+  format: DVD
+  language: fr
+  releaseGroup: INT-BOOLZ
+  season: 1
+  series: Astro Le Petit Robot
+  videoCodec: h264
+
+? Annika.Bengtzon.2012.E01.Le.Testament.De.Nobel.FRENCH.DVDRiP.XViD-STVFRV.avi
+: episodeNumber: 1
+  format: DVD
+  language: fr
+  releaseGroup: STVFRV
+  series: Annika Bengtzon
+  title: Le Testament De Nobel
+  videoCodec: XviD
+  year: 2012
+
+? Dead.Set.02.FRENCH.LD.DVDRip.XviD-EPZ.avi
+: episodeNumber: 2
+  format: DVD
+  language: fr
+  other: LD
+  releaseGroup: EPZ
+  series: Dead Set
+  videoCodec: XviD
+
+? Phineas and Ferb S01E00 & S01E01 & S01E02
+: options: -n
+  episodeList:
+  - 0
+  - 1
+  - 2
+  episodeNumber: 0
+  season: 1
+  series: Phineas and Ferb
+
+? Show.Name.S01E02.S01E03.HDTV.XViD.Etc-Group
+: options: -n
+  episodeList:
+  - 2
+  - 3
+  episodeNumber: 2
+  format: HDTV
+  releaseGroup: Etc-Group
+  season: 1
+  series: Show Name
+  videoCodec: XviD
+
+? Show Name - S01E02 - S01E03 - S01E04 - Ep Name
+: options: -n
+  episodeList:
+  - 2
+  - 3
+  - 4
+  episodeNumber: 2
+  season: 1
+  series: Show Name
+  title: Ep Name
+
+? Show.Name.1x02.1x03.HDTV.XViD.Etc-Group
+: options: -n
+  episodeList:
+  - 2
+  - 3
+  episodeNumber: 2
+  format: HDTV
+  releaseGroup: Etc-Group
+  season: 1
+  series: Show Name
+  videoCodec: XviD
+
+? Show Name - 1x02 - 1x03 - 1x04 - Ep Name
+: options: -n
+  episodeList:
+  - 2
+  - 3
+  - 4
+  episodeNumber: 2
+  season: 1
+  series: Show Name
+  title: Ep Name
+
+? Show.Name.S01E02.HDTV.XViD.Etc-Group
+: options: -n
+  episodeNumber: 2
+  format: HDTV
+  releaseGroup: Etc-Group
+  season: 1
+  series: Show Name
+  videoCodec: XviD
+
+? Show Name - S01E02 - My Ep Name
+: options: -n
+  episodeNumber: 2
+  season: 1
+  series: Show Name
+  title: My Ep Name
+
+? Show Name - S01.E03 - My Ep Name
+: options: -n
+  episodeNumber: 3
+  season: 1
+  series: Show Name
+  title: My Ep Name
+
+? Show.Name.S01E02E03.HDTV.XViD.Etc-Group
+: options: -n
+  episodeList:
+  - 2
+  - 3
+  episodeNumber: 2
+  format: HDTV
+  releaseGroup: Etc-Group
+  season: 1
+  series: Show Name
+  videoCodec: XviD
+
+? Show Name - S01E02-03 - My Ep Name
+: options: -n
+  episodeList:
+  - 2
+  - 3
+  episodeNumber: 2
+  season: 1
+  series: Show Name
+  title: My Ep Name
+
+? Show.Name.S01.E02.E03
+: options: -n
+  episodeList:
+  - 2
+  - 3
+  episodeNumber: 2
+  season: 1
+  series: Show Name
+
+? Show_Name.1x02.HDTV_XViD_Etc-Group
+: options: -n
+  episodeNumber: 2
+  format: HDTV
+  releaseGroup: Etc-Group
+  season: 1
+  series: Show Name
+  videoCodec: XviD
+
+? Show Name - 1x02 - My Ep Name
+: options: -n
+  episodeNumber: 2
+  season: 1
+  series: Show Name
+  title: My Ep Name
+
+? Show_Name.1x02x03x04.HDTV_XViD_Etc-Group
+: options: -n
+  episodeList:
+  - 2
+  - 3
+  - 4
+  episodeNumber: 2
+  format: HDTV
+  releaseGroup: Etc-Group
+  season: 1
+  series: Show Name
+  videoCodec: XviD
+
+? Show Name - 1x02-03-04 - My Ep Name
+: options: -n
+  episodeList:
+  - 2
+  - 3
+  - 4
+  episodeNumber: 2
+  season: 1
+  series: Show Name
+  title: My Ep Name
+
+? Show.Name.100.Event.2010.11.23.HDTV.XViD.Etc-Group
+: options: -n
+  date: 2010-11-23
+  episodeNumber: 100
+  format: HDTV
+  releaseGroup: Etc-Group
+  series: Show Name
+  title: Event
+  videoCodec: XviD
+
+? Show.Name.2010.11.23.HDTV.XViD.Etc-Group
+: options: -n
+  date: 2010-11-23
+  format: HDTV
+  releaseGroup: Etc-Group
+  series: Show Name
+
+? Show Name - 2010-11-23 - Ep Name
+: options: -n
+  date: 2010-11-23
+  series: Show Name
+  title: Ep Name
+
+? Show Name Season 1 Episode 2 Ep Name
+: options: -n
+  episodeNumber: 2
+  season: 1
+  series: Show Name
+  title: Ep Name
+
+? Show.Name.S01.HDTV.XViD.Etc-Group
+: options: -n
+  format: HDTV
+  releaseGroup: Etc-Group
+  season: 1
+  series: Show Name
+  videoCodec: XviD
+
+? Show.Name.E02-03
+: options: -n
+  episodeNumber: 2
+  episodeList:
+  - 2
+  - 3
+  series: Show Name
+
+? Show.Name.E02.2010
+: options: -n
+  episodeNumber: 2
+  year: 2010
+  series: Show Name
+
+? Show.Name.E23.Test
+: options: -n
+  episodeNumber: 23
+  series: Show Name
+  title: Test
+
+? Show.Name.Part.3.HDTV.XViD.Etc-Group
+: options: -n -t episode
+  part: 3
+  series: Show Name
+  format: HDTV
+  videoCodec: XviD
+  releaseGroup: Etc-Group
+
+? Show.Name.Part.1.and.Part.2.Blah-Group
+: options: -n -t episode
+  part: 1
+  partList:
+  - 1
+  - 2
+  series: Show Name
+
+? Show Name - 01 - Ep Name
+: options: -n
+  episodeNumber: 1
+  series: Show Name
+  title: Ep Name
+
+? 01 - Ep Name
+: options: -n
+  episodeNumber: 1
+  series: Ep Name
+
+? Show.Name.102.HDTV.XViD.Etc-Group
+: options: -n
+  episodeNumber: 2
+  format: HDTV
+  releaseGroup: Etc-Group
+  season: 1
+  series: Show Name
+  videoCodec: XviD
+
+? '[HorribleSubs] Maria the Virgin Witch - 01 [720p].mkv'
+: episodeNumber: 1
+  releaseGroup: HorribleSubs
+  screenSize: 720p
+  series: Maria the Virgin Witch
+
+? '[ISLAND]One_Piece_679_[VOSTFR]_[V1]_[8bit]_[720p]_[EB7838FC].mp4'
+: options: -E
+  crc32: EB7838FC
+  episodeNumber: 679
+  releaseGroup: ISLAND
+  screenSize: 720p
+  series: One Piece
+  subtitleLanguage: fr
+  videoProfile: 8bit
+  version: 1
+
+
+? '[ISLAND]One_Piece_679_[VOSTFR]_[8bit]_[720p]_[EB7838FC].mp4'
+: options: -E
+  crc32: EB7838FC
+  episodeNumber: 679
+  releaseGroup: ISLAND
+  screenSize: 720p
+  series: One Piece
+  subtitleLanguage: fr
+  videoProfile: 8bit
+
+? '[Kaerizaki-Fansub]_One_Piece_679_[VOSTFR][HD_1280x720].mp4'
+: options: -E
+  episodeNumber: 679
+  other: HD
+  releaseGroup: Kaerizaki-Fansub
+  screenSize: 720p
+  series: One Piece
+  subtitleLanguage: fr
+
+? '[Kaerizaki-Fansub]_One_Piece_679_[VOSTFR][FANSUB][HD_1280x720].mp4'
+: options: -E
+  episodeNumber: 679
+  other:
+  - Fansub
+  - HD
+  releaseGroup: Kaerizaki-Fansub
+  screenSize: 720p
+  series: One Piece
+  subtitleLanguage: fr
+
+? '[Kaerizaki-Fansub]_One_Piece_681_[VOSTFR][HD_1280x720]_V2.mp4'
+: options: -E
+  episodeNumber: 681
+  other: HD
+  releaseGroup: Kaerizaki-Fansub
+  screenSize: 720p
+  series: One Piece
+  subtitleLanguage: fr
+  version: 2
+
+? '[Kaerizaki-Fansub] High School DxD New 04 VOSTFR HD (1280x720) V2.mp4'
+: options: -E
+  episodeNumber: 4
+  other: HD
+  releaseGroup: Kaerizaki-Fansub
+  screenSize: 720p
+  series: High School DxD New
+  subtitleLanguage: fr
+  version: 2
+
+? '[Kaerizaki-Fansub] One Piece 603 VOSTFR PS VITA (960x544) V2.mp4'
+: options: -E
+  episodeNumber: 603
+  releaseGroup: Kaerizaki-Fansub
+  screenSize: 960x544
+  series: One Piece
+  subtitleLanguage: fr
+  version: 2
+
+? '[Group Name] Show Name.13'
+: options: -n
+  episodeNumber: 13
+  releaseGroup: Group Name
+  series: Show Name
+
+? '[Group Name] Show Name - 13'
+: options: -n
+  episodeNumber: 13
+  releaseGroup: Group Name
+  series: Show Name
+
+? '[Group Name] Show Name 13'
+: options: -n
+  episodeNumber: 13
+  releaseGroup: Group Name
+  series: Show Name
+
+# [Group Name] Show Name.13-14
+# [Group Name] Show Name - 13-14
+# Show Name 13-14
+
+? '[Stratos-Subs]_Infinite_Stratos_-_12_(1280x720_H.264_AAC)_[379759DB]'
+: options: -n
+  audioCodec: AAC
+  crc32: 379759DB
+  episodeNumber: 12
+  releaseGroup: Stratos-Subs
+  screenSize: 720p
+  series: Infinite Stratos
+  videoCodec: h264
+
+# [ShinBunBu-Subs] Bleach - 02-03 (CX 1280x720 x264 AAC)
+
+? '[SGKK] Bleach 312v1 [720p/MKV]'
+: options: -n
+  episodeNumber: 312
+  releaseGroup: SGKK
+  screenSize: 720p
+  series: Bleach
+  version: 1
+
+? '[Ayako]_Infinite_Stratos_-_IS_-_07_[H264][720p][EB7838FC]'
+: options: -n
+  crc32: EB7838FC
+  episodeNumber: 7
+  releaseGroup: Ayako
+  screenSize: 720p
+  series: Infinite Stratos
+  videoCodec: h264
+
+? '[Ayako] Infinite Stratos - IS - 07v2 [H264][720p][44419534]'
+: options: -n
+  crc32: '44419534'
+  episodeNumber: 7
+  releaseGroup: Ayako
+  screenSize: 720p
+  series: Infinite Stratos
+  videoCodec: h264
+  version: 2
+
+? '[Ayako-Shikkaku] Oniichan no Koto Nanka Zenzen Suki Janain Dakara ne - 10 [LQ][h264][720p] [8853B21C]'
+: options: -n
+  crc32: 8853B21C
+  episodeNumber: 10
+  releaseGroup: Ayako-Shikkaku
+  screenSize: 720p
+  series: Oniichan no Koto Nanka Zenzen Suki Janain Dakara ne
+  videoCodec: h264
+
+# Add support for absolute episodes
+? Bleach - s16e03-04 - 313-314
+: options: -n
+  episodeList:
+  - 3
+  - 4
+  episodeNumber: 3
+  season: 16
+  series: Bleach
+
+? Bleach.s16e03-04.313-314
+: options: -n
+  episodeList:
+  - 3
+  - 4
+  episodeNumber: 3
+  season: 16
+  series: Bleach
+
+? Bleach.s16e03-04.313-314
+: options: -n
+  episodeList:
+  - 3
+  - 4
+  episodeNumber: 3
+  season: 16
+  series: Bleach
+
+? Bleach - 313-314
+: options: -En
+  episodeList:
+  - 313
+  - 314
+  episodeNumber: 313
+  series: Bleach
+
+? Bleach - s16e03-04 - 313-314
+: options: -n
+  episodeList:
+  - 3
+  - 4
+  episodeNumber: 3
+  season: 16
+  series: Bleach
+
+? Bleach.s16e03-04.313-314
+: options: -n
+  episodeList:
+  - 3
+  - 4
+  episodeNumber: 3
+  season: 16
+  series: Bleach
+
+
+? Bleach s16e03e04 313-314
+: options: -n
+  episodeList:
+  - 3
+  - 4
+  episodeNumber: 3
+  season: 16
+  series: Bleach
+
+? '[ShinBunBu-Subs] Bleach - 02-03 (CX 1280x720 x264 AAC)'
+: audioCodec: AAC
+  episodeList:
+  - 2
+  - 3
+  episodeNumber: 2
+  releaseGroup: ShinBunBu-Subs
+  screenSize: 720p
+  series: Bleach
+  videoCodec: h264
+
+? 003. Show Name - Ep Name.ext
+: episodeNumber: 3
+  series: Show Name
+  title: Ep Name
+
+? 003-004. Show Name - Ep Name.ext
+: episodeList:
+  - 3
+  - 4
+  episodeNumber: 3
+  series: Show Name
+  title: Ep Name
+
+? One Piece - 102
+: options: -n -t episode
+  episodeNumber: 2
+  season: 1
+  series: One Piece
+
+? "[ACX]_Wolf's_Spirit_001.mkv"
+: episodeNumber: 1
+  releaseGroup: ACX
+  series: "Wolf's Spirit"
+
+? Project.Runway.S14E00.and.S14E01.(Eng.Subs).SDTV.x264-[2Maverick].mp4
+: episodeList:
+  - 0
+  - 1
+  episodeNumber: 0
+  format: TV
+  subtitleLanguage: en
+  releaseGroup: 2Maverick
+  season: 14
+  series: Project Runway
+  videoCodec: h264
+
+? '[Hatsuyuki-Kaitou]_Fairy_Tail_2_-_16-20_[720p][10bit].torrent'
+: episodeList:
+  - 16
+  - 17
+  - 18
+  - 19
+  - 20
+  episodeNumber: 16
+  releaseGroup: Hatsuyuki-Kaitou
+  screenSize: 720p
+  series: Fairy Tail 2
+  videoProfile: 10bit
+
+? '[Hatsuyuki-Kaitou]_Fairy_Tail_2_-_16-20_(191-195)_[720p][10bit].torrent'
+: options: -E
+  episodeList:
+  - 16
+  - 17
+  - 18
+  - 19
+  - 20
+  episodeNumber: 16
+  releaseGroup: Hatsuyuki-Kaitou
+  screenSize: 720p
+  series: Fairy Tail 2
\ No newline at end of file
diff --git a/lib/guessit/test/guessittest.py b/lib/guessit/test/guessittest.py
index 5fafb656717033fc4111bef6794178bdda896db3..c08d19feecc2ac8066b8e64a08ea717a58ba5d05 100644
--- a/lib/guessit/test/guessittest.py
+++ b/lib/guessit/test/guessittest.py
@@ -22,7 +22,6 @@ from __future__ import absolute_import, division, print_function, unicode_litera
 
 from collections import defaultdict
 from unittest import TestCase, TestLoader
-import shlex
 import logging
 import os
 import sys
@@ -86,10 +85,6 @@ class TestGuessit(TestCase):
 
             options = required_fields.pop('options') if 'options' in required_fields else None
 
-            if options:
-                args = shlex.split(options)
-                options = get_opts().parse_args(args)
-                options = vars(options)
             try:
                 found = guess_func(filename, options)
             except Exception as e:
diff --git a/lib/guessit/test/movies.yaml b/lib/guessit/test/movies.yaml
index 0ea23a745dcb62995091bf72a765e2e90771af81..75715c6ff1d7f20cafbc3e54e7bb8c90fd02dbd3 100644
--- a/lib/guessit/test/movies.yaml
+++ b/lib/guessit/test/movies.yaml
@@ -606,7 +606,9 @@
 ? Yves.Saint.Laurent.2013.FRENCH.DVDSCR.MD.XviD-ViVARiUM.avi
 : format: DVD
   language: French
-  other: Screener
+  other:
+      - MD
+      - Screener
   releaseGroup: ViVARiUM
   title: Yves Saint Laurent
   videoCodec: XviD
@@ -759,3 +761,16 @@
   screenSize: 1080p
   title: transformers 2
   videoCodec: h265
+
+? 1.Angry.Man.1957.mkv
+: title: 1 Angry Man
+  year: 1957
+
+? 12.Angry.Men.1957.mkv
+: title: 12 Angry Men
+  year: 1957
+
+? 123.Angry.Men.1957.mkv
+: title: 123 Angry Men
+  year: 1957
+
diff --git a/lib/guessit/transfo/guess_date.py b/lib/guessit/transfo/guess_date.py
index 0aa7fe16054ad1ccee8751f435c16820ab40e604..c4bfe5cd4ce7e06f0366e04f0c5d17b4963aa93d 100644
--- a/lib/guessit/transfo/guess_date.py
+++ b/lib/guessit/transfo/guess_date.py
@@ -19,6 +19,7 @@
 #
 
 from __future__ import absolute_import, division, print_function, unicode_literals
+from guessit.containers import DefaultValidator
 
 from guessit.plugins.transformers import Transformer
 from guessit.matcher import GuessFinder
@@ -41,10 +42,9 @@ class GuessDate(Transformer):
     @staticmethod
     def guess_date(string, node=None, options=None):
         date, span = search_date(string, options.get('date_year_first') if options else False, options.get('date_day_first') if options else False)
-        if date:
+        if date and span and DefaultValidator.validate_string(string, span): # ensure we have a separator before and after date
             return {'date': date}, span
-        else:
-            return None, None
+        return None, None
 
     def process(self, mtree, options=None):
         GuessFinder(self.guess_date, 1.0, self.log, options).process_nodes(mtree.unidentified_leaves())
diff --git a/lib/guessit/transfo/guess_episode_info_from_position.py b/lib/guessit/transfo/guess_episode_info_from_position.py
index 91c8392976290a2351808773fd4fcac48cc19ba4..8706d0193941deb2d5b8aa732519f68d2d70c8c9 100644
--- a/lib/guessit/transfo/guess_episode_info_from_position.py
+++ b/lib/guessit/transfo/guess_episode_info_from_position.py
@@ -128,13 +128,14 @@ class GuessEpisodeInfoFromPosition(Transformer):
         if not eps:
             eps = [node for node in mtree.leaves() if 'date' in node.guess]
 
+        eps = sorted(eps, key=lambda ep: -ep.guess.confidence())
         if eps:
             self.match_from_epnum_position(mtree, eps[0], options)
 
         else:
             # if we don't have the episode number, but at least 2 groups in the
             # basename, then it's probably series - eptitle
-            basename = mtree.node_at((-2,))
+            basename = list(filter(lambda x: x.category == 'path', mtree.nodes()))[-2]
 
             title_candidates = self._filter_candidates(basename.unidentified_leaves(), options)
 
@@ -147,9 +148,10 @@ class GuessEpisodeInfoFromPosition(Transformer):
 
         # if we only have 1 remaining valid group in the folder containing the
         # file, then it's likely that it is the series name
+        path_nodes = list(filter(lambda x: x.category == 'path', mtree.nodes()))
         try:
-            series_candidates = list(mtree.node_at((-3,)).unidentified_leaves())
-        except ValueError:
+            series_candidates = list(path_nodes[-3].unidentified_leaves())
+        except IndexError:
             series_candidates = []
 
         if len(series_candidates) == 1:
diff --git a/lib/guessit/transfo/guess_episodes_rexps.py b/lib/guessit/transfo/guess_episodes_rexps.py
index 1fd9b1dd4a870a455522b498892ff4c5a33ddb56..f6fca1ab208ca3327c3903ebe05609a89e3f134c 100644
--- a/lib/guessit/transfo/guess_episodes_rexps.py
+++ b/lib/guessit/transfo/guess_episodes_rexps.py
@@ -21,6 +21,7 @@
 from __future__ import absolute_import, division, print_function, unicode_literals
 
 import re
+from guessit.patterns.list import list_parser, all_separators_re
 
 from guessit.plugins.transformers import Transformer
 from guessit.matcher import GuessFinder
@@ -34,9 +35,8 @@ class GuessEpisodesRexps(Transformer):
     def __init__(self):
         Transformer.__init__(self, 20)
 
-        range_separators = ['-', 'to', 'a']
-        discrete_separators = ['&', 'and', 'et']
         of_separators = ['of', 'sur', '/', '\\']
+        of_separators_re = re.compile(build_or_pattern(of_separators, escape=True), re.IGNORECASE)
 
         season_words = ['seasons?', 'saisons?', 'series?']
         episode_words = ['episodes?']
@@ -44,85 +44,14 @@ class GuessEpisodesRexps(Transformer):
         season_markers = ['s']
         episode_markers = ['e', 'ep']
 
-        discrete_sep = sep
-        for range_separator in range_separators:
-            discrete_sep = discrete_sep.replace(range_separator, '')
-        discrete_separators.append(discrete_sep)
-        all_separators = list(range_separators)
-        all_separators.extend(discrete_separators)
-
         self.container = PropertiesContainer(enhance=False, canonical_from_pattern=False)
 
-        range_separators_re = re.compile(build_or_pattern(range_separators), re.IGNORECASE)
-        discrete_separators_re = re.compile(build_or_pattern(discrete_separators), re.IGNORECASE)
-        all_separators_re = re.compile(build_or_pattern(all_separators), re.IGNORECASE)
-        of_separators_re = re.compile(build_or_pattern(of_separators, escape=True), re.IGNORECASE)
-
         season_words_re = re.compile(build_or_pattern(season_words), re.IGNORECASE)
         episode_words_re = re.compile(build_or_pattern(episode_words), re.IGNORECASE)
 
         season_markers_re = re.compile(build_or_pattern(season_markers), re.IGNORECASE)
         episode_markers_re = re.compile(build_or_pattern(episode_markers), re.IGNORECASE)
 
-        def list_parser(value, property_list_name, discrete_separators_re=discrete_separators_re, range_separators_re=range_separators_re, allow_discrete=False, fill_gaps=False):
-            discrete_elements = filter(lambda x: x != '', discrete_separators_re.split(value))
-            discrete_elements = [x.strip() for x in discrete_elements]
-
-            proper_discrete_elements = []
-            i = 0
-            while i < len(discrete_elements):
-                if i < len(discrete_elements) - 2 and range_separators_re.match(discrete_elements[i+1]):
-                    proper_discrete_elements.append(discrete_elements[i] + discrete_elements[i+1] + discrete_elements[i+2])
-                    i += 3
-                else:
-                    match = range_separators_re.search(discrete_elements[i])
-                    if match and match.start() == 0:
-                        proper_discrete_elements[i - 1] += discrete_elements[i]
-                    elif match and match.end() == len(discrete_elements[i]):
-                        proper_discrete_elements.append(discrete_elements[i] + discrete_elements[i + 1])
-                    else:
-                        proper_discrete_elements.append(discrete_elements[i])
-                    i += 1
-
-            discrete_elements = proper_discrete_elements
-
-            ret = []
-
-            for discrete_element in discrete_elements:
-                range_values = filter(lambda x: x != '', range_separators_re.split(discrete_element))
-                range_values = [x.strip() for x in range_values]
-                if len(range_values) > 1:
-                    for x in range(0, len(range_values) - 1):
-                        start_range_ep = parse_numeral(range_values[x])
-                        end_range_ep = parse_numeral(range_values[x+1])
-                        for range_ep in range(start_range_ep, end_range_ep + 1):
-                            if range_ep not in ret:
-                                ret.append(range_ep)
-                else:
-                    discrete_value = parse_numeral(discrete_element)
-                    if discrete_value not in ret:
-                        ret.append(discrete_value)
-
-            if len(ret) > 1:
-                if not allow_discrete:
-                    valid_ret = list()
-                    # replace discrete elements by ranges
-                    valid_ret.append(ret[0])
-                    for i in range(0, len(ret) - 1):
-                        previous = valid_ret[len(valid_ret) - 1]
-                        if ret[i+1] < previous:
-                            pass
-                        else:
-                            valid_ret.append(ret[i+1])
-                    ret = valid_ret
-                if fill_gaps:
-                    ret = list(range(min(ret), max(ret) + 1))
-                if len(ret) > 1:
-                    return {None: ret[0], property_list_name: ret}
-            if len(ret) > 0:
-                return ret[0]
-            return None
-
         def episode_parser_x(value):
             return list_parser(value, 'episodeList', discrete_separators_re=re.compile('x', re.IGNORECASE))
 
@@ -138,34 +67,33 @@ class GuessEpisodesRexps(Transformer):
         class ResolutionCollisionValidator(object):
             @staticmethod
             def validate(prop, string, node, match, entry_start, entry_end):
-                return len(match.group(2)) < 3 # limit
+                return len(match.group(2)) < 3  # limit
 
         self.container.register_property(None, r'(' + season_words_re.pattern + sep + '?(?P<season>' + numeral + ')' + sep + '?' + season_words_re.pattern + '?)', confidence=1.0, formatter=parse_numeral)
         self.container.register_property(None, r'(' + season_words_re.pattern + sep + '?(?P<season>' + digital_numeral + '(?:' + sep + '?' + all_separators_re.pattern + sep + '?' + digital_numeral + ')*)' + sep + '?' + season_words_re.pattern + '?)' + sep, confidence=1.0, formatter={None: parse_numeral, 'season': season_parser}, validator=ChainedValidator(DefaultValidator(), FormatterValidator('season', lambda x: len(x) > 1 if hasattr(x, '__len__') else False)))
 
         self.container.register_property(None, r'(' + season_markers_re.pattern + '(?P<season>' + digital_numeral + ')[^0-9]?' + sep + '?(?P<episodeNumber>(?:e' + digital_numeral + '(?:' + sep + '?[e-]' + digital_numeral + ')*)))', confidence=1.0, formatter={None: parse_numeral, 'episodeNumber': episode_parser_e, 'season': season_parser}, validator=NoValidator())
-        # self.container.register_property(None, r'[^0-9]((?P<season>' + digital_numeral + ')[^0-9 .-]?-?(?P<episodeNumber>(?:x' + digital_numeral + '(?:' + sep + '?[x-]' + digital_numeral + ')*)))', confidence=1.0, formatter={None: parse_numeral, 'episodeNumber': episode_parser_x, 'season': season_parser}, validator=ChainedValidator(DefaultValidator(), ResolutionCollisionValidator()))
+        self.container.register_property(None, r'(' + season_markers_re.pattern + '(?P<season>' + digital_numeral + ')[^0-9]?' + sep + '?(?P<episodeNumber>(?:e' + digital_numeral + '(?:' + sep + '?' + all_separators_re.pattern + sep + '?' + digital_numeral + ')*)))', confidence=1.0, formatter={None: parse_numeral, 'episodeNumber': episode_parser, 'season': season_parser}, validator=NoValidator())
+
         self.container.register_property(None, sep + r'((?P<season>' + digital_numeral + ')' + sep + '' + '(?P<episodeNumber>(?:x' + sep + digital_numeral + '(?:' + sep + '[x-]' + digital_numeral + ')*)))', confidence=1.0, formatter={None: parse_numeral, 'episodeNumber': episode_parser_x, 'season': season_parser}, validator=ChainedValidator(DefaultValidator(), ResolutionCollisionValidator()))
         self.container.register_property(None, r'((?P<season>' + digital_numeral + ')' + '(?P<episodeNumber>(?:x' + digital_numeral + '(?:[x-]' + digital_numeral + ')*)))', confidence=1.0, formatter={None: parse_numeral, 'episodeNumber': episode_parser_x, 'season': season_parser}, validator=ChainedValidator(DefaultValidator(), ResolutionCollisionValidator()))
         self.container.register_property(None, r'(' + season_markers_re.pattern + '(?P<season>' + digital_numeral + '(?:' + sep + '?' + all_separators_re.pattern + sep + '?' + digital_numeral + ')*))', confidence=0.6, formatter={None: parse_numeral, 'season': season_parser}, validator=NoValidator())
 
         self.container.register_property(None, r'((?P<episodeNumber>' + digital_numeral + ')' + sep + '?v(?P<version>\d+))', confidence=0.6, formatter=parse_numeral)
+        self.container.register_property('version', sep + r'(V\d+)' + sep, confidence=0.6, formatter=parse_numeral, validator=NoValidator())
         self.container.register_property(None, r'(ep' + sep + r'?(?P<episodeNumber>' + digital_numeral + ')' + sep + '?)', confidence=0.7, formatter=parse_numeral)
         self.container.register_property(None, r'(ep' + sep + r'?(?P<episodeNumber>' + digital_numeral + ')' + sep + '?v(?P<version>\d+))', confidence=0.7, formatter=parse_numeral)
 
-
         self.container.register_property(None, r'(' + episode_markers_re.pattern + '(?P<episodeNumber>' + digital_numeral + '(?:' + sep + '?' + all_separators_re.pattern + sep + '?' + digital_numeral + ')*))', confidence=0.6, formatter={None: parse_numeral, 'episodeNumber': episode_parser})
         self.container.register_property(None, r'(' + episode_words_re.pattern + sep + '?(?P<episodeNumber>' + digital_numeral + '(?:' + sep + '?' + all_separators_re.pattern + sep + '?' + digital_numeral + ')*)' + sep + '?' + episode_words_re.pattern + '?)', confidence=0.8, formatter={None: parse_numeral, 'episodeNumber': episode_parser})
 
-        self.container.register_property(None, r'(' + episode_markers_re.pattern + '(?P<episodeNumber>' + digital_numeral + ')'  + sep + '?v(?P<version>\d+))', confidence=0.6, formatter={None: parse_numeral, 'episodeNumber': episode_parser})
-        self.container.register_property(None, r'(' + episode_words_re.pattern + sep + '?(?P<episodeNumber>' + digital_numeral + ')'  + sep + '?v(?P<version>\d+))', confidence=0.8, formatter={None: parse_numeral, 'episodeNumber': episode_parser})
+        self.container.register_property(None, r'(' + episode_markers_re.pattern + '(?P<episodeNumber>' + digital_numeral + ')' + sep + '?v(?P<version>\d+))', confidence=0.6, formatter={None: parse_numeral, 'episodeNumber': episode_parser})
+        self.container.register_property(None, r'(' + episode_words_re.pattern + sep + '?(?P<episodeNumber>' + digital_numeral + ')' + sep + '?v(?P<version>\d+))', confidence=0.8, formatter={None: parse_numeral, 'episodeNumber': episode_parser})
 
-
-        self.container.register_property('episodeNumber', r'^ ?(\d{2})' + sep, confidence=0.4, formatter=parse_numeral)
-        self.container.register_property('episodeNumber', r'^ ?(\d{2})' + sep, confidence=0.4, formatter=parse_numeral)
-        self.container.register_property('episodeNumber', r'^ ?0(\d{1,2})' + sep, confidence=0.4, formatter=parse_numeral)
-        self.container.register_property('episodeNumber', sep + r'(\d{2}) ?$', confidence=0.4, formatter=parse_numeral)
-        self.container.register_property('episodeNumber', sep + r'0(\d{1,2}) ?$', confidence=0.4, formatter=parse_numeral)
+        self.container.register_property('episodeNumber', r'^' + sep + '+(\d{2}' + '(?:' + sep + '?' + all_separators_re.pattern + sep + '?' + '\d{2}' + ')*)' + sep, confidence=0.4, formatter=episode_parser)
+        self.container.register_property('episodeNumber', r'^' + sep + '+0(\d{1,2}' + '(?:' + sep + '?' + all_separators_re.pattern + sep + '?' + '0\d{1,2}' + ')*)' + sep, confidence=0.4, formatter=episode_parser)
+        self.container.register_property('episodeNumber', sep + r'(\d{2}' + '(?:' + sep + '?' + all_separators_re.pattern + sep + '?' + r'\d{2}' + ')*)' + sep + '+$', confidence=0.4, formatter=episode_parser)
+        self.container.register_property('episodeNumber', sep + r'0(\d{1,2}' + '(?:' + sep + '?' + all_separators_re.pattern + sep + '?' + r'0\d{1,2}' + ')*)' + sep + '+$', confidence=0.4, formatter=episode_parser)
 
         self.container.register_property(None, r'((?P<episodeNumber>' + numeral + ')' + sep + '?' + of_separators_re.pattern + sep + '?(?P<episodeCount>' + numeral + ')(?:' + sep + '?(?:episodes?|eps?))?)', confidence=0.7, formatter=parse_numeral)
         self.container.register_property(None, r'((?:episodes?|eps?)' + sep + '?(?P<episodeNumber>' + numeral + ')' + sep + '?' + of_separators_re.pattern + sep + '?(?P<episodeCount>' + numeral + '))', confidence=0.7, formatter=parse_numeral)
@@ -186,7 +114,29 @@ class GuessEpisodesRexps(Transformer):
 
     def guess_episodes_rexps(self, string, node=None, options=None):
         found = self.container.find_properties(string, node, options)
-        return self.container.as_guess(found, string)
+        guess = self.container.as_guess(found, string)
+        if guess and node:
+            if 'season' in guess and 'episodeNumber' in guess:
+                # If two guesses contains both season and episodeNumber in same group, create an episodeList
+                for existing_guess in node.group_node().guesses:
+                    if 'season' in existing_guess and 'episodeNumber' in existing_guess:
+                        if 'episodeList' not in existing_guess:
+                            existing_guess['episodeList'] = [existing_guess['episodeNumber']]
+                        existing_guess['episodeList'].append(guess['episodeNumber'])
+                        existing_guess['episodeList'].sort()
+                        if existing_guess['episodeNumber'] > guess['episodeNumber']:
+                            existing_guess.set_confidence('episodeNumber', 0)
+                        else:
+                            guess.set_confidence('episodeNumber', 0)
+                        guess['episodeList'] = list(existing_guess['episodeList'])
+            elif 'episodeNumber' in guess:
+                # If two guesses contains only episodeNumber in same group, remove the existing one.
+                for existing_guess in node.group_node().guesses:
+                    if 'episodeNumber' in existing_guess:
+                        for k, v in existing_guess.items():
+                            if k in guess:
+                                del guess[k]
+        return guess
 
     def should_process(self, mtree, options=None):
         return mtree.guess.get('type', '').startswith('episode')
diff --git a/lib/guessit/transfo/guess_filetype.py b/lib/guessit/transfo/guess_filetype.py
index 03fb5d5c4f1557eac7424f8875d3edb86756ceb4..7725e1293f1cb0a472349da7425d15badca380c9 100644
--- a/lib/guessit/transfo/guess_filetype.py
+++ b/lib/guessit/transfo/guess_filetype.py
@@ -156,6 +156,13 @@ class GuessFiletype(Transformer):
 
             weak_episode_transformer = get_transformer('guess_weak_episodes_rexps')
             if weak_episode_transformer:
+                found = weak_episode_transformer.container.find_properties(filename, mtree, options, 'episodeNumber')
+                guess = weak_episode_transformer.container.as_guess(found, filename)
+                if guess and (guess.raw('episodeNumber')[0] == '0' or guess['episodeNumber'] >= 10):
+                    self.log.debug('Found characteristic property of episodes: %s"', guess)
+                    upgrade_episode()
+                    return filetype_container[0], other
+
                 found = properties_transformer.container.find_properties(filename, mtree, options, 'crc32')
                 guess = properties_transformer.container.as_guess(found, filename)
                 if guess:
@@ -217,7 +224,8 @@ class GuessFiletype(Transformer):
         if mime is not None:
             filetype_info.update({'mimetype': mime}, confidence=1.0)
 
-        node_ext = mtree.node_at((-1,))
+        # Retrieve the last node of category path (extension node)
+        node_ext = list(filter(lambda x: x.category == 'path', mtree.nodes()))[-1]
         found_guess(node_ext, filetype_info)
 
         if mtree.guess.get('type') in [None, 'unknown']:
@@ -226,12 +234,21 @@ class GuessFiletype(Transformer):
             else:
                 raise TransformerException(__name__, 'Unknown file type')
 
-    def post_process(self, mtree, options=None):
-        # now look whether there are some specific hints for episode vs movie
-        # If we have a date and no year, this is a TV Show.
-        if 'date' in mtree.info and 'year' not in mtree.info and mtree.info.get('type') != 'episode':
-            mtree.guess['type'] = 'episode'
-            for type_leaves in mtree.leaves_containing('type'):
-                type_leaves.guess['type'] = 'episode'
-            for title_leaves in mtree.leaves_containing('title'):
-                title_leaves.guess.rename('title', 'series')
\ No newline at end of file
+    def second_pass_options(self, mtree, options=None):
+        if 'type' not in options or not options['type']:
+            if mtree.info.get('type') != 'episode':
+                # now look whether there are some specific hints for episode vs movie
+                # If we have a date and no year, this is a TV Show.
+                if 'date' in mtree.info and 'year' not in mtree.info:
+                    return {'type': 'episode'}
+
+            if mtree.info.get('type') != 'movie':
+                # If we have a year, no season but raw episodeNumber is a number not starting with '0', this is a movie.
+                if 'year' in mtree.info and 'episodeNumber' in mtree.info and not 'season' in mtree.info:
+                    try:
+                        int(mtree.raw['episodeNumber'])
+                        return {'type': 'movie'}
+                    except ValueError:
+                        pass
+
+
diff --git a/lib/guessit/transfo/guess_language.py b/lib/guessit/transfo/guess_language.py
index 666b41b00c89b00fae7cf5985d91e6ec65cfb842..f045930a25ca2ade65a7fe5ff329336561f325bb 100644
--- a/lib/guessit/transfo/guess_language.py
+++ b/lib/guessit/transfo/guess_language.py
@@ -133,6 +133,8 @@ class GuessLanguage(Transformer):
 
     def post_process(self, mtree, options=None):
         # 1- try to promote language to subtitle language where it makes sense
+        prefixes = []
+
         for node in mtree.nodes():
             if 'language' not in node.guess:
                 continue
@@ -141,7 +143,8 @@ class GuessLanguage(Transformer):
             #   the group is the last group of the filename, it is probably the
             #   language of the subtitle
             #   (eg: 'xxx.english.srt')
-            if (mtree.node_at((-1,)).value.lower() in subtitle_exts and
+            ext_node = list(filter(lambda x: x.category == 'path', mtree.nodes()))[-1]
+            if (ext_node.value.lower() in subtitle_exts and
                     node == list(mtree.leaves())[-2]):
                 self.promote_subtitle(node)
 
@@ -155,11 +158,7 @@ class GuessLanguage(Transformer):
             for sub_prefix in subtitle_prefixes:
                 if (sub_prefix in find_words(group_str) and
                         0 <= group_str.find(sub_prefix) < (node.span[0] - explicit_group.span[0])):
-                    self.promote_subtitle(node)
-
-            for sub_suffix in subtitle_suffixes:
-                if (sub_suffix in find_words(group_str) and
-                        (node.span[0] - explicit_group.span[0]) < group_str.find(sub_suffix)):
+                    prefixes.append((explicit_group, sub_prefix))
                     self.promote_subtitle(node)
 
             # - if a language is in an explicit group just preceded by "st",
@@ -171,3 +170,21 @@ class GuessLanguage(Transformer):
                     self.promote_subtitle(node)
             except IndexError:
                 pass
+
+        for node in mtree.nodes():
+            if 'language' not in node.guess:
+                continue
+
+            explicit_group = mtree.node_at(node.node_idx[:2])
+            group_str = explicit_group.value.lower()
+
+            for sub_suffix in subtitle_suffixes:
+                if (sub_suffix in find_words(group_str) and
+                            (node.span[0] - explicit_group.span[0]) < group_str.find(sub_suffix)):
+                    is_a_prefix = False
+                    for prefix in prefixes:
+                        if prefix[0] == explicit_group and group_str.find(prefix[1]) == group_str.find(sub_suffix):
+                            is_a_prefix = True
+                            break
+                    if not is_a_prefix:
+                        self.promote_subtitle(node)
diff --git a/lib/guessit/transfo/guess_movie_title_from_position.py b/lib/guessit/transfo/guess_movie_title_from_position.py
index 671e4cb5be3ca3f0f81fb5ee3dbaa889575090cd..e93c67dc07dbc3414ba4a24fa8ab84ef01646af2 100644
--- a/lib/guessit/transfo/guess_movie_title_from_position.py
+++ b/lib/guessit/transfo/guess_movie_title_from_position.py
@@ -44,14 +44,16 @@ class GuessMovieTitleFromPosition(Transformer):
         if 'title' in mtree.info:
             return
 
-        basename = mtree.node_at((-2,))
+        path_nodes = list(filter(lambda x: x.category == 'path', mtree.nodes()))
+
+        basename = path_nodes[-2]
         all_valid = lambda leaf: len(leaf.clean_value) > 0
         basename_leftover = list(basename.unidentified_leaves(valid=all_valid))
 
         try:
-            folder = mtree.node_at((-3,))
+            folder = path_nodes[-3]
             folder_leftover = list(folder.unidentified_leaves())
-        except ValueError:
+        except IndexError:
             folder = None
             folder_leftover = []
 
@@ -164,7 +166,6 @@ class GuessMovieTitleFromPosition(Transformer):
 
         # if nothing worked, look if we have a very small group at the beginning
         # of the basename
-        basename = mtree.node_at((-2,))
         basename_leftover = basename.unidentified_leaves(valid=lambda leaf: True)
         try:
             found_property(next(basename_leftover), 'title', confidence=0.4)
diff --git a/lib/guessit/transfo/guess_properties.py b/lib/guessit/transfo/guess_properties.py
index c66b02d5d513d9f046159d9ec9beeb82bce3c6de..136a216e641677b2ae671c1bdddc08f48b91a4f5 100644
--- a/lib/guessit/transfo/guess_properties.py
+++ b/lib/guessit/transfo/guess_properties.py
@@ -22,7 +22,7 @@ from __future__ import absolute_import, division, print_function, unicode_litera
 
 import re
 
-from guessit.containers import PropertiesContainer, WeakValidator, LeavesValidator, QualitiesContainer, ChainedValidator, DefaultValidator, OnlyOneValidator, LeftValidator, NeighborValidator
+from guessit.containers import PropertiesContainer, WeakValidator, LeavesValidator, QualitiesContainer, ChainedValidator, DefaultValidator, OnlyOneValidator, LeftValidator, NeighborValidator, FullMatchValidator
 from guessit.patterns import sep, build_or_pattern
 from guessit.patterns.extension import subtitle_exts, video_exts, info_exts
 from guessit.patterns.numeral import numeral, parse_numeral
@@ -239,8 +239,8 @@ class GuessProperties(Transformer):
 
         self.container.register_property('crc32', '(?:[a-fA-F]|[0-9]){8}', enhance=False, canonical_from_pattern=False)
 
-        weak_episode_words = ['pt', 'part']
-        self.container.register_property(None, '(' + build_or_pattern(weak_episode_words) + sep + '?(?P<part>' + numeral + '))[^0-9]', enhance=False, canonical_from_pattern=False, confidence=0.4, formatter=parse_numeral)
+        part_words = ['pt', 'part']
+        self.container.register_property(None, '(' + build_or_pattern(part_words) + sep + '?(?P<part>' + numeral + '))[^0-9]', enhance=False, canonical_from_pattern=False, confidence=0.4, formatter=parse_numeral)
 
         register_property('other', {'AudioFix': ['Audio-Fix', 'Audio-Fixed'],
                                     'SyncFix': ['Sync-Fix', 'Sync-Fixed'],
@@ -249,13 +249,15 @@ class GuessProperties(Transformer):
                                     'Netflix': ['Netflix', 'NF']
                                     })
 
-        self.container.register_property('other', 'Real', 'Fix', canonical_form='Proper', validator=NeighborValidator())
+        self.container.register_property('other', 'Real', 'Fix', canonical_form='Proper', validator=ChainedValidator(FullMatchValidator(), NeighborValidator()))
         self.container.register_property('other', 'Proper', 'Repack', 'Rerip', canonical_form='Proper')
-        self.container.register_property('other', 'Fansub', canonical_form='Fansub')
-        self.container.register_property('other', 'Fastsub', canonical_form='Fastsub')
+        self.container.register_property('other', 'Fansub', canonical_form='Fansub', validator=ChainedValidator(FullMatchValidator(), NeighborValidator()))
+        self.container.register_property('other', 'Fastsub', canonical_form='Fastsub', validator=ChainedValidator(FullMatchValidator(), NeighborValidator()))
         self.container.register_property('other', '(?:Seasons?' + sep + '?)?Complete', canonical_form='Complete')
         self.container.register_property('other', 'R5', 'RC', canonical_form='R5')
         self.container.register_property('other', 'Pre-Air', 'Preair', canonical_form='Preair')
+        self.container.register_property('other', 'CC')  # Close Caption
+        self.container.register_property('other', 'LD', 'MD')  # Line/Mic Dubbed
 
         self.container.register_canonical_properties('other', 'Screener', 'Remux', '3D', 'HD', 'mHD', 'HDLight', 'HQ',
                                                      'DDC',
@@ -271,10 +273,29 @@ class GuessProperties(Transformer):
 
     def guess_properties(self, string, node=None, options=None):
         found = self.container.find_properties(string, node, options)
-        return self.container.as_guess(found, string)
+        guess = self.container.as_guess(found, string)
+
+        if guess and node:
+            if 'part' in guess:
+                # If two guesses contains both part in same group, create an partList
+                for existing_guess in node.group_node().guesses:
+                    if 'part' in existing_guess:
+                        if 'partList' not in existing_guess:
+                            existing_guess['partList'] = [existing_guess['part']]
+                        existing_guess['partList'].append(guess['part'])
+                        existing_guess['partList'].sort()
+                        if existing_guess['part'] > guess['part']:
+                            existing_guess.set_confidence('part', 0)
+                        else:
+                            guess.set_confidence('part', 0)
+                        guess['partList'] = list(existing_guess['partList'])
+
+        return guess
 
     def supported_properties(self):
-        return self.container.get_supported_properties()
+        supported_properties = list(self.container.get_supported_properties())
+        supported_properties.append('partList')
+        return supported_properties
 
     def process(self, mtree, options=None):
         GuessFinder(self.guess_properties, 1.0, self.log, options).process_nodes(mtree.unidentified_leaves())
diff --git a/lib/guessit/transfo/guess_weak_episodes_rexps.py b/lib/guessit/transfo/guess_weak_episodes_rexps.py
index 71a74cd1d8033c94bbcbd0a8cbb46e249a162a11..23dfc3f91253f9428677d735268f872a19d7ef25 100644
--- a/lib/guessit/transfo/guess_weak_episodes_rexps.py
+++ b/lib/guessit/transfo/guess_weak_episodes_rexps.py
@@ -21,6 +21,7 @@
 from __future__ import absolute_import, division, print_function, unicode_literals
 
 import re
+from guessit.patterns.list import list_parser, all_separators_re
 
 from guessit.plugins.transformers import Transformer
 
@@ -38,11 +39,14 @@ class GuessWeakEpisodesRexps(Transformer):
         of_separators = ['of', 'sur', '/', '\\']
         of_separators_re = re.compile(build_or_pattern(of_separators, escape=True), re.IGNORECASE)
 
-        self.container = PropertiesContainer(enhance=False, canonical_from_pattern=False)
+        self.container = PropertiesContainer(enhance=False, canonical_from_pattern=False, remove_duplicates=True)
 
         episode_words = ['episodes?']
 
-        def _formater(episode_number):
+        def episode_list_parser(value):
+            return list_parser(value, 'episodeList')
+
+        def season_episode_parser(episode_number):
             epnum = parse_numeral(episode_number)
             if not valid_year(epnum):
                 if epnum > 100:
@@ -55,24 +59,46 @@ class GuessWeakEpisodesRexps(Transformer):
                 else:
                     return epnum
 
-        self.container.register_property(['episodeNumber', 'season'], '[0-9]{2,4}', confidence=0.6, formatter=_formater, disabler=lambda options: options.get('episode_prefer_number') if options else False)
-        self.container.register_property(['episodeNumber', 'season'], '[0-9]{4}', confidence=0.6, formatter=_formater)
-        self.container.register_property('episodeNumber', '[^0-9](\d{1,3})', confidence=0.6, formatter=parse_numeral, disabler=lambda options: not options.get('episode_prefer_number') if options else True)
+        self.container.register_property(['episodeNumber', 'season'], '[0-9]{2,4}', confidence=0.6, formatter=season_episode_parser, disabler=lambda options: options.get('episode_prefer_number') if options else False)
+        self.container.register_property(['episodeNumber', 'season'], '[0-9]{4}', confidence=0.6, formatter=season_episode_parser)
         self.container.register_property(None, '(' + build_or_pattern(episode_words) + sep + '?(?P<episodeNumber>' + numeral + '))[^0-9]', confidence=0.4, formatter=parse_numeral)
         self.container.register_property(None, r'(?P<episodeNumber>' + numeral + ')' + sep + '?' + of_separators_re.pattern + sep + '?(?P<episodeCount>' + numeral +')', confidence=0.6, formatter=parse_numeral)
-        self.container.register_property('episodeNumber', r'^' + sep + '?(\d{1,3})' + sep, confidence=0.4, formatter=parse_numeral, disabler=lambda options: not options.get('episode_prefer_number') if options else True)
-        self.container.register_property('episodeNumber', sep + r'(\d{1,3})' + sep + '?$', confidence=0.4, formatter=parse_numeral, disabler=lambda options: not options.get('episode_prefer_number') if options else True)
+        self.container.register_property('episodeNumber', '[^0-9](\d{2,3}' + '(?:' + sep + '?' + all_separators_re.pattern + sep + '?' + '\d{2,3}' + ')*)', confidence=0.4, formatter=episode_list_parser, disabler=lambda options: not options.get('episode_prefer_number') if options else True)
+        self.container.register_property('episodeNumber', r'^' + sep + '?(\d{2,3}' + '(?:' + sep + '?' + all_separators_re.pattern + sep + '?' + '\d{2,3}' + ')*)' + sep, confidence=0.4, formatter=episode_list_parser, disabler=lambda options: not options.get('episode_prefer_number') if options else True)
+        self.container.register_property('episodeNumber', sep + r'(\d{2,3}' + '(?:' + sep + '?' + all_separators_re.pattern + sep + '?' + '\d{2,3}' + ')*)' + sep + '?$', confidence=0.4, formatter=episode_list_parser, disabler=lambda options: not options.get('episode_prefer_number') if options else True)
 
     def supported_properties(self):
         return self.container.get_supported_properties()
 
     def guess_weak_episodes_rexps(self, string, node=None, options=None):
-        if node and 'episodeNumber' in node.root.info:
-            return None
-
         properties = self.container.find_properties(string, node, options)
         guess = self.container.as_guess(properties, string)
 
+        if node and guess:
+            if 'episodeNumber' in guess and 'season' in guess:
+                existing_guesses = list(filter(lambda x: 'season' in x and 'episodeNumber' in x, node.group_node().guesses))
+                if existing_guesses:
+                    return None
+            elif 'episodeNumber' in guess:
+                # If we only have episodeNumber in the guess, and another node contains both season and episodeNumber
+                # keep only the second.
+                safe_guesses = list(filter(lambda x: 'season' in x and 'episodeNumber' in x, node.group_node().guesses))
+                if safe_guesses:
+                    return None
+                else:
+                    # If we have other nodes containing episodeNumber, create an episodeList.
+                    existing_guesses = list(filter(lambda x: 'season' not in x and 'episodeNumber' in x, node.group_node().guesses))
+                    for existing_guess in existing_guesses:
+                        if 'episodeList' not in existing_guess:
+                            existing_guess['episodeList'] = [existing_guess['episodeNumber']]
+                        existing_guess['episodeList'].append(guess['episodeNumber'])
+                        existing_guess['episodeList'].sort()
+                        if existing_guess['episodeNumber'] > guess['episodeNumber']:
+                            existing_guess.set_confidence('episodeNumber', 0)
+                        else:
+                            guess.set_confidence('episodeNumber', 0)
+                        guess['episodeList'] = list(existing_guess['episodeList'])
+
         return guess
 
     def should_process(self, mtree, options=None):
diff --git a/lib/guessit/transfo/split_explicit_groups.py b/lib/guessit/transfo/split_explicit_groups.py
index 17041b3a5f2cef97210bafe491a740cd3543e27c..263a5b443b08db186d08027a9ec6040c24b42e0f 100644
--- a/lib/guessit/transfo/split_explicit_groups.py
+++ b/lib/guessit/transfo/split_explicit_groups.py
@@ -37,7 +37,7 @@ class SplitExplicitGroups(Transformer):
         :return: return the string split into explicit groups, that is, those either
         between parenthese, square brackets or curly braces, and those separated
         by a dash."""
-        for c in mtree.children:
+        for c in mtree.unidentified_leaves():
             groups = find_first_level_groups(c.value, group_delimiters[0])
             for delimiters in group_delimiters:
                 flatten = lambda l, x: l + find_first_level_groups(x, delimiters)
@@ -47,4 +47,4 @@ class SplitExplicitGroups(Transformer):
             # patterns, such as dates, etc...
             # groups = functools.reduce(lambda l, x: l + x.split('-'), groups, [])
 
-            c.split_on_components(groups)
+            c.split_on_components(groups, category='explicit')
diff --git a/lib/guessit/transfo/split_on_dash.py b/lib/guessit/transfo/split_on_dash.py
index 24e888f381f0aabc1f84af6d101ffb1c5e14f62f..4cb2607c98116f38fce302e682a1c1b6882cd349 100644
--- a/lib/guessit/transfo/split_on_dash.py
+++ b/lib/guessit/transfo/split_on_dash.py
@@ -45,4 +45,4 @@ class SplitOnDash(Transformer):
                 match = pattern.search(node.value, span[1])
 
             if indices:
-                node.partition(indices)
+                node.partition(indices, category='dash')
diff --git a/lib/guessit/transfo/split_path_components.py b/lib/guessit/transfo/split_path_components.py
index 8f2b13760ceab7151cb2aa1b403948e821747046..9ddda3f29823c8a6a56fd60710109135c766f841 100644
--- a/lib/guessit/transfo/split_path_components.py
+++ b/lib/guessit/transfo/split_path_components.py
@@ -41,6 +41,6 @@ class SplitPathComponents(Transformer):
             components += list(splitext(basename))
             components[-1] = components[-1][1:]  # remove the '.' from the extension
 
-            mtree.split_on_components(components)
+            mtree.split_on_components(components, category='path')
         else:
-            mtree.split_on_components([mtree.value, ''])
+            mtree.split_on_components([mtree.value, ''], category='path')
diff --git a/lib/hachoir_metadata/metadata.py b/lib/hachoir_metadata/metadata.py
index 37461c9d55986fdaea68b7d35d7f1a093e87dc00..dbdc411bc8a6ec96616480f3753b4fa3065a0ede 100644
--- a/lib/hachoir_metadata/metadata.py
+++ b/lib/hachoir_metadata/metadata.py
@@ -284,6 +284,10 @@ def extractMetadata(parser, quality=QUALITY_NORMAL):
         metadata.extract(parser)
     except HACHOIR_ERRORS, err:
         error("Error during metadata extraction: %s" % unicode(err))
+        return None
+    except Exception, err:
+        error("Error during metadata extraction: %s" % unicode(err))
+        return None
     if metadata:
         metadata.mime_type = parser.mime_type
         metadata.endian = endian_name[parser.endian]
diff --git a/setup.py b/setup.py
deleted file mode 100644
index 67058ae9c1d64220ab86798969b8c9abada95a81..0000000000000000000000000000000000000000
--- a/setup.py
+++ /dev/null
@@ -1,286 +0,0 @@
-import re
-import urllib
-import ConfigParser
-import sys
-import os
-import zipfile
-import subprocess
-import fnmatch
-import googlecode_upload
-
-from distutils.core import setup
-
-import shutil
-import shutil_custom
-
-shutil.copyfile = shutil_custom.copyfile_custom
-
-try:
-    import py2exe
-except:
-    print "The Python module py2exe is required"
-    sys.exit(1)
-
-try:
-    import pygithub.github
-except:
-    print "The Python module pyGitHub is required"
-    sys.exit(1)
-
-# mostly stolen from the SABnzbd package.py file
-name = 'SickRage'
-version = '0.1'
-
-release = name + '-' + version
-
-Win32ConsoleName = 'SickBeard-console.exe'
-Win32WindowName = 'SickBeard.exe'
-
-
-def findLatestBuild():
-    regex = "http\://sickrage\.googlecode\.com/files/SickRage\-win32\-alpha\-build(\d+)(?:\.\d+)?\.zip"
-
-    svnFile = urllib.urlopen("http://code.google.com/p/sickrage/downloads/list")
-
-    for curLine in svnFile.readlines():
-        match = re.search(regex, curLine)
-        if match:
-            groups = match.groups()
-            return int(groups[0])
-
-    return None
-
-
-def recursive_find_data_files(root_dir, allowed_extensions=('*')):
-    to_return = {}
-    for (dirpath, dirnames, filenames) in os.walk(root_dir):
-        if not filenames:
-            continue
-
-        for cur_filename in filenames:
-
-            matches_pattern = False
-            for cur_pattern in allowed_extensions:
-                if fnmatch.fnmatch(cur_filename, '*.' + cur_pattern):
-                    matches_pattern = True
-            if not matches_pattern:
-                continue
-
-            cur_filepath = os.path.join(dirpath, cur_filename)
-            to_return.setdefault(dirpath, []).append(cur_filepath)
-
-    return sorted(to_return.items())
-
-
-def find_all_libraries(root_dirs):
-    libs = []
-
-    for cur_root_dir in root_dirs:
-        for (dirpath, dirnames, filenames) in os.walk(cur_root_dir):
-            if '__init__.py' not in filenames:
-                continue
-
-            libs.append(dirpath.replace(os.sep, '.'))
-
-    return libs
-
-
-def allFiles(dir):
-    files = []
-    for file in os.listdir(dir):
-        fullFile = os.path.join(dir, file)
-        if os.path.isdir(fullFile):
-            files += allFiles(fullFile)
-        else:
-            files.append(fullFile)
-
-    return files
-
-# save the original arguments and replace them with the py2exe args
-oldArgs = []
-if len(sys.argv) > 1:
-    oldArgs = sys.argv[1:]
-    del sys.argv[1:]
-
-sys.argv.append('py2exe')
-
-# clear the dist dir
-if os.path.isdir('dist'):
-    shutil.rmtree('dist')
-
-# root source dir
-compile_dir = os.path.dirname(os.path.normpath(os.path.abspath(sys.argv[0])))
-
-if not 'nopull' in oldArgs:
-    # pull new source from git
-    print 'Updating source from git'
-    p = subprocess.Popen('git pull origin master', shell=True, cwd=compile_dir)
-    o, e = p.communicate()
-
-# figure out what build this is going to be
-latestBuild = findLatestBuild()
-if 'test' in oldArgs:
-    currentBuildNumber = str(latestBuild) + 'a'
-else:
-    currentBuildNumber = latestBuild + 1
-
-# set up the compilation options
-data_files = recursive_find_data_files('data', ['gif', 'png', 'jpg', 'ico', 'js', 'css', 'tmpl'])
-
-options = dict(
-    name=name,
-    version=release,
-    author='echel0n',
-    author_email='sickrage.tv@gmail.com',
-    description=name + ' ' + release,
-    scripts=['SickBeard.py'],
-    packages=find_all_libraries(['sickbeard', 'lib']),
-)
-
-# set up py2exe to generate the console app
-program = [{'script': 'SickBeard.py'}]
-options['options'] = {'py2exe':
-                          {
-                              'bundle_files': 3,
-                              'packages': ['Cheetah'],
-                              'excludes': ['Tkconstants', 'Tkinter', 'tcl'],
-                              'optimize': 2,
-                              'compressed': 0
-                          }
-}
-options['zipfile'] = 'lib/sickrage.zip'
-options['console'] = program
-options['data_files'] = data_files
-
-# compile sickbeard-console.exe
-setup(**options)
-
-# rename the exe to sickbeard-console.exe
-try:
-    if os.path.exists("dist/%s" % Win32ConsoleName):
-        os.remove("dist/%s" % Win32ConsoleName)
-    os.rename("dist/%s" % Win32WindowName, "dist/%s" % Win32ConsoleName)
-except:
-    print "Cannot create dist/%s" % Win32ConsoleName
-    # sys.exit(1)
-
-# we don't need this stuff when we make the 2nd exe
-del options['console']
-del options['data_files']
-options['windows'] = program
-
-# compile sickbeard.exe
-setup(**options)
-
-# compile sabToSickbeard.exe using the existing setup.py script
-auto_process_dir = os.path.join(compile_dir, 'autoProcessTV')
-p = subprocess.Popen([sys.executable, os.path.join(auto_process_dir, 'setup.py')], cwd=auto_process_dir, shell=True)
-o, e = p.communicate()
-
-# copy autoProcessTV files to the dist dir
-auto_process_files = ['autoProcessTV/sabToSickBeard.py',
-                      'autoProcessTV/hellaToSickBeard.py',
-                      'autoProcessTV/autoProcessTV.py',
-                      'autoProcessTV/autoProcessTV.cfg.sample',
-                      'autoProcessTV/sabToSickBeard.exe']
-
-os.makedirs('dist/autoProcessTV')
-
-for curFile in auto_process_files:
-    newFile = os.path.join('dist', curFile)
-    print "Copying file from", curFile, "to", newFile
-    shutil.copy(curFile, newFile)
-
-# compile updater.exe
-setup(
-    options={'py2exe': {'bundle_files': 1}},
-    zipfile=None,
-    console=['updater.py'], requires=['Cheetah']
-)
-
-if 'test' in oldArgs:
-    print "Ignoring changelog for test build"
-else:
-    # start building the CHANGELOG.txt
-    print 'Creating changelog'
-    gh = github.GitHub()
-
-    # read the old changelog and find the last commit from that build
-    lastCommit = ""
-    try:
-        cl = open("CHANGELOG.txt", "r")
-        lastCommit = cl.readlines()[0].strip()
-        cl.close()
-    except:
-        print "I guess there's no changelog"
-
-    newestCommit = ""
-    changeString = ""
-
-    # cycle through all the git commits and save their commit messages
-    for curCommit in gh.commits.forBranch('echel0n', 'SickRage'):
-        if curCommit.id == lastCommit:
-            break
-
-        if newestCommit == "":
-            newestCommit = curCommit.id
-
-        changeString += curCommit.message + "\n\n"
-
-    # if we didn't find any changes don't make a changelog file
-    if newestCommit != "":
-        newChangelog = open("CHANGELOG.txt", "w")
-        newChangelog.write(newestCommit + "\n\n")
-        newChangelog.write("Changelog for build " + str(currentBuildNumber) + "\n\n")
-        newChangelog.write(changeString)
-        newChangelog.close()
-    else:
-        print "No changes found, keeping old changelog"
-
-# put the changelog in the compile dir
-if os.path.exists("CHANGELOG.txt"):
-    shutil.copy('CHANGELOG.txt', 'dist/')
-
-# figure out what we're going to call the zip file
-print 'Zipping files...'
-zipFilename = 'SickRage-win32-alpha-build' + str(currentBuildNumber)
-if os.path.isfile(zipFilename + '.zip'):
-    zipNum = 2
-    while os.path.isfile(zipFilename + '.{0:0>2}.zip'.format(str(zipNum))):
-        zipNum += 1
-    zipFilename = zipFilename + '.{0:0>2}'.format(str(zipNum))
-
-# get a list of files to add to the zip
-zipFileList = allFiles('dist/')
-
-# add all files to the zip
-z = zipfile.ZipFile(zipFilename + '.zip', 'w', zipfile.ZIP_DEFLATED)
-for file in zipFileList:
-    z.write(file, file.replace('dist/', zipFilename + '/'))
-z.close()
-
-print "Created zip at", zipFilename
-
-# i store my google code username/pw in a config so i can have this file in public source control 
-config = ConfigParser.ConfigParser()
-configFilename = os.path.join(compile_dir, "gc.ini")
-config.read(configFilename)
-
-gc_username = config.get("GC", "username")
-gc_password = config.get("GC", "password")
-
-# upload to google code unless I tell it not to
-if "noup" not in oldArgs and "test" not in oldArgs:
-    print "Uploading zip to google code"
-    googlecode_upload.upload(os.path.abspath(zipFilename + ".zip"), "sickrage", gc_username, gc_password,
-                             "Win32 alpha build " + str(currentBuildNumber) + " (unstable/development release)",
-                             ["Featured", "Type-Executable", "OpSys-Windows"])
-
-if 'nopush' not in oldArgs and 'test' not in oldArgs:
-    # tag commit as a new build and push changes to github
-    print 'Tagging commit and pushing'
-    p = subprocess.Popen('git tag -a "build-' + str(currentBuildNumber) + '" -m "Windows build ' + zipFilename + '"',
-                         shell=True, cwd=compile_dir)
-    o, e = p.communicate()
-    p = subprocess.Popen('git push --tags origin windows_binaries', shell=True, cwd=compile_dir)
-    o, e = p.communicate()
diff --git a/sickbeard/clients/deluged_client.py b/sickbeard/clients/deluged_client.py
index da11cd432d7675ca29349f8a155d1dd11b9e60d3..9c2e00b56189abd0c4a8023e62d0caa977a732c3 100644
--- a/sickbeard/clients/deluged_client.py
+++ b/sickbeard/clients/deluged_client.py
@@ -1,4 +1,5 @@
 # Author: Paul Wollaston
+# Contributions: Luke Mullan
 #
 # This client script allows connection to Deluge Daemon directly, completely
 # circumventing the requirement to use the WebUI.
@@ -41,7 +42,7 @@ class DelugeDAPI(GenericClient):
             'add_paused': sickbeard.TORRENT_PAUSED
         }
 
-        remote_torrent = self.drpc.add_torrent_magnet(result.url, options)
+        remote_torrent = self.drpc.add_torrent_magnet(result.url, options, result.hash)
 
         if not remote_torrent:
             return None
@@ -64,7 +65,7 @@ class DelugeDAPI(GenericClient):
             'add_paused': sickbeard.TORRENT_PAUSED
         }
 
-        remote_torrent = self.drpc.add_torrent_file(result.name + '.torrent', result.content, options)
+        remote_torrent = self.drpc.add_torrent_file(result.name + '.torrent', result.content, options, result.hash)
 
         if not remote_torrent:
             return None
@@ -107,7 +108,6 @@ class DelugeDAPI(GenericClient):
         return True
 
     def testAuthentication(self):
-        print "Test Auth"
         if self.connect(True) and self.drpc.test():
             return True, 'Success: Connected and Authenticated'
         else:
@@ -140,15 +140,14 @@ class DelugeRPC(object):
             return False
         return True
 
-    def add_torrent_magnet(self, torrent, options):
+    def add_torrent_magnet(self, torrent, options, torrent_hash):
         torrent_id = False
         try:
             self.connect()
             torrent_id = self.client.core.add_torrent_magnet(torrent, options).get()
             if not torrent_id:
-                torrent_id = self._check_torrent(True, torrent)
+                torrent_id = self._check_torrent(torrent_hash)
         except Exception as err:
-            print "ERRERR: %s" % err
             return False
         finally:
             if self.client:
@@ -156,13 +155,13 @@ class DelugeRPC(object):
 
         return torrent_id
 
-    def add_torrent_file(self, filename, torrent, options):
+    def add_torrent_file(self, filename, torrent, options, torrent_hash):
         torrent_id = False
         try:
             self.connect()
             torrent_id = self.client.core.add_torrent_file(filename, b64encode(torrent), options).get()
             if not torrent_id:
-                torrent_id = self._check_torrent(False, torrent)
+                torrent_id = self._check_torrent(torrent_hash)
         except Exception as err:
             return False
         finally:
@@ -211,23 +210,11 @@ class DelugeRPC(object):
     def disconnect(self):
         self.client.disconnect()
 
-    def _check_torrent(self, magnet, torrent):
-        # Torrent not added, check if it already existed.
-        if magnet:
-            torrent_hash = re.findall('urn:btih:([\w]{32,40})', torrent)[0]
-        else:
-            info = bdecode(torrent)["info"]
-            torrent_hash = sha1(benc(info)).hexdigest()
-
-        # Convert base 32 to hex
-        if len(torrent_hash) == 32:
-            torrent_hash = b16encode(b32decode(torrent_hash))
-
-        torrent_hash = torrent_hash.lower()
-        torrent_check = self.client.core.get_torrent_status(torrent_hash, {}).get()
-        if torrent_check['hash']:
+    def _check_torrent(self, torrent_hash):
+        torrent_id = self.client.core.get_torrent_status(torrent_hash, {}).get()
+        if torrent_id['hash']:
+            logger.log('DelugeD: Torrent already exists in Deluge', logger.DEBUG)
             return torrent_hash
-
         return False
 
 api = DelugeDAPI()
diff --git a/sickbeard/common.py b/sickbeard/common.py
index 34f9fad114c4fae7b6b1529e96619f16b8c3b099..ebed6f136983aa5d7e82944b8a9605829d29e9c4 100644
--- a/sickbeard/common.py
+++ b/sickbeard/common.py
@@ -118,6 +118,9 @@ class Quality:
     FULLHDWEBDL = 1 << 6  # 64 -- 1080p web-dl
     HDBLURAY = 1 << 7  # 128
     FULLHDBLURAY = 1 << 8  # 256
+    ANYHDTV = HDTV | FULLHDTV  # 20
+    ANYWEBDL = HDWEBDL | FULLHDWEBDL  # 96
+    ANYBLURAY = HDBLURAY | FULLHDBLURAY  # 384
 
     # put these bits at the other end of the spectrum, far enough out that they shouldn't interfere
     UNKNOWN = 1 << 15  # 32768
@@ -126,7 +129,7 @@ class Quality:
                       UNKNOWN: "Unknown",
                       SDTV: "SDTV",
                       SDDVD: "SD DVD",
-                      HDTV: "HDTV",
+                      HDTV: "720p HDTV",
                       RAWHDTV: "RawHD",
                       FULLHDTV: "1080p HDTV",
                       HDWEBDL: "720p WEB-DL",
@@ -134,6 +137,25 @@ class Quality:
                       HDBLURAY: "720p BluRay",
                       FULLHDBLURAY: "1080p BluRay"}
 
+    combinedQualityStrings = {ANYHDTV: "HDTV",
+                              ANYWEBDL: "WEB-DL",
+                              ANYBLURAY: "BluRay"}
+
+    cssClassStrings = {NONE: "N/A",
+                       UNKNOWN: "Unknown",
+                       SDTV: "SDTV",
+                       SDDVD: "SDDVD",
+                       HDTV: "HD720p",
+                       RAWHDTV: "RawHD",
+                       FULLHDTV: "HD1080p",
+                       HDWEBDL: "HD720p",
+                       FULLHDWEBDL: "HD1080p",
+                       HDBLURAY: "HD720p",
+                       FULLHDBLURAY: "HD1080p",
+                       ANYHDTV: "any-hd",
+                       ANYWEBDL: "any-hd",
+                       ANYBLURAY: "any-hd"}
+
     statusPrefixes = {DOWNLOADED: "Downloaded",
                       SNATCHED: "Snatched",
                       SNATCHED_PROPER: "Snatched (Proper)",
@@ -182,17 +204,9 @@ class Quality:
         if quality != Quality.UNKNOWN:
             return quality
 
-        name = os.path.basename(name)
-
-        # if we have our exact text then assume we put it there
-        for x in sorted(Quality.qualityStrings.keys(), reverse=True):
-            if x == Quality.UNKNOWN or x == Quality.NONE:
-                continue
-
-            regex = '\W' + Quality.qualityStrings[x].replace(' ', '\W') + '\W'
-            regex_match = re.search(regex, name, re.I)
-            if regex_match:
-                return x
+        quality = Quality.assumeQuality(name)
+        if quality != Quality.UNKNOWN:
+            return quality
 
         return Quality.UNKNOWN
 
@@ -232,27 +246,27 @@ class Quality:
             else:
                 return Quality.UNKNOWN
 
-        if checkName(["(pdtv|hdtv|dsr|tvrip).(xvid|x264|h.?264)"], all) and not checkName(["(720|1080)[pi]"], all) and\
-                not checkName(["hr.ws.pdtv.x264"], any):
+        if checkName(["(pdtv|hdtv|dsr|tvrip).(xvid|x26[45]|h.?26[45])"], all) and not checkName(["(720|1080)[pi]"], all) and\
+                not checkName(["hr.ws.pdtv.x26[45]"], any):
             return Quality.SDTV
-        elif checkName(["web.dl|webrip", "xvid|x264|h.?264"], all) and not checkName(["(720|1080)[pi]"], all):
+        elif checkName(["web.dl|webrip", "xvid|x26[45]|h.?26[45]"], all) and not checkName(["(720|1080)[pi]"], all):
             return Quality.SDTV
-        elif checkName(["(dvdrip|b[rd]rip|blue?-?ray)(.ws)?.(xvid|divx|x264)"], any) and not checkName(["(720|1080)[pi]"], all):
+        elif checkName(["(dvdrip|b[rd]rip|blue?-?ray)(.ws)?.(xvid|divx|x26[45])"], any) and not checkName(["(720|1080)[pi]"], all):
             return Quality.SDDVD
-        elif checkName(["720p", "hdtv", "x264"], all) or checkName(["hr.ws.pdtv.x264"], any) and not checkName(
+        elif checkName(["720p", "hdtv", "x26[45]"], all) or checkName(["hr.ws.pdtv.x26[45]"], any) and not checkName(
                 ["1080[pi]"], all):
             return Quality.HDTV
-        elif checkName(["720p|1080i", "hdtv", "mpeg-?2"], all) or checkName(["1080[pi].hdtv", "h.?264"], all):
+        elif checkName(["720p|1080i", "hdtv", "mpeg-?2"], all) or checkName(["1080[pi].hdtv", "h.?26[45]"], all):
             return Quality.RAWHDTV
-        elif checkName(["1080p", "hdtv", "x264"], all):
+        elif checkName(["1080p", "hdtv", "x26[45]"], all):
             return Quality.FULLHDTV
-        elif checkName(["720p", "web.dl|webrip"], all) or checkName(["720p", "itunes", "h.?264"], all):
+        elif checkName(["720p", "web.dl|webrip"], all) or checkName(["720p", "itunes", "h.?26[45]"], all):
             return Quality.HDWEBDL
-        elif checkName(["1080p", "web.dl|webrip"], all) or checkName(["1080p", "itunes", "h.?264"], all):
+        elif checkName(["1080p", "web.dl|webrip"], all) or checkName(["1080p", "itunes", "h.?26[45]"], all):
             return Quality.FULLHDWEBDL
-        elif checkName(["720p", "blue?-?ray|hddvd|b[rd]rip", "x264"], all):
+        elif checkName(["720p", "blue?-?ray|hddvd|b[rd]rip", "x26[45]"], all):
             return Quality.HDBLURAY
-        elif checkName(["1080p", "blue?-?ray|hddvd|b[rd]rip", "x264"], all):
+        elif checkName(["1080p", "blue?-?ray|hddvd|b[rd]rip", "x26[45]"], all):
             return Quality.FULLHDBLURAY
         else:
             return Quality.UNKNOWN
@@ -263,9 +277,7 @@ class Quality:
         if quality != Quality.UNKNOWN:
             return quality
 
-        if name.lower().endswith((".avi", ".mp4")):
-            return Quality.SDTV
-        elif name.lower().endswith(".ts"):
+        if name.lower().endswith(".ts"):
             return Quality.RAWHDTV
         else:
             return Quality.UNKNOWN
@@ -290,7 +302,10 @@ class Quality:
             metadata = None
             pass
 
-        del parser
+        try:
+            parser.stream._input.close()
+        except:
+            pass
 
         if not metadata:
             return Quality.UNKNOWN
@@ -305,8 +320,6 @@ class Quality:
                     if metagroup.has('height'):
                         height = int(metagroup.get('height') or 0)
 
-        del metadata
-
         if not height:
             return Quality.UNKNOWN
 
diff --git a/sickbeard/exceptions.py b/sickbeard/exceptions.py
index 58fc9df2878ad081b752a2de6235e2b5d6880757..b1040043fa2e3bcb06981b759a1cc95715337978 100644
--- a/sickbeard/exceptions.py
+++ b/sickbeard/exceptions.py
@@ -119,6 +119,8 @@ class CantRefreshException(SickBeardException):
 class CantUpdateException(SickBeardException):
     "The show can't be updated right now"
 
+class CantRemoveException(SickBeardException):
+    "The show can't be removed right now"
 
 class PostProcessingFailed(SickBeardException):
     "Post-processing the episode failed"
diff --git a/sickbeard/helpers.py b/sickbeard/helpers.py
index 966372fdcd6cd77e14cedd30a35fee21a84ef467..e41f48b4bc43e41c4bea7289ba09736e60893b55 100644
--- a/sickbeard/helpers.py
+++ b/sickbeard/helpers.py
@@ -145,6 +145,7 @@ def remove_non_release_groups(name):
                        '\[silv4\]$':       'searchre',
                        '\[Seedbox\]$':     'searchre',
                        '\[AndroidTwoU\]$': 'searchre',
+                       '\.\[BT\]$': 'searchre',
                        ' \[1044\]$':       'searchre',
                        '\.RiPSaLoT$':      'searchre',
                        '\.GiuseppeTnT$':   'searchre',
diff --git a/sickbeard/providers/alpharatio.py b/sickbeard/providers/alpharatio.py
index 3e9fcce6a30187744756e603f9e11dd703683cec..5cb040fd6733417d70fb1a671404094a4e112338 100644
--- a/sickbeard/providers/alpharatio.py
+++ b/sickbeard/providers/alpharatio.py
@@ -142,7 +142,7 @@ class AlphaRatioProvider(generic.TorrentProvider):
                 search_string['Episode'].append(ep_string)
         else:
             for show_name in set(show_name_helpers.allPossibleShowNames(self.show)):
-                ep_string = show_name_helpers.sanitizeSceneName(show_name) + ' ' + \
+                ep_string = sanitizeSceneName(show_name) + ' ' + \
                             sickbeard.config.naming_ep_type[2] % {'seasonnumber': ep_obj.scene_season,
                                                                   'episodenumber': ep_obj.scene_episode} + ' %s' % add_string
 
diff --git a/sickbeard/providers/bitsoup.py b/sickbeard/providers/bitsoup.py
index 8805bbc3dcb2e7316c5a49539aad1bf68a26f781..f6f24bbe525e54b5ba11c066b97af36fcc0d4165 100644
--- a/sickbeard/providers/bitsoup.py
+++ b/sickbeard/providers/bitsoup.py
@@ -142,7 +142,7 @@ class BitSoupProvider(generic.TorrentProvider):
                 search_string['Episode'].append(ep_string)
         else:
             for show_name in set(show_name_helpers.allPossibleShowNames(self.show)):
-                ep_string = show_name_helpers.sanitizeSceneName(show_name) + ' ' + \
+                ep_string = sanitizeSceneName(show_name) + ' ' + \
                             sickbeard.config.naming_ep_type[2] % {'seasonnumber': ep_obj.scene_season,
                                                                   'episodenumber': ep_obj.scene_episode} + ' %s' % add_string
 
diff --git a/sickbeard/providers/bluetigers.py b/sickbeard/providers/bluetigers.py
index bd711e185a8623966956feb500084edd30ee87a0..4afa66425632f482190a52e5dc5ffc6817a3b4e9 100644
--- a/sickbeard/providers/bluetigers.py
+++ b/sickbeard/providers/bluetigers.py
@@ -73,13 +73,13 @@ class BLUETIGERSProvider(generic.TorrentProvider):
         quality = Quality.sceneQuality(item[0], anime)
         return quality
 
-    def _doLogin(self):      
+    def _doLogin(self):
 
 
         if any(requests.utils.dict_from_cookiejar(self.session.cookies).values()):
             return True
 
-      
+
         login_params = {'username': self.username,
                             'password': self.password,
                             'take_login' : '1'
@@ -97,9 +97,9 @@ class BLUETIGERSProvider(generic.TorrentProvider):
 
         if re.search('/account-logout.php', response.text):
             logger.log(u'Login to ' + self.name + ' was successful.', logger.DEBUG)
-            return True                
+            return True
         else:
-            logger.log(u'Login to ' + self.name + ' was unsuccessful.', logger.DEBUG)                
+            logger.log(u'Login to ' + self.name + ' was unsuccessful.', logger.DEBUG)
             return False
 
         return True
@@ -144,7 +144,7 @@ class BLUETIGERSProvider(generic.TorrentProvider):
                 search_string['Episode'].append(ep_string)
         else:
             for show_name in set(show_name_helpers.allPossibleShowNames(self.show)):
-                ep_string = show_name_helpers.sanitizeSceneName(show_name) + '.' + \
+                ep_string = sanitizeSceneName(show_name) + '.' + \
                             sickbeard.config.naming_ep_type[2] % {'seasonnumber': ep_obj.scene_season,
                                                                   'episodenumber': ep_obj.scene_episode} + ' %s' % add_string
 
@@ -166,11 +166,11 @@ class BLUETIGERSProvider(generic.TorrentProvider):
                 if isinstance(search_string, unicode):
                     search_string = unidecode(search_string)
 
-                
+
                 searchURL = self.urls['search'] % (urllib.quote(search_string), self.categories)
 
                 logger.log(u"Search string: " + searchURL, logger.DEBUG)
-                                
+
                 data = self.getURL(searchURL)
                 if not data:
                     continue
@@ -178,20 +178,20 @@ class BLUETIGERSProvider(generic.TorrentProvider):
                 try:
                     with BS4Parser(data, features=["html5lib", "permissive"]) as html:
                         result_linkz = html.findAll('a',  href=re.compile("torrents-details"))
-        
+
                         if not result_linkz:
                             logger.log(u"The Data returned from " + self.name + " do not contains any torrent",
                                        logger.DEBUG)
                             continue
-                        
+
                         if result_linkz:
-                            for link in result_linkz:                                                                                                                               
+                            for link in result_linkz:
                                 title = link.text
-                                logger.log(u"BLUETIGERS TITLE TEMP: " + title, logger.DEBUG)                   
-                                download_url =   self.urls['base_url']  + "/" + link['href'] 
-                                download_url = download_url.replace("torrents-details","download")             
+                                logger.log(u"BLUETIGERS TITLE TEMP: " + title, logger.DEBUG)
+                                download_url =   self.urls['base_url']  + "/" + link['href']
+                                download_url = download_url.replace("torrents-details","download")
                                 logger.log(u"BLUETIGERS downloadURL: " + download_url, logger.DEBUG)
-        
+
                                 if not title or not download_url:
                                    continue
 
diff --git a/sickbeard/providers/btdigg.py b/sickbeard/providers/btdigg.py
index 2b63a96d5e7f05d93dc3a24db26fde39892bdd63..944d102b70ee5a0ba0a3dc27514339c4f31aa486 100644
--- a/sickbeard/providers/btdigg.py
+++ b/sickbeard/providers/btdigg.py
@@ -30,6 +30,7 @@ from sickbeard import db
 from sickbeard.common import WANTED
 from sickbeard.exceptions import ex
 from sickbeard.config import naming_ep_type
+from sickbeard.helpers import sanitizeSceneName
 
 class BTDIGGProvider(generic.TorrentProvider):
 
@@ -78,10 +79,10 @@ class BTDIGGProvider(generic.TorrentProvider):
         for sqlEp in sqlResults:
             for show_name in set(show_name_helpers.allPossibleShowNames(show)):
                 if show.air_by_date:
-                    ep_string = show_name_helpers.sanitizeSceneName(show_name) +' '+ str(datetime.date.fromordinal(sqlEp["airdate"])).replace('-', '.')
+                    ep_string = sanitizeSceneName(show_name) +' '+ str(datetime.date.fromordinal(sqlEp["airdate"])).replace('-', '.')
                     search_string.append(ep_string)
                 else:
-                    ep_string = show_name_helpers.sanitizeSceneName(show_name) + ' S%02d' % sqlEp["season"]
+                    ep_string = sanitizeSceneName(show_name) + ' S%02d' % sqlEp["season"]
                     search_string.append(ep_string)
 
         return search_string
@@ -95,7 +96,7 @@ class BTDIGGProvider(generic.TorrentProvider):
         search_string = []
 
         for show_name in set(show_name_helpers.allPossibleShowNames(ep_obj.show)):
-            ep_string = show_name_helpers.sanitizeSceneName(show_name)
+            ep_string = sanitizeSceneName(show_name)
             if ep_obj.show.air_by_date:
                 ep_string += ' ' + str(ep_obj.airdate).replace('-', '.')
             else:
diff --git a/sickbeard/providers/cpasbien.py b/sickbeard/providers/cpasbien.py
index ad4a0b43ebff34d257445dbccac0d8aee531ff51..70bbc0244615d3f39b7c7cf887fb84988613b705 100644
--- a/sickbeard/providers/cpasbien.py
+++ b/sickbeard/providers/cpasbien.py
@@ -103,7 +103,7 @@ class CpasbienProvider(generic.TorrentProvider):
                 search_string['Episode'].append(ep_string)
         else:
             for show_name in set(show_name_helpers.allPossibleShowNames(self.show)):
-                ep_string = show_name_helpers.sanitizeSceneName(show_name) + '.' + \
+                ep_string = sanitizeSceneName(show_name) + '.' + \
                             sickbeard.config.naming_ep_type[2] % {'seasonnumber': ep_obj.scene_season,
                                                                   'episodenumber': ep_obj.scene_episode} + ' %s' % add_string
 
diff --git a/sickbeard/providers/fnt.py b/sickbeard/providers/fnt.py
index dc3092067bc1fabaf91f92ab862b61ca14e592ac..28fa138c66ee52868c8cf90021a5b206e5846ed0 100644
--- a/sickbeard/providers/fnt.py
+++ b/sickbeard/providers/fnt.py
@@ -143,7 +143,7 @@ class FNTProvider(generic.TorrentProvider):
                 search_string['Episode'].append(ep_string)
         else:
             for show_name in set(show_name_helpers.allPossibleShowNames(self.show)):
-                ep_string = show_name_helpers.sanitizeSceneName(show_name) + '.' + \
+                ep_string = sanitizeSceneName(show_name) + '.' + \
                             sickbeard.config.naming_ep_type[2] % {'seasonnumber': ep_obj.scene_season,
                                                                   'episodenumber': ep_obj.scene_episode} + ' %s' % add_string
 
diff --git a/sickbeard/providers/frenchtorrentdb.py b/sickbeard/providers/frenchtorrentdb.py
index 13b78f3418c7a3104a134d3c904baa0ecd4f3b1e..1611a3cf2d27352060c92f0d369117f6e329d581 100644
--- a/sickbeard/providers/frenchtorrentdb.py
+++ b/sickbeard/providers/frenchtorrentdb.py
@@ -161,7 +161,7 @@ class FrenchTorrentDBProvider(generic.TorrentProvider):
                 search_string['Episode'].append(ep_string)
         else:
             for show_name in set(show_name_helpers.allPossibleShowNames(self.show)):
-                ep_string = show_name_helpers.sanitizeSceneName(show_name) + '.' + \
+                ep_string = sanitizeSceneName(show_name) + '.' + \
                             sickbeard.config.naming_ep_type[2] % {'seasonnumber': ep_obj.scene_season,
                                                                   'episodenumber': ep_obj.scene_episode} + ' %s' % add_string
 
diff --git a/sickbeard/providers/freshontv.py b/sickbeard/providers/freshontv.py
index 36c4f1f009ef6357822aca759d99f57842483d4f..2f3a9b277ea19b979877b9f3fdb9a0696a158108 100644
--- a/sickbeard/providers/freshontv.py
+++ b/sickbeard/providers/freshontv.py
@@ -176,7 +176,7 @@ class FreshOnTVProvider(generic.TorrentProvider):
                 search_string['Episode'].append(ep_string)
         else:
             for show_name in set(show_name_helpers.allPossibleShowNames(self.show)):
-                ep_string = show_name_helpers.sanitizeSceneName(show_name) + ' ' + \
+                ep_string = sanitizeSceneName(show_name) + ' ' + \
                             sickbeard.config.naming_ep_type[2] % {'seasonnumber': ep_obj.scene_season,
                                                                   'episodenumber': ep_obj.scene_episode} + ' %s' % add_string
 
diff --git a/sickbeard/providers/hdtorrents.py b/sickbeard/providers/hdtorrents.py
index 1989fbc43ea316b37ecc181a50c055dfd747a12e..82900b55ca36c5bd5b2bc55b29fb321e4a423d9d 100644
--- a/sickbeard/providers/hdtorrents.py
+++ b/sickbeard/providers/hdtorrents.py
@@ -136,7 +136,7 @@ class HDTorrentsProvider(generic.TorrentProvider):
                 ep_string = sanitizeSceneName(show_name) + ' ' + \
                             "%i" % int(ep_obj.scene_absolute_number)
             else:
-                ep_string = show_name_helpers.sanitizeSceneName(show_name) + ' ' + \
+                ep_string = sanitizeSceneName(show_name) + ' ' + \
                             sickbeard.config.naming_ep_type[2] % {'seasonnumber': ep_obj.scene_season,
                                                                   'episodenumber': ep_obj.scene_episode}
             if add_string:
diff --git a/sickbeard/providers/hounddawgs.py b/sickbeard/providers/hounddawgs.py
index f906e57ed79a2e6a55fb5943aabb1e50394304d7..285a9e675120318a195a8f7c7752814e5b12cd7b 100644
--- a/sickbeard/providers/hounddawgs.py
+++ b/sickbeard/providers/hounddawgs.py
@@ -143,7 +143,7 @@ class HoundDawgsProvider(generic.TorrentProvider):
                 search_string['Episode'].append(ep_string)
         else:
             for show_name in set(show_name_helpers.allPossibleShowNames(self.show)):
-                ep_string = show_name_helpers.sanitizeSceneName(show_name) + ' ' + \
+                ep_string = sanitizeSceneName(show_name) + ' ' + \
                             sickbeard.config.naming_ep_type[2] % {'seasonnumber': ep_obj.scene_season,
                                                                   'episodenumber': ep_obj.scene_episode}
 
diff --git a/sickbeard/providers/iptorrents.py b/sickbeard/providers/iptorrents.py
index d8eaf5dea334d95f4f00931c9ff9d4cb0b3ae0b0..f81b994dea260a0cac5a81e511478d6eca2f9e3c 100644
--- a/sickbeard/providers/iptorrents.py
+++ b/sickbeard/providers/iptorrents.py
@@ -132,7 +132,7 @@ class IPTorrentsProvider(generic.TorrentProvider):
                 search_string['Episode'].append(ep_string)
         else:
             for show_name in set(show_name_helpers.allPossibleShowNames(self.show)):
-                ep_string = show_name_helpers.sanitizeSceneName(show_name) + ' ' + \
+                ep_string = sanitizeSceneName(show_name) + ' ' + \
                             sickbeard.config.naming_ep_type[2] % {'seasonnumber': ep_obj.scene_season,
                                                                   'episodenumber': ep_obj.scene_episode} + '|' + \
                             sickbeard.config.naming_ep_type[0] % {'seasonnumber': ep_obj.scene_season,
diff --git a/sickbeard/providers/kat.py b/sickbeard/providers/kat.py
index dc5898fc9fbbbd6f2e0d1fa363985e2ba6668f3c..80d85e8918e407cd3254adc57ef86a9bb941047e 100644
--- a/sickbeard/providers/kat.py
+++ b/sickbeard/providers/kat.py
@@ -65,102 +65,6 @@ class KATProvider(generic.TorrentProvider):
     def imageName(self):
         return 'kat.png'
 
-    def getQuality(self, item, anime=False):
-
-        quality = Quality.sceneQuality(item[0], anime)
-        return quality
-
-    def _reverseQuality(self, quality):
-
-        quality_string = ''
-
-        if quality == Quality.SDTV:
-            quality_string = 'HDTV x264'
-        if quality == Quality.SDDVD:
-            quality_string = 'DVDRIP'
-        elif quality == Quality.HDTV:
-            quality_string = '720p HDTV x264'
-        elif quality == Quality.FULLHDTV:
-            quality_string = '1080p HDTV x264'
-        elif quality == Quality.RAWHDTV:
-            quality_string = '1080i HDTV mpeg2'
-        elif quality == Quality.HDWEBDL:
-            quality_string = '720p WEB-DL h264'
-        elif quality == Quality.FULLHDWEBDL:
-            quality_string = '1080p WEB-DL h264'
-        elif quality == Quality.HDBLURAY:
-            quality_string = '720p Bluray x264'
-        elif quality == Quality.FULLHDBLURAY:
-            quality_string = '1080p Bluray x264'
-
-        return quality_string
-
-    def _find_season_quality(self, title, torrent_link, ep_number):
-        """ Return the modified title of a Season Torrent with the quality found inspecting torrent file list """
-
-        mediaExtensions = ['avi', 'mkv', 'wmv', 'divx',
-                           'vob', 'dvr-ms', 'wtv', 'ts'
-                                                   'ogv', 'rar', 'zip', 'mp4']
-
-        quality = Quality.UNKNOWN
-
-        fileName = None
-
-        data = self.getURL(torrent_link)
-        if not data:
-            return None
-
-        try:
-            with BS4Parser(data, features=["html5lib", "permissive"]) as soup:
-                file_table = soup.find('table', attrs={'class': 'torrentFileList'})
-
-                if not file_table:
-                    return None
-
-                files = [x.text for x in file_table.find_all('td', attrs={'class': 'torFileName'})]
-                videoFiles = filter(lambda x: x.rpartition(".")[2].lower() in mediaExtensions, files)
-
-                #Filtering SingleEpisode/MultiSeason Torrent
-                if len(videoFiles) < ep_number or len(videoFiles) > float(ep_number * 1.1):
-                    logger.log(u"Result " + title + " have " + str(
-                        ep_number) + " episode and episodes retrived in torrent are " + str(len(videoFiles)), logger.DEBUG)
-                    logger.log(
-                        u"Result " + title + " Seem to be a Single Episode or MultiSeason torrent, skipping result...",
-                        logger.DEBUG)
-                    return None
-
-                if Quality.sceneQuality(title) != Quality.UNKNOWN:
-                    return title
-
-                for fileName in videoFiles:
-                    quality = Quality.sceneQuality(os.path.basename(fileName))
-                    if quality != Quality.UNKNOWN: break
-
-                #if fileName is not None and quality == Quality.UNKNOWN:
-                #    quality = Quality.assumeQuality(fileName)
-
-                if quality == Quality.UNKNOWN:
-                    logger.log(u"Unable to obtain a Season Quality for " + title, logger.DEBUG)
-                    return None
-
-                try:
-                    myParser = NameParser(showObj=self.show)
-                    parse_result = myParser.parse(fileName)
-                except (InvalidNameException, InvalidShowException):
-                    return None
-
-                logger.log(u"Season quality for " + title + " is " + Quality.qualityStrings[quality], logger.DEBUG)
-
-                if parse_result.series_name and parse_result.season_number:
-                    title = parse_result.series_name + ' S%02d' % int(
-                        parse_result.season_number) + ' ' + self._reverseQuality(quality)
-
-                return title
-
-        except Exception, e:
-            logger.log(u"Failed parsing " + self.name + " Traceback: " + traceback.format_exc(), logger.ERROR)
-
-
     def _get_season_search_strings(self, ep_obj):
         search_string = {'Season': []}
 
@@ -203,13 +107,11 @@ class KATProvider(generic.TorrentProvider):
 
         return [search_string]
 
-
     def _get_size(self, item):
         title, url, id, seeders, leechers, size, pubdate = item
         return size or -1
 
     def _doSearch(self, search_params, search_mode='eponly', epcount=0, age=0, epObj=None):
-
         results = []
         items = {'Season': [], 'Episode': [], 'RSS': []}
 
@@ -244,16 +146,9 @@ class KATProvider(generic.TorrentProvider):
                             continue
 
                         if self.confirmed and not verified:
-                            logger.log(
-                                u"KAT Provider found result " + title + " but that doesn't seem like a verified result so I'm ignoring it",
-                                logger.DEBUG)
+                            logger.log(u"KAT Provider found result " + title + " but that doesn't seem like a verified result so I'm ignoring it", logger.DEBUG)
                             continue
 
-                        #Check number video files = episode in season and find the real Quality for full season torrent analyzing files in torrent
-                        if mode == 'Season' and search_mode == 'sponly':
-                            ep_number = int(epcount / len(set(allPossibleShowNames(self.show))))
-                            title = self._find_season_quality(title, link, ep_number)
-
                         if not title or not url:
                             continue
 
@@ -287,7 +182,6 @@ class KATProvider(generic.TorrentProvider):
         return results
 
     def _get_title_and_url(self, item):
-
         title, url, id, seeders, leechers, size, pubdate = item
 
         if title:
@@ -299,7 +193,6 @@ class KATProvider(generic.TorrentProvider):
         return (title, url)
 
     def findPropers(self, search_date=datetime.datetime.today()):
-
         results = []
 
         myDB = db.DBConnection()
diff --git a/sickbeard/providers/libertalia.py b/sickbeard/providers/libertalia.py
index 4670b11de0c5eb43f55e2315d688271de20846f7..9f558b22f0cb4982fd0488ab202a669476db1668 100644
--- a/sickbeard/providers/libertalia.py
+++ b/sickbeard/providers/libertalia.py
@@ -113,7 +113,7 @@ class LibertaliaProvider(generic.TorrentProvider):
                 search_string['Episode'].append(ep_string)
         else:
             for show_name in set(show_name_helpers.allPossibleShowNames(self.show)):
-                ep_string = show_name_helpers.sanitizeSceneName(show_name) + '.' + \
+                ep_string = sanitizeSceneName(show_name) + '.' + \
                             sickbeard.config.naming_ep_type[2] % {'seasonnumber': ep_obj.scene_season,
                                                                   'episodenumber': ep_obj.scene_episode} + ' %s' % add_string
 
diff --git a/sickbeard/providers/morethantv.py b/sickbeard/providers/morethantv.py
index d1a452f86e29018e7418b0e1692e4d09f9b4c39e..1ca452a155ad7fcf835a43f7063c4a4d9aabba27 100644
--- a/sickbeard/providers/morethantv.py
+++ b/sickbeard/providers/morethantv.py
@@ -158,7 +158,7 @@ class MoreThanTVProvider(generic.TorrentProvider):
                 search_string['Episode'].append(ep_string)
         else:
             for show_name in set(show_name_helpers.allPossibleShowNames(self.show)):
-                ep_string = show_name_helpers.sanitizeSceneName(show_name) + ' ' + \
+                ep_string = sanitizeSceneName(show_name) + ' ' + \
                             sickbeard.config.naming_ep_type[2] % {'seasonnumber': ep_obj.scene_season,
                                                                   'episodenumber': ep_obj.scene_episode} + ' %s' % add_string
 
diff --git a/sickbeard/providers/nextgen.py b/sickbeard/providers/nextgen.py
index 8d2640ac2a6e7f9182429dfeb4afccf9db9ef792..2b4e17b95d8f70a9fe8f71de206ef1ca1a8ffc9e 100644
--- a/sickbeard/providers/nextgen.py
+++ b/sickbeard/providers/nextgen.py
@@ -177,7 +177,7 @@ class NextGenProvider(generic.TorrentProvider):
                 search_string['Episode'].append(ep_string)
         else:
             for show_name in set(show_name_helpers.allPossibleShowNames(self.show)):
-                ep_string = show_name_helpers.sanitizeSceneName(show_name) + ' ' + \
+                ep_string = sanitizeSceneName(show_name) + ' ' + \
                             sickbeard.config.naming_ep_type[2] % {'seasonnumber': ep_obj.scene_season,
                                                                   'episodenumber': ep_obj.scene_episode} + ' %s' % add_string
 
diff --git a/sickbeard/providers/rarbg.py b/sickbeard/providers/rarbg.py
index b8236fbba3a66a486947461b92ae85796c7c94b1..3a32bbaaeb8e292fdc0ef8cb5490e51b7a20461f 100644
--- a/sickbeard/providers/rarbg.py
+++ b/sickbeard/providers/rarbg.py
@@ -83,7 +83,7 @@ class RarbgProvider(generic.TorrentProvider):
                         'ranked': '&ranked={ranked}',
                         'token': '&token={token}',
         }
-        
+
         self.defaultOptions = self.urlOptions['categories'].format(categories='tv') + \
                                 self.urlOptions['limit'].format(limit='100') + \
                                 self.urlOptions['format'].format(format='json')
@@ -91,7 +91,7 @@ class RarbgProvider(generic.TorrentProvider):
         self.next_request = datetime.datetime.now()
 
         self.cache = RarbgCache(self)
-        
+
         self.headers = {'User-Agent': USER_AGENT}
 
     def isEnabled(self):
@@ -224,7 +224,7 @@ class RarbgProvider(generic.TorrentProvider):
 
                 if self.minseed:
                     searchURL += self.urlOptions['seeders'].format(min_seeders=int(self.minseed))
-                    
+
                 if self.sorting:
                     searchURL += self.urlOptions['sorting'].format(sorting=self.sorting)
 
diff --git a/sickbeard/providers/scc.py b/sickbeard/providers/scc.py
index 89405fb9ce0ecc35d62f4be06c934aaf3b182e34..bbfe4c715998a1eddc5957dfd31a0c8f4b2b7dbb 100644
--- a/sickbeard/providers/scc.py
+++ b/sickbeard/providers/scc.py
@@ -138,7 +138,7 @@ class SCCProvider(generic.TorrentProvider):
             elif self.show.anime:
                 ep_string = sanitizeSceneName(show_name) + ' %i' % int(ep_obj.scene_absolute_number)
             else:
-                ep_string = show_name_helpers.sanitizeSceneName(show_name) + ' ' + \
+                ep_string = sanitizeSceneName(show_name) + ' ' + \
                         sickbeard.config.naming_ep_type[2] % {'seasonnumber': ep_obj.scene_season,
                                                                   'episodenumber': ep_obj.scene_episode}
 
diff --git a/sickbeard/providers/scenetime.py b/sickbeard/providers/scenetime.py
index 317bc3ff56954684e15a0c80fb2c00a179f25ef7..6cd1511af7642073f35717a3ce88d12005d97f3a 100644
--- a/sickbeard/providers/scenetime.py
+++ b/sickbeard/providers/scenetime.py
@@ -138,7 +138,7 @@ class SceneTimeProvider(generic.TorrentProvider):
                 search_string['Episode'].append(ep_string)
         else:
             for show_name in set(show_name_helpers.allPossibleShowNames(self.show)):
-                ep_string = show_name_helpers.sanitizeSceneName(show_name) + ' ' + \
+                ep_string = sanitizeSceneName(show_name) + ' ' + \
                             sickbeard.config.naming_ep_type[2] % {'seasonnumber': ep_obj.scene_season,
                                                                   'episodenumber': ep_obj.scene_episode} + ' %s' % add_string
 
diff --git a/sickbeard/providers/speedcd.py b/sickbeard/providers/speedcd.py
index 15242804f4918d9b14fc60de5dfd1aea9437eb21..d7e5f37d82a356040d07620bbe952c571b7ed5b9 100644
--- a/sickbeard/providers/speedcd.py
+++ b/sickbeard/providers/speedcd.py
@@ -138,7 +138,7 @@ class SpeedCDProvider(generic.TorrentProvider):
                 search_string['Episode'].append(ep_string)
         else:
             for show_name in set(show_name_helpers.allPossibleShowNames(self.show)):
-                ep_string = show_name_helpers.sanitizeSceneName(show_name) + ' ' + \
+                ep_string = sanitizeSceneName(show_name) + ' ' + \
                             sickbeard.config.naming_ep_type[2] % {'seasonnumber': ep_obj.scene_season,
                                                                   'episodenumber': ep_obj.scene_episode} + ' %s' % add_string
 
@@ -257,4 +257,3 @@ class SpeedCDCache(tvcache.TVCache):
         return {'entries': self.provider._doSearch(search_params)}
 
 provider = SpeedCDProvider()
-
diff --git a/sickbeard/providers/thepiratebay.py b/sickbeard/providers/thepiratebay.py
index 30a40113e2c47b78f5c70351143344dc3f83ff06..3350ed2ae0edf70173760768cc5648074879d4ef 100644
--- a/sickbeard/providers/thepiratebay.py
+++ b/sickbeard/providers/thepiratebay.py
@@ -73,98 +73,6 @@ class ThePirateBayProvider(generic.TorrentProvider):
     def imageName(self):
         return 'thepiratebay.png'
 
-    def getQuality(self, item, anime=False):
-
-        quality = Quality.sceneQuality(item[0], anime)
-        return quality
-
-    def _reverseQuality(self, quality):
-
-        quality_string = ''
-
-        if quality == Quality.SDTV:
-            quality_string = 'HDTV x264'
-        if quality == Quality.SDDVD:
-            quality_string = 'DVDRIP'
-        elif quality == Quality.HDTV:
-            quality_string = '720p HDTV x264'
-        elif quality == Quality.FULLHDTV:
-            quality_string = '1080p HDTV x264'
-        elif quality == Quality.RAWHDTV:
-            quality_string = '1080i HDTV mpeg2'
-        elif quality == Quality.HDWEBDL:
-            quality_string = '720p WEB-DL h264'
-        elif quality == Quality.FULLHDWEBDL:
-            quality_string = '1080p WEB-DL h264'
-        elif quality == Quality.HDBLURAY:
-            quality_string = '720p Bluray x264'
-        elif quality == Quality.FULLHDBLURAY:
-            quality_string = '1080p Bluray x264'
-
-        return quality_string
-
-    def _find_season_quality(self, title, torrent_id, ep_number):
-        """ Return the modified title of a Season Torrent with the quality found inspecting torrent file list """
-
-        mediaExtensions = ['avi', 'mkv', 'wmv', 'divx',
-                           'vob', 'dvr-ms', 'wtv', 'ts'
-                                                   'ogv', 'rar', 'zip', 'mp4']
-
-        quality = Quality.UNKNOWN
-
-        fileName = None
-
-        fileURL = self.url + 'ajax_details_filelist.php?id=' + str(torrent_id)
-        data = self.getURL(fileURL)
-        if not data:
-            return None
-
-        filesList = re.findall('<td.+>(.*?)</td>', data)
-
-        if not filesList:
-            # disabled errormsg for now
-            # logger.log(u"Unable to get the torrent file list for " + title, logger.ERROR)
-            return None
-
-        videoFiles = filter(lambda x: x.rpartition(".")[2].lower() in mediaExtensions, filesList)
-
-        #Filtering SingleEpisode/MultiSeason Torrent
-        if len(videoFiles) < ep_number or len(videoFiles) > float(ep_number * 1.1):
-            logger.log(
-                u"Result " + title + " have " + str(ep_number) + " episode and episodes retrived in torrent are " + str(
-                    len(videoFiles)), logger.DEBUG)
-            logger.log(u"Result " + title + " Seem to be a Single Episode or MultiSeason torrent, skipping result...",
-                       logger.DEBUG)
-            return None
-
-        if Quality.sceneQuality(title) != Quality.UNKNOWN:
-            return title
-
-        for fileName in videoFiles:
-            quality = Quality.sceneQuality(os.path.basename(fileName))
-            if quality != Quality.UNKNOWN: break
-
-        #if fileName is not None and quality == Quality.UNKNOWN:
-        #    quality = Quality.assumeQuality(fileName)
-
-        if quality == Quality.UNKNOWN:
-            logger.log(u"Unable to obtain a Season Quality for " + title, logger.DEBUG)
-            return None
-
-        try:
-            myParser = NameParser(showObj=self.show)
-            parse_result = myParser.parse(fileName)
-        except (InvalidNameException, InvalidShowException):
-            return None
-
-        logger.log(u"Season quality for " + title + " is " + Quality.qualityStrings[quality], logger.DEBUG)
-
-        if parse_result.series_name and parse_result.season_number:
-            title = parse_result.series_name + ' S%02d' % int(parse_result.season_number) + ' ' + self._reverseQuality(
-                quality)
-
-        return title
-
     def _get_season_search_strings(self, ep_obj):
 
         search_string = {'Season': []}
@@ -242,27 +150,22 @@ class ThePirateBayProvider(generic.TorrentProvider):
                 re_title_url = self.proxy._buildRE(self.re_title_url).replace('&amp;f=norefer', '')
                 matches = re.compile(re_title_url, re.DOTALL).finditer(urllib.unquote(data))
                 for torrent in matches:
-                    title = torrent.group('title').replace('_',
-                                                           '.')  #Do not know why but SickBeard skip release with '_' in name
+                    title = torrent.group('title')
                     url = torrent.group('url')
                     id = int(torrent.group('id'))
                     seeders = int(torrent.group('seeders'))
                     leechers = int(torrent.group('leechers'))
+
                     #Filter unseeded torrent
                     if mode != 'RSS' and (seeders < self.minseed or leechers < self.minleech):
                         continue
 
-                        #Accept Torrent only from Good People for every Episode Search
+                    #Accept Torrent only from Good People for every Episode Search
                     if self.confirmed and re.search('(VIP|Trusted|Helper|Moderator)', torrent.group(0)) is None:
                         logger.log(u"ThePirateBay Provider found result " + torrent.group(
                             'title') + " but that doesn't seem like a trusted result so I'm ignoring it", logger.DEBUG)
                         continue
 
-                    #Check number video files = episode in season and find the real Quality for full season torrent analyzing files in torrent
-                    if mode == 'Season' and search_mode == 'sponly':
-                        ep_number = int(epcount / len(set(allPossibleShowNames(self.show))))
-                        title = self._find_season_quality(title, id, ep_number)
-
                     if not title or not url:
                         continue
 
@@ -315,7 +218,7 @@ class ThePirateBayProvider(generic.TorrentProvider):
 
                 for item in self._doSearch(searchString[0]):
                     title, url = self._get_title_and_url(item)
-                    results.append(classes.Proper(title, url, datetime.datetime.today(), self.show))
+                    results.append(classes.Proper(title, url, search_date, self.show))
 
         return results
 
diff --git a/sickbeard/providers/tntvillage.py b/sickbeard/providers/tntvillage.py
index 83e26e084c7ca303d895aceb4fdbc61d842f1c60..bd68139c9f96df7743a5fa07dafc955f50e6af40 100644
--- a/sickbeard/providers/tntvillage.py
+++ b/sickbeard/providers/tntvillage.py
@@ -204,7 +204,7 @@ class TNTVillageProvider(generic.TorrentProvider):
                 search_string['Episode'].append(ep_string)
         else:
             for show_name in set(show_name_helpers.allPossibleShowNames(self.show)):
-                ep_string = show_name_helpers.sanitizeSceneName(show_name) + ' ' + \
+                ep_string = sanitizeSceneName(show_name) + ' ' + \
                             sickbeard.config.naming_ep_type[2] % {'seasonnumber': ep_obj.scene_season,
                                                                   'episodenumber': ep_obj.scene_episode} + ' %s' % add_string
 
diff --git a/sickbeard/providers/torrentbytes.py b/sickbeard/providers/torrentbytes.py
index da39b75453cc83f06495aa3fb7bb356f58a7cb5c..01df268d5177e1f34e9cf0448e49fe2aa5424f95 100644
--- a/sickbeard/providers/torrentbytes.py
+++ b/sickbeard/providers/torrentbytes.py
@@ -139,7 +139,7 @@ class TorrentBytesProvider(generic.TorrentProvider):
                 search_string['Episode'].append(ep_string)
         else:
             for show_name in set(show_name_helpers.allPossibleShowNames(self.show)):
-                ep_string = show_name_helpers.sanitizeSceneName(show_name) + ' ' + \
+                ep_string = sanitizeSceneName(show_name) + ' ' + \
                             sickbeard.config.naming_ep_type[2] % {'seasonnumber': ep_obj.scene_season,
                                                                   'episodenumber': ep_obj.scene_episode} + ' %s' % add_string
 
diff --git a/sickbeard/providers/torrentday.py b/sickbeard/providers/torrentday.py
index b3df3040c6d8460064d847e6db69e5a61b8f1ca2..6cc32bea901ff3fca678b91e61c88413b4bbd194 100644
--- a/sickbeard/providers/torrentday.py
+++ b/sickbeard/providers/torrentday.py
@@ -167,7 +167,7 @@ class TorrentDayProvider(generic.TorrentProvider):
                 search_string['Episode'].append(ep_string)
         else:
             for show_name in set(show_name_helpers.allPossibleShowNames(self.show)):
-                ep_string = show_name_helpers.sanitizeSceneName(show_name) + ' ' + \
+                ep_string = sanitizeSceneName(show_name) + ' ' + \
                             sickbeard.config.naming_ep_type[2] % {'seasonnumber': ep_obj.scene_season,
                                                                   'episodenumber': ep_obj.scene_episode} + ' %s' % add_string
 
diff --git a/sickbeard/providers/torrentleech.py b/sickbeard/providers/torrentleech.py
index 6a2a368d940b28a0d2fd4e6f5d0a5c10850e4ea0..4a94cacf865205a6c736392c74ad24acddb07779 100644
--- a/sickbeard/providers/torrentleech.py
+++ b/sickbeard/providers/torrentleech.py
@@ -145,7 +145,7 @@ class TorrentLeechProvider(generic.TorrentProvider):
                 search_string['Episode'].append(ep_string)
         else:
             for show_name in set(show_name_helpers.allPossibleShowNames(self.show)):
-                ep_string = show_name_helpers.sanitizeSceneName(show_name) + ' ' + \
+                ep_string = sanitizeSceneName(show_name) + ' ' + \
                             sickbeard.config.naming_ep_type[2] % {'seasonnumber': ep_obj.scene_season,
                                                                   'episodenumber': ep_obj.scene_episode} + ' %s' % add_string
 
diff --git a/sickbeard/providers/xthor.py b/sickbeard/providers/xthor.py
index 188c6fd12e6e66e6ab675568e91b7055b0cf48e1..4c5de0527c10ccd9ea7f243bac553b22fd239d0e 100644
--- a/sickbeard/providers/xthor.py
+++ b/sickbeard/providers/xthor.py
@@ -105,7 +105,7 @@ class XthorProvider(generic.TorrentProvider):
                 search_string['Episode'].append(ep_string)
         else:
             for show_name in set(show_name_helpers.allPossibleShowNames(self.show)):
-                ep_string = show_name_helpers.sanitizeSceneName(show_name) + '.' + \
+                ep_string = sanitizeSceneName(show_name) + '.' + \
                             sickbeard.config.naming_ep_type[2] % {'seasonnumber': ep_obj.scene_season,
                                                                   'episodenumber': ep_obj.scene_episode} + ' %s' % add_string
 
diff --git a/sickbeard/show_queue.py b/sickbeard/show_queue.py
index 49a0812e130f2b817387797321bc138c9b45c282..4d2ec47e43af2dfb548f65b4d30d64c696b8f2b4 100644
--- a/sickbeard/show_queue.py
+++ b/sickbeard/show_queue.py
@@ -30,7 +30,8 @@ from sickbeard import generic_queue
 from sickbeard import name_cache
 from sickbeard.exceptions import ex
 from sickbeard.blackandwhitelist import BlackAndWhiteList, short_group_names
-
+from libtrakt import TraktAPI
+from libtrakt.exceptions import traktException, traktServerBusy, traktAuthException
 
 class ShowQueue(generic_queue.GenericQueue):
     def __init__(self):
@@ -38,7 +39,7 @@ class ShowQueue(generic_queue.GenericQueue):
         self.queue_name = "SHOWQUEUE"
 
     def _isInQueue(self, show, actions):
-        return show in [x.show for x in self.queue if x.action_id in actions]
+        return show.indexerid in [x.show.indexerid for x in self.queue if x.action_id in actions]
 
     def _isBeingSomethinged(self, show, actions):
         return self.currentItem != None and show == self.currentItem.show and \
@@ -147,6 +148,19 @@ class ShowQueue(generic_queue.GenericQueue):
 
         return queueItemObj
 
+    def removeShow(self, show, full=False):
+        if self._isInQueue(show, ShowQueueActions.REMOVE):
+            raise sickbeard.exceptions.CantRemoveException("This show is already queued to be removed")
+
+        # remove other queued actions for this show.
+        for x in self.queue:
+            if show.indexerid == x.show.indexerid and x != self.currentItem:
+                self.queue.remove(x)
+
+        queueItemObj = QueueItemRemove(show=show, full=full)
+        self.add_item(queueItemObj)
+
+        return queueItemObj
 
 class ShowQueueActions:
     REFRESH = 1
@@ -155,6 +169,7 @@ class ShowQueueActions:
     FORCEUPDATE = 4
     RENAME = 5
     SUBTITLE = 6
+    REMOVE = 7
 
     names = {REFRESH: 'Refresh',
              ADD: 'Add',
@@ -162,6 +177,7 @@ class ShowQueueActions:
              FORCEUPDATE: 'Force Update',
              RENAME: 'Rename',
              SUBTITLE: 'Subtitle',
+             REMOVE: 'Remove Show'
     }
 
 
@@ -282,12 +298,35 @@ class QueueItemAdd(ShowQueueItem):
                 self._finishEarly()
                 return
         except Exception, e:
-            logger.log(u"Show name with ID %s don't exist in %s anymore. Please change/delete your local .nfo file or remove it from your TRAKT watchlist" %
+            logger.log(u"Show name with ID %s doesn't exist on %s anymore. If you are using trakt, it will be removed from your TRAKT watchlist. If you are adding manually, try removing the nfo and adding again" %
                 (self.indexer_id,sickbeard.indexerApi(self.indexer).name) , logger.ERROR)
+
             ui.notifications.error("Unable to add show",
                                    "Unable to look up the show in " + self.showDir + " on " + str(sickbeard.indexerApi(
                                        self.indexer).name) + " using ID " + str(
                                        self.indexer_id) + ", not using the NFO. Delete .nfo and try adding manually again.")
+
+            if sickbeard.USE_TRAKT and sickbeard.TRAKT_SYNC_WATCHLIST:
+
+                trakt_id = sickbeard.indexerApi(self.indexer).config['trakt_id']
+                trakt_api = TraktAPI(sickbeard.TRAKT_DISABLE_SSL_VERIFY, sickbeard.TRAKT_TIMEOUT)
+
+                title = self.showDir.split("/")[-1]
+                data = {
+                    'shows': [
+                        {
+                            'title': title,
+                            'ids': {}
+                        }
+                    ]
+                }
+                if trakt_id == 'tvdb_id':
+                    data['shows'][0]['ids']['tvdb'] = self.indexer_id
+                else:
+                    data['shows'][0]['ids']['tvrage'] = self.indexer_id
+
+                trakt_api.traktRequest("sync/watchlist/remove", data, method='POST')
+
             self._finishEarly()
             return
 
@@ -409,7 +448,7 @@ class QueueItemAdd(ShowQueueItem):
 
             if sickbeard.TRAKT_SYNC_WATCHLIST:
                 logger.log(u"update watchlist")
-                notifiers.trakt_notifier.update_watchlist(self.show)
+                notifiers.trakt_notifier.update_watchlist(show_obj=self.show)
 
         # Load XEM data to DB for show
         sickbeard.scene_numbering.xem_refresh(self.show.indexerid, self.show.indexer, force=True)
@@ -426,7 +465,7 @@ class QueueItemAdd(ShowQueueItem):
 
     def _finishEarly(self):
         if self.show != None:
-            self.show.deleteShow()
+            sickbeard.showQueueScheduler.action.removeShow(self.show)
 
         self.finish()
 
@@ -455,7 +494,7 @@ class QueueItemRefresh(ShowQueueItem):
         # Load XEM data to DB for show
         sickbeard.scene_numbering.xem_refresh(self.show.indexerid, self.show.indexer)
 
-        self.inProgress = False
+        self.finish()
 
 class QueueItemRename(ShowQueueItem):
     def __init__(self, show=None):
@@ -495,8 +534,7 @@ class QueueItemRename(ShowQueueItem):
         for cur_ep_obj in ep_obj_rename_list:
             cur_ep_obj.rename()
 
-        self.inProgress = False
-
+        self.finish()
 
 class QueueItemSubtitle(ShowQueueItem):
     def __init__(self, show=None):
@@ -508,9 +546,7 @@ class QueueItemSubtitle(ShowQueueItem):
         logger.log(u"Downloading subtitles for " + self.show.name)
 
         self.show.downloadSubtitles()
-
-        self.inProgress = False
-
+        self.finish()
 
 class QueueItemUpdate(ShowQueueItem):
     def __init__(self, show=None):
@@ -598,8 +634,31 @@ class QueueItemUpdate(ShowQueueItem):
         logger.log(u"Finished update of " + self.show.name, logger.DEBUG)
 
         sickbeard.showQueueScheduler.action.refreshShow(self.show, self.force)
+        self.finish()
 
 class QueueItemForceUpdate(QueueItemUpdate):
     def __init__(self, show=None):
         ShowQueueItem.__init__(self, ShowQueueActions.FORCEUPDATE, show)
         self.force = True
+
+class QueueItemRemove(ShowQueueItem):
+    def __init__(self, show=None, full=False):
+        ShowQueueItem.__init__(self, ShowQueueActions.REMOVE, show)
+
+        # lets make sure this happens before any other high priority actions
+        self.priority = generic_queue.QueuePriorities.HIGH + generic_queue.QueuePriorities.HIGH
+        self.full = full
+
+    def run(self):
+        ShowQueueItem.run(self)
+        logger.log(u"Removing %s" % self.show.name)
+        self.show.deleteShow(full=self.full)
+
+        if sickbeard.USE_TRAKT and sickbeard.TRAKT_SYNC:
+            try:
+                sickbeard.traktCheckerScheduler.action.removeShowFromTraktLibrary(self.show)
+            except Exception as e:
+                logger.log(u"Unable to delete show from Trakt: %s. Error: %s" % (showObj.name, ex(e)),logger.WARNING)
+                pass
+
+        self.finish()
diff --git a/sickbeard/traktChecker.py b/sickbeard/traktChecker.py
index 2dd8bf67eb218bb5a649afe43c3d94cf7caa5236..6c3ab121def28934f200688b9087e0fb9eb9a2ce 100644
--- a/sickbeard/traktChecker.py
+++ b/sickbeard/traktChecker.py
@@ -70,7 +70,7 @@ class TraktChecker():
         self.amActive = False
 
     def run(self, force=False):
-        
+
         self.amActive = True
 
         # add shows from trakt.tv watchlist
@@ -90,7 +90,7 @@ class TraktChecker():
                 self.syncLibrary()
             except Exception:
                 logger.log(traceback.format_exc(), logger.DEBUG)
-                
+
         self.amActive = False
 
     def findShow(self, indexer, indexerid):
@@ -320,7 +320,7 @@ class TraktChecker():
         if sickbeard.TRAKT_SYNC_WATCHLIST and sickbeard.USE_TRAKT and sickbeard.TRAKT_REMOVE_SHOW_FROM_SICKRAGE:
             logger.log(u"SHOW_SICKRAGE::REMOVE::START - Look for Shows to remove from SickRage", logger.DEBUG)
 
-            if sickbeard.showList is not None:
+            if sickbeard.showList:
                 for show in sickbeard.showList:
                     if show.status == "Ended":
                         try:
@@ -330,7 +330,7 @@ class TraktChecker():
                             return
 
                         if 'aired' in progress and 'completed' in progress and progress['aired'] == progress['completed']:
-                            show.deleteShow(full=True)
+                            sickbeard.showQueueScheduler.action.removeShow(show, full=True)
                             logger.log(u"Show: " + show.name + " has been removed from SickRage", logger.DEBUG)
 
             logger.log(u"SHOW_SICKRAGE::REMOVE::FINISH - Trakt Show Watchlist", logger.DEBUG)
diff --git a/sickbeard/webapi.py b/sickbeard/webapi.py
index 97a2ea7018a298bbd3fa481073715039013a658d..7d045c7e43978e51e2e7f536ab462f96b043b6f0 100644
--- a/sickbeard/webapi.py
+++ b/sickbeard/webapi.py
@@ -2360,17 +2360,12 @@ class CMD_ShowDelete(ApiCall):
         if not showObj:
             return _responds(RESULT_FAILURE, msg="Show not found")
 
-        if sickbeard.showQueueScheduler.action.isBeingAdded(
-                showObj) or sickbeard.showQueueScheduler.action.isBeingUpdated(showObj):  # @UndefinedVariable
-            return _responds(RESULT_FAILURE, msg="Show can not be deleted while being added or updated")
-
-        if sickbeard.USE_TRAKT and sickbeard.TRAKT_SYNC:
-            # remove show from trakt.tv library
-            sickbeard.traktCheckerScheduler.action.removeShowFromTraktLibrary(showObj)
-
-        showObj.deleteShow(bool(self.removefiles))
+        try:
+            sickbeard.showQueueScheduler.action.removeShow(showObj, bool(self.removefiles))
+        except sickbeard.exceptions.CantRemoveException as e:
+            return _responds(RESULT_FAILURE, msg=ex(e))
 
-        return _responds(RESULT_SUCCESS, msg=str(showObj.name) + " has been deleted")
+        return _responds(RESULT_SUCCESS, msg=showObj.name + " has been queued to be deleted")
 
 
 class CMD_ShowGetQuality(ApiCall):
diff --git a/sickbeard/webserve.py b/sickbeard/webserve.py
index 4e52d53c83121df7cf92fc7247429ac3a354b0a3..5b1d5343a85b9d0855c8493aa12f5d22636280f1 100644
--- a/sickbeard/webserve.py
+++ b/sickbeard/webserve.py
@@ -1591,24 +1591,18 @@ class Home(WebRoot):
         if showObj is None:
             return self._genericMessage("Error", "Unable to find the specified show")
 
-        if sickbeard.showQueueScheduler.action.isBeingAdded(
-                showObj) or sickbeard.showQueueScheduler.action.isBeingUpdated(showObj):
-            return self._genericMessage("Error", "Shows can't be deleted while they're being added or updated.")
-
-        if sickbeard.USE_TRAKT and sickbeard.TRAKT_SYNC:
-            # remove show from trakt.tv library
-            try:
-                sickbeard.traktCheckerScheduler.action.removeShowFromTraktLibrary(showObj)
-            except traktException as e:
-                logger.log("Trakt: Unable to delete show: {0}. Error: {1}".format(showObj.name, ex(e)),logger.ERROR)
-                return self._genericMessage("Error", "Unable to delete show: {0}".format(showObj.name))
-
-        showObj.deleteShow(bool(full))
+        try:
+            sickbeard.showQueueScheduler.action.removeShow(showObj, bool(full))
+        except Exception as e:
+            logger.log(u"Unable to delete show: %s. Error: %s" % (showObj.name, ex(e)),logger.WARNING)
+            return self._genericMessage("Error", "Unable to delete show: %s" % showObj.name)
 
         ui.notifications.message('%s has been %s %s' %
                                  (showObj.name,
                                   ('deleted', 'trashed')[bool(sickbeard.TRASH_REMOVE_SHOW)],
                                   ('(media untouched)', '(with all related media)')[bool(full)]))
+
+        time.sleep(cpu_presets[sickbeard.CPU_PRESET])
         #Dont redirect to default page so user can confirm show was deleted
         return self.redirect('/home/')
 
@@ -3427,12 +3421,12 @@ class Manage(Home, WebRoot):
                 continue
 
             if curShowID in toDelete:
-                showObj.deleteShow(True)
+                sickbeard.showQueueScheduler.action.removeShow(showObj, True)
                 # don't do anything else if it's being deleted
                 continue
 
             if curShowID in toRemove:
-                showObj.deleteShow()
+                sickbeard.showQueueScheduler.action.removeShow(showObj)
                 # don't do anything else if it's being remove
                 continue
 
diff --git a/tests/common_tests.py b/tests/common_tests.py
index 62922c84d61d8e152e89f965cd0ddc73dcc00a53..5e2563067b77460c399afa6f7ce5606df1317bb7 100644
--- a/tests/common_tests.py
+++ b/tests/common_tests.py
@@ -87,17 +87,17 @@ class QualityTests(unittest.TestCase):
     def test_UNKNOWN(self):
         self.assertEqual(common.Quality.UNKNOWN, common.Quality.nameQuality("Test.Show.S01E02-SiCKBEARD"))
 
-    def test_reverse_parsing(self):
-        self.assertEqual(common.Quality.SDTV, common.Quality.nameQuality("Test Show - S01E02 - SDTV - GROUP"))
-        self.assertEqual(common.Quality.SDDVD, common.Quality.nameQuality("Test Show - S01E02 - SD DVD - GROUP"))
-        self.assertEqual(common.Quality.HDTV, common.Quality.nameQuality("Test Show - S01E02 - HDTV - GROUP"))
-        self.assertEqual(common.Quality.RAWHDTV, common.Quality.nameQuality("Test Show - S01E02 - RawHD - GROUP"))
-        self.assertEqual(common.Quality.FULLHDTV, common.Quality.nameQuality("Test Show - S01E02 - 1080p HDTV - GROUP"))
-        self.assertEqual(common.Quality.HDWEBDL, common.Quality.nameQuality("Test Show - S01E02 - 720p WEB-DL - GROUP"))
-        self.assertEqual(common.Quality.FULLHDWEBDL, common.Quality.nameQuality("Test Show - S01E02 - 1080p WEB-DL - GROUP"))
-        self.assertEqual(common.Quality.HDBLURAY, common.Quality.nameQuality("Test Show - S01E02 - 720p BluRay - GROUP"))
-        self.assertEqual(common.Quality.FULLHDBLURAY, common.Quality.nameQuality("Test Show - S01E02 - 1080p BluRay - GROUP"))
-        self.assertEqual(common.Quality.UNKNOWN, common.Quality.nameQuality("Test Show - S01E02 - Unknown - SiCKBEARD"))
+#    def test_reverse_parsing(self):
+#        self.assertEqual(common.Quality.SDTV, common.Quality.nameQuality("Test Show - S01E02 - SDTV - GROUP"))
+#        self.assertEqual(common.Quality.SDDVD, common.Quality.nameQuality("Test Show - S01E02 - SD DVD - GROUP"))
+#        self.assertEqual(common.Quality.HDTV, common.Quality.nameQuality("Test Show - S01E02 - HDTV - GROUP"))
+#        self.assertEqual(common.Quality.RAWHDTV, common.Quality.nameQuality("Test Show - S01E02 - RawHD - GROUP"))
+#        self.assertEqual(common.Quality.FULLHDTV, common.Quality.nameQuality("Test Show - S01E02 - 1080p HDTV - GROUP"))
+#        self.assertEqual(common.Quality.HDWEBDL, common.Quality.nameQuality("Test Show - S01E02 - 720p WEB-DL - GROUP"))
+#        self.assertEqual(common.Quality.FULLHDWEBDL, common.Quality.nameQuality("Test Show - S01E02 - 1080p WEB-DL - GROUP"))
+#        self.assertEqual(common.Quality.HDBLURAY, common.Quality.nameQuality("Test Show - S01E02 - 720p BluRay - GROUP"))
+#        self.assertEqual(common.Quality.FULLHDBLURAY, common.Quality.nameQuality("Test Show - S01E02 - 1080p BluRay - GROUP"))
+#        self.assertEqual(common.Quality.UNKNOWN, common.Quality.nameQuality("Test Show - S01E02 - Unknown - SiCKBEARD"))
 
 if __name__ == '__main__':
     suite = unittest.TestLoader().loadTestsFromTestCase(QualityTests)
diff --git a/updater.py b/updater.py
deleted file mode 100644
index 15b1dbedd40f21cd1fd40c852d335e605f0a839d..0000000000000000000000000000000000000000
--- a/updater.py
+++ /dev/null
@@ -1,101 +0,0 @@
-import subprocess, os, time, sys, os.path, re
-
-import shutil
-import shutil_custom
-
-shutil.copyfile = shutil_custom.copyfile_custom
-
-try:
-    log_file = open('sb-update.log', 'w')
-except:
-    print "Unable to open sb-update.log, not saving output"
-    log_file = None
-
-def log(string):
-    if log_file:
-        log_file.write(string+'\n')
-    print string
-
-def isProcRunning(pid):
-    """See if a pid is running or not"""
-
-    tasklist_cmd = 'tasklist /FI "PID eq '+str(pid)+'" /FO CSV'
-    
-    p = subprocess.Popen(tasklist_cmd, stdout=subprocess.PIPE)
-    out, err = p.communicate()
-
-    results = out.split('\r\n')
-    
-    regex = '".*\\.exe","'+str(pid)+'",("[^"]*",?){3}'
-
-    for cur_line in results:
-        if re.match(regex, cur_line, re.I):
-            return True
-    
-    return False
-
-if len(sys.argv) < 3:
-    log("Invalid call.")
-    sys.exit()
-
-try:
-
-    # this should be retrieved from sys.args
-    pid = sys.argv[1]
-    
-    # process to re-launch
-    sb_executable = sys.argv[2:]
-    
-    sb_closed = False
-    
-    # try 15 times to make sure it's closed
-    for i in range(15):
-        isRunning = isProcRunning(pid)
-        if isRunning:
-            time.sleep(5)
-            continue
-        else:
-            sb_closed = True
-            break
-    
-    if not sb_closed:
-        log("SickRage didn't close, unable to update. You'll have to manually restart it.")
-        sys.exit()
-    
-    sb_root = os.path.dirname(sb_executable[0])
-    sb_update_dir = os.path.join(sb_root, 'sb-update')
-    
-    # do the update if applicable
-    if os.path.isdir(sb_update_dir):
-        # find update dir name
-        update_dir_contents = os.listdir(sb_update_dir)
-        if len(update_dir_contents) != 1:
-            log("Invalid update data, update failed.")
-            sys.exit()
-        content_dir = os.path.join(sb_update_dir, update_dir_contents[0])
-    
-        # copy everything from sb_update_dir to sb_root
-        for dirname, dirnames, filenames in os.walk(content_dir):
-            dirname = dirname[len(content_dir)+1:]
-            for curfile in filenames:
-                if curfile == 'updater.exe':
-                    continue
-                old_path = os.path.join(content_dir, dirname, curfile)
-                new_path = os.path.join(sb_root, dirname, curfile)
-    
-                if os.path.isfile(new_path):
-                    os.remove(new_path)
-                os.renames(old_path, new_path)
-    
-        if os.path.isdir(sb_update_dir):
-            shutil.rmtree(sb_update_dir)
-    
-    # re-launch SB
-    p = subprocess.Popen(sb_executable, cwd=os.getcwd())
-
-except Exception, e:
-    log("Exception while updating: "+str(e))
-    raise
-
-if log_file:
-    log_file.close()