/* ==========================================================================
   Main
   ========================================================================== */
/**
 * Following Necolas' Principles of writing consistent, idiomatic CSS:
 * https://github.com/necolas/idiomatic-css
 */
/**
 * Prefix wpe-* used as unique identifier:
 * Stands for "Washington Post Elections".
 */
/* Libraries
   ========================================================================== */
/**
 * Using Bourbon for extended SASS functionality:
 * http://bourbon.io/
 */
/* Settings
   ========================================================================== */
/* ==========================================================================
   Colors
   ========================================================================== */
/* WaPo politics color palette */
/* ==========================================================================
   Typography
   ========================================================================== */
/**
 * $base-* refers to the base styles when there's nothing else to override them.
 */
/* ==========================================================================
   Decoration
   ========================================================================== */
/* Border radius */
/* ==========================================================================
   Metrics
   ========================================================================== */
/* Spacing */
/* ==========================================================================
   Naming
   ========================================================================== */
/**
 * Prefix wpe-* used as unique identifier:
 * Stands for "Washington Post Elections".
 */
/* Media Queries mixins
 * Write a style that applies to only a breakpoint range,
 * or starting from a breakpoint onwards.
 *
 * USAGE
 * .some-class {
 *   display: block;
 *   @include media(md-up) {
 *     display: none;
 *   }
 * }
 *
 * Options:
 * screen, landscape, portrait
 * xs-up, sm-up, md-up, lg-up
 * xs-only, sm-only, md-only
 *
 * (see below for size ranges; they match what WaPo uses)
 */
/* Main
   ========================================================================== */
/* ==========================================================================
   Card
   ========================================================================== */
.wpe-card {
  background: #fff;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1);
  border-radius: 4px;
  text-align: left;
  color: #333333;
  font-family: "FranklinITCProLight", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 16px;
  line-height: 1.5; }
  .wpe-card a:focus {
    outline: 0; }

/* Card header
   ========================================================================== */
.wpe-card_header {
  padding: 16px;
  box-shadow: inset 0 -1px 0 0 rgba(0, 0, 0, 0.1); }

/* Meta */
.wpe-card_header-meta {
  margin: -16px -16px 16px -16px;
  padding: 8px 16px;
  box-shadow: inset 0 -1px 0 0 rgba(0, 0, 0, 0.1);
  background: whitesmoke;
  color: #7a7a7a;
  font-size: 14px;
  line-height: 16px;
  border-radius: 4px 4px 0 0; }

.wpe-card_reporting {
  float: right; }

.wpe-card_timekeeper {
  position: relative;
  float: left;
  font-family: "FranklinITCProBold", "Helvetica Neue", Helvetica, Arial, sans-serif;
  padding-left: 20px;
  color: inherit;
  cursor: pointer;
  transition: opacity 0.24s ease 0s; }
  .wpe-card_timekeeper .fa {
    display: block;
    line-height: inherit;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1; }
  .wpe-card_timekeeper:hover {
    opacity: 0.64; }

