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

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

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

/******************************************************
* Reviews
******************************************************/
#reviews {
  background-color: rgba(124, 197, 149, 0.65);
  border-radius: 4px;
  margin: 16px 0 8px 0;
  padding: 8px 16px;
  height: 80px;
}

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

#reviews, #reviews a {
  color: black;
}

@media screen and (max-width: 59.99em) {
  #reviews {
    height: 120px;
  }
}

@media screen and (max-width: 37.49em) {
  #reviews {
    height: 160px;
  }
}

#reviews #review-list {
  overflow-y: visible !important;
}

#reviews .arrow-icon {
  display: none;
}

#reviews blockquote {
  top: 50%;
  left: 50%;
  transform: translateX(-50%) translateY(-50%);
  position: relative !important;
  font-size: 14px !important;
  text-align: center;
  display: none;
}

#reviews blockquote.showReview {
  display: block;
}

/******************************************************
* title
******************************************************/
#title {
  position: relative;
  filter: drop-shadow(0 0 4px rgba(0, 0, 0, 0.5));
}

#title img {
  width: 100%;
  height: auto;
  border-radius: 4px 4px 0 0;
  display: block;
}

#title #tagline {
  position: absolute;
  color: white;
  bottom: 16px;
  left: 50%;
  transform: translateX(-50%);
  font-weight: bold;
  text-shadow: 2px 2px 4px black;
}

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

/******************************************************
* box styling
******************************************************/
.box {
  box-shadow: 4px 4px 4px #bbb;
}

.box > h2, .box > h3 {
  text-decoration: none;
  margin: 0;
}

/******************************************************
* Intro box
******************************************************/
#intro {
  background-color: #19424a;
  border-radius: 4px;
  z-index: 0;
  position: relative;
  border-radius: 0 0 4px 4px;
}

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

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

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

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

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

#intro p {
  padding: 8px;
  margin: 0;
}

@media screen and (min-width: 60em) {
  #intro p {
    font-size: 1.4em;
  }
}

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

/*****************************************************************
 Links
*****************************************************************/
ul#links {
  margin-left: 0 !important;
}

@media screen and (max-width: 59.99em) {
  ul#links {
    margin-top: 8px !important;
    margin-bottom: 8px !important;
  }
}

@media screen and (min-width: 60em) {
  ul#links {
    background-color: #19424a;
    border-radius: 4px;
    z-index: 0;
    position: relative;
    list-style: none;
    padding-top: 18px;
    padding-bottom: 18px;
    display: flex;
    justify-content: space-evenly;
  }
  ul#links, ul#links a {
    color: white;
  }
  ul#links: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;
  }
  ul#links:after {
    content: '';
    position: absolute;
    width: 100%;
    height: 18px;
    left: 0;
    top: 18px;
    background: linear-gradient(#19424a, #19424a);
    z-index: -1;
  }
  ul#links > * {
    z-index: 2;
  }
  body:not(.fullscreen) ul#links > * {
    position: relative;
  }
}

/*****************************************************************
 Drop margin on promos on mobile devices
*****************************************************************/
@media screen and (max-width: 59.99em) {
  .promo-container .promos {
    padding: 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 */
}

/*****************************************************************
 Increase size of reviews box
*****************************************************************/
#reviews {
  height: 96px;
}

@media screen and (max-width: 59.99em) {
  #reviews {
    height: 196px;
  }
}

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

