diff --git a/docs/client_handbook/_build/doctrees/configuring.doctree b/docs/client_handbook/_build/doctrees/configuring.doctree
deleted file mode 100644
index cc91520..0000000
Binary files a/docs/client_handbook/_build/doctrees/configuring.doctree and /dev/null differ
diff --git a/docs/client_handbook/_build/doctrees/connections.doctree b/docs/client_handbook/_build/doctrees/connections.doctree
deleted file mode 100644
index b76ed8b..0000000
Binary files a/docs/client_handbook/_build/doctrees/connections.doctree and /dev/null differ
diff --git a/docs/client_handbook/_build/doctrees/environment.pickle b/docs/client_handbook/_build/doctrees/environment.pickle
deleted file mode 100644
index 232da9b..0000000
Binary files a/docs/client_handbook/_build/doctrees/environment.pickle and /dev/null differ
diff --git a/docs/client_handbook/_build/doctrees/index.doctree b/docs/client_handbook/_build/doctrees/index.doctree
deleted file mode 100644
index 9e64dfd..0000000
Binary files a/docs/client_handbook/_build/doctrees/index.doctree and /dev/null differ
diff --git a/docs/client_handbook/_build/doctrees/overview.doctree b/docs/client_handbook/_build/doctrees/overview.doctree
deleted file mode 100644
index a097b6f..0000000
Binary files a/docs/client_handbook/_build/doctrees/overview.doctree and /dev/null differ
diff --git a/docs/client_handbook/_build/html/.buildinfo b/docs/client_handbook/_build/html/.buildinfo
deleted file mode 100644
index 760a2e0..0000000
--- a/docs/client_handbook/_build/html/.buildinfo
+++ /dev/null
@@ -1,4 +0,0 @@
-# Sphinx build info version 1
-# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
-config: d38540aea09c2623174780a45eb27768
-tags: 645f666f9bcd5a90fca523b33c5a78b7
diff --git a/docs/client_handbook/_build/html/_sources/configuring.txt b/docs/client_handbook/_build/html/_sources/configuring.txt
deleted file mode 100644
index 0cd78ce..0000000
--- a/docs/client_handbook/_build/html/_sources/configuring.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-.. _configuring:
-
-Configuring SysAdm
-******************
-
diff --git a/docs/client_handbook/_build/html/_sources/connections.txt b/docs/client_handbook/_build/html/_sources/connections.txt
deleted file mode 100644
index 596584f..0000000
--- a/docs/client_handbook/_build/html/_sources/connections.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-.. _connections:
-
-Managing Connections
-********************
-
diff --git a/docs/client_handbook/_build/html/_sources/index.txt b/docs/client_handbook/_build/html/_sources/index.txt
deleted file mode 100644
index 7b33c96..0000000
--- a/docs/client_handbook/_build/html/_sources/index.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-.. SysAdm Client Handbook documentation master file, created by
- sphinx-quickstart on Thu Aug 18 11:46:26 2016.
- You can adapt this file completely to your liking, but it should at least
- contain the root `toctree` directive.
-
-Welcome to SysAdm Client Handbook's documentation!
-==================================================
-
-Contents:
-
-.. toctree::
- :maxdepth: 2
-
- overview
- connections
- configuring
-
-Indices and tables
-==================
-
-* :ref:`genindex`
-* :ref:`modindex`
-* :ref:`search`
-
diff --git a/docs/client_handbook/_build/html/_sources/overview.txt b/docs/client_handbook/_build/html/_sources/overview.txt
deleted file mode 100644
index 59691a7..0000000
--- a/docs/client_handbook/_build/html/_sources/overview.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-.. _overview:
-
-SysAdm Overview
-***************
-
diff --git a/docs/client_handbook/_build/html/_static/ajax-loader.gif b/docs/client_handbook/_build/html/_static/ajax-loader.gif
deleted file mode 100644
index 61faf8c..0000000
Binary files a/docs/client_handbook/_build/html/_static/ajax-loader.gif and /dev/null differ
diff --git a/docs/client_handbook/_build/html/_static/basic.css b/docs/client_handbook/_build/html/_static/basic.css
deleted file mode 100644
index 2b513f0..0000000
--- a/docs/client_handbook/_build/html/_static/basic.css
+++ /dev/null
@@ -1,604 +0,0 @@
-/*
- * basic.css
- * ~~~~~~~~~
- *
- * Sphinx stylesheet -- basic theme.
- *
- * :copyright: Copyright 2007-2016 by the Sphinx team, see AUTHORS.
- * :license: BSD, see LICENSE for details.
- *
- */
-
-/* -- main layout ----------------------------------------------------------- */
-
-div.clearer {
- clear: both;
-}
-
-/* -- relbar ---------------------------------------------------------------- */
-
-div.related {
- width: 100%;
- font-size: 90%;
-}
-
-div.related h3 {
- display: none;
-}
-
-div.related ul {
- margin: 0;
- padding: 0 0 0 10px;
- list-style: none;
-}
-
-div.related li {
- display: inline;
-}
-
-div.related li.right {
- float: right;
- margin-right: 5px;
-}
-
-/* -- sidebar --------------------------------------------------------------- */
-
-div.sphinxsidebarwrapper {
- padding: 10px 5px 0 10px;
-}
-
-div.sphinxsidebar {
- float: left;
- width: 230px;
- margin-left: -100%;
- font-size: 90%;
- word-wrap: break-word;
- overflow-wrap : break-word;
-}
-
-div.sphinxsidebar ul {
- list-style: none;
-}
-
-div.sphinxsidebar ul ul,
-div.sphinxsidebar ul.want-points {
- margin-left: 20px;
- list-style: square;
-}
-
-div.sphinxsidebar ul ul {
- margin-top: 0;
- margin-bottom: 0;
-}
-
-div.sphinxsidebar form {
- margin-top: 10px;
-}
-
-div.sphinxsidebar input {
- border: 1px solid #98dbcc;
- font-family: sans-serif;
- font-size: 1em;
-}
-
-div.sphinxsidebar #searchbox input[type="text"] {
- width: 170px;
-}
-
-img {
- border: 0;
- max-width: 100%;
-}
-
-/* -- search page ----------------------------------------------------------- */
-
-ul.search {
- margin: 10px 0 0 20px;
- padding: 0;
-}
-
-ul.search li {
- padding: 5px 0 5px 20px;
- background-image: url(file.png);
- background-repeat: no-repeat;
- background-position: 0 7px;
-}
-
-ul.search li a {
- font-weight: bold;
-}
-
-ul.search li div.context {
- color: #888;
- margin: 2px 0 0 30px;
- text-align: left;
-}
-
-ul.keywordmatches li.goodmatch a {
- font-weight: bold;
-}
-
-/* -- index page ------------------------------------------------------------ */
-
-table.contentstable {
- width: 90%;
-}
-
-table.contentstable p.biglink {
- line-height: 150%;
-}
-
-a.biglink {
- font-size: 1.3em;
-}
-
-span.linkdescr {
- font-style: italic;
- padding-top: 5px;
- font-size: 90%;
-}
-
-/* -- general index --------------------------------------------------------- */
-
-table.indextable {
- width: 100%;
-}
-
-table.indextable td {
- text-align: left;
- vertical-align: top;
-}
-
-table.indextable dl, table.indextable dd {
- margin-top: 0;
- margin-bottom: 0;
-}
-
-table.indextable tr.pcap {
- height: 10px;
-}
-
-table.indextable tr.cap {
- margin-top: 10px;
- background-color: #f2f2f2;
-}
-
-img.toggler {
- margin-right: 3px;
- margin-top: 3px;
- cursor: pointer;
-}
-
-div.modindex-jumpbox {
- border-top: 1px solid #ddd;
- border-bottom: 1px solid #ddd;
- margin: 1em 0 1em 0;
- padding: 0.4em;
-}
-
-div.genindex-jumpbox {
- border-top: 1px solid #ddd;
- border-bottom: 1px solid #ddd;
- margin: 1em 0 1em 0;
- padding: 0.4em;
-}
-
-/* -- general body styles --------------------------------------------------- */
-
-div.body p, div.body dd, div.body li, div.body blockquote {
- -moz-hyphens: auto;
- -ms-hyphens: auto;
- -webkit-hyphens: auto;
- hyphens: auto;
-}
-
-a.headerlink {
- visibility: hidden;
-}
-
-h1:hover > a.headerlink,
-h2:hover > a.headerlink,
-h3:hover > a.headerlink,
-h4:hover > a.headerlink,
-h5:hover > a.headerlink,
-h6:hover > a.headerlink,
-dt:hover > a.headerlink,
-caption:hover > a.headerlink,
-p.caption:hover > a.headerlink,
-div.code-block-caption:hover > a.headerlink {
- visibility: visible;
-}
-
-div.body p.caption {
- text-align: inherit;
-}
-
-div.body td {
- text-align: left;
-}
-
-.field-list ul {
- padding-left: 1em;
-}
-
-.first {
- margin-top: 0 !important;
-}
-
-p.rubric {
- margin-top: 30px;
- font-weight: bold;
-}
-
-img.align-left, .figure.align-left, object.align-left {
- clear: left;
- float: left;
- margin-right: 1em;
-}
-
-img.align-right, .figure.align-right, object.align-right {
- clear: right;
- float: right;
- margin-left: 1em;
-}
-
-img.align-center, .figure.align-center, object.align-center {
- display: block;
- margin-left: auto;
- margin-right: auto;
-}
-
-.align-left {
- text-align: left;
-}
-
-.align-center {
- text-align: center;
-}
-
-.align-right {
- text-align: right;
-}
-
-/* -- sidebars -------------------------------------------------------------- */
-
-div.sidebar {
- margin: 0 0 0.5em 1em;
- border: 1px solid #ddb;
- padding: 7px 7px 0 7px;
- background-color: #ffe;
- width: 40%;
- float: right;
-}
-
-p.sidebar-title {
- font-weight: bold;
-}
-
-/* -- topics ---------------------------------------------------------------- */
-
-div.topic {
- border: 1px solid #ccc;
- padding: 7px 7px 0 7px;
- margin: 10px 0 10px 0;
-}
-
-p.topic-title {
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 10px;
-}
-
-/* -- admonitions ----------------------------------------------------------- */
-
-div.admonition {
- margin-top: 10px;
- margin-bottom: 10px;
- padding: 7px;
-}
-
-div.admonition dt {
- font-weight: bold;
-}
-
-div.admonition dl {
- margin-bottom: 0;
-}
-
-p.admonition-title {
- margin: 0px 10px 5px 0px;
- font-weight: bold;
-}
-
-div.body p.centered {
- text-align: center;
- margin-top: 25px;
-}
-
-/* -- tables ---------------------------------------------------------------- */
-
-table.docutils {
- border: 0;
- border-collapse: collapse;
-}
-
-table caption span.caption-number {
- font-style: italic;
-}
-
-table caption span.caption-text {
-}
-
-table.docutils td, table.docutils th {
- padding: 1px 8px 1px 5px;
- border-top: 0;
- border-left: 0;
- border-right: 0;
- border-bottom: 1px solid #aaa;
-}
-
-table.field-list td, table.field-list th {
- border: 0 !important;
-}
-
-table.footnote td, table.footnote th {
- border: 0 !important;
-}
-
-th {
- text-align: left;
- padding-right: 5px;
-}
-
-table.citation {
- border-left: solid 1px gray;
- margin-left: 1px;
-}
-
-table.citation td {
- border-bottom: none;
-}
-
-/* -- figures --------------------------------------------------------------- */
-
-div.figure {
- margin: 0.5em;
- padding: 0.5em;
-}
-
-div.figure p.caption {
- padding: 0.3em;
-}
-
-div.figure p.caption span.caption-number {
- font-style: italic;
-}
-
-div.figure p.caption span.caption-text {
-}
-
-
-/* -- other body styles ----------------------------------------------------- */
-
-ol.arabic {
- list-style: decimal;
-}
-
-ol.loweralpha {
- list-style: lower-alpha;
-}
-
-ol.upperalpha {
- list-style: upper-alpha;
-}
-
-ol.lowerroman {
- list-style: lower-roman;
-}
-
-ol.upperroman {
- list-style: upper-roman;
-}
-
-dl {
- margin-bottom: 15px;
-}
-
-dd p {
- margin-top: 0px;
-}
-
-dd ul, dd table {
- margin-bottom: 10px;
-}
-
-dd {
- margin-top: 3px;
- margin-bottom: 10px;
- margin-left: 30px;
-}
-
-dt:target, .highlighted {
- background-color: #fbe54e;
-}
-
-dl.glossary dt {
- font-weight: bold;
- font-size: 1.1em;
-}
-
-.field-list ul {
- margin: 0;
- padding-left: 1em;
-}
-
-.field-list p {
- margin: 0;
-}
-
-.optional {
- font-size: 1.3em;
-}
-
-.sig-paren {
- font-size: larger;
-}
-
-.versionmodified {
- font-style: italic;
-}
-
-.system-message {
- background-color: #fda;
- padding: 5px;
- border: 3px solid red;
-}
-
-.footnote:target {
- background-color: #ffa;
-}
-
-.line-block {
- display: block;
- margin-top: 1em;
- margin-bottom: 1em;
-}
-
-.line-block .line-block {
- margin-top: 0;
- margin-bottom: 0;
- margin-left: 1.5em;
-}
-
-.guilabel, .menuselection {
- font-family: sans-serif;
-}
-
-.accelerator {
- text-decoration: underline;
-}
-
-.classifier {
- font-style: oblique;
-}
-
-abbr, acronym {
- border-bottom: dotted 1px;
- cursor: help;
-}
-
-/* -- code displays --------------------------------------------------------- */
-
-pre {
- overflow: auto;
- overflow-y: hidden; /* fixes display issues on Chrome browsers */
-}
-
-td.linenos pre {
- padding: 5px 0px;
- border: 0;
- background-color: transparent;
- color: #aaa;
-}
-
-table.highlighttable {
- margin-left: 0.5em;
-}
-
-table.highlighttable td {
- padding: 0 0.5em 0 0.5em;
-}
-
-div.code-block-caption {
- padding: 2px 5px;
- font-size: small;
-}
-
-div.code-block-caption code {
- background-color: transparent;
-}
-
-div.code-block-caption + div > div.highlight > pre {
- margin-top: 0;
-}
-
-div.code-block-caption span.caption-number {
- padding: 0.1em 0.3em;
- font-style: italic;
-}
-
-div.code-block-caption span.caption-text {
-}
-
-div.literal-block-wrapper {
- padding: 1em 1em 0;
-}
-
-div.literal-block-wrapper div.highlight {
- margin: 0;
-}
-
-code.descname {
- background-color: transparent;
- font-weight: bold;
- font-size: 1.2em;
-}
-
-code.descclassname {
- background-color: transparent;
-}
-
-code.xref, a code {
- background-color: transparent;
- font-weight: bold;
-}
-
-h1 code, h2 code, h3 code, h4 code, h5 code, h6 code {
- background-color: transparent;
-}
-
-.viewcode-link {
- float: right;
-}
-
-.viewcode-back {
- float: right;
- font-family: sans-serif;
-}
-
-div.viewcode-block:target {
- margin: -1px -10px;
- padding: 0 10px;
-}
-
-/* -- math display ---------------------------------------------------------- */
-
-img.math {
- vertical-align: middle;
-}
-
-div.body div.math p {
- text-align: center;
-}
-
-span.eqno {
- float: right;
-}
-
-/* -- printout stylesheet --------------------------------------------------- */
-
-@media print {
- div.document,
- div.documentwrapper,
- div.bodywrapper {
- margin: 0 !important;
- width: 100%;
- }
-
- div.sphinxsidebar,
- div.related,
- div.footer,
- #top-link {
- display: none;
- }
-}
\ No newline at end of file
diff --git a/docs/client_handbook/_build/html/_static/classic.css b/docs/client_handbook/_build/html/_static/classic.css
deleted file mode 100644
index d98894b..0000000
--- a/docs/client_handbook/_build/html/_static/classic.css
+++ /dev/null
@@ -1,261 +0,0 @@
-/*
- * default.css_t
- * ~~~~~~~~~~~~~
- *
- * Sphinx stylesheet -- default theme.
- *
- * :copyright: Copyright 2007-2016 by the Sphinx team, see AUTHORS.
- * :license: BSD, see LICENSE for details.
- *
- */
-
-@import url("basic.css");
-
-/* -- page layout ----------------------------------------------------------- */
-
-body {
- font-family: sans-serif;
- font-size: 100%;
- background-color: #11303d;
- color: #000;
- margin: 0;
- padding: 0;
-}
-
-div.document {
- background-color: #1c4e63;
-}
-
-div.documentwrapper {
- float: left;
- width: 100%;
-}
-
-div.bodywrapper {
- margin: 0 0 0 230px;
-}
-
-div.body {
- background-color: #ffffff;
- color: #000000;
- padding: 0 20px 30px 20px;
-}
-
-div.footer {
- color: #ffffff;
- width: 100%;
- padding: 9px 0 9px 0;
- text-align: center;
- font-size: 75%;
-}
-
-div.footer a {
- color: #ffffff;
- text-decoration: underline;
-}
-
-div.related {
- background-color: #133f52;
- line-height: 30px;
- color: #ffffff;
-}
-
-div.related a {
- color: #ffffff;
-}
-
-div.sphinxsidebar {
-}
-
-div.sphinxsidebar h3 {
- font-family: 'Trebuchet MS', sans-serif;
- color: #ffffff;
- font-size: 1.4em;
- font-weight: normal;
- margin: 0;
- padding: 0;
-}
-
-div.sphinxsidebar h3 a {
- color: #ffffff;
-}
-
-div.sphinxsidebar h4 {
- font-family: 'Trebuchet MS', sans-serif;
- color: #ffffff;
- font-size: 1.3em;
- font-weight: normal;
- margin: 5px 0 0 0;
- padding: 0;
-}
-
-div.sphinxsidebar p {
- color: #ffffff;
-}
-
-div.sphinxsidebar p.topless {
- margin: 5px 10px 10px 10px;
-}
-
-div.sphinxsidebar ul {
- margin: 10px;
- padding: 0;
- color: #ffffff;
-}
-
-div.sphinxsidebar a {
- color: #98dbcc;
-}
-
-div.sphinxsidebar input {
- border: 1px solid #98dbcc;
- font-family: sans-serif;
- font-size: 1em;
-}
-
-
-
-/* -- hyperlink styles ------------------------------------------------------ */
-
-a {
- color: #355f7c;
- text-decoration: none;
-}
-
-a:visited {
- color: #355f7c;
- text-decoration: none;
-}
-
-a:hover {
- text-decoration: underline;
-}
-
-
-
-/* -- body styles ----------------------------------------------------------- */
-
-div.body h1,
-div.body h2,
-div.body h3,
-div.body h4,
-div.body h5,
-div.body h6 {
- font-family: 'Trebuchet MS', sans-serif;
- background-color: #f2f2f2;
- font-weight: normal;
- color: #20435c;
- border-bottom: 1px solid #ccc;
- margin: 20px -20px 10px -20px;
- padding: 3px 0 3px 10px;
-}
-
-div.body h1 { margin-top: 0; font-size: 200%; }
-div.body h2 { font-size: 160%; }
-div.body h3 { font-size: 140%; }
-div.body h4 { font-size: 120%; }
-div.body h5 { font-size: 110%; }
-div.body h6 { font-size: 100%; }
-
-a.headerlink {
- color: #c60f0f;
- font-size: 0.8em;
- padding: 0 4px 0 4px;
- text-decoration: none;
-}
-
-a.headerlink:hover {
- background-color: #c60f0f;
- color: white;
-}
-
-div.body p, div.body dd, div.body li, div.body blockquote {
- text-align: justify;
- line-height: 130%;
-}
-
-div.admonition p.admonition-title + p {
- display: inline;
-}
-
-div.admonition p {
- margin-bottom: 5px;
-}
-
-div.admonition pre {
- margin-bottom: 5px;
-}
-
-div.admonition ul, div.admonition ol {
- margin-bottom: 5px;
-}
-
-div.note {
- background-color: #eee;
- border: 1px solid #ccc;
-}
-
-div.seealso {
- background-color: #ffc;
- border: 1px solid #ff6;
-}
-
-div.topic {
- background-color: #eee;
-}
-
-div.warning {
- background-color: #ffe4e4;
- border: 1px solid #f66;
-}
-
-p.admonition-title {
- display: inline;
-}
-
-p.admonition-title:after {
- content: ":";
-}
-
-pre {
- padding: 5px;
- background-color: #eeffcc;
- color: #333333;
- line-height: 120%;
- border: 1px solid #ac9;
- border-left: none;
- border-right: none;
-}
-
-code {
- background-color: #ecf0f3;
- padding: 0 1px 0 1px;
- font-size: 0.95em;
-}
-
-th {
- background-color: #ede;
-}
-
-.warning code {
- background: #efc2c2;
-}
-
-.note code {
- background: #d6d6d6;
-}
-
-.viewcode-back {
- font-family: sans-serif;
-}
-
-div.viewcode-block:target {
- background-color: #f4debf;
- border-top: 1px solid #ac9;
- border-bottom: 1px solid #ac9;
-}
-
-div.code-block-caption {
- color: #efefef;
- background-color: #1c4e63;
-}
\ No newline at end of file
diff --git a/docs/client_handbook/_build/html/_static/comment-bright.png b/docs/client_handbook/_build/html/_static/comment-bright.png
deleted file mode 100644
index 551517b..0000000
Binary files a/docs/client_handbook/_build/html/_static/comment-bright.png and /dev/null differ
diff --git a/docs/client_handbook/_build/html/_static/comment-close.png b/docs/client_handbook/_build/html/_static/comment-close.png
deleted file mode 100644
index 09b54be..0000000
Binary files a/docs/client_handbook/_build/html/_static/comment-close.png and /dev/null differ
diff --git a/docs/client_handbook/_build/html/_static/comment.png b/docs/client_handbook/_build/html/_static/comment.png
deleted file mode 100644
index 92feb52..0000000
Binary files a/docs/client_handbook/_build/html/_static/comment.png and /dev/null differ
diff --git a/docs/client_handbook/_build/html/_static/css/badge_only.css b/docs/client_handbook/_build/html/_static/css/badge_only.css
deleted file mode 100644
index 7e17fb1..0000000
--- a/docs/client_handbook/_build/html/_static/css/badge_only.css
+++ /dev/null
@@ -1,2 +0,0 @@
-.fa:before{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-weight:normal;font-style:normal;src:url("../font/fontawesome_webfont.eot");src:url("../font/fontawesome_webfont.eot?#iefix") format("embedded-opentype"),url("../font/fontawesome_webfont.woff") format("woff"),url("../font/fontawesome_webfont.ttf") format("truetype"),url("../font/fontawesome_webfont.svg#FontAwesome") format("svg")}.fa:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;text-decoration:inherit}a .fa{display:inline-block;text-decoration:inherit}li .fa{display:inline-block}li .fa-large:before,li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-0.8em}ul.fas li .fa{width:0.8em}ul.fas li .fa-large:before,ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before{content:""}.icon-book:before{content:""}.fa-caret-down:before{content:""}.icon-caret-down:before{content:""}.fa-caret-up:before{content:""}.icon-caret-up:before{content:""}.fa-caret-left:before{content:""}.icon-caret-left:before{content:""}.fa-caret-right:before{content:""}.icon-caret-right:before{content:""}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;border-top:solid 10px #343131;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;z-index:400}.rst-versions a{color:#2980B9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27AE60;*zoom:1}.rst-versions .rst-current-version:before,.rst-versions .rst-current-version:after{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book{float:left}.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#E74C3C;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#F1C40F;color:#000}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:gray;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:solid 1px #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px}.rst-versions.rst-badge .icon-book{float:none}.rst-versions.rst-badge .fa-book{float:none}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book{float:left}.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge .rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width: 768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}img{width:100%;height:auto}}
-/*# sourceMappingURL=badge_only.css.map */
diff --git a/docs/client_handbook/_build/html/_static/css/font_awesome.css b/docs/client_handbook/_build/html/_static/css/font_awesome.css
deleted file mode 100644
index 44d16ce..0000000
--- a/docs/client_handbook/_build/html/_static/css/font_awesome.css
+++ /dev/null
@@ -1,1734 +0,0 @@
-/*!
- * Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome
- * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
- */
-
-@font-face {
- font-family: 'FontAwesome';
- src: url("../fonts/fontawesome-webfont.eot?v=4.2.0");
- src: url("../fonts/fontawesome-webfont.eot?#iefix&v=4.2.0") format("embedded-opentype"), url("../fonts/fontawesome-webfont.woff?v=4.2.0") format("woff"), url("../fonts/fontawesome-webfont.ttf?v=4.2.0") format("truetype"), url("../fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular") format("svg");
- font-weight: normal;
- font-style: normal
-}
-.fa,
-.wy-menu-vertical li span.toctree-expand,
-.wy-menu-vertical li.on a span.toctree-expand,
-.wy-menu-vertical li.current>a span.toctree-expand,
-.rst-content .admonition-title,
-.rst-content h1 .headerlink,
-.rst-content h2 .headerlink,
-.rst-content p.caption .headerlink,
-.rst-content h3 .headerlink,
-.rst-content h4 .headerlink,
-.rst-content h5 .headerlink,
-.rst-content h6 .headerlink,
-.rst-content dl dt .headerlink,
-.rst-content tt.download span:first-child,
-.rst-content code.download span:first-child,
-.icon {
- display: inline-block;
- font: normal normal normal 14px/1 FontAwesome;
- font-size: inherit;
- text-rendering: auto;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale
-}
-.fa-lg {
- font-size: 1.33333em;
- line-height: 0.75em;
- vertical-align: -15%
-}
-.fa-2x {
- font-size: 2em
-}
-.fa-3x {
- font-size: 3em
-}
-.fa-4x {
- font-size: 4em
-}
-.fa-5x {
- font-size: 5em
-}
-.fa-fw {
- width: 1.28571em;
- text-align: center
-}
-.fa-ul {
- padding-left: 0;
- margin-left: 2.14286em;
- list-style-type: none
-}
-.fa-ul>li {
- position: relative
-}
-.fa-li {
- position: absolute;
- left: -2.14286em;
- width: 2.14286em;
- top: 0.14286em;
- text-align: center
-}
-.fa-li.fa-lg {
- left: -1.85714em
-}
-.fa-border {
- padding: .2em .25em .15em;
- border: solid 0.08em #eee;
- border-radius: .1em
-}
-.pull-right {
- float: right
-}
-.pull-left {
- float: left
-}
-.fa.pull-left,
-.wy-menu-vertical li span.pull-left.toctree-expand,
-.wy-menu-vertical li.on a span.pull-left.toctree-expand,
-.wy-menu-vertical li.current>a span.pull-left.toctree-expand,
-.rst-content .pull-left.admonition-title,
-.rst-content h1 .pull-left.headerlink,
-.rst-content h2 .pull-left.headerlink,
-.rst-content p.caption .pull-left.headerlink,
-.rst-content h3 .pull-left.headerlink,
-.rst-content h4 .pull-left.headerlink,
-.rst-content h5 .pull-left.headerlink,
-.rst-content h6 .pull-left.headerlink,
-.rst-content dl dt .pull-left.headerlink,
-.rst-content tt.download span.pull-left:first-child,
-.rst-content code.download span.pull-left:first-child,
-.pull-left.icon {
- margin-right: .3em
-}
-.fa.pull-right,
-.wy-menu-vertical li span.pull-right.toctree-expand,
-.wy-menu-vertical li.on a span.pull-right.toctree-expand,
-.wy-menu-vertical li.current>a span.pull-right.toctree-expand,
-.rst-content .pull-right.admonition-title,
-.rst-content h1 .pull-right.headerlink,
-.rst-content h2 .pull-right.headerlink,
-.rst-content p.caption .pull-right.headerlink,
-.rst-content h3 .pull-right.headerlink,
-.rst-content h4 .pull-right.headerlink,
-.rst-content h5 .pull-right.headerlink,
-.rst-content h6 .pull-right.headerlink,
-.rst-content dl dt .pull-right.headerlink,
-.rst-content tt.download span.pull-right:first-child,
-.rst-content code.download span.pull-right:first-child,
-.pull-right.icon {
- margin-left: .3em
-}
-.fa-spin {
- -webkit-animation: fa-spin 2s infinite linear;
- animation: fa-spin 2s infinite linear
-}
-@-webkit-keyframes fa-spin {
- 0% {
- -webkit-transform: rotate(0deg);
- transform: rotate(0deg)
- }
- 100% {
- -webkit-transform: rotate(359deg);
- transform: rotate(359deg)
- }
-}
-@keyframes fa-spin {
- 0% {
- -webkit-transform: rotate(0deg);
- transform: rotate(0deg)
- }
- 100% {
- -webkit-transform: rotate(359deg);
- transform: rotate(359deg)
- }
-}
-.fa-rotate-90 {
- filter: progid: DXImageTransform.Microsoft.BasicImage(rotation=1);
- -webkit-transform: rotate(90deg);
- -ms-transform: rotate(90deg);
- transform: rotate(90deg)
-}
-.fa-rotate-180 {
- filter: progid: DXImageTransform.Microsoft.BasicImage(rotation=2);
- -webkit-transform: rotate(180deg);
- -ms-transform: rotate(180deg);
- transform: rotate(180deg)
-}
-.fa-rotate-270 {
- filter: progid: DXImageTransform.Microsoft.BasicImage(rotation=3);
- -webkit-transform: rotate(270deg);
- -ms-transform: rotate(270deg);
- transform: rotate(270deg)
-}
-.fa-flip-horizontal {
- filter: progid: DXImageTransform.Microsoft.BasicImage(rotation=0);
- -webkit-transform: scale(-1, 1);
- -ms-transform: scale(-1, 1);
- transform: scale(-1, 1)
-}
-.fa-flip-vertical {
- filter: progid: DXImageTransform.Microsoft.BasicImage(rotation=2);
- -webkit-transform: scale(1, -1);
- -ms-transform: scale(1, -1);
- transform: scale(1, -1)
-}
-:root .fa-rotate-90,
-:root .fa-rotate-180,
-:root .fa-rotate-270,
-:root .fa-flip-horizontal,
-:root .fa-flip-vertical {
- filter: none
-}
-.fa-stack {
- position: relative;
- display: inline-block;
- width: 2em;
- height: 2em;
- line-height: 2em;
- vertical-align: middle
-}
-.fa-stack-1x,
-.fa-stack-2x {
- position: absolute;
- left: 0;
- width: 100%;
- text-align: center
-}
-.fa-stack-1x {
- line-height: inherit
-}
-.fa-stack-2x {
- font-size: 2em
-}
-.fa-inverse {
- color: #fff
-}
-.fa-glass:before {
- content: "\f000"
-}
-.fa-music:before {
- content: "\f001"
-}
-.fa-search:before,
-.icon-search:before {
- content: "\f002"
-}
-.fa-envelope-o:before {
- content: "\f003"
-}
-.fa-heart:before {
- content: "\f004"
-}
-.fa-star:before {
- content: "\f005"
-}
-.fa-star-o:before {
- content: "\f006"
-}
-.fa-user:before {
- content: "\f007"
-}
-.fa-film:before {
- content: "\f008"
-}
-.fa-th-large:before {
- content: "\f009"
-}
-.fa-th:before {
- content: "\f00a"
-}
-.fa-th-list:before {
- content: "\f00b"
-}
-.fa-check:before {
- content: "\f00c"
-}
-.fa-remove:before,
-.fa-close:before,
-.fa-times:before {
- content: "\f00d"
-}
-.fa-search-plus:before {
- content: "\f00e"
-}
-.fa-search-minus:before {
- content: "\f010"
-}
-.fa-power-off:before {
- content: "\f011"
-}
-.fa-signal:before {
- content: "\f012"
-}
-.fa-gear:before,
-.fa-cog:before {
- content: "\fa013"
-}
-.fa-trash-o:before {
- content: "\f014"
-}
-.fa-home:before,
-.icon-home:before {
- content: "\f015"
-}
-.fa-file-o:before {
- content: "\f016"
-}
-.fa-clock-o:before {
- content: "\f017"
-}
-.fa-road:before {
- content: "\f018"
-}
-.fa-download:before,
-.rst-content tt.download span:first-child:before,
-.rst-content code.download span:first-child:before {
- content: "\f019"
-}
-.fa-arrow-circle-o-down:before {
- content: "\f01a"
-}
-.fa-arrow-circle-o-up:before {
- content: "\f01b"
-}
-.fa-inbox:before {
- content: "\f01c"
-}
-.fa-play-circle-o:before {
- content: "\f01d"
-}
-.fa-rotate-right:before,
-.fa-repeat:before {
- content: "\f01e"
-}
-.fa-refresh:before {
- content: "\f021"
-}
-.fa-list-alt:before {
- content: "\f022"
-}
-.fa-lock:before {
- content: "\f023"
-}
-.fa-flag:before {
- content: "\f024"
-}
-.fa-headphones:before {
- content: "\f025"
-}
-.fa-volume-off:before {
- content: "\f026"
-}
-.fa-volume-down:before {
- content: "\f027"
-}
-.fa-volume-up:before {
- content: "\f028"
-}
-.fa-qrcode:before {
- content: "\F029 "
-}
-.fa-barcode:before {
- content: "\F02A "
-}
-.fa-tag:before {
- content: "\F02B "
-}
-.fa-tags:before {
- content: "\F02C "
-}
-.fa-book:before,
-.icon-book:before {
- content: "\F02D "
-}
-.fa-bookmark:before {
- content: "\F02E "
-}
-.fa-print:before {
- content: "\F02F "
-}
-.fa-camera:before {
- content: "\F030 "
-}
-.fa-font:before {
- content: "\F031 "
-}
-.fa-bold:before {
- content: "\F032 "
-}
-.fa-italic:before {
- content: "\F033 "
-}
-.fa-text-height:before {
- content: "\F034 "
-}
-.fa-text-width:before {
- content: "\F035 "
-}
-.fa-align-left:before {
- content: "\F036 "
-}
-.fa-align-center:before {
- content: "\F037 "
-}
-.fa-align-right:before {
- content: "\F038 "
-}
-.fa-align-justify:before {
- content: "\F039 "
-}
-.fa-list:before {
- content: "\F03A "
-}
-.fa-dedent:before,
-.fa-outdent:before {
- content: "\F03B "
-}
-.fa-indent:before {
- content: "\F03C "
-}
-.fa-video-camera:before {
- content: "\F03D "
-}
-.fa-photo:before,
-.fa-image:before,
-.fa-picture-o:before {
- content: "\F03E "
-}
-.fa-pencil:before {
- content: "\F040 "
-}
-.fa-map-marker:before {
- content: "\F041 "
-}
-.fa-adjust:before {
- content: "\F042 "
-}
-.fa-tint:before {
- content: "\F043 "
-}
-.fa-edit:before,
-.fa-pencil-square-o:before {
- content: "\F044 "
-}
-.fa-share-square-o:before {
- content: "\F045 "
-}
-.fa-check-square-o:before {
- content: "\F046 "
-}
-.fa-arrows:before {
- content: "\F047 "
-}
-.fa-step-backward:before {
- content: "\F048 "
-}
-.fa-fast-backward:before {
- content: "\F049 "
-}
-.fa-backward:before {
- content: "\F04A "
-}
-.fa-play:before {
- content: "\F04B "
-}
-.fa-pause:before {
- content: "\F04C "
-}
-.fa-stop:before {
- content: "\F04D "
-}
-.fa-forward:before {
- content: "\F04E "
-}
-.fa-fast-forward:before {
- content: "\F050 "
-}
-.fa-step-forward:before {
- content: "\F051 "
-}
-.fa-eject:before {
- content: "\F052 "
-}
-.fa-chevron-left:before {
- content: "\F053 "
-}
-.fa-chevron-right:before {
- content: "\F054 "
-}
-.fa-plus-circle:before {
- content: "\F055 "
-}
-.fa-minus-circle:before {
- content: "\F056 "
-}
-.fa-times-circle:before,
-.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before {
- content: "\F057 "
-}
-.fa-check-circle:before,
-.wy-inline-validate.wy-inline-validate-success .wy-input-context:before {
- content: "\F058 "
-}
-.fa-question-circle:before {
- content: "\F059 "
-}
-.fa-info-circle:before {
- content: "\F05A "
-}
-.fa-crosshairs:before {
- content: "\F05B "
-}
-.fa-times-circle-o:before {
- content: "\F05C "
-}
-.fa-check-circle-o:before {
- content: "\F05D "
-}
-.fa-ban:before {
- content: "\F05E "
-}
-.fa-arrow-left:before {
- content: "\F060 "
-}
-.fa-arrow-right:before {
- content: "\F061 "
-}
-.fa-arrow-up:before {
- content: "\F062 "
-}
-.fa-arrow-down:before {
- content: "\F063 "
-}
-.fa-mail-forward:before,
-.fa-share:before {
- content: "\F064 "
-}
-.fa-expand:before {
- content: "\F065 "
-}
-.fa-compress:before {
- content: "\F066 "
-}
-.fa-plus:before {
- content: "\F067 "
-}
-.fa-minus:before {
- content: "\F068 "
-}
-.fa-asterisk:before {
- content: "\F069 "
-}
-.fa-exclamation-circle:before,
-.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,
-.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,
-.rst-content .admonition-title:before {
- content: "\F06A "
-}
-.fa-gift:before {
- content: "\F06B "
-}
-.fa-leaf:before {
- content: "\F06C "
-}
-.fa-fire:before,
-.icon-fire:before {
- content: "\F06D "
-}
-.fa-eye:before {
- content: "\F06E "
-}
-.fa-eye-slash:before {
- content: "\F070 "
-}
-.fa-warning:before,
-.fa-exclamation-triangle:before {
- content: "\F071 "
-}
-.fa-plane:before {
- content: "\F072 "
-}
-.fa-calendar:before {
- content: "\F073 "
-}
-.fa-random:before {
- content: "\F074 "
-}
-.fa-comment:before {
- content: "\F075 "
-}
-.fa-magnet:before {
- content: "\F076 "
-}
-.fa-chevron-up:before {
- content: "\F077 "
-}
-.fa-chevron-down:before {
- content: "\F078 "
-}
-.fa-retweet:before {
- content: "\F079 "
-}
-.fa-shopping-cart:before {
- content: "\F07A "
-}
-.fa-folder:before {
- content: "\F07B "
-}
-.fa-folder-open:before {
- content: "\F07C "
-}
-.fa-arrows-v:before {
- content: "\F07D "
-}
-.fa-arrows-h:before {
- content: "\F07E "
-}
-.fa-bar-chart-o:before,
-.fa-bar-chart:before {
- content: "\F080 "
-}
-.fa-twitter-square:before {
- content: "\F081 "
-}
-.fa-facebook-square:before {
- content: "\F082 "
-}
-.fa-camera-retro:before {
- content: "\F083 "
-}
-.fa-key:before {
- content: "\F084 "
-}
-.fa-gears:before,
-.fa-cogs:before {
- content: "\F085 "
-}
-.fa-comments:before {
- content: "\F086 "
-}
-.fa-thumbs-o-up:before {
- content: "\F087 "
-}
-.fa-thumbs-o-down:before {
- content: "\F088 "
-}
-.fa-star-half:before {
- content: "\F089 "
-}
-.fa-heart-o:before {
- content: "\F08A "
-}
-.fa-sign-out:before {
- content: "\F08B "
-}
-.fa-linkedin-square:before {
- content: "\F08C "
-}
-.fa-thumb-tack:before {
- content: "\F08D "
-}
-.fa-external-link:before {
- content: "\F08E "
-}
-.fa-sign-in:before {
- content: "\F090 "
-}
-.fa-trophy:before {
- content: "\F091 "
-}
-.fa-github-square:before {
- content: "\F092 "
-}
-.fa-upload:before {
- content: "\F093 "
-}
-.fa-lemon-o:before {
- content: "\F094 "
-}
-.fa-phone:before {
- content: "\F095 "
-}
-.fa-square-o:before {
- content: "\F096 "
-}
-.fa-bookmark-o:before {
- content: "\F097 "
-}
-.fa-phone-square:before {
- content: "\F098 "
-}
-.fa-twitter:before {
- content: "\F099 "
-}
-.fa-facebook:before {
- content: "\F09A "
-}
-.fa-github:before,
-.icon-github:before {
- content: "\F09B "
-}
-.fa-unlock:before {
- content: "\F09C "
-}
-.fa-credit-card:before {
- content: "\F09D "
-}
-.fa-rss:before {
- content: "\F09E "
-}
-.fa-hdd-o:before {
- content: "\F0A0 "
-}
-.fa-bullhorn:before {
- content: "\F0A1 "
-}
-.fa-bell:before {
- content: "\F0F3 "
-}
-.fa-certificate:before {
- content: "\F0A3 "
-}
-.fa-hand-o-right:before {
- content: "\F0A4 "
-}
-.fa-hand-o-left:before {
- content: "\F0A5 "
-}
-.fa-hand-o-up:before {
- content: "\F0A6 "
-}
-.fa-hand-o-down:before {
- content: "\F0A7 "
-}
-.fa-arrow-circle-left:before,
-.icon-circle-arrow-left:before {
- content: "\F0A8 "
-}
-.fa-arrow-circle-right:before,
-.icon-circle-arrow-right:before {
- content: "\F0A9 "
-}
-.fa-arrow-circle-up:before {
- content: "\F0AA "
-}
-.fa-arrow-circle-down:before {
- content: "\F0AB "
-}
-.fa-globe:before {
- content: "\F0AC "
-}
-.fa-wrench:before {
- content: "\F0AD "
-}
-.fa-tasks:before {
- content: "\F0AE "
-}
-.fa-filter:before {
- content: "\F0B0 "
-}
-.fa-briefcase:before {
- content: "\F0B1 "
-}
-.fa-arrows-alt:before {
- content: "\F0B2 "
-}
-.fa-group:before,
-.fa-users:before {
- content: "\F0C0 "
-}
-.fa-chain:before,
-.fa-link:before,
-.icon-link:before {
- content: "\f0c1"
-}
-.fa-cloud:before {
- content: "\F0C2 "
-}
-.fa-flask:before {
- content: "\F0C3 "
-}
-.fa-cut:before,
-.fa-scissors:before {
- content: "\F0C4 "
-}
-.fa-copy:before,
-.fa-files-o:before {
- content: "\F0C5 "
-}
-.fa-paperclip:before {
- content: "\F0C6 "
-}
-.fa-save:before,
-.fa-floppy-o:before {
- content: "\F0C7 "
-}
-.fa-square:before {
- content: "\F0C8 "
-}
-.fa-navicon:before,
-.fa-reorder:before,
-.fa-bars:before {
- content: "\F0C9 "
-}
-.fa-list-ul:before {
- content: "\F0CA "
-}
-.fa-list-ol:before {
- content: "\F0CB "
-}
-.fa-strikethrough:before {
- content: "\F0CC "
-}
-.fa-underline:before {
- content: "\F0CD "
-}
-.fa-table:before {
- content: "\F0CE "
-}
-.fa-magic:before {
- content: "\F0D0 "
-}
-.fa-truck:before {
- content: "\F0D1 "
-}
-.fa-pinterest:before {
- content: "\F0D2 "
-}
-.fa-pinterest-square:before {
- content: "\F0D3 "
-}
-.fa-google-plus-square:before {
- content: "\f0fe"
-}
-.fa-google-plus:before {
- content: "\F0D5 "
-}
-.fa-money:before {
- content: "\F0D6 "
-}
-.fa-caret-down:before,
-.wy-dropdown .caret:before,
-.icon-caret-down:before {
- content: "\F0D7 "
-}
-.fa-caret-up:before {
- content: "\F0D8 "
-}
-.fa-caret-left:before {
- content: "\F0D9 "
-}
-.fa-caret-right:before {
- content: "\F0DA "
-}
-.fa-columns:before {
- content: "\F0DB "
-}
-.fa-unsorted:before,
-.fa-sort:before {
- content: "\F0DC "
-}
-.fa-sort-down:before,
-.fa-sort-desc:before {
- content: "\F0DD "
-}
-.fa-sort-up:before,
-.fa-sort-asc:before {
- content: "\F0DE "
-}
-.fa-envelope:before {
- content: "\F0E0 "
-}
-.fa-linkedin:before {
- content: "\F0E1 "
-}
-.fa-rotate-left:before,
-.fa-undo:before {
- content: "\F0E2 "
-}
-.fa-legal:before,
-.fa-gavel:before {
- content: "\F0E3 "
-}
-.fa-dashboard:before,
-.fa-tachometer:before {
- content: "\F0E4 "
-}
-.fa-comment-o:before {
- content: "\F0E5 "
-}
-.fa-comments-o:before {
- content: "\F0E6 "
-}
-.fa-flash:before,
-.fa-bolt:before {
- content: "\F0E7 "
-}
-.fa-sitemap:before {
- content: "\F0E8 "
-}
-.fa-umbrella:before {
- content: "\F0E9 "
-}
-.fa-paste:before,
-.fa-clipboard:before {
- content: "\F0EA "
-}
-.fa-lightbulb-o:before {
- content: "\F0EB "
-}
-.fa-exchange:before {
- content: "\F0EC "
-}
-.fa-cloud-download:before {
- content: "\F0ED "
-}
-.fa-cloud-upload:before {
- content: "\F0EE "
-}
-.fa-user-md:before {
- content: "\F0F0 "
-}
-.fa-stethoscope:before {
- content: "\F0F1 "
-}
-.fa-suitcase:before {
- content: "\F0F2 "
-}
-.fa-bell-o:before {
- content: "\F0A2 "
-}
-.fa-coffee:before {
- content: "\F0F4 "
-}
-.fa-cutlery:before {
- content: "\F0F5 "
-}
-.fa-file-text-o:before {
- content: "\F0F6 "
-}
-.fa-building-o:before {
- content: "\F0F7 "
-}
-.fa-hospital-o:before {
- content: "\F0F8 "
-}
-.fa-ambulance:before {
- content: "\F0F9 "
-}
-.fa-medkit:before {
- content: "\F0FA "
-}
-.fa-fighter-jet:before {
- content: "\F0FB "
-}
-.fa-beer:before {
- content: "\F0FC "
-}
-.fa-h-square:before {
- content: "\F0FD "
-}
-.fa-plus-square:before {
- content: "\F0FE "
-}
-.fa-angle-double-left:before {
- content: "\F100 "
-}
-.fa-angle-double-right:before {
- content: "\F101 "
-}
-.fa-angle-double-up:before {
- content: "\F102 "
-}
-.fa-angle-double-down:before {
- content: "\F103 "
-}
-.fa-angle-left:before {
- content: "\F104 "
-}
-.fa-angle-right:before {
- content: "\F105 "
-}
-.fa-angle-up:before {
- content: "\F106 "
-}
-.fa-angle-down:before {
- content: "\F107 "
-}
-.fa-desktop:before {
- content: "\F108 "
-}
-.fa-laptop:before {
- content: "\F109 "
-}
-.fa-tablet:before {
- content: "\F10A "
-}
-.fa-mobile-phone:before,
-.fa-mobile:before {
- content: "\F10B "
-}
-.fa-circle-o:before {
- content: "\F10C "
-}
-.fa-quote-left:before {
- content: "\F10D "
-}
-.fa-quote-right:before {
- content: "\F10E "
-}
-.fa-spinner:before {
- content: "\F110 "
-}
-.fa-circle:before {
- content: "\F111 "
-}
-.fa-mail-reply:before,
-.fa-reply:before {
- content: "\F112 "
-}
-.fa-github-alt:before {
- content: "\F113 "
-}
-.fa-folder-o:before {
- content: "\F114 "
-}
-.fa-folder-open-o:before {
- content: "\F115 "
-}
-.fa-smile-o:before {
- content: "\F118 "
-}
-.fa-frown-o:before {
- content: "\F119 "
-}
-.fa-meh-o:before {
- content: "\F11A "
-}
-.fa-gamepad:before {
- content: "\F11B "
-}
-.fa-keyboard-o:before {
- content: "\F11C "
-}
-.fa-flag-o:before {
- content: "\F11D "
-}
-.fa-flag-checkered:before {
- content: "\F11E "
-}
-.fa-terminal:before {
- content: "\F120 "
-}
-.fa-code:before {
- content: "\F121 "
-}
-.fa-mail-reply-all:before,
-.fa-reply-all:before {
- content: "\F122 "
-}
-.fa-star-half-empty:before,
-.fa-star-half-full:before,
-.fa-star-half-o:before {
- content: "\F123 "
-}
-.fa-location-arrow:before {
- content: "\F124 "
-}
-.fa-crop:before {
- content: "\F125 "
-}
-.fa-code-fork:before {
- content: "\F126 "
-}
-.fa-unlink:before,
-.fa-chain-broken:before {
- content: "\F127 "
-}
-.fa-question:before {
- content: "\F128 "
-}
-.fa-info:before {
- content: "\F129 "
-}
-.fa-exclamation:before {
- content: "\F12A "
-}
-.fa-superscript:before {
- content: "\F12B "
-}
-.fa-subscript:before {
- content: "\F12C "
-}
-.fa-eraser:before {
- content: "\F12D "
-}
-.fa-puzzle-piece:before {
- content: "\F12E "
-}
-.fa-microphone:before {
- content: "\F130 "
-}
-.fa-microphone-slash:before {
- content: "\F131 "
-}
-.fa-shield:before {
- content: "\F132 "
-}
-.fa-calendar-o:before {
- content: "\F133 "
-}
-.fa-fire-extinguisher:before {
- content: "\F134 "
-}
-.fa-rocket:before {
- content: "\F135 "
-}
-.fa-maxcdn:before {
- content: "\F136 "
-}
-.fa-chevron-circle-left:before {
- content: "\F137 "
-}
-.fa-chevron-circle-right:before {
- content: "\F138 "
-}
-.fa-chevron-circle-up:before {
- content: "\F139 "
-}
-.fa-chevron-circle-down:before {
- content: "\F13A "
-}
-.fa-html5:before {
- content: "\F13B "
-}
-.fa-css3:before {
- content: "\F13C "
-}
-.fa-anchor:before {
- content: "\F13D "
-}
-.fa-unlock-alt:before {
- content: "\F13E "
-}
-.fa-bullseye:before {
- content: "\F140 "
-}
-.fa-ellipsis-h:before {
- content: "\F141 "
-}
-.fa-ellipsis-v:before {
- content: "\F142 "
-}
-.fa-rss-square:before {
- content: "\F143 "
-}
-.fa-play-circle:before {
- content: "\F144 "
-}
-.fa-ticket:before {
- content: "\F145 "
-}
-.fa-minus-square:before {
- content: "\f146"
-}
-.fa-minus-square-o:before,
-.wy-menu-vertical li.on a span.toctree-expand:before,
-.wy-menu-vertical li.current>a span.toctree-expand:before {
- content: "\f147"
-}
-.fa-level-up:before {
- content: "\F148 "
-}
-.fa-level-down:before {
- content: "\F149 "
-}
-.fa-check-square:before {
- content: "\F14A "
-}
-.fa-pencil-square:before {
- content: "\F14B "
-}
-.fa-external-link-square:before {
- content: "\F14C "
-}
-.fa-share-square:before {
- content: "\F14D "
-}
-.fa-compass:before {
- content: "\F14E "
-}
-.fa-toggle-down:before,
-.fa-caret-square-o-down:before {
- content: "\F150 "
-}
-.fa-toggle-up:before,
-.fa-caret-square-o-up:before {
- content: "\F151 "
-}
-.fa-toggle-right:before,
-.fa-caret-square-o-right:before {
- content: "\F152 "
-}
-.fa-euro:before,
-.fa-eur:before {
- content: "\F153 "
-}
-.fa-gbp:before {
- content: "\F154 "
-}
-.fa-dollar:before,
-.fa-usd:before {
- content: "\F155 "
-}
-.fa-rupee:before,
-.fa-inr:before {
- content: "\F156 "
-}
-.fa-cny:before,
-.fa-rmb:before,
-.fa-yen:before,
-.fa-jpy:before {
- content: "\F157 "
-}
-.fa-ruble:before,
-.fa-rouble:before,
-.fa-rub:before {
- content: "\F158 "
-}
-.fa-won:before,
-.fa-krw:before {
- content: "\F159 "
-}
-.fa-bitcoin:before,
-.fa-btc:before {
- content: "\F15A "
-}
-.fa-file:before {
- content: "\F15B "
-}
-.fa-file-text:before {
- content: "\F15C "
-}
-.fa-sort-alpha-asc:before {
- content: "\F15D "
-}
-.fa-sort-alpha-desc:before {
- content: "\F15E "
-}
-.fa-sort-amount-asc:before {
- content: "\F160 "
-}
-.fa-sort-amount-desc:before {
- content: "\F161 "
-}
-.fa-sort-numeric-asc:before {
- content: "\F162 "
-}
-.fa-sort-numeric-desc:before {
- content: "\F163 "
-}
-.fa-thumbs-up:before {
- content: "\F164 "
-}
-.fa-thumbs-down:before {
- content: "\F165 "
-}
-.fa-youtube-square:before {
- content: "\F166 "
-}
-.fa-youtube:before {
- content: "\F167 "
-}
-.fa-xing:before {
- content: "\F168 "
-}
-.fa-xing-square:before {
- content: "\F169 "
-}
-.fa-youtube-play:before {
- content: "\F16A "
-}
-.fa-dropbox:before {
- content: "\F16B "
-}
-.fa-stack-overflow:before {
- content: "\F16C "
-}
-.fa-instagram:before {
- content: "\F16D "
-}
-.fa-flickr:before {
- content: "\F16E "
-}
-.fa-adn:before {
- content: "\F170 "
-}
-.fa-bitbucket:before,
-.icon-bitbucket:before {
- content: "\F171 "
-}
-.fa-bitbucket-square:before {
- content: "\F172 "
-}
-.fa-tumblr:before {
- content: "\F173 "
-}
-.fa-tumblr-square:before {
- content: "\F174 "
-}
-.fa-long-arrow-down:before {
- content: "\F175 "
-}
-.fa-long-arrow-up:before {
- content: "\F176 "
-}
-.fa-long-arrow-left:before {
- content: "\F177 "
-}
-.fa-long-arrow-right:before {
- content: "\F178 "
-}
-.fa-apple:before {
- content: "\F179 "
-}
-.fa-windows:before {
- content: "\F17A "
-}
-.fa-android:before {
- content: "\F17B "
-}
-.fa-linux:before {
- content: "\F17C "
-}
-.fa-dribbble:before {
- content: "\F17D "
-}
-.fa-skype:before {
- content: "\F17E "
-}
-.fa-foursquare:before {
- content: "\F180 "
-}
-.fa-trello:before {
- content: "\F181 "
-}
-.fa-female:before {
- content: "\F182 "
-}
-.fa-male:before {
- content: "\F183 "
-}
-.fa-gittip:before {
- content: "\F184 "
-}
-.fa-sun-o:before {
- content: "\F185 "
-}
-.fa-moon-o:before {
- content: "\F186 "
-}
-.fa-archive:before {
- content: "\F187 "
-}
-.fa-bug:before {
- content: "\F188 "
-}
-.fa-vk:before {
- content: "\F189 "
-}
-.fa-weibo:before {
- content: "\F18A "
-}
-.fa-renren:before {
- content: "\F18B "
-}
-.fa-pagelines:before {
- content: "\F18C "
-}
-.fa-stack-exchange:before {
- content: "\F18D "
-}
-.fa-arrow-circle-o-right:before {
- content: "\F18E "
-}
-.fa-arrow-circle-o-left:before {
- content: "\F190 "
-}
-.fa-toggle-left:before,
-.fa-caret-square-o-left:before {
- content: "\F191 "
-}
-.fa-dot-circle-o:before {
- content: "\F192 "
-}
-.fa-wheelchair:before {
- content: "\F193 "
-}
-.fa-vimeo-square:before {
- content: "\F194 "
-}
-.fa-turkish-lira:before,
-.fa-try:before {
- content: "\F195 "
-}
-.fa-plus-square-o:before,
-.wy-menu-vertical li span.toctree-expand:before {
- content: "\f196"
-}
-.fa-space-shuttle:before {
- content: "\F197 "
-}
-.fa-slack:before {
- content: "\F198 "
-}
-.fa-envelope-square:before {
- content: "\F199 "
-}
-.fa-wordpress:before {
- content: "\F19A "
-}
-.fa-openid:before {
- content: "\F19B "
-}
-.fa-institution:before,
-.fa-bank:before,
-.fa-university:before {
- content: "\F19C "
-}
-.fa-mortar-board:before,
-.fa-graduation-cap:before {
- content: "\F19D "
-}
-.fa-yahoo:before {
- content: "\F19E "
-}
-.fa-google:before {
- content: "\F1A0 "
-}
-.fa-reddit:before {
- content: "\F1A1 "
-}
-.fa-reddit-square:before {
- content: "\F1A2 "
-}
-.fa-stumbleupon-circle:before {
- content: "\F1A3 "
-}
-.fa-stumbleupon:before {
- content: "\F1A4 "
-}
-.fa-delicious:before {
- content: "\F1A5 "
-}
-.fa-digg:before {
- content: "\F1A6 "
-}
-.fa-pied-piper:before {
- content: "\F1A7 "
-}
-.fa-pied-piper-alt:before {
- content: "\F1A8 "
-}
-.fa-drupal:before {
- content: "\F1A9 "
-}
-.fa-joomla:before {
- content: "\F1AA "
-}
-.fa-language:before {
- content: "\F1AB "
-}
-.fa-fax:before {
- content: "\F1AC "
-}
-.fa-building:before {
- content: "\F1AD "
-}
-.fa-child:before {
- content: "\F1AE "
-}
-.fa-paw:before {
- content: "\F1B0 "
-}
-.fa-spoon:before {
- content: "\F1B1 "
-}
-.fa-cube:before {
- content: "\F1B2 "
-}
-.fa-cubes:before {
- content: "\F1B3 "
-}
-.fa-behance:before {
- content: "\F1B4 "
-}
-.fa-behance-square:before {
- content: "\F1B5 "
-}
-.fa-steam:before {
- content: "\F1B6 "
-}
-.fa-steam-square:before {
- content: "\F1B7 "
-}
-.fa-recycle:before {
- content: "\F1B8 "
-}
-.fa-automobile:before,
-.fa-car:before {
- content: "\F1B9 "
-}
-.fa-cab:before,
-.fa-taxi:before {
- content: "\F1BA "
-}
-.fa-tree:before {
- content: "\F1BB "
-}
-.fa-spotify:before {
- content: "\F1BC "
-}
-.fa-deviantart:before {
- content: "\F1BD "
-}
-.fa-soundcloud:before {
- content: "\F1BE "
-}
-.fa-database:before {
- content: "\F1C0 "
-}
-.fa-file-pdf-o:before {
- content: "\F1C1 "
-}
-.fa-file-word-o:before {
- content: "\F1C2 "
-}
-.fa-file-excel-o:before {
- content: "\F1C3 "
-}
-.fa-file-powerpoint-o:before {
- content: "\F1C4 "
-}
-.fa-file-photo-o:before,
-.fa-file-picture-o:before,
-.fa-file-image-o:before {
- content: "\F1C5 "
-}
-.fa-file-zip-o:before,
-.fa-file-archive-o:before {
- content: "\F1C6 "
-}
-.fa-file-sound-o:before,
-.fa-file-audio-o:before {
- content: "\F1C7 "
-}
-.fa-file-movie-o:before,
-.fa-file-video-o:before {
- content: "\F1C8 "
-}
-.fa-file-code-o:before {
- content: "\F1C9 "
-}
-.fa-vine:before {
- content: "\F1CA "
-}
-.fa-codepen:before {
- content: "\F1CB "
-}
-.fa-jsfiddle:before {
- content: "\F1CC "
-}
-.fa-life-bouy:before,
-.fa-life-buoy:before,
-.fa-life-saver:before,
-.fa-support:before,
-.fa-life-ring:before {
- content: "\F1CD "
-}
-.fa-circle-o-notch:before {
- content: "\F1CE "
-}
-.fa-ra:before,
-.fa-rebel:before {
- content: "\F1D0 "
-}
-.fa-ge:before,
-.fa-empire:before {
- content: "\F1D1 "
-}
-.fa-git-square:before {
- content: "\F1D2 "
-}
-.fa-git:before {
- content: "\F1D3 "
-}
-.fa-hacker-news:before {
- content: "\F1D4 "
-}
-.fa-tencent-weibo:before {
- content: "\F1D5 "
-}
-.fa-qq:before {
- content: "\F1D6 "
-}
-.fa-wechat:before,
-.fa-weixin:before {
- content: "\F1D7 "
-}
-.fa-send:before,
-.fa-paper-plane:before {
- content: "\F1D8 "
-}
-.fa-send-o:before,
-.fa-paper-plane-o:before {
- content: "\F1D9 "
-}
-.fa-history:before {
- content: "\F1DA "
-}
-.fa-circle-thin:before {
- content: "\F1DB "
-}
-.fa-header:before {
- content: "\F1DC "
-}
-.fa-paragraph:before {
- content: "\F1DD "
-}
-.fa-sliders:before {
- content: "\F1DE "
-}
-.fa-share-alt:before {
- content: "\F1E0 "
-}
-.fa-share-alt-square:before {
- content: "\F1E1 "
-}
-.fa-bomb:before {
- content: "\F1E2 "
-}
-.fa-soccer-ball-o:before,
-.fa-futbol-o:before {
- content: "\F1E3 "
-}
-.fa-tty:before {
- content: "\F1E4 "
-}
-.fa-binoculars:before {
- content: "\F1E5 "
-}
-.fa-plug:before {
- content: "\F1E6 "
-}
-.fa-slideshare:before {
- content: "\F1E7 "
-}
-.fa-twitch:before {
- content: "\F1E8 "
-}
-.fa-yelp:before {
- content: "\F1E9 "
-}
-.fa-newspaper-o:before {
- content: "\F1EA "
-}
-.fa-wifi:before {
- content: "\F1EB "
-}
-.fa-calculator:before {
- content: "\F1EC "
-}
-.fa-paypal:before {
- content: "\F1ED "
-}
-.fa-google-wallet:before {
- content: "\F1EE "
-}
-.fa-cc-visa:before {
- content: "\F1F0 "
-}
-.fa-cc-mastercard:before {
- content: "\F1F1 "
-}
-.fa-cc-discover:before {
- content: "\F1F2 "
-}
-.fa-cc-amex:before {
- content: "\F1F3 "
-}
-.fa-cc-paypal:before {
- content: "\F1F4 "
-}
-.fa-cc-stripe:before {
- content: "\F1F5 "
-}
-.fa-bell-slash:before {
- content: "\F1F6 "
-}
-.fa-bell-slash-o:before {
- content: "\F1F7 "
-}
-.fa-trash:before {
- content: "\F1F8 "
-}
-.fa-copyright:before {
- content: "\F1F9 "
-}
-.fa-at:before {
- content: "\F1FA "
-}
-.fa-eyedropper:before {
- content: "\F1FB "
-}
-.fa-paint-brush:before {
- content: "\F1FC "
-}
-.fa-birthday-cake:before {
- content: "\F1FD "
-}
-.fa-area-chart:before {
- content: "\F1FE "
-}
-.fa-pie-chart:before {
- content: "\F200 "
-}
-.fa-line-chart:before {
- content: "\F201 "
-}
-.fa-lastfm:before {
- content: "\F202 "
-}
-.fa-lastfm-square:before {
- content: "\F203 "
-}
-.fa-toggle-off:before {
- content: "\F204 "
-}
-.fa-toggle-on:before {
- content: "\F205 "
-}
-.fa-bicycle:before {
- content: "\F206 "
-}
-.fa-bus:before {
- content: "\F207 "
-}
-.fa-ioxhost:before {
- content: "\F208 "
-}
-.fa-angellist:before {
- content: "\F209 "
-}
-.fa-cc:before {
- content: "\F20A "
-}
-.fa-shekel:before,
-.fa-sheqel:before,
-.fa-ils:before {
- content: "\F20B "
-}
-.fa-meanpath:before {
- content: "\F20C "
-}
\ No newline at end of file
diff --git a/docs/client_handbook/_build/html/_static/css/trueos_style.css b/docs/client_handbook/_build/html/_static/css/trueos_style.css
deleted file mode 100644
index c42d615..0000000
--- a/docs/client_handbook/_build/html/_static/css/trueos_style.css
+++ /dev/null
@@ -1,4057 +0,0 @@
-/**** Hand built CSS theme ****/
-/*** original ****/
-/*""""""""""""""""""""""""""""""""""""""""""""""""""""""""*
- | Copied css with fa-entities fixed - sourced externally |
- | to reduce the size/complexity of this css. (BEGIN) |
- *""""""""""""""""""""""""""""""""""""""""""""""""""""""""*/
-@import 'font_awesome.css';
-
-/* {
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box
-} */
-
-article,
-aside,
-details,
-figcaption,
-figure,
-footer,
-header,
-hgroup,
-nav,
-section {
- display: block
-}
-audio,
-canvas,
-video {
- display: inline-block;
- *display: inline;
- *zoom: 1
-}
-audio:not([controls]) {
- display: none
-}
-[hidden] {
- display: none
-}
-html {
- font-size: 100%;
- -webkit-text-size-adjust: 100%;
- -ms-text-size-adjust: 100%
-}
-body {
- margin: 0
-}
-a:hover,
-a:active {
- outline: 0
-}
-abbr[title] {
- border-bottom: 1px dotted
-}
-b,
-strong {
- font-weight: bold
-}
-blockquote {
- margin: 0
-}
-dfn {
- font-style: italic
-}
-ins {
- background: #ff9;
- color: #000;
- text-decoration: none
-}
-mark {
- background: #ff0;
- color: #000;
- font-style: italic;
- font-weight: bold
-}
-pre,
-code,
-.rst-content tt,
-.rst-content code,
-kbd,
-samp {
- font-family: monospace, serif;
- _font-family: "courier new", monospace;
- font-size: 1em
-}
-pre {
- white-space: pre
-}
-q {
- quotes: none
-}
-q:before,
-q:after {
- content: "";
- content: none
-}
-small {
- font-size: 85%
-}
-sub,
-sup {
- font-size: 75%;
- line-height: 0;
- position: relative;
- vertical-align: baseline
-}
-sup {
- top: -0.5em
-}
-sub {
- bottom: -0.25em
-}
-ul,
-ol,
-dl {
- margin: 0;
- padding: 0;
- list-style: none;
- list-style-image: none
-}
-/* custom */
-ul.simple {
- margin-bottom: 16px;
- line-height: 26px;
-}
-/* Custom */
-li {
- list-style: none
-}
-dd {
- margin: 0
-}
-img {
- border: 0;
- -ms-interpolation-mode: bicubic;
- vertical-align: middle;
- max-width: 100%
-}
-svg:not(:root) {
- overflow: hidden
-}
-figure {
- margin: 0
-}
-form {
- margin: 0
-}
-fieldset {
- border: 0;
- margin: 0;
- padding: 0
-}
-label {
- cursor: pointer
-}
-legend {
- border: 0;
- *margin-left: -7px;
- padding: 0;
- white-space: normal
-}
-button,
-input,
-select,
-textarea {
- font-size: 100%;
- margin: 0;
- vertical-align: baseline;
- *vertical-align: middle
-}
-button,
-input {
- line-height: normal
-}
-button,
-input[type="button"],
-input[type="reset"],
-input[type="submit"] {
- cursor: pointer;
- -webkit-appearance: button;
- *overflow: visible
-}
-button[disabled],
-input[disabled] {
- cursor: default
-}
-input[type="checkbox"],
-input[type="radio"] {
- box-sizing: border-box;
- padding: 0;
- *width: 13px;
- *height: 13px
-}
-input[type="search"] {
- -webkit-appearance: textfield;
- -moz-box-sizing: content-box;
- -webkit-box-sizing: content-box;
- box-sizing: content-box
-}
-input[type="search"]::-webkit-search-decoration,
-input[type="search"]::-webkit-search-cancel-button {
- -webkit-appearance: none
-}
-button::-moz-focus-inner,
-input::-moz-focus-inner {
- border: 0;
- padding: 0
-}
-textarea {
- overflow: auto;
- vertical-align: top;
- resize: vertical
-}
-table {
- border-collapse: collapse;
- border-spacing: 0
-}
-td {
- vertical-align: top
-}
-.chromeframe {
- margin: 0.2em 0;
- background: #ccc;
- color: #000;
- padding: 0.2em 0
-}
-.ir {
- display: block;
- border: 0;
- text-indent: -999em;
- overflow: hidden;
- background-color: transparent;
- background-repeat: no-repeat;
- text-align: left;
- direction: ltr;
- *line-height: 0
-}
-.ir br {
- display: none
-}
-.hidden {
- display: none;
- visibility: hidden
-}
-.visuallyhidden {
- border: 0;
- clip: rect(0 0 0 0);
- height: 1px;
- margin: -1px;
- overflow: hidden;
- padding: 0;
- position: absolute;
- width: 1px
-}
-.visuallyhidden.focusable:active,
-.visuallyhidden.focusable:focus {
- clip: auto;
- height: auto;
- margin: 0;
- overflow: visible;
- position: static;
- width: auto
-}
-.invisible {
- visibility: hidden
-}
-.relative {
- position: relative
-}
-big,
-small {
- font-size: 100%
-}
-@media print {
- html,
- body,
- section {
- background: none !important
- }
- * {
- box-shadow: none !important;
- text-shadow: none !important;
- filter: none !important;
- -ms-filter: none !important
- }
- a,
- a:visited {
- text-decoration: underline
- }
- .ir a:after,
- a[href^="javascript:"]:after,
- a[href^="#"]:after {
- content: ""
- }
- pre,
- blockquote {
- page-break-inside: avoid
- }
- thead {
- display: table-header-group
- }
- tr,
- img {
- page-break-inside: avoid
- }
- img {
- max-width: 100% !important
- }
- @page {
- margin: 0.5cm
- }
- p,
- h2,
- .rst-content p.caption,
- h3 {
- orphans: 3;
- widows: 3
- }
- h2,
- .rst-content p.caption,
- h3 {
- page-break-after: avoid
- }
-}
-.fa:before,
-.wy-menu-vertical li span.toctree-expand:before,
-.wy-menu-vertical li.on a span.toctree-expand:before,
-.wy-menu-vertical li.current>a span.toctree-expand:before,
-.rst-content .admonition-title:before,
-.rst-content h1 .headerlink:before,
-.rst-content h2 .headerlink:before,
-.rst-content p.caption .headerlink:before,
-.rst-content h3 .headerlink:before,
-.rst-content h4 .headerlink:before,
-.rst-content h5 .headerlink:before,
-.rst-content h6 .headerlink:before,
-.rst-content dl dt .headerlink:before,
-.rst-content tt.download span:first-child:before,
-.rst-content code.download span:first-child:before,
-.icon:before,
-.wy-dropdown .caret:before,
-.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,
-.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,
-.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,
-.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,
-.wy-alert,
-.rst-content .note,
-.rst-content .attention,
-.rst-content .caution,
-.rst-content .danger,
-.rst-content .error,
-.rst-content .hint,
-.rst-content .important,
-.rst-content .tip,
-.rst-content .warning,
-.rst-content .seealso,
-.rst-content .admonition-todo,
-.btn,
-input[type="text"],
-input[type="password"],
-input[type="email"],
-input[type="url"],
-input[type="date"],
-input[type="month"],
-input[type="time"],
-input[type="datetime"],
-input[type="datetime-local"],
-input[type="week"],
-input[type="number"],
-input[type="search"],
-input[type="tel"],
-input[type="color"],
-select,
-textarea,
-.wy-menu-vertical li.on a,
-.wy-menu-vertical li.current>a,
-.wy-side-nav-search>a,
-.wy-side-nav-search .wy-dropdown>a,
-.wy-nav-top a {
- -webkit-font-smoothing: antialiased
-}
-.clearfix {
- *zoom: 1
-}
-.clearfix:before,
-.clearfix:after {
- display: table;
- content: ""
-}
-.clearfix:after {
- clear: both
-}
-
-.fa,
-.wy-menu-vertical li span.toctree-expand,
-.wy-menu-vertical li.on a span.toctree-expand,
-.wy-menu-vertical li.current>a span.toctree-expand,
-.rst-content .admonition-title,
-.rst-content h1 .headerlink,
-.rst-content h2 .headerlink,
-.rst-content p.caption .headerlink,
-.rst-content h3 .headerlink,
-.rst-content h4 .headerlink,
-.rst-content h5 .headerlink,
-.rst-content h6 .headerlink,
-.rst-content dl dt .headerlink,
-.rst-content tt.download span:first-child,
-.rst-content code.download span:first-child,
-.icon,
-.wy-dropdown .caret,
-.wy-inline-validate.wy-inline-validate-success .wy-input-context,
-.wy-inline-validate.wy-inline-validate-danger .wy-input-context,
-.wy-inline-validate.wy-inline-validate-warning .wy-input-context,
-.wy-inline-validate.wy-inline-validate-info .wy-input-context {
- font-family: inherit
-}
-.fa:before,
-.wy-menu-vertical li span.toctree-expand:before,
-.wy-menu-vertical li.on a span.toctree-expand:before,
-.wy-menu-vertical li.current>a span.toctree-expand:before,
-.rst-content .admonition-title:before,
-.rst-content h1 .headerlink:before,
-.rst-content h2 .headerlink:before,
-.rst-content p.caption .headerlink:before,
-.rst-content h3 .headerlink:before,
-.rst-content h4 .headerlink:before,
-.rst-content h5 .headerlink:before,
-.rst-content h6 .headerlink:before,
-.rst-content dl dt .headerlink:before,
-.rst-content tt.download span:first-child:before,
-.rst-content code.download span:first-child:before,
-.icon:before,
-.wy-dropdown .caret:before,
-.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,
-.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,
-.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,
-.wy-inline-validate.wy-inline-validate-info .wy-input-context:before {
- font-family: "FontAwesome";
- display: inline-block;
- font-style: normal;
- font-weight: normal;
- line-height: 1;
- text-decoration: inherit
-}
-a .fa,
-a .wy-menu-vertical li span.toctree-expand,
-.wy-menu-vertical li a span.toctree-expand,
-.wy-menu-vertical li.on a span.toctree-expand,
-.wy-menu-vertical li.current>aAdd RSS Feed, View Feed Details, Settings, and
-Update Feeds Now span.toctree-expand,
-a .rst-content .admonition-title,
-.rst-content a .admonition-title,
-a .rst-content h1 .headerlink,
-.rst-content h1 a .headerlink,
-a .rst-content h2 .headerlink,
-.rst-content h2 a .headerlink,
-a .rst-content p.caption .headerlink,
-.rst-content p.caption a .headerlink,
-a .rst-content h3 .headerlink,
-.rst-content h3 a .headerlink,
-a .rst-content h4 .headerlink,
-.rst-content h4 a .headerlink,
-a .rst-content h5 .headerlink,
-.rst-content h5 a .headerlink,
-a .rst-content h6 .headerlink,
-.rst-content h6 a .headerlink,
-a .rst-content dl dt .headerlink,
-.rst-content dl dt a .headerlink,
-a .rst-content tt.download span:first-child,
-.rst-content tt.download a span:first-child,
-a .rst-content code.download span:first-child,
-.rst-content code.download a span:first-child,
-a .icon {
- display: inline-block;
- text-decoration: inherit
-}
-.btn .fa,
-.btn .wy-menu-vertical li span.toctree-expand,
-.wy-menu-vertical li .btn span.toctree-expand,
-.btn .wy-menu-vertical li.on a span.toctree-expand,
-.wy-menu-vertical li.on a .btn span.toctree-expand,
-.btn .wy-menu-vertical li.current>a span.toctree-expand,
-.wy-menu-vertical li.current>a .btn span.toctree-expand,
-.btn .rst-content .admonition-title,
-.rst-content .btn .admonition-title,
-.btn .rst-content h1 .headerlink,
-.rst-content h1 .btn .headerlink,
-.btn .rst-content h2 .headerlink,
-.rst-content h2 .btn .headerlink,
-.btn .rst-content p.caption .headerlink,
-.rst-content p.caption .btn .headerlink,
-.btn .rst-content h3 .headerlink,
-.rst-content h3 .btn .headerlink,
-.btn .rst-content h4 .headerlink,
-.rst-content h4 .btn .headerlink,
-.btn .rst-content h5 .headerlink,
-.rst-content h5 .btn .headerlink,
-.btn .rst-content h6 .headerlink,
-.rst-content h6 .btn .headerlink,
-.btn .rst-content dl dt .headerlink,
-.rst-content dl dt .btn .headerlink,
-.btn .rst-content tt.download span:first-child,
-.rst-content tt.download .btn span:first-child,
-.btn .rst-content code.download span:first-child,
-.rst-content code.download .btn span:first-child,
-.btn .icon,
-.nav .fa,
-.nav .wy-menu-vertical li span.toctree-expand,
-.wy-menu-vertical li .nav span.toctree-expand,
-.nav .wy-menu-vertical li.on a span.toctree-expand,
-.wy-menu-vertical li.on a .nav span.toctree-expand,
-.nav .wy-menu-vertical li.current>a span.toctree-expand,
-.wy-menu-vertical li.current>a .nav span.toctree-expand,
-.nav .rst-content .admonition-title,
-.rst-content .nav .admonition-title,
-.nav .rst-content h1 .headerlink,
-.rst-content h1 .nav .headerlink,
-.nav .rst-content h2 .headerlink,
-.rst-content h2 .nav .headerlink,
-.nav .rst-content p.caption .headerlink,
-.rst-content p.caption .nav .headerlink,
-.nav .rst-content h3 .headerlink,
-.rst-content h3 .nav .headerlink,
-.nav .rst-content h4 .headerlink,
-.rst-content h4 .nav .headerlink,
-.nav .rst-content h5 .headerlink,
-.rst-content h5 .nav .headerlink,
-.nav .rst-content h6 .headerlink,
-.rst-content h6 .nav .headerlink,
-.nav .rst-content dl dt .headerlink,
-.rst-content dl dt .nav .headerlink,
-.nav .rst-content tt.download span:first-child,
-.rst-content tt.download .nav span:first-child,
-.nav .rst-content code.download span:first-child,
-.rst-content code.download .nav span:first-child,
-.nav .icon {
- display: inline
-}
-.btn .fa.fa-large,
-.btn .wy-menu-vertical li span.fa-large.toctree-expand,
-.wy-menu-vertical li .btn span.fa-large.toctree-expand,
-.btn .rst-content .fa-large.admonition-title,
-.rst-content .btn .fa-large.admonition-title,
-.btn .rst-content h1 .fa-large.headerlink,
-.rst-content h1 .btn .fa-large.headerlink,
-.btn .rst-content h2 .fa-large.headerlink,
-.rst-content h2 .btn .fa-large.headerlink,
-.btn .rst-content p.caption .fa-large.headerlink,
-.rst-content p.caption .btn .fa-large.headerlink,
-.btn .rst-content h3 .fa-large.headerlink,
-.rst-content h3 .btn .fa-large.headerlink,
-.btn .rst-content h4 .fa-large.headerlink,
-.rst-content h4 .btn .fa-large.headerlink,
-.btn .rst-content h5 .fa-large.headerlink,
-.rst-content h5 .btn .fa-large.headerlink,
-.btn .rst-content h6 .fa-large.headerlink,
-.rst-content h6 .btn .fa-large.headerlink,
-.btn .rst-content dl dt .fa-large.headerlink,
-.rst-content dl dt .btn .fa-large.headerlink,
-.btn .rst-content tt.download span.fa-large:first-child,
-.rst-content tt.download .btn span.fa-large:first-child,
-.btn .rst-content code.download span.fa-large:first-child,
-.rst-content code.download .btn span.fa-large:first-child,
-.btn .fa-large.icon,
-.nav .fa.fa-large,
-.nav .wy-menu-vertical li span.fa-large.toctree-expand,
-.wy-menu-vertical li .nav span.fa-large.toctree-expand,
-.nav .rst-content .fa-large.admonition-title,
-.rst-content .nav .fa-large.admonition-title,
-.nav .rst-content h1 .fa-large.headerlink,
-.rst-content h1 .nav .fa-large.headerlink,
-.nav .rst-content h2 .fa-large.headerlink,
-.rst-content h2 .nav .fa-large.headerlink,
-.nav .rst-content p.caption .fa-large.headerlink,
-.rst-content p.caption .nav .fa-large.headerlink,
-.nav .rst-content h3 .fa-large.headerlink,
-.rst-content h3 .nav .fa-large.headerlink,
-.nav .rst-content h4 .fa-large.headerlink,
-.rst-content h4 .nav .fa-large.headerlink,
-.nav .rst-content h5 .fa-large.headerlink,
-.rst-content h5 .nav .fa-large.headerlink,
-.nav .rst-content h6 .fa-large.headerlink,
-.rst-content h6 .nav .fa-large.headerlink,
-.nav .rst-content dl dt .fa-large.headerlink,
-.rst-content dl dt .nav .fa-large.headerlink,
-.nav .rst-content tt.download span.fa-large:first-child,
-.rst-content tt.download .nav span.fa-large:first-child,
-.nav .rst-content code.download span.fa-large:first-child,
-.rst-content code.download .nav span.fa-large:first-child,
-.nav .fa-large.icon {
- line-height: 0.9em
-}
-.btn .fa.fa-spin,
-.btn .wy-menu-vertical li span.fa-spin.toctree-expand,
-.wy-menu-vertical li .btn span.fa-spin.toctree-expand,
-.btn .rst-content .fa-spin.admonition-title,
-.rst-content .btn .fa-spin.admonition-title,
-.btn .rst-content h1 .fa-spin.headerlink,
-.rst-content h1 .btn .fa-spin.headerlink,
-.btn .rst-content h2 .fa-spin.headerlink,
-.rst-content h2 .btn .fa-spin.headerlink,
-.btn .rst-content p.caption .fa-spin.headerlink,
-.rst-content p.caption .btn .fa-spin.headerlink,
-.btn .rst-content h3 .fa-spin.headerlink,
-.rst-content h3 .btn .fa-spin.headerlink,
-.btn .rst-content h4 .fa-spin.headerlink,
-.rst-content h4 .btn .fa-spin.headerlink,
-.btn .rst-content h5 .fa-spin.headerlink,
-.rst-content h5 .btn .fa-spin.headerlink,
-.btn .rst-content h6 .fa-spin.headerlink,
-.rst-content h6 .btn .fa-spin.headerlink,
-.btn .rst-content dl dt .fa-spin.headerlink,
-.rst-content dl dt .btn .fa-spin.headerlink,
-.btn .rst-content tt.download span.fa-spin:first-child,
-.rst-content tt.download .btn span.fa-spin:first-child,
-.btn .rst-content code.download span.fa-spin:first-child,
-.rst-content code.download .btn span.fa-spin:first-child,
-.btn .fa-spin.icon,
-.nav .fa.fa-spin,
-.nav .wy-menu-vertical li span.fa-spin.toctree-expand,
-.wy-menu-vertical li .nav span.fa-spin.toctree-expand,
-.nav .rst-content .fa-spin.admonition-title,
-.rst-content .nav .fa-spin.admonition-title,
-.nav .rst-content h1 .fa-spin.headerlink,
-.rst-content h1 .nav .fa-spin.headerlink,
-.nav .rst-content h2 .fa-spin.headerlink,
-.rst-content h2 .nav .fa-spin.headerlink,
-.nav .rst-content p.caption .fa-spin.headerlink,
-.rst-content p.caption .nav .fa-spin.headerlink,
-.nav .rst-content h3 .fa-spin.headerlink,
-.rst-content h3 .nav .fa-spin.headerlink,
-.nav .rst-content h4 .fa-spin.headerlink,
-.rst-content h4 .nav .fa-spin.headerlink,
-.nav .rst-content h5 .fa-spin.headerlink,
-.rst-content h5 .nav .fa-spin.headerlink,
-.nav .rst-content h6 .fa-spin.headerlink,
-.rst-content h6 .nav .fa-spin.headerlink,
-.nav .rst-content dl dt .fa-spin.headerlink,
-.rst-content dl dt .nav .fa-spin.headerlink,
-.nav .rst-content tt.download span.fa-spin:first-child,
-.rst-content tt.download .nav span.fa-spin:first-child,
-.nav .rst-content code.download span.fa-spin:first-child,
-.rst-content code.download .nav span.fa-spin:first-child,
-.nav .fa-spin.icon {
- display: inline-block
-}
-.btn.fa:before,
-.wy-menu-vertical li span.btn.toctree-expand:before,
-.rst-content .btn.admonition-title:before,
-.rst-content h1 .btn.headerlink:before,
-.rst-content h2 .btn.headerlink:before,
-.rst-content p.caption .btn.headerlink:before,
-.rst-content h3 .btn.headerlink:before,
-.rst-content h4 .btn.headerlink:before,
-.rst-content h5 .btn.headerlink:before,
-.rst-content h6 .btn.headerlink:before,
-.rst-content dl dt .btn.headerlink:before,
-.rst-content tt.download span.btn:first-child:before,
-.rst-content code.download span.btn:first-child:before,
-.btn.icon:before {
- opacity: 0.5;
- -webkit-transition: opacity 0.05s ease-in;
- -moz-transition: opacity 0.05s ease-in;
- transition: opacity 0.05s ease-in
-}
-.btn.fa:hover:before,
-.wy-menu-vertical li span.btn.toctree-expand:hover:before,
-.rst-content .btn.admonition-title:hover:before,
-.rst-content h1 .btn.headerlink:hover:before,
-.rst-content h2 .btn.headerlink:hover:before,
-.rst-content p.caption .btn.headerlink:hover:before,
-.rst-content h3 .btn.headerlink:hover:before,
-.rst-content h4 .btn.headerlink:hover:before,
-.rst-content h5 .btn.headerlink:hover:before,
-.rst-content h6 .btn.headerlink:hover:before,
-.rst-content dl dt .btn.headerlink:hover:before,
-.rst-content tt.download span.btn:first-child:hover:before,
-.rst-content code.download span.btn:first-child:hover:before,
-.btn.icon:hover:before {
- opacity: 1
-}
-.btn-mini .fa:before,
-.btn-mini .wy-menu-vertical li span.toctree-expand:before,
-.wy-menu-vertical li .btn-mini span.toctree-expand:before,
-.btn-mini .rst-content .admonition-title:before,
-.rst-content .btn-mini .admonition-title:before,
-.btn-mini .rst-content h1 .headerlink:before,
-.rst-content h1 .btn-mini .headerlink:before,
-.btn-mini .rst-content h2 .headerlink:before,
-.rst-content h2 .btn-mini .headerlink:before,
-.btn-mini .rst-content p.caption .headerlink:before,
-.rst-content p.caption .btn-mini .headerlink:before,
-.btn-mini .rst-content h3 .headerlink:before,
-.rst-content h3 .btn-mini .headerlink:before,
-.btn-mini .rst-content h4 .headerlink:before,
-.rst-content h4 .btn-mini .headerlink:before,
-.btn-mini .rst-content h5 .headerlink:before,
-.rst-content h5 .btn-mini .headerlink:before,
-.btn-mini .rst-content h6 .headerlink:before,
-.rst-content h6 .btn-mini .headerlink:before,
-.btn-mini .rst-content dl dt .headerlink:before,
-.rst-content dl dt .btn-mini .headerlink:before,
-.btn-mini .rst-content tt.download span:first-child:before,
-.rst-content tt.download .btn-mini span:first-child:before,
-.btn-mini .rst-content code.download span:first-child:before,
-.rst-content code.download .btn-mini span:first-child:before,
-.btn-mini .icon:before {
- font-size: 14px;
- vertical-align: -15%
-}
-.wy-alert,
-.rst-content .note,
-.rst-content .attention,
-.rst-content .caution,
-.rst-content .danger,
-.rst-content .error,
-.rst-content .hint,
-.rst-content .important,
-.rst-content .tip,
-.rst-content .warning,
-.rst-content .seealso,
-.rst-content .admonition-todo {
- padding: 12px;
- line-height: 24px;
- margin-bottom: 24px;
- background: #e7f2fa
-}
-.wy-alert-title,
-.rst-content .admonition-title {
- color: #fff;
- font-weight: bold;
- display: block;
- color: #fff;
- background: #6ab0de;
- margin: -12px;
- padding: 6px 12px;
- margin-bottom: 12px
-}
-.wy-alert.wy-alert-danger,
-.rst-content .wy-alert-danger.note,
-.rst-content .wy-alert-danger.attention,
-.rst-content .wy-alert-danger.caution,
-.rst-content .danger,
-.rst-content .error,
-.rst-content .wy-alert-danger.hint,
-.rst-content .wy-alert-danger.important,
-.rst-content .wy-alert-danger.tip,
-.rst-content .wy-alert-danger.warning,
-.rst-content .wy-alert-danger.seealso,
-.rst-content .wy-alert-danger.admonition-todo {
- background: #fdf3f2
-}
-.wy-alert.wy-alert-danger .wy-alert-title,
-.rst-content .wy-alert-danger.note .wy-alert-title,
-.rst-content .wy-alert-danger.attention .wy-alert-title,
-.rst-content .wy-alert-danger.caution .wy-alert-title,
-.rst-content .danger .wy-alert-title,
-.rst-content .error .wy-alert-title,
-.rst-content .wy-alert-danger.hint .wy-alert-title,
-.rst-content .wy-alert-danger.important .wy-alert-title,
-.rst-content .wy-alert-danger.tip .wy-alert-title,
-.rst-content .wy-alert-danger.warning .wy-alert-title,
-.rst-content .wy-alert-danger.seealso .wy-alert-title,
-.rst-content .wy-alert-danger.admonition-todo .wy-alert-title,
-.wy-alert.wy-alert-danger .rst-content .admonition-title,
-.rst-content .wy-alert.wy-alert-danger .admonition-title,
-.rst-content .wy-alert-danger.note .admonition-title,
-.rst-content .wy-alert-danger.attention .admonition-title,
-.rst-content .wy-alert-danger.caution .admonition-title,
-.rst-content .danger .admonition-title,
-.rst-content .error .admonition-title,
-.rst-content .wy-alert-danger.hint .admonition-title,
-.rst-content .wy-alert-danger.important .admonition-title,
-.rst-content .wy-alert-danger.tip .admonition-title,
-.rst-content .wy-alert-danger.warning .admonition-title,
-.rst-content .wy-alert-danger.seealso .admonition-title,
-.rst-content .wy-alert-danger.admonition-todo .admonition-title {
- background: #f29f97
-}
-.wy-alert.wy-alert-warning,
-.rst-content .wy-alert-warning.note,
-.rst-content .attention,
-.rst-content .caution,
-.rst-content .wy-alert-warning.danger,
-.rst-content .wy-alert-warning.error,
-.rst-content .wy-alert-warning.hint,
-.rst-content .wy-alert-warning.important,
-.rst-content .wy-alert-warning.tip,
-.rst-content .warning,
-.rst-content .wy-alert-warning.seealso,
-.rst-content .admonition-todo {
- background: #b4d8af
-}
-.wy-alert.wy-alert-warning .wy-alert-title,
-.rst-content .wy-alert-warning.note .wy-alert-title,
-.rst-content .attention .wy-alert-title,
-.rst-content .caution .wy-alert-title,
-.rst-content .wy-alert-warning.danger .wy-alert-title,
-.rst-content .wy-alert-warning.error .wy-alert-title,
-.rst-content .wy-alert-warning.hint .wy-alert-title,
-.rst-content .wy-alert-warning.important .wy-alert-title,
-.rst-content .wy-alert-warning.tip .wy-alert-title,
-.rst-content .warning .wy-alert-title,
-.rst-content .wy-alert-warning.seealso .wy-alert-title,
-.rst-content .admonition-todo .wy-alert-title,
-.wy-alert.wy-alert-warning .rst-content .admonition-title,
-.rst-content .wy-alert.wy-alert-warning .admonition-title,
-.rst-content .wy-alert-warning.note .admonition-title,
-.rst-content .attention .admonition-title,
-.rst-content .caution .admonition-title,
-.rst-content .wy-alert-warning.danger .admonition-title,
-.rst-content .wy-alert-warning.error .admonition-title,
-.rst-content .wy-alert-warning.hint .admonition-title,
-.rst-content .wy-alert-warning.important .admonition-title,
-.rst-content .wy-alert-warning.tip .admonition-title,
-.rst-content .warning .admonition-title,
-.rst-content .wy-alert-warning.seealso .admonition-title,
-.rst-content .admonition-todo .admonition-title {
- background: #2bc916
-}
-.wy-alert.wy-alert-info,
-.rst-content .note,
-.rst-content .wy-alert-info.attention,
-.rst-content .wy-alert-info.caution,
-.rst-content .wy-alert-info.danger,
-.rst-content .wy-alert-info.error,
-.rst-content .wy-alert-info.hint,
-.rst-content .wy-alert-info.important,
-.rst-content .wy-alert-info.tip,
-.rst-content .wy-alert-info.warning,
-.rst-content .seealso,
-.rst-content .wy-alert-info.admonition-todo {
- background: #e7f2fa
-}
-.wy-alert.wy-alert-info .wy-alert-title,
-.rst-content .note .wy-alert-title,
-.rst-content .wy-alert-info.attention .wy-alert-title,
-.rst-content .wy-alert-info.caution .wy-alert-title,
-.rst-content .wy-alert-info.danger .wy-alert-title,
-.rst-content .wy-alert-info.error .wy-alert-title,
-.rst-content .wy-alert-info.hint .wy-alert-title,
-.rst-content .wy-alert-info.important .wy-alert-title,
-.rst-content .wy-alert-info.tip .wy-alert-title,
-.rst-content .wy-alert-info.warning .wy-alert-title,
-.rst-content .seealso .wy-alert-title,
-.rst-content .wy-alert-info.admonition-todo .wy-alert-title,
-.wy-alert.wy-alert-info .rst-content .admonition-title,
-.rst-content .wy-alert.wy-alert-info .admonition-title,
-.rst-content .note .admonition-title,
-.rst-content .wy-alert-info.attention .admonition-title,
-.rst-content .wy-alert-info.caution .admonition-title,
-.rst-content .wy-alert-info.danger .admonition-title,
-.rst-content .wy-alert-info.error .admonition-title,
-.rst-content .wy-alert-info.hint .admonition-title,
-.rst-content .wy-alert-info.important .admonition-title,
-.rst-content .wy-alert-info.tip .admonition-title,
-.rst-content .wy-alert-info.warning .admonition-title,
-.rst-content .seealso .admonition-title,
-.rst-content .wy-alert-info.admonition-todo .admonition-title {
- background: #86d3f9
-}
-.wy-alert.wy-alert-success,
-.rst-content .wy-alert-success.note,
-.rst-content .wy-alert-success.attention,
-.rst-content .wy-alert-success.caution,
-.rst-content .wy-alert-success.danger,
-.rst-content .wy-alert-success.error,
-.rst-content .hint,
-.rst-content .important,
-.rst-content .tip,
-.rst-content .wy-alert-success.warning,
-.rst-content .wy-alert-success.seealso,
-.rst-content .wy-alert-success.admonition-todo {
- background: #edbeb6;
-}
-.wy-alert.wy-alert-success .wy-alert-title,
-.rst-content .wy-alert-success.note .wy-alert-title,
-.rst-content .wy-alert-success.attention .wy-alert-title,
-.rst-content .wy-alert-success.caution .wy-alert-title,
-.rst-content .wy-alert-success.danger .wy-alert-title,
-.rst-content .wy-alert-success.error .wy-alert-title,
-.rst-content .hint .wy-alert-title,
-.rst-content .important .wy-alert-title,
-.rst-content .tip .wy-alert-title,
-.rst-content .wy-alert-success.warning .wy-alert-title,
-.rst-content .wy-alert-success.seealso .wy-alert-title,
-.rst-content .wy-alert-success.admonition-todo .wy-alert-title,
-.wy-alert.wy-alert-success .rst-content .admonition-title,
-.rst-content .wy-alert.wy-alert-success .admonition-title,
-.rst-content .wy-alert-success.note .admonition-title,
-.rst-content .wy-alert-success.attention .admonition-title,
-.rst-content .wy-alert-success.caution .admonition-title,
-.rst-content .wy-alert-success.danger .admonition-title,
-.rst-content .wy-alert-success.error .admonition-title,
-.rst-content .hint .admonition-title,
-.rst-content .important .admonition-title,
-.rst-content .tip .admonition-title,
-.rst-content .wy-alert-success.warning .admonition-title,
-.rst-content .wy-alert-success.seealso .admonition-title,
-.rst-content .wy-alert-success.admonition-todo .admonition-title {
- background: #f23e35
-}
-.wy-alert.wy-alert-neutral,
-.rst-content .wy-alert-neutral.note,
-.rst-content .wy-alert-neutral.attention,
-.rst-content .wy-alert-neutral.caution,
-.rst-content .wy-alert-neutral.danger,
-.rst-content .wy-alert-neutral.error,
-.rst-content .wy-alert-neutral.hint,
-.rst-content .wy-alert-neutral.important,
-.rst-content .wy-alert-neutral.tip,
-.rst-content .wy-alert-neutral.warning,
-.rst-content .wy-alert-neutral.seealso,
-.rst-content .wy-alert-neutral.admonition-todo {
- background: #f3f6f6
-}
-.wy-alert.wy-alert-neutral .wy-alert-title,
-.rst-content .wy-alert-neutral.note .wy-alert-title,
-.rst-content .wy-alert-neutral.attention .wy-alert-title,
-.rst-content .wy-alert-neutral.caution .wy-alert-title,
-.rst-content .wy-alert-neutral.danger .wy-alert-title,
-.rst-content .wy-alert-neutral.error .wy-alert-title,
-.rst-content .wy-alert-neutral.hint .wy-alert-title,
-.rst-content .wy-alert-neutral.important .wy-alert-title,
-.rst-content .wy-alert-neutral.tip .wy-alert-title,
-.rst-content .wy-alert-neutral.warning .wy-alert-title,
-.rst-content .wy-alert-neutral.seealso .wy-alert-title,
-.rst-content .wy-alert-neutral.admonition-todo .wy-alert-title,
-.wy-alert.wy-alert-neutral .rst-content .admonition-title,
-.rst-content .wy-alert.wy-alert-neutral .admonition-title,
-.rst-content .wy-alert-neutral.note .admonition-title,
-.rst-content .wy-alert-neutral.attention .admonition-title,
-.rst-content .wy-alert-neutral.caution .admonition-title,
-.rst-content .wy-alert-neutral.danger .admonition-title,
-.rst-content .wy-alert-neutral.error .admonition-title,
-.rst-content .wy-alert-neutral.hint .admonition-title,
-.rst-content .wy-alert-neutral.important .admonition-title,
-.rst-content .wy-alert-neutral.tip .admonition-title,
-.rst-content .wy-alert-neutral.warning .admonition-title,
-.rst-content .wy-alert-neutral.seealso .admonition-title,
-.rst-content .wy-alert-neutral.admonition-todo .admonition-title {
- color: #404040;
- background: #e1e4e5
-}
-.wy-alert.wy-alert-neutral a,
-.rst-content .wy-alert-neutral.note a,
-.rst-content .wy-alert-neutral.attention a,
-.rst-content .wy-alert-neutral.caution a,
-.rst-content .wy-alert-neutral.danger a,
-.rst-content .wy-alert-neutral.error a,
-.rst-content .wy-alert-neutral.hint a,
-.rst-content .wy-alert-neutral.important a,
-.rst-content .wy-alert-neutral.tip a,
-.rst-content .wy-alert-neutral.warning a,
-.rst-content .wy-alert-neutral.seealso a,
-.rst-content .wy-alert-neutral.admonition-todo a {
- color: #2980B9
-}
-.wy-alert p:last-child,
-.rst-content .note p:last-child,
-.rst-content .attention p:last-child,
-.rst-content .caution p:last-child,
-.rst-content .danger p:last-child,
-.rst-content .error p:last-child,
-.rst-content .hint p:last-child,
-.rst-content .important p:last-child,
-.rst-content .tip p:last-child,
-.rst-content .warning p:last-child,
-.rst-content .seealso p:last-child,
-.rst-content .admonition-todo p:last-child {
- margin-bottom: 0
-}
-.wy-tray-container {
- position: fixed;
- bottom: 0px;
- left: 0;
- z-index: 600
-}
-.wy-tray-container li {
- display: block;
- width: 300px;
- background: transparent;
- color: #fff;
- text-align: center;
- box-shadow: 0 5px 5px 0 rgba(0, 0, 0, 0.1);
- padding: 0 24px;
- min-width: 20%;
- opacity: 0;
- height: 0;
- line-height: 56px;
- overflow: hidden;
- -webkit-transition: all 0.3s ease-in;
- -moz-transition: all 0.3s ease-in;
- transition: all 0.3s ease-in
-}
-.wy-tray-container li.wy-tray-item-success {
- background: #27AE60
-}
-.wy-tray-container li.wy-tray-item-info {
- background: #2980B9
-}
-.wy-tray-container li.wy-tray-item-warning {
- background: #E67E22
-}
-.wy-tray-container li.wy-tray-item-danger {
- background: #E74C3C
-}
-.wy-tray-container li.on {
- opacity: 1;
- height: 56px
-}
-@media screen and (max-width: 768px) {
- .wy-tray-container {
- bottom: auto;
- top: 0;
- width: 100%
- }
- .wy-tray-container li {
- width: 100%
- }
-}
-button {
- font-size: 100%;
- margin: 0;
- vertical-align: baseline;
- *vertical-align: middle;
- cursor: pointer;
- line-height: normal;
- -webkit-appearance: button;
- *overflow: visible
-}
-button::-moz-focus-inner,
-input::-moz-focus-inner {
- border: 0;
- padding: 0
-}
-button[disabled] {
- cursor: default
-}
-.btn {
- display: inline-block;
- border-radius: 2px;
- line-height: normal;
- white-space: nowrap;
- text-align: center;
- cursor: pointer;
- font-size: 100%;
- padding: 6px 12px 8px 12px;
- color: #fff;
- border: 1px solid rgba(0, 0, 0, 0.1);
- background-color: #27AE60;
- text-decoration: none;
- font-weight: normal;
- font-family: "Lato", "proxima-nova", "Helvetica Neue", Arial, sans-serif;
- box-shadow: 0px 1px 2px -1px rgba(255, 255, 255, 0.5) inset, 0px -2px 0px 0px rgba(0, 0, 0, 0.1) inset;
- outline-none: false;
- vertical-align: middle;
- *display: inline;
- zoom: 1;
- -webkit-user-drag: none;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- -webkit-transition: all 0.1s linear;
- -moz-transition: all 0.1s linear;
- transition: all 0.1s linear
-}
-.btn-hover {
- background: #2e8ece;
- color: #fff
-}
-.btn:hover {
- background: #2cc36b;
- color: #fff
-}
-.btn:focus {
- background: #2cc36b;
- outline: 0
-}
-.btn:active {
- box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.05) inset, 0px 2px 0px 0px rgba(0, 0, 0, 0.1) inset;
- padding: 8px 12px 6px 12px
-}
-.btn:visited {
- color: #fff
-}
-.btn:disabled {
- background-image: none;
- filter: progid: DXImageTransform.Microsoft.gradient(enabled false);
- filter: alpha(opacity=40);
- opacity: 0.4;
- cursor: not-allowed;
- box-shadow: none
-}
-.btn-disabled {
- background-image: none;
- filter: progid: DXImageTransform.Microsoft.gradient(enabled false);
- filter: alpha(opacity=40);
- opacity: 0.4;
- cursor: not-allowed;
- box-shadow: none
-}
-.btn-disabled:hover,
-.btn-disabled:focus,
-.btn-disabled:active {
- background-image: none;
- filter: progid: DXImageTransform.Microsoft.gradient(enabled false);
- filter: alpha(opacity=40);
- opacity: 0.4;
- cursor: not-allowed;
- box-shadow: none
-}
-.btn::-moz-focus-inner {
- padding: 0;
- border: 0
-}
-.btn-small {
- font-size: 80%
-}
-.btn-info {
- background-color: #2980B9 !important
-}
-.btn-info:hover {
- background-color: #2e8ece !important
-}
-.btn-neutral {
- background-color: #f3f6f6 !important;
- color: #404040 !important
-}
-.btn-neutral:hover {
- background-color: #e5ebeb !important;
- color: #404040
-}
-.btn-neutral:visited {
- color: #404040 !important
-}
-.btn-success {
- background-color: #27AE60 !important
-}
-.btn-success:hover {
- background-color: #295 !important
-}
-.btn-danger {
- background-color: #E74C3C !important
-}
-.btn-danger:hover {
- background-color: #ea6153 !important
-}
-.btn-warning {
- background-color: #E67E22 !important
-}
-.btn-warning:hover {
- background-color: #e98b39 !important
-}
-.btn-invert {
- background-color: #222
-}
-.btn-invert:hover {
- background-color: #2f2f2f !important
-}
-.btn-link {
- background-color: transparent !important;
- color: #2980B9;
- box-shadow: none;
- border-color: transparent !important
-}
-.btn-link:hover {
- background-color: transparent !important;
- color: #409ad5 !important;
- box-shadow: none
-}
-.btn-link:active {
- background-color: transparent !important;
- color: #409ad5 !important;
- box-shadow: none
-}
-.btn-link:visited {
- color: #9B59B6
-}
-.wy-btn-group .btn,
-.wy-control .btn {
- vertical-align: middle
-}
-.wy-btn-group {
- margin-bottom: 24px;
- *zoom: 1
-}
-.wy-btn-group:before,
-.wy-btn-group:after {
- display: table;
- content: ""
-}
-.wy-btn-group:after {
- clear: both
-}
-.wy-dropdown {
- position: relative;
- display: inline-block
-}
-.wy-dropdown-active .wy-dropdown-menu {
- display: block
-}
-.wy-dropdown-menu {
- position: absolute;
- left: 0;
- display: none;
- float: left;
- top: 100%;
- min-width: 100%;
- background: #fcfcfc;
- z-index: 100;
- border: solid 1px #cfd7dd;
- box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.1);
- padding: 12px
-}
-.wy-dropdown-menu>dd>a {
- display: block;
- clear: both;
- color: #404040;
- white-space: nowrap;
- font-size: 90%;
- padding: 0 12px;
- cursor: pointer
-}
-.wy-dropdown-menu>dd>a:hover {
- background: #2980B9;
- color: #fff
-}
-.wy-dropdown-menu>dd.divider {
- border-top: solid 1px #cfd7dd;
- margin: 6px 0
-}
-.wy-dropdown-menu>dd.search {
- padding-bottom: 12px
-}
-.wy-dropdown-menu>dd.search input[type="search"] {
- width: 100%
-}
-.wy-dropdown-menu>dd.call-to-action {
- background: #e3e3e3;
- text-transform: uppercase;
- font-weight: 500;
- font-size: 80%
-}
-.wy-dropdown-menu>dd.call-to-action:hover {
- background: #e3e3e3
-}
-.wy-dropdown-menu>dd.call-to-action .btn {
- color: #fff
-}
-.wy-dropdown.wy-dropdown-up .wy-dropdown-menu {
- bottom: 100%;
- top: auto;
- left: auto;
- right: 0
-}
-.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu {
- background: #fcfcfc;
- margin-top: 2px
-}
-.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a {
- padding: 6px 12px
-}
-.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a:hover {
- background: #2980B9;
- color: #fff
-}
-.wy-dropdown.wy-dropdown-left .wy-dropdown-menu {
- right: 0;
- left: auto;
- text-align: right
-}
-.wy-dropdown-arrow:before {
- content: " ";
- border-bottom: 5px solid #f5f5f5;
- border-left: 5px solid transparent;
- border-right: 5px solid transparent;
- position: absolute;
- display: block;
- top: -4px;
- left: 50%;
- margin-left: -3px
-}
-.wy-dropdown-arrow.wy-dropdown-arrow-left:before {
- left: 11px
-}
-.wy-form-stacked select {
- display: block
-}
-.wy-form-aligned input,
-.wy-form-aligned textarea,
-.wy-form-aligned select,
-.wy-form-aligned .wy-help-inline,
-.wy-form-aligned label {
- display: inline-block;
- *display: inline;
- *zoom: 1;
- vertical-align: middle
-}
-.wy-form-aligned .wy-control-group>label {
- display: inline-block;
- vertical-align: middle;
- width: 10em;
- margin: 6px 12px 0 0;
- float: left
-}
-.wy-form-aligned .wy-control {
- float: left
-}
-.wy-form-aligned .wy-control label {
- display: block
-}
-.wy-form-aligned .wy-control select {
- margin-top: 6px
-}
-fieldset {
- border: 0;
- margin: 0;
- padding: 0
-}
-legend {
- display: block;
- width: 100%;
- border: 0;
- padding: 0;
- white-space: normal;
- margin-bottom: 24px;
- font-size: 150%;
- *margin-left: -7px
-}
-label {
- display: block;
- margin: 0 0 0.3125em 0;
- color: #333;
- font-size: 90%
-}
-input,
-select,
-textarea {
- font-size: 100%;
- margin: 0;
- vertical-align: baseline;
- *vertical-align: middle
-}
-.wy-control-group {
- margin-bottom: 24px;
- *zoom: 1;
- max-width: 68em;
- margin-left: auto;
- margin-right: auto;
- *zoom: 1
-}
-.wy-control-group:before,
-.wy-control-group:after {
- display: table;
- content: ""
-}
-.wy-control-group:after {
- clear: both
-}
-.wy-control-group:before,
-.wy-control-group:after {
- display: table;
- content: ""
-}
-.wy-control-group:after {
- clear: both
-}
-.wy-control-group.wy-control-group-required>label:after {
- content: " *";
- color: #E74C3C
-}
-.wy-control-group .wy-form-full,
-.wy-control-group .wy-form-halves,
-.wy-control-group .wy-form-thirds {
- padding-bottom: 12px
-}
-.wy-control-group .wy-form-full select,
-.wy-control-group .wy-form-halves select,
-.wy-control-group .wy-form-thirds select {
- width: 100%
-}
-.wy-control-group .wy-form-full input[type="text"],
-.wy-control-group .wy-form-full input[type="password"],
-.wy-control-group .wy-form-full input[type="email"],
-.wy-control-group .wy-form-full input[type="url"],
-.wy-control-group .wy-form-full input[type="date"],
-.wy-control-group .wy-form-full input[type="month"],
-.wy-control-group .wy-form-full input[type="time"],
-.wy-control-group .wy-form-full input[type="datetime"],
-.wy-control-group .wy-form-full input[type="datetime-local"],
-.wy-control-group .wy-form-full input[type="week"],
-.wy-control-group .wy-form-full input[type="number"],
-.wy-control-group .wy-form-full input[type="search"],
-.wy-control-group .wy-form-full input[type="tel"],
-.wy-control-group .wy-form-full input[type="color"],
-.wy-control-group .wy-form-halves input[type="text"],
-.wy-control-group .wy-form-halves input[type="password"],
-.wy-control-group .wy-form-halves input[type="email"],
-.wy-control-group .wy-form-halves input[type="url"],
-.wy-control-group .wy-form-halves input[type="date"],
-.wy-control-group .wy-form-halves input[type="month"],
-.wy-control-group .wy-form-halves input[type="time"],
-.wy-control-group .wy-form-halves input[type="datetime"],
-.wy-control-group .wy-form-halves input[type="datetime-local"],
-.wy-control-group .wy-form-halves input[type="week"],
-.wy-control-group .wy-form-halves input[type="number"],
-.wy-control-group .wy-form-halves input[type="search"],
-.wy-control-group .wy-form-halves input[type="tel"],
-.wy-control-group .wy-form-halves input[type="color"],
-.wy-control-group .wy-form-thirds input[type="text"],
-.wy-control-group .wy-form-thirds input[type="password"],
-.wy-control-group .wy-form-thirds input[type="email"],
-.wy-control-group .wy-form-thirds input[type="url"],
-.wy-control-group .wy-form-thirds input[type="date"],
-.wy-control-group .wy-form-thirds input[type="month"],
-.wy-control-group .wy-form-thirds input[type="time"],
-.wy-control-group .wy-form-thirds input[type="datetime"],
-.wy-control-group .wy-form-thirds input[type="datetime-local"],
-.wy-control-group .wy-form-thirds input[type="week"],
-.wy-control-group .wy-form-thirds input[type="number"],
-.wy-control-group .wy-form-thirds input[type="search"],
-.wy-control-group .wy-form-thirds input[type="tel"],
-.wy-control-group .wy-form-thirds input[type="color"] {
- width: 100%
-}
-.wy-control-group .wy-form-full {
- float: left;
- display: block;
- margin-right: 2.35765%;
- width: 100%;
- margin-right: 0
-}
-.wy-control-group .wy-form-full:last-child {
- margin-right: 0
-}
-.wy-control-group .wy-form-halves {
- float: left;
- display: block;
- margin-right: 2.35765%;
- width: 48.82117%
-}
-.wy-control-group .wy-form-halves:last-child {
- margin-right: 0
-}
-.wy-control-group .wy-form-halves:nth-of-type(2n) {
- margin-right: 0
-}
-.wy-control-group .wy-form-halves:nth-of-type(2n+1) {
- clear: left
-}
-.wy-control-group .wy-form-thirds {
- float: left;
- display: block;
- margin-right: 2.35765%;
- width: 31.76157%
-}
-.wy-control-group .wy-form-thirds:last-child {
- margin-right: 0
-}
-.wy-control-group .wy-form-thirds:nth-of-type(3n) {
- margin-right: 0
-}
-.wy-control-group .wy-form-thirds:nth-of-type(3n+1) {
- clear: left
-}
-.wy-control-group.wy-control-group-no-input .wy-control {
- margin: 6px 0 0 0;
- font-size: 90%
-}
-.wy-control-no-input {
- display: inline-block;
- margin: 6px 0 0 0;
- font-size: 90%
-}
-.wy-control-group.fluid-input input[type="text"],
-.wy-control-group.fluid-input input[type="password"],
-.wy-control-group.fluid-input input[type="email"],
-.wy-control-group.fluid-input input[type="url"],
-.wy-control-group.fluid-input input[type="date"],
-.wy-control-group.fluid-input input[type="month"],
-.wy-control-group.fluid-input input[type="time"],
-.wy-control-group.fluid-input input[type="datetime"],
-.wy-control-group.fluid-input input[type="datetime-local"],
-.wy-control-group.fluid-input input[type="week"],
-.wy-control-group.fluid-input input[type="number"],
-.wy-control-group.fluid-input input[type="search"],
-.wy-control-group.fluid-input input[type="tel"],
-.wy-control-group.fluid-input input[type="color"] {
- width: 100%
-}
-.wy-form-message-inline {
- display: inline-block;
- padding-left: 0.3em;
- color: #666;
- vertical-align: middle;
- font-size: 90%
-}
-.wy-form-message {
- display: block;
- color: #999;
- font-size: 70%;
- margin-top: 0.3125em;
- font-style: italic
-}
-.wy-form-message p {
- font-size: inherit;
- font-style: italic;
- margin-bottom: 6px
-}
-.wy-form-message p:last-child {
- margin-bottom: 0
-}
-input {
- line-height: normal
-}
-input[type="button"],
-input[type="reset"],
-input[type="submit"] {
- -webkit-appearance: button;
- cursor: pointer;
- font-family: "Lato", "proxima-nova", "Helvetica Neue", Arial, sans-serif;
- *overflow: visible
-}
-input[type="text"],
-input[type="password"],
-input[type="email"],
-input[type="url"],
-input[type="date"],
-input[type="month"],
-input[type="time"],
-input[type="datetime"],
-input[type="datetime-local"],
-input[type="week"],
-input[type="number"],
-input[type="search"],
-input[type="tel"],
-input[type="color"] {
- -webkit-appearance: none;
- padding: 6px;
- display: inline-block;
- border: 1px solid #ccc;
- font-size: 80%;
- font-family: "Lato", "proxima-nova", "Helvetica Neue", Arial, sans-serif;
- box-shadow: inset 0 1px 3px #ddd;
- border-radius: 0;
- -webkit-transition: border 0.3s linear;
- -moz-transition: border 0.3s linear;
- transition: border 0.3s linear
-}
-input[type="datetime-local"] {
- padding: 0.34375em 0.625em
-}
-input[disabled] {
- cursor: default
-}
-input[type="checkbox"],
-input[type="radio"] {
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
- padding: 0;
- margin-right: 0.3125em;
- *height: 13px;
- *width: 13px
-}
-input[type="search"] {
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box
-}
-input[type="search"]::-webkit-search-cancel-button,
-input[type="search"]::-webkit-search-decoration {
- -webkit-appearance: none
-}
-input[type="text"]:focus,
-input[type="password"]:focus,
-input[type="email"]:focus,
-input[type="url"]:focus,
-input[type="date"]:focus,
-input[type="month"]:focus,
-input[type="time"]:focus,
-input[type="datetime"]:focus,
-input[type="datetime-local"]:focus,
-input[type="week"]:focus,
-input[type="number"]:focus,
-input[type="search"]:focus,
-input[type="tel"]:focus,
-input[type="color"]:focus {
- outline: 0;
- outline: thin dotted \\9;
- border-color: #333
-}
-input.no-focus:focus {
- border-color: #ccc !important
-}
-input[type="file"]:focus,
-input[type="radio"]:focus,
-input[type="checkbox"]:focus {
- outline: thin dotted #333;
- outline: 1px auto #129FEA
-}
-input[type="text"][disabled],
-input[type="password"][disabled],
-input[type="email"][disabled],
-input[type="url"][disabled],
-input[type="date"][disabled],
-input[type="month"][disabled],
-input[type="time"][disabled],
-input[type="datetime"][disabled],
-input[type="datetime-local"][disabled],
-input[type="week"][disabled],
-input[type="number"][disabled],
-input[type="search"][disabled],
-input[type="tel"][disabled],
-input[type="color"][disabled] {
- cursor: not-allowed;
- background-color: #fafafa
-}
-input:focus:invalid,
-textarea:focus:invalid,
-select:focus:invalid {
- color: #E74C3C;
- border: 1px solid #E74C3C
-}
-input:focus:invalid:focus,
-textarea:focus:invalid:focus,
-select:focus:invalid:focus {
- border-color: #E74C3C
-}
-input[type="file"]:focus:invalid:focus,
-input[type="radio"]:focus:invalid:focus,
-input[type="checkbox"]:focus:invalid:focus {
- outline-color: #E74C3C
-}
-input.wy-input-large {
- padding: 12px;
- font-size: 100%
-}
-textarea {
- overflow: auto;
- vertical-align: top;
- width: 100%;
- font-family: "Lato", "proxima-nova", "Helvetica Neue", Arial, sans-serif
-}
-select,
-textarea {
- padding: 0.5em 0.625em;
- display: inline-block;
- border: 1px solid #ccc;
- font-size: 80%;
- box-shadow: inset 0 1px 3px #ddd;
- -webkit-transition: border 0.3s linear;
- -moz-transition: border 0.3s linear;
- transition: border 0.3s linear
-}
-select {
- border: 1px solid #ccc;
- background-color: #fff
-}
-select[multiple] {
- height: auto
-}
-select:focus,
-textarea:focus {
- outline: 0
-}
-select[disabled],
-textarea[disabled],
-input[readonly],
-select[readonly],
-textarea[readonly] {
- cursor: not-allowed;
- background-color: #fafafa
-}
-input[type="radio"][disabled],
-input[type="checkbox"][disabled] {
- cursor: not-allowed
-}
-.wy-checkbox,
-.wy-radio {
- margin: 6px 0;
- color: #404040;
- display: block
-}
-.wy-checkbox input,
-.wy-radio input {
- vertical-align: baseline
-}
-.wy-form-message-inline {
- display: inline-block;
- *display: inline;
- *zoom: 1;
- vertical-align: middle
-}
-.wy-input-prefix,
-.wy-input-suffix {
- white-space: nowrap;
- padding: 6px
-}
-.wy-input-prefix .wy-input-context,
-.wy-input-suffix .wy-input-context {
- line-height: 27px;
- padding: 0 8px;
- display: inline-block;
- font-size: 80%;
- background-color: #f3f6f6;
- border: solid 1px #ccc;
- color: #999
-}
-.wy-input-suffix .wy-input-context {
- border-left: 0
-}
-.wy-input-prefix .wy-input-context {
- border-right: 0
-}
-.wy-switch {
- width: 36px;
- height: 12px;
- margin: 12px 0;
- position: relative;
- border-radius: 4px;
- background: #ccc;
- cursor: pointer;
- -webkit-transition: all 0.2s ease-in-out;
- -moz-transition: all 0.2s ease-in-out;
- transition: all 0.2s ease-in-out
-}
-.wy-switch:before {
- position: absolute;
- content: "";
- display: block;
- width: 18px;
- height: 18px;
- border-radius: 4px;
- background: #999;
- left: -3px;
- top: -3px;
- -webkit-transition: all 0.2s ease-in-out;
- -moz-transition: all 0.2s ease-in-out;
- transition: all 0.2s ease-in-out
-}
-.wy-switch:after {
- content: "false";
- position: absolute;
- left: 48px;
- display: block;
- font-size: 12px;
- color: #ccc
-}
-.wy-switch.active {
- background: #1e8449
-}
-.wy-switch.active:before {
- left: 24px;
- background: #27AE60
-}
-.wy-switch.active:after {
- content: "true"
-}
-.wy-switch.disabled,
-.wy-switch.active.disabled {
- cursor: not-allowed
-}
-.wy-control-group.wy-control-group-error .wy-form-message,
-.wy-control-group.wy-control-group-error>label {
- color: #E74C3C
-}
-.wy-control-group.wy-control-group-error input[type="text"],
-.wy-control-group.wy-control-group-error input[type="password"],
-.wy-control-group.wy-control-group-error input[type="email"],
-.wy-control-group.wy-control-group-error input[type="url"],
-.wy-control-group.wy-control-group-error input[type="date"],
-.wy-control-group.wy-control-group-error input[type="month"],
-.wy-control-group.wy-control-group-error input[type="time"],
-.wy-control-group.wy-control-group-error input[type="datetime"],
-.wy-control-group.wy-control-group-error input[type="datetime-local"],
-.wy-control-group.wy-control-group-error input[type="week"],
-.wy-control-group.wy-control-group-error input[type="number"],
-.wy-control-group.wy-control-group-error input[type="search"],
-.wy-control-group.wy-control-group-error input[type="tel"],
-.wy-control-group.wy-control-group-error input[type="color"] {
- border: solid 1px #E74C3C
-}
-.wy-control-group.wy-control-group-error textarea {
- border: solid 1px #E74C3C
-}
-.wy-inline-validate {
- white-space: nowrap
-}
-.wy-inline-validate .wy-input-context {
- padding: 0.5em 0.625em;
- display: inline-block;
- font-size: 80%
-}
-.wy-inline-validate.wy-inline-validate-success .wy-input-context {
- color: #27AE60
-}
-.wy-inline-validate.wy-inline-validate-danger .wy-input-context {
- color: #E74C3C
-}
-.wy-inline-validate.wy-inline-validate-warning .wy-input-context {
- color: #E67E22
-}
-.wy-inline-validate.wy-inline-validate-info .wy-input-context {
- color: #2980B9
-}
-.rotate-90 {
- -webkit-transform: rotate(90deg);
- -moz-transform: rotate(90deg);
- -ms-transform: rotate(90deg);
- -o-transform: rotate(90deg);
- transform: rotate(90deg)
-}
-.rotate-180 {
- -webkit-transform: rotate(180deg);
- -moz-transform: rotate(180deg);
- -ms-transform: rotate(180deg);
- -o-transform: rotate(180deg);
- transform: rotate(180deg)
-}
-.rotate-270 {
- -webkit-transform: rotate(270deg);
- -moz-transform: rotate(270deg);
- -ms-transform: rotate(270deg);
- -o-transform: rotate(270deg);
- transform: rotate(270deg)
-}
-.mirror {
- -webkit-transform: scaleX(-1);
- -moz-transform: scaleX(-1);
- -ms-transform: scaleX(-1);
- -o-transform: scaleX(-1);
- transform: scaleX(-1)
-}
-.mirror.rotate-90 {
- -webkit-transform: scaleX(-1) rotate(90deg);
- -moz-transform: scaleX(-1) rotate(90deg);
- -ms-transform: scaleX(-1) rotate(90deg);
- -o-transform: scaleX(-1) rotate(90deg);
- transform: scaleX(-1) rotate(90deg)
-}
-.mirror.rotate-180 {
- -webkit-transform: scaleX(-1) rotate(180deg);
- -moz-transform: scaleX(-1) rotate(180deg);
- -ms-transform: scaleX(-1) rotate(180deg);
- -o-transform: scaleX(-1) rotate(180deg);
- transform: scaleX(-1) rotate(180deg)
-}
-.mirror.rotate-270 {
- -webkit-transform: scaleX(-1) rotate(270deg);
- -moz-transform: scaleX(-1) rotate(270deg);
- -ms-transform: scaleX(-1) rotate(270deg);
- -o-transform: scaleX(-1) rotate(270deg);
- transform: scaleX(-1) rotate(270deg)
-}
-@media only screen and (max-width: 480px) {
- .wy-form button[type="submit"] {
- margin: 0.7em 0 0
- }
- .wy-form input[type="text"],
- .wy-form input[type="password"],
- .wy-form input[type="email"],
- .wy-form input[type="url"],
- .wy-form input[type="date"],
- .wy-form input[type="month"],
- .wy-form input[type="time"],
- .wy-form input[type="datetime"],
- .wy-form input[type="datetime-local"],
- .wy-form input[type="week"],
- .wy-form input[type="number"],
- .wy-form input[type="search"],
- .wy-form input[type="tel"],
- .wy-form input[type="color"] {
- margin-bottom: 0.3em;
- display: block
- }
- .wy-form label {
- margin-bottom: 0.3em;
- display: block
- }
- .wy-form input[type="password"],
- .wy-form input[type="email"],
- .wy-form input[type="url"],
- .wy-form input[type="date"],
- .wy-form input[type="month"],
- .wy-form input[type="time"],
- .wy-form input[type="datetime"],
- .wy-form input[type="datetime-local"],
- .wy-form input[type="week"],
- .wy-form input[type="number"],
- .wy-form input[type="search"],
- .wy-form input[type="tel"],
- .wy-form input[type="color"] {
- margin-bottom: 0
- }
- .wy-form-aligned .wy-control-group label {
- margin-bottom: 0.3em;
- text-align: left;
- display: block;
- width: 100%
- }
- .wy-form-aligned .wy-control {
- margin: 1.5em 0 0 0
- }
- .wy-form .wy-help-inline,
- .wy-form-message-inline,
- .wy-form-message {
- display: block;
- font-size: 80%;
- padding: 6px 0
- }
-}
-@media screen and (max-width: 768px) {
- .tablet-hide {
- display: none
- }
-}
-@media screen and (max-width: 480px) {
- .mobile-hide {
- display: none
- }
-}
-.float-left {
- float: left
-}
-.float-right {
- float: right
-}
-.full-width {
- width: 100%
-}
-.wy-table,
-.rst-content table.docutils,
-.rst-content table.field-list {
- border-collapse: collapse;
- border-spacing: 0;
- empty-cells: show;
- margin-bottom: 24px;
-line-height: 19px;
-}
-.wy-table caption,
-.rst-content table.docutils caption,
-.rst-content table.field-list caption {
- color: #000;
- font: italic 85%/1 arial, sans-serif;
- padding: 1em 0;
- text-align: center
-}
-.wy-table td,
-.rst-content table.docutils td,
-.rst-content table.field-list td,
-.wy-table th,
-.rst-content table.docutils th,
-.rst-content table.field-list th {
- font-size: 90%;
- margin: 0;
- overflow: visible;
- padding: 8px 16px
-}
-.wy-table td:first-child,
-.rst-content table.docutils td:first-child,
-.rst-content table.field-list td:first-child,
-.wy-table th:first-child,
-.rst-content table.docutils th:first-child,
-.rst-content table.field-list th:first-child {
- border-left-width: 0
-}
-.wy-table thead,
-.rst-content table.docutils thead,
-.rst-content table.field-list thead {
- color: #000;
- text-align: left;
- vertical-align: bottom;
- white-space: nowrap
-}
-.wy-table thead th,
-.rst-content table.docutils thead th,
-.rst-content table.field-list thead th {
- font-weight: bold;
- border-bottom: solid 2px #e1e4e5
-}
-.wy-table td,
-.rst-content table.docutils td,
-.rst-content table.field-list td {
- background-color: transparent;
- vertical-align: middle
-}
-.wy-table td p,
-.rst-content table.docutils td p,
-.rst-content table.field-list td p {
-// line-height: 18px;
- line-height: 19px;
-}
-.wy-table td p:last-child,
-.rst-content table.docutils td p:last-child,
-.rst-content table.field-list td p:last-child {
- margin-bottom: 0
-}
-.wy-table .wy-table-cell-min,
-.rst-content table.docutils .wy-table-cell-min,
-.rst-content table.field-list .wy-table-cell-min {
- width: 1%;
- padding-right: 0
-}
-.wy-table .wy-table-cell-min input[type=checkbox],
-.rst-content table.docutils .wy-table-cell-min input[type=checkbox],
-.rst-content table.field-list .wy-table-cell-min input[type=checkbox],
-.wy-table .wy-table-cell-min input[type=checkbox],
-.rst-content table.docutils .wy-table-cell-min input[type=checkbox],
-.rst-content table.field-list .wy-table-cell-min input[type=checkbox] {
- margin: 0
-}
-.wy-table-secondary {
- color: gray;
- font-size: 90%
-}
-.wy-table-tertiary {
- color: gray;
- font-size: 80%
-}
-.wy-table-odd td,
-.wy-table-striped tr:nth-child(2n-1) td,
-.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td {
- background-color: #f3f6f6
-}
-.wy-table-backed {
- background-color: #f3f6f6
-}
-.wy-table-bordered-all,
-.rst-content table.docutils {
- border: 1px solid #e1e4e5
-}
-.wy-table-bordered-all td,
-.rst-content table.docutils td {
- border-bottom: 1px solid #e1e4e5;
- border-left: 1px solid #e1e4e5
-}
-.wy-table-bordered-all tbody>tr:last-child td,
-.rst-content table.docutils tbody>tr:last-child td {
- border-bottom-width: 0
-}
-.wy-table-bordered {
- border: 1px solid #e1e4e5
-}
-.wy-table-bordered-rows td {
- border-bottom: 1px solid #e1e4e5
-}
-.wy-table-bordered-rows tbody>tr:last-child td {
- border-bottom-width: 0
-}
-.wy-table-horizontal tbody>tr:last-child td {
- border-bottom-width: 0
-}
-.wy-table-horizontal td,
-.wy-table-horizontal th {
- border-width: 0 0 1px 0;
- border-bottom: 1px solid #e1e4e5
-}
-.wy-table-horizontal tbody>tr:last-child td {
- border-bottom-width: 0
-}
-.wy-table-responsive {
- margin-bottom: 24px;
- max-width: 100%;
- overflow: auto
-}
-.wy-table-responsive table {
- margin-bottom: 0 !important
-}
-.wy-table-responsive table td,
-.wy-table-responsive table th {
- white-space: inherit
-}
-a {
- color: #2980B9;
- text-decoration: none;
- cursor: pointer
-}
-a:hover {
- color: #3091d1
-}
-a:visited {
- color: #9B59B6
-}
-html {
- height: 100%;
- overflow-x: hidden
-}
-body {
- font-family: "Lato", "proxima-nova", "Helvetica Neue", Arial, sans-serif;
- font-weight: normal;
- color: #404040;
- min-height: 100%;
- overflow-x: hidden;
- background: #edf0f2
-}
-.wy-text-left {
- text-align: left
-}
-.wy-text-center {
- text-align: center
-}
-.wy-text-right {
- text-align: right
-}
-.wy-text-large {
- font-size: 120%
-}
-.wy-text-normal {
- font-size: 100%
-}
-.wy-text-small,
-small {
- font-size: 80%
-}
-.wy-text-strike {
- text-decoration: line-through
-}
-.wy-text-warning {
- color: #E67E22 !important
-}
-a.wy-text-warning:hover {
- color: #eb9950 !important
-}
-.wy-text-info {
- color: #2980B9 !important
-}
-a.wy-text-info:hover {
- color: #409ad5 !important
-}
-.wy-text-success {
- color: #27AE60 !important
-}
-a.wy-text-success:hover {
- color: #36d278 !important
-}
-.wy-text-danger {
- color: #E74C3C !important
-}
-a.wy-text-danger:hover {
- color: #ed7669 !important
-}
-.wy-text-neutral {
- color: #404040 !important
-}
-a.wy-text-neutral:hover {
- color: #595959 !important
-}
-h1,
-h2,
-.rst-content p.caption,
-h3,
-h4,
-h5,
-h6,
-legend {
- margin-top: 0;
- font-weight: 700;
- font-family: "Roboto Slab", "ff-tisa-web-pro", "Georgia", Arial, sans-serif
-}
-p {
- line-height: 26px;
- margin: 0;
- font-size: 16px;
- margin-bottom: 24px
-}
-h1 {
- font-size: 175%
-}
-h2,
-.rst-content p.caption {
- font-size: 150%
-}
-h3 {
- font-size: 125%
-}
-h4 {
- font-size: 115%
-}
-h5 {
- font-size: 110%
-}
-h6 {
- font-size: 100%
-}
-hr {
- display: block;
- height: 1px;
- border: 0;
- border-top: 1px solid #e1e4e5;
- margin: 24px 0;
- padding: 0
-}
-code,
-.rst-content tt,
-.rst-content code {
- white-space: nowrap;
- max-width: 100%;
- background: #fff;
- border: solid 1px #e1e4e5;
- font-size: 75%;
- padding: 0 5px;
- font-family: Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace;
- color: #E74C3C;
- overflow-x: auto
-}
-code.code-large,
-.rst-content tt.code-large {
- font-size: 90%
-}
-.wy-plain-list-disc,
-.rst-content .section ul,
-.rst-content .toctree-wrapper ul,
-article ul {
- list-style: disc;
- line-height: 24px;
- margin-bottom: 24px
-}
-.wy-plain-list-disc li,
-.rst-content .section ul li,
-.rst-content .toctree-wrapper ul li,
-article ul li {
- list-style: disc;
- margin-left: 24px
-}
-.wy-plain-list-disc li p:last-child,
-.rst-content .section ul li p:last-child,
-.rst-content .toctree-wrapper ul li p:last-child,
-article ul li p:last-child {
- margin-bottom: 0
-}
-.wy-plain-list-disc li ul,
-.rst-content .section ul li ul,
-.rst-content .toctree-wrapper ul li ul,
-article ul li ul {
- margin-bottom: 0
-}
-.wy-plain-list-disc li li,
-.rst-content .section ul li li,
-.rst-content .toctree-wrapper ul li li,
-article ul li li {
- list-style: circle
-}
-.wy-plain-list-disc li li li,
-.rst-content .section ul li li li,
-.rst-content .toctree-wrapper ul li li li,
-article ul li li li {
- list-style: square
-}
-.wy-plain-list-disc li ol li,
-.rst-content .section ul li ol li,
-.rst-content .toctree-wrapper ul li ol li,
-article ul li ol li {
- list-style: decimal
-}
-.wy-plain-list-decimal,
-.rst-content .section ol,
-.rst-content ol.arabic,
-article ol {
- list-style: decimal;
- line-height: 24px;
- margin-bottom: 24px
-}
-.wy-plain-list-decimal li,
-.rst-content .section ol li,
-.rst-content ol.arabic li,
-article ol li {
- list-style: decimal;
- margin-left: 24px
-}
-.wy-plain-list-decimal li p:last-child,
-.rst-content .section ol li p:last-child,
-.rst-content ol.arabic li p:last-child,
-article ol li p:last-child {
- margin-bottom: 0
-}
-.wy-plain-list-decimal li ul,
-.rst-content .section ol li ul,
-.rst-content ol.arabic li ul,
-article ol li ul {
- margin-bottom: 0
-}
-.wy-plain-list-decimal li ul li,
-.rst-content .section ol li ul li,
-.rst-content ol.arabic li ul li,
-article ol li ul li {
- list-style: disc
-}
-.codeblock-example {
- border: 1px solid #e1e4e5;
- border-bottom: none;
- padding: 24px;
- padding-top: 48px;
- font-weight: 500;
- background: #fff;
- position: relative
-}
-.codeblock-example:after {
- content: "Example";
- position: absolute;
- top: 0px;
- left: 0px;
- background: #9B59B6;
- color: #fff;
- padding: 6px 12px
-}
-.codeblock-example.prettyprint-example-only {
- border: 1px solid #e1e4e5;
- margin-bottom: 24px
-}
-.codeblock,
-pre.literal-block,
-.rst-content .literal-block,
-.rst-content pre.literal-block,
-div[class^='highlight'] {
- border: 1px solid #e1e4e5;
- padding: 0px;
- overflow-x: auto;
- background: #fff;
- margin: 1px 0 24px 0
-}
-.codeblock div[class^='highlight'],
-pre.literal-block div[class^='highlight'],
-.rst-content .literal-block div[class^='highlight'],
-div[class^='highlight'] div[class^='highlight'] {
- border: none;
- background: none;
- margin: 0
-}
-div[class^='highlight'] td.code {
- width: 100%
-}
-.linenodiv pre {
- border-right: solid 1px #e6e9ea;
- margin: 0;
- padding: 12px 12px;
- font-family: Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace;
- font-size: 12px;
- line-height: 1.5;
- color: #d9d9d9
-}
-div[class^='highlight'] pre {
- white-space: pre;
- margin: 0;
- padding: 10px 10px;
- font-family: Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace;
- font-size: 12px;
- line-height: 1.5;
- display: block;
- overflow: auto;
- color: #404040;
- background: #E7EBF4
-}
-@media print {
- .codeblock,
- pre.literal-block,
- .rst-content .literal-block,
- .rst-content pre.literal-block,
- div[class^='highlight'],
- div[class^='highlight'] pre {
- white-space: pre-wrap
- }
-}
-.hll {
- background-color: #ffc;
- margin: 0 -12px;
- padding: 0 12px;
- display: block
-}
-.c {
- color: #998;
- font-style: italic
-}
-.err {
- color: #a61717;
- background-color: #e3d2d2
-}
-.k {
- font-weight: bold
-}
-.o {
- font-weight: bold
-}
-.cm {
- color: #998;
- font-style: italic
-}
-.cp {
- color: #999;
- font-weight: bold
-}
-.c1 {
- color: #998;
- font-style: italic
-}
-.cs {
- color: #999;
- font-weight: bold;
- font-style: italic
-}
-.gd {
- color: #000;
- background-color: #fdd
-}
-.gd .x {
- color: #000;
- background-color: #faa
-}
-.ge {
- font-style: italic
-}
-.gr {
- color: #a00
-}
-.gh {
- color: #999
-}
-.gi {
- color: #000;
- background-color: #dfd
-}
-.gi .x {
- color: #000;
- background-color: #afa
-}
-.go {
- color: #888
-}
-.gp {
- color: #555
-}
-.gs {
- font-weight: bold
-}
-.gu {
- color: purple;
- font-weight: bold
-}
-.gt {
- color: #a00
-}
-.kc {
- font-weight: bold
-}
-.kd {
- font-weight: bold
-}
-.kn {
- font-weight: bold
-}
-.kp {
- font-weight: bold
-}
-.kr {
- font-weight: bold
-}
-.kt {
- color: #458;
- font-weight: bold
-}
-.m {
- color: #099
-}
-.s {
- color: #d14
-}
-.n {
- color: #333
-}
-.na {
- color: teal
-}
-.nb {
- color: #0086b3
-}
-.nc {
- color: #458;
- font-weight: bold
-}
-.no {
- color: teal
-}
-.ni {
- color: purple
-}
-.ne {
- color: #900;
- font-weight: bold
-}
-.nf {
- color: #900;
- font-weight: bold
-}
-.nn {
- color: #555
-}
-.nt {
- color: navy
-}
-.nv {
- color: teal
-}
-.ow {
- font-weight: bold
-}
-.w {
- color: #bbb
-}
-.mf {
- color: #099
-}
-.mh {
- color: #099
-}
-.mi {
- color: #099
-}
-.mo {
- color: #099
-}
-.sb {
- color: #d14
-}
-.sc {
- color: #d14
-}
-.sd {
- color: #d14
-}
-.s2 {
- color: #d14
-}
-.se {
- color: #d14
-}
-.sh {
- color: #d14
-}
-.si {
- color: #d14
-}
-.sx {
- color: #d14
-}
-.sr {
- color: #009926
-}
-.s1 {
- color: #d14
-}
-.ss {
- color: #990073
-}
-.bp {
- color: #999
-}
-.vc {
- color: teal
-}
-.vg {
- color: teal
-}
-.vi {
- color: teal
-}
-.il {
- color: #099
-}
-.gc {
- color: #999;
- background-color: #EAF2F5
-}
-.wy-breadcrumbs li {
- display: inline-block
-}
-.wy-breadcrumbs li.wy-breadcrumbs-aside {
- float: right
-}
-.wy-breadcrumbs li a {
- display: inline-block;
- padding: 5px
-}
-.wy-breadcrumbs li a:first-child {
- padding-left: 0
-}
-.wy-breadcrumbs-extra {
- margin-bottom: 0;
- color: #b3b3b3;
- font-size: 80%;
- display: inline-block
-}
-@media screen and (max-width: 480px) {
- .wy-breadcrumbs-extra {
- display: none
- }
- .wy-breadcrumbs li.wy-breadcrumbs-aside {
- display: none
- }
-}
-@media print {
- .wy-breadcrumbs li.wy-breadcrumbs-aside {
- display: none
- }
-}
-.wy-affix {
- position: fixed;
- top: 1.618em
-}
-.wy-menu a:hover {
- text-decoration: none
-}
-.wy-menu-horiz {
- *zoom: 1
-}
-.wy-menu-horiz:before,
-.wy-menu-horiz:after {
- display: table;
- content: ""
-}
-.wy-menu-horiz:after {
- clear: both
-}
-.wy-menu-horiz ul,
-.wy-menu-horiz li {
- display: inline-block
-}
-.wy-menu-horiz li:hover {
- background: rgba(255, 255, 255, 0.1)
-}
-.wy-menu-horiz li.divide-left {
- border-left: solid 1px #404040
-}
-.wy-menu-horiz li.divide-right {
- border-right: solid 1px #404040
-}
-.wy-menu-horiz a {
- height: 32px;
- display: inline-block;
- line-height: 32px;
- padding: 0 16px
-}
-.wy-menu-vertical header,
-.wy-menu-vertical p.caption {
- height: 32px;
- display: inline-block;
- line-height: 32px;
- padding: 0 1.618em;
- margin-bottom: 0;
- display: block;
- font-weight: bold;
- text-transform: uppercase;
- font-size: 80%;
- color: #555;
- white-space: nowrap
-}
-.wy-menu-vertical ul {
- margin-bottom: 0
-}
-.wy-menu-vertical li.divide-top {
- border-top: solid 1px #404040
-}
-.wy-menu-vertical li.divide-bottom {
- border-bottom: solid 1px #404040
-}
-.wy-menu-vertical li.current {
-// background: #e3e3e3
- background: #e3e3ff
-}
-.wy-menu-vertical li.current a {
- color: white;
- border-right: none;
- padding: 0.4045em 2.427em
-}
-.wy-menu-vertical li.current a:hover {
- color: #f5f5f5
-}
-.wy-menu-vertical li code,
-.wy-menu-vertical li .rst-content tt,
-.rst-content .wy-menu-vertical li tt {
- border: none;
- background: inherit;
- color: inherit;
- padding-left: 0;
- padding-right: 0
-}
-.wy-menu-vertical li span.toctree-expand {
- display: block;
- float: left;
- margin-left: -1.2em;
- font-size: 0.8em;
- line-height: 1.6em;
- color: #4d4d4d
-}
-.wy-menu-vertical li.on a,
-.wy-menu-vertical li.current>a {
- color: #f5f5f5;
- padding: 0.4045em 1.618em;
- font-weight: bold;
- position: relative;
- background: rgba(176,0,0,1);
- background: -moz-linear-gradient(left, rgba(176,0,0,1) 0%, rgba(176,0,0,1) 6%, rgba(181,7,7,1) 44%, rgba(237,14,14,1) 95%, rgba(237,14,14,1) 100%);
- background: -webkit-gradient(left top, right top, color-stop(0%, rgba(176,0,0,1)), color-stop(6%, rgba(176,0,0,1)), color-stop(44%, rgba(181,7,7,1)), color-stop(95%, rgba(237,14,14,1)), color-stop(100%, rgba(237,14,14,1)));
- background: -webkit-linear-gradient(left, rgba(176,0,0,1) 0%, rgba(176,0,0,1) 6%, rgba(181,7,7,1) 44%, rgba(237,14,14,1) 95%, rgba(237,14,14,1) 100%);
- background: -o-linear-gradient(left, rgba(176,0,0,1) 0%, rgba(176,0,0,1) 6%, rgba(181,7,7,1) 44%, rgba(237,14,14,1) 95%, rgba(237,14,14,1) 100%);
- background: -ms-linear-gradient(left, rgba(176,0,0,1) 0%, rgba(176,0,0,1) 6%, rgba(181,7,7,1) 44%, rgba(237,14,14,1) 95%, rgba(237,14,14,1) 100%);
- background: linear-gradient(to right, rgba(176,0,0,1) 0%, rgba(176,0,0,1) 6%, rgba(181,7,7,1) 44%, rgba(237,14,14,1) 95%, rgba(237,14,14,1) 100%);
-filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#b00000', endColorstr='#ed0e0e', GradientType=1 );
- border: none;
- border-bottom: none;
- border-top: none;
- padding-left: 1.618em -4px
-}
-.wy-menu-vertical li.on a:hover,
-.wy-menu-vertical li.current>a:hover {
- color:#f5f5f5
-}
-.wy-menu-vertical li.on a:hover span.toctree-expand,
-.wy-menu-vertical li.current>a:hover span.toctree-expand {
- color: #f5f5f5
-}
-.wy-menu-vertical li.on a span.toctree-expand,
-.wy-menu-vertical li.current>a span.toctree-expand {
- display: block;
- font-size: 0.8em;
- line-height: 1.6em;
- color: #333
-}
-.wy-menu-vertical li.toctree-l1.current li.toctree-l2>ul,
-.wy-menu-vertical li.toctree-l2.current li.toctree-l3>ul {
- display: none
-}
-.wy-menu-vertical li.toctree-l1.current li.toctree-l2.current>ul,
-.wy-menu-vertical li.toctree-l2.current li.toctree-l3.current>ul {
- display: block
-}
-.wy-menu-vertical li.toctree-l2.current>a {
- background: rgba(176,0,0,1);
- background: -moz-linear-gradient(left, rgba(176,0,0,1) 0%, rgba(176,0,0,1) 6%, rgba(181,7,7,1) 44%, rgba(237,14,14,1) 95%, rgba(237,14,14,1) 100%);
- background: -webkit-gradient(left top, right top, color-stop(0%, rgba(176,0,0,1)), color-stop(6%, rgba(176,0,0,1)), color-stop(44%, rgba(181,7,7,1)), color-stop(95%, rgba(237,14,14,1)), color-stop(100%, rgba(237,14,14,1)));
- background: -webkit-linear-gradient(left, rgba(176,0,0,1) 0%, rgba(176,0,0,1) 6%, rgba(181,7,7,1) 44%, rgba(237,14,14,1) 95%, rgba(237,14,14,1) 100%);
- background: -o-linear-gradient(left, rgba(176,0,0,1) 0%, rgba(176,0,0,1) 6%, rgba(181,7,7,1) 44%, rgba(237,14,14,1) 95%, rgba(237,14,14,1) 100%);
- background: -ms-linear-gradient(left, rgba(176,0,0,1) 0%, rgba(176,0,0,1) 6%, rgba(181,7,7,1) 44%, rgba(237,14,14,1) 95%, rgba(237,14,14,1) 100%);
- background: linear-gradient(to right, rgba(176,0,0,1) 0%, rgba(176,0,0,1) 6%, rgba(181,7,7,1) 44%, rgba(237,14,14,1) 95%, rgba(237,14,14,1) 100%);
-filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#b00000', endColorstr='#ed0e0e', GradientType=1 );
- padding: 0.4045em 2.427em
-}
-.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a {
- display: block;
- line-height: 1.6em;
- padding: 0.4045em 4.045em
-}
-.wy-menu-vertical li.toctree-l2 a:hover span.toctree-expand {
- color: #f5f5f5
-}
-.wy-menu-vertical li.toctree-l2 span.toctree-expand {
- color: #a3a3a3
-}
-.wy-menu-vertical li.toctree-l3 {
- font-size: 0.9em;
- background: #28343b
-}
-.wy-menu-vertical li.toctree-l3.current>a {
- background: rgba(176,0,0,1);
- background: -moz-linear-gradient(left, rgba(176,0,0,1) 0%, rgba(176,0,0,1) 6%, rgba(181,7,7,1) 44%, rgba(237,14,14,1) 95%, rgba(237,14,14,1) 100%);
- background: -webkit-gradient(left top, right top, color-stop(0%, rgba(176,0,0,1)), color-stop(6%, rgba(176,0,0,1)), color-stop(44%, rgba(181,7,7,1)), color-stop(95%, rgba(237,14,14,1)), color-stop(100%, rgba(237,14,14,1)));
- background: -webkit-linear-gradient(left, rgba(176,0,0,1) 0%, rgba(176,0,0,1) 6%, rgba(181,7,7,1) 44%, rgba(237,14,14,1) 95%, rgba(237,14,14,1) 100%);
- background: -o-linear-gradient(left, rgba(176,0,0,1) 0%, rgba(176,0,0,1) 6%, rgba(181,7,7,1) 44%, rgba(237,14,14,1) 95%, rgba(237,14,14,1) 100%);
- background: -ms-linear-gradient(left, rgba(176,0,0,1) 0%, rgba(176,0,0,1) 6%, rgba(181,7,7,1) 44%, rgba(237,14,14,1) 95%, rgba(237,14,14,1) 100%);
- background: linear-gradient(to right, rgba(176,0,0,1) 0%, rgba(176,0,0,1) 6%, rgba(181,7,7,1) 44%, rgba(237,14,14,1) 95%, rgba(237,14,14,1) 100%);
-filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#b00000', endColorstr='#ed0e0e', GradientType=1 );
- color:#f5f5f5;
- padding: 0.4045em 3.2em
-}
-.wy-menu-vertical li.toctree-l3.current>a:hover{
- color: #f5f5f5
-}
-.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a {
- display: block;
- background: #890dod;
- padding: 0.4045em 5.663em;
- border-top: none;
- border-bottom: none
-}
-.wy-menu-vertical li.toctree-l3 a:hover span.toctree-expand {
- color: #f5f5f5
-}
-.wy-menu-vertical li.toctree-l3 span.toctree-expand {
- color: #969696
-}
-.wy-menu-vertical li.toctree-l4 {
- font-size: 0.9em
-}
-.wy-menu-vertical li.current ul {
- display: block
-}
-.wy-menu-vertical li ul {
- margin-bottom: 0;
- display: none
-}
-.wy-menu-vertical .local-toc li ul {
- display: block
-}
-.wy-menu-vertical li ul li a {
- margin-bottom: 0;
- color: #b3b3b3;
- font-weight: normal
-}
-.wy-menu-vertical a {
- display: inline-block;
- line-height: 18px;
- padding: 0.4045em 1.618em;
- display: block;
- position: relative;
- font-size: 90%;
- color: #f5f5f5
-}
-/*hover color important applies to all levels*/
-.wy-menu-vertical a:hover {
- background: rgba(115,0,0,1)!important;
- background: -moz-linear-gradient(left, rgba(115,0,0,1) 0%, rgba(115,0,0,1) 6%, rgba(145,2,2,1) 44%, rgba(191,0,0,1) 95%, rgba(191,0,0,1) 100%)!important;
- background: -webkit-gradient(left top, right top, color-stop(0%, rgba(115,0,0,1)), color-stop(6%, rgba(115,0,0,1)), color-stop(44%, rgba(145,2,2,1)), color-stop(95%, rgba(191,0,0,1)), color-stop(100%, rgba(191,0,0,1)))!important;
- background: -webkit-linear-gradient(left, rgba(115,0,0,1) 0%, rgba(115,0,0,1) 6%, rgba(145,2,2,1) 44%, rgba(191,0,0,1) 95%, rgba(191,0,0,1) 100%)!important;
- background: -o-linear-gradient(left, rgba(115,0,0,1) 0%, rgba(115,0,0,1) 6%, rgba(145,2,2,1) 44%, rgba(191,0,0,1) 95%, rgba(191,0,0,1) 100%)!important;
- background: -ms-linear-gradient(left, rgba(115,0,0,1) 0%, rgba(115,0,0,1) 6%, rgba(145,2,2,1) 44%, rgba(191,0,0,1) 95%, rgba(191,0,0,1) 100%)!important;
- background: linear-gradient(to right, rgba(115,0,0,1) 0%, rgba(115,0,0,1) 6%, rgba(145,2,2,1) 44%, rgba(191,0,0,1) 95%, rgba(191,0,0,1) 100%)!important;
-filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#730000', endColorstr='#bf0000', GradientType=1 )!important;
- cursor: pointer
-}
-/*changes color of + box to expand tree*/
-.wy-menu-vertical a:hover span.toctree-expand {
- color: #f5f5f5
-}
-.wy-menu-vertical a:active {
- background-color: #2980B9;
- cursor: pointer;
- color: #fff
-}
-.wy-menu-vertical a:active span.toctree-expand {
- color: #fff
-}
-.wy-side-nav-search {
- z-index: 200;
- background-color: #2980B9;
- text-align: center;
- padding: 0.809em;
- display: block;
- color: #fcfcfc;
- margin-bottom: 0.809em
-}
-.wy-side-nav-search input[type=text] {
- width: 90%;
- border-radius: 50px;
- padding: 6px 12px;
- border-color: #2472a4
-}
-.wy-side-nav-search img {
- display: block;
- margin: auto auto 0.809em auto;
- height: 45px;
- width: 45px;
- background-color: #2980B9;
- padding: 5px;
- border-radius: 100%
-}
-.wy-side-nav-search>a,
-.wy-side-nav-search .wy-dropdown>a {
- color: #fcfcfc;
- font-size: 100%;
- font-weight: bold;
- display: inline-block;
- padding: 4px 6px;
- margin-bottom: 0.809em
-}
-.wy-side-nav-search>a:hover,
-.wy-side-nav-search .wy-dropdown>a:hover {
- background: rgba(255,255,255,0.1) none repeat scroll 0 0;
-}
-.wy-side-nav-search>a img.logo,
-.wy-side-nav-search .wy-dropdown>a img.logo {
- display: block;
- margin: 0 auto;
- height: auto;
- width: auto;
- border-radius: 0;
- max-width: 100%;
- background: transparent
-}
-.wy-side-nav-search>a.icon img.logo,
-.wy-side-nav-search .wy-dropdown>a.icon img.logo {
- margin-top: 0.85em
-}
-.wy-side-nav-search>div.version {
- display: block;
- text-align: center;
- margin-top: -0.4045em;
- margin-bottom: 0.809em;
- font-weight: normal;
- color: #f5f5f5
-}
-.wy-nav .wy-menu-vertical header {
- color: #2980B9
-}
-.wy-nav .wy-menu-vertical a {
- color: #b3b3b3
-}
-.wy-nav .wy-menu-vertical a:hover {
- background-color: #60695d
-}
-[data-menu-wrap] {
- -webkit-transition: all 0.2s ease-in;
- -moz-transition: all 0.2s ease-in;
- transition: all 0.2s ease-in;
- position: absolute;
- opacity: 1;
- width: 100%;
- opacity: 0
-}
-[data-menu-wrap].move-center {
- left: 0;
- right: auto;
- opacity: 1
-}
-[data-menu-wrap].move-left {
- right: auto;
- left: -100%;
- opacity: 0
-}
-[data-menu-wrap].move-right {
- right: -100%;
- left: auto;
- opacity: 0
-}
-.wy-body-for-nav {
- background: left repeat-y #fcfcfc;
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxOERBMTRGRDBFMUUxMUUzODUwMkJCOThDMEVFNURFMCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxOERBMTRGRTBFMUUxMUUzODUwMkJCOThDMEVFNURFMCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjE4REExNEZCMEUxRTExRTM4NTAyQkI5OEMwRUU1REUwIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjE4REExNEZDMEUxRTExRTM4NTAyQkI5OEMwRUU1REUwIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+EwrlwAAAAA5JREFUeNpiMDU0BAgwAAE2AJgB9BnaAAAAAElFTkSuQmCC);
- background-size: 300px 1px
-}
-.wy-grid-for-nav {
- position: absolute;
- width: 100%;
- height: 100%
-}
-.wy-nav-side {
- position: fixed;
- top: 0;
- bottom: 0;
- left: 0;
- padding-bottom: .1em;
- width: 300px;
- overflow-x: hidden;
- overflow-y: hidden;
- min-height: 100%;
- background: #343131;
- z-index: 200
-}
-.wy-nav-top {
- display: none;
- background: #2980B9;
- color: #fff;
- padding: 0.4045em 0.809em;
- position: relative;
- line-height: 50px;
- text-align: center;
- font-size: 100%;
- *zoom: 1
-}
-.wy-nav-top:before,
-.wy-nav-top:after {
- display: table;
- content: ""
-}
-.wy-nav-top:after {
- clear: both
-}
-.wy-nav-top a {
- color: #fff;
- font-weight: bold
-}
-.wy-nav-top img {
- margin-right: 12px;
- height: 45px;
- width: 45px;
- background-color: #2980B9;
- padding: 5px;
- border-radius: 100%
-}
-.wy-nav-top i {
- font-size: 30px;
- float: left;
- cursor: pointer
-}
-.wy-nav-content-wrap {
- margin-left: 300px;
- background: #fcfcfc;
- min-height: 100%
-}
-.wy-nav-content {
- padding: 1.618em 3.236em;
- height: 100%;
- max-width: 800px;
- margin: auto
-}
-.wy-body-mask {
- position: fixed;
- width: 100%;
- height: 100%;
- background: rgba(0, 0, 0, 0.2);
- display: none;
- z-index: 499
-}
-.wy-body-mask.on {
- display: block
-}
-footer {
- color: #999
-}
-footer p {
- margin-bottom: 12px
-}
-.rst-footer-buttons {
- *zoom: 1
-}
-.rst-footer-buttons:before,
-.rst-footer-buttons:after {
- display: table;
- content: ""
-}
-.rst-footer-buttons:after {
- clear: both
-}
-#search-results .search li {
- margin-bottom: 24px;
- border-bottom: solid 1px #e1e4e5;
- padding-bottom: 24px
-}
-#search-results .search li:first-child {
- border-top: solid 1px #e1e4e5;
- padding-top: 24px
-}
-#search-results .search li a {
- font-size: 120%;
- margin-bottom: 12px;
- display: inline-block
-}
-#search-results .context {
- color: gray;
- font-size: 90%
-}
-@media screen and (max-width: 768px) {
- .wy-body-for-nav {
- background: #fcfcfc
- }
- .wy-nav-top {
- display: block
- }
- .wy-nav-side {
- left: -300px
- }
- .wy-nav-side.shift {
- width: 85%;
- left: 0
- }
- .wy-nav-content-wrap {
- margin-left: 0
- }
- .wy-nav-content-wrap .wy-nav-content {
- padding: 1.618em
- }
- .wy-nav-content-wrap.shift {
- position: fixed;
- min-width: 100%;
- left: 85%;
- top: 0;
- height: 100%;
- overflow: hidden
- }
-}
-@media screen and (min-width: 1400px) {
- .wy-nav-content-wrap {
- background: rgba(0, 0, 0, 0.05)
- }
- .wy-nav-content {
- margin: 0;
- background: #fcfcfc
- }
-}
-@media print {
- .rst-versions,
- footer,
- .wy-nav-side {
- display: none
- }
- .wy-nav-content-wrap {
- margin-left: 0
- }
-}
-.rst-versions {
- position: fixed;
- bottom: 0;
- left: 0;
- width: 300px;
- color: #fcfcfc;
- background: #1f1d1d;
- border-top: solid 10px #343131;
- font-family: "Lato", "proxima-nova", "Helvetica Neue", Arial, sans-serif;
- z-index: 400
-}
-.rst-versions a {
- color: #2980B9;
- text-decoration: none
-}
-.rst-versions .rst-badge-small {
- display: none
-}
-.rst-versions .rst-current-version {
- padding: 12px;
- background-color: #272525;
- display: block;
- text-align: right;
- font-size: 90%;
- cursor: pointer;
- color: #27AE60;
- *zoom: 1
-}
-.rst-versions .rst-current-version:before,
-.rst-versions .rst-current-version:after {
- display: table;
- content: ""
-}
-.rst-versions .rst-current-version:after {
- clear: both
-}
-.rst-versions .rst-current-version .fa,
-.rst-versions .rst-current-version .wy-menu-vertical li span.toctree-expand,
-.wy-menu-vertical li .rst-versions .rst-current-version span.toctree-expand,
-.rst-versions .rst-current-version .rst-content .admonition-title,
-.rst-content .rst-versions .rst-current-version .admonition-title,
-.rst-versions .rst-current-version .rst-content h1 .headerlink,
-.rst-content h1 .rst-versions .rst-current-version .headerlink,
-.rst-versions .rst-current-version .rst-content h2 .headerlink,
-.rst-content h2 .rst-versions .rst-current-version .headerlink,
-.rst-versions .rst-current-version .rst-content p.caption .headerlink,
-.rst-content p.caption .rst-versions .rst-current-version .headerlink,
-.rst-versions .rst-current-version .rst-content h3 .headerlink,
-.rst-content h3 .rst-versions .rst-current-version .headerlink,
-.rst-versions .rst-current-version .rst-content h4 .headerlink,
-.rst-content h4 .rst-versions .rst-current-version .headerlink,
-.rst-versions .rst-current-version .rst-content h5 .headerlink,
-.rst-content h5 .rst-versions .rst-current-version .headerlink,
-.rst-versions .rst-current-version .rst-content h6 .headerlink,
-.rst-content h6 .rst-versions .rst-current-version .headerlink,
-.rst-versions .rst-current-version .rst-content dl dt .headerlink,
-.rst-content dl dt .rst-versions .rst-current-version .headerlink,
-.rst-versions .rst-current-version .rst-content tt.download span:first-child,
-.rst-content tt.download .rst-versions .rst-current-version span:first-child,
-.rst-versions .rst-current-version .rst-content code.download span:first-child,
-.rst-content code.download .rst-versions .rst-current-version span:first-child,
-.rst-versions .rst-current-version .icon {
- color: #fcfcfc
-}
-.rst-versions .rst-current-version .fa-book,
-.rst-versions .rst-current-version .icon-book {
- float: left
-}
-.rst-versions .rst-current-version .icon-book {
- float: left
-}
-.rst-versions .rst-current-version.rst-out-of-date {
- background-color: #E74C3C;
- color: #fff
-}
-.rst-versions .rst-current-version.rst-active-old-version {
- background-color: #F1C40F;
- color: #000
-}
-.rst-versions.shift-up .rst-other-versions {
- display: block
-}
-.rst-versions .rst-other-versions {
- font-size: 90%;
- padding: 12px;
- color: gray;
- display: none
-}
-.rst-versions .rst-other-versions hr {
- display: block;
- height: 1px;
- border: 0;
- margin: 20px 0;
- padding: 0;
- border-top: solid 1px #413d3d
-}
-.rst-versions .rst-other-versions dd {
- display: inline-block;
- margin: 0
-}
-.rst-versions .rst-other-versions dd a {
- display: inline-block;
- padding: 6px;
- color: #fcfcfc
-}
-.rst-versions.rst-badge {
- width: auto;
- bottom: 20px;
- right: 20px;
- left: auto;
- border: none;
- max-width: 300px
-}
-.rst-versions.rst-badge .icon-book {
- float: none
-}
-.rst-versions.rst-badge .fa-book,
-.rst-versions.rst-badge .icon-book {
- float: none
-}
-.rst-versions.rst-badge.shift-up .rst-current-version {
- text-align: right
-}
-.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,
-.rst-versions.rst-badge.shift-up .rst-current-version .icon-book {
- float: left
-}
-.rst-versions.rst-badge.shift-up .rst-current-version .icon-book {
- float: left
-}
-.rst-versions.rst-badge .rst-current-version {
- width: auto;
- height: 30px;
- line-height: 30px;
- padding: 0 6px;
- display: block;
- text-align: center
-}
-/* Note the max width "toggle" */
-@media screen and (max-width: 768px) {
- .rst-versions {
- width: 85%;
- display: none
- }
- .rst-versions.shift {
- display: block
- }
- img {
- width: 100%;
- height: auto
- }
-}
-.rst-content img {
- max-width: 100%;
- height: auto !important
-}
-.rst-content div.figure {
- margin-bottom: 24px
-}
-.rst-content div.figure.align-center {
- text-align: center
-}
-.rst-content .section>img,
-.rst-content .section>a>img {
- margin-bottom: 24px
-}
-.rst-content blockquote {
- margin-left: 24px;
- line-height: 24px;
- margin-bottom: 24px
-}
-.rst-content .note .last,
-.rst-content .attention .last,
-.rst-content .caution .last,
-.rst-content .danger .last,
-.rst-content .error .last,
-.rst-content .hint .last,
-.rst-content .important .last,
-.rst-content .tip .last,
-.rst-content .warning .last,
-.rst-content .seealso .last,
-.rst-content .admonition-todo .last {
- margin-bottom: 0
-}
-.rst-content .admonition-title:before {
- margin-right: 4px
-}
-.rst-content .admonition table {
- border-color: rgba(0, 0, 0, 0.1)
-}
-.rst-content .admonition table td,
-.rst-content .admonition table th {
- background: transparent !important;
- border-color: rgba(0, 0, 0, 0.1) !important
-}
-.rst-content .section ol.loweralpha,
-.rst-content .section ol.loweralpha li {
- list-style: lower-alpha
-}
-.rst-content .section ol.upperalpha,
-.rst-content .section ol.upperalpha li {
- list-style: upper-alpha
-}
-.rst-content .section ol p,
-.rst-content .section ul p {
- margin-bottom: 12px
-}
-.rst-content .line-block {
- margin-left: 24px
-}
-.rst-content .topic-title {
- font-weight: bold;
- margin-bottom: 12px
-}
-.rst-content .toc-backref {
- color: #404040
-}
-.rst-content .align-right {
- float: right;
- margin: 0px 0px 24px 24px
-}
-.rst-content .align-left {
- float: left;
- margin: 0px 24px 24px 0px
-}
-.rst-content .align-center {
- margin: auto;
- display: block
-}
-.rst-content h1 .headerlink,
-.rst-content h2 .headerlink,
-.rst-content p.caption .headerlink,
-.rst-content h3 .headerlink,
-.rst-content h4 .headerlink,
-.rst-content h5 .headerlink,
-.rst-content h6 .headerlink,
-.rst-content dl dt .headerlink,
-.rst-content p.caption .headerlink {
- display: none;
- visibility: hidden;
- font-size: 14px
-}
-.rst-content h1 .headerlink:after,
-.rst-content h2 .headerlink:after,
-.rst-content p.caption .headerlink:after,
-.rst-content h3 .headerlink:after,
-.rst-content h4 .headerlink:after,
-.rst-content h5 .headerlink:after,
-.rst-content h6 .headerlink:after,
-.rst-content dl dt .headerlink:after,
-.rst-content p.caption .headerlink:after {
- visibility: visible;
- content: "\F0C1 ";
- font-family: FontAwesome;
- display: inline-block
-}
-.rst-content h1:hover .headerlink,
-.rst-content h2:hover .headerlink,
-.rst-content p.caption:hover .headerlink,
-.rst-content h3:hover .headerlink,
-.rst-content h4:hover .headerlink,
-.rst-content h5:hover .headerlink,
-.rst-content h6:hover .headerlink,
-.rst-content dl dt:hover .headerlink,
-.rst-content p.caption:hover .headerlink {
- display: inline-block
-}
-.rst-content .sidebar {
- float: right;
- width: 40%;
- display: block;
- margin: 0 0 24px 24px;
- padding: 24px;
- background: #f3f6f6;
- border: solid 1px #e1e4e5
-}
-.rst-content .sidebar p,
-.rst-content .sidebar ul,
-.rst-content .sidebar dl {
- font-size: 90%
-}
-.rst-content .sidebar .last {
- margin-bottom: 0
-}
-.rst-content .sidebar .sidebar-title {
- display: block;
- font-family: "Roboto Slab", "ff-tisa-web-pro", "Georgia", Arial, sans-serif;
- font-weight: bold;
- background: #e1e4e5;
- padding: 6px 12px;
- margin: -24px;
- margin-bottom: 24px;
- font-size: 100%
-}
-.rst-content .highlighted {
- background: #DDDD00;
- display: inline-block;
- font-weight: bold;
- padding: 0px
-}
-
-/* Custom */
-#search-results .highlighted {
- background: #DDDD00;
- display: inline-block;
- font-weight: bold;
- padding: 0px;
- color: #000;
-}
-/*custom end */
-
-.rst-content .footnote-reference,
-.rst-content .citation-reference {
- vertical-align: super;
- font-size: 90%
-}
-.rst-content table.docutils.citation,
-.rst-content table.docutils.footnote {
- background: none;
- border: none;
- color: #999
-}
-.rst-content table.docutils.citation td,
-.rst-content table.docutils.citation tr,
-.rst-content table.docutils.footnote td,
-.rst-content table.docutils.footnote tr {
- border: none;
- background-color: transparent !important;
- white-space: normal
-}
-.rst-content table.docutils.citation td.label,
-.rst-content table.docutils.footnote td.label {
- padding-left: 0;
- padding-right: 0;
- vertical-align: top
-}
-.rst-content table.field-list {
- border: none
-}
-.rst-content table.field-list td {
- border: none;
- padding-top: 5px
-}
-.rst-content table.field-list td>strong {
- display: inline-block;
- margin-top: 3px
-}
-.rst-content table.field-list .field-name {
- padding-right: 10px;
- text-align: left;
- white-space: nowrap
-}
-.rst-content table.field-list .field-body {
- text-align: left;
- padding-left: 0
-}
-.rst-content tt,
-.rst-content tt,
-.rst-content code {
- color: #000
-}
-.rst-content tt big,
-.rst-content tt em,
-.rst-content tt big,
-.rst-content code big,
-.rst-content tt em,
-.rst-content code em {
- font-size: 100% !important;
- line-height: normal
-}
-.rst-content tt .xref,
-a .rst-content tt,
-.rst-content tt .xref,
-.rst-content code .xref,
-a .rst-content tt,
-a .rst-content code {
- font-weight: bold
-}
-.rst-content a tt,
-.rst-content a tt,
-.rst-content a code {
- color: #2980B9
-}
-.rst-content dl {
- margin-bottom: 24px
-}
-.rst-content dl dt {
- font-weight: bold
-}
-.rst-content dl p,
-.rst-content dl table,
-.rst-content dl ul,
-.rst-content dl ol {
- margin-bottom: 12px !important
-}
-.rst-content dl dd {
- margin: 0 0 12px 24px
-}
-
-/****************************************************************************
- * Not real sure why they choose to special-case any
of class docutils *
- * but it seems to be rather unhelpful and unused. Only ONE instance was *
- * noticed which is commented out by // below. *
- ****************************************************************************/
-/* BEGIN SECTION COMMENT OUT.
-
-.rst-content dl:not(.docutils) {
- margin-bottom: 24px
-}
-
-
-//.rst-content dl:not(.docutils) dt {
-// display: inline-block;
-// margin: 6px 0;
-// font-size: 90%;
-// line-height: normal;
-// background: #e7f2fa;
-// color: #2980B9;
-// border-top: solid 3px #6ab0de;
-// padding: 6px;
-// position: relative
-//}
-
-.rst-content dl:not(.docutils) dt:before {
- color: #6ab0de
-}
-.rst-content dl:not(.docutils) dt .headerlink {
- color: #404040;
- font-size: 100% !important
-}
-.rst-content dl:not(.docutils) dl dt {
- margin-bottom: 6px;
- border: none;
- border-left: solid 3px #ccc;
- background: #f0f0f0;
- color: gray
-}
-.rst-content dl:not(.docutils) dl dt .headerlink {
- color: #404040;
- font-size: 100% !important
-}
-.rst-content dl:not(.docutils) dt:first-child {
- margin-top: 0
-}
-.rst-content dl:not(.docutils) tt,
-.rst-content dl:not(.docutils) tt,
-.rst-content dl:not(.docutils) code {
- font-weight: bold
-}
-.rst-content dl:not(.docutils) tt.descname,
-.rst-content dl:not(.docutils) tt.descclassname,
-.rst-content dl:not(.docutils) tt.descname,
-.rst-content dl:not(.docutils) code.descname,
-.rst-content dl:not(.docutils) tt.descclassname,
-.rst-content dl:not(.docutils) code.descclassname {
- background-color: transparent;
- border: none;
- padding: 0;
- font-size: 100% !important
-}
-.rst-content dl:not(.docutils) tt.descname,
-.rst-content dl:not(.docutils) tt.descname,
-.rst-content dl:not(.docutils) code.descname {
- font-weight: bold
-}
-.rst-content dl:not(.docutils) .optional {
- display: inline-block;
- padding: 0 4px;
- color: #000;
- font-weight: bold
-}
-.rst-content dl:not(.docutils) .property {
- display: inline-block;
- padding-right: 8px
-}
-
-
-END SECTION COMMENT OUT. */
-/****************************************************************************
- * Not real sure why they choose to special-case any of class docutils *
- * but it seems to be rather unhelpful and unused. Only ONE instance was *
- * noticed which is commented out by // near top of this section above. *
- ****************************************************************************/
-
-.rst-content .viewcode-link,
-.rst-content .viewcode-back {
- display: inline-block;
- color: #27AE60;
- font-size: 80%;
- padding-left: 24px
-}
-.rst-content .viewcode-back {
- display: block;
- float: right
-}
-.rst-content p.rubric {
- margin-bottom: 12px;
- font-weight: bold
-}
-.rst-content tt.download,
-.rst-content code.download {
- background: inherit;
- padding: inherit;
- font-family: inherit;
- font-size: inherit;
- color: inherit;
- border: inherit;
- white-space: inherit
-}
-.rst-content tt.download span:first-child:before,
-.rst-content code.download span:first-child:before {
- margin-right: 4px
-}
-@media screen and (max-width: 480px) {
- .rst-content .sidebar {
- width: 100%
- }
-}
-span[id*='MathJax-Span'] {
- color: #404040
-}
-.math {
- text-align: center
-}
-@font-face {
- font-family: "Inconsolata";
- font-style: normal;
- font-weight: 400;
- src: local("Inconsolata"), url(../fonts/Inconsolata.ttf) format("truetype")
-}
-@font-face {
- font-family: "Inconsolata";
- font-style: normal;
- font-weight: 700;
- src: local("Inconsolata Bold"), local("Inconsolata-Bold"), url(../fonts/Inconsolata-Bold.ttf) format("truetype")
-}
-@font-face {
- font-family: "Lato";
- font-style: normal;
- font-weight: 400;
- src: local("Lato Regular"), local("Lato-Regular"), url(../fonts/Lato-Regular.ttf) format("truetype")
-}
-@font-face {
- font-family: "Lato";
- font-style: normal;
- font-weight: 700;
- src: local("Lato Bold"), local("Lato-Bold"), url(../fonts/Lato-Bold.ttf) format("truetype")
-}
-@font-face {
- font-family: "Roboto Slab";
- font-style: normal;
- font-weight: 400;
- src: local("Roboto Slab Regular"), local("RobotoSlab-Regular"), url(../fonts/RobotoSlab-Regular.ttf) format("truetype")
-}
-@font-face {
- font-family: "Roboto Slab";
- font-style: normal;
- font-weight: 700;
- src: local("Roboto Slab Bold"), local("RobotoSlab-Bold"), url(../fonts/RobotoSlab-Bold.ttf) format("truetype")
-}
-
-/*""""""""""""""""""""""""""""""""""""""""""""""""""""""""*
- | Copied css with fa-entities fixed - sourced externally |
- | to reduce the size/complexity of this css. (END) |
- *""""""""""""""""""""""""""""""""""""""""""""""""""""""""*/
-
-.wy-nav-side,
-div.related {
- background: #28343b;
-background: -moz-linear-gradient(top, #28343b 0%, #28343b 100%);
-background: -webkit-linear-gradient(top, #28343b 0%,#28343b 100%);
-background: linear-gradient(to bottom, #28343b 0%,#28343b 100%);
-filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#28343b', endColorstr='#28343b',GradientType=0 );
-}
-code.kbd,
-code.file,
-code.guilabel,
-.kbd,
-.file,
-.guilabel{
- background-color: #D5DDE2; /* saturate from ecf0f3 to be more visible/blue on screen. */
- display: inline-block;
- font-family:'Inconsolata', monospace;
- font-size: 92%;
- vertical-align: -.5px;
- padding: 2px;
- line-height: 80%;
- overflow: hidden;
-}
-code.kbd, .kbd {
- border: thin solid rgb(45, 45,255);
- border-radius: 2px;
- font-weight: bold
-}
-code.file, .file {
- border: thin solid #999;
-}
-code.guilabel, .guilabel {
- border:1px solid #7fbbe3;
- background:#e7f2fa;
- font-size:80%;
- font-weight:700;
- border-radius:4px;
- padding:2.4px 3px;
- margin:auto 2px;
- font-family: 'Inconsolata', monospace
-}
-code
-th {
- background-color: #ede;
-}
-.warning tt {
- background: #efc2c2;
-}
-.note tt {
- background: #d6d6d6;
-}
-.viewcode-back {
- font-family: {
- {
- theme_bodyfont
- }
- }
- ;
-}
-div.viewcode-block:target {
- background-color: #f4debf;
- border-top: 1px solid #ac9;
- border-bottom: 1px solid #ac9;
-}
-.menuselection {
- background-color: #F0F0F0;
- color: inherit;
- display: inline-block;
- font-family: 'Inconsolata', monospace;
- font-size: 88%!important;
- font-weight: bold;
- padding-right: 3px;
- padding-left: 3px;
- padding-top: 3px;
- padding-bottom: 2px;
- border-radius: 5px;
- line-height: 80%!important;
- border: thin solid #000000;
-}
-
-/*"""""""""""""""""""""""""""""""""""""""""""""""*
- | spiffy_table adjusted for rst/RtD (BEGIN) |
- *"""""""""""""""""""""""""""""""""""""""""""""""*/
-
-table.docutils,
-table.spiffy_table,
-table.simple_table,
-table.plain_table {
- border: 2px solid darkgray;
- border-collapse: collapse;
-}
-.simple_table th {
- background-color: #f2f2f2;
-}
-th.simple_span {
- background-color: #f2f2f2;
-}
-th.spiffy_span {
- background-color: LemonChiffon;
- background: -webkit-linear-gradient(MediumSpringGreen, LemonChiffon, LemonChiffon, LemonChiffon, MediumSpringGreen);
- /* For Safari 5.1 to 6.0 */
-
- background: -o-linear-gradient(MediumSpringGreen, LemonChiffon, LemonChiffon, LemonChiffon, MediumSpringGreen);
- /* For Opera 11.1 to 12.0 */
-
- background: -moz-linear-gradient(MediumSpringGreen, LemonChiffon, LemonChiffon, LemonChiffon, MediumSpringGreen);
- /* For Firefox 3.6 to 15 */
-
- background: linear-gradient(MediumSpringGreen, LemonChiffon, LemonChiffon, LemonChiffon, MediumSpringGreen);
- /* Standard syntax (must be last) */
-
- font-weight: 700;
- text-align: center;
- font-size: 125%;
-}
-.docutils tr:nth-child(odd) > td,
-.spiffy_table tr:nth-child(odd) > td {
- background-color: #e5e5e5;
- /* was gainsboro then f2f2f2 */
-}
-.docutils tr:nth-child(even) > td,
-.spiffy_table tr:nth-child(even) > td {
- background-color: white;
-}
-.spiffy_table tr > td.zero {
- background-color: red;
- color: white;
-}
-.spiffy_table tr > td.part {
- background-color: yellow;
-}
-.spiffy_table tr > td.done {
- background-color: green;
-}
-.docutils th,
-.spiffy_table th {
- background-color: LemonChiffon;
- font-weight: 700;
- text-align: center;
- border-color: darkgray;
- border-style: solid;
- border-width: 1px 1px 2px;
- padding: 5px;
-}
-.simple_table th {
- font-weight: 700;
- text-align: center;
- border-color: darkgray;
- border-style: solid;
- border-width: 0px 1px 2px;
- padding: 5px;
-}
-table.docutils caption,
-.spiffy_table caption,
-.simple_table caption {
- font-weight: 700;
- text-align: left;
-}
-.docutils td,
-.spiffy_table td,
-.simple_table td {
- border-color: darkgray;
- border-style: solid;
- border-width: 1px;
- padding: 5px;
-}
-
-table.docutils td, table.docutils th {
- padding: 1px 8px 1px 5px;
- border-width: 0px 0px 1px;
- border-style: none none solid;
- border-color: -moz-use-text-color -moz-use-text-color #AAA;
-}
-
-th {
- background-color: #EDE;
- text-align: left;
- padding-right: 5px;
-}
-
-table.docutils {
- border-collapse: collapse;
-}
-
-/*"""""""""""""""""""""""""""""""""""""""""""""""*
- | spiffy_table adjusted for rst/RtD (END) |
- *"""""""""""""""""""""""""""""""""""""""""""""""*/
-
-
-/*"""""""""""""""""""""""""""""""""""""""""""*
- | textboxes adjusted for rst/RtD (BEGIN) |
- *"""""""""""""""""""""""""""""""""""""""""""*/
-.rst-content .danger, .rdangerbox {
-border:solid #BA0000;
-}
-
-.rst-content .warning, .rwarningbox {
-border:solid #9bd194;
-}
-
-.rst-content .note, .rnotebox {
-border:solid #BABABA;
-}
-
-.rversionbox {
-border:solid #00E100;
-background-color: #d7ffd7!important;
-}
-
-.messagebox {
-border-width:2px 6px 2px 2px;
-border-collapse: collapse;
-margin-top:1px;
-margin-right: 4px;
-margin-bottom:1px;
-margin-left: 4px;
-text-align:justify;
-width:auto;
-minimum-width:100px;
-maximum-width: 45%;
-font-size: 75%;
-padding: 3px 3px 3px 3px;
-// align:center;
- display: inline-block;
- vertical-align:inherit;
- line-height:125%;
-}
-
-.messageboxicon {
-float:right;
-margin: 0px 2px -2px 0px;
-}
-
-
-/*"""""""""""""""""""""""""""""""""""""""""""*
- | textboxes adjusted for rst/RtD (END) |
- *"""""""""""""""""""""""""""""""""""""""""""*/
-
-
-/*"""""""""""""""""""""""""""""""""""""""""""""""""""*
- | Modified RtD css styles in part or whole (BEGIN) |
- *"""""""""""""""""""""""""""""""""""""""""""""""""""*/
-
-.wy-side-nav-search {
- z-index: 200;
- /*background-color: rgb(45, 175,255);*/
- background-color:background: #b5bdc8;
-background: -moz-radial-gradient(center, ellipse cover, #b5bdc8 0%, #28343b 71%);
-background: -webkit-radial-gradient(center, ellipse cover, #b5bdc8 0%,#28343b 71%);
-background: radial-gradient(ellipse at center, #b5bdc8 0%,#28343b 71%);
-filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#b5bdc8', endColorstr='#28343b',GradientType=1 );
- text-align: center;
- padding: 0.809em;
- display: block;
- color: #FCFCFC;
- margin-bottom: 0.809em;
-}
- .wy-nav-content {
- padding: 1.618em 3.236em;
- height: 100%;
- max-width: 95%;
- margin: auto;
-}
-/*.wy-menu-vertical li.on a, .wy-menu-vertical li.current > a {
-// color: #404040;
-// padding: 0.4045em 1.618em;
-// font-weight: bold;
-// position: relative;
-// border-width: 1px medium;
-// border-style: solid none;
-// border-color: #C9C9C9 -moz-use-text-color;
-// -moz-border-top-colors: none;
-// -moz-border-right-colors: none;
-// -moz-border-bottom-colors: none;
-// -moz-border-left-colors: none;
-// border-image: none;
-// background: rgb(204, 204, 255) none repeat scroll 0% 0%;
-}*/
-.wy-table thead th,
-.rst-content table.docutils thead th,
-.rst-content table.field-list thead th {
- font-weight: bold;
- border: solid 1px #bbb;
- border-bottom: solid 2px #bbb;
-}
-
-.wy-table-bordered-all,
-.rst-content table.docutils {
- border: 1px solid #bbb;
-}
-.wy-table-bordered-all td,
-.rst-content table.docutils td {
- border-bottom: 1px solid #bbb;
- border-left: 1px solid #bbb;
-}
-.wy-table-bordered {
- border: 1px solid #bbb;
-}
-.wy-table-bordered-rows td {
- border-bottom: 1px solid #bbb;
-}
-.wy-table-horizontal td,
-.wy-table-horizontal th {
- border-width: 0 0 1px 0;
- border-bottom: 1px solid #bbb;
-}
-
-/*"""""""""""""""""""""""""""""""""""""""""""""""""""*
- | Modified RtD css styles in part or whole (END) |
- *"""""""""""""""""""""""""""""""""""""""""""""""""""*/
-
-/*"""""""""""""""""""""""""""""""""""""""""""""""*
- | Allow for printing from browser |
- | with reasonable appearance (BEGIN) |
- *"""""""""""""""""""""""""""""""""""""""""""""""*/
-
-@media print {
- .wy-side-nav-search {
- display: none!important;
- }
- .wy-nav-top {
- display: none!important;
- }
- .wy-nav-side {
- display: none!important;
- }
- .wy-nav-content {
- padding: 1.618em;
- height: auto;
- width: auto;
- margin: auto;
- }
- .wy-breadcrumbs-nav {
- display: none!important;
- visibility: hidden!important;
- }
-
-/* below is not my doing */
- html,
- body,
- section {
- background: none!important;
- }
- * {
- box-shadow: none!important;
- text-shadow: none!important;
- filter: none!important;
- -ms-filter: none!important;
- }
- a,
- a:visited {
- text-decoration: underline;
- }
- .ir a:after,
- a[href^="javascript:"]:after,
- a[href^="#"]:after {
- content: "";
- }
- pre,
- blockquote {
- page-break-inside: avoid;
- }
- thead {
- display: table-header-group;
- }
- tr,
- img {
- page-break-inside: avoid;
- }
- img {
- max-width: 100%!important;
- }
- @page {
- margin: .5cm;
- }
- p,
- h2,
- .rst-content p.caption,
- h3 {
- orphans: 3;
- widows: 3;
- }
- h2,
- .rst-content p.caption,
- h3 {
- page-break-after: avoid;
- }
-}
-
-/*"""""""""""""""""""""""""""""""""""""""""""""""*
- | Allow for printing from browser |
- | with reasonable appearance (END) |
- *"""""""""""""""""""""""""""""""""""""""""""""""*/
diff --git a/docs/client_handbook/_build/html/_static/doctools.js b/docs/client_handbook/_build/html/_static/doctools.js
deleted file mode 100644
index 8163495..0000000
--- a/docs/client_handbook/_build/html/_static/doctools.js
+++ /dev/null
@@ -1,287 +0,0 @@
-/*
- * doctools.js
- * ~~~~~~~~~~~
- *
- * Sphinx JavaScript utilities for all documentation.
- *
- * :copyright: Copyright 2007-2016 by the Sphinx team, see AUTHORS.
- * :license: BSD, see LICENSE for details.
- *
- */
-
-/**
- * select a different prefix for underscore
- */
-$u = _.noConflict();
-
-/**
- * make the code below compatible with browsers without
- * an installed firebug like debugger
-if (!window.console || !console.firebug) {
- var names = ["log", "debug", "info", "warn", "error", "assert", "dir",
- "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace",
- "profile", "profileEnd"];
- window.console = {};
- for (var i = 0; i < names.length; ++i)
- window.console[names[i]] = function() {};
-}
- */
-
-/**
- * small helper function to urldecode strings
- */
-jQuery.urldecode = function(x) {
- return decodeURIComponent(x).replace(/\+/g, ' ');
-};
-
-/**
- * small helper function to urlencode strings
- */
-jQuery.urlencode = encodeURIComponent;
-
-/**
- * This function returns the parsed url parameters of the
- * current request. Multiple values per key are supported,
- * it will always return arrays of strings for the value parts.
- */
-jQuery.getQueryParameters = function(s) {
- if (typeof s == 'undefined')
- s = document.location.search;
- var parts = s.substr(s.indexOf('?') + 1).split('&');
- var result = {};
- for (var i = 0; i < parts.length; i++) {
- var tmp = parts[i].split('=', 2);
- var key = jQuery.urldecode(tmp[0]);
- var value = jQuery.urldecode(tmp[1]);
- if (key in result)
- result[key].push(value);
- else
- result[key] = [value];
- }
- return result;
-};
-
-/**
- * highlight a given string on a jquery object by wrapping it in
- * span elements with the given class name.
- */
-jQuery.fn.highlightText = function(text, className) {
- function highlight(node) {
- if (node.nodeType == 3) {
- var val = node.nodeValue;
- var pos = val.toLowerCase().indexOf(text);
- if (pos >= 0 && !jQuery(node.parentNode).hasClass(className)) {
- var span = document.createElement("span");
- span.className = className;
- span.appendChild(document.createTextNode(val.substr(pos, text.length)));
- node.parentNode.insertBefore(span, node.parentNode.insertBefore(
- document.createTextNode(val.substr(pos + text.length)),
- node.nextSibling));
- node.nodeValue = val.substr(0, pos);
- }
- }
- else if (!jQuery(node).is("button, select, textarea")) {
- jQuery.each(node.childNodes, function() {
- highlight(this);
- });
- }
- }
- return this.each(function() {
- highlight(this);
- });
-};
-
-/*
- * backward compatibility for jQuery.browser
- * This will be supported until firefox bug is fixed.
- */
-if (!jQuery.browser) {
- jQuery.uaMatch = function(ua) {
- ua = ua.toLowerCase();
-
- var match = /(chrome)[ \/]([\w.]+)/.exec(ua) ||
- /(webkit)[ \/]([\w.]+)/.exec(ua) ||
- /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) ||
- /(msie) ([\w.]+)/.exec(ua) ||
- ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) ||
- [];
-
- return {
- browser: match[ 1 ] || "",
- version: match[ 2 ] || "0"
- };
- };
- jQuery.browser = {};
- jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true;
-}
-
-/**
- * Small JavaScript module for the documentation.
- */
-var Documentation = {
-
- init : function() {
- this.fixFirefoxAnchorBug();
- this.highlightSearchWords();
- this.initIndexTable();
-
- },
-
- /**
- * i18n support
- */
- TRANSLATIONS : {},
- PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; },
- LOCALE : 'unknown',
-
- // gettext and ngettext don't access this so that the functions
- // can safely bound to a different name (_ = Documentation.gettext)
- gettext : function(string) {
- var translated = Documentation.TRANSLATIONS[string];
- if (typeof translated == 'undefined')
- return string;
- return (typeof translated == 'string') ? translated : translated[0];
- },
-
- ngettext : function(singular, plural, n) {
- var translated = Documentation.TRANSLATIONS[singular];
- if (typeof translated == 'undefined')
- return (n == 1) ? singular : plural;
- return translated[Documentation.PLURALEXPR(n)];
- },
-
- addTranslations : function(catalog) {
- for (var key in catalog.messages)
- this.TRANSLATIONS[key] = catalog.messages[key];
- this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')');
- this.LOCALE = catalog.locale;
- },
-
- /**
- * add context elements like header anchor links
- */
- addContextElements : function() {
- $('div[id] > :header:first').each(function() {
- $('').
- attr('href', '#' + this.id).
- attr('title', _('Permalink to this headline')).
- appendTo(this);
- });
- $('dt[id]').each(function() {
- $('').
- attr('href', '#' + this.id).
- attr('title', _('Permalink to this definition')).
- appendTo(this);
- });
- },
-
- /**
- * workaround a firefox stupidity
- * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075
- */
- fixFirefoxAnchorBug : function() {
- if (document.location.hash)
- window.setTimeout(function() {
- document.location.href += '';
- }, 10);
- },
-
- /**
- * highlight the search words provided in the url in the text
- */
- highlightSearchWords : function() {
- var params = $.getQueryParameters();
- var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : [];
- if (terms.length) {
- var body = $('div.body');
- if (!body.length) {
- body = $('body');
- }
- window.setTimeout(function() {
- $.each(terms, function() {
- body.highlightText(this.toLowerCase(), 'highlighted');
- });
- }, 10);
- $('' + _('Hide Search Matches') + '
')
- .appendTo($('#searchbox'));
- }
- },
-
- /**
- * init the domain index toggle buttons
- */
- initIndexTable : function() {
- var togglers = $('img.toggler').click(function() {
- var src = $(this).attr('src');
- var idnum = $(this).attr('id').substr(7);
- $('tr.cg-' + idnum).toggle();
- if (src.substr(-9) == 'minus.png')
- $(this).attr('src', src.substr(0, src.length-9) + 'plus.png');
- else
- $(this).attr('src', src.substr(0, src.length-8) + 'minus.png');
- }).css('display', '');
- if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) {
- togglers.click();
- }
- },
-
- /**
- * helper function to hide the search marks again
- */
- hideSearchWords : function() {
- $('#searchbox .highlight-link').fadeOut(300);
- $('span.highlighted').removeClass('highlighted');
- },
-
- /**
- * make the url absolute
- */
- makeURL : function(relativeURL) {
- return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL;
- },
-
- /**
- * get the current relative url
- */
- getCurrentURL : function() {
- var path = document.location.pathname;
- var parts = path.split(/\//);
- $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() {
- if (this == '..')
- parts.pop();
- });
- var url = parts.join('/');
- return path.substring(url.lastIndexOf('/') + 1, path.length - 1);
- },
-
- initOnKeyListeners: function() {
- $(document).keyup(function(event) {
- var activeElementType = document.activeElement.tagName;
- // don't navigate when in search box or textarea
- if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT') {
- switch (event.keyCode) {
- case 37: // left
- var prevHref = $('link[rel="prev"]').prop('href');
- if (prevHref) {
- window.location.href = prevHref;
- return false;
- }
- case 39: // right
- var nextHref = $('link[rel="next"]').prop('href');
- if (nextHref) {
- window.location.href = nextHref;
- return false;
- }
- }
- }
- });
- }
-};
-
-// quick alias for translations
-_ = Documentation.gettext;
-
-$(document).ready(function() {
- Documentation.init();
-});
\ No newline at end of file
diff --git a/docs/client_handbook/_build/html/_static/down-pressed.png b/docs/client_handbook/_build/html/_static/down-pressed.png
deleted file mode 100644
index 7c30d00..0000000
Binary files a/docs/client_handbook/_build/html/_static/down-pressed.png and /dev/null differ
diff --git a/docs/client_handbook/_build/html/_static/down.png b/docs/client_handbook/_build/html/_static/down.png
deleted file mode 100644
index f48098a..0000000
Binary files a/docs/client_handbook/_build/html/_static/down.png and /dev/null differ
diff --git a/docs/client_handbook/_build/html/_static/file.png b/docs/client_handbook/_build/html/_static/file.png
deleted file mode 100644
index 254c60b..0000000
Binary files a/docs/client_handbook/_build/html/_static/file.png and /dev/null differ
diff --git a/docs/client_handbook/_build/html/_static/fonts/FontAwesome.otf b/docs/client_handbook/_build/html/_static/fonts/FontAwesome.otf
deleted file mode 100644
index 8b0f54e..0000000
Binary files a/docs/client_handbook/_build/html/_static/fonts/FontAwesome.otf and /dev/null differ
diff --git a/docs/client_handbook/_build/html/_static/fonts/Inconsolata-Bold.ttf b/docs/client_handbook/_build/html/_static/fonts/Inconsolata-Bold.ttf
deleted file mode 100644
index 360a232..0000000
Binary files a/docs/client_handbook/_build/html/_static/fonts/Inconsolata-Bold.ttf and /dev/null differ
diff --git a/docs/client_handbook/_build/html/_static/fonts/Inconsolata.ttf b/docs/client_handbook/_build/html/_static/fonts/Inconsolata.ttf
deleted file mode 100644
index 4b8a36d..0000000
Binary files a/docs/client_handbook/_build/html/_static/fonts/Inconsolata.ttf and /dev/null differ
diff --git a/docs/client_handbook/_build/html/_static/fonts/Lato-Bold.ttf b/docs/client_handbook/_build/html/_static/fonts/Lato-Bold.ttf
deleted file mode 100644
index e8b9bf6..0000000
Binary files a/docs/client_handbook/_build/html/_static/fonts/Lato-Bold.ttf and /dev/null differ
diff --git a/docs/client_handbook/_build/html/_static/fonts/Lato-Regular.ttf b/docs/client_handbook/_build/html/_static/fonts/Lato-Regular.ttf
deleted file mode 100644
index 7608bc3..0000000
Binary files a/docs/client_handbook/_build/html/_static/fonts/Lato-Regular.ttf and /dev/null differ
diff --git a/docs/client_handbook/_build/html/_static/fonts/RobotoSlab-Bold.ttf b/docs/client_handbook/_build/html/_static/fonts/RobotoSlab-Bold.ttf
deleted file mode 100644
index e6ed0de..0000000
Binary files a/docs/client_handbook/_build/html/_static/fonts/RobotoSlab-Bold.ttf and /dev/null differ
diff --git a/docs/client_handbook/_build/html/_static/fonts/RobotoSlab-Regular.ttf b/docs/client_handbook/_build/html/_static/fonts/RobotoSlab-Regular.ttf
deleted file mode 100644
index 141d6c0..0000000
Binary files a/docs/client_handbook/_build/html/_static/fonts/RobotoSlab-Regular.ttf and /dev/null differ
diff --git a/docs/client_handbook/_build/html/_static/fonts/fontawesome-webfont.eot b/docs/client_handbook/_build/html/_static/fonts/fontawesome-webfont.eot
deleted file mode 100644
index 7c79c6a..0000000
Binary files a/docs/client_handbook/_build/html/_static/fonts/fontawesome-webfont.eot and /dev/null differ
diff --git a/docs/client_handbook/_build/html/_static/fonts/fontawesome-webfont.svg b/docs/client_handbook/_build/html/_static/fonts/fontawesome-webfont.svg
deleted file mode 100644
index 45fdf33..0000000
--- a/docs/client_handbook/_build/html/_static/fonts/fontawesome-webfont.svg
+++ /dev/null
@@ -1,414 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/docs/client_handbook/_build/html/_static/fonts/fontawesome-webfont.ttf b/docs/client_handbook/_build/html/_static/fonts/fontawesome-webfont.ttf
deleted file mode 100644
index e89738d..0000000
Binary files a/docs/client_handbook/_build/html/_static/fonts/fontawesome-webfont.ttf and /dev/null differ
diff --git a/docs/client_handbook/_build/html/_static/fonts/fontawesome-webfont.woff b/docs/client_handbook/_build/html/_static/fonts/fontawesome-webfont.woff
deleted file mode 100644
index 8c1748a..0000000
Binary files a/docs/client_handbook/_build/html/_static/fonts/fontawesome-webfont.woff and /dev/null differ
diff --git a/docs/client_handbook/_build/html/_static/jquery-1.11.1.js b/docs/client_handbook/_build/html/_static/jquery-1.11.1.js
deleted file mode 100644
index d4b67f7..0000000
--- a/docs/client_handbook/_build/html/_static/jquery-1.11.1.js
+++ /dev/null
@@ -1,10308 +0,0 @@
-/*!
- * jQuery JavaScript Library v1.11.1
- * http://jquery.com/
- *
- * Includes Sizzle.js
- * http://sizzlejs.com/
- *
- * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors
- * Released under the MIT license
- * http://jquery.org/license
- *
- * Date: 2014-05-01T17:42Z
- */
-
-(function( global, factory ) {
-
- if ( typeof module === "object" && typeof module.exports === "object" ) {
- // For CommonJS and CommonJS-like environments where a proper window is present,
- // execute the factory and get jQuery
- // For environments that do not inherently posses a window with a document
- // (such as Node.js), expose a jQuery-making factory as module.exports
- // This accentuates the need for the creation of a real window
- // e.g. var jQuery = require("jquery")(window);
- // See ticket #14549 for more info
- module.exports = global.document ?
- factory( global, true ) :
- function( w ) {
- if ( !w.document ) {
- throw new Error( "jQuery requires a window with a document" );
- }
- return factory( w );
- };
- } else {
- factory( global );
- }
-
-// Pass this if window is not defined yet
-}(typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
-
-// Can't do this because several apps including ASP.NET trace
-// the stack via arguments.caller.callee and Firefox dies if
-// you try to trace through "use strict" call chains. (#13335)
-// Support: Firefox 18+
-//
-
-var deletedIds = [];
-
-var slice = deletedIds.slice;
-
-var concat = deletedIds.concat;
-
-var push = deletedIds.push;
-
-var indexOf = deletedIds.indexOf;
-
-var class2type = {};
-
-var toString = class2type.toString;
-
-var hasOwn = class2type.hasOwnProperty;
-
-var support = {};
-
-
-
-var
- version = "1.11.1",
-
- // Define a local copy of jQuery
- jQuery = function( selector, context ) {
- // The jQuery object is actually just the init constructor 'enhanced'
- // Need init if jQuery is called (just allow error to be thrown if not included)
- return new jQuery.fn.init( selector, context );
- },
-
- // Support: Android<4.1, IE<9
- // Make sure we trim BOM and NBSP
- rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
-
- // Matches dashed string for camelizing
- rmsPrefix = /^-ms-/,
- rdashAlpha = /-([\da-z])/gi,
-
- // Used by jQuery.camelCase as callback to replace()
- fcamelCase = function( all, letter ) {
- return letter.toUpperCase();
- };
-
-jQuery.fn = jQuery.prototype = {
- // The current version of jQuery being used
- jquery: version,
-
- constructor: jQuery,
-
- // Start with an empty selector
- selector: "",
-
- // The default length of a jQuery object is 0
- length: 0,
-
- toArray: function() {
- return slice.call( this );
- },
-
- // Get the Nth element in the matched element set OR
- // Get the whole matched element set as a clean array
- get: function( num ) {
- return num != null ?
-
- // Return just the one element from the set
- ( num < 0 ? this[ num + this.length ] : this[ num ] ) :
-
- // Return all the elements in a clean array
- slice.call( this );
- },
-
- // Take an array of elements and push it onto the stack
- // (returning the new matched element set)
- pushStack: function( elems ) {
-
- // Build a new jQuery matched element set
- var ret = jQuery.merge( this.constructor(), elems );
-
- // Add the old object onto the stack (as a reference)
- ret.prevObject = this;
- ret.context = this.context;
-
- // Return the newly-formed element set
- return ret;
- },
-
- // Execute a callback for every element in the matched set.
- // (You can seed the arguments with an array of args, but this is
- // only used internally.)
- each: function( callback, args ) {
- return jQuery.each( this, callback, args );
- },
-
- map: function( callback ) {
- return this.pushStack( jQuery.map(this, function( elem, i ) {
- return callback.call( elem, i, elem );
- }));
- },
-
- slice: function() {
- return this.pushStack( slice.apply( this, arguments ) );
- },
-
- first: function() {
- return this.eq( 0 );
- },
-
- last: function() {
- return this.eq( -1 );
- },
-
- eq: function( i ) {
- var len = this.length,
- j = +i + ( i < 0 ? len : 0 );
- return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] );
- },
-
- end: function() {
- return this.prevObject || this.constructor(null);
- },
-
- // For internal use only.
- // Behaves like an Array's method, not like a jQuery method.
- push: push,
- sort: deletedIds.sort,
- splice: deletedIds.splice
-};
-
-jQuery.extend = jQuery.fn.extend = function() {
- var src, copyIsArray, copy, name, options, clone,
- target = arguments[0] || {},
- i = 1,
- length = arguments.length,
- deep = false;
-
- // Handle a deep copy situation
- if ( typeof target === "boolean" ) {
- deep = target;
-
- // skip the boolean and the target
- target = arguments[ i ] || {};
- i++;
- }
-
- // Handle case when target is a string or something (possible in deep copy)
- if ( typeof target !== "object" && !jQuery.isFunction(target) ) {
- target = {};
- }
-
- // extend jQuery itself if only one argument is passed
- if ( i === length ) {
- target = this;
- i--;
- }
-
- for ( ; i < length; i++ ) {
- // Only deal with non-null/undefined values
- if ( (options = arguments[ i ]) != null ) {
- // Extend the base object
- for ( name in options ) {
- src = target[ name ];
- copy = options[ name ];
-
- // Prevent never-ending loop
- if ( target === copy ) {
- continue;
- }
-
- // Recurse if we're merging plain objects or arrays
- if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {
- if ( copyIsArray ) {
- copyIsArray = false;
- clone = src && jQuery.isArray(src) ? src : [];
-
- } else {
- clone = src && jQuery.isPlainObject(src) ? src : {};
- }
-
- // Never move original objects, clone them
- target[ name ] = jQuery.extend( deep, clone, copy );
-
- // Don't bring in undefined values
- } else if ( copy !== undefined ) {
- target[ name ] = copy;
- }
- }
- }
- }
-
- // Return the modified object
- return target;
-};
-
-jQuery.extend({
- // Unique for each copy of jQuery on the page
- expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
-
- // Assume jQuery is ready without the ready module
- isReady: true,
-
- error: function( msg ) {
- throw new Error( msg );
- },
-
- noop: function() {},
-
- // See test/unit/core.js for details concerning isFunction.
- // Since version 1.3, DOM methods and functions like alert
- // aren't supported. They return false on IE (#2968).
- isFunction: function( obj ) {
- return jQuery.type(obj) === "function";
- },
-
- isArray: Array.isArray || function( obj ) {
- return jQuery.type(obj) === "array";
- },
-
- isWindow: function( obj ) {
- /* jshint eqeqeq: false */
- return obj != null && obj == obj.window;
- },
-
- isNumeric: function( obj ) {
- // parseFloat NaNs numeric-cast false positives (null|true|false|"")
- // ...but misinterprets leading-number strings, particularly hex literals ("0x...")
- // subtraction forces infinities to NaN
- return !jQuery.isArray( obj ) && obj - parseFloat( obj ) >= 0;
- },
-
- isEmptyObject: function( obj ) {
- var name;
- for ( name in obj ) {
- return false;
- }
- return true;
- },
-
- isPlainObject: function( obj ) {
- var key;
-
- // Must be an Object.
- // Because of IE, we also have to check the presence of the constructor property.
- // Make sure that DOM nodes and window objects don't pass through, as well
- if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
- return false;
- }
-
- try {
- // Not own constructor property must be Object
- if ( obj.constructor &&
- !hasOwn.call(obj, "constructor") &&
- !hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) {
- return false;
- }
- } catch ( e ) {
- // IE8,9 Will throw exceptions on certain host objects #9897
- return false;
- }
-
- // Support: IE<9
- // Handle iteration over inherited properties before own properties.
- if ( support.ownLast ) {
- for ( key in obj ) {
- return hasOwn.call( obj, key );
- }
- }
-
- // Own properties are enumerated firstly, so to speed up,
- // if last one is own, then all properties are own.
- for ( key in obj ) {}
-
- return key === undefined || hasOwn.call( obj, key );
- },
-
- type: function( obj ) {
- if ( obj == null ) {
- return obj + "";
- }
- return typeof obj === "object" || typeof obj === "function" ?
- class2type[ toString.call(obj) ] || "object" :
- typeof obj;
- },
-
- // Evaluates a script in a global context
- // Workarounds based on findings by Jim Driscoll
- // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context
- globalEval: function( data ) {
- if ( data && jQuery.trim( data ) ) {
- // We use execScript on Internet Explorer
- // We use an anonymous function so that context is window
- // rather than jQuery in Firefox
- ( window.execScript || function( data ) {
- window[ "eval" ].call( window, data );
- } )( data );
- }
- },
-
- // Convert dashed to camelCase; used by the css and data modules
- // Microsoft forgot to hump their vendor prefix (#9572)
- camelCase: function( string ) {
- return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
- },
-
- nodeName: function( elem, name ) {
- return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
- },
-
- // args is for internal usage only
- each: function( obj, callback, args ) {
- var value,
- i = 0,
- length = obj.length,
- isArray = isArraylike( obj );
-
- if ( args ) {
- if ( isArray ) {
- for ( ; i < length; i++ ) {
- value = callback.apply( obj[ i ], args );
-
- if ( value === false ) {
- break;
- }
- }
- } else {
- for ( i in obj ) {
- value = callback.apply( obj[ i ], args );
-
- if ( value === false ) {
- break;
- }
- }
- }
-
- // A special, fast, case for the most common use of each
- } else {
- if ( isArray ) {
- for ( ; i < length; i++ ) {
- value = callback.call( obj[ i ], i, obj[ i ] );
-
- if ( value === false ) {
- break;
- }
- }
- } else {
- for ( i in obj ) {
- value = callback.call( obj[ i ], i, obj[ i ] );
-
- if ( value === false ) {
- break;
- }
- }
- }
- }
-
- return obj;
- },
-
- // Support: Android<4.1, IE<9
- trim: function( text ) {
- return text == null ?
- "" :
- ( text + "" ).replace( rtrim, "" );
- },
-
- // results is for internal usage only
- makeArray: function( arr, results ) {
- var ret = results || [];
-
- if ( arr != null ) {
- if ( isArraylike( Object(arr) ) ) {
- jQuery.merge( ret,
- typeof arr === "string" ?
- [ arr ] : arr
- );
- } else {
- push.call( ret, arr );
- }
- }
-
- return ret;
- },
-
- inArray: function( elem, arr, i ) {
- var len;
-
- if ( arr ) {
- if ( indexOf ) {
- return indexOf.call( arr, elem, i );
- }
-
- len = arr.length;
- i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0;
-
- for ( ; i < len; i++ ) {
- // Skip accessing in sparse arrays
- if ( i in arr && arr[ i ] === elem ) {
- return i;
- }
- }
- }
-
- return -1;
- },
-
- merge: function( first, second ) {
- var len = +second.length,
- j = 0,
- i = first.length;
-
- while ( j < len ) {
- first[ i++ ] = second[ j++ ];
- }
-
- // Support: IE<9
- // Workaround casting of .length to NaN on otherwise arraylike objects (e.g., NodeLists)
- if ( len !== len ) {
- while ( second[j] !== undefined ) {
- first[ i++ ] = second[ j++ ];
- }
- }
-
- first.length = i;
-
- return first;
- },
-
- grep: function( elems, callback, invert ) {
- var callbackInverse,
- matches = [],
- i = 0,
- length = elems.length,
- callbackExpect = !invert;
-
- // Go through the array, only saving the items
- // that pass the validator function
- for ( ; i < length; i++ ) {
- callbackInverse = !callback( elems[ i ], i );
- if ( callbackInverse !== callbackExpect ) {
- matches.push( elems[ i ] );
- }
- }
-
- return matches;
- },
-
- // arg is for internal usage only
- map: function( elems, callback, arg ) {
- var value,
- i = 0,
- length = elems.length,
- isArray = isArraylike( elems ),
- ret = [];
-
- // Go through the array, translating each of the items to their new values
- if ( isArray ) {
- for ( ; i < length; i++ ) {
- value = callback( elems[ i ], i, arg );
-
- if ( value != null ) {
- ret.push( value );
- }
- }
-
- // Go through every key on the object,
- } else {
- for ( i in elems ) {
- value = callback( elems[ i ], i, arg );
-
- if ( value != null ) {
- ret.push( value );
- }
- }
- }
-
- // Flatten any nested arrays
- return concat.apply( [], ret );
- },
-
- // A global GUID counter for objects
- guid: 1,
-
- // Bind a function to a context, optionally partially applying any
- // arguments.
- proxy: function( fn, context ) {
- var args, proxy, tmp;
-
- if ( typeof context === "string" ) {
- tmp = fn[ context ];
- context = fn;
- fn = tmp;
- }
-
- // Quick check to determine if target is callable, in the spec
- // this throws a TypeError, but we will just return undefined.
- if ( !jQuery.isFunction( fn ) ) {
- return undefined;
- }
-
- // Simulated bind
- args = slice.call( arguments, 2 );
- proxy = function() {
- return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
- };
-
- // Set the guid of unique handler to the same of original handler, so it can be removed
- proxy.guid = fn.guid = fn.guid || jQuery.guid++;
-
- return proxy;
- },
-
- now: function() {
- return +( new Date() );
- },
-
- // jQuery.support is not used in Core but other projects attach their
- // properties to it so it needs to exist.
- support: support
-});
-
-// Populate the class2type map
-jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) {
- class2type[ "[object " + name + "]" ] = name.toLowerCase();
-});
-
-function isArraylike( obj ) {
- var length = obj.length,
- type = jQuery.type( obj );
-
- if ( type === "function" || jQuery.isWindow( obj ) ) {
- return false;
- }
-
- if ( obj.nodeType === 1 && length ) {
- return true;
- }
-
- return type === "array" || length === 0 ||
- typeof length === "number" && length > 0 && ( length - 1 ) in obj;
-}
-var Sizzle =
-/*!
- * Sizzle CSS Selector Engine v1.10.19
- * http://sizzlejs.com/
- *
- * Copyright 2013 jQuery Foundation, Inc. and other contributors
- * Released under the MIT license
- * http://jquery.org/license
- *
- * Date: 2014-04-18
- */
-(function( window ) {
-
-var i,
- support,
- Expr,
- getText,
- isXML,
- tokenize,
- compile,
- select,
- outermostContext,
- sortInput,
- hasDuplicate,
-
- // Local document vars
- setDocument,
- document,
- docElem,
- documentIsHTML,
- rbuggyQSA,
- rbuggyMatches,
- matches,
- contains,
-
- // Instance-specific data
- expando = "sizzle" + -(new Date()),
- preferredDoc = window.document,
- dirruns = 0,
- done = 0,
- classCache = createCache(),
- tokenCache = createCache(),
- compilerCache = createCache(),
- sortOrder = function( a, b ) {
- if ( a === b ) {
- hasDuplicate = true;
- }
- return 0;
- },
-
- // General-purpose constants
- strundefined = typeof undefined,
- MAX_NEGATIVE = 1 << 31,
-
- // Instance methods
- hasOwn = ({}).hasOwnProperty,
- arr = [],
- pop = arr.pop,
- push_native = arr.push,
- push = arr.push,
- slice = arr.slice,
- // Use a stripped-down indexOf if we can't use a native one
- indexOf = arr.indexOf || function( elem ) {
- var i = 0,
- len = this.length;
- for ( ; i < len; i++ ) {
- if ( this[i] === elem ) {
- return i;
- }
- }
- return -1;
- },
-
- booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
-
- // Regular expressions
-
- // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace
- whitespace = "[\\x20\\t\\r\\n\\f]",
- // http://www.w3.org/TR/css3-syntax/#characters
- characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
-
- // Loosely modeled on CSS identifier characters
- // An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors
- // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
- identifier = characterEncoding.replace( "w", "w#" ),
-
- // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
- attributes = "\\[" + whitespace + "*(" + characterEncoding + ")(?:" + whitespace +
- // Operator (capture 2)
- "*([*^$|!~]?=)" + whitespace +
- // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
- "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace +
- "*\\]",
-
- pseudos = ":(" + characterEncoding + ")(?:\\((" +
- // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:
- // 1. quoted (capture 3; capture 4 or capture 5)
- "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" +
- // 2. simple (capture 6)
- "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" +
- // 3. anything else (capture 2)
- ".*" +
- ")\\)|)",
-
- // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
- rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
-
- rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
- rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
-
- rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
-
- rpseudo = new RegExp( pseudos ),
- ridentifier = new RegExp( "^" + identifier + "$" ),
-
- matchExpr = {
- "ID": new RegExp( "^#(" + characterEncoding + ")" ),
- "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ),
- "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ),
- "ATTR": new RegExp( "^" + attributes ),
- "PSEUDO": new RegExp( "^" + pseudos ),
- "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
- "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
- "*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
- "bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
- // For use in libraries implementing .is()
- // We use this for POS matching in `select`
- "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
- whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
- },
-
- rinputs = /^(?:input|select|textarea|button)$/i,
- rheader = /^h\d$/i,
-
- rnative = /^[^{]+\{\s*\[native \w/,
-
- // Easily-parseable/retrievable ID or TAG or CLASS selectors
- rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
-
- rsibling = /[+~]/,
- rescape = /'|\\/g,
-
- // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
- runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
- funescape = function( _, escaped, escapedWhitespace ) {
- var high = "0x" + escaped - 0x10000;
- // NaN means non-codepoint
- // Support: Firefox<24
- // Workaround erroneous numeric interpretation of +"0x"
- return high !== high || escapedWhitespace ?
- escaped :
- high < 0 ?
- // BMP codepoint
- String.fromCharCode( high + 0x10000 ) :
- // Supplemental Plane codepoint (surrogate pair)
- String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
- };
-
-// Optimize for push.apply( _, NodeList )
-try {
- push.apply(
- (arr = slice.call( preferredDoc.childNodes )),
- preferredDoc.childNodes
- );
- // Support: Android<4.0
- // Detect silently failing push.apply
- arr[ preferredDoc.childNodes.length ].nodeType;
-} catch ( e ) {
- push = { apply: arr.length ?
-
- // Leverage slice if possible
- function( target, els ) {
- push_native.apply( target, slice.call(els) );
- } :
-
- // Support: IE<9
- // Otherwise append directly
- function( target, els ) {
- var j = target.length,
- i = 0;
- // Can't trust NodeList.length
- while ( (target[j++] = els[i++]) ) {}
- target.length = j - 1;
- }
- };
-}
-
-function Sizzle( selector, context, results, seed ) {
- var match, elem, m, nodeType,
- // QSA vars
- i, groups, old, nid, newContext, newSelector;
-
- if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
- setDocument( context );
- }
-
- context = context || document;
- results = results || [];
-
- if ( !selector || typeof selector !== "string" ) {
- return results;
- }
-
- if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) {
- return [];
- }
-
- if ( documentIsHTML && !seed ) {
-
- // Shortcuts
- if ( (match = rquickExpr.exec( selector )) ) {
- // Speed-up: Sizzle("#ID")
- if ( (m = match[1]) ) {
- if ( nodeType === 9 ) {
- elem = context.getElementById( m );
- // Check parentNode to catch when Blackberry 4.6 returns
- // nodes that are no longer in the document (jQuery #6963)
- if ( elem && elem.parentNode ) {
- // Handle the case where IE, Opera, and Webkit return items
- // by name instead of ID
- if ( elem.id === m ) {
- results.push( elem );
- return results;
- }
- } else {
- return results;
- }
- } else {
- // Context is not a document
- if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) &&
- contains( context, elem ) && elem.id === m ) {
- results.push( elem );
- return results;
- }
- }
-
- // Speed-up: Sizzle("TAG")
- } else if ( match[2] ) {
- push.apply( results, context.getElementsByTagName( selector ) );
- return results;
-
- // Speed-up: Sizzle(".CLASS")
- } else if ( (m = match[3]) && support.getElementsByClassName && context.getElementsByClassName ) {
- push.apply( results, context.getElementsByClassName( m ) );
- return results;
- }
- }
-
- // QSA path
- if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
- nid = old = expando;
- newContext = context;
- newSelector = nodeType === 9 && selector;
-
- // qSA works strangely on Element-rooted queries
- // We can work around this by specifying an extra ID on the root
- // and working up from there (Thanks to Andrew Dupont for the technique)
- // IE 8 doesn't work on object elements
- if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) {
- groups = tokenize( selector );
-
- if ( (old = context.getAttribute("id")) ) {
- nid = old.replace( rescape, "\\$&" );
- } else {
- context.setAttribute( "id", nid );
- }
- nid = "[id='" + nid + "'] ";
-
- i = groups.length;
- while ( i-- ) {
- groups[i] = nid + toSelector( groups[i] );
- }
- newContext = rsibling.test( selector ) && testContext( context.parentNode ) || context;
- newSelector = groups.join(",");
- }
-
- if ( newSelector ) {
- try {
- push.apply( results,
- newContext.querySelectorAll( newSelector )
- );
- return results;
- } catch(qsaError) {
- } finally {
- if ( !old ) {
- context.removeAttribute("id");
- }
- }
- }
- }
- }
-
- // All others
- return select( selector.replace( rtrim, "$1" ), context, results, seed );
-}
-
-/**
- * Create key-value caches of limited size
- * @returns {Function(string, Object)} Returns the Object data after storing it on itself with
- * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
- * deleting the oldest entry
- */
-function createCache() {
- var keys = [];
-
- function cache( key, value ) {
- // Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
- if ( keys.push( key + " " ) > Expr.cacheLength ) {
- // Only keep the most recent entries
- delete cache[ keys.shift() ];
- }
- return (cache[ key + " " ] = value);
- }
- return cache;
-}
-
-/**
- * Mark a function for special use by Sizzle
- * @param {Function} fn The function to mark
- */
-function markFunction( fn ) {
- fn[ expando ] = true;
- return fn;
-}
-
-/**
- * Support testing using an element
- * @param {Function} fn Passed the created div and expects a boolean result
- */
-function assert( fn ) {
- var div = document.createElement("div");
-
- try {
- return !!fn( div );
- } catch (e) {
- return false;
- } finally {
- // Remove from its parent by default
- if ( div.parentNode ) {
- div.parentNode.removeChild( div );
- }
- // release memory in IE
- div = null;
- }
-}
-
-/**
- * Adds the same handler for all of the specified attrs
- * @param {String} attrs Pipe-separated list of attributes
- * @param {Function} handler The method that will be applied
- */
-function addHandle( attrs, handler ) {
- var arr = attrs.split("|"),
- i = attrs.length;
-
- while ( i-- ) {
- Expr.attrHandle[ arr[i] ] = handler;
- }
-}
-
-/**
- * Checks document order of two siblings
- * @param {Element} a
- * @param {Element} b
- * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
- */
-function siblingCheck( a, b ) {
- var cur = b && a,
- diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
- ( ~b.sourceIndex || MAX_NEGATIVE ) -
- ( ~a.sourceIndex || MAX_NEGATIVE );
-
- // Use IE sourceIndex if available on both nodes
- if ( diff ) {
- return diff;
- }
-
- // Check if b follows a
- if ( cur ) {
- while ( (cur = cur.nextSibling) ) {
- if ( cur === b ) {
- return -1;
- }
- }
- }
-
- return a ? 1 : -1;
-}
-
-/**
- * Returns a function to use in pseudos for input types
- * @param {String} type
- */
-function createInputPseudo( type ) {
- return function( elem ) {
- var name = elem.nodeName.toLowerCase();
- return name === "input" && elem.type === type;
- };
-}
-
-/**
- * Returns a function to use in pseudos for buttons
- * @param {String} type
- */
-function createButtonPseudo( type ) {
- return function( elem ) {
- var name = elem.nodeName.toLowerCase();
- return (name === "input" || name === "button") && elem.type === type;
- };
-}
-
-/**
- * Returns a function to use in pseudos for positionals
- * @param {Function} fn
- */
-function createPositionalPseudo( fn ) {
- return markFunction(function( argument ) {
- argument = +argument;
- return markFunction(function( seed, matches ) {
- var j,
- matchIndexes = fn( [], seed.length, argument ),
- i = matchIndexes.length;
-
- // Match elements found at the specified indexes
- while ( i-- ) {
- if ( seed[ (j = matchIndexes[i]) ] ) {
- seed[j] = !(matches[j] = seed[j]);
- }
- }
- });
- });
-}
-
-/**
- * Checks a node for validity as a Sizzle context
- * @param {Element|Object=} context
- * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
- */
-function testContext( context ) {
- return context && typeof context.getElementsByTagName !== strundefined && context;
-}
-
-// Expose support vars for convenience
-support = Sizzle.support = {};
-
-/**
- * Detects XML nodes
- * @param {Element|Object} elem An element or a document
- * @returns {Boolean} True iff elem is a non-HTML XML node
- */
-isXML = Sizzle.isXML = function( elem ) {
- // documentElement is verified for cases where it doesn't yet exist
- // (such as loading iframes in IE - #4833)
- var documentElement = elem && (elem.ownerDocument || elem).documentElement;
- return documentElement ? documentElement.nodeName !== "HTML" : false;
-};
-
-/**
- * Sets document-related variables once based on the current document
- * @param {Element|Object} [doc] An element or document object to use to set the document
- * @returns {Object} Returns the current document
- */
-setDocument = Sizzle.setDocument = function( node ) {
- var hasCompare,
- doc = node ? node.ownerDocument || node : preferredDoc,
- parent = doc.defaultView;
-
- // If no document and documentElement is available, return
- if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
- return document;
- }
-
- // Set our document
- document = doc;
- docElem = doc.documentElement;
-
- // Support tests
- documentIsHTML = !isXML( doc );
-
- // Support: IE>8
- // If iframe document is assigned to "document" variable and if iframe has been reloaded,
- // IE will throw "permission denied" error when accessing "document" variable, see jQuery #13936
- // IE6-8 do not support the defaultView property so parent will be undefined
- if ( parent && parent !== parent.top ) {
- // IE11 does not have attachEvent, so all must suffer
- if ( parent.addEventListener ) {
- parent.addEventListener( "unload", function() {
- setDocument();
- }, false );
- } else if ( parent.attachEvent ) {
- parent.attachEvent( "onunload", function() {
- setDocument();
- });
- }
- }
-
- /* Attributes
- ---------------------------------------------------------------------- */
-
- // Support: IE<8
- // Verify that getAttribute really returns attributes and not properties (excepting IE8 booleans)
- support.attributes = assert(function( div ) {
- div.className = "i";
- return !div.getAttribute("className");
- });
-
- /* getElement(s)By*
- ---------------------------------------------------------------------- */
-
- // Check if getElementsByTagName("*") returns only elements
- support.getElementsByTagName = assert(function( div ) {
- div.appendChild( doc.createComment("") );
- return !div.getElementsByTagName("*").length;
- });
-
- // Check if getElementsByClassName can be trusted
- support.getElementsByClassName = rnative.test( doc.getElementsByClassName ) && assert(function( div ) {
- div.innerHTML = "";
-
- // Support: Safari<4
- // Catch class over-caching
- div.firstChild.className = "i";
- // Support: Opera<10
- // Catch gEBCN failure to find non-leading classes
- return div.getElementsByClassName("i").length === 2;
- });
-
- // Support: IE<10
- // Check if getElementById returns elements by name
- // The broken getElementById methods don't pick up programatically-set names,
- // so use a roundabout getElementsByName test
- support.getById = assert(function( div ) {
- docElem.appendChild( div ).id = expando;
- return !doc.getElementsByName || !doc.getElementsByName( expando ).length;
- });
-
- // ID find and filter
- if ( support.getById ) {
- Expr.find["ID"] = function( id, context ) {
- if ( typeof context.getElementById !== strundefined && documentIsHTML ) {
- var m = context.getElementById( id );
- // Check parentNode to catch when Blackberry 4.6 returns
- // nodes that are no longer in the document #6963
- return m && m.parentNode ? [ m ] : [];
- }
- };
- Expr.filter["ID"] = function( id ) {
- var attrId = id.replace( runescape, funescape );
- return function( elem ) {
- return elem.getAttribute("id") === attrId;
- };
- };
- } else {
- // Support: IE6/7
- // getElementById is not reliable as a find shortcut
- delete Expr.find["ID"];
-
- Expr.filter["ID"] = function( id ) {
- var attrId = id.replace( runescape, funescape );
- return function( elem ) {
- var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id");
- return node && node.value === attrId;
- };
- };
- }
-
- // Tag
- Expr.find["TAG"] = support.getElementsByTagName ?
- function( tag, context ) {
- if ( typeof context.getElementsByTagName !== strundefined ) {
- return context.getElementsByTagName( tag );
- }
- } :
- function( tag, context ) {
- var elem,
- tmp = [],
- i = 0,
- results = context.getElementsByTagName( tag );
-
- // Filter out possible comments
- if ( tag === "*" ) {
- while ( (elem = results[i++]) ) {
- if ( elem.nodeType === 1 ) {
- tmp.push( elem );
- }
- }
-
- return tmp;
- }
- return results;
- };
-
- // Class
- Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
- if ( typeof context.getElementsByClassName !== strundefined && documentIsHTML ) {
- return context.getElementsByClassName( className );
- }
- };
-
- /* QSA/matchesSelector
- ---------------------------------------------------------------------- */
-
- // QSA and matchesSelector support
-
- // matchesSelector(:active) reports false when true (IE9/Opera 11.5)
- rbuggyMatches = [];
-
- // qSa(:focus) reports false when true (Chrome 21)
- // We allow this because of a bug in IE8/9 that throws an error
- // whenever `document.activeElement` is accessed on an iframe
- // So, we allow :focus to pass through QSA all the time to avoid the IE error
- // See http://bugs.jquery.com/ticket/13378
- rbuggyQSA = [];
-
- if ( (support.qsa = rnative.test( doc.querySelectorAll )) ) {
- // Build QSA regex
- // Regex strategy adopted from Diego Perini
- assert(function( div ) {
- // Select is set to empty string on purpose
- // This is to test IE's treatment of not explicitly
- // setting a boolean content attribute,
- // since its presence should be enough
- // http://bugs.jquery.com/ticket/12359
- div.innerHTML = "";
-
- // Support: IE8, Opera 11-12.16
- // Nothing should be selected when empty strings follow ^= or $= or *=
- // The test attribute must be unknown in Opera but "safe" for WinRT
- // http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
- if ( div.querySelectorAll("[msallowclip^='']").length ) {
- rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
- }
-
- // Support: IE8
- // Boolean attributes and "value" are not treated correctly
- if ( !div.querySelectorAll("[selected]").length ) {
- rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
- }
-
- // Webkit/Opera - :checked should return selected option elements
- // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
- // IE8 throws error here and will not see later tests
- if ( !div.querySelectorAll(":checked").length ) {
- rbuggyQSA.push(":checked");
- }
- });
-
- assert(function( div ) {
- // Support: Windows 8 Native Apps
- // The type and name attributes are restricted during .innerHTML assignment
- var input = doc.createElement("input");
- input.setAttribute( "type", "hidden" );
- div.appendChild( input ).setAttribute( "name", "D" );
-
- // Support: IE8
- // Enforce case-sensitivity of name attribute
- if ( div.querySelectorAll("[name=d]").length ) {
- rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
- }
-
- // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
- // IE8 throws error here and will not see later tests
- if ( !div.querySelectorAll(":enabled").length ) {
- rbuggyQSA.push( ":enabled", ":disabled" );
- }
-
- // Opera 10-11 does not throw on post-comma invalid pseudos
- div.querySelectorAll("*,:x");
- rbuggyQSA.push(",.*:");
- });
- }
-
- if ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||
- docElem.webkitMatchesSelector ||
- docElem.mozMatchesSelector ||
- docElem.oMatchesSelector ||
- docElem.msMatchesSelector) )) ) {
-
- assert(function( div ) {
- // Check to see if it's possible to do matchesSelector
- // on a disconnected node (IE 9)
- support.disconnectedMatch = matches.call( div, "div" );
-
- // This should fail with an exception
- // Gecko does not error, returns false instead
- matches.call( div, "[s!='']:x" );
- rbuggyMatches.push( "!=", pseudos );
- });
- }
-
- rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
- rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
-
- /* Contains
- ---------------------------------------------------------------------- */
- hasCompare = rnative.test( docElem.compareDocumentPosition );
-
- // Element contains another
- // Purposefully does not implement inclusive descendent
- // As in, an element does not contain itself
- contains = hasCompare || rnative.test( docElem.contains ) ?
- function( a, b ) {
- var adown = a.nodeType === 9 ? a.documentElement : a,
- bup = b && b.parentNode;
- return a === bup || !!( bup && bup.nodeType === 1 && (
- adown.contains ?
- adown.contains( bup ) :
- a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
- ));
- } :
- function( a, b ) {
- if ( b ) {
- while ( (b = b.parentNode) ) {
- if ( b === a ) {
- return true;
- }
- }
- }
- return false;
- };
-
- /* Sorting
- ---------------------------------------------------------------------- */
-
- // Document order sorting
- sortOrder = hasCompare ?
- function( a, b ) {
-
- // Flag for duplicate removal
- if ( a === b ) {
- hasDuplicate = true;
- return 0;
- }
-
- // Sort on method existence if only one input has compareDocumentPosition
- var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
- if ( compare ) {
- return compare;
- }
-
- // Calculate position if both inputs belong to the same document
- compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
- a.compareDocumentPosition( b ) :
-
- // Otherwise we know they are disconnected
- 1;
-
- // Disconnected nodes
- if ( compare & 1 ||
- (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
-
- // Choose the first element that is related to our preferred document
- if ( a === doc || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
- return -1;
- }
- if ( b === doc || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {
- return 1;
- }
-
- // Maintain original order
- return sortInput ?
- ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :
- 0;
- }
-
- return compare & 4 ? -1 : 1;
- } :
- function( a, b ) {
- // Exit early if the nodes are identical
- if ( a === b ) {
- hasDuplicate = true;
- return 0;
- }
-
- var cur,
- i = 0,
- aup = a.parentNode,
- bup = b.parentNode,
- ap = [ a ],
- bp = [ b ];
-
- // Parentless nodes are either documents or disconnected
- if ( !aup || !bup ) {
- return a === doc ? -1 :
- b === doc ? 1 :
- aup ? -1 :
- bup ? 1 :
- sortInput ?
- ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :
- 0;
-
- // If the nodes are siblings, we can do a quick check
- } else if ( aup === bup ) {
- return siblingCheck( a, b );
- }
-
- // Otherwise we need full lists of their ancestors for comparison
- cur = a;
- while ( (cur = cur.parentNode) ) {
- ap.unshift( cur );
- }
- cur = b;
- while ( (cur = cur.parentNode) ) {
- bp.unshift( cur );
- }
-
- // Walk down the tree looking for a discrepancy
- while ( ap[i] === bp[i] ) {
- i++;
- }
-
- return i ?
- // Do a sibling check if the nodes have a common ancestor
- siblingCheck( ap[i], bp[i] ) :
-
- // Otherwise nodes in our document sort first
- ap[i] === preferredDoc ? -1 :
- bp[i] === preferredDoc ? 1 :
- 0;
- };
-
- return doc;
-};
-
-Sizzle.matches = function( expr, elements ) {
- return Sizzle( expr, null, null, elements );
-};
-
-Sizzle.matchesSelector = function( elem, expr ) {
- // Set document vars if needed
- if ( ( elem.ownerDocument || elem ) !== document ) {
- setDocument( elem );
- }
-
- // Make sure that attribute selectors are quoted
- expr = expr.replace( rattributeQuotes, "='$1']" );
-
- if ( support.matchesSelector && documentIsHTML &&
- ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
- ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {
-
- try {
- var ret = matches.call( elem, expr );
-
- // IE 9's matchesSelector returns false on disconnected nodes
- if ( ret || support.disconnectedMatch ||
- // As well, disconnected nodes are said to be in a document
- // fragment in IE 9
- elem.document && elem.document.nodeType !== 11 ) {
- return ret;
- }
- } catch(e) {}
- }
-
- return Sizzle( expr, document, null, [ elem ] ).length > 0;
-};
-
-Sizzle.contains = function( context, elem ) {
- // Set document vars if needed
- if ( ( context.ownerDocument || context ) !== document ) {
- setDocument( context );
- }
- return contains( context, elem );
-};
-
-Sizzle.attr = function( elem, name ) {
- // Set document vars if needed
- if ( ( elem.ownerDocument || elem ) !== document ) {
- setDocument( elem );
- }
-
- var fn = Expr.attrHandle[ name.toLowerCase() ],
- // Don't get fooled by Object.prototype properties (jQuery #13807)
- val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
- fn( elem, name, !documentIsHTML ) :
- undefined;
-
- return val !== undefined ?
- val :
- support.attributes || !documentIsHTML ?
- elem.getAttribute( name ) :
- (val = elem.getAttributeNode(name)) && val.specified ?
- val.value :
- null;
-};
-
-Sizzle.error = function( msg ) {
- throw new Error( "Syntax error, unrecognized expression: " + msg );
-};
-
-/**
- * Document sorting and removing duplicates
- * @param {ArrayLike} results
- */
-Sizzle.uniqueSort = function( results ) {
- var elem,
- duplicates = [],
- j = 0,
- i = 0;
-
- // Unless we *know* we can detect duplicates, assume their presence
- hasDuplicate = !support.detectDuplicates;
- sortInput = !support.sortStable && results.slice( 0 );
- results.sort( sortOrder );
-
- if ( hasDuplicate ) {
- while ( (elem = results[i++]) ) {
- if ( elem === results[ i ] ) {
- j = duplicates.push( i );
- }
- }
- while ( j-- ) {
- results.splice( duplicates[ j ], 1 );
- }
- }
-
- // Clear input after sorting to release objects
- // See https://github.com/jquery/sizzle/pull/225
- sortInput = null;
-
- return results;
-};
-
-/**
- * Utility function for retrieving the text value of an array of DOM nodes
- * @param {Array|Element} elem
- */
-getText = Sizzle.getText = function( elem ) {
- var node,
- ret = "",
- i = 0,
- nodeType = elem.nodeType;
-
- if ( !nodeType ) {
- // If no nodeType, this is expected to be an array
- while ( (node = elem[i++]) ) {
- // Do not traverse comment nodes
- ret += getText( node );
- }
- } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
- // Use textContent for elements
- // innerText usage removed for consistency of new lines (jQuery #11153)
- if ( typeof elem.textContent === "string" ) {
- return elem.textContent;
- } else {
- // Traverse its children
- for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
- ret += getText( elem );
- }
- }
- } else if ( nodeType === 3 || nodeType === 4 ) {
- return elem.nodeValue;
- }
- // Do not include comment or processing instruction nodes
-
- return ret;
-};
-
-Expr = Sizzle.selectors = {
-
- // Can be adjusted by the user
- cacheLength: 50,
-
- createPseudo: markFunction,
-
- match: matchExpr,
-
- attrHandle: {},
-
- find: {},
-
- relative: {
- ">": { dir: "parentNode", first: true },
- " ": { dir: "parentNode" },
- "+": { dir: "previousSibling", first: true },
- "~": { dir: "previousSibling" }
- },
-
- preFilter: {
- "ATTR": function( match ) {
- match[1] = match[1].replace( runescape, funescape );
-
- // Move the given value to match[3] whether quoted or unquoted
- match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape );
-
- if ( match[2] === "~=" ) {
- match[3] = " " + match[3] + " ";
- }
-
- return match.slice( 0, 4 );
- },
-
- "CHILD": function( match ) {
- /* matches from matchExpr["CHILD"]
- 1 type (only|nth|...)
- 2 what (child|of-type)
- 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
- 4 xn-component of xn+y argument ([+-]?\d*n|)
- 5 sign of xn-component
- 6 x of xn-component
- 7 sign of y-component
- 8 y of y-component
- */
- match[1] = match[1].toLowerCase();
-
- if ( match[1].slice( 0, 3 ) === "nth" ) {
- // nth-* requires argument
- if ( !match[3] ) {
- Sizzle.error( match[0] );
- }
-
- // numeric x and y parameters for Expr.filter.CHILD
- // remember that false/true cast respectively to 0/1
- match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
- match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
-
- // other types prohibit arguments
- } else if ( match[3] ) {
- Sizzle.error( match[0] );
- }
-
- return match;
- },
-
- "PSEUDO": function( match ) {
- var excess,
- unquoted = !match[6] && match[2];
-
- if ( matchExpr["CHILD"].test( match[0] ) ) {
- return null;
- }
-
- // Accept quoted arguments as-is
- if ( match[3] ) {
- match[2] = match[4] || match[5] || "";
-
- // Strip excess characters from unquoted arguments
- } else if ( unquoted && rpseudo.test( unquoted ) &&
- // Get excess from tokenize (recursively)
- (excess = tokenize( unquoted, true )) &&
- // advance to the next closing parenthesis
- (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
-
- // excess is a negative index
- match[0] = match[0].slice( 0, excess );
- match[2] = unquoted.slice( 0, excess );
- }
-
- // Return only captures needed by the pseudo filter method (type and argument)
- return match.slice( 0, 3 );
- }
- },
-
- filter: {
-
- "TAG": function( nodeNameSelector ) {
- var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
- return nodeNameSelector === "*" ?
- function() { return true; } :
- function( elem ) {
- return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
- };
- },
-
- "CLASS": function( className ) {
- var pattern = classCache[ className + " " ];
-
- return pattern ||
- (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
- classCache( className, function( elem ) {
- return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== strundefined && elem.getAttribute("class") || "" );
- });
- },
-
- "ATTR": function( name, operator, check ) {
- return function( elem ) {
- var result = Sizzle.attr( elem, name );
-
- if ( result == null ) {
- return operator === "!=";
- }
- if ( !operator ) {
- return true;
- }
-
- result += "";
-
- return operator === "=" ? result === check :
- operator === "!=" ? result !== check :
- operator === "^=" ? check && result.indexOf( check ) === 0 :
- operator === "*=" ? check && result.indexOf( check ) > -1 :
- operator === "$=" ? check && result.slice( -check.length ) === check :
- operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 :
- operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
- false;
- };
- },
-
- "CHILD": function( type, what, argument, first, last ) {
- var simple = type.slice( 0, 3 ) !== "nth",
- forward = type.slice( -4 ) !== "last",
- ofType = what === "of-type";
-
- return first === 1 && last === 0 ?
-
- // Shortcut for :nth-*(n)
- function( elem ) {
- return !!elem.parentNode;
- } :
-
- function( elem, context, xml ) {
- var cache, outerCache, node, diff, nodeIndex, start,
- dir = simple !== forward ? "nextSibling" : "previousSibling",
- parent = elem.parentNode,
- name = ofType && elem.nodeName.toLowerCase(),
- useCache = !xml && !ofType;
-
- if ( parent ) {
-
- // :(first|last|only)-(child|of-type)
- if ( simple ) {
- while ( dir ) {
- node = elem;
- while ( (node = node[ dir ]) ) {
- if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) {
- return false;
- }
- }
- // Reverse direction for :only-* (if we haven't yet done so)
- start = dir = type === "only" && !start && "nextSibling";
- }
- return true;
- }
-
- start = [ forward ? parent.firstChild : parent.lastChild ];
-
- // non-xml :nth-child(...) stores cache data on `parent`
- if ( forward && useCache ) {
- // Seek `elem` from a previously-cached index
- outerCache = parent[ expando ] || (parent[ expando ] = {});
- cache = outerCache[ type ] || [];
- nodeIndex = cache[0] === dirruns && cache[1];
- diff = cache[0] === dirruns && cache[2];
- node = nodeIndex && parent.childNodes[ nodeIndex ];
-
- while ( (node = ++nodeIndex && node && node[ dir ] ||
-
- // Fallback to seeking `elem` from the start
- (diff = nodeIndex = 0) || start.pop()) ) {
-
- // When found, cache indexes on `parent` and break
- if ( node.nodeType === 1 && ++diff && node === elem ) {
- outerCache[ type ] = [ dirruns, nodeIndex, diff ];
- break;
- }
- }
-
- // Use previously-cached element index if available
- } else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) {
- diff = cache[1];
-
- // xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...)
- } else {
- // Use the same loop as above to seek `elem` from the start
- while ( (node = ++nodeIndex && node && node[ dir ] ||
- (diff = nodeIndex = 0) || start.pop()) ) {
-
- if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) {
- // Cache the index of each encountered element
- if ( useCache ) {
- (node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ];
- }
-
- if ( node === elem ) {
- break;
- }
- }
- }
- }
-
- // Incorporate the offset, then check against cycle size
- diff -= last;
- return diff === first || ( diff % first === 0 && diff / first >= 0 );
- }
- };
- },
-
- "PSEUDO": function( pseudo, argument ) {
- // pseudo-class names are case-insensitive
- // http://www.w3.org/TR/selectors/#pseudo-classes
- // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
- // Remember that setFilters inherits from pseudos
- var args,
- fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
- Sizzle.error( "unsupported pseudo: " + pseudo );
-
- // The user may use createPseudo to indicate that
- // arguments are needed to create the filter function
- // just as Sizzle does
- if ( fn[ expando ] ) {
- return fn( argument );
- }
-
- // But maintain support for old signatures
- if ( fn.length > 1 ) {
- args = [ pseudo, pseudo, "", argument ];
- return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
- markFunction(function( seed, matches ) {
- var idx,
- matched = fn( seed, argument ),
- i = matched.length;
- while ( i-- ) {
- idx = indexOf.call( seed, matched[i] );
- seed[ idx ] = !( matches[ idx ] = matched[i] );
- }
- }) :
- function( elem ) {
- return fn( elem, 0, args );
- };
- }
-
- return fn;
- }
- },
-
- pseudos: {
- // Potentially complex pseudos
- "not": markFunction(function( selector ) {
- // Trim the selector passed to compile
- // to avoid treating leading and trailing
- // spaces as combinators
- var input = [],
- results = [],
- matcher = compile( selector.replace( rtrim, "$1" ) );
-
- return matcher[ expando ] ?
- markFunction(function( seed, matches, context, xml ) {
- var elem,
- unmatched = matcher( seed, null, xml, [] ),
- i = seed.length;
-
- // Match elements unmatched by `matcher`
- while ( i-- ) {
- if ( (elem = unmatched[i]) ) {
- seed[i] = !(matches[i] = elem);
- }
- }
- }) :
- function( elem, context, xml ) {
- input[0] = elem;
- matcher( input, null, xml, results );
- return !results.pop();
- };
- }),
-
- "has": markFunction(function( selector ) {
- return function( elem ) {
- return Sizzle( selector, elem ).length > 0;
- };
- }),
-
- "contains": markFunction(function( text ) {
- return function( elem ) {
- return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
- };
- }),
-
- // "Whether an element is represented by a :lang() selector
- // is based solely on the element's language value
- // being equal to the identifier C,
- // or beginning with the identifier C immediately followed by "-".
- // The matching of C against the element's language value is performed case-insensitively.
- // The identifier C does not have to be a valid language name."
- // http://www.w3.org/TR/selectors/#lang-pseudo
- "lang": markFunction( function( lang ) {
- // lang value must be a valid identifier
- if ( !ridentifier.test(lang || "") ) {
- Sizzle.error( "unsupported lang: " + lang );
- }
- lang = lang.replace( runescape, funescape ).toLowerCase();
- return function( elem ) {
- var elemLang;
- do {
- if ( (elemLang = documentIsHTML ?
- elem.lang :
- elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {
-
- elemLang = elemLang.toLowerCase();
- return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
- }
- } while ( (elem = elem.parentNode) && elem.nodeType === 1 );
- return false;
- };
- }),
-
- // Miscellaneous
- "target": function( elem ) {
- var hash = window.location && window.location.hash;
- return hash && hash.slice( 1 ) === elem.id;
- },
-
- "root": function( elem ) {
- return elem === docElem;
- },
-
- "focus": function( elem ) {
- return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
- },
-
- // Boolean properties
- "enabled": function( elem ) {
- return elem.disabled === false;
- },
-
- "disabled": function( elem ) {
- return elem.disabled === true;
- },
-
- "checked": function( elem ) {
- // In CSS3, :checked should return both checked and selected elements
- // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
- var nodeName = elem.nodeName.toLowerCase();
- return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
- },
-
- "selected": function( elem ) {
- // Accessing this property makes selected-by-default
- // options in Safari work properly
- if ( elem.parentNode ) {
- elem.parentNode.selectedIndex;
- }
-
- return elem.selected === true;
- },
-
- // Contents
- "empty": function( elem ) {
- // http://www.w3.org/TR/selectors/#empty-pseudo
- // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
- // but not by others (comment: 8; processing instruction: 7; etc.)
- // nodeType < 6 works because attributes (2) do not appear as children
- for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
- if ( elem.nodeType < 6 ) {
- return false;
- }
- }
- return true;
- },
-
- "parent": function( elem ) {
- return !Expr.pseudos["empty"]( elem );
- },
-
- // Element/input types
- "header": function( elem ) {
- return rheader.test( elem.nodeName );
- },
-
- "input": function( elem ) {
- return rinputs.test( elem.nodeName );
- },
-
- "button": function( elem ) {
- var name = elem.nodeName.toLowerCase();
- return name === "input" && elem.type === "button" || name === "button";
- },
-
- "text": function( elem ) {
- var attr;
- return elem.nodeName.toLowerCase() === "input" &&
- elem.type === "text" &&
-
- // Support: IE<8
- // New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
- ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );
- },
-
- // Position-in-collection
- "first": createPositionalPseudo(function() {
- return [ 0 ];
- }),
-
- "last": createPositionalPseudo(function( matchIndexes, length ) {
- return [ length - 1 ];
- }),
-
- "eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
- return [ argument < 0 ? argument + length : argument ];
- }),
-
- "even": createPositionalPseudo(function( matchIndexes, length ) {
- var i = 0;
- for ( ; i < length; i += 2 ) {
- matchIndexes.push( i );
- }
- return matchIndexes;
- }),
-
- "odd": createPositionalPseudo(function( matchIndexes, length ) {
- var i = 1;
- for ( ; i < length; i += 2 ) {
- matchIndexes.push( i );
- }
- return matchIndexes;
- }),
-
- "lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
- var i = argument < 0 ? argument + length : argument;
- for ( ; --i >= 0; ) {
- matchIndexes.push( i );
- }
- return matchIndexes;
- }),
-
- "gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
- var i = argument < 0 ? argument + length : argument;
- for ( ; ++i < length; ) {
- matchIndexes.push( i );
- }
- return matchIndexes;
- })
- }
-};
-
-Expr.pseudos["nth"] = Expr.pseudos["eq"];
-
-// Add button/input type pseudos
-for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
- Expr.pseudos[ i ] = createInputPseudo( i );
-}
-for ( i in { submit: true, reset: true } ) {
- Expr.pseudos[ i ] = createButtonPseudo( i );
-}
-
-// Easy API for creating new setFilters
-function setFilters() {}
-setFilters.prototype = Expr.filters = Expr.pseudos;
-Expr.setFilters = new setFilters();
-
-tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
- var matched, match, tokens, type,
- soFar, groups, preFilters,
- cached = tokenCache[ selector + " " ];
-
- if ( cached ) {
- return parseOnly ? 0 : cached.slice( 0 );
- }
-
- soFar = selector;
- groups = [];
- preFilters = Expr.preFilter;
-
- while ( soFar ) {
-
- // Comma and first run
- if ( !matched || (match = rcomma.exec( soFar )) ) {
- if ( match ) {
- // Don't consume trailing commas as valid
- soFar = soFar.slice( match[0].length ) || soFar;
- }
- groups.push( (tokens = []) );
- }
-
- matched = false;
-
- // Combinators
- if ( (match = rcombinators.exec( soFar )) ) {
- matched = match.shift();
- tokens.push({
- value: matched,
- // Cast descendant combinators to space
- type: match[0].replace( rtrim, " " )
- });
- soFar = soFar.slice( matched.length );
- }
-
- // Filters
- for ( type in Expr.filter ) {
- if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
- (match = preFilters[ type ]( match ))) ) {
- matched = match.shift();
- tokens.push({
- value: matched,
- type: type,
- matches: match
- });
- soFar = soFar.slice( matched.length );
- }
- }
-
- if ( !matched ) {
- break;
- }
- }
-
- // Return the length of the invalid excess
- // if we're just parsing
- // Otherwise, throw an error or return tokens
- return parseOnly ?
- soFar.length :
- soFar ?
- Sizzle.error( selector ) :
- // Cache the tokens
- tokenCache( selector, groups ).slice( 0 );
-};
-
-function toSelector( tokens ) {
- var i = 0,
- len = tokens.length,
- selector = "";
- for ( ; i < len; i++ ) {
- selector += tokens[i].value;
- }
- return selector;
-}
-
-function addCombinator( matcher, combinator, base ) {
- var dir = combinator.dir,
- checkNonElements = base && dir === "parentNode",
- doneName = done++;
-
- return combinator.first ?
- // Check against closest ancestor/preceding element
- function( elem, context, xml ) {
- while ( (elem = elem[ dir ]) ) {
- if ( elem.nodeType === 1 || checkNonElements ) {
- return matcher( elem, context, xml );
- }
- }
- } :
-
- // Check against all ancestor/preceding elements
- function( elem, context, xml ) {
- var oldCache, outerCache,
- newCache = [ dirruns, doneName ];
-
- // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching
- if ( xml ) {
- while ( (elem = elem[ dir ]) ) {
- if ( elem.nodeType === 1 || checkNonElements ) {
- if ( matcher( elem, context, xml ) ) {
- return true;
- }
- }
- }
- } else {
- while ( (elem = elem[ dir ]) ) {
- if ( elem.nodeType === 1 || checkNonElements ) {
- outerCache = elem[ expando ] || (elem[ expando ] = {});
- if ( (oldCache = outerCache[ dir ]) &&
- oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
-
- // Assign to newCache so results back-propagate to previous elements
- return (newCache[ 2 ] = oldCache[ 2 ]);
- } else {
- // Reuse newcache so results back-propagate to previous elements
- outerCache[ dir ] = newCache;
-
- // A match means we're done; a fail means we have to keep checking
- if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {
- return true;
- }
- }
- }
- }
- }
- };
-}
-
-function elementMatcher( matchers ) {
- return matchers.length > 1 ?
- function( elem, context, xml ) {
- var i = matchers.length;
- while ( i-- ) {
- if ( !matchers[i]( elem, context, xml ) ) {
- return false;
- }
- }
- return true;
- } :
- matchers[0];
-}
-
-function multipleContexts( selector, contexts, results ) {
- var i = 0,
- len = contexts.length;
- for ( ; i < len; i++ ) {
- Sizzle( selector, contexts[i], results );
- }
- return results;
-}
-
-function condense( unmatched, map, filter, context, xml ) {
- var elem,
- newUnmatched = [],
- i = 0,
- len = unmatched.length,
- mapped = map != null;
-
- for ( ; i < len; i++ ) {
- if ( (elem = unmatched[i]) ) {
- if ( !filter || filter( elem, context, xml ) ) {
- newUnmatched.push( elem );
- if ( mapped ) {
- map.push( i );
- }
- }
- }
- }
-
- return newUnmatched;
-}
-
-function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
- if ( postFilter && !postFilter[ expando ] ) {
- postFilter = setMatcher( postFilter );
- }
- if ( postFinder && !postFinder[ expando ] ) {
- postFinder = setMatcher( postFinder, postSelector );
- }
- return markFunction(function( seed, results, context, xml ) {
- var temp, i, elem,
- preMap = [],
- postMap = [],
- preexisting = results.length,
-
- // Get initial elements from seed or context
- elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
-
- // Prefilter to get matcher input, preserving a map for seed-results synchronization
- matcherIn = preFilter && ( seed || !selector ) ?
- condense( elems, preMap, preFilter, context, xml ) :
- elems,
-
- matcherOut = matcher ?
- // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
- postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
-
- // ...intermediate processing is necessary
- [] :
-
- // ...otherwise use results directly
- results :
- matcherIn;
-
- // Find primary matches
- if ( matcher ) {
- matcher( matcherIn, matcherOut, context, xml );
- }
-
- // Apply postFilter
- if ( postFilter ) {
- temp = condense( matcherOut, postMap );
- postFilter( temp, [], context, xml );
-
- // Un-match failing elements by moving them back to matcherIn
- i = temp.length;
- while ( i-- ) {
- if ( (elem = temp[i]) ) {
- matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
- }
- }
- }
-
- if ( seed ) {
- if ( postFinder || preFilter ) {
- if ( postFinder ) {
- // Get the final matcherOut by condensing this intermediate into postFinder contexts
- temp = [];
- i = matcherOut.length;
- while ( i-- ) {
- if ( (elem = matcherOut[i]) ) {
- // Restore matcherIn since elem is not yet a final match
- temp.push( (matcherIn[i] = elem) );
- }
- }
- postFinder( null, (matcherOut = []), temp, xml );
- }
-
- // Move matched elements from seed to results to keep them synchronized
- i = matcherOut.length;
- while ( i-- ) {
- if ( (elem = matcherOut[i]) &&
- (temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) {
-
- seed[temp] = !(results[temp] = elem);
- }
- }
- }
-
- // Add elements to results, through postFinder if defined
- } else {
- matcherOut = condense(
- matcherOut === results ?
- matcherOut.splice( preexisting, matcherOut.length ) :
- matcherOut
- );
- if ( postFinder ) {
- postFinder( null, results, matcherOut, xml );
- } else {
- push.apply( results, matcherOut );
- }
- }
- });
-}
-
-function matcherFromTokens( tokens ) {
- var checkContext, matcher, j,
- len = tokens.length,
- leadingRelative = Expr.relative[ tokens[0].type ],
- implicitRelative = leadingRelative || Expr.relative[" "],
- i = leadingRelative ? 1 : 0,
-
- // The foundational matcher ensures that elements are reachable from top-level context(s)
- matchContext = addCombinator( function( elem ) {
- return elem === checkContext;
- }, implicitRelative, true ),
- matchAnyContext = addCombinator( function( elem ) {
- return indexOf.call( checkContext, elem ) > -1;
- }, implicitRelative, true ),
- matchers = [ function( elem, context, xml ) {
- return ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
- (checkContext = context).nodeType ?
- matchContext( elem, context, xml ) :
- matchAnyContext( elem, context, xml ) );
- } ];
-
- for ( ; i < len; i++ ) {
- if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
- matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
- } else {
- matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
-
- // Return special upon seeing a positional matcher
- if ( matcher[ expando ] ) {
- // Find the next relative operator (if any) for proper handling
- j = ++i;
- for ( ; j < len; j++ ) {
- if ( Expr.relative[ tokens[j].type ] ) {
- break;
- }
- }
- return setMatcher(
- i > 1 && elementMatcher( matchers ),
- i > 1 && toSelector(
- // If the preceding token was a descendant combinator, insert an implicit any-element `*`
- tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })
- ).replace( rtrim, "$1" ),
- matcher,
- i < j && matcherFromTokens( tokens.slice( i, j ) ),
- j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
- j < len && toSelector( tokens )
- );
- }
- matchers.push( matcher );
- }
- }
-
- return elementMatcher( matchers );
-}
-
-function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
- var bySet = setMatchers.length > 0,
- byElement = elementMatchers.length > 0,
- superMatcher = function( seed, context, xml, results, outermost ) {
- var elem, j, matcher,
- matchedCount = 0,
- i = "0",
- unmatched = seed && [],
- setMatched = [],
- contextBackup = outermostContext,
- // We must always have either seed elements or outermost context
- elems = seed || byElement && Expr.find["TAG"]( "*", outermost ),
- // Use integer dirruns iff this is the outermost matcher
- dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),
- len = elems.length;
-
- if ( outermost ) {
- outermostContext = context !== document && context;
- }
-
- // Add elements passing elementMatchers directly to results
- // Keep `i` a string if there are no elements so `matchedCount` will be "00" below
- // Support: IE<9, Safari
- // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id
- for ( ; i !== len && (elem = elems[i]) != null; i++ ) {
- if ( byElement && elem ) {
- j = 0;
- while ( (matcher = elementMatchers[j++]) ) {
- if ( matcher( elem, context, xml ) ) {
- results.push( elem );
- break;
- }
- }
- if ( outermost ) {
- dirruns = dirrunsUnique;
- }
- }
-
- // Track unmatched elements for set filters
- if ( bySet ) {
- // They will have gone through all possible matchers
- if ( (elem = !matcher && elem) ) {
- matchedCount--;
- }
-
- // Lengthen the array for every element, matched or not
- if ( seed ) {
- unmatched.push( elem );
- }
- }
- }
-
- // Apply set filters to unmatched elements
- matchedCount += i;
- if ( bySet && i !== matchedCount ) {
- j = 0;
- while ( (matcher = setMatchers[j++]) ) {
- matcher( unmatched, setMatched, context, xml );
- }
-
- if ( seed ) {
- // Reintegrate element matches to eliminate the need for sorting
- if ( matchedCount > 0 ) {
- while ( i-- ) {
- if ( !(unmatched[i] || setMatched[i]) ) {
- setMatched[i] = pop.call( results );
- }
- }
- }
-
- // Discard index placeholder values to get only actual matches
- setMatched = condense( setMatched );
- }
-
- // Add matches to results
- push.apply( results, setMatched );
-
- // Seedless set matches succeeding multiple successful matchers stipulate sorting
- if ( outermost && !seed && setMatched.length > 0 &&
- ( matchedCount + setMatchers.length ) > 1 ) {
-
- Sizzle.uniqueSort( results );
- }
- }
-
- // Override manipulation of globals by nested matchers
- if ( outermost ) {
- dirruns = dirrunsUnique;
- outermostContext = contextBackup;
- }
-
- return unmatched;
- };
-
- return bySet ?
- markFunction( superMatcher ) :
- superMatcher;
-}
-
-compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
- var i,
- setMatchers = [],
- elementMatchers = [],
- cached = compilerCache[ selector + " " ];
-
- if ( !cached ) {
- // Generate a function of recursive functions that can be used to check each element
- if ( !match ) {
- match = tokenize( selector );
- }
- i = match.length;
- while ( i-- ) {
- cached = matcherFromTokens( match[i] );
- if ( cached[ expando ] ) {
- setMatchers.push( cached );
- } else {
- elementMatchers.push( cached );
- }
- }
-
- // Cache the compiled function
- cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
-
- // Save selector and tokenization
- cached.selector = selector;
- }
- return cached;
-};
-
-/**
- * A low-level selection function that works with Sizzle's compiled
- * selector functions
- * @param {String|Function} selector A selector or a pre-compiled
- * selector function built with Sizzle.compile
- * @param {Element} context
- * @param {Array} [results]
- * @param {Array} [seed] A set of elements to match against
- */
-select = Sizzle.select = function( selector, context, results, seed ) {
- var i, tokens, token, type, find,
- compiled = typeof selector === "function" && selector,
- match = !seed && tokenize( (selector = compiled.selector || selector) );
-
- results = results || [];
-
- // Try to minimize operations if there is no seed and only one group
- if ( match.length === 1 ) {
-
- // Take a shortcut and set the context if the root selector is an ID
- tokens = match[0] = match[0].slice( 0 );
- if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
- support.getById && context.nodeType === 9 && documentIsHTML &&
- Expr.relative[ tokens[1].type ] ) {
-
- context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
- if ( !context ) {
- return results;
-
- // Precompiled matchers will still verify ancestry, so step up a level
- } else if ( compiled ) {
- context = context.parentNode;
- }
-
- selector = selector.slice( tokens.shift().value.length );
- }
-
- // Fetch a seed set for right-to-left matching
- i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
- while ( i-- ) {
- token = tokens[i];
-
- // Abort if we hit a combinator
- if ( Expr.relative[ (type = token.type) ] ) {
- break;
- }
- if ( (find = Expr.find[ type ]) ) {
- // Search, expanding context for leading sibling combinators
- if ( (seed = find(
- token.matches[0].replace( runescape, funescape ),
- rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context
- )) ) {
-
- // If seed is empty or no tokens remain, we can return early
- tokens.splice( i, 1 );
- selector = seed.length && toSelector( tokens );
- if ( !selector ) {
- push.apply( results, seed );
- return results;
- }
-
- break;
- }
- }
- }
- }
-
- // Compile and execute a filtering function if one is not provided
- // Provide `match` to avoid retokenization if we modified the selector above
- ( compiled || compile( selector, match ) )(
- seed,
- context,
- !documentIsHTML,
- results,
- rsibling.test( selector ) && testContext( context.parentNode ) || context
- );
- return results;
-};
-
-// One-time assignments
-
-// Sort stability
-support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
-
-// Support: Chrome<14
-// Always assume duplicates if they aren't passed to the comparison function
-support.detectDuplicates = !!hasDuplicate;
-
-// Initialize against the default document
-setDocument();
-
-// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
-// Detached nodes confoundingly follow *each other*
-support.sortDetached = assert(function( div1 ) {
- // Should return 1, but returns 4 (following)
- return div1.compareDocumentPosition( document.createElement("div") ) & 1;
-});
-
-// Support: IE<8
-// Prevent attribute/property "interpolation"
-// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
-if ( !assert(function( div ) {
- div.innerHTML = "";
- return div.firstChild.getAttribute("href") === "#" ;
-}) ) {
- addHandle( "type|href|height|width", function( elem, name, isXML ) {
- if ( !isXML ) {
- return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
- }
- });
-}
-
-// Support: IE<9
-// Use defaultValue in place of getAttribute("value")
-if ( !support.attributes || !assert(function( div ) {
- div.innerHTML = "";
- div.firstChild.setAttribute( "value", "" );
- return div.firstChild.getAttribute( "value" ) === "";
-}) ) {
- addHandle( "value", function( elem, name, isXML ) {
- if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
- return elem.defaultValue;
- }
- });
-}
-
-// Support: IE<9
-// Use getAttributeNode to fetch booleans when getAttribute lies
-if ( !assert(function( div ) {
- return div.getAttribute("disabled") == null;
-}) ) {
- addHandle( booleans, function( elem, name, isXML ) {
- var val;
- if ( !isXML ) {
- return elem[ name ] === true ? name.toLowerCase() :
- (val = elem.getAttributeNode( name )) && val.specified ?
- val.value :
- null;
- }
- });
-}
-
-return Sizzle;
-
-})( window );
-
-
-
-jQuery.find = Sizzle;
-jQuery.expr = Sizzle.selectors;
-jQuery.expr[":"] = jQuery.expr.pseudos;
-jQuery.unique = Sizzle.uniqueSort;
-jQuery.text = Sizzle.getText;
-jQuery.isXMLDoc = Sizzle.isXML;
-jQuery.contains = Sizzle.contains;
-
-
-
-var rneedsContext = jQuery.expr.match.needsContext;
-
-var rsingleTag = (/^<(\w+)\s*\/?>(?:<\/\1>|)$/);
-
-
-
-var risSimple = /^.[^:#\[\.,]*$/;
-
-// Implement the identical functionality for filter and not
-function winnow( elements, qualifier, not ) {
- if ( jQuery.isFunction( qualifier ) ) {
- return jQuery.grep( elements, function( elem, i ) {
- /* jshint -W018 */
- return !!qualifier.call( elem, i, elem ) !== not;
- });
-
- }
-
- if ( qualifier.nodeType ) {
- return jQuery.grep( elements, function( elem ) {
- return ( elem === qualifier ) !== not;
- });
-
- }
-
- if ( typeof qualifier === "string" ) {
- if ( risSimple.test( qualifier ) ) {
- return jQuery.filter( qualifier, elements, not );
- }
-
- qualifier = jQuery.filter( qualifier, elements );
- }
-
- return jQuery.grep( elements, function( elem ) {
- return ( jQuery.inArray( elem, qualifier ) >= 0 ) !== not;
- });
-}
-
-jQuery.filter = function( expr, elems, not ) {
- var elem = elems[ 0 ];
-
- if ( not ) {
- expr = ":not(" + expr + ")";
- }
-
- return elems.length === 1 && elem.nodeType === 1 ?
- jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] :
- jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
- return elem.nodeType === 1;
- }));
-};
-
-jQuery.fn.extend({
- find: function( selector ) {
- var i,
- ret = [],
- self = this,
- len = self.length;
-
- if ( typeof selector !== "string" ) {
- return this.pushStack( jQuery( selector ).filter(function() {
- for ( i = 0; i < len; i++ ) {
- if ( jQuery.contains( self[ i ], this ) ) {
- return true;
- }
- }
- }) );
- }
-
- for ( i = 0; i < len; i++ ) {
- jQuery.find( selector, self[ i ], ret );
- }
-
- // Needed because $( selector, context ) becomes $( context ).find( selector )
- ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret );
- ret.selector = this.selector ? this.selector + " " + selector : selector;
- return ret;
- },
- filter: function( selector ) {
- return this.pushStack( winnow(this, selector || [], false) );
- },
- not: function( selector ) {
- return this.pushStack( winnow(this, selector || [], true) );
- },
- is: function( selector ) {
- return !!winnow(
- this,
-
- // If this is a positional/relative selector, check membership in the returned set
- // so $("p:first").is("p:last") won't return true for a doc with two "p".
- typeof selector === "string" && rneedsContext.test( selector ) ?
- jQuery( selector ) :
- selector || [],
- false
- ).length;
- }
-});
-
-
-// Initialize a jQuery object
-
-
-// A central reference to the root jQuery(document)
-var rootjQuery,
-
- // Use the correct document accordingly with window argument (sandbox)
- document = window.document,
-
- // A simple way to check for HTML strings
- // Prioritize #id over to avoid XSS via location.hash (#9521)
- // Strict HTML recognition (#11290: must start with <)
- rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,
-
- init = jQuery.fn.init = function( selector, context ) {
- var match, elem;
-
- // HANDLE: $(""), $(null), $(undefined), $(false)
- if ( !selector ) {
- return this;
- }
-
- // Handle HTML strings
- if ( typeof selector === "string" ) {
- if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) {
- // Assume that strings that start and end with <> are HTML and skip the regex check
- match = [ null, selector, null ];
-
- } else {
- match = rquickExpr.exec( selector );
- }
-
- // Match html or make sure no context is specified for #id
- if ( match && (match[1] || !context) ) {
-
- // HANDLE: $(html) -> $(array)
- if ( match[1] ) {
- context = context instanceof jQuery ? context[0] : context;
-
- // scripts is true for back-compat
- // Intentionally let the error be thrown if parseHTML is not present
- jQuery.merge( this, jQuery.parseHTML(
- match[1],
- context && context.nodeType ? context.ownerDocument || context : document,
- true
- ) );
-
- // HANDLE: $(html, props)
- if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) {
- for ( match in context ) {
- // Properties of context are called as methods if possible
- if ( jQuery.isFunction( this[ match ] ) ) {
- this[ match ]( context[ match ] );
-
- // ...and otherwise set as attributes
- } else {
- this.attr( match, context[ match ] );
- }
- }
- }
-
- return this;
-
- // HANDLE: $(#id)
- } else {
- elem = document.getElementById( match[2] );
-
- // Check parentNode to catch when Blackberry 4.6 returns
- // nodes that are no longer in the document #6963
- if ( elem && elem.parentNode ) {
- // Handle the case where IE and Opera return items
- // by name instead of ID
- if ( elem.id !== match[2] ) {
- return rootjQuery.find( selector );
- }
-
- // Otherwise, we inject the element directly into the jQuery object
- this.length = 1;
- this[0] = elem;
- }
-
- this.context = document;
- this.selector = selector;
- return this;
- }
-
- // HANDLE: $(expr, $(...))
- } else if ( !context || context.jquery ) {
- return ( context || rootjQuery ).find( selector );
-
- // HANDLE: $(expr, context)
- // (which is just equivalent to: $(context).find(expr)
- } else {
- return this.constructor( context ).find( selector );
- }
-
- // HANDLE: $(DOMElement)
- } else if ( selector.nodeType ) {
- this.context = this[0] = selector;
- this.length = 1;
- return this;
-
- // HANDLE: $(function)
- // Shortcut for document ready
- } else if ( jQuery.isFunction( selector ) ) {
- return typeof rootjQuery.ready !== "undefined" ?
- rootjQuery.ready( selector ) :
- // Execute immediately if ready is not present
- selector( jQuery );
- }
-
- if ( selector.selector !== undefined ) {
- this.selector = selector.selector;
- this.context = selector.context;
- }
-
- return jQuery.makeArray( selector, this );
- };
-
-// Give the init function the jQuery prototype for later instantiation
-init.prototype = jQuery.fn;
-
-// Initialize central reference
-rootjQuery = jQuery( document );
-
-
-var rparentsprev = /^(?:parents|prev(?:Until|All))/,
- // methods guaranteed to produce a unique set when starting from a unique set
- guaranteedUnique = {
- children: true,
- contents: true,
- next: true,
- prev: true
- };
-
-jQuery.extend({
- dir: function( elem, dir, until ) {
- var matched = [],
- cur = elem[ dir ];
-
- while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) {
- if ( cur.nodeType === 1 ) {
- matched.push( cur );
- }
- cur = cur[dir];
- }
- return matched;
- },
-
- sibling: function( n, elem ) {
- var r = [];
-
- for ( ; n; n = n.nextSibling ) {
- if ( n.nodeType === 1 && n !== elem ) {
- r.push( n );
- }
- }
-
- return r;
- }
-});
-
-jQuery.fn.extend({
- has: function( target ) {
- var i,
- targets = jQuery( target, this ),
- len = targets.length;
-
- return this.filter(function() {
- for ( i = 0; i < len; i++ ) {
- if ( jQuery.contains( this, targets[i] ) ) {
- return true;
- }
- }
- });
- },
-
- closest: function( selectors, context ) {
- var cur,
- i = 0,
- l = this.length,
- matched = [],
- pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ?
- jQuery( selectors, context || this.context ) :
- 0;
-
- for ( ; i < l; i++ ) {
- for ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) {
- // Always skip document fragments
- if ( cur.nodeType < 11 && (pos ?
- pos.index(cur) > -1 :
-
- // Don't pass non-elements to Sizzle
- cur.nodeType === 1 &&
- jQuery.find.matchesSelector(cur, selectors)) ) {
-
- matched.push( cur );
- break;
- }
- }
- }
-
- return this.pushStack( matched.length > 1 ? jQuery.unique( matched ) : matched );
- },
-
- // Determine the position of an element within
- // the matched set of elements
- index: function( elem ) {
-
- // No argument, return index in parent
- if ( !elem ) {
- return ( this[0] && this[0].parentNode ) ? this.first().prevAll().length : -1;
- }
-
- // index in selector
- if ( typeof elem === "string" ) {
- return jQuery.inArray( this[0], jQuery( elem ) );
- }
-
- // Locate the position of the desired element
- return jQuery.inArray(
- // If it receives a jQuery object, the first element is used
- elem.jquery ? elem[0] : elem, this );
- },
-
- add: function( selector, context ) {
- return this.pushStack(
- jQuery.unique(
- jQuery.merge( this.get(), jQuery( selector, context ) )
- )
- );
- },
-
- addBack: function( selector ) {
- return this.add( selector == null ?
- this.prevObject : this.prevObject.filter(selector)
- );
- }
-});
-
-function sibling( cur, dir ) {
- do {
- cur = cur[ dir ];
- } while ( cur && cur.nodeType !== 1 );
-
- return cur;
-}
-
-jQuery.each({
- parent: function( elem ) {
- var parent = elem.parentNode;
- return parent && parent.nodeType !== 11 ? parent : null;
- },
- parents: function( elem ) {
- return jQuery.dir( elem, "parentNode" );
- },
- parentsUntil: function( elem, i, until ) {
- return jQuery.dir( elem, "parentNode", until );
- },
- next: function( elem ) {
- return sibling( elem, "nextSibling" );
- },
- prev: function( elem ) {
- return sibling( elem, "previousSibling" );
- },
- nextAll: function( elem ) {
- return jQuery.dir( elem, "nextSibling" );
- },
- prevAll: function( elem ) {
- return jQuery.dir( elem, "previousSibling" );
- },
- nextUntil: function( elem, i, until ) {
- return jQuery.dir( elem, "nextSibling", until );
- },
- prevUntil: function( elem, i, until ) {
- return jQuery.dir( elem, "previousSibling", until );
- },
- siblings: function( elem ) {
- return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem );
- },
- children: function( elem ) {
- return jQuery.sibling( elem.firstChild );
- },
- contents: function( elem ) {
- return jQuery.nodeName( elem, "iframe" ) ?
- elem.contentDocument || elem.contentWindow.document :
- jQuery.merge( [], elem.childNodes );
- }
-}, function( name, fn ) {
- jQuery.fn[ name ] = function( until, selector ) {
- var ret = jQuery.map( this, fn, until );
-
- if ( name.slice( -5 ) !== "Until" ) {
- selector = until;
- }
-
- if ( selector && typeof selector === "string" ) {
- ret = jQuery.filter( selector, ret );
- }
-
- if ( this.length > 1 ) {
- // Remove duplicates
- if ( !guaranteedUnique[ name ] ) {
- ret = jQuery.unique( ret );
- }
-
- // Reverse order for parents* and prev-derivatives
- if ( rparentsprev.test( name ) ) {
- ret = ret.reverse();
- }
- }
-
- return this.pushStack( ret );
- };
-});
-var rnotwhite = (/\S+/g);
-
-
-
-// String to Object options format cache
-var optionsCache = {};
-
-// Convert String-formatted options into Object-formatted ones and store in cache
-function createOptions( options ) {
- var object = optionsCache[ options ] = {};
- jQuery.each( options.match( rnotwhite ) || [], function( _, flag ) {
- object[ flag ] = true;
- });
- return object;
-}
-
-/*
- * Create a callback list using the following parameters:
- *
- * options: an optional list of space-separated options that will change how
- * the callback list behaves or a more traditional option object
- *
- * By default a callback list will act like an event callback list and can be
- * "fired" multiple times.
- *
- * Possible options:
- *
- * once: will ensure the callback list can only be fired once (like a Deferred)
- *
- * memory: will keep track of previous values and will call any callback added
- * after the list has been fired right away with the latest "memorized"
- * values (like a Deferred)
- *
- * unique: will ensure a callback can only be added once (no duplicate in the list)
- *
- * stopOnFalse: interrupt callings when a callback returns false
- *
- */
-jQuery.Callbacks = function( options ) {
-
- // Convert options from String-formatted to Object-formatted if needed
- // (we check in cache first)
- options = typeof options === "string" ?
- ( optionsCache[ options ] || createOptions( options ) ) :
- jQuery.extend( {}, options );
-
- var // Flag to know if list is currently firing
- firing,
- // Last fire value (for non-forgettable lists)
- memory,
- // Flag to know if list was already fired
- fired,
- // End of the loop when firing
- firingLength,
- // Index of currently firing callback (modified by remove if needed)
- firingIndex,
- // First callback to fire (used internally by add and fireWith)
- firingStart,
- // Actual callback list
- list = [],
- // Stack of fire calls for repeatable lists
- stack = !options.once && [],
- // Fire callbacks
- fire = function( data ) {
- memory = options.memory && data;
- fired = true;
- firingIndex = firingStart || 0;
- firingStart = 0;
- firingLength = list.length;
- firing = true;
- for ( ; list && firingIndex < firingLength; firingIndex++ ) {
- if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) {
- memory = false; // To prevent further calls using add
- break;
- }
- }
- firing = false;
- if ( list ) {
- if ( stack ) {
- if ( stack.length ) {
- fire( stack.shift() );
- }
- } else if ( memory ) {
- list = [];
- } else {
- self.disable();
- }
- }
- },
- // Actual Callbacks object
- self = {
- // Add a callback or a collection of callbacks to the list
- add: function() {
- if ( list ) {
- // First, we save the current length
- var start = list.length;
- (function add( args ) {
- jQuery.each( args, function( _, arg ) {
- var type = jQuery.type( arg );
- if ( type === "function" ) {
- if ( !options.unique || !self.has( arg ) ) {
- list.push( arg );
- }
- } else if ( arg && arg.length && type !== "string" ) {
- // Inspect recursively
- add( arg );
- }
- });
- })( arguments );
- // Do we need to add the callbacks to the
- // current firing batch?
- if ( firing ) {
- firingLength = list.length;
- // With memory, if we're not firing then
- // we should call right away
- } else if ( memory ) {
- firingStart = start;
- fire( memory );
- }
- }
- return this;
- },
- // Remove a callback from the list
- remove: function() {
- if ( list ) {
- jQuery.each( arguments, function( _, arg ) {
- var index;
- while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
- list.splice( index, 1 );
- // Handle firing indexes
- if ( firing ) {
- if ( index <= firingLength ) {
- firingLength--;
- }
- if ( index <= firingIndex ) {
- firingIndex--;
- }
- }
- }
- });
- }
- return this;
- },
- // Check if a given callback is in the list.
- // If no argument is given, return whether or not list has callbacks attached.
- has: function( fn ) {
- return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length );
- },
- // Remove all callbacks from the list
- empty: function() {
- list = [];
- firingLength = 0;
- return this;
- },
- // Have the list do nothing anymore
- disable: function() {
- list = stack = memory = undefined;
- return this;
- },
- // Is it disabled?
- disabled: function() {
- return !list;
- },
- // Lock the list in its current state
- lock: function() {
- stack = undefined;
- if ( !memory ) {
- self.disable();
- }
- return this;
- },
- // Is it locked?
- locked: function() {
- return !stack;
- },
- // Call all callbacks with the given context and arguments
- fireWith: function( context, args ) {
- if ( list && ( !fired || stack ) ) {
- args = args || [];
- args = [ context, args.slice ? args.slice() : args ];
- if ( firing ) {
- stack.push( args );
- } else {
- fire( args );
- }
- }
- return this;
- },
- // Call all the callbacks with the given arguments
- fire: function() {
- self.fireWith( this, arguments );
- return this;
- },
- // To know if the callbacks have already been called at least once
- fired: function() {
- return !!fired;
- }
- };
-
- return self;
-};
-
-
-jQuery.extend({
-
- Deferred: function( func ) {
- var tuples = [
- // action, add listener, listener list, final state
- [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ],
- [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ],
- [ "notify", "progress", jQuery.Callbacks("memory") ]
- ],
- state = "pending",
- promise = {
- state: function() {
- return state;
- },
- always: function() {
- deferred.done( arguments ).fail( arguments );
- return this;
- },
- then: function( /* fnDone, fnFail, fnProgress */ ) {
- var fns = arguments;
- return jQuery.Deferred(function( newDefer ) {
- jQuery.each( tuples, function( i, tuple ) {
- var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];
- // deferred[ done | fail | progress ] for forwarding actions to newDefer
- deferred[ tuple[1] ](function() {
- var returned = fn && fn.apply( this, arguments );
- if ( returned && jQuery.isFunction( returned.promise ) ) {
- returned.promise()
- .done( newDefer.resolve )
- .fail( newDefer.reject )
- .progress( newDefer.notify );
- } else {
- newDefer[ tuple[ 0 ] + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments );
- }
- });
- });
- fns = null;
- }).promise();
- },
- // Get a promise for this deferred
- // If obj is provided, the promise aspect is added to the object
- promise: function( obj ) {
- return obj != null ? jQuery.extend( obj, promise ) : promise;
- }
- },
- deferred = {};
-
- // Keep pipe for back-compat
- promise.pipe = promise.then;
-
- // Add list-specific methods
- jQuery.each( tuples, function( i, tuple ) {
- var list = tuple[ 2 ],
- stateString = tuple[ 3 ];
-
- // promise[ done | fail | progress ] = list.add
- promise[ tuple[1] ] = list.add;
-
- // Handle state
- if ( stateString ) {
- list.add(function() {
- // state = [ resolved | rejected ]
- state = stateString;
-
- // [ reject_list | resolve_list ].disable; progress_list.lock
- }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );
- }
-
- // deferred[ resolve | reject | notify ]
- deferred[ tuple[0] ] = function() {
- deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments );
- return this;
- };
- deferred[ tuple[0] + "With" ] = list.fireWith;
- });
-
- // Make the deferred a promise
- promise.promise( deferred );
-
- // Call given func if any
- if ( func ) {
- func.call( deferred, deferred );
- }
-
- // All done!
- return deferred;
- },
-
- // Deferred helper
- when: function( subordinate /* , ..., subordinateN */ ) {
- var i = 0,
- resolveValues = slice.call( arguments ),
- length = resolveValues.length,
-
- // the count of uncompleted subordinates
- remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,
-
- // the master Deferred. If resolveValues consist of only a single Deferred, just use that.
- deferred = remaining === 1 ? subordinate : jQuery.Deferred(),
-
- // Update function for both resolve and progress values
- updateFunc = function( i, contexts, values ) {
- return function( value ) {
- contexts[ i ] = this;
- values[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
- if ( values === progressValues ) {
- deferred.notifyWith( contexts, values );
-
- } else if ( !(--remaining) ) {
- deferred.resolveWith( contexts, values );
- }
- };
- },
-
- progressValues, progressContexts, resolveContexts;
-
- // add listeners to Deferred subordinates; treat others as resolved
- if ( length > 1 ) {
- progressValues = new Array( length );
- progressContexts = new Array( length );
- resolveContexts = new Array( length );
- for ( ; i < length; i++ ) {
- if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {
- resolveValues[ i ].promise()
- .done( updateFunc( i, resolveContexts, resolveValues ) )
- .fail( deferred.reject )
- .progress( updateFunc( i, progressContexts, progressValues ) );
- } else {
- --remaining;
- }
- }
- }
-
- // if we're not waiting on anything, resolve the master
- if ( !remaining ) {
- deferred.resolveWith( resolveContexts, resolveValues );
- }
-
- return deferred.promise();
- }
-});
-
-
-// The deferred used on DOM ready
-var readyList;
-
-jQuery.fn.ready = function( fn ) {
- // Add the callback
- jQuery.ready.promise().done( fn );
-
- return this;
-};
-
-jQuery.extend({
- // Is the DOM ready to be used? Set to true once it occurs.
- isReady: false,
-
- // A counter to track how many items to wait for before
- // the ready event fires. See #6781
- readyWait: 1,
-
- // Hold (or release) the ready event
- holdReady: function( hold ) {
- if ( hold ) {
- jQuery.readyWait++;
- } else {
- jQuery.ready( true );
- }
- },
-
- // Handle when the DOM is ready
- ready: function( wait ) {
-
- // Abort if there are pending holds or we're already ready
- if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
- return;
- }
-
- // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
- if ( !document.body ) {
- return setTimeout( jQuery.ready );
- }
-
- // Remember that the DOM is ready
- jQuery.isReady = true;
-
- // If a normal DOM Ready event fired, decrement, and wait if need be
- if ( wait !== true && --jQuery.readyWait > 0 ) {
- return;
- }
-
- // If there are functions bound, to execute
- readyList.resolveWith( document, [ jQuery ] );
-
- // Trigger any bound ready events
- if ( jQuery.fn.triggerHandler ) {
- jQuery( document ).triggerHandler( "ready" );
- jQuery( document ).off( "ready" );
- }
- }
-});
-
-/**
- * Clean-up method for dom ready events
- */
-function detach() {
- if ( document.addEventListener ) {
- document.removeEventListener( "DOMContentLoaded", completed, false );
- window.removeEventListener( "load", completed, false );
-
- } else {
- document.detachEvent( "onreadystatechange", completed );
- window.detachEvent( "onload", completed );
- }
-}
-
-/**
- * The ready event handler and self cleanup method
- */
-function completed() {
- // readyState === "complete" is good enough for us to call the dom ready in oldIE
- if ( document.addEventListener || event.type === "load" || document.readyState === "complete" ) {
- detach();
- jQuery.ready();
- }
-}
-
-jQuery.ready.promise = function( obj ) {
- if ( !readyList ) {
-
- readyList = jQuery.Deferred();
-
- // Catch cases where $(document).ready() is called after the browser event has already occurred.
- // we once tried to use readyState "interactive" here, but it caused issues like the one
- // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15
- if ( document.readyState === "complete" ) {
- // Handle it asynchronously to allow scripts the opportunity to delay ready
- setTimeout( jQuery.ready );
-
- // Standards-based browsers support DOMContentLoaded
- } else if ( document.addEventListener ) {
- // Use the handy event callback
- document.addEventListener( "DOMContentLoaded", completed, false );
-
- // A fallback to window.onload, that will always work
- window.addEventListener( "load", completed, false );
-
- // If IE event model is used
- } else {
- // Ensure firing before onload, maybe late but safe also for iframes
- document.attachEvent( "onreadystatechange", completed );
-
- // A fallback to window.onload, that will always work
- window.attachEvent( "onload", completed );
-
- // If IE and not a frame
- // continually check to see if the document is ready
- var top = false;
-
- try {
- top = window.frameElement == null && document.documentElement;
- } catch(e) {}
-
- if ( top && top.doScroll ) {
- (function doScrollCheck() {
- if ( !jQuery.isReady ) {
-
- try {
- // Use the trick by Diego Perini
- // http://javascript.nwbox.com/IEContentLoaded/
- top.doScroll("left");
- } catch(e) {
- return setTimeout( doScrollCheck, 50 );
- }
-
- // detach all dom ready events
- detach();
-
- // and execute any waiting functions
- jQuery.ready();
- }
- })();
- }
- }
- }
- return readyList.promise( obj );
-};
-
-
-var strundefined = typeof undefined;
-
-
-
-// Support: IE<9
-// Iteration over object's inherited properties before its own
-var i;
-for ( i in jQuery( support ) ) {
- break;
-}
-support.ownLast = i !== "0";
-
-// Note: most support tests are defined in their respective modules.
-// false until the test is run
-support.inlineBlockNeedsLayout = false;
-
-// Execute ASAP in case we need to set body.style.zoom
-jQuery(function() {
- // Minified: var a,b,c,d
- var val, div, body, container;
-
- body = document.getElementsByTagName( "body" )[ 0 ];
- if ( !body || !body.style ) {
- // Return for frameset docs that don't have a body
- return;
- }
-
- // Setup
- div = document.createElement( "div" );
- container = document.createElement( "div" );
- container.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px";
- body.appendChild( container ).appendChild( div );
-
- if ( typeof div.style.zoom !== strundefined ) {
- // Support: IE<8
- // Check if natively block-level elements act like inline-block
- // elements when setting their display to 'inline' and giving
- // them layout
- div.style.cssText = "display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1";
-
- support.inlineBlockNeedsLayout = val = div.offsetWidth === 3;
- if ( val ) {
- // Prevent IE 6 from affecting layout for positioned elements #11048
- // Prevent IE from shrinking the body in IE 7 mode #12869
- // Support: IE<8
- body.style.zoom = 1;
- }
- }
-
- body.removeChild( container );
-});
-
-
-
-
-(function() {
- var div = document.createElement( "div" );
-
- // Execute the test only if not already executed in another module.
- if (support.deleteExpando == null) {
- // Support: IE<9
- support.deleteExpando = true;
- try {
- delete div.test;
- } catch( e ) {
- support.deleteExpando = false;
- }
- }
-
- // Null elements to avoid leaks in IE.
- div = null;
-})();
-
-
-/**
- * Determines whether an object can have data
- */
-jQuery.acceptData = function( elem ) {
- var noData = jQuery.noData[ (elem.nodeName + " ").toLowerCase() ],
- nodeType = +elem.nodeType || 1;
-
- // Do not set data on non-element DOM nodes because it will not be cleared (#8335).
- return nodeType !== 1 && nodeType !== 9 ?
- false :
-
- // Nodes accept data unless otherwise specified; rejection can be conditional
- !noData || noData !== true && elem.getAttribute("classid") === noData;
-};
-
-
-var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
- rmultiDash = /([A-Z])/g;
-
-function dataAttr( elem, key, data ) {
- // If nothing was found internally, try to fetch any
- // data from the HTML5 data-* attribute
- if ( data === undefined && elem.nodeType === 1 ) {
-
- var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase();
-
- data = elem.getAttribute( name );
-
- if ( typeof data === "string" ) {
- try {
- data = data === "true" ? true :
- data === "false" ? false :
- data === "null" ? null :
- // Only convert to a number if it doesn't change the string
- +data + "" === data ? +data :
- rbrace.test( data ) ? jQuery.parseJSON( data ) :
- data;
- } catch( e ) {}
-
- // Make sure we set the data so it isn't changed later
- jQuery.data( elem, key, data );
-
- } else {
- data = undefined;
- }
- }
-
- return data;
-}
-
-// checks a cache object for emptiness
-function isEmptyDataObject( obj ) {
- var name;
- for ( name in obj ) {
-
- // if the public data object is empty, the private is still empty
- if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) {
- continue;
- }
- if ( name !== "toJSON" ) {
- return false;
- }
- }
-
- return true;
-}
-
-function internalData( elem, name, data, pvt /* Internal Use Only */ ) {
- if ( !jQuery.acceptData( elem ) ) {
- return;
- }
-
- var ret, thisCache,
- internalKey = jQuery.expando,
-
- // We have to handle DOM nodes and JS objects differently because IE6-7
- // can't GC object references properly across the DOM-JS boundary
- isNode = elem.nodeType,
-
- // Only DOM nodes need the global jQuery cache; JS object data is
- // attached directly to the object so GC can occur automatically
- cache = isNode ? jQuery.cache : elem,
-
- // Only defining an ID for JS objects if its cache already exists allows
- // the code to shortcut on the same path as a DOM node with no cache
- id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey;
-
- // Avoid doing any more work than we need to when trying to get data on an
- // object that has no data at all
- if ( (!id || !cache[id] || (!pvt && !cache[id].data)) && data === undefined && typeof name === "string" ) {
- return;
- }
-
- if ( !id ) {
- // Only DOM nodes need a new unique ID for each element since their data
- // ends up in the global cache
- if ( isNode ) {
- id = elem[ internalKey ] = deletedIds.pop() || jQuery.guid++;
- } else {
- id = internalKey;
- }
- }
-
- if ( !cache[ id ] ) {
- // Avoid exposing jQuery metadata on plain JS objects when the object
- // is serialized using JSON.stringify
- cache[ id ] = isNode ? {} : { toJSON: jQuery.noop };
- }
-
- // An object can be passed to jQuery.data instead of a key/value pair; this gets
- // shallow copied over onto the existing cache
- if ( typeof name === "object" || typeof name === "function" ) {
- if ( pvt ) {
- cache[ id ] = jQuery.extend( cache[ id ], name );
- } else {
- cache[ id ].data = jQuery.extend( cache[ id ].data, name );
- }
- }
-
- thisCache = cache[ id ];
-
- // jQuery data() is stored in a separate object inside the object's internal data
- // cache in order to avoid key collisions between internal data and user-defined
- // data.
- if ( !pvt ) {
- if ( !thisCache.data ) {
- thisCache.data = {};
- }
-
- thisCache = thisCache.data;
- }
-
- if ( data !== undefined ) {
- thisCache[ jQuery.camelCase( name ) ] = data;
- }
-
- // Check for both converted-to-camel and non-converted data property names
- // If a data property was specified
- if ( typeof name === "string" ) {
-
- // First Try to find as-is property data
- ret = thisCache[ name ];
-
- // Test for null|undefined property data
- if ( ret == null ) {
-
- // Try to find the camelCased property
- ret = thisCache[ jQuery.camelCase( name ) ];
- }
- } else {
- ret = thisCache;
- }
-
- return ret;
-}
-
-function internalRemoveData( elem, name, pvt ) {
- if ( !jQuery.acceptData( elem ) ) {
- return;
- }
-
- var thisCache, i,
- isNode = elem.nodeType,
-
- // See jQuery.data for more information
- cache = isNode ? jQuery.cache : elem,
- id = isNode ? elem[ jQuery.expando ] : jQuery.expando;
-
- // If there is already no cache entry for this object, there is no
- // purpose in continuing
- if ( !cache[ id ] ) {
- return;
- }
-
- if ( name ) {
-
- thisCache = pvt ? cache[ id ] : cache[ id ].data;
-
- if ( thisCache ) {
-
- // Support array or space separated string names for data keys
- if ( !jQuery.isArray( name ) ) {
-
- // try the string as a key before any manipulation
- if ( name in thisCache ) {
- name = [ name ];
- } else {
-
- // split the camel cased version by spaces unless a key with the spaces exists
- name = jQuery.camelCase( name );
- if ( name in thisCache ) {
- name = [ name ];
- } else {
- name = name.split(" ");
- }
- }
- } else {
- // If "name" is an array of keys...
- // When data is initially created, via ("key", "val") signature,
- // keys will be converted to camelCase.
- // Since there is no way to tell _how_ a key was added, remove
- // both plain key and camelCase key. #12786
- // This will only penalize the array argument path.
- name = name.concat( jQuery.map( name, jQuery.camelCase ) );
- }
-
- i = name.length;
- while ( i-- ) {
- delete thisCache[ name[i] ];
- }
-
- // If there is no data left in the cache, we want to continue
- // and let the cache object itself get destroyed
- if ( pvt ? !isEmptyDataObject(thisCache) : !jQuery.isEmptyObject(thisCache) ) {
- return;
- }
- }
- }
-
- // See jQuery.data for more information
- if ( !pvt ) {
- delete cache[ id ].data;
-
- // Don't destroy the parent cache unless the internal data object
- // had been the only thing left in it
- if ( !isEmptyDataObject( cache[ id ] ) ) {
- return;
- }
- }
-
- // Destroy the cache
- if ( isNode ) {
- jQuery.cleanData( [ elem ], true );
-
- // Use delete when supported for expandos or `cache` is not a window per isWindow (#10080)
- /* jshint eqeqeq: false */
- } else if ( support.deleteExpando || cache != cache.window ) {
- /* jshint eqeqeq: true */
- delete cache[ id ];
-
- // When all else fails, null
- } else {
- cache[ id ] = null;
- }
-}
-
-jQuery.extend({
- cache: {},
-
- // The following elements (space-suffixed to avoid Object.prototype collisions)
- // throw uncatchable exceptions if you attempt to set expando properties
- noData: {
- "applet ": true,
- "embed ": true,
- // ...but Flash objects (which have this classid) *can* handle expandos
- "object ": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
- },
-
- hasData: function( elem ) {
- elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ];
- return !!elem && !isEmptyDataObject( elem );
- },
-
- data: function( elem, name, data ) {
- return internalData( elem, name, data );
- },
-
- removeData: function( elem, name ) {
- return internalRemoveData( elem, name );
- },
-
- // For internal use only.
- _data: function( elem, name, data ) {
- return internalData( elem, name, data, true );
- },
-
- _removeData: function( elem, name ) {
- return internalRemoveData( elem, name, true );
- }
-});
-
-jQuery.fn.extend({
- data: function( key, value ) {
- var i, name, data,
- elem = this[0],
- attrs = elem && elem.attributes;
-
- // Special expections of .data basically thwart jQuery.access,
- // so implement the relevant behavior ourselves
-
- // Gets all values
- if ( key === undefined ) {
- if ( this.length ) {
- data = jQuery.data( elem );
-
- if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) {
- i = attrs.length;
- while ( i-- ) {
-
- // Support: IE11+
- // The attrs elements can be null (#14894)
- if ( attrs[ i ] ) {
- name = attrs[ i ].name;
- if ( name.indexOf( "data-" ) === 0 ) {
- name = jQuery.camelCase( name.slice(5) );
- dataAttr( elem, name, data[ name ] );
- }
- }
- }
- jQuery._data( elem, "parsedAttrs", true );
- }
- }
-
- return data;
- }
-
- // Sets multiple values
- if ( typeof key === "object" ) {
- return this.each(function() {
- jQuery.data( this, key );
- });
- }
-
- return arguments.length > 1 ?
-
- // Sets one value
- this.each(function() {
- jQuery.data( this, key, value );
- }) :
-
- // Gets one value
- // Try to fetch any internally stored data first
- elem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : undefined;
- },
-
- removeData: function( key ) {
- return this.each(function() {
- jQuery.removeData( this, key );
- });
- }
-});
-
-
-jQuery.extend({
- queue: function( elem, type, data ) {
- var queue;
-
- if ( elem ) {
- type = ( type || "fx" ) + "queue";
- queue = jQuery._data( elem, type );
-
- // Speed up dequeue by getting out quickly if this is just a lookup
- if ( data ) {
- if ( !queue || jQuery.isArray(data) ) {
- queue = jQuery._data( elem, type, jQuery.makeArray(data) );
- } else {
- queue.push( data );
- }
- }
- return queue || [];
- }
- },
-
- dequeue: function( elem, type ) {
- type = type || "fx";
-
- var queue = jQuery.queue( elem, type ),
- startLength = queue.length,
- fn = queue.shift(),
- hooks = jQuery._queueHooks( elem, type ),
- next = function() {
- jQuery.dequeue( elem, type );
- };
-
- // If the fx queue is dequeued, always remove the progress sentinel
- if ( fn === "inprogress" ) {
- fn = queue.shift();
- startLength--;
- }
-
- if ( fn ) {
-
- // Add a progress sentinel to prevent the fx queue from being
- // automatically dequeued
- if ( type === "fx" ) {
- queue.unshift( "inprogress" );
- }
-
- // clear up the last queue stop function
- delete hooks.stop;
- fn.call( elem, next, hooks );
- }
-
- if ( !startLength && hooks ) {
- hooks.empty.fire();
- }
- },
-
- // not intended for public consumption - generates a queueHooks object, or returns the current one
- _queueHooks: function( elem, type ) {
- var key = type + "queueHooks";
- return jQuery._data( elem, key ) || jQuery._data( elem, key, {
- empty: jQuery.Callbacks("once memory").add(function() {
- jQuery._removeData( elem, type + "queue" );
- jQuery._removeData( elem, key );
- })
- });
- }
-});
-
-jQuery.fn.extend({
- queue: function( type, data ) {
- var setter = 2;
-
- if ( typeof type !== "string" ) {
- data = type;
- type = "fx";
- setter--;
- }
-
- if ( arguments.length < setter ) {
- return jQuery.queue( this[0], type );
- }
-
- return data === undefined ?
- this :
- this.each(function() {
- var queue = jQuery.queue( this, type, data );
-
- // ensure a hooks for this queue
- jQuery._queueHooks( this, type );
-
- if ( type === "fx" && queue[0] !== "inprogress" ) {
- jQuery.dequeue( this, type );
- }
- });
- },
- dequeue: function( type ) {
- return this.each(function() {
- jQuery.dequeue( this, type );
- });
- },
- clearQueue: function( type ) {
- return this.queue( type || "fx", [] );
- },
- // Get a promise resolved when queues of a certain type
- // are emptied (fx is the type by default)
- promise: function( type, obj ) {
- var tmp,
- count = 1,
- defer = jQuery.Deferred(),
- elements = this,
- i = this.length,
- resolve = function() {
- if ( !( --count ) ) {
- defer.resolveWith( elements, [ elements ] );
- }
- };
-
- if ( typeof type !== "string" ) {
- obj = type;
- type = undefined;
- }
- type = type || "fx";
-
- while ( i-- ) {
- tmp = jQuery._data( elements[ i ], type + "queueHooks" );
- if ( tmp && tmp.empty ) {
- count++;
- tmp.empty.add( resolve );
- }
- }
- resolve();
- return defer.promise( obj );
- }
-});
-var pnum = (/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/).source;
-
-var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
-
-var isHidden = function( elem, el ) {
- // isHidden might be called from jQuery#filter function;
- // in that case, element will be second argument
- elem = el || elem;
- return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem );
- };
-
-
-
-// Multifunctional method to get and set values of a collection
-// The value/s can optionally be executed if it's a function
-var access = jQuery.access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
- var i = 0,
- length = elems.length,
- bulk = key == null;
-
- // Sets many values
- if ( jQuery.type( key ) === "object" ) {
- chainable = true;
- for ( i in key ) {
- jQuery.access( elems, fn, i, key[i], true, emptyGet, raw );
- }
-
- // Sets one value
- } else if ( value !== undefined ) {
- chainable = true;
-
- if ( !jQuery.isFunction( value ) ) {
- raw = true;
- }
-
- if ( bulk ) {
- // Bulk operations run against the entire set
- if ( raw ) {
- fn.call( elems, value );
- fn = null;
-
- // ...except when executing function values
- } else {
- bulk = fn;
- fn = function( elem, key, value ) {
- return bulk.call( jQuery( elem ), value );
- };
- }
- }
-
- if ( fn ) {
- for ( ; i < length; i++ ) {
- fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) );
- }
- }
- }
-
- return chainable ?
- elems :
-
- // Gets
- bulk ?
- fn.call( elems ) :
- length ? fn( elems[0], key ) : emptyGet;
-};
-var rcheckableType = (/^(?:checkbox|radio)$/i);
-
-
-
-(function() {
- // Minified: var a,b,c
- var input = document.createElement( "input" ),
- div = document.createElement( "div" ),
- fragment = document.createDocumentFragment();
-
- // Setup
- div.innerHTML = " a";
-
- // IE strips leading whitespace when .innerHTML is used
- support.leadingWhitespace = div.firstChild.nodeType === 3;
-
- // Make sure that tbody elements aren't automatically inserted
- // IE will insert them into empty tables
- support.tbody = !div.getElementsByTagName( "tbody" ).length;
-
- // Make sure that link elements get serialized correctly by innerHTML
- // This requires a wrapper element in IE
- support.htmlSerialize = !!div.getElementsByTagName( "link" ).length;
-
- // Makes sure cloning an html5 element does not cause problems
- // Where outerHTML is undefined, this still works
- support.html5Clone =
- document.createElement( "nav" ).cloneNode( true ).outerHTML !== "<:nav>";
-
- // Check if a disconnected checkbox will retain its checked
- // value of true after appended to the DOM (IE6/7)
- input.type = "checkbox";
- input.checked = true;
- fragment.appendChild( input );
- support.appendChecked = input.checked;
-
- // Make sure textarea (and checkbox) defaultValue is properly cloned
- // Support: IE6-IE11+
- div.innerHTML = "";
- support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
-
- // #11217 - WebKit loses check when the name is after the checked attribute
- fragment.appendChild( div );
- div.innerHTML = "";
-
- // Support: Safari 5.1, iOS 5.1, Android 4.x, Android 2.3
- // old WebKit doesn't clone checked state correctly in fragments
- support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
-
- // Support: IE<9
- // Opera does not clone events (and typeof div.attachEvent === undefined).
- // IE9-10 clones events bound via attachEvent, but they don't trigger with .click()
- support.noCloneEvent = true;
- if ( div.attachEvent ) {
- div.attachEvent( "onclick", function() {
- support.noCloneEvent = false;
- });
-
- div.cloneNode( true ).click();
- }
-
- // Execute the test only if not already executed in another module.
- if (support.deleteExpando == null) {
- // Support: IE<9
- support.deleteExpando = true;
- try {
- delete div.test;
- } catch( e ) {
- support.deleteExpando = false;
- }
- }
-})();
-
-
-(function() {
- var i, eventName,
- div = document.createElement( "div" );
-
- // Support: IE<9 (lack submit/change bubble), Firefox 23+ (lack focusin event)
- for ( i in { submit: true, change: true, focusin: true }) {
- eventName = "on" + i;
-
- if ( !(support[ i + "Bubbles" ] = eventName in window) ) {
- // Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP)
- div.setAttribute( eventName, "t" );
- support[ i + "Bubbles" ] = div.attributes[ eventName ].expando === false;
- }
- }
-
- // Null elements to avoid leaks in IE.
- div = null;
-})();
-
-
-var rformElems = /^(?:input|select|textarea)$/i,
- rkeyEvent = /^key/,
- rmouseEvent = /^(?:mouse|pointer|contextmenu)|click/,
- rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
- rtypenamespace = /^([^.]*)(?:\.(.+)|)$/;
-
-function returnTrue() {
- return true;
-}
-
-function returnFalse() {
- return false;
-}
-
-function safeActiveElement() {
- try {
- return document.activeElement;
- } catch ( err ) { }
-}
-
-/*
- * Helper functions for managing events -- not part of the public interface.
- * Props to Dean Edwards' addEvent library for many of the ideas.
- */
-jQuery.event = {
-
- global: {},
-
- add: function( elem, types, handler, data, selector ) {
- var tmp, events, t, handleObjIn,
- special, eventHandle, handleObj,
- handlers, type, namespaces, origType,
- elemData = jQuery._data( elem );
-
- // Don't attach events to noData or text/comment nodes (but allow plain objects)
- if ( !elemData ) {
- return;
- }
-
- // Caller can pass in an object of custom data in lieu of the handler
- if ( handler.handler ) {
- handleObjIn = handler;
- handler = handleObjIn.handler;
- selector = handleObjIn.selector;
- }
-
- // Make sure that the handler has a unique ID, used to find/remove it later
- if ( !handler.guid ) {
- handler.guid = jQuery.guid++;
- }
-
- // Init the element's event structure and main handler, if this is the first
- if ( !(events = elemData.events) ) {
- events = elemData.events = {};
- }
- if ( !(eventHandle = elemData.handle) ) {
- eventHandle = elemData.handle = function( e ) {
- // Discard the second event of a jQuery.event.trigger() and
- // when an event is called after a page has unloaded
- return typeof jQuery !== strundefined && (!e || jQuery.event.triggered !== e.type) ?
- jQuery.event.dispatch.apply( eventHandle.elem, arguments ) :
- undefined;
- };
- // Add elem as a property of the handle fn to prevent a memory leak with IE non-native events
- eventHandle.elem = elem;
- }
-
- // Handle multiple events separated by a space
- types = ( types || "" ).match( rnotwhite ) || [ "" ];
- t = types.length;
- while ( t-- ) {
- tmp = rtypenamespace.exec( types[t] ) || [];
- type = origType = tmp[1];
- namespaces = ( tmp[2] || "" ).split( "." ).sort();
-
- // There *must* be a type, no attaching namespace-only handlers
- if ( !type ) {
- continue;
- }
-
- // If event changes its type, use the special event handlers for the changed type
- special = jQuery.event.special[ type ] || {};
-
- // If selector defined, determine special event api type, otherwise given type
- type = ( selector ? special.delegateType : special.bindType ) || type;
-
- // Update special based on newly reset type
- special = jQuery.event.special[ type ] || {};
-
- // handleObj is passed to all event handlers
- handleObj = jQuery.extend({
- type: type,
- origType: origType,
- data: data,
- handler: handler,
- guid: handler.guid,
- selector: selector,
- needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
- namespace: namespaces.join(".")
- }, handleObjIn );
-
- // Init the event handler queue if we're the first
- if ( !(handlers = events[ type ]) ) {
- handlers = events[ type ] = [];
- handlers.delegateCount = 0;
-
- // Only use addEventListener/attachEvent if the special events handler returns false
- if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
- // Bind the global event handler to the element
- if ( elem.addEventListener ) {
- elem.addEventListener( type, eventHandle, false );
-
- } else if ( elem.attachEvent ) {
- elem.attachEvent( "on" + type, eventHandle );
- }
- }
- }
-
- if ( special.add ) {
- special.add.call( elem, handleObj );
-
- if ( !handleObj.handler.guid ) {
- handleObj.handler.guid = handler.guid;
- }
- }
-
- // Add to the element's handler list, delegates in front
- if ( selector ) {
- handlers.splice( handlers.delegateCount++, 0, handleObj );
- } else {
- handlers.push( handleObj );
- }
-
- // Keep track of which events have ever been used, for event optimization
- jQuery.event.global[ type ] = true;
- }
-
- // Nullify elem to prevent memory leaks in IE
- elem = null;
- },
-
- // Detach an event or set of events from an element
- remove: function( elem, types, handler, selector, mappedTypes ) {
- var j, handleObj, tmp,
- origCount, t, events,
- special, handlers, type,
- namespaces, origType,
- elemData = jQuery.hasData( elem ) && jQuery._data( elem );
-
- if ( !elemData || !(events = elemData.events) ) {
- return;
- }
-
- // Once for each type.namespace in types; type may be omitted
- types = ( types || "" ).match( rnotwhite ) || [ "" ];
- t = types.length;
- while ( t-- ) {
- tmp = rtypenamespace.exec( types[t] ) || [];
- type = origType = tmp[1];
- namespaces = ( tmp[2] || "" ).split( "." ).sort();
-
- // Unbind all events (on this namespace, if provided) for the element
- if ( !type ) {
- for ( type in events ) {
- jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
- }
- continue;
- }
-
- special = jQuery.event.special[ type ] || {};
- type = ( selector ? special.delegateType : special.bindType ) || type;
- handlers = events[ type ] || [];
- tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" );
-
- // Remove matching events
- origCount = j = handlers.length;
- while ( j-- ) {
- handleObj = handlers[ j ];
-
- if ( ( mappedTypes || origType === handleObj.origType ) &&
- ( !handler || handler.guid === handleObj.guid ) &&
- ( !tmp || tmp.test( handleObj.namespace ) ) &&
- ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) {
- handlers.splice( j, 1 );
-
- if ( handleObj.selector ) {
- handlers.delegateCount--;
- }
- if ( special.remove ) {
- special.remove.call( elem, handleObj );
- }
- }
- }
-
- // Remove generic event handler if we removed something and no more handlers exist
- // (avoids potential for endless recursion during removal of special event handlers)
- if ( origCount && !handlers.length ) {
- if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
- jQuery.removeEvent( elem, type, elemData.handle );
- }
-
- delete events[ type ];
- }
- }
-
- // Remove the expando if it's no longer used
- if ( jQuery.isEmptyObject( events ) ) {
- delete elemData.handle;
-
- // removeData also checks for emptiness and clears the expando if empty
- // so use it instead of delete
- jQuery._removeData( elem, "events" );
- }
- },
-
- trigger: function( event, data, elem, onlyHandlers ) {
- var handle, ontype, cur,
- bubbleType, special, tmp, i,
- eventPath = [ elem || document ],
- type = hasOwn.call( event, "type" ) ? event.type : event,
- namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : [];
-
- cur = tmp = elem = elem || document;
-
- // Don't do events on text and comment nodes
- if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
- return;
- }
-
- // focus/blur morphs to focusin/out; ensure we're not firing them right now
- if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
- return;
- }
-
- if ( type.indexOf(".") >= 0 ) {
- // Namespaced trigger; create a regexp to match event type in handle()
- namespaces = type.split(".");
- type = namespaces.shift();
- namespaces.sort();
- }
- ontype = type.indexOf(":") < 0 && "on" + type;
-
- // Caller can pass in a jQuery.Event object, Object, or just an event type string
- event = event[ jQuery.expando ] ?
- event :
- new jQuery.Event( type, typeof event === "object" && event );
-
- // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)
- event.isTrigger = onlyHandlers ? 2 : 3;
- event.namespace = namespaces.join(".");
- event.namespace_re = event.namespace ?
- new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) :
- null;
-
- // Clean up the event in case it is being reused
- event.result = undefined;
- if ( !event.target ) {
- event.target = elem;
- }
-
- // Clone any incoming data and prepend the event, creating the handler arg list
- data = data == null ?
- [ event ] :
- jQuery.makeArray( data, [ event ] );
-
- // Allow special events to draw outside the lines
- special = jQuery.event.special[ type ] || {};
- if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {
- return;
- }
-
- // Determine event propagation path in advance, per W3C events spec (#9951)
- // Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
- if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {
-
- bubbleType = special.delegateType || type;
- if ( !rfocusMorph.test( bubbleType + type ) ) {
- cur = cur.parentNode;
- }
- for ( ; cur; cur = cur.parentNode ) {
- eventPath.push( cur );
- tmp = cur;
- }
-
- // Only add window if we got to document (e.g., not plain obj or detached DOM)
- if ( tmp === (elem.ownerDocument || document) ) {
- eventPath.push( tmp.defaultView || tmp.parentWindow || window );
- }
- }
-
- // Fire handlers on the event path
- i = 0;
- while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) {
-
- event.type = i > 1 ?
- bubbleType :
- special.bindType || type;
-
- // jQuery handler
- handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && jQuery._data( cur, "handle" );
- if ( handle ) {
- handle.apply( cur, data );
- }
-
- // Native handler
- handle = ontype && cur[ ontype ];
- if ( handle && handle.apply && jQuery.acceptData( cur ) ) {
- event.result = handle.apply( cur, data );
- if ( event.result === false ) {
- event.preventDefault();
- }
- }
- }
- event.type = type;
-
- // If nobody prevented the default action, do it now
- if ( !onlyHandlers && !event.isDefaultPrevented() ) {
-
- if ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) &&
- jQuery.acceptData( elem ) ) {
-
- // Call a native DOM method on the target with the same name name as the event.
- // Can't use an .isFunction() check here because IE6/7 fails that test.
- // Don't do default actions on window, that's where global variables be (#6170)
- if ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) {
-
- // Don't re-trigger an onFOO event when we call its FOO() method
- tmp = elem[ ontype ];
-
- if ( tmp ) {
- elem[ ontype ] = null;
- }
-
- // Prevent re-triggering of the same event, since we already bubbled it above
- jQuery.event.triggered = type;
- try {
- elem[ type ]();
- } catch ( e ) {
- // IE<9 dies on focus/blur to hidden element (#1486,#12518)
- // only reproducible on winXP IE8 native, not IE9 in IE8 mode
- }
- jQuery.event.triggered = undefined;
-
- if ( tmp ) {
- elem[ ontype ] = tmp;
- }
- }
- }
- }
-
- return event.result;
- },
-
- dispatch: function( event ) {
-
- // Make a writable jQuery.Event from the native event object
- event = jQuery.event.fix( event );
-
- var i, ret, handleObj, matched, j,
- handlerQueue = [],
- args = slice.call( arguments ),
- handlers = ( jQuery._data( this, "events" ) || {} )[ event.type ] || [],
- special = jQuery.event.special[ event.type ] || {};
-
- // Use the fix-ed jQuery.Event rather than the (read-only) native event
- args[0] = event;
- event.delegateTarget = this;
-
- // Call the preDispatch hook for the mapped type, and let it bail if desired
- if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
- return;
- }
-
- // Determine handlers
- handlerQueue = jQuery.event.handlers.call( this, event, handlers );
-
- // Run delegates first; they may want to stop propagation beneath us
- i = 0;
- while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) {
- event.currentTarget = matched.elem;
-
- j = 0;
- while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) {
-
- // Triggered event must either 1) have no namespace, or
- // 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace).
- if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) {
-
- event.handleObj = handleObj;
- event.data = handleObj.data;
-
- ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler )
- .apply( matched.elem, args );
-
- if ( ret !== undefined ) {
- if ( (event.result = ret) === false ) {
- event.preventDefault();
- event.stopPropagation();
- }
- }
- }
- }
- }
-
- // Call the postDispatch hook for the mapped type
- if ( special.postDispatch ) {
- special.postDispatch.call( this, event );
- }
-
- return event.result;
- },
-
- handlers: function( event, handlers ) {
- var sel, handleObj, matches, i,
- handlerQueue = [],
- delegateCount = handlers.delegateCount,
- cur = event.target;
-
- // Find delegate handlers
- // Black-hole SVG