@charset "UTF-8";
/**
 * Breakpoints
 */
/**
 * Input capabilities
 */
/********************************************************
* Touch devices
********************************************************/
body {
  visibility: inherit;
}

#columns {
  display: grid;
  grid-template-columns: 1fr;
}

#columns .left.col,
#columns .right.col {
  display: contents;
}

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

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

.box {
  order: 100;
}

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

@media (max-width: 959px) {
  #columns [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;
  }
  #columns [data-role="button"]:not(.non-responsive):hover, #columns [data-role="button"]:not(.non-responsive):active {
    background: #e8f0ff;
  }
  #columns [data-role="button"]:not(.non-responsive)[data-icon] {
    padding-left: 32px;
    padding-right: 8px;
  }
  #columns [data-role="button"]:not(.non-responsive)[data-icon] i {
    top: 50%;
    transform: translateY(-50%);
    position: absolute;
    left: 8px;
  }
  #columns [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);
  }
  #columns [data-role="button"]:not(.non-responsive).green:hover, #columns [data-role="button"]:not(.non-responsive).green:active {
    background: linear-gradient(to bottom, #dcf4e1 0%, #3ddb8c 50%, #dcf4e1 100%);
  }
  #columns [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);
  }
  #columns [data-role="button"]:not(.non-responsive).blue:hover, #columns [data-role="button"]:not(.non-responsive).blue:active {
    background: linear-gradient(to bottom, #dce1f4 0%, #6eaceb 50%, #dce1f4 100%);
  }
  #columns [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;
  }
  #columns [data-role="listview"]:not(.non-responsive), #columns [data-role="listview"]:not(.non-responsive) a {
    color: white;
  }
  #columns [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;
  }
  #columns [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;
  }
  #columns [data-role="listview"]:not(.non-responsive) > * {
    z-index: 2;
  }
  body:not(.fullscreen) #columns [data-role="listview"]:not(.non-responsive) > * {
    position: relative;
  }
  #columns [data-role="listview"]:not(.non-responsive) a, #columns [data-role="listview"]:not(.non-responsive) strong {
    color: white;
  }
  #columns [data-role="listview"]:not(.non-responsive) h2 {
    border: none;
    margin: 0;
  }
  #columns [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: 959px) and (max-width: 37.49em) {
  #columns [data-role="listview"]:not(.non-responsive) > li {
    font-size: 14px !important;
  }
}

@media (max-width: 959px) {
  #columns [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: 959px) and (max-width: 37.49em) {
  #columns [data-role="listview"]:not(.non-responsive) > li a {
    font-size: 14px !important;
  }
}

@media (max-width: 959px) {
  #columns [data-role="listview"]:not(.non-responsive) > li a:after {
    content: '>';
    position: absolute;
    right: 4px;
    font-size: 16px !important;
  }
}

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

@media (max-width: 959px) {
  #columns :not(.non-responsive):not([data-role]):not([role]) > li > a:only-child {
    padding: 8px 0;
    display: inline-block;
  }
}

@media (min-width: 740px) and (max-width: 959px) {
  #columns .box[data-col-single="right"],
  #columns .box[data-col-dual="right"] {
    width: calc(50% - 12px);
    float: left;
    margin: 0 4px 8px;
  }
  #columns .box[data-col-single="right"]:nth-of-type(odd),
  #columns .box[data-col-dual="right"]:nth-of-type(odd) {
    clear: left;
  }
}

@media (min-width: 960px) {
  #columns {
    grid-template-columns: 536px 376px;
    gap: 0 16px;
  }
  #columns .left.col,
  #columns .right.col {
    display: block;
  }
  #columns .left.col {
    grid-column: 1;
    grid-row: 1;
  }
  #columns .right.col {
    grid-column: 2;
    grid-row: 1;
  }
}

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

.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;
}

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

/*****************************************************************
 SEO-friendly photo gallery (server-rendered HTML)
 Shows first image before JS initializes lightgallery
*****************************************************************/
#photos .photo-gallery-seo {
  position: relative;
  width: 100%;
}

#photos .photo-gallery-seo .gallery-item {
  margin: 0;
  display: none;
}

#photos .photo-gallery-seo .gallery-item:first-child {
  display: block;
}

#photos .photo-gallery-seo .gallery-item img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
  aspect-ratio: 1.3197969543;
}

#photos .photo-gallery-seo .gallery-item figcaption {
  background: rgba(0, 0, 0, 0.7);
  color: white;
  padding: 8px 12px;
  font-size: 14px;
  text-align: center;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
}

#photos.lightgallery:not(.loading) .photo-gallery-seo {
  display: none;
}

@media (max-width: 959px) {
  #photos.lightgallery body {
    width: auto;
    height: 0;
    padding-bottom: 75.7692307692%;
  }
  #photos.lightgallery body:not(.fullscreen) .lg-container {
    width: auto;
    height: 0;
    padding-bottom: 75.7692307692%;
  }
}

@media (min-width: 960px) {
  #photos.lightgallery {
    width: 520px;
    height: 394px;
  }
  #photos.lightgallery:not(.fullscreen) .lg-container {
    width: 520px;
    height: 394px;
  }
}

#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%);
}

/******************************************************
* mystery walks banner above the title
******************************************************/
#sub-header {
  position: relative;
  filter: drop-shadow(0 0 4px rgba(0, 0, 0, 0.5));
}

#sub-header img {
  width: 100%;
  height: auto;
  border-radius: 0 0 4px 4px;
}

/******************************************************
* App promo
******************************************************/
/******************************************************
* App promo
******************************************************/
#app {
  background-color: #19424a;
  border-radius: 4px;
  z-index: 0;
  position: relative;
  /*
 * Responsive slideshow widget using Slick carousel
 */
  /******************************************************
* Slick Carousel default theme overrides
******************************************************/
  padding: 4px 0 0 0;
  margin-top: 16px;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#app .slideshow {
  --slideshow-aspect-ratio: 928/350;
  margin: 0 auto 0 auto;
  width: 100%;
}

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

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

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

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

#app .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 .slideshow.loading .caption {
  display: none !important;
}

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

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

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

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

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

#app .slideshow .slide img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  aspect-ratio: var(--slideshow-aspect-ratio);
}

#app .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 .slideshow .slide .caption {
    font-size: 12pt;
    line-height: 14pt;
  }
}

@media screen and (max-width: 59.99em) {
  #app {
    margin-top: 8px;
  }
}

#app .slideshow {
  background-color: #19424a;
}

#app .slideshow.loading {
  padding-top: 37.72%;
}

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

#app-ad {
  background-color: #19424a;
  border-radius: 4px;
  padding: 0 4px 8px 4px;
  border-radius: 0 0 4px 4px;
}

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

#app-ad .app-formats {
  display: table;
  margin: 0 auto;
  width: 100%;
}

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

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

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

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

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

#app-ad .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-ad .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-ad .app-formats > div.store-link .inner {
    position: relative;
  }
}

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

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

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

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

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

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

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

#app-ad .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-ad .app-formats > div.store-link .inner > div.icon {
    display: none;
  }
}

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

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

#app-ad .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-ad .app-formats > div.store-link .inner > div.qr {
    text-align: center;
  }
}

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

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

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

@media screen and (min-width: 46.25em) and (max-width: 59.99em) {
  #app-ad .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-ad .app-formats > div.store-link .inner > div.app-button {
    text-align: center;
  }
}

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

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

#app-ad:before {
  border-radius: 0;
}

/*****************************************************************
 Locations
*****************************************************************/
#locations {
  background-color: #19424a;
  border-radius: 4px;
  z-index: 0;
  position: relative;
  padding: 8px;
  margin-bottom: 8px;
}

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

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

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

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

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

#locations h2 {
  border: 0;
  margin-bottom: 8px;
}

#locations ul {
  margin: 0;
  padding: 0;
  list-style: none;
  text-align: center;
}

#locations li {
  display: inline;
}

#locations li:not(:last-child)::after {
  content: " • ";
  /* Unicode dot separator */
  margin: 0 8px;
  /* Adjust spacing */
}

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

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

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

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

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

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

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

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

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

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

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

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

.box h2 {
  font-weight: normal;
  font-size: 16pt;
  margin-bottom: 8px !important;
}

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

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

#app-ad {
  background-color: #19424a;
  border-radius: 4px;
  padding: 0 4px 8px 4px;
  border-radius: 0 0 4px 4px;
}

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

#app-ad .app-formats {
  display: table;
  margin: 0 auto;
  width: 100%;
}

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

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

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

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

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

#app-ad .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-ad .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-ad .app-formats > div.store-link .inner {
    position: relative;
  }
}

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

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

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

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

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

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

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

#app-ad .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-ad .app-formats > div.store-link .inner > div.icon {
    display: none;
  }
}

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

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

#app-ad .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-ad .app-formats > div.store-link .inner > div.qr {
    text-align: center;
  }
}

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

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

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

@media screen and (min-width: 46.25em) and (max-width: 59.99em) {
  #app-ad .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-ad .app-formats > div.store-link .inner > div.app-button {
    text-align: center;
  }
}

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

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

#app-ad:before {
  border-radius: 0;
}

@media screen and (max-width: 59.99em) {
  #stats {
    padding: 0;
  }
  #stats h2 {
    display: none;
  }
}

/*****************************************************************
 Apply blue box gradient on mobile devices
*****************************************************************/
body.col-single [data-role="listview"]:not(.non-responsive) {
  background-color: #19424a;
  border-radius: 4px;
  z-index: 0;
  position: relative;
}

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(#126167, #19424a);
  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(#19424a, #19424a);
  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;
}

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

#issues {
  order: 2;
}

#synopsis {
  order: 3;
}

#stats {
  order: 4;
}

#considerations {
  order: 5;
}

#gradients {
  order: 6;
}

#photos {
  order: 7;
}

#location {
  order: 8;
}

#app {
  order: 9;
}

h1 {
  font-family: Mali, sans-serif;
  word-spacing: -3px;
}

#main-photo {
  display: inline-block;
  position: relative;
}

#main-photo img {
  display: block;
  width: 100%;
  height: auto;
  border: 1px solid black;
}

#overview .description {
  margin-bottom: 8px;
}

#issues {
  background-color: #5c1e1e;
  border-radius: 4px;
  z-index: 0;
  position: relative;
}

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

#issues: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;
}

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

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

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

.slideshow-button {
  margin: 8px;
}

.featherlight-close {
  display: none;
}

.featherlight-inner {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  max-width: 1024px;
  width: 393px;
  height: 851px;
}

