/**
 * Breakpoints
 */
/**
 * Input capabilities
 */
/********************************************************
* Touch devices
********************************************************/
body {
  visibility: inherit;
}

/**
* Display a full-width photo with a white border
*/
#main-photo {
  display: inline-block;
  position: relative;
  margin-bottom: 8px;
  width: 100%;
}

#main-photo img {
  position: relative;
  display: block;
  width: 100%;
  height: auto;
}

#main-photo .image-border {
  display: block;
  position: absolute;
  left: 10px;
  top: 10px;
  right: 10px;
  bottom: 10px;
  border: 1px solid white;
}

/*****************************************************************
 Overview Map and summary
*****************************************************************/
#summary {
  padding: 0;
  position: relative;
}

#summary .map-button {
  background-color: #2f2f2f;
  border-radius: 4px;
  z-index: 0;
  position: relative;
  background-color: transparent;
  z-index: 9000;
  position: absolute;
  top: -8px;
  height: 20px;
  width: 140px;
  padding: 4px;
  text-align: center;
  overflow: hidden;
}

#summary .map-button, #summary .map-button a {
  color: white;
}

#summary .map-button:before {
  content: '';
  position: absolute;
  width: 100%;
  height: 18px;
  left: 0;
  top: 0;
  background: linear-gradient(#717171, #424141);
  border-radius: 4px 4px 0 0;
  z-index: -1;
}

#summary .map-button:after {
  content: '';
  position: absolute;
  width: 100%;
  height: 18px;
  left: 0;
  top: 18px;
  background: linear-gradient(#404040, #2f2f2f);
  z-index: -1;
}

#summary .map-button > * {
  z-index: 2;
}

body:not(.fullscreen) #summary .map-button > * {
  position: relative;
}

#summary .map-button:before, #summary .map-button:after {
  z-index: 901;
}

#summary .map-button > * {
  z-index: 902;
}

#summary .map-button a {
  text-decoration: none;
}

#summary .map-button a:hover {
  text-decoration: underline;
}

#summary .map-button#full-screen-map {
  right: 0;
  border-radius: 0 0 0 4px;
  display: none;
}

#caveats {
  font-weight: bold;
  line-height: 16px;
}

#summary-container {
  background-color: #2f2f2f;
  border-radius: 4px;
  z-index: 0;
  position: relative;
  padding: 8px;
}

#summary-container, #summary-container a {
  color: white;
}

#summary-container:before {
  content: '';
  position: absolute;
  width: 100%;
  height: 18px;
  left: 0;
  top: 0;
  background: linear-gradient(#717171, #424141);
  border-radius: 4px 4px 0 0;
  z-index: -1;
}

#summary-container:after {
  content: '';
  position: absolute;
  width: 100%;
  height: 18px;
  left: 0;
  top: 18px;
  background: linear-gradient(#404040, #2f2f2f);
  z-index: -1;
}

#summary-container > * {
  z-index: 2;
}

body:not(.fullscreen) #summary-container > * {
  position: relative;
}

#map-container {
  background: white;
}

@media screen and (min-width: 37.5em) {
  #map-container {
    margin-bottom: 8px;
  }
}

#map-container .map {
  width: 520px;
  max-width: 100% !important;
  height: 440px;
}

body.walk-ready #map-container .map {
  background: none;
}

@media screen and (max-width: 59.99em) {
  #map-container .map {
    width: inherit !important;
  }
  #map-container .map, #map-container .map * {
    pointer-events: none !important;
  }
}

#map-container #osm-map a {
  color: black !important;
}

/*****************************************************************
 Directions
*****************************************************************/
#toggle-directions {
  margin-top: 16px;
  text-align: center;
  display: none;
  /* disabled as too many reports of this being abused */
}

@media screen and (min-width: 37.5em) {
  #toggle-directions {
    display: none;
  }
}

#toggle-directions [data-role="button"] {
  background-color: #2f2f2f;
  border-radius: 4px;
  z-index: 0;
  position: relative;
  box-shadow: 4px 4px 4px #bbb;
  color: #eee;
}

#toggle-directions [data-role="button"], #toggle-directions [data-role="button"] a {
  color: white;
}

#toggle-directions [data-role="button"]:before {
  content: '';
  position: absolute;
  width: 100%;
  height: 18px;
  left: 0;
  top: 0;
  background: linear-gradient(#717171, #424141);
  border-radius: 4px 4px 0 0;
  z-index: -1;
}

#toggle-directions [data-role="button"]:after {
  content: '';
  position: absolute;
  width: 100%;
  height: 18px;
  left: 0;
  top: 18px;
  background: linear-gradient(#404040, #2f2f2f);
  z-index: -1;
}

#toggle-directions [data-role="button"] > * {
  z-index: 2;
}

body:not(.fullscreen) #toggle-directions [data-role="button"] > * {
  position: relative;
}

#toggle-directions [data-role="button"] a, #toggle-directions [data-role="button"] strong {
  color: white;
}

#toggle-directions [data-role="button"] h2 {
  border: none;
  margin: 0;
}

#toggle-directions [data-role="button"] * {
  color: white !important;
}

#toggle-directions [data-role="button"] i {
  position: absolute !important;
}

#toggle-directions [data-role="button"] span {
  margin-left: 16px;
}

#directions {
  margin-top: 32px;
  clear: left;
}

@media screen and (max-width: 37.49em) {
  #directions {
    display: none;
  }
}

#directions .map-only {
  display: none;
}

#directions span.intro {
  display: none;
}

#directions h2 {
  border-bottom: 1px solid #aaa;
}

#directions > ol {
  margin-top: 16px;
  padding-left: 24px;
}

#directions > ol > li {
  margin-bottom: 16px;
}

#directions > ol > li > p {
  display: inline;
  /* only split into paragraphs in the app, not in the PDFs */
}

#directions .quote {
  border: 1px solid #ccc;
  background: white;
  font-family: Palatino, serif;
  font-size: 14pt;
  border-radius: 4px;
  padding: 4px 12px 12px 12px;
  margin-left: 16px;
  margin-right: 16px;
}

#directions .quote:before {
  content: '\201C';
  font-family: Times New Roman;
  font-size: 24pt;
  color: #ccc;
  padding-right: 8px;
}

.feature-box {
  border: 1px solid #ccc;
  border-radius: 4px;
  background: #eee;
  padding: 8px;
  margin-top: 4px;
  margin-bottom: 4px;
  /*no gap at top of first p*/
  /*...but gap on first p between multiple divs in the feature box, to space them apart*/
  /*...but not the first one*/
  /*no gap at bottom of last p*/
}

.feature-box p:first-child {
  margin-top: 0;
}

.feature-box div p:first-child {
  margin-top: 8px;
}

.feature-box div:first-child p:first-child {
  margin-top: 0;
}

.feature-box p:last-child {
  margin-bottom: 0;
}

.feature-box ul > li {
  list-style-type: square;
}

.feature-box p.more-info {
  display: none;
}

.app-only {
  display: none;
}

#like_on_facebook {
  margin-top: 24px;
}

/*****************************************************************
 Post-print contribute popup
*****************************************************************/
@media screen and (min-width: 37.5em) {
  .contribute-popup .promo-container {
    float: left;
    max-width: 320px;
  }
  .contribute-popup .body {
    margin-left: 336px;
  }
}

@media screen and (max-width: 37.49em) {
  .contribute-popup {
    max-width: calc(100vw - 20px);
  }
  .contribute-popup .promo-container {
    max-width: 100%;
  }
}

.contribute-popup .promos {
  margin: 0 auto;
}

.contribute-popup h2 {
  margin-top: 0;
}

.contribute-popup .paypal-button {
  text-align: center;
  margin-bottom: 16px;
}

.contribute-popup .paypal-button form {
  display: inline;
}

.contribute-popup .disclaimer {
  clear: left;
  margin-top: 8px;
}

/*****************************************************************
 Pre-print buy walk popup
*****************************************************************/
@media screen and (min-width: 37.5em) {
  .buy-walk-popup .buy-app, .buy-pdf-popup .buy-app {
    background-image: url("/images/graphics/buy_app.jpg");
    background-repeat: no-repeat;
    margin-bottom: 64px;
  }
  .buy-walk-popup .buy-pdf, .buy-pdf-popup .buy-pdf {
    background-image: url("/images/graphics/buy_pdf_leaflets.png");
    background-repeat: no-repeat;
  }
  .buy-walk-popup .buy-app .content, .buy-walk-popup .buy-pdf .content, .buy-pdf-popup .buy-app .content, .buy-pdf-popup .buy-pdf .content {
    margin-left: 320px;
    min-height: 250px;
  }
  .buy-walk-popup .recommended, .buy-pdf-popup .recommended {
    background-image: url("/images/graphics/recommended.png");
    background-repeat: no-repeat;
    background-position: right top;
  }
}

@media screen and (max-width: 37.49em) {
  .buy-walk-popup, .buy-pdf-popup {
    max-width: calc(100vw - 100px);
  }
}

.buy-walk-popup .paypal-button, .buy-walk-popup .buy-button, .buy-pdf-popup .paypal-button, .buy-pdf-popup .buy-button {
  text-align: center;
  margin: 36px;
}

.buy-walk-popup .paypal-button form, .buy-pdf-popup .paypal-button form {
  display: inline;
}

/*****************************************************************
 Walk photos slideshow using lightgallery - walk leaf page
*****************************************************************/
/*
 * Lightgallery photo slideshow
 */
.lightgallery {
  position: relative;
}

.lightgallery.fullscreen {
  position: static !important;
}

.lightgallery.fullscreen .lightGallery-captions p {
  font-size: 16px !important;
}

.lightgallery:not(.fullscreen) .lg-next, .lightgallery:not(.fullscreen) .lg-prev {
  display: none;
}

.lightgallery .lightGallery-captions {
  position: relative;
  color: black !important;
  text-shadow: 0 0 1px rgba(0, 0, 0, 0.5);
}

.lightgallery .lightGallery-captions::before {
  content: '';
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  z-index: -1;
  border-radius: 4px;
  padding-bottom: 1px;
  background: white;
  opacity: 0.85;
}

body.col-dual #photos.lightgallery {
  width: 520px;
  height: 394px;
}

body.col-dual #photos.lightgallery:not(.fullscreen) .lg-container {
  width: 520px;
  height: 394px;
}

body.col-single #photos.lightgallery {
  width: auto;
  height: 0;
  padding-bottom: 75.7692307692%;
}

body.col-single #photos.lightgallery:not(.fullscreen) .lg-container {
  width: auto;
  height: 0;
  padding-bottom: 75.7692307692%;
}

#photos.lightgallery:after {
  display: none;
}

/*****************************************************************
 Walk location shown on outline map of Cornwall
*****************************************************************/
#outline-map {
  margin: 8px auto;
  position: relative;
  width: 320px;
  height: 320px;
}

#outline-map img {
  cursor: pointer;
}

#outline-map .indicator {
  position: absolute;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: red;
  box-shadow: 0 0 3px white;
  border: 1px solid white;
  transform: translate(-50%, -50%);
}

/**
 * Breakpoints
 */
/**
 * Input capabilities
 */
/********************************************************
* Touch devices
********************************************************/
body {
  visibility: inherit;
}

@media screen and (max-width: 59.99em) {
  #mysteries {
    padding-top: 24px;
  }
}

#mysteries img {
  width: 100%;
}

.col, .col * {
  visibility: hidden;
}

body.col-ready .col:after {
  display: none;
}

body.col-ready .col, body.col-ready .col * {
  visibility: visible;
}

body:not(.col-ready) .col {
  width: 100%;
}

body:not(.fullscreen) .col {
  position: relative;
}

.col::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -30px;
  margin-left: -30px;
  width: 50px;
  height: 50px;
  border-radius: 50px;
  border: 5px solid rgba(0, 0, 0, 0.25);
  border-top-color: black;
  animation: loading 1s ease infinite;
}

@keyframes loading {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

.col:after {
  visibility: visible;
}

.left.col {
  float: left;
}

.left.col .narrow.box {
  max-width: 536px;
}

.right.col {
  float: left;
  width: 376px;
}

.box[data-col-dual="right"] {
  padding-top: 4px;
}

body.col-single [data-role="button"]:not(.non-responsive) {
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
  color: #333 !important;
  background: #eee;
  border-color: #ddd;
  border-width: 1px;
  border-style: solid;
  border-radius: 5px;
  margin: .5em 0;
  padding: .7em 1em;
  display: inline-block;
  position: relative;
  overflow: hidden;
  white-space: nowrap;
  cursor: pointer;
  user-select: none;
  text-align: center;
  text-overflow: ellipsis;
  text-decoration: none;
  font-weight: bold;
  font-size: 16px;
}

body.col-single [data-role="button"]:not(.non-responsive):hover, body.col-single [data-role="button"]:not(.non-responsive):active {
  background: #e8f0ff;
}

body.col-single [data-role="button"]:not(.non-responsive)[data-icon] {
  padding-left: 32px;
  padding-right: 8px;
}

body.col-single [data-role="button"]:not(.non-responsive)[data-icon] i {
  top: 50%;
  transform: translateY(-50%);
  position: absolute;
  left: 8px;
}

body.col-single [data-role="button"]:not(.non-responsive).green {
  background: linear-gradient(to bottom, #8ddda0 0%, #3ddb8c 50%, #8ddda0 100%);
  border-color: #2b6b37;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
}

body.col-single [data-role="button"]:not(.non-responsive).green:hover, body.col-single [data-role="button"]:not(.non-responsive).green:active {
  background: linear-gradient(to bottom, #dcf4e1 0%, #3ddb8c 50%, #dcf4e1 100%);
}

body.col-single [data-role="button"]:not(.non-responsive).blue {
  background: linear-gradient(to bottom, #8dc0dd 0%, #3dacdb 50%, #8dc0dd 100%);
  border-color: #126167;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}

body.col-single [data-role="button"]:not(.non-responsive).blue:hover, body.col-single [data-role="button"]:not(.non-responsive).blue:active {
  background: linear-gradient(to bottom, #dce1f4 0%, #6eaceb 50%, #dce1f4 100%);
}

body.col-single [data-role="listview"]:not(.non-responsive) {
  background-color: #2f2f2f;
  border-radius: 4px;
  z-index: 0;
  position: relative;
  box-shadow: 4px 4px 4px #bbb;
  color: #eee;
  padding: 0 !important;
  list-style: none;
}

body.col-single [data-role="listview"]:not(.non-responsive), body.col-single [data-role="listview"]:not(.non-responsive) a {
  color: white;
}

body.col-single [data-role="listview"]:not(.non-responsive):before {
  content: '';
  position: absolute;
  width: 100%;
  height: 18px;
  left: 0;
  top: 0;
  background: linear-gradient(#717171, #424141);
  border-radius: 4px 4px 0 0;
  z-index: -1;
}

body.col-single [data-role="listview"]:not(.non-responsive):after {
  content: '';
  position: absolute;
  width: 100%;
  height: 18px;
  left: 0;
  top: 18px;
  background: linear-gradient(#404040, #2f2f2f);
  z-index: -1;
}

body.col-single [data-role="listview"]:not(.non-responsive) > * {
  z-index: 2;
}

body:not(.fullscreen) body.col-single [data-role="listview"]:not(.non-responsive) > * {
  position: relative;
}

body.col-single [data-role="listview"]:not(.non-responsive) a, body.col-single [data-role="listview"]:not(.non-responsive) strong {
  color: white;
}

body.col-single [data-role="listview"]:not(.non-responsive) h2 {
  border: none;
  margin: 0;
}

body.col-single [data-role="listview"]:not(.non-responsive) > li {
  display: block;
  position: relative;
  overflow: visible;
  margin: 0;
  padding: 8px 16px 8px 8px !important;
  list-style: none;
  font-weight: bold;
  border-color: #ddd;
  border-style: solid;
  border-width: 1px 1px 0 1px;
  font-size: 16px !important;
}

@media screen and (max-width: 37.49em) {
  body.col-single [data-role="listview"]:not(.non-responsive) > li {
    font-size: 14px !important;
  }
}

body.col-single [data-role="listview"]:not(.non-responsive) > li a {
  margin: 0;
  text-align: left;
  text-decoration: none;
  overflow: hidden;
  font-size: 16px !important;
}

@media screen and (max-width: 37.49em) {
  body.col-single [data-role="listview"]:not(.non-responsive) > li a {
    font-size: 14px !important;
  }
}

body.col-single [data-role="listview"]:not(.non-responsive) > li a:after {
  content: '>';
  position: absolute;
  right: 4px;
  font-size: 16px !important;
}

@media screen and (max-width: 37.49em) {
  body.col-single [data-role="listview"]:not(.non-responsive) > li a:after {
    font-size: 14px !important;
  }
}

body.col-single :not(.non-responsive):not([data-role]):not([role]) > li > a:only-child {
  padding: 8px 0;
  display: inline-block;
}

@media screen and (min-width: 46.25em) {
  body.col-single .right.col {
    width: calc(100% + 8px) !important;
    margin: 0 -4px;
  }
  body.col-single .right.col .box {
    width: calc(50% - 16px);
    margin: 0 8px;
  }
  body.col-single .right.col .box:nth-child(odd) {
    float: right;
  }
  body.col-single .right.col .box:nth-child(even) {
    float: left;
  }
}

body.col-single [data-role="listview"] {
  margin: 16px 0 0 0 !important;
}

body.col-single .left.col, body.col-single .right.col {
  width: 100%;
}

body.col-dual .left.col {
  width: 536px;
  margin-right: 16px;
}

.box {
  order: 100;
}

[data-role="listview"] > li {
  padding: 2px 0;
}

/******************************************************
* Promos
******************************************************/
.promo-container {
  margin: 0 auto;
  width: 100%;
  /******************************************************
* Slick Carousel default theme overrides
******************************************************/
}

.promo-container .slick-prev,
.promo-container .slick-next {
  z-index: 1;
  width: auto !important;
  height: auto !important;
}

.promo-container .slick-prev:before,
.promo-container .slick-next:before {
  background-color: black;
  border-radius: 20px;
}

.promo-container .slick-prev {
  left: 16px;
}

.promo-container .slick-prev:before {
  content: "\f104";
  font: 40px/1 'FontAwesome';
  padding: 0 16px 2px 12px;
}

.promo-container .slick-next {
  right: 16px;
  text-align: right;
}

.promo-container .slick-next:before {
  content: "\f105";
  font: 40px/1 'FontAwesome';
  padding: 0 12px 2px 16px;
}

.promo-container .slick-prev:hover:before,
.promo-container .slick-next:hover:before {
  color: #7e7e7e;
}

@media (pointer: coarse) and (hover: none) {
  .promo-container .slick-prev:hover:before,
  .promo-container .slick-next:hover:before {
    color: white;
    opacity: 0.75;
  }
}

@media screen and (max-width: 48.615em) {
  .promo-container .slick-prev:hover:before,
  .promo-container .slick-next:hover:before {
    color: white;
    opacity: 0.75;
  }
}

.promo-container .slick-list {
  margin: 0 -8px;
}

.promo-container .slick-slide {
  margin: 0 8px;
}

body:not(.fullscreen) .promo-container:not(.loaded), .promo-container:not(.displayed) {
  position: relative;
}

.promo-container:not(.loaded)::after, .promo-container:not(.displayed)::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -30px;
  margin-left: -30px;
  width: 50px;
  height: 50px;
  border-radius: 50px;
  border: 5px solid rgba(0, 0, 0, 0.25);
  border-top-color: black;
  animation: loading 1s ease infinite;
}

@keyframes loading {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

.promo-container:not(.displayed) .slick-arrow {
  display: none !important;
}

body:not(.col-ready) .promo-container .promo,
.promo-container:not(.loaded) .promo {
  display: none !important;
}

.promo-container .promos {
  padding: 8px 0 4px 0;
}

@media screen and (max-width: 22.75em) {
  .promo-container .promos {
    padding: 0;
  }
}

.promo-container .promo {
  position: relative;
  text-align: center;
}

.promo-container .promo .wrapper {
  display: inline-block;
  position: relative;
  left: -1px;
  border: 1px solid #999999;
}

.promo-container .promo img {
  box-shadow: 4px 4px 4px #bbb;
  margin: 0 auto;
  width: 100%;
}

.promo-container .promo .title, .promo-container .promo .message {
  position: absolute;
  width: 100%;
  left: 0;
}

.promo-container .promo .title h2, .promo-container .promo .title p, .promo-container .promo .message h2, .promo-container .promo .message p {
  color: white;
  margin: 0;
  z-index: 2;
  background-color: rgba(0, 0, 0, 0.5);
  text-shadow: 0 0 1px black;
}

.promo-container .promo .title {
  top: 0;
}

.promo-container .promo .title h2 {
  font-size: 14pt;
  border: none;
  padding: 2px;
}

.promo-container .promo .message {
  bottom: 0;
}

.promo-container .promo .message p {
  padding: 4px 0 4px 4px;
  font-size: 10pt;
  text-align: left;
}

/*****************************************************************
 Box layout
*****************************************************************/
.box {
  margin-bottom: 16px;
}

@media screen and (min-width: 60em) {
  body:not(.fullscreen) .box {
    position: relative;
  }
  .box.shaded {
    background-color: #2f2f2f;
    border-radius: 4px;
    z-index: 0;
    position: relative;
    box-shadow: 4px 4px 4px #bbb;
    color: #eee;
    padding: 8px;
  }
  .box.shaded, .box.shaded a {
    color: white;
  }
  .box.shaded:before {
    content: '';
    position: absolute;
    width: 100%;
    height: 18px;
    left: 0;
    top: 0;
    background: linear-gradient(#717171, #424141);
    border-radius: 4px 4px 0 0;
    z-index: -1;
  }
  .box.shaded:after {
    content: '';
    position: absolute;
    width: 100%;
    height: 18px;
    left: 0;
    top: 18px;
    background: linear-gradient(#404040, #2f2f2f);
    z-index: -1;
  }
  .box.shaded > * {
    z-index: 2;
  }
  body:not(.fullscreen) .box.shaded > * {
    position: relative;
  }
  .box.shaded a, .box.shaded strong {
    color: white;
  }
  .box.shaded h2 {
    border: none;
    margin: 0;
  }
  .box > p {
    margin: 0;
  }
}

body:not(.fullscreen) .box.always {
  position: relative;
}

.box.always.shaded {
  background-color: #2f2f2f;
  border-radius: 4px;
  z-index: 0;
  position: relative;
  box-shadow: 4px 4px 4px #bbb;
  color: #eee;
  padding: 8px;
}

.box.always.shaded, .box.always.shaded a {
  color: white;
}

.box.always.shaded:before {
  content: '';
  position: absolute;
  width: 100%;
  height: 18px;
  left: 0;
  top: 0;
  background: linear-gradient(#717171, #424141);
  border-radius: 4px 4px 0 0;
  z-index: -1;
}

.box.always.shaded:after {
  content: '';
  position: absolute;
  width: 100%;
  height: 18px;
  left: 0;
  top: 18px;
  background: linear-gradient(#404040, #2f2f2f);
  z-index: -1;
}

.box.always.shaded > * {
  z-index: 2;
}

body:not(.fullscreen) .box.always.shaded > * {
  position: relative;
}

.box.always.shaded a, .box.always.shaded strong {
  color: white;
}

.box.always.shaded h2 {
  border: none;
  margin: 0;
}

.box.always > p {
  margin: 0;
}

.box h2 {
  font-weight: normal;
  font-size: 16pt;
}

@media screen and (max-width: 59.99em) {
  .box h2 {
    margin-top: 0;
  }
}

.box ul {
  padding-left: 16px;
}

/*****************************************************************
 Single column box order
*****************************************************************/
#buy {
  order: 1;
}

#app-ad {
  order: 2;
}

#summary {
  order: 3;
}

#stats {
  order: 4;
}

#location {
  order: 5;
}

#caveats {
  order: 6;
}

#dogs {
  order: 7;
}

#photos {
  order: 8;
}

#highlights {
  order: 9;
}

#walk-reviews {
  order: 10;
}

#os_maps {
  order: 11;
}

#links {
  order: 12;
}