/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAiLi4vd3d3L2Nzcy9teXN0ZXJpZXMvcGFnZS9ob21lLmNzcyIsCgkic291cmNlcyI6IFsKCQkiLi4vd3d3L3Njc3MvbXlzdGVyaWVzL3BhZ2UvaG9tZS5zY3NzIiwKCQkiLi4vd3d3L3Njc3MvQGluY2x1ZGUvX2NvbW1vbi5zY3NzIiwKCQkiLi4vd3d3L3Njc3MvQGluY2x1ZGUvX3ZhcmlhYmxlcy5zY3NzIiwKCQkiLi4vd3d3L3Njc3MvQGluY2x1ZGUvX2dlbmVyYWxfbWl4aW5zLnNjc3MiLAoJCSIuLi93d3cvc2Nzcy9AaW5jbHVkZS9fbWVkaWEuc2NzcyIsCgkJIi4uL3d3dy9zY3NzL0BpbmNsdWRlL19tcS5zY3NzIiwKCQkiLi4vd3d3L3Njc3MvQGluY2x1ZGUvX3RvdWNoLnNjc3MiLAoJCSIuLi93d3cvc2Nzcy9AaW5jbHVkZS9jb21wb25lbnQvX3Byb21vcy5zY3NzIiwKCQkiLi4vd3d3L3Njc3MvQGluY2x1ZGUvY29tcG9uZW50L19sb2FkZXIuc2NzcyIsCgkJIi4uL3d3dy9zY3NzL0BpbmNsdWRlL2NvbXBvbmVudC9fc2xpY2tfb3ZlcnJpZGVzLnNjc3MiLAoJCSIuLi93d3cvc2Nzcy9AaW5jbHVkZS9fcmVzcG9uc2l2ZV9jb2x1bW5zLnNjc3MiLAoJCSIuLi93d3cvc2Nzcy9AaG9tZS9fcmV2aWV3cy5zY3NzIiwKCQkiLi4vd3d3L3Njc3MvbXlzdGVyaWVzL0BpbmNsdWRlL19hcHBfYWR2ZXJ0X3NsaWRlc2hvdy5zY3NzIiwKCQkiLi4vd3d3L3Njc3MvQGluY2x1ZGUvY29tcG9uZW50L19zbGlkZXNob3cuc2NzcyIsCgkJIi4uL3d3dy9zY3NzL0BpbmNsdWRlL19hcHBfYWRfZm9ybWF0cy5zY3NzIiwKCQkiLi4vd3d3L3Njc3MvbXlzdGVyaWVzL0BpbmNsdWRlL19sb2NhdGlvbnMuc2NzcyIKCV0sCgkic291cmNlc0NvbnRlbnQiOiBbCgkJIkBpbXBvcnQgXCIuLi8uLi9AaW5jbHVkZS9jb21tb25cIjtcbkBpbXBvcnQgXCIuLi8uLi9AaW5jbHVkZS9jb21wb25lbnQvcHJvbW9zXCI7XG5AaW1wb3J0IFwiLi4vLi4vQGluY2x1ZGUvcmVzcG9uc2l2ZV9jb2x1bW5zXCI7XG5AaW1wb3J0IFwiLi4vLi4vQGhvbWUvcmV2aWV3c1wiO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4qIHRpdGxlXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4jdGl0bGV7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDAgNHB4IHJnYmEoMCwwLDAsMC41KSk7XG4gIGltZ3tcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYm9yZGVyLXJhZGl1czogNHB4IDRweCAwIDA7XG5cdGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gICN0YWdsaW5le1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgYm90dG9tOiAxNnB4O1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgdGV4dC1zaGFkb3c6IDJweCAycHggNHB4IHJnYmEoMCwwLDAsMSk7IC8vIHJpZ2h0IGRvd24gYmx1ciBvcGFjaXR5XG5cbiAgICBAaW5jbHVkZSBtcXMoJHVudGlsOiBwYWdlKSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4qIGJveCBzdHlsaW5nXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi5ib3h7XG4gIEBpbmNsdWRlIGJveFNoYWRvdztcbiAgPiBoMiwgPiBoM3tcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG5cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuKiBJbnRybyBib3hcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuI2ludHJvIHtcbiAgQGluY2x1ZGUgYm94R3JhZGllbnRCbHVlO1xuICBib3JkZXItcmFkaXVzOiAwIDAgNHB4IDRweDtcbiAgcCB7XG5cdHBhZGRpbmc6IDhweDtcblx0bWFyZ2luOiAwO1xuICAgIEBpbmNsdWRlIG1xcygkZnJvbTogcGFnZSkge1xuXHQgIGZvbnQtc2l6ZTogMS40ZW07XG4gICAgfVxuICB9XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiogQXBwIHByb21vXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbkBpbXBvcnQgXCIuLi9AaW5jbHVkZS9hcHBfYWR2ZXJ0X3NsaWRlc2hvd1wiO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiBMaW5rc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG51bCNsaW5rc3tcblxuICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xuICBAaW5jbHVkZSBtcXMoJHVudGlsOiBwYWdlKSB7XG4gICAgbWFyZ2luLXRvcDogOHB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4ICFpbXBvcnRhbnQ7XG4gIH1cblxuICBAaW5jbHVkZSBtcXMoJGZyb206IHBhZ2UpIHtcbiAgICBAaW5jbHVkZSBib3hHcmFkaWVudEJsdWU7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nLXRvcDogMThweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMThweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtZXZlbmx5O1xuICB9XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuIERyb3AgbWFyZ2luIG9uIHByb21vcyBvbiBtb2JpbGUgZGV2aWNlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4ucHJvbW8tY29udGFpbmVyIHtcbiAgLnByb21vcyB7XG4gICAgQGluY2x1ZGUgbXFzKCR1bnRpbDogcGFnZSkge1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG4gIH1cbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gTG9jYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbkBpbXBvcnQgXCIuLi9AaW5jbHVkZS9sb2NhdGlvbnNcIjtcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gSW5jcmVhc2Ugc2l6ZSBvZiByZXZpZXdzIGJveFxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4jcmV2aWV3cyB7XG4gIGhlaWdodDogOTZweDtcbiAgQGluY2x1ZGUgbXFzKCR1bnRpbDogcGFnZSkge1xuICAgIGhlaWdodDogMTk2cHg7XG4gIH1cbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gQXBwbHkgYmx1ZSBib3ggZ3JhZGllbnQgb24gbW9iaWxlIGRldmljZXNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuYm9keS5jb2wtc2luZ2xlIFtkYXRhLXJvbGU9XCJsaXN0dmlld1wiXTpub3QoLm5vbi1yZXNwb25zaXZlKSB7XG4gICAgQGluY2x1ZGUgYm94R3JhZGllbnRCbHVlO1xufSIsCgkJIi8vIENvbW1vbiBzdHlsZXNcbkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJnZW5lcmFsX21peGluc1wiO1xuQGltcG9ydCBcIm1lZGlhXCI7XG5AaW1wb3J0IFwidG91Y2hcIjtcblxuYm9keXtcbiAgdmlzaWJpbGl0eTogaW5oZXJpdDtcbn1cbiIsCgkJIi8vIFZhcmlhYmxlc1xuXG4kcGFnZS13aWR0aDogOTYwcHg7XG4kcmVzcG9uc2l2ZS1tZW51OiA3NzhweDtcblxuJGdyZXk6ICMyZjJmMmY7XG4kZGFyay1ncmVlbjogIzEzMTtcbiRncmVlbjogIzI4NWQxZTtcbiRibHVlOiAjMTk0MjRhO1xuJGxpZ2h0LWdyZWVuOiByZ2JhKDEyNCwgMTk3LCAxNDksIDAuNjUpO1xuJHJlZDogIzVjMWUxZTtcbiRkYXJrLXJlZDogIzY2MDAwMDtcblxuLy8gQm94IGdyYWRpZW50c1xuJGJveC1HcmFkLUhlaWdodDogMThweDtcblxuJGJveC1CRy1HcmV5OiAkZ3JleTtcbiRib3gtR3JhZC1VcHBlci1Ub3AtR3JleTogIzcxNzE3MTtcbiRib3gtR3JhZC1VcHBlci1Cb3R0b20tR3JleTogIzQyNDE0MTtcbiRib3gtR3JhZC1Mb3dlci1Ub3AtR3JleTogIzQwNDA0MDtcbiRib3gtR3JhZC1Mb3dlci1Cb3R0b20tR3JleTogIzJmMmYyZjtcblxuJGJveC1CRy1HcmVlbjogJGdyZWVuO1xuJGJveC1HcmFkLVVwcGVyLVRvcC1HcmVlbjogIzQ2OTkzNjtcbiRib3gtR3JhZC1VcHBlci1Cb3R0b20tR3JlZW46ICMzMDcwMjU7XG4kYm94LUdyYWQtTG93ZXItVG9wLUdyZWVuOiAjMzA3MjI1O1xuJGJveC1HcmFkLUxvd2VyLUJvdHRvbS1HcmVlbjogIzI4NWQxZTtcblxuJGJveC1CRy1CbHVlOiAjMTk0MjRhO1xuJGJveC1HcmFkLVVwcGVyLVRvcC1CbHVlOiAjMTI2MTY3O1xuJGJveC1HcmFkLVVwcGVyLUJvdHRvbS1CbHVlOiAjMTk0MjRhO1xuJGJveC1HcmFkLUxvd2VyLVRvcC1CbHVlOiAjMTk0MjRhO1xuJGJveC1HcmFkLUxvd2VyLUJvdHRvbS1CbHVlOiAjMTk0MjRhO1xuXG5cbiRib3gtQkctRGFyay1HcmVlbjogJGRhcmstZ3JlZW47XG4kYm94LUdyYWQtVXBwZXItVG9wLURhcmstR3JlZW46ICMyZTgwMmU7XG4kYm94LUdyYWQtVXBwZXItQm90dG9tLURhcmstR3JlZW46ICMxNzQ1MTc7XG4kYm94LUdyYWQtTG93ZXItVG9wLURhcmstR3JlZW46ICMxODQ3MTk7XG4kYm94LUdyYWQtTG93ZXItQm90dG9tLURhcmstR3JlZW46ICMxMTMzMTE7XG5cbiRib3gtQkctUmVkOiAkcmVkO1xuJGJveC1HcmFkLVVwcGVyLVRvcC1SZWQ6ICNhODNiM2I7XG4kYm94LUdyYWQtVXBwZXItQm90dG9tLVJlZDogIzZlMjUyNTtcbiRib3gtR3JhZC1Mb3dlci1Ub3AtUmVkOiAjNzAyNTI1O1xuJGJveC1HcmFkLUxvd2VyLUJvdHRvbS1SZWQ6ICM1YzFlMWU7XG5cbiRtcS1icmVha3BvaW50LW1vYmlsZTogMzIwcHg7XG4kbXEtYnJlYWtwb2ludC10YWJsZXQ3aW5jaDogNjAwcHg7XG4kbXEtYnJlYWtwb2ludC10YWJsZXQ6IDc0MHB4O1xuJG1xLWJyZWFrcG9pbnQtZGVza3RvcDogOTgwcHg7XG4kbXEtYnJlYWtwb2ludC13aWRlOiAxMzAwcHg7XG4kbXEtYnJlYWtwb2ludC1kZXNrdG9wQWQ6IDgxMHB4O1xuJG1xLWJyZWFrcG9pbnQtbW9iaWxlTGFuZHNjYXBlOiA0ODBweDtcbiRtcS1icmVha3BvaW50LW1lZGl1bUxvZ286IDQ0MHB4O1xuJG1xLWJyZWFrcG9pbnQtc21hbGxMb2dvOiAzMjBweDtcbiRtcS1icmVha3BvaW50LWhlYWRlclNvY2lhbEljb25zOiA5NTRweDtcbiRtcS1icmVha3BvaW50LXBhZ2U6ICRwYWdlLXdpZHRoO1xuJG1xLWJyZWFrcG9pbnQtcmVzcG9uc2l2ZU1lbnU6ICRyZXNwb25zaXZlLW1lbnU7XG5cblxuLy8gQnJlYWtwb2ludHNcbiRtcS1icmVha3BvaW50czogKFxuICAgICAgICBtb2JpbGU6ICAkbXEtYnJlYWtwb2ludC1tb2JpbGUsXG4gICAgICAgIHRhYmxldDdpbmNoOiAgJG1xLWJyZWFrcG9pbnQtdGFibGV0N2luY2gsXG4gICAgICAgIHRhYmxldDogICRtcS1icmVha3BvaW50LXRhYmxldCxcbiAgICAgICAgZGVza3RvcDogJG1xLWJyZWFrcG9pbnQtZGVza3RvcCxcbiAgICAgICAgd2lkZTogJG1xLWJyZWFrcG9pbnQtd2lkZSxcblxuICAvLyBUd2Vha3BvaW50c1xuICAgICAgICBkZXNrdG9wQWQ6ICRtcS1icmVha3BvaW50LWRlc2t0b3BBZCxcbiAgICAgICAgbW9iaWxlTGFuZHNjYXBlOiAkbXEtYnJlYWtwb2ludC1tb2JpbGVMYW5kc2NhcGUsXG4gICAgICAgIHNtYWxsTG9nbzogJG1xLWJyZWFrcG9pbnQtc21hbGxMb2dvLFxuICAgICAgICBwYWdlOiAkbXEtYnJlYWtwb2ludC1wYWdlLFxuICAgICAgICByZXNwb25zaXZlTWVudTogJG1xLWJyZWFrcG9pbnQtcmVzcG9uc2l2ZU1lbnUsXG4gICAgICAgIGhlYWRlclNvY2lhbEljb25zOiAkbXEtYnJlYWtwb2ludC1oZWFkZXJTb2NpYWxJY29uc1xuKTtcblxuXG4vLyBUbyBlbmFibGUgc3VwcG9ydCBmb3IgYnJvd3NlcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCBAbWVkaWEgcXVlcmllcyxcbi8vIChJRSA8PSA4LCBGaXJlZm94IDw9IDMsIE9wZXJhIDw9IDkpIHNldCAkbXEtcmVzcG9uc2l2ZSB0byBmYWxzZVxuLy8gQ3JlYXRlIGEgc2VwYXJhdGUgc3R5bGVzaGVldCBzZXJ2ZWQgZXhjbHVzaXZlbHkgdG8gdGhlc2UgYnJvd3NlcnMsXG4vLyBtZWFuaW5nIEBtZWRpYSBxdWVyaWVzIHdpbGwgYmUgcmFzdGVyaXplZCwgcmVseWluZyBvbiB0aGUgY2FzY2FkZSBpdHNlbGZcbiRtcS1yZXNwb25zaXZlOiB0cnVlO1xuXG4vLyBJZiB5b3Ugd2FudCB0byBkaXNwbGF5IHRoZSBjdXJyZW50bHkgYWN0aXZlIGJyZWFrcG9pbnQgaW4gdGhlIHRvcFxuLy8gcmlnaHQgY29ybmVyIG9mIHlvdXIgc2l0ZSBkdXJpbmcgZGV2ZWxvcG1lbnQsIGFkZCB0aGUgYnJlYWtwb2ludHNcbi8vIHRvIHRoaXMgbGlzdCwgb3JkZXJlZCBieSB3aWR0aCwgZS5nLiAobW9iaWxlLCB0YWJsZXQsIGRlc2t0b3ApLlxuLy8kbXEtc2hvdy1icmVha3BvaW50czogKG1vYmlsZSwgbW9iaWxlTGFuZHNjYXBlLCB0YWJsZXQsIGRlc2t0b3AsIHdpZGUpO1xuIiwKCQkiQG1peGluIGlXYWxrTW9iaWxlR3JhZGllbnR7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNjOWRjZjQgMCUsIzgyYjVlYyAyMiUsIzI5OGFlMyA0NiUsIzNlYzFmNyA3MCUsIzNlYzFmNyAxMDAlKTtcbn1cblxuQG1peGluIGNlbnRyZVl7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cbkBtaXhpbiBjZW50cmVYe1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbn1cblxuQG1peGluIGNlbnRyZVhZe1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgIHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cbkBtaXhpbiBncmV5X2dyYWRpZW50e1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDE4MSwgMTg5LCAyMDAsIDEpIDAlLCByZ2JhKDEzMCwgMTQwLCAxNDksIDEpIDM2JSwgcmdiYSg0MCwgNTIsIDU5LCAxKSAxMDAlKTtcbn1cblxuQG1peGluIGdyZWVuX2dyYWRpZW50e1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjNGViOTRlIDAlLCAjMTA5MDEwIDM2JSwgIzA5M2UwOSAxMDAlKTtcbn1cblxuQG1peGluIGJveCgkYmcpe1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmc7XG4gIGJvcmRlci1yYWRpdXM6NHB4O1xuICAmLCBhe1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgfVxufVxuXG5AbWl4aW4gYm94R3JhZGllbnQoJGJnLCAkdXBwZXItdG9wLCAkdXBwZXItYm90dG9tLCAkbG93ZXItdG9wLCAkbG93ZXItYm90dG9tLCAkaGVpZ2h0OiAkYm94LUdyYWQtSGVpZ2h0KXtcbiAgQGluY2x1ZGUgYm94KCRiZyk7XG4gIHotaW5kZXg6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAmOmJlZm9yZXtcbiAgICBjb250ZW50OicnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCR1cHBlci10b3AsICR1cHBlci1ib3R0b20pO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweCA0cHggMCAwO1xuICAgIHotaW5kZXg6IC0xO1xuICB9XG5cbiAgJjphZnRlcntcbiAgICBjb250ZW50OicnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6ICRoZWlnaHQ7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCRsb3dlci10b3AsICRsb3dlci1ib3R0b20pO1xuICAgIHotaW5kZXg6IC0xO1xuICB9XG5cbiAgPiAqe1xuICAgIHotaW5kZXg6IDI7XG5cbiAgICBAYXQtcm9vdCB7XG4gICAgICBib2R5Om5vdCguZnVsbHNjcmVlbikgI3smfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGJveEdyYWRpZW50R3JleXtcbiAgQGluY2x1ZGUgYm94R3JhZGllbnQoJGJveC1CRy1HcmV5LCAkYm94LUdyYWQtVXBwZXItVG9wLUdyZXksICRib3gtR3JhZC1VcHBlci1Cb3R0b20tR3JleSwgJGJveC1HcmFkLUxvd2VyLVRvcC1HcmV5LCAkYm94LUdyYWQtTG93ZXItQm90dG9tLUdyZXkpO1xufVxuXG5AbWl4aW4gYm94R3JhZGllbnRHcmVlbntcbiAgQGluY2x1ZGUgYm94R3JhZGllbnQoJGJveC1CRy1HcmVlbiwgJGJveC1HcmFkLVVwcGVyLVRvcC1HcmVlbiwgJGJveC1HcmFkLVVwcGVyLUJvdHRvbS1HcmVlbiwgJGJveC1HcmFkLUxvd2VyLVRvcC1HcmVlbiwgJGJveC1HcmFkLUxvd2VyLUJvdHRvbS1HcmVlbik7XG59XG5cbkBtaXhpbiBib3hHcmFkaWVudEJsdWV7XG4gIEBpbmNsdWRlIGJveEdyYWRpZW50KCRib3gtQkctQmx1ZSwgJGJveC1HcmFkLVVwcGVyLVRvcC1CbHVlLCAkYm94LUdyYWQtVXBwZXItQm90dG9tLUJsdWUsICRib3gtR3JhZC1Mb3dlci1Ub3AtQmx1ZSwgJGJveC1HcmFkLUxvd2VyLUJvdHRvbS1CbHVlKTtcbn1cblxuQG1peGluIGJveEdyYWRpZW50RGFya0dyZWVue1xuICBAaW5jbHVkZSBib3hHcmFkaWVudCgkYm94LUJHLURhcmstR3JlZW4sICRib3gtR3JhZC1VcHBlci1Ub3AtRGFyay1HcmVlbiwgJGJveC1HcmFkLVVwcGVyLUJvdHRvbS1EYXJrLUdyZWVuLCAkYm94LUdyYWQtTG93ZXItVG9wLURhcmstR3JlZW4sICRib3gtR3JhZC1Mb3dlci1Cb3R0b20tRGFyay1HcmVlbik7XG59XG5cbkBtaXhpbiBib3hHcmFkaWVudFJlZHtcbiAgQGluY2x1ZGUgYm94R3JhZGllbnQoJGJveC1CRy1SZWQsICRib3gtR3JhZC1VcHBlci1Ub3AtUmVkLCAkYm94LUdyYWQtVXBwZXItQm90dG9tLVJlZCwgJGJveC1HcmFkLUxvd2VyLVRvcC1SZWQsICRib3gtR3JhZC1Mb3dlci1Cb3R0b20tUmVkKTtcbn1cblxuQG1peGluIGJveFNoYWRvd3tcbiAgYm94LXNoYWRvdzogNHB4IDRweCA0cHggI2JiYjtcbn1cblxuQG1peGluIGJveHl7XG4gIEBpbmNsdWRlIGJveEdyYWRpZW50R3JleTtcbiAgQGluY2x1ZGUgYm94U2hhZG93O1xuICBjb2xvcjogI2VlZTtcblxuICBhLCBzdHJvbmcge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgfVxuXG4gIGgyIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG5cbkBtaXhpbiBsaWdodEdyZWVuQm94e1xuICBAaW5jbHVkZSBib3goJGxpZ2h0LWdyZWVuKTtcbiAgJixhe1xuICAgIGNvbG9yOiBibGFjaztcbiAgfVxufVxuXG4iLAoJCSJcbi8qKlxuICogQnJlYWtwb2ludHNcbiAqL1xuXG5AaW1wb3J0IFwibXFcIjtcblxuXG5AbWl4aW4gbXFzKCRmcm9tOiBmYWxzZSwgJHVudGlsOiBmYWxzZSl7XG4gIEBpbmNsdWRlIG1xKCRmcm9tLCAkdW50aWwsICRtZWRpYS10eXBlOiBzY3JlZW4pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vKipcbiAqIElucHV0IGNhcGFiaWxpdGllc1xuICovXG5cbi8vIHNtYXJ0cGhvbmVzIGFuZCB0YWJsZXRzXG5AbWl4aW4gdG91Y2gtc2NyZWVuLWlucHV0IHtcbiAgQG1lZGlhIChwb2ludGVyOiBjb2Fyc2UpXG4gIGFuZCAoaG92ZXI6IG5vbmUpe1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE1vdXNlIG9yIHRvdWNoIHBhZFxuQG1peGluIG1vdXNlLWlucHV0IHtcbiAgQG1lZGlhIChwb2ludGVyOiBmaW5lKVxuICBhbmQgKGhvdmVyOiBob3Zlcil7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gU2hvdyBmb3IgdG91Y2ggc2NyZWVuc1xuLy8gYW5kIHVwIHVudGlsIHRhYmxldCBkZXZpY2Ugd2lkdGggZm9yIHRhYmxldHMgbm90IHN1cHBvcnRpbmcgaW5wdXQgbWVkaWEgcXVlcmllcyBpZS4gb2xkIEFuZHJvaWQgNC54XG5AbWl4aW4gdG91Y2gtc2NyZWVuLWRldmljZXN7XG4gIEBpbmNsdWRlIHRvdWNoLXNjcmVlbi1pbnB1dCB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQGluY2x1ZGUgbXFzKCR1bnRpbDogcmVzcG9uc2l2ZU1lbnUpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBOaW50ZW5kbyBXaWkgY29udHJvbGxlciwgS2luZWN0LCBldGMuXG5AbWl4aW4gY29uc29sZS1pbnB1dCB7XG4gIEBtZWRpYSAocG9pbnRlcjogY29hcnNlKVxuICBhbmQgKGhvdmVyOiBob3Zlcil7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gc3R5bHVzLWJhc2VkIHNjcmVlbnMgKENpbnRpcSwgV2Fjb20sIGV0YylcbkBtaXhpbiBjb25zb2xlLWlucHV0IHtcbiAgQG1lZGlhIChwb2ludGVyOiBmaW5lKVxuICBhbmQgKGhvdmVyOiBub25lKXtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBSZXRpbmEgZGlzcGxheXMgKDJ4KVxuQG1peGluIHJldGluYSB7XG4gIEBtZWRpYSAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLCgtby1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAzLzIpLFxuICAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLChtaW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLChtaW4tcmVzb2x1dGlvbjogMS41ZHBweCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLAoJCSJAY2hhcnNldCBcIlVURi04XCI7IC8vIEZpeGVzIGFuIGlzc3VlIHdoZXJlIFJ1YnkgbG9jYWxlIGlzIG5vdCBzZXQgcHJvcGVybHlcbiAgICAgICAgICAgICAgICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy1tcS9zYXNzLW1xL3B1bGwvMTBcblxuLy8vIEJhc2UgZm9udCBzaXplIG9uIHRoZSBgPGJvZHk+YCBlbGVtZW50XG4vLy8gQHR5cGUgTnVtYmVyICh1bml0KVxuJG1xLWJhc2UtZm9udC1zaXplOiAxNnB4ICFkZWZhdWx0O1xuXG4vLy8gUmVzcG9uc2l2ZSBtb2RlXG4vLy9cbi8vLyBTZXQgdG8gYGZhbHNlYCB0byBlbmFibGUgc3VwcG9ydCBmb3IgYnJvd3NlcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCBAbWVkaWEgcXVlcmllcyxcbi8vLyAoSUUgPD0gOCwgRmlyZWZveCA8PSAzLCBPcGVyYSA8PSA5KVxuLy8vXG4vLy8gWW91IGNvdWxkIGNyZWF0ZSBhIHN0eWxlc2hlZXQgc2VydmVkIGV4Y2x1c2l2ZWx5IHRvIG9sZGVyIGJyb3dzZXJzLFxuLy8vIHdoZXJlIEBtZWRpYSBxdWVyaWVzIGFyZSByYXN0ZXJpemVkXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gIC8vIG9sZC1pZS5zY3NzXG4vLy8gICRtcS1yZXNwb25zaXZlOiBmYWxzZTtcbi8vLyAgQGltcG9ydCAnbWFpbic7IC8vIEBtZWRpYSBxdWVyaWVzIGluIHRoaXMgZmlsZSB3aWxsIGJlIHJhc3Rlcml6ZWQgdXAgdG8gJG1xLXN0YXRpYy1icmVha3BvaW50XG4vLy8gICAgICAgICAgICAgICAgICAgLy8gbGFyZ2VyIGJyZWFrcG9pbnRzIHdpbGwgYmUgaWdub3JlZFxuLy8vXG4vLy8gQHR5cGUgQm9vbGVhblxuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjcmVzcG9uc2l2ZS1tb2RlLW9mZiBEaXNhYmxlZCByZXNwb25zaXZlIG1vZGUgZG9jdW1lbnRhdGlvblxuJG1xLXJlc3BvbnNpdmU6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBCcmVha3BvaW50IGxpc3Rcbi8vL1xuLy8vIE5hbWUgeW91ciBicmVha3BvaW50cyBpbiBhIHdheSB0aGF0IGNyZWF0ZXMgYSB1YmlxdWl0b3VzIGxhbmd1YWdlXG4vLy8gYWNyb3NzIHRlYW0gbWVtYmVycy4gSXQgd2lsbCBpbXByb3ZlIGNvbW11bmljYXRpb24gYmV0d2VlblxuLy8vIHN0YWtlaG9sZGVycywgZGVzaWduZXJzLCBkZXZlbG9wZXJzLCBhbmQgdGVzdGVycy5cbi8vL1xuLy8vIEB0eXBlIE1hcFxuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjc2VlaW5nLXRoZS1jdXJyZW50bHktYWN0aXZlLWJyZWFrcG9pbnQgRnVsbCBkb2N1bWVudGF0aW9uIGFuZCBleGFtcGxlc1xuJG1xLWJyZWFrcG9pbnRzOiAoXG4gICAgbW9iaWxlOiAgMzIwcHgsXG4gICAgdGFibGV0OiAgNzQwcHgsXG4gICAgZGVza3RvcDogOTgwcHgsXG4gICAgd2lkZTogICAgMTMwMHB4XG4pICFkZWZhdWx0O1xuXG4vLy8gU3RhdGljIGJyZWFrcG9pbnQgKGZvciBmaXhlZC13aWR0aCBsYXlvdXRzKVxuLy8vXG4vLy8gRGVmaW5lIHRoZSBicmVha3BvaW50IGZyb20gJG1xLWJyZWFrcG9pbnRzIHRoYXQgc2hvdWxkXG4vLy8gYmUgdXNlZCBhcyB0aGUgdGFyZ2V0IHdpZHRoIGZvciB0aGUgZml4ZWQtd2lkdGggbGF5b3V0XG4vLy8gKGkuZS4gd2hlbiAkbXEtcmVzcG9uc2l2ZSBpcyBzZXQgdG8gJ2ZhbHNlJykgaW4gYSBvbGQtaWUuc2Nzc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAvLyB0YWJsZXQtb25seS5zY3NzXG4vLy8gIC8vXG4vLy8gIC8vIElnbm9yZSBhbGwgc3R5bGVzIGFib3ZlIHRhYmxldCBicmVha3BvaW50LFxuLy8vICAvLyBhbmQgZml4IHRoZSBzdHlsZXMgKGUuZy4gbGF5b3V0KSBhdCB0YWJsZXQgd2lkdGhcbi8vLyAgJG1xLXJlc3BvbnNpdmU6IGZhbHNlO1xuLy8vICAkbXEtc3RhdGljLWJyZWFrcG9pbnQ6IHRhYmxldDtcbi8vLyAgQGltcG9ydCAnbWFpbic7IC8vIEBtZWRpYSBxdWVyaWVzIGluIHRoaXMgZmlsZSB3aWxsIGJlIHJhc3Rlcml6ZWQgdXAgdG8gdGFibGV0XG4vLy8gICAgICAgICAgICAgICAgICAgLy8gbGFyZ2VyIGJyZWFrcG9pbnRzIHdpbGwgYmUgaWdub3JlZFxuLy8vXG4vLy8gQHR5cGUgU3RyaW5nXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNhZGRpbmctY3VzdG9tLWJyZWFrcG9pbnRzIEZ1bGwgZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZXNcbiRtcS1zdGF0aWMtYnJlYWtwb2ludDogZGVza3RvcCAhZGVmYXVsdDtcblxuLy8vIFNob3cgYnJlYWtwb2ludHMgaW4gdGhlIHRvcCByaWdodCBjb3JuZXJcbi8vL1xuLy8vIElmIHlvdSB3YW50IHRvIGRpc3BsYXkgdGhlIGN1cnJlbnRseSBhY3RpdmUgYnJlYWtwb2ludCBpbiB0aGUgdG9wXG4vLy8gcmlnaHQgY29ybmVyIG9mIHlvdXIgc2l0ZSBkdXJpbmcgZGV2ZWxvcG1lbnQsIGFkZCB0aGUgYnJlYWtwb2ludHNcbi8vLyB0byB0aGlzIGxpc3QsIG9yZGVyZWQgYnkgd2lkdGgsIGUuZy4gKG1vYmlsZSwgdGFibGV0LCBkZXNrdG9wKS5cbi8vL1xuLy8vIEB0eXBlIG1hcFxuJG1xLXNob3ctYnJlYWtwb2ludHM6ICgpICFkZWZhdWx0O1xuXG4vLy8gQ3VzdG9taXplIHRoZSBtZWRpYSB0eXBlIChlLmcuIGBAbWVkaWEgc2NyZWVuYCBvciBgQG1lZGlhIHByaW50YClcbi8vLyBCeSBkZWZhdWx0IHNhc3MtbXEgdXNlcyBhbiBcImFsbFwiIG1lZGlhIHR5cGUgKGBAbWVkaWEgYWxsIGFuZCDigKZgKVxuLy8vXG4vLy8gQHR5cGUgU3RyaW5nXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNjaGFuZ2luZy1tZWRpYS10eXBlIEZ1bGwgZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZXNcbiRtcS1tZWRpYS10eXBlOiBhbGwgIWRlZmF1bHQ7XG5cbi8vLyBDb252ZXJ0IHBpeGVscyB0byBlbXNcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcHggLSB2YWx1ZSB0byBjb252ZXJ0XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlLWZvbnQtc2l6ZSAoJG1xLWJhc2UtZm9udC1zaXplKSAtIGA8Ym9keT5gIGZvbnQgc2l6ZVxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAkZm9udC1zaXplLWluLWVtczogbXEtcHgyZW0oMTZweCk7XG4vLy8gIHAgeyBmb250LXNpemU6IG1xLXB4MmVtKDE2cHgpOyB9XG4vLy9cbi8vLyBAcmVxdWlyZXMgJG1xLWJhc2UtZm9udC1zaXplXG4vLy8gQHJldHVybnMge051bWJlcn1cbkBmdW5jdGlvbiBtcS1weDJlbSgkcHgsICRiYXNlLWZvbnQtc2l6ZTogJG1xLWJhc2UtZm9udC1zaXplKSB7XG4gICAgQGlmIHVuaXRsZXNzKCRweCkge1xuICAgICAgICBAd2FybiBcIkFzc3VtaW5nICN7JHB4fSB0byBiZSBpbiBwaXhlbHMsIGF0dGVtcHRpbmcgdG8gY29udmVydCBpdCBpbnRvIHBpeGVscy5cIjtcbiAgICAgICAgQHJldHVybiBtcS1weDJlbSgkcHggKiAxcHgsICRiYXNlLWZvbnQtc2l6ZSk7XG4gICAgfSBAZWxzZSBpZiB1bml0KCRweCkgPT0gZW0ge1xuICAgICAgICBAcmV0dXJuICRweDtcbiAgICB9XG4gICAgQHJldHVybiAoJHB4IC8gJGJhc2UtZm9udC1zaXplKSAqIDFlbTtcbn1cblxuLy8vIEdldCBhIGJyZWFrcG9pbnQncyB3aWR0aFxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRuYW1lIC0gTmFtZSBvZiB0aGUgYnJlYWtwb2ludC4gT25lIG9mICRtcS1icmVha3BvaW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAkdGFibGV0LXdpZHRoOiBtcS1nZXQtYnJlYWtwb2ludC13aWR0aCh0YWJsZXQpO1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoZGVza3RvcCkpIHt9XG4vLy9cbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtYnJlYWtwb2ludHNcbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFZhbHVlIGluIHBpeGVsc1xuQGZ1bmN0aW9uIG1xLWdldC1icmVha3BvaW50LXdpZHRoKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRtcS1icmVha3BvaW50cykge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRuYW1lKSB7XG4gICAgICAgIEByZXR1cm4gbWFwLWdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgQHdhcm4gXCJCcmVha3BvaW50ICN7JG5hbWV9IHdhc24ndCBmb3VuZCBpbiAkYnJlYWtwb2ludHMuXCI7XG4gICAgfVxufVxuXG4vLy8gTWVkaWEgUXVlcnkgbWl4aW5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nIHwgQm9vbGVhbn0gJGZyb20gKGZhbHNlKSAtIE9uZSBvZiAkbXEtYnJlYWtwb2ludHNcbi8vLyBAcGFyYW0ge1N0cmluZyB8IEJvb2xlYW59ICR1bnRpbCAoZmFsc2UpIC0gT25lIG9mICRtcS1icmVha3BvaW50c1xuLy8vIEBwYXJhbSB7U3RyaW5nIHwgQm9vbGVhbn0gJGFuZCAoZmFsc2UpIC0gQWRkaXRpb25hbCBtZWRpYSBxdWVyeSBwYXJhbWV0ZXJzXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZWRpYS10eXBlICgkbXEtbWVkaWEtdHlwZSkgLSBNZWRpYSB0eXBlOiBzY3JlZW4sIHByaW504oCmXG4vLy9cbi8vLyBAaWdub3JlIFVuZG9jdW1lbnRlZCBBUEksIGZvciBhZHZhbmNlZCB1c2Ugb25seTpcbi8vLyBAaWdub3JlIEBwYXJhbSB7TWFwfSAkYnJlYWtwb2ludHMgKCRtcS1icmVha3BvaW50cylcbi8vLyBAaWdub3JlIEBwYXJhbSB7U3RyaW5nfSAkc3RhdGljLWJyZWFrcG9pbnQgKCRtcS1zdGF0aWMtYnJlYWtwb2ludClcbi8vL1xuLy8vIEBjb250ZW50IHN0eWxpbmcgcnVsZXMsIHdyYXBwZWQgaW50byBhIEBtZWRpYSBxdWVyeSB3aGVuICRyZXNwb25zaXZlIGlzIHRydWVcbi8vL1xuLy8vIEByZXF1aXJlcyB7VmFyaWFibGV9ICRtcS1tZWRpYS10eXBlXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLWJyZWFrcG9pbnRzXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLXN0YXRpYy1icmVha3BvaW50XG4vLy8gQHJlcXVpcmVzIHtmdW5jdGlvbn0gbXEtcHgyZW1cbi8vLyBAcmVxdWlyZXMge2Z1bmN0aW9ufSBtcS1nZXQtYnJlYWtwb2ludC13aWR0aFxuLy8vXG4vLy8gQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MtbXEvc2Fzcy1tcSNyZXNwb25zaXZlLW1vZGUtb24tZGVmYXVsdCBGdWxsIGRvY3VtZW50YXRpb24gYW5kIGV4YW1wbGVzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gIC5lbGVtZW50IHtcbi8vLyAgICBAaW5jbHVkZSBtcSgkZnJvbTogbW9iaWxlKSB7XG4vLy8gICAgICBjb2xvcjogcmVkO1xuLy8vICAgIH1cbi8vLyAgICBAaW5jbHVkZSBtcSgkdW50aWw6IHRhYmxldCkge1xuLy8vICAgICAgY29sb3I6IGJsdWU7XG4vLy8gICAgfVxuLy8vICAgIEBpbmNsdWRlIG1xKG1vYmlsZSwgdGFibGV0KSB7XG4vLy8gICAgICBjb2xvcjogZ3JlZW47XG4vLy8gICAgfVxuLy8vICAgIEBpbmNsdWRlIG1xKCRmcm9tOiB0YWJsZXQsICRhbmQ6ICcob3JpZW50YXRpb246IGxhbmRzY2FwZSknKSB7XG4vLy8gICAgICBjb2xvcjogdGVhbDtcbi8vLyAgICB9XG4vLy8gICAgQGluY2x1ZGUgbXEoOTUwcHgpIHtcbi8vLyAgICAgIGNvbG9yOiBob3RwaW5rO1xuLy8vICAgIH1cbi8vLyAgICBAaW5jbHVkZSBtcSh0YWJsZXQsICRtZWRpYS10eXBlOiBzY3JlZW4pIHtcbi8vLyAgICAgIGNvbG9yOiBob3RwaW5rO1xuLy8vICAgIH1cbi8vLyAgICAvLyBBZHZhbmNlZCB1c2U6XG4vLy8gICAgJG15LWJyZWFrcG9pbnRzOiAoTDogOTAwcHgsIFhMOiAxMjAwcHgpO1xuLy8vICAgIEBpbmNsdWRlIG1xKEwsICRicmVha3BvaW50czogJG15LWJyZWFrcG9pbnRzLCAkc3RhdGljLWJyZWFrcG9pbnQ6IEwpIHtcbi8vLyAgICAgIGNvbG9yOiBob3RwaW5rO1xuLy8vICAgIH1cbi8vLyAgfVxuQG1peGluIG1xKFxuICAgICRmcm9tOiBmYWxzZSxcbiAgICAkdW50aWw6IGZhbHNlLFxuICAgICRhbmQ6IGZhbHNlLFxuICAgICRtZWRpYS10eXBlOiAkbXEtbWVkaWEtdHlwZSxcbiAgICAkYnJlYWtwb2ludHM6ICRtcS1icmVha3BvaW50cyxcbiAgICAkcmVzcG9uc2l2ZTogJG1xLXJlc3BvbnNpdmUsXG4gICAgJHN0YXRpYy1icmVha3BvaW50OiAkbXEtc3RhdGljLWJyZWFrcG9pbnRcbikge1xuICAgICRtaW4td2lkdGg6IDA7XG4gICAgJG1heC13aWR0aDogMDtcbiAgICAkbWVkaWEtcXVlcnk6ICcnO1xuXG4gICAgLy8gRnJvbTogdGhpcyBicmVha3BvaW50IChpbmNsdXNpdmUpXG4gICAgQGlmICRmcm9tIHtcbiAgICAgICAgQGlmIHR5cGUtb2YoJGZyb20pID09IG51bWJlciB7XG4gICAgICAgICAgICAkbWluLXdpZHRoOiBtcS1weDJlbSgkZnJvbSk7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgJG1pbi13aWR0aDogbXEtcHgyZW0obXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJGZyb20sICRicmVha3BvaW50cykpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gVW50aWw6IHRoYXQgYnJlYWtwb2ludCAoZXhjbHVzaXZlKVxuICAgIEBpZiAkdW50aWwge1xuICAgICAgICBAaWYgdHlwZS1vZigkdW50aWwpID09IG51bWJlciB7XG4gICAgICAgICAgICAkbWF4LXdpZHRoOiBtcS1weDJlbSgkdW50aWwpO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICRtYXgtd2lkdGg6IG1xLXB4MmVtKG1xLWdldC1icmVha3BvaW50LXdpZHRoKCR1bnRpbCwgJGJyZWFrcG9pbnRzKSkgLSAuMDFlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlc3BvbnNpdmUgc3VwcG9ydCBpcyBkaXNhYmxlZCwgcmFzdGVyaXplIHRoZSBvdXRwdXQgb3V0c2lkZSBAbWVkaWEgYmxvY2tzXG4gICAgLy8gVGhlIGJyb3dzZXIgd2lsbCByZWx5IG9uIHRoZSBjYXNjYWRlIGl0c2VsZi5cbiAgICBAaWYgJHJlc3BvbnNpdmUgPT0gZmFsc2Uge1xuICAgICAgICAkc3RhdGljLWJyZWFrcG9pbnQtd2lkdGg6IG1xLWdldC1icmVha3BvaW50LXdpZHRoKCRzdGF0aWMtYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzKTtcbiAgICAgICAgJHRhcmdldC13aWR0aDogbXEtcHgyZW0oJHN0YXRpYy1icmVha3BvaW50LXdpZHRoKTtcblxuICAgICAgICAvLyBPdXRwdXQgb25seSBydWxlcyB0aGF0IHN0YXJ0IGF0IG9yIHNwYW4gb3VyIHRhcmdldCB3aWR0aFxuICAgICAgICBAaWYgKFxuICAgICAgICAgICAgJGFuZCA9PSBmYWxzZVxuICAgICAgICAgICAgYW5kICRtaW4td2lkdGggPD0gJHRhcmdldC13aWR0aFxuICAgICAgICAgICAgYW5kIChcbiAgICAgICAgICAgICAgICAkdW50aWwgPT0gZmFsc2Ugb3IgJG1heC13aWR0aCA+PSAkdGFyZ2V0LXdpZHRoXG4gICAgICAgICAgICApXG4gICAgICAgICkge1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIHsgLy8gUmVzcG9uc2l2ZSBzdXBwb3J0IGlzIGVuYWJsZWQsIG91dHB1dCBydWxlcyBpbnNpZGUgQG1lZGlhIHF1ZXJpZXNcbiAgICAgICAgQGlmICRtaW4td2lkdGggIT0gMCB7ICRtZWRpYS1xdWVyeTogJyN7JG1lZGlhLXF1ZXJ5fSBhbmQgKG1pbi13aWR0aDogI3skbWluLXdpZHRofSknOyB9XG4gICAgICAgIEBpZiAkbWF4LXdpZHRoICE9IDAgeyAkbWVkaWEtcXVlcnk6ICcjeyRtZWRpYS1xdWVyeX0gYW5kIChtYXgtd2lkdGg6ICN7JG1heC13aWR0aH0pJzsgfVxuICAgICAgICBAaWYgJGFuZCAgICAgICAgICAgIHsgJG1lZGlhLXF1ZXJ5OiAnI3skbWVkaWEtcXVlcnl9IGFuZCAjeyRhbmR9JzsgfVxuXG4gICAgICAgIC8vIFJlbW92ZSB1bm5lY2Vzc2FyeSBtZWRpYSBxdWVyeSBwcmVmaXggJ2FsbCBhbmQgJ1xuICAgICAgICBAaWYgKCRtZWRpYS10eXBlID09ICdhbGwnIGFuZCAkbWVkaWEtcXVlcnkgIT0gJycpIHtcbiAgICAgICAgICAgICRtZWRpYS10eXBlOiAnJztcbiAgICAgICAgICAgICRtZWRpYS1xdWVyeTogc3RyLXNsaWNlKHVucXVvdGUoJG1lZGlhLXF1ZXJ5KSwgNik7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgI3skbWVkaWEtdHlwZSArICRtZWRpYS1xdWVyeX0ge1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vLyBBZGQgYSBicmVha3BvaW50XG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG5hbWUgLSBOYW1lIG9mIHRoZSBicmVha3BvaW50XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR3aWR0aCAtIFdpZHRoIG9mIHRoZSBicmVha3BvaW50XG4vLy9cbi8vLyBAcmVxdWlyZXMge1ZhcmlhYmxlfSAkbXEtYnJlYWtwb2ludHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgQGluY2x1ZGUgbXEtYWRkLWJyZWFrcG9pbnQodHZzY3JlZW4sIDE5MjBweCk7XG4vLy8gIEBpbmNsdWRlIG1xKHR2c2NyZWVuKSB7fVxuQG1peGluIG1xLWFkZC1icmVha3BvaW50KCRuYW1lLCAkd2lkdGgpIHtcbiAgICAkbmV3LWJyZWFrcG9pbnQ6ICgkbmFtZTogJHdpZHRoKTtcbiAgICAkbXEtYnJlYWtwb2ludHM6IG1hcC1tZXJnZSgkbXEtYnJlYWtwb2ludHMsICRuZXctYnJlYWtwb2ludCkgIWdsb2JhbDtcbn1cblxuLy8vIFNob3cgdGhlIGFjdGl2ZSBicmVha3BvaW50IGluIHRoZSB0b3AgcmlnaHQgY29ybmVyIG9mIHRoZSB2aWV3cG9ydFxuLy8vIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzLW1xL3Nhc3MtbXEjc2VlaW5nLXRoZS1jdXJyZW50bHktYWN0aXZlLWJyZWFrcG9pbnRcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHNob3ctYnJlYWtwb2ludHMgKCRtcS1zaG93LWJyZWFrcG9pbnRzKSAtIExpc3Qgb2YgYnJlYWtwb2ludHMgdG8gc2hvdyBpbiB0aGUgdG9wIHJpZ2h0IGNvcm5lclxuLy8vIEBwYXJhbSB7TWFwfSAkYnJlYWtwb2ludHMgKCRtcS1icmVha3BvaW50cykgLSBCcmVha3BvaW50IG5hbWVzIGFuZCBzaXplc1xuLy8vXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLWJyZWFrcG9pbnRzXG4vLy8gQHJlcXVpcmVzIHtWYXJpYWJsZX0gJG1xLXNob3ctYnJlYWtwb2ludHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgLy8gU2hvdyBicmVha3BvaW50cyB1c2luZyBnbG9iYWwgc2V0dGluZ3Ncbi8vLyAgQGluY2x1ZGUgbXEtc2hvdy1icmVha3BvaW50cztcbi8vL1xuLy8vICAvLyBTaG93IGJyZWFrcG9pbnRzIHVzaW5nIGN1c3RvbSBzZXR0aW5nc1xuLy8vICBAaW5jbHVkZSBtcS1zaG93LWJyZWFrcG9pbnRzKChMLCBYTCksIChTOiAzMDBweCwgTDogODAwcHgsIFhMOiAxMjAwcHgpKTtcbkBtaXhpbiBtcS1zaG93LWJyZWFrcG9pbnRzKCRzaG93LWJyZWFrcG9pbnRzOiAkbXEtc2hvdy1icmVha3BvaW50cywgJGJyZWFrcG9pbnRzOiAkbXEtYnJlYWtwb2ludHMpIHtcbiAgICBib2R5OmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGQ0Y4RTM7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRkJFRUQ1O1xuICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNGQkVFRDU7XG4gICAgICAgIGNvbG9yOiAjQzA5ODUzO1xuICAgICAgICBmb250OiBzbWFsbC1jYXB0aW9uO1xuICAgICAgICBwYWRkaW5nOiAzcHggNnB4O1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICB6LWluZGV4OiAxMDA7XG5cbiAgICAgICAgLy8gTG9vcCB0aHJvdWdoIHRoZSBicmVha3BvaW50cyB0aGF0IHNob3VsZCBiZSBzaG93blxuICAgICAgICBAZWFjaCAkc2hvdy1icmVha3BvaW50IGluICRzaG93LWJyZWFrcG9pbnRzIHtcbiAgICAgICAgICAgICR3aWR0aDogbXEtZ2V0LWJyZWFrcG9pbnQtd2lkdGgoJHNob3ctYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1xKCRzaG93LWJyZWFrcG9pbnQsICRicmVha3BvaW50czogJGJyZWFrcG9pbnRzKSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCIjeyRzaG93LWJyZWFrcG9pbnR9IOKJpSAjeyR3aWR0aH0gKCN7bXEtcHgyZW0oJHdpZHRoKX0pXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpZiBsZW5ndGgoJG1xLXNob3ctYnJlYWtwb2ludHMpID4gMCB7XG4gICAgQGluY2x1ZGUgbXEtc2hvdy1icmVha3BvaW50cztcbn1cbiIsCgkJIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuKiBUb3VjaCBkZXZpY2VzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbkBpbXBvcnQgXCJnZW5lcmFsX21peGluc1wiO1xuXG5AbWl4aW4gYm94LXNoYWRvd3tcbiAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwwLDAsLjE1KTtcbn1cblxuQG1peGluIHRvdWNoLXNjcmVlbi1zdHlsZXMge1xuXG4gIC8vIEJ1dHRvbnNcbiAgW2RhdGEtcm9sZT1cImJ1dHRvblwiXTpub3QoLm5vbi1yZXNwb25zaXZlKXtcbiAgICBAaW5jbHVkZSBib3gtc2hhZG93O1xuXG4gICAgY29sb3I6ICMzMzMgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiAjZWVlO1xuXG4gICAgYm9yZGVyLWNvbG9yOiAjZGRkO1xuICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuXG5cbiAgICBtYXJnaW46IC41ZW0gMDtcbiAgICBwYWRkaW5nOiAuN2VtIDFlbTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcblxuICAgICY6aG92ZXIsICY6YWN0aXZle1xuICAgICAgYmFja2dyb3VuZDogI2U4ZjBmZjtcbiAgICB9XG5cbiAgICAmW2RhdGEtaWNvbl17XG4gICAgICBwYWRkaW5nLWxlZnQ6IDMycHg7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7XG4gICAgICBpe1xuICAgICAgICBAaW5jbHVkZSBjZW50cmVZO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDhweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmdyZWVuIHtcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICM4ZGRkYTAgMCUsICMzZGRiOGMgNTAlLCAjOGRkZGEwIDEwMCUpO1xuICAgICAgYm9yZGVyLWNvbG9yOiAjMmI2YjM3O1xuICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC41KTsgLy9oZWF2aWVyIHNoYWRvdyBvbiBkYXJrIGdyZWVuIGJnXG4gICAgICAmOmhvdmVyLCAmOmFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNkY2Y0ZTEgMCUsICMzZGRiOGMgNTAlLCAjZGNmNGUxIDEwMCUpO1xuICAgICAgfVxuICAgIH1cbiAgICAmLmJsdWV7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICM4ZGMwZGQgMCUsIzNkYWNkYiA1MCUsIzhkYzBkZCAxMDAlKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjMTI2MTY3O1xuICAgICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjMpO1xuICAgICAgICAmOmhvdmVyLCAmOmFjdGl2ZXtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjZGNlMWY0IDAlLCM2ZWFjZWIgNTAlLCNkY2UxZjQgMTAwJSk7XG4gICAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBMaXN0dmlld3NcbiAgW2RhdGEtcm9sZT1cImxpc3R2aWV3XCJdOm5vdCgubm9uLXJlc3BvbnNpdmUpe1xuICAgIEBpbmNsdWRlIGJveHk7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG5cblxuICAgID5saXtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiA4cHggMTZweCA4cHggOHB4ICFpbXBvcnRhbnQ7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBib3JkZXItY29sb3I6ICNkZGQ7XG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgYm9yZGVyLXdpZHRoOiAxcHggMXB4IDAgMXB4O1xuICAgICAgZm9udC1zaXplOiAxNnB4ICFpbXBvcnRhbnQ7XG4gICAgICBAaW5jbHVkZSBtcXMoJHVudGlsOiB0YWJsZXQ3aW5jaCkge1xuICAgICAgICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcbiAgICAgIH1cblxuICAgICAgYXtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweCAhaW1wb3J0YW50O1xuICAgICAgICBAaW5jbHVkZSBtcXMoJHVudGlsOiB0YWJsZXQ3aW5jaCkge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cblxuICAgICAgICAmOmFmdGVye1xuICAgICAgICAgIGNvbnRlbnQ6ICc+JztcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgcmlnaHQ6IDRweDtcbiAgICAgICAgICBmb250LXNpemU6IDE2cHggIWltcG9ydGFudDtcbiAgICAgICAgICBAaW5jbHVkZSBtcXMoJHVudGlsOiB0YWJsZXQ3aW5jaCkge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gTGluayBsaXN0c1xuICA6bm90KC5ub24tcmVzcG9uc2l2ZSk6bm90KFtkYXRhLXJvbGVdKTpub3QoW3JvbGVdKSA+IGxpID4gYTpvbmx5LWNoaWxke1xuICAgIHBhZGRpbmc6IDhweCAwO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxufVxuXG5cbiIsCgkJIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiogUHJvbW9zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5AaW1wb3J0IFwibG9hZGVyXCI7XG5cbi5wcm9tby1jb250YWluZXIge1xuICBtYXJnaW46IDAgYXV0bztcbiAgd2lkdGg6IDEwMCU7XG5cbiAgQGltcG9ydCBcInNsaWNrX292ZXJyaWRlc1wiO1xuXG4gIC5zbGljay1saXN0e1xuICAgIG1hcmdpbjogMCAtOHB4O1xuICB9XG5cbiAgLnNsaWNrLXNsaWRle1xuICAgIG1hcmdpbjogMCA4cHg7XG4gIH1cblxuICAmOm5vdCgubG9hZGVkKSwgJjpub3QoLmRpc3BsYXllZCl7XG4gICAgQGluY2x1ZGUgbG9hZGVyKFxuICAgICAgICAgICAgJHNpemU6IDUwcHgsXG4gICAgICAgICAgICAkdGhpY2tuZXNzOiA1cHgsXG4gICAgICAgICAgICAkZm9yZWdyb3VuZDogYmxhY2ssXG4gICAgICAgICAgICAkYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjI1KVxuICAgICk7XG4gIH1cblxuICAmOm5vdCguZGlzcGxheWVkKXtcbiAgICAuc2xpY2stYXJyb3d7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgQGF0LXJvb3Qge1xuICAgICN7Jn06bm90KC5sb2FkZWQpe1xuICAgICAgLnByb21ve1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnByb21vc3tcbiAgICBwYWRkaW5nOiA4cHggMCA0cHggMDtcbiAgICBAaW5jbHVkZSBtcXMoJHVudGlsOiAzNjRweCkge1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG4gIH1cbiAgLnByb21ve1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgLndyYXBwZXJ7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBsZWZ0OiAtMXB4O1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzk5OTk5OTtcbiAgICB9XG4gICAgaW1ne1xuICAgICAgQGluY2x1ZGUgYm94U2hhZG93O1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAudGl0bGUsIC5tZXNzYWdle1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgaDIsIHB7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDAuNSk7XG4gICAgICAgIHRleHQtc2hhZG93OiAwIDAgMXB4IGJsYWNrO1xuICAgICAgfVxuICAgIH1cbiAgICAudGl0bGV7XG4gICAgICB0b3A6IDA7XG4gICAgICBoMntcbiAgICAgICAgZm9udC1zaXplOiAxNHB0O1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDJweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWVzc2FnZXtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIHB7XG4gICAgICAgIHBhZGRpbmc6IDRweCAwIDRweCA0cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTBwdDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsCgkJIi8vIExvYWRpbmcgYW5pbWF0aW9uXG5cbiRsb2FkZXItZGVmYXVsdC1zaXplOiA1MHB4O1xuJGxvYWRlci1kZWZhdWx0LXRoaWNrbmVzczogNXB4O1xuJGxvYWRlci1kZWZhdWx0LWZvcmVncm91bmQ6IHdoaXRlO1xuJGxvYWRlci1kZWZhdWx0LWJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4yNSk7XG4kbG9hZGVyLWRlZmF1bHQtZm9yZWdyb3VuZC1pbnZlcnRlZDogYmxhY2s7XG4kbG9hZGVyLWRlZmF1bHQtYmFja2dyb3VuZC1pbnZlcnRlZDogcmdiYSgwLDAsMCwwLjI1KTtcblxuQG1peGluIGxvYWRlcihcbiAgJHNpemU6ICRsb2FkZXItZGVmYXVsdC1zaXplLFxuICAkdGhpY2tuZXNzOiAkbG9hZGVyLWRlZmF1bHQtdGhpY2tuZXNzLFxuICAkZm9yZWdyb3VuZDogJGxvYWRlci1kZWZhdWx0LWZvcmVncm91bmQsXG4gICRiYWNrZ3JvdW5kOiAkbG9hZGVyLWRlZmF1bHQtYmFja2dyb3VuZFxuKXtcblxuICBAYXQtcm9vdHtcbiAgICBib2R5Om5vdCguZnVsbHNjcmVlbikgI3smfSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuICB9XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLXRvcDogLSgkc2l6ZSAvIDIgKyAkdGhpY2tuZXNzKTtcbiAgICBtYXJnaW4tbGVmdDogLSgkc2l6ZSAvIDIgKyAkdGhpY2tuZXNzKTtcbiAgICB3aWR0aDogJHNpemU7XG4gICAgaGVpZ2h0OiAkc2l6ZTtcbiAgICBib3JkZXItcmFkaXVzOiAkc2l6ZTtcbiAgICBib3JkZXI6ICR0aGlja25lc3Mgc29saWQgJGJhY2tncm91bmQ7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogJGZvcmVncm91bmQ7XG4gICAgYW5pbWF0aW9uOiBsb2FkaW5nIDFzIGVhc2UgaW5maW5pdGU7XG4gIH1cbiAgQGtleWZyYW1lcyBsb2FkaW5nIHtcbiAgICAwJSB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbG9hZGVyLWludmVydGVkKFxuICAkc2l6ZTogJGxvYWRlci1kZWZhdWx0LXNpemUsXG4gICR0aGlja25lc3M6ICRsb2FkZXItZGVmYXVsdC10aGlja25lc3MsXG4gICRmb3JlZ3JvdW5kOiAkbG9hZGVyLWRlZmF1bHQtZm9yZWdyb3VuZC1pbnZlcnRlZCxcbiAgJGJhY2tncm91bmQ6ICRsb2FkZXItZGVmYXVsdC1iYWNrZ3JvdW5kLWludmVydGVkXG4pe1xuICBAaW5jbHVkZSBsb2FkZXIoXG4gICAgJHNpemU6ICRzaXplLFxuICAgICR0aGlja25lc3M6ICR0aGlja25lc3MsXG4gICAgJGZvcmVncm91bmQ6ICRmb3JlZ3JvdW5kLFxuICAgICRiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZFxuICApO1xufVxuIiwKCQkiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuKiBTbGljayBDYXJvdXNlbCBkZWZhdWx0IHRoZW1lIG92ZXJyaWRlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4uc2xpY2stcHJldixcbi5zbGljay1uZXh0IHtcbiAgei1pbmRleDogMTtcbiAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG5cbiAgJjpiZWZvcmV7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7XG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgfVxufVxuXG4uc2xpY2stcHJldiB7XG4gIGxlZnQ6IDE2cHg7XG59XG5cbi5zbGljay1wcmV2OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTA0XCI7XG4gIGZvbnQ6IDQwcHgvMSAnRm9udEF3ZXNvbWUnO1xuICBwYWRkaW5nOiAwIDE2cHggMnB4IDEycHg7XG59XG5cbi5zbGljay1uZXh0IHtcbiAgcmlnaHQ6IDE2cHg7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4uc2xpY2stbmV4dDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwNVwiO1xuICBmb250OiA0MHB4LzEgJ0ZvbnRBd2Vzb21lJztcbiAgcGFkZGluZzogMCAxMnB4IDJweCAxNnB4O1xufVxuXG4uc2xpY2stcHJldjpob3ZlcjpiZWZvcmUsXG4uc2xpY2stbmV4dDpob3ZlcjpiZWZvcmUge1xuICBjb2xvcjogIzdlN2U3ZTtcbiAgQGluY2x1ZGUgdG91Y2gtc2NyZWVuLWRldmljZXN7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIG9wYWNpdHk6IDAuNzU7XG4gIH1cbn0iLAoJCSIvLyBQdXJlIENTUyByZXNwb25zaXZlIGNvbHVtbnMgbGF5b3V0XG4vLyBObyBKYXZhU2NyaXB0IHJlcXVpcmVkIC0gdXNlcyBDU1MgR3JpZCB3aXRoIG1lZGlhIHF1ZXJpZXNcblxuJGxlZnRDb2xXaWR0aDogNTM2cHg7XG4kcmlnaHRDb2xXaWR0aDogMzc2cHg7XG4kY29sdW1uR2FwOiAxNnB4O1xuJGR1YWxDb2x1bW5CcmVha3BvaW50OiA5NjBweDtcblxuLy8gVGhlICNjb2x1bW5zIGNvbnRhaW5lciB1c2VzIENTUyBHcmlkXG4jY29sdW1ucyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyAvLyBTaW5nbGUgY29sdW1uIGxheW91dCAoZGVmYXVsdCwgbW9iaWxlLWZpcnN0KVxuXG4gIC8vIEluIHNpbmdsZS1jb2x1bW4gbW9kZSwgYWxsIGJveGVzIGZsb3cgaW50byBhIHNpbmdsZSBjb2x1bW5cbiAgLy8gYW5kIGFyZSBvcmRlcmVkIGJ5IHRoZSBDU1Mgb3JkZXIgcHJvcGVydHkgZGVmaW5lZCBpbiB3YWxrLnNjc3NcbiAgLmxlZnQuY29sLFxuICAucmlnaHQuY29sIHtcbiAgICBkaXNwbGF5OiBjb250ZW50czsgLy8gTWFrZXMgY2hpbGRyZW4gZGlyZWN0IGdyaWQgaXRlbXNcbiAgfVxufVxuXG4vLyBCb3ggc3R5bGluZ1xuLmxlZnQuY29sIHtcbiAgLm5hcnJvdy5ib3gge1xuICAgIG1heC13aWR0aDogJGxlZnRDb2xXaWR0aDtcbiAgfVxufVxuXG4uYm94W2RhdGEtY29sLWR1YWw9XCJyaWdodFwiXSB7XG4gIHBhZGRpbmctdG9wOiA0cHg7XG59XG5cbi8vIGRlZmF1bHQgc2luZ2xlIGNvbHVtbiBvcmRlcjogYXQgdGhlIGJvdHRvbSAob3ZlcnJpZGRlbiBwZXItYm94IGluIHdhbGsuc2Nzcylcbi5ib3gge1xuICBvcmRlcjogMTAwO1xufVxuXG5bZGF0YS1yb2xlPVwibGlzdHZpZXdcIl0ge1xuICA+IGxpIHtcbiAgICBwYWRkaW5nOiAycHggMDtcbiAgfVxufVxuXG4vLyBTaW5nbGUgY29sdW1uIGxheW91dCBzdHlsZXMgKDwgOTYwcHgpXG5AbWVkaWEgKG1heC13aWR0aDogI3skZHVhbENvbHVtbkJyZWFrcG9pbnQgLSAxcHh9KSB7XG4gICNjb2x1bW5zIHtcbiAgICBAaW5jbHVkZSB0b3VjaC1zY3JlZW4tc3R5bGVzO1xuICB9XG59XG5cbi8vIFRhYmxldDogc2lkZS1ieS1zaWRlIGJveGVzIGluIHNpbmdsZSBjb2x1bW4gbW9kZSBmb3IgcmlnaHQgY29sdW1uIGl0ZW1zXG4vLyBVc2VzIHRhYmxldCBicmVha3BvaW50ICg3NDBweCkgdXAgdG8gZHVhbCBjb2x1bW4gYnJlYWtwb2ludCAoOTYwcHgpXG5AbWVkaWEgKG1pbi13aWR0aDogJG1xLWJyZWFrcG9pbnQtdGFibGV0KSBhbmQgKG1heC13aWR0aDogI3skZHVhbENvbHVtbkJyZWFrcG9pbnQgLSAxcHh9KSB7XG4gICNjb2x1bW5zIHtcbiAgICAvLyBSaWdodCBjb2x1bW4gYm94ZXMgZ2V0IDItdXAgbGF5b3V0IHdpdGhpbiB0aGUgc2luZ2xlIGNvbHVtblxuICAgIC5ib3hbZGF0YS1jb2wtc2luZ2xlPVwicmlnaHRcIl0sXG4gICAgLmJveFtkYXRhLWNvbC1kdWFsPVwicmlnaHRcIl0ge1xuICAgICAgd2lkdGg6IGNhbGMoNTAlIC0gMTJweCk7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIG1hcmdpbjogMCA0cHggOHB4O1xuXG4gICAgICAmOm50aC1vZi10eXBlKG9kZCkge1xuICAgICAgICBjbGVhcjogbGVmdDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gRHVhbCBjb2x1bW4gbGF5b3V0IGF0IHdpZGVyIHZpZXdwb3J0c1xuQG1lZGlhIChtaW4td2lkdGg6ICRkdWFsQ29sdW1uQnJlYWtwb2ludCkge1xuICAjY29sdW1ucyB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAkbGVmdENvbFdpZHRoICRyaWdodENvbFdpZHRoO1xuICAgIGdhcDogMCAkY29sdW1uR2FwO1xuXG4gICAgLmxlZnQuY29sLFxuICAgIC5yaWdodC5jb2wge1xuICAgICAgZGlzcGxheTogYmxvY2s7IC8vIFJlc3RvcmUgbm9ybWFsIGJsb2NrIGJlaGF2aW9yXG4gICAgfVxuXG4gICAgLmxlZnQuY29sIHtcbiAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgZ3JpZC1yb3c6IDE7XG4gICAgfVxuXG4gICAgLnJpZ2h0LmNvbCB7XG4gICAgICBncmlkLWNvbHVtbjogMjtcbiAgICAgIGdyaWQtcm93OiAxO1xuICAgIH1cbiAgfVxufVxuIiwKCQkiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuKiBSZXZpZXdzXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiNyZXZpZXdzIHtcbiAgQGluY2x1ZGUgbGlnaHRHcmVlbkJveDtcbiAgbWFyZ2luOiAxNnB4IDAgOHB4IDA7XG4gIHBhZGRpbmc6IDhweCAxNnB4O1xuXG4gIGhlaWdodDogODBweDtcbiAgQGluY2x1ZGUgbXFzKCR1bnRpbDogcGFnZSkge1xuICAgIGhlaWdodDogMTIwcHg7XG5cbiAgfVxuICBAaW5jbHVkZSBtcXMoJHVudGlsOiB0YWJsZXQ3aW5jaCkge1xuICAgIGhlaWdodDogMTYwcHg7XG4gIH1cblxuXG4gICNyZXZpZXctbGlzdHtcbiAgICBvdmVyZmxvdy15OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuYXJyb3ctaWNvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIGJsb2NrcXVvdGUge1xuICAgIEBpbmNsdWRlIGNlbnRyZVhZO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgJi5zaG93UmV2aWV3IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgfVxufVxuXG4iLAoJCSIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiogQXBwIHByb21vXHJcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuXHJcbiNhcHB7XHJcbiAgQGluY2x1ZGUgYm94R3JhZGllbnRCbHVlO1xyXG4gIEBpbXBvcnQgXCIuLi8uLi9AaW5jbHVkZS9jb21wb25lbnQvc2xpZGVzaG93XCI7XHJcbiAgcGFkZGluZzogNHB4IDAgMCAwO1xyXG4gIG1hcmdpbi10b3A6IDE2cHg7XHJcbiAgQGluY2x1ZGUgbXFzKCR1bnRpbDogcGFnZSkge1xyXG4gICAgbWFyZ2luLXRvcDogOHB4O1xyXG4gIH1cclxuXHJcbiAgLnNsaWRlc2hvd3tcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xyXG4gICAgJi5sb2FkaW5ne1xyXG4gICAgICBwYWRkaW5nLXRvcDogMzcuNzIlOyAvLyAzNTAvOTI4IGFzcGVjdCByYXRpb1xyXG4gICAgfVxyXG4gIH1cclxuICBoMntcclxuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XHJcbiAgICBwYWRkaW5nOiAwIDhweCA4cHggOHB4O1xyXG4gIH1cclxufVxyXG5cclxuI2FwcC1hZHtcclxuICBAaW5jbHVkZSBib3goJGJsdWUpO1xyXG4gIEBpbXBvcnQgXCIuLi8uLi9AaW5jbHVkZS9hcHBfYWRfZm9ybWF0c1wiO1xyXG4gIHBhZGRpbmc6IDAgNHB4IDhweCA0cHg7XHJcbiAgYm9yZGVyLXJhZGl1czogMCAwIDRweCA0cHg7XHJcbiAgJjpiZWZvcmV7XHJcbiAgICBib3JkZXItcmFkaXVzOiAwO1xyXG4gIH1cclxufVxyXG4iLAoJCSIvKlxuICogUmVzcG9uc2l2ZSBzbGlkZXNob3cgd2lkZ2V0IHVzaW5nIFNsaWNrIGNhcm91c2VsXG4gKi9cblxuQGltcG9ydCBcInNsaWNrX292ZXJyaWRlc1wiO1xuQGltcG9ydCBcImxvYWRlclwiO1xuXG4uc2xpZGVzaG93IHtcbiAgLy8gQXNwZWN0IHJhdGlvIG9mIHRoZSBzbGlkZXNob3cgYmFubmVyIGltYWdlcyAob3JpZ2luYWwgZGltZW5zaW9uczogOTI4eDM1MClcbiAgLy8gVGhpcyByZXNlcnZlcyBzcGFjZSBiZWZvcmUgaW1hZ2VzIGxvYWQsIHByZXZlbnRpbmcgQ0xTIChDdW11bGF0aXZlIExheW91dCBTaGlmdClcbiAgLS1zbGlkZXNob3ctYXNwZWN0LXJhdGlvOiAjezkyOCAvIDM1MH07XG5cbiAgbWFyZ2luOiAwIGF1dG8gMCBhdXRvO1xuICB3aWR0aDogMTAwJTtcblxuICAmOm5vdCguaW5pdGlhbGlzZWQpIHtcbiAgICAuc2xpZGUge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLmxvYWRpbmcge1xuICAgIEBpbmNsdWRlIGxvYWRlcjtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC5jYXB0aW9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuc2xpZGUge1xuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gICAgICAmOmZpcnN0LWNoaWxkIC5jYXB0aW9uIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgIH1cblxuICAgICAgaW1nIHtcbiAgICAgICAgLy8gVXNlIHZpc2liaWxpdHk6IGhpZGRlbiBpbnN0ZWFkIG9mIGRpc3BsYXk6IG5vbmUgdG8gcHJlc2VydmVcbiAgICAgICAgLy8gdGhlIGFzcGVjdC1yYXRpbyBoZWlnaHQgcmVzZXJ2YXRpb24gYW5kIHByZXZlbnQgQ0xTXG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLmluaXRpYWxpc2VkOm5vdCgubG9hZGluZykge1xuICAgIC53cmFwcGVyOm5vdCguZXZhbHVhdGluZykge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAuY2FwdGlvbiB7XG4gICAgICAgIEBpbmNsdWRlIGNlbnRyZVk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuc2xpZGUge1xuXG4gICAgaW1nIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBhc3BlY3QtcmF0aW86IHZhcigtLXNsaWRlc2hvdy1hc3BlY3QtcmF0aW8pO1xuICAgIH1cblxuICAgIC5jYXB0aW9uIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIkNvbWluZyBTb29uXCI7XG4gICAgICBjb2xvcjogI2RkZDtcbiAgICAgIHBhZGRpbmc6IDhweCAxNnB4O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgZm9udC1zaXplOiAxNnB0O1xuXG4gICAgICBAaW5jbHVkZSBtcXMoJHVudGlsOiB0YWJsZXQ3aW5jaCkge1xuICAgICAgICBmb250LXNpemU6IDEycHQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxNHB0O1xuICAgICAgfVxuICAgIH1cbiAgfVxufSIsCgkJIi5hcHAtZm9ybWF0cyB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBtYXJnaW46IDAgYXV0bztcbiAgd2lkdGg6IDEwMCU7XG5cbiAgLy9kZXNrdG9wXG4gIEBpbmNsdWRlIG1xcygkZnJvbTogcGFnZSkge1xuICAgIC5hcHAtYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAvL3RhYmxldFxuICBAaW5jbHVkZSBtcXMoJHVudGlsOiBwYWdlKSB7XG4gICAgLnRleHQge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1xcygkZnJvbTogdGFibGV0N2luY2gsICR1bnRpbDogcGFnZSkge1xuICAgIC5pY29ue1xuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1xcygkdW50aWw6IHRhYmxldDdpbmNoKSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgLmljb24ge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gID4gZGl2LnN0b3JlLWxpbmsge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG5cbiAgICAuaW5uZXJ7XG4gICAgICBAaW5jbHVkZSBjZW50cmVYO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgd2lkdGg6IDk4JTtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxMnB4KTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG5cbiAgICAgIEBpbmNsdWRlIG1xcygkZnJvbTogdGFibGV0N2luY2gpe1xuICAgICAgICBtYXJnaW46IDhweCAwIDAgMDtcbiAgICAgICAgcGFkZGluZzogOHB4IDAgNHB4IDA7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNhYWFhYWE7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1xcygkZnJvbTogdGFibGV0N2luY2gsICR1bnRpbDogcGFnZSkge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1xcygkZnJvbTogdGFibGV0N2luY2gsICR1bnRpbDogdGFibGV0KSB7XG4gICAgICAgIHBhZGRpbmc6IDRweCAwIDhweCAwO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgQGluY2x1ZGUgbXFzKCRmcm9tOiBwYWdlKSB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgYSB7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmlvc3tcbiAgICAgIC5pY29ue1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDQycHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5hbmRyb2lke1xuICAgICAgQGluY2x1ZGUgbXFzKCRmcm9tOiB0YWJsZXQpIHtcbiAgICAgICAgLmljb24gaW1ne1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMnB4O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5pY29ue1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDI0cHggIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaW5uZXIgPiBkaXYge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgIEBpbmNsdWRlIG1xcygkdW50aWw6IHRhYmxldCkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgICAgJi5pY29uIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgcGFkZGluZy10b3A6IDRweDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDRweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMTZweDtcbiAgICAgICAgQGluY2x1ZGUgbXFzKCR1bnRpbDogcGFnZSkge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi50ZXh0IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBmb250LXNpemU6IDE3cHg7XG4gICAgICAgIGZvbnQtdmFyaWFudDogc21hbGwtY2FwcztcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBhe1xuICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5xcntcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMThweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogOHB4O1xuXG4gICAgICAgIEBpbmNsdWRlIG1xcygkdW50aWw6IHRhYmxldCkge1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1xcygkdW50aWw6IHRhYmxldDdpbmNoKSB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgaW1ne1xuICAgICAgICAgIG1heC13aWR0aDogMTAwcHg7XG4gICAgICAgICAgQGluY2x1ZGUgbXFzKCR1bnRpbDogcGFnZSkge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuYXBwLWJ1dHRvbntcbiAgICAgICAgQGluY2x1ZGUgbXFzKCRmcm9tOiB0YWJsZXQsICR1bnRpbDogcGFnZSkge1xuICAgICAgICAgIEBpbmNsdWRlIGNlbnRyZVk7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGxlZnQ6IDhweDtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbXFzKCR1bnRpbDogdGFibGV0KSB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgYXtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDQycHg7XG4gICAgICAgICAgQGluY2x1ZGUgbXFzKCR1bnRpbDogdGFibGV0N2luY2gpIHtcbiAgICAgICAgICAgIG1hcmdpbjogMTJweCAwIDAgMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsCgkJIiNsb2NhdGlvbnMge1xyXG4gIEBpbmNsdWRlIGJveEdyYWRpZW50Qmx1ZTtcclxuICBwYWRkaW5nOiA4cHg7XHJcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xyXG5cclxuICBoMiB7XHJcbiAgICBib3JkZXI6MDtcclxuICAgIG1hcmdpbi1ib3R0b206IDhweDtcclxuICB9XHJcbiAgdWwge1xyXG4gICAgbWFyZ2luOjA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB9XHJcbiAgbGkge1xyXG4gICAgZGlzcGxheTogaW5saW5lO1xyXG4gIH1cclxuICBsaTpub3QoOmxhc3QtY2hpbGQpOjphZnRlciB7XHJcbiAgICBjb250ZW50OiBcIiDigKIgXCI7IC8qIFVuaWNvZGUgZG90IHNlcGFyYXRvciAqL1xyXG4gICAgbWFyZ2luOiAwIDhweDsgLyogQWRqdXN0IHNwYWNpbmcgKi9cclxuICB9XHJcbn0iCgldLAoJIm5hbWVzIjogW10sCgkibWFwcGluZ3MiOiAiO0FJQ0E7O0dBRUc7QUFXSDs7R0FFRztBRWhCSDs7eURBRXlEO0FMSXpELEFBQUEsSUFBSSxDQUFBO0VBQ0YsVUFBVSxFQUFFLE9BQU87Q0FDcEI7O0FNUkQ7O3VEQUV1RDtBQUd2RCxBQUFBLGdCQUFnQixDQUFDO0VBQ2YsTUFBTSxFQUFFLE1BQU07RUFDZCxLQUFLLEVBQUUsSUFBSTtFRVBiOzt1REFFdUQ7Q0YyRnREOztBQXhGRCxBRURBLGdCRkNnQixDRURoQixXQUFXO0FGQ1gsZ0JBQWdCLENFQWhCLFdBQVcsQ0FBQztFQUNWLE9BQU8sRUFBRSxDQUFDO0VBQ1YsS0FBSyxFQUFFLGVBQWU7RUFDdEIsTUFBTSxFQUFFLGVBQWU7Q0FNeEI7O0FGVEQsQUVLRSxnQkZMYyxDRURoQixXQUFXLEFBTVIsT0FBTztBRkxWLGdCQUFnQixDRUFoQixXQUFXLEFBS1IsT0FBTyxDQUFBO0VBQ04sZ0JBQWdCLEVBQUUsS0FBSztFQUN2QixhQUFhLEVBQUUsSUFBSTtDQUNwQjs7QUZSSCxBRVdBLGdCRlhnQixDRVdoQixXQUFXLENBQUM7RUFDVixJQUFJLEVBQUUsSUFBSTtDQUNYOztBRmJELEFFZUEsZ0JGZmdCLENFZWhCLFdBQVcsQUFBQSxPQUFPLENBQUM7RUFDakIsT0FBTyxFQUFFLE9BQU87RUFDaEIsSUFBSSxFQUFFLG9CQUFvQjtFQUMxQixPQUFPLEVBQUUsZUFBZTtDQUN6Qjs7QUZuQkQsQUVxQkEsZ0JGckJnQixDRXFCaEIsV0FB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 */