.wpe-card_timekeeper-online {
  color: #D8070E; }

.wpe-card_timekeeper-loading .fa {
  -webkit-animation: spin-c 1s linear 0s infinite;
  animation: spin-c 1s linear 0s infinite; }

/* Main */
.wpe-card_headline {
  margin-bottom: 8px; }
  .pb-cr-min-md .wpe-card_headline {
    float: left;
    margin-bottom: 0;
    max-width: 288px;
    padding-right: 16px; }

.wpe-card_prime-title {
  font-family: "FranklinITCProBold", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: normal;
  font-size: 28px;
  line-height: 32px;
  color: inherit; }

/* Prime nav */
.wpe-card_prime-nav {
  margin-bottom: -16px;
  font-size: 0; }
  .pb-cr-min-md .wpe-card_prime-nav {
    float: left; }
  .pb-cr-min-md .wpe-card_headline + .wpe-card_prime-nav {
    float: right; }
  .wpe-card_prime-nav .wpe-badge {
    margin-left: 4px; }

.wpe-card_party-menu {
  overflow: hidden;
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 14px;
  line-height: 16px; }

.wpe-card_party-menu_option {
  float: left;
  width: calc(50% - 10px);
  margin: 0 10px; }
  .wpe-card_party-menu_option:first-child {
    margin-left: 0; }
  .wpe-card_party-menu_option:last-child {
    margin-right: 0; }
  .pb-cr-min-md .wpe-card_party-menu_option {
    width: auto; }

.wpe-card_party-menu_option a {
  position: relative;
  display: block;
  padding-bottom: 16px;
  overflow: hidden;
  opacity: 0.48; }
  .wpe-card_party-menu_option a, .wpe-card_party-menu_option a:hover, .wpe-card_party-menu_option a:visited, .wpe-card_party-menu_option a:focus {
    color: inherit; }
  .wpe-card_party-menu_option a:after {
    position: absolute;
    z-index: 1;
    bottom: 0;
    left: 50%;
    width: 0;
    height: 3px;
    content: '';
    background: #a3a3a3;
    transition: all 0.24s ease 0s;
    -webkit-transform: translate(-50%, 0);
        -ms-transform: translate(-50%, 0);
            transform: translate(-50%, 0); }

.wpe-card_party-menu_option a:hover:after,
.wpe-card_party-menu_option_active a:after {
  width: 100%; }

.wpe-card_party-menu_option_active a {
  opacity: 1; }
  .wpe-card_party-menu_option_active a:after {
    background: #333333; }

.wpe-card_party-menu-media {
  display: none;
  width: 32px;
  height: 32px;
  float: left;
  margin-right: 6px; }
  .wpe-card_party-menu-media img {
    display: inline-block;
    width: 100%;
    height: auto;
    vertical-align: middle; }
  .pb-cr-min-sm .wpe-card_party-menu-media {
    display: block; }

.wpe-card_party-menu-text {
  float: left;
  line-height: 16px; }

.wpe-card_party-menu-title {
  font-family: "FranklinITCProBold", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: normal; }

/* Card body
   ========================================================================== */
.wpe-card_body {
  padding: 16px; }
  .wpe-card_body > *:last-child {
    margin-bottom: 0; }

.wpe-card_col {
  float: left;
  min-height: 1px;
  width: 100%; }
  .wpe-card_col > *:last-child {
    margin-bottom: 0; }

/* Card footer
   ========================================================================== */
.wpe-card_footer {
  padding: 0 16px 16px 16px; }

/* Main */
.wpe-card_source {
  font-size: 12px;
  line-height: 1;
  color: rgba(51, 51, 51, 0.48);
  font-family: inherit; }

/* Actions */
.wpe-card_footer-actions {
  padding: 8px 16px;
  margin: 16px -16px -16px -16px;
  box-shadow: inset 0 1px 0 0 rgba(0, 0, 0, 0.1);
  background: whitesmoke;
  font-size: 14px;
  line-height: 16px;
  border-radius: 0 0 4px 4px;
  text-align: center; }
  .wpe-card_footer-actions > *:last-child {
    margin-bottom: 0; }
  .wpe-card_footer-actions:empty {
    display: none; }

.wpe-card_full-results-link {
  display: inline-block;
  font-family: "FranklinITCProBold", "Helvetica Neue", Helvetica, Arial, sans-serif;
  color: #333333;
  font-size: 14px;
  line-height: 20px;
  text-transform: uppercase; }
  .wpe-card_full-results-link .fa {
    margin-left: 4px; }

/* ==========================================================================
   State card
   ========================================================================== */
.pb-cr-min-md .wpe-card_map-col {
  width: 52%;
  padding-right: 8px; }

.pb-cr-min-lg .wpe-card_map-col {
  width: 64%; }

.pb-cr-min-md .wpe-card_table-col {
  width: 48%;
  padding-left: 8px; }

.pb-cr-min-lg .wpe-card_table-col {
  width: 36%; }

/* ==========================================================================
   text card
   ========================================================================== */
.wpe-card_text .wpe-card_header .wpe-card_prime-title {
  font-size: 22px; }

.wpe-card_text_result {
  clear: both;
  min-height: 35px; }
  .wpe-card_text_result .fa {
    display: none; }

.wpe-card_text_result_winner .wpe-card_text_name {
  position: relative;
  padding-left: 51px; }

.wpe-card_text_result_winner .fa {
  display: block;
  font-size: 14px;
  position: absolute;
  top: 50%;
  left: 35px;
  -webkit-transform: translate(0, -50%);
      -ms-transform: translate(0, -50%);
          transform: translate(0, -50%); }

.wpe-card_text_headshot {
  float: left;
  display: inline-block;
  height: 35px;
  width: 35px;
  margin: -4px 8px -4px 0;
  vertical-align: middle; }
  .wpe-card_text_headshot img {
    display: inline-block;
    width: 100%;
    height: auto;
    vertical-align: middle; }

/* ==========================================================================
   Tables
   ========================================================================== */
.wpe-table {
  width: 100%;
  max-width: 100%;
  margin: 0;
  background-color: transparent;
  border-spacing: 0;
  border-collapse: collapse;
  font-family: inherit;
  font-size: 14px;
  line-height: 20px;
  margin-bottom: 14px; }
  .wpe-table td, .wpe-table th {
    padding: 0; }
  .wpe-table th {
    text-align: left; }
  .wpe-table tr {
    transition: all 0.24s ease 0s; }
  .wpe-table > thead > tr > th,
  .wpe-table > tbody > tr > th,
  .wpe-table > tfoot > tr > th,
  .wpe-table > thead > tr > td,
  .wpe-table > tbody > tr > td,
  .wpe-table > tfoot > tr > td {
    padding: 8px;
    vertical-align: middle;
    box-shadow: inset 0 -1px 0 0 rgba(0, 0, 0, 0.1); }
  .wpe-table > thead > tr > th:first-child,
  .wpe-table > tbody > tr > th:first-child,
  .wpe-table > tfoot > tr > th:first-child,
  .wpe-table > thead > tr > td:first-child,
  .wpe-table > tbody > tr > td:first-child,
  .wpe-table > tfoot > tr > td:first-child {
    padding-left: 0; }
  .wpe-table > thead > tr > th:last-child,
  .wpe-table > tbody > tr > th:last-child,
  .wpe-table > tfoot > tr > th:last-child,
  .wpe-table > thead > tr > td:last-child,
  .wpe-table > tbody > tr > td:last-child,
  .wpe-table > tfoot > tr > td:last-child {
    padding-right: 0; }
  .wpe-table > thead > tr > th {
    vertical-align: bottom; }
    .wpe-table > thead > tr > th a {
      display: inline-block; }
    .wpe-table > thead > tr > th a, .wpe-table > thead > tr > th a:visited, .wpe-table > thead > tr > th a:hover {
      color: inherit; }

/* table contents */
.wpe-table .wpe-table_head_votes,
.wpe-table .wpe-table_head_percent,
.wpe-table .wpe-table_cell_votes,
.wpe-table .wpe-table_cell_percent {
  text-align: right; }

.wpe-table_head_candidate {
  width: 100%; }

.wpe-table_cell_candidate {
  font-size: 0; }

.wpe-table_candidate-block {
  display: table; }
  .wpe-table_candidate-block > * {
    display: table-cell;
    vertical-align: middle; }

.wpe-table_candidate-head {
  display: inline-block;
  height: 32px;
  width: 32px;
  margin: -4px 8px -4px 0;
  vertical-align: middle; }
  .wpe-table_candidate-head img {
    display: inline-block;
    width: 100%;
    height: auto;
    vertical-align: middle; }

.wpe-table_candidate-name {
  display: table-cell;
  font-size: 16px;
  vertical-align: middle; }
  .wpe-table_candidate-name .fa {
    display: none; }

.wpe-table_row_leader,
.wpe-table_row_winner {
  font-family: "FranklinITCProBold", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: normal; }

.wpe-table_row_winner .wpe-table_candidate-name {
  position: relative;
  padding-right: 16px; }

.wpe-table_row_winner .fa {
  display: block;
  font-size: 14px;
  position: absolute;
  top: 50%;
  right: 0;
  -webkit-transform: translate(0, -50%);
      -ms-transform: translate(0, -50%);
          transform: translate(0, -50%); }

/* table more/less toggle */
.wpe-result-table_toggle {
  padding: 0 16px;
  text-align: center; }

.wpe-result-table_toggle_option {
  padding: 0;
  margin: 0;
  background: none;
  border: none;
  display: block;
  width: 100%;
  transition: opacity 0.24s ease 0s; }
  .wpe-result-table_toggle_option:hover {
    opacity: 0.64; }
  .wpe-result-table_toggle_option:focus {
    outline: none; }

.wpe-result-table_toggle_option_active {
  display: none; }

/* ==========================================================================
   Tables tooltip
   ========================================================================== */
.wpe-tooltip-result_table {
  margin-bottom: 0; }
  .wpe-tooltip-result_table > tbody tr:last-child > td {
    box-shadow: none; }

.wpe-tooltip-result_table_candidate-head {
  display: none; }

.wpe-tooltip-result_table_cell_candidate {
  width: 100%; }

/* ==========================================================================
   Tooltips
   ========================================================================== */
.wpe-tooltip {
  z-index: 100;
  background: #fff;
  border-radius: 4px;
  box-shadow: 0 2px 12px 2px rgba(0, 0, 0, 0.1), 0 0 0 1px rgba(0, 0, 0, 0.1);
  padding: 16px;
  width: 224px;
  text-align: left;
  color: #333333;
  font-family: "FranklinITCProLight", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 16px;
  line-height: 1.5; }

/* these classnames need to match those in tooltip.js */
.wpe-tooltip-nub {
  position: absolute;
  width: 32px;
  height: 32px;
  overflow: hidden;
  pointer-events: none; }

.wpe-tooltip-nub:before {
  content: '';
  position: absolute;
  width: 12px;
  height: 12px;
  background: #fff;
  -webkit-transform: rotate(45deg);
      -ms-transform: rotate(45deg);
          transform: rotate(45deg);
  box-shadow: 0 2px 12px 2px rgba(0, 0, 0, 0.1), 0 0 0 1px rgba(0, 0, 0, 0.1); }

.wpe-tooltip-nub_top,
.wpe-tooltip-nub_bottom {
  left: 50%;
  -webkit-transform: translate(-50%, 0);
      -ms-transform: translate(-50%, 0);
          transform: translate(-50%, 0); }

.wpe-tooltip-nub_left,
.wpe-tooltip-nub_right {
  top: 50%;
  -webkit-transform: translate(0, -50%);
      -ms-transform: translate(0, -50%);
          transform: translate(0, -50%); }

.wpe-tooltip-nub_top {
  bottom: -32px; }
  .wpe-tooltip-nub_top:before {
    bottom: 26px;
    left: 10px; }

.wpe-tooltip-nub_bottom {
  top: -32px; }
  .wpe-tooltip-nub_bottom:before {
    top: 26px;
    left: 10px; }

.wpe-tooltip-nub_left {
  right: -32px; }
  .wpe-tooltip-nub_left:before {
    top: 10px;
    right: 26px; }

.wpe-tooltip-nub_right {
  left: -32px; }
  .wpe-tooltip-nub_right:before {
    top: 10px;
    left: 26px; }

/* Tooltip content
   ========================================================================== */
.wpe-tooltip-result_prime-title {
  font-family: "FranklinITCProBold", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: normal;
  font-size: 18px;
  line-height: 24px;
  color: inherit;
  margin-bottom: 0; }

.wpe-tooltip-result_meta {
  color: #7a7a7a;
  font-size: 14px;
  line-height: 20px;
  margin-bottom: 4px; }

/* ==========================================================================
   Legends
   ========================================================================== */
.wpe-legend {
  float: left; }

.wpe-legend_list {
  float: left;
  list-style: none;
  margin: 0;
  padding: 0; }

.wpe-legend_entry {
  float: left;
  margin: 0 16px 4px 0;
  font-size: 0; }
  .wpe-legend_entry > * {
    display: inline-block;
    vertical-align: middle; }

.wpe-legend_label {
  line-height: 20px;
  font-size: 14px;
  color: #7a7a7a; }

.wpe-legend_swatch {
  width: 12px;
  height: 20px;
  border-radius: 4px;
  margin-right: 8px;
  overflow: hidden;
  text-align: center; }
  .wpe-legend_swatch.wpe-legend_swatch-alt {
    width: 20px;
    line-height: 20px;
    overflow: visible;
    position: relative; }

@media only screen and (min-width: 768px) {
  .b-toggle,
  .b-party-toggle {
    text-align: left; } }

.b-toggle_option,
.b-party-toggle_option {
  background: #FFF;
  color: #2A2A2A;
  cursor: pointer;
  display: inline-block;
  height: 36px;
  outline: none;
  padding: 6px 14px;
  border-width: 1px;
  border-style: solid;
  transition: border-color .2s, background-color .2s;
  border-color: #2A2A2A transparent #2A2A2A #2A2A2A; }
  .b-toggle_option:hover,
  .b-party-toggle_option:hover {
    border-color: #2A2A2A transparent #2A2A2A #2A2A2A; }
  .b-toggle_option:first-child,
  .b-party-toggle_option:first-child {
    border-width: 1px;
    border-style: solid;
    transition: border-color .2s, background-color .2s;
    border-top-left-radius: 4px;
    border-bottom-left-radius: 4px;
    border-color: #2A2A2A transparent #2A2A2A #2A2A2A; }
    .b-toggle_option:first-child:hover,
    .b-party-toggle_option:first-child:hover {
      border-color: #2A2A2A transparent #2A2A2A #2A2A2A; }
  .b-toggle_option:last-child,
  .b-party-toggle_option:last-child {
    border-width: 1px;
    border-style: solid;
    transition: border-color .2s, background-color .2s;
    border-top-right-radius: 4px;
    border-bottom-right-radius: 4px;
    border-color: #2A2A2A; }
    .b-toggle_option:last-child:hover,
    .b-party-toggle_option:last-child:hover {
      border-color: #2A2A2A; }
  .b-toggle_option:hover,
  .b-party-toggle_option:hover {
    background-color: #F1F1F1; }

.b-toggle_option_active,
.b-party-toggle_option_active {
  background: #D5D5D5; }
  .b-toggle_option_active:hover,
  .b-party-toggle_option_active:hover {
    background: #D5D5D5; }

@-webkit-keyframes pulse {
  0% {
    stroke-opacity: 0.45; }
  25% {
    stroke-opacity: 0.7; }
  75% {
    stroke-opacity: 0.7; }
  100% {
    stroke-opacity: 0.45; } }

@keyframes pulse {
  0% {
    stroke-opacity: 0.45; }
  25% {
    stroke-opacity: 0.7; }
  75% {
    stroke-opacity: 0.7; }
  100% {
    stroke-opacity: 0.45; } }

.wpe-map path {
  transition: fill .2s; }

/* Map layers
   ========================================================================== */
.wpe-map_boundaries {
  fill: none;
  stroke: #d1d1d1; }

.wpe-map_city-markers {
  pointer-events: none;
  fill: #000;
  fill-opacity: .9; }

.wpe-map_city-labels {
  pointer-events: none;
  fill: #111;
  text-shadow: 2px 1px 8px rgba(255, 255, 255, 0.9);
  font-size: 0.875em;
  font-weight: 400; }

.wpe-map_size-of-lead {
  opacity: .8; }

.wpe-map_highlight {
  fill: none;
  stroke: none; }

.wpe-map_highlight_active {
  stroke: #FFF;
  -webkit-animation: pulse 4s infinite;
          animation: pulse 4s infinite; }

.wpe-card svg image {
  opacity: .4; }

/* Map actions
   ========================================================================== */
.wpe-map_actions {
  box-shadow: inset 0 -1px 0 0 rgba(0, 0, 0, 0.1);
  margin-bottom: 16px; }

.wpe-map_views-menu {
  float: left;
  list-style: none;
  padding: 0;
  margin: 0; }

.wpe-map_views-menu_label,
.wpe-map_views-menu_option {
  float: left;
  margin-right: 8px; }

.wpe-map_views-menu_label {
  text-transform: none !important;
  padding: 8px 0; }

.wpe-map_views-menu_option a {
  position: relative;
  display: block;
  padding: 8px 0; }
  .wpe-map_views-menu_option a, .wpe-map_views-menu_option a:hover, .wpe-map_views-menu_option a:focus {
    color: inherit;
    outline: none; }

.wpe-map_views-menu_option a:after {
  position: absolute;
  z-index: 1;
  bottom: 0;
  left: 50%;
  width: 0;
  height: 1px;
  content: '';
  background: #adadad;
  -webkit-transform: translate(-50%, 0);
      -ms-transform: translate(-50%, 0);
          transform: translate(-50%, 0);
  transition: all 0.24s ease 0s; }

.wpe-map_views-menu_option a:hover:after,
.wpe-map_views-menu_option_active a:after {
  width: 100%; }

.wpe-map_views-menu_option_active a, .wpe-map_views-menu_option_active a:hover, .wpe-map_views-menu_option_active a:focus {
  color: #333333; }

.wpe-map_views-menu_option_active a:after {
  background: #333333; }

/* ==========================================================================
   Base
   ========================================================================== */
/**
 * Common elements styles
 */
.heading-alt, .wpe-table > thead > tr > th, .wpe-map_views-menu_label,
.wpe-map_views-menu_option {
  font-family: "FranklinITCProLight", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: normal;
  line-height: 20px;
  text-transform: uppercase;
  color: rgba(51, 51, 51, 0.48); }

/* temp */
#elections-content,
#elections-content-state-card {
  padding: 16px !important; }

/* Badges
   ========================================================================== */
.wpe-badge {
  display: inline-block;
  border-radius: 4px;
  background: rgba(0, 0, 0, 0.48);
  color: #fff;
  font-size: 14px;
  line-height: 1;
  padding: 1px 4px; }
  .wpe-badge sup {
    vertical-align: -2px; }

/* Animation
   ========================================================================== */
@-webkit-keyframes spin-c {
  from {
    -webkit-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    transform: rotate(0deg); }
  to {
    -webkit-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    transform: rotate(360deg); } }
@keyframes spin-c {
  from {
    -webkit-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    transform: rotate(0deg); }
  to {
    -webkit-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    transform: rotate(360deg); } }

/* Utilities */
/* ==========================================================================
   Utils
   ========================================================================== */
/* Font smoothing
   ========================================================================== */
/**
 * Antialiased font smoothing works best for light text on a dark background.
 * Apply to single elements instead of globally to body.
 * Note this only applies to webkit-based desktop browsers and Firefox 25 (and later) on the Mac.
 */
.antialiased, .wpe-badge {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

/* Truncated text
   ========================================================================== */
.truncated {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis; }

/* Hidden content
   ========================================================================== */
/* Hide from both screenreaders and browsers */
.hidden {
  display: none !important;
  visibility: hidden; }

/* Hide only visually, but have it available for screenreaders */
.visually-hidden {
  border: 0 none;
  clip: rect(0px, 0px, 0px, 0px);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px; }

/**
 * Extends the .visually-hidden class to allow the element
 * to be focusable when navigated to via the keyboard
 */
.visually-hidden.focusable:active,
.visually-hidden.focusable:focus {
  clip: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  position: static;
  width: auto; }

/* Undo visually-hidden */
.visually-hidden-undo {
  position: inherit;
  overflow: visible;
  height: auto;
  width: auto;
  margin: auto; }

/* Hide visually and from screenreaders, but maintain layout */
.invisible {
  visibility: hidden; }

/* Clearfix
   ========================================================================== */
.clearfix:before, .wpe-card:before, .wpe-card_header:before, .wpe-card_header-meta:before, .wpe-card_header-main:before, .wpe-card_body:before, .wpe-card_footer:before, .wpe-card_footer-actions:before, .wpe-map_actions:before, .clearfix:after, .wpe-card:after, .wpe-card_header:after, .wpe-card_header-meta:after, .wpe-card_header-main:after, .wpe-card_body:after, .wpe-card_footer:after, .wpe-card_footer-actions:after, .wpe-map_actions:after {
  content: ' ';
  display: table; }

.clearfix:after, .wpe-card:after, .wpe-card_header:after, .wpe-card_header-meta:after, .wpe-card_header-main:after, .wpe-card_body:after, .wpe-card_footer:after, .wpe-card_footer-actions:after, .wpe-map_actions:after {
  clear: both; }

/* Disabled
   ========================================================================== */
.disabled {
  opacity: 0.48;
  pointer-events: none;
  cursor: not-allowed; }

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1haW4uc2NzcyIsIl92YXJpYWJsZXMuc2NzcyIsIm1peGlucy9fYnJlYWtwb2ludHMuc2NzcyIsIl9jYXJkcy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fdGludC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fcHJlZml4ZXIuc2NzcyIsIl90YWJsZXMuc2NzcyIsIl90b29sdGlwcy5zY3NzIiwiX2xlZ2VuZHMuc2NzcyIsImVsZW1lbnRzL190b2dnbGUuc2NzcyIsIm1peGlucy9fYmFzZS5zY3NzIiwibWl4aW5zL19hbmltYXRpb24uc2NzcyIsImVsZW1lbnRzL19tYXAuc2NzcyIsIl9iYXNlLnNjc3MiLCJfdXRpbHMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Z0ZBRWdGO0FBRWhGOzs7R0FHRztBQUVIOzs7R0FHRztBQUdIO2dGQUNnRjtBQUVoRjs7O0dBR0c7QUFJSDtnRkFDZ0Y7QUMxQmhGOztnRkFFZ0Y7QUFPaEYsaUNBQWlDO0FBYWpDOztnRkFFZ0Y7QUFFaEY7O0dBRUc7QUFTSDs7Z0ZBRWdGO0FBRWhGLG1CQUFtQjtBQU1uQjs7Z0ZBRWdGO0FBRWhGLGFBQWE7QUFLYjs7Z0ZBRWdGO0FBRWhGOzs7R0FHRztBQy9ESDs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FGZUg7Z0ZBQ2dGO0FHbENoRjs7Z0ZBRWdGO0FBRWhGO0VBRUUsaUJBQWlCO0VBQ2pCLHlDRkhlO0VFSWYsbUJGbUNpQjtFRWxDakIsaUJBQWlCO0VBQ2pCLGVDWVc7RURYWCxtRkZvQnFGO0VFbkJyRixnQkZxQm1CO0VFcEJuQixpQkZxQm9CLEVFakJyQjtFQWJEO0lBV0ksV0FBVyxFQUNaOztBQUlIO2dGQUNnRjtBQUVoRjtFQUVF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QUFVO0VBQ1YsWUFBWTtFQUNaLGFBQWE7RUFDYixpQkFBaUI7RUFDakIsV0FBVztFQUNYLG1CQUFtQjtFQUNuQixXQUFXLEVBQ1o7O0FBRUQ7OztHQUdHO0FBRUg7O0VBRUUsV0FBVztFQUNYLGFBQWE7RUFDYixVQUFVO0VBQ1Ysa0JBQWtCO0VBQ2xCLGlCQUFpQjtFQUNqQixZQUFZLEVBQ2I7O0FBRUQsMEJBQTBCO0FBRTFCO0VBQ0Usa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixhQUFhO0VBQ2IsWUFBWTtFQUNaLGFBQWEsRUFDZDs7QUFFRCwrREFBK0Q7QUFFL0Q7RUFDRSxtQkFBbUIsRUFDcEI7O0FBR0Q7Z0ZBQ2dGO0FBRWhGO0VBR0ksYUFBYTtFQUNiLGVBQWUsRUFDaEI7O0FBTEg7RUFPSSxZQUFZLEVBQ2I7O0FBSUg7Z0ZBQ2dGO0FBRWhGO0VBQ0UsY0FBYztFQUNkLHFCQUFxQjtFQUNyQixvQkFBb0IsRUFDckIiLCJmaWxlIjoibWFpbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgTWFpblxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBGb2xsb3dpbmcgTmVjb2xhcycgUHJpbmNpcGxlcyBvZiB3cml0aW5nIGNvbnNpc3RlbnQsIGlkaW9tYXRpYyBDU1M6XG4gKiBodHRwczovL2dpdGh1Yi5jb20vbmVjb2xhcy9pZGlvbWF0aWMtY3NzXG4gKi9cblxuLyoqXG4gKiBQcmVmaXggd3BlLSogdXNlZCBhcyB1bmlxdWUgaWRlbnRpZmllcjpcbiAqIFN0YW5kcyBmb3IgXCJXYXNoaW5ndG9uIFBvc3QgRWxlY3Rpb25zXCIuXG4gKi9cblxuXG4vKiBMaWJyYXJpZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogVXNpbmcgQm91cmJvbiBmb3IgZXh0ZW5kZWQgU0FTUyBmdW5jdGlvbmFsaXR5OlxuICogaHR0cDovL2JvdXJib24uaW8vXG4gKi9cblxuQGltcG9ydCAnYm91cmJvbic7XG5cbi8qIFNldHRpbmdzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5AaW1wb3J0ICd2YXJpYWJsZXMnO1xuQGltcG9ydCAnbWl4aW5zL2Jhc2UnO1xuQGltcG9ydCAnbWl4aW5zL2JyZWFrcG9pbnRzJztcblxuXG4vKiBNYWluXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5AaW1wb3J0ICdjYXJkcyc7XG5AaW1wb3J0ICd0YWJsZXMnO1xuQGltcG9ydCAndG9vbHRpcHMnO1xuQGltcG9ydCAnbGVnZW5kcyc7XG5cbkBpbXBvcnQgJ2VsZW1lbnRzL3RvZ2dsZSc7XG5AaW1wb3J0ICdlbGVtZW50cy9tYXAnO1xuXG5cbkBpbXBvcnQgJ2Jhc2UnO1xuXG4vKiBVdGlsaXRpZXMgKi9cblxuQGltcG9ydCAndXRpbHMnO1xuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbG9yc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuJGJhc2UtY29sb3I6ICMwMDA7ICAgICAgICAgICAgICAgICAgIFx0XHRcdC8vIEJsYWNrXG4kYmFzZS1hbHBoYS1jb2xvcjogcmdiYSgkYmFzZS1jb2xvciwgMC4xKTtcblxuJGxpdmUtY29sb3I6ICNEODA3MEU7XG5cbi8qIFdhUG8gcG9saXRpY3MgY29sb3IgcGFsZXR0ZSAqL1xuXG4kZGVtb2NyYXQtMDogIzAwODFjNTtcbiRkZW1vY3JhdC0xOiAjNjZiN2U2O1xuJGRlbW9jcmF0LTI6ICNiNGQ2ZjE7XG4kZGVtb2NyYXQtMzogI2UxZWJmNztcblxuJHJlcHVibGljYW4tMDogI2VkMWMyNDtcbiRyZXB1YmxpY2FuLTE6ICNmMzg0ODc7XG4kcmVwdWJsaWNhbi0yOiAjZjliZmJlO1xuJHJlcHVibGljYW4tMzogI2ZkZWNlYjtcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgVHlwb2dyYXBoeVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAkYmFzZS0qIHJlZmVycyB0byB0aGUgYmFzZSBzdHlsZXMgd2hlbiB0aGVyZSdzIG5vdGhpbmcgZWxzZSB0byBvdmVycmlkZSB0aGVtLlxuICovXG5cbiRiYXNlLWZvbnQtY29sb3I6IHRpbnQoJGJhc2UtY29sb3IsIDIwJSk7XG4kYmFzZS1mb250LWxpZ2h0OiAnRnJhbmtsaW5JVENQcm9MaWdodCcsICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4kYmFzZS1mb250LWJvbGQ6ICdGcmFua2xpbklUQ1Byb0JvbGQnLCAnSGVsdmV0aWNhIE5ldWUnLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuJGJhc2UtZm9udC1zaXplOiAxNnB4O1xuJGJhc2UtbGluZS1oZWlnaHQ6IDEuNTtcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRGVjb3JhdGlvblxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogQm9yZGVyIHJhZGl1cyAqL1xuXG4kZ2xvYmFsLXJhZGl1czogNHB4O1xuJGdsb2JhbC1yb3VuZGVkOiA5NjBweDtcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgTWV0cmljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogU3BhY2luZyAqL1xuXG4kZ2xvYmFsLXNwYWNpbmc6IDE2cHg7XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIE5hbWluZ1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBQcmVmaXggd3BlLSogdXNlZCBhcyB1bmlxdWUgaWRlbnRpZmllcjpcbiAqIFN0YW5kcyBmb3IgXCJXYXNoaW5ndG9uIFBvc3QgRWxlY3Rpb25zXCIuXG4gKi9cblxuJGdsb2JhbC1wcmVmaXg6ICd3cGUtJzsiLCIvKiBNZWRpYSBRdWVyaWVzIG1peGluc1xuICogV3JpdGUgYSBzdHlsZSB0aGF0IGFwcGxpZXMgdG8gb25seSBhIGJyZWFrcG9pbnQgcmFuZ2UsXG4gKiBvciBzdGFydGluZyBmcm9tIGEgYnJlYWtwb2ludCBvbndhcmRzLlxuICpcbiAqIFVTQUdFXG4gKiAuc29tZS1jbGFzcyB7XG4gKiAgIGRpc3BsYXk6IGJsb2NrO1xuICogICBAaW5jbHVkZSBtZWRpYShtZC11cCkge1xuICogICAgIGRpc3BsYXk6IG5vbmU7XG4gKiAgIH1cbiAqIH1cbiAqXG4gKiBPcHRpb25zOlxuICogc2NyZWVuLCBsYW5kc2NhcGUsIHBvcnRyYWl0XG4gKiB4cy11cCwgc20tdXAsIG1kLXVwLCBsZy11cFxuICogeHMtb25seSwgc20tb25seSwgbWQtb25seVxuICpcbiAqIChzZWUgYmVsb3cgZm9yIHNpemUgcmFuZ2VzOyB0aGV5IG1hdGNoIHdoYXQgV2FQbyB1c2VzKVxuICovXG5cbiRjb2wteHM6ICgwLCA3NjdweCk7XG4kY29sLXNtOiAoNzY4cHgsIDk5MXB4KTtcbiRjb2wtbWQ6ICg5OTJweCwgMTE5OXB4KTtcbiRjb2wtbGc6ICgxMjAwcHgpO1xuJHNjcmVlbjogXCJvbmx5IHNjcmVlblwiO1xuQGZ1bmN0aW9uIGxvd2VyLWJvdW5kKCRyYW5nZSkge1xuICBAaWYgbGVuZ3RoKCRyYW5nZSkgPD0gMCB7XG4gICAgQHJldHVybiAwO1xuICB9XG4gIEByZXR1cm4gbnRoKCRyYW5nZSwgMSk7XG59XG5AZnVuY3Rpb24gdXBwZXItYm91bmQoJHJhbmdlKSB7XG4gIEBpZiBsZW5ndGgoJHJhbmdlKSA8IDIge1xuICAgIEByZXR1cm4gJGNvbC1sZztcbiAgfVxuICBAcmV0dXJuIG50aCgkcmFuZ2UsIDIpO1xufVxuQG1peGluIG1lZGlhKCRhcmcpIHtcbiAgQGlmICRhcmcgPT0gc2NyZWVuIHtcbiAgICBAbWVkaWEgI3skc2NyZWVufSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRhcmcgPT0gbGFuZHNjYXBlIHtcbiAgICBAbWVkaWEgI3skc2NyZWVufSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAaWYgJGFyZyA9PSBwb3J0cmFpdCB7XG4gICAgQG1lZGlhICN7JHNjcmVlbn0gYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAaWYgJGFyZyA9PSB4cy11cCB7XG4gICAgQG1lZGlhICN7JHNjcmVlbn0gYW5kIChtaW4td2lkdGg6ICN7bG93ZXItYm91bmQoJGNvbC14cyl9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRhcmcgPT0geHMtb25seSB7XG4gICAgQG1lZGlhICN7JHNjcmVlbn0gYW5kIChtYXgtd2lkdGg6ICN7dXBwZXItYm91bmQoJGNvbC14cyl9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRhcmcgPT0gc20tdXAge1xuICAgIEBtZWRpYSAjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiAje2xvd2VyLWJvdW5kKCRjb2wtc20pfSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkYXJnID09IHNtLW9ubHkge1xuICAgIEBtZWRpYSAjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiAje2xvd2VyLWJvdW5kKCRjb2wtc20pfSkgYW5kIChtYXgtd2lkdGg6ICN7dXBwZXItYm91bmQoJGNvbC1zbSl9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRhcmcgPT0gbWQtdXAge1xuICAgIEBtZWRpYSAjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiAje2xvd2VyLWJvdW5kKCRjb2wtbWQpfSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkYXJnID09IG1kLW9ubHkge1xuICAgIEBtZWRpYSAjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiAje2xvd2VyLWJvdW5kKCRjb2wtbWQpfSkgYW5kIChtYXgtd2lkdGg6ICN7dXBwZXItYm91bmQoJGNvbC1tZCl9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRhcmcgPT0gbGctdXAge1xuICAgIEBtZWRpYSAjeyRzY3JlZW59IGFuZCAobWluLXdpZHRoOiAje2xvd2VyLWJvdW5kKCRjb2wtbGcpfSkgeyBAY29udGVudDsgfVxuICB9XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ2FyZFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLndwZS1jYXJkIHtcbiAgQGV4dGVuZCAuY2xlYXJmaXg7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDFweCAkYmFzZS1hbHBoYS1jb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGNvbG9yOiAkYmFzZS1mb250LWNvbG9yO1xuICBmb250LWZhbWlseTogJGJhc2UtZm9udC1saWdodDtcbiAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7XG4gIGxpbmUtaGVpZ2h0OiAkYmFzZS1saW5lLWhlaWdodDtcbiAgYTpmb2N1cyB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxufVxuXG5cbi8qIENhcmQgaGVhZGVyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ud3BlLWNhcmRfaGVhZGVyIHtcbiAgQGV4dGVuZCAuY2xlYXJmaXg7XG4gIHBhZGRpbmc6ICRnbG9iYWwtc3BhY2luZztcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgMCAkYmFzZS1hbHBoYS1jb2xvcjtcbn1cblxuIC8qIE1ldGEgKi9cblxuLndwZS1jYXJkX2hlYWRlci1tZXRhIHtcbiAgQGV4dGVuZCAuY2xlYXJmaXg7XG4gIG1hcmdpbjogKC0kZ2xvYmFsLXNwYWNpbmcpICgtJGdsb2JhbC1zcGFjaW5nKSAkZ2xvYmFsLXNwYWNpbmcgKC0kZ2xvYmFsLXNwYWNpbmcpO1xuICBwYWRkaW5nOiAoJGdsb2JhbC1zcGFjaW5nIC8gMikgJGdsb2JhbC1zcGFjaW5nO1xuICBib3gtc2hhZG93OiBpbnNldCAwIC0xcHggMCAwICRiYXNlLWFscGhhLWNvbG9yO1xuICBiYWNrZ3JvdW5kOiB0aW50KCRiYXNlLWNvbG9yLCA5NiUpO1xuICBjb2xvcjogdGludCgkYmFzZS1jb2xvciwgNDglKTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgJGdsb2JhbC1yYWRpdXMgMCAwO1xufVxuXG4ud3BlLWNhcmRfcmVwb3J0aW5nIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4ud3BlLWNhcmRfdGltZWtlZXBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWJvbGQ7XG4gIHBhZGRpbmctbGVmdDogKCRnbG9iYWwtc3BhY2luZyAqIDEuMjUpO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgLmZhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgei1pbmRleDogMTtcbiAgfVxuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yNHMgZWFzZSAwcztcbiAgJjpob3ZlciB7XG4gICAgb3BhY2l0eTogMC42NDtcbiAgfVxufVxuXG4ud3BlLWNhcmRfdGltZWtlZXBlci1vbmxpbmUge1xuICBjb2xvcjogJGxpdmUtY29sb3I7XG59XG5cbi53cGUtY2FyZF90aW1la2VlcGVyLWxvYWRpbmcge1xuICAuZmEge1xuICAgIEBpbmNsdWRlIGFuaW1hdGlvbihzcGluLWMgMXMgbGluZWFyIDBzIGluZmluaXRlKTtcbiAgfVxufVxuXG4vKiBNYWluICovXG5cbi53cGUtY2FyZF9oZWFkZXItbWFpbiB7XG4gIEBleHRlbmQgLmNsZWFyZml4O1xufVxuXG4ud3BlLWNhcmRfaGVhZGxpbmUge1xuICBtYXJnaW4tYm90dG9tOiAoJGdsb2JhbC1zcGFjaW5nIC8gMik7XG4gIC5wYi1jci1taW4tbWQgJiB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBtYXgtd2lkdGg6IDI4OHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6ICRnbG9iYWwtc3BhY2luZztcbiAgfVxufVxuXG4ud3BlLWNhcmRfcHJpbWUtdGl0bGUge1xuICBmb250LWZhbWlseTogJGJhc2UtZm9udC1ib2xkO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXNpemU6IDI4cHg7XG4gIGxpbmUtaGVpZ2h0OiAzMnB4O1xuICBjb2xvcjogaW5oZXJpdDtcbn1cblxuLyogUHJpbWUgbmF2ICovXG5cbi53cGUtY2FyZF9wcmltZS1uYXYge1xuICBtYXJnaW4tYm90dG9tOiAoLSAkZ2xvYmFsLXNwYWNpbmcpO1xuICBmb250LXNpemU6IDA7XG4gIC5wYi1jci1taW4tbWQgJiB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gIH1cbiAgLnBiLWNyLW1pbi1tZCAud3BlLWNhcmRfaGVhZGxpbmUgKyAmIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gIH1cbiAgLndwZS1iYWRnZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDRweDtcbiAgfVxufVxuXG4ud3BlLWNhcmRfcGFydHktbWVudSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMTZweDtcbn1cblxuLndwZS1jYXJkX3BhcnR5LW1lbnVfb3B0aW9uIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiBjYWxjKDUwJSAtIDEwcHgpO1xuICBtYXJnaW46IDAgMTBweDtcbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbiAgJjpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gIH1cbiAgLnBiLWNyLW1pbi1tZCAmIHtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxufVxuXG4ud3BlLWNhcmRfcGFydHktbWVudV9vcHRpb24gYSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmctYm90dG9tOiAkZ2xvYmFsLXNwYWNpbmc7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG9wYWNpdHk6IDAuNDg7XG4gICYsICY6aG92ZXIsICY6dmlzaXRlZCwgJjpmb2N1cyB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gIH1cbiAgJjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDNweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBiYWNrZ3JvdW5kOiB0aW50KCRiYXNlLWNvbG9yLCA2NCUpO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjI0cyBlYXNlIDBzO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDApO1xuICB9XG59XG5cbi53cGUtY2FyZF9wYXJ0eS1tZW51X29wdGlvbiBhOmhvdmVyLFxuLndwZS1jYXJkX3BhcnR5LW1lbnVfb3B0aW9uX2FjdGl2ZSBhIHtcbiAgJjphZnRlciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH0gXG59XG5cbi53cGUtY2FyZF9wYXJ0eS1tZW51X29wdGlvbl9hY3RpdmUgYSB7XG4gIG9wYWNpdHk6IDE7XG4gICY6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6IHRpbnQoJGJhc2UtY29sb3IsIDIwJSk7XG4gIH0gXG59XG5cbi53cGUtY2FyZF9wYXJ0eS1tZW51LW1lZGlhIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgd2lkdGg6IDMycHg7XG4gIGhlaWdodDogMzJweDtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1yaWdodDogNnB4O1xuICBpbWcge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuICAucGItY3ItbWluLXNtICYge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbi53cGUtY2FyZF9wYXJ0eS1tZW51LXRleHQge1xuICBmbG9hdDogbGVmdDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG59XG5cbi53cGUtY2FyZF9wYXJ0eS1tZW51LXRpdGxlIHtcbiAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtYm9sZDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuXG4vKiBDYXJkIGJvZHlcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAud3BlLWNhcmRfYm9keSB7XG4gIEBleHRlbmQgLmNsZWFyZml4O1xuICBwYWRkaW5nOiAkZ2xvYmFsLXNwYWNpbmc7XG4gID4gKjpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi53cGUtY2FyZF9jb2wge1xuICBmbG9hdDogbGVmdDtcbiAgbWluLWhlaWdodDogMXB4O1xuICB3aWR0aDogMTAwJTtcbiAgPiAqOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cblxuXG4vKiBDYXJkIGZvb3RlclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLndwZS1jYXJkX2Zvb3RlciB7XG4gIEBleHRlbmQgLmNsZWFyZml4O1xuICBwYWRkaW5nOiAwICRnbG9iYWwtc3BhY2luZyAkZ2xvYmFsLXNwYWNpbmcgJGdsb2JhbC1zcGFjaW5nO1xufVxuXG4gLyogTWFpbiAqL1xuXG4ud3BlLWNhcmRfc291cmNlIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6IHJnYmEoJGJhc2UtZm9udC1jb2xvciwgMC40OCk7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xufVxuXG4gLyogQWN0aW9ucyAqL1xuXG4ud3BlLWNhcmRfZm9vdGVyLWFjdGlvbnMge1xuICBAZXh0ZW5kIC5jbGVhcmZpeDtcbiAgcGFkZGluZzogKCRnbG9iYWwtc3BhY2luZyAvIDIpICRnbG9iYWwtc3BhY2luZztcbiAgbWFyZ2luOiAkZ2xvYmFsLXNwYWNpbmcgKC0kZ2xvYmFsLXNwYWNpbmcpICgtJGdsb2JhbC1zcGFjaW5nKSAoLSRnbG9iYWwtc3BhY2luZyk7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkYmFzZS1hbHBoYS1jb2xvcjtcbiAgYmFja2dyb3VuZDogdGludCgkYmFzZS1jb2xvciwgOTYlKTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgYm9yZGVyLXJhZGl1czogMCAwICRnbG9iYWwtcmFkaXVzICRnbG9iYWwtcmFkaXVzO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gID4gKjpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG4gICY6ZW1wdHkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLndwZS1jYXJkX2Z1bGwtcmVzdWx0cy1saW5rIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogJGJhc2UtZm9udC1ib2xkO1xuICBjb2xvcjogJGJhc2UtZm9udC1jb2xvcjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgLmZhIHtcbiAgICBtYXJnaW4tbGVmdDogNHB4O1xuICB9XG59XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFN0YXRlIGNhcmRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi53cGUtY2FyZF9tYXAtY29sIHtcbiAgLnBiLWNyLW1pbi1tZCAmIHtcbiAgICB3aWR0aDogNTIlO1xuICAgIHBhZGRpbmctcmlnaHQ6ICgkZ2xvYmFsLXNwYWNpbmcgLyAyKTtcbiAgfVxuICAucGItY3ItbWluLWxnICYge1xuICAgIHdpZHRoOiA2NCU7XG4gIH1cbn1cblxuLndwZS1jYXJkX3RhYmxlLWNvbCB7XG4gIC5wYi1jci1taW4tbWQgJiB7XG4gICAgd2lkdGg6IDQ4JTtcbiAgICBwYWRkaW5nLWxlZnQ6ICgkZ2xvYmFsLXNwYWNpbmcgLyAyKTtcbiAgfVxuICAucGItY3ItbWluLWxnICYge1xuICAgIHdpZHRoOiAzNiU7XG4gIH1cbn1cblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgdGV4dCBjYXJkXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4kdGV4dC1jYXJkLWhlYWRzaG90LXNpemU6IDM1cHg7XG4kdGV4dC1jYXJkLWNoZWNrbWFyay1zaXplOiAxNHB4O1xuXG4ud3BlLWNhcmRfdGV4dCB7XG4gIC53cGUtY2FyZF9oZWFkZXIge1xuICAgIC53cGUtY2FyZF9wcmltZS10aXRsZSB7XG4gICAgICBmb250LXNpemU6IDIycHg7XG4gICAgfVxuICB9XG59XG5cbi53cGUtY2FyZF90ZXh0X3Jlc3VsdCB7XG4gIGNsZWFyOiBib3RoO1xuICBtaW4taGVpZ2h0OiAkdGV4dC1jYXJkLWhlYWRzaG90LXNpemU7XG4gIC5mYSB7IGRpc3BsYXk6IG5vbmUgfVxufVxuXG4ud3BlLWNhcmRfdGV4dF9yZXN1bHRfd2lubmVyIHtcbiAgLndwZS1jYXJkX3RleHRfbmFtZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctbGVmdDogJHRleHQtY2FyZC1oZWFkc2hvdC1zaXplICsgJHRleHQtY2FyZC1jaGVja21hcmstc2l6ZSArIDJweDtcbiAgfVxuICAuZmEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogJHRleHQtY2FyZC1jaGVja21hcmstc2l6ZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogJHRleHQtY2FyZC1oZWFkc2hvdC1zaXplO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpO1xuICB9XG59XG5cbi53cGUtY2FyZF90ZXh0X2hlYWRzaG90IHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgaGVpZ2h0OiAkdGV4dC1jYXJkLWhlYWRzaG90LXNpemU7XG4gIHdpZHRoOiAkdGV4dC1jYXJkLWhlYWRzaG90LXNpemU7XG4gIG1hcmdpbjogLTRweCA4cHggLTRweCAwO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBpbWcge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gTWl4ZXMgYSBjb2xvciB3aXRoIHdoaXRlLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAoUGVyY2VudGFnZSl9ICRwZXJjZW50XG4vLy8gICBUaGUgYW1vdW50IG9mIHdoaXRlIHRvIGJlIG1peGVkIGluLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6IHRpbnQoIzZlY2FhNiwgNDAlKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2E4ZGZjOTtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXR1cm4ge0NvbG9yfVxuXG5AZnVuY3Rpb24gdGludCgkY29sb3IsICRwZXJjZW50KSB7XG4gIEByZXR1cm4gbWl4KCNmZmYsICRjb2xvciwgJHBlcmNlbnQpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQSBtaXhpbiBmb3IgZ2VuZXJhdGluZyB2ZW5kb3IgcHJlZml4ZXMgb24gbm9uLXN0YW5kYXJkaXplZCBwcm9wZXJ0aWVzLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRwcm9wZXJ0eVxuLy8vICAgUHJvcGVydHkgdG8gcHJlZml4XG4vLy9cbi8vLyBAcGFyYW0geyp9ICR2YWx1ZVxuLy8vICAgVmFsdWUgdG8gdXNlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRwcmVmaXhlc1xuLy8vICAgUHJlZml4ZXMgdG8gZGVmaW5lXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcHJlZml4ZXIoYm9yZGVyLXJhZGl1cywgMTBweCwgd2Via2l0IG1zIHNwZWMpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDEwcHg7XG4vLy8gICAgIC1tb3otYm9yZGVyLXJhZGl1czogMTBweDtcbi8vLyAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3Itd2Via2l0XG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1tb3ppbGxhXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1taWNyb3NvZnRcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW9wZXJhXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1zcGVjXG5cbkBtaXhpbiBwcmVmaXhlcigkcHJvcGVydHksICR2YWx1ZSwgJHByZWZpeGVzKSB7XG4gIEBlYWNoICRwcmVmaXggaW4gJHByZWZpeGVzIHtcbiAgICBAaWYgJHByZWZpeCA9PSB3ZWJraXQge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLXdlYmtpdCB7XG4gICAgICAgIC13ZWJraXQtI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IG1veiB7XG4gICAgICBAaWYgJHByZWZpeC1mb3ItbW96aWxsYSB7XG4gICAgICAgIC1tb3otI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IG1zIHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1taWNyb3NvZnQge1xuICAgICAgICAtbXMtI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IG8ge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW9wZXJhIHtcbiAgICAgICAgLW8tI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IHNwZWMge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLXNwZWMge1xuICAgICAgICAjeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlICB7XG4gICAgICBAd2FybiBcIlVucmVjb2duaXplZCBwcmVmaXg6ICN7JHByZWZpeH1cIjtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKSB7XG4gICRwcmVmaXgtZm9yLXdlYmtpdDogICAgZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbW96aWxsYTogICBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1taWNyb3NvZnQ6IGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW9wZXJhOiAgICAgZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itc3BlYzogICAgICBmYWxzZSAhZ2xvYmFsO1xufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFRhYmxlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLndwZS10YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogMTRweDtcblxuICB0ZCwgdGgge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICB0aCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxuXG4gIHRyIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAwLjI0cyBlYXNlIDBzKTtcbiAgfVxuXG4gID4gdGhlYWQgPiB0ciA+IHRoLFxuICA+IHRib2R5ID4gdHIgPiB0aCxcbiAgPiB0Zm9vdCA+IHRyID4gdGgsXG4gID4gdGhlYWQgPiB0ciA+IHRkLFxuICA+IHRib2R5ID4gdHIgPiB0ZCxcbiAgPiB0Zm9vdCA+IHRyID4gdGQge1xuICAgIHBhZGRpbmc6ICgkZ2xvYmFsLXNwYWNpbmcgLyAyKTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgLTFweCAwIDAgJGJhc2UtYWxwaGEtY29sb3I7XG4gIH1cblxuICA+IHRoZWFkID4gdHIgPiB0aDpmaXJzdC1jaGlsZCxcbiAgPiB0Ym9keSA+IHRyID4gdGg6Zmlyc3QtY2hpbGQsXG4gID4gdGZvb3QgPiB0ciA+IHRoOmZpcnN0LWNoaWxkLFxuICA+IHRoZWFkID4gdHIgPiB0ZDpmaXJzdC1jaGlsZCxcbiAgPiB0Ym9keSA+IHRyID4gdGQ6Zmlyc3QtY2hpbGQsXG4gID4gdGZvb3QgPiB0ciA+IHRkOmZpcnN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cblxuICA+IHRoZWFkID4gdHIgPiB0aDpsYXN0LWNoaWxkLFxuICA+IHRib2R5ID4gdHIgPiB0aDpsYXN0LWNoaWxkLFxuICA+IHRmb290ID4gdHIgPiB0aDpsYXN0LWNoaWxkLFxuICA+IHRoZWFkID4gdHIgPiB0ZDpsYXN0LWNoaWxkLFxuICA+IHRib2R5ID4gdHIgPiB0ZDpsYXN0LWNoaWxkLFxuICA+IHRmb290ID4gdHIgPiB0ZDpsYXN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG5cbiAgPiB0aGVhZCA+IHRyID4gdGgge1xuICAgIEBleHRlbmQgLmhlYWRpbmctYWx0O1xuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgYSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuICAgIGEsIGE6dmlzaXRlZCwgYTpob3ZlciB7XG4gICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB9XG4gIH1cbn1cblxuLyogdGFibGUgY29udGVudHMgKi9cblxuLndwZS10YWJsZSB7XG4gIC53cGUtdGFibGVfaGVhZF92b3RlcyxcbiAgLndwZS10YWJsZV9oZWFkX3BlcmNlbnQsXG4gIC53cGUtdGFibGVfY2VsbF92b3RlcyxcbiAgLndwZS10YWJsZV9jZWxsX3BlcmNlbnQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG59XG5cbi53cGUtdGFibGVfaGVhZF9jYW5kaWRhdGUge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLndwZS10YWJsZV9jZWxsX2NhbmRpZGF0ZSB7XG4gIGZvbnQtc2l6ZTogMDtcbn1cblxuLndwZS10YWJsZV9jYW5kaWRhdGUtYmxvY2sge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgPiAqIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cbn1cblxuLndwZS10YWJsZV9jYW5kaWRhdGUtaGVhZCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgaGVpZ2h0OiAzMnB4O1xuICB3aWR0aDogMzJweDtcbiAgbWFyZ2luOiAtNHB4IDhweCAtNHB4IDA7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGltZyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG59XG5cbi53cGUtdGFibGVfY2FuZGlkYXRlLW5hbWUge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICBmb250LXNpemU6IDE2cHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIC5mYSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4ud3BlLXRhYmxlX3Jvd19sZWFkZXIsXG4ud3BlLXRhYmxlX3Jvd193aW5uZXIge1xuICBmb250LWZhbWlseTogJGJhc2UtZm9udC1ib2xkO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG5cbi53cGUtdGFibGVfcm93X3dpbm5lciB7XG4gIC53cGUtdGFibGVfY2FuZGlkYXRlLW5hbWUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4O1xuICB9XG4gIC5mYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKTtcbiAgfVxufVxuXG4vKiB0YWJsZSBtb3JlL2xlc3MgdG9nZ2xlICovXG5cbi53cGUtcmVzdWx0LXRhYmxlX3RvZ2dsZSB7XG4gIHBhZGRpbmc6IDAgJGdsb2JhbC1zcGFjaW5nO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi53cGUtcmVzdWx0LXRhYmxlX3RvZ2dsZV9vcHRpb24ge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjRzIGVhc2UgMHM7XG4gICY6aG92ZXIge1xuICAgIG9wYWNpdHk6IDAuNjQ7XG4gIH1cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxufVxuXG4ud3BlLXJlc3VsdC10YWJsZV90b2dnbGVfb3B0aW9uX2FjdGl2ZSB7IGRpc3BsYXk6IG5vbmU7IH1cblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgVGFibGVzIHRvb2x0aXBcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi53cGUtdG9vbHRpcC1yZXN1bHRfdGFibGUge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICA+IHRib2R5IHRyOmxhc3QtY2hpbGQgPiB0ZCB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxufVxuXG4ud3BlLXRvb2x0aXAtcmVzdWx0X3RhYmxlX2NhbmRpZGF0ZS1oZWFkIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLndwZS10b29sdGlwLXJlc3VsdF90YWJsZV9jZWxsX2NhbmRpZGF0ZSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFRvb2x0aXBzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ud3BlLXRvb2x0aXAge1xuICB6LWluZGV4OiAxMDA7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICBib3gtc2hhZG93OiAwIDJweCAxMnB4IDJweCAkYmFzZS1hbHBoYS1jb2xvciwgMCAwIDAgMXB4ICRiYXNlLWFscGhhLWNvbG9yO1xuICBwYWRkaW5nOiAkZ2xvYmFsLXNwYWNpbmc7XG4gIHdpZHRoOiAoJGdsb2JhbC1zcGFjaW5nICogMTQpO1xuXG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGNvbG9yOiAkYmFzZS1mb250LWNvbG9yO1xuICBmb250LWZhbWlseTogJGJhc2UtZm9udC1saWdodDtcbiAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7XG4gIGxpbmUtaGVpZ2h0OiAkYmFzZS1saW5lLWhlaWdodDtcbn1cblxuLyogdGhlc2UgY2xhc3NuYW1lcyBuZWVkIHRvIG1hdGNoIHRob3NlIGluIHRvb2x0aXAuanMgKi9cblxuLndwZS10b29sdGlwLW51YiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDMycHg7XG4gIGhlaWdodDogMzJweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi53cGUtdG9vbHRpcC1udWI6YmVmb3JlIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEycHg7XG4gIGhlaWdodDogMTJweDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICBib3gtc2hhZG93OiAwIDJweCAxMnB4IDJweCAkYmFzZS1hbHBoYS1jb2xvciwgMCAwIDAgMXB4ICRiYXNlLWFscGhhLWNvbG9yO1xufVxuXG4ud3BlLXRvb2x0aXAtbnViX3RvcCxcbi53cGUtdG9vbHRpcC1udWJfYm90dG9tIHtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAwKTtcbn1cblxuLndwZS10b29sdGlwLW51Yl9sZWZ0LFxuLndwZS10b29sdGlwLW51Yl9yaWdodCB7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKTtcbn1cblxuLndwZS10b29sdGlwLW51Yl90b3Age1xuICBib3R0b206IC0zMnB4O1xuICAmOmJlZm9yZSB7XG4gICAgYm90dG9tOiAyNnB4O1xuICAgIGxlZnQ6IDEwcHg7XG4gIH1cbn1cblxuLndwZS10b29sdGlwLW51Yl9ib3R0b20ge1xuICB0b3A6IC0zMnB4O1xuICAmOmJlZm9yZSB7XG4gICAgdG9wOiAyNnB4O1xuICAgIGxlZnQ6IDEwcHg7XG4gIH1cbn1cblxuLndwZS10b29sdGlwLW51Yl9sZWZ0IHtcbiAgcmlnaHQ6IC0zMnB4O1xuICAmOmJlZm9yZSB7XG4gICAgdG9wOiAxMHB4O1xuICAgIHJpZ2h0OiAyNnB4O1xuICB9XG59XG5cbi53cGUtdG9vbHRpcC1udWJfcmlnaHQge1xuICBsZWZ0OiAtMzJweDtcbiAgJjpiZWZvcmUge1xuICAgIHRvcDogMTBweDtcbiAgICBsZWZ0OiAyNnB4O1xuICB9XG59XG5cbi8qIFRvb2x0aXAgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLndwZS10b29sdGlwLXJlc3VsdF9wcmltZS10aXRsZSB7XG4gIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWJvbGQ7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4ud3BlLXRvb2x0aXAtcmVzdWx0X21ldGEge1xuICBjb2xvcjogdGludCgkYmFzZS1jb2xvciwgNDglKTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogKCRnbG9iYWwtc3BhY2luZyAvIDQpO1xufSIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBMZWdlbmRzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4ud3BlLWxlZ2VuZCB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuXG4ud3BlLWxlZ2VuZF9saXN0IHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLndwZS1sZWdlbmRfZW50cnkge1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luOiAwIDE2cHggNHB4IDA7XG4gIGZvbnQtc2l6ZTogMDtcbiAgPiAqIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuICAvLyAmOmxhc3QtY2hpbGQge1xuICAvLyAgIG1hcmdpbi1yaWdodDogMDtcbiAgLy8gfVxufVxuXG4ud3BlLWxlZ2VuZF9sYWJlbCB7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGNvbG9yOiB0aW50KCRiYXNlLWNvbG9yLCA0OCUpO1xufVxuXG4ud3BlLWxlZ2VuZF9zd2F0Y2gge1xuICB3aWR0aDogMTJweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgJi53cGUtbGVnZW5kX3N3YXRjaC1hbHQge1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxufVxuXG4iLCIkYm9yZGVyOiAkYmxhY2s7XG4kYm9yZGVyX292ZXI6ICRibGFjaztcbiRib3JkZXJfYWN0aXZlOiAkYmxhY2s7XG4kYm9yZGVyX3JhZGl1czogNHB4O1xuJHRvZ2dsZV9iZzogI0ZGRjtcbiR0b2dnbGVfb3ZlcjogI0YxRjFGMTtcbiR0b2dnbGVfYWN0aXZlOiAjRDVENUQ1O1xuXG5AbWl4aW4gYm9yZGVyX3J0cmFucygkYykge1xuICBib3JkZXItY29sb3I6ICRjIHRyYW5zcGFyZW50ICRjICRjO1xufVxuXG5AbWl4aW4gYnRuX2xpc3QoJHBsYWNlbWVudCkge1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIC4ycyxcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvciAuMnM7XG5cbiAgQGlmICRwbGFjZW1lbnQgPT0gJ2xlZnQnIHtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkYm9yZGVyX3JhZGl1cztcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkYm9yZGVyX3JhZGl1cztcbiAgICBAaW5jbHVkZSBib3JkZXJfcnRyYW5zKCRib3JkZXIpO1xuICAgICY6aG92ZXIgeyBAaW5jbHVkZSBib3JkZXJfcnRyYW5zKCRib3JkZXJfb3Zlcik7IH1cbiAgfVxuXG4gIEBlbHNlIGlmICRwbGFjZW1lbnQgPT0gJ2xhc3QnIHtcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJGJvcmRlcl9yYWRpdXM7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRib3JkZXJfcmFkaXVzO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlcjtcbiAgICAmOmhvdmVyIHsgYm9yZGVyLWNvbG9yOiAkYm9yZGVyX292ZXI7IH1cbiAgfVxuXG4gIEBlbHNlIHtcbiAgICBAaW5jbHVkZSBib3JkZXJfcnRyYW5zKCRib3JkZXIpO1xuICAgICY6aG92ZXIgeyBAaW5jbHVkZSBib3JkZXJfcnRyYW5zKCRib3JkZXJfb3Zlcik7IH1cbiAgfVxufVxuXG4uYi10b2dnbGUsXG4uYi1wYXJ0eS10b2dnbGUge1xuICBAaW5jbHVkZSBtZWRpYShzbS11cCkge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cbn1cblxuLmItdG9nZ2xlX29wdGlvbixcbi5iLXBhcnR5LXRvZ2dsZV9vcHRpb24ge1xuICBiYWNrZ3JvdW5kOiAkdG9nZ2xlX2JnO1xuICBjb2xvcjogJGJsYWNrO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgaGVpZ2h0OiAzNnB4O1xuICBvdXRsaW5lOiBub25lO1xuICBwYWRkaW5nOiA2cHggMTRweDtcbiAgQGluY2x1ZGUgYnRuX2xpc3QoJ2NlbnRlcicpO1xuICAmOmZpcnN0LWNoaWxkIHsgQGluY2x1ZGUgYnRuX2xpc3QoJ2xlZnQnKTsgfVxuICAmOmxhc3QtY2hpbGQgeyBAaW5jbHVkZSBidG5fbGlzdCgnbGFzdCcpOyB9XG4gICY6aG92ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9nZ2xlX292ZXI7IH1cbn1cblxuLmItdG9nZ2xlX29wdGlvbl9hY3RpdmUsXG4uYi1wYXJ0eS10b2dnbGVfb3B0aW9uX2FjdGl2ZSB7XG4gIGJhY2tncm91bmQ6ICR0b2dnbGVfYWN0aXZlO1xuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkdG9nZ2xlX2FjdGl2ZTtcbiAgfVxufVxuIiwiLy8gV2FQbyBhcHBsaWVzIHRoZXNlIHRvIGJvZHksIHVzZWZ1bCB0byBrZWVwIGhlcmUuXG4kYmxhY2s6ICMyQTJBMkE7XG4kd2hpdGU6ICNGN0Y3Rjc7XG5cbkBtaXhpbiBjYW4tY2xpY2soJGMpIHtcbiAgY29sb3I6ICRjO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGNvbG9yIC4ycztcbiAgb3V0bGluZTogbm9uZTtcbiAgJjpob3ZlciB7XG4gICAgY29sb3I6IGxpZ2h0ZW4oJGMsIDE1JSk7XG4gIH1cbn1cbiIsIi8vIGh0dHA6Ly96ZXJvc2l4dGhyZWUuc2UvOC1zYXNzLW1peGlucy15b3UtbXVzdC1oYXZlLWluLXlvdXItdG9vbGJveC9cbkBtaXhpbiBrZXlmcmFtZXMoJGFuaW1hdGlvbi1uYW1lKSB7XG4gIEBrZXlmcmFtZXMgI3skYW5pbWF0aW9uLW5hbWV9IHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gYW5pbWF0aW9uKCRzdHIpIHtcbiAgYW5pbWF0aW9uOiAjeyRzdHJ9O1xufVxuIiwiQGltcG9ydCBcIi4uL21peGlucy9hbmltYXRpb25cIjtcblxuJHN0cm9rZS1yZWd1bGFyOiBkYXJrZW4oJHdoaXRlLCAyMCUpO1xuJHN0cm9rZS1oaWdobGlnaHQ6ICNGRkY7XG5cbkBpbmNsdWRlIGtleWZyYW1lcyhwdWxzZSkge1xuICAwJSB7XG4gICAgc3Ryb2tlLW9wYWNpdHk6IDAuNDU7XG4gIH1cbiAgMjUlIHtcbiAgICBzdHJva2Utb3BhY2l0eTogMC43O1xuICB9XG4gIDc1JSB7XG4gICAgc3Ryb2tlLW9wYWNpdHk6IDAuNztcbiAgfVxuICAxMDAlIHtcbiAgICBzdHJva2Utb3BhY2l0eTogMC40NTtcbiAgfVxufVxuXG4ud3BlLW1hcCB7XG4gIHBhdGgge1xuICAgIHRyYW5zaXRpb246IGZpbGwgLjJzO1xuICB9XG59XG5cbi8qIE1hcCBsYXllcnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi53cGUtbWFwX2JvdW5kYXJpZXMge1xuICBmaWxsOiBub25lO1xuICBzdHJva2U6IGRhcmtlbigkd2hpdGUsIDE1JSk7XG59XG5cbi8vIHN2ZyA8Y2lyY2xlPiBlbGVtZW50XG4ud3BlLW1hcF9jaXR5LW1hcmtlcnMge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgZmlsbDogIzAwMDtcbiAgZmlsbC1vcGFjaXR5OiAuOTtcbn1cblxuLy8gc3ZnIDx0ZXh0PiBlbGVtZW50XG4ud3BlLW1hcF9jaXR5LWxhYmVscyB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBmaWxsOiAjMTExO1xuICB0ZXh0LXNoYWRvdzogMnB4IDFweCA4cHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xuICBmb250LXNpemU6IDAuODc1ZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi53cGUtbWFwX3NpemUtb2YtbGVhZHtcbiAgb3BhY2l0eTogLjg7XG59XG5cbi53cGUtbWFwX2hpZ2hsaWdodCB7XG4gIGZpbGw6IG5vbmU7XG4gIHN0cm9rZTogbm9uZTtcbn1cblxuLndwZS1tYXBfaGlnaGxpZ2h0X2FjdGl2ZSB7XG4gIHN0cm9rZTogJHN0cm9rZS1oaWdobGlnaHQ7XG4gIEBpbmNsdWRlIGFuaW1hdGlvbigncHVsc2UgNHMgaW5maW5pdGUnKTtcbn1cblxuXG4ud3BlLWNhcmQgc3ZnIGltYWdlIHsgXG4gIG9wYWNpdHk6IC40OyBcbn1cblxuXG4vKiBNYXAgYWN0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLndwZS1tYXBfYWN0aW9ucyB7XG4gIEBleHRlbmQgLmNsZWFyZml4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIC0xcHggMCAwICRiYXNlLWFscGhhLWNvbG9yO1xuICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsLXNwYWNpbmc7XG59XG5cbi53cGUtbWFwX3ZpZXdzLW1lbnUge1xuICBmbG9hdDogbGVmdDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xufVxuXG4ud3BlLW1hcF92aWV3cy1tZW51X2xhYmVsLFxuLndwZS1tYXBfdmlld3MtbWVudV9vcHRpb24ge1xuICBAZXh0ZW5kIC5oZWFkaW5nLWFsdDtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1yaWdodDogKCRnbG9iYWwtc3BhY2luZyAvIDIpO1xufVxuXG4ud3BlLW1hcF92aWV3cy1tZW51X2xhYmVsIHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbiAgcGFkZGluZzogKCRnbG9iYWwtc3BhY2luZyAvIDIpIDA7XG59XG5cbi53cGUtbWFwX3ZpZXdzLW1lbnVfb3B0aW9uIGEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAoJGdsb2JhbC1zcGFjaW5nIC8gMikgMDtcbiAgJiwgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxufVxuXG4ud3BlLW1hcF92aWV3cy1tZW51X29wdGlvbiBhIHtcbiAgJjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBiYWNrZ3JvdW5kOiB0aW50KCRiYXNlLWNvbG9yLCA2OCUpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDApO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjI0cyBlYXNlIDBzO1xuICB9XG59XG5cbi53cGUtbWFwX3ZpZXdzLW1lbnVfb3B0aW9uIGE6aG92ZXIsXG4ud3BlLW1hcF92aWV3cy1tZW51X29wdGlvbl9hY3RpdmUgYSB7XG4gICY6YWZ0ZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9IFxufVxuXG4ud3BlLW1hcF92aWV3cy1tZW51X29wdGlvbl9hY3RpdmUgYSB7XG4gICYsICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGNvbG9yOiByZ2JhKCRiYXNlLWZvbnQtY29sb3IsIDEpO1xuICB9XG4gICY6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6ICRiYXNlLWZvbnQtY29sb3I7XG4gIH0gXG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQmFzZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBDb21tb24gZWxlbWVudHMgc3R5bGVzXG4gKi9cblxuLmhlYWRpbmctYWx0IHtcbiAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtbGlnaHQ7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiByZ2JhKCRiYXNlLWZvbnQtY29sb3IsIDAuNDgpO1xufVxuXG4vKiB0ZW1wICovXG5cbiNlbGVjdGlvbnMtY29udGVudCxcbiNlbGVjdGlvbnMtY29udGVudC1zdGF0ZS1jYXJkIHtcbiAgcGFkZGluZzogMTZweCAhaW1wb3J0YW50O1xufVxuXG5cbi8qIEJhZGdlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLndwZS1iYWRnZSB7XG4gIEBleHRlbmQgLmFudGlhbGlhc2VkO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICBiYWNrZ3JvdW5kOiByZ2JhKCRiYXNlLWNvbG9yLCAwLjQ4KTtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHBhZGRpbmc6IDFweCA0cHg7XG4gIHN1cCB7XG4gICAgdmVydGljYWwtYWxpZ246IC0ycHg7XG4gIH1cbn1cblxuLyogQW5pbWF0aW9uXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5AaW5jbHVkZSBrZXlmcmFtZXMoc3Bpbi1jKSB7XG4gIGZyb20geyBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKDBkZWcpKTsgfVxuICAgIHRvIHsgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgzNjBkZWcpKTsgfVxufSIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBVdGlsc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogRm9udCBzbW9vdGhpbmdcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQW50aWFsaWFzZWQgZm9udCBzbW9vdGhpbmcgd29ya3MgYmVzdCBmb3IgbGlnaHQgdGV4dCBvbiBhIGRhcmsgYmFja2dyb3VuZC5cbiAqIEFwcGx5IHRvIHNpbmdsZSBlbGVtZW50cyBpbnN0ZWFkIG9mIGdsb2JhbGx5IHRvIGJvZHkuXG4gKiBOb3RlIHRoaXMgb25seSBhcHBsaWVzIHRvIHdlYmtpdC1iYXNlZCBkZXNrdG9wIGJyb3dzZXJzIGFuZCBGaXJlZm94IDI1IChhbmQgbGF0ZXIpIG9uIHRoZSBNYWMuXG4gKi9cblxuLmFudGlhbGlhc2VkIHtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbi8qIFRydW5jYXRlZCB0ZXh0XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udHJ1bmNhdGVkIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi8qIEhpZGRlbiBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKiBIaWRlIGZyb20gYm90aCBzY3JlZW5yZWFkZXJzIGFuZCBicm93c2VycyAqL1xuXG4uaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi8qIEhpZGUgb25seSB2aXN1YWxseSwgYnV0IGhhdmUgaXQgYXZhaWxhYmxlIGZvciBzY3JlZW5yZWFkZXJzICovXG5cbi52aXN1YWxseS1oaWRkZW4ge1xuICBib3JkZXI6IDAgbm9uZTtcbiAgY2xpcDogcmVjdCgwcHgsIDBweCwgMHB4LCAwcHgpO1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAtMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7XG59XG5cbi8qKlxuICogRXh0ZW5kcyB0aGUgLnZpc3VhbGx5LWhpZGRlbiBjbGFzcyB0byBhbGxvdyB0aGUgZWxlbWVudFxuICogdG8gYmUgZm9jdXNhYmxlIHdoZW4gbmF2aWdhdGVkIHRvIHZpYSB0aGUga2V5Ym9hcmRcbiAqL1xuXG4udmlzdWFsbHktaGlkZGVuLmZvY3VzYWJsZTphY3RpdmUsXG4udmlzdWFsbHktaGlkZGVuLmZvY3VzYWJsZTpmb2N1cyB7XG4gIGNsaXA6IGF1dG87XG4gIGhlaWdodDogYXV0bztcbiAgbWFyZ2luOiAwO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgd2lkdGg6IGF1dG87XG59XG5cbi8qIFVuZG8gdmlzdWFsbHktaGlkZGVuICovXG5cbi52aXN1YWxseS1oaWRkZW4tdW5kbyB7XG4gIHBvc2l0aW9uOiBpbmhlcml0O1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgaGVpZ2h0OiBhdXRvO1xuICB3aWR0aDogYXV0bztcbiAgbWFyZ2luOiBhdXRvO1xufVxuXG4vKiBIaWRlIHZpc3VhbGx5IGFuZCBmcm9tIHNjcmVlbnJlYWRlcnMsIGJ1dCBtYWludGFpbiBsYXlvdXQgKi9cblxuLmludmlzaWJsZSB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuXG4vKiBDbGVhcmZpeFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmNsZWFyZml4IHtcbiAgJjpiZWZvcmUsXG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcgJztcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgfVxuICAmOmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuXG5cbi8qIERpc2FibGVkXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjQ4O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn0iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0= */