/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAiLi4vd3d3L2Nzcy9teXN0ZXJpZXMvcGFnZS9sZWFmLmNzcyIsCgkic291cmNlcyI6IFsKCQkiLi4vd3d3L3Njc3MvbXlzdGVyaWVzL3BhZ2UvbGVhZi5zY3NzIiwKCQkiLi4vd3d3L3Njc3MvQGluY2x1ZGUvX2NvbW1vbi5zY3NzIiwKCQkiLi4vd3d3L3Njc3MvQGluY2x1ZGUvX3ZhcmlhYmxlcy5zY3NzIiwKCQkiLi4vd3d3L3Njc3MvQGluY2x1ZGUvX2dlbmVyYWxfbWl4aW5zLnNjc3MiLAoJCSIuLi93d3cvc2Nzcy9AaW5jbHVkZS9fbWVkaWEuc2NzcyIsCgkJIi4uL3d3dy9zY3NzL0BpbmNsdWRlL19tcS5zY3NzIiwKCQkiLi4vd3d3L3Njc3MvQGluY2x1ZGUvX3RvdWNoLnNjc3MiLAoJCSIuLi93d3cvc2Nzcy9AaW5jbHVkZS9fcmVzcG9uc2l2ZV9jb2x1bW5zLnNjc3MiLAoJCSIuLi93d3cvc2Nzcy9AaW5jbHVkZS9jb21wb25lbnQvX3Byb21vcy5zY3NzIiwKCQkiLi4vd3d3L3Njc3MvQGluY2x1ZGUvY29tcG9uZW50L19sb2FkZXIuc2NzcyIsCgkJIi4uL3d3dy9zY3NzL0BpbmNsdWRlL2NvbXBvbmVudC9fc2xpY2tfb3ZlcnJpZGVzLnNjc3MiLAoJCSIuLi93d3cvc2Nzcy9Ad2Fsay9fcGhvdG9zLnNjc3MiLAoJCSIuLi93d3cvc2Nzcy9AaW5jbHVkZS9jb21wb25lbnQvX2xpZ2h0Z2FsbGVyeS5zY3NzIiwKCQkiLi4vd3d3L3Njc3MvQHdhbGsvX291dGxpbmVfbWFwLnNjc3MiLAoJCSIuLi93d3cvc2Nzcy9teXN0ZXJpZXMvQGluY2x1ZGUvX2FwcF9hZHZlcnRfc2xpZGVzaG93LnNjc3MiLAoJCSIuLi93d3cvc2Nzcy9AaW5jbHVkZS9jb21wb25lbnQvX3NsaWRlc2hvdy5zY3NzIiwKCQkiLi4vd3d3L3Njc3MvQGluY2x1ZGUvX2FwcF9hZF9mb3JtYXRzLnNjc3MiLAoJCSIuLi93d3cvc2Nzcy9teXN0ZXJpZXMvQGluY2x1ZGUvX2xvY2F0aW9ucy5zY3NzIgoJXSwKCSJzb3VyY2VzQ29udGVudCI6IFsKCQkiQGltcG9ydCBcIi4uLy4uL0BpbmNsdWRlL2NvbW1vblwiO1xuQGltcG9ydCBcIi4uLy4uL0BpbmNsdWRlL3Jlc3BvbnNpdmVfY29sdW1uc1wiO1xuQGltcG9ydCBcIi4uLy4uL0BpbmNsdWRlL2NvbXBvbmVudC9wcm9tb3NcIjtcbkBpbXBvcnQgXCIuLi8uLi9Ad2Fsay9waG90b3NcIjtcbkBpbXBvcnQgXCIuLi8uLi9Ad2Fsay9vdXRsaW5lX21hcFwiO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4qIG15c3Rlcnkgd2Fsa3MgYmFubmVyIGFib3ZlIHRoZSB0aXRsZVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuI3N1Yi1oZWFkZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZpbHRlcjogZHJvcC1zaGFkb3coMCAwIDRweCByZ2JhKDAsMCwwLDAuNSkpO1xuICBpbWd7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCA0cHggNHB4O1xuICB9XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiogQXBwIHByb21vXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbkBpbXBvcnQgXCIuLi9AaW5jbHVkZS9hcHBfYWR2ZXJ0X3NsaWRlc2hvd1wiO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiBMb2NhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuQGltcG9ydCBcIi4uL0BpbmNsdWRlL2xvY2F0aW9uc1wiO1xuXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuIEJveCBsYXlvdXRcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5cbkBtaXhpbiB3YWxrLWJveHtcbiAgQGluY2x1ZGUgYm94R3JhZGllbnRCbHVlO1xuICBAaW5jbHVkZSBib3hTaGFkb3c7XG5cbiAgcGFkZGluZzogOHB4O1xuXG4gIEBhdC1yb290e1xuICAgIGJvZHk6bm90KC5mdWxsc2NyZWVuKSAjeyZ9IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG4gIH1cblxuICA+IHB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgYSwgc3Ryb25nIHtcbiAgICBjb2xvcjogd2hpdGU7XG4gIH1cblxuICBoMiB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuXG4uYm94IHtcbiAgbWFyZ2luLWJvdHRvbTogMTZweDtcblxuICBAaW5jbHVkZSBtcXMoJGZyb206IHBhZ2UpIHtcbiAgICBAaW5jbHVkZSB3YWxrLWJveDtcbiAgfVxuXG4gICYuYWx3YXlze1xuICAgIEBpbmNsdWRlIHdhbGstYm94O1xuICB9XG5cbiAgaDIge1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zaXplOiAxNnB0O1xuICAgIG1hcmdpbi1ib3R0b206IDhweCAhaW1wb3J0YW50O1xuICAgIEBpbmNsdWRlIG1xcygkdW50aWw6IHBhZ2UpIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICB9XG5cbiAgdWwge1xuICAgIHBhZGRpbmctbGVmdDogMTZweDtcbiAgfVxufVxuXG5cbiNhcHAtYWR7XG4gIEBpbmNsdWRlIGJveCgjMTk0MjRhKTtcbiAgQGltcG9ydCBcIi4uLy4uL0BpbmNsdWRlL2FwcF9hZF9mb3JtYXRzXCI7XG4gIHBhZGRpbmc6IDAgNHB4IDhweCA0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCA0cHggNHB4O1xuICAmOmJlZm9yZXtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG59XG5cbiNzdGF0cyB7XG4gIEBpbmNsdWRlIG1xcygkdW50aWw6IHBhZ2UpIHtcblx0cGFkZGluZzogMDtcbiAgICBoMiB7XG4gICAgICBkaXNwbGF5Om5vbmU7XG4gICAgfVxuICB9XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuIEFwcGx5IGJsdWUgYm94IGdyYWRpZW50IG9uIG1vYmlsZSBkZXZpY2VzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbmJvZHkuY29sLXNpbmdsZSBbZGF0YS1yb2xlPVwibGlzdHZpZXdcIl06bm90KC5ub24tcmVzcG9uc2l2ZSkge1xuICAgIEBpbmNsdWRlIGJveEdyYWRpZW50Qmx1ZTtcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gU2luZ2xlIGNvbHVtbiBib3ggb3JkZXJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuI292ZXJ2aWV3IHtcbiAgb3JkZXI6IDE7XG59XG4jaXNzdWVze1xuICBvcmRlcjogMjtcbn1cbiNzeW5vcHNpc3tcbiAgb3JkZXI6IDM7XG59XG4jc3RhdHMge1xuICBvcmRlcjogNDtcbn1cbiNjb25zaWRlcmF0aW9ucyB7XG4gIG9yZGVyOiA1O1xufVxuI2dyYWRpZW50c3tcbiAgb3JkZXI6IDY7XG59XG4jcGhvdG9ze1xuICBvcmRlcjogNztcbn1cbiNsb2NhdGlvbiB7XG4gIG9yZGVyOiA4O1xufVxuI2FwcHtcbiAgb3JkZXI6IDk7XG59XG5cbmgxIHtcbiAgZm9udC1mYW1pbHk6IE1hbGksIHNhbnMtc2VyaWY7XG4gIHdvcmQtc3BhY2luZzogLTNweDtcbn1cblxuI21haW4tcGhvdG8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjaztcbiAgfVxufVxuXG4jb3ZlcnZpZXcgLmRlc2NyaXB0aW9ue1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG59XG5cbiNpc3N1ZXN7XG4gIEBpbmNsdWRlIGJveEdyYWRpZW50UmVkO1xufVxuXG4vLyBvdGhlciBzdHlsZXNcblxuLnNsaWRlc2hvdy1idXR0b257XG4gIG1hcmdpbjogOHB4O1xufVxuXG4uZmVhdGhlcmxpZ2h0LWNsb3Nle1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZmVhdGhlcmxpZ2h0LWlubmVye1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICBtYXgtd2lkdGg6IDEwMjRweDtcblxuICAvLyBFbXVsYXRlIFBpeGVsIDUgc2NyZWVuIGRpbWVuc2lvbnNcbiAgd2lkdGg6IDM5M3B4O1xuICBoZWlnaHQ6IDg1MXB4O1xufVxuIiwKCQkiLy8gQ29tbW9uIHN0eWxlc1xuQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcImdlbmVyYWxfbWl4aW5zXCI7XG5AaW1wb3J0IFwibWVkaWFcIjtcbkBpbXBvcnQgXCJ0b3VjaFwiO1xuXG5ib2R5e1xuICB2aXNpYmlsaXR5OiBpbmhlcml0O1xufVxuIiwKCQkiLy8gVmFyaWFibGVzXG5cbiRwYWdlLXdpZHRoOiA5NjBweDtcbiRyZXNwb25zaXZlLW1lbnU6IDc3OHB4O1xuXG4kZ3JleTogIzJmMmYyZjtcbiRkYXJrLWdyZWVuOiAjMTMxO1xuJGdyZWVuOiAjMjg1ZDFlO1xuJGJsdWU6ICMxOTQyNGE7XG4kbGlnaHQtZ3JlZW46IHJnYmEoMTI0LCAxOTcsIDE0OSwgMC42NSk7XG4kcmVkOiAjNWMxZTFlO1xuJGRhcmstcmVkOiAjNjYwMDAwO1xuXG4vLyBCb3ggZ3JhZGllbnRzXG4kYm94LUdyYWQtSGVpZ2h0OiAxOHB4O1xuXG4kYm94LUJHLUdyZXk6ICRncmV5O1xuJGJveC1HcmFkLVVwcGVyLVRvcC1HcmV5OiAjNzE3MTcxO1xuJGJveC1HcmFkLVVwcGVyLUJvdHRvbS1HcmV5OiAjNDI0MTQxO1xuJGJveC1HcmFkLUxvd2VyLVRvcC1HcmV5OiAjNDA0MDQwO1xuJGJveC1HcmFkLUxvd2VyLUJvdHRvbS1HcmV5OiAjMmYyZjJmO1xuXG4kYm94LUJHLUdyZWVuOiAkZ3JlZW47XG4kYm94LUdyYWQtVXBwZXItVG9wLUdyZWVuOiAjNDY5OTM2O1xuJGJveC1HcmFkLVVwcGVyLUJvdHRvbS1HcmVlbjogIzMwNzAyNTtcbiRib3gtR3JhZC1Mb3dlci1Ub3AtR3JlZW46ICMzMDcyMjU7XG4kYm94LUdyYWQtTG93ZXItQm90dG9tLUdyZWVuOiAjMjg1ZDFlO1xuXG4kYm94LUJHLUJsdWU6ICMxOTQyNGE7XG4kYm94LUdyYWQtVXBwZXItVG9wLUJsdWU6ICMxMjYxNjc7XG4kYm94LUdyYWQtVXBwZXItQm90dG9tLUJsdWU6ICMxOTQyNGE7XG4kYm94LUdyYWQtTG93ZXItVG9wLUJsdWU6ICMxOTQyNGE7XG4kYm94LUdyYWQtTG93ZXItQm90dG9tLUJsdWU6ICMxOTQyNGE7XG5cblxuJGJveC1CRy1EYXJrLUdyZWVuOiAkZGFyay1ncmVlbjtcbiRib3gtR3JhZC1VcHBlci1Ub3AtRGFyay1HcmVlbjogIzJlODAyZTtcbiRib3gtR3JhZC1VcHBlci1Cb3R0b20tRGFyay1HcmVlbjogIzE3NDUxNztcbiRib3gtR3JhZC1Mb3dlci1Ub3AtRGFyay1HcmVlbjogIzE4NDcxOTtcbiRib3gtR3JhZC1Mb3dlci1Cb3R0b20tRGFyay1HcmVlbjogIzExMzMxMTtcblxuJGJveC1CRy1SZWQ6ICRyZWQ7XG4kYm94LUdyYWQtVXBwZXItVG9wLVJlZDogI2E4M2IzYjtcbiRib3gtR3JhZC1VcHBlci1Cb3R0b20tUmVkOiAjNmUyNTI1O1xuJGJveC1HcmFkLUxvd2VyLVRvcC1SZWQ6ICM3MDI1MjU7XG4kYm94LUdyYWQtTG93ZXItQm90dG9tLVJlZDogIzVjMWUxZTtcblxuJG1xLWJyZWFrcG9pbnQtbW9iaWxlOiAzMjBweDtcbiRtcS1icmVha3BvaW50LXRhYmxldDdpbmNoOiA2MDBweDtcbiRtcS1icmVha3BvaW50LXRhYmxldDogNzQwcHg7XG4kbXEtYnJlYWtwb2ludC1kZXNrdG9wOiA5ODBweDtcbiRtcS1icmVha3BvaW50LXdpZGU6IDEzMDBweDtcbiRtcS1icmVha3BvaW50LWRlc2t0b3BBZDogODEwcHg7XG4kbXEtYnJlYWtwb2ludC1tb2JpbGVMYW5kc2NhcGU6IDQ4MHB4O1xuJG1xLWJyZWFrcG9pbnQtbWVkaXVtTG9nbzogNDQwcHg7XG4kbXEtYnJlYWtwb2ludC1zbWFsbExvZ286IDMyMHB4O1xuJG1xLWJyZWFrcG9pbnQtaGVhZGVyU29jaWFsSWNvbnM6IDk1NHB4O1xuJG1xLWJyZWFrcG9pbnQtcGFnZTogJHBhZ2Utd2lkdGg7XG4kbXEtYnJlYWtwb2ludC1yZXNwb25zaXZlTWVudTogJHJlc3BvbnNpdmUtbWVudTtcblxuXG4vLyBCcmVha3BvaW50c1xuJG1xLWJyZWFrcG9pbnRzOiAoXG4gICAgICAgIG1vYmlsZTogICRtcS1icmVha3BvaW50LW1vYmlsZSxcbiAgICAgICAgdGFibGV0N2luY2g6ICAkbXEtYnJlYWtwb2ludC10YWJsZXQ3aW5jaCxcbiAgICAgICAgdGFibGV0OiAgJG1xLWJyZWFrcG9pbnQtdGFibGV0LFxuICAgICAgICBkZXNrdG9wOiAkbXEtYnJlYWtwb2ludC1kZXNrdG9wLFxuICAgICAgICB3aWRlOiAkbXEtYnJlYWtwb2ludC13aWRlLFxuXG4gIC8vIFR3ZWFrcG9pbnRzXG4gICAgICAgIGRlc2t0b3BBZDogJG1xLWJyZWFrcG9pbnQtZGVza3RvcEFkLFxuICAgICAgICBtb2JpbGVMYW5kc2NhcGU6ICRtcS1icmVha3BvaW50LW1vYmlsZUxhbmRzY2FwZSxcbiAgICAgICAgc21hbGxMb2dvOiAkbXEtYnJlYWtwb2ludC1zbWFsbExvZ28sXG4gICAgICAgIHBhZ2U6ICRtcS1icmVha3BvaW50LXBhZ2UsXG4gICAgICAgIHJlc3BvbnNpdmVNZW51OiAkbXEtYnJlYWtwb2ludC1yZXNwb25zaXZlTWVudSxcbiAgICAgICAgaGVhZGVyU29jaWFsSWNvbnM6ICRtcS1icmVha3BvaW50LWhlYWRlclNvY2lhbEljb25zXG4pO1xuXG5cbi8vIFRvIGVuYWJsZSBzdXBwb3J0IGZvciBicm93c2VycyB0aGF0IGRvIG5vdCBzdXBwb3J0IEBtZWRpYSBxdWVyaWVzLFxuLy8gKElFIDw9IDgsIEZpcmVmb3ggPD0gMywgT3BlcmEgPD0gOSkgc2V0ICRtcS1yZXNwb25zaXZlIHRvIGZhbHNlXG4vLyBDcmVhdGUgYSBzZXBhcmF0ZSBzdHlsZXNoZWV0IHNlcnZlZCBleGNsdXNpdmVseSB0byB0aGVzZSBicm93c2Vycyxcbi8vIG1lYW5pbmcgQG1lZGlhIHF1ZXJpZXMgd2lsbCBiZSByYXN0ZXJpemVkLCByZWx5aW5nIG9uIHRoZSBjYXNjYWRlIGl0c2VsZlxuJG1xLXJlc3BvbnNpdmU6IHRydWU7XG5cbi8vIElmIHlvdSB3YW50IHRvIGRpc3BsYXkgdGhlIGN1cnJlbnRseSBhY3RpdmUgYnJlYWtwb2ludCBpbiB0aGUgdG9wXG4vLyByaWdodCBjb3JuZXIgb2YgeW91ciBzaXRlIGR1cmluZyBkZXZlbG9wbWVudCwgYWRkIHRoZSBicmVha3BvaW50c1xuLy8gdG8gdGhpcyBsaXN0LCBvcmRlcmVkIGJ5IHdpZHRoLCBlLmcuIChtb2JpbGUsIHRhYmxldCwgZGVza3RvcCkuXG4vLyRtcS1zaG93LWJyZWFrcG9pbnRzOiAobW9iaWxlLCBtb2JpbGVMYW5kc2NhcGUsIHRhYmxldCwgZGVza3RvcCwgd2lkZSk7XG4iLAoJCSJAbWl4aW4gaVdhbGtNb2JpbGVHcmFkaWVudHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2M5ZGNmNCAwJSwjODJiNWVjIDIyJSwjMjk4YWUzIDQ2JSwjM2VjMWY3IDcwJSwjM2VjMWY3IDEwMCUpO1xufVxuXG5AbWl4aW4gY2VudHJlWXtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuQG1peGluIGNlbnRyZVh7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xufVxuXG5AbWl4aW4gY2VudHJlWFl7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSAgdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuQG1peGluIGdyZXlfZ3JhZGllbnR7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMTgxLCAxODksIDIwMCwgMSkgMCUsIHJnYmEoMTMwLCAxNDAsIDE0OSwgMSkgMzYlLCByZ2JhKDQwLCA1MiwgNTksIDEpIDEwMCUpO1xufVxuXG5AbWl4aW4gZ3JlZW5fZ3JhZGllbnR7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICM0ZWI5NGUgMCUsICMxMDkwMTAgMzYlLCAjMDkzZTA5IDEwMCUpO1xufVxuXG5AbWl4aW4gYm94KCRiZyl7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiZztcbiAgYm9yZGVyLXJhZGl1czo0cHg7XG4gICYsIGF7XG4gICAgY29sb3I6IHdoaXRlO1xuICB9XG59XG5cbkBtaXhpbiBib3hHcmFkaWVudCgkYmcsICR1cHBlci10b3AsICR1cHBlci1ib3R0b20sICRsb3dlci10b3AsICRsb3dlci1ib3R0b20sICRoZWlnaHQ6ICRib3gtR3JhZC1IZWlnaHQpe1xuICBAaW5jbHVkZSBib3goJGJnKTtcbiAgei1pbmRleDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICY6YmVmb3Jle1xuICAgIGNvbnRlbnQ6Jyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogJGhlaWdodDtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoJHVwcGVyLXRvcCwgJHVwcGVyLWJvdHRvbSk7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4IDRweCAwIDA7XG4gICAgei1pbmRleDogLTE7XG4gIH1cblxuICAmOmFmdGVye1xuICAgIGNvbnRlbnQ6Jyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogJGhlaWdodDtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogJGhlaWdodDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoJGxvd2VyLXRvcCwgJGxvd2VyLWJvdHRvbSk7XG4gICAgei1pbmRleDogLTE7XG4gIH1cblxuICA+ICp7XG4gICAgei1pbmRleDogMjtcblxuICAgIEBhdC1yb290IHtcbiAgICAgIGJvZHk6bm90KC5mdWxsc2NyZWVuKSAjeyZ9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gYm94R3JhZGllbnRHcmV5e1xuICBAaW5jbHVkZSBib3hHcmFkaWVudCgkYm94LUJHLUdyZXksICRib3gtR3JhZC1VcHBlci1Ub3AtR3JleSwgJGJveC1HcmFkLVVwcGVyLUJvdHRvbS1HcmV5LCAkYm94LUdyYWQtTG93ZXItVG9wLUdyZXksICRib3gtR3JhZC1Mb3dlci1Cb3R0b20tR3JleSk7XG59XG5cbkBtaXhpbiBib3hHcmFkaWVudEdyZWVue1xuICBAaW5jbHVkZSBib3hHcmFkaWVudCgkYm94LUJHLUdyZWVuLCAkYm94LUdyYWQtVXBwZXItVG9wLUdyZWVuLCAkYm94LUdyYWQtVXBwZXItQm90dG9tLUdyZWVuLCAkYm94LUdyYWQtTG93ZXItVG9wLUdyZWVuLCAkYm94LUdyYWQtTG93ZXItQm90dG9tLUdyZWVuKTtcbn1cblxuQG1peGluIGJveEdyYWRpZW50Qmx1ZXtcbiAgQGluY2x1ZGUgYm94R3JhZGllbnQoJGJveC1CRy1CbHVlLCAkYm94LUdyYWQtVXBwZXItVG9wLUJsdWUsICRib3gtR3JhZC1VcHBlci1Cb3R0b20tQmx1ZSwgJGJveC1HcmFkLUxvd2VyLVRvcC1CbHVlLCAkYm94LUdyYWQtTG93ZXItQm90dG9tLUJsdWUpO1xufVxuXG5AbWl4aW4gYm94R3JhZGllbnREYXJrR3JlZW57XG4gIEBpbmNsdWRlIGJveEdyYWRpZW50KCRib3gtQkctRGFyay1HcmVlbiwgJGJveC1HcmFkLVVwcGVyLVRvcC1EYXJrLUdyZWVuLCAkYm94LUdyYWQtVXBwZXItQm90dG9tLURhcmstR3JlZW4sICRib3gtR3JhZC1Mb3dlci1Ub3AtRGFyay1HcmVlbiwgJGJveC1HcmFkLUxvd2VyLUJvdHRvbS1EYXJrLUdyZWVuKTtcbn1cblxuQG1peGluIGJveEdyYWRpZW50UmVke1xuICBAaW5jbHVkZSBib3hHcmFkaWVudCgkYm94LUJHLVJlZCwgJGJveC1HcmFkLVVwcGVyLVRvcC1SZWQsICRib3gtR3JhZC1VcHBlci1Cb3R0b20tUmVkLCAkYm94LUdyYWQtTG93ZXItVG9wLVJlZCwgJGJveC1HcmFkLUxvd2VyLUJvdHRvbS1SZWQpO1xufVxuXG5AbWl4aW4gYm94U2hhZG93e1xuICBib3gtc2hhZG93OiA0cHggNHB4IDRweCAjYmJiO1xufVxuXG5AbWl4aW4gYm94eXtcbiAgQGluY2x1ZGUgYm94R3JhZGllbnRHcmV5O1xuICBAaW5jbHVkZSBib3hTaGFkb3c7XG4gIGNvbG9yOiAjZWVlO1xuXG4gIGEsIHN0cm9uZyB7XG4gICAgY29sb3I6IHdoaXRlO1xuICB9XG5cbiAgaDIge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gIH1cbn1cblxuQG1peGluIGxpZ2h0R3JlZW5Cb3h7XG4gIEBpbmNsdWRlIGJveCgkbGlnaHQtZ3JlZW4pO1xuICAmLGF7XG4gICAgY29sb3I6IGJsYWNrO1xuICB9XG59XG5cbiIsCgkJIlxuLyoqXG4gKiBCcmVha3BvaW50c1xuICovXG5cbkBpbXBvcnQgXCJtcVwiO1xuXG5cbkBtaXhpbiBtcXMoJGZyb206IGZhbHNlLCAkdW50aWw6IGZhbHNlKXtcbiAgQGluY2x1ZGUgbXEoJGZyb20sICR1bnRpbCwgJG1lZGlhLXR5cGU6IHNjcmVlbikge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8qKlxuICogSW5wdXQgY2FwYWJpbGl0aWVzXG4gKi9cblxuLy8gc21hcnRwaG9uZXMgYW5kIHRhYmxldHNcbkBtaXhpbiB0b3VjaC1zY3JlZW4taW5wdXQge1xuICBAbWVkaWEgKHBvaW50ZXI6IGNvYXJzZSlcbiAgYW5kIChob3Zlcjogbm9uZSl7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gTW91c2Ugb3IgdG91Y2ggcGFkXG5AbWl4aW4gbW91c2UtaW5wdXQge1xuICBAbWVkaWEgKHBvaW50ZXI6IGZpbmUpXG4gIGFuZCAoaG92ZXI6IGhvdmVyKXtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBTaG93IGZvciB0b3VjaCBzY3JlZW5zXG4vLyBhbmQgdXAgdW50aWwgdGFibGV0IGRldmljZSB3aWR0aCBmb3IgdGFibGV0cyBub3Qgc3VwcG9ydGluZyBpbnB1dCBtZWRpYSBxdWVyaWVzIGllLiBvbGQgQW5kcm9pZCA0LnhcbkBtaXhpbiB0b3VjaC1zY3JlZW4tZGV2aWNlc3tcbiAgQGluY2x1ZGUgdG91Y2gtc2NyZWVuLWlucHV0IHtcbiAgICBAY29udGVudDtcbiAgfVxuICBAaW5jbHVkZSBtcXMoJHVudGlsOiByZXNwb25zaXZlTWVudSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE5pbnRlbmRvIFdpaSBjb250cm9sbGVyLCBLaW5lY3QsIGV0Yy5cbkBtaXhpbiBjb25zb2xlLWlucHV0IHtcbiAgQG1lZGlhIChwb2ludGVyOiBjb2Fyc2UpXG4gIGFuZCAoaG92ZXI6IGhvdmVyKXtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBzdHlsdXMtYmFzZWQgc2NyZWVucyAoQ2ludGlxLCBXYWNvbSwgZXRjKVxuQG1peGluIGNvbnNvbGUtaW5wdXQge1xuICBAbWVkaWEgKHBvaW50ZXI6IGZpbmUpXG4gIGFuZCAoaG92ZXI6IG5vbmUpe1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIFJldGluYSBkaXNwbGF5cyAoMngpXG5AbWl4aW4gcmV0aW5hIHtcbiAgQG1lZGlhIChtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSksKC1vLW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDMvMiksXG4gICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSksKG1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSksKG1pbi1yZXNvbHV0aW9uOiAxLjVkcHB4KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsCgkJIkBjaGFyc2V0IFwiVVRGLThcIjsgLy8gRml4ZXMgYW4gaXNzdWUgd2hlcmUgUnVieSBsb2NhbGUgaXMgbm90IHNldCBwcm9wZXJseVxuICAgICAgICAgICAgICAgICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEvcHVsbC8xMFxuXG4vLy8gQmFzZSBmb250IHNpemUgb24gdGhlIGA8Ym9keT5gIGVsZW1lbnRcbi8vLyBAdHlwZSBOdW1iZXIgKHVuaXQpXG4kbXEtYmFzZS1mb250LXNpemU6IDE2cHggIWRlZmF1bHQ7XG5cbi8vLyBSZXNwb25zaXZlIG1vZGVcbi8vL1xuLy8vIFNldCB0byBgZmFsc2VgIHRvIGVuYWJsZSBzdXBwb3J0IGZvciBicm93c2VycyB0aGF0IGRvIG5vdCBzdXBwb3J0IEBtZWRpYSBxdWVyaWVzLFxuLy8vIChJRSA8PSA4LCBGaXJlZm94IDw9IDMsIE9wZXJhIDw9IDkpXG4vLy9cbi8vLyBZb3UgY291bGQgY3JlYXRlIGEgc3R5bGVzaGVldCBzZXJ2ZWQgZXhjbHVzaXZlbHkgdG8gb2xkZXIgYnJvd3NlcnMsXG4vLy8gd2hlcmUgQG1lZGlhIHF1ZXJpZXMgYXJlIHJhc3Rlcml6ZWRcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgLy8gb2xkLWllLnNjc3Ncbi8vLyAgJG1xLXJlc3BvbnNpdmU6IGZhbHNlO1xuLy8vICBAaW1wb3J0ICdtYWluJzsgLy8gQG1lZGlhIHF1ZXJpZXMgaW4gdGhpcyBmaWxlIHdpbGwgYmUgcmFzdGVyaXplZCB1cCB0byAkbXEtc3RhdGljLWJyZWFrcG9pbnRcbi8vLyAgICAgICAgICAgICAgICAgICAvLyBsYXJnZXIgYnJlYWtwb2ludHMgd2lsbCBiZSBpZ25vcmVkXG4vLy9cbi8vLyBAdHlwZSBCb29sZWFuXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNyZXNwb25zaXZlLW1vZGUtb2ZmIERpc2FibGVkIHJlc3BvbnNpdmUgbW9kZSBkb2N1bWVudGF0aW9uXG4kbXEtcmVzcG9uc2l2ZTogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJyZWFrcG9pbnQgbGlzdFxuLy8vXG4vLy8gTmFtZSB5b3VyIGJyZWFrcG9pbnRzIGluIGEgd2F5IHRoYXQgY3JlYXRlcyBhIHViaXF1aXRvdXMgbGFuZ3VhZ2Vcbi8vLyBhY3Jvc3MgdGVhbSBtZW1iZXJzLiBJdCB3aWxsIGltcHJvdmUgY29tbXVuaWNhdGlvbiBiZXR3ZWVuXG4vLy8gc3Rha2Vob2xkZXJzLCBkZXNpZ25lcnMsIGRldmVsb3BlcnMsIGFuZCB0ZXN0ZXJzLlxuLy8vXG4vLy8gQHR5cGUgTWFwXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNzZWVpbmctdGhlLWN1cnJlbnRseS1hY3RpdmUtYnJlYWtwb2ludCBGdWxsIGRvY3VtZW50YXRpb24gYW5kIGV4YW1wbGVzXG4kbXEtYnJlYWtwb2ludHM6IChcbiAgICBtb2JpbGU6ICAzMjBweCxcbiAgICB0YWJsZXQ6ICA3NDBweCxcbiAgICBkZXNrdG9wOiA5ODBweCxcbiAgICB3aWRlOiAgICAxMzAwcHhcbikgIWRlZmF1bHQ7XG5cbi8vLyBTdGF0aWMgYnJlYWtwb2ludCAoZm9yIGZpeGVkLXdpZHRoIGxheW91dHMpXG4vLy9cbi8vLyBEZWZpbmUgdGhlIGJyZWFrcG9pbnQgZnJvbSAkbXEtYnJlYWtwb2ludHMgdGhhdCBzaG91bGRcbi8vLyBiZSB1c2VkIGFzIHRoZSB0YXJnZXQgd2lkdGggZm9yIHRoZSBmaXhlZC13aWR0aCBsYXlvdXRcbi8vLyAoaS5lLiB3aGVuICRtcS1yZXNwb25zaXZlIGlzIHNldCB0byAnZmFsc2UnKSBpbiBhIG9sZC1pZS5zY3NzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gIC8vIHRhYmxldC1vbmx5LnNjc3Ncbi8vLyAgLy9cbi8vLyAgLy8gSWdub3JlIGFsbCBzdHlsZXMgYWJvdmUgdGFibGV0IGJyZWFrcG9pbnQsXG4vLy8gIC8vIGFuZCBmaXggdGhlIHN0eWxlcyAoZS5nLiBsYXlvdXQpIGF0IHRhYmxldCB3aWR0aFxuLy8vICAkbXEtcmVzcG9uc2l2ZTogZmFsc2U7XG4vLy8gICRtcS1zdGF0aWMtYnJlYWtwb2ludDogdGFibGV0O1xuLy8vICBAaW1wb3J0ICdtYWluJzsgLy8gQG1lZGlhIHF1ZXJpZXMgaW4gdGhpcyBmaWxlIHdpbGwgYmUgcmFzdGVyaXplZCB1cCB0byB0YWJsZXRcbi8vLyAgICAgICAgICAgICAgICAgICAvLyBsYXJnZXIgYnJlYWtwb2ludHMgd2lsbCBiZSBpZ25vcmVkXG4vLy9cbi8vLyBAdHlwZSBTdHJpbmdcbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI2FkZGluZy1jdXN0b20tYnJlYWtwb2ludHMgRnVsbCBkb2N1bWVudGF0aW9uIGFuZCBleGFtcGxlc1xuJG1xLXN0YXRpYy1icmVha3BvaW50OiBkZXNrdG9wICFkZWZhdWx0O1xuXG4vLy8gU2hvdyBicmVha3BvaW50cyBpbiB0aGUgdG9wIHJpZ2h0IGNvcm5lclxuLy8vXG4vLy8gSWYgeW91IHdhbnQgdG8gZGlzcGxheSB0aGUgY3VycmVudGx5IGFjdGl2ZSBicmVha3BvaW50IGluIHRoZSB0b3Bcbi8vLyByaWdodCBjb3JuZXIgb2YgeW91ciBzaXRlIGR1cmluZyBkZXZlbG9wbWVudCwgYWRkIHRoZSBicmVha3BvaW50c1xuLy8vIHRvIHRoaXMgbGlzdCwgb3JkZXJlZCBieSB3aWR0aCwgZS5nLiAobW9iaWxlLCB0YWJsZXQsIGRlc2t0b3ApLlxuLy8vXG4vLy8gQHR5cGUgbWFwXG4kbXEtc2hvdy1icmVha3BvaW50czogKCkgIWRlZmF1bHQ7XG5cbi8vLyBDdXN0b21pemUgdGhlIG1lZGlhIHR5cGUgKGUuZy4gYEBtZWRpYSBzY3JlZW5gIG9yIGBAbWVkaWEgcHJpbnRgKVxuLy8vIEJ5IGRlZmF1bHQgc2Fzcy1tcSB1c2VzIGFuIFwiYWxsXCIgbWVkaWEgdHlwZSAoYEBtZWRpYSBhbGwgYW5kIOKApmApXG4vLy9cbi8vLyBAdHlwZSBTdHJpbmdcbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI2NoYW5naW5nLW1lZGlhLXR5cGUgRnVsbCBkb2N1bWVudGF0aW9uIGFuZCBleGFtcGxlc1xuJG1xLW1lZGlhLXR5cGU6IGFsbCAhZGVmYXVsdDtcblxuLy8vIENvbnZlcnQgcGl4ZWxzIHRvIGVtc1xuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRweCAtIHZhbHVlIHRvIGNvbnZlcnRcbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhc2UtZm9udC1zaXplICgkbXEtYmFzZS1mb250LXNpemUpIC0gYDxib2R5PmAgZm9udCBzaXplXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICRmb250LXNpemUtaW4tZW1zOiBtcS1weDJlbSgxNnB4KTtcbi8vLyAgcCB7IGZvbnQtc2l6ZTogbXEtcHgyZW0oMTZweCk7IH1cbi8vL1xuLy8vIEByZXF1aXJlcyAkbXEtYmFzZS1mb250LXNpemVcbi8vLyBAcmV0dXJucyB7TnVtYmVyfVxuQGZ1bmN0aW9uIG1xLXB4MmVtKCRweCwgJGJhc2UtZm9udC1zaXplOiAkbXEtYmFzZS1mb250LXNpemUpIHtcbiAgICBAaWYgdW5pdGxlc3MoJHB4KSB7XG4gICAgICAgIEB3YXJuIFwiQXNzdW1pbmcgI3skcHh9IHRvIGJlIGluIHBpeGVscywgYXR0ZW1wdGluZyB0byBjb252ZXJ0IGl0IGludG8gcGl4ZWxzLlwiO1xuICAgICAgICBAcmV0dXJuIG1xLXB4MmVtKCRweCAqIDFweCwgJGJhc2UtZm9udC1zaXplKTtcbiAgICB9IEBlbHNlIGlmIHVuaXQoJHB4KSA9PSBlbSB7XG4gICAgICAgIEByZXR1cm4gJHB4O1xuICAgIH1cbiAgICBAcmV0dXJuICgkcHggLyAkYmFzZS1mb250LXNpemUpICogMWVtO1xufVxuXG4vLy8gR2V0IGEgYnJlYWtwb2ludCdzIHdpZHRoXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG5hbWUgLSBOYW1lIG9mIHRoZSBicmVha3BvaW50LiBPbmUgb2YgJG1xLWJyZWFrcG9pbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICR0YWJsZXQtd2lkdGg6IG1xLWdldC1icmVha3BvaW50LXdpZHRoKHRhYmxldCk7XG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aChkZXNrdG9wKSkge31cbi8vL1xuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1icmVha3BvaW50c1xuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVmFsdWUgaW4gcGl4ZWxzXG5AZnVuY3Rpb24gbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJG5hbWUsICRicmVha3BvaW50czogJG1xLWJyZWFrcG9pbnRzKSB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJG5hbWUpIHtcbiAgICAgICAgQHJldHVybiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICBAd2FybiBcIkJyZWFrcG9pbnQgI3skbmFtZX0gd2Fzbid0IGZvdW5kIGluICRicmVha3BvaW50cy5cIjtcbiAgICB9XG59XG5cbi8vLyBNZWRpYSBRdWVyeSBtaXhpblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBCb29sZWFufSAkZnJvbSAoZmFsc2UpIC0gT25lIG9mICRtcS1icmVha3BvaW50c1xuLy8vIEBwYXJhbSB7U3RyaW5nIHwgQm9vbGVhbn0gJHVudGlsIChmYWxzZSkgLSBPbmUgb2YgJG1xLWJyZWFrcG9pbnRzXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBCb29sZWFufSAkYW5kIChmYWxzZSkgLSBBZGRpdGlvbmFsIG1lZGlhIHF1ZXJ5IHBhcmFtZXRlcnNcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lZGlhLXR5cGUgKCRtcS1tZWRpYS10eXBlKSAtIE1lZGlhIHR5cGU6IHNjcmVlbiwgcHJpbnTigKZcbi8vL1xuLy8vIEBpZ25vcmUgVW5kb2N1bWVudGVkIEFQSSwgZm9yIGFkdmFuY2VkIHVzZSBvbmx5OlxuLy8vIEBpZ25vcmUgQHBhcmFtIHtNYXB9ICRicmVha3BvaW50cyAoJG1xLWJyZWFrcG9pbnRzKVxuLy8vIEBpZ25vcmUgQHBhcmFtIHtTdHJpbmd9ICRzdGF0aWMtYnJlYWtwb2ludCAoJG1xLXN0YXRpYy1icmVha3BvaW50KVxuLy8vXG4vLy8gQGNvbnRlbnQgc3R5bGluZyBydWxlcywgd3JhcHBlZCBpbnRvIGEgQG1lZGlhIHF1ZXJ5IHdoZW4gJHJlc3BvbnNpdmUgaXMgdHJ1ZVxuLy8vXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLW1lZGlhLXR5cGVcbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtYnJlYWtwb2ludHNcbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtc3RhdGljLWJyZWFrcG9pbnRcbi8vLyBAcmVxdWlyZXMge2Z1bmN0aW9ufSBtcS1weDJlbVxuLy8vIEByZXF1aXJlcyB7ZnVuY3Rpb259IG1xLWdldC1icmVha3BvaW50LXdpZHRoXG4vLy9cbi8vLyBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xI3Jlc3BvbnNpdmUtbW9kZS1vbi1kZWZhdWx0IEZ1bGwgZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZXNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgLmVsZW1lbnQge1xuLy8vICAgIEBpbmNsdWRlIG1xKCRmcm9tOiBtb2JpbGUpIHtcbi8vLyAgICAgIGNvbG9yOiByZWQ7XG4vLy8gICAgfVxuLy8vICAgIEBpbmNsdWRlIG1xKCR1bnRpbDogdGFibGV0KSB7XG4vLy8gICAgICBjb2xvcjogYmx1ZTtcbi8vLyAgICB9XG4vLy8gICAgQGluY2x1ZGUgbXEobW9iaWxlLCB0YWJsZXQpIHtcbi8vLyAgICAgIGNvbG9yOiBncmVlbjtcbi8vLyAgICB9XG4vLy8gICAgQGluY2x1ZGUgbXEoJGZyb206IHRhYmxldCwgJGFuZDogJyhvcmllbnRhdGlvbjogbGFuZHNjYXBlKScpIHtcbi8vLyAgICAgIGNvbG9yOiB0ZWFsO1xuLy8vICAgIH1cbi8vLyAgICBAaW5jbHVkZSBtcSg5NTBweCkge1xuLy8vICAgICAgY29sb3I6IGhvdHBpbms7XG4vLy8gICAgfVxuLy8vICAgIEBpbmNsdWRlIG1xKHRhYmxldCwgJG1lZGlhLXR5cGU6IHNjcmVlbikge1xuLy8vICAgICAgY29sb3I6IGhvdHBpbms7XG4vLy8gICAgfVxuLy8vICAgIC8vIEFkdmFuY2VkIHVzZTpcbi8vLyAgICAkbXktYnJlYWtwb2ludHM6IChMOiA5MDBweCwgWEw6IDEyMDBweCk7XG4vLy8gICAgQGluY2x1ZGUgbXEoTCwgJGJyZWFrcG9pbnRzOiAkbXktYnJlYWtwb2ludHMsICRzdGF0aWMtYnJlYWtwb2ludDogTCkge1xuLy8vICAgICAgY29sb3I6IGhvdHBpbms7XG4vLy8gICAgfVxuLy8vICB9XG5AbWl4aW4gbXEoXG4gICAgJGZyb206IGZhbHNlLFxuICAgICR1bnRpbDogZmFsc2UsXG4gICAgJGFuZDogZmFsc2UsXG4gICAgJG1lZGlhLXR5cGU6ICRtcS1tZWRpYS10eXBlLFxuICAgICRicmVha3BvaW50czogJG1xLWJyZWFrcG9pbnRzLFxuICAgICRyZXNwb25zaXZlOiAkbXEtcmVzcG9uc2l2ZSxcbiAgICAkc3RhdGljLWJyZWFrcG9pbnQ6ICRtcS1zdGF0aWMtYnJlYWtwb2ludFxuKSB7XG4gICAgJG1pbi13aWR0aDogMDtcbiAgICAkbWF4LXdpZHRoOiAwO1xuICAgICRtZWRpYS1xdWVyeTogJyc7XG5cbiAgICAvLyBGcm9tOiB0aGlzIGJyZWFrcG9pbnQgKGluY2x1c2l2ZSlcbiAgICBAaWYgJGZyb20ge1xuICAgICAgICBAaWYgdHlwZS1vZigkZnJvbSkgPT0gbnVtYmVyIHtcbiAgICAgICAgICAgICRtaW4td2lkdGg6IG1xLXB4MmVtKCRmcm9tKTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAkbWluLXdpZHRoOiBtcS1weDJlbShtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkZnJvbSwgJGJyZWFrcG9pbnRzKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBVbnRpbDogdGhhdCBicmVha3BvaW50IChleGNsdXNpdmUpXG4gICAgQGlmICR1bnRpbCB7XG4gICAgICAgIEBpZiB0eXBlLW9mKCR1bnRpbCkgPT0gbnVtYmVyIHtcbiAgICAgICAgICAgICRtYXgtd2lkdGg6IG1xLXB4MmVtKCR1bnRpbCk7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgJG1heC13aWR0aDogbXEtcHgyZW0obXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJHVudGlsLCAkYnJlYWtwb2ludHMpKSAtIC4wMWVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmVzcG9uc2l2ZSBzdXBwb3J0IGlzIGRpc2FibGVkLCByYXN0ZXJpemUgdGhlIG91dHB1dCBvdXRzaWRlIEBtZWRpYSBibG9ja3NcbiAgICAvLyBUaGUgYnJvd3NlciB3aWxsIHJlbHkgb24gdGhlIGNhc2NhZGUgaXRzZWxmLlxuICAgIEBpZiAkcmVzcG9uc2l2ZSA9PSBmYWxzZSB7XG4gICAgICAgICRzdGF0aWMtYnJlYWtwb2ludC13aWR0aDogbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJHN0YXRpYy1icmVha3BvaW50LCAkYnJlYWtwb2ludHMpO1xuICAgICAgICAkdGFyZ2V0LXdpZHRoOiBtcS1weDJlbSgkc3RhdGljLWJyZWFrcG9pbnQtd2lkdGgpO1xuXG4gICAgICAgIC8vIE91dHB1dCBvbmx5IHJ1bGVzIHRoYXQgc3RhcnQgYXQgb3Igc3BhbiBvdXIgdGFyZ2V0IHdpZHRoXG4gICAgICAgIEBpZiAoXG4gICAgICAgICAgICAkYW5kID09IGZhbHNlXG4gICAgICAgICAgICBhbmQgJG1pbi13aWR0aCA8PSAkdGFyZ2V0LXdpZHRoXG4gICAgICAgICAgICBhbmQgKFxuICAgICAgICAgICAgICAgICR1bnRpbCA9PSBmYWxzZSBvciAkbWF4LXdpZHRoID49ICR0YXJnZXQtd2lkdGhcbiAgICAgICAgICAgIClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgIH0gQGVsc2UgeyAvLyBSZXNwb25zaXZlIHN1cHBvcnQgaXMgZW5hYmxlZCwgb3V0cHV0IHJ1bGVzIGluc2lkZSBAbWVkaWEgcXVlcmllc1xuICAgICAgICBAaWYgJG1pbi13aWR0aCAhPSAwIHsgJG1lZGlhLXF1ZXJ5OiAnI3skbWVkaWEtcXVlcnl9IGFuZCAobWluLXdpZHRoOiAjeyRtaW4td2lkdGh9KSc7IH1cbiAgICAgICAgQGlmICRtYXgtd2lkdGggIT0gMCB7ICRtZWRpYS1xdWVyeTogJyN7JG1lZGlhLXF1ZXJ5fSBhbmQgKG1heC13aWR0aDogI3skbWF4LXdpZHRofSknOyB9XG4gICAgICAgIEBpZiAkYW5kICAgICAgICAgICAgeyAkbWVkaWEtcXVlcnk6ICcjeyRtZWRpYS1xdWVyeX0gYW5kICN7JGFuZH0nOyB9XG5cbiAgICAgICAgLy8gUmVtb3ZlIHVubmVjZXNzYXJ5IG1lZGlhIHF1ZXJ5IHByZWZpeCAnYWxsIGFuZCAnXG4gICAgICAgIEBpZiAoJG1lZGlhLXR5cGUgPT0gJ2FsbCcgYW5kICRtZWRpYS1xdWVyeSAhPSAnJykge1xuICAgICAgICAgICAgJG1lZGlhLXR5cGU6ICcnO1xuICAgICAgICAgICAgJG1lZGlhLXF1ZXJ5OiBzdHItc2xpY2UodW5xdW90ZSgkbWVkaWEtcXVlcnkpLCA2KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSAjeyRtZWRpYS10eXBlICsgJG1lZGlhLXF1ZXJ5fSB7XG4gICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8vIEFkZCBhIGJyZWFrcG9pbnRcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbmFtZSAtIE5hbWUgb2YgdGhlIGJyZWFrcG9pbnRcbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIC0gV2lkdGggb2YgdGhlIGJyZWFrcG9pbnRcbi8vL1xuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1icmVha3BvaW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICBAaW5jbHVkZSBtcS1hZGQtYnJlYWtwb2ludCh0dnNjcmVlbiwgMTkyMHB4KTtcbi8vLyAgQGluY2x1ZGUgbXEodHZzY3JlZW4pIHt9XG5AbWl4aW4gbXEtYWRkLWJyZWFrcG9pbnQoJG5hbWUsICR3aWR0aCkge1xuICAgICRuZXctYnJlYWtwb2ludDogKCRuYW1lOiAkd2lkdGgpO1xuICAgICRtcS1icmVha3BvaW50czogbWFwLW1lcmdlKCRtcS1icmVha3BvaW50cywgJG5ldy1icmVha3BvaW50KSAhZ2xvYmFsO1xufVxuXG4vLy8gU2hvdyB0aGUgYWN0aXZlIGJyZWFrcG9pbnQgaW4gdGhlIHRvcCByaWdodCBjb3JuZXIgb2YgdGhlIHZpZXdwb3J0XG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNzZWVpbmctdGhlLWN1cnJlbnRseS1hY3RpdmUtYnJlYWtwb2ludFxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2hvdy1icmVha3BvaW50cyAoJG1xLXNob3ctYnJlYWtwb2ludHMpIC0gTGlzdCBvZiBicmVha3BvaW50cyB0byBzaG93IGluIHRoZSB0b3AgcmlnaHQgY29ybmVyXG4vLy8gQHBhcmFtIHtNYXB9ICRicmVha3BvaW50cyAoJG1xLWJyZWFrcG9pbnRzKSAtIEJyZWFrcG9pbnQgbmFtZXMgYW5kIHNpemVzXG4vLy9cbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtYnJlYWtwb2ludHNcbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtc2hvdy1icmVha3BvaW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAvLyBTaG93IGJyZWFrcG9pbnRzIHVzaW5nIGdsb2JhbCBzZXR0aW5nc1xuLy8vICBAaW5jbHVkZSBtcS1zaG93LWJyZWFrcG9pbnRzO1xuLy8vXG4vLy8gIC8vIFNob3cgYnJlYWtwb2ludHMgdXNpbmcgY3VzdG9tIHNldHRpbmdzXG4vLy8gIEBpbmNsdWRlIG1xLXNob3ctYnJlYWtwb2ludHMoKEwsIFhMKSwgKFM6IDMwMHB4LCBMOiA4MDBweCwgWEw6IDEyMDBweCkpO1xuQG1peGluIG1xLXNob3ctYnJlYWtwb2ludHMoJHNob3ctYnJlYWtwb2ludHM6ICRtcS1zaG93LWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludHM6ICRtcS1icmVha3BvaW50cykge1xuICAgIGJvZHk6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZDRjhFMztcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNGQkVFRDU7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI0ZCRUVENTtcbiAgICAgICAgY29sb3I6ICNDMDk4NTM7XG4gICAgICAgIGZvbnQ6IHNtYWxsLWNhcHRpb247XG4gICAgICAgIHBhZGRpbmc6IDNweCA2cHg7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHotaW5kZXg6IDEwMDtcblxuICAgICAgICAvLyBMb29wIHRocm91Z2ggdGhlIGJyZWFrcG9pbnRzIHRoYXQgc2hvdWxkIGJlIHNob3duXG4gICAgICAgIEBlYWNoICRzaG93LWJyZWFrcG9pbnQgaW4gJHNob3ctYnJlYWtwb2ludHMge1xuICAgICAgICAgICAgJHdpZHRoOiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCgkc2hvdy1icmVha3BvaW50LCAkYnJlYWtwb2ludHMpO1xuICAgICAgICAgICAgQGluY2x1ZGUgbXEoJHNob3ctYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzOiAkYnJlYWtwb2ludHMpIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIiN7JHNob3ctYnJlYWtwb2ludH0g4omlICN7JHdpZHRofSAoI3ttcS1weDJlbSgkd2lkdGgpfSlcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGlmIGxlbmd0aCgkbXEtc2hvdy1icmVha3BvaW50cykgPiAwIHtcbiAgICBAaW5jbHVkZSBtcS1zaG93LWJyZWFrcG9pbnRzO1xufVxuIiwKCQkiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4qIFRvdWNoIGRldmljZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuQGltcG9ydCBcImdlbmVyYWxfbWl4aW5zXCI7XG5cbkBtaXhpbiBib3gtc2hhZG93e1xuICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLDAsMCwuMTUpO1xufVxuXG5AbWl4aW4gdG91Y2gtc2NyZWVuLXN0eWxlcyB7XG5cbiAgLy8gQnV0dG9uc1xuICBbZGF0YS1yb2xlPVwiYnV0dG9uXCJdOm5vdCgubm9uLXJlc3BvbnNpdmUpe1xuICAgIEBpbmNsdWRlIGJveC1zaGFkb3c7XG5cbiAgICBjb2xvcjogIzMzMyAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6ICNlZWU7XG5cbiAgICBib3JkZXItY29sb3I6ICNkZGQ7XG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG5cblxuICAgIG1hcmdpbjogLjVlbSAwO1xuICAgIHBhZGRpbmc6IC43ZW0gMWVtO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuXG4gICAgJjpob3ZlciwgJjphY3RpdmV7XG4gICAgICBiYWNrZ3JvdW5kOiAjZThmMGZmO1xuICAgIH1cblxuICAgICZbZGF0YS1pY29uXXtcbiAgICAgIHBhZGRpbmctbGVmdDogMzJweDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDhweDtcbiAgICAgIGl7XG4gICAgICAgIEBpbmNsdWRlIGNlbnRyZVk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogOHB4O1xuICAgICAgfVxuICAgIH1cblxuICAgICYuZ3JlZW4ge1xuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgIzhkZGRhMCAwJSwgIzNkZGI4YyA1MCUsICM4ZGRkYTAgMTAwJSk7XG4gICAgICBib3JkZXItY29sb3I6ICMyYjZiMzc7XG4gICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjUpOyAvL2hlYXZpZXIgc2hhZG93IG9uIGRhcmsgZ3JlZW4gYmdcbiAgICAgICY6aG92ZXIsICY6YWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2RjZjRlMSAwJSwgIzNkZGI4YyA1MCUsICNkY2Y0ZTEgMTAwJSk7XG4gICAgICB9XG4gICAgfVxuICAgICYuYmx1ZXtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgIzhkYzBkZCAwJSwjM2RhY2RiIDUwJSwjOGRjMGRkIDEwMCUpO1xuICAgICAgICBib3JkZXItY29sb3I6ICMxMjYxNjc7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gICAgICAgICY6aG92ZXIsICY6YWN0aXZle1xuICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNkY2UxZjQgMCUsIzZlYWNlYiA1MCUsI2RjZTFmNCAxMDAlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIExpc3R2aWV3c1xuICBbZGF0YS1yb2xlPVwibGlzdHZpZXdcIl06bm90KC5ub24tcmVzcG9uc2l2ZSl7XG4gICAgQGluY2x1ZGUgYm94eTtcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcblxuXG4gICAgPmxpe1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDhweCAxNnB4IDhweCA4cHggIWltcG9ydGFudDtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIGJvcmRlci1jb2xvcjogI2RkZDtcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICBib3JkZXItd2lkdGg6IDFweCAxcHggMCAxcHg7XG4gICAgICBmb250LXNpemU6IDE2cHggIWltcG9ydGFudDtcbiAgICAgIEBpbmNsdWRlIG1xcygkdW50aWw6IHRhYmxldDdpbmNoKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xuICAgICAgfVxuXG4gICAgICBhe1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIEBpbmNsdWRlIG1xcygkdW50aWw6IHRhYmxldDdpbmNoKSB7XG4gICAgICAgICAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuXG4gICAgICAgICY6YWZ0ZXJ7XG4gICAgICAgICAgY29udGVudDogJz4nO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICByaWdodDogNHB4O1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTZweCAhaW1wb3J0YW50O1xuICAgICAgICAgIEBpbmNsdWRlIG1xcygkdW50aWw6IHRhYmxldDdpbmNoKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBMaW5rIGxpc3RzXG4gIDpub3QoLm5vbi1yZXNwb25zaXZlKTpub3QoW2RhdGEtcm9sZV0pOm5vdChbcm9sZV0pID4gbGkgPiBhOm9ubHktY2hpbGR7XG4gICAgcGFkZGluZzogOHB4IDA7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG59XG5cblxuIiwKCQkiLy8gUHVyZSBDU1MgcmVzcG9uc2l2ZSBjb2x1bW5zIGxheW91dFxuLy8gTm8gSmF2YVNjcmlwdCByZXF1aXJlZCAtIHVzZXMgQ1NTIEdyaWQgd2l0aCBtZWRpYSBxdWVyaWVzXG5cbiRsZWZ0Q29sV2lkdGg6IDUzNnB4O1xuJHJpZ2h0Q29sV2lkdGg6IDM3NnB4O1xuJGNvbHVtbkdhcDogMTZweDtcbiRkdWFsQ29sdW1uQnJlYWtwb2ludDogOTYwcHg7XG5cbi8vIFRoZSAjY29sdW1ucyBjb250YWluZXIgdXNlcyBDU1MgR3JpZFxuI2NvbHVtbnMge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsgLy8gU2luZ2xlIGNvbHVtbiBsYXlvdXQgKGRlZmF1bHQsIG1vYmlsZS1maXJzdClcblxuICAvLyBJbiBzaW5nbGUtY29sdW1uIG1vZGUsIGFsbCBib3hlcyBmbG93IGludG8gYSBzaW5nbGUgY29sdW1uXG4gIC8vIGFuZCBhcmUgb3JkZXJlZCBieSB0aGUgQ1NTIG9yZGVyIHByb3BlcnR5IGRlZmluZWQgaW4gd2Fsay5zY3NzXG4gIC5sZWZ0LmNvbCxcbiAgLnJpZ2h0LmNvbCB7XG4gICAgZGlzcGxheTogY29udGVudHM7IC8vIE1ha2VzIGNoaWxkcmVuIGRpcmVjdCBncmlkIGl0ZW1zXG4gIH1cbn1cblxuLy8gQm94IHN0eWxpbmdcbi5sZWZ0LmNvbCB7XG4gIC5uYXJyb3cuYm94IHtcbiAgICBtYXgtd2lkdGg6ICRsZWZ0Q29sV2lkdGg7XG4gIH1cbn1cblxuLmJveFtkYXRhLWNvbC1kdWFsPVwicmlnaHRcIl0ge1xuICBwYWRkaW5nLXRvcDogNHB4O1xufVxuXG4vLyBkZWZhdWx0IHNpbmdsZSBjb2x1bW4gb3JkZXI6IGF0IHRoZSBib3R0b20gKG92ZXJyaWRkZW4gcGVyLWJveCBpbiB3YWxrLnNjc3MpXG4uYm94IHtcbiAgb3JkZXI6IDEwMDtcbn1cblxuW2RhdGEtcm9sZT1cImxpc3R2aWV3XCJdIHtcbiAgPiBsaSB7XG4gICAgcGFkZGluZzogMnB4IDA7XG4gIH1cbn1cblxuLy8gU2luZ2xlIGNvbHVtbiBsYXlvdXQgc3R5bGVzICg8IDk2MHB4KVxuQG1lZGlhIChtYXgtd2lkdGg6ICN7JGR1YWxDb2x1bW5CcmVha3BvaW50IC0gMXB4fSkge1xuICAjY29sdW1ucyB7XG4gICAgQGluY2x1ZGUgdG91Y2gtc2NyZWVuLXN0eWxlcztcbiAgfVxufVxuXG4vLyBUYWJsZXQ6IHNpZGUtYnktc2lkZSBib3hlcyBpbiBzaW5nbGUgY29sdW1uIG1vZGUgZm9yIHJpZ2h0IGNvbHVtbiBpdGVtc1xuLy8gVXNlcyB0YWJsZXQgYnJlYWtwb2ludCAoNzQwcHgpIHVwIHRvIGR1YWwgY29sdW1uIGJyZWFrcG9pbnQgKDk2MHB4KVxuQG1lZGlhIChtaW4td2lkdGg6ICRtcS1icmVha3BvaW50LXRhYmxldCkgYW5kIChtYXgtd2lkdGg6ICN7JGR1YWxDb2x1bW5CcmVha3BvaW50IC0gMXB4fSkge1xuICAjY29sdW1ucyB7XG4gICAgLy8gUmlnaHQgY29sdW1uIGJveGVzIGdldCAyLXVwIGxheW91dCB3aXRoaW4gdGhlIHNpbmdsZSBjb2x1bW5cbiAgICAuYm94W2RhdGEtY29sLXNpbmdsZT1cInJpZ2h0XCJdLFxuICAgIC5ib3hbZGF0YS1jb2wtZHVhbD1cInJpZ2h0XCJdIHtcbiAgICAgIHdpZHRoOiBjYWxjKDUwJSAtIDEycHgpO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBtYXJnaW46IDAgNHB4IDhweDtcblxuICAgICAgJjpudGgtb2YtdHlwZShvZGQpIHtcbiAgICAgICAgY2xlYXI6IGxlZnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIER1YWwgY29sdW1uIGxheW91dCBhdCB3aWRlciB2aWV3cG9ydHNcbkBtZWRpYSAobWluLXdpZHRoOiAkZHVhbENvbHVtbkJyZWFrcG9pbnQpIHtcbiAgI2NvbHVtbnMge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogJGxlZnRDb2xXaWR0aCAkcmlnaHRDb2xXaWR0aDtcbiAgICBnYXA6IDAgJGNvbHVtbkdhcDtcblxuICAgIC5sZWZ0LmNvbCxcbiAgICAucmlnaHQuY29sIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyAvLyBSZXN0b3JlIG5vcm1hbCBibG9jayBiZWhhdmlvclxuICAgIH1cblxuICAgIC5sZWZ0LmNvbCB7XG4gICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgIGdyaWQtcm93OiAxO1xuICAgIH1cblxuICAgIC5yaWdodC5jb2wge1xuICAgICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgICBncmlkLXJvdzogMTtcbiAgICB9XG4gIH1cbn1cbiIsCgkJIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiogUHJvbW9zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5AaW1wb3J0IFwibG9hZGVyXCI7XG5cbi5wcm9tby1jb250YWluZXIge1xuICBtYXJnaW46IDAgYXV0bztcbiAgd2lkdGg6IDEwMCU7XG5cbiAgQGltcG9ydCBcInNsaWNrX292ZXJyaWRlc1wiO1xuXG4gIC5zbGljay1saXN0e1xuICAgIG1hcmdpbjogMCAtOHB4O1xuICB9XG5cbiAgLnNsaWNrLXNsaWRle1xuICAgIG1hcmdpbjogMCA4cHg7XG4gIH1cblxuICAmOm5vdCgubG9hZGVkKSwgJjpub3QoLmRpc3BsYXllZCl7XG4gICAgQGluY2x1ZGUgbG9hZGVyKFxuICAgICAgICAgICAgJHNpemU6IDUwcHgsXG4gICAgICAgICAgICAkdGhpY2tuZXNzOiA1cHgsXG4gICAgICAgICAgICAkZm9yZWdyb3VuZDogYmxhY2ssXG4gICAgICAgICAgICAkYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjI1KVxuICAgICk7XG4gIH1cblxuICAmOm5vdCguZGlzcGxheWVkKXtcbiAgICAuc2xpY2stYXJyb3d7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgQGF0LXJvb3Qge1xuICAgICN7Jn06bm90KC5sb2FkZWQpe1xuICAgICAgLnByb21ve1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnByb21vc3tcbiAgICBwYWRkaW5nOiA4cHggMCA0cHggMDtcbiAgICBAaW5jbHVkZSBtcXMoJHVudGlsOiAzNjRweCkge1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG4gIH1cbiAgLnByb21ve1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgLndyYXBwZXJ7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBsZWZ0OiAtMXB4O1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzk5OTk5OTtcbiAgICB9XG4gICAgaW1ne1xuICAgICAgQGluY2x1ZGUgYm94U2hhZG93O1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAudGl0bGUsIC5tZXNzYWdle1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgaDIsIHB7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDAuNSk7XG4gICAgICAgIHRleHQtc2hhZG93OiAwIDAgMXB4IGJsYWNrO1xuICAgICAgfVxuICAgIH1cbiAgICAudGl0bGV7XG4gICAgICB0b3A6IDA7XG4gICAgICBoMntcbiAgICAgICAgZm9udC1zaXplOiAxNHB0O1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDJweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWVzc2FnZXtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIHB7XG4gICAgICAgIHBhZGRpbmc6IDRweCAwIDRweCA0cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTBwdDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsCgkJIi8vIExvYWRpbmcgYW5pbWF0aW9uXG5cbiRsb2FkZXItZGVmYXVsdC1zaXplOiA1MHB4O1xuJGxvYWRlci1kZWZhdWx0LXRoaWNrbmVzczogNXB4O1xuJGxvYWRlci1kZWZhdWx0LWZvcmVncm91bmQ6IHdoaXRlO1xuJGxvYWRlci1kZWZhdWx0LWJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4yNSk7XG4kbG9hZGVyLWRlZmF1bHQtZm9yZWdyb3VuZC1pbnZlcnRlZDogYmxhY2s7XG4kbG9hZGVyLWRlZmF1bHQtYmFja2dyb3VuZC1pbnZlcnRlZDogcmdiYSgwLDAsMCwwLjI1KTtcblxuQG1peGluIGxvYWRlcihcbiAgJHNpemU6ICRsb2FkZXItZGVmYXVsdC1zaXplLFxuICAkdGhpY2tuZXNzOiAkbG9hZGVyLWRlZmF1bHQtdGhpY2tuZXNzLFxuICAkZm9yZWdyb3VuZDogJGxvYWRlci1kZWZhdWx0LWZvcmVncm91bmQsXG4gICRiYWNrZ3JvdW5kOiAkbG9hZGVyLWRlZmF1bHQtYmFja2dyb3VuZFxuKXtcblxuICBAYXQtcm9vdHtcbiAgICBib2R5Om5vdCguZnVsbHNjcmVlbikgI3smfSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuICB9XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLXRvcDogLSgkc2l6ZSAvIDIgKyAkdGhpY2tuZXNzKTtcbiAgICBtYXJnaW4tbGVmdDogLSgkc2l6ZSAvIDIgKyAkdGhpY2tuZXNzKTtcbiAgICB3aWR0aDogJHNpemU7XG4gICAgaGVpZ2h0OiAkc2l6ZTtcbiAgICBib3JkZXItcmFkaXVzOiAkc2l6ZTtcbiAgICBib3JkZXI6ICR0aGlja25lc3Mgc29saWQgJGJhY2tncm91bmQ7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogJGZvcmVncm91bmQ7XG4gICAgYW5pbWF0aW9uOiBsb2FkaW5nIDFzIGVhc2UgaW5maW5pdGU7XG4gIH1cbiAgQGtleWZyYW1lcyBsb2FkaW5nIHtcbiAgICAwJSB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbG9hZGVyLWludmVydGVkKFxuICAkc2l6ZTogJGxvYWRlci1kZWZhdWx0LXNpemUsXG4gICR0aGlja25lc3M6ICRsb2FkZXItZGVmYXVsdC10aGlja25lc3MsXG4gICRmb3JlZ3JvdW5kOiAkbG9hZGVyLWRlZmF1bHQtZm9yZWdyb3VuZC1pbnZlcnRlZCxcbiAgJGJhY2tncm91bmQ6ICRsb2FkZXItZGVmYXVsdC1iYWNrZ3JvdW5kLWludmVydGVkXG4pe1xuICBAaW5jbHVkZSBsb2FkZXIoXG4gICAgJHNpemU6ICRzaXplLFxuICAgICR0aGlja25lc3M6ICR0aGlja25lc3MsXG4gICAgJGZvcmVncm91bmQ6ICRmb3JlZ3JvdW5kLFxuICAgICRiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZFxuICApO1xufVxuIiwKCQkiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuKiBTbGljayBDYXJvdXNlbCBkZWZhdWx0IHRoZW1lIG92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4uc2xpY2stcHJldixcbi5zbGljay1uZXh0IHtcbiAgei1pbmRleDogMTtcbiAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG5cbiAgJjpiZWZvcmV7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgfVxufVxuXG4uc2xpY2stcHJldiB7XG4gIGxlZnQ6IDE2cHg7XG59XG5cbi5zbGljay1wcmV2OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTA0XCI7XG4gIGZvbnQ6IDQwcHgvMSAnRm9udEF3ZXNvbWUnO1xuICBwYWRkaW5nOiAwIDE2cHggMnB4IDEycHg7XG59XG5cbi5zbGljay1uZXh0IHtcbiAgcmlnaHQ6IDE2cHg7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4uc2xpY2stbmV4dDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwNVwiO1xuICBmb250OiA0MHB4LzEgJ0ZvbnRBd2Vzb21lJztcbiAgcGFkZGluZzogMCAxMnB4IDJweCAxNnB4O1xufVxuXG4uc2xpY2stcHJldjpob3ZlcjpiZWZvcmUsXG4uc2xpY2stbmV4dDpob3ZlcjpiZWZvcmUge1xuICBjb2xvcjogIzdlN2U3ZTtcbiAgQGluY2x1ZGUgdG91Y2gtc2NyZWVuLWRldmljZXN7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIG9wYWNpdHk6IDAuNzU7XG4gIH1cbn0iLAoJCSIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiBXYWxrIHBob3RvcyBzbGlkZXNob3cgdXNpbmcgbGlnaHRnYWxsZXJ5IC0gd2FsayBsZWFmIHBhZ2VcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuQGltcG9ydCBcIi4uL0BpbmNsdWRlL2NvbXBvbmVudC9saWdodGdhbGxlcnlcIjtcblxuJHdpZHRoOiA1MjBweDtcbiRoZWlnaHQ6IDM5NHB4O1xuJGFzcGVjdDogcGVyY2VudGFnZSgkaGVpZ2h0IC8gJHdpZHRoKTtcblxuXG5AbWl4aW4gZHVhbENvbHtcbiAgd2lkdGg6IDUyMHB4O1xuICBoZWlnaHQ6IDM5NHB4O1xufVxuXG5AbWl4aW4gc2luZ2xlQ29se1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiAwO1xuICBwYWRkaW5nLWJvdHRvbTogJGFzcGVjdDtcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gU0VPLWZyaWVuZGx5IHBob3RvIGdhbGxlcnkgKHNlcnZlci1yZW5kZXJlZCBIVE1MKVxuIFNob3dzIGZpcnN0IGltYWdlIGJlZm9yZSBKUyBpbml0aWFsaXplcyBsaWdodGdhbGxlcnlcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuI3Bob3RvcyAucGhvdG8tZ2FsbGVyeS1zZW8ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBcbiAgLmdhbGxlcnktaXRlbSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGRpc3BsYXk6IG5vbmU7IC8vIEhpZGUgYWxsIGl0ZW1zIGJ5IGRlZmF1bHRcbiAgICBcbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyAvLyBTaG93IGZpcnN0IGltYWdlIGZvciBTRU8vTENQXG4gICAgfVxuICAgIFxuICAgIGltZyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgIGFzcGVjdC1yYXRpbzogJHdpZHRoIC8gJGhlaWdodDtcbiAgICB9XG4gICAgXG4gICAgZmlnY2FwdGlvbiB7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNyk7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICBwYWRkaW5nOiA4cHggMTJweDtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICByaWdodDogMDtcbiAgICB9XG4gIH1cbn1cblxuLy8gSGlkZSBTRU8gZ2FsbGVyeSBvbmNlIGxpZ2h0Z2FsbGVyeSBoYXMgaW5pdGlhbGl6ZWRcbiNwaG90b3MubGlnaHRnYWxsZXJ5Om5vdCgubG9hZGluZykgLnBob3RvLWdhbGxlcnktc2VvIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuI3Bob3Rvcy5saWdodGdhbGxlcnl7XG5cbiAgLy8gU2luZ2xlIGNvbHVtbiBsYXlvdXQgKG1vYmlsZS1maXJzdCwgPCA5NjBweClcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDk1OXB4KSB7XG4gICAgYm9keSB7XG4gICAgICBcbiAgICAgIEBpbmNsdWRlIHNpbmdsZUNvbDtcblxuICAgICAgJjpub3QoLmZ1bGxzY3JlZW4pIC5sZy1jb250YWluZXJ7XG4gICAgICAgIEBpbmNsdWRlIHNpbmdsZUNvbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBEdWFsIGNvbHVtbiBsYXlvdXQgKD49IDk2MHB4KVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICBAaW5jbHVkZSBkdWFsQ29sO1xuXG4gICAgJjpub3QoLmZ1bGxzY3JlZW4pIC5sZy1jb250YWluZXJ7XG4gICAgICBAaW5jbHVkZSBkdWFsQ29sO1xuICAgIH1cbiAgfVxuXG4gICY6YWZ0ZXJ7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG59XG4iLAoJCSIvKlxuICogTGlnaHRnYWxsZXJ5IHBob3RvIHNsaWRlc2hvd1xuICovXG4ubGlnaHRnYWxsZXJ5e1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgJi5mdWxsc2NyZWVue1xuICAgIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcblxuICAgIC5saWdodEdhbGxlcnktY2FwdGlvbnMgcHtcbiAgICAgIGZvbnQtc2l6ZTogMTZweCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gICY6bm90KC5mdWxsc2NyZWVuKXtcbiAgICAubGctbmV4dCwgLmxnLXByZXZ7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5saWdodEdhbGxlcnktY2FwdGlvbnN7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGNvbG9yOiBibGFjayAhaW1wb3J0YW50O1xuICAgIHRleHQtc2hhZG93OiAwIDAgMXB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICAmOjpiZWZvcmV7XG4gICAgICBjb250ZW50OicnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgdG9wOiAwO1xuICAgICAgei1pbmRleDogLTE7XG4gICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMXB4O1xuICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICBvcGFjaXR5OiAwLjg1O1xuICAgIH1cbiAgfVxufVxuXG4iLAoJCSIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiBXYWxrIGxvY2F0aW9uIHNob3duIG9uIG91dGxpbmUgbWFwIG9mIENvcm53YWxsXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiNvdXRsaW5lLW1hcHtcbiAgbWFyZ2luOiA4cHggYXV0bztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIC8vIHNldCB0byBtYXAgaW1hZ2UgZGltZW5zaW9uXG4gIHdpZHRoOiAzMjBweDtcbiAgaGVpZ2h0OiAzMjBweDtcblxuICBpbWd7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgLmluZGljYXRvcntcbiAgICAkc2l6ZTogOHB4O1xuICAgICRjb2xvcjogcmVkO1xuICAgICRib3JkZXItY29sb3I6IHdoaXRlO1xuICAgICRzaGFkb3ctY29sb3I6IHdoaXRlO1xuXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAkc2l6ZTtcbiAgICBoZWlnaHQ6ICRzaXplO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgYm94LXNoYWRvdzogMCAwIDNweCAkc2hhZG93LWNvbG9yO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIH1cbn1cbiIsCgkJIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuKiBBcHAgcHJvbW9cclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5cclxuI2FwcHtcclxuICBAaW5jbHVkZSBib3hHcmFkaWVudEJsdWU7XHJcbiAgQGltcG9ydCBcIi4uLy4uL0BpbmNsdWRlL2NvbXBvbmVudC9zbGlkZXNob3dcIjtcclxuICBwYWRkaW5nOiA0cHggMCAwIDA7XHJcbiAgbWFyZ2luLXRvcDogMTZweDtcclxuICBAaW5jbHVkZSBtcXMoJHVudGlsOiBwYWdlKSB7XHJcbiAgICBtYXJnaW4tdG9wOiA4cHg7XHJcbiAgfVxyXG5cclxuICAuc2xpZGVzaG93e1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XHJcbiAgICAmLmxvYWRpbmd7XHJcbiAgICAgIHBhZGRpbmctdG9wOiAzNy43MiU7IC8vIDM1MC85MjggYXNwZWN0IHJhdGlvXHJcbiAgICB9XHJcbiAgfVxyXG4gIGgye1xyXG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcclxuICAgIHBhZGRpbmc6IDAgOHB4IDhweCA4cHg7XHJcbiAgfVxyXG59XHJcblxyXG4jYXBwLWFke1xyXG4gIEBpbmNsdWRlIGJveCgkYmx1ZSk7XHJcbiAgQGltcG9ydCBcIi4uLy4uL0BpbmNsdWRlL2FwcF9hZF9mb3JtYXRzXCI7XHJcbiAgcGFkZGluZzogMCA0cHggOHB4IDRweDtcclxuICBib3JkZXItcmFkaXVzOiAwIDAgNHB4IDRweDtcclxuICAmOmJlZm9yZXtcclxuICAgIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgfVxyXG59XHJcbiIsCgkJIi8qXG4gKiBSZXNwb25zaXZlIHNsaWRlc2hvdyB3aWRnZXQgdXNpbmcgU2xpY2sgY2Fyb3VzZWxcbiAqL1xuXG5AaW1wb3J0IFwic2xpY2tfb3ZlcnJpZGVzXCI7XG5AaW1wb3J0IFwibG9hZGVyXCI7XG5cbi5zbGlkZXNob3cge1xuICAvLyBBc3BlY3QgcmF0aW8gb2YgdGhlIHNsaWRlc2hvdyBiYW5uZXIgaW1hZ2VzIChvcmlnaW5hbCBkaW1lbnNpb25zOiA5Mjh4MzUwKVxuICAvLyBUaGlzIHJlc2VydmVzIHNwYWNlIGJlZm9yZSBpbWFnZXMgbG9hZCwgcHJldmVudGluZyBDTFMgKEN1bXVsYXRpdmUgTGF5b3V0IFNoaWZ0KVxuICAtLXNsaWRlc2hvdy1hc3BlY3QtcmF0aW86ICN7OTI4IC8gMzUwfTtcblxuICBtYXJnaW46IDAgYXV0byAwIGF1dG87XG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6bm90KC5pbml0aWFsaXNlZCkge1xuICAgIC5zbGlkZSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYubG9hZGluZyB7XG4gICAgQGluY2x1ZGUgbG9hZGVyO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgLmNhcHRpb24ge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5zbGlkZSB7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgICAgICY6Zmlyc3QtY2hpbGQgLmNhcHRpb24ge1xuICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgfVxuXG4gICAgICBpbWcge1xuICAgICAgICAvLyBVc2UgdmlzaWJpbGl0eTogaGlkZGVuIGluc3RlYWQgb2YgZGlzcGxheTogbm9uZSB0byBwcmVzZXJ2ZVxuICAgICAgICAvLyB0aGUgYXNwZWN0LXJhdGlvIGhlaWdodCByZXNlcnZhdGlvbiBhbmQgcHJldmVudCBDTFNcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYuaW5pdGlhbGlzZWQ6bm90KC5sb2FkaW5nKSB7XG4gICAgLndyYXBwZXI6bm90KC5ldmFsdWF0aW5nKSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgIC5jYXB0aW9uIHtcbiAgICAgICAgQGluY2x1ZGUgY2VudHJlWTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5zbGlkZSB7XG5cbiAgICBpbWcge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIGFzcGVjdC1yYXRpbzogdmFyKC0tc2xpZGVzaG93LWFzcGVjdC1yYXRpbyk7XG4gICAgfVxuXG4gICAgLmNhcHRpb24ge1xuICAgICAgZm9udC1mYW1pbHk6IFwiQ29taW5nIFNvb25cIjtcbiAgICAgIGNvbG9yOiAjZGRkO1xuICAgICAgcGFkZGluZzogOHB4IDE2cHg7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICBmb250LXNpemU6IDE2cHQ7XG5cbiAgICAgIEBpbmNsdWRlIG1xcygkdW50aWw6IHRhYmxldDdpbmNoKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJwdDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE0cHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwKCQkiLmFwcC1mb3JtYXRzIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIG1hcmdpbjogMCBhdXRvO1xuICB3aWR0aDogMTAwJTtcblxuICAvL2Rlc2t0b3BcbiAgQGluY2x1ZGUgbXFzKCRmcm9tOiBwYWdlKSB7XG4gICAgLmFwcC1idXR0b24ge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC8vdGFibGV0XG4gIEBpbmNsdWRlIG1xcygkdW50aWw6IHBhZ2UpIHtcbiAgICAudGV4dCB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbXFzKCRmcm9tOiB0YWJsZXQ3aW5jaCwgJHVudGlsOiBwYWdlKSB7XG4gICAgLmljb257XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbXFzKCR1bnRpbDogdGFibGV0N2luY2gpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICAuaWNvbiB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgPiBkaXYuc3RvcmUtbGluayB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcblxuICAgIC5pbm5lcntcbiAgICAgIEBpbmNsdWRlIGNlbnRyZVg7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB3aWR0aDogOTglO1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDEycHgpO1xuICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcblxuICAgICAgQGluY2x1ZGUgbXFzKCRmcm9tOiB0YWJsZXQ3aW5jaCl7XG4gICAgICAgIG1hcmdpbjogOHB4IDAgMCAwO1xuICAgICAgICBwYWRkaW5nOiA4cHggMCA0cHggMDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2FhYWFhYTtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgbXFzKCRmcm9tOiB0YWJsZXQ3aW5jaCwgJHVudGlsOiBwYWdlKSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgbXFzKCRmcm9tOiB0YWJsZXQ3aW5jaCwgJHVudGlsOiB0YWJsZXQpIHtcbiAgICAgICAgcGFkZGluZzogNHB4IDAgOHB4IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBAaW5jbHVkZSBtcXMoJGZyb206IHBhZ2UpIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBhIHtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYuaW9ze1xuICAgICAgLmljb257XG4gICAgICAgIHBhZGRpbmctbGVmdDogNDJweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmFuZHJvaWR7XG4gICAgICBAaW5jbHVkZSBtcXMoJGZyb206IHRhYmxldCkge1xuICAgICAgICAuaWNvbiBpbWd7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDEycHg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmljb257XG4gICAgICAgIHBhZGRpbmctbGVmdDogMjRweCAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cblxuICAgIC5pbm5lciA+IGRpdiB7XG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgQGluY2x1ZGUgbXFzKCR1bnRpbDogdGFibGV0KSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuXG4gICAgICAmLmljb24ge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBwYWRkaW5nLXRvcDogNHB4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogNHB4O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4O1xuICAgICAgICBAaW5jbHVkZSBtcXMoJHVudGlsOiBwYWdlKSB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLnRleHQge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICAgICAgZm9udC12YXJpYW50OiBzbWFsbC1jYXBzO1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIGF7XG4gICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLnFye1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxOHB4O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7XG5cbiAgICAgICAgQGluY2x1ZGUgbXFzKCR1bnRpbDogdGFibGV0KSB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbXFzKCR1bnRpbDogdGFibGV0N2luY2gpIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBpbWd7XG4gICAgICAgICAgbWF4LXdpZHRoOiAxMDBweDtcbiAgICAgICAgICBAaW5jbHVkZSBtcXMoJHVudGlsOiBwYWdlKSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5hcHAtYnV0dG9ue1xuICAgICAgICBAaW5jbHVkZSBtcXMoJGZyb206IHRhYmxldCwgJHVudGlsOiBwYWdlKSB7XG4gICAgICAgICAgQGluY2x1ZGUgY2VudHJlWTtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgbGVmdDogOHB4O1xuICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtcXMoJHVudGlsOiB0YWJsZXQpIHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBhe1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogNDJweDtcbiAgICAgICAgICBAaW5jbHVkZSBtcXMoJHVudGlsOiB0YWJsZXQ3aW5jaCkge1xuICAgICAgICAgICAgbWFyZ2luOiAxMnB4IDAgMCAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwKCQkiI2xvY2F0aW9ucyB7XHJcbiAgQGluY2x1ZGUgYm94R3JhZGllbnRCbHVlO1xyXG4gIHBhZGRpbmc6IDhweDtcclxuICBtYXJnaW4tYm90dG9tOiA4cHg7XHJcblxyXG4gIGgyIHtcclxuICAgIGJvcmRlcjowO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xyXG4gIH1cclxuICB1bCB7XHJcbiAgICBtYXJnaW46MDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIH1cclxuICBsaSB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgfVxyXG4gIGxpOm5vdCg6bGFzdC1jaGlsZCk6OmFmdGVyIHtcclxuICAgIGNvbnRlbnQ6IFwiIOKAoiBcIjsgLyogVW5pY29kZSBkb3Qgc2VwYXJhdG9yICovXHJcbiAgICBtYXJnaW46IDAgOHB4OyAvKiBBZGp1c3Qgc3BhY2luZyAqL1xyXG4gIH1cclxufSIKCV0sCgkibmFtZXMiOiBbXSwKCSJtYXBwaW5ncyI6ICI7QUlDQTs7R0FFRztBQVdIOztHQUVHO0FFaEJIOzt5REFFeUQ7QUxJekQsQUFBQSxJQUFJLENBQUE7RUFDRixVQUFVLEVBQUUsT0FBTztDQUNwQjs7QU1DRCxBQUFBLFFBQVEsQ0FBQztFQUNQLE9BQU8sRUFBRSxJQUFJO0VBQ2IscUJBQXFCLEVBQUUsR0FBRztDQVEzQjs7QUFWRCxBQU1FLFFBTk0sQ0FNTixLQUFLLEFBQUEsSUFBSTtBQU5Y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 */