/*****************************************************************
 Buy
*****************************************************************/
body:not(.accounts-enabled) #buy {
  display: none;
}

#buy, #buy [class*='status-'] {
  display: none;
}

#buy[class*='status-'],
#buy.status-signed-out .status-signed-out,
#buy.status-in-basket .status-in-basket,
#buy.status-owned .status-owned,
#buy.status-available .status-available,
#buy.status-error .status-error {
  display: block;
}

#buy [role="button"] {
  display: table;
  cursor: pointer;
  text-decoration: underline;
  margin-top: 8px;
}

@media (pointer: coarse) and (hover: none) {
  #buy [role="button"] {
    text-decoration: inherit;
  }
}

@media screen and (max-width: 48.615em) {
  #buy [role="button"] {
    text-decoration: inherit;
  }
}

#buy [role="button"]:first-child {
  margin-top: 0;
}

/*****************************************************************
 Social bookmarks
*****************************************************************/
#walk_sharing {
  float: right;
  margin-top: 16px;
  margin-right: 12px;
}

@media screen and (max-width: 59.99em) {
  #walk_sharing {
    display: none;
  }
}

/*****************************************************************
 Overview
*****************************************************************/
@media screen and (max-width: 37.49em) {
  #overview {
    margin-bottom: 16px;
  }
  body:not(.fullscreen) #overview {
    position: relative;
  }
  #overview.shaded {
    background-color: #2f2f2f;
    border-radius: 4px;
    z-index: 0;
    position: relative;
    box-shadow: 4px 4px 4px #bbb;
    color: #eee;
    padding: 8px;
  }
  #overview.shaded, #overview.shaded a {
    color: white;
  }
  #overview.shaded:before {
    content: '';
    position: absolute;
    width: 100%;
    height: 18px;
    left: 0;
    top: 0;
    background: linear-gradient(#717171, #424141);
    border-radius: 4px 4px 0 0;
    z-index: -1;
  }
  #overview.shaded:after {
    content: '';
    position: absolute;
    width: 100%;
    height: 18px;
    left: 0;
    top: 18px;
    background: linear-gradient(#404040, #2f2f2f);
    z-index: -1;
  }
  #overview.shaded > * {
    z-index: 2;
  }
  body:not(.fullscreen) #overview.shaded > * {
    position: relative;
  }
  #overview.shaded a, #overview.shaded strong {
    color: white;
  }
  #overview.shaded h2 {
    border: none;
    margin: 0;
  }
  #overview > p {
    margin: 0;
  }
  #overview #main-photo {
    max-width: 100% !important;
    margin-bottom: 8px;
  }
  #overview #main-photo .image-border {
    display: none;
  }
}

@media screen and (min-width: 37.5em) {
  #overview #main-photo {
    margin-bottom: 12px;
  }
  #overview #short-description {
    display: none;
  }
}

/*****************************************************************
 App intro shown for new users
*****************************************************************/
.app-formats {
  display: table;
  margin: 0 auto;
  width: 100%;
}

@media screen and (min-width: 60em) {
  .app-formats .app-button {
    display: none !important;
  }
}

@media screen and (max-width: 59.99em) {
  .app-formats .text {
    display: none !important;
  }
}

@media screen and (min-width: 37.5em) and (max-width: 59.99em) {
  .app-formats .icon {
    visibility: hidden;
  }
}

@media screen and (max-width: 37.49em) {
  .app-formats {
    display: block;
    width: 100%;
  }
  .app-formats .icon {
    display: none !important;
  }
}

.app-formats > div.store-link {
  display: table-cell;
}

.app-formats > div.store-link .inner {
  left: 50%;
  transform: translateX(-50%);
  position: relative;
  width: 98%;
  width: calc(100% - 12px);
  border-radius: 10px;
  display: table;
  table-layout: fixed;
}

@media screen and (min-width: 37.5em) {
  .app-formats > div.store-link .inner {
    margin: 8px 0 0 0;
    padding: 8px 0 4px 0;
    border: 1px solid #aaaaaa;
  }
}

@media screen and (min-width: 37.5em) and (max-width: 59.99em) {
  .app-formats > div.store-link .inner {
    position: relative;
  }
}

@media screen and (min-width: 37.5em) and (max-width: 46.24em) {
  .app-formats > div.store-link .inner {
    padding: 4px 0 8px 0;
  }
}

@media screen and (min-width: 60em) {
  .app-formats > div.store-link:hover {
    cursor: pointer;
  }
  .app-formats > div.store-link:hover a {
    text-decoration: underline;
  }
}

.app-formats > div.store-link.ios .icon {
  padding-left: 42px;
}

@media screen and (min-width: 46.25em) {
  .app-formats > div.store-link.android .icon img {
    margin-left: 12px;
  }
}

.app-formats > div.store-link.android .icon {
  padding-left: 24px !important;
}

.app-formats > div.store-link .inner > div {
  display: table-cell;
  vertical-align: middle;
}

@media screen and (max-width: 46.24em) {
  .app-formats > div.store-link .inner > div {
    display: block;
  }
}

.app-formats > div.store-link .inner > div.icon {
  text-align: left;
  padding-top: 4px;
  padding-bottom: 4px;
  padding-right: 16px;
}

@media screen and (max-width: 59.99em) {
  .app-formats > div.store-link .inner > div.icon {
    display: none;
  }
}

.app-formats > div.store-link .inner > div.text {
  text-align: center;
  font-size: 17px;
  font-variant: small-caps;
  color: white;
}

.app-formats > div.store-link .inner > div.text a {
  color: white;
  text-decoration: none;
}

.app-formats > div.store-link .inner > div.qr {
  text-align: right;
  padding-left: 18px;
  padding-right: 8px;
}

@media screen and (max-width: 46.24em) {
  .app-formats > div.store-link .inner > div.qr {
    text-align: center;
  }
}

@media screen and (max-width: 37.49em) {
  .app-formats > div.store-link .inner > div.qr {
    display: none !important;
  }
}

.app-formats > div.store-link .inner > div.qr img {
  max-width: 100px;
}

@media screen and (max-width: 59.99em) {
  .app-formats > div.store-link .inner > div.qr img {
    width: 100%;
  }
}

@media screen and (min-width: 46.25em) and (max-width: 59.99em) {
  .app-formats > div.store-link .inner > div.app-button {
    top: 50%;
    transform: translateY(-50%);
    position: absolute;
    left: 8px;
    text-align: left;
  }
}

@media screen and (max-width: 46.24em) {
  .app-formats > div.store-link .inner > div.app-button {
    text-align: center;
  }
}

.app-formats > div.store-link .inner > div.app-button a {
  padding-left: 42px;
}

@media screen and (max-width: 37.49em) {
  .app-formats > div.store-link .inner > div.app-button a {
    margin: 12px 0 0 0;
  }
}

#app-intro {
  background-color: #131;
  border-radius: 4px;
  z-index: 0;
  position: relative;
  /*
 * Responsive slideshow widget using Slick carousel
 */
  /******************************************************
* Slick Carousel default theme overrides
******************************************************/
  display: none;
  padding: 4px 0 0 0;
  margin-bottom: 16px;
}

#app-intro, #app-intro a {
  color: white;
}

#app-intro:before {
  content: '';
  position: absolute;
  width: 100%;
  height: 18px;
  left: 0;
  top: 0;
  background: linear-gradient(#2e802e, #174517);
  border-radius: 4px 4px 0 0;
  z-index: -1;
}

#app-intro:after {
  content: '';
  position: absolute;
  width: 100%;
  height: 18px;
  left: 0;
  top: 18px;
  background: linear-gradient(#184719, #113311);
  z-index: -1;
}

#app-intro > * {
  z-index: 2;
}

body:not(.fullscreen) #app-intro > * {
  position: relative;
}

#app-intro .slick-prev,
#app-intro .slick-next {
  z-index: 1;
  width: auto !important;
  height: auto !important;
}

#app-intro .slick-prev:before,
#app-intro .slick-next:before {
  background-color: black;
  border-radius: 20px;
}

#app-intro .slick-prev {
  left: 16px;
}

#app-intro .slick-prev:before {
  content: "\f104";
  font: 40px/1 'FontAwesome';
  padding: 0 16px 2px 12px;
}

#app-intro .slick-next {
  right: 16px;
  text-align: right;
}

#app-intro .slick-next:before {
  content: "\f105";
  font: 40px/1 'FontAwesome';
  padding: 0 12px 2px 16px;
}

#app-intro .slick-prev:hover:before,
#app-intro .slick-next:hover:before {
  color: #7e7e7e;
}

@media (pointer: coarse) and (hover: none) {
  #app-intro .slick-prev:hover:before,
  #app-intro .slick-next:hover:before {
    color: white;
    opacity: 0.75;
  }
}

@media screen and (max-width: 48.615em) {
  #app-intro .slick-prev:hover:before,
  #app-intro .slick-next:hover:before {
    color: white;
    opacity: 0.75;
  }
}

#app-intro .slideshow {
  margin: 0 auto 0 auto;
  width: 100%;
}

#app-intro .slideshow:not(.initialised) .slide {
  display: none !important;
}

#app-intro .slideshow:not(.initialised) .slide:first-child {
  display: block !important;
}

#app-intro .slideshow.loading {
  width: 100%;
}

body:not(.fullscreen) #app-intro .slideshow.loading {
  position: relative;
}

#app-intro .slideshow.loading::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -30px;
  margin-left: -30px;
  width: 50px;
  height: 50px;
  border-radius: 50px;
  border: 5px solid rgba(255, 255, 255, 0.25);
  border-top-color: white;
  animation: loading 1s ease infinite;
}

@keyframes loading {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

#app-intro .slideshow.loading .caption {
  display: none !important;
}

#app-intro .slideshow.loading .slide {
  visibility: hidden;
}

#app-intro .slideshow.loading .slide:first-child .caption {
  display: block !important;
}

#app-intro .slideshow.loading .slide img {
  display: none;
}

#app-intro .slideshow.initialised:not(.loading) .wrapper:not(.evaluating) {
  position: relative;
}

#app-intro .slideshow.initialised:not(.loading) .wrapper:not(.evaluating) .caption {
  top: 50%;
  transform: translateY(-50%);
  position: absolute;
}

#app-intro .slideshow .slide img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
}

#app-intro .slideshow .slide .caption {
  font-family: "Coming Soon";
  color: #ddd;
  padding: 8px 16px;
  display: block;
  vertical-align: middle;
  font-size: 16pt;
}

@media screen and (max-width: 37.49em) {
  #app-intro .slideshow .slide .caption {
    font-size: 12pt;
    line-height: 14pt;
  }
}

#app-intro h2 {
  border-bottom: none;
  padding: 0 8px 8px 8px;
  margin: 0;
}

#app-intro .slideshow {
  background-color: #131;
}

#app-download-links {
  padding-bottom: 8px;
}

/*****************************************************************
 Summary
*****************************************************************/
#summary {
  display: none;
}

@media screen and (max-width: 37.49em) {
  #summary .synopsis {
    display: none;
  }
}

body.col-ready #summary {
  display: block;
}

#summary:before, #summary:after {
  z-index: -1;
}

/*****************************************************************
 Caveats and considerations
*****************************************************************/
#caveats {
  background-color: #5c1e1e;
  border-radius: 4px;
  z-index: 0;
  position: relative;
  padding: 6px;
}

body:not(.fullscreen) #caveats {
  position: relative;
}

#caveats.shaded {
  background-color: #2f2f2f;
  border-radius: 4px;
  z-index: 0;
  position: relative;
  box-shadow: 4px 4px 4px #bbb;
  color: #eee;
  padding: 8px;
}

#caveats.shaded, #caveats.shaded a {
  color: white;
}

#caveats.shaded:before {
  content: '';
  position: absolute;
  width: 100%;
  height: 18px;
  left: 0;
  top: 0;
  background: linear-gradient(#717171, #424141);
  border-radius: 4px 4px 0 0;
  z-index: -1;
}

#caveats.shaded:after {
  content: '';
  position: absolute;
  width: 100%;
  height: 18px;
  left: 0;
  top: 18px;
  background: linear-gradient(#404040, #2f2f2f);
  z-index: -1;
}

#caveats.shaded > * {
  z-index: 2;
}

body:not(.fullscreen) #caveats.shaded > * {
  position: relative;
}

#caveats.shaded a, #caveats.shaded strong {
  color: white;
}

#caveats.shaded h2 {
  border: none;
  margin: 0;
}

#caveats > p {
  margin: 0;
}

#caveats, #caveats a {
  color: white;
}

#caveats:before {
  content: '';
  position: absolute;
  width: 100%;
  height: 18px;
  left: 0;
  top: 0;
  background: linear-gradient(#a83b3b, #6e2525);
  border-radius: 4px 4px 0 0;
  z-index: -1;
}

#caveats:after {
  content: '';
  position: absolute;
  width: 100%;
  height: 18px;
  left: 0;
  top: 18px;
  background: linear-gradient(#702525, #5c1e1e);
  z-index: -1;
}

#caveats > * {
  z-index: 2;
}

body:not(.fullscreen) #caveats > * {
  position: relative;
}

#considerations h2 {
  background-image: url("/images/graphics/warning.png");
  background-repeat: no-repeat;
  padding-left: 40px;
}

/*****************************************************************
 Highlights
*****************************************************************/
/*****************************************************************
 Reviews
*****************************************************************/
@media screen and (min-width: 60em) {
  #walk-reviews h2 {
    margin-bottom: 8px;
  }
}

/*****************************************************************
 Links
*****************************************************************/
#links li.linking-url {
  cursor: copy;
}

#links li.linking-url .url:after {
  position: absolute;
  right: 4px;
}

@media screen and (max-width: 59.99em) {
  #links li.linking-url .url:after {
    font-family: FontAwesome;
    content: "\f0c5";
    font-size: 16px !important;
  }
}

@media screen and (max-width: 59.99em) and (max-width: 37.49em) {
  #links li.linking-url .url:after {
    font-size: 14px !important;
  }
}

@media screen and (min-width: 60em) {
  #links li.linking-url .url:after {
    content: 'Copy';
    padding: 1px 4px;
    font-size: 10pt;
    background-color: #aaaaaa;
  }
}

/*****************************************************************
 Dogs
*****************************************************************/
#dogs {
  padding-top: 4px;
}

/*****************************************************************
 QR and app promo (Desktop only)
*****************************************************************/
@media screen and (max-width: 59.99em) {
  #app-promo {
    display: none;
  }
}

#app-promo .qrcode {
  float: right;
  margin-left: 16px;
  margin-top: 4px;
  background: white;
}

#app-promo .qrcode img {
  display: block;
}

#app-promo p {
  margin: 0;
}

#app-promo .inner a {
  text-decoration: none;
  font-weight: bold;
  line-height: 16px;
}

#app-promo .os-links img {
  margin: 8px 5% 0 5%;
}

/*****************************************************************
 Stats
*****************************************************************/
#stats ul {
  clear: right;
}

/*****************************************************************
 OS Maps
*****************************************************************/
#map-images {
  margin-top: 4px;
  margin-bottom: 4px;
}

#map-images a {
  position: relative;
  height: 100%;
  display: inline-block;
}

#map-images a:after {
  content: '';
  position: absolute;
  left: -2px;
  bottom: 14px;
  width: 100%;
  height: 100%;
  background-position-x: center;
  background-position-y: bottom;
  background-size: 60px 46px;
  background-repeat: no-repeat;
}

/*****************************************************************
 Ads
*****************************************************************/
#app-ad {
  background-color: #285d1e;
  border-radius: 4px;
  z-index: 0;
  position: relative;
}

#app-ad, #app-ad a {
  color: white;
}

#app-ad:before {
  content: '';
  position: absolute;
  width: 100%;
  height: 18px;
  left: 0;
  top: 0;
  background: linear-gradient(#469936, #307025);
  border-radius: 4px 4px 0 0;
  z-index: -1;
}

#app-ad:after {
  content: '';
  position: absolute;
  width: 100%;
  height: 18px;
  left: 0;
  top: 18px;
  background: linear-gradient(#307225, #285d1e);
  z-index: -1;
}

#app-ad > * {
  z-index: 2;
}

body:not(.fullscreen) #app-ad > * {
  position: relative;
}

@media screen and (max-width: 37.49em) {
  #app-ad .text {
    display: none;
  }
  #app-ad .text > * {
    display: table-cell;
  }
  #app-ad .text * {
    vertical-align: middle;
  }
  #app-ad .text .more {
    display: none;
  }
  #app-ad .text .app-ad-phone {
    margin-right: 16px;
  }
}

@media screen and (min-width: 37.5em) {
  #app-ad .app-ad-phone {
    float: right;
    margin: 0 0 8px 8px;
    position: relative;
    z-index: 2;
  }
}

@media screen and (max-width: 59.99em) {
  #app-ad .text .download {
    display: none;
  }
}

#app-ad:hover {
  filter: brightness(1.25);
}

#app-ad #app-deeplink {
  text-align: center;
}

@media screen and (max-width: 37.49em) {
  #app-ad #app-deeplink .app-name {
    display: none;
  }
}

@media screen and (min-width: 60em) {
  #app-ad #app-deeplink {
    display: none;
  }
}

#app-ad #app-deeplink a {
  margin: 0;
}

/*****************************************************************
 PDF icon
*****************************************************************/
.pdf-icon {
  float: right;
  position: relative;
  top: -9px;
  filter: opacity(60%);
}

.pdf-icon:hover {
  cursor: pointer;
  filter: opacity(100%);
}

body.accounts-enabled .pdf-icon {
  display: none;
}

/*****************************************************************
 Sample directions
*****************************************************************/
#sample-explanation {
  background-color: #fff;
  border: 1px solid #ccc;
  padding: 16px;
  width: auto;
  font-style: italic;
}

.sample-elipses {
  width: auto;
  font-size: 36pt;
  text-align: center;
}

/*****************************************************************
 Buy walk box
*****************************************************************/
.buy-walk {
  margin-top: 12px;
  margin-bottom: 12px;
  border: 1px solid #ccc;
  padding: 16px;
  width: auto;
}

@media screen and (max-width: 37.49em) {
  .buy-walk {
    display: none;
  }
}

body.accounts-enabled .buy-walk {
  display: none;
}

.buy-walk p {
  margin: -8px 0 0 0;
}

.buy-walk p .button {
  cursor: pointer;
  margin: 8px 8px 8px 0;
}

.buy-walk p > * {
  vertical-align: middle;
}

.buy-walk p a {
  display: block;
  margin-top: 8px;
  text-align: center;
}

/********************************************************
* Bottom promo (if active)
********************************************************/
/**
* Display a bottom promo in a light green box
*/
.bottom-promo {
  background-color: rgba(124, 197, 149, 0.65);
  border-radius: 4px;
  box-shadow: 4px 4px 4px #bbb;
  margin-top: 16px;
  padding: 8px;
}

.bottom-promo, .bottom-promo a {
  color: white;
}

.bottom-promo, .bottom-promo a {
  color: black;
}

.bottom-promo p {
  margin: 0;
}

/*****************************************************************
 Print Adverts
*****************************************************************/
.print-advert {
  display: none;
  margin-top: 16px;
}

.print-advert img {
  width: 100%;
}

#ink_message {
  color: #006600;
  font-size: 8pt;
  display: none;
}

/*****************************************************************
 Misc responsive tweaks
*****************************************************************/
@media screen and (max-width: 37.49em) {
  #like_on_facebook {
    display: none;
  }
}

/*****************************************************************
 Print mods
*****************************************************************/
body.accounts-enabled .print_button {
  display: none;
}

#atic_print {
  display: none !important;
}

@media print {
  body, body *, body :before, body :after {
    background: none !important;
    color: #000 !important;
  }
  .left.col, #cutdowns, #buy, #main-photo, #photos, #app-promo, #stats, #os_maps, #highlights, #related, #nearby, #alternatives, #adjoining, #links, #pubs, #facebook-group, #like_on_facebook, #app-ad, #walk-reviews, #toggle-directions, #directions .more-info, .pdf-icon, #buy-walk, .feature-box {
    display: none;
  }
  #app-intro {
    display: none !important;
  }
  #directions {
    display: none !important;
  }
  .right.col {
    float: none;
    width: 100%;
  }
  h2 {
    border-bottom: 1px solid #aaa;
  }
  .box {
    margin: 0;
    border-radius: 0;
    box-shadow: 0 0;
  }
  #stats {
    margin-top: 16px;
    color: black;
  }
  #print-app-promo {
    display: block;
    position: relative;
    height: 200px;
  }
  #print-app-promo .qr {
    position: absolute;
  }
  #print-app-promo .content {
    position: absolute;
    margin-left: 88px;
  }
  #print-app-promo .content p {
    margin: 4px 0px 0px 0px;
  }
  .print-advert {
    display: block;
  }
  #ink_message {
    display: none;
    margin-top: 32px;
  }
}

