#66 Migrate frontend to fedora-bootstrap
Merged 6 years ago by frantisekz. Opened 7 years ago by frantisekz.
fedora-qa/ frantisekz/blockerbugs develop  into  develop

@@ -22,7 +22,7 @@ 

  #   Ilgiz Islamgulov <ilgizisl@gmail.com>

  import logging

  

- from flask import ext, flash, request, redirect, url_for

+ from flask import flash, request, redirect, url_for

  from flask_admin.babel import gettext

  import flask_admin

  import wtforms

empty or binary file added
@@ -1,371 +0,0 @@ 

- /* Artfully masterminded by ZURB  */

- /* line 6, ../../../sass/app.scss */

- .fedora-preheader {

-   -webkit-box-sizing: content-box;

-   -moz-box-sizing: content-box;

-   box-sizing: content-box;

-   width: 100% !important;

-   position: relative;

-   background: white url(../img/repeater.png) 0 100% repeat-x;

-   display: block;

-   color: black;

- }

- 

- /* line 15, ../../../sass/app.scss */

- .fedora-preheader a {

-   color: #000;

- }

- 

- /* line 19, ../../../sass/app.scss */

- .fedora-header {

-   display: block;

-   text-indent: -9999px;

-   background: url(../img/blockerbugs-logo-light.png) 10px 50% no-repeat;

-   height: 73px;

-   width: 175px;

-   overflow: hidden;

-   text-decoration: none;

- }

- 

- /* line 29, ../../../sass/app.scss */

- .fedora-preheader-staging {

-   -webkit-box-sizing: content-box;

-   -moz-box-sizing: content-box;

-   box-sizing: content-box;

-   width: 100% !important;

-   position: relative;

-   background: white url(../img/repeater-stg.png) 0 100% repeat-x;

-   display: block;

-   color: black;

- }

- 

- /* line 38, ../../../sass/app.scss */

- .fedora-header-staging {

-   display: block;

-   text-indent: -9999px;

-   background: url(../img/blockerbugs-logo-light-stg.png) 10px 50% no-repeat;

-   height: 73px;

-   width: 175px;

-   overflow: hidden;

-   text-decoration: none;

- }

- 

- /* line 48, ../../../sass/app.scss */

- .fedora-prefooter {

-   font: normal 0.8em/1.5 sans-serif;

-   text-align: center;

-   background: white;

-   padding: 20px;

- }

- 

- /* line 55, ../../../sass/app.scss */

- .fedora-footer {

-   text-align: center;

-   background: white url(../img/line-bottom.png) 0 0 repeat-x;

-   color: #4D4D4D;

- }

- 

- /* line 61, ../../../sass/app.scss */

- .login-header {

-   height: 73px;

- }

- 

- /* line 70, ../../../sass/app.scss */

- .login-link {

-   vertical-align: text-bottom;

-   position: absolute;

-   bottom: 10px;

- }

- 

- /* overriding specific ids */

- /* line 78, ../../../sass/app.scss */

- #main-info ul {

-   list-style-position: inside;

- }

- 

- /* icons */

- /* line 83, ../../../sass/app.scss */

- .foundicon-idea.yellow {

-   color: #e59728;

- }

- 

- /* line 88, ../../../sass/app.scss */

- .foundicon-refresh.green {

-   color: #61b921;

- }

- 

- /* line 91, ../../../sass/app.scss */

- .needinfo {

-   font-weight: bold;

-   color: #885aab;

-   font-size: 17px;

- }

- 

- /* line 97, ../../../sass/app.scss */

- .menu-container {

-   padding: 10px 0px 10px 0px;

- }

- 

- /* sub-menu */

- /* line 102, ../../../sass/app.scss */

- .sub-menu {

-   padding: 5px 0px 10px 0px;

-   margin: 0;

-   display: block;

-   text-align: center;

-   height: 24px;

- }

- 

- /* line 111, ../../../sass/app.scss */

- .sub-menu ul {

-   background: none;

-   padding: 0;

-   margin: 0 auto;

-   float: none;

-   display: inline-table;

-   border-radius: 10px;

- }

- 

- /* line 120, ../../../sass/app.scss */

- .sub-menu ul li {

-   float: left;

-   background: none;

-   margin-right: 1px;

-   display: inline;

- }

- 

- /* line 127, ../../../sass/app.scss */

- .sub-menu li a:link, .sub-menu li a:visited {

-   font-size: 14px;

-   display: block;

-   color: #3c6eb4;

-   padding: 1.4px 9.33333px;

-   text-decoration: none;

-   text-transform: capitalize;

- }

- 

- /* line 136, ../../../sass/app.scss */

- .sub-menu a.active:link, a.active:active, a.active:visited {

-   color: #fff !important;

-   text-shadow: none;

-   background: #3c6eb4;

-   border-radius: 10px;

-   font-weight: bold;

- }

- 

- /* line 144, ../../../sass/app.scss */

- .sub-menu li a:hover {

-   cursor: pointer;

-   color: #fff;

-   text-shadow: none;

-   border-radius: 10px;

-   background: #8c8c8c;

- }

- 

- /* menu bar */

- /* line 154, ../../../sass/app.scss */

- .menu-bar {

-   padding: 5px 0px 10px 0px;

-   margin: 0;

-   display: block;

-   overflow: hidden;

-   text-align: center;

-   height: 40px;

-   /* Rounded Corners */

-   border-radius: 10px;

- }

- 

- /* line 166, ../../../sass/app.scss */

- .menu-bar ul {

-   background: #ababab;

-   padding: 0;

-   margin: 0 auto;

-   float: none;

-   display: inline-table;

-   border-radius: 10px;

- }

- 

- /* line 175, ../../../sass/app.scss */

- .menu-bar ul li {

-   float: left;

-   background: none;

-   margin-right: 1px;

-   display: inline;

- }

- 

- /* line 182, ../../../sass/app.scss */

- .menu-bar li a:link, .menu-bar li a:visited {

-   font-size: 15px;

-   font-weight: bold;

-   display: block;

-   color: #262626;

-   padding: 3.75px 14px;

-   text-decoration: none;

-   text-transform: capitalize;

-   /* CSS3 Text Shadow */

-   text-shadow: 0px 1px 1px #dedede;

- }

- 

- /* line 195, ../../../sass/app.scss */

- .menu-bar li:first-child a {

-   /* Rounded Corners */

-   border-radius: 10px 0px 0px 10px;

- }

- 

- /* line 200, ../../../sass/app.scss */

- .menu-bar li:last-child a {

-   /* Rounded Corners */

-   border-radius: 0px 10px 10px 0px;

- }

- 

- /* line 205, ../../../sass/app.scss */

- .menu-bar li a:hover {

-   cursor: pointer;

-   color: #fff;

-   text-shadow: none;

-   background: #8c8c8c;

- }

- 

- /* line 213, ../../../sass/app.scss */

- .menu-bar a.active:link, a.active:active, a.active:visited {

-   color: #fff !important;

-   text-shadow: none;

-   background: #3c6eb4;

- }

- 

- /* info container */

- /* line 220, ../../../sass/app.scss */

- #info-container {

-   padding: 10px 0px 5px 0px;

- }

- 

- /* sortable tables */

- /* line 225, ../../../sass/app.scss */

- table.tablesorter {

-   /*background-color: #CDCDCD;*/

-   background-color: #d9d9d9;

-   margin: 10px 0pt 15px;

-   font-size: 10pt;

-   width: 100%;

-   text-align: left;

-   border: 1px none #294172;

-   border-collapse: collapse;

- }

- 

- /* line 238, ../../../sass/app.scss */

- table.tablesorter thead tr th, table.tablesorter tfoot tr th {

-   /*background-color: #e6EEEE;*/

-   /*background-color: lighten($secondaryColor, 30%);*/

-   background-color: #bacde8;

-   font-size: 8pt;

-   padding: 4px;

- }

- 

- /* line 247, ../../../sass/app.scss */

- table.tablesorter thead tr .header {

-   background-image: url(../img/bg.gif);

-   background-repeat: no-repeat;

-   background-position: center right;

-   cursor: pointer;

- }

- 

- /* line 254, ../../../sass/app.scss */

- table.tablesorter tbody td {

-   padding: 4px;

-   vertical-align: top;

-   word-wrap: break-word;

-   border-left: 0;

-   border-right: 0;

- }

- 

- /* line 263, ../../../sass/app.scss */

- table.tablesorter td:nth-child(1) {

-   white-space: nowrap;

- }

- 

- /* line 267, ../../../sass/app.scss */

- table.tablesorter tr {

-   border-left: 0;

-   border-right: 0;

- }

- 

- /* line 272, ../../../sass/app.scss */

- table.tablesorter tr:nth-child(even) {

-   background-color: #e1e9f5;

- }

- 

- /* line 276, ../../../sass/app.scss */

- table.tablesorter tr:nth-child(odd) {

-   background-color: white;

- }

- 

- /* line 280, ../../../sass/app.scss */

- table.tablesorter tbody tr.even td {

-   background-color: white;

- }

- 

- /* line 285, ../../../sass/app.scss */

- table.tablesorter thead tr .headerSortUp {

-   background-image: url(../img/asc.gif);

- }

- 

- /* line 289, ../../../sass/app.scss */

- table.tablesorter tbody tr.newbug td {

-   background-color: #fbff84;

- }

- 

- /* line 293, ../../../sass/app.scss */

- table.tablesorter tbody tr td.modifiedstate {

-   font-weight: bold;

- }

- 

- /* line 297, ../../../sass/app.scss */

- table.tablesorter tbody tr td.bugid {

-   font-weight: bold;

-   font-size: 12pt;

- }

- 

- /* tooltip tables */

- /* line 303, ../../../sass/app.scss */

- table.tiptable {

-   /*background-color: #CDCDCD;*/

-   background-color: #d9d9d9;

-   margin: 10px 0pt 15px;

-   font-size: 8pt;

-   width: 100%;

-   text-align: left;

-   border-collapse: collapse;

- }

- 

- /* line 314, ../../../sass/app.scss */

- table.tiptable thead tr th, table.tiptable tfoot tr th {

-   background-color: #bacde8;

-   font-size: 8pt;

-   padding: 4px;

- }

- 

- /* line 321, ../../../sass/app.scss */

- table.tiptable thead tr .header {

-   background-image: url(../img/bg.gif);

-   background-repeat: no-repeat;

-   background-position: center right;

-   cursor: pointer;

- }

- 

- /* line 328, ../../../sass/app.scss */

- table.tiptable tbody td {

-   font-size: 8pt;

-   padding: 4px;

-   vertical-align: top;

-   word-wrap: break-word;

- }

- 

- /* line 336, ../../../sass/app.scss */

- table.tiptable tr:nth-child(even) {

-   background-color: #e1e9f5;

- }

- 

- /* line 340, ../../../sass/app.scss */

- table.tiptable tr:nth-child(odd) {

-   background-color: white;

- }

@@ -0,0 +1,178 @@ 

+ html {

+   position: relative;

+   min-height: 100%;

+   overflow-y: scroll; }

+ 

+ body {

+   margin-bottom: 200px;

+   background-color: #fff;

+   font-size: 0.9rem; }

+ 

+ .masthead {

+   padding-bottom: 0;

+   padding-top: 0; }

+ 

+ .fedora-preheader {

+   box-sizing: content-box;

+   width: 100% !important;

+   position: relative;

+   z-index: 1;

+   display: block;

+   color: black; }

+ 

+ .fedora-preheader a {

+   color: #000; }

+ 

+ .fedora-header {

+   display: block;

+   text-indent: -9999px;

+   background: url(../img/blockerbugs-logo-light.png) no-repeat;

+   background-size: 100%;

+   background-position: center;

+   height: 40px;

+   width: 175px;

+   overflow: hidden;

+   text-decoration: none; }

+ 

+ .login-header {

+   display: flex;

+   align-items: center;

+   justify-content: center;

+   height: 100%; }

+ 

+ .login-link a {

+   color: rgba(0, 0, 0, 0.5); }

+ 

+ .login-link a:hover {

+   color: rgba(0, 0, 0, 0.7); }

+ 

+ #main-nav button a {

+   color: #333; }

+ 

+ .navbar-no-bottom-padding {

+   padding: 0.5rem 1rem 0rem 1rem; }

+ 

+ .btn-primary a {

+   color: #eee !important; }

+ 

+ .btn-group > .btn.active {

+   z-index: 0; }

+ 

+ #main-nav {

+   padding-top: 2em; }

+ 

+ #secondary-nav {

+   padding-top: 0.75em;

+   padding-bottom: 1.5em; }

+ 

+ #secondary-nav .btn-group a {

+   font-size: 1em; }

+ 

+ table.tablesorter thead tr .headerSortUp {

+   background-image: url(../img/asc.gif); }

+ 

+ .thead-dark th {

+   color: #55595c !important;

+   border: none !important;

+   background-image: linear-gradient(to bottom, #eee 0, #ddd 100%) !important; }

+ 

+ .btn-light {

+   background-color: white; }

+ 

+ .btn-light .active {

+   background-color: #ddd !important; }

+ 

+ table.tablesorter tr:nth-child(even) {

+   background-color: #f7f7f9; }

+ 

+ table.tablesorter tr:nth-child(odd) {

+   background-color: white; }

+ 

+ .btn-bb-light {

+   background-color: #dae0e5;

+   border-color: #d3d9df; }

+ 

+ .needinfo {

+   font-weight: bold;

+   color: #885aab;

+   font-size: 17px; }

+ 

+ /* Updates UI */

+ .qtip {

+   max-width: unset;

+   width: 500px; }

+ 

+ .qtip-content {

+   padding: 5px 19px; }

+ 

+ .qtip-default, .qtip-titlebar {

+   background-color: white; }

+ 

+ .table th, .table td {

+   padding: 0.25rem; }

+ 

+ .tiptable {

+   font-size: 1.3em;

+   width: 100%; }

+ 

+ .footer {

+   position: absolute;

+   display: flex;

+   align-items: center;

+   justify-content: center;

+   bottom: 0;

+   width: 100%;

+   height: 100px;

+   vertical-align: middle; }

+ 

+ .fedora-prefooter {

+   color: #818a91; }

+ 

+ textarea {

+   width: 100%;

+   height: 150px; }

+ 

+ fieldset {

+   border: 1px solid #dae0e5 !important;

+   border-radius: 4px;

+   padding: 1em; }

+ 

+ fieldset legend {

+   width: unset !important;

+   font-size: 1em;

+   margin-left: 1em;

+   padding-left: 2px;

+   padding-right: 2px;

+   font-weight: 600; }

+ 

+ form label {

+   font-weight: 600; }

+ 

+ .big-checkbox {

+   width: 24px;

+   height: 24px; }

+ 

+ .alert {

+   margin-top: 1em !important; }

+ 

+ /* icons */

+ .foundicon-idea.yellow {

+   color: #e59728; }

+ 

+ .foundicon-refresh.green {

+   color: #61b921; }

+ 

+ .z-fix {

+   z-index: -1; }

+ 

+ .no-padding {

+   padding: 0; }

+ 

+ @media (max-width: 991px) {

+   #navbarNavDropdown {

+     background-color: #ddd; } }

+ @media (min-width: 992px) {

+   #height-fix {

+     height: 40px; } }

+ 

+ /*# sourceMappingURL=app-bootstrap.css.map */

The added file is too large to be shown here, see it at: blockerbugs/static/css/fedora-bootstrap.css
@@ -1,39 +1,34 @@ 

- /*! qTip2 - Pretty powerful tooltips - v2.0.0 - 2012-09-04

- * http://craigsworks.com/projects/qtip2/

- * Copyright (c) 2012 Craig Michael Thompson; Licensed MIT, GPL */

- 

- /* Fluid class for determining actual width in IE */

- #qtip-rcontainer{

- 	position: absolute;

- 	left: -28000px;

- 	top: -28000px;

- 	display: block;

- 	visibility: hidden;

- }

- 

- 	/* Fluid class for determining actual width in IE */

- 	#qtip-rcontainer .ui-tooltip{

- 		display: block !important;

- 		visibility: hidden !important;

- 		position: static !important;

- 		float: left !important;

- 	}

- 

- /* Core qTip styles */

- .ui-tooltip, .qtip{

+ /*

+  * qTip2 - Pretty powerful tooltips - v3.0.3

+  * http://qtip2.com

+  *

+  * Copyright (c) 2016 

+  * Released under the MIT licenses

+  * http://jquery.org/license

+  *

+  * Date: Wed May 11 2016 10:31 GMT+0100+0100

+  * Plugins: tips modal viewport svg imagemap ie6

+  * Styles: core basic css3

+  */

+  .qtip{

  	position: absolute;

  	left: -28000px;

  	top: -28000px;

  	display: none;

  

- 	max-width: 500px;

- 	min-width: 100px;

- 	

+ 	max-width: 280px;

+ 	min-width: 50px;

+ 

  	font-size: 10.5px;

  	line-height: 12px;

+ 

+ 	direction: ltr;

+ 

+ 	box-shadow: none;

+ 	padding: 0;

  }

  

- 	.ui-tooltip-content{

+ 	.qtip-content{

  		position: relative;

  		padding: 5px 9px;

  		overflow: hidden;
@@ -42,9 +37,8 @@ 

  		word-wrap: break-word;

  	}

  

- 	.ui-tooltip-titlebar{

+ 	.qtip-titlebar{

  		position: relative;

- 		min-height: 14px;

  		padding: 5px 35px 5px 10px;

  		overflow: hidden;

  
@@ -52,42 +46,46 @@ 

  		font-weight: bold;

  	}

  

- 	.ui-tooltip-titlebar + .ui-tooltip-content{ border-top-width: 0 !important; }

+ 	.qtip-titlebar + .qtip-content{ border-top-width: 0 !important; }

  

- 		/* Default close button class */

- 		.ui-tooltip-titlebar .ui-state-default{

- 			position: absolute;

- 			right: 4px;

- 			top: 50%;

- 			margin-top: -9px;

+ 	/* Default close button class */

+ 	.qtip-close{

+ 		position: absolute;

+ 		right: -9px; top: -9px;

+ 		z-index: 11; /* Overlap .qtip-tip */

  

- 			cursor: pointer;

- 			outline: medium none;

+ 		cursor: pointer;

+ 		outline: medium none;

+ 

+ 		border: 1px solid transparent;

+ 	}

  

- 			border-width: 1px;

- 			border-style: solid;

+ 		.qtip-titlebar .qtip-close{

+ 			right: 4px; top: 50%;

+ 			margin-top: -9px;

  		}

- 		

- 		* html .ui-tooltip-titlebar .ui-state-default{ top: 16px; } /* IE fix */

  

- 		.ui-tooltip-titlebar .ui-icon,

- 		.ui-tooltip-icon .ui-icon{

+ 		* html .qtip-titlebar .qtip-close{ top: 16px; } /* IE fix */

+ 

+ 		.qtip-titlebar .ui-icon,

+ 		.qtip-icon .ui-icon{

  			display: block;

  			text-indent: -1000em;

  			direction: ltr;

  		}

  

- 		.ui-tooltip-icon, .ui-tooltip-icon .ui-icon{

+ 		.qtip-icon, .qtip-icon .ui-icon{

  			-moz-border-radius: 3px;

  			-webkit-border-radius: 3px;

  			border-radius: 3px;

  			text-decoration: none;

  		}

  

- 			.ui-tooltip-icon .ui-icon{

+ 			.qtip-icon .ui-icon{

  				width: 18px;

  				height: 14px;

  

+ 				line-height: 14px;

  				text-align: center;

  				text-indent: 0;

  				font: normal bold 10px/13px Tahoma,sans-serif;
@@ -96,171 +94,173 @@ 

  				background: transparent none no-repeat -100em -100em;

  			}

  

- 

  /* Applied to 'focused' tooltips e.g. most recently displayed/interacted with */

- .ui-tooltip-focus{}

+ .qtip-focus{}

  

  /* Applied on hover of tooltips i.e. added/removed on mouseenter/mouseleave respectively */

- .ui-tooltip-hover{}

+ .qtip-hover{}

  

  /* Default tooltip style */

- .ui-tooltip-default{

- 	border-width: 1px;

- 	border-style: solid;

- 	border-color: #F1D031;

+ .qtip-default{

+ 	border: 1px solid #F1D031;

  

  	background-color: #FFFFA3;

  	color: #555;

  }

  

- 	.ui-tooltip-default .ui-tooltip-titlebar{

+ 	.qtip-default .qtip-titlebar{

  		background-color: #FFEF93;

  	}

  

- 	.ui-tooltip-default .ui-tooltip-icon{

+ 	.qtip-default .qtip-icon{

  		border-color: #CCC;

  		background: #F1F1F1;

  		color: #777;

  	}

- 	

- 	.ui-tooltip-default .ui-tooltip-titlebar .ui-state-hover{

+ 

+ 	.qtip-default .qtip-titlebar .qtip-close{

  		border-color: #AAA;

  		color: #111;

  	}

  

  

  /*! Light tooltip style */

- .ui-tooltip-light{

+ .qtip-light{

  	background-color: white;

  	border-color: #E2E2E2;

  	color: #454545;

  }

  

- 	.ui-tooltip-light .ui-tooltip-titlebar{

+ 	.qtip-light .qtip-titlebar{

  		background-color: #f1f1f1;

  	}

  

  

  /*! Dark tooltip style */

- .ui-tooltip-dark{

+ .qtip-dark{

  	background-color: #505050;

  	border-color: #303030;

  	color: #f3f3f3;

  }

  

- 	.ui-tooltip-dark .ui-tooltip-titlebar{

+ 	.qtip-dark .qtip-titlebar{

  		background-color: #404040;

  	}

  

- 	.ui-tooltip-dark .ui-tooltip-icon{

+ 	.qtip-dark .qtip-icon{

  		border-color: #444;

  	}

  

- 	.ui-tooltip-dark .ui-tooltip-titlebar .ui-state-hover{

+ 	.qtip-dark .qtip-titlebar .ui-state-hover{

  		border-color: #303030;

  	}

  

  

  /*! Cream tooltip style */

- .ui-tooltip-cream{

+ .qtip-cream{

  	background-color: #FBF7AA;

  	border-color: #F9E98E;

  	color: #A27D35;

  }

  

- 	.ui-tooltip-cream .ui-tooltip-titlebar{

+ 	.qtip-cream .qtip-titlebar{

  		background-color: #F0DE7D;

  	}

  

- 	.ui-tooltip-cream .ui-state-default .ui-tooltip-icon{

+ 	.qtip-cream .qtip-close .qtip-icon{

  		background-position: -82px 0;

  	}

  

  

  /*! Red tooltip style */

- .ui-tooltip-red{

+ .qtip-red{

  	background-color: #F78B83;

  	border-color: #D95252;

  	color: #912323;

  }

  

- 	.ui-tooltip-red .ui-tooltip-titlebar{

+ 	.qtip-red .qtip-titlebar{

  		background-color: #F06D65;

  	}

  

- 	.ui-tooltip-red .ui-state-default .ui-tooltip-icon{

+ 	.qtip-red .qtip-close .qtip-icon{

  		background-position: -102px 0;

  	}

  

- 	.ui-tooltip-red .ui-tooltip-icon{

+ 	.qtip-red .qtip-icon{

  		border-color: #D95252;

  	}

  

- 	.ui-tooltip-red .ui-tooltip-titlebar .ui-state-hover{

+ 	.qtip-red .qtip-titlebar .ui-state-hover{

  		border-color: #D95252;

  	}

  

  

  /*! Green tooltip style */

- .ui-tooltip-green{

+ .qtip-green{

  	background-color: #CAED9E;

  	border-color: #90D93F;

  	color: #3F6219;

  }

  

- 	.ui-tooltip-green .ui-tooltip-titlebar{

+ 	.qtip-green .qtip-titlebar{

  		background-color: #B0DE78;

  	}

  

- 	.ui-tooltip-green .ui-state-default .ui-tooltip-icon{

+ 	.qtip-green .qtip-close .qtip-icon{

  		background-position: -42px 0;

  	}

  

  

  /*! Blue tooltip style */

- .ui-tooltip-blue{

+ .qtip-blue{

  	background-color: #E5F6FE;

  	border-color: #ADD9ED;

  	color: #5E99BD;

  }

  

- 	.ui-tooltip-blue .ui-tooltip-titlebar{

+ 	.qtip-blue .qtip-titlebar{

  		background-color: #D0E9F5;

  	}

  

- 	.ui-tooltip-blue .ui-state-default .ui-tooltip-icon{

+ 	.qtip-blue .qtip-close .qtip-icon{

  		background-position: -2px 0;

  	}

  

  

- /* Add shadows to your tooltips in: FF3+, Chrome 2+, Opera 10.6+, IE9+, Safari 2+ */

- .ui-tooltip-shadow{

+ .qtip-shadow{

  	-webkit-box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15);

  	-moz-box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15);

  	box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15);

  }

  

  /* Add rounded corners to your tooltips in: FF3+, Chrome 2+, Opera 10.6+, IE9+, Safari 2+ */

- .ui-tooltip-rounded,

- .ui-tooltip-tipsy,

- .ui-tooltip-bootstrap{

+ .qtip-rounded,

+ .qtip-tipsy,

+ .qtip-bootstrap{

  	-moz-border-radius: 5px;

  	-webkit-border-radius: 5px;

  	border-radius: 5px;

  }

  

+ .qtip-rounded .qtip-titlebar{

+ 	-moz-border-radius: 4px 4px 0 0;

+ 	-webkit-border-radius: 4px 4px 0 0;

+ 	border-radius: 4px 4px 0 0;

+ }

+ 

  /* Youtube tooltip style */

- .ui-tooltip-youtube{

+ .qtip-youtube{

  	-moz-border-radius: 2px;

  	-webkit-border-radius: 2px;

  	border-radius: 2px;

- 	

+ 

  	-webkit-box-shadow: 0 0 3px #333;

  	-moz-box-shadow: 0 0 3px #333;

  	box-shadow: 0 0 3px #333;

  

  	color: white;

- 	border-width: 0;

+ 	border: 0 solid transparent;

  

  	background: #4A4A4A;

  	background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0,#4A4A4A),color-stop(100%,black));
@@ -270,30 +270,30 @@ 

  	background-image: -o-linear-gradient(top,#4A4A4A 0,black 100%);

  }

  

- 	.ui-tooltip-youtube .ui-tooltip-titlebar{

+ 	.qtip-youtube .qtip-titlebar{

  		background-color: #4A4A4A;

  		background-color: rgba(0,0,0,0);

  	}

- 	

- 	.ui-tooltip-youtube .ui-tooltip-content{

+ 

+ 	.qtip-youtube .qtip-content{

  		padding: .75em;

  		font: 12px arial,sans-serif;

- 		

+ 

  		filter: progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#4a4a4a,EndColorStr=#000000);

  		-ms-filter: "progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#4a4a4a,EndColorStr=#000000);";

  	}

  

- 	.ui-tooltip-youtube .ui-tooltip-icon{

+ 	.qtip-youtube .qtip-icon{

  		border-color: #222;

  	}

  

- 	.ui-tooltip-youtube .ui-tooltip-titlebar .ui-state-hover{

+ 	.qtip-youtube .qtip-titlebar .ui-state-hover{

  		border-color: #303030;

  	}

  

  

  /* jQuery TOOLS Tooltip style */

- .ui-tooltip-jtools{

+ .qtip-jtools{

  	background: #232323;

  	background: rgba(0, 0, 0, 0.7);

  	background-image: -webkit-gradient(linear, left top, left bottom, from(#717171), to(#232323));
@@ -315,34 +315,34 @@ 

  }

  

  	/* IE Specific */

- 	.ui-tooltip-jtools .ui-tooltip-titlebar{

+ 	.qtip-jtools .qtip-titlebar{

  		background-color: transparent;

  		filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171,endColorstr=#4A4A4A);

  		-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171,endColorstr=#4A4A4A)";

  	}

- 	.ui-tooltip-jtools .ui-tooltip-content{

+ 	.qtip-jtools .qtip-content{

  		filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A,endColorstr=#232323);

  		-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A,endColorstr=#232323)";

  	}

  

- 	.ui-tooltip-jtools .ui-tooltip-titlebar,

- 	.ui-tooltip-jtools .ui-tooltip-content{

+ 	.qtip-jtools .qtip-titlebar,

+ 	.qtip-jtools .qtip-content{

  		background: transparent;

  		color: white;

  		border: 0 dashed transparent;

  	}

  

- 	.ui-tooltip-jtools .ui-tooltip-icon{

+ 	.qtip-jtools .qtip-icon{

  		border-color: #555;

  	}

  

- 	.ui-tooltip-jtools .ui-tooltip-titlebar .ui-state-hover{

+ 	.qtip-jtools .qtip-titlebar .ui-state-hover{

  		border-color: #333;

  	}

  

  

  /* Cluetip style */

- .ui-tooltip-cluetip{

+ .qtip-cluetip{

  	-webkit-box-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4);

  	-moz-box-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4);

  	box-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4);
@@ -352,24 +352,24 @@ 

  	border: 0 dashed transparent;

  }

  

- 	.ui-tooltip-cluetip .ui-tooltip-titlebar{

+ 	.qtip-cluetip .qtip-titlebar{

  		background-color: #87876A;

  		color: white;

  		border: 0 dashed transparent;

  	}

- 	

- 	.ui-tooltip-cluetip .ui-tooltip-icon{

+ 

+ 	.qtip-cluetip .qtip-icon{

  		border-color: #808064;

  	}

- 	

- 	.ui-tooltip-cluetip .ui-tooltip-titlebar .ui-state-hover{

+ 

+ 	.qtip-cluetip .qtip-titlebar .ui-state-hover{

  		border-color: #696952;

  		color: #696952;

  	}

  

  

  /* Tipsy style */

- .ui-tooltip-tipsy{

+ .qtip-tipsy{

  	background: black;

  	background: rgba(0, 0, 0, .87);

  
@@ -383,27 +383,27 @@ 

  	text-shadow: 0 1px black;

  }

  

- 	.ui-tooltip-tipsy .ui-tooltip-titlebar{

- 		padding: 6px 35px 0 10;

+ 	.qtip-tipsy .qtip-titlebar{

+ 		padding: 6px 35px 0 10px;

  		background-color: transparent;

  	}

  

- 	.ui-tooltip-tipsy .ui-tooltip-content{

- 		padding: 6px 10;

+ 	.qtip-tipsy .qtip-content{

+ 		padding: 6px 10px;

  	}

- 	

- 	.ui-tooltip-tipsy .ui-tooltip-icon{

+ 

+ 	.qtip-tipsy .qtip-icon{

  		border-color: #222;

  		text-shadow: none;

  	}

  

- 	.ui-tooltip-tipsy .ui-tooltip-titlebar .ui-state-hover{

+ 	.qtip-tipsy .qtip-titlebar .ui-state-hover{

  		border-color: #303030;

  	}

  

  

  /* Tipped style */

- .ui-tooltip-tipped{

+ .qtip-tipped{

  	border: 3px solid #959FA9;

  

  	-moz-border-radius: 3px;
@@ -417,7 +417,7 @@ 

  	font-family: serif;

  }

  

- 	.ui-tooltip-tipped .ui-tooltip-titlebar{

+ 	.qtip-tipped .qtip-titlebar{

  		border-bottom-width: 0;

  

  		color: white;
@@ -431,12 +431,12 @@ 

  		-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8,endColorstr=#2E629D)";

  	}

  

- 	.ui-tooltip-tipped .ui-tooltip-icon{

+ 	.qtip-tipped .qtip-icon{

  		border: 2px solid #285589;

  		background: #285589;

  	}

  

- 		.ui-tooltip-tipped .ui-tooltip-icon .ui-icon{

+ 		.qtip-tipped .qtip-icon .ui-icon{

  			background-color: #FBFBFB;

  			color: #555;

  		}
@@ -448,53 +448,87 @@ 

   * Tested with IE 8, IE 9, Chrome 18, Firefox 9, Opera 11.

   * Does not work with IE 7.

   */

- .ui-tooltip-bootstrap{

- 	font-size: 13px;

- 	line-height: 18px;

- 

+ .qtip-bootstrap{

+ 	/** Taken from Bootstrap body */

+ 	font-size: 14px;

+ 	line-height: 20px;

  	color: #333333;

- 	background-color: #ffffff;

- 

  

+ 	/** Taken from Bootstrap .popover */

+ 	padding: 1px;

+ 	background-color: #ffffff;

  	border: 1px solid #ccc;

  	border: 1px solid rgba(0, 0, 0, 0.2);

- 

- 	*border-right-width: 2px;

- 	*border-bottom-width: 2px;

- 

- 	-webkit-border-radius: 5px;

- 	-moz-border-radius: 5px;

- 	border-radius: 5px;

- 

+ 	-webkit-border-radius: 6px;

+ 	-moz-border-radius: 6px;

+ 	border-radius: 6px;

  	-webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);

  	-moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);

  	box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);

- 

  	-webkit-background-clip: padding-box;

  	-moz-background-clip: padding;

  	background-clip: padding-box;

  }

  

- 	.ui-tooltip-bootstrap .ui-tooltip-titlebar{

- 		font-size: 18px;

- 		line-height: 22px;

- 

- 		border-bottom: 1px solid #ccc;

- 		background-color: transparent;

- 	}

- 

- 		.ui-tooltip-bootstrap .ui-tooltip-titlebar .ui-state-default{

- 			right: 9px; top: 49%;

+ 	.qtip-bootstrap .qtip-titlebar{

+ 		/** Taken from Bootstrap .popover-title */

+ 		padding: 8px 14px;

+ 		margin: 0;

+ 		font-size: 14px;

+ 		font-weight: normal;

+ 		line-height: 18px;

+ 		background-color: #f7f7f7;

+ 		border-bottom: 1px solid #ebebeb;

+ 		-webkit-border-radius: 5px 5px 0 0;

+ 		-moz-border-radius: 5px 5px 0 0;

+ 		border-radius: 5px 5px 0 0;

+ 	}

+ 

+ 		.qtip-bootstrap .qtip-titlebar .qtip-close{

+ 			/**

+ 			 * Overrides qTip2:

+ 			 * .qtip-titlebar .qtip-close{

+ 			 *   [...]

+ 			 *   right: 4px;

+ 			 *   top: 50%;

+ 			 *   [...]

+ 			 *   border-style: solid;

+ 			 * }

+ 			 */

+ 			right: 11px;

+ 			top: 45%;

  			border-style: none;

  		}

  

- 	.ui-tooltip-bootstrap .ui-tooltip-icon{

- 		background: white;

+ 	.qtip-bootstrap .qtip-content{

+ 		/** Taken from Bootstrap .popover-content */

+ 		padding: 9px 14px;

  	}

  

- 		.ui-tooltip-bootstrap .ui-tooltip-icon .ui-icon{

+ 	.qtip-bootstrap .qtip-icon{

+ 		/**

+ 		 * Overrides qTip2:

+ 		 * .qtip-default .qtip-icon {

+ 		 *   border-color: #CCC;

+ 		 *   background: #F1F1F1;

+ 		 *   color: #777;

+ 		 * }

+ 		 */

+ 		background: transparent;

+ 	}

+ 

+ 		.qtip-bootstrap .qtip-icon .ui-icon{

+ 			/**

+ 			 * Overrides qTip2:

+ 			 * .qtip-icon .ui-icon{

+ 			 *   width: 18px;

+ 			 *   height: 14px;

+ 			 * }

+ 			 */

  			width: auto;

  			height: auto;

+ 

+ 			/* Taken from Bootstrap .close */

  			float: right;

  			font-size: 20px;

  			font-weight: bold;
@@ -505,7 +539,8 @@ 

  			filter: alpha(opacity=20);

  		}

  

- 		.ui-tooltip-bootstrap .ui-tooltip-icon .ui-icon:hover{

+ 		.qtip-bootstrap .qtip-icon .ui-icon:hover{

+ 			/* Taken from Bootstrap .close:hover */

  			color: #000000;

  			text-decoration: none;

  			cursor: pointer;
@@ -515,41 +550,49 @@ 

  

  

  /* IE9 fix - removes all filters */

- .ui-tooltip:not(.ie9haxors) div.ui-tooltip-content,

- .ui-tooltip:not(.ie9haxors) div.ui-tooltip-titlebar{

+ .qtip:not(.ie9haxors) div.qtip-content,

+ .qtip:not(.ie9haxors) div.qtip-titlebar{

  	filter: none;

  	-ms-filter: none;

  }

  

  

- /* Tips plugin */

- .ui-tooltip .ui-tooltip-tip{

+ .qtip .qtip-tip{

  	margin: 0 auto;

  	overflow: hidden;

  	z-index: 10;

+ 

  }

  

- 	.ui-tooltip .ui-tooltip-tip,

- 	.ui-tooltip .ui-tooltip-tip *{

+ 	/* Opera bug #357 - Incorrect tip position

+ 	https://github.com/Craga89/qTip2/issues/367 */

+ 	x:-o-prefocus, .qtip .qtip-tip{

+ 		visibility: hidden;

+ 	}

+ 

+ 	.qtip .qtip-tip,

+ 	.qtip .qtip-tip .qtip-vml,

+ 	.qtip .qtip-tip canvas{

  		position: absolute;

- 		

- 		line-height: 0.1px !important;

- 		font-size: 0.1px !important;

- 		color: #123456;

  

+ 		color: #123456;

  		background: transparent;

  		border: 0 dashed transparent;

  	}

- 	

- 	.ui-tooltip .ui-tooltip-tip canvas{ top: 0; left: 0; }

  

+ 	.qtip .qtip-tip canvas{ top: 0; left: 0; }

+ 

+ 	.qtip .qtip-tip .qtip-vml{

+ 		behavior: url(#default#VML);

+ 		display: inline-block;

+ 		visibility: visible;

+ 	}

  

  

- /* Modal plugin */

  #qtip-overlay{

  	position: fixed;

- 	left: -10000em;

- 	top: -10000em;

+ 	left: 0; top: 0;

+ 	width: 100%; height: 100%;

  }

  

  	/* Applied to modals with show.modal.blur set to true */
@@ -568,3 +611,7 @@ 

  		-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=70)";

  	}

  

+ 

+ .qtipmodal-ie6fix{

+ 	position: absolute !important;

+ } 

\ No newline at end of file

@@ -1,1 +1,1 @@ 

- *,*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%}body{background:white;font-family:"Cantarell","sans-serif";font-weight:normal;font-style:normal;font-size:ms(0);line-height:1;color:#222;position:relative;-webkit-font-smoothing:antialiased}a img{border:none}a{color:#3c6eb4;text-decoration:none;line-height:inherit}a:hover{color:#3662a1}a:focus{color:#3662a1}p a,p a:visited{line-height:inherit}.left{float:left}.right{float:right}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.hide{display:none}.hide-override{display:none!important}.highlight{background:#ff9}#googlemap img,object,embed{max-width:none}#map_canvas embed{max-width:none}#map_canvas img{max-width:none}#map_canvas object{max-width:none}figure{margin:0}.row{width:1000px;max-width:100%;min-width:768px;margin:0 auto}.row .row{width:auto;max-width:none;min-width:0;margin:0 -15px}.row.collapse .column,.row.collapse .columns{padding:0}.row .row{width:auto;max-width:none;min-width:0;margin:0 -15px}.row .row.collapse{margin:0}.column,.columns{float:left;min-height:1px;padding:0 15px;position:relative}.column.centered,.columns.centered{float:none;margin:0 auto}[class*="column"]+[class*="column"]:last-child{float:right}[class*="column"]+[class*="column"].end{float:left}.one,.row .one{width:8.33333%}.two,.row .two{width:16.66667%}.three,.row .three{width:25%}.four,.row .four{width:33.33333%}.five,.row .five{width:41.66667%}.six,.row .six{width:50%}.seven,.row .seven{width:58.33333%}.eight,.row .eight{width:66.66667%}.nine,.row .nine{width:75%}.ten,.row .ten{width:83.33333%}.eleven,.row .eleven{width:91.66667%}.twelve,.row .twelve{width:100%}.row .offset-by-one{margin-left:8.33333%}.row .offset-by-two{margin-left:16.66667%}.row .offset-by-three{margin-left:25%}.row .offset-by-four{margin-left:33.33333%}.row .offset-by-five{margin-left:41.66667%}.row .offset-by-six{margin-left:50%}.row .offset-by-seven{margin-left:58.33333%}.row .offset-by-eight{margin-left:66.66667%}.row .offset-by-nine{margin-left:75%}.row .offset-by-ten{margin-left:83.33333%}.push-two{left:16.66667%}.pull-two{right:16.66667%}.push-three{left:25%}.pull-three{right:25%}.push-four{left:33.33333%}.pull-four{right:33.33333%}.push-five{left:41.66667%}.pull-five{right:41.66667%}.push-six{left:50%}.pull-six{right:50%}.push-seven{left:58.33333%}.pull-seven{right:58.33333%}.push-eight{left:66.66667%}.pull-eight{right:66.66667%}.push-nine{left:75%}.pull-nine{right:75%}.push-ten{left:83.33333%}.pull-ten{right:83.33333%}img{height:auto}img,object,embed{max-width:100%}img{-ms-interpolation-mode:bicubic}#map_canvas img,.map_canvas img{max-width:none!important}.row{*zoom:1}.row:before,.row:after{content:" ";display:table}.row:after{clear:both}.block-grid{display:block;overflow:hidden;padding:0}.block-grid>li{display:block;height:auto;float:left}.block-grid.one-up{margin:0}.block-grid.one-up>li{width:100%;padding:0 0 15px}.block-grid.two-up{margin:0 -15px}.block-grid.two-up>li{width:50%;padding:0 15px 15px}.block-grid.two-up>li:nth-child(2n+1){clear:both}.block-grid.three-up{margin:0 -12px}.block-grid.three-up>li{width:33.33333%;padding:0 12px 12px}.block-grid.three-up>li:nth-child(3n+1){clear:both}.block-grid.four-up{margin:0 -10px}.block-grid.four-up>li{width:25%;padding:0 10px 10px}.block-grid.four-up>li:nth-child(4n+1){clear:both}.block-grid.five-up{margin:0 -8px}.block-grid.five-up>li{width:20%;padding:0 8px 8px}.block-grid.five-up>li:nth-child(5n+1){clear:both}.block-grid.six-up{margin:0 -8px}.block-grid.six-up>li{width:16.66667%;padding:0 8px 8px}.block-grid.six-up>li:nth-child(6n+1){clear:both}.block-grid.seven-up{margin:0 -8px}.block-grid.seven-up>li{width:14.28571%;padding:0 8px 8px}.block-grid.seven-up>li:nth-child(7n+1){clear:both}.block-grid.eight-up{margin:0 -8px}.block-grid.eight-up>li{width:12.5%;padding:0 8px 8px}.block-grid.eight-up>li:nth-child(8n+1){clear:both}.block-grid.nine-up{margin:0 -8px}.block-grid.nine-up>li{width:11.11111%;padding:0 8px 8px}.block-grid.nine-up>li:nth-child(9n+1){clear:both}.block-grid.ten-up{margin:0 -8px}.block-grid.ten-up>li{width:10%;padding:0 8px 8px}.block-grid.ten-up>li:nth-child(10n+1){clear:both}.block-grid.eleven-up{margin:0 -8px}.block-grid.eleven-up>li{width:9.09091%;padding:0 8px 8px}.block-grid.eleven-up>li:nth-child(11n+1){clear:both}.block-grid.twelve-up{margin:0 -8px}.block-grid.twelve-up>li{width:8.33333%;padding:0 8px 8px}.block-grid.twelve-up>li:nth-child(12n+1){clear:both}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0;font-size:14px;direction:ltr}p{font-family:inherit;font-weight:normal;font-size:14px;line-height:1.6;margin-bottom:17px}p.lead{font-size:17.5px;line-height:1.6;margin-bottom:17px}aside p{font-size:13px;line-height:1.35;font-style:italic}h1,h2,h3,h4,h5,h6{font-family:"ComfortaaRegular","sans-serif";font-weight:normal;font-style:normal;color:#222;text-rendering:optimizeLegibility;line-height:1.1;margin-bottom:14px;margin-top:14px}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-size:60%;color:#6f6f6f;line-height:0}h1{font-size:44px}h2{font-size:37px}h3{font-size:27px}h4{font-size:23px}h5{font-size:17px}h6{font-size:14px}hr{border:solid #ddd;border-width:1px 0 0;clear:both;margin:22px 0 21px;height:0}.subheader{line-height:1.3;color:#6f6f6f;font-weight:300;margin-bottom:17px}em,i{font-style:italic;line-height:inherit}strong,b{font-weight:bold;line-height:inherit}small{font-size:60%;line-height:inherit}code{font-weight:bold;background:#ff9}ul,ol,dl{font-size:14px;line-height:1.6;margin-bottom:17px;list-style-position:outside}ul li ul,ul li ol{margin-left:20px;margin-bottom:0}ul.square,ul.circle,ul.disc{margin-left:17px}ul.square{list-style-type:square}ul.square li ul{list-style:inherit}ul.circle{list-style-type:circle}ul.circle li ul{list-style:inherit}ul.disc{list-style-type:disc}ul.disc li ul{list-style:inherit}ul.no-bullet{list-style:none}ul.large li{line-height:21px}ol{margin-left:20px}ol li ul,ol li ol{margin-left:20px;margin-bottom:0}blockquote,blockquote p{line-height:1.5;color:#6f6f6f}blockquote{margin:0 0 17px;padding:9px 20px 0 19px;border-left:1px solid #ddd}blockquote cite{display:block;font-size:13px;color:#555}blockquote cite:before{content:"\2014 \0020"}blockquote cite a,blockquote cite a:visited{color:#555}abbr,acronym{text-transform:uppercase;font-size:90%;color:#222;border-bottom:1px solid #ddd;cursor:help}abbr{text-transform:none}.print-only{display:none!important}@media print{*{background:transparent!important;color:black!important;box-shadow:none!important;text-shadow:none!important;filter:none!important;-ms-filter:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:"(" attr(href) ")"}abbr[title]:after{content:"(" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.hide-on-print{display:none!important}.print-only{display:block!important}.hide-for-print{display:none!important}.show-for-print{display:inherit!important}}form{margin:0 0 19.41641px}.row form .row{margin:0 -6px}.row form .row .column,.row form .row .columns{padding:0 6px}.row form .row.collapse{margin:0}.row form .row.collapse .column,.row form .row.collapse .columns{padding:0}label{font-size:14px;color:#4d4d4d;cursor:pointer;display:block;font-weight:500;margin-bottom:3px}label.right{float:none;text-align:right}label.inline{line-height:32px;margin:0 0 12px 0}.prefix,.postfix{display:block;position:relative;z-index:2;text-align:center;width:100%;padding-top:0;padding-bottom:0;height:32px;line-height:31px}a.button.prefix,a.button.postfix{padding-left:0;padding-right:0;text-align:center}span.prefix,span.postfix{background:#f2f2f2;border:1px solid #ccc}.prefix{left:2px;-moz-border-radius-topleft:2px;-webkit-border-top-left-radius:2px;border-top-left-radius:2px;-moz-border-radius-bottomleft:2px;-webkit-border-bottom-left-radius:2px;border-bottom-left-radius:2px;overflow:hidden}.postfix{right:2px;-moz-border-radius-topright:2px;-webkit-border-top-right-radius:2px;border-top-right-radius:2px;-moz-border-radius-bottomright:2px;-webkit-border-bottom-right-radius:2px;border-bottom-right-radius:2px}input[type="text"],input[type="password"],input[type="date"],input[type="datetime"],input[type="email"],input[type="number"],input[type="search"],input[type="tel"],input[type="time"],input[type="url"],textarea{background-color:white;font-family:inherit;border:1px solid #ccc;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);color:rgba(0,0,0,0.75);display:block;font-size:14px;margin:0 0 12px 0;padding:6px;height:32px;width:100%;-webkit-transition:all .15s linear;-moz-transition:all .15s linear;-o-transition:all .15s linear;transition:all .15s linear}input[type="text"].oversize,input[type="password"].oversize,input[type="date"].oversize,input[type="datetime"].oversize,input[type="email"].oversize,input[type="number"].oversize,input[type="search"].oversize,input[type="tel"].oversize,input[type="time"].oversize,input[type="url"].oversize,textarea.oversize{font-size:17px;padding:4px 6px}input[type="text"]:focus,input[type="password"]:focus,input[type="date"]:focus,input[type="datetime"]:focus,input[type="email"]:focus,input[type="number"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="time"]:focus,input[type="url"]:focus,textarea:focus{background:#fafafa;border-color:#b3b3b3}input[type="text"][disabled],input[type="password"][disabled],input[type="date"][disabled],input[type="datetime"][disabled],input[type="email"][disabled],input[type="number"][disabled],input[type="search"][disabled],input[type="tel"][disabled],input[type="time"][disabled],input[type="url"][disabled],textarea[disabled]{background-color:#ddd}textarea{height:auto}select{width:100%}fieldset{border:solid 1px #ddd;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;padding:12px;margin:18px 0}fieldset legend{font-weight:bold;background:white;padding:0 3px;margin:0;margin-left:-3px}.error input,input.error,.error textarea,textarea.error,.error input:focus,input.error:focus,.error textarea:focus,textarea.error:focus{border-color:#c60f13;background-color:rgba(198,15,19,0.1)}.error input:focus,input.error:focus,.error textarea:focus,textarea.error:focus{outline-color:#f5797c}.error label,label.error{color:#c60f13}.error small,small.error{display:block;padding:6px 4px;margin-top:-13px;margin-bottom:12px;background:#c60f13;color:#fff;font-size:12px;font-weight:bold;-moz-border-radius-bottomleft:2px;-webkit-border-bottom-left-radius:2px;border-bottom-left-radius:2px;-moz-border-radius-bottomright:2px;-webkit-border-bottom-right-radius:2px;border-bottom-right-radius:2px}form.custom{}form.custom span.custom{display:inline-block;width:16px;height:16px;position:relative;top:2px;border:solid 1px #ccc;background:white}form.custom span.custom.radio{-webkit-border-radius:100px;-moz-border-radius:100px;-ms-border-radius:100px;-o-border-radius:100px;border-radius:100px}form.custom span.custom.checkbox:before{content:"";display:block;line-height:.8;height:14px;width:14px;text-align:center;position:absolute;top:0;left:0;font-size:14px;color:#fff}form.custom span.custom.radio.checked:before{content:"";display:block;width:8px;height:8px;-webkit-border-radius:100px;-moz-border-radius:100px;-ms-border-radius:100px;-o-border-radius:100px;border-radius:100px;background:#222;position:relative;top:3px;left:3px}form.custom span.custom.checkbox.checked:before{content:"\00d7";color:#222}form.custom div.custom.dropdown{display:block;position:relative;width:auto;height:28px;margin-bottom:9px;margin-top:2px}form.custom div.custom.dropdown ul{overflow-y:auto;max-height:200px}form.custom div.custom.dropdown a.current{display:block;width:auto;line-height:26px;min-height:28px;padding:0;padding-left:6px;padding-right:38px;border:solid 1px #ddd;color:#141414;background-color:white;white-space:nowrap}form.custom div.custom.dropdown a.selector{position:absolute;width:27px;height:28px;display:block;right:0;top:0;border:solid 1px #ddd}form.custom div.custom.dropdown a.selector:after{content:"";display:block;content:"";display:block;width:0;height:0;border:solid 5px;border-color:#aaa transparent transparent transparent;position:absolute;left:50%;top:50%;margin-top:-2px;margin-left:-5px}form.custom div.custom.dropdown:hover a.selector:after,form.custom div.custom.dropdown.open a.selector:after{content:"";display:block;width:0;height:0;border:solid 5px;border-color:#222 transparent transparent transparent}form.custom div.custom.dropdown.open ul{display:block;z-index:10}form.custom div.custom.dropdown.small{width:134px!important}form.custom div.custom.dropdown.medium{width:254px!important}form.custom div.custom.dropdown.large{width:434px!important}form.custom div.custom.dropdown.expand{width:100%!important}form.custom div.custom.dropdown.open.small ul{width:134px!important}form.custom div.custom.dropdown.open.medium ul{width:254px!important}form.custom div.custom.dropdown.open.large ul{width:434px!important}form.custom div.custom.dropdown.open.expand ul{width:100%!important}form.custom div.custom.dropdown ul{position:absolute;width:auto;display:none;margin:0;left:0;top:27px;margin:0;padding:0;background:white;background:rgba(255,255,255,0.95);border:solid 1px #ccc}form.custom div.custom.dropdown ul li{color:#555;font-size:13px;cursor:pointer;padding:3px;padding-left:6px;padding-right:38px;min-height:18px;line-height:18px;margin:0;white-space:nowrap;list-style:none}form.custom div.custom.dropdown ul li.selected{background:#cdebf5;color:black}form.custom div.custom.dropdown ul li.selected:after{content:"\2013";position:absolute;right:10px}form.custom div.custom.dropdown ul li:hover{background-color:#cdebf5;color:black}form.custom div.custom.dropdown ul li:hover:after{content:"\2013";position:absolute;right:10px;color:#a3dbec}form.custom div.custom.dropdown ul li.selected:hover{background:#cdebf5;cursor:default;color:black}form.custom div.custom.dropdown ul li.selected:hover:after{color:black}form.custom div.custom.dropdown ul.show{display:block}form.custom .custom.disabled{background-color:#ddd}@-moz-document url-prefix(){form.custom div.custom.dropdown a.selector{height:28px}}.lt-ie9 form.custom div.custom.dropdown a.selector{height:28px}.button{width:auto;background:#3c6eb4;border:1px solid #294b7b;-webkit-box-shadow:0 1px 0 rgba(255,255,255,0.5) inset;-moz-box-shadow:0 1px 0 rgba(255,255,255,0.5) inset;box-shadow:0 1px 0 rgba(255,255,255,0.5) inset;color:white;cursor:pointer;display:inline-block;font-family:inherit;font-size:14px;font-weight:bold;line-height:1;margin:0;padding:10px 20px 11px;position:relative;text-align:center;text-decoration:none;-webkit-transition:background-color .15s ease-in-out;-moz-transition:background-color .15s ease-in-out;-o-transition:background-color .15s ease-in-out;transition:background-color .15s ease-in-out}.button:hover,.button:focus{color:white;background-color:#2f578e}.button:active{-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.2) inset;-moz-box-shadow:0 1px 0 rgba(0,0,0,0.2) inset;box-shadow:0 1px 0 rgba(0,0,0,0.2) inset}.button.large{font-size:17px;padding:15px 30px 16px}.button.medium{font-size:14px}.button.small{font-size:11px;padding:7px 14px 8px}.button.tiny{font-size:10px;padding:5px 10px 6px}.button.expand{width:100%;text-align:center}.button.primary{background-color:#3c6eb4;border:1px solid #294b7b}.button.primary:hover,.button.primary:focus{background-color:#2f578e}.button.success{background-color:#5da423;border:1px solid #396516}.button.success:hover,.button.success:focus{background-color:#457a1a}.button.alert{background-color:#c60f13;border:1px solid #7f0a0c}.button.alert:hover,.button.alert:focus{background-color:#970b0e}.button.secondary{background-color:#8c8c8c;color:black;border:1px solid #666}.button.secondary:hover,.button.secondary:focus{background-color:#737373}.button.radius{-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px}.button.round{-webkit-border-radius:1000px;-moz-border-radius:1000px;-ms-border-radius:1000px;-o-border-radius:1000px;border-radius:1000px}.button.full-width{width:100%;text-align:center;padding-left:0!important;padding-right:0!important}.button.left-align{text-align:left;text-indent:12px}.button.disabled,.button[disabled]{opacity:.6;cursor:default;background:#3c6eb4;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.button.disabled:hover,.button[disabled]:hover{background:#3c6eb4}.button.disabled.success,.button[disabled].success{background-color:#5da423}.button.disabled.success:hover,.button.disabled.success:focus,.button[disabled].success:hover,.button[disabled].success:focus{background-color:#5da423;outline:none}.button.disabled.alert,.button[disabled].alert{background-color:#c60f13}.button.disabled.alert:hover,.button.disabled.alert:focus,.button[disabled].alert:hover,.button[disabled].alert:focus{background-color:#c60f13;outline:none}.button.disabled.secondary,.button[disabled].secondary{background-color:#8c8c8c}.button.disabled.secondary:hover,.button.disabled.secondary:focus,.button[disabled].secondary:hover,.button[disabled].secondary:focus{background-color:#8c8c8c;outline:none}input[type=submit].button,button.button{-webkit-appearance:none}@-moz-document url-prefix(){button::-moz-focus-inner,input[type="reset"]::-moz-focus-inner,input[type="button"]::-moz-focus-inner,input[type="submit"]::-moz-focus-inner,input[type="file"]>input[type="button"]::-moz-focus-inner{border:none;padding:0}input[type="submit"].tiny.button{padding:3px 10px 4px}input[type="submit"].small.button{padding:5px 14px 6px}input[type="submit"].button,input[type=submit].medium.button{padding:8px 20px 9px}input[type="submit"].large.button{padding:13px 30px 14px}}.button.dropdown{position:relative;padding-right:44px}.button.dropdown.large{padding-right:60px}.button.dropdown.small{padding-right:28px}.button.dropdown.tiny{padding-right:20px}.button.dropdown:after{content:"";display:block;width:0;height:0;border:solid 6px;border-color:white transparent transparent transparent;position:absolute;top:50%;right:20px;margin-top:-2px}.button.dropdown.large:after{content:"";display:block;width:0;height:0;border:solid 7px;border-color:white transparent transparent transparent;margin-top:-3px;right:30px}.button.dropdown.small:after{content:"";display:block;width:0;height:0;border:solid 5px;border-color:white transparent transparent transparent;margin-top:-2px;right:14px}.button.dropdown.tiny:after{content:"";display:block;width:0;height:0;border:solid 4px;border-color:white transparent transparent transparent;margin-top:-1px;right:10px}.button.dropdown>ul{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:none;position:absolute;left:-1px;background:#fff;background:rgba(255,255,255,0.95);list-style:none;margin:0;padding:0;border:1px solid #ccc;border-top:none;min-width:100%;z-index:40}.button.dropdown>ul li{width:100%;cursor:pointer;padding:0;min-height:18px;line-height:18px;margin:0;white-space:nowrap;list-style:none}.button.dropdown>ul li a,.button.dropdown>ul li button{display:block;color:#555;font-size:13px;font-weight:normal;padding:6px 14px;text-align:left}.button.dropdown>ul li button{width:100%;border:inherit;background:inherit;font-family:inherit;margin:inherit;-webkit-font-smoothing:antialiased}.button.dropdown>ul li:hover,.button.dropdown>ul li:focus{background-color:#e1e9f5;color:#222}.button.dropdown>ul li.divider{min-height:0;padding:0;height:1px;margin:4px 0;background:#ededed}.button.dropdown.up>ul{border-top:1px solid #ccc;border-bottom:none}.button.dropdown ul.no-hover.show-dropdown{display:block!important}.button.dropdown:hover>ul.no-hover{display:none}.button.dropdown.split{padding:0;position:relative}.button.dropdown.split:after{display:none}.button.dropdown.split:hover,.button.dropdown.split:focus{background-color:#3c6eb4}.button.dropdown.split.alert:hover,.button.dropdown.split.alert:focus{background-color:#c60f13}.button.dropdown.split.success:hover,.button.dropdown.split.success:focus{background-color:#5da423}.button.dropdown.split.secondary:hover,.button.dropdown.split.secondary:focus{background-color:#8c8c8c}.button.dropdown.split>a{color:white;display:block;padding:10px 50px 11px 20px;padding-left:20px;padding-right:50px;-webkit-transition:background-color .15s ease-in-out;-moz-transition:background-color .15s ease-in-out;-o-transition:background-color .15s ease-in-out;transition:background-color .15s ease-in-out}.button.dropdown.split>a:hover,.button.dropdown.split>a:focus{background-color:#2f578e;-webkit-box-shadow:0 1px 0 rgba(255,255,255,0.5) inset;-moz-box-shadow:0 1px 0 rgba(255,255,255,0.5) inset;box-shadow:0 1px 0 rgba(255,255,255,0.5) inset}.button.dropdown.split.large>a{padding:15px 75px 16px 30px;padding-left:30px;padding-right:75px}.button.dropdown.split.small>a{padding:7px 35px 8px 14px;padding-left:14px;padding-right:35px}.button.dropdown.split.tiny>a{padding:5px 25px 6px 10px;padding-left:10px;padding-right:25px}.button.dropdown.split>span{background-color:#3c6eb4;position:absolute;right:0;top:0;height:100%;width:30px;border-left:1px solid #294b7b;-webkit-box-shadow:1px 1px 0 rgba(255,255,255,0.5) inset;-moz-box-shadow:1px 1px 0 rgba(255,255,255,0.5) inset;box-shadow:1px 1px 0 rgba(255,255,255,0.5) inset;-webkit-transition:background-color .15s ease-in-out;-moz-transition:background-color .15s ease-in-out;-o-transition:background-color .15s ease-in-out;transition:background-color .15s ease-in-out}.button.dropdown.split>span:hover,.button.dropdown.split>span:focus{background-color:#2f578e}.button.dropdown.split>span:after{content:"";display:block;width:0;height:0;border:solid 6px;border-color:white transparent transparent transparent;position:absolute;top:50%;left:50%;margin-left:-6px;margin-top:-2px}.button.dropdown.split.secondary>span:after{content:"";display:block;width:0;height:0;border:solid 6px;border-color:black transparent transparent transparent}.button.dropdown.split.large span{width:45px}.button.dropdown.split.small span{width:21px}.button.dropdown.split.tiny span{width:15px}.button.dropdown.split.large span:after{content:"";display:block;width:0;height:0;border:solid 7px;border-color:white transparent transparent transparent;margin-top:-3px;margin-left:-7px}.button.dropdown.split.small span:after{content:"";display:block;width:0;height:0;border:solid 4px;border-color:white transparent transparent transparent;margin-top:-1px;margin-left:-4px}.button.dropdown.split.tiny span:after{content:"";display:block;width:0;height:0;border:solid 3px;border-color:white transparent transparent transparent;margin-top:-1px;margin-left:-3px}.button.dropdown.split.alert>span{background-color:#c60f13;border-left-color:#7f0a0c}.button.dropdown.split.success>span{background-color:#5da423;border-left-color:#396516}.button.dropdown.split.secondary>span{background-color:#8c8c8c;border-left-color:#666}.button.dropdown.split.secondary>a{color:black}.button.dropdown.split.alert>a:hover,.button.dropdown.split.alert>span:hover,.button.dropdown.split.alert>a:focus,.button.dropdown.split.alert>span:focus{background-color:#970b0e}.button.dropdown.split.success>a:hover,.button.dropdown.split.success>span:hover,.button.dropdown.split.success>a:focus,.button.dropdown.split.success>span:focus{background-color:#457a1a}.button.dropdown.split.secondary>a:hover,.button.dropdown.split.secondary>span:hover,.button.dropdown.split.secondary>a:focus,.button.dropdown.split.secondary>span:focus{background-color:#737373}ul.button-group{list-style:none;padding:0;margin:0 0 12px;*zoom:1}ul.button-group:before,ul.button-group:after{content:" ";display:table}ul.button-group:after{clear:both}ul.button-group li{padding:0;margin:0 0 0 -1px;float:left}ul.button-group li:first-child{margin-left:0}ul.button-group.radius li .button,ul.button-group.radius li .button.radius,ul.button-group.radius li .button-rounded{-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0}ul.button-group.radius li:first-child .button,ul.button-group.radius li:first-child .button.radius{-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-bottomleft:3px;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px}ul.button-group.radius li:first-child .button.rounded{-moz-border-radius-topleft:1000px;-webkit-border-top-left-radius:1000px;border-top-left-radius:1000px;-moz-border-radius-bottomleft:1000px;-webkit-border-bottom-left-radius:1000px;border-bottom-left-radius:1000px}ul.button-group.radius li:last-child .button,ul.button-group.radius li:last-child .button.radius{-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-moz-border-radius-bottomright:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px}ul.button-group.radius li:last-child .button.rounded{-moz-border-radius-topright:1000px;-webkit-border-top-right-radius:1000px;border-top-right-radius:1000px;-moz-border-radius-bottomright:1000px;-webkit-border-bottom-right-radius:1000px;border-bottom-right-radius:1000px}ul.button-group.even .button{width:100%}ul.button-group.even.two-up li{width:50%}ul.button-group.even.three-up li{width:33.3%}ul.button-group.even.three-up li:first-child{width:33.4%}ul.button-group.even.four-up li{width:25%}ul.button-group.even.five-up li{width:20%}div.button-bar{overflow:hidden}div.button-bar ul.button-group{float:left;margin-right:8px}div.button-bar ul.button-group:last-child{margin-left:0}div.alert-box{display:block;padding:6px 7px 7px;font-weight:bold;font-size:14px;color:white;background-color:#3c6eb4;border:1px solid rgba(0,0,0,0.1);margin-bottom:12px;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;text-shadow:0 -1px rgba(0,0,0,0.3);position:relative}div.alert-box.success{background-color:#5da423;color:#fff;text-shadow:0 -1px rgba(0,0,0,0.3)}div.alert-box.alert{background-color:#c60f13;color:#fff;text-shadow:0 -1px rgba(0,0,0,0.3)}div.alert-box.secondary{background-color:#8c8c8c;color:black;text-shadow:0 1px rgba(255,255,255,0.3)}div.alert-box a.close{color:#333;position:absolute;right:4px;top:-1px;font-size:17px;opacity:.2;padding:4px}div.alert-box a.close:hover,div.alert-box a.close:focus{opacity:.4}.label{padding:1px 4px 2px;font-size:12px;font-weight:bold;text-align:center;text-decoration:none;line-height:1;white-space:nowrap;display:inline;position:relative;bottom:1px;color:#fff;background:#3c6eb4}.label.radius{-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px}.label.round{padding:1px 7px 2px;-webkit-border-radius:1000px;-moz-border-radius:1000px;-ms-border-radius:1000px;-o-border-radius:1000px;border-radius:1000px}.label.alert{background-color:#c60f13}.label.success{background-color:#5da423}.label.secondary{background-color:#8c8c8c;color:black}.has-tip{border-bottom:dotted 1px #ccc;cursor:help;font-weight:bold;color:#333}.has-tip:hover,.has-tip:focus{border-bottom:dotted 1px #223f68;color:#3c6eb4}.has-tip.tip-left,.has-tip.tip-right{float:none!important}.tooltip{display:none;background:black;background:rgba(0,0,0,0.85);position:absolute;color:white;font-weight:bold;font-size:12px;padding:5px;z-index:999;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px;line-height:normal}.tooltip>.nub{display:block;width:0;height:0;border:solid 5px;border-color:transparent transparent black transparent;border-color:transparent transparent rgba(0,0,0,0.85) transparent;position:absolute;top:-10px;left:10px}.tooltip.tip-override>.nub{border-color:transparent transparent black transparent!important;border-color:transparent transparent rgba(0,0,0,0.85) transparent!important;top:-10px!important}.tooltip.tip-top>.nub,.tooltip.tip-centered-top>.nub{border-color:black transparent transparent transparent;border-color:rgba(0,0,0,0.85) transparent transparent transparent;top:auto;bottom:-10px}.tooltip.tip-left,.tooltip.tip-right{float:none!important}.tooltip.tip-left>.nub{border-color:transparent transparent transparent black;border-color:transparent transparent transparent rgba(0,0,0,0.85);right:-10px;left:auto}.tooltip.tip-right>.nub{border-color:transparent black transparent transparent;border-color:transparent rgba(0,0,0,0.85) transparent transparent;right:auto;left:-10px}.tooltip.noradius{-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0}.tooltip.opened{color:#3c6eb4!important;border-bottom:dotted 1px #223f68!important}.tap-to-close{display:block;font-size:10px;font-size:1rem;color:#888;font-weight:normal}.panel{background:#f2f2f2;border:solid 1px #e6e6e6;margin:0 0 22px 0;padding:20px}.panel>:first-child{margin-top:0}.panel>:last-child{margin-bottom:0}.panel.callout{background:#3c6eb4;color:#fff;border-color:#2f578e;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.5);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.5);box-shadow:inset 0 1px 0 rgba(255,255,255,0.5)}.panel.callout a{color:#fff}.panel.callout .button{background:white;border:none;color:#3c6eb4;text-shadow:none}.panel.callout .button:hover,.panel.callout .button:focus{background:rgba(255,255,255,0.8)}.panel.radius{-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px}ul.accordion{margin:0 0 22px 0;border-bottom:1px solid #8c8c8c}ul.accordion>li{list-style:none;margin:0;padding:0;border-top:1px solid #8c8c8c}ul.accordion>li>div.title{cursor:pointer;background:#999;padding:15px;margin:0;position:relative;border-left:1px solid #8c8c8c;border-right:1px solid #8c8c8c;-webkit-transition:.15s background linear;-moz-transition:.15s background linear;-o-transition:.15s background linear;transition:.15s background linear}ul.accordion>li>div.title h1,ul.accordion>li>div.title h2,ul.accordion>li>div.title h3,ul.accordion>li>div.title h4,ul.accordion>li>div.title h5{margin:0}ul.accordion>li>div.title:after{content:"";display:block;width:0;height:0;border:solid 6px;border-color:transparent #404040 transparent transparent;position:absolute;right:15px;top:21px}ul.accordion>li .content{display:none;padding:15px}ul.accordion>li.active{border-top:3px solid #3c6eb4}ul.accordion>li.active .title{background:white;padding-top:13px}ul.accordion>li.active .title:after{content:"";display:block;width:0;height:0;border:solid 6px;border-color:#404040 transparent transparent transparent}ul.accordion>li.active .content{background:white;display:block;border-left:1px solid #8c8c8c;border-right:1px solid #8c8c8c}ul.side-nav{display:block;list-style:none;margin:0;padding:17px 0}ul.side-nav li{display:block;list-style:none;margin:0 0 7px 0}ul.side-nav li a{display:block}ul.side-nav li.active a{color:#4d4d4d;font-weight:bold}ul.side-nav li.divider{border-top:1px solid #e6e6e6;height:0;padding:0}dl.sub-nav{display:block;width:auto;overflow:hidden;margin:-4px 0 18px;margin-right:0;margin-left:-9px;padding-top:4px}dl.sub-nav dt,dl.sub-nav dd{float:left;display:inline;margin-left:9px;margin-bottom:10px}dl.sub-nav dt{color:#999;font-weight:normal}dl.sub-nav dd a{text-decoration:none;-webkit-border-radius:1000px;-moz-border-radius:1000px;-ms-border-radius:1000px;-o-border-radius:1000px;border-radius:1000px}dl.sub-nav dd.active a{font-weight:bold;background:#3c6eb4;color:#fff;padding:3px 9px;cursor:default}ul.pagination{display:block;height:24px;margin-left:-5px}ul.pagination li{float:left;display:block;height:24px;color:#999;font-size:14px;margin-left:5px}ul.pagination li a{display:block;padding:1px 7px 1px;color:#555}ul.pagination li:hover a,ul.pagination li a:focus{background:#e6e6e6}ul.pagination li.unavailable a{cursor:default;color:#999}ul.pagination li.unavailable:hover a,ul.pagination li.unavailable a:focus{background:transparent}ul.pagination li.current a{background:#3c6eb4;color:white;font-weight:bold;cursor:default}ul.pagination li.current a:hover,ul.pagination li.current a:focus{background:#3c6eb4}div.pagination-centered{text-align:center}div.pagination-centered ul>li{float:none;display:inline-block}ul.breadcrumbs{display:block;background:#999;padding:6px 10px 7px;border:1px solid #8c8c8c;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px;overflow:hidden;margin-left:0}ul.breadcrumbs li{margin:0;padding:0 12px 0 0;float:left;list-style:none}ul.breadcrumbs li a,ul.breadcrumbs li span{text-transform:uppercase;font-size:11px;font-size:1.1rem;padding-left:12px}ul.breadcrumbs li:first-child a,ul.breadcrumbs li:first-child span{padding-left:0}ul.breadcrumbs li:before{content:"/";color:#aaa}ul.breadcrumbs li:first-child:before{content:" "}ul.breadcrumbs li.current a{cursor:default;color:#333}ul.breadcrumbs li:hover a,ul.breadcrumbs li a:focus{text-decoration:underline}ul.breadcrumbs li.current:hover a,ul.breadcrumbs li.current a:focus{text-decoration:none}ul.breadcrumbs li.unavailable a{color:#999}ul.breadcrumbs li.unavailable:hover a,ul.breadcrumbs li.unavailable a:focus{text-decoration:none;color:#999;cursor:default}ul.inline-list,ul.link-list{margin:0 0 17px -22px;padding:0;list-style:none;overflow:hidden}ul.inline-list>li,ul.link-list>li{list-style:none;float:left;margin-left:22px;display:block}ul.inline-list>li>*,ul.link-list>li>*{display:block}.keystroke,kbd{font-family:"Consolas","Menlo","Courier",monospace;font-size:13px;padding:2px 4px 0;margin:0;background:#ededed;border:solid 1px #dbdbdb;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px}.th{display:block}.th img{display:block;border:solid 4px #fff;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,0.2);-moz-box-shadow:0 0 0 1px rgba(0,0,0,0.2);box-shadow:0 0 0 1px rgba(0,0,0,0.2);-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;-webkit-transition-property:box-shadow;-moz-transition-property:box-shadow;-o-transition-property:box-shadow;transition-property:box-shadow;-webkit-transition-duration:300ms;-moz-transition-duration:300ms;-o-transition-duration:300ms;transition-duration:300ms}.th:hover img,.th:focus img{-webkit-box-shadow:0 0 6px 1px rgba(60,110,180,0.5);-moz-box-shadow:0 0 6px 1px rgba(60,110,180,0.5);box-shadow:0 0 6px 1px rgba(60,110,180,0.5)}.flex-video{position:relative;padding-top:25px;padding-bottom:67.5%;height:0;margin-bottom:16px;overflow:hidden}.flex-video.widescreen{padding-bottom:57.25%}.flex-video.vimeo{padding-top:0}.flex-video iframe,.flex-video object,.flex-video embed,.flex-video video{position:absolute;top:0;left:0;width:100%;height:100%}table{background:#fff;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;margin:0 0 18px;border:1px solid #ddd}table thead,table tfoot{background:#f5f5f5}table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{display:table-cell;font-size:14px;line-height:18px;text-align:left}table thead tr th,table tfoot tr td{padding:8px 10px 9px;font-size:14px;font-weight:bold;color:#222}table thead tr th:first-child,table tfoot tr td:first-child{border-left:none}table thead tr th:last-child,table tfoot tr td:last-child{border-right:none}table tbody tr.even,table tbody tr.alt{background:#f9f9f9}table tbody tr:nth-child(even){background:#f9f9f9}table tbody tr td{color:#333;padding:9px 10px;vertical-align:top;border:none}ul.vcard{display:inline-block;margin:0 0 12px 0;border:1px solid #ddd;padding:10px}ul.vcard li{margin:0;display:block}ul.vcard li.fn{font-weight:bold;font-size:15px}p.vevent span.summary{font-weight:bold}p.vevent abbr{cursor:default;text-decoration:none;font-weight:bold;border:none;padding:0 1px}div.progress{padding:2px;margin-bottom:10px;border:1px solid #ccc;height:25px}div.progress .meter{background:#3c6eb4;height:100%;display:block;width:50%}div.progress.secondary .meter{background:#8c8c8c}div.progress.success .meter{background:#5da423}div.progress.alert .meter{background:#c60f13}div.progress.radius{-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px}div.progress.radius .meter{-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px}div.progress.round{-webkit-border-radius:1000px;-moz-border-radius:1000px;-ms-border-radius:1000px;-o-border-radius:1000px;border-radius:1000px}div.progress.round .meter{-webkit-border-radius:1000px;-moz-border-radius:1000px;-ms-border-radius:1000px;-o-border-radius:1000px;border-radius:1000px}.pricing-table{border:solid 1px #ddd;margin-left:0;margin-bottom:20px}.pricing-table *{list-style:none;line-height:1}.pricing-table .title{background-color:#ddd;padding:15px 20px;text-align:center;color:#333;font-weight:bold;font-size:16px}.pricing-table .price{background-color:#eee;padding:15px 20px;text-align:center;color:#333;font-weight:normal;font-size:20px}.pricing-table .description{background-color:white;padding:15px;text-align:center;color:#777;font-size:12px;font-weight:normal;line-height:1.4;border-bottom:dotted 1px #ddd}.pricing-table .bullet-item{background-color:white;padding:15px;text-align:center;color:#333;font-size:14px;font-weight:normal;border-bottom:dotted 1px #ddd}.pricing-table .cta-button{background-color:whitesmoke;text-align:center;padding:20px}.fedora-preheader{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;width:100%!important;position:relative;background:white url(../img/repeater.png) 0 100% repeat-x;display:block;color:black}.fedora-preheader a{color:#000}.fedora-header{display:block;text-indent:-9999px;background:url(../img/blockerbugs-logo-light.png) 10px 50% no-repeat;height:73px;width:175px;overflow:hidden;text-decoration:none}.fedora-preheader-staging{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;width:100%!important;position:relative;background:white url(../img/repeater-stg.png) 0 100% repeat-x;display:block;color:black}.fedora-header-staging{display:block;text-indent:-9999px;background:url(../img/blockerbugs-logo-light-stg.png) 10px 50% no-repeat;height:73px;width:175px;overflow:hidden;text-decoration:none}.fedora-prefooter{font:normal .8em/1.5 sans-serif;text-align:center;background:white;padding:20px}.fedora-footer{text-align:center;background:white url(../img/line-bottom.png) 0 0 repeat-x;color:#4D4D4D}.login-header{height:73px}.login-link{vertical-align:text-bottom;position:absolute;bottom:10px}#main-info ul{list-style-position:inside}.foundicon-idea.yellow{color:#e59728}.foundicon-refresh.green{color:#61b921}.needinfo{font-weight:bold;color:#885aab;font-size:17px}.menu-container{padding:10px 0 10px 0}.sub-menu{padding:5px 0 10px 0;margin:0;display:block;text-align:center;height:24px}.sub-menu ul{background:none;padding:0;margin:0 auto;float:none;display:inline-table;border-radius:10px}.sub-menu ul li{float:left;background:none;margin-right:1px;display:inline}.sub-menu li a:link,.sub-menu li a:visited{font-size:14px;display:block;color:#3c6eb4;padding:1.4px 9.33333px;text-decoration:none;text-transform:capitalize}.sub-menu a.active:link,a.active:active,a.active:visited{color:#fff!important;text-shadow:none;background:#3c6eb4;border-radius:10px;font-weight:bold}.sub-menu li a:hover{cursor:pointer;color:#fff;text-shadow:none;border-radius:10px;background:#8c8c8c}.menu-bar{padding:5px 0 10px 0;margin:0;display:block;overflow:hidden;text-align:center;height:40px;border-radius:10px}.menu-bar ul{background:#ababab;padding:0;margin:0 auto;float:none;display:inline-table;border-radius:10px}.menu-bar ul li{float:left;background:none;margin-right:1px;display:inline}.menu-bar li a:link,.menu-bar li a:visited{font-size:15px;font-weight:bold;display:block;color:#262626;padding:3.75px 14px;text-decoration:none;text-transform:capitalize;text-shadow:0 1px 1px #dedede}.menu-bar li:first-child a{border-radius:10px 0 0 10px}.menu-bar li:last-child a{border-radius:0 10px 10px 0}.menu-bar li a:hover{cursor:pointer;color:#fff;text-shadow:none;background:#8c8c8c}.menu-bar a.active:link,a.active:active,a.active:visited{color:#fff!important;text-shadow:none;background:#3c6eb4}#info-container{padding:10px 0 5px 0}table.tablesorter{background-color:#d9d9d9;margin:10px 0 15px;font-size:10pt;width:100%;text-align:left;border:1px none #294172;border-collapse:collapse}table.tablesorter thead tr th,table.tablesorter tfoot tr th{background-color:#bacde8;font-size:8pt;padding:4px}table.tablesorter thead tr .header{background-image:url(../img/bg.gif);background-repeat:no-repeat;background-position:center right;cursor:pointer}table.tablesorter tbody td{padding:4px;vertical-align:top;word-wrap:break-word;border-left:0;border-right:0}table.tablesorter td:nth-child(1){white-space:nowrap}table.tablesorter tr{border-left:0;border-right:0}table.tablesorter tr:nth-child(even){background-color:#e1e9f5}table.tablesorter tr:nth-child(odd){background-color:white}table.tablesorter tbody tr.even td{background-color:white}table.tablesorter thead tr .headerSortUp{background-image:url(../img/asc.gif)}table.tablesorter tbody tr.newbug td{background-color:#fbff84}table.tablesorter tbody tr td.modifiedstate{font-weight:bold}table.tablesorter tbody tr td.bugid{font-weight:bold;font-size:12pt}table.tiptable{background-color:#d9d9d9;margin:10px 0 15px;font-size:8pt;width:100%;text-align:left;border-collapse:collapse}table.tiptable thead tr th,table.tiptable tfoot tr th{background-color:#bacde8;font-size:8pt;padding:4px}table.tiptable thead tr .header{background-image:url(../img/bg.gif);background-repeat:no-repeat;background-position:center right;cursor:pointer}table.tiptable tbody td{font-size:8pt;padding:4px;vertical-align:top;word-wrap:break-word}table.tiptable tr:nth-child(even){background-color:#e1e9f5}table.tiptable tr:nth-child(odd){background-color:white}/*!qTip2 - Pretty powerful tooltips - v2.0.0 - 2012-09-04 * http://craigsworks.com/projects/qtip2/ * Copyright(c) 2012 Craig Michael Thompson;Licensed MIT,GPL */ #qtip-rcontainer{position:absolute;left:-28000px;top:-28000px;display:block;visibility:hidden}#qtip-rcontainer .ui-tooltip{display:block!important;visibility:hidden!important;position:static!important;float:left!important}.ui-tooltip,.qtip{position:absolute;left:-28000px;top:-28000px;display:none;max-width:500px;min-width:100px;font-size:10.5px;line-height:12px}.ui-tooltip-content{position:relative;padding:5px 9px;overflow:hidden;text-align:left;word-wrap:break-word}.ui-tooltip-titlebar{position:relative;min-height:14px;padding:5px 35px 5px 10px;overflow:hidden;border-width:0 0 1px;font-weight:bold}.ui-tooltip-titlebar+.ui-tooltip-content{border-top-width:0!important}.ui-tooltip-titlebar .ui-state-default{position:absolute;right:4px;top:50%;margin-top:-9px;cursor:pointer;outline:medium none;border-width:1px;border-style:solid}* html .ui-tooltip-titlebar .ui-state-default{top:16px}.ui-tooltip-titlebar .ui-icon,.ui-tooltip-icon .ui-icon{display:block;text-indent:-1000em;direction:ltr}.ui-tooltip-icon,.ui-tooltip-icon .ui-icon{-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;text-decoration:none}.ui-tooltip-icon .ui-icon{width:18px;height:14px;text-align:center;text-indent:0;font:normal bold 10px/13px Tahoma,sans-serif;color:inherit;background:transparent none no-repeat -100em -100em}.ui-tooltip-focus{}.ui-tooltip-hover{}.ui-tooltip-default{border-width:1px;border-style:solid;border-color:#F1D031;background-color:#FFFFA3;color:#555}.ui-tooltip-default .ui-tooltip-titlebar{background-color:#FFEF93}.ui-tooltip-default .ui-tooltip-icon{border-color:#CCC;background:#F1F1F1;color:#777}.ui-tooltip-default .ui-tooltip-titlebar .ui-state-hover{border-color:#AAA;color:#111}/*!Light tooltip style */ .ui-tooltip-light{background-color:white;border-color:#E2E2E2;color:#454545}.ui-tooltip-light .ui-tooltip-titlebar{background-color:#f1f1f1}/*!Dark tooltip style */ .ui-tooltip-dark{background-color:#505050;border-color:#303030;color:#f3f3f3}.ui-tooltip-dark .ui-tooltip-titlebar{background-color:#404040}.ui-tooltip-dark .ui-tooltip-icon{border-color:#444}.ui-tooltip-dark .ui-tooltip-titlebar .ui-state-hover{border-color:#303030}/*!Cream tooltip style */ .ui-tooltip-cream{background-color:#FBF7AA;border-color:#F9E98E;color:#A27D35}.ui-tooltip-cream .ui-tooltip-titlebar{background-color:#F0DE7D}.ui-tooltip-cream .ui-state-default .ui-tooltip-icon{background-position:-82px 0}/*!Red tooltip style */ .ui-tooltip-red{background-color:#F78B83;border-color:#D95252;color:#912323}.ui-tooltip-red .ui-tooltip-titlebar{background-color:#F06D65}.ui-tooltip-red .ui-state-default .ui-tooltip-icon{background-position:-102px 0}.ui-tooltip-red .ui-tooltip-icon{border-color:#D95252}.ui-tooltip-red .ui-tooltip-titlebar .ui-state-hover{border-color:#D95252}/*!Green tooltip style */ .ui-tooltip-green{background-color:#CAED9E;border-color:#90D93F;color:#3F6219}.ui-tooltip-green .ui-tooltip-titlebar{background-color:#B0DE78}.ui-tooltip-green .ui-state-default .ui-tooltip-icon{background-position:-42px 0}/*!Blue tooltip style */ .ui-tooltip-blue{background-color:#E5F6FE;border-color:#ADD9ED;color:#5E99BD}.ui-tooltip-blue .ui-tooltip-titlebar{background-color:#D0E9F5}.ui-tooltip-blue .ui-state-default .ui-tooltip-icon{background-position:-2px 0}.ui-tooltip-shadow{-webkit-box-shadow:1px 1px 3px 1px rgba(0,0,0,0.15);-moz-box-shadow:1px 1px 3px 1px rgba(0,0,0,0.15);box-shadow:1px 1px 3px 1px rgba(0,0,0,0.15)}.ui-tooltip-rounded,.ui-tooltip-tipsy,.ui-tooltip-bootstrap{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.ui-tooltip-youtube{-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-webkit-box-shadow:0 0 3px #333;-moz-box-shadow:0 0 3px #333;box-shadow:0 0 3px #333;color:white;border-width:0;background:#4A4A4A;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0,#4A4A4A),color-stop(100%,black));background-image:-webkit-linear-gradient(top,#4A4A4A 0,black 100%);background-image:-moz-linear-gradient(top,#4A4A4A 0,black 100%);background-image:-ms-linear-gradient(top,#4A4A4A 0,black 100%);background-image:-o-linear-gradient(top,#4A4A4A 0,black 100%)}.ui-tooltip-youtube .ui-tooltip-titlebar{background-color:#4A4A4A;background-color:rgba(0,0,0,0)}.ui-tooltip-youtube .ui-tooltip-content{padding:.75em;font:12px arial,sans-serif;filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#4a4a4a,EndColorStr=#000000);-ms-filter:"progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#4a4a4a,EndColorStr=#000000);"}.ui-tooltip-youtube .ui-tooltip-icon{border-color:#222}.ui-tooltip-youtube .ui-tooltip-titlebar .ui-state-hover{border-color:#303030}.ui-tooltip-jtools{background:#232323;background:rgba(0,0,0,0.7);background-image:-webkit-gradient(linear,left top,left bottom,from(#717171),to(#232323));background-image:-moz-linear-gradient(top,#717171,#232323);background-image:-webkit-linear-gradient(top,#717171,#232323);background-image:-ms-linear-gradient(top,#717171,#232323);background-image:-o-linear-gradient(top,#717171,#232323);border:2px solid #ddd;border:2px solid rgba(241,241,241,1);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-webkit-box-shadow:0 0 12px #333;-moz-box-shadow:0 0 12px #333;box-shadow:0 0 12px #333}.ui-tooltip-jtools .ui-tooltip-titlebar{background-color:transparent;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171,endColorstr=#4A4A4A);-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171,endColorstr=#4A4A4A)"}.ui-tooltip-jtools .ui-tooltip-content{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A,endColorstr=#232323);-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A,endColorstr=#232323)"}.ui-tooltip-jtools .ui-tooltip-titlebar,.ui-tooltip-jtools .ui-tooltip-content{background:transparent;color:white;border:0 dashed transparent}.ui-tooltip-jtools .ui-tooltip-icon{border-color:#555}.ui-tooltip-jtools .ui-tooltip-titlebar .ui-state-hover{border-color:#333}.ui-tooltip-cluetip{-webkit-box-shadow:4px 4px 5px rgba(0,0,0,0.4);-moz-box-shadow:4px 4px 5px rgba(0,0,0,0.4);box-shadow:4px 4px 5px rgba(0,0,0,0.4);background-color:#D9D9C2;color:#111;border:0 dashed transparent}.ui-tooltip-cluetip .ui-tooltip-titlebar{background-color:#87876A;color:white;border:0 dashed transparent}.ui-tooltip-cluetip .ui-tooltip-icon{border-color:#808064}.ui-tooltip-cluetip .ui-tooltip-titlebar .ui-state-hover{border-color:#696952;color:#696952}.ui-tooltip-tipsy{background:black;background:rgba(0,0,0,.87);color:white;border:0 solid transparent;font-size:11px;font-family:'Lucida Grande',sans-serif;font-weight:bold;line-height:16px;text-shadow:0 1px black}.ui-tooltip-tipsy .ui-tooltip-titlebar{padding:6px 35px 0 10;background-color:transparent}.ui-tooltip-tipsy .ui-tooltip-content{padding:6px 10}.ui-tooltip-tipsy .ui-tooltip-icon{border-color:#222;text-shadow:none}.ui-tooltip-tipsy .ui-tooltip-titlebar .ui-state-hover{border-color:#303030}.ui-tooltip-tipped{border:3px solid #959FA9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;background-color:#F9F9F9;color:#454545;font-weight:normal;font-family:serif}.ui-tooltip-tipped .ui-tooltip-titlebar{border-bottom-width:0;color:white;background:#3A79B8;background-image:-webkit-gradient(linear,left top,left bottom,from(#3A79B8),to(#2E629D));background-image:-webkit-linear-gradient(top,#3A79B8,#2E629D);background-image:-moz-linear-gradient(top,#3A79B8,#2E629D);background-image:-ms-linear-gradient(top,#3A79B8,#2E629D);background-image:-o-linear-gradient(top,#3A79B8,#2E629D);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8,endColorstr=#2E629D);-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8,endColorstr=#2E629D)"}.ui-tooltip-tipped .ui-tooltip-icon{border:2px solid #285589;background:#285589}.ui-tooltip-tipped .ui-tooltip-icon .ui-icon{background-color:#FBFBFB;color:#555}.ui-tooltip-bootstrap{font-size:13px;line-height:18px;color:#333;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.ui-tooltip-bootstrap .ui-tooltip-titlebar{font-size:18px;line-height:22px;border-bottom:1px solid #ccc;background-color:transparent}.ui-tooltip-bootstrap .ui-tooltip-titlebar .ui-state-default{right:9px;top:49%;border-style:none}.ui-tooltip-bootstrap .ui-tooltip-icon{background:white}.ui-tooltip-bootstrap .ui-tooltip-icon .ui-icon{width:auto;height:auto;float:right;font-size:20px;font-weight:bold;line-height:18px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.ui-tooltip-bootstrap .ui-tooltip-icon .ui-icon:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}.ui-tooltip:not(.ie9haxors) div.ui-tooltip-content,.ui-tooltip:not(.ie9haxors) div.ui-tooltip-titlebar{filter:none;-ms-filter:none}.ui-tooltip .ui-tooltip-tip{margin:0 auto;overflow:hidden;z-index:10}.ui-tooltip .ui-tooltip-tip,.ui-tooltip .ui-tooltip-tip *{position:absolute;line-height:.1px!important;font-size:.1px!important;color:#123456;background:transparent;border:0 dashed transparent}.ui-tooltip .ui-tooltip-tip canvas{top:0;left:0}#qtip-overlay{position:fixed;left:-10000em;top:-10000em}#qtip-overlay.blurs{cursor:pointer}#qtip-overlay div{position:absolute;left:0;top:0;width:100%;height:100%;background-color:black;opacity:.7;filter:alpha(opacity=70);-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=70)"}@font-face{font-family:'ComfortaaThin';src:url('fonts/Comfortaa_Thin-webfont.eot');src:local('☺'),url('fonts/Comfortaa_Thin-webfont.woff') format('woff'),url('fonts/Comfortaa_Thin-webfont.ttf') format('truetype'),url('fonts/Comfortaa_Thin-webfont.svg#webfontReo2lGxG') format('svg');font-weight:normal;font-style:normal}@font-face{font-family:'ComfortaaRegular';src:url('fonts/Comfortaa_Regular-webfont.eot');src:local('☺'),url('fonts/Comfortaa_Regular-webfont.woff') format('woff'),url('fonts/Comfortaa_Regular-webfont.ttf') format('truetype'),url('fonts/Comfortaa_Regular-webfont.svg#webfontxbL3cos8') format('svg');font-weight:normal;font-style:normal}@font-face{font-family:'ComfortaaBold';src:url('fonts/Comfortaa_Bold-webfont.eot');src:local('☺'),url('fonts/Comfortaa_Bold-webfont.woff') format('woff'),url('fonts/Comfortaa_Bold-webfont.ttf') format('truetype'),url('fonts/Comfortaa_Bold-webfont.svg#webfontjkcnhWWT') format('svg');font-weight:normal;font-style:normal}@font-face{font-family:'CantarellRegular';src:url('fonts/Cantarell-Regular-webfont.eot');src:local('☺'),url('fonts/Cantarell-Regular-webfont.woff') format('woff'),url('fonts/Cantarell-Regular-webfont.ttf') format('truetype'),url('fonts/Cantarell-Regular-webfont.svg#webfontPQ4tPnyo') format('svg');font-weight:normal;font-style:normal}@font-face{font-family:'CantarellBold';src:url('fonts/Cantarell-Bold-webfont.eot');src:local('☺'),url('fonts/Cantarell-Bold-webfont.woff') format('woff'),url('fonts/Cantarell-Bold-webfont.ttf') format('truetype'),url('fonts/Cantarell-Bold-webfont.svg#webfont3gCLDhwY') format('svg');font-weight:normal;font-style:normal}@font-face{font-family:'CantarellBoldOblique';src:url('fonts/Cantarell-BoldOblique-webfont.eot');src:local('☺'),url('fonts/Cantarell-BoldOblique-webfont.woff') format('woff'),url('fonts/Cantarell-BoldOblique-webfont.ttf') format('truetype'),url('fonts/Cantarell-BoldOblique-webfont.svg#webfont3gCLDhwY') format('svg');font-weight:normal;font-style:normal}@font-face{font-family:'CantarellOblique';src:url('fonts/Cantarell-Oblique-webfont.eot');src:local('☺'),url('fonts/Cantarell-Oblique-webfont.woff') format('woff'),url('fonts/Cantarell-Oblique-webfont.ttf') format('truetype'),url('fonts/Cantarell-Oblique-webfont.svg#webfont3gCLDhwY') format('svg');font-weight:normal;font-style:normal}@font-face{font-family:"GeneralFoundicons";src:url("fonts/general_foundicons.eot");src:url("fonts/general_foundicons.eot?#iefix") format("embedded-opentype"),url("fonts/general_foundicons.woff") format("woff"),url("fonts/general_foundicons.ttf") format("truetype"),url("fonts/general_foundicons.svg#GeneralFoundicons") format("svg");font-weight:normal;font-style:normal}[class*="foundicon-"]{display:inline;width:auto;height:auto;line-height:inherit;vertical-align:baseline;background-image:none;background-position:0 0;background-repeat:repeat}[class*="foundicon-"]:before{font-family:"GeneralFoundicons";font-weight:normal;font-style:normal;text-decoration:inherit}.foundicon-settings:before{content:"\f000"}.foundicon-heart:before{content:"\f001"}.foundicon-star:before{content:"\f002"}.foundicon-plus:before{content:"\f003"}.foundicon-minus:before{content:"\f004"}.foundicon-checkmark:before{content:"\f005"}.foundicon-remove:before{content:"\f006"}.foundicon-mail:before{content:"\f007"}.foundicon-calendar:before{content:"\f008"}.foundicon-page:before{content:"\f009"}.foundicon-tools:before{content:"\f00a"}.foundicon-globe:before{content:"\f00b"}.foundicon-home:before{content:"\f00c"}.foundicon-quote:before{content:"\f00d"}.foundicon-people:before{content:"\f00e"}.foundicon-monitor:before{content:"\f00f"}.foundicon-laptop:before{content:"\f010"}.foundicon-phone:before{content:"\f011"}.foundicon-cloud:before{content:"\f012"}.foundicon-error:before{content:"\f013"}.foundicon-right-arrow:before{content:"\f014"}.foundicon-left-arrow:before{content:"\f015"}.foundicon-up-arrow:before{content:"\f016"}.foundicon-down-arrow:before{content:"\f017"}.foundicon-trash:before{content:"\f018"}.foundicon-add-doc:before{content:"\f019"}.foundicon-edit:before{content:"\f01a"}.foundicon-lock:before{content:"\f01b"}.foundicon-unlock:before{content:"\f01c"}.foundicon-refresh:before{content:"\f01d"}.foundicon-paper-clip:before{content:"\f01e"}.foundicon-video:before{content:"\f01f"}.foundicon-photo:before{content:"\f020"}.foundicon-graph:before{content:"\f021"}.foundicon-idea:before{content:"\f022"}.foundicon-mic:before{content:"\f023"}.foundicon-cart:before{content:"\f024"}.foundicon-address-book:before{content:"\f025"}.foundicon-compass:before{content:"\f026"}.foundicon-flag:before{content:"\f027"}.foundicon-location:before{content:"\f028"}.foundicon-clock:before{content:"\f029"}.foundicon-folder:before{content:"\f02a"}.foundicon-inbox:before{content:"\f02b"}.foundicon-website:before{content:"\f02c"}.foundicon-smiley:before{content:"\f02d"}.foundicon-search:before{content:"\f02e"} 

\ No newline at end of file

+ .qtip{position:absolute;left:-28000px;top:-28000px;display:none;max-width:280px;min-width:50px;font-size:10.5px;line-height:12px;direction:ltr;box-shadow:none;padding:0}.qtip-content{position:relative;padding:5px 9px;overflow:hidden;text-align:left;word-wrap:break-word}.qtip-titlebar{position:relative;padding:5px 35px 5px 10px;overflow:hidden;border-width:0 0 1px;font-weight:bold}.qtip-titlebar+.qtip-content{border-top-width:0!important}.qtip-close{position:absolute;right:-9px;top:-9px;z-index:11;cursor:pointer;outline:medium none;border:1px solid transparent}.qtip-titlebar .qtip-close{right:4px;top:50%;margin-top:-9px}* html .qtip-titlebar .qtip-close{top:16px}.qtip-titlebar .ui-icon,.qtip-icon .ui-icon{display:block;text-indent:-1000em;direction:ltr}.qtip-icon,.qtip-icon .ui-icon{-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;text-decoration:none}.qtip-icon .ui-icon{width:18px;height:14px;line-height:14px;text-align:center;text-indent:0;font:normal bold 10px/13px Tahoma,sans-serif;color:inherit;background:transparent none no-repeat -100em -100em}.qtip-focus{}.qtip-hover{}.qtip-default{border:1px solid #F1D031;background-color:#FFFFA3;color:#555}.qtip-default .qtip-titlebar{background-color:#FFEF93}.qtip-default .qtip-icon{border-color:#CCC;background:#F1F1F1;color:#777}.qtip-default .qtip-titlebar .qtip-close{border-color:#AAA;color:#111}/*!Light tooltip style */ .qtip-light{background-color:white;border-color:#E2E2E2;color:#454545}.qtip-light .qtip-titlebar{background-color:#f1f1f1}/*!Dark tooltip style */ .qtip-dark{background-color:#505050;border-color:#303030;color:#f3f3f3}.qtip-dark .qtip-titlebar{background-color:#404040}.qtip-dark .qtip-icon{border-color:#444}.qtip-dark .qtip-titlebar .ui-state-hover{border-color:#303030}/*!Cream tooltip style */ .qtip-cream{background-color:#FBF7AA;border-color:#F9E98E;color:#A27D35}.qtip-cream .qtip-titlebar{background-color:#F0DE7D}.qtip-cream .qtip-close .qtip-icon{background-position:-82px 0}/*!Red tooltip style */ .qtip-red{background-color:#F78B83;border-color:#D95252;color:#912323}.qtip-red .qtip-titlebar{background-color:#F06D65}.qtip-red .qtip-close .qtip-icon{background-position:-102px 0}.qtip-red .qtip-icon{border-color:#D95252}.qtip-red .qtip-titlebar .ui-state-hover{border-color:#D95252}/*!Green tooltip style */ .qtip-green{background-color:#CAED9E;border-color:#90D93F;color:#3F6219}.qtip-green .qtip-titlebar{background-color:#B0DE78}.qtip-green .qtip-close .qtip-icon{background-position:-42px 0}/*!Blue tooltip style */ .qtip-blue{background-color:#E5F6FE;border-color:#ADD9ED;color:#5E99BD}.qtip-blue .qtip-titlebar{background-color:#D0E9F5}.qtip-blue .qtip-close .qtip-icon{background-position:-2px 0}.qtip-shadow{-webkit-box-shadow:1px 1px 3px 1px rgba(0,0,0,0.15);-moz-box-shadow:1px 1px 3px 1px rgba(0,0,0,0.15);box-shadow:1px 1px 3px 1px rgba(0,0,0,0.15)}.qtip-rounded,.qtip-tipsy,.qtip-bootstrap{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.qtip-rounded .qtip-titlebar{-moz-border-radius:4px 4px 0 0;-webkit-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.qtip-youtube{-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-webkit-box-shadow:0 0 3px #333;-moz-box-shadow:0 0 3px #333;box-shadow:0 0 3px #333;color:white;border:0 solid transparent;background:#4A4A4A;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0,#4A4A4A),color-stop(100%,black));background-image:-webkit-linear-gradient(top,#4A4A4A 0,black 100%);background-image:-moz-linear-gradient(top,#4A4A4A 0,black 100%);background-image:-ms-linear-gradient(top,#4A4A4A 0,black 100%);background-image:-o-linear-gradient(top,#4A4A4A 0,black 100%)}.qtip-youtube .qtip-titlebar{background-color:#4A4A4A;background-color:rgba(0,0,0,0)}.qtip-youtube .qtip-content{padding:.75em;font:12px arial,sans-serif;filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#4a4a4a,EndColorStr=#000000);-ms-filter:"progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#4a4a4a,EndColorStr=#000000);"}.qtip-youtube .qtip-icon{border-color:#222}.qtip-youtube .qtip-titlebar .ui-state-hover{border-color:#303030}.qtip-jtools{background:#232323;background:rgba(0,0,0,0.7);background-image:-webkit-gradient(linear,left top,left bottom,from(#717171),to(#232323));background-image:-moz-linear-gradient(top,#717171,#232323);background-image:-webkit-linear-gradient(top,#717171,#232323);background-image:-ms-linear-gradient(top,#717171,#232323);background-image:-o-linear-gradient(top,#717171,#232323);border:2px solid #ddd;border:2px solid rgba(241,241,241,1);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-webkit-box-shadow:0 0 12px #333;-moz-box-shadow:0 0 12px #333;box-shadow:0 0 12px #333}.qtip-jtools .qtip-titlebar{background-color:transparent;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171,endColorstr=#4A4A4A);-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171,endColorstr=#4A4A4A)"}.qtip-jtools .qtip-content{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A,endColorstr=#232323);-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A,endColorstr=#232323)"}.qtip-jtools .qtip-titlebar,.qtip-jtools .qtip-content{background:transparent;color:white;border:0 dashed transparent}.qtip-jtools .qtip-icon{border-color:#555}.qtip-jtools .qtip-titlebar .ui-state-hover{border-color:#333}.qtip-cluetip{-webkit-box-shadow:4px 4px 5px rgba(0,0,0,0.4);-moz-box-shadow:4px 4px 5px rgba(0,0,0,0.4);box-shadow:4px 4px 5px rgba(0,0,0,0.4);background-color:#D9D9C2;color:#111;border:0 dashed transparent}.qtip-cluetip .qtip-titlebar{background-color:#87876A;color:white;border:0 dashed transparent}.qtip-cluetip .qtip-icon{border-color:#808064}.qtip-cluetip .qtip-titlebar .ui-state-hover{border-color:#696952;color:#696952}.qtip-tipsy{background:black;background:rgba(0,0,0,.87);color:white;border:0 solid transparent;font-size:11px;font-family:'Lucida Grande',sans-serif;font-weight:bold;line-height:16px;text-shadow:0 1px black}.qtip-tipsy .qtip-titlebar{padding:6px 35px 0 10px;background-color:transparent}.qtip-tipsy .qtip-content{padding:6px 10px}.qtip-tipsy .qtip-icon{border-color:#222;text-shadow:none}.qtip-tipsy .qtip-titlebar .ui-state-hover{border-color:#303030}.qtip-tipped{border:3px solid #959FA9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;background-color:#F9F9F9;color:#454545;font-weight:normal;font-family:serif}.qtip-tipped .qtip-titlebar{border-bottom-width:0;color:white;background:#3A79B8;background-image:-webkit-gradient(linear,left top,left bottom,from(#3A79B8),to(#2E629D));background-image:-webkit-linear-gradient(top,#3A79B8,#2E629D);background-image:-moz-linear-gradient(top,#3A79B8,#2E629D);background-image:-ms-linear-gradient(top,#3A79B8,#2E629D);background-image:-o-linear-gradient(top,#3A79B8,#2E629D);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8,endColorstr=#2E629D);-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8,endColorstr=#2E629D)"}.qtip-tipped .qtip-icon{border:2px solid #285589;background:#285589}.qtip-tipped .qtip-icon .ui-icon{background-color:#FBFBFB;color:#555}.qtip-bootstrap{font-size:14px;line-height:20px;color:#333;padding:1px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.qtip-bootstrap .qtip-titlebar{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.qtip-bootstrap .qtip-titlebar .qtip-close{right:11px;top:45%;border-style:none}.qtip-bootstrap .qtip-content{padding:9px 14px}.qtip-bootstrap .qtip-icon{background:transparent}.qtip-bootstrap .qtip-icon .ui-icon{width:auto;height:auto;float:right;font-size:20px;font-weight:bold;line-height:18px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.qtip-bootstrap .qtip-icon .ui-icon:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}.qtip:not(.ie9haxors) div.qtip-content,.qtip:not(.ie9haxors) div.qtip-titlebar{filter:none;-ms-filter:none}.qtip .qtip-tip{margin:0 auto;overflow:hidden;z-index:10}x:-o-prefocus,.qtip .qtip-tip{visibility:hidden}.qtip .qtip-tip,.qtip .qtip-tip .qtip-vml,.qtip .qtip-tip canvas{position:absolute;color:#123456;background:transparent;border:0 dashed transparent}.qtip .qtip-tip canvas{top:0;left:0}.qtip .qtip-tip .qtip-vml{behavior:url(#default#VML);display:inline-block;visibility:visible}#qtip-overlay{position:fixed;left:0;top:0;width:100%;height:100%}#qtip-overlay.blurs{cursor:pointer}#qtip-overlay div{position:absolute;left:0;top:0;width:100%;height:100%;background-color:black;opacity:.7;filter:alpha(opacity=70);-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=70)"}.qtipmodal-ie6fix{position:absolute!important}@font-face{font-family:'ComfortaaThin';src:url('fonts/Comfortaa_Thin-webfont.eot');src:local('☺'),url('fonts/Comfortaa_Thin-webfont.woff') format('woff'),url('fonts/Comfortaa_Thin-webfont.ttf') format('truetype'),url('fonts/Comfortaa_Thin-webfont.svg#webfontReo2lGxG') format('svg');font-weight:normal;font-style:normal}@font-face{font-family:'ComfortaaRegular';src:url('fonts/Comfortaa_Regular-webfont.eot');src:local('☺'),url('fonts/Comfortaa_Regular-webfont.woff') format('woff'),url('fonts/Comfortaa_Regular-webfont.ttf') format('truetype'),url('fonts/Comfortaa_Regular-webfont.svg#webfontxbL3cos8') format('svg');font-weight:normal;font-style:normal}@font-face{font-family:'ComfortaaBold';src:url('fonts/Comfortaa_Bold-webfont.eot');src:local('☺'),url('fonts/Comfortaa_Bold-webfont.woff') format('woff'),url('fonts/Comfortaa_Bold-webfont.ttf') format('truetype'),url('fonts/Comfortaa_Bold-webfont.svg#webfontjkcnhWWT') format('svg');font-weight:normal;font-style:normal}@font-face{font-family:'CantarellRegular';src:url('fonts/Cantarell-Regular-webfont.eot');src:local('☺'),url('fonts/Cantarell-Regular-webfont.woff') format('woff'),url('fonts/Cantarell-Regular-webfont.ttf') format('truetype'),url('fonts/Cantarell-Regular-webfont.svg#webfontPQ4tPnyo') format('svg');font-weight:normal;font-style:normal}@font-face{font-family:'CantarellBold';src:url('fonts/Cantarell-Bold-webfont.eot');src:local('☺'),url('fonts/Cantarell-Bold-webfont.woff') format('woff'),url('fonts/Cantarell-Bold-webfont.ttf') format('truetype'),url('fonts/Cantarell-Bold-webfont.svg#webfont3gCLDhwY') format('svg');font-weight:normal;font-style:normal}@font-face{font-family:'CantarellBoldOblique';src:url('fonts/Cantarell-BoldOblique-webfont.eot');src:local('☺'),url('fonts/Cantarell-BoldOblique-webfont.woff') format('woff'),url('fonts/Cantarell-BoldOblique-webfont.ttf') format('truetype'),url('fonts/Cantarell-BoldOblique-webfont.svg#webfont3gCLDhwY') format('svg');font-weight:normal;font-style:normal}@font-face{font-family:'CantarellOblique';src:url('fonts/Cantarell-Oblique-webfont.eot');src:local('☺'),url('fonts/Cantarell-Oblique-webfont.woff') format('woff'),url('fonts/Cantarell-Oblique-webfont.ttf') format('truetype'),url('fonts/Cantarell-Oblique-webfont.svg#webfont3gCLDhwY') format('svg');font-weight:normal;font-style:normal}/*!* Bootstrap v4.0.0(https://getbootstrap.com) * Copyright 2011-2018 The Bootstrap Authors * Copyright 2011-2018 Twitter,Inc. * Licensed under MIT(https://github.com/twbs/bootstrap/blob/master/LICENSE) */ :root{--blue:#3c6eb4;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#3c6eb4;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:Open Sans;--font-family-monospace:"Hack",monospace}*,*::before,*::after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}@-ms-viewport{width:device-width}article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:"Open Sans";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[title],abbr[data-original-title]{text-decoration:underline;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#3c6eb4;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#294b7b;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):hover,a:not([href]):not([tabindex]):focus{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}pre,code,kbd,samp{font-family:monospace,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}button,html [type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{padding:0;border-style:none}input[type="radio"],input[type="checkbox"]{box-sizing:border-box;padding:0}input[type="date"],input[type="time"],input[type="datetime-local"],input[type="month"]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{outline-offset:-2px;-webkit-appearance:none}[type="search"]::-webkit-search-cancel-button,[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{margin-bottom:.5rem;font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1,.h1{font-size:2rem}h2,.h2{font-size:1.75rem}h3,.h3{font-size:1.5rem}h4,.h4{font-size:1.25rem}h5,.h5{font-size:1rem}h6,.h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.1}.display-2{font-size:5.5rem;font-weight:300;line-height:1.1}.display-3{font-size:4.5rem;font-weight:300;line-height:1.1}.display-4{font-size:3.5rem;font-weight:300;line-height:1.1}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,0.1)}small,.small{font-size:80%;font-weight:400}mark,.mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014 \A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code,kbd,pre,samp{font-family:"Hack",monospace}code{font-size:87.5%;color:#e83e8c;word-break:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#586e75}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media(min-width:576px){.container{max-width:540px}}@media(min-width:768px){.container{max-width:720px}}@media(min-width:992px){.container{max-width:960px}}@media(min-width:1200px){.container{max-width:1140px}}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*="col-"]{padding-right:0;padding-left:0}.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col,.col-auto,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm,.col-sm-auto,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md,.col-md-auto,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg,.col-lg-auto,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl,.col-xl-auto{position:relative;width:100%;min-height:1px;padding-right:15px;padding-left:15px}.col{flex-basis:0;flex-grow:1;max-width:100%}.col-auto{flex:0 0 auto;width:auto;max-width:none}.col-1{flex:0 0 8.33333%;max-width:8.33333%}.col-2{flex:0 0 16.66667%;max-width:16.66667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.33333%;max-width:33.33333%}.col-5{flex:0 0 41.66667%;max-width:41.66667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.33333%;max-width:58.33333%}.col-8{flex:0 0 66.66667%;max-width:66.66667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.33333%;max-width:83.33333%}.col-11{flex:0 0 91.66667%;max-width:91.66667%}.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.33333%}.offset-2{margin-left:16.66667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333%}.offset-5{margin-left:41.66667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333%}.offset-8{margin-left:66.66667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333%}.offset-11{margin-left:91.66667%}@media(min-width:576px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:none}.col-sm-1{flex:0 0 8.33333%;max-width:8.33333%}.col-sm-2{flex:0 0 16.66667%;max-width:16.66667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.33333%;max-width:33.33333%}.col-sm-5{flex:0 0 41.66667%;max-width:41.66667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.33333%;max-width:58.33333%}.col-sm-8{flex:0 0 66.66667%;max-width:66.66667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.33333%;max-width:83.33333%}.col-sm-11{flex:0 0 91.66667%;max-width:91.66667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333%}.offset-sm-2{margin-left:16.66667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333%}.offset-sm-5{margin-left:41.66667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333%}.offset-sm-8{margin-left:66.66667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333%}.offset-sm-11{margin-left:91.66667%}}@media(min-width:768px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.col-md-auto{flex:0 0 auto;width:auto;max-width:none}.col-md-1{flex:0 0 8.33333%;max-width:8.33333%}.col-md-2{flex:0 0 16.66667%;max-width:16.66667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.33333%;max-width:33.33333%}.col-md-5{flex:0 0 41.66667%;max-width:41.66667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.33333%;max-width:58.33333%}.col-md-8{flex:0 0 66.66667%;max-width:66.66667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.33333%;max-width:83.33333%}.col-md-11{flex:0 0 91.66667%;max-width:91.66667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333%}.offset-md-2{margin-left:16.66667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333%}.offset-md-5{margin-left:41.66667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333%}.offset-md-8{margin-left:66.66667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333%}.offset-md-11{margin-left:91.66667%}}@media(min-width:992px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:none}.col-lg-1{flex:0 0 8.33333%;max-width:8.33333%}.col-lg-2{flex:0 0 16.66667%;max-width:16.66667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.33333%;max-width:33.33333%}.col-lg-5{flex:0 0 41.66667%;max-width:41.66667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.33333%;max-width:58.33333%}.col-lg-8{flex:0 0 66.66667%;max-width:66.66667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.33333%;max-width:83.33333%}.col-lg-11{flex:0 0 91.66667%;max-width:91.66667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333%}.offset-lg-2{margin-left:16.66667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333%}.offset-lg-5{margin-left:41.66667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333%}.offset-lg-8{margin-left:66.66667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333%}.offset-lg-11{margin-left:91.66667%}}@media(min-width:1200px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:none}.col-xl-1{flex:0 0 8.33333%;max-width:8.33333%}.col-xl-2{flex:0 0 16.66667%;max-width:16.66667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.33333%;max-width:33.33333%}.col-xl-5{flex:0 0 41.66667%;max-width:41.66667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.33333%;max-width:58.33333%}.col-xl-8{flex:0 0 66.66667%;max-width:66.66667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.33333%;max-width:83.33333%}.col-xl-11{flex:0 0 91.66667%;max-width:91.66667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333%}.offset-xl-2{margin-left:16.66667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333%}.offset-xl-5{margin-left:41.66667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333%}.offset-xl-8{margin-left:66.66667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333%}.offset-xl-11{margin-left:91.66667%}}.table{width:100%;max-width:100%;margin-bottom:1rem;background-color:transparent}.table th,.table td{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table .table{background-color:#fff}.table-sm th,.table-sm td{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered th,.table-bordered td{border:1px solid #dee2e6}.table-bordered thead th,.table-bordered thead td{border-bottom-width:2px}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,0.05)}.table-hover tbody tr:hover{background-color:rgba(0,0,0,0.075)}.table-primary,.table-primary>th,.table-primary>td{background-color:#c8d6ea}.table-hover .table-primary:hover{background-color:#b6c8e3}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#b6c8e3}.table-secondary,.table-secondary>th,.table-secondary>td{background-color:#d6d8db}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>th,.table-success>td{background-color:#c3e6cb}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>th,.table-info>td{background-color:#bee5eb}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>th,.table-warning>td{background-color:#ffeeba}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>th,.table-danger>td{background-color:#f5c6cb}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>th,.table-light>td{background-color:#fdfdfe}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>th,.table-dark>td{background-color:#c6c8ca}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>th,.table-active>td{background-color:rgba(0,0,0,0.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,0.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,0.075)}.table .thead-dark th{color:#fff;background-color:#212529;border-color:#32383e}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#212529}.table-dark th,.table-dark td,.table-dark thead th{border-color:#32383e}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,0.05)}.table-dark.table-hover tbody tr:hover{background-color:rgba(255,255,255,0.075)}@media(max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-sm>.table-bordered{border:0}}@media(max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-md>.table-bordered{border:0}}@media(max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-lg>.table-bordered{border:0}}@media(max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#94b2db;outline:0;box-shadow:0 0 0 .2rem rgba(60,110,180,0.25)}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:not([size]):not([multiple]){height:calc(2.25rem+2px)}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(0.375rem+1px);padding-bottom:calc(0.375rem+1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(0.5rem+1px);padding-bottom:calc(0.5rem+1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(0.25rem+1px);padding-bottom:calc(0.25rem+1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding-top:.375rem;padding-bottom:.375rem;margin-bottom:0;line-height:1.5;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-sm,.input-group-sm>.form-control-plaintext.form-control,.input-group-sm>.input-group-prepend>.form-control-plaintext.input-group-text,.input-group-sm>.input-group-append>.form-control-plaintext.input-group-text,.input-group-sm>.input-group-prepend>.form-control-plaintext.btn,.input-group-sm>.input-group-append>.form-control-plaintext.btn,.form-control-plaintext.form-control-lg,.input-group-lg>.form-control-plaintext.form-control,.input-group-lg>.input-group-prepend>.form-control-plaintext.input-group-text,.input-group-lg>.input-group-append>.form-control-plaintext.input-group-text,.input-group-lg>.input-group-prepend>.form-control-plaintext.btn,.input-group-lg>.input-group-append>.form-control-plaintext.btn{padding-right:0;padding-left:0}.form-control-sm,.input-group-sm>.form-control,.input-group-sm>.input-group-prepend>.input-group-text,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-append>.btn{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}select.form-control-sm:not([size]):not([multiple]),.input-group-sm>select.form-control:not([size]):not([multiple]),.input-group-sm>.input-group-prepend>select.input-group-text:not([size]):not([multiple]),.input-group-sm>.input-group-append>select.input-group-text:not([size]):not([multiple]),.input-group-sm>.input-group-prepend>select.btn:not([size]):not([multiple]),.input-group-sm>.input-group-append>select.btn:not([size]):not([multiple]){height:calc(1.8125rem+2px)}.form-control-lg,.input-group-lg>.form-control,.input-group-lg>.input-group-prepend>.input-group-text,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-append>.btn{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control-lg:not([size]):not([multiple]),.input-group-lg>select.form-control:not([size]):not([multiple]),.input-group-lg>.input-group-prepend>select.input-group-text:not([size]):not([multiple]),.input-group-lg>.input-group-append>select.input-group-text:not([size]):not([multiple]),.input-group-lg>.input-group-prepend>select.btn:not([size]):not([multiple]),.input-group-lg>.input-group-append>select.btn:not([size]):not([multiple]){height:calc(2.875rem+2px)}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*="col-"]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled ~ .form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.5rem;margin-top:.1rem;font-size:.875rem;line-height:1;color:#fff;background-color:rgba(40,167,69,0.8);border-radius:.2rem}.was-validated .form-control:valid,.form-control.is-valid,.was-validated .custom-select:valid,.custom-select.is-valid{border-color:#28a745}.was-validated .form-control:valid:focus,.form-control.is-valid:focus,.was-validated .custom-select:valid:focus,.custom-select.is-valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,0.25)}.was-validated .form-control:valid ~ .valid-feedback,.was-validated .form-control:valid ~ .valid-tooltip,.form-control.is-valid ~ .valid-feedback,.form-control.is-valid ~ .valid-tooltip,.was-validated .custom-select:valid ~ .valid-feedback,.was-validated .custom-select:valid ~ .valid-tooltip,.custom-select.is-valid ~ .valid-feedback,.custom-select.is-valid ~ .valid-tooltip{display:block}.was-validated .form-check-input:valid ~ .form-check-label,.form-check-input.is-valid ~ .form-check-label{color:#28a745}.was-validated .form-check-input:valid ~ .valid-feedback,.was-validated .form-check-input:valid ~ .valid-tooltip,.form-check-input.is-valid ~ .valid-feedback,.form-check-input.is-valid ~ .valid-tooltip{display:block}.was-validated .custom-control-input:valid ~ .custom-control-label,.custom-control-input.is-valid ~ .custom-control-label{color:#28a745}.was-validated .custom-control-input:valid ~ .custom-control-label::before,.custom-control-input.is-valid ~ .custom-control-label::before{background-color:#71dd8a}.was-validated .custom-control-input:valid ~ .valid-feedback,.was-validated .custom-control-input:valid ~ .valid-tooltip,.custom-control-input.is-valid ~ .valid-feedback,.custom-control-input.is-valid ~ .valid-tooltip{display:block}.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before,.custom-control-input.is-valid:checked ~ .custom-control-label::before{background-color:#34ce57}.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before,.custom-control-input.is-valid:focus ~ .custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(40,167,69,0.25)}.was-validated .custom-file-input:valid ~ .custom-file-label,.custom-file-input.is-valid ~ .custom-file-label{border-color:#28a745}.was-validated .custom-file-input:valid ~ .custom-file-label::before,.custom-file-input.is-valid ~ .custom-file-label::before{border-color:inherit}.was-validated .custom-file-input:valid ~ .valid-feedback,.was-validated .custom-file-input:valid ~ .valid-tooltip,.custom-file-input.is-valid ~ .valid-feedback,.custom-file-input.is-valid ~ .valid-tooltip{display:block}.was-validated .custom-file-input:valid:focus ~ .custom-file-label,.custom-file-input.is-valid:focus ~ .custom-file-label{box-shadow:0 0 0 .2rem rgba(40,167,69,0.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.5rem;margin-top:.1rem;font-size:.875rem;line-height:1;color:#fff;background-color:rgba(220,53,69,0.8);border-radius:.2rem}.was-validated .form-control:invalid,.form-control.is-invalid,.was-validated .custom-select:invalid,.custom-select.is-invalid{border-color:#dc3545}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus,.was-validated .custom-select:invalid:focus,.custom-select.is-invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,0.25)}.was-validated .form-control:invalid ~ .invalid-feedback,.was-validated .form-control:invalid ~ .invalid-tooltip,.form-control.is-invalid ~ .invalid-feedback,.form-control.is-invalid ~ .invalid-tooltip,.was-validated .custom-select:invalid ~ .invalid-feedback,.was-validated .custom-select:invalid ~ .invalid-tooltip,.custom-select.is-invalid ~ .invalid-feedback,.custom-select.is-invalid ~ .invalid-tooltip{display:block}.was-validated .form-check-input:invalid ~ .form-check-label,.form-check-input.is-invalid ~ .form-check-label{color:#dc3545}.was-validated .form-check-input:invalid ~ .invalid-feedback,.was-validated .form-check-input:invalid ~ .invalid-tooltip,.form-check-input.is-invalid ~ .invalid-feedback,.form-check-input.is-invalid ~ .invalid-tooltip{display:block}.was-validated .custom-control-input:invalid ~ .custom-control-label,.custom-control-input.is-invalid ~ .custom-control-label{color:#dc3545}.was-validated .custom-control-input:invalid ~ .custom-control-label::before,.custom-control-input.is-invalid ~ .custom-control-label::before{background-color:#efa2a9}.was-validated .custom-control-input:invalid ~ .invalid-feedback,.was-validated .custom-control-input:invalid ~ .invalid-tooltip,.custom-control-input.is-invalid ~ .invalid-feedback,.custom-control-input.is-invalid ~ .invalid-tooltip{display:block}.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before,.custom-control-input.is-invalid:checked ~ .custom-control-label::before{background-color:#e4606d}.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before,.custom-control-input.is-invalid:focus ~ .custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(220,53,69,0.25)}.was-validated .custom-file-input:invalid ~ .custom-file-label,.custom-file-input.is-invalid ~ .custom-file-label{border-color:#dc3545}.was-validated .custom-file-input:invalid ~ .custom-file-label::before,.custom-file-input.is-invalid ~ .custom-file-label::before{border-color:inherit}.was-validated .custom-file-input:invalid ~ .invalid-feedback,.was-validated .custom-file-input:invalid ~ .invalid-tooltip,.custom-file-input.is-invalid ~ .invalid-feedback,.custom-file-input.is-invalid ~ .invalid-tooltip{display:block}.was-validated .custom-file-input:invalid:focus ~ .custom-file-label,.custom-file-input.is-invalid:focus ~ .custom-file-label{box-shadow:0 0 0 .2rem rgba(220,53,69,0.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media(min-width:576px){.form-inline label{display:flex;align-items:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:flex;flex:0 0 auto;flex-flow:row wrap;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .input-group{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;text-align:center;white-space:nowrap;vertical-align:middle;user-select:none;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.btn:hover,.btn:focus{text-decoration:none}.btn:focus,.btn.focus{outline:0;box-shadow:0 0 0 .2rem rgba(60,110,180,0.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}.btn:not(:disabled):not(.disabled):active,.btn:not(:disabled):not(.disabled).active{background-image:none}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#3c6eb4;border-color:#3c6eb4}.btn-primary:hover{color:#fff;background-color:#325c97;border-color:#2f578e}.btn-primary:focus,.btn-primary.focus{box-shadow:0 0 0 .2rem rgba(60,110,180,0.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#3c6eb4;border-color:#3c6eb4}.btn-primary:not(:disabled):not(.disabled):active,.btn-primary:not(:disabled):not(.disabled).active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#2f578e;border-color:#2c5184}.btn-primary:not(:disabled):not(.disabled):active:focus,.btn-primary:not(:disabled):not(.disabled).active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(60,110,180,0.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary:focus,.btn-secondary.focus{box-shadow:0 0 0 .2rem rgba(108,117,125,0.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled):active,.btn-secondary:not(:disabled):not(.disabled).active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled):active:focus,.btn-secondary:not(:disabled):not(.disabled).active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,0.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success:focus,.btn-success.focus{box-shadow:0 0 0 .2rem rgba(40,167,69,0.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled):active,.btn-success:not(:disabled):not(.disabled).active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled):active:focus,.btn-success:not(:disabled):not(.disabled).active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,0.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info:focus,.btn-info.focus{box-shadow:0 0 0 .2rem rgba(23,162,184,0.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled):active,.btn-info:not(:disabled):not(.disabled).active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled):active:focus,.btn-info:not(:disabled):not(.disabled).active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,0.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning:focus,.btn-warning.focus{box-shadow:0 0 0 .2rem rgba(255,193,7,0.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled):active,.btn-warning:not(:disabled):not(.disabled).active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled):active:focus,.btn-warning:not(:disabled):not(.disabled).active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,0.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger:focus,.btn-danger.focus{box-shadow:0 0 0 .2rem rgba(220,53,69,0.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled):active,.btn-danger:not(:disabled):not(.disabled).active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled):active:focus,.btn-danger:not(:disabled):not(.disabled).active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,0.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light:focus,.btn-light.focus{box-shadow:0 0 0 .2rem rgba(248,249,250,0.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled):active,.btn-light:not(:disabled):not(.disabled).active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled):active:focus,.btn-light:not(:disabled):not(.disabled).active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,0.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark:focus,.btn-dark.focus{box-shadow:0 0 0 .2rem rgba(52,58,64,0.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled):active,.btn-dark:not(:disabled):not(.disabled).active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled):active:focus,.btn-dark:not(:disabled):not(.disabled).active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,0.5)}.btn-outline-primary{color:#3c6eb4;background-color:transparent;background-image:none;border-color:#3c6eb4}.btn-outline-primary:hover{color:#fff;background-color:#3c6eb4;border-color:#3c6eb4}.btn-outline-primary:focus,.btn-outline-primary.focus{box-shadow:0 0 0 .2rem rgba(60,110,180,0.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#3c6eb4;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled):active,.btn-outline-primary:not(:disabled):not(.disabled).active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#3c6eb4;border-color:#3c6eb4}.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(60,110,180,0.5)}.btn-outline-secondary{color:#6c757d;background-color:transparent;background-image:none;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:focus,.btn-outline-secondary.focus{box-shadow:0 0 0 .2rem rgba(108,117,125,0.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled):active,.btn-outline-secondary:not(:disabled):not(.disabled).active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,0.5)}.btn-outline-success{color:#28a745;background-color:transparent;background-image:none;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:focus,.btn-outline-success.focus{box-shadow:0 0 0 .2rem rgba(40,167,69,0.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled):active,.btn-outline-success:not(:disabled):not(.disabled).active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled):active:focus,.btn-outline-success:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,0.5)}.btn-outline-info{color:#17a2b8;background-color:transparent;background-image:none;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:focus,.btn-outline-info.focus{box-shadow:0 0 0 .2rem rgba(23,162,184,0.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled):active,.btn-outline-info:not(:disabled):not(.disabled).active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled):active:focus,.btn-outline-info:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,0.5)}.btn-outline-warning{color:#ffc107;background-color:transparent;background-image:none;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:focus,.btn-outline-warning.focus{box-shadow:0 0 0 .2rem rgba(255,193,7,0.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled):active,.btn-outline-warning:not(:disabled):not(.disabled).active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,0.5)}.btn-outline-danger{color:#dc3545;background-color:transparent;background-image:none;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:focus,.btn-outline-danger.focus{box-shadow:0 0 0 .2rem rgba(220,53,69,0.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled):active,.btn-outline-danger:not(:disabled):not(.disabled).active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,0.5)}.btn-outline-light{color:#f8f9fa;background-color:transparent;background-image:none;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:focus,.btn-outline-light.focus{box-shadow:0 0 0 .2rem rgba(248,249,250,0.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled):active,.btn-outline-light:not(:disabled):not(.disabled).active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled):active:focus,.btn-outline-light:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,0.5)}.btn-outline-dark{color:#343a40;background-color:transparent;background-image:none;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:focus,.btn-outline-dark.focus{box-shadow:0 0 0 .2rem rgba(52,58,64,0.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled):active,.btn-outline-dark:not(:disabled):not(.disabled).active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,0.5)}.btn-link{font-weight:400;color:#3c6eb4;background-color:transparent}.btn-link:hover{color:#294b7b;text-decoration:underline;background-color:transparent;border-color:transparent}.btn-link:focus,.btn-link.focus{text-decoration:underline;border-color:transparent;box-shadow:none}.btn-link:disabled,.btn-link.disabled{color:#6c757d}.btn-lg,.btn-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-sm,.btn-group-sm>.btn{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;transition:opacity .15s linear}.fade.show{opacity:1}.collapse{display:none}.collapse.show{display:block}tr.collapse.show{display:table-row}tbody.collapse.show{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}.dropup,.dropdown{position:relative}.dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,0.15);border-radius:.25rem}.dropup .dropdown-menu{margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;width:0;height:0;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:hover,.dropdown-item:focus{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#3c6eb4}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;flex:0 1 auto}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover{z-index:1}.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:1}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group,.btn-group-vertical .btn+.btn,.btn-group-vertical .btn+.btn-group,.btn-group-vertical .btn-group+.btn,.btn-group-vertical .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.btn-group>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:not(:first-child),.btn-group>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after{margin-left:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical .btn,.btn-group-vertical .btn-group{width:100%}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type="radio"],.btn-group-toggle>.btn input[type="checkbox"],.btn-group-toggle>.btn-group>.btn input[type="radio"],.btn-group-toggle>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.custom-select,.input-group>.custom-file{position:relative;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.form-control:focus,.input-group>.custom-select:focus,.input-group>.custom-file:focus{z-index:3}.input-group>.form-control+.form-control,.input-group>.form-control+.custom-select,.input-group>.form-control+.custom-file,.input-group>.custom-select+.form-control,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.custom-file,.input-group>.custom-file+.form-control,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.custom-file{margin-left:-1px}.input-group>.form-control:not(:last-child),.input-group>.custom-select:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.form-control:not(:first-child),.input-group>.custom-select:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:flex;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::before{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label,.input-group>.custom-file:not(:first-child) .custom-file-label::before{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-prepend,.input-group-append{display:flex}.input-group-prepend .btn,.input-group-append .btn{position:relative;z-index:2}.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.input-group-text,.input-group-append .input-group-text+.btn{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type="radio"],.input-group-text input[type="checkbox"]{margin-top:0}.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text,.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;z-index:-1;opacity:0}.custom-control-input:checked ~ .custom-control-label::before{color:#fff;background-color:#3c6eb4}.custom-control-input:focus ~ .custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(60,110,180,0.25)}.custom-control-input:active ~ .custom-control-label::before{color:#fff;background-color:#bacde8}.custom-control-input:disabled ~ .custom-control-label{color:#6c757d}.custom-control-input:disabled ~ .custom-control-label::before{background-color:#e9ecef}.custom-control-label{margin-bottom:0}.custom-control-label::before{position:absolute;top:.25rem;left:0;display:block;width:1rem;height:1rem;pointer-events:none;content:"";user-select:none;background-color:#dee2e6}.custom-control-label::after{position:absolute;top:.25rem;left:0;display:block;width:1rem;height:1rem;content:"";background-repeat:no-repeat;background-position:center center;background-size:50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked ~ .custom-control-label::before{background-color:#3c6eb4}.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before{background-color:#3c6eb4}.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before{background-color:rgba(60,110,180,0.5)}.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before{background-color:rgba(60,110,180,0.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked ~ .custom-control-label::before{background-color:#3c6eb4}.custom-radio .custom-control-input:checked ~ .custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E")}.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before{background-color:rgba(60,110,180,0.5)}.custom-select{display:inline-block;width:100%;height:calc(2.25rem+2px);padding:.375rem 1.75rem .375rem .75rem;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center;background-size:8px 10px;border:1px solid #ced4da;border-radius:.25rem;appearance:none}.custom-select:focus{border-color:#94b2db;outline:0;box-shadow:inset 0 1px 2px rgba(0,0,0,0.075),0 0 5px rgba(148,178,219,0.5)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{opacity:0}.custom-select-sm{height:calc(1.8125rem+2px);padding-top:.375rem;padding-bottom:.375rem;font-size:75%}.custom-select-lg{height:calc(2.875rem+2px);padding-top:.375rem;padding-bottom:.375rem;font-size:125%}.custom-file{position:relative;display:inline-block;width:100%;height:calc(2.25rem+2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(2.25rem+2px);margin:0;opacity:0}.custom-file-input:focus ~ .custom-file-control{border-color:#94b2db;box-shadow:0 0 0 .2rem rgba(60,110,180,0.25)}.custom-file-input:focus ~ .custom-file-control::before{border-color:#94b2db}.custom-file-input:lang(en) ~ .custom-file-label::after{content:"Browse"}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(2.25rem+2px);padding:.375rem .75rem;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(calc(2.25rem+2px) - 1px * 2);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:1px solid #ced4da;border-radius:0 .25rem .25rem 0}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:hover,.nav-link:focus{text-decoration:none}.nav-link.disabled{color:#6c757d}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:hover,.nav-tabs .nav-link:focus{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#3c6eb4}.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:.5rem 1rem}.navbar>.container,.navbar>.container-fluid{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:hover,.navbar-toggler:focus{text-decoration:none}.navbar-toggler:not(:disabled):not(.disabled){cursor:pointer}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;background-size:100% 100%}@media(max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media(min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .dropdown-menu-right{right:0;left:auto}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .dropup .dropdown-menu{top:auto;bottom:100%}}@media(max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0}}@media(min-width:768px){.navbar-expand-md{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .dropdown-menu-right{right:0;left:auto}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .dropup .dropdown-menu{top:auto;bottom:100%}}@media(max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0}}@media(min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .dropdown-menu-right{right:0;left:auto}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .dropup .dropdown-menu{top:auto;bottom:100%}}@media(max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-right:0;padding-left:0}}@media(min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .dropdown-menu-right{right:0;left:auto}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .dropup .dropdown-menu{top:auto;bottom:100%}}.navbar-expand{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .dropdown-menu-right{right:0;left:auto}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid{flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .dropup .dropdown-menu{top:auto;bottom:100%}.navbar-light .navbar-brand{color:rgba(0,0,0,0.9)}.navbar-light .navbar-brand:hover,.navbar-light .navbar-brand:focus{color:rgba(0,0,0,0.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,0.5)}.navbar-light .navbar-nav .nav-link:hover,.navbar-light .navbar-nav .nav-link:focus{color:rgba(0,0,0,0.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,0.3)}.navbar-light .navbar-nav .show>.nav-link,.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .nav-link.active{color:rgba(0,0,0,0.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,0.5);border-color:rgba(0,0,0,0.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0,0,0,0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-light .navbar-text{color:rgba(0,0,0,0.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,0.9)}.navbar-light .navbar-text a:hover,.navbar-light .navbar-text a:focus{color:rgba(0,0,0,0.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:hover,.navbar-dark .navbar-brand:focus{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,0.5)}.navbar-dark .navbar-nav .nav-link:hover,.navbar-dark .navbar-nav .nav-link:focus{color:rgba(255,255,255,0.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,0.25)}.navbar-dark .navbar-nav .show>.nav-link,.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .nav-link.active{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,0.5);border-color:rgba(255,255,255,0.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255,255,255,0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-dark .navbar-text{color:rgba(255,255,255,0.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:hover,.navbar-dark .navbar-text a:focus{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,0.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-0.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,0.03);border-bottom:1px solid rgba(0,0,0,0.125)}.card-header:first-child{border-radius:calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,0.03);border-top:1px solid rgba(0,0,0,0.125)}.card-footer:last-child{border-radius:0 0 calc(0.25rem - 1px) calc(0.25rem - 1px)}.card-header-tabs{margin-right:-0.625rem;margin-bottom:-0.75rem;margin-left:-0.625rem;border-bottom:0}.card-header-pills{margin-right:-0.625rem;margin-left:-0.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img{width:100%;border-radius:calc(0.25rem - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(0.25rem - 1px);border-top-right-radius:calc(0.25rem - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(0.25rem - 1px);border-bottom-left-radius:calc(0.25rem - 1px)}.card-deck{display:flex;flex-direction:column}.card-deck .card{margin-bottom:15px}@media(min-width:576px){.card-deck{flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{display:flex;flex:1 0 0;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group{display:flex;flex-direction:column}.card-group>.card{margin-bottom:15px}@media(min-width:576px){.card-group{flex-flow:row wrap}.card-group>.card{flex:1 0 0;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:first-child .card-img-top,.card-group>.card:first-child .card-header{border-top-right-radius:0}.card-group>.card:first-child .card-img-bottom,.card-group>.card:first-child .card-footer{border-bottom-right-radius:0}.card-group>.card:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:last-child .card-img-top,.card-group>.card:last-child .card-header{border-top-left-radius:0}.card-group>.card:last-child .card-img-bottom,.card-group>.card:last-child .card-footer{border-bottom-left-radius:0}.card-group>.card:only-child{border-radius:.25rem}.card-group>.card:only-child .card-img-top,.card-group>.card:only-child .card-header{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card-group>.card:only-child .card-img-bottom,.card-group>.card:only-child .card-footer{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-group>.card:not(:first-child):not(:last-child):not(:only-child){border-radius:0}.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-top,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-header,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-footer{border-radius:0}}.card-columns .card{margin-bottom:.75rem}@media(min-width:576px){.card-columns{column-count:3;column-gap:1.25rem}.card-columns .card{display:inline-block;width:100%}}.breadcrumb{display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;padding-left:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#3c6eb4;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{color:#294b7b;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;box-shadow:0 0 0 .2rem rgba(60,110,180,0.25)}.page-link:not(:disabled):not(.disabled){cursor:pointer}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:1;color:#fff;background-color:#3c6eb4;border-color:#3c6eb4}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#3c6eb4}.badge-primary[href]:hover,.badge-primary[href]:focus{color:#fff;text-decoration:none;background-color:#2f578e}.badge-secondary{color:#fff;background-color:#6c757d}.badge-secondary[href]:hover,.badge-secondary[href]:focus{color:#fff;text-decoration:none;background-color:#545b62}.badge-success{color:#fff;background-color:#28a745}.badge-success[href]:hover,.badge-success[href]:focus{color:#fff;text-decoration:none;background-color:#1e7e34}.badge-info{color:#fff;background-color:#17a2b8}.badge-info[href]:hover,.badge-info[href]:focus{color:#fff;text-decoration:none;background-color:#117a8b}.badge-warning{color:#212529;background-color:#ffc107}.badge-warning[href]:hover,.badge-warning[href]:focus{color:#212529;text-decoration:none;background-color:#d39e00}.badge-danger{color:#fff;background-color:#dc3545}.badge-danger[href]:hover,.badge-danger[href]:focus{color:#fff;text-decoration:none;background-color:#bd2130}.badge-light{color:#212529;background-color:#f8f9fa}.badge-light[href]:hover,.badge-light[href]:focus{color:#212529;text-decoration:none;background-color:#dae0e5}.badge-dark{color:#fff;background-color:#343a40}.badge-dark[href]:hover,.badge-dark[href]:focus{color:#fff;text-decoration:none;background-color:#1d2124}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media(min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#1f395e;background-color:#d8e2f0;border-color:#c8d6ea}.alert-primary hr{border-top-color:#b6c8e3}.alert-primary .alert-link{color:#122238}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:flex;flex-direction:column;justify-content:center;color:#fff;text-align:center;background-color:#3c6eb4;transition:width .6s ease}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{animation:progress-bar-stripes 1s linear infinite}.media{display:flex;align-items:flex-start}.media-body{flex:1}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,0.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item:hover,.list-group-item:focus{z-index:1;text-decoration:none}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#3c6eb4;border-color:#3c6eb4}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom:0}.list-group-item-primary{color:#1f395e;background-color:#c8d6ea}.list-group-item-primary.list-group-item-action:hover,.list-group-item-primary.list-group-item-action:focus{color:#1f395e;background-color:#b6c8e3}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#1f395e;border-color:#1f395e}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:hover,.list-group-item-secondary.list-group-item-action:focus{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:hover,.list-group-item-success.list-group-item-action:focus{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:hover,.list-group-item-info.list-group-item-action:focus{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:hover,.list-group-item-warning.list-group-item-action:focus{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:hover,.list-group-item-danger.list-group-item-action:focus{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:hover,.list-group-item-light.list-group-item-action:focus{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:hover,.list-group-item-dark.list-group-item-action:focus{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover,.close:focus{color:#000;text-decoration:none;opacity:.75}.close:not(:disabled):not(.disabled){cursor:pointer}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;outline:0}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0,-25%)}.modal.show .modal-dialog{transform:translate(0,0)}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% -(0.5rem * 2))}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,0.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem;border-bottom:1px solid #e9ecef;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;align-items:center;justify-content:flex-end;padding:1rem;border-top:1px solid #e9ecef}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media(min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-centered{min-height:calc(100% -(1.75rem * 2))}.modal-sm{max-width:300px}}@media(min-width:992px){.modal-lg{max-width:800px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:"Open Sans";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-top,.bs-tooltip-auto[x-placement^="top"]{padding:.4rem 0}.bs-tooltip-top .arrow,.bs-tooltip-auto[x-placement^="top"] .arrow{bottom:0}.bs-tooltip-top .arrow::before,.bs-tooltip-auto[x-placement^="top"] .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-right,.bs-tooltip-auto[x-placement^="right"]{padding:0 .4rem}.bs-tooltip-right .arrow,.bs-tooltip-auto[x-placement^="right"] .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-right .arrow::before,.bs-tooltip-auto[x-placement^="right"] .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-bottom,.bs-tooltip-auto[x-placement^="bottom"]{padding:.4rem 0}.bs-tooltip-bottom .arrow,.bs-tooltip-auto[x-placement^="bottom"] .arrow{top:0}.bs-tooltip-bottom .arrow::before,.bs-tooltip-auto[x-placement^="bottom"] .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-left,.bs-tooltip-auto[x-placement^="left"]{padding:0 .4rem}.bs-tooltip-left .arrow,.bs-tooltip-auto[x-placement^="left"] .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-left .arrow::before,.bs-tooltip-auto[x-placement^="left"] .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:"Open Sans";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,0.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::before,.popover .arrow::after{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-top,.bs-popover-auto[x-placement^="top"]{margin-bottom:.5rem}.bs-popover-top .arrow,.bs-popover-auto[x-placement^="top"] .arrow{bottom:calc((0.5rem+1px) * -1)}.bs-popover-top .arrow::before,.bs-popover-auto[x-placement^="top"] .arrow::before,.bs-popover-top .arrow::after,.bs-popover-auto[x-placement^="top"] .arrow::after{border-width:.5rem .5rem 0}.bs-popover-top .arrow::before,.bs-popover-auto[x-placement^="top"] .arrow::before{bottom:0;border-top-color:rgba(0,0,0,0.25)}.bs-popover-top .arrow::after,.bs-popover-auto[x-placement^="top"] .arrow::after{bottom:1px;border-top-color:#fff}.bs-popover-right,.bs-popover-auto[x-placement^="right"]{margin-left:.5rem}.bs-popover-right .arrow,.bs-popover-auto[x-placement^="right"] .arrow{left:calc((0.5rem+1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-right .arrow::before,.bs-popover-auto[x-placement^="right"] .arrow::before,.bs-popover-right .arrow::after,.bs-popover-auto[x-placement^="right"] .arrow::after{border-width:.5rem .5rem .5rem 0}.bs-popover-right .arrow::before,.bs-popover-auto[x-placement^="right"] .arrow::before{left:0;border-right-color:rgba(0,0,0,0.25)}.bs-popover-right .arrow::after,.bs-popover-auto[x-placement^="right"] .arrow::after{left:1px;border-right-color:#fff}.bs-popover-bottom,.bs-popover-auto[x-placement^="bottom"]{margin-top:.5rem}.bs-popover-bottom .arrow,.bs-popover-auto[x-placement^="bottom"] .arrow{top:calc((0.5rem+1px) * -1)}.bs-popover-bottom .arrow::before,.bs-popover-auto[x-placement^="bottom"] .arrow::before,.bs-popover-bottom .arrow::after,.bs-popover-auto[x-placement^="bottom"] .arrow::after{border-width:0 .5rem .5rem .5rem}.bs-popover-bottom .arrow::before,.bs-popover-auto[x-placement^="bottom"] .arrow::before{top:0;border-bottom-color:rgba(0,0,0,0.25)}.bs-popover-bottom .arrow::after,.bs-popover-auto[x-placement^="bottom"] .arrow::after{top:1px;border-bottom-color:#fff}.bs-popover-bottom .popover-header::before,.bs-popover-auto[x-placement^="bottom"] .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-0.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-left,.bs-popover-auto[x-placement^="left"]{margin-right:.5rem}.bs-popover-left .arrow,.bs-popover-auto[x-placement^="left"] .arrow{right:calc((0.5rem+1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-left .arrow::before,.bs-popover-auto[x-placement^="left"] .arrow::before,.bs-popover-left .arrow::after,.bs-popover-auto[x-placement^="left"] .arrow::after{border-width:.5rem 0 .5rem .5rem}.bs-popover-left .arrow::before,.bs-popover-auto[x-placement^="left"] .arrow::before{right:0;border-left-color:rgba(0,0,0,0.25)}.bs-popover-left .arrow::after,.bs-popover-auto[x-placement^="left"] .arrow::after{right:1px;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;color:inherit;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(0.3rem - 1px);border-top-right-radius:calc(0.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-item{position:relative;display:none;align-items:center;width:100%;transition:transform .6s ease;backface-visibility:hidden;perspective:1000px}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next,.carousel-item-prev{position:absolute;top:0}.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{transform:translateX(0)}@supports(transform-style:preserve-3d){.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{transform:translate3d(0,0,0)}}.carousel-item-next,.active.carousel-item-right{transform:translateX(100%)}@supports(transform-style:preserve-3d){.carousel-item-next,.active.carousel-item-right{transform:translate3d(100%,0,0)}}.carousel-item-prev,.active.carousel-item-left{transform:translateX(-100%)}@supports(transform-style:preserve-3d){.carousel-item-prev,.active.carousel-item-left{transform:translate3d(-100%,0,0)}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;display:flex;align-items:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:20px;height:20px;background:transparent no-repeat center center;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E")}.carousel-control-next-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E")}.carousel-indicators{position:absolute;right:0;bottom:10px;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{position:relative;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;background-color:rgba(255,255,255,0.5)}.carousel-indicators li::before{position:absolute;top:-10px;left:0;display:inline-block;width:100%;height:10px;content:""}.carousel-indicators li::after{position:absolute;bottom:-10px;left:0;display:inline-block;width:100%;height:10px;content:""}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#3c6eb4!important}a.bg-primary:hover,a.bg-primary:focus,button.bg-primary:hover,button.bg-primary:focus{background-color:#2f578e!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:hover,a.bg-secondary:focus,button.bg-secondary:hover,button.bg-secondary:focus{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:hover,a.bg-success:focus,button.bg-success:hover,button.bg-success:focus{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:hover,a.bg-info:focus,button.bg-info:hover,button.bg-info:focus{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:hover,a.bg-warning:focus,button.bg-warning:hover,button.bg-warning:focus{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:hover,a.bg-danger:focus,button.bg-danger:hover,button.bg-danger:focus{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:hover,a.bg-light:focus,button.bg-light:hover,button.bg-light:focus{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:hover,a.bg-dark:focus,button.bg-dark:hover,button.bg-dark:focus{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#3c6eb4!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-circle{border-radius:50%!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}@media(min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}}@media(min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}}@media(min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}}@media(min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.85714%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media(min-width:576px){.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}@media(min-width:768px){.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}}@media(min-width:992px){.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}}@media(min-width:1200px){.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media(min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media(min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media(min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media(min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports(position:sticky){.sticky-top{position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;clip-path:inset(50%);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal;clip-path:none}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media(min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media(min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media(min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media(min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-justify{text-align:justify!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media(min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media(min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media(min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media(min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#3c6eb4!important}a.text-primary:hover,a.text-primary:focus{color:#2f578e!important}.text-secondary{color:#6c757d!important}a.text-secondary:hover,a.text-secondary:focus{color:#545b62!important}.text-success{color:#28a745!important}a.text-success:hover,a.text-success:focus{color:#1e7e34!important}.text-info{color:#17a2b8!important}a.text-info:hover,a.text-info:focus{color:#117a8b!important}.text-warning{color:#ffc107!important}a.text-warning:hover,a.text-warning:focus{color:#d39e00!important}.text-danger{color:#dc3545!important}a.text-danger:hover,a.text-danger:focus{color:#bd2130!important}.text-light{color:#f8f9fa!important}a.text-light:hover,a.text-light:focus{color:#dae0e5!important}.text-dark{color:#343a40!important}a.text-dark:hover,a.text-dark:focus{color:#1d2124!important}.text-muted{color:#6c757d!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,*::before,*::after{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:"(" attr(title) ")"}pre{white-space:pre-wrap!important}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}.container-narrow{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media(min-width:576px){.container-narrow{max-width:34rem}}@media(min-width:768px){.container-narrow{max-width:45rem}}@media(min-width:992px){.container-narrow{max-width:45rem}}@media(min-width:1200px){.container-narrow{max-width:45rem}}.inline-list li{display:inline-block}.social-list li{margin:0 .4rem 1em 0}.social-list a{font-size:1.6em}.headline-list{margin-bottom:1em}.headline-list.flush{margin:0}.headline-list h4{font-weight:normal}.headline-list li{padding:1em/4 0;border-top:1px solid #d5d5d5}.post-list li{margin-bottom:1em}.bullet-list{list-style:square;margin:0 0 1em 1.2em;line-height:1.3}.bullet-list li{margin-bottom:1em}.text-list{margin:0 0 1em;line-height:1.3}.text-list li{margin-bottom:1em}.c-media-list__item{margin-bottom:1.5em}.c-tile-list{display:flex;flex-direction:column}@media all and (min-width:55rem){.c-tile-list{flex-direction:row;flex-wrap:wrap}}.c-tile-list__item{width:100%;margin-bottom:1em;position:relative}.c-tile-list__item:nth-child(2n){padding-right:0}@media all and (min-width:55rem){.c-tile-list__item{width:50%;margin:0;padding:0 1em 1em 0}}.c-thumbnail-list li{margin-bottom:1.5em}.c-thumbnail-list .c-block-media__media{width:80px}.c-thumbnail-list .c-block-media__headline{text-transform:none!important;font-size:1.5em}.c-color-bars-list li{max-width:480px;position:relative;height:80px;padding-top:15px;padding-left:20px;border:1px solid #d5d5d5;border-top:0;color:#55595c;font-size:1.3rem;font-weight:bold}.c-color-bars-list li:first-child{border-top:1px solid #d5d5d5}.c-color-bars-list li.cur{height:120px}.c-color-bars-list li.cur:before{position:absolute;height:100%;width:10px;bottom:0;left:0;content:"";background:#3c6eb4}.c-color-bars-list li.prev:before{position:absolute;height:100%;width:10px;bottom:0;left:0;content:"";background:#79db32}.c-color-bars-list li.old{color:#d5d5d5}.c-ticket-list{max-width:480px}.c-ticket-list li{border:1px solid #d5d5d5;border-top:0;padding:15px 20px;color:#808080}.c-ticket-list:first-child{border-top:1px solid #d5d5d5}.c-ticket-list .list-item-title,.c-ticket-list .list-item-data{float:left}.c-ticket-list .list-item-title{border-radius:20px;padding:4px 10px;background:#808080;color:white;font-size:1.2rem;font-weight:bold}.c-ticket-list .origin{float:right;margin-top:3px}.c-ticket-list .origin p{display:inline-block;margin-right:2px}.c-ticket-list .origin img{margin-bottom:5px}.c-ticket-list .c-widget-action-btn.btn{float:right;padding:3px 15px}.c-ticket-list .c-widget-action-btn.btn img{display:block}.c-ticket-list .list-subheader{font-size:1.2rem;font-weight:bold}.c-ticket-list .list-item-info,.c-ticket-list .list-item-data{margin:0;font-size:1.2rem}.nav-underline .nav-item.active,.nav-underline .nav-item.active:hover{box-shadow:0 -3px 0 0 #3c6eb4 inset}.nav-underline .nav-item.active .nav-link,.nav-underline .nav-item.active:hover .nav-link{color:#3c6eb4}.nav-underline li:hover{box-shadow:0 -3px 0 0 #ddd inset}.nav-underline li{padding-top:.2rem;padding-bottom:.2rem}.navbar-underline{background-color:#d5d5d5;border-top:1px solid #c8c8c8}pre{background-color:#fdf6e3;padding:1rem}.table-expand-col{min-width:100%}body{background-color:#495057}.modal-header{background-color:#eceeef}.modal-footer{border-top:0!important}.modal h4{text-transform:none!important}.modal-card{background-color:#d5d5d5;padding:15px}.modal-body h4{font-weight:600!important}.c-widget-header.card-header{padding:10px 10px 5px 10px;max-width:480px;border:1px solid #d5d5d5;border-radius:0!important;background:#f7f7f9}.c-widget-header h6{font-family:"Open Sans";font-size:1.3rem;font-weight:normal}.c-widget-header-btn{margin-top:-29px;float:right}.c-widget-action-btn.btn{padding:5px 10px;color:#a07cbc;font-weight:bold}.c-widget-action-btn.btn:hover,.c-widget-action-btn.btn:focus,.c-widget-action-btn.btn:active,.c-widget-action-btn.btn:active:focus{color:#a07cbc}.c-widget-view-more-btn button{padding:0;margin-right:5px;color:#808080;font-size:1.2rem}.c-widget-view-more-btn button:hover,.c-widget-view-more-btn button:focus{color:#55595c}.c-widget-view-more-btn img{margin-top:2px}.c-widget-meeting-event{max-width:480px;border:1px solid #d5d5d5;padding:15px 20px}.c-widget-meeting-event h6,.c-widget-meeting-event h5,.c-widget-meeting-event p{color:#55595c;font-family:"Open Sans"}.c-widget-meeting-event h5{font-weight:bold;font-size:2rem}.c-widget-meeting-event h6{margin-top:2px;margin-bottom:10px;font-size:1.1rem}.c-widget-meeting-event .date,.c-widget-meeting-event .time-ch{font-size:.9rem;float:left}.c-widget-meeting-event button{float:right}.c-widget-meeting-event .date{margin-right:20px}.c-widget-meeting-event .time-ch p,.c-widget-meeting-event .time-ch a{padding:0;margin:0}.c-widget-meeting-request{max-width:480px;border:1px solid #d5d5d5;padding:15px 20px}.c-widget-meeting-request h6,.c-widget-meeting-request h5{color:#55595c;font-family:"Open Sans"}.c-widget-meeting-request h5{float:left;font-weight:bold;font-size:2rem}.c-widget-meeting-request h6{margin-top:2px;margin-bottom:10px;font-size:1.1rem}.c-widget-meeting-request .meeting-request-btn{float:right}.masthead{background-image:linear-gradient(to bottom,#eee 0,#ddd 100%);background-repeat:repeat-x;padding-top:10px;padding-bottom:10px}.subheader{background:#f8f9fa;border-bottom:1px solid #dee2e6}.subheader .nav-tabs{margin-bottom:-1px}.footer{background-color:#495057}.bodycontent{background:#fff}.document-docutils>.section{padding-bottom:1rem}.document-docutils pre{}.document-docutils pre .comment{color:#586e75}.document-docutils pre .error{color:#93a1a1}.document-docutils pre .generic{color:#93a1a1}.document-docutils pre .keyword{color:#859900}.document-docutils pre .literal{color:#93a1a1}.document-docutils pre .name{color:#93a1a1}.document-docutils pre .operator{color:#859900}.document-docutils pre .other{color:#cb4b16}.document-docutils pre .punctuation{color:#93a1a1}.document-docutils pre .comment.multiline{color:#586e75}.document-docutils pre .comment.preproc{color:#859900}.document-docutils pre .comment.single{color:#586e75}.document-docutils pre .comment.special{color:#859900}.document-docutils pre .generic.deleted{color:#2aa198}.document-docutils pre .generic.emph{color:#93a1a1;font-style:italic}.document-docutils pre .generic.error{color:#dc322f}.document-docutils pre .generic.heading{color:#cb4b16}.document-docutils pre .generic.inserted{color:#859900}.document-docutils pre .generic.output{color:#93a1a1}.document-docutils pre .generic.prompt{color:#93a1a1}.document-docutils pre .generic.strong{color:#93a1a1;font-weight:bold}.document-docutils pre .generic.subheading{color:#cb4b16}.document-docutils pre .generic.traceback{color:#93a1a1}.document-docutils pre .keyword.constant{color:#cb4b16}.document-docutils pre .keyword.declaration{color:#268bd2}.document-docutils pre .keyword.namespace{color:#859900}.document-docutils pre .keyword.pseudo{color:#859900}.document-docutils pre .keyword.reserved{color:#268bd2}.document-docutils pre .keyword.type{color:#dc322f}.document-docutils pre .literal.date{color:#93a1a1}.document-docutils pre .literal.number{color:#2aa198}.document-docutils pre .literal.string{color:#2aa198}.document-docutils pre .name.attribute{color:#93a1a1}.document-docutils pre .name.builtin{color:#B58900}.document-docutils pre .name.class{color:#268bd2}.document-docutils pre .name.constant{color:#cb4b16}.document-docutils pre .name.decorator{color:#268bd2}.document-docutils pre .name.entity{color:#cb4b16}.document-docutils pre .name.exception{color:#cb4b16}.document-docutils pre .name.function{color:#268bd2}.document-docutils pre .name.label{color:#93a1a1}.document-docutils pre .name.namespace{color:#93a1a1}.document-docutils pre .name.other{color:#93a1a1}.document-docutils pre .name.property{color:#93a1a1}.document-docutils pre .name.tag{color:#268bd2}.document-docutils pre .name.variable{color:#268bd2}.document-docutils pre .operator.word{color:#859900}.document-docutils pre .text.whitespace{color:#93a1a1}.document-docutils pre .literal.number.float{color:#2aa198}.document-docutils pre .literal.number.hex{color:#2aa198}.document-docutils pre .literal.number.integer{color:#2aa198}.document-docutils pre .literal.number.oct{color:#2aa198}.document-docutils pre .literal.string.backtick{color:#586e75}.document-docutils pre .literal.string.char{color:#2aa198}.document-docutils pre .literal.string.doc{color:#93a1a1}.document-docutils pre .literal.string.double{color:#2aa198}.document-docutils pre .literal.string.escape{color:#cb4b16}.document-docutils pre .literal.string.heredoc{color:#93a1a1}.document-docutils pre .literal.string.interpol{color:#2aa198}.document-docutils pre .literal.string.other{color:#2aa198}.document-docutils pre .literal.string.regex{color:#dc322f}.document-docutils pre .literal.string.single{color:#2aa198}.document-docutils pre .literal.string.symbol{color:#2aa198}.document-docutils pre .name.builtin.pseudo{color:#268bd2}.document-docutils pre .name.variable.class{color:#268bd2}.document-docutils pre .name.variable.global{color:#268bd2}.document-docutils pre .name.variable.instance{color:#268bd2}.document-docutils pre .literal.number.integer.long{color:#2aa198}.fedora-preheader{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;width:100%!important;position:relative;background:white url(../img/repeater.png) 0 100% repeat-x;display:block;color:black}.fedora-preheader a{color:#000}.fedora-header{display:block;text-indent:-9999px;background:url(../img/blockerbugs-logo-light.png) 10px 50% no-repeat;height:73px;width:175px;overflow:hidden;text-decoration:none}.fedora-preheader-staging{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;width:100%!important;position:relative;display:block;color:black}.fedora-header-staging{display:block;text-indent:-9999px;background:url(../img/blockerbugs-logo-light.png) no-repeat;background-size:100%;height:40px;width:175px;overflow:hidden;text-decoration:none}.login-header{display:flex;align-items:center;justify-content:center;height:100%}#main-nav button a{color:#333}.btn-primary a{color:#eee!important}#main-nav{padding-top:2em}#secondary-nav{padding-top:.75em;padding-bottom:1.5em}table.tablesorter thead tr .headerSortUp{background-image:url(../img/asc.gif)}.thead-dark th{color:#55595c!important;border:none!important;background-image:linear-gradient(to bottom,#eee 0,#ddd 100%)!important}.btn-light{background-color:white}.btn-light .active{background-color:#ddd!important}table.tablesorter tr:nth-child(even){background-color:#f7f7f9}table.tablesorter tr:nth-child(odd){background-color:white}.btn-bb-light{background-color:#dae0e5;border-color:#d3d9df}.foundicon-idea.yellow{color:#e59728}.foundicon-refresh.green{color:#61b921}.needinfo{font-weight:bold;color:#885aab;font-size:17px}body{margin-bottom:200px}.footer{position:absolute;display:flex;align-items:center;justify-content:center;bottom:0;width:100%;height:100px;vertical-align:middle}html{position:relative;min-height:100%;overflow-y:scroll}.fedora-prefooter{color:#818a91}textarea{width:100%;height:150px}fieldset{border:1px solid #dae0e5!important;border-radius:4px;padding:1em}fieldset legend{width:unset!important;font-size:1em;margin-left:1em;padding-left:2px;padding-right:2px;font-weight:600}form label{font-weight:600}.big-checkbox{width:24px;height:24px}.alert{margin-top:1em!important}@font-face{font-family:"GeneralFoundicons";src:url("fonts/general_foundicons.eot");src:url("fonts/general_foundicons.eot?#iefix") format("embedded-opentype"),url("fonts/general_foundicons.woff") format("woff"),url("fonts/general_foundicons.ttf") format("truetype"),url("fonts/general_foundicons.svg#GeneralFoundicons") format("svg");font-weight:normal;font-style:normal}[class*="foundicon-"]{display:inline;width:auto;height:auto;line-height:inherit;vertical-align:baseline;background-image:none;background-position:0 0;background-repeat:repeat}[class*="foundicon-"]:before{font-family:"GeneralFoundicons";font-weight:normal;font-style:normal;text-decoration:inherit}.foundicon-settings:before{content:"\f000"}.foundicon-heart:before{content:"\f001"}.foundicon-star:before{content:"\f002"}.foundicon-plus:before{content:"\f003"}.foundicon-minus:before{content:"\f004"}.foundicon-checkmark:before{content:"\f005"}.foundicon-remove:before{content:"\f006"}.foundicon-mail:before{content:"\f007"}.foundicon-calendar:before{content:"\f008"}.foundicon-page:before{content:"\f009"}.foundicon-tools:before{content:"\f00a"}.foundicon-globe:before{content:"\f00b"}.foundicon-home:before{content:"\f00c"}.foundicon-quote:before{content:"\f00d"}.foundicon-people:before{content:"\f00e"}.foundicon-monitor:before{content:"\f00f"}.foundicon-laptop:before{content:"\f010"}.foundicon-phone:before{content:"\f011"}.foundicon-cloud:before{content:"\f012"}.foundicon-error:before{content:"\f013"}.foundicon-right-arrow:before{content:"\f014"}.foundicon-left-arrow:before{content:"\f015"}.foundicon-up-arrow:before{content:"\f016"}.foundicon-down-arrow:before{content:"\f017"}.foundicon-trash:before{content:"\f018"}.foundicon-add-doc:before{content:"\f019"}.foundicon-edit:before{content:"\f01a"}.foundicon-lock:before{content:"\f01b"}.foundicon-unlock:before{content:"\f01c"}.foundicon-refresh:before{content:"\f01d"}.foundicon-paper-clip:before{content:"\f01e"}.foundicon-video:before{content:"\f01f"}.foundicon-photo:before{content:"\f020"}.foundicon-graph:before{content:"\f021"}.foundicon-idea:before{content:"\f022"}.foundicon-mic:before{content:"\f023"}.foundicon-cart:before{content:"\f024"}.foundicon-address-book:before{content:"\f025"}.foundicon-compass:before{content:"\f026"}.foundicon-flag:before{content:"\f027"}.foundicon-location:before{content:"\f028"}.foundicon-clock:before{content:"\f029"}.foundicon-folder:before{content:"\f02a"}.foundicon-inbox:before{content:"\f02b"}.foundicon-website:before{content:"\f02c"}.foundicon-smiley:before{content:"\f02d"}.foundicon-search:before{content:"\f02e"} 

\ No newline at end of file

The added file is too large to be shown here, see it at: blockerbugs/static/js/fedora-bootstrap.js
file modified
+8375 -7415
@@ -1,291 +1,202 @@ 

  /*!

-  * jQuery JavaScript Library v1.7.2

-  * http://jquery.com/

-  *

-  * Copyright 2011, John Resig

-  * Dual licensed under the MIT or GPL Version 2 licenses.

-  * http://jquery.org/license

+  * jQuery JavaScript Library v3.3.1

+  * https://jquery.com/

   *

   * Includes Sizzle.js

-  * http://sizzlejs.com/

-  * Copyright 2011, The Dojo Foundation

-  * Released under the MIT, BSD, and GPL Licenses.

+  * https://sizzlejs.com/

   *

-  * Date: Wed Mar 21 12:46:34 2012 -0700

+  * Copyright JS Foundation and other contributors

+  * Released under the MIT license

+  * https://jquery.org/license

+  *

+  * Date: 2018-01-20T17:24Z

   */

- (function( window, undefined ) {

- 

- // Use the correct document accordingly with window argument (sandbox)

- var document = window.document,

- 	navigator = window.navigator,

- 	location = window.location;

- var jQuery = (function() {

- 

- // Define a local copy of jQuery

- var jQuery = function( selector, context ) {

- 		// The jQuery object is actually just the init constructor 'enhanced'

- 		return new jQuery.fn.init( selector, context, rootjQuery );

- 	},

- 

- 	// Map over jQuery in case of overwrite

- 	_jQuery = window.jQuery,

- 

- 	// Map over the $ in case of overwrite

- 	_$ = window.$,

- 

- 	// A central reference to the root jQuery(document)

- 	rootjQuery,

- 

- 	// A simple way to check for HTML strings or ID strings

- 	// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)

- 	quickExpr = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,

+ ( function( global, factory ) {

+ 

+ 	"use strict";

+ 

+ 	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 have a `window` with a `document`

+ 		// (such as Node.js), expose a 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 );

+ 	}

  

- 	// Check if a string has a non-whitespace character in it

- 	rnotwhite = /\S/,

+ // Pass this if window is not defined yet

+ } )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) {

  

- 	// Used for trimming whitespace

- 	trimLeft = /^\s+/,

- 	trimRight = /\s+$/,

+ // Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1

+ // throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode

+ // arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common

+ // enough that all such attempts are guarded in a try block.

+ "use strict";

  

- 	// Match a standalone tag

- 	rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/,

+ var arr = [];

  

- 	// JSON RegExp

- 	rvalidchars = /^[\],:{}\s]*$/,

- 	rvalidescape = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,

- 	rvalidtokens = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,

- 	rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g,

+ var document = window.document;

  

- 	// Useragent RegExp

- 	rwebkit = /(webkit)[ \/]([\w.]+)/,

- 	ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/,

- 	rmsie = /(msie) ([\w.]+)/,

- 	rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/,

+ var getProto = Object.getPrototypeOf;

  

- 	// Matches dashed string for camelizing

- 	rdashAlpha = /-([a-z]|[0-9])/ig,

- 	rmsPrefix = /^-ms-/,

+ var slice = arr.slice;

  

- 	// Used by jQuery.camelCase as callback to replace()

- 	fcamelCase = function( all, letter ) {

- 		return ( letter + "" ).toUpperCase();

- 	},

+ var concat = arr.concat;

  

- 	// Keep a UserAgent string for use with jQuery.browser

- 	userAgent = navigator.userAgent,

+ var push = arr.push;

  

- 	// For matching the engine and version of the browser

- 	browserMatch,

+ var indexOf = arr.indexOf;

  

- 	// The deferred used on DOM ready

- 	readyList,

+ var class2type = {};

  

- 	// The ready event handler

- 	DOMContentLoaded,

+ var toString = class2type.toString;

  

- 	// Save a reference to some core methods

- 	toString = Object.prototype.toString,

- 	hasOwn = Object.prototype.hasOwnProperty,

- 	push = Array.prototype.push,

- 	slice = Array.prototype.slice,

- 	trim = String.prototype.trim,

- 	indexOf = Array.prototype.indexOf,

+ var hasOwn = class2type.hasOwnProperty;

  

- 	// [[Class]] -> type pairs

- 	class2type = {};

+ var fnToString = hasOwn.toString;

  

- jQuery.fn = jQuery.prototype = {

- 	constructor: jQuery,

- 	init: function( selector, context, rootjQuery ) {

- 		var match, elem, ret, doc;

+ var ObjectFunctionString = fnToString.call( Object );

  

- 		// Handle $(""), $(null), or $(undefined)

- 		if ( !selector ) {

- 			return this;

- 		}

+ var support = {};

  

- 		// Handle $(DOMElement)

- 		if ( selector.nodeType ) {

- 			this.context = this[0] = selector;

- 			this.length = 1;

- 			return this;

- 		}

+ var isFunction = function isFunction( obj ) {

  

- 		// The body element only exists once, optimize finding it

- 		if ( selector === "body" && !context && document.body ) {

- 			this.context = document;

- 			this[0] = document.body;

- 			this.selector = selector;

- 			this.length = 1;

- 			return this;

- 		}

+       // Support: Chrome <=57, Firefox <=52

+       // In some browsers, typeof returns "function" for HTML <object> elements

+       // (i.e., `typeof document.createElement( "object" ) === "function"`).

+       // We don't want to classify *any* DOM node as a function.

+       return typeof obj === "function" && typeof obj.nodeType !== "number";

+   };

  

- 		// Handle HTML strings

- 		if ( typeof selector === "string" ) {

- 			// Are we dealing with HTML string or an ID?

- 			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 = quickExpr.exec( selector );

- 			}

+ var isWindow = function isWindow( obj ) {

+ 		return obj != null && obj === obj.window;

+ 	};

  

- 			// Verify a match, and that no context was specified for #id

- 			if ( match && (match[1] || !context) ) {

  

- 				// HANDLE: $(html) -> $(array)

- 				if ( match[1] ) {

- 					context = context instanceof jQuery ? context[0] : context;

- 					doc = ( context ? context.ownerDocument || context : document );

  

- 					// If a single string is passed in and it's a single tag

- 					// just do a createElement and skip the rest

- 					ret = rsingleTag.exec( selector );

  

- 					if ( ret ) {

- 						if ( jQuery.isPlainObject( context ) ) {

- 							selector = [ document.createElement( ret[1] ) ];

- 							jQuery.fn.attr.call( selector, context, true );

+ 	var preservedScriptAttributes = {

+ 		type: true,

+ 		src: true,

+ 		noModule: true

+ 	};

  

- 						} else {

- 							selector = [ doc.createElement( ret[1] ) ];

- 						}

+ 	function DOMEval( code, doc, node ) {

+ 		doc = doc || document;

  

- 					} else {

- 						ret = jQuery.buildFragment( [ match[1] ], [ doc ] );

- 						selector = ( ret.cacheable ? jQuery.clone(ret.fragment) : ret.fragment ).childNodes;

- 					}

+ 		var i,

+ 			script = doc.createElement( "script" );

  

- 					return jQuery.merge( this, selector );

+ 		script.text = code;

+ 		if ( node ) {

+ 			for ( i in preservedScriptAttributes ) {

+ 				if ( node[ i ] ) {

+ 					script[ i ] = node[ i ];

+ 				}

+ 			}

+ 		}

+ 		doc.head.appendChild( script ).parentNode.removeChild( script );

+ 	}

  

- 				// 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;

- 					}

+ function toType( obj ) {

+ 	if ( obj == null ) {

+ 		return obj + "";

+ 	}

  

- 					this.context = document;

- 					this.selector = selector;

- 					return this;

- 				}

+ 	// Support: Android <=2.3 only (functionish RegExp)

+ 	return typeof obj === "object" || typeof obj === "function" ?

+ 		class2type[ toString.call( obj ) ] || "object" :

+ 		typeof obj;

+ }

+ /* global Symbol */

+ // Defining this global in .eslintrc.json would create a danger of using the global

+ // unguarded in another place, it seems safer to define global only for this module

  

- 			// 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: $(function)

- 		// Shortcut for document ready

- 		} else if ( jQuery.isFunction( selector ) ) {

- 			return rootjQuery.ready( selector );

- 		}

+ var

+ 	version = "3.3.1",

  

- 		if ( selector.selector !== undefined ) {

- 			this.selector = selector.selector;

- 			this.context = selector.context;

- 		}

+ 	// Define a local copy of jQuery

+ 	jQuery = function( selector, context ) {

  

- 		return jQuery.makeArray( selector, this );

+ 		// 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 );

  	},

  

- 	// Start with an empty selector

- 	selector: "",

+ 	// Support: Android <=4.0 only

+ 	// Make sure we trim BOM and NBSP

+ 	rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;

+ 

+ jQuery.fn = jQuery.prototype = {

  

  	// The current version of jQuery being used

- 	jquery: "1.7.2",

+ 	jquery: version,

+ 

+ 	constructor: jQuery,

  

  	// The default length of a jQuery object is 0

  	length: 0,

  

- 	// The number of elements contained in the matched element set

- 	size: function() {

- 		return this.length;

- 	},

- 

  	toArray: function() {

- 		return slice.call( this, 0 );

+ 		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 a 'clean' array

- 			this.toArray() :

+ 		// Return all the elements in a clean array

+ 		if ( num == null ) {

+ 			return slice.call( this );

+ 		}

  

- 			// Return just the object

- 			( num < 0 ? this[ this.length + num ] : this[ num ] );

+ 		// Return just the one element from the set

+ 		return num < 0 ? this[ num + this.length ] : this[ num ];

  	},

  

  	// Take an array of elements and push it onto the stack

  	// (returning the new matched element set)

- 	pushStack: function( elems, name, selector ) {

- 		// Build a new jQuery matched element set

- 		var ret = this.constructor();

+ 	pushStack: function( elems ) {

  

- 		if ( jQuery.isArray( elems ) ) {

- 			push.apply( ret, elems );

- 

- 		} else {

- 			jQuery.merge( ret, 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;

- 

- 		if ( name === "find" ) {

- 			ret.selector = this.selector + ( this.selector ? " " : "" ) + selector;

- 		} else if ( name ) {

- 			ret.selector = this.selector + "." + name + "(" + selector + ")";

- 		}

- 

  		// 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 );

+ 	each: function( callback ) {

+ 		return jQuery.each( this, callback );

  	},

  

- 	ready: function( fn ) {

- 		// Attach the listeners

- 		jQuery.bindReady();

- 

- 		// Add the callback

- 		readyList.add( fn );

- 

- 		return this;

+ 	map: function( callback ) {

+ 		return this.pushStack( jQuery.map( this, function( elem, i ) {

+ 			return callback.call( elem, i, elem );

+ 		} ) );

  	},

  

- 	eq: function( i ) {

- 		i = +i;

- 		return i === -1 ?

- 			this.slice( i ) :

- 			this.slice( i, i + 1 );

+ 	slice: function() {

+ 		return this.pushStack( slice.apply( this, arguments ) );

  	},

  

  	first: function() {
@@ -296,34 +207,26 @@ 

  		return this.eq( -1 );

  	},

  

- 	slice: function() {

- 		return this.pushStack( slice.apply( this, arguments ),

- 			"slice", slice.call(arguments).join(",") );

- 	},

- 

- 	map: function( callback ) {

- 		return this.pushStack( jQuery.map(this, function( elem, i ) {

- 			return callback.call( elem, i, elem );

- 		}));

+ 	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);

+ 		return this.prevObject || this.constructor();

  	},

  

  	// For internal use only.

  	// Behaves like an Array's method, not like a jQuery method.

  	push: push,

- 	sort: [].sort,

- 	splice: [].splice

+ 	sort: arr.sort,

+ 	splice: arr.splice

  };

  

- // Give the init function the jQuery prototype for later instantiation

- jQuery.fn.init.prototype = jQuery.fn;

- 

  jQuery.extend = jQuery.fn.extend = function() {

  	var options, name, src, copy, copyIsArray, clone,

- 		target = arguments[0] || {},

+ 		target = arguments[ 0 ] || {},

  		i = 1,

  		length = arguments.length,

  		deep = false;
@@ -331,25 +234,28 @@ 

  	// Handle a deep copy situation

  	if ( typeof target === "boolean" ) {

  		deep = target;

- 		target = arguments[1] || {};

- 		// skip the boolean and the target

- 		i = 2;

+ 

+ 		// 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) ) {

+ 	if ( typeof target !== "object" && !isFunction( target ) ) {

  		target = {};

  	}

  

- 	// extend jQuery itself if only one argument is passed

- 	if ( length === i ) {

+ 	// Extend jQuery itself if only one argument is passed

+ 	if ( i === length ) {

  		target = this;

- 		--i;

+ 		i--;

  	}

  

  	for ( ; i < length; i++ ) {

+ 

  		// Only deal with non-null/undefined values

- 		if ( (options = arguments[ i ]) != null ) {

+ 		if ( ( options = arguments[ i ] ) != null ) {

+ 

  			// Extend the base object

  			for ( name in options ) {

  				src = target[ name ];
@@ -361,13 +267,15 @@ 

  				}

  

  				// Recurse if we're merging plain objects or arrays

- 				if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {

+ 				if ( deep && copy && ( jQuery.isPlainObject( copy ) ||

+ 					( copyIsArray = Array.isArray( copy ) ) ) ) {

+ 

  					if ( copyIsArray ) {

  						copyIsArray = false;

- 						clone = src && jQuery.isArray(src) ? src : [];

+ 						clone = src && Array.isArray( src ) ? src : [];

  

  					} else {

- 						clone = src && jQuery.isPlainObject(src) ? src : {};

+ 						clone = src && jQuery.isPlainObject( src ) ? src : {};

  					}

  

  					// Never move original objects, clone them
@@ -385,357 +293,117 @@ 

  	return target;

  };

  

- jQuery.extend({

- 	noConflict: function( deep ) {

- 		if ( window.$ === jQuery ) {

- 			window.$ = _$;

- 		}

- 

- 		if ( deep && window.jQuery === jQuery ) {

- 			window.jQuery = _jQuery;

- 		}

- 

- 		return jQuery;

- 	},

- 

- 	// 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 ) {

- 		// Either a released hold or an DOMready/load event and not yet ready

- 		if ( (wait === true && !--jQuery.readyWait) || (wait !== true && !jQuery.isReady) ) {

- 			// Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).

- 			if ( !document.body ) {

- 				return setTimeout( jQuery.ready, 1 );

- 			}

- 

- 			// 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.fireWith( document, [ jQuery ] );

+ jQuery.extend( {

  

- 			// Trigger any bound ready events

- 			if ( jQuery.fn.trigger ) {

- 				jQuery( document ).trigger( "ready" ).off( "ready" );

- 			}

- 		}

- 	},

- 

- 	bindReady: function() {

- 		if ( readyList ) {

- 			return;

- 		}

- 

- 		readyList = jQuery.Callbacks( "once memory" );

- 

- 		// Catch cases where $(document).ready() is called after the

- 		// browser event has already occurred.

- 		if ( document.readyState === "complete" ) {

- 			// Handle it asynchronously to allow scripts the opportunity to delay ready

- 			return setTimeout( jQuery.ready, 1 );

- 		}

- 

- 		// Mozilla, Opera and webkit nightlies currently support this event

- 		if ( document.addEventListener ) {

- 			// Use the handy event callback

- 			document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false );

- 

- 			// A fallback to window.onload, that will always work

- 			window.addEventListener( "load", jQuery.ready, false );

- 

- 		// If IE event model is used

- 		} else if ( document.attachEvent ) {

- 			// ensure firing before onload,

- 			// maybe late but safe also for iframes

- 			document.attachEvent( "onreadystatechange", DOMContentLoaded );

- 

- 			// A fallback to window.onload, that will always work

- 			window.attachEvent( "onload", jQuery.ready );

- 

- 			// If IE and not a frame

- 			// continually check to see if the document is ready

- 			var toplevel = false;

- 

- 			try {

- 				toplevel = window.frameElement == null;

- 			} catch(e) {}

- 

- 			if ( document.documentElement.doScroll && toplevel ) {

- 				doScrollCheck();

- 			}

- 		}

- 	},

- 

- 	// 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";

- 	},

+ 	// Unique for each copy of jQuery on the page

+ 	expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),

  

- 	isWindow: function( obj ) {

- 		return obj != null && obj == obj.window;

- 	},

+ 	// Assume jQuery is ready without the ready module

+ 	isReady: true,

  

- 	isNumeric: function( obj ) {

- 		return !isNaN( parseFloat(obj) ) && isFinite( obj );

+ 	error: function( msg ) {

+ 		throw new Error( msg );

  	},

  

- 	type: function( obj ) {

- 		return obj == null ?

- 			String( obj ) :

- 			class2type[ toString.call(obj) ] || "object";

- 	},

+ 	noop: function() {},

  

  	isPlainObject: function( obj ) {

- 		// 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;

- 		}

+ 		var proto, Ctor;

  

- 		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

+ 		// Detect obvious negatives

+ 		// Use toString instead of jQuery.type to catch host objects

+ 		if ( !obj || toString.call( obj ) !== "[object Object]" ) {

  			return false;

  		}

  

- 		// Own properties are enumerated firstly, so to speed up,

- 		// if last one is own, then all properties are own.

- 

- 		var key;

- 		for ( key in obj ) {}

+ 		proto = getProto( obj );

  

- 		return key === undefined || hasOwn.call( obj, key );

- 	},

- 

- 	isEmptyObject: function( obj ) {

- 		for ( var name in obj ) {

- 			return false;

+ 		// Objects with no prototype (e.g., `Object.create( null )`) are plain

+ 		if ( !proto ) {

+ 			return true;

  		}

- 		return true;

- 	},

  

- 	error: function( msg ) {

- 		throw new Error( msg );

+ 		// Objects with prototype are plain iff they were constructed by a global Object function

+ 		Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor;

+ 		return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString;

  	},

  

- 	parseJSON: function( data ) {

- 		if ( typeof data !== "string" || !data ) {

- 			return null;

- 		}

- 

- 		// Make sure leading/trailing whitespace is removed (IE can't handle it)

- 		data = jQuery.trim( data );

- 

- 		// Attempt to parse using the native JSON parser first

- 		if ( window.JSON && window.JSON.parse ) {

- 			return window.JSON.parse( data );

- 		}

- 

- 		// Make sure the incoming data is actual JSON

- 		// Logic borrowed from http://json.org/json2.js

- 		if ( rvalidchars.test( data.replace( rvalidescape, "@" )

- 			.replace( rvalidtokens, "]" )

- 			.replace( rvalidbraces, "")) ) {

- 

- 			return ( new Function( "return " + data ) )();

+ 	isEmptyObject: function( obj ) {

  

- 		}

- 		jQuery.error( "Invalid JSON: " + data );

- 	},

+ 		/* eslint-disable no-unused-vars */

+ 		// See https://github.com/eslint/eslint/issues/6125

+ 		var name;

  

- 	// Cross-browser xml parsing

- 	parseXML: function( data ) {

- 		if ( typeof data !== "string" || !data ) {

- 			return null;

- 		}

- 		var xml, tmp;

- 		try {

- 			if ( window.DOMParser ) { // Standard

- 				tmp = new DOMParser();

- 				xml = tmp.parseFromString( data , "text/xml" );

- 			} else { // IE

- 				xml = new ActiveXObject( "Microsoft.XMLDOM" );

- 				xml.async = "false";

- 				xml.loadXML( data );

- 			}

- 		} catch( e ) {

- 			xml = undefined;

- 		}

- 		if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) {

- 			jQuery.error( "Invalid XML: " + data );

+ 		for ( name in obj ) {

+ 			return false;

  		}

- 		return xml;

+ 		return true;

  	},

  

- 	noop: function() {},

- 

  	// 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 && rnotwhite.test( 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.toUpperCase() === name.toUpperCase();

+ 	globalEval: function( code ) {

+ 		DOMEval( code );

  	},

  

- 	// args is for internal usage only

- 	each: function( object, callback, args ) {

- 		var name, i = 0,

- 			length = object.length,

- 			isObj = length === undefined || jQuery.isFunction( object );

+ 	each: function( obj, callback ) {

+ 		var length, i = 0;

  

- 		if ( args ) {

- 			if ( isObj ) {

- 				for ( name in object ) {

- 					if ( callback.apply( object[ name ], args ) === false ) {

- 						break;

- 					}

- 				}

- 			} else {

- 				for ( ; i < length; ) {

- 					if ( callback.apply( object[ i++ ], args ) === false ) {

- 						break;

- 					}

+ 		if ( isArrayLike( obj ) ) {

+ 			length = obj.length;

+ 			for ( ; i < length; i++ ) {

+ 				if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {

+ 					break;

  				}

  			}

- 

- 		// A special, fast, case for the most common use of each

  		} else {

- 			if ( isObj ) {

- 				for ( name in object ) {

- 					if ( callback.call( object[ name ], name, object[ name ] ) === false ) {

- 						break;

- 					}

- 				}

- 			} else {

- 				for ( ; i < length; ) {

- 					if ( callback.call( object[ i ], i, object[ i++ ] ) === false ) {

- 						break;

- 					}

+ 			for ( i in obj ) {

+ 				if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {

+ 					break;

  				}

  			}

  		}

  

- 		return object;

+ 		return obj;

  	},

  

- 	// Use native String.trim function wherever possible

- 	trim: trim ?

- 		function( text ) {

- 			return text == null ?

- 				"" :

- 				trim.call( text );

- 		} :

- 

- 		// Otherwise use our own trimming functionality

- 		function( text ) {

- 			return text == null ?

- 				"" :

- 				text.toString().replace( trimLeft, "" ).replace( trimRight, "" );

- 		},

+ 	// Support: Android <=4.0 only

+ 	trim: function( text ) {

+ 		return text == null ?

+ 			"" :

+ 			( text + "" ).replace( rtrim, "" );

+ 	},

  

  	// results is for internal usage only

- 	makeArray: function( array, results ) {

+ 	makeArray: function( arr, results ) {

  		var ret = results || [];

  

- 		if ( array != null ) {

- 			// The window, strings (and functions) also have 'length'

- 			// Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930

- 			var type = jQuery.type( array );

- 

- 			if ( array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( array ) ) {

- 				push.call( ret, array );

+ 		if ( arr != null ) {

+ 			if ( isArrayLike( Object( arr ) ) ) {

+ 				jQuery.merge( ret,

+ 					typeof arr === "string" ?

+ 					[ arr ] : arr

+ 				);

  			} else {

- 				jQuery.merge( ret, array );

+ 				push.call( ret, arr );

  			}

  		}

  

  		return ret;

  	},

  

- 	inArray: function( elem, array, i ) {

- 		var len;

- 

- 		if ( array ) {

- 			if ( indexOf ) {

- 				return indexOf.call( array, elem, i );

- 			}

- 

- 			len = array.length;

- 			i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0;

- 

- 			for ( ; i < len; i++ ) {

- 				// Skip accessing in sparse arrays

- 				if ( i in array && array[ i ] === elem ) {

- 					return i;

- 				}

- 			}

- 		}

- 

- 		return -1;

+ 	inArray: function( elem, arr, i ) {

+ 		return arr == null ? -1 : indexOf.call( arr, elem, i );

  	},

  

+ 	// Support: Android <=4.0 only, PhantomJS 1 only

+ 	// push.apply(_, arraylike) throws on ancient WebKit

  	merge: function( first, second ) {

- 		var i = first.length,

- 			j = 0;

- 

- 		if ( typeof second.length === "number" ) {

- 			for ( var l = second.length; j < l; j++ ) {

- 				first[ i++ ] = second[ j ];

- 			}

+ 		var len = +second.length,

+ 			j = 0,

+ 			i = first.length;

  

- 		} else {

- 			while ( second[j] !== undefined ) {

- 				first[ i++ ] = second[ j++ ];

- 			}

+ 		for ( ; j < len; j++ ) {

+ 			first[ i++ ] = second[ j ];

  		}

  

  		first.length = i;
@@ -743,6219 +411,6235 @@ 

  		return first;

  	},

  

- 	grep: function( elems, callback, inv ) {

- 		var ret = [], retVal;

- 		inv = !!inv;

+ 	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 ( var i = 0, length = elems.length; i < length; i++ ) {

- 			retVal = !!callback( elems[ i ], i );

- 			if ( inv !== retVal ) {

- 				ret.push( elems[ i ] );

+ 		for ( ; i < length; i++ ) {

+ 			callbackInverse = !callback( elems[ i ], i );

+ 			if ( callbackInverse !== callbackExpect ) {

+ 				matches.push( elems[ i ] );

  			}

  		}

  

- 		return ret;

+ 		return matches;

  	},

  

  	// arg is for internal usage only

  	map: function( elems, callback, arg ) {

- 		var value, key, ret = [],

+ 		var length, value,

  			i = 0,

- 			length = elems.length,

- 			// jquery objects are treated as arrays

- 			isArray = elems instanceof jQuery || length !== undefined && typeof length === "number" && ( ( length > 0 && elems[ 0 ] && elems[ length -1 ] ) || length === 0 || jQuery.isArray( elems ) ) ;

+ 			ret = [];

  

- 		// Go through the array, translating each of the items to their

- 		if ( isArray ) {

+ 		// Go through the array, translating each of the items to their new values

+ 		if ( isArrayLike( elems ) ) {

+ 			length = elems.length;

  			for ( ; i < length; i++ ) {

  				value = callback( elems[ i ], i, arg );

  

  				if ( value != null ) {

- 					ret[ ret.length ] = value;

+ 					ret.push( value );

  				}

  			}

  

  		// Go through every key on the object,

  		} else {

- 			for ( key in elems ) {

- 				value = callback( elems[ key ], key, arg );

+ 			for ( i in elems ) {

+ 				value = callback( elems[ i ], i, arg );

  

  				if ( value != null ) {

- 					ret[ ret.length ] = value;

+ 					ret.push( value );

  				}

  			}

  		}

  

  		// Flatten any nested arrays

- 		return ret.concat.apply( [], ret );

+ 		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 ) {

- 		if ( typeof context === "string" ) {

- 			var 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

- 		var args = slice.call( arguments, 2 ),

- 			proxy = function() {

- 				return fn.apply( context, 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 || proxy.guid || jQuery.guid++;

+ 	// jQuery.support is not used in Core but other projects attach their

+ 	// properties to it so it needs to exist.

+ 	support: support

+ } );

  

- 		return proxy;

- 	},

+ if ( typeof Symbol === "function" ) {

+ 	jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];

+ }

  

- 	// Mutifunctional method to get and set values to a collection

- 	// The value/s can optionally be executed if it's a function

- 	access: function( elems, fn, key, value, chainable, emptyGet, pass ) {

- 		var exec,

- 			bulk = key == null,

- 			i = 0,

- 			length = elems.length;

+ // Populate the class2type map

+ jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),

+ function( i, name ) {

+ 	class2type[ "[object " + name + "]" ] = name.toLowerCase();

+ } );

  

- 		// Sets many values

- 		if ( key && typeof key === "object" ) {

- 			for ( i in key ) {

- 				jQuery.access( elems, fn, i, key[i], 1, emptyGet, value );

- 			}

- 			chainable = 1;

+ function isArrayLike( obj ) {

  

- 		// Sets one value

- 		} else if ( value !== undefined ) {

- 			// Optionally, function values get executed if exec is true

- 			exec = pass === undefined && jQuery.isFunction( value );

+ 	// Support: real iOS 8.2 only (not reproducible in simulator)

+ 	// `in` check used to prevent JIT error (gh-2145)

+ 	// hasOwn isn't used here due to false negatives

+ 	// regarding Nodelist length in IE

+ 	var length = !!obj && "length" in obj && obj.length,

+ 		type = toType( obj );

  

- 			if ( bulk ) {

- 				// Bulk operations only iterate when executing function values

- 				if ( exec ) {

- 					exec = fn;

- 					fn = function( elem, key, value ) {

- 						return exec.call( jQuery( elem ), value );

- 					};

+ 	if ( isFunction( obj ) || isWindow( obj ) ) {

+ 		return false;

+ 	}

  

- 				// Otherwise they run against the entire set

- 				} else {

- 					fn.call( elems, value );

- 					fn = null;

- 				}

- 			}

+ 	return type === "array" || length === 0 ||

+ 		typeof length === "number" && length > 0 && ( length - 1 ) in obj;

+ }

+ var Sizzle =

+ /*!

+  * Sizzle CSS Selector Engine v2.3.3

+  * https://sizzlejs.com/

+  *

+  * Copyright jQuery Foundation and other contributors

+  * Released under the MIT license

+  * http://jquery.org/license

+  *

+  * Date: 2016-08-08

+  */

+ (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" + 1 * 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;

+ 	},

  

- 			if ( fn ) {

- 				for (; i < length; i++ ) {

- 					fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass );

- 				}

+ 	// Instance methods

+ 	hasOwn = ({}).hasOwnProperty,

+ 	arr = [],

+ 	pop = arr.pop,

+ 	push_native = arr.push,

+ 	push = arr.push,

+ 	slice = arr.slice,

+ 	// Use a stripped-down indexOf as it's faster than native

+ 	// https://jsperf.com/thor-indexof-vs-for/5

+ 	indexOf = function( list, elem ) {

+ 		var i = 0,

+ 			len = list.length;

+ 		for ( ; i < len; i++ ) {

+ 			if ( list[i] === elem ) {

+ 				return i;

  			}

- 

- 			chainable = 1;

  		}

+ 		return -1;

+ 	},

  

- 		return chainable ?

- 			elems :

+ 	booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",

  

- 			// Gets

- 			bulk ?

- 				fn.call( elems ) :

- 				length ? fn( elems[0], key ) : emptyGet;

- 	},

+ 	// Regular expressions

  

- 	now: function() {

- 		return ( new Date() ).getTime();

- 	},

+ 	// http://www.w3.org/TR/css3-selectors/#whitespace

+ 	whitespace = "[\\x20\\t\\r\\n\\f]",

  

- 	// Use of jQuery.browser is frowned upon.

- 	// More details: http://docs.jquery.com/Utilities/jQuery.browser

- 	uaMatch: function( ua ) {

- 		ua = ua.toLowerCase();

+ 	// http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier

+ 	identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+",

  

- 		var match = rwebkit.exec( ua ) ||

- 			ropera.exec( ua ) ||

- 			rmsie.exec( ua ) ||

- 			ua.indexOf("compatible") < 0 && rmozilla.exec( ua ) ||

- 			[];

+ 	// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors

+ 	attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace +

+ 		// Operator (capture 2)

+ 		"*([*^$|!~]?=)" + whitespace +

+ 		// "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"

+ 		"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace +

+ 		"*\\]",

  

- 		return { browser: match[1] || "", version: match[2] || "0" };

- 	},

+ 	pseudos = ":(" + identifier + ")(?:\\((" +

+ 		// 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)

+ 		".*" +

+ 		")\\)|)",

  

- 	sub: function() {

- 		function jQuerySub( selector, context ) {

- 			return new jQuerySub.fn.init( selector, context );

- 		}

- 		jQuery.extend( true, jQuerySub, this );

- 		jQuerySub.superclass = this;

- 		jQuerySub.fn = jQuerySub.prototype = this();

- 		jQuerySub.fn.constructor = jQuerySub;

- 		jQuerySub.sub = this.sub;

- 		jQuerySub.fn.init = function init( selector, context ) {

- 			if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) {

- 				context = jQuerySub( context );

- 			}

+ 	// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter

+ 	rwhitespace = new RegExp( whitespace + "+", "g" ),

+ 	rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),

  

- 			return jQuery.fn.init.call( this, selector, context, rootjQuerySub );

- 		};

- 		jQuerySub.fn.init.prototype = jQuerySub.fn;

- 		var rootjQuerySub = jQuerySub(document);

- 		return jQuerySub;

+ 	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( "^#(" + identifier + ")" ),

+ 		"CLASS": new RegExp( "^\\.(" + identifier + ")" ),

+ 		"TAG": new RegExp( "^(" + identifier + "|[*])" ),

+ 		"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" )

  	},

  

- 	browser: {}

- });

+ 	rinputs = /^(?:input|select|textarea|button)$/i,

+ 	rheader = /^h\d$/i,

  

- // Populate the class2type map

- jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) {

- 	class2type[ "[object " + name + "]" ] = name.toLowerCase();

- });

+ 	rnative = /^[^{]+\{\s*\[native \w/,

  

- browserMatch = jQuery.uaMatch( userAgent );

- if ( browserMatch.browser ) {

- 	jQuery.browser[ browserMatch.browser ] = true;

- 	jQuery.browser.version = browserMatch.version;

- }

+ 	// Easily-parseable/retrievable ID or TAG or CLASS selectors

+ 	rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,

  

- // Deprecated, use jQuery.browser.webkit instead

- if ( jQuery.browser.webkit ) {

- 	jQuery.browser.safari = true;

- }

+ 	rsibling = /[+~]/,

  

- // IE doesn't match non-breaking spaces with \s

- if ( rnotwhite.test( "\xA0" ) ) {

- 	trimLeft = /^[\s\xA0]+/;

- 	trimRight = /[\s\xA0]+$/;

- }

+ 	// 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 );

+ 	},

  

- // All jQuery objects should point back to these

- rootjQuery = jQuery(document);

+ 	// CSS string/identifier serialization

+ 	// https://drafts.csswg.org/cssom/#common-serializing-idioms

+ 	rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,

+ 	fcssescape = function( ch, asCodePoint ) {

+ 		if ( asCodePoint ) {

  

- // Cleanup functions for the document ready method

- if ( document.addEventListener ) {

- 	DOMContentLoaded = function() {

- 		document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false );

- 		jQuery.ready();

- 	};

+ 			// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER

+ 			if ( ch === "\0" ) {

+ 				return "\uFFFD";

+ 			}

  

- } else if ( document.attachEvent ) {

- 	DOMContentLoaded = function() {

- 		// Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).

- 		if ( document.readyState === "complete" ) {

- 			document.detachEvent( "onreadystatechange", DOMContentLoaded );

- 			jQuery.ready();

+ 			// Control characters and (dependent upon position) numbers get escaped as code points

+ 			return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";

  		}

- 	};

- }

  

- // The DOM ready check for Internet Explorer

- function doScrollCheck() {

- 	if ( jQuery.isReady ) {

- 		return;

- 	}

+ 		// Other potentially-special ASCII characters get backslash-escaped

+ 		return "\\" + ch;

+ 	},

+ 

+ 	// Used for iframes

+ 	// See setDocument()

+ 	// Removing the function wrapper causes a "Permission Denied"

+ 	// error in IE

+ 	unloadHandler = function() {

+ 		setDocument();

+ 	},

+ 

+ 	disabledAncestor = addCombinator(

+ 		function( elem ) {

+ 			return elem.disabled === true && ("form" in elem || "label" in elem);

+ 		},

+ 		{ dir: "parentNode", next: "legend" }

+ 	);

  

- 	try {

- 		// If IE is used, use the trick by Diego Perini

- 		// http://javascript.nwbox.com/IEContentLoaded/

- 		document.documentElement.doScroll("left");

- 	} catch(e) {

- 		setTimeout( doScrollCheck, 1 );

- 		return;

- 	}

+ // 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) );

+ 		} :

  

- 	// and execute any waiting functions

- 	jQuery.ready();

+ 		// 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;

+ 		}

+ 	};

  }

  

- return jQuery;

+ function Sizzle( selector, context, results, seed ) {

+ 	var m, i, elem, nid, match, groups, newSelector,

+ 		newContext = context && context.ownerDocument,

  

- })();

+ 		// nodeType defaults to 9, since context defaults to document

+ 		nodeType = context ? context.nodeType : 9;

  

+ 	results = results || [];

  

- // String to Object flags format cache

- var flagsCache = {};

+ 	// Return early from calls with invalid selector or context

+ 	if ( typeof selector !== "string" || !selector ||

+ 		nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {

  

- // Convert String-formatted flags into Object-formatted ones and store in cache

- function createFlags( flags ) {

- 	var object = flagsCache[ flags ] = {},

- 		i, length;

- 	flags = flags.split( /\s+/ );

- 	for ( i = 0, length = flags.length; i < length; i++ ) {

- 		object[ flags[i] ] = true;

+ 		return results;

  	}

- 	return object;

- }

  

- /*

-  * Create a callback list using the following parameters:

-  *

-  *	flags:	an optional list of space-separated flags that will change how

-  *			the callback list behaves

-  *

-  * By default a callback list will act like an event callback list and can be

-  * "fired" multiple times.

-  *

-  * Possible flags:

-  *

-  *	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( flags ) {

+ 	// Try to shortcut find operations (as opposed to filters) in HTML documents

+ 	if ( !seed ) {

  

- 	// Convert flags from String-formatted to Object-formatted

- 	// (we check in cache first)

- 	flags = flags ? ( flagsCache[ flags ] || createFlags( flags ) ) : {};

+ 		if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {

+ 			setDocument( context );

+ 		}

+ 		context = context || document;

  

- 	var // Actual callback list

- 		list = [],

- 		// Stack of fire calls for repeatable lists

- 		stack = [],

- 		// Last fire value (for non-forgettable lists)

- 		memory,

- 		// Flag to know if list was already fired

- 		fired,

- 		// Flag to know if list is currently firing

- 		firing,

- 		// First callback to fire (used internally by add and fireWith)

- 		firingStart,

- 		// End of the loop when firing

- 		firingLength,

- 		// Index of currently firing callback (modified by remove if needed)

- 		firingIndex,

- 		// Add one or several callbacks to the list

- 		add = function( args ) {

- 			var i,

- 				length,

- 				elem,

- 				type,

- 				actual;

- 			for ( i = 0, length = args.length; i < length; i++ ) {

- 				elem = args[ i ];

- 				type = jQuery.type( elem );

- 				if ( type === "array" ) {

- 					// Inspect recursively

- 					add( elem );

- 				} else if ( type === "function" ) {

- 					// Add if not in unique mode and callback is not in

- 					if ( !flags.unique || !self.has( elem ) ) {

- 						list.push( elem );

- 					}

- 				}

- 			}

- 		},

- 		// Fire callbacks

- 		fire = function( context, args ) {

- 			args = args || [];

- 			memory = !flags.memory || [ context, args ];

- 			fired = true;

- 			firing = true;

- 			firingIndex = firingStart || 0;

- 			firingStart = 0;

- 			firingLength = list.length;

- 			for ( ; list && firingIndex < firingLength; firingIndex++ ) {

- 				if ( list[ firingIndex ].apply( context, args ) === false && flags.stopOnFalse ) {

- 					memory = true; // Mark as halted

- 					break;

- 				}

- 			}

- 			firing = false;

- 			if ( list ) {

- 				if ( !flags.once ) {

- 					if ( stack && stack.length ) {

- 						memory = stack.shift();

- 						self.fireWith( memory[ 0 ], memory[ 1 ] );

- 					}

- 				} else if ( memory === true ) {

- 					self.disable();

- 				} else {

- 					list = [];

- 				}

- 			}

- 		},

- 		// Actual Callbacks object

- 		self = {

- 			// Add a callback or a collection of callbacks to the list

- 			add: function() {

- 				if ( list ) {

- 					var length = list.length;

- 					add( 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, unless previous

- 					// firing was halted (stopOnFalse)

- 					} else if ( memory && memory !== true ) {

- 						firingStart = length;

- 						fire( memory[ 0 ], memory[ 1 ] );

- 					}

- 				}

- 				return this;

- 			},

- 			// Remove a callback from the list

- 			remove: function() {

- 				if ( list ) {

- 					var args = arguments,

- 						argIndex = 0,

- 						argLength = args.length;

- 					for ( ; argIndex < argLength ; argIndex++ ) {

- 						for ( var i = 0; i < list.length; i++ ) {

- 							if ( args[ argIndex ] === list[ i ] ) {

- 								// Handle firingIndex and firingLength

- 								if ( firing ) {

- 									if ( i <= firingLength ) {

- 										firingLength--;

- 										if ( i <= firingIndex ) {

- 											firingIndex--;

- 										}

- 									}

- 								}

- 								// Remove the element

- 								list.splice( i--, 1 );

- 								// If we have some unicity property then

- 								// we only need to do this once

- 								if ( flags.unique ) {

- 									break;

- 								}

- 							}

- 						}

- 					}

- 				}

- 				return this;

- 			},

- 			// Control if a given callback is in the list

- 			has: function( fn ) {

- 				if ( list ) {

- 					var i = 0,

- 						length = list.length;

- 					for ( ; i < length; i++ ) {

- 						if ( fn === list[ i ] ) {

- 							return true;

- 						}

- 					}

- 				}

- 				return false;

- 			},

- 			// Remove all callbacks from the list

- 			empty: function() {

- 				list = [];

- 				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 || memory === true ) {

- 					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 ( stack ) {

- 					if ( firing ) {

- 						if ( !flags.once ) {

- 							stack.push( [ context, args ] );

- 						}

- 					} else if ( !( flags.once && memory ) ) {

- 						fire( context, 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;

- 			}

- 		};

+ 		if ( documentIsHTML ) {

  

- 	return self;

- };

+ 			// If the selector is sufficiently simple, try using a "get*By*" DOM method

+ 			// (excepting DocumentFragment context, where the methods don't exist)

+ 			if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {

  

+ 				// ID selector

+ 				if ( (m = match[1]) ) {

  

+ 					// Document context

+ 					if ( nodeType === 9 ) {

+ 						if ( (elem = context.getElementById( m )) ) {

  

+ 							// Support: IE, Opera, Webkit

+ 							// TODO: identify versions

+ 							// getElementById can match elements by name instead of ID

+ 							if ( elem.id === m ) {

+ 								results.push( elem );

+ 								return results;

+ 							}

+ 						} else {

+ 							return results;

+ 						}

  

- var // Static reference to slice

- 	sliceDeferred = [].slice;

+ 					// Element context

+ 					} else {

  

- jQuery.extend({

+ 						// Support: IE, Opera, Webkit

+ 						// TODO: identify versions

+ 						// getElementById can match elements by name instead of ID

+ 						if ( newContext && (elem = newContext.getElementById( m )) &&

+ 							contains( context, elem ) &&

+ 							elem.id === m ) {

  

- 	Deferred: function( func ) {

- 		var doneList = jQuery.Callbacks( "once memory" ),

- 			failList = jQuery.Callbacks( "once memory" ),

- 			progressList = jQuery.Callbacks( "memory" ),

- 			state = "pending",

- 			lists = {

- 				resolve: doneList,

- 				reject: failList,

- 				notify: progressList

- 			},

- 			promise = {

- 				done: doneList.add,

- 				fail: failList.add,

- 				progress: progressList.add,

+ 							results.push( elem );

+ 							return results;

+ 						}

+ 					}

  

- 				state: function() {

- 					return state;

- 				},

+ 				// Type selector

+ 				} else if ( match[2] ) {

+ 					push.apply( results, context.getElementsByTagName( selector ) );

+ 					return results;

  

- 				// Deprecated

- 				isResolved: doneList.fired,

- 				isRejected: failList.fired,

+ 				// Class selector

+ 				} else if ( (m = match[3]) && support.getElementsByClassName &&

+ 					context.getElementsByClassName ) {

  

- 				then: function( doneCallbacks, failCallbacks, progressCallbacks ) {

- 					deferred.done( doneCallbacks ).fail( failCallbacks ).progress( progressCallbacks );

- 					return this;

- 				},

- 				always: function() {

- 					deferred.done.apply( deferred, arguments ).fail.apply( deferred, arguments );

- 					return this;

- 				},

- 				pipe: function( fnDone, fnFail, fnProgress ) {

- 					return jQuery.Deferred(function( newDefer ) {

- 						jQuery.each( {

- 							done: [ fnDone, "resolve" ],

- 							fail: [ fnFail, "reject" ],

- 							progress: [ fnProgress, "notify" ]

- 						}, function( handler, data ) {

- 							var fn = data[ 0 ],

- 								action = data[ 1 ],

- 								returned;

- 							if ( jQuery.isFunction( fn ) ) {

- 								deferred[ handler ](function() {

- 									returned = fn.apply( this, arguments );

- 									if ( returned && jQuery.isFunction( returned.promise ) ) {

- 										returned.promise().then( newDefer.resolve, newDefer.reject, newDefer.notify );

- 									} else {

- 										newDefer[ action + "With" ]( this === deferred ? newDefer : this, [ returned ] );

- 									}

- 								});

- 							} else {

- 								deferred[ handler ]( newDefer[ action ] );

- 							}

- 						});

- 					}).promise();

- 				},

- 				// Get a promise for this deferred

- 				// If obj is provided, the promise aspect is added to the object

- 				promise: function( obj ) {

- 					if ( obj == null ) {

- 						obj = promise;

- 					} else {

- 						for ( var key in promise ) {

- 							obj[ key ] = promise[ key ];

- 						}

- 					}

- 					return obj;

+ 					push.apply( results, context.getElementsByClassName( m ) );

+ 					return results;

  				}

- 			},

- 			deferred = promise.promise({}),

- 			key;

+ 			}

  

- 		for ( key in lists ) {

- 			deferred[ key ] = lists[ key ].fire;

- 			deferred[ key + "With" ] = lists[ key ].fireWith;

- 		}

+ 			// Take advantage of querySelectorAll

+ 			if ( support.qsa &&

+ 				!compilerCache[ selector + " " ] &&

+ 				(!rbuggyQSA || !rbuggyQSA.test( selector )) ) {

  

- 		// Handle state

- 		deferred.done( function() {

- 			state = "resolved";

- 		}, failList.disable, progressList.lock ).fail( function() {

- 			state = "rejected";

- 		}, doneList.disable, progressList.lock );

+ 				if ( nodeType !== 1 ) {

+ 					newContext = context;

+ 					newSelector = selector;

  

- 		// Call given func if any

- 		if ( func ) {

- 			func.call( deferred, deferred );

- 		}

+ 				// qSA looks outside Element context, which is not what we want

+ 				// Thanks to Andrew Dupont for this workaround technique

+ 				// Support: IE <=8

+ 				// Exclude object elements

+ 				} else if ( context.nodeName.toLowerCase() !== "object" ) {

  

- 		// All done!

- 		return deferred;

- 	},

+ 					// Capture the context ID, setting it first if necessary

+ 					if ( (nid = context.getAttribute( "id" )) ) {

+ 						nid = nid.replace( rcssescape, fcssescape );

+ 					} else {

+ 						context.setAttribute( "id", (nid = expando) );

+ 					}

  

- 	// Deferred helper

- 	when: function( firstParam ) {

- 		var args = sliceDeferred.call( arguments, 0 ),

- 			i = 0,

- 			length = args.length,

- 			pValues = new Array( length ),

- 			count = length,

- 			pCount = length,

- 			deferred = length <= 1 && firstParam && jQuery.isFunction( firstParam.promise ) ?

- 				firstParam :

- 				jQuery.Deferred(),

- 			promise = deferred.promise();

- 		function resolveFunc( i ) {

- 			return function( value ) {

- 				args[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value;

- 				if ( !( --count ) ) {

- 					deferred.resolveWith( deferred, args );

+ 					// Prefix every selector in the list

+ 					groups = tokenize( selector );

+ 					i = groups.length;

+ 					while ( i-- ) {

+ 						groups[i] = "#" + nid + " " + toSelector( groups[i] );

+ 					}

+ 					newSelector = groups.join( "," );

+ 

+ 					// Expand context for sibling selectors

+ 					newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||

+ 						context;

  				}

- 			};

- 		}

- 		function progressFunc( i ) {

- 			return function( value ) {

- 				pValues[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value;

- 				deferred.notifyWith( promise, pValues );

- 			};

- 		}

- 		if ( length > 1 ) {

- 			for ( ; i < length; i++ ) {

- 				if ( args[ i ] && args[ i ].promise && jQuery.isFunction( args[ i ].promise ) ) {

- 					args[ i ].promise().then( resolveFunc(i), deferred.reject, progressFunc(i) );

- 				} else {

- 					--count;

+ 

+ 				if ( newSelector ) {

+ 					try {

+ 						push.apply( results,

+ 							newContext.querySelectorAll( newSelector )

+ 						);

+ 						return results;

+ 					} catch ( qsaError ) {

+ 					} finally {

+ 						if ( nid === expando ) {

+ 							context.removeAttribute( "id" );

+ 						}

+ 					}

  				}

  			}

- 			if ( !count ) {

- 				deferred.resolveWith( deferred, args );

- 			}

- 		} else if ( deferred !== firstParam ) {

- 			deferred.resolveWith( deferred, length ? [ firstParam ] : [] );

  		}

- 		return promise;

  	}

- });

  

+ 	// 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;

+ }

  

- jQuery.support = (function() {

- 

- 	var support,

- 		all,

- 		a,

- 		select,

- 		opt,

- 		input,

- 		fragment,

- 		tds,

- 		events,

- 		eventName,

- 		i,

- 		isSupported,

- 		div = document.createElement( "div" ),

- 		documentElement = document.documentElement;

- 

- 	// Preliminary tests

- 	div.setAttribute("className", "t");

- 	div.innerHTML = "   <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>";

- 

- 	all = div.getElementsByTagName( "*" );

- 	a = div.getElementsByTagName( "a" )[ 0 ];

- 

- 	// Can't get basic test support

- 	if ( !all || !all.length || !a ) {

- 		return {};

- 	}

- 

- 	// First batch of supports tests

- 	select = document.createElement( "select" );

- 	opt = select.appendChild( document.createElement("option") );

- 	input = div.getElementsByTagName( "input" )[ 0 ];

- 

- 	support = {

- 		// IE strips leading whitespace when .innerHTML is used

- 		leadingWhitespace: ( div.firstChild.nodeType === 3 ),

- 

- 		// Make sure that tbody elements aren't automatically inserted

- 		// IE will insert them into empty tables

- 		tbody: !div.getElementsByTagName("tbody").length,

- 

- 		// Make sure that link elements get serialized correctly by innerHTML

- 		// This requires a wrapper element in IE

- 		htmlSerialize: !!div.getElementsByTagName("link").length,

- 

- 		// Get the style information from getAttribute

- 		// (IE uses .cssText instead)

- 		style: /top/.test( a.getAttribute("style") ),

- 

- 		// Make sure that URLs aren't manipulated

- 		// (IE normalizes it by default)

- 		hrefNormalized: ( a.getAttribute("href") === "/a" ),

- 

- 		// Make sure that element opacity exists

- 		// (IE uses filter instead)

- 		// Use a regex to work around a WebKit issue. See #5145

- 		opacity: /^0.55/.test( a.style.opacity ),

- 

- 		// Verify style float existence

- 		// (IE uses styleFloat instead of cssFloat)

- 		cssFloat: !!a.style.cssFloat,

- 

- 		// Make sure that if no value is specified for a checkbox

- 		// that it defaults to "on".

- 		// (WebKit defaults to "" instead)

- 		checkOn: ( input.value === "on" ),

- 

- 		// Make sure that a selected-by-default option has a working selected property.

- 		// (WebKit defaults to false instead of true, IE too, if it's in an optgroup)

- 		optSelected: opt.selected,

- 

- 		// Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7)

- 		getSetAttribute: div.className !== "t",

- 

- 		// Tests for enctype support on a form(#6743)

- 		enctype: !!document.createElement("form").enctype,

- 

- 		// Makes sure cloning an html5 element does not cause problems

- 		// Where outerHTML is undefined, this still works

- 		html5Clone: document.createElement("nav").cloneNode( true ).outerHTML !== "<:nav></:nav>",

- 

- 		// Will be defined later

- 		submitBubbles: true,

- 		changeBubbles: true,

- 		focusinBubbles: false,

- 		deleteExpando: true,

- 		noCloneEvent: true,

- 		inlineBlockNeedsLayout: false,

- 		shrinkWrapBlocks: false,

- 		reliableMarginRight: true,

- 		pixelMargin: true

- 	};

+ /**

+  * Mark a function for special use by Sizzle

+  * @param {Function} fn The function to mark

+  */

+ function markFunction( fn ) {

+ 	fn[ expando ] = true;

+ 	return fn;

+ }

  

- 	// jQuery.boxModel DEPRECATED in 1.3, use jQuery.support.boxModel instead

- 	jQuery.boxModel = support.boxModel = (document.compatMode === "CSS1Compat");

+ /**

+  * Support testing using an element

+  * @param {Function} fn Passed the created element and returns a boolean result

+  */

+ function assert( fn ) {

+ 	var el = document.createElement("fieldset");

  

- 	// Make sure checked status is properly cloned

- 	input.checked = true;

- 	support.noCloneChecked = input.cloneNode( true ).checked;

+ 	try {

+ 		return !!fn( el );

+ 	} catch (e) {

+ 		return false;

+ 	} finally {

+ 		// Remove from its parent by default

+ 		if ( el.parentNode ) {

+ 			el.parentNode.removeChild( el );

+ 		}

+ 		// release memory in IE

+ 		el = null;

+ 	}

+ }

  

- 	// Make sure that the options inside disabled selects aren't marked as disabled

- 	// (WebKit marks them as disabled)

- 	select.disabled = true;

- 	support.optDisabled = !opt.disabled;

+ /**

+  * 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 = arr.length;

  

- 	// Test to see if it's possible to delete an expando from an element

- 	// Fails in Internet Explorer

- 	try {

- 		delete div.test;

- 	} catch( e ) {

- 		support.deleteExpando = false;

+ 	while ( i-- ) {

+ 		Expr.attrHandle[ arr[i] ] = handler;

  	}

+ }

  

- 	if ( !div.addEventListener && div.attachEvent && div.fireEvent ) {

- 		div.attachEvent( "onclick", function() {

- 			// Cloning a node shouldn't copy over any

- 			// bound event handlers (IE does this)

- 			support.noCloneEvent = false;

- 		});

- 		div.cloneNode( true ).fireEvent( "onclick" );

+ /**

+  * 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 &&

+ 			a.sourceIndex - b.sourceIndex;

+ 

+ 	// Use IE sourceIndex if available on both nodes

+ 	if ( diff ) {

+ 		return diff;

  	}

  

- 	// Check if a radio maintains its value

- 	// after being appended to the DOM

- 	input = document.createElement("input");

- 	input.value = "t";

- 	input.setAttribute("type", "radio");

- 	support.radioValue = input.value === "t";

+ 	// Check if b follows a

+ 	if ( cur ) {

+ 		while ( (cur = cur.nextSibling) ) {

+ 			if ( cur === b ) {

+ 				return -1;

+ 			}

+ 		}

+ 	}

  

- 	input.setAttribute("checked", "checked");

- 

- 	// #11217 - WebKit loses check when the name is after the checked attribute

- 	input.setAttribute( "name", "t" );

+ 	return a ? 1 : -1;

+ }

  

- 	div.appendChild( input );

- 	fragment = document.createDocumentFragment();

- 	fragment.appendChild( div.lastChild );

- 

- 	// WebKit doesn't clone checked state correctly in fragments

- 	support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked;

- 

- 	// Check if a disconnected checkbox will retain its checked

- 	// value of true after appended to the DOM (IE6/7)

- 	support.appendChecked = input.checked;

- 

- 	fragment.removeChild( input );

- 	fragment.appendChild( div );

- 

- 	// Technique from Juriy Zaytsev

- 	// http://perfectionkills.com/detecting-event-support-without-browser-sniffing/

- 	// We only care about the case where non-standard event systems

- 	// are used, namely in IE. Short-circuiting here helps us to

- 	// avoid an eval call (in setAttribute) which can cause CSP

- 	// to go haywire. See: https://developer.mozilla.org/en/Security/CSP

- 	if ( div.attachEvent ) {

- 		for ( i in {

- 			submit: 1,

- 			change: 1,

- 			focusin: 1

- 		}) {

- 			eventName = "on" + i;

- 			isSupported = ( eventName in div );

- 			if ( !isSupported ) {

- 				div.setAttribute( eventName, "return;" );

- 				isSupported = ( typeof div[ eventName ] === "function" );

- 			}

- 			support[ i + "Bubbles" ] = isSupported;

- 		}

- 	}

- 

- 	fragment.removeChild( div );

- 

- 	// Null elements to avoid leaks in IE

- 	fragment = select = opt = div = input = null;

- 

- 	// Run tests that need a body at doc ready

- 	jQuery(function() {

- 		var container, outer, inner, table, td, offsetSupport,

- 			marginDiv, conMarginTop, style, html, positionTopLeftWidthHeight,

- 			paddingMarginBorderVisibility, paddingMarginBorder,

- 			body = document.getElementsByTagName("body")[0];

- 

- 		if ( !body ) {

- 			// Return for frameset docs that don't have a body

- 			return;

- 		}

+ /**

+  * 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;

+ 	};

+ }

  

- 		conMarginTop = 1;

- 		paddingMarginBorder = "padding:0;margin:0;border:";

- 		positionTopLeftWidthHeight = "position:absolute;top:0;left:0;width:1px;height:1px;";

- 		paddingMarginBorderVisibility = paddingMarginBorder + "0;visibility:hidden;";

- 		style = "style='" + positionTopLeftWidthHeight + paddingMarginBorder + "5px solid #000;";

- 		html = "<div " + style + "display:block;'><div style='" + paddingMarginBorder + "0;display:block;overflow:hidden;'></div></div>" +

- 			"<table " + style + "' cellpadding='0' cellspacing='0'>" +

- 			"<tr><td></td></tr></table>";

- 

- 		container = document.createElement("div");

- 		container.style.cssText = paddingMarginBorderVisibility + "width:0;height:0;position:static;top:0;margin-top:" + conMarginTop + "px";

- 		body.insertBefore( container, body.firstChild );

- 

- 		// Construct the test element

- 		div = document.createElement("div");

- 		container.appendChild( div );

- 

- 		// Check if table cells still have offsetWidth/Height when they are set

- 		// to display:none and there are still other visible table cells in a

- 		// table row; if so, offsetWidth/Height are not reliable for use when

- 		// determining if an element has been hidden directly using

- 		// display:none (it is still safe to use offsets if a parent element is

- 		// hidden; don safety goggles and see bug #4512 for more information).

- 		// (only IE 8 fails this test)

- 		div.innerHTML = "<table><tr><td style='" + paddingMarginBorder + "0;display:none'></td><td>t</td></tr></table>";

- 		tds = div.getElementsByTagName( "td" );

- 		isSupported = ( tds[ 0 ].offsetHeight === 0 );

- 

- 		tds[ 0 ].style.display = "";

- 		tds[ 1 ].style.display = "none";

- 

- 		// Check if empty table cells still have offsetWidth/Height

- 		// (IE <= 8 fail this test)

- 		support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 );

- 

- 		// Check if div with explicit width and no margin-right incorrectly

- 		// gets computed margin-right based on width of container. For more

- 		// info see bug #3333

- 		// Fails in WebKit before Feb 2011 nightlies

- 		// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right

- 		if ( window.getComputedStyle ) {

- 			div.innerHTML = "";

- 			marginDiv = document.createElement( "div" );

- 			marginDiv.style.width = "0";

- 			marginDiv.style.marginRight = "0";

- 			div.style.width = "2px";

- 			div.appendChild( marginDiv );

- 			support.reliableMarginRight =

- 				( parseInt( ( window.getComputedStyle( marginDiv, null ) || { marginRight: 0 } ).marginRight, 10 ) || 0 ) === 0;

- 		}

- 

- 		if ( typeof div.style.zoom !== "undefined" ) {

- 			// Check if natively block-level elements act like inline-block

- 			// elements when setting their display to 'inline' and giving

- 			// them layout

- 			// (IE < 8 does this)

- 			div.innerHTML = "";

- 			div.style.width = div.style.padding = "1px";

- 			div.style.border = 0;

- 			div.style.overflow = "hidden";

- 			div.style.display = "inline";

- 			div.style.zoom = 1;

- 			support.inlineBlockNeedsLayout = ( div.offsetWidth === 3 );

- 

- 			// Check if elements with layout shrink-wrap their children

- 			// (IE 6 does this)

- 			div.style.display = "block";

- 			div.style.overflow = "visible";

- 			div.innerHTML = "<div style='width:5px;'></div>";

- 			support.shrinkWrapBlocks = ( div.offsetWidth !== 3 );

- 		}

- 

- 		div.style.cssText = positionTopLeftWidthHeight + paddingMarginBorderVisibility;

- 		div.innerHTML = html;

- 

- 		outer = div.firstChild;

- 		inner = outer.firstChild;

- 		td = outer.nextSibling.firstChild.firstChild;

- 

- 		offsetSupport = {

- 			doesNotAddBorder: ( inner.offsetTop !== 5 ),

- 			doesAddBorderForTableAndCells: ( td.offsetTop === 5 )

- 		};

+ /**

+  * 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;

+ 	};

+ }

  

- 		inner.style.position = "fixed";

- 		inner.style.top = "20px";

+ /**

+  * Returns a function to use in pseudos for :enabled/:disabled

+  * @param {Boolean} disabled true for :disabled; false for :enabled

+  */

+ function createDisabledPseudo( disabled ) {

+ 

+ 	// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable

+ 	return function( elem ) {

+ 

+ 		// Only certain elements can match :enabled or :disabled

+ 		// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled

+ 		// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled

+ 		if ( "form" in elem ) {

+ 

+ 			// Check for inherited disabledness on relevant non-disabled elements:

+ 			// * listed form-associated elements in a disabled fieldset

+ 			//   https://html.spec.whatwg.org/multipage/forms.html#category-listed

+ 			//   https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled

+ 			// * option elements in a disabled optgroup

+ 			//   https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled

+ 			// All such elements have a "form" property.

+ 			if ( elem.parentNode && elem.disabled === false ) {

+ 

+ 				// Option elements defer to a parent optgroup if present

+ 				if ( "label" in elem ) {

+ 					if ( "label" in elem.parentNode ) {

+ 						return elem.parentNode.disabled === disabled;

+ 					} else {

+ 						return elem.disabled === disabled;

+ 					}

+ 				}

  

- 		// safari subtracts parent border width here which is 5px

- 		offsetSupport.fixedPosition = ( inner.offsetTop === 20 || inner.offsetTop === 15 );

- 		inner.style.position = inner.style.top = "";

+ 				// Support: IE 6 - 11

+ 				// Use the isDisabled shortcut property to check for disabled fieldset ancestors

+ 				return elem.isDisabled === disabled ||

  

- 		outer.style.overflow = "hidden";

- 		outer.style.position = "relative";

+ 					// Where there is no isDisabled, check manually

+ 					/* jshint -W018 */

+ 					elem.isDisabled !== !disabled &&

+ 						disabledAncestor( elem ) === disabled;

+ 			}

  

- 		offsetSupport.subtractsBorderForOverflowNotVisible = ( inner.offsetTop === -5 );

- 		offsetSupport.doesNotIncludeMarginInBodyOffset = ( body.offsetTop !== conMarginTop );

+ 			return elem.disabled === disabled;

  

- 		if ( window.getComputedStyle ) {

- 			div.style.marginTop = "1%";

- 			support.pixelMargin = ( window.getComputedStyle( div, null ) || { marginTop: 0 } ).marginTop !== "1%";

+ 		// Try to winnow out elements that can't be disabled before trusting the disabled property.

+ 		// Some victims get caught in our net (label, legend, menu, track), but it shouldn't

+ 		// even exist on them, let alone have a boolean value.

+ 		} else if ( "label" in elem ) {

+ 			return elem.disabled === disabled;

  		}

  

- 		if ( typeof container.style.zoom !== "undefined" ) {

- 			container.style.zoom = 1;

- 		}

+ 		// Remaining elements are neither :enabled nor :disabled

+ 		return false;

+ 	};

+ }

  

- 		body.removeChild( container );

- 		marginDiv = div = container = null;

+ /**

+  * 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;

  

- 		jQuery.extend( support, offsetSupport );

+ 			// Match elements found at the specified indexes

+ 			while ( i-- ) {

+ 				if ( seed[ (j = matchIndexes[i]) ] ) {

+ 					seed[j] = !(matches[j] = seed[j]);

+ 				}

+ 			}

+ 		});

  	});

+ }

  

- 	return support;

- })();

- 

- 

+ /**

+  * 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 !== "undefined" && context;

+ }

  

+ // Expose support vars for convenience

+ support = Sizzle.support = {};

  

- var rbrace = /^(?:\{.*\}|\[.*\])$/,

- 	rmultiDash = /([A-Z])/g;

+ /**

+  * 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;

+ };

  

- jQuery.extend({

- 	cache: {},

+ /**

+  * 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, subWindow,

+ 		doc = node ? node.ownerDocument || node : preferredDoc;

  

- 	// Please use with caution

- 	uuid: 0,

+ 	// Return early if doc is invalid or already selected

+ 	if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {

+ 		return document;

+ 	}

  

- 	// Unique for each copy of jQuery on the page

- 	// Non-digits removed to match rinlinejQuery

- 	expando: "jQuery" + ( jQuery.fn.jquery + Math.random() ).replace( /\D/g, "" ),

+ 	// Update global variables

+ 	document = doc;

+ 	docElem = document.documentElement;

+ 	documentIsHTML = !isXML( document );

  

- 	// The following elements throw uncatchable exceptions if you

- 	// attempt to add expando properties to them.

- 	noData: {

- 		"embed": true,

- 		// Ban all objects except for Flash (which handle expandos)

- 		"object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",

- 		"applet": true

- 	},

+ 	// Support: IE 9-11, Edge

+ 	// Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936)

+ 	if ( preferredDoc !== document &&

+ 		(subWindow = document.defaultView) && subWindow.top !== subWindow ) {

  

- 	hasData: function( elem ) {

- 		elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ];

- 		return !!elem && !isEmptyDataObject( elem );

- 	},

+ 		// Support: IE 11, Edge

+ 		if ( subWindow.addEventListener ) {

+ 			subWindow.addEventListener( "unload", unloadHandler, false );

  

- 	data: function( elem, name, data, pvt /* Internal Use Only */ ) {

- 		if ( !jQuery.acceptData( elem ) ) {

- 			return;

+ 		// Support: IE 9 - 10 only

+ 		} else if ( subWindow.attachEvent ) {

+ 			subWindow.attachEvent( "onunload", unloadHandler );

  		}

+ 	}

  

- 		var privateCache, thisCache, ret,

- 			internalKey = jQuery.expando,

- 			getByName = typeof name === "string",

+ 	/* Attributes

+ 	---------------------------------------------------------------------- */

  

- 			// 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,

+ 	// Support: IE<8

+ 	// Verify that getAttribute really returns attributes and not properties

+ 	// (excepting IE8 booleans)

+ 	support.attributes = assert(function( el ) {

+ 		el.className = "i";

+ 		return !el.getAttribute("className");

+ 	});

  

- 			// 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,

+ 	/* getElement(s)By*

+ 	---------------------------------------------------------------------- */

  

- 			// 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,

- 			isEvents = name === "events";

+ 	// Check if getElementsByTagName("*") returns only elements

+ 	support.getElementsByTagName = assert(function( el ) {

+ 		el.appendChild( document.createComment("") );

+ 		return !el.getElementsByTagName("*").length;

+ 	});

  

- 		// 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] || (!isEvents && !pvt && !cache[id].data)) && getByName && data === undefined ) {

- 			return;

- 		}

+ 	// Support: IE<9

+ 	support.getElementsByClassName = rnative.test( document.getElementsByClassName );

  

- 		if ( !id ) {

- 			// Only DOM nodes need a new unique ID for each element since their data

- 			// ends up in the global cache

- 			if ( isNode ) {

- 				elem[ internalKey ] = id = ++jQuery.uuid;

- 			} else {

- 				id = internalKey;

+ 	// Support: IE<10

+ 	// Check if getElementById returns elements by name

+ 	// The broken getElementById methods don't pick up programmatically-set names,

+ 	// so use a roundabout getElementsByName test

+ 	support.getById = assert(function( el ) {

+ 		docElem.appendChild( el ).id = expando;

+ 		return !document.getElementsByName || !document.getElementsByName( expando ).length;

+ 	});

+ 

+ 	// ID filter and find

+ 	if ( support.getById ) {

+ 		Expr.filter["ID"] = function( id ) {

+ 			var attrId = id.replace( runescape, funescape );

+ 			return function( elem ) {

+ 				return elem.getAttribute("id") === attrId;

+ 			};

+ 		};

+ 		Expr.find["ID"] = function( id, context ) {

+ 			if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {

+ 				var elem = context.getElementById( id );

+ 				return elem ? [ elem ] : [];

  			}

- 		}

+ 		};

+ 	} else {

+ 		Expr.filter["ID"] =  function( id ) {

+ 			var attrId = id.replace( runescape, funescape );

+ 			return function( elem ) {

+ 				var node = typeof elem.getAttributeNode !== "undefined" &&

+ 					elem.getAttributeNode("id");

+ 				return node && node.value === attrId;

+ 			};

+ 		};

+ 

+ 		// Support: IE 6 - 7 only

+ 		// getElementById is not reliable as a find shortcut

+ 		Expr.find["ID"] = function( id, context ) {

+ 			if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {

+ 				var node, i, elems,

+ 					elem = context.getElementById( id );

+ 

+ 				if ( elem ) {

  

- 		if ( !cache[ id ] ) {

- 			cache[ id ] = {};

+ 					// Verify the id attribute

+ 					node = elem.getAttributeNode("id");

+ 					if ( node && node.value === id ) {

+ 						return [ elem ];

+ 					}

+ 

+ 					// Fall back on getElementsByName

+ 					elems = context.getElementsByName( id );

+ 					i = 0;

+ 					while ( (elem = elems[i++]) ) {

+ 						node = elem.getAttributeNode("id");

+ 						if ( node && node.value === id ) {

+ 							return [ elem ];

+ 						}

+ 					}

+ 				}

  

- 			// Avoids exposing jQuery metadata on plain JS objects when the object

- 			// is serialized using JSON.stringify

- 			if ( !isNode ) {

- 				cache[ id ].toJSON = jQuery.noop;

+ 				return [];

  			}

- 		}

+ 		};

+ 	}

  

- 		// 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 );

+ 	// Tag

+ 	Expr.find["TAG"] = support.getElementsByTagName ?

+ 		function( tag, context ) {

+ 			if ( typeof context.getElementsByTagName !== "undefined" ) {

+ 				return context.getElementsByTagName( tag );

+ 

+ 			// DocumentFragment nodes don't have gEBTN

+ 			} else if ( support.qsa ) {

+ 				return context.querySelectorAll( tag );

  			}

- 		}

+ 		} :

+ 

+ 		function( tag, context ) {

+ 			var elem,

+ 				tmp = [],

+ 				i = 0,

+ 				// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too

+ 				results = context.getElementsByTagName( tag );

  

- 		privateCache = thisCache = cache[ id ];

+ 			// Filter out possible comments

+ 			if ( tag === "*" ) {

+ 				while ( (elem = results[i++]) ) {

+ 					if ( elem.nodeType === 1 ) {

+ 						tmp.push( elem );

+ 					}

+ 				}

  

- 		// 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 = {};

+ 				return tmp;

  			}

+ 			return results;

+ 		};

  

- 			thisCache = thisCache.data;

+ 	// Class

+ 	Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {

+ 		if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) {

+ 			return context.getElementsByClassName( className );

  		}

+ 	};

  

- 		if ( data !== undefined ) {

- 			thisCache[ jQuery.camelCase( name ) ] = data;

- 		}

+ 	/* QSA/matchesSelector

+ 	---------------------------------------------------------------------- */

  

- 		// Users should not attempt to inspect the internal events object using jQuery.data,

- 		// it is undocumented and subject to change. But does anyone listen? No.

- 		if ( isEvents && !thisCache[ name ] ) {

- 			return privateCache.events;

- 		}

+ 	// QSA and matchesSelector support

  

- 		// Check for both converted-to-camel and non-converted data property names

- 		// If a data property was specified

- 		if ( getByName ) {

+ 	// matchesSelector(:active) reports false when true (IE9/Opera 11.5)

+ 	rbuggyMatches = [];

  

- 			// First Try to find as-is property data

- 			ret = thisCache[ name ];

+ 	// 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 https://bugs.jquery.com/ticket/13378

+ 	rbuggyQSA = [];

  

- 			// Test for null|undefined property data

- 			if ( ret == null ) {

+ 	if ( (support.qsa = rnative.test( document.querySelectorAll )) ) {

+ 		// Build QSA regex

+ 		// Regex strategy adopted from Diego Perini

+ 		assert(function( el ) {

+ 			// 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

+ 			// https://bugs.jquery.com/ticket/12359

+ 			docElem.appendChild( el ).innerHTML = "<a id='" + expando + "'></a>" +

+ 				"<select id='" + expando + "-\r\\' msallowcapture=''>" +

+ 				"<option selected=''></option></select>";

  

- 				// Try to find the camelCased property

- 				ret = thisCache[ jQuery.camelCase( name ) ];

+ 			// 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

+ 			// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section

+ 			if ( el.querySelectorAll("[msallowcapture^='']").length ) {

+ 				rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );

  			}

- 		} else {

- 			ret = thisCache;

- 		}

  

- 		return ret;

- 	},

+ 			// Support: IE8

+ 			// Boolean attributes and "value" are not treated correctly

+ 			if ( !el.querySelectorAll("[selected]").length ) {

+ 				rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );

+ 			}

  

- 	removeData: function( elem, name, pvt /* Internal Use Only */ ) {

- 		if ( !jQuery.acceptData( elem ) ) {

- 			return;

- 		}

+ 			// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+

+ 			if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) {

+ 				rbuggyQSA.push("~=");

+ 			}

  

- 		var thisCache, i, l,

+ 			// 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 ( !el.querySelectorAll(":checked").length ) {

+ 				rbuggyQSA.push(":checked");

+ 			}

  

- 			// Reference to internal data cache key

- 			internalKey = jQuery.expando,

+ 			// Support: Safari 8+, iOS 8+

+ 			// https://bugs.webkit.org/show_bug.cgi?id=136851

+ 			// In-page `selector#id sibling-combinator selector` fails

+ 			if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) {

+ 				rbuggyQSA.push(".#.+[+~]");

+ 			}

+ 		});

  

- 			isNode = elem.nodeType,

+ 		assert(function( el ) {

+ 			el.innerHTML = "<a href='' disabled='disabled'></a>" +

+ 				"<select disabled='disabled'><option/></select>";

  

- 			// See jQuery.data for more information

- 			cache = isNode ? jQuery.cache : elem,

+ 			// Support: Windows 8 Native Apps

+ 			// The type and name attributes are restricted during .innerHTML assignment

+ 			var input = document.createElement("input");

+ 			input.setAttribute( "type", "hidden" );

+ 			el.appendChild( input ).setAttribute( "name", "D" );

  

- 			// See jQuery.data for more information

- 			id = isNode ? elem[ internalKey ] : internalKey;

+ 			// Support: IE8

+ 			// Enforce case-sensitivity of name attribute

+ 			if ( el.querySelectorAll("[name=d]").length ) {

+ 				rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );

+ 			}

  

- 		// If there is already no cache entry for this object, there is no

- 		// purpose in continuing

- 		if ( !cache[ id ] ) {

- 			return;

- 		}

+ 			// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)

+ 			// IE8 throws error here and will not see later tests

+ 			if ( el.querySelectorAll(":enabled").length !== 2 ) {

+ 				rbuggyQSA.push( ":enabled", ":disabled" );

+ 			}

  

- 		if ( name ) {

+ 			// Support: IE9-11+

+ 			// IE's :disabled selector does not pick up the children of disabled fieldsets

+ 			docElem.appendChild( el ).disabled = true;

+ 			if ( el.querySelectorAll(":disabled").length !== 2 ) {

+ 				rbuggyQSA.push( ":enabled", ":disabled" );

+ 			}

  

- 			thisCache = pvt ? cache[ id ] : cache[ id ].data;

+ 			// Opera 10-11 does not throw on post-comma invalid pseudos

+ 			el.querySelectorAll("*,:x");

+ 			rbuggyQSA.push(",.*:");

+ 		});

+ 	}

  

- 			if ( thisCache ) {

+ 	if ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||

+ 		docElem.webkitMatchesSelector ||

+ 		docElem.mozMatchesSelector ||

+ 		docElem.oMatchesSelector ||

+ 		docElem.msMatchesSelector) )) ) {

  

- 				// Support array or space separated string names for data keys

- 				if ( !jQuery.isArray( name ) ) {

+ 		assert(function( el ) {

+ 			// Check to see if it's possible to do matchesSelector

+ 			// on a disconnected node (IE 9)

+ 			support.disconnectedMatch = matches.call( el, "*" );

  

- 					// try the string as a key before any manipulation

- 					if ( name in thisCache ) {

- 						name = [ name ];

- 					} else {

+ 			// This should fail with an exception

+ 			// Gecko does not error, returns false instead

+ 			matches.call( el, "[s!='']:x" );

+ 			rbuggyMatches.push( "!=", pseudos );

+ 		});

+ 	}

  

- 						// 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( " " );

- 						}

+ 	rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );

+ 	rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );

+ 

+ 	/* Contains

+ 	---------------------------------------------------------------------- */

+ 	hasCompare = rnative.test( docElem.compareDocumentPosition );

+ 

+ 	// Element contains another

+ 	// Purposefully self-exclusive

+ 	// 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;

  					}

  				}

- 

- 				for ( i = 0, l = name.length; i < l; 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 : jQuery.isEmptyObject )( thisCache ) ) {

- 					return;

- 				}

  			}

- 		}

+ 			return false;

+ 		};

  

- 		// See jQuery.data for more information

- 		if ( !pvt ) {

- 			delete cache[ id ].data;

+ 	/* Sorting

+ 	---------------------------------------------------------------------- */

  

- 			// Don't destroy the parent cache unless the internal data object

- 			// had been the only thing left in it

- 			if ( !isEmptyDataObject(cache[ id ]) ) {

- 				return;

- 			}

+ 	// Document order sorting

+ 	sortOrder = hasCompare ?

+ 	function( a, b ) {

+ 

+ 		// Flag for duplicate removal

+ 		if ( a === b ) {

+ 			hasDuplicate = true;

+ 			return 0;

  		}

  

- 		// Browsers that fail expando deletion also refuse to delete expandos on

- 		// the window, but it will allow it on all other JS objects; other browsers

- 		// don't care

- 		// Ensure that `cache` is not a window object #10080

- 		if ( jQuery.support.deleteExpando || !cache.setInterval ) {

- 			delete cache[ id ];

- 		} else {

- 			cache[ id ] = null;

- 		}

- 

- 		// We destroyed the cache and need to eliminate the expando on the node to avoid

- 		// false lookups in the cache for entries that no longer exist

- 		if ( isNode ) {

- 			// IE does not allow us to delete expando properties from nodes,

- 			// nor does it have a removeAttribute function on Document nodes;

- 			// we must handle all of these cases

- 			if ( jQuery.support.deleteExpando ) {

- 				delete elem[ internalKey ];

- 			} else if ( elem.removeAttribute ) {

- 				elem.removeAttribute( internalKey );

- 			} else {

- 				elem[ internalKey ] = null;

- 			}

+ 		// Sort on method existence if only one input has compareDocumentPosition

+ 		var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;

+ 		if ( compare ) {

+ 			return compare;

  		}

- 	},

  

- 	// For internal use only.

- 	_data: function( elem, name, data ) {

- 		return jQuery.data( elem, name, data, true );

- 	},

+ 		// Calculate position if both inputs belong to the same document

+ 		compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?

+ 			a.compareDocumentPosition( b ) :

  

- 	// A method for determining if a DOM node can handle the data expando

- 	acceptData: function( elem ) {

- 		if ( elem.nodeName ) {

- 			var match = jQuery.noData[ elem.nodeName.toLowerCase() ];

+ 			// Otherwise we know they are disconnected

+ 			1;

  

- 			if ( match ) {

- 				return !(match === true || elem.getAttribute("classid") !== match);

+ 		// Disconnected nodes

+ 		if ( compare & 1 ||

+ 			(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {

+ 

+ 			// Choose the first element that is related to our preferred document

+ 			if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {

+ 				return -1;

  			}

+ 			if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {

+ 				return 1;

+ 			}

+ 

+ 			// Maintain original order

+ 			return sortInput ?

+ 				( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :

+ 				0;

  		}

  

- 		return true;

- 	}

- });

+ 		return compare & 4 ? -1 : 1;

+ 	} :

+ 	function( a, b ) {

+ 		// Exit early if the nodes are identical

+ 		if ( a === b ) {

+ 			hasDuplicate = true;

+ 			return 0;

+ 		}

  

- jQuery.fn.extend({

- 	data: function( key, value ) {

- 		var parts, part, attr, name, l,

- 			elem = this[0],

+ 		var cur,

  			i = 0,

- 			data = null;

+ 			aup = a.parentNode,

+ 			bup = b.parentNode,

+ 			ap = [ a ],

+ 			bp = [ b ];

+ 

+ 		// Parentless nodes are either documents or disconnected

+ 		if ( !aup || !bup ) {

+ 			return a === document ? -1 :

+ 				b === document ? 1 :

+ 				aup ? -1 :

+ 				bup ? 1 :

+ 				sortInput ?

+ 				( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :

+ 				0;

  

- 		// Gets all values

- 		if ( key === undefined ) {

- 			if ( this.length ) {

- 				data = jQuery.data( elem );

+ 		// If the nodes are siblings, we can do a quick check

+ 		} else if ( aup === bup ) {

+ 			return siblingCheck( a, b );

+ 		}

  

- 				if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) {

- 					attr = elem.attributes;

- 					for ( l = attr.length; i < l; i++ ) {

- 						name = attr[i].name;

+ 		// 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 );

+ 		}

  

- 						if ( name.indexOf( "data-" ) === 0 ) {

- 							name = jQuery.camelCase( name.substring(5) );

+ 		// Walk down the tree looking for a discrepancy

+ 		while ( ap[i] === bp[i] ) {

+ 			i++;

+ 		}

  

- 							dataAttr( elem, name, data[ name ] );

- 						}

- 					}

- 					jQuery._data( elem, "parsedAttrs", true );

- 				}

- 			}

+ 		return i ?

+ 			// Do a sibling check if the nodes have a common ancestor

+ 			siblingCheck( ap[i], bp[i] ) :

  

- 			return data;

- 		}

+ 			// Otherwise nodes in our document sort first

+ 			ap[i] === preferredDoc ? -1 :

+ 			bp[i] === preferredDoc ? 1 :

+ 			0;

+ 	};

  

- 		// Sets multiple values

- 		if ( typeof key === "object" ) {

- 			return this.each(function() {

- 				jQuery.data( this, key );

- 			});

- 		}

+ 	return document;

+ };

+ 

+ Sizzle.matches = function( expr, elements ) {

+ 	return Sizzle( expr, null, null, elements );

+ };

  

- 		parts = key.split( ".", 2 );

- 		parts[1] = parts[1] ? "." + parts[1] : "";

- 		part = parts[1] + "!";

+ Sizzle.matchesSelector = function( elem, expr ) {

+ 	// Set document vars if needed

+ 	if ( ( elem.ownerDocument || elem ) !== document ) {

+ 		setDocument( elem );

+ 	}

  

- 		return jQuery.access( this, function( value ) {

+ 	// Make sure that attribute selectors are quoted

+ 	expr = expr.replace( rattributeQuotes, "='$1']" );

  

- 			if ( value === undefined ) {

- 				data = this.triggerHandler( "getData" + part, [ parts[0] ] );

+ 	if ( support.matchesSelector && documentIsHTML &&

+ 		!compilerCache[ expr + " " ] &&

+ 		( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&

+ 		( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {

  

- 				// Try to fetch any internally stored data first

- 				if ( data === undefined && elem ) {

- 					data = jQuery.data( elem, key );

- 					data = dataAttr( elem, key, data );

- 				}

+ 		try {

+ 			var ret = matches.call( elem, expr );

  

- 				return data === undefined && parts[1] ?

- 					this.data( parts[0] ) :

- 					data;

+ 			// 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) {}

+ 	}

  

- 			parts[1] = value;

- 			this.each(function() {

- 				var self = jQuery( this );

+ 	return Sizzle( expr, document, null, [ elem ] ).length > 0;

+ };

  

- 				self.triggerHandler( "setData" + part, parts );

- 				jQuery.data( this, key, value );

- 				self.triggerHandler( "changeData" + part, parts );

- 			});

- 		}, null, value, arguments.length > 1, null, false );

- 	},

+ Sizzle.contains = function( context, elem ) {

+ 	// Set document vars if needed

+ 	if ( ( context.ownerDocument || context ) !== document ) {

+ 		setDocument( context );

+ 	}

+ 	return contains( context, elem );

+ };

  

- 	removeData: function( key ) {

- 		return this.each(function() {

- 			jQuery.removeData( this, key );

- 		});

+ Sizzle.attr = function( elem, name ) {

+ 	// Set document vars if needed

+ 	if ( ( elem.ownerDocument || elem ) !== document ) {

+ 		setDocument( elem );

  	}

- });

  

- 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 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;

  

- 		var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase();

+ 	return val !== undefined ?

+ 		val :

+ 		support.attributes || !documentIsHTML ?

+ 			elem.getAttribute( name ) :

+ 			(val = elem.getAttributeNode(name)) && val.specified ?

+ 				val.value :

+ 				null;

+ };

  

- 		data = elem.getAttribute( name );

+ Sizzle.escape = function( sel ) {

+ 	return (sel + "").replace( rcssescape, fcssescape );

+ };

  

- 		if ( typeof data === "string" ) {

- 			try {

- 				data = data === "true" ? true :

- 				data === "false" ? false :

- 				data === "null" ? null :

- 				jQuery.isNumeric( data ) ? +data :

- 					rbrace.test( data ) ? jQuery.parseJSON( data ) :

- 					data;

- 			} catch( e ) {}

+ Sizzle.error = function( msg ) {

+ 	throw new Error( "Syntax error, unrecognized expression: " + msg );

+ };

  

- 			// Make sure we set the data so it isn't changed later

- 			jQuery.data( elem, key, data );

+ /**

+  * Document sorting and removing duplicates

+  * @param {ArrayLike} results

+  */

+ Sizzle.uniqueSort = function( results ) {

+ 	var elem,

+ 		duplicates = [],

+ 		j = 0,

+ 		i = 0;

  

- 		} else {

- 			data = undefined;

+ 	// 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 );

  		}

  	}

  

- 	return data;

- }

+ 	// Clear input after sorting to release objects

+ 	// See https://github.com/jquery/sizzle/pull/225

+ 	sortInput = null;

  

- // checks a cache object for emptiness

- function isEmptyDataObject( obj ) {

- 	for ( var name in obj ) {

+ 	return results;

+ };

  

- 		// if the public data object is empty, the private is still empty

- 		if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) {

- 			continue;

+ /**

+  * 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 );

  		}

- 		if ( name !== "toJSON" ) {

- 			return false;

+ 	} 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 true;

- }

+ 	return ret;

+ };

  

+ Expr = Sizzle.selectors = {

  

+ 	// Can be adjusted by the user

+ 	cacheLength: 50,

  

+ 	createPseudo: markFunction,

  

- function handleQueueMarkDefer( elem, type, src ) {

- 	var deferDataKey = type + "defer",

- 		queueDataKey = type + "queue",

- 		markDataKey = type + "mark",

- 		defer = jQuery._data( elem, deferDataKey );

- 	if ( defer &&

- 		( src === "queue" || !jQuery._data(elem, queueDataKey) ) &&

- 		( src === "mark" || !jQuery._data(elem, markDataKey) ) ) {

- 		// Give room for hard-coded callbacks to fire first

- 		// and eventually mark/queue something else on the element

- 		setTimeout( function() {

- 			if ( !jQuery._data( elem, queueDataKey ) &&

- 				!jQuery._data( elem, markDataKey ) ) {

- 				jQuery.removeData( elem, deferDataKey, true );

- 				defer.fire();

- 			}

- 		}, 0 );

- 	}

- }

+ 	match: matchExpr,

  

- jQuery.extend({

+ 	attrHandle: {},

  

- 	_mark: function( elem, type ) {

- 		if ( elem ) {

- 			type = ( type || "fx" ) + "mark";

- 			jQuery._data( elem, type, (jQuery._data( elem, type ) || 0) + 1 );

- 		}

+ 	find: {},

+ 

+ 	relative: {

+ 		">": { dir: "parentNode", first: true },

+ 		" ": { dir: "parentNode" },

+ 		"+": { dir: "previousSibling", first: true },

+ 		"~": { dir: "previousSibling" }

  	},

  

- 	_unmark: function( force, elem, type ) {

- 		if ( force !== true ) {

- 			type = elem;

- 			elem = force;

- 			force = false;

- 		}

- 		if ( elem ) {

- 			type = type || "fx";

- 			var key = type + "mark",

- 				count = force ? 0 : ( (jQuery._data( elem, key ) || 1) - 1 );

- 			if ( count ) {

- 				jQuery._data( elem, key, count );

- 			} else {

- 				jQuery.removeData( elem, key, true );

- 				handleQueueMarkDefer( elem, type, "mark" );

+ 	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] + " ";

  			}

- 		}

- 	},

  

- 	queue: function( elem, type, data ) {

- 		var q;

- 		if ( elem ) {

- 			type = ( type || "fx" ) + "queue";

- 			q = jQuery._data( elem, type );

+ 			return match.slice( 0, 4 );

+ 		},

  

- 			// Speed up dequeue by getting out quickly if this is just a lookup

- 			if ( data ) {

- 				if ( !q || jQuery.isArray(data) ) {

- 					q = jQuery._data( elem, type, jQuery.makeArray(data) );

- 				} else {

- 					q.push( data );

+ 		"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 q || [];

- 		}

- 	},

  

- 	dequeue: function( elem, type ) {

- 		type = type || "fx";

+ 			return match;

+ 		},

  

- 		var queue = jQuery.queue( elem, type ),

- 			fn = queue.shift(),

- 			hooks = {};

+ 		"PSEUDO": function( match ) {

+ 			var excess,

+ 				unquoted = !match[6] && match[2];

  

- 		// If the fx queue is dequeued, always remove the progress sentinel

- 		if ( fn === "inprogress" ) {

- 			fn = queue.shift();

- 		}

+ 			if ( matchExpr["CHILD"].test( match[0] ) ) {

+ 				return null;

+ 			}

  

- 		if ( fn ) {

- 			// Add a progress sentinel to prevent the fx queue from being

- 			// automatically dequeued

- 			if ( type === "fx" ) {

- 				queue.unshift( "inprogress" );

+ 			// 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 );

  			}

  

- 			jQuery._data( elem, type + ".run", hooks );

- 			fn.call( elem, function() {

- 				jQuery.dequeue( elem, type );

- 			}, hooks );

+ 			// Return only captures needed by the pseudo filter method (type and argument)

+ 			return match.slice( 0, 3 );

  		}

+ 	},

  

- 		if ( !queue.length ) {

- 			jQuery.removeData( elem, type + "queue " + type + ".run", true );

- 			handleQueueMarkDefer( elem, type, "queue" );

- 		}

- 	}

- });

+ 	filter: {

  

- jQuery.fn.extend({

- 	queue: function( type, data ) {

- 		var setter = 2;

+ 		"TAG": function( nodeNameSelector ) {

+ 			var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();

+ 			return nodeNameSelector === "*" ?

+ 				function() { return true; } :

+ 				function( elem ) {

+ 					return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;

+ 				};

+ 		},

  

- 		if ( typeof type !== "string" ) {

- 			data = type;

- 			type = "fx";

- 			setter--;

- 		}

+ 		"CLASS": function( className ) {

+ 			var pattern = classCache[ className + " " ];

  

- 		if ( arguments.length < setter ) {

- 			return jQuery.queue( this[0], type );

- 		}

+ 			return pattern ||

+ 				(pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&

+ 				classCache( className, function( elem ) {

+ 					return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" );

+ 				});

+ 		},

  

- 		return data === undefined ?

- 			this :

- 			this.each(function() {

- 				var queue = jQuery.queue( this, type, data );

+ 		"ATTR": function( name, operator, check ) {

+ 			return function( elem ) {

+ 				var result = Sizzle.attr( elem, name );

  

- 				if ( type === "fx" && queue[0] !== "inprogress" ) {

- 					jQuery.dequeue( this, type );

+ 				if ( result == null ) {

+ 					return operator === "!=";

  				}

- 			});

- 	},

- 	dequeue: function( type ) {

- 		return this.each(function() {

- 			jQuery.dequeue( this, type );

- 		});

- 	},

- 	// Based off of the plugin by Clint Helfers, with permission.

- 	// http://blindsignals.com/index.php/2009/07/jquery-delay/

- 	delay: function( time, type ) {

- 		time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;

- 		type = type || "fx";

+ 				if ( !operator ) {

+ 					return true;

+ 				}

+ 

+ 				result += "";

  

- 		return this.queue( type, function( next, hooks ) {

- 			var timeout = setTimeout( next, time );

- 			hooks.stop = function() {

- 				clearTimeout( timeout );

+ 				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.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :

+ 					operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :

+ 					false;

  			};

- 		});

- 	},

- 	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, object ) {

- 		if ( typeof type !== "string" ) {

- 			object = type;

- 			type = undefined;

- 		}

- 		type = type || "fx";

- 		var defer = jQuery.Deferred(),

- 			elements = this,

- 			i = elements.length,

- 			count = 1,

- 			deferDataKey = type + "defer",

- 			queueDataKey = type + "queue",

- 			markDataKey = type + "mark",

- 			tmp;

- 		function resolve() {

- 			if ( !( --count ) ) {

- 				defer.resolveWith( elements, [ elements ] );

- 			}

- 		}

- 		while( i-- ) {

- 			if (( tmp = jQuery.data( elements[ i ], deferDataKey, undefined, true ) ||

- 					( jQuery.data( elements[ i ], queueDataKey, undefined, true ) ||

- 						jQuery.data( elements[ i ], markDataKey, undefined, true ) ) &&

- 					jQuery.data( elements[ i ], deferDataKey, jQuery.Callbacks( "once memory" ), true ) )) {

- 				count++;

- 				tmp.add( resolve );

- 			}

- 		}

- 		resolve();

- 		return defer.promise( object );

- 	}

- });

+ 		},

  

+ 		"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, uniqueCache, outerCache, node, nodeIndex, start,

+ 						dir = simple !== forward ? "nextSibling" : "previousSibling",

+ 						parent = elem.parentNode,

+ 						name = ofType && elem.nodeName.toLowerCase(),

+ 						useCache = !xml && !ofType,

+ 						diff = false;

+ 

+ 					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 ) {

  

- var rclass = /[\n\t\r]/g,

- 	rspace = /\s+/,

- 	rreturn = /\r/g,

- 	rtype = /^(?:button|input)$/i,

- 	rfocusable = /^(?:button|input|object|select|textarea)$/i,

- 	rclickable = /^a(?:rea)?$/i,

- 	rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,

- 	getSetAttribute = jQuery.support.getSetAttribute,

- 	nodeHook, boolHook, fixSpecified;

+ 							// Seek `elem` from a previously-cached index

  

- jQuery.fn.extend({

- 	attr: function( name, value ) {

- 		return jQuery.access( this, jQuery.attr, name, value, arguments.length > 1 );

- 	},

+ 							// ...in a gzip-friendly way

+ 							node = parent;

+ 							outerCache = node[ expando ] || (node[ expando ] = {});

  

- 	removeAttr: function( name ) {

- 		return this.each(function() {

- 			jQuery.removeAttr( this, name );

- 		});

- 	},

+ 							// Support: IE <9 only

+ 							// Defend against cloned attroperties (jQuery gh-1709)

+ 							uniqueCache = outerCache[ node.uniqueID ] ||

+ 								(outerCache[ node.uniqueID ] = {});

  

- 	prop: function( name, value ) {

- 		return jQuery.access( this, jQuery.prop, name, value, arguments.length > 1 );

- 	},

+ 							cache = uniqueCache[ type ] || [];

+ 							nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];

+ 							diff = nodeIndex && cache[ 2 ];

+ 							node = nodeIndex && parent.childNodes[ nodeIndex ];

  

- 	removeProp: function( name ) {

- 		name = jQuery.propFix[ name ] || name;

- 		return this.each(function() {

- 			// try/catch handles cases where IE balks (such as removing a property on window)

- 			try {

- 				this[ name ] = undefined;

- 				delete this[ name ];

- 			} catch( e ) {}

- 		});

- 	},

+ 							while ( (node = ++nodeIndex && node && node[ dir ] ||

  

- 	addClass: function( value ) {

- 		var classNames, i, l, elem,

- 			setClass, c, cl;

+ 								// Fallback to seeking `elem` from the start

+ 								(diff = nodeIndex = 0) || start.pop()) ) {

  

- 		if ( jQuery.isFunction( value ) ) {

- 			return this.each(function( j ) {

- 				jQuery( this ).addClass( value.call(this, j, this.className) );

- 			});

- 		}

+ 								// When found, cache indexes on `parent` and break

+ 								if ( node.nodeType === 1 && ++diff && node === elem ) {

+ 									uniqueCache[ type ] = [ dirruns, nodeIndex, diff ];

+ 									break;

+ 								}

+ 							}

+ 

+ 						} else {

+ 							// Use previously-cached element index if available

+ 							if ( useCache ) {

+ 								// ...in a gzip-friendly way

+ 								node = elem;

+ 								outerCache = node[ expando ] || (node[ expando ] = {});

+ 

+ 								// Support: IE <9 only

+ 								// Defend against cloned attroperties (jQuery gh-1709)

+ 								uniqueCache = outerCache[ node.uniqueID ] ||

+ 									(outerCache[ node.uniqueID ] = {});

+ 

+ 								cache = uniqueCache[ type ] || [];

+ 								nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];

+ 								diff = nodeIndex;

+ 							}

  

- 		if ( value && typeof value === "string" ) {

- 			classNames = value.split( rspace );

+ 							// xml :nth-child(...)

+ 							// or :nth-last-child(...) or :nth(-last)?-of-type(...)

+ 							if ( diff === false ) {

+ 								// Use the same loop as above to seek `elem` from the start

+ 								while ( (node = ++nodeIndex && node && node[ dir ] ||

+ 									(diff = nodeIndex = 0) || start.pop()) ) {

  

- 			for ( i = 0, l = this.length; i < l; i++ ) {

- 				elem = this[ i ];

+ 									if ( ( ofType ?

+ 										node.nodeName.toLowerCase() === name :

+ 										node.nodeType === 1 ) &&

+ 										++diff ) {

  

- 				if ( elem.nodeType === 1 ) {

- 					if ( !elem.className && classNames.length === 1 ) {

- 						elem.className = value;

+ 										// Cache the index of each encountered element

+ 										if ( useCache ) {

+ 											outerCache = node[ expando ] || (node[ expando ] = {});

  

- 					} else {

- 						setClass = " " + elem.className + " ";

+ 											// Support: IE <9 only

+ 											// Defend against cloned attroperties (jQuery gh-1709)

+ 											uniqueCache = outerCache[ node.uniqueID ] ||

+ 												(outerCache[ node.uniqueID ] = {});

+ 

+ 											uniqueCache[ type ] = [ dirruns, diff ];

+ 										}

  

- 						for ( c = 0, cl = classNames.length; c < cl; c++ ) {

- 							if ( !~setClass.indexOf( " " + classNames[ c ] + " " ) ) {

- 								setClass += classNames[ c ] + " ";

+ 										if ( node === elem ) {

+ 											break;

+ 										}

+ 									}

+ 								}

  							}

  						}

- 						elem.className = jQuery.trim( setClass );

- 					}

- 				}

- 			}

- 		}

  

- 		return this;

- 	},

+ 						// Incorporate the offset, then check against cycle size

+ 						diff -= last;

+ 						return diff === first || ( diff % first === 0 && diff / first >= 0 );

+ 					}

+ 				};

+ 		},

  

- 	removeClass: function( value ) {

- 		var classNames, i, l, elem, className, c, cl;

+ 		"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( seed, matched[i] );

+ 							seed[ idx ] = !( matches[ idx ] = matched[i] );

+ 						}

+ 					}) :

+ 					function( elem ) {

+ 						return fn( elem, 0, args );

+ 					};

+ 			}

  

- 		if ( jQuery.isFunction( value ) ) {

- 			return this.each(function( j ) {

- 				jQuery( this ).removeClass( value.call(this, j, this.className) );

- 			});

+ 			return fn;

  		}

+ 	},

  

- 		if ( (value && typeof value === "string") || value === undefined ) {

- 			classNames = ( value || "" ).split( rspace );

+ 	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" ) );

  

- 			for ( i = 0, l = this.length; i < l; i++ ) {

- 				elem = this[ i ];

+ 			return matcher[ expando ] ?

+ 				markFunction(function( seed, matches, context, xml ) {

+ 					var elem,

+ 						unmatched = matcher( seed, null, xml, [] ),

+ 						i = seed.length;

  

- 				if ( elem.nodeType === 1 && elem.className ) {

- 					if ( value ) {

- 						className = (" " + elem.className + " ").replace( rclass, " " );

- 						for ( c = 0, cl = classNames.length; c < cl; c++ ) {

- 							className = className.replace(" " + classNames[ c ] + " ", " ");

+ 					// Match elements unmatched by `matcher`

+ 					while ( i-- ) {

+ 						if ( (elem = unmatched[i]) ) {

+ 							seed[i] = !(matches[i] = elem);

  						}

- 						elem.className = jQuery.trim( className );

- 

- 					} else {

- 						elem.className = "";

  					}

- 				}

- 			}

- 		}

+ 				}) :

+ 				function( elem, context, xml ) {

+ 					input[0] = elem;

+ 					matcher( input, null, xml, results );

+ 					// Don't keep the element (issue #299)

+ 					input[0] = null;

+ 					return !results.pop();

+ 				};

+ 		}),

  

- 		return this;

- 	},

+ 		"has": markFunction(function( selector ) {

+ 			return function( elem ) {

+ 				return Sizzle( selector, elem ).length > 0;

+ 			};

+ 		}),

  

- 	toggleClass: function( value, stateVal ) {

- 		var type = typeof value,

- 			isBool = typeof stateVal === "boolean";

+ 		"contains": markFunction(function( text ) {

+ 			text = text.replace( runescape, funescape );

+ 			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;

+ 			};

+ 		}),

  

- 		if ( jQuery.isFunction( value ) ) {

- 			return this.each(function( i ) {

- 				jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal );

- 			});

- 		}

+ 		// Miscellaneous

+ 		"target": function( elem ) {

+ 			var hash = window.location && window.location.hash;

+ 			return hash && hash.slice( 1 ) === elem.id;

+ 		},

  

- 		return this.each(function() {

- 			if ( type === "string" ) {

- 				// toggle individual class names

- 				var className,

- 					i = 0,

- 					self = jQuery( this ),

- 					state = stateVal,

- 					classNames = value.split( rspace );

+ 		"root": function( elem ) {

+ 			return elem === docElem;

+ 		},

  

- 				while ( (className = classNames[ i++ ]) ) {

- 					// check each className given, space seperated list

- 					state = isBool ? state : !self.hasClass( className );

- 					self[ state ? "addClass" : "removeClass" ]( className );

- 				}

+ 		"focus": function( elem ) {

+ 			return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);

+ 		},

  

- 			} else if ( type === "undefined" || type === "boolean" ) {

- 				if ( this.className ) {

- 					// store className if set

- 					jQuery._data( this, "__className__", this.className );

- 				}

+ 		// Boolean properties

+ 		"enabled": createDisabledPseudo( false ),

+ 		"disabled": createDisabledPseudo( 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);

+ 		},

  

- 				// toggle whole className

- 				this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || "";

+ 		"selected": function( elem ) {

+ 			// Accessing this property makes selected-by-default

+ 			// options in Safari work properly

+ 			if ( elem.parentNode ) {

+ 				elem.parentNode.selectedIndex;

  			}

- 		});

- 	},

  

- 	hasClass: function( selector ) {

- 		var className = " " + selector + " ",

- 			i = 0,

- 			l = this.length;

- 		for ( ; i < l; i++ ) {

- 			if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) {

- 				return true;

+ 			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;

+ 		},

  

- 		return false;

- 	},

+ 		"parent": function( elem ) {

+ 			return !Expr.pseudos["empty"]( elem );

+ 		},

  

- 	val: function( value ) {

- 		var hooks, ret, isFunction,

- 			elem = this[0];

+ 		// Element/input types

+ 		"header": function( elem ) {

+ 			return rheader.test( elem.nodeName );

+ 		},

  

- 		if ( !arguments.length ) {

- 			if ( elem ) {

- 				hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ];

+ 		"input": function( elem ) {

+ 			return rinputs.test( elem.nodeName );

+ 		},

  

- 				if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) {

- 					return ret;

- 				}

+ 		"button": function( elem ) {

+ 			var name = elem.nodeName.toLowerCase();

+ 			return name === "input" && elem.type === "button" || name === "button";

+ 		},

  

- 				ret = elem.value;

+ 		"text": function( elem ) {

+ 			var attr;

+ 			return elem.nodeName.toLowerCase() === "input" &&

+ 				elem.type === "text" &&

  

- 				return typeof ret === "string" ?

- 					// handle most common string cases

- 					ret.replace(rreturn, "") :

- 					// handle cases where value is null/undef or number

- 					ret == null ? "" : ret;

- 			}

+ 				// Support: IE<8

+ 				// New HTML5 attribute values (e.g., "search") appear with elem.type === "text"

+ 				( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );

+ 		},

  

- 			return;

- 		}

+ 		// Position-in-collection

+ 		"first": createPositionalPseudo(function() {

+ 			return [ 0 ];

+ 		}),

  

- 		isFunction = jQuery.isFunction( value );

+ 		"last": createPositionalPseudo(function( matchIndexes, length ) {

+ 			return [ length - 1 ];

+ 		}),

  

- 		return this.each(function( i ) {

- 			var self = jQuery(this), val;

+ 		"eq": createPositionalPseudo(function( matchIndexes, length, argument ) {

+ 			return [ argument < 0 ? argument + length : argument ];

+ 		}),

  

- 			if ( this.nodeType !== 1 ) {

- 				return;

+ 		"even": createPositionalPseudo(function( matchIndexes, length ) {

+ 			var i = 0;

+ 			for ( ; i < length; i += 2 ) {

+ 				matchIndexes.push( i );

  			}

+ 			return matchIndexes;

+ 		}),

  

- 			if ( isFunction ) {

- 				val = value.call( this, i, self.val() );

- 			} else {

- 				val = value;

+ 		"odd": createPositionalPseudo(function( matchIndexes, length ) {

+ 			var i = 1;

+ 			for ( ; i < length; i += 2 ) {

+ 				matchIndexes.push( i );

  			}

+ 			return matchIndexes;

+ 		}),

  

- 			// Treat null/undefined as ""; convert numbers to string

- 			if ( val == null ) {

- 				val = "";

- 			} else if ( typeof val === "number" ) {

- 				val += "";

- 			} else if ( jQuery.isArray( val ) ) {

- 				val = jQuery.map(val, function ( value ) {

- 					return value == null ? "" : value + "";

- 				});

+ 		"lt": createPositionalPseudo(function( matchIndexes, length, argument ) {

+ 			var i = argument < 0 ? argument + length : argument;

+ 			for ( ; --i >= 0; ) {

+ 				matchIndexes.push( i );

  			}

+ 			return matchIndexes;

+ 		}),

  

- 			hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];

- 

- 			// If set returns undefined, fall back to normal setting

- 			if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) {

- 				this.value = val;

+ 		"gt": createPositionalPseudo(function( matchIndexes, length, argument ) {

+ 			var i = argument < 0 ? argument + length : argument;

+ 			for ( ; ++i < length; ) {

+ 				matchIndexes.push( i );

  			}

- 		});

+ 			return matchIndexes;

+ 		})

  	}

- });

+ };

  

- jQuery.extend({

- 	valHooks: {

- 		option: {

- 			get: function( elem ) {

- 				// attributes.value is undefined in Blackberry 4.7 but

- 				// uses .value. See #6932

- 				var val = elem.attributes.value;

- 				return !val || val.specified ? elem.value : elem.text;

- 			}

- 		},

- 		select: {

- 			get: function( elem ) {

- 				var value, i, max, option,

- 					index = elem.selectedIndex,

- 					values = [],

- 					options = elem.options,

- 					one = elem.type === "select-one";

+ Expr.pseudos["nth"] = Expr.pseudos["eq"];

  

- 				// Nothing was selected

- 				if ( index < 0 ) {

- 					return null;

- 				}

+ // 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 );

+ }

  

- 				// Loop through all the selected options

- 				i = one ? index : 0;

- 				max = one ? index + 1 : options.length;

- 				for ( ; i < max; i++ ) {

- 					option = options[ i ];

+ // Easy API for creating new setFilters

+ function setFilters() {}

+ setFilters.prototype = Expr.filters = Expr.pseudos;

+ Expr.setFilters = new setFilters();

  

- 					// Don't return options that are disabled or in a disabled optgroup

- 					if ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) &&

- 							(!option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" )) ) {

+ tokenize = Sizzle.tokenize = function( selector, parseOnly ) {

+ 	var matched, match, tokens, type,

+ 		soFar, groups, preFilters,

+ 		cached = tokenCache[ selector + " " ];

  

- 						// Get the specific value for the option

- 						value = jQuery( option ).val();

+ 	if ( cached ) {

+ 		return parseOnly ? 0 : cached.slice( 0 );

+ 	}

  

- 						// We don't need an array for one selects

- 						if ( one ) {

- 							return value;

- 						}

+ 	soFar = selector;

+ 	groups = [];

+ 	preFilters = Expr.preFilter;

  

- 						// Multi-Selects return an array

- 						values.push( value );

- 					}

- 				}

+ 	while ( soFar ) {

  

- 				// Fixes Bug #2551 -- select.val() broken in IE after form.reset()

- 				if ( one && !values.length && options.length ) {

- 					return jQuery( options[ index ] ).val();

- 				}

+ 		// 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 = []) );

+ 		}

  

- 				return values;

- 			},

+ 		matched = false;

  

- 			set: function( elem, value ) {

- 				var values = jQuery.makeArray( value );

+ 		// 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 );

+ 		}

  

- 				jQuery(elem).find("option").each(function() {

- 					this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0;

+ 		// 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

  				});

- 

- 				if ( !values.length ) {

- 					elem.selectedIndex = -1;

- 				}

- 				return values;

+ 				soFar = soFar.slice( matched.length );

  			}

  		}

- 	},

  

- 	attrFn: {

- 		val: true,

- 		css: true,

- 		html: true,

- 		text: true,

- 		data: true,

- 		width: true,

- 		height: true,

- 		offset: true

- 	},

+ 		if ( !matched ) {

+ 			break;

+ 		}

+ 	}

  

- 	attr: function( elem, name, value, pass ) {

- 		var ret, hooks, notxml,

- 			nType = elem.nodeType;

+ 	// 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 );

+ };

  

- 		// don't get/set attributes on text, comment and attribute nodes

- 		if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {

- 			return;

- 		}

+ function toSelector( tokens ) {

+ 	var i = 0,

+ 		len = tokens.length,

+ 		selector = "";

+ 	for ( ; i < len; i++ ) {

+ 		selector += tokens[i].value;

+ 	}

+ 	return selector;

+ }

  

- 		if ( pass && name in jQuery.attrFn ) {

- 			return jQuery( elem )[ name ]( value );

- 		}

+ function addCombinator( matcher, combinator, base ) {

+ 	var dir = combinator.dir,

+ 		skip = combinator.next,

+ 		key = skip || dir,

+ 		checkNonElements = base && key === "parentNode",

+ 		doneName = done++;

  

- 		// Fallback to prop when attributes are not supported

- 		if ( typeof elem.getAttribute === "undefined" ) {

- 			return jQuery.prop( elem, name, value );

- 		}

+ 	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 );

+ 				}

+ 			}

+ 			return false;

+ 		} :

  

- 		notxml = nType !== 1 || !jQuery.isXMLDoc( elem );

+ 		// Check against all ancestor/preceding elements

+ 		function( elem, context, xml ) {

+ 			var oldCache, uniqueCache, outerCache,

+ 				newCache = [ dirruns, doneName ];

  

- 		// All attributes are lowercase

- 		// Grab necessary hook if one is defined

- 		if ( notxml ) {

- 			name = name.toLowerCase();

- 			hooks = jQuery.attrHooks[ name ] || ( rboolean.test( name ) ? boolHook : nodeHook );

- 		}

+ 			// We can't set arbitrary data on XML nodes, so they don't benefit from combinator 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 ( value !== undefined ) {

+ 						// Support: IE <9 only

+ 						// Defend against cloned attroperties (jQuery gh-1709)

+ 						uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});

  

- 			if ( value === null ) {

- 				jQuery.removeAttr( elem, name );

- 				return;

+ 						if ( skip && skip === elem.nodeName.toLowerCase() ) {

+ 							elem = elem[ dir ] || elem;

+ 						} else if ( (oldCache = uniqueCache[ key ]) &&

+ 							oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {

  

- 			} else if ( hooks && "set" in hooks && notxml && (ret = hooks.set( elem, value, name )) !== undefined ) {

- 				return ret;

+ 							// 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

+ 							uniqueCache[ key ] = newCache;

  

- 			} else {

- 				elem.setAttribute( name, "" + value );

- 				return value;

+ 							// A match means we're done; a fail means we have to keep checking

+ 							if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {

+ 								return true;

+ 							}

+ 						}

+ 					}

+ 				}

  			}

+ 			return false;

+ 		};

+ }

  

- 		} else if ( hooks && "get" in hooks && notxml && (ret = hooks.get( elem, name )) !== null ) {

- 			return ret;

+ 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];

+ }

  

- 		} else {

+ function multipleContexts( selector, contexts, results ) {

+ 	var i = 0,

+ 		len = contexts.length;

+ 	for ( ; i < len; i++ ) {

+ 		Sizzle( selector, contexts[i], results );

+ 	}

+ 	return results;

+ }

  

- 			ret = elem.getAttribute( name );

+ function condense( unmatched, map, filter, context, xml ) {

+ 	var elem,

+ 		newUnmatched = [],

+ 		i = 0,

+ 		len = unmatched.length,

+ 		mapped = map != null;

  

- 			// Non-existent attributes return null, we normalize to undefined

- 			return ret === null ?

- 				undefined :

- 				ret;

+ 	for ( ; i < len; i++ ) {

+ 		if ( (elem = unmatched[i]) ) {

+ 			if ( !filter || filter( elem, context, xml ) ) {

+ 				newUnmatched.push( elem );

+ 				if ( mapped ) {

+ 					map.push( i );

+ 				}

+ 			}

  		}

- 	},

+ 	}

  

- 	removeAttr: function( elem, value ) {

- 		var propName, attrNames, name, l, isBool,

- 			i = 0;

+ 	return newUnmatched;

+ }

  

- 		if ( value && elem.nodeType === 1 ) {

- 			attrNames = value.toLowerCase().split( rspace );

- 			l = attrNames.length;

+ 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,

  

- 			for ( ; i < l; i++ ) {

- 				name = attrNames[ i ];

+ 			// 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 );

  

- 				if ( name ) {

- 					propName = jQuery.propFix[ name ] || name;

- 					isBool = rboolean.test( name );

+ 			// 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);

+ 				}

+ 			}

+ 		}

  

- 					// See #9699 for explanation of this approach (setting first, then removal)

- 					// Do not do this for boolean attributes (see #10870)

- 					if ( !isBool ) {

- 						jQuery.attr( elem, name, "" );

+ 		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) );

+ 						}

  					}

- 					elem.removeAttribute( getSetAttribute ? name : propName );

+ 					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( seed, elem ) : preMap[i]) > -1 ) {

  

- 					// Set corresponding property to false for boolean attributes

- 					if ( isBool && propName in elem ) {

- 						elem[ propName ] = false;

+ 						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 );

+ 			}

  		}

- 	},

+ 	});

+ }

  

- 	attrHooks: {

- 		type: {

- 			set: function( elem, value ) {

- 				// We can't allow the type property to be changed (since it causes problems in IE)

- 				if ( rtype.test( elem.nodeName ) && elem.parentNode ) {

- 					jQuery.error( "type property can't be changed" );

- 				} else if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) {

- 					// Setting the type on a radio button after the value resets the value in IE6-9

- 					// Reset value to it's default in case type is set after value

- 					// This is for element creation

- 					var val = elem.value;

- 					elem.setAttribute( "type", value );

- 					if ( val ) {

- 						elem.value = val;

+ 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( checkContext, elem ) > -1;

+ 		}, implicitRelative, true ),

+ 		matchers = [ function( elem, context, xml ) {

+ 			var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (

+ 				(checkContext = context).nodeType ?

+ 					matchContext( elem, context, xml ) :

+ 					matchAnyContext( elem, context, xml ) );

+ 			// Avoid hanging onto element (issue #299)

+ 			checkContext = null;

+ 			return ret;

+ 		} ];

+ 

+ 	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 value;

  				}

+ 				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 )

+ 				);

  			}

- 		},

- 		// Use the value property for back compat

- 		// Use the nodeHook for button elements in IE6/7 (#1954)

- 		value: {

- 			get: function( elem, name ) {

- 				if ( nodeHook && jQuery.nodeName( elem, "button" ) ) {

- 					return nodeHook.get( elem, name );

- 				}

- 				return name in elem ?

- 					elem.value :

- 					null;

- 			},

- 			set: function( elem, value, name ) {

- 				if ( nodeHook && jQuery.nodeName( elem, "button" ) ) {

- 					return nodeHook.set( elem, value, name );

+ 			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 || outermost;

+ 			}

+ 

+ 			// Add elements passing elementMatchers directly to results

+ 			// Support: IE<9, Safari

+ 			// Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id

+ 			for ( ; i !== len && (elem = elems[i]) != null; i++ ) {

+ 				if ( byElement && elem ) {

+ 					j = 0;

+ 					if ( !context && elem.ownerDocument !== document ) {

+ 						setDocument( elem );

+ 						xml = !documentIsHTML;

+ 					}

+ 					while ( (matcher = elementMatchers[j++]) ) {

+ 						if ( matcher( elem, context || document, 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 );

+ 					}

  				}

- 				// Does not return so that setAttribute is also used

- 				elem.value = value;

  			}

- 		}

- 	},

  

- 	propFix: {

- 		tabindex: "tabIndex",

- 		readonly: "readOnly",

- 		"for": "htmlFor",

- 		"class": "className",

- 		maxlength: "maxLength",

- 		cellspacing: "cellSpacing",

- 		cellpadding: "cellPadding",

- 		rowspan: "rowSpan",

- 		colspan: "colSpan",

- 		usemap: "useMap",

- 		frameborder: "frameBorder",

- 		contenteditable: "contentEditable"

- 	},

+ 			// `i` is now the count of elements visited above, and adding it to `matchedCount`

+ 			// makes the latter nonnegative.

+ 			matchedCount += i;

  

- 	prop: function( elem, name, value ) {

- 		var ret, hooks, notxml,

- 			nType = elem.nodeType;

+ 			// Apply set filters to unmatched elements

+ 			// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`

+ 			// equals `i`), unless we didn't visit _any_ elements in the above loop because we have

+ 			// no element matchers and no seed.

+ 			// Incrementing an initially-string "0" `i` allows `i` to remain a string only in that

+ 			// case, which will result in a "00" `matchedCount` that differs from `i` but is also

+ 			// numerically zero.

+ 			if ( bySet && i !== matchedCount ) {

+ 				j = 0;

+ 				while ( (matcher = setMatchers[j++]) ) {

+ 					matcher( unmatched, setMatched, context, xml );

+ 				}

  

- 		// don't get/set properties on text, comment and attribute nodes

- 		if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {

- 			return;

- 		}

+ 				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 );

+ 							}

+ 						}

+ 					}

  

- 		notxml = nType !== 1 || !jQuery.isXMLDoc( elem );

+ 					// Discard index placeholder values to get only actual matches

+ 					setMatched = condense( setMatched );

+ 				}

  

- 		if ( notxml ) {

- 			// Fix name and attach hooks

- 			name = jQuery.propFix[ name ] || name;

- 			hooks = jQuery.propHooks[ name ];

- 		}

+ 				// Add matches to results

+ 				push.apply( results, setMatched );

  

- 		if ( value !== undefined ) {

- 			if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) {

- 				return ret;

+ 				// Seedless set matches succeeding multiple successful matchers stipulate sorting

+ 				if ( outermost && !seed && setMatched.length > 0 &&

+ 					( matchedCount + setMatchers.length ) > 1 ) {

  

- 			} else {

- 				return ( elem[ name ] = value );

+ 					Sizzle.uniqueSort( results );

+ 				}

  			}

  

- 		} else {

- 			if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) {

- 				return ret;

+ 			// 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 {

- 				return elem[ name ];

+ 				elementMatchers.push( cached );

  			}

  		}

- 	},

  

- 	propHooks: {

- 		tabIndex: {

- 			get: function( elem ) {

- 				// elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set

- 				// http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/

- 				var attributeNode = elem.getAttributeNode("tabindex");

+ 		// Cache the compiled function

+ 		cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );

  

- 				return attributeNode && attributeNode.specified ?

- 					parseInt( attributeNode.value, 10 ) :

- 					rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ?

- 						0 :

- 						undefined;

- 			}

- 		}

+ 		// Save selector and tokenization

+ 		cached.selector = selector;

  	}

- });

+ 	return cached;

+ };

  

- // Add the tabIndex propHook to attrHooks for back-compat (different case is intentional)

- jQuery.attrHooks.tabindex = jQuery.propHooks.tabIndex;

+ /**

+  * 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) );

  

- // Hook for boolean attributes

- boolHook = {

- 	get: function( elem, name ) {

- 		// Align boolean attributes with corresponding properties

- 		// Fall back to attribute presence where some booleans are not supported

- 		var attrNode,

- 			property = jQuery.prop( elem, name );

- 		return property === true || typeof property !== "boolean" && ( attrNode = elem.getAttributeNode(name) ) && attrNode.nodeValue !== false ?

- 			name.toLowerCase() :

- 			undefined;

- 	},

- 	set: function( elem, value, name ) {

- 		var propName;

- 		if ( value === false ) {

- 			// Remove boolean attributes when set to false

- 			jQuery.removeAttr( elem, name );

- 		} else {

- 			// value is true since we know at this point it's type boolean and not false

- 			// Set boolean attributes to the same name and set the DOM property

- 			propName = jQuery.propFix[ name ] || name;

- 			if ( propName in elem ) {

- 				// Only set the IDL specifically if it already exists on the element

- 				elem[ propName ] = true;

- 			}

+ 	results = results || [];

  

- 			elem.setAttribute( name, name.toLowerCase() );

- 		}

- 		return name;

- 	}

- };

+ 	// Try to minimize operations if there is only one selector in the list and no seed

+ 	// (the latter of which guarantees us context)

+ 	if ( match.length === 1 ) {

  

- // IE6/7 do not support getting/setting some attributes with get/setAttribute

- if ( !getSetAttribute ) {

+ 		// Reduce context if the leading compound selector is an ID

+ 		tokens = match[0] = match[0].slice( 0 );

+ 		if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&

+ 				context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) {

  

- 	fixSpecified = {

- 		name: true,

- 		id: true,

- 		coords: true

- 	};

+ 			context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];

+ 			if ( !context ) {

+ 				return results;

  

- 	// Use this for any attribute in IE6/7

- 	// This fixes almost every IE6/7 issue

- 	nodeHook = jQuery.valHooks.button = {

- 		get: function( elem, name ) {

- 			var ret;

- 			ret = elem.getAttributeNode( name );

- 			return ret && ( fixSpecified[ name ] ? ret.nodeValue !== "" : ret.specified ) ?

- 				ret.nodeValue :

- 				undefined;

- 		},

- 		set: function( elem, value, name ) {

- 			// Set the existing or create a new attribute node

- 			var ret = elem.getAttributeNode( name );

- 			if ( !ret ) {

- 				ret = document.createAttribute( name );

- 				elem.setAttributeNode( ret );

+ 			// Precompiled matchers will still verify ancestry, so step up a level

+ 			} else if ( compiled ) {

+ 				context = context.parentNode;

  			}

- 			return ( ret.nodeValue = value + "" );

+ 

+ 			selector = selector.slice( tokens.shift().value.length );

  		}

- 	};

  

- 	// Apply the nodeHook to tabindex

- 	jQuery.attrHooks.tabindex.set = nodeHook.set;

+ 		// Fetch a seed set for right-to-left matching

+ 		i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;

+ 		while ( i-- ) {

+ 			token = tokens[i];

  

- 	// Set width and height to auto instead of 0 on empty string( Bug #8150 )

- 	// This is for removals

- 	jQuery.each([ "width", "height" ], function( i, name ) {

- 		jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], {

- 			set: function( elem, value ) {

- 				if ( value === "" ) {

- 					elem.setAttribute( name, "auto" );

- 					return value;

- 				}

+ 			// 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;

+ 					}

  

- 	// Set contenteditable to false on removals(#10429)

- 	// Setting to empty string throws an error as an invalid value

- 	jQuery.attrHooks.contenteditable = {

- 		get: nodeHook.get,

- 		set: function( elem, value, name ) {

- 			if ( value === "" ) {

- 				value = "false";

+ 					break;

+ 				}

  			}

- 			nodeHook.set( elem, value, name );

  		}

- 	};

- }

+ 	}

  

+ 	// 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,

+ 		!context || rsibling.test( selector ) && testContext( context.parentNode ) || context

+ 	);

+ 	return results;

+ };

  

- // Some attributes require a special call on IE

- if ( !jQuery.support.hrefNormalized ) {

- 	jQuery.each([ "href", "src", "width", "height" ], function( i, name ) {

- 		jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], {

- 			get: function( elem ) {

- 				var ret = elem.getAttribute( name, 2 );

- 				return ret === null ? undefined : ret;

- 			}

- 		});

- 	});

- }

+ // One-time assignments

  

- if ( !jQuery.support.style ) {

- 	jQuery.attrHooks.style = {

- 		get: function( elem ) {

- 			// Return undefined in the case of empty string

- 			// Normalize to lowercase since IE uppercases css property names

- 			return elem.style.cssText.toLowerCase() || undefined;

- 		},

- 		set: function( elem, value ) {

- 			return ( elem.style.cssText = "" + value );

- 		}

- 	};

- }

+ // Sort stability

+ support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;

  

- // Safari mis-reports the default selected property of an option

- // Accessing the parent's selectedIndex property fixes it

- if ( !jQuery.support.optSelected ) {

- 	jQuery.propHooks.selected = jQuery.extend( jQuery.propHooks.selected, {

- 		get: function( elem ) {

- 			var parent = elem.parentNode;

+ // Support: Chrome 14-35+

+ // Always assume duplicates if they aren't passed to the comparison function

+ support.detectDuplicates = !!hasDuplicate;

  

- 			if ( parent ) {

- 				parent.selectedIndex;

+ // Initialize against the default document

+ setDocument();

  

- 				// Make sure that it also works with optgroups, see #5701

- 				if ( parent.parentNode ) {

- 					parent.parentNode.selectedIndex;

- 				}

- 			}

- 			return null;

+ // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)

+ // Detached nodes confoundingly follow *each other*

+ support.sortDetached = assert(function( el ) {

+ 	// Should return 1, but returns 4 (following)

+ 	return el.compareDocumentPosition( document.createElement("fieldset") ) & 1;

+ });

+ 

+ // Support: IE<8

+ // Prevent attribute/property "interpolation"

+ // https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx

+ if ( !assert(function( el ) {

+ 	el.innerHTML = "<a href='#'></a>";

+ 	return el.firstChild.getAttribute("href") === "#" ;

+ }) ) {

+ 	addHandle( "type|href|height|width", function( elem, name, isXML ) {

+ 		if ( !isXML ) {

+ 			return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );

  		}

  	});

  }

  

- // IE6/7 call enctype encoding

- if ( !jQuery.support.enctype ) {

- 	jQuery.propFix.enctype = "encoding";

- }

- 

- // Radios and checkboxes getter/setter

- if ( !jQuery.support.checkOn ) {

- 	jQuery.each([ "radio", "checkbox" ], function() {

- 		jQuery.valHooks[ this ] = {

- 			get: function( elem ) {

- 				// Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified

- 				return elem.getAttribute("value") === null ? "on" : elem.value;

- 			}

- 		};

+ // Support: IE<9

+ // Use defaultValue in place of getAttribute("value")

+ if ( !support.attributes || !assert(function( el ) {

+ 	el.innerHTML = "<input/>";

+ 	el.firstChild.setAttribute( "value", "" );

+ 	return el.firstChild.getAttribute( "value" ) === "";

+ }) ) {

+ 	addHandle( "value", function( elem, name, isXML ) {

+ 		if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {

+ 			return elem.defaultValue;

+ 		}

  	});

  }

- jQuery.each([ "radio", "checkbox" ], function() {

- 	jQuery.valHooks[ this ] = jQuery.extend( jQuery.valHooks[ this ], {

- 		set: function( elem, value ) {

- 			if ( jQuery.isArray( value ) ) {

- 				return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 );

- 			}

+ 

+ // Support: IE<9

+ // Use getAttributeNode to fetch booleans when getAttribute lies

+ if ( !assert(function( el ) {

+ 	return el.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 );

  

  

- var rformElems = /^(?:textarea|input|select)$/i,

- 	rtypenamespace = /^([^\.]*)?(?:\.(.+))?$/,

- 	rhoverHack = /(?:^|\s)hover(\.\S+)?\b/,

- 	rkeyEvent = /^key/,

- 	rmouseEvent = /^(?:mouse|contextmenu)|click/,

- 	rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,

- 	rquickIs = /^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,

- 	quickParse = function( selector ) {

- 		var quick = rquickIs.exec( selector );

- 		if ( quick ) {

- 			//   0  1    2   3

- 			// [ _, tag, id, class ]

- 			quick[1] = ( quick[1] || "" ).toLowerCase();

- 			quick[3] = quick[3] && new RegExp( "(?:^|\\s)" + quick[3] + "(?:\\s|$)" );

- 		}

- 		return quick;

- 	},

- 	quickIs = function( elem, m ) {

- 		var attrs = elem.attributes || {};

- 		return (

- 			(!m[1] || elem.nodeName.toLowerCase() === m[1]) &&

- 			(!m[2] || (attrs.id || {}).value === m[2]) &&

- 			(!m[3] || m[3].test( (attrs[ "class" ] || {}).value ))

- 		);

- 	},

- 	hoverHack = function( events ) {

- 		return jQuery.event.special.hover ? events : events.replace( rhoverHack, "mouseenter$1 mouseleave$1" );

- 	};

  

- /*

-  * Helper functions for managing events -- not part of the public interface.

-  * Props to Dean Edwards' addEvent library for many of the ideas.

-  */

- jQuery.event = {

+ jQuery.find = Sizzle;

+ jQuery.expr = Sizzle.selectors;

  

- 	add: function( elem, types, handler, data, selector ) {

+ // Deprecated

+ jQuery.expr[ ":" ] = jQuery.expr.pseudos;

+ jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;

+ jQuery.text = Sizzle.getText;

+ jQuery.isXMLDoc = Sizzle.isXML;

+ jQuery.contains = Sizzle.contains;

+ jQuery.escapeSelector = Sizzle.escape;

  

- 		var elemData, eventHandle, events,

- 			t, tns, type, namespaces, handleObj,

- 			handleObjIn, quick, handlers, special;

  

- 		// Don't attach events to noData or text/comment nodes (allow plain objects tho)

- 		if ( elem.nodeType === 3 || elem.nodeType === 8 || !types || !handler || !(elemData = jQuery._data( elem )) ) {

- 			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++;

- 		}

+ var dir = function( elem, dir, until ) {

+ 	var matched = [],

+ 		truncate = until !== undefined;

  

- 		// Init the element's event structure and main handler, if this is the first

- 		events = elemData.events;

- 		if ( !events ) {

- 			elemData.events = events = {};

+ 	while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {

+ 		if ( elem.nodeType === 1 ) {

+ 			if ( truncate && jQuery( elem ).is( until ) ) {

+ 				break;

+ 			}

+ 			matched.push( elem );

  		}

- 		eventHandle = elemData.handle;

- 		if ( !eventHandle ) {

- 			elemData.handle = eventHandle = 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 !== "undefined" && (!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;

+ 	}

+ 	return matched;

+ };

+ 

+ 

+ var siblings = function( n, elem ) {

+ 	var matched = [];

+ 

+ 	for ( ; n; n = n.nextSibling ) {

+ 		if ( n.nodeType === 1 && n !== elem ) {

+ 			matched.push( n );

  		}

+ 	}

  

- 		// Handle multiple events separated by a space

- 		// jQuery(...).bind("mouseover mouseout", fn);

- 		types = jQuery.trim( hoverHack(types) ).split( " " );

- 		for ( t = 0; t < types.length; t++ ) {

+ 	return matched;

+ };

  

- 			tns = rtypenamespace.exec( types[t] ) || [];

- 			type = tns[1];

- 			namespaces = ( tns[2] || "" ).split( "." ).sort();

  

- 			// If event changes its type, use the special event handlers for the changed type

- 			special = jQuery.event.special[ type ] || {};

+ var rneedsContext = jQuery.expr.match.needsContext;

  

- 			// 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: tns[1],

- 				data: data,

- 				handler: handler,

- 				guid: handler.guid,

- 				selector: selector,

- 				quick: selector && quickParse( selector ),

- 				namespace: namespaces.join(".")

- 			}, handleObjIn );

- 

- 			// Init the event handler queue if we're the first

- 			handlers = events[ type ];

- 			if ( !handlers ) {

- 				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 );

- 					}

- 				}

- 			}

+ function nodeName( elem, name ) {

  

- 			if ( special.add ) {

- 				special.add.call( elem, handleObj );

- 

- 				if ( !handleObj.handler.guid ) {

- 					handleObj.handler.guid = handler.guid;

- 				}

- 			}

+   return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();

  

- 			// Add to the element's handler list, delegates in front

- 			if ( selector ) {

- 				handlers.splice( handlers.delegateCount++, 0, handleObj );

- 			} else {

- 				handlers.push( handleObj );

- 			}

+ };

+ var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i );

  

- 			// 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;

- 	},

  

- 	global: {},

+ // Implement the identical functionality for filter and not

+ function winnow( elements, qualifier, not ) {

+ 	if ( isFunction( qualifier ) ) {

+ 		return jQuery.grep( elements, function( elem, i ) {

+ 			return !!qualifier.call( elem, i, elem ) !== not;

+ 		} );

+ 	}

  

- 	// Detach an event or set of events from an element

- 	remove: function( elem, types, handler, selector, mappedTypes ) {

+ 	// Single element

+ 	if ( qualifier.nodeType ) {

+ 		return jQuery.grep( elements, function( elem ) {

+ 			return ( elem === qualifier ) !== not;

+ 		} );

+ 	}

  

- 		var elemData = jQuery.hasData( elem ) && jQuery._data( elem ),

- 			t, tns, type, origType, namespaces, origCount,

- 			j, events, special, handle, eventType, handleObj;

+ 	// Arraylike of elements (jQuery, arguments, Array)

+ 	if ( typeof qualifier !== "string" ) {

+ 		return jQuery.grep( elements, function( elem ) {

+ 			return ( indexOf.call( qualifier, elem ) > -1 ) !== not;

+ 		} );

+ 	}

  

- 		if ( !elemData || !(events = elemData.events) ) {

- 			return;

- 		}

+ 	// Filtered directly for both simple and complex selectors

+ 	return jQuery.filter( qualifier, elements, not );

+ }

  

- 		// Once for each type.namespace in types; type may be omitted

- 		types = jQuery.trim( hoverHack( types || "" ) ).split(" ");

- 		for ( t = 0; t < types.length; t++ ) {

- 			tns = rtypenamespace.exec( types[t] ) || [];

- 			type = origType = tns[1];

- 			namespaces = tns[2];

+ jQuery.filter = function( expr, elems, not ) {

+ 	var elem = elems[ 0 ];

  

- 			// 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;

- 			}

+ 	if ( not ) {

+ 		expr = ":not(" + expr + ")";

+ 	}

  

- 			special = jQuery.event.special[ type ] || {};

- 			type = ( selector? special.delegateType : special.bindType ) || type;

- 			eventType = events[ type ] || [];

- 			origCount = eventType.length;

- 			namespaces = namespaces ? new RegExp("(^|\\.)" + namespaces.split(".").sort().join("\\.(?:.*\\.)?") + "(\\.|$)") : null;

+ 	if ( elems.length === 1 && elem.nodeType === 1 ) {

+ 		return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];

+ 	}

  

- 			// Remove matching events

- 			for ( j = 0; j < eventType.length; j++ ) {

- 				handleObj = eventType[ j ];

+ 	return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {

+ 		return elem.nodeType === 1;

+ 	} ) );

+ };

  

- 				if ( ( mappedTypes || origType === handleObj.origType ) &&

- 					 ( !handler || handler.guid === handleObj.guid ) &&

- 					 ( !namespaces || namespaces.test( handleObj.namespace ) ) &&

- 					 ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) {

- 					eventType.splice( j--, 1 );

+ jQuery.fn.extend( {

+ 	find: function( selector ) {

+ 		var i, ret,

+ 			len = this.length,

+ 			self = this;

  

- 					if ( handleObj.selector ) {

- 						eventType.delegateCount--;

- 					}

- 					if ( special.remove ) {

- 						special.remove.call( elem, handleObj );

+ 		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;

  					}

  				}

- 			}

- 

- 			// 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 ( eventType.length === 0 && origCount !== eventType.length ) {

- 				if ( !special.teardown || special.teardown.call( elem, namespaces ) === false ) {

- 					jQuery.removeEvent( elem, type, elemData.handle );

- 				}

- 

- 				delete events[ type ];

- 			}

+ 			} ) );

  		}

  

- 		// Remove the expando if it's no longer used

- 		if ( jQuery.isEmptyObject( events ) ) {

- 			handle = elemData.handle;

- 			if ( handle ) {

- 				handle.elem = null;

- 			}

+ 		ret = this.pushStack( [] );

  

- 			// removeData also checks for emptiness and clears the expando if empty

- 			// so use it instead of delete

- 			jQuery.removeData( elem, [ "events", "handle" ], true );

+ 		for ( i = 0; i < len; i++ ) {

+ 			jQuery.find( selector, self[ i ], ret );

  		}

- 	},

  

- 	// Events that are safe to short-circuit if no handlers are attached.

- 	// Native DOM events should not be added, they may have inline handlers.

- 	customEvent: {

- 		"getData": true,

- 		"setData": true,

- 		"changeData": true

+ 		return len > 1 ? jQuery.uniqueSort( ret ) : 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;

+ 	}

+ } );

  

- 	trigger: function( event, data, elem, onlyHandlers ) {

- 		// Don't do events on text and comment nodes

- 		if ( elem && (elem.nodeType === 3 || elem.nodeType === 8) ) {

- 			return;

- 		}

- 

- 		// Event object or event type

- 		var type = event.type || event,

- 			namespaces = [],

- 			cache, exclusive, i, cur, old, ontype, special, handle, eventPath, bubbleType;

- 

- 		// 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 ) {

- 			// Exclusive events trigger only for the exact event (no namespaces)

- 			type = type.slice(0, -1);

- 			exclusive = true;

- 		}

- 

- 		if ( type.indexOf( "." ) >= 0 ) {

- 			// Namespaced trigger; create a regexp to match event type in handle()

- 			namespaces = type.split(".");

- 			type = namespaces.shift();

- 			namespaces.sort();

- 		}

  

- 		if ( (!elem || jQuery.event.customEvent[ type ]) && !jQuery.event.global[ type ] ) {

- 			// No jQuery handlers for this event type, and it can't have inline handlers

- 			return;

- 		}

+ // Initialize a jQuery object

  

- 		// Caller can pass in an Event, Object, or just an event type string

- 		event = typeof event === "object" ?

- 			// jQuery.Event object

- 			event[ jQuery.expando ] ? event :

- 			// Object literal

- 			new jQuery.Event( type, event ) :

- 			// Just the event type (string)

- 			new jQuery.Event( type );

  

- 		event.type = type;

- 		event.isTrigger = true;

- 		event.exclusive = exclusive;

- 		event.namespace = namespaces.join( "." );

- 		event.namespace_re = event.namespace? new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.)?") + "(\\.|$)") : null;

- 		ontype = type.indexOf( ":" ) < 0 ? "on" + type : "";

+ // A central reference to the root jQuery(document)

+ var rootjQuery,

  

- 		// Handle a global trigger

- 		if ( !elem ) {

+ 	// A simple way to check for HTML strings

+ 	// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)

+ 	// Strict HTML recognition (#11290: must start with <)

+ 	// Shortcut simple #id case for speed

+ 	rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,

  

- 			// TODO: Stop taunting the data cache; remove global events and always attach to document

- 			cache = jQuery.cache;

- 			for ( i in cache ) {

- 				if ( cache[ i ].events && cache[ i ].events[ type ] ) {

- 					jQuery.event.trigger( event, data, cache[ i ].handle.elem, true );

- 				}

- 			}

- 			return;

- 		}

+ 	init = jQuery.fn.init = function( selector, context, root ) {

+ 		var match, elem;

  

- 		// Clean up the event in case it is being reused

- 		event.result = undefined;

- 		if ( !event.target ) {

- 			event.target = elem;

+ 		// HANDLE: $(""), $(null), $(undefined), $(false)

+ 		if ( !selector ) {

+ 			return this;

  		}

  

- 		// Clone any incoming data and prepend the event, creating the handler arg list

- 		data = data != null ? jQuery.makeArray( data ) : [];

- 		data.unshift( event );

- 

- 		// Allow special events to draw outside the lines

- 		special = jQuery.event.special[ type ] || {};

- 		if ( special.trigger && special.trigger.apply( elem, data ) === false ) {

- 			return;

- 		}

+ 		// Method init() accepts an alternate rootjQuery

+ 		// so migrate can support jQuery.sub (gh-2101)

+ 		root = root || rootjQuery;

  

- 		// 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)

- 		eventPath = [[ elem, special.bindType || type ]];

- 		if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {

+ 		// Handle HTML strings

+ 		if ( typeof selector === "string" ) {

+ 			if ( selector[ 0 ] === "<" &&

+ 				selector[ selector.length - 1 ] === ">" &&

+ 				selector.length >= 3 ) {

  

- 			bubbleType = special.delegateType || type;

- 			cur = rfocusMorph.test( bubbleType + type ) ? elem : elem.parentNode;

- 			old = null;

- 			for ( ; cur; cur = cur.parentNode ) {

- 				eventPath.push([ cur, bubbleType ]);

- 				old = cur;

- 			}

+ 				// Assume that strings that start and end with <> are HTML and skip the regex check

+ 				match = [ null, selector, null ];

  

- 			// Only add window if we got to document (e.g., not plain obj or detached DOM)

- 			if ( old && old === elem.ownerDocument ) {

- 				eventPath.push([ old.defaultView || old.parentWindow || window, bubbleType ]);

+ 			} else {

+ 				match = rquickExpr.exec( selector );

  			}

- 		}

  

- 		// Fire handlers on the event path

- 		for ( i = 0; i < eventPath.length && !event.isPropagationStopped(); i++ ) {

- 

- 			cur = eventPath[i][0];

- 			event.type = eventPath[i][1];

- 

- 			handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && jQuery._data( cur, "handle" );

- 			if ( handle ) {

- 				handle.apply( cur, data );

- 			}

- 			// Note that this is a bare JS function and not a jQuery handler

- 			handle = ontype && cur[ ontype ];

- 			if ( handle && jQuery.acceptData( cur ) && handle.apply( cur, data ) === false ) {

- 				event.preventDefault();

- 			}

- 		}

- 		event.type = type;

+ 			// Match html or make sure no context is specified for #id

+ 			if ( match && ( match[ 1 ] || !context ) ) {

  

- 		// If nobody prevented the default action, do it now

- 		if ( !onlyHandlers && !event.isDefaultPrevented() ) {

+ 				// HANDLE: $(html) -> $(array)

+ 				if ( match[ 1 ] ) {

+ 					context = context instanceof jQuery ? context[ 0 ] : context;

+ 

+ 					// Option to run 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 ( isFunction( this[ match ] ) ) {

+ 								this[ match ]( context[ match ] );

+ 

+ 							// ...and otherwise set as attributes

+ 							} else {

+ 								this.attr( match, context[ match ] );

+ 							}

+ 						}

+ 					}

  

- 			if ( (!special._default || special._default.apply( elem.ownerDocument, data ) === false) &&

- 				!(type === "click" && jQuery.nodeName( elem, "a" )) && jQuery.acceptData( elem ) ) {

+ 					return this;

  

- 				// 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)

- 				// IE<9 dies on focus/blur to hidden element (#1486)

- 				if ( ontype && elem[ type ] && ((type !== "focus" && type !== "blur") || event.target.offsetWidth !== 0) && !jQuery.isWindow( elem ) ) {

+ 				// HANDLE: $(#id)

+ 				} else {

+ 					elem = document.getElementById( match[ 2 ] );

  

- 					// Don't re-trigger an onFOO event when we call its FOO() method

- 					old = elem[ ontype ];

+ 					if ( elem ) {

  

- 					if ( old ) {

- 						elem[ ontype ] = null;

+ 						// Inject the element directly into the jQuery object

+ 						this[ 0 ] = elem;

+ 						this.length = 1;

  					}

+ 					return this;

+ 				}

  

- 					// Prevent re-triggering of the same event, since we already bubbled it above

- 					jQuery.event.triggered = type;

- 					elem[ type ]();

- 					jQuery.event.triggered = undefined;

+ 			// HANDLE: $(expr, $(...))

+ 			} else if ( !context || context.jquery ) {

+ 				return ( context || root ).find( selector );

  

- 					if ( old ) {

- 						elem[ ontype ] = old;

- 					}

- 				}

+ 			// HANDLE: $(expr, context)

+ 			// (which is just equivalent to: $(context).find(expr)

+ 			} else {

+ 				return this.constructor( context ).find( selector );

  			}

- 		}

  

- 		return event.result;

- 	},

+ 		// HANDLE: $(DOMElement)

+ 		} else if ( selector.nodeType ) {

+ 			this[ 0 ] = selector;

+ 			this.length = 1;

+ 			return this;

  

- 	dispatch: function( event ) {

+ 		// HANDLE: $(function)

+ 		// Shortcut for document ready

+ 		} else if ( isFunction( selector ) ) {

+ 			return root.ready !== undefined ?

+ 				root.ready( selector ) :

  

- 		// Make a writable jQuery.Event from the native event object

- 		event = jQuery.event.fix( event || window.event );

+ 				// Execute immediately if ready is not present

+ 				selector( jQuery );

+ 		}

  

- 		var handlers = ( (jQuery._data( this, "events" ) || {} )[ event.type ] || []),

- 			delegateCount = handlers.delegateCount,

- 			args = [].slice.call( arguments, 0 ),

- 			run_all = !event.exclusive && !event.namespace,

- 			special = jQuery.event.special[ event.type ] || {},

- 			handlerQueue = [],

- 			i, j, cur, jqcur, ret, selMatch, matched, matches, handleObj, sel, related;

+ 		return jQuery.makeArray( selector, this );

+ 	};

  

- 		// Use the fix-ed jQuery.Event rather than the (read-only) native event

- 		args[0] = event;

- 		event.delegateTarget = this;

+ // Give the init function the jQuery prototype for later instantiation

+ init.prototype = jQuery.fn;

  

- 		// Call the preDispatch hook for the mapped type, and let it bail if desired

- 		if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {

- 			return;

- 		}

+ // Initialize central reference

+ rootjQuery = jQuery( document );

  

- 		// Determine handlers that should run if there are delegated events

- 		// Avoid non-left-click bubbling in Firefox (#3861)

- 		if ( delegateCount && !(event.button && event.type === "click") ) {

  

- 			// Pregenerate a single jQuery object for reuse with .is()

- 			jqcur = jQuery(this);

- 			jqcur.context = this.ownerDocument || this;

+ var rparentsprev = /^(?:parents|prev(?:Until|All))/,

  

- 			for ( cur = event.target; cur != this; cur = cur.parentNode || this ) {

+ 	// Methods guaranteed to produce a unique set when starting from a unique set

+ 	guaranteedUnique = {

+ 		children: true,

+ 		contents: true,

+ 		next: true,

+ 		prev: true

+ 	};

  

- 				// Don't process events on disabled elements (#6911, #8165)

- 				if ( cur.disabled !== true ) {

- 					selMatch = {};

- 					matches = [];

- 					jqcur[0] = cur;

- 					for ( i = 0; i < delegateCount; i++ ) {

- 						handleObj = handlers[ i ];

- 						sel = handleObj.selector;

+ jQuery.fn.extend( {

+ 	has: function( target ) {

+ 		var targets = jQuery( target, this ),

+ 			l = targets.length;

  

- 						if ( selMatch[ sel ] === undefined ) {

- 							selMatch[ sel ] = (

- 								handleObj.quick ? quickIs( cur, handleObj.quick ) : jqcur.is( sel )

- 							);

- 						}

- 						if ( selMatch[ sel ] ) {

- 							matches.push( handleObj );

- 						}

- 					}

- 					if ( matches.length ) {

- 						handlerQueue.push({ elem: cur, matches: matches });

- 					}

+ 		return this.filter( function() {

+ 			var i = 0;

+ 			for ( ; i < l; i++ ) {

+ 				if ( jQuery.contains( this, targets[ i ] ) ) {

+ 					return true;

  				}

  			}

- 		}

- 

- 		// Add the remaining (directly-bound) handlers

- 		if ( handlers.length > delegateCount ) {

- 			handlerQueue.push({ elem: this, matches: handlers.slice( delegateCount ) });

- 		}

- 

- 		// Run delegates first; they may want to stop propagation beneath us

- 		for ( i = 0; i < handlerQueue.length && !event.isPropagationStopped(); i++ ) {

- 			matched = handlerQueue[ i ];

- 			event.currentTarget = matched.elem;

+ 		} );

+ 	},

  

- 			for ( j = 0; j < matched.matches.length && !event.isImmediatePropagationStopped(); j++ ) {

- 				handleObj = matched.matches[ j ];

+ 	closest: function( selectors, context ) {

+ 		var cur,

+ 			i = 0,

+ 			l = this.length,

+ 			matched = [],

+ 			targets = typeof selectors !== "string" && jQuery( selectors );

  

- 				// Triggered event must either 1) be non-exclusive and have no namespace, or

- 				// 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace).

- 				if ( run_all || (!event.namespace && !handleObj.namespace) || event.namespace_re && event.namespace_re.test( handleObj.namespace ) ) {

+ 		// Positional selectors never match, since there's no _selection_ context

+ 		if ( !rneedsContext.test( selectors ) ) {

+ 			for ( ; i < l; i++ ) {

+ 				for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {

  

- 					event.data = handleObj.data;

- 					event.handleObj = handleObj;

+ 					// Always skip document fragments

+ 					if ( cur.nodeType < 11 && ( targets ?

+ 						targets.index( cur ) > -1 :

  

- 					ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler )

- 							.apply( matched.elem, args );

+ 						// Don't pass non-elements to Sizzle

+ 						cur.nodeType === 1 &&

+ 							jQuery.find.matchesSelector( cur, selectors ) ) ) {

  

- 					if ( ret !== undefined ) {

- 						event.result = ret;

- 						if ( ret === false ) {

- 							event.preventDefault();

- 							event.stopPropagation();

- 						}

+ 						matched.push( cur );

+ 						break;

  					}

  				}

  			}

  		}

  

- 		// Call the postDispatch hook for the mapped type

- 		if ( special.postDispatch ) {

- 			special.postDispatch.call( this, event );

- 		}

- 

- 		return event.result;

+ 		return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );

  	},

  

- 	// Includes some event props shared by KeyEvent and MouseEvent

- 	// *** attrChange attrName relatedNode srcElement  are not normalized, non-W3C, deprecated, will be removed in 1.8 ***

- 	props: "attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),

- 

- 	fixHooks: {},

- 

- 	keyHooks: {

- 		props: "char charCode key keyCode".split(" "),

- 		filter: function( event, original ) {

+ 	// Determine the position of an element within the set

+ 	index: function( elem ) {

  

- 			// Add which for key events

- 			if ( event.which == null ) {

- 				event.which = original.charCode != null ? original.charCode : original.keyCode;

- 			}

+ 		// No argument, return index in parent

+ 		if ( !elem ) {

+ 			return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;

+ 		}

  

- 			return event;

+ 		// Index in selector

+ 		if ( typeof elem === "string" ) {

+ 			return indexOf.call( jQuery( elem ), this[ 0 ] );

  		}

- 	},

  

- 	mouseHooks: {

- 		props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),

- 		filter: function( event, original ) {

- 			var eventDoc, doc, body,

- 				button = original.button,

- 				fromElement = original.fromElement;

+ 		// Locate the position of the desired element

+ 		return indexOf.call( this,

  

- 			// Calculate pageX/Y if missing and clientX/Y available

- 			if ( event.pageX == null && original.clientX != null ) {

- 				eventDoc = event.target.ownerDocument || document;

- 				doc = eventDoc.documentElement;

- 				body = eventDoc.body;

+ 			// If it receives a jQuery object, the first element is used

+ 			elem.jquery ? elem[ 0 ] : elem

+ 		);

+ 	},

  

- 				event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 );

- 				event.pageY = original.clientY + ( doc && doc.scrollTop  || body && body.scrollTop  || 0 ) - ( doc && doc.clientTop  || body && body.clientTop  || 0 );

- 			}

+ 	add: function( selector, context ) {

+ 		return this.pushStack(

+ 			jQuery.uniqueSort(

+ 				jQuery.merge( this.get(), jQuery( selector, context ) )

+ 			)

+ 		);

+ 	},

  

- 			// Add relatedTarget, if necessary

- 			if ( !event.relatedTarget && fromElement ) {

- 				event.relatedTarget = fromElement === event.target ? original.toElement : fromElement;

- 			}

+ 	addBack: function( selector ) {

+ 		return this.add( selector == null ?

+ 			this.prevObject : this.prevObject.filter( selector )

+ 		);

+ 	}

+ } );

  

- 			// Add which for click: 1 === left; 2 === middle; 3 === right

- 			// Note: button is not normalized, so don't use it

- 			if ( !event.which && button !== undefined ) {

- 				event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );

- 			}

+ function sibling( cur, dir ) {

+ 	while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}

+ 	return cur;

+ }

  

- 			return event;

- 		}

+ jQuery.each( {

+ 	parent: function( elem ) {

+ 		var parent = elem.parentNode;

+ 		return parent && parent.nodeType !== 11 ? parent : null;

  	},

+ 	parents: function( elem ) {

+ 		return dir( elem, "parentNode" );

+ 	},

+ 	parentsUntil: function( elem, i, until ) {

+ 		return dir( elem, "parentNode", until );

+ 	},

+ 	next: function( elem ) {

+ 		return sibling( elem, "nextSibling" );

+ 	},

+ 	prev: function( elem ) {

+ 		return sibling( elem, "previousSibling" );

+ 	},

+ 	nextAll: function( elem ) {

+ 		return dir( elem, "nextSibling" );

+ 	},

+ 	prevAll: function( elem ) {

+ 		return dir( elem, "previousSibling" );

+ 	},

+ 	nextUntil: function( elem, i, until ) {

+ 		return dir( elem, "nextSibling", until );

+ 	},

+ 	prevUntil: function( elem, i, until ) {

+ 		return dir( elem, "previousSibling", until );

+ 	},

+ 	siblings: function( elem ) {

+ 		return siblings( ( elem.parentNode || {} ).firstChild, elem );

+ 	},

+ 	children: function( elem ) {

+ 		return siblings( elem.firstChild );

+ 	},

+ 	contents: function( elem ) {

+         if ( nodeName( elem, "iframe" ) ) {

+             return elem.contentDocument;

+         }

+ 

+         // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only

+         // Treat the template element as a regular one in browsers that

+         // don't support it.

+         if ( nodeName( elem, "template" ) ) {

+             elem = elem.content || elem;

+         }

+ 

+         return jQuery.merge( [], elem.childNodes );

+ 	}

+ }, function( name, fn ) {

+ 	jQuery.fn[ name ] = function( until, selector ) {

+ 		var matched = jQuery.map( this, fn, until );

  

- 	fix: function( event ) {

- 		if ( event[ jQuery.expando ] ) {

- 			return event;

- 		}

- 

- 		// Create a writable copy of the event object and normalize some properties

- 		var i, prop,

- 			originalEvent = event,

- 			fixHook = jQuery.event.fixHooks[ event.type ] || {},

- 			copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;

- 

- 		event = jQuery.Event( originalEvent );

- 

- 		for ( i = copy.length; i; ) {

- 			prop = copy[ --i ];

- 			event[ prop ] = originalEvent[ prop ];

- 		}

- 

- 		// Fix target property, if necessary (#1925, IE 6/7/8 & Safari2)

- 		if ( !event.target ) {

- 			event.target = originalEvent.srcElement || document;

- 		}

- 

- 		// Target should not be a text node (#504, Safari)

- 		if ( event.target.nodeType === 3 ) {

- 			event.target = event.target.parentNode;

+ 		if ( name.slice( -5 ) !== "Until" ) {

+ 			selector = until;

  		}

  

- 		// For mouse/key events; add metaKey if it's not there (#3368, IE6/7/8)

- 		if ( event.metaKey === undefined ) {

- 			event.metaKey = event.ctrlKey;

+ 		if ( selector && typeof selector === "string" ) {

+ 			matched = jQuery.filter( selector, matched );

  		}

  

- 		return fixHook.filter? fixHook.filter( event, originalEvent ) : event;

- 	},

- 

- 	special: {

- 		ready: {

- 			// Make sure the ready event is setup

- 			setup: jQuery.bindReady

- 		},

- 

- 		load: {

- 			// Prevent triggered image.load events from bubbling to window.load

- 			noBubble: true

- 		},

- 

- 		focus: {

- 			delegateType: "focusin"

- 		},

- 		blur: {

- 			delegateType: "focusout"

- 		},

- 

- 		beforeunload: {

- 			setup: function( data, namespaces, eventHandle ) {

- 				// We only want to do this special case on windows

- 				if ( jQuery.isWindow( this ) ) {

- 					this.onbeforeunload = eventHandle;

- 				}

- 			},

+ 		if ( this.length > 1 ) {

  

- 			teardown: function( namespaces, eventHandle ) {

- 				if ( this.onbeforeunload === eventHandle ) {

- 					this.onbeforeunload = null;

- 				}

+ 			// Remove duplicates

+ 			if ( !guaranteedUnique[ name ] ) {

+ 				jQuery.uniqueSort( matched );

  			}

- 		}

- 	},

  

- 	simulate: function( type, elem, event, bubble ) {

- 		// Piggyback on a donor event to simulate a different one.

- 		// Fake originalEvent to avoid donor's stopPropagation, but if the

- 		// simulated event prevents default then we do the same on the donor.

- 		var e = jQuery.extend(

- 			new jQuery.Event(),

- 			event,

- 			{ type: type,

- 				isSimulated: true,

- 				originalEvent: {}

+ 			// Reverse order for parents* and prev-derivatives

+ 			if ( rparentsprev.test( name ) ) {

+ 				matched.reverse();

  			}

- 		);

- 		if ( bubble ) {

- 			jQuery.event.trigger( e, null, elem );

- 		} else {

- 			jQuery.event.dispatch.call( elem, e );

  		}

- 		if ( e.isDefaultPrevented() ) {

- 			event.preventDefault();

- 		}

- 	}

- };

- 

- // Some plugins are using, but it's undocumented/deprecated and will be removed.

- // The 1.7 special event interface should provide all the hooks needed now.

- jQuery.event.handle = jQuery.event.dispatch;

  

- jQuery.removeEvent = document.removeEventListener ?

- 	function( elem, type, handle ) {

- 		if ( elem.removeEventListener ) {

- 			elem.removeEventListener( type, handle, false );

- 		}

- 	} :

- 	function( elem, type, handle ) {

- 		if ( elem.detachEvent ) {

- 			elem.detachEvent( "on" + type, handle );

- 		}

+ 		return this.pushStack( matched );

  	};

+ } );

+ var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g );

  

- jQuery.Event = function( src, props ) {

- 	// Allow instantiation without the 'new' keyword

- 	if ( !(this instanceof jQuery.Event) ) {

- 		return new jQuery.Event( src, props );

- 	}

- 

- 	// Event object

- 	if ( src && src.type ) {

- 		this.originalEvent = src;

- 		this.type = src.type;

- 

- 		// Events bubbling up the document may have been marked as prevented

- 		// by a handler lower down the tree; reflect the correct value.

- 		this.isDefaultPrevented = ( src.defaultPrevented || src.returnValue === false ||

- 			src.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse;

  

- 	// Event type

- 	} else {

- 		this.type = src;

- 	}

  

- 	// Put explicitly provided properties onto the event object

- 	if ( props ) {

- 		jQuery.extend( this, props );

- 	}

+ // Convert String-formatted options into Object-formatted ones

+ function createOptions( options ) {

+ 	var object = {};

+ 	jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {

+ 		object[ flag ] = true;

+ 	} );

+ 	return object;

+ }

  

- 	// Create a timestamp if incoming event doesn't have one

- 	this.timeStamp = src && src.timeStamp || jQuery.now();

+ /*

+  * 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 ) {

  

- 	// Mark it as fixed

- 	this[ jQuery.expando ] = true;

- };

+ 	// Convert options from String-formatted to Object-formatted if needed

+ 	// (we check in cache first)

+ 	options = typeof options === "string" ?

+ 		createOptions( options ) :

+ 		jQuery.extend( {}, options );

  

- function returnFalse() {

- 	return false;

- }

- function returnTrue() {

- 	return true;

- }

+ 	var // Flag to know if list is currently firing

+ 		firing,

  

- // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding

- // http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html

- jQuery.Event.prototype = {

- 	preventDefault: function() {

- 		this.isDefaultPrevented = returnTrue;

+ 		// Last fire value for non-forgettable lists

+ 		memory,

  

- 		var e = this.originalEvent;

- 		if ( !e ) {

- 			return;

- 		}

+ 		// Flag to know if list was already fired

+ 		fired,

  

- 		// if preventDefault exists run it on the original event

- 		if ( e.preventDefault ) {

- 			e.preventDefault();

+ 		// Flag to prevent firing

+ 		locked,

  

- 		// otherwise set the returnValue property of the original event to false (IE)

- 		} else {

- 			e.returnValue = false;

- 		}

- 	},

- 	stopPropagation: function() {

- 		this.isPropagationStopped = returnTrue;

+ 		// Actual callback list

+ 		list = [],

  

- 		var e = this.originalEvent;

- 		if ( !e ) {

- 			return;

- 		}

- 		// if stopPropagation exists run it on the original event

- 		if ( e.stopPropagation ) {

- 			e.stopPropagation();

- 		}

- 		// otherwise set the cancelBubble property of the original event to true (IE)

- 		e.cancelBubble = true;

- 	},

- 	stopImmediatePropagation: function() {

- 		this.isImmediatePropagationStopped = returnTrue;

- 		this.stopPropagation();

- 	},

- 	isDefaultPrevented: returnFalse,

- 	isPropagationStopped: returnFalse,

- 	isImmediatePropagationStopped: returnFalse

- };

+ 		// Queue of execution data for repeatable lists

+ 		queue = [],

  

- // Create mouseenter/leave events using mouseover/out and event-time checks

- jQuery.each({

- 	mouseenter: "mouseover",

- 	mouseleave: "mouseout"

- }, function( orig, fix ) {

- 	jQuery.event.special[ orig ] = {

- 		delegateType: fix,

- 		bindType: fix,

+ 		// Index of currently firing callback (modified by add/remove as needed)

+ 		firingIndex = -1,

  

- 		handle: function( event ) {

- 			var target = this,

- 				related = event.relatedTarget,

- 				handleObj = event.handleObj,

- 				selector = handleObj.selector,

- 				ret;

+ 		// Fire callbacks

+ 		fire = function() {

  

- 			// For mousenter/leave call the handler if related is outside the target.

- 			// NB: No relatedTarget if the mouse left/entered the browser window

- 			if ( !related || (related !== target && !jQuery.contains( target, related )) ) {

- 				event.type = handleObj.origType;

- 				ret = handleObj.handler.apply( this, arguments );

- 				event.type = fix;

- 			}

- 			return ret;

- 		}

- 	};

- });

+ 			// Enforce single-firing

+ 			locked = locked || options.once;

  

- // IE submit delegation

- if ( !jQuery.support.submitBubbles ) {

+ 			// Execute callbacks for all pending executions,

+ 			// respecting firingIndex overrides and runtime changes

+ 			fired = firing = true;

+ 			for ( ; queue.length; firingIndex = -1 ) {

+ 				memory = queue.shift();

+ 				while ( ++firingIndex < list.length ) {

  

- 	jQuery.event.special.submit = {

- 		setup: function() {

- 			// Only need this for delegated form submit events

- 			if ( jQuery.nodeName( this, "form" ) ) {

- 				return false;

- 			}

+ 					// Run callback and check for early termination

+ 					if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&

+ 						options.stopOnFalse ) {

  

- 			// Lazy-add a submit handler when a descendant form may potentially be submitted

- 			jQuery.event.add( this, "click._submit keypress._submit", function( e ) {

- 				// Node name check avoids a VML-related crash in IE (#9807)

- 				var elem = e.target,

- 					form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined;

- 				if ( form && !form._submit_attached ) {

- 					jQuery.event.add( form, "submit._submit", function( event ) {

- 						event._submit_bubble = true;

- 					});

- 					form._submit_attached = true;

- 				}

- 			});

- 			// return undefined since we don't need an event listener

- 		},

- 		

- 		postDispatch: function( event ) {

- 			// If form was submitted by the user, bubble the event up the tree

- 			if ( event._submit_bubble ) {

- 				delete event._submit_bubble;

- 				if ( this.parentNode && !event.isTrigger ) {

- 					jQuery.event.simulate( "submit", this.parentNode, event, true );

+ 						// Jump to end and forget the data so .add doesn't re-fire

+ 						firingIndex = list.length;

+ 						memory = false;

+ 					}

  				}

  			}

- 		},

  

- 		teardown: function() {

- 			// Only need this for delegated form submit events

- 			if ( jQuery.nodeName( this, "form" ) ) {

- 				return false;

+ 			// Forget the data if we're done with it

+ 			if ( !options.memory ) {

+ 				memory = false;

  			}

  

- 			// Remove delegated handlers; cleanData eventually reaps submit handlers attached above

- 			jQuery.event.remove( this, "._submit" );

- 		}

- 	};

- }

- 

- // IE change delegation and checkbox/radio fix

- if ( !jQuery.support.changeBubbles ) {

+ 			firing = false;

  

- 	jQuery.event.special.change = {

+ 			// Clean up if we're done firing for good

+ 			if ( locked ) {

  

- 		setup: function() {

+ 				// Keep an empty list if we have data for future add calls

+ 				if ( memory ) {

+ 					list = [];

  

- 			if ( rformElems.test( this.nodeName ) ) {

- 				// IE doesn't fire change on a check/radio until blur; trigger it on click

- 				// after a propertychange. Eat the blur-change in special.change.handle.

- 				// This still fires onchange a second time for check/radio after blur.

- 				if ( this.type === "checkbox" || this.type === "radio" ) {

- 					jQuery.event.add( this, "propertychange._change", function( event ) {

- 						if ( event.originalEvent.propertyName === "checked" ) {

- 							this._just_changed = true;

- 						}

- 					});

- 					jQuery.event.add( this, "click._change", function( event ) {

- 						if ( this._just_changed && !event.isTrigger ) {

- 							this._just_changed = false;

- 							jQuery.event.simulate( "change", this, event, true );

- 						}

- 					});

+ 				// Otherwise, this object is spent

+ 				} else {

+ 					list = "";

  				}

- 				return false;

  			}

- 			// Delegated event; lazy-add a change handler on descendant inputs

- 			jQuery.event.add( this, "beforeactivate._change", function( e ) {

- 				var elem = e.target;

- 

- 				if ( rformElems.test( elem.nodeName ) && !elem._change_attached ) {

- 					jQuery.event.add( elem, "change._change", function( event ) {

- 						if ( this.parentNode && !event.isSimulated && !event.isTrigger ) {

- 							jQuery.event.simulate( "change", this.parentNode, event, true );

- 						}

- 					});

- 					elem._change_attached = true;

- 				}

- 			});

  		},

  

- 		handle: function( event ) {

- 			var elem = event.target;

- 

- 			// Swallow native change events from checkbox/radio, we already triggered them above

- 			if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) {

- 				return event.handleObj.handler.apply( this, arguments );

- 			}

- 		},

+ 		// Actual Callbacks object

+ 		self = {

  

- 		teardown: function() {

- 			jQuery.event.remove( this, "._change" );

+ 			// Add a callback or a collection of callbacks to the list

+ 			add: function() {

+ 				if ( list ) {

  

- 			return rformElems.test( this.nodeName );

- 		}

- 	};

- }

+ 					// If we have memory from a past run, we should fire after adding

+ 					if ( memory && !firing ) {

+ 						firingIndex = list.length - 1;

+ 						queue.push( memory );

+ 					}

  

- // Create "bubbling" focus and blur events

- if ( !jQuery.support.focusinBubbles ) {

- 	jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) {

+ 					( function add( args ) {

+ 						jQuery.each( args, function( _, arg ) {

+ 							if ( isFunction( arg ) ) {

+ 								if ( !options.unique || !self.has( arg ) ) {

+ 									list.push( arg );

+ 								}

+ 							} else if ( arg && arg.length && toType( arg ) !== "string" ) {

  

- 		// Attach a single capturing handler while someone wants focusin/focusout

- 		var attaches = 0,

- 			handler = function( event ) {

- 				jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true );

- 			};

+ 								// Inspect recursively

+ 								add( arg );

+ 							}

+ 						} );

+ 					} )( arguments );

  

- 		jQuery.event.special[ fix ] = {

- 			setup: function() {

- 				if ( attaches++ === 0 ) {

- 					document.addEventListener( orig, handler, true );

+ 					if ( memory && !firing ) {

+ 						fire();

+ 					}

  				}

+ 				return this;

  			},

- 			teardown: function() {

- 				if ( --attaches === 0 ) {

- 					document.removeEventListener( orig, handler, true );

- 				}

- 			}

- 		};

- 	});

- }

  

- jQuery.fn.extend({

- 

- 	on: function( types, selector, data, fn, /*INTERNAL*/ one ) {

- 		var origFn, type;

+ 			// Remove a callback from the list

+ 			remove: function() {

+ 				jQuery.each( arguments, function( _, arg ) {

+ 					var index;

+ 					while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {

+ 						list.splice( index, 1 );

+ 

+ 						// Handle firing indexes

+ 						if ( index <= firingIndex ) {

+ 							firingIndex--;

+ 						}

+ 					}

+ 				} );

+ 				return this;

+ 			},

  

- 		// Types can be a map of types/handlers

- 		if ( typeof types === "object" ) {

- 			// ( types-Object, selector, data )

- 			if ( typeof selector !== "string" ) { // && selector != null

- 				// ( types-Object, data )

- 				data = data || selector;

- 				selector = undefined;

- 			}

- 			for ( type in types ) {

- 				this.on( type, selector, data, types[ type ], one );

- 			}

- 			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.length > 0;

+ 			},

  

- 		if ( data == null && fn == null ) {

- 			// ( types, fn )