/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAiLi4vd3d3L2Nzcy93YWxrLmNzcyIsCgkic291cmNlcyI6IFsKCQkiLi4vd3d3L3Njc3Mvd2Fsay5zY3NzIiwKCQkiLi4vd3d3L3Njc3MvQGluY2x1ZGUvX2NvbW1vbi5zY3NzIiwKCQkiLi4vd3d3L3Njc3MvQGluY2x1ZGUvX3ZhcmlhYmxlcy5zY3NzIiwKCQkiLi4vd3d3L3Njc3MvQGluY2x1ZGUvX2dlbmVyYWxfbWl4aW5zLnNjc3MiLAoJCSIuLi93d3cvc2Nzcy9AaW5jbHVkZS9fbWVkaWEuc2NzcyIsCgkJIi4uL3d3dy9zY3NzL0BpbmNsdWRlL19tcS5zY3NzIiwKCQkiLi4vd3d3L3Njc3MvQGluY2x1ZGUvX3RvdWNoLnNjc3MiLAoJCSIuLi93d3cvc2Nzcy9AaW5jbHVkZS9fbWFpbl9waG90by5zY3NzIiwKCQkiLi4vd3d3L3Njc3MvQHdhbGsvX21hcC5zY3NzIiwKCQkiLi4vd3d3L3Njc3MvQHdhbGsvX2RpcmVjdGlvbnMuc2NzcyIsCgkJIi4uL3d3dy9zY3NzL0B3YWxrL19jb250cmlidXRlLnNjc3MiLAoJCSIuLi93d3cvc2Nzcy9Ad2Fsay9fYnV5X3dhbGsuc2NzcyIsCgkJIi4uL3d3dy9zY3NzL0B3YWxrL19waG90b3Muc2NzcyIsCgkJIi4uL3d3dy9zY3NzL0BpbmNsdWRlL2NvbXBvbmVudC9fbGlnaHRnYWxsZXJ5LnNjc3MiLAoJCSIuLi93d3cvc2Nzcy9Ad2Fsay9fb3V0bGluZV9tYXAuc2NzcyIsCgkJIi4uL3d3dy9zY3NzL0B3YWxrL19teXN0ZXJpZXMuc2NzcyIsCgkJIi4uL3d3dy9zY3NzL0BpbmNsdWRlL19yZXNwb25zaXZlX2NvbHVtbnMuc2NzcyIsCgkJIi4uL3d3dy9zY3NzL0BpbmNsdWRlL2NvbXBvbmVudC9fbG9hZGVyLnNjc3MiLAoJCSIuLi93d3cvc2Nzcy9AaW5jbHVkZS9jb21wb25lbnQvX3Byb21vcy5zY3NzIiwKCQkiLi4vd3d3L3Njc3MvQGluY2x1ZGUvY29tcG9uZW50L19zbGlja19vdmVycmlkZXMuc2NzcyIsCgkJIi4uL3d3dy9zY3NzL0BpbmNsdWRlL19hcHBfYWRfZm9ybWF0cy5zY3NzIiwKCQkiLi4vd3d3L3Njc3MvQGluY2x1ZGUvY29tcG9uZW50L19zbGlkZXNob3cuc2NzcyIsCgkJIi4uL3d3dy9zY3NzL0BpbmNsdWRlL19ib3R0b21fcHJvbW8uc2NzcyIKCV0sCgkic291cmNlc0NvbnRlbnQiOiBbCgkJIi8vIEltcG9ydCBjb21wb25lbnRzXG5AaW1wb3J0IFwiQGluY2x1ZGUvY29tbW9uXCI7XG5AaW1wb3J0IFwiQGluY2x1ZGUvbWFpbl9waG90b1wiO1xuQGltcG9ydCBcIkB3YWxrL21hcFwiO1xuQGltcG9ydCBcIkB3YWxrL2RpcmVjdGlvbnNcIjtcbkBpbXBvcnQgXCJAd2Fsay9jb250cmlidXRlXCI7XG5AaW1wb3J0IFwiQHdhbGsvYnV5X3dhbGtcIjtcbkBpbXBvcnQgXCJAd2Fsay9waG90b3NcIjtcbkBpbXBvcnQgXCJAd2Fsay9vdXRsaW5lX21hcFwiO1xuQGltcG9ydCBcIkB3YWxrL215c3Rlcmllc1wiO1xuQGltcG9ydCBcIkBpbmNsdWRlL3Jlc3BvbnNpdmVfY29sdW1uc1wiO1xuQGltcG9ydCBcIkBpbmNsdWRlL2NvbXBvbmVudC9wcm9tb3NcIjtcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gQm94IGxheW91dFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbkBtaXhpbiB3YWxrLWJveHtcblxuICBAYXQtcm9vdHtcbiAgICBib2R5Om5vdCguZnVsbHNjcmVlbikgI3smfSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuICB9XG5cbiAgJi5zaGFkZWR7XG4gICAgQGluY2x1ZGUgYm94eTtcbiAgICBwYWRkaW5nOiA4cHg7XG4gIH1cblxuXG4gID4gcHtcbiAgICBtYXJnaW46IDA7XG4gIH1cbn1cblxuLmJveCB7XG4gIG1hcmdpbi1ib3R0b206IDE2cHg7XG5cbiAgQGluY2x1ZGUgbXFzKCRmcm9tOiBwYWdlKSB7XG4gICAgQGluY2x1ZGUgd2Fsay1ib3g7XG4gIH1cblxuICAmLmFsd2F5c3tcbiAgICBAaW5jbHVkZSB3YWxrLWJveDtcbiAgfVxuXG4gIGgyIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc2l6ZTogMTZwdDtcbiAgICBAaW5jbHVkZSBtcXMoJHVudGlsOiBwYWdlKSB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cbiAgfVxuXG4gIHVsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gIH1cbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gU2luZ2xlIGNvbHVtbiBib3ggb3JkZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuI2J1eSB7XG4gIG9yZGVyOiAxO1xufVxuI2FwcC1hZCB7XG4gIG9yZGVyOiAyO1xufVxuI3N1bW1hcnl7XG4gIG9yZGVyOiAzO1xufVxuI3N0YXRzIHtcbiAgb3JkZXI6IDQ7XG59XG4jbG9jYXRpb24ge1xuICBvcmRlcjogNTtcbn1cbiNjYXZlYXRze1xuICBvcmRlcjogNjtcbn1cbiNkb2dzIHtcbiAgb3JkZXI6IDc7XG59XG4jcGhvdG9zIHtcbiAgb3JkZXI6IDg7XG59XG4jaGlnaGxpZ2h0c3tcbiAgb3JkZXI6IDk7XG59XG4jd2Fsay1yZXZpZXdze1xuICBvcmRlcjogMTA7XG59XG4jb3NfbWFwc3tcbiAgb3JkZXI6IDExO1xufVxuI2xpbmtzIHtcbiAgb3JkZXI6IDEyO1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiBCdXlcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuI2J1eXtcblxuICBAYXQtcm9vdHtcbiAgICBib2R5Om5vdCguYWNjb3VudHMtZW5hYmxlZCkgI3smfSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gICYsIFtjbGFzcyo9J3N0YXR1cy0nXXtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgJltjbGFzcyo9J3N0YXR1cy0nXSxcbiAgJi5zdGF0dXMtc2lnbmVkLW91dCAuc3RhdHVzLXNpZ25lZC1vdXQsXG4gICYuc3RhdHVzLWluLWJhc2tldCAuc3RhdHVzLWluLWJhc2tldCxcbiAgJi5zdGF0dXMtb3duZWQgLnN0YXR1cy1vd25lZCxcbiAgJi5zdGF0dXMtYXZhaWxhYmxlIC5zdGF0dXMtYXZhaWxhYmxlLFxuICAmLnN0YXR1cy1lcnJvciAuc3RhdHVzLWVycm9ye1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgW3JvbGU9XCJidXR0b25cIl17XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIG1hcmdpbi10b3A6IDhweDtcblxuICAgIEBpbmNsdWRlIHRvdWNoLXNjcmVlbi1kZXZpY2Vze1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICAgIH1cblxuICAgICY6Zmlyc3QtY2hpbGR7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cbiAgfVxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiBTb2NpYWwgYm9va21hcmtzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuI3dhbGtfc2hhcmluZyB7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLXRvcDogMTZweDtcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuXG4gIEBpbmNsdWRlIG1xcygkdW50aWw6IHBhZ2UpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gT3ZlcnZpZXdcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuI292ZXJ2aWV3e1xuICBAaW5jbHVkZSBtcXMoJHVudGlsOiB0YWJsZXQ3aW5jaCkge1xuICAgIEBpbmNsdWRlIHdhbGstYm94O1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgI21haW4tcGhvdG97XG4gICAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICAgIC5pbWFnZS1ib3JkZXJ7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbXFzKCRmcm9tOiB0YWJsZXQ3aW5jaCkge1xuICAgICNtYWluLXBob3Rve1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICB9XG4gICAgI3Nob3J0LWRlc2NyaXB0aW9ue1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gQXBwIGludHJvIHNob3duIGZvciBuZXcgdXNlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuQGltcG9ydCBcIi4uL0BpbmNsdWRlL2FwcF9hZF9mb3JtYXRzXCI7XG5cbiNhcHAtaW50cm8ge1xuICBAaW5jbHVkZSBib3hHcmFkaWVudERhcmtHcmVlbjtcbiAgQGltcG9ydCBcIi4vQGluY2x1ZGUvY29tcG9uZW50L3NsaWRlc2hvd1wiO1xuICBkaXNwbGF5OiBub25lO1xuICBwYWRkaW5nOiA0cHggMCAwIDA7XG4gIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gIGgye1xuXHRib3JkZXItYm90dG9tOiBub25lO1xuICAgIHBhZGRpbmc6IDAgOHB4IDhweCA4cHg7XG5cdG1hcmdpbjogMDtcbiAgfVxuICAuc2xpZGVzaG93e1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRkYXJrLWdyZWVuO1xuICB9XG4gIFxufVxuXG4jYXBwLWRvd25sb2FkLWxpbmtzIHtcblx0cGFkZGluZy1ib3R0b206IDhweDtcbn1cblxuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuIFN1bW1hcnlcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuI3N1bW1hcnl7XG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgQGluY2x1ZGUgbXFzKCR1bnRpbDogdGFibGV0N2luY2gpIHtcbiAgICAuc3lub3BzaXN7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIGJvZHkuY29sLXJlYWR5ICZ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAmOmJlZm9yZSwgJjphZnRlciB7XG4gICAgei1pbmRleDogLTE7XG4gIH1cbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gQ2F2ZWF0cyBhbmQgY29uc2lkZXJhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuI2NhdmVhdHN7XG4gICAgQGluY2x1ZGUgd2Fsay1ib3g7XG4gICAgQGluY2x1ZGUgYm94R3JhZGllbnRSZWQ7XG4gICAgcGFkZGluZzogNnB4O1xufVxuXG4jY29uc2lkZXJhdGlvbnMge1xuXHRoMiB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKCcvaW1hZ2VzL2dyYXBoaWNzL3dhcm5pbmcucG5nJyk7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRwYWRkaW5nLWxlZnQ6IDQwcHg7XG5cdH1cbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gSGlnaGxpZ2h0c1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vLyNoaWdobGlnaHRze31cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gUmV2aWV3c1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4jd2Fsay1yZXZpZXdze1xuICBAaW5jbHVkZSBtcXMoJGZyb206IHBhZ2UpIHtcbiAgICBoMntcbiAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICB9XG4gIH1cbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gTGlua3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuI2xpbmtze1xuICBsaS5saW5raW5nLXVybHtcbiAgICBjdXJzb3I6IGNvcHk7XG4gICAgLnVybDphZnRlcntcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiA0cHg7XG5cbiAgICAgIEBpbmNsdWRlIG1xcygkdW50aWw6IHBhZ2UpIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IEZvbnRBd2Vzb21lO1xuICAgICAgICBjb250ZW50OiBcIlxcZjBjNVwiO1xuXG4gICAgICAgIGZvbnQtc2l6ZTogMTZweCAhaW1wb3J0YW50O1xuICAgICAgICBAaW5jbHVkZSBtcXMoJHVudGlsOiB0YWJsZXQ3aW5jaCkge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1xcygkZnJvbTogcGFnZSkge1xuICAgICAgICBjb250ZW50OiAnQ29weSc7XG4gICAgICAgIHBhZGRpbmc6IDFweCA0cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTBwdDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2FhYWFhYTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gRG9nc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiNkb2dzIHtcbiAgcGFkZGluZy10b3A6NHB4O1xufVxuXG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gUVIgYW5kIGFwcCBwcm9tbyAoRGVza3RvcCBvbmx5KVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiNhcHAtcHJvbW97XG4gIEBpbmNsdWRlIG1xcygkdW50aWw6IHBhZ2UpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLnFyY29kZSB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xuICAgIG1hcmdpbi10b3A6NHB4O1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICBcbiAgICBpbWcge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgcCB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgLmlubmVyIGEge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgfVxuXG4gIC5vcy1saW5rcyBpbWd7XG4gICAgbWFyZ2luOiA4cHggNSUgMCA1JTtcbiAgfVxufVxuXG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gU3RhdHNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4jc3RhdHN7XG4gIHVsIHtcbiAgICBjbGVhcjpyaWdodDtcbiAgfVxufVxuXG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gT1MgTWFwc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiNtYXAtaW1hZ2VzIHtcbiAgbWFyZ2luLXRvcDo0cHg7XG4gIG1hcmdpbi1ib3R0b206NHB4O1xuXG4gIGF7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgJjphZnRlcntcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogLTJweDtcbiAgICAgIGJvdHRvbTogMTRweDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbi14OiBjZW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6IGJvdHRvbTtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogNjBweCA0NnB4O1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICB9XG4gIH1cbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gQWRzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuI2FwcC1hZCB7XG4gIEBpbmNsdWRlIGJveEdyYWRpZW50R3JlZW47XG5cbiAgQGluY2x1ZGUgbXFzKCR1bnRpbDogdGFibGV0N2luY2gpIHtcbiAgICAudGV4dHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICA+ICp7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICB9XG4gICAgICAqe1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgfVxuICAgICAgLm1vcmV7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgICAuYXBwLWFkLXBob25lIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1xcygkZnJvbTogdGFibGV0N2luY2gpIHtcbiAgICAuYXBwLWFkLXBob25lIHtcbiAgICAgIGZsb2F0OnJpZ2h0O1xuICAgICAgbWFyZ2luOiAwIDAgOHB4IDhweDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbXFzKCR1bnRpbDogcGFnZSkge1xuXHQudGV4dCB7XG5cdFx0LmRvd25sb2FkIHtcblx0XHRcdGRpc3BsYXk6bm9uZTtcblx0XHR9XG5cdH1cbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIGZpbHRlcjpicmlnaHRuZXNzKDEuMjUpO1xuICB9XG4gIFxuICAjYXBwLWRlZXBsaW5re1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIEBpbmNsdWRlIG1xcygkdW50aWw6IHRhYmxldDdpbmNoKSB7XG4gICAgICAuYXBwLW5hbWV7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbXFzKCRmcm9tOiBwYWdlKSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIGF7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICB9XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuIFBERiBpY29uXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi5wZGYtaWNvbiB7XG5cdGZsb2F0OnJpZ2h0O1xuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0dG9wOiAtOXB4O1xuXHRmaWx0ZXI6IG9wYWNpdHkoNjAlKTtcblx0XG5cdCY6aG92ZXIge1xuXHRcdGN1cnNvcjpwb2ludGVyO1xuXHRcdGZpbHRlcjogb3BhY2l0eSgxMDAlKTtcblx0fVxuXG4gIEBhdC1yb290e1xuICAgIGJvZHkuYWNjb3VudHMtZW5hYmxlZCAjeyZ9IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuIFNhbXBsZSBkaXJlY3Rpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuI3NhbXBsZS1leHBsYW5hdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIHBhZGRpbmc6IDE2cHg7XG4gIHdpZHRoOiBhdXRvO1xuICBmb250LXN0eWxlOml0YWxpYztcbn1cblxuLnNhbXBsZS1lbGlwc2VzIHtcblx0d2lkdGg6IGF1dG87XG5cdGZvbnQtc2l6ZTogMzZwdDtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiBCdXkgd2FsayBib3hcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4uYnV5LXdhbGsgIHtcbiAgbWFyZ2luLXRvcDoxMnB4O1xuICBtYXJnaW4tYm90dG9tOjEycHg7XG5cbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgcGFkZGluZzogMTZweDtcbiAgd2lkdGg6IGF1dG87XG5cbiAgQGluY2x1ZGUgbXFzKCR1bnRpbDogdGFibGV0N2luY2gpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgQGF0LXJvb3R7XG4gICAgYm9keS5hY2NvdW50cy1lbmFibGVkICN7Jn0ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICBwIHtcblx0bWFyZ2luOiAtOHB4IDAgMCAwO1xuXG4gICAgLmJ1dHRvbiB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBtYXJnaW46IDhweCA4cHggOHB4IDA7XG4gICAgfVxuXG4gICAgPiAqe1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG5cbiAgICBhe1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuICB9XG5cblxuXG5cbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4qIEJvdHRvbSBwcm9tbyAoaWYgYWN0aXZlKVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5AaW1wb3J0IFwiQGluY2x1ZGUvYm90dG9tX3Byb21vXCI7XG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gUHJpbnQgQWR2ZXJ0c1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi5wcmludC1hZHZlcnQge1xuICBkaXNwbGF5Om5vbmU7XG4gIG1hcmdpbi10b3A6MTZweDtcbiAgaW1nIHt3aWR0aDoxMDAlfVxufVxuXG4jaW5rX21lc3NhZ2Uge1xuICBjb2xvcjogIzAwNjYwMDtcbiAgZm9udC1zaXplOiA4cHQ7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuIE1pc2MgcmVzcG9uc2l2ZSB0d2Vha3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuQGluY2x1ZGUgbXFzKCR1bnRpbDogdGFibGV0N2luY2gpIHtcbiAgI2xpa2Vfb25fZmFjZWJvb2t7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiBQcmludCBtb2RzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8vIGhpZGUgcHJpbnQgYnV0dG9uIHdoZW4gYWNjb3VudHMgYXJlIGVuYWJsZWQgYXMgaXQgbGlua3MgdG8gYnV5IFBERlxuYm9keS5hY2NvdW50cy1lbmFibGVkIC5wcmludF9idXR0b257XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8vIEhpZGUgdGhlIEFkZCBUaGlzIFByaW50IGJ1dHRvblxuI2F0aWNfcHJpbnR7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIHByaW50IHtcbiAgYm9keSwgYm9keSAqLCBib2R5IDpiZWZvcmUsIGJvZHkgOmFmdGVye1xuICAgIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50O1xuICB9XG4gIC5sZWZ0LmNvbCwgI2N1dGRvd25zLCAjYnV5LCAjbWFpbi1waG90bywgI3Bob3RvcywgI2FwcC1wcm9tbywgI3N0YXRzLCAjb3NfbWFwcywgI2hpZ2hsaWdodHMsICNyZWxhdGVkLCAjbmVhcmJ5LCAjYWx0ZXJuYXRpdmVzLCAjYWRqb2luaW5nLCAjbGlua3MsICNwdWJzLCAjZmFjZWJvb2stZ3JvdXAsICNsaWtlX29uX2ZhY2Vib29rLCAjYXBwLWFkLCAjd2Fsay1yZXZpZXdzLCAjdG9nZ2xlLWRpcmVjdGlvbnMsICNkaXJlY3Rpb25zIC5tb3JlLWluZm8sIC5wZGYtaWNvbiwgI2J1eS13YWxrLCAuZmVhdHVyZS1ib3gge1xuICAgIGRpc3BsYXk6IG5vbmVcbiAgfVxuICBcbiAgI2FwcC1pbnRybyB7XG5cdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICBcbiAgI2RpcmVjdGlvbnMgeyBcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgXG4gIC5yaWdodC5jb2wge1xuICAgIGZsb2F0OiBub25lO1xuICAgIHdpZHRoOiAxMDAlXG4gIH1cblxuICBoMiB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNhYWFcbiAgfVxuXG4gIC5ib3gge1xuICAgIG1hcmdpbjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGJveC1zaGFkb3c6IDAgMDtcbiAgfVxuXG5cbiAgI3N0YXRzIHtcbiAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgIGNvbG9yOiBibGFja1xuICB9XG5cbiAgI3ByaW50LWFwcC1wcm9tbyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0aGVpZ2h0OiAyMDBweDtcblx0XG5cdC5xciB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHR9XG5cdFxuXHQuY29udGVudCB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdG1hcmdpbi1sZWZ0OiA4OHB4O1xuXHRcdFxuXHRcdHAge1xuXHRcdFx0bWFyZ2luOiA0cHggMHB4IDBweCAwcHg7XG5cdFx0fVxuXHR9XG4gIH1cbiAgXG4gIC5wcmludC1hZHZlcnQge1xuICAgIGRpc3BsYXk6IGJsb2NrOyAgXG4gIH1cbiAgXG4gICNpbmtfbWVzc2FnZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBtYXJnaW4tdG9wOiAzMnB4XG4gIH1cbn1cblxuIiwKCQkiLy8gQ29tbW9uIHN0eWxlc1xuQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcImdlbmVyYWxfbWl4aW5zXCI7XG5AaW1wb3J0IFwibWVkaWFcIjtcbkBpbXBvcnQgXCJ0b3VjaFwiO1xuXG5ib2R5e1xuICB2aXNpYmlsaXR5OiBpbmhlcml0O1xufVxuIiwKCQkiLy8gVmFyaWFibGVzXG5cbiRwYWdlLXdpZHRoOiA5NjBweDtcbiRyZXNwb25zaXZlLW1lbnU6IDc3OHB4O1xuXG4kZ3JleTogIzJmMmYyZjtcbiRkYXJrLWdyZWVuOiAjMTMxO1xuJGdyZWVuOiAjMjg1ZDFlO1xuJGJsdWU6ICMxOTQyNGE7XG4kbGlnaHQtZ3JlZW46IHJnYmEoMTI0LCAxOTcsIDE0OSwgMC42NSk7XG4kcmVkOiAjNWMxZTFlO1xuJGRhcmstcmVkOiAjNjYwMDAwO1xuXG4vLyBCb3ggZ3JhZGllbnRzXG4kYm94LUdyYWQtSGVpZ2h0OiAxOHB4O1xuXG4kYm94LUJHLUdyZXk6ICRncmV5O1xuJGJveC1HcmFkLVVwcGVyLVRvcC1HcmV5OiAjNzE3MTcxO1xuJGJveC1HcmFkLVVwcGVyLUJvdHRvbS1HcmV5OiAjNDI0MTQxO1xuJGJveC1HcmFkLUxvd2VyLVRvcC1HcmV5OiAjNDA0MDQwO1xuJGJveC1HcmFkLUxvd2VyLUJvdHRvbS1HcmV5OiAjMmYyZjJmO1xuXG4kYm94LUJHLUdyZWVuOiAkZ3JlZW47XG4kYm94LUdyYWQtVXBwZXItVG9wLUdyZWVuOiAjNDY5OTM2O1xuJGJveC1HcmFkLVVwcGVyLUJvdHRvbS1HcmVlbjogIzMwNzAyNTtcbiRib3gtR3JhZC1Mb3dlci1Ub3AtR3JlZW46ICMzMDcyMjU7XG4kYm94LUdyYWQtTG93ZXItQm90dG9tLUdyZWVuOiAjMjg1ZDFlO1xuXG4kYm94LUJHLUJsdWU6ICMxOTQyNGE7XG4kYm94LUdyYWQtVXBwZXItVG9wLUJsdWU6ICMxMjYxNjc7XG4kYm94LUdyYWQtVXBwZXItQm90dG9tLUJsdWU6ICMxOTQyNGE7XG4kYm94LUdyYWQtTG93ZXItVG9wLUJsdWU6ICMxOTQyNGE7XG4kYm94LUdyYWQtTG93ZXItQm90dG9tLUJsdWU6ICMxOTQyNGE7XG5cblxuJGJveC1CRy1EYXJrLUdyZWVuOiAkZGFyay1ncmVlbjtcbiRib3gtR3JhZC1VcHBlci1Ub3AtRGFyay1HcmVlbjogIzJlODAyZTtcbiRib3gtR3JhZC1VcHBlci1Cb3R0b20tRGFyay1HcmVlbjogIzE3NDUxNztcbiRib3gtR3JhZC1Mb3dlci1Ub3AtRGFyay1HcmVlbjogIzE4NDcxOTtcbiRib3gtR3JhZC1Mb3dlci1Cb3R0b20tRGFyay1HcmVlbjogIzExMzMxMTtcblxuJGJveC1CRy1SZWQ6ICRyZWQ7XG4kYm94LUdyYWQtVXBwZXItVG9wLVJlZDogI2E4M2IzYjtcbiRib3gtR3JhZC1VcHBlci1Cb3R0b20tUmVkOiAjNmUyNTI1O1xuJGJveC1HcmFkLUxvd2VyLVRvcC1SZWQ6ICM3MDI1MjU7XG4kYm94LUdyYWQtTG93ZXItQm90dG9tLVJlZDogIzVjMWUxZTtcblxuJG1xLWJyZWFrcG9pbnQtbW9iaWxlOiAzMjBweDtcbiRtcS1icmVha3BvaW50LXRhYmxldDdpbmNoOiA2MDBweDtcbiRtcS1icmVha3BvaW50LXRhYmxldDogNzQwcHg7XG4kbXEtYnJlYWtwb2ludC1kZXNrdG9wOiA5ODBweDtcbiRtcS1icmVha3BvaW50LXdpZGU6IDEzMDBweDtcbiRtcS1icmVha3BvaW50LWRlc2t0b3BBZDogODEwcHg7XG4kbXEtYnJlYWtwb2ludC1tb2JpbGVMYW5kc2NhcGU6IDQ4MHB4O1xuJG1xLWJyZWFrcG9pbnQtbWVkaXVtTG9nbzogNDQwcHg7XG4kbXEtYnJlYWtwb2ludC1zbWFsbExvZ286IDMyMHB4O1xuJG1xLWJyZWFrcG9pbnQtaGVhZGVyU29jaWFsSWNvbnM6IDk1NHB4O1xuJG1xLWJyZWFrcG9pbnQtcGFnZTogJHBhZ2Utd2lkdGg7XG4kbXEtYnJlYWtwb2ludC1yZXNwb25zaXZlTWVudTogJHJlc3BvbnNpdmUtbWVudTtcblxuXG4vLyBCcmVha3BvaW50c1xuJG1xLWJyZWFrcG9pbnRzOiAoXG4gICAgICAgIG1vYmlsZTogICRtcS1icmVha3BvaW50LW1vYmlsZSxcbiAgICAgICAgdGFibGV0N2luY2g6ICAkbXEtYnJlYWtwb2ludC10YWJsZXQ3aW5jaCxcbiAgICAgICAgdGFibGV0OiAgJG1xLWJyZWFrcG9pbnQtdGFibGV0LFxuICAgICAgICBkZXNrdG9wOiAkbXEtYnJlYWtwb2ludC1kZXNrdG9wLFxuICAgICAgICB3aWRlOiAkbXEtYnJlYWtwb2ludC13aWRlLFxuXG4gIC8vIFR3ZWFrcG9pbnRzXG4gICAgICAgIGRlc2t0b3BBZDogJG1xLWJyZWFrcG9pbnQtZGVza3RvcEFkLFxuICAgICAgICBtb2JpbGVMYW5kc2NhcGU6ICRtcS1icmVha3BvaW50LW1vYmlsZUxhbmRzY2FwZSxcbiAgICAgICAgc21hbGxMb2dvOiAkbXEtYnJlYWtwb2ludC1zbWFsbExvZ28sXG4gICAgICAgIHBhZ2U6ICRtcS1icmVha3BvaW50LXBhZ2UsXG4gICAgICAgIHJlc3BvbnNpdmVNZW51OiAkbXEtYnJlYWtwb2ludC1yZXNwb25zaXZlTWVudSxcbiAgICAgICAgaGVhZGVyU29jaWFsSWNvbnM6ICRtcS1icmVha3BvaW50LWhlYWRlclNvY2lhbEljb25zXG4pO1xuXG5cbi8vIFRvIGVuYWJsZSBzdXBwb3J0IGZvciBicm93c2VycyB0aGF0IGRvIG5vdCBzdXBwb3J0IEBtZWRpYSBxdWVyaWVzLFxuLy8gKElFIDw9IDgsIEZpcmVmb3ggPD0gMywgT3BlcmEgPD0gOSkgc2V0ICRtcS1yZXNwb25zaXZlIHRvIGZhbHNlXG4vLyBDcmVhdGUgYSBzZXBhcmF0ZSBzdHlsZXNoZWV0IHNlcnZlZCBleGNsdXNpdmVseSB0byB0aGVzZSBicm93c2Vycyxcbi8vIG1lYW5pbmcgQG1lZGlhIHF1ZXJpZXMgd2lsbCBiZSByYXN0ZXJpemVkLCByZWx5aW5nIG9uIHRoZSBjYXNjYWRlIGl0c2VsZlxuJG1xLXJlc3BvbnNpdmU6IHRydWU7XG5cbi8vIElmIHlvdSB3YW50IHRvIGRpc3BsYXkgdGhlIGN1cnJlbnRseSBhY3RpdmUgYnJlYWtwb2ludCBpbiB0aGUgdG9wXG4vLyByaWdodCBjb3JuZXIgb2YgeW91ciBzaXRlIGR1cmluZyBkZXZlbG9wbWVudCwgYWRkIHRoZSBicmVha3BvaW50c1xuLy8gdG8gdGhpcyBsaXN0LCBvcmRlcmVkIGJ5IHdpZHRoLCBlLmcuIChtb2JpbGUsIHRhYmxldCwgZGVza3RvcCkuXG4vLyRtcS1zaG93LWJyZWFrcG9pbnRzOiAobW9iaWxlLCBtb2JpbGVMYW5kc2NhcGUsIHRhYmxldCwgZGVza3RvcCwgd2lkZSk7XG4iLAoJCSJAbWl4aW4gaVdhbGtNb2JpbGVHcmFkaWVudHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2M5ZGNmNCAwJSwjODJiNWVjIDIyJSwjMjk4YWUzIDQ2JSwjM2VjMWY3IDcwJSwjM2VjMWY3IDEwMCUpO1xufVxuXG5AbWl4aW4gY2VudHJlWXtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuQG1peGluIGNlbnRyZVh7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xufVxuXG5AbWl4aW4gY2VudHJlWFl7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSAgdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuQG1peGluIGdyZXlfZ3JhZGllbnR7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMTgxLCAxODksIDIwMCwgMSkgMCUsIHJnYmEoMTMwLCAxNDAsIDE0OSwgMSkgMzYlLCByZ2JhKDQwLCA1MiwgNTksIDEpIDEwMCUpO1xufVxuXG5AbWl4aW4gZ3JlZW5fZ3JhZGllbnR7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICM0ZWI5NGUgMCUsICMxMDkwMTAgMzYlLCAjMDkzZTA5IDEwMCUpO1xufVxuXG5AbWl4aW4gYm94KCRiZyl7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiZztcbiAgYm9yZGVyLXJhZGl1czo0cHg7XG4gICYsIGF7XG4gICAgY29sb3I6IHdoaXRlO1xuICB9XG59XG5cbkBtaXhpbiBib3hHcmFkaWVudCgkYmcsICR1cHBlci10b3AsICR1cHBlci1ib3R0b20sICRsb3dlci10b3AsICRsb3dlci1ib3R0b20sICRoZWlnaHQ6ICRib3gtR3JhZC1IZWlnaHQpe1xuICBAaW5jbHVkZSBib3goJGJnKTtcbiAgei1pbmRleDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICY6YmVmb3Jle1xuICAgIGNvbnRlbnQ6Jyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogJGhlaWdodDtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoJHVwcGVyLXRvcCwgJHVwcGVyLWJvdHRvbSk7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4IDRweCAwIDA7XG4gICAgei1pbmRleDogLTE7XG4gIH1cblxuICAmOmFmdGVye1xuICAgIGNvbnRlbnQ6Jyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogJGhlaWdodDtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogJGhlaWdodDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoJGxvd2VyLXRvcCwgJGxvd2VyLWJvdHRvbSk7XG4gICAgei1pbmRleDogLTE7XG4gIH1cblxuICA+ICp7XG4gICAgei1pbmRleDogMjtcblxuICAgIEBhdC1yb290IHtcbiAgICAgIGJvZHk6bm90KC5mdWxsc2NyZWVuKSAjeyZ9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gYm94R3JhZGllbnRHcmV5e1xuICBAaW5jbHVkZSBib3hHcmFkaWVudCgkYm94LUJHLUdyZXksICRib3gtR3JhZC1VcHBlci1Ub3AtR3JleSwgJGJveC1HcmFkLVVwcGVyLUJvdHRvbS1HcmV5LCAkYm94LUdyYWQtTG93ZXItVG9wLUdyZXksICRib3gtR3JhZC1Mb3dlci1Cb3R0b20tR3JleSk7XG59XG5cbkBtaXhpbiBib3hHcmFkaWVudEdyZWVue1xuICBAaW5jbHVkZSBib3hHcmFkaWVudCgkYm94LUJHLUdyZWVuLCAkYm94LUdyYWQtVXBwZXItVG9wLUdyZWVuLCAkYm94LUdyYWQtVXBwZXItQm90dG9tLUdyZWVuLCAkYm94LUdyYWQtTG93ZXItVG9wLUdyZWVuLCAkYm94LUdyYWQtTG93ZXItQm90dG9tLUdyZWVuKTtcbn1cblxuQG1peGluIGJveEdyYWRpZW50Qmx1ZXtcbiAgQGluY2x1ZGUgYm94R3JhZGllbnQoJGJveC1CRy1CbHVlLCAkYm94LUdyYWQtVXBwZXItVG9wLUJsdWUsICRib3gtR3JhZC1VcHBlci1Cb3R0b20tQmx1ZSwgJGJveC1HcmFkLUxvd2VyLVRvcC1CbHVlLCAkYm94LUdyYWQtTG93ZXItQm90dG9tLUJsdWUpO1xufVxuXG5AbWl4aW4gYm94R3JhZGllbnREYXJrR3JlZW57XG4gIEBpbmNsdWRlIGJveEdyYWRpZW50KCRib3gtQkctRGFyay1HcmVlbiwgJGJveC1HcmFkLVVwcGVyLVRvcC1EYXJrLUdyZWVuLCAkYm94LUdyYWQtVXBwZXItQm90dG9tLURhcmstR3JlZW4sICRib3gtR3JhZC1Mb3dlci1Ub3AtRGFyay1HcmVlbiwgJGJveC1HcmFkLUxvd2VyLUJvdHRvbS1EYXJrLUdyZWVuKTtcbn1cblxuQG1peGluIGJveEdyYWRpZW50UmVke1xuICBAaW5jbHVkZSBib3hHcmFkaWVudCgkYm94LUJHLVJlZCwgJGJveC1HcmFkLVVwcGVyLVRvcC1SZWQsICRib3gtR3JhZC1VcHBlci1Cb3R0b20tUmVkLCAkYm94LUdyYWQtTG93ZXItVG9wLVJlZCwgJGJveC1HcmFkLUxvd2VyLUJvdHRvbS1SZWQpO1xufVxuXG5AbWl4aW4gYm94U2hhZG93e1xuICBib3gtc2hhZG93OiA0cHggNHB4IDRweCAjYmJiO1xufVxuXG5AbWl4aW4gYm94eXtcbiAgQGluY2x1ZGUgYm94R3JhZGllbnRHcmV5O1xuICBAaW5jbHVkZSBib3hTaGFkb3c7XG4gIGNvbG9yOiAjZWVlO1xuXG4gIGEsIHN0cm9uZyB7XG4gICAgY29sb3I6IHdoaXRlO1xuICB9XG5cbiAgaDIge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gIH1cbn1cblxuQG1peGluIGxpZ2h0R3JlZW5Cb3h7XG4gIEBpbmNsdWRlIGJveCgkbGlnaHQtZ3JlZW4pO1xuICAmLGF7XG4gICAgY29sb3I6IGJsYWNrO1xuICB9XG59XG5cbiIsCgkJIlxuLyoqXG4gKiBCcmVha3BvaW50c1xuICovXG5cbkBpbXBvcnQgXCJtcVwiO1xuXG5cbkBtaXhpbiBtcXMoJGZyb206IGZhbHNlLCAkdW50aWw6IGZhbHNlKXtcbiAgQGluY2x1ZGUgbXEoJGZyb20sICR1bnRpbCwgJG1lZGlhLXR5cGU6IHNjcmVlbikge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8qKlxuICogSW5wdXQgY2FwYWJpbGl0aWVzXG4gKi9cblxuLy8gc21hcnRwaG9uZXMgYW5kIHRhYmxldHNcbkBtaXhpbiB0b3VjaC1zY3JlZW4taW5wdXQge1xuICBAbWVkaWEgKHBvaW50ZXI6IGNvYXJzZSlcbiAgYW5kIChob3Zlcjogbm9uZSl7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gTW91c2Ugb3IgdG91Y2ggcGFkXG5AbWl4aW4gbW91c2UtaW5wdXQge1xuICBAbWVkaWEgKHBvaW50ZXI6IGZpbmUpXG4gIGFuZCAoaG92ZXI6IGhvdmVyKXtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBTaG93IGZvciB0b3VjaCBzY3JlZW5zXG4vLyBhbmQgdXAgdW50aWwgdGFibGV0IGRldmljZSB3aWR0aCBmb3IgdGFibGV0cyBub3Qgc3VwcG9ydGluZyBpbnB1dCBtZWRpYSBxdWVyaWVzIGllLiBvbGQgQW5kcm9pZCA0LnhcbkBtaXhpbiB0b3VjaC1zY3JlZW4tZGV2aWNlc3tcbiAgQGluY2x1ZGUgdG91Y2gtc2NyZWVuLWlucHV0IHtcbiAgICBAY29udGVudDtcbiAgfVxuICBAaW5jbHVkZSBtcXMoJHVudGlsOiByZXNwb25zaXZlTWVudSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE5pbnRlbmRvIFdpaSBjb250cm9sbGVyLCBLaW5lY3QsIGV0Yy5cbkBtaXhpbiBjb25zb2xlLWlucHV0IHtcbiAgQG1lZGlhIChwb2ludGVyOiBjb2Fyc2UpXG4gIGFuZCAoaG92ZXI6IGhvdmVyKXtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBzdHlsdXMtYmFzZWQgc2NyZWVucyAoQ2ludGlxLCBXYWNvbSwgZXRjKVxuQG1peGluIGNvbnNvbGUtaW5wdXQge1xuICBAbWVkaWEgKHBvaW50ZXI6IGZpbmUpXG4gIGFuZCAoaG92ZXI6IG5vbmUpe1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIFJldGluYSBkaXNwbGF5cyAoMngpXG5AbWl4aW4gcmV0aW5hIHtcbiAgQG1lZGlhIChtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSksKC1vLW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDMvMiksXG4gICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSksKG1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSksKG1pbi1yZXNvbHV0aW9uOiAxLjVkcHB4KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsCgkJIkBjaGFyc2V0IFwiVVRGLThcIjsgLy8gRml4ZXMgYW4gaXNzdWUgd2hlcmUgUnVieSBsb2NhbGUgaXMgbm90IHNldCBwcm9wZXJseVxuICAgICAgICAgICAgICAgICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEvcHVsbC8xMFxuXG4vLy8gQmFzZSBmb250IHNpemUgb24gdGhlIGA8Ym9keT5gIGVsZW1lbnRcbi8vLyBAdHlwZSBOdW1iZXIgKHVuaXQpXG4kbXEtYmFzZS1mb250LXNpemU6IDE2cHggIWRlZmF1bHQ7XG5cbi8vLyBSZXNwb25zaXZlIG1vZGVcbi8vL1xuLy8vIFNldCB0byBgZmFsc2VgIHRvIGVuYWJsZSBzdXBwb3J0IGZvciBicm93c2VycyB0aGF0IGRvIG5vdCBzdXBwb3J0IEBtZWRpYSBxdWVyaWVzLFxuLy8vIChJRSA8PSA4LCBGaXJlZm94IDw9IDMsIE9wZXJhIDw9IDkpXG4vLy9cbi8vLyBZb3UgY291bGQgY3JlYXRlIGEgc3R5bGVzaGVldCBzZXJ2ZWQgZXhjbHVzaXZlbHkgdG8gb2xkZXIgYnJvd3NlcnMsXG4vLy8gd2hlcmUgQG1lZGlhIHF1ZXJpZXMgYXJlIHJhc3Rlcml6ZWRcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgLy8gb2xkLWllLnNjc3Ncbi8vLyAgJG1xLXJlc3BvbnNpdmU6IGZhbHNlO1xuLy8vICBAaW1wb3J0ICdtYWluJzsgLy8gQG1lZGlhIHF1ZXJpZXMgaW4gdGhpcyBmaWxlIHdpbGwgYmUgcmFzdGVyaXplZCB1cCB0byAkbXEtc3RhdGljLWJyZWFrcG9pbnRcbi8vLyAgICAgICAgICAgICAgICAgICAvLyBsYXJnZXIgYnJlYWtwb2ludHMgd2lsbCBiZSBpZ25vcmVkXG4vLy9cbi8vLyBAdHlwZSBCb29sZWFuXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNyZXNwb25zaXZlLW1vZGUtb2ZmIERpc2FibGVkIHJlc3BvbnNpdmUgbW9kZSBkb2N1bWVudGF0aW9uXG4kbXEtcmVzcG9uc2l2ZTogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJyZWFrcG9pbnQgbGlzdFxuLy8vXG4vLy8gTmFtZSB5b3VyIGJyZWFrcG9pbnRzIGluIGEgd2F5IHRoYXQgY3JlYXRlcyBhIHViaXF1aXRvdXMgbGFuZ3VhZ2Vcbi8vLyBhY3Jvc3MgdGVhbSBtZW1iZXJzLiBJdCB3aWxsIGltcHJvdmUgY29tbXVuaWNhdGlvbiBiZXR3ZWVuXG4vLy8gc3Rha2Vob2xkZXJzLCBkZXNpZ25lcnMsIGRldmVsb3BlcnMsIGFuZCB0ZXN0ZXJzLlxuLy8vXG4vLy8gQHR5cGUgTWFwXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNzZWVpbmctdGhlLWN1cnJlbnRseS1hY3RpdmUtYnJlYWtwb2ludCBGdWxsIGRvY3VtZW50YXRpb24gYW5kIGV4YW1wbGVzXG4kbXEtYnJlYWtwb2ludHM6IChcbiAgICBtb2JpbGU6ICAzMjBweCxcbiAgICB0YWJsZXQ6ICA3NDBweCxcbiAgICBkZXNrdG9wOiA5ODBweCxcbiAgICB3aWRlOiAgICAxMzAwcHhcbikgIWRlZmF1bHQ7XG5cbi8vLyBTdGF0aWMgYnJlYWtwb2ludCAoZm9yIGZpeGVkLXdpZHRoIGxheW91dHMpXG4vLy9cbi8vLyBEZWZpbmUgdGhlIGJyZWFrcG9pbnQgZnJvbSAkbXEtYnJlYWtwb2ludHMgdGhhdCBzaG91bGRcbi8vLyBiZSB1c2VkIGFzIHRoZSB0YXJnZXQgd2lkdGggZm9yIHRoZSBmaXhlZC13aWR0aCBsYXlvdXRcbi8vLyAoaS5lLiB3aGVuICRtcS1yZXNwb25zaXZlIGlzIHNldCB0byAnZmFsc2UnKSBpbiBhIG9sZC1pZS5zY3NzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gIC8vIHRhYmxldC1vbmx5LnNjc3Ncbi8vLyAgLy9cbi8vLyAgLy8gSWdub3JlIGFsbCBzdHlsZXMgYWJvdmUgdGFibGV0IGJyZWFrcG9pbnQsXG4vLy8gIC8vIGFuZCBmaXggdGhlIHN0eWxlcyAoZS5nLiBsYXlvdXQpIGF0IHRhYmxldCB3aWR0aFxuLy8vICAkbXEtcmVzcG9uc2l2ZTogZmFsc2U7XG4vLy8gICRtcS1zdGF0aWMtYnJlYWtwb2ludDogdGFibGV0O1xuLy8vICBAaW1wb3J0ICdtYWluJzsgLy8gQG1lZGlhIHF1ZXJpZXMgaW4gdGhpcyBmaWxlIHdpbGwgYmUgcmFzdGVyaXplZCB1cCB0byB0YWJsZXRcbi8vLyAgICAgICAgICAgICAgICAgICAvLyBsYXJnZXIgYnJlYWtwb2ludHMgd2lsbCBiZSBpZ25vcmVkXG4vLy9cbi8vLyBAdHlwZSBTdHJpbmdcbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI2FkZGluZy1jdXN0b20tYnJlYWtwb2ludHMgRnVsbCBkb2N1bWVudGF0aW9uIGFuZCBleGFtcGxlc1xuJG1xLXN0YXRpYy1icmVha3BvaW50OiBkZXNrdG9wICFkZWZhdWx0O1xuXG4vLy8gU2hvdyBicmVha3BvaW50cyBpbiB0aGUgdG9wIHJpZ2h0IGNvcm5lclxuLy8vXG4vLy8gSWYgeW91IHdhbnQgdG8gZGlzcGxheSB0aGUgY3VycmVudGx5IGFjdGl2ZSBicmVha3BvaW50IGluIHRoZSB0b3Bcbi8vLyByaWdodCBjb3JuZXIgb2YgeW91ciBzaXRlIGR1cmluZyBkZXZlbG9wbWVudCwgYWRkIHRoZSBicmVha3BvaW50c1xuLy8vIHRvIHRoaXMgbGlzdCwgb3JkZXJlZCBieSB3aWR0aCwgZS5nLiAobW9iaWxlLCB0YWJsZXQsIGRlc2t0b3ApLlxuLy8vXG4vLy8gQHR5cGUgbWFwXG4kbXEtc2hvdy1icmVha3BvaW50czogKCkgIWRlZmF1bHQ7XG5cbi8vLyBDdXN0b21pemUgdGhlIG1lZGlhIHR5cGUgKGUuZy4gYEBtZWRpYSBzY3JlZW5gIG9yIGBAbWVkaWEgcHJpbnRgKVxuLy8vIEJ5IGRlZmF1bHQgc2Fzcy1tcSB1c2VzIGFuIFwiYWxsXCIgbWVkaWEgdHlwZSAoYEBtZWRpYSBhbGwgYW5kIOKApmApXG4vLy9cbi8vLyBAdHlwZSBTdHJpbmdcbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI2NoYW5naW5nLW1lZGlhLXR5cGUgRnVsbCBkb2N1bWVudGF0aW9uIGFuZCBleGFtcGxlc1xuJG1xLW1lZGlhLXR5cGU6IGFsbCAhZGVmYXVsdDtcblxuLy8vIENvbnZlcnQgcGl4ZWxzIHRvIGVtc1xuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRweCAtIHZhbHVlIHRvIGNvbnZlcnRcbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UtZm9udC1zaXplICgkbXEtYmFzZS1mb250LXNpemUpIC0gYDxib2R5PmAgZm9udCBzaXplXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICRmb250LXNpemUtaW4tZW1zOiBtcS1weDJlbSgxNnB4KTtcbi8vLyAgcCB7IGZvbnQtc2l6ZTogbXEtcHgyZW0oMTZweCk7IH1cbi8vL1xuLy8vIEByZXF1aXJlcyAkbXEtYmFzZS1mb250LXNpemVcbi8vLyBAcmV0dXJucyB7TnVtYmVyfVxuQGZ1bmN0aW9uIG1xLXB4MmVtKCRweCwgJGJhc2UtZm9udC1zaXplOiAkbXEtYmFzZS1mb250LXNpemUpIHtcbiAgICBAaWYgdW5pdGxlc3MoJHB4KSB7XG4gICAgICAgIEB3YXJuIFwiQXNzdW1pbmcgI3skcHh9IHRvIGJlIGluIHBpeGVscywgYXR0ZW1wdGluZyB0byBjb252ZXJ0IGl0IGludG8gcGl4ZWxzLlwiO1xuICAgICAgICBAcmV0dXJuIG1xLXB4MmVtKCRweCAqIDFweCwgJGJhc2UtZm9udC1zaXplKTtcbiAgICB9IEBlbHNlIGlmIHVuaXQoJHB4KSA9PSBlbSB7XG4gICAgICAgIEByZXR1cm4gJHB4O1xuICAgIH1cbiAgICBAcmV0dXJuICgkcHggLyAkYmFzZS1mb250LXNpemUpICogMWVtO1xufVxuXG4vLy8gR2V0IGEgYnJlYWtwb2ludCdzIHdpZHRoXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG5hbWUgLSBOYW1lIG9mIHRoZSBicmVha3BvaW50LiBPbmUgb2YgJG1xLWJyZWFrcG9pbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICR0YWJsZXQtd2lkdGg6IG1xLWdldC1icmVha3BvaW50LXdpZHRoKHRhYmxldCk7XG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aChkZXNrdG9wKSkge31cbi8vL1xuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1icmVha3BvaW50c1xuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVmFsdWUgaW4gcGl4ZWxzXG5AZnVuY3Rpb24gbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJG5hbWUsICRicmVha3BvaW50czogJG1xLWJyZWFrcG9pbnRzKSB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJG5hbWUpIHtcbiAgICAgICAgQHJldHVybiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICBAd2FybiBcIkJyZWFrcG9pbnQgI3skbmFtZX0gd2Fzbid0IGZvdW5kIGluICRicmVha3BvaW50cy5cIjtcbiAgICB9XG59XG5cbi8vLyBNZWRpYSBRdWVyeSBtaXhpblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBCb29sZWFufSAkZnJvbSAoZmFsc2UpIC0gT25lIG9mICRtcS1icmVha3BvaW50c1xuLy8vIEBwYXJhbSB7U3RyaW5nIHwgQm9vbGVhbn0gJHVudGlsIChmYWxzZSkgLSBPbmUgb2YgJG1xLWJyZWFrcG9pbnRzXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBCb29sZWFufSAkYW5kIChmYWxzZSkgLSBBZGRpdGlvbmFsIG1lZGlhIHF1ZXJ5IHBhcmFtZXRlcnNcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lZGlhLXR5cGUgKCRtcS1tZWRpYS10eXBlKSAtIE1lZGlhIHR5cGU6IHNjcmVlbiwgcHJpbnTigKZcbi8vL1xuLy8vIEBpZ25vcmUgVW5kb2N1bWVudGVkIEFQSSwgZm9yIGFkdmFuY2VkIHVzZSBvbmx5OlxuLy8vIEBpZ25vcmUgQHBhcmFtIHtNYXB9ICRicmVha3BvaW50cyAoJG1xLWJyZWFrcG9pbnRzKVxuLy8vIEBpZ25vcmUgQHBhcmFtIHtTdHJpbmd9ICRzdGF0aWMtYnJlYWtwb2ludCAoJG1xLXN0YXRpYy1icmVha3BvaW50KVxuLy8vXG4vLy8gQGNvbnRlbnQgc3R5bGluZyBydWxlcywgd3JhcHBlZCBpbnRvIGEgQG1lZGlhIHF1ZXJ5IHdoZW4gJHJlc3BvbnNpdmUgaXMgdHJ1ZVxuLy8vXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLW1lZGlhLXR5cGVcbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtYnJlYWtwb2ludHNcbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtc3RhdGljLWJyZWFrcG9pbnRcbi8vLyBAcmVxdWlyZXMge2Z1bmN0aW9ufSBtcS1weDJlbVxuLy8vIEByZXF1aXJlcyB7ZnVuY3Rpb259IG1xLWdldC1icmVha3BvaW50LXdpZHRoXG4vLy9cbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI3Jlc3BvbnNpdmUtbW9kZS1vbi1kZWZhdWx0IEZ1bGwgZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZXNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgLmVsZW1lbnQge1xuLy8vICAgIEBpbmNsdWRlIG1xKCRmcm9tOiBtb2JpbGUpIHtcbi8vLyAgICAgIGNvbG9yOiByZWQ7XG4vLy8gICAgfVxuLy8vICAgIEBpbmNsdWRlIG1xKCR1bnRpbDogdGFibGV0KSB7XG4vLy8gICAgICBjb2xvcjogYmx1ZTtcbi8vLyAgICB9XG4vLy8gICAgQGluY2x1ZGUgbXEobW9iaWxlLCB0YWJsZXQpIHtcbi8vLyAgICAgIGNvbG9yOiBncmVlbjtcbi8vLyAgICB9XG4vLy8gICAgQGluY2x1ZGUgbXEoJGZyb206IHRhYmxldCwgJGFuZDogJyhvcmllbnRhdGlvbjogbGFuZHNjYXBlKScpIHtcbi8vLyAgICAgIGNvbG9yOiB0ZWFsO1xuLy8vICAgIH1cbi8vLyAgICBAaW5jbHVkZSBtcSg5NTBweCkge1xuLy8vICAgICAgY29sb3I6IGhvdHBpbms7XG4vLy8gICAgfVxuLy8vICAgIEBpbmNsdWRlIG1xKHRhYmxldCwgJG1lZGlhLXR5cGU6IHNjcmVlbikge1xuLy8vICAgICAgY29sb3I6IGhvdHBpbms7XG4vLy8gICAgfVxuLy8vICAgIC8vIEFkdmFuY2VkIHVzZTpcbi8vLyAgICAkbXktYnJlYWtwb2ludHM6IChMOiA5MDBweCwgWEw6IDEyMDBweCk7XG4vLy8gICAgQGluY2x1ZGUgbXEoTCwgJGJyZWFrcG9pbnRzOiAkbXktYnJlYWtwb2ludHMsICRzdGF0aWMtYnJlYWtwb2ludDogTCkge1xuLy8vICAgICAgY29sb3I6IGhvdHBpbms7XG4vLy8gICAgfVxuLy8vICB9XG5AbWl4aW4gbXEoXG4gICAgJGZyb206IGZhbHNlLFxuICAgICR1bnRpbDogZmFsc2UsXG4gICAgJGFuZDogZmFsc2UsXG4gICAgJG1lZGlhLXR5cGU6ICRtcS1tZWRpYS10eXBlLFxuICAgICRicmVha3BvaW50czogJG1xLWJyZWFrcG9pbnRzLFxuICAgICRyZXNwb25zaXZlOiAkbXEtcmVzcG9uc2l2ZSxcbiAgICAkc3RhdGljLWJyZWFrcG9pbnQ6ICRtcS1zdGF0aWMtYnJlYWtwb2ludFxuKSB7XG4gICAgJG1pbi13aWR0aDogMDtcbiAgICAkbWF4LXdpZHRoOiAwO1xuICAgICRtZWRpYS1xdWVyeTogJyc7XG5cbiAgICAvLyBGcm9tOiB0aGlzIGJyZWFrcG9pbnQgKGluY2x1c2l2ZSlcbiAgICBAaWYgJGZyb20ge1xuICAgICAgICBAaWYgdHlwZS1vZigkZnJvbSkgPT0gbnVtYmVyIHtcbiAgICAgICAgICAgICRtaW4td2lkdGg6IG1xLXB4MmVtKCRmcm9tKTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAkbWluLXdpZHRoOiBtcS1weDJlbShtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkZnJvbSwgJGJyZWFrcG9pbnRzKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBVbnRpbDogdGhhdCBicmVha3BvaW50IChleGNsdXNpdmUpXG4gICAgQGlmICR1bnRpbCB7XG4gICAgICAgIEBpZiB0eXBlLW9mKCR1bnRpbCkgPT0gbnVtYmVyIHtcbiAgICAgICAgICAgICRtYXgtd2lkdGg6IG1xLXB4MmVtKCR1bnRpbCk7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgJG1heC13aWR0aDogbXEtcHgyZW0obXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJHVudGlsLCAkYnJlYWtwb2ludHMpKSAtIC4wMWVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmVzcG9uc2l2ZSBzdXBwb3J0IGlzIGRpc2FibGVkLCByYXN0ZXJpemUgdGhlIG91dHB1dCBvdXRzaWRlIEBtZWRpYSBibG9ja3NcbiAgICAvLyBUaGUgYnJvd3NlciB3aWxsIHJlbHkgb24gdGhlIGNhc2NhZGUgaXRzZWxmLlxuICAgIEBpZiAkcmVzcG9uc2l2ZSA9PSBmYWxzZSB7XG4gICAgICAgICRzdGF0aWMtYnJlYWtwb2ludC13aWR0aDogbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJHN0YXRpYy1icmVha3BvaW50LCAkYnJlYWtwb2ludHMpO1xuICAgICAgICAkdGFyZ2V0LXdpZHRoOiBtcS1weDJlbSgkc3RhdGljLWJyZWFrcG9pbnQtd2lkdGgpO1xuXG4gICAgICAgIC8vIE91dHB1dCBvbmx5IHJ1bGVzIHRoYXQgc3RhcnQgYXQgb3Igc3BhbiBvdXIgdGFyZ2V0IHdpZHRoXG4gICAgICAgIEBpZiAoXG4gICAgICAgICAgICAkYW5kID09IGZhbHNlXG4gICAgICAgICAgICBhbmQgJG1pbi13aWR0aCA8PSAkdGFyZ2V0LXdpZHRoXG4gICAgICAgICAgICBhbmQgKFxuICAgICAgICAgICAgICAgICR1bnRpbCA9PSBmYWxzZSBvciAkbWF4LXdpZHRoID49ICR0YXJnZXQtd2lkdGhcbiAgICAgICAgICAgIClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgIH0gQGVsc2UgeyAvLyBSZXNwb25zaXZlIHN1cHBvcnQgaXMgZW5hYmxlZCwgb3V0cHV0IHJ1bGVzIGluc2lkZSBAbWVkaWEgcXVlcmllc1xuICAgICAgICBAaWYgJG1pbi13aWR0aCAhPSAwIHsgJG1lZGlhLXF1ZXJ5OiAnI3skbWVkaWEtcXVlcnl9IGFuZCAobWluLXdpZHRoOiAjeyRtaW4td2lkdGh9KSc7IH1cbiAgICAgICAgQGlmICRtYXgtd2lkdGggIT0gMCB7ICRtZWRpYS1xdWVyeTogJyN7JG1lZGlhLXF1ZXJ5fSBhbmQgKG1heC13aWR0aDogI3skbWF4LXdpZHRofSknOyB9XG4gICAgICAgIEBpZiAkYW5kICAgICAgICAgICAgeyAkbWVkaWEtcXVlcnk6ICcjeyRtZWRpYS1xdWVyeX0gYW5kICN7JGFuZH0nOyB9XG5cbiAgICAgICAgLy8gUmVtb3ZlIHVubmVjZXNzYXJ5IG1lZGlhIHF1ZXJ5IHByZWZpeCAnYWxsIGFuZCAnXG4gICAgICAgIEBpZiAoJG1lZGlhLXR5cGUgPT0gJ2FsbCcgYW5kICRtZWRpYS1xdWVyeSAhPSAnJykge1xuICAgICAgICAgICAgJG1lZGlhLXR5cGU6ICcnO1xuICAgICAgICAgICAgJG1lZGlhLXF1ZXJ5OiBzdHItc2xpY2UodW5xdW90ZSgkbWVkaWEtcXVlcnkpLCA2KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSAjeyRtZWRpYS10eXBlICsgJG1lZGlhLXF1ZXJ5fSB7XG4gICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8vIEFkZCBhIGJyZWFrcG9pbnRcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbmFtZSAtIE5hbWUgb2YgdGhlIGJyZWFrcG9pbnRcbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIC0gV2lkdGggb2YgdGhlIGJyZWFrcG9pbnRcbi8vL1xuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1icmVha3BvaW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICBAaW5jbHVkZSBtcS1hZGQtYnJlYWtwb2ludCh0dnNjcmVlbiwgMTkyMHB4KTtcbi8vLyAgQGluY2x1ZGUgbXEodHZzY3JlZW4pIHt9XG5AbWl4aW4gbXEtYWRkLWJyZWFrcG9pbnQoJG5hbWUsICR3aWR0aCkge1xuICAgICRuZXctYnJlYWtwb2ludDogKCRuYW1lOiAkd2lkdGgpO1xuICAgICRtcS1icmVha3BvaW50czogbWFwLW1lcmdlKCRtcS1icmVha3BvaW50cywgJG5ldy1icmVha3BvaW50KSAhZ2xvYmFsO1xufVxuXG4vLy8gU2hvdyB0aGUgYWN0aXZlIGJyZWFrcG9pbnQgaW4gdGhlIHRvcCByaWdodCBjb3JuZXIgb2YgdGhlIHZpZXdwb3J0XG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNzZWVpbmctdGhlLWN1cnJlbnRseS1hY3RpdmUtYnJlYWtwb2ludFxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2hvdy1icmVha3BvaW50cyAoJG1xLXNob3ctYnJlYWtwb2ludHMpIC0gTGlzdCBvZiBicmVha3BvaW50cyB0byBzaG93IGluIHRoZSB0b3AgcmlnaHQgY29ybmVyXG4vLy8gQHBhcmFtIHtNYXB9ICRicmVha3BvaW50cyAoJG1xLWJyZWFrcG9pbnRzKSAtIEJyZWFrcG9pbnQgbmFtZXMgYW5kIHNpemVzXG4vLy9cbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtYnJlYWtwb2ludHNcbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtc2hvdy1icmVha3BvaW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAvLyBTaG93IGJyZWFrcG9pbnRzIHVzaW5nIGdsb2JhbCBzZXR0aW5nc1xuLy8vICBAaW5jbHVkZSBtcS1zaG93LWJyZWFrcG9pbnRzO1xuLy8vXG4vLy8gIC8vIFNob3cgYnJlYWtwb2ludHMgdXNpbmcgY3VzdG9tIHNldHRpbmdzXG4vLy8gIEBpbmNsdWRlIG1xLXNob3ctYnJlYWtwb2ludHMoKEwsIFhMKSwgKFM6IDMwMHB4LCBMOiA4MDBweCwgWEw6IDEyMDBweCkpO1xuQG1peGluIG1xLXNob3ctYnJlYWtwb2ludHMoJHNob3ctYnJlYWtwb2ludHM6ICRtcS1zaG93LWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludHM6ICRtcS1icmVha3BvaW50cykge1xuICAgIGJvZHk6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZDRjhFMztcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNGQkVFRDU7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI0ZCRUVENTtcbiAgICAgICAgY29sb3I6ICNDMDk4NTM7XG4gICAgICAgIGZvbnQ6IHNtYWxsLWNhcHRpb247XG4gICAgICAgIHBhZGRpbmc6IDNweCA2cHg7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHotaW5kZXg6IDEwMDtcblxuICAgICAgICAvLyBMb29wIHRocm91Z2ggdGhlIGJyZWFrcG9pbnRzIHRoYXQgc2hvdWxkIGJlIHNob3duXG4gICAgICAgIEBlYWNoICRzaG93LWJyZWFrcG9pbnQgaW4gJHNob3ctYnJlYWtwb2ludHMge1xuICAgICAgICAgICAgJHdpZHRoOiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkc2hvdy1icmVha3BvaW50LCAkYnJlYWtwb2ludHMpO1xuICAgICAgICAgICAgQGluY2x1ZGUgbXEoJHNob3ctYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzOiAkYnJlYWtwb2ludHMpIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIiN7JHNob3ctYnJlYWtwb2ludH0g4omlICN7JHdpZHRofSAoI3ttcS1weDJlbSgkd2lkdGgpfSlcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGlmIGxlbmd0aCgkbXEtc2hvdy1icmVha3BvaW50cykgPiAwIHtcbiAgICBAaW5jbHVkZSBtcS1zaG93LWJyZWFrcG9pbnRzO1xufVxuIiwKCQkiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiogVG91Y2ggZGV2aWNlc1xyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuQGltcG9ydCBcImdlbmVyYWxfbWl4aW5zXCI7XHJcblxyXG5AbWl4aW4gYm94LXNoYWRvd3tcclxuICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLDAsMCwuMTUpO1xyXG59XHJcblxyXG5AbWl4aW4gdG91Y2gtc2NyZWVuLXN0eWxlcyB7XHJcblxyXG4gIC8vIEJ1dHRvbnNcclxuICBbZGF0YS1yb2xlPVwiYnV0dG9uXCJdOm5vdCgubm9uLXJlc3BvbnNpdmUpe1xyXG4gICAgQGluY2x1ZGUgYm94LXNoYWRvdztcclxuXHJcbiAgICBjb2xvcjogIzMzMyAhaW1wb3J0YW50O1xyXG4gICAgYmFja2dyb3VuZDogI2VlZTtcclxuXHJcbiAgICBib3JkZXItY29sb3I6ICNkZGQ7XHJcbiAgICBib3JkZXItd2lkdGg6IDFweDtcclxuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcblxyXG5cclxuICAgIG1hcmdpbjogLjVlbSAwO1xyXG4gICAgcGFkZGluZzogLjdlbSAxZW07XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICBmb250LXNpemU6IDE2cHg7XHJcblxyXG4gICAgJjpob3ZlciwgJjphY3RpdmV7XHJcbiAgICAgIGJhY2tncm91bmQ6ICNlOGYwZmY7XHJcbiAgICB9XHJcblxyXG4gICAgJltkYXRhLWljb25de1xyXG4gICAgICBwYWRkaW5nLWxlZnQ6IDMycHg7XHJcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDhweDtcclxuICAgICAgaXtcclxuICAgICAgICBAaW5jbHVkZSBjZW50cmVZO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICBsZWZ0OiA4cHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmLmdyZWVuIHtcclxuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgIzhkZGRhMCAwJSwgIzNkZGI4YyA1MCUsICM4ZGRkYTAgMTAwJSk7XHJcbiAgICAgIGJvcmRlci1jb2xvcjogIzJiNmIzNztcclxuICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC41KTsgLy9oZWF2aWVyIHNoYWRvdyBvbiBkYXJrIGdyZWVuIGJnXHJcbiAgICAgICY6aG92ZXIsICY6YWN0aXZlIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjZGNmNGUxIDAlLCAjM2RkYjhjIDUwJSwgI2RjZjRlMSAxMDAlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgJi5ibHVle1xyXG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICM4ZGMwZGQgMCUsIzNkYWNkYiA1MCUsIzhkYzBkZCAxMDAlKTtcclxuICAgICAgICBib3JkZXItY29sb3I6ICMxMjYxNjc7XHJcbiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4zKTtcclxuICAgICAgICAmOmhvdmVyLCAmOmFjdGl2ZXtcclxuICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNkY2UxZjQgMCUsIzZlYWNlYiA1MCUsI2RjZTFmNCAxMDAlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBMaXN0dmlld3NcclxuICBbZGF0YS1yb2xlPVwibGlzdHZpZXdcIl06bm90KC5ub24tcmVzcG9uc2l2ZSl7XHJcbiAgICBAaW5jbHVkZSBib3h5O1xyXG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xyXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcclxuXHJcblxyXG4gICAgPmxpe1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTtcclxuICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICBwYWRkaW5nOiA4cHggMTZweCA4cHggOHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgICBib3JkZXItY29sb3I6ICNkZGQ7XHJcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICAgIGJvcmRlci13aWR0aDogMXB4IDFweCAwIDFweDtcclxuICAgICAgZm9udC1zaXplOiAxNnB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgIEBpbmNsdWRlIG1xcygkdW50aWw6IHRhYmxldDdpbmNoKSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGF7XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICAgICAgZm9udC1zaXplOiAxNnB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgQGluY2x1ZGUgbXFzKCR1bnRpbDogdGFibGV0N2luY2gpIHtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgICY6YWZ0ZXJ7XHJcbiAgICAgICAgICBjb250ZW50OiAnPic7XHJcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICByaWdodDogNHB4O1xyXG4gICAgICAgICAgZm9udC1zaXplOiAxNnB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICBAaW5jbHVkZSBtcXMoJHVudGlsOiB0YWJsZXQ3aW5jaCkge1xyXG4gICAgICAgICAgICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIExpbmsgbGlzdHNcclxuICA6bm90KC5ub24tcmVzcG9uc2l2ZSk6bm90KFtkYXRhLXJvbGVdKTpub3QoW3JvbGVdKSA+IGxpID4gYTpvbmx5LWNoaWxke1xyXG4gICAgcGFkZGluZzogOHB4IDA7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuIiwKCQkiLyoqXG4qIERpc3BsYXkgYSBmdWxsLXdpZHRoIHBob3RvIHdpdGggYSB3aGl0ZSBib3JkZXJcbiovXG5cbiNtYWluLXBob3RvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgaW1nIHtcbiAgICBwb3NpdGlvbjpyZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cblxuICAuaW1hZ2UtYm9yZGVyIHtcbiAgICBkaXNwbGF5OmJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAxMHB4O1xuICAgIHRvcDogMTBweDtcbiAgICByaWdodDogMTBweDtcbiAgICBib3R0b206IDEwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgd2hpdGU7XG4gIH1cdFxufVxuIiwKCQkiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gT3ZlcnZpZXcgTWFwIGFuZCBzdW1tYXJ5XG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuI3N1bW1hcnkge1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgLm1hcC1idXR0b257XG4gICAgQGluY2x1ZGUgYm94R3JhZGllbnRHcmV5O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHotaW5kZXg6IDkwMDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLThweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgd2lkdGg6IDE0MHB4O1xuICAgIHBhZGRpbmc6IDRweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICY6YmVmb3JlLCAmOmFmdGVye1xuICAgICAgei1pbmRleDogOTAxO1xuICAgIH1cblxuICAgID4gKntcbiAgICAgIHotaW5kZXg6IDkwMjtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgfVxuICAgIH1cblxuICAgICYjZnVsbC1zY3JlZW4tbWFwIHtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgYm9yZGVyLXJhZGl1czogMCAwIDAgNHB4O1xuXHQgIGRpc3BsYXk6IG5vbmU7IC8vVE9ETyBIaWRlIHVudGlsIG1hcCB0ZW1wbGF0ZSBpcyByZXdvcmtlZCB0byB1c2UgT1NNXG4gICAgfVxuICB9XG59XG5cbiNjYXZlYXRzIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xufVxuXG4jc3VtbWFyeS1jb250YWluZXIge1xuICBAaW5jbHVkZSBib3hHcmFkaWVudEdyZXk7XG4gIHBhZGRpbmc6IDhweDtcbn1cblxuI21hcC1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kOndoaXRlO1xuICBcbiAgQGluY2x1ZGUgbXFzKCRmcm9tOiB0YWJsZXQ3aW5jaCkge1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgfVxuXG4gIC5tYXAge1xuICAgIHdpZHRoOiA1MjBweDtcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDQ0MHB4O1xuXG4gICAgQGF0LXJvb3R7XG4gICAgICBib2R5LndhbGstcmVhZHkgI3smfSB7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbXFzKCR1bnRpbDogcGFnZSkge1xuICAgICAgd2lkdGg6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgICAgICYsICp7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI29zbS1tYXB7XG4gICAgYXtcbiAgICAgIGNvbG9yOiBibGFjayAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuIiwKCQkiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiBEaXJlY3Rpb25zXHJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5cclxuI3RvZ2dsZS1kaXJlY3Rpb25ze1xyXG4gIG1hcmdpbi10b3A6IDE2cHg7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIFxyXG4gIGRpc3BsYXk6bm9uZTsgLyogZGlzYWJsZWQgYXMgdG9vIG1hbnkgcmVwb3J0cyBvZiB0aGlzIGJlaW5nIGFidXNlZCAqL1xyXG5cclxuICBAaW5jbHVkZSBtcXMoJGZyb206IHRhYmxldDdpbmNoKSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuXHJcbiAgW2RhdGEtcm9sZT1cImJ1dHRvblwiXXtcclxuICAgIEBpbmNsdWRlIGJveHk7XHJcblxyXG4gICAgKntcclxuICAgICAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgaXtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgc3BhbntcclxuICAgICAgbWFyZ2luLWxlZnQ6IDE2cHg7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4jZGlyZWN0aW9ucyB7XHJcbiAgbWFyZ2luLXRvcDogMzJweDtcclxuICBjbGVhcjpsZWZ0O1xyXG5cclxuICBAaW5jbHVkZSBtcXMoJHVudGlsOiB0YWJsZXQ3aW5jaCkge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcblxyXG4gIC5tYXAtb25seXtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG5cclxuICBzcGFuLmludHJvIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG5cclxuICBoMiB7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2FhYTtcclxuICB9XHJcblxyXG4gID5vbCB7XHJcbiAgICBtYXJnaW4tdG9wOjE2cHg7XHJcbiAgICBwYWRkaW5nLWxlZnQ6MjRweDtcclxuICB9XHJcbiAgPm9sPmxpIHtcclxuICAgIG1hcmdpbi1ib3R0b206MTZweDtcclxuICB9XHJcbiAgPm9sPmxpPnAge1xyXG4gICAgZGlzcGxheTppbmxpbmU7IC8qIG9ubHkgc3BsaXQgaW50byBwYXJhZ3JhcGhzIGluIHRoZSBhcHAsIG5vdCBpbiB0aGUgUERGcyAqL1xyXG4gIH1cclxuXHJcblxyXG4gIC5xdW90ZSB7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xyXG4gICAgYmFja2dyb3VuZDogd2hpdGU7XHJcbiAgICBmb250LWZhbWlseTogUGFsYXRpbm8sIHNlcmlmO1xyXG4gICAgZm9udC1zaXplOiAxNHB0O1xyXG4gICAgYm9yZGVyLXJhZGl1czo0cHg7XHJcbiAgICBwYWRkaW5nOiA0cHggMTJweCAxMnB4IDEycHg7XHJcbiAgICBtYXJnaW4tbGVmdDogMTZweDtcclxuICAgIG1hcmdpbi1yaWdodDogMTZweDtcclxuXHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgIGNvbnRlbnQ6ICdcXDIwMUMnO1xyXG4gICAgICBmb250LWZhbWlseTogVGltZXMgTmV3IFJvbWFuO1xyXG4gICAgICBmb250LXNpemU6IDI0cHQ7XHJcbiAgICAgIGNvbG9yOiAjY2NjO1xyXG4gICAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uZmVhdHVyZS1ib3gge1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XHJcbiAgYm9yZGVyLXJhZGl1czo0cHg7XHJcbiAgYmFja2dyb3VuZDogI2VlZTtcclxuICBwYWRkaW5nOiA4cHg7XHJcbiAgbWFyZ2luLXRvcDogNHB4O1xyXG4gIG1hcmdpbi1ib3R0b206IDRweDtcclxuXHJcbiAgLypubyBnYXAgYXQgdG9wIG9mIGZpcnN0IHAqL1xyXG4gIHA6Zmlyc3QtY2hpbGQge1xyXG4gICAgbWFyZ2luLXRvcDowO1xyXG4gIH1cclxuXHJcbiAgLyouLi5idXQgZ2FwIG9uIGZpcnN0IHAgYmV0d2VlbiBtdWx0aXBsZSBkaXZzIGluIHRoZSBmZWF0dXJlIGJveCwgdG8gc3BhY2UgdGhlbSBhcGFydCovXHJcbiAgZGl2IHA6Zmlyc3QtY2hpbGQge1xyXG4gICAgbWFyZ2luLXRvcDo4cHg7XHJcbiAgfVxyXG5cclxuICAvKi4uLmJ1dCBub3QgdGhlIGZpcnN0IG9uZSovXHJcbiAgZGl2OmZpcnN0LWNoaWxkICBwOmZpcnN0LWNoaWxkIHtcclxuICAgIG1hcmdpbi10b3A6MDtcclxuICB9XHJcblxyXG4gIC8qbm8gZ2FwIGF0IGJvdHRvbSBvZiBsYXN0IHAqL1xyXG4gIHA6bGFzdC1jaGlsZCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOjA7XHJcbiAgfVxyXG5cclxuICB1bD5saSB7XHJcbiAgICBsaXN0LXN0eWxlLXR5cGU6IHNxdWFyZTtcclxuICB9XHJcbiAgXHJcbiAgcC5tb3JlLWluZm8ge1xyXG4gICAgZGlzcGxheTpub25lO1xyXG4gIH1cclxufVxyXG5cclxuLmFwcC1vbmx5IHtcclxuICBkaXNwbGF5Om5vbmU7XHJcbn1cclxuXHJcbiNsaWtlX29uX2ZhY2Vib29rIHtcclxuICBtYXJnaW4tdG9wOiAyNHB4O1xyXG59IiwKCQkiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiBQb3N0LXByaW50IGNvbnRyaWJ1dGUgcG9wdXBcclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbi5jb250cmlidXRlLXBvcHVwe1xyXG4gIEBpbmNsdWRlIG1xcygkZnJvbTogdGFibGV0N2luY2gpIHtcclxuICAgIC5wcm9tby1jb250YWluZXJ7XHJcbiAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICBtYXgtd2lkdGg6IDMyMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5ib2R5e1xyXG4gICAgICBtYXJnaW4tbGVmdDogMzM2cHg7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBpbmNsdWRlIG1xcygkdW50aWw6IHRhYmxldDdpbmNoKSB7XHJcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSAyMHB4KTtcclxuICAgIC5wcm9tby1jb250YWluZXJ7XHJcbiAgICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5wcm9tb3N7XHJcbiAgICBtYXJnaW46IDAgYXV0bztcclxuICB9XHJcblxyXG4gIGgye1xyXG4gICAgbWFyZ2luLXRvcDogMDtcclxuICB9XHJcblxyXG4gIC5wYXlwYWwtYnV0dG9ue1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcclxuICAgIGZvcm17XHJcbiAgICAgIGRpc3BsYXk6aW5saW5lO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmRpc2NsYWltZXJ7XHJcbiAgICBjbGVhcjogbGVmdDtcclxuICAgIG1hcmdpbi10b3A6IDhweDtcclxuICB9XHJcbn0iLAoJCSIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiBQcmUtcHJpbnQgYnV5IHdhbGsgcG9wdXBcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLmJ1eS13YWxrLXBvcHVwLC5idXktcGRmLXBvcHVwIHtcbiAgQGluY2x1ZGUgbXFzKCRmcm9tOiB0YWJsZXQ3aW5jaCkge1xuXHRcbiAgICAuYnV5LWFwcCB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTp1cmwoJy9pbWFnZXMvZ3JhcGhpY3MvYnV5X2FwcC5qcGcnKTtcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XG5cdFx0bWFyZ2luLWJvdHRvbTo2NHB4O1xuXHR9XG5cdC5idXktcGRmIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOnVybCgnL2ltYWdlcy9ncmFwaGljcy9idXlfcGRmX2xlYWZsZXRzLnBuZycpOyAgICAgIFxuXHRcdGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtcbiAgICB9XG5cbiAgICAuYnV5LWFwcCAuY29udGVudCwgLmJ1eS1wZGYgLmNvbnRlbnQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDMyMHB4O1xuXHQgIG1pbi1oZWlnaHQ6IDI1MHB4O1xuICAgIH1cblxuXHQucmVjb21tZW5kZWQge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6dXJsKCcvaW1hZ2VzL2dyYXBoaWNzL3JlY29tbWVuZGVkLnBuZycpOyAgICAgIFxuXHRcdGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCB0b3A7XG4gICAgfVxuXHRcbiAgfVxuICBAaW5jbHVkZSBtcXMoJHVudGlsOiB0YWJsZXQ3aW5jaCkge1xuICAgIG1heC13aWR0aDogY2FsYygxMDB2dyAtIDEwMHB4KTtcbiAgfVxuXG4gIC5wYXlwYWwtYnV0dG9uLCAuYnV5LWJ1dHRvbntcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdG1hcmdpbjogMzZweDtcbiAgfVxuXG4gIC5wYXlwYWwtYnV0dG9ue1xuICAgIGZvcm17XG4gICAgICBkaXNwbGF5OmlubGluZTtcbiAgICB9XG4gIH1cblxufSIsCgkJIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuIFdhbGsgcGhvdG9zIHNsaWRlc2hvdyB1c2luZyBsaWdodGdhbGxlcnkgLSB3YWxrIGxlYWYgcGFnZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5AaW1wb3J0IFwiLi4vQGluY2x1ZGUvY29tcG9uZW50L2xpZ2h0Z2FsbGVyeVwiO1xuXG4kd2lkdGg6IDUyMHB4O1xuJGhlaWdodDogMzk0cHg7XG4kYXNwZWN0OiBwZXJjZW50YWdlKCRoZWlnaHQgLyAkd2lkdGgpO1xuXG5cbkBtaXhpbiBkdWFsQ29se1xuICB3aWR0aDogNTIwcHg7XG4gIGhlaWdodDogMzk0cHg7XG59XG5cbkBtaXhpbiBzaW5nbGVDb2x7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAkYXNwZWN0O1xufVxuXG4jcGhvdG9zLmxpZ2h0Z2FsbGVyeXtcbiAgQGF0LXJvb3R7XG4gICAgYm9keS5jb2wtZHVhbCAjeyZ9IHtcbiAgICAgIEBpbmNsdWRlIGR1YWxDb2w7XG5cbiAgICAgICY6bm90KC5mdWxsc2NyZWVuKSAubGctY29udGFpbmVye1xuICAgICAgICBAaW5jbHVkZSBkdWFsQ29sO1xuICAgICAgfVxuICAgIH1cblxuICAgIGJvZHkuY29sLXNpbmdsZSAjeyZ9IHtcbiAgICAgIEBpbmNsdWRlIHNpbmdsZUNvbDtcbiAgICAgICY6bm90KC5mdWxsc2NyZWVuKSAubGctY29udGFpbmVye1xuICAgICAgICBAaW5jbHVkZSBzaW5nbGVDb2w7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJjphZnRlcntcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbn1cbiIsCgkJIi8qXG4gKiBMaWdodGdhbGxlcnkgcGhvdG8gc2xpZGVzaG93XG4gKi9cbi5saWdodGdhbGxlcnl7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAmLmZ1bGxzY3JlZW57XG4gICAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuXG4gICAgLmxpZ2h0R2FsbGVyeS1jYXB0aW9ucyBwe1xuICAgICAgZm9udC1zaXplOiAxNnB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgJjpub3QoLmZ1bGxzY3JlZW4pe1xuICAgIC5sZy1uZXh0LCAubGctcHJldntcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLmxpZ2h0R2FsbGVyeS1jYXB0aW9uc3tcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1zaGFkb3c6IDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgICY6OmJlZm9yZXtcbiAgICAgIGNvbnRlbnQ6Jyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0b3A6IDA7XG4gICAgICB6LWluZGV4OiAtMTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxcHg7XG4gICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgIG9wYWNpdHk6IDAuODU7XG4gICAgfVxuICB9XG59XG5cbiIsCgkJIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuIFdhbGsgbG9jYXRpb24gc2hvd24gb24gb3V0bGluZSBtYXAgb2YgQ29ybndhbGxcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuI291dGxpbmUtbWFwe1xuICBtYXJnaW46IDhweCBhdXRvO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgLy8gc2V0IHRvIG1hcCBpbWFnZSBkaW1lbnNpb25cbiAgd2lkdGg6IDMyMHB4O1xuICBoZWlnaHQ6IDMyMHB4O1xuXG4gIGltZ3tcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAuaW5kaWNhdG9ye1xuICAgICRzaXplOiA4cHg7XG4gICAgJGNvbG9yOiByZWQ7XG4gICAgJGJvcmRlci1jb2xvcjogd2hpdGU7XG4gICAgJHNoYWRvdy1jb2xvcjogd2hpdGU7XG5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6ICRzaXplO1xuICAgIGhlaWdodDogJHNpemU7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICBib3gtc2hhZG93OiAwIDAgM3B4ICRzaGFkb3ctY29sb3I7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgfVxufVxuIiwKCQkiQGltcG9ydCBcIi4uL0BpbmNsdWRlL2NvbW1vblwiO1xyXG5cclxuI215c3RlcmllcyB7XHJcblx0QGluY2x1ZGUgbXFzKCR1bnRpbDogcGFnZSkge1xyXG5cdFx0cGFkZGluZy10b3A6IDI0cHg7XHJcblx0fVxyXG5cclxuXHRpbWcge1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRAaW5jbHVkZSBtcXMoJGZyb206IHBhZ2UpIHtcclxuXHRcdFx0Ly9kaXNwbGF5OiBub25lO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuIiwKCQkiQGltcG9ydCBcImNvbXBvbmVudC9sb2FkZXJcIjtcclxuXHJcbiRsZWZ0Q29sV2lkdGg6IDUzNnB4O1xyXG4kcmlnaHRDb2xXaWR0aDogMzc2cHg7XHJcblxyXG4uY29sLCAuY29sICp7XHJcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG59XHJcblxyXG5ib2R5LmNvbC1yZWFkeXtcclxuICAuY29se1xyXG4gICAgJjphZnRlcntcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuICB9XHJcbiAgLmNvbCwgLmNvbCAqe1xyXG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcclxuICB9XHJcbn1cclxuXHJcbmJvZHk6bm90KC5jb2wtcmVhZHkpe1xyXG4gIC5jb2x7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcbn1cclxuXHJcbi5jb2x7XHJcbiAgQGluY2x1ZGUgbG9hZGVyLWludmVydGVkO1xyXG4gICY6YWZ0ZXJ7XHJcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xyXG4gIH1cclxufVxyXG5cclxuLmxlZnQuY29sIHtcclxuICBmbG9hdDpsZWZ0O1xyXG4gIC5uYXJyb3cuYm94e1xyXG4gICAgbWF4LXdpZHRoOiAkbGVmdENvbFdpZHRoO1xyXG4gIH1cclxufVxyXG5cclxuLnJpZ2h0LmNvbCB7XHJcbiAgZmxvYXQ6bGVmdDtcclxuICB3aWR0aDogJHJpZ2h0Q29sV2lkdGg7XHJcbn1cclxuXHJcbi5ib3hbZGF0YS1jb2wtZHVhbD1cInJpZ2h0XCJdIHtcclxuICBwYWRkaW5nLXRvcDogNHB4O1xyXG59XHJcblxyXG4vLyBTaW5nbGUgY29sIGxheW91dFxyXG5ib2R5LmNvbC1zaW5nbGV7XHJcbiAgQGluY2x1ZGUgdG91Y2gtc2NyZWVuLXN0eWxlcztcclxuICBAaW5jbHVkZSBtcXMoJGZyb206IHRhYmxldCkge1xyXG4gICAgLnJpZ2h0LmNvbHtcclxuICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDhweCkgIWltcG9ydGFudDtcclxuICAgICAgbWFyZ2luOiAwIC00cHg7XHJcbiAgICAgIC5ib3gge1xyXG4gICAgICAgIHdpZHRoOiBjYWxjKDUwJSAtIDE2cHgpO1xyXG4gICAgICAgIG1hcmdpbjogMCA4cHg7XHJcbiAgICAgICAgJjpudGgtY2hpbGQob2RkKXtcclxuICAgICAgICAgIGZsb2F0OiByaWdodDtcclxuICAgICAgICB9XHJcbiAgICAgICAgJjpudGgtY2hpbGQoZXZlbil7XHJcbiAgICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIFtkYXRhLXJvbGU9XCJsaXN0dmlld1wiXXtcclxuICAgIG1hcmdpbjogMTZweCAwIDAgMCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLmxlZnQuY29sLCAucmlnaHQuY29se1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBEdWFsIGNvbCBsYXlvdXRcclxuYm9keS5jb2wtZHVhbHtcclxuICAubGVmdC5jb2x7XHJcbiAgICB3aWR0aDogJGxlZnRDb2xXaWR0aDtcclxuICAgIG1hcmdpbi1yaWdodDoxNnB4O1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8vIGRlZmF1bHQgc2luZ2xlIGNvbHVtbiBvcmRlcjogYXQgdGhlIGJvdHRvbVxyXG4uYm94IHtcclxuICBvcmRlcjogMTAwO1xyXG59XHJcblxyXG5bZGF0YS1yb2xlPVwibGlzdHZpZXdcIl17XHJcbiAgPmxpe1xyXG4gICAgcGFkZGluZzogMnB4IDA7XHJcbiAgfVxyXG59XHJcbiIsCgkJIi8vIExvYWRpbmcgYW5pbWF0aW9uXG5cbiRsb2FkZXItZGVmYXVsdC1zaXplOiA1MHB4O1xuJGxvYWRlci1kZWZhdWx0LXRoaWNrbmVzczogNXB4O1xuJGxvYWRlci1kZWZhdWx0LWZvcmVncm91bmQ6IHdoaXRlO1xuJGxvYWRlci1kZWZhdWx0LWJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4yNSk7XG4kbG9hZGVyLWRlZmF1bHQtZm9yZWdyb3VuZC1pbnZlcnRlZDogYmxhY2s7XG4kbG9hZGVyLWRlZmF1bHQtYmFja2dyb3VuZC1pbnZlcnRlZDogcmdiYSgwLDAsMCwwLjI1KTtcblxuQG1peGluIGxvYWRlcihcbiAgJHNpemU6ICRsb2FkZXItZGVmYXVsdC1zaXplLFxuICAkdGhpY2tuZXNzOiAkbG9hZGVyLWRlZmF1bHQtdGhpY2tuZXNzLFxuICAkZm9yZWdyb3VuZDogJGxvYWRlci1kZWZhdWx0LWZvcmVncm91bmQsXG4gICRiYWNrZ3JvdW5kOiAkbG9hZGVyLWRlZmF1bHQtYmFja2dyb3VuZFxuKXtcblxuICBAYXQtcm9vdHtcbiAgICBib2R5Om5vdCguZnVsbHNjcmVlbikgI3smfSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuICB9XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLXRvcDogLSgkc2l6ZSAvIDIgKyAkdGhpY2tuZXNzKTtcbiAgICBtYXJnaW4tbGVmdDogLSgkc2l6ZSAvIDIgKyAkdGhpY2tuZXNzKTtcbiAgICB3aWR0aDogJHNpemU7XG4gICAgaGVpZ2h0OiAkc2l6ZTtcbiAgICBib3JkZXItcmFkaXVzOiAkc2l6ZTtcbiAgICBib3JkZXI6ICR0aGlja25lc3Mgc29saWQgJGJhY2tncm91bmQ7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogJGZvcmVncm91bmQ7XG4gICAgYW5pbWF0aW9uOiBsb2FkaW5nIDFzIGVhc2UgaW5maW5pdGU7XG4gIH1cbiAgQGtleWZyYW1lcyBsb2FkaW5nIHtcbiAgICAwJSB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbG9hZGVyLWludmVydGVkKFxuICAkc2l6ZTogJGxvYWRlci1kZWZhdWx0LXNpemUsXG4gICR0aGlja25lc3M6ICRsb2FkZXItZGVmYXVsdC10aGlja25lc3MsXG4gICRmb3JlZ3JvdW5kOiAkbG9hZGVyLWRlZmF1bHQtZm9yZWdyb3VuZC1pbnZlcnRlZCxcbiAgJGJhY2tncm91bmQ6ICRsb2FkZXItZGVmYXVsdC1iYWNrZ3JvdW5kLWludmVydGVkXG4pe1xuICBAaW5jbHVkZSBsb2FkZXIoXG4gICAgJHNpemU6ICRzaXplLFxuICAgICR0aGlja25lc3M6ICR0aGlja25lc3MsXG4gICAgJGZvcmVncm91bmQ6ICRmb3JlZ3JvdW5kLFxuICAgICRiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZFxuICApO1xufVxuIiwKCQkiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuKiBQcm9tb3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbkBpbXBvcnQgXCJsb2FkZXJcIjtcblxuLnByb21vLWNvbnRhaW5lciB7XG4gIG1hcmdpbjogMCBhdXRvO1xuICB3aWR0aDogMTAwJTtcblxuICBAaW1wb3J0IFwic2xpY2tfb3ZlcnJpZGVzXCI7XG5cbiAgLnNsaWNrLWxpc3R7XG4gICAgbWFyZ2luOiAwIC04cHg7XG4gIH1cblxuICAuc2xpY2stc2xpZGV7XG4gICAgbWFyZ2luOiAwIDhweDtcbiAgfVxuXG4gICY6bm90KC5sb2FkZWQpLCAmOm5vdCguZGlzcGxheWVkKXtcbiAgICBAaW5jbHVkZSBsb2FkZXIoXG4gICAgICAgICAgICAkc2l6ZTogNTBweCxcbiAgICAgICAgICAgICR0aGlja25lc3M6IDVweCxcbiAgICAgICAgICAgICRmb3JlZ3JvdW5kOiBibGFjayxcbiAgICAgICAgICAgICRiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMjUpXG4gICAgKTtcbiAgfVxuXG4gICY6bm90KC5kaXNwbGF5ZWQpe1xuICAgIC5zbGljay1hcnJvd3tcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICBAYXQtcm9vdCB7XG4gICAgYm9keTpub3QoLmNvbC1yZWFkeSkgI3smfSxcbiAgICAjeyZ9Om5vdCgubG9hZGVkKXtcbiAgICAgIC5wcm9tb3tcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5wcm9tb3N7XG4gICAgcGFkZGluZzogOHB4IDAgNHB4IDA7XG4gICAgQGluY2x1ZGUgbXFzKCR1bnRpbDogMzY0cHgpIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICB9XG4gIC5wcm9tb3tcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIC53cmFwcGVye1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbGVmdDogLTFweDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM5OTk5OTk7XG4gICAgfVxuICAgIGltZ3tcbiAgICAgIEBpbmNsdWRlIGJveFNoYWRvdztcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLnRpdGxlLCAubWVzc2FnZXtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbGVmdDogMDtcbiAgICAgIGgyLCBwe1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwwLjUpO1xuICAgICAgICB0ZXh0LXNoYWRvdzogMCAwIDFweCBibGFjaztcbiAgICAgIH1cbiAgICB9XG4gICAgLnRpdGxle1xuICAgICAgdG9wOiAwO1xuICAgICAgaDJ7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRwdDtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAycHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1lc3NhZ2V7XG4gICAgICBib3R0b206IDA7XG4gICAgICBwe1xuICAgICAgICBwYWRkaW5nOiA0cHggMCA0cHggNHB4O1xuICAgICAgICBmb250LXNpemU6IDEwcHQ7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLAoJCSIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4qIFNsaWNrIENhcm91c2VsIGRlZmF1bHQgdGhlbWUgb3ZlcnJpZGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi5zbGljay1wcmV2LFxuLnNsaWNrLW5leHQge1xuICB6LWluZGV4OiAxO1xuICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcblxuICAmOmJlZm9yZXtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICB9XG59XG5cbi5zbGljay1wcmV2IHtcbiAgbGVmdDogMTZweDtcbn1cblxuLnNsaWNrLXByZXY6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMDRcIjtcbiAgZm9udDogNDBweC8xICdGb250QXdlc29tZSc7XG4gIHBhZGRpbmc6IDAgMTZweCAycHggMTJweDtcbn1cblxuLnNsaWNrLW5leHQge1xuICByaWdodDogMTZweDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi5zbGljay1uZXh0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTA1XCI7XG4gIGZvbnQ6IDQwcHgvMSAnRm9udEF3ZXNvbWUnO1xuICBwYWRkaW5nOiAwIDEycHggMnB4IDE2cHg7XG59XG5cbi5zbGljay1wcmV2OmhvdmVyOmJlZm9yZSxcbi5zbGljay1uZXh0OmhvdmVyOmJlZm9yZSB7XG4gIGNvbG9yOiAjN2U3ZTdlO1xuICBAaW5jbHVkZSB0b3VjaC1zY3JlZW4tZGV2aWNlc3tcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgb3BhY2l0eTogMC43NTtcbiAgfVxufSIsCgkJIi5hcHAtZm9ybWF0cyB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBtYXJnaW46IDAgYXV0bztcbiAgd2lkdGg6IDEwMCU7XG5cbiAgLy9kZXNrdG9wXG4gIEBpbmNsdWRlIG1xcygkZnJvbTogcGFnZSkge1xuICAgIC5hcHAtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAvL3RhYmxldFxuICBAaW5jbHVkZSBtcXMoJHVudGlsOiBwYWdlKSB7XG4gICAgLnRleHQge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1xcygkZnJvbTogdGFibGV0N2luY2gsICR1bnRpbDogcGFnZSkge1xuICAgIC5pY29ue1xuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1xcygkdW50aWw6IHRhYmxldDdpbmNoKSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgLmljb24ge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gID4gZGl2LnN0b3JlLWxpbmsge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG5cbiAgICAuaW5uZXJ7XG4gICAgICBAaW5jbHVkZSBjZW50cmVYO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgd2lkdGg6IDk4JTtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxMnB4KTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG5cbiAgICAgIEBpbmNsdWRlIG1xcygkZnJvbTogdGFibGV0N2luY2gpe1xuICAgICAgICBtYXJnaW46IDhweCAwIDAgMDtcbiAgICAgICAgcGFkZGluZzogOHB4IDAgNHB4IDA7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNhYWFhYWE7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1xcygkZnJvbTogdGFibGV0N2luY2gsICR1bnRpbDogcGFnZSkge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1xcygkZnJvbTogdGFibGV0N2luY2gsICR1bnRpbDogdGFibGV0KSB7XG4gICAgICAgIHBhZGRpbmc6IDRweCAwIDhweCAwO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgQGluY2x1ZGUgbXFzKCRmcm9tOiBwYWdlKSB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgYSB7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmlvc3tcbiAgICAgIC5pY29ue1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDQycHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5hbmRyb2lke1xuICAgICAgQGluY2x1ZGUgbXFzKCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgICAgLmljb24gaW1ne1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMnB4O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5pY29ue1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDI0cHggIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaW5uZXIgPiBkaXYge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgIEBpbmNsdWRlIG1xcygkdW50aWw6IHRhYmxldCkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgICAgJi5pY29uIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgcGFkZGluZy10b3A6IDRweDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDRweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMTZweDtcbiAgICAgICAgQGluY2x1ZGUgbXFzKCR1bnRpbDogcGFnZSkge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi50ZXh0IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBmb250LXNpemU6IDE3cHg7XG4gICAgICAgIGZvbnQtdmFyaWFudDogc21hbGwtY2FwcztcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBhe1xuICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5xcntcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMThweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogOHB4O1xuXG4gICAgICAgIEBpbmNsdWRlIG1xcygkdW50aWw6IHRhYmxldCkge1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1xcygkdW50aWw6IHRhYmxldDdpbmNoKSB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgaW1ne1xuICAgICAgICAgIG1heC13aWR0aDogMTAwcHg7XG4gICAgICAgICAgQGluY2x1ZGUgbXFzKCR1bnRpbDogcGFnZSkge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuYXBwLWJ1dHRvbntcbiAgICAgICAgQGluY2x1ZGUgbXFzKCRmcm9tOiB0YWJsZXQsICR1bnRpbDogcGFnZSkge1xuICAgICAgICAgIEBpbmNsdWRlIGNlbnRyZVk7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGxlZnQ6IDhweDtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbXFzKCR1bnRpbDogdGFibGV0KSB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgYXtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDQycHg7XG4gICAgICAgICAgQGluY2x1ZGUgbXFzKCR1bnRpbDogdGFibGV0N2luY2gpIHtcbiAgICAgICAgICAgIG1hcmdpbjogMTJweCAwIDAgMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsCgkJIi8qXG4gKiBSZXNwb25zaXZlIHNsaWRlc2hvdyB3aWRnZXQgdXNpbmcgU2xpY2sgY2Fyb3VzZWxcbiAqL1xuXG5AaW1wb3J0IFwic2xpY2tfb3ZlcnJpZGVzXCI7XG5AaW1wb3J0IFwibG9hZGVyXCI7XG5cbi5zbGlkZXNob3cge1xuICBtYXJnaW46IDAgYXV0byAwIGF1dG87XG4gIHdpZHRoOiAxMDAlO1xuICAmOm5vdCguaW5pdGlhbGlzZWQpe1xuICAgIC5zbGlkZXtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICY6Zmlyc3QtY2hpbGR7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi5sb2FkaW5ne1xuICAgIEBpbmNsdWRlIGxvYWRlcjtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC5jYXB0aW9ue1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5zbGlkZXtcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcblxuICAgICAgJjpmaXJzdC1jaGlsZCAuY2FwdGlvbntcbiAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgIH1cblxuICAgICAgaW1ne1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYuaW5pdGlhbGlzZWQ6bm90KC5sb2FkaW5nKXtcbiAgICAud3JhcHBlcjpub3QoLmV2YWx1YXRpbmcpe1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAuY2FwdGlvbiB7XG4gICAgICAgIEBpbmNsdWRlIGNlbnRyZVk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuc2xpZGUge1xuXG4gICAgaW1nIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuXG4gICAgLmNhcHRpb24ge1xuICAgICAgZm9udC1mYW1pbHk6IFwiQ29taW5nIFNvb25cIjtcbiAgICAgIGNvbG9yOiAjZGRkO1xuICAgICAgcGFkZGluZzogOHB4IDE2cHg7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICBmb250LXNpemU6IDE2cHQ7XG4gICAgICBAaW5jbHVkZSBtcXMoJHVudGlsOiB0YWJsZXQ3aW5jaCkge1xuICAgICAgICBmb250LXNpemU6IDEycHQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxNHB0O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwKCQkiLyoqXG4qIERpc3BsYXkgYSBib3R0b20gcHJvbW8gaW4gYSBsaWdodCBncmVlbiBib3hcbiovXG5cblxuLmJvdHRvbS1wcm9tbyB7XG4gICAgQGluY2x1ZGUgbGlnaHRHcmVlbkJveDtcbiAgICBAaW5jbHVkZSBib3hTaGFkb3c7XG4gICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICBwYWRkaW5nOiA4cHg7XG4gICAgcHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG59IgoJXSwKCSJuYW1lcyI6IFtdLAoJIm1hcHBpbmdzIjogIkFJQ0E7O0dBRUc7QUFXSDs7R0FFRztBRWhCSDs7eURBRXlEO0FMSXpELEFBQUEsSUFBSSxDQUFBO0VBQ0YsVUFBVSxFQUFFLE9BQU87Q0FDcEI7O0FNUkQ7O0VBRUU7QUFFRixBQUFBLFdBQVcsQ0FBQztFQUNWLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLGFBQWEsRUFBRSxHQUFHO0VBQ2xCLEtBQUssRUFBRSxJQUFJO0NBa0JaOztBQXRCRCxBQU1FLFdBTlMsQ0FNVCxHQUFHLENBQUM7RUFDRixRQUFRLEVBQUMsUUFBUTtFQUNqQixPQUFPLEVBQUUsS0FBSztFQUNkLEtBQUssRUFBRSxJQUFJO0VBQ1gsTUFBTSxFQUFF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 */