@charset "UTF-8";
/* ==========================================================================
   Mixins
   ========================================================================== */
/* ====================================================================================================================
   Mixin : Linear-gradient
   Usage :
		@include linear-gradient(#31B7D7, #EDAC7D);
  		@include linear-gradient(to right, #E47D7D 0%, #C195D3 50%, #4FB4E8 100%);
  		@include linear-gradient(42deg, #B58234 0%, #D2B545 50%, #D7C04D 50.01%, #FFFFFF 100%);
   ==================================================================================================================== */
/* == Styles ============================================================================== */
body {
  padding: 0;
  margin: 0;
}

@media (max-width: 1024px) {
  .mobile-no-padding {
    padding-left: 0;
    padding-right: 0;
  }
}

#selecteur-plan {
  height: auto;
  width: 100%;
  overflow: hidden;
  display: none;
}
@media (max-width: 1024px) {
  #selecteur-plan {
    height: auto;
  }
}
#selecteur-plan * {
  font-family: "Montserrat", sans-serif;
  font-weight: 400;
  box-sizing: border-box;
}
#selecteur-plan sup {
  font-size: 10px;
  position: relative;
  top: -4px;
}

.selecteur-content {
  position: relative;
  display: flex;
  width: 200%;
  height: 100%;
}
@media (max-width: 1024px) {
  .selecteur-content {
    height: auto;
  }
}

.projets {
  position: relative;
  display: flex;
  width: 100%;
  align-items: stretch;
}
@media (max-width: 1024px) {
  .projets {
    flex-wrap: wrap;
  }
}

.unites {
  position: relative;
  display: flex;
  width: 100%;
  height: 100%;
}
@media (max-width: 1024px) {
  .unites {
    flex-wrap: wrap;
  }
}

.unites-etage-type {
  display: none;
}
@media (max-width: 1024px) {
  .unites-etage-type {
    height: 100%;
  }
}

@media (max-width: 1024px) {
  .unites-content {
    overflow-y: scroll;
    height: calc(100% - 39px);
  }
}

.unites-container {
  position: relative;
  width: 45%;
  background-color: #e8ebec;
  padding-top: 60px;
}
.unites-container::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 60px;
  background-color: #ffffff;
  z-index: 0;
}
@media (max-width: 1024px) {
  .unites-container {
    width: 100%;
  }
}
.unites-container .entete-adresse {
  position: relative;
  padding: 8px 10px;
  background-color: #f36f2e;
  border-bottom: solid 1px #fff;
  color: #fff;
  font-size: 18px;
  text-align: center;
}
@media (max-width: 1150px) {
  .unites-container .entete-adresse {
    font-size: 16px;
  }
}
@media (max-width: 1024px) {
  .unites-container .entete-adresse {
    font-size: 15px;
  }
}
.unites-container .entete {
  display: flex;
  background-color: #3f4244;
  color: #fff;
  font-size: 22px;
  text-transform: uppercase;
  border-bottom: solid 1px #fff;
  justify-content: flex-start;
}
@media (max-width: 1150px) {
  .unites-container .entete {
    font-size: 16px;
  }
}
@media (max-width: 1024px) {
  .unites-container .entete {
    font-size: 11px;
  }
}
@media (max-width: 1024px) {
  .unites-container .entete span.label-desktop {
    display: none;
  }
}
.unites-container .entete span.label-mobile {
  display: none;
}
@media (max-width: 1024px) {
  .unites-container .entete span.label-mobile {
    display: inline-block;
  }
}
.unites-container .entete div {
  width: 16%;
  padding: 8px 10px;
  border-right: solid 1px #fff;
  text-align: center;
}
@media (max-width: 1024px) {
  .unites-container .entete div {
    width: 14%;
  }
}
.unites-container .entete div:nth-child(2) {
  width: 14%;
}
@media (max-width: 1024px) {
  .unites-container .entete div:nth-child(2) {
    width: 14%;
  }
}
.unites-container .entete div:nth-child(3) {
  width: 27%;
}
@media (max-width: 1024px) {
  .unites-container .entete div:nth-child(3) {
    width: 22%;
  }
}
.unites-container .entete div:nth-child(4) {
  width: 16%;
}
@media (max-width: 1024px) {
  .unites-container .entete div:nth-child(4) {
    width: 25%;
  }
}
.unites-container .entete div:last-child {
  width: 27%;
  border-right: none;
}
@media (max-width: 1024px) {
  .unites-container .entete div:last-child {
    width: 25%;
  }
}
.unites-container .type {
  display: flex;
  background-color: #fff;
  border-bottom: solid 1px #fff;
  color: #373a3c;
  font-size: 15px;
  text-align: center;
  text-transform: uppercase;
}
.unites-container .type a {
  position: absolute;
  top: 17px;
  display: block;
  padding: 8px;
  text-decoration: none;
  text-transform: none;
  -webkit-transition: all 0.2s ease;
  -moz-transition: all 0.2s ease;
  -ms-transition: all 0.2s ease;
  -o-transition: all 0.2s ease;
  transition: all 0.2s ease;
}
.unites-container .type a:hover {
  color: #f36f2e;
}
.unites-container .type span {
  display: block;
  width: 100%;
  padding: 8px 10px;
  text-align: center;
}
.unites-container .unite {
  display: flex;
  align-items: stretch;
  border-bottom: solid 1px #fff;
  font-size: 15px;
  cursor: pointer;
  -webkit-transition: all 0.2s ease;
  -moz-transition: all 0.2s ease;
  -ms-transition: all 0.2s ease;
  -o-transition: all 0.2s ease;
  transition: all 0.2s ease;
}
@media (max-width: 1150px) {
  .unites-container .unite {
    font-size: 14px;
  }
}
@media (max-width: 1024px) {
  .unites-container .unite { /*flex-wrap: wrap; border:solid 5px #fff;*/ }
}
@media (max-width: 1024px) {
  .unites-container .unite:first-child { /*border-top:solid 10px #fff;*/ }
}
@media (max-width: 1024px) {
  .unites-container .unite:last-child {
    border-bottom: solid 10px #fff;
  }
}
.unites-container .unite[data-disponible=""], .unites-container .unite[data-disponible="0"] {
  background-image: linear-gradient(135deg, rgba(255, 255, 255, 0) 41.67%, #f36f2e 41.67%, #f36f2e 50%, rgba(255, 255, 255, 0), 50%, rgba(255, 255, 255, 0), 91.67%, #f36f2e 91.67%, #f36f2e 100%);
  background-size: 8.49px 8.49px;
}
.unites-container .unite[data-disponible=""] .le-prix span, .unites-container .unite[data-disponible="0"] .le-prix span {
  opacity: 0;
}
.unites-container .unite.is-hover, .unites-container .unite:hover {
  background-color: #3f4244;
  color: #fff;
}
.unites-container .unite .row-wrap1 {
  display: flex;
  align-items: stretch;
  justify-content: center;
  width: 57%;
}
@media (max-width: 1024px) {
  .unites-container .unite .row-wrap1 {
    width: 50%;
  }
}
.unites-container .unite .row-wrap1 > div {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 8px 10px;
  border-right: solid 1px #fff;
  text-align: center;
}
@media (max-width: 1150px) {
  .unites-container .unite .row-wrap1 > div {
    font-size: 14px;
  }
}
@media (max-width: 1024px) {
  .unites-container .unite .row-wrap1 > div { /*margin: 8px 10px 0;*/
    margin: 0;
    padding: 6px 8px; /*border-right:none;*/
  }
}
.unites-container .unite .row-wrap1 > div:nth-child(1) {
  width: 28%;
}
@media (max-width: 1024px) {
  .unites-container .unite .row-wrap1 > div:nth-child(1) {
    width: 28%;
  }
}
.unites-container .unite .row-wrap1 > div:nth-child(2) {
  width: 24.76%;
}
@media (max-width: 1024px) {
  .unites-container .unite .row-wrap1 > div:nth-child(2) {
    width: 28%;
  }
}
.unites-container .unite .row-wrap1 > div:nth-child(3) {
  width: 47.24%;
}
@media (max-width: 1024px) {
  .unites-container .unite .row-wrap1 > div:nth-child(3) {
    justify-content: center;
    margin-right: 0;
    width: 44%;
  }
}
.unites-container .unite .row-wrap2 {
  display: flex;
  align-items: stretch;
  justify-content: center;
  width: 43%;
}
@media (max-width: 1024px) {
  .unites-container .unite .row-wrap2 {
    width: 50%;
  }
}
.unites-container .unite .row-wrap2 > div {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 8px 10px;
  border-right: solid 1px #fff;
  text-align: center;
}
.unites-container .unite .row-wrap2 > div:nth-child(1) {
  width: 37%;
}
@media (max-width: 1024px) {
  .unites-container .unite .row-wrap2 > div:nth-child(1) {
    width: 50%;
    justify-content: center;
  }
}
.unites-container .unite .row-wrap2 > div:nth-child(2) {
  width: 63%;
  border-right: none;
}
@media (max-width: 1024px) {
  .unites-container .unite .row-wrap2 > div:nth-child(2) {
    width: 50%;
    justify-content: right;
  }
}

.display-back-only {
  display: none;
}

.projets-container {
  width: 45%;
  background-color: #e8ebec;
  z-index: 1;
  overflow: auto;
}
@media (max-width: 1024px) {
  .projets-container {
    width: 100%;
  }
}
.projets-container .entete {
  display: flex;
  background-color: #3f4244;
  color: #fff;
  font-size: 22px;
  text-transform: uppercase;
  border-bottom: solid 1px #fff;
  border-bottom: solid 20px #fff;
}
@media (max-width: 1150px) {
  .projets-container .entete {
    font-size: 16px;
  }
}
@media (max-width: 1024px) {
  .projets-container .entete { /*display:none;*/ }
}
.projets-container .entete div {
  width: 21%;
  padding: 8px 10px;
  text-align: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
@media (max-width: 1024px) {
  .projets-container .entete div:nth-child(3) {
    width: 30%;
  }
}
.projets-container .entete div:nth-child(2) {
  width: 58%;
  border-left: solid 1px #fff;
  border-right: solid 1px #fff;
}
@media (max-width: 1024px) {
  .projets-container .entete div:nth-child(2) {
    width: 49%;
  }
}
.projets-container .not-available {
  display: none !important;
}
.projets-container .projet {
  border-bottom: solid 20px #fff;
}
.projets-container .projet:last-child {
  border-bottom: none;
}
.projets-container .projet .adresse {
  position: relative;
  padding: 8px 10px;
  background-color: #f36f2e;
  border-bottom: solid 1px #fff;
  color: #fff;
  font-size: 18px;
  text-align: center;
}
@media (max-width: 1150px) {
  .projets-container .projet .adresse {
    font-size: 16px;
  }
}
@media (max-width: 1024px) {
  .projets-container .projet .adresse {
    font-size: 15px;
  }
}
.projets-container .projet .adresse-content {
  overflow: hidden;
}
.projets-container .projet .types .type {
  padding: 8px 10px;
  background-color: #fff;
  border-bottom: solid 1px #fff;
  color: #373a3c;
  font-size: 15px;
  text-align: center;
  text-transform: uppercase;
}
.projets-container .projet .types .etages {
  overflow: hidden;
}
.projets-container .projet .types .etages .etage-container {
  display: flex;
  align-items: stretch;
  border-bottom: solid 1px #fff;
  color: #3f4244;
  font-size: 15px;
  cursor: pointer;
  -webkit-transition: all 0.2s ease;
  -moz-transition: all 0.2s ease;
  -ms-transition: all 0.2s ease;
  -o-transition: all 0.2s ease;
  transition: all 0.2s ease;
}
@media (max-width: 1150px) {
  .projets-container .projet .types .etages .etage-container {
    font-size: 14px;
  }
}
@media (max-width: 1024px) {
  .projets-container .projet .types .etages .etage-container { /*flex-wrap:wrap;*/ /*border:solid 5px #fff;*/
  }
}
@media (max-width: 1024px) {
  .projets-container .projet .types .etages .etage-container:first-child { /*border-top:solid 10px #fff;*/ }
}
@media (max-width: 1024px) {
  .projets-container .projet .types .etages .etage-container:last-child { /*border-bottom:solid 10px #fff;*/ }
}
.projets-container .projet .types .etages .etage-container label {
  display: none;
  font-weight: bold;
}
.projets-container .projet .types .etages .etage-container .etage {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 21%;
  padding: 12px 10px;
  border-right: solid 1px #fff;
  text-align: center;
}
@media (max-width: 1024px) {
  .projets-container .projet .types .etages .etage-container .etage {
    width: 21%; /*padding:10px 10px 0;*/
    padding: 10px;
    border-right: 0;
    font-weight: bold;
  }
}
.projets-container .projet .types .etages .etage-container .dimensions {
  display: flex;
  justify-content: space-around;
  align-self: stretch;
  width: 58%;
  border-right: solid 1px #fff;
}
@media (max-width: 1024px) {
  .projets-container .projet .types .etages .etage-container .dimensions {
    width: 49%;
    border-right: 0;
  }
}
.projets-container .projet .types .etages .etage-container .dimensions div {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 12px 10px;
  border-right: solid 1px #fff;
  text-align: center;
}
@media (max-width: 1024px) {
  .projets-container .projet .types .etages .etage-container .dimensions div {
    border: none;
    border-left: solid 1px #fff; /*margin: 10px 10px;*/
    margin: 0; /*padding: 8px 0;*/
    padding: 10px;
  }
}
.projets-container .projet .types .etages .etage-container .dimensions div:last-child {
  border-right: none;
}
@media (max-width: 1024px) {
  .projets-container .projet .types .etages .etage-container .dimensions div:last-child {
    border-right: solid 1px #fff;
  }
}
.projets-container .projet .types .etages .etage-container .dimensions div.non-dispo {
  background-image: linear-gradient(135deg, rgba(255, 255, 255, 0) 41.67%, #f36f2e 41.67%, #f36f2e 50%, rgba(255, 255, 255, 0), 50%, rgba(255, 255, 255, 0), 91.67%, #f36f2e 91.67%, #f36f2e 100%);
  background-size: 8.49px 8.49px;
}
.projets-container .projet .types .etages .etage-container .le-prix {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 21%;
  padding: 8px 10px;
  text-align: center;
}
@media (max-width: 1024px) {
  .projets-container .projet .types .etages .etage-container .le-prix {
    width: 30%; /*padding:0px 10px 10px;*/
    padding: 10px;
  }
}
.projets-container .projet .types .etages .etage-container:hover {
  background-color: #3f4244;
  color: #fff;
}

.projet-plan {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  width: 55%;
  height: 100%;
  overflow: hidden;
}
@media (max-width: 1024px) {
  .projet-plan {
    width: 100%;
  }
}
.projet-plan img {
  position: relative;
  max-width: 100%;
  max-height: 100%;
  z-index: 200;
  object-fit: contain;
  object-position: center;
}
.projet-plan svg {
  display: block;
  z-index: 201 !important;
  position: absolute;
  top: 50%;
  left: 50%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  object-position: center;
  transform: translate(-50%, -50%);
}
.projet-plan svg polygon {
  cursor: pointer;
}
.projet-plan svg polygon.louer {
  fill: rgba(0, 0, 0, 0.5);
}
.projet-plan svg polygon.disponible {
  fill: rgba(255, 255, 255, 0.1);
}

.projet-image {
  position: relative;
  width: 55%;
  height: 100%;
  overflow: hidden;
  z-index: 0;
}
@media (max-width: 1024px) {
  .projet-image {
    width: 100%;
    height: 300px;
  }
}
.projet-image div {
  position: absolute;
  top: 0px;
  left: 0px;
  bottom: 0px;
  right: 0px;
  background-color: #e8ebec;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center center;
  border-left: solid 1px #fff;
}
@media (max-width: 1024px) {
  .projet-image div {
    top: 10px;
    left: 10px;
    bottom: 10px;
    right: 10px;
  }
}

.group:after {
  content: "";
  display: table;
  clear: both;
}

.selecteur-filtre-module {
  font-family: "Montserrat", sans-serif;
  box-sizing: border-box;
  width: 45%;
  max-width: 100%;
  container-type: inline-size;
  container-name: filtre-module;
}
@media (max-width: 1024px) {
  .selecteur-filtre-module {
    width: 100%;
  }
}
.selecteur-filtre-module *, .selecteur-filtre-module *::before, .selecteur-filtre-module *::after {
  box-sizing: border-box;
}

.filtre-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.filtre-bar {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 16px 18px;
  background: #fff;
  color: #3f4244;
  border-radius: 8px;
  border: solid 1px #e0e0e0;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  /* Flèche custom orange (le thème / WebKit peuvent laisser une flèche système verte si appearance + background ne sont pas assez forts) */
}
.filtre-bar label {
  display: block;
  font-size: 11px;
  text-transform: uppercase;
  margin-bottom: 6px;
  color: #6a6e71;
  font-weight: 600;
  letter-spacing: 0.02em;
}
.filtre-bar select {
  min-width: 0;
  padding: 8px 2rem 8px 10px;
  font-size: 14px;
  border: solid 1px #c8c8c8;
  border-radius: 4px;
  color: #3f4244;
  font-family: inherit;
  cursor: pointer;
  color-scheme: only light;
  accent-color: #f36f2e;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-color: #fff;
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2212%22%20height%3D%2212%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%3E%3Cpath%20stroke%3D%22%23f36f2e%22%20stroke-width%3D%222.25%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M6%209l6%206%206-6%22%2F%3E%3C%2Fsvg%3E");
  background-repeat: no-repeat;
  background-position: right 0.6rem center;
  background-size: 12px 12px;
}
.filtre-bar select::-ms-expand {
  display: none;
}

/* Même flèche avec priorité sur d’éventuels `select { background: … }` du thème */
.selecteur-filtre-module .filtre-bar select,
.selecteur-filtre-module .filtre-row--selects select {
  background-color: #fff;
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2212%22%20height%3D%2212%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%3E%3Cpath%20stroke%3D%22%23f36f2e%22%20stroke-width%3D%222.25%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20d%3D%22M6%209l6%206%206-6%22%2F%3E%3C%2Fsvg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 0.6rem center !important;
  background-size: 12px 12px !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
}

.filtre-row--selects {
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-end;
  gap: 10px 12px;
  width: 100%;
}
.filtre-row--selects .filtre-field {
  flex: 1 1 0;
  min-width: 0;
  max-width: 100%;
}
.filtre-row--selects select {
  width: 100%;
  min-width: 0 !important;
  max-width: 100%;
}
@media (max-width: 1024px) {
  .filtre-row--selects {
    flex-wrap: wrap;
  }
  .filtre-row--selects .filtre-field {
    flex: 1 1 calc(50% - 6px);
    min-width: 0;
  }
}

@container filtre-module (max-width: 560px) {
  .filtre-row--selects {
    flex-wrap: wrap;
  }
  .filtre-row--selects .filtre-field {
    flex: 1 1 calc(50% - 6px);
    min-width: 0;
  }
}
.filtre-row--dispo-actions {
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 10px 12px;
  min-width: 0;
}
.filtre-row--dispo-actions .filtre-field.filtre-dispo {
  flex: 1 1 auto;
  min-width: 0;
  padding-bottom: 0px;
}
.filtre-row--dispo-actions .filtre-field.filtre-actions {
  flex: 0 0 auto;
  margin-left: 0;
  width: auto;
  max-width: none;
}

.filtre-row--price-actions {
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-end;
  gap: 10px 12px;
  width: 100%;
}
.filtre-row--price-actions .filtre-field.filtre-prix {
  flex: 6 1 0%;
  min-width: 0;
}
.filtre-row--price-actions .filtre-row--dispo-actions {
  flex: 1 1 auto;
  min-width: 0;
  align-items: center;
}
@media (max-width: 1024px) {
  .filtre-row--price-actions {
    flex-wrap: wrap;
    flex-direction: column;
    align-items: stretch;
  }
  .filtre-row--price-actions .filtre-field.filtre-prix {
    min-width: 0;
    flex: 1 1 auto;
  }
  .filtre-row--price-actions .filtre-row--dispo-actions {
    width: 100%;
    flex-wrap: nowrap;
    justify-content: space-between;
  }
}

/* ≤1215px : stationnement + range prix sur une ligne 50/50 ; ligne dispo : toggle sur 2×1fr, boutons en colonne auto (largeur intrinsèque) */
@media (max-width: 1215px) {
  .filtre-bar--has-parking.filtre-bar,
  .filtre-bar--no-parking.filtre-bar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
    column-gap: 12px;
    row-gap: 14px;
    align-items: end;
  }
  .filtre-bar--has-parking .filtre-row--selects,
  .filtre-bar--has-parking .filtre-row--price-actions,
  .filtre-bar--no-parking .filtre-row--selects,
  .filtre-bar--no-parking .filtre-row--price-actions {
    display: contents;
  }
  .filtre-bar--has-parking .filtre-field.filtre-dimension {
    grid-column: 1;
    grid-row: 1;
  }
  .filtre-bar--has-parking .filtre-field.filtre-type-meuble {
    grid-column: 2;
    grid-row: 1;
  }
  .filtre-bar--has-parking .filtre-field.filtre-parking {
    grid-column: 1;
    grid-row: 2;
    min-width: 0;
  }
  .filtre-bar--has-parking .filtre-field.filtre-prix {
    grid-column: 2;
    grid-row: 2;
    min-width: 0;
    width: 100%;
  }
  .filtre-bar--has-parking .filtre-row--dispo-actions {
    grid-column: 1/-1;
    grid-row: 3;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 10px 12px;
    min-width: 0;
    flex-wrap: nowrap;
  }
  .filtre-bar--no-parking .filtre-field.filtre-dimension {
    grid-column: 1;
    grid-row: 1;
  }
  .filtre-bar--no-parking .filtre-field.filtre-type-meuble {
    grid-column: 2;
    grid-row: 1;
  }
  .filtre-bar--no-parking .filtre-field.filtre-prix {
    grid-column: 1/3;
    grid-row: 2;
    min-width: 0;
  }
  .filtre-bar--no-parking .filtre-row--dispo-actions {
    grid-column: 1/-1;
    grid-row: 3;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 10px 12px;
    min-width: 0;
    flex-wrap: nowrap;
  }
}
/* Mobile : 2 colonnes 50/50 seulement — pas de 3e colonne « auto » qui rétrécit les selects (voir grille 1215px) */
@media (max-width: 1024px) {
  .filtre-bar--has-parking.filtre-bar,
  .filtre-bar--no-parking.filtre-bar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .filtre-bar--has-parking .filtre-field.filtre-dimension {
    grid-column: 1;
    grid-row: 1;
  }
  .filtre-bar--has-parking .filtre-field.filtre-type-meuble {
    grid-column: 2;
    grid-row: 1;
  }
  .filtre-bar--has-parking .filtre-field.filtre-parking {
    grid-column: 1/-1;
    grid-row: 2;
  }
  .filtre-bar--has-parking .filtre-field.filtre-prix {
    grid-column: 1/-1;
    grid-row: 3;
    width: 100%;
    min-width: 0;
  }
  .filtre-bar--has-parking .filtre-row--dispo-actions {
    grid-column: 1/-1;
    grid-row: 4;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 10px 12px;
    min-width: 0;
    flex-wrap: nowrap;
  }
  .filtre-bar--no-parking .filtre-field.filtre-dimension {
    grid-column: 1;
    grid-row: 1;
  }
  .filtre-bar--no-parking .filtre-field.filtre-type-meuble {
    grid-column: 2;
    grid-row: 1;
  }
  .filtre-bar--no-parking .filtre-field.filtre-prix {
    grid-column: 1/-1;
    grid-row: 2;
    min-width: 0;
  }
  .filtre-bar--no-parking .filtre-row--dispo-actions {
    grid-column: 1/-1;
    grid-row: 3;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 10px 12px;
    min-width: 0;
    flex-wrap: nowrap;
  }
}
.filtre-field.filtre-prix {
  flex: 1 1 0%;
  min-width: 0;
}
.filtre-field.filtre-prix .filtre-prix-wrap {
  width: 100%;
}
.filtre-field.filtre-prix .filtre-prix-label {
  display: block;
  font-size: 11px;
  text-transform: uppercase;
  margin: 0 0 6px;
  color: #6a6e71;
  font-weight: 600;
  text-align: left;
  width: 100%;
  letter-spacing: 0.02em;
}
.filtre-field.filtre-prix .filtre-prix-slider-row {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
}
.filtre-field.filtre-prix .prix-borne-min, .filtre-field.filtre-prix .prix-borne-max {
  flex: 0 0 auto;
  font-size: 12px;
  color: #3f4244;
  line-height: 1;
  max-width: 5.5rem;
}
.filtre-field.filtre-prix .prix-borne-min {
  text-align: left;
}
.filtre-field.filtre-prix .prix-borne-max {
  text-align: right;
}

.filtre-field.filtre-dispo {
  flex: 0 0 auto;
  min-width: 0;
}
.filtre-field.filtre-dispo .filtre-switch-label {
  white-space: nowrap;
  margin-bottom: 0px;
}

.filtre-field.filtre-actions {
  flex: 0 0 auto;
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 10px;
  margin-left: auto;
}
@media (max-width: 1024px) {
  .filtre-field.filtre-actions {
    margin-left: 0;
    justify-content: flex-start;
    flex-wrap: nowrap;
  }
}

.filtre-double-range {
  --range-min-pct: 0%;
  --range-max-pct: 100%;
  color-scheme: light;
  position: relative;
  flex: 1 1 auto;
  min-width: 80px;
  height: 32px;
  margin: 0;
}
.filtre-double-range input[type=range]::before,
.filtre-double-range input[type=range]::after {
  content: none !important;
  display: none !important;
  background: none !important;
  position: static !important;
  inset: auto !important;
  transform: none !important;
  transition: none !important;
}
.filtre-double-range input[type=range]:hover::before,
.filtre-double-range input[type=range]:hover::after {
  transform: none !important;
  background: none !important;
}
.filtre-double-range input[type=range] {
  position: absolute;
  left: 0;
  width: 100%;
  height: 32px;
  margin: 0;
  padding: 0;
  top: 0;
  background: transparent;
  cursor: pointer;
  pointer-events: none;
  -webkit-appearance: none;
  appearance: none;
  -moz-appearance: none;
  accent-color: transparent;
  outline: none;
}
.filtre-double-range input[type=range]::-webkit-slider-runnable-track, .filtre-double-range input[type=range]:hover::-webkit-slider-runnable-track, .filtre-double-range input[type=range]:active::-webkit-slider-runnable-track, .filtre-double-range input[type=range]:focus::-webkit-slider-runnable-track {
  height: 8px;
  background: transparent !important;
  border: none;
  box-shadow: none;
}
.filtre-double-range input.range-prix-min {
  z-index: 2;
}
.filtre-double-range input.range-prix-max {
  z-index: 3;
}
.filtre-double-range input[type=range]::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  pointer-events: auto;
  width: 18px;
  height: 18px;
  margin-top: -5px;
  border-radius: 50%;
  background: #f36f2e;
  border: solid 2px #fff;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.25);
}
.filtre-double-range input[type=range]::-webkit-slider-thumb:hover,
.filtre-double-range input[type=range]::-webkit-slider-thumb:active {
  background: #f36f2e;
  border: solid 2px #fff;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.25);
  outline: none;
  filter: none;
}
.filtre-double-range input[type=range]::-moz-range-track {
  height: 8px;
  background: transparent !important;
  border: none;
  box-shadow: none;
}
.filtre-double-range input[type=range]::-moz-range-progress {
  background: transparent !important;
}
.filtre-double-range input[type=range]::-moz-range-thumb {
  pointer-events: auto;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #f36f2e;
  border: solid 2px #fff;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.25);
}
.filtre-double-range input[type=range]::-moz-range-thumb:hover,
.filtre-double-range input[type=range]::-moz-range-thumb:active {
  background: #f36f2e;
  border: solid 2px #fff;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.25);
  outline: none;
  filter: none;
}
.filtre-double-range input[type=range]:focus-visible::-webkit-slider-thumb {
  outline: 2px solid #fff;
  outline-offset: 2px;
}
.filtre-double-range input[type=range]:focus-visible::-moz-range-thumb {
  outline: 2px solid #fff;
  outline-offset: 2px;
}

.filtre-range-track {
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  height: 10px;
  border-radius: 999px;
  border: solid 1px #b8b8b8;
  background: #ececec;
  box-sizing: border-box;
  pointer-events: none;
  z-index: 0;
}

.filtre-range-fill {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  height: 10px;
  border-radius: 999px;
  background: #f36f2e;
  pointer-events: none;
  z-index: 1;
  left: var(--range-min-pct);
  right: calc(100% - var(--range-max-pct));
  box-sizing: border-box;
}

.filtre-switch-label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  font-size: 13px;
  user-select: none;
  color: #3f4244;
  font-weight: 500;
}
.filtre-switch-label .filtre-dispo-text {
  text-transform: none;
}

.switch {
  position: relative;
  display: inline-block;
  width: 44px;
  height: 24px;
}
.switch input {
  opacity: 0;
  width: 0;
  height: 0;
}
.switch .slider {
  position: absolute;
  inset: 0;
  background: #555;
  border-radius: 24px;
  transition: background 0.2s;
}
.switch .slider::before {
  position: absolute;
  content: "";
  height: 18px;
  width: 18px;
  left: 3px;
  bottom: 3px;
  background: #fff;
  border-radius: 50%;
  transition: transform 0.2s;
}
.switch input:checked + .slider {
  background: #2ecc71;
}
.switch input:checked + .slider::before {
  transform: translateX(20px);
}
.switch input:focus-visible + .slider {
  outline: 2px solid #fff;
  outline-offset: 2px;
}

.filtre-voir-resultats {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 10px 12px;
  font-size: 14px;
  font-weight: 600;
  background: #f36f2e;
  color: #fff;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  font-family: inherit;
}
.filtre-voir-resultats .filtre-icon-search {
  flex-shrink: 0;
  opacity: 0.95;
}
.filtre-voir-resultats .filtre-voir-text {
  white-space: nowrap;
}
.filtre-voir-resultats .filtre-count {
  font-variant-numeric: tabular-nums;
}
.filtre-voir-resultats:hover {
  background: #e05d22;
  color: #fff;
}
.filtre-voir-resultats:focus-visible {
  outline: 2px solid #3f4244;
  outline-offset: 2px;
}
@media (max-width: 1024px) {
  .filtre-voir-resultats {
    gap: 0;
    padding: 10px;
  }
  .filtre-voir-resultats .filtre-voir-text {
    display: none;
  }
}

.filtre-reset {
  padding: 10px 14px;
  font-size: 13px;
  background: #f0f0f0;
  color: #3f4244;
  border: solid 1px #d0d0d0;
  border-radius: 6px;
  cursor: pointer;
  font-family: inherit;
}
.filtre-reset:hover {
  background: #e4e4e4;
}

.filtre-reset--icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  min-width: 38px;
  padding: 0;
  border-radius: 6px;
  background: #f0f0f0;
  border: solid 1px #d0d0d0;
  color: #5c5c5c;
}
.filtre-reset--icon svg {
  display: block;
}
.filtre-reset--icon:hover {
  background: #e8e8e8;
  color: #3f4244;
}
.filtre-reset--icon:focus-visible {
  outline: 2px solid #f36f2e;
  outline-offset: 2px;
}

.filtre-overlay[hidden] {
  display: none !important;
}

.filtre-overlay {
  position: absolute;
  top: 8px;
  left: 8px;
  width: calc(22.5% - 16px);
  z-index: 1200;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  padding: 0;
  box-sizing: border-box;
  pointer-events: auto;
  min-height: 0;
  max-height: min(100% - 16px, 60dvh);
  overflow: visible;
}
@media (max-width: 1024px) {
  .filtre-overlay {
    left: 8px;
    width: calc(50% - 16px);
    top: 8px;
    max-height: min(100% - 16px, 80dvh);
  }
}

.filtre-overlay-backdrop {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.filtre-overlay-panel {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 100%;
  min-height: 0;
  flex: 1 1 auto;
  margin: 0;
  display: flex;
  flex-direction: column;
  background: rgba(255, 255, 255, 0.95);
  border: solid 1px #222;
  border-radius: 8px;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.15);
  box-sizing: border-box;
  overflow: hidden;
}

.filtre-overlay > .filtre-overlay-close {
  position: absolute;
  top: -4px;
  right: -8px;
  z-index: 3;
  width: 38px;
  height: 38px;
  border-radius: 6px;
  font-size: 28px;
  line-height: 1;
  border: none;
  background: #f36f2e;
  color: #fff;
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}
.filtre-overlay > .filtre-overlay-close:hover {
  background: #e05d22;
  color: #fff;
}

.filtre-overlay-results {
  flex: 1 1 auto;
  min-height: 0;
  padding: 38px 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-y;
  border-radius: 0 0 7px 7px;
}

.filtre-overlay-empty {
  padding: 24px;
  text-align: center;
  color: #3f4244;
  font-size: 16px;
}

.filtre-overlay-group {
  margin-bottom: 24px;
}
.filtre-overlay-group:last-child {
  margin-bottom: 0;
}

.filtre-overlay-table {
  display: flex;
  flex-direction: column;
  gap: 0;
  border: solid 1px #fff;
}

.filtre-overlay-table .filtre-result-row {
  display: grid;
  grid-template-columns: 0.5fr 1.4fr 1.3fr 0.9fr 0.9fr 1fr;
  gap: 0;
  font-size: 14px;
  border-bottom: solid 1px #e8e8e8;
  cursor: pointer;
  color: #3f4244;
  line-height: 1.2em !important;
}
.filtre-overlay-table .filtre-result-row span {
  padding: 10px 5px;
  border-right: solid 1px #eee;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.filtre-overlay-table .filtre-result-row span:last-child {
  border-right: none;
}
.filtre-overlay-table .filtre-result-row:nth-child(odd) {
  background-color: #f0f1f3;
}
.filtre-overlay-table .filtre-result-row:nth-child(even) {
  background-color: #fff;
}
.filtre-overlay-table .filtre-result-row:not(.filtre-result-row--indispo) {
  box-shadow: inset 3px 0 0 rgba(46, 204, 113, 0.45);
}
.filtre-overlay-table .filtre-result-row:not(.filtre-result-row--indispo) span {
  border-right-color: #fff;
}
.filtre-overlay-table .filtre-result-row:not(.filtre-result-row--indispo):hover {
  background: #3f4244 !important;
  color: #fff;
  box-shadow: none;
}
.filtre-overlay-table .filtre-result-row:not(.filtre-result-row--indispo):hover span {
  color: #fff;
}
.filtre-overlay-table .filtre-result-row.filtre-result-row--indispo {
  background-color: rgba(243, 111, 46, 0.08);
  background-image: none;
  color: #4a4d50;
  box-shadow: inset 3px 0 0 rgba(243, 111, 46, 0.45);
}
.filtre-overlay-table .filtre-result-row.filtre-result-row--indispo:nth-child(odd) span, .filtre-overlay-table .filtre-result-row.filtre-result-row--indispo:nth-child(even) span {
  border-right-color: #eee;
}
.filtre-overlay-table .filtre-result-row.filtre-result-row--indispo:hover {
  background: #3f4244 !important;
  color: #fff;
  box-shadow: none;
}
.filtre-overlay-table .filtre-result-row.filtre-result-row--indispo:hover span {
  color: #fff;
}

@media (max-width: 1024px) {
  .filtre-overlay-table .filtre-result-row {
    display: grid;
    grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.3fr) minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: 8px;
    row-gap: 6px;
    padding: 8px 10px;
    align-items: center;
    font-size: 12px;
    line-height: 1.3;
  }
  .filtre-overlay-table .filtre-result-row span {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    border-right: none;
    padding: 0;
    text-align: left;
    min-width: 0;
    overflow-wrap: anywhere;
    word-break: break-word;
  }
  .filtre-overlay-table .filtre-result-row span:nth-child(1)::before {
    content: "#";
  }
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl9taXhpbnMuc2NzcyIsInN0eWxlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTtBQStHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQ3pHQTtBQUdBO0VBQU07RUFBVzs7O0FEWWY7RUNWRjtJQUNtQztJQUFnQjs7OztBQUduRDtFQUNJO0VBQWE7RUFBWTtFQUFpQjs7QURLNUM7RUNORjtJQUVtQzs7O0FBRS9CO0VBQUc7RUFBdUM7RUFBaUI7O0FBQzNEO0VBQUs7RUFBaUI7RUFBb0I7OztBQUc5QztFQUNJO0VBQW9CO0VBQWU7RUFBYTs7QURIbEQ7RUNFRjtJQUVvQzs7OztBQUdwQztFQUNJO0VBQW1CO0VBQWM7RUFDakM7O0FEVEY7RUNPRjtJQUdtQzs7OztBQUduQztFQUNJO0VBQW1CO0VBQWM7RUFBWTs7QURkL0M7RUNhRjtJQUVtQzs7OztBQUduQztFQUNJOztBRG5CRjtFQ2tCRjtJQUVtQzs7OztBRHBCakM7RUN1QkY7SUFDbUM7SUFBb0I7Ozs7QUFHdkQ7RUFDSTtFQUFtQjtFQUFXO0VBQTBCOztBQUN4RDtFQUFXO0VBQVk7RUFBZTtFQUFtQjtFQUFPO0VBQVE7RUFBWTtFQUFhO0VBQTBCOztBRDdCN0g7RUMyQkY7SUFHbUM7OztBQUUvQjtFQUNJO0VBQW1CO0VBQWtCO0VBQTBCO0VBQStCO0VBQVk7RUFBZ0I7O0FERGhJO0VDQUU7SUFFbUM7OztBRGxDckM7RUNnQ0U7SUFHbUM7OztBQUduQztFQUNJO0VBQWM7RUFBMEI7RUFBWTtFQUFnQjtFQUEwQjtFQUE4Qjs7QURQbEk7RUNNRTtJQUVtQzs7O0FEeENyQztFQ3NDRTtJQUdtQzs7O0FEekNyQztFQzJDTTtJQUNtQzs7O0FBRW5DO0VBQ0k7O0FEL0NWO0VDOENNO0lBRW1DOzs7QUFHbkM7RUFDSTtFQUFXO0VBQWtCO0VBQTZCOztBRHBEcEU7RUNtRE07SUFFbUM7OztBQUMvQjtFQUNJOztBRHZEZDtFQ3NEVTtJQUVtQzs7O0FBRW5DO0VBQ0k7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ZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgTWl4aW5zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4kbm9taW4gOiAwcHg7XG4kc21hbGwgOiA0MDBweDtcbiRtb2JpbGUgOiAxMDI0cHg7XG4kbWVkaXVtIDogMTE1MHB4O1xuJG1lbnUgOiAxMjc1cHg7XG4kdGFibGV0X2xhcmdlIDogMTI4MHB4O1xuJGxhcmdlIDogMTQwMHB4O1xuXG4vL0BpbmNsdWRlIGJyZWFrcG9pbnQoXCJtb2JpbGVcIikge31cblxuQG1peGluIGJyZWFrcG9pbnQoJHBvaW50KVxue1xuXHRAaWYgJHBvaW50ID09IFwibm9taW5cIiB7XG5cdFx0QG1lZGlhIChtaW4td2lkdGg6ICRub21pbikge0Bjb250ZW50O31cblx0fVxuXG5cdEBpZiAkcG9pbnQgPT0gXCJtb2JpbGVcIiB7IFxuXHRcdEBtZWRpYSAobWF4LXdpZHRoOiAkbW9iaWxlKSB7QGNvbnRlbnQ7fVxuXHR9XG5cblx0QGlmICRwb2ludCA9PSBcIm1vYmlsZV9wbHVzXCIgeyBcblx0XHRAbWVkaWEgKG1heC13aWR0aDogJG1vYmlsZV9wbHVzKSB7QGNvbnRlbnQ7fVxuXHR9XG5cblx0QGlmICRwb2ludCA9PSBcImlwYWR2XCIge1xuXHRcdEBtZWRpYSAobWF4LXdpZHRoOiAkaXBhZHYpIHtAY29udGVudDt9XG5cdH1cblxuXHRAaWYgJHBvaW50ID09IFwibGFyZ2VcIiB7XG5cdFx0QG1lZGlhIChtYXgtd2lkdGg6ICRsYXJnZSkge0Bjb250ZW50O31cblx0fVxuXG5cdEBpZiAkcG9pbnQgPT0gXCJ0YWJsZXRcIiB7XG5cdFx0QG1lZGlhIChtYXgtd2lkdGg6ICR0YWJsZXQpIHtAY29udGVudDt9XG5cdH1cblxuXHRAaWYgJHBvaW50ID09IFwidGFibGV0X2xhcmdlXCIge1xuXHRcdEBtZWRpYSAobWF4LXdpZHRoOiAkdGFibGV0X2xhcmdlKSB7QGNvbnRlbnQ7fVxuXHR9XG5cblx0QGlmICRwb2ludCA9PSBcImRlc2t0b3BcIiB7XG5cdFx0QG1lZGlhIChtYXgtd2lkdGg6ICRkZXNrdG9wKSB7QGNvbnRlbnQ7fVxuXHR9XG5cblx0QGlmICRwb2ludCA9PSBcIm1lbnVcIiB7XG5cdFx0QG1lZGlhIChtYXgtd2lkdGg6ICRtZW51KSB7QGNvbnRlbnQ7fVxuXHR9XG5cblx0QGlmICRwb2ludCA9PSBcIm1lZGl1bVwiIHtcblx0XHRAbWVkaWEgKG1heC13aWR0aDogJG1lZGl1bSkge0Bjb250ZW50O31cblx0fVxuXG5cdEBpZiAkcG9pbnQgPT0gXCJzbWFsbFwiIHtcblx0XHRAbWVkaWEgKG1heC13aWR0aDogJHNtYWxsKSB7QGNvbnRlbnQ7fVxuXHR9XG5cblx0QGlmICRwb2ludCA9PSBcIm1lbnVcIiB7XG5cdFx0QG1lZGlhIChtYXgtd2lkdGg6ICRtZW51KSB7QGNvbnRlbnQ7fVxuXHR9XG5cdEBpZiAkcG9pbnQgPT0gXCJtZW51LXNtYWxsXCIge1xuXHRcdEBtZWRpYSAobWF4LXdpZHRoOiAkbWVudS1zbWFsbCkge0Bjb250ZW50O31cblx0fVxuXG5cdEBpZiAkcG9pbnQgPT0gXCJ0b3VjaFwiIHsgLyogc21hcnRwaG9uZXMsIHRvdWNoc2NyZWVucyAqL1xuXHRcdEBtZWRpYSAoaG92ZXI6IG5vbmUpLCAocG9pbnRlcjogY29hcnNlKSwgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCkge0Bjb250ZW50O31cblx0fVxuXG5cdEBpZiAkcG9pbnQgPT0gXCJwb3J0YWl0XCIge1xuXHRcdEBtZWRpYSAob3JpZW50YXRpb246IHBvcnRyYWl0KSB7QGNvbnRlbnQ7fVxuXHR9XG5cbn1cblxuXG5AbWl4aW4gYXNwZWN0LXJhdGlvKCR3aWR0aCwgJGhlaWdodCkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICY6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmctdG9wOiAoJGhlaWdodCAvICR3aWR0aCkgKiAxMDAlO1xuICB9XG4gID4gLmNvbnRlbnQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gIH1cbn1cblxuQG1peGluIHRyYW5zaXRpb24oJGFyZ3MuLi4pIHtcblx0LXdlYmtpdC10cmFuc2l0aW9uOiAkYXJncztcblx0LW1vei10cmFuc2l0aW9uOiAkYXJncztcblx0LW1zLXRyYW5zaXRpb246ICRhcmdzO1xuXHQtby10cmFuc2l0aW9uOiAkYXJncztcblx0dHJhbnNpdGlvbjogJGFyZ3M7XG59XG5cblxuQG1peGluIGNhbGMoJGtleSwgJHZhbHVlKSB7XG5cdCN7JGtleX06IC13ZWJraXQtY2FsYygjeyR2YWx1ZX0pO1xuXHQjeyRrZXl9OiAtbW96LWNhbGMoI3skdmFsdWV9KTtcblx0I3ska2V5fTogY2FsYygjeyR2YWx1ZX0pO1xufVxuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBNaXhpbiA6IExpbmVhci1ncmFkaWVudFxuICAgVXNhZ2UgOlxuXHRcdEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCgjMzFCN0Q3LCAjRURBQzdEKTtcbiAgXHRcdEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI0U0N0Q3RCAwJSwgI0MxOTVEMyA1MCUsICM0RkI0RTggMTAwJSk7XG4gIFx0XHRAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQoNDJkZWcsICNCNTgyMzQgMCUsICNEMkI1NDUgNTAlLCAjRDdDMDREIDUwLjAxJSwgI0ZGRkZGRiAxMDAlKTtcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbkBtaXhpbiBsaW5lYXItZ3JhZGllbnQoJGRpcmVjdGlvbiwgJGNvbG9yLXN0b3BzLi4uKVxue1xuXHQvLyBEaXJlY3Rpb24gaGFzIGJlZW4gb21pdHRlZCBhbmQgaGFwcGVucyB0byBiZSBhIGNvbG9yLXN0b3Bcblx0QGlmIGlzLWRpcmVjdGlvbigkZGlyZWN0aW9uKSA9PSBmYWxzZSB7XG5cdFx0JGNvbG9yLXN0b3BzOiAkZGlyZWN0aW9uLCAkY29sb3Itc3RvcHM7XG5cdFx0JGRpcmVjdGlvbjogMTgwZGVnO1xuXHR9XG5cblx0YmFja2dyb3VuZDogbnRoKG50aCgkY29sb3Itc3RvcHMsIDEpLCAxKTtcblx0YmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVnYWN5LWRpcmVjdGlvbigkZGlyZWN0aW9uKSwgJGNvbG9yLXN0b3BzKTtcblx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCRkaXJlY3Rpb24sICRjb2xvci1zdG9wcyk7XG59XG5cbi8vLyBUZXN0IGlmICckdmFsdWUnIGlzIGEgdmFsaWQgZGlyZWN0aW9uXG4vLy8gQHBhcmFtIHsqfSAkdmFsdWUgLSBWYWx1ZSB0byB0ZXN0XG4vLy8gQHJldHVybiB7Qm9vbH1cbkBmdW5jdGlvbiBpcy1kaXJlY3Rpb24oJHZhbHVlKVxue1xuXHQkaXMta2V5d29yZDogaW5kZXgoKHRvIHRvcCwgdG8gdG9wIHJpZ2h0LCB0byByaWdodCB0b3AsIHRvIHJpZ2h0LCB0byBib3R0b20gcmlnaHQsIHRvIHJpZ2h0IGJvdHRvbSwgdG8gYm90dG9tLCB0byBib3R0b20gbGVmdCwgdG8gbGVmdCBib3R0b20sIHRvIGxlZnQsIHRvIGxlZnQgdG9wLCB0byB0b3AgbGVmdCksICR2YWx1ZSk7XG5cdCRpcy1hbmdsZTogdHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInIGFuZCBpbmRleCgnZGVnJyAnZ3JhZCcgJ3R1cm4nICdyYWQnLCB1bml0KCR2YWx1ZSkpO1xuXHRAcmV0dXJuICRpcy1rZXl3b3JkIG9yICRpcy1hbmdsZTtcbn1cblxuLy8vIENvbnZlcnQgYSBkaXJlY3Rpb24gdG8gbGVnYWN5IHN5bnRheFxuLy8vIEBwYXJhbSB7S2V5d29yZCB8IEFuZ2xlfSAkdmFsdWUgLSBWYWx1ZSB0byBjb252ZXJ0XG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBpcy1kaXJlY3Rpb25cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnZlcnQtYW5nbGVcbi8vLyBAdGhyb3cgQ2Fubm90IGNvbnZlcnQgYCN7JHZhbHVlfWAgdG8gbGVnYWN5IHN5bnRheCBiZWNhdXNlIGl0IGRvZXNuJ3Qgc2VlbSB0byBiZSBhIGRpcmVjdGlvbi47XG5AZnVuY3Rpb24gbGVnYWN5LWRpcmVjdGlvbigkdmFsdWUpXG57XG5cdEBpZiBpcy1kaXJlY3Rpb24oJHZhbHVlKSA9PSBmYWxzZSB7XG4gICAgXHRAZXJyb3IgXCJDYW5ub3QgY29udmVydCBgI3skdmFsdWV9YCB0byBsZWdhY3kgc3ludGF4IGJlY2F1c2UgaXQgZG9lc24ndCBzZWVtIHRvIGJlIGEgZGlyZWN0aW9uLlwiO1xuXHR9XG5cdFxuXHQkY29udmVyc2lvbi1tYXA6IChcblx0ICAgIHRvIHRvcCAgICAgICAgICA6IGJvdHRvbSxcblx0ICAgIHRvIHRvcCByaWdodCAgICA6IGJvdHRvbSBsZWZ0LFxuXHQgICAgdG8gcmlnaHQgdG9wICAgIDogbGVmdCBib3R0b20sXG5cdCAgICB0byByaWdodCAgICAgICAgOiBsZWZ0LFxuXHQgICAgdG8gYm90dG9tIHJpZ2h0IDogdG9wIGxlZnQsXG5cdCAgICB0byByaWdodCBib3R0b20gOiBsZWZ0IHRvcCxcblx0ICAgIHRvIGJvdHRvbSAgICAgICA6IHRvcCxcblx0ICAgIHRvIGJvdHRvbSBsZWZ0ICA6IHRvcCByaWdodCxcblx0ICAgIHRvIGxlZnQgYm90dG9tICA6IHJpZ2h0IHRvcCxcblx0ICAgIHRvIGxlZnQgICAgICAgICA6IHJpZ2h0LFxuXHQgICAgdG8gbGVmdCB0b3AgICAgIDogcmlnaHQgYm90dG9tLFxuXHQgICAgdG8gdG9wIGxlZnQgICAgIDogYm90dG9tIHJpZ2h0XG5cdCk7XG5cblx0QGlmIG1hcC1oYXMta2V5KCRjb252ZXJzaW9uLW1hcCwgJHZhbHVlKSB7XG4gICAgXHRAcmV0dXJuIG1hcC1nZXQoJGNvbnZlcnNpb24tbWFwLCAkdmFsdWUpO1xuICBcdH1cblxuICBcdEByZXR1cm4gOTBkZWcgLSAkdmFsdWU7XG59XG5cbkBtaXhpbiByb3dNYWNoaW5lKCRudW1QZXJSb3csICRtYXJnaW4pIHtcbiAgd2lkdGg6ICgoMTAwJSAtICgoJG51bVBlclJvdyAtIDEpICogJG1hcmdpbikpIC8gJG51bVBlclJvdyk7XG4gICY6bnRoLWNoaWxkKG4pIHtcbiAgICBtYXJnaW4tYm90dG9tOjI1cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAkbWFyZ2luO1xuICB9XG4gICY6bnRoLWNoaWxkKCN7JG51bVBlclJvd31uKSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDI1cHg7XG4gIH1cbn0iLCJAaW1wb3J0ICdtaXhpbnMnO1xuXG4vLyBAaW5jbHVkZSBicmVha3BvaW50KFwibW9iaWxlXCIpIHt9XG4vLyBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAuMnMgZWFzZSk7XG5cblxuLyogPT0gU3R5bGVzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5cbmJvZHkge3BhZGRpbmc6MDsgbWFyZ2luOjA7fVxuXG4ubW9iaWxlLW5vLXBhZGRpbmcge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoXCJtb2JpbGVcIikge3BhZGRpbmctbGVmdDowOyBwYWRkaW5nLXJpZ2h0OjA7fVxufVxuXG4jc2VsZWN0ZXVyLXBsYW4ge1xuICAgIGhlaWdodDphdXRvOyB3aWR0aDoxMDAlOyBvdmVyZmxvdzpoaWRkZW47IGRpc3BsYXk6bm9uZTtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KFwibW9iaWxlXCIpIHtoZWlnaHQ6YXV0bzt9XG5cbiAgICAqIHtmb250LWZhbWlseTogJ01vbnRzZXJyYXQnLCBzYW5zLXNlcmlmOyBmb250LXdlaWdodDo0MDA7IGJveC1zaXppbmc6Ym9yZGVyLWJveDt9XG4gICAgc3VwIHtmb250LXNpemU6IDEwcHg7IHBvc2l0aW9uOiByZWxhdGl2ZTsgdG9wOiAtNHB4O31cbn1cblxuLnNlbGVjdGV1ci1jb250ZW50IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IGRpc3BsYXk6IGZsZXg7IHdpZHRoOiAyMDAlOyBoZWlnaHQ6IDEwMCU7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChcIm1vYmlsZVwiKSB7IGhlaWdodDogYXV0bzsgfVxufVxuXG4ucHJvamV0cyB7XG4gICAgcG9zaXRpb246cmVsYXRpdmU7IGRpc3BsYXk6ZmxleDsgd2lkdGg6MTAwJTtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KFwibW9iaWxlXCIpIHtmbGV4LXdyYXA6d3JhcDt9XG59XG5cbi51bml0ZXMge1xuICAgIHBvc2l0aW9uOnJlbGF0aXZlOyBkaXNwbGF5OmZsZXg7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoXCJtb2JpbGVcIikge2ZsZXgtd3JhcDp3cmFwO31cbn1cblxuLnVuaXRlcy1ldGFnZS10eXBlIHtcbiAgICBkaXNwbGF5Om5vbmU7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChcIm1vYmlsZVwiKSB7aGVpZ2h0OjEwMCU7fVxufVxuXG4udW5pdGVzLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoXCJtb2JpbGVcIikge292ZXJmbG93LXk6IHNjcm9sbDsgaGVpZ2h0OiBjYWxjKDEwMCUgLSAzOXB4KTt9XG59XG5cbi51bml0ZXMtY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjpyZWxhdGl2ZTsgd2lkdGg6NDUlOyBiYWNrZ3JvdW5kLWNvbG9yOiNlOGViZWM7IHBhZGRpbmctdG9wOjYwcHg7XG4gICAgJjo6YmVmb3JlIHtjb250ZW50OlwiXCI7IGRpc3BsYXk6YmxvY2s7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgbGVmdDowOyB3aWR0aDoxMDAlOyBoZWlnaHQ6NjBweDsgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOyB6LWluZGV4OjA7fVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoXCJtb2JpbGVcIikge3dpZHRoOjEwMCU7fVxuXG4gICAgLmVudGV0ZS1hZHJlc3NlIHtcbiAgICAgICAgcG9zaXRpb246cmVsYXRpdmU7IHBhZGRpbmc6OHB4IDEwcHg7IGJhY2tncm91bmQtY29sb3I6I2YzNmYyZTsgYm9yZGVyLWJvdHRvbTpzb2xpZCAxcHggI2ZmZjsgIGNvbG9yOiNmZmY7IGZvbnQtc2l6ZToxOHB4OyB0ZXh0LWFsaWduOmNlbnRlcjtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChcIm1lZGl1bVwiKSB7Zm9udC1zaXplOjE2cHg7fVxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KFwibW9iaWxlXCIpIHtmb250LXNpemU6MTVweDt9XG4gICAgfVxuXG4gICAgLmVudGV0ZSB7XG4gICAgICAgIGRpc3BsYXk6ZmxleDsgYmFja2dyb3VuZC1jb2xvcjojM2Y0MjQ0OyBjb2xvcjojZmZmOyBmb250LXNpemU6MjJweDsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyBib3JkZXItYm90dG9tOnNvbGlkIDFweCAjZmZmOyBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoXCJtZWRpdW1cIikge2ZvbnQtc2l6ZToxNnB4O31cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChcIm1vYmlsZVwiKSB7Zm9udC1zaXplOjExcHg7fVxuXG4gICAgICAgIHNwYW4ubGFiZWwtZGVza3RvcCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KFwibW9iaWxlXCIpIHtkaXNwbGF5Om5vbmU7fVxuICAgICAgICB9XG4gICAgICAgIHNwYW4ubGFiZWwtbW9iaWxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6bm9uZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoXCJtb2JpbGVcIikge2Rpc3BsYXk6aW5saW5lLWJsb2NrO31cbiAgICAgICAgfVxuXG4gICAgICAgIGRpdiB7XG4gICAgICAgICAgICB3aWR0aDoxNiU7IHBhZGRpbmc6OHB4IDEwcHg7IGJvcmRlci1yaWdodDpzb2xpZCAxcHggI2ZmZjsgdGV4dC1hbGlnbjpjZW50ZXI7XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KFwibW9iaWxlXCIpIHt3aWR0aDoxNCU7fVxuICAgICAgICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICAgICAgICAgIHdpZHRoOjE0JTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KFwibW9iaWxlXCIpIHt3aWR0aDoxNCU7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpudGgtY2hpbGQoMykge1xuICAgICAgICAgICAgICAgIHdpZHRoOjI3JTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KFwibW9iaWxlXCIpIHt3aWR0aDoyMiU7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpudGgtY2hpbGQoNCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOjE2JTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KFwibW9iaWxlXCIpIHt3aWR0aDoyNSU7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICB3aWR0aDoyNyU7IGJvcmRlci1yaWdodDpub25lO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoXCJtb2JpbGVcIikge3dpZHRoOjI1JTt9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnR5cGUge1xuICAgICAgICBkaXNwbGF5OmZsZXg7IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgYm9yZGVyLWJvdHRvbTpzb2xpZCAxcHggI2ZmZjsgY29sb3I6IzM3M2EzYzsgZm9udC1zaXplOjE1cHg7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7XG4gICAgICAgIGEge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDE3cHg7IGRpc3BsYXk6YmxvY2s7IHBhZGRpbmc6OHB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC10cmFuc2Zvcm06bm9uZTsgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgLjJzIGVhc2UpO1xuICAgICAgICAgICAgJjpob3ZlciB7Y29sb3I6I2YzNmYyZTt9XG4gICAgICAgIH1cbiAgICAgICAgc3BhbiB7ZGlzcGxheTpibG9jazsgd2lkdGg6MTAwJTsgcGFkZGluZzo4cHggMTBweDsgdGV4dC1hbGlnbjpjZW50ZXI7fVxuICAgIH1cbiAgICAudW5pdGUge1xuICAgICAgICBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOnN0cmV0Y2g7IGJvcmRlci1ib3R0b206c29saWQgMXB4ICNmZmY7IGZvbnQtc2l6ZToxNXB4OyBjdXJzb3I6cG9pbnRlcjsgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgLjJzIGVhc2UpO1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KFwibWVkaXVtXCIpIHtmb250LXNpemU6MTRweDt9XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoXCJtb2JpbGVcIikgey8qZmxleC13cmFwOiB3cmFwOyBib3JkZXI6c29saWQgNXB4ICNmZmY7Ki99XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KFwibW9iaWxlXCIpIHsvKmJvcmRlci10b3A6c29saWQgMTBweCAjZmZmOyovfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoXCJtb2JpbGVcIikge2JvcmRlci1ib3R0b206c29saWQgMTBweCAjZmZmO31cbiAgICAgICAgfVxuXG4gICAgICAgICZbZGF0YS1kaXNwb25pYmxlPVwiXCJdLCAmW2RhdGEtZGlzcG9uaWJsZT1cIjBcIl0ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDI1NSwyNTUsMjU1LCAwKSA0MS42NyUsICNmMzZmMmUgNDEuNjclLCAjZjM2ZjJlIDUwJSwgcmdiYSgyNTUsMjU1LDI1NSwgMCksIDUwJSwgcmdiYSgyNTUsMjU1LDI1NSwgMCksIDkxLjY3JSwgI2YzNmYyZSA5MS42NyUsICNmMzZmMmUgMTAwJSk7IGJhY2tncm91bmQtc2l6ZTogOC40OXB4IDguNDlweDtcblxuICAgICAgICAgICAgLmxlLXByaXggc3BhbiB7b3BhY2l0eTowO31cbiAgICAgICAgfVxuICAgICAgICAmLmlzLWhvdmVyLCAmOmhvdmVyIHtiYWNrZ3JvdW5kLWNvbG9yOiMzZjQyNDQ7IGNvbG9yOiNmZmY7fVxuICAgICAgICBcbiAgICAgICAgLnJvdy13cmFwMSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczpzdHJldGNoOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgd2lkdGg6NTclO1xuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChcIm1vYmlsZVwiKSB7d2lkdGg6NTAlO31cbiAgICAgICAgICAgICYgPiBkaXYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBwYWRkaW5nOjhweCAxMHB4OyBib3JkZXItcmlnaHQ6c29saWQgMXB4ICNmZmY7IHRleHQtYWxpZ246Y2VudGVyO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoXCJtZWRpdW1cIikge2ZvbnQtc2l6ZToxNHB4O31cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KFwibW9iaWxlXCIpIHsvKm1hcmdpbjogOHB4IDEwcHggMDsqLyBtYXJnaW46MDsgcGFkZGluZzogNnB4IDhweDsgLypib3JkZXItcmlnaHQ6bm9uZTsqL31cbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAmLm51bWVybyB7XG4gICAgICAgICAgICAgICAgICAgIC8vIEBpbmNsdWRlIGJyZWFrcG9pbnQoXCJtb2JpbGVcIikge2JhY2tncm91bmQtY29sb3I6IzNmNDI0NDsgY29sb3I6I2ZmZjsgYm9yZGVyOiBzb2xpZCAxcHggI2ZmZjt9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDEpIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6MjglO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KFwibW9iaWxlXCIpIHsgd2lkdGg6MjglO31cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDoyNC43NiU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoXCJtb2JpbGVcIikgeyB3aWR0aDoyOCU7fVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgzKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOjQ3LjI0JTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChcIm1vYmlsZVwiKSB7anVzdGlmeS1jb250ZW50OmNlbnRlcjsgbWFyZ2luLXJpZ2h0OjA7IHdpZHRoOjQ0JTt9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnJvdy13cmFwMiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczpzdHJldGNoOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgd2lkdGg6NDMlO1xuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChcIm1vYmlsZVwiKSB7d2lkdGg6NTAlO31cbiAgICAgICAgICAgICYgPiBkaXYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBwYWRkaW5nOjhweCAxMHB4OyBib3JkZXItcmlnaHQ6c29saWQgMXB4ICNmZmY7IHRleHQtYWxpZ246Y2VudGVyO1xuICAgICAgICAgICAgICAgIC8vIEBpbmNsdWRlIGJyZWFrcG9pbnQoXCJtb2JpbGVcIikge2JvcmRlci1yaWdodDpub25lO31cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgxKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOjM3JTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChcIm1vYmlsZVwiKSB7d2lkdGg6NTAlOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjt9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6NjMlOyAgYm9yZGVyLXJpZ2h0Om5vbmU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoXCJtb2JpbGVcIikge3dpZHRoOjUwJTsganVzdGlmeS1jb250ZW50OnJpZ2h0O31cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC8vLnJvdy13cmFwMSA+IGRpdiwgLnJvdy13cmFwMiA+IGRpdiB7XG4gICAgICAgICAgICAvLyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgd2lkdGg6MTYlOyBwYWRkaW5nOjhweCAxMHB4OyBib3JkZXItcmlnaHQ6c29saWQgMXB4ICNmZmY7IHRleHQtYWxpZ246Y2VudGVyO1xuICAgICAgICAgICAgLy8gJjpudGgtY2hpbGQoMikge3dpZHRoOjE0JTt9XG4gICAgICAgICAgICAvLyAmOm50aC1jaGlsZCgzKSB7d2lkdGg6MjclO31cbiAgICAgICAgICAgIC8vICY6bnRoLWNoaWxkKDQpIHt3aWR0aDoxNiU7fVxuICAgICAgICAgICAgLy8gJjpsYXN0LWNoaWxkIHt3aWR0aDoyNyU7IGJvcmRlci1yaWdodDpub25lO31cbiAgICAgICAgLy99XG4gICAgfVxufVxuXG4uZGlzcGxheS1iYWNrLW9ubHkge2Rpc3BsYXk6bm9uZTt9XG5cbi5wcm9qZXRzLWNvbnRhaW5lciB7ICAgICBcbiAgICB3aWR0aDo0NSU7IGJhY2tncm91bmQtY29sb3I6I2U4ZWJlYzsgIHotaW5kZXg6MTsgb3ZlcmZsb3c6YXV0bztcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KFwibW9iaWxlXCIpIHt3aWR0aDoxMDAlO31cbiAgICAuZW50ZXRlIHtcbiAgICAgICAgZGlzcGxheTpmbGV4OyBiYWNrZ3JvdW5kLWNvbG9yOiMzZjQyNDQ7IGNvbG9yOiNmZmY7IGZvbnQtc2l6ZToyMnB4OyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IGJvcmRlci1ib3R0b206c29saWQgMXB4ICNmZmY7IGJvcmRlci1ib3R0b206c29saWQgMjBweCAjZmZmO1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KFwibWVkaXVtXCIpIHtmb250LXNpemU6MTZweDt9XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoXCJtb2JpbGVcIikgey8qZGlzcGxheTpub25lOyovfVxuICAgICAgICBkaXYge1xuICAgICAgICAgICAgd2lkdGg6MjElOyBwYWRkaW5nOjhweCAxMHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDMpIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KFwibW9iaWxlXCIpIHt3aWR0aDozMCU7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICAgICAgICAgIHdpZHRoOjU4JTsgYm9yZGVyLWxlZnQ6c29saWQgMXB4ICNmZmY7IGJvcmRlci1yaWdodDpzb2xpZCAxcHggI2ZmZjtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KFwibW9iaWxlXCIpIHt3aWR0aDo0OSU7fVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm5vdC1hdmFpbGFibGUge2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50O31cblxuICAgIC5wcm9qZXQge1xuXG4gICAgICAgIGJvcmRlci1ib3R0b206c29saWQgMjBweCAjZmZmO1xuICAgICAgICAmOmxhc3QtY2hpbGQge2JvcmRlci1ib3R0b206bm9uZTt9XG5cbiAgICAgICAgLmFkcmVzc2Uge1xuICAgICAgICAgICAgcG9zaXRpb246cmVsYXRpdmU7IHBhZGRpbmc6OHB4IDEwcHg7IGJhY2tncm91bmQtY29sb3I6I2YzNmYyZTsgYm9yZGVyLWJvdHRvbTpzb2xpZCAxcHggI2ZmZjsgIGNvbG9yOiNmZmY7IGZvbnQtc2l6ZToxOHB4OyB0ZXh0LWFsaWduOmNlbnRlcjtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoXCJtZWRpdW1cIikge2ZvbnQtc2l6ZToxNnB4O31cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoXCJtb2JpbGVcIikge2ZvbnQtc2l6ZToxNXB4O31cbiAgICAgICAgICAgIC8vJjpob3ZlciB7YmFja2dyb3VuZC1jb2xvcjojM2Y0MjQ0O31cblxuICAgICAgICAgICAgLy8mOjphZnRlciB7ZGlzcGxheTpibG9jazsgY29udGVudDpcIlwiOyBkaXNwbGF5OmJsb2NrOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjlweDsgcmlnaHQ6OXB4OyB3aWR0aDoyMHB4OyBoZWlnaHQ6MjBweDsgYmFja2dyb3VuZDp1cmwoJ2Rvd24uc3ZnJykgdG9wIGxlZnQgbm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXNpemU6Y29udGFpbjsgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgLjJzIGVhc2UpO31cbiAgICAgICAgfVxuICAgICAgICAuYWRyZXNzZS1jb250ZW50IHtvdmVyZmxvdzpoaWRkZW47fVxuICAgICAgICAudHlwZXMge1xuICAgICAgICAgICAgLnR5cGUge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6OHB4IDEwcHg7IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgYm9yZGVyLWJvdHRvbTpzb2xpZCAxcHggI2ZmZjsgY29sb3I6IzM3M2EzYzsgZm9udC1zaXplOjE1cHg7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7XG4gICAgICAgICAgICAgICAgLy8mOmhvdmVyIHtiYWNrZ3JvdW5kLWNvbG9yOiMzZjQyNDQ7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmV0YWdlcyB7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6aGlkZGVuO1xuICAgICAgICAgICAgICAgIC5ldGFnZS1jb250YWluZXIge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOnN0cmV0Y2g7IGJvcmRlci1ib3R0b206c29saWQgMXB4ICNmZmY7IGNvbG9yOiMzZjQyNDQ7IGZvbnQtc2l6ZToxNXB4OyBjdXJzb3I6cG9pbnRlcjsgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgLjJzIGVhc2UpO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KFwibWVkaXVtXCIpIHtmb250LXNpemU6MTRweDt9XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoXCJtb2JpbGVcIikgey8qZmxleC13cmFwOndyYXA7Ki8gLypib3JkZXI6c29saWQgNXB4ICNmZmY7Ki99XG5cbiAgICAgICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KFwibW9iaWxlXCIpIHsvKmJvcmRlci10b3A6c29saWQgMTBweCAjZmZmOyovfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoXCJtb2JpbGVcIikgey8qYm9yZGVyLWJvdHRvbTpzb2xpZCAxMHB4ICNmZmY7Ki99XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5Om5vbmU7IGZvbnQtd2VpZ2h0OmJvbGQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAvL0BpbmNsdWRlIGJyZWFrcG9pbnQoXCJtb2JpbGVcIikge2Rpc3BsYXk6aW5saW5lLWJsb2NrO31cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5ldGFnZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgd2lkdGg6MjElOyBwYWRkaW5nOjEycHggMTBweDsgYm9yZGVyLXJpZ2h0OnNvbGlkIDFweCAjZmZmOyB0ZXh0LWFsaWduOmNlbnRlcjsgXG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KFwibW9iaWxlXCIpIHt3aWR0aDoyMSU7IC8qcGFkZGluZzoxMHB4IDEwcHggMDsqLyBwYWRkaW5nOjEwcHg7IGJvcmRlci1yaWdodDowOyBmb250LXdlaWdodDpib2xkO31cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAuZGltZW5zaW9ucyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OmZsZXg7IGp1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmQ7IGFsaWduLXNlbGY6c3RyZXRjaDsgd2lkdGg6NTglOyBib3JkZXItcmlnaHQ6c29saWQgMXB4ICNmZmY7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KFwibW9iaWxlXCIpIHt3aWR0aDo0OSU7IGJvcmRlci1yaWdodDowO31cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpdiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7ICB3aWR0aDoxMDAlOyBwYWRkaW5nOjEycHggMTBweDsgYm9yZGVyLXJpZ2h0OnNvbGlkIDFweCAjZmZmOyB0ZXh0LWFsaWduOmNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KFwibW9iaWxlXCIpIHtib3JkZXI6bm9uZTsgYm9yZGVyLWxlZnQ6IHNvbGlkIDFweCAjZmZmOyAvKm1hcmdpbjogMTBweCAxMHB4OyovIG1hcmdpbjowOyAvKnBhZGRpbmc6IDhweCAwOyovIHBhZGRpbmc6MTBweDt9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0Om5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoXCJtb2JpbGVcIikge2JvcmRlci1yaWdodDpzb2xpZCAxcHggI2ZmZjt9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICYubm9uLWRpc3BvIHtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMjU1LDI1NSwyNTUsIDApIDQxLjY3JSwgI2YzNmYyZSA0MS42NyUsICNmMzZmMmUgNTAlLCByZ2JhKDI1NSwyNTUsMjU1LCAwKSwgNTAlLCByZ2JhKDI1NSwyNTUsMjU1LCAwKSwgOTEuNjclLCAjZjM2ZjJlIDkxLjY3JSwgI2YzNmYyZSAxMDAlKTsgYmFja2dyb3VuZC1zaXplOiA4LjQ5cHggOC40OXB4O31cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAubGUtcHJpeCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgIHdpZHRoOjIxJTsgcGFkZGluZzo4cHggMTBweDsgdGV4dC1hbGlnbjpjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KFwibW9iaWxlXCIpIHt3aWR0aDozMCU7IC8qcGFkZGluZzowcHggMTBweCAxMHB4OyovIHBhZGRpbmc6MTBweDt9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7YmFja2dyb3VuZC1jb2xvcjojM2Y0MjQ0OyBjb2xvcjojZmZmO31cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5wcm9qZXQtcGxhbiB7XG4gICAgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IHBvc2l0aW9uOnJlbGF0aXZlOyB3aWR0aDo1NSU7IGhlaWdodDoxMDAlOyBvdmVyZmxvdzpoaWRkZW47XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChcIm1vYmlsZVwiKSB7d2lkdGg6MTAwJTt9XG4gICAgaW1nIHtwb3NpdGlvbjpyZWxhdGl2ZTsgbWF4LXdpZHRoOiAxMDAlOyBtYXgtaGVpZ2h0OjEwMCU7IHotaW5kZXg6IDIwMDsgb2JqZWN0LWZpdDogY29udGFpbjsgb2JqZWN0LXBvc2l0aW9uOiBjZW50ZXI7fVxuICAgIHN2ZyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB6LWluZGV4OiAyMDEgIWltcG9ydGFudDsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDUwJTsgbGVmdDo1MCU7IG1heC13aWR0aDogMTAwJTsgbWF4LWhlaWdodDoxMDAlOyBvYmplY3QtZml0OiBjb250YWluOyBvYmplY3QtcG9zaXRpb246IGNlbnRlcjsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgXG4gICAgICAgIHBvbHlnb24ge1xuICAgICAgICAgICAgY3Vyc29yOnBvaW50ZXI7XG4gICAgICAgICAgICAmLmxvdWVyIHtmaWxsOnJnYmEoMCwgMCwgMCwgMC41KTt9XG4gICAgICAgICAgICAmLmRpc3BvbmlibGUge2ZpbGw6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO31cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnByb2pldC1pbWFnZSB7XG4gICAgcG9zaXRpb246cmVsYXRpdmU7IHdpZHRoOjU1JTsgaGVpZ2h0OjEwMCU7IG92ZXJmbG93OmhpZGRlbjsgei1pbmRleDowO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoXCJtb2JpbGVcIikge3dpZHRoOjEwMCU7IGhlaWdodDozMDBweDt9XG4gICAgZGl2IHtcbiAgICAgICAgcG9zaXRpb246YWJzb2x1dGU7IHRvcDowcHg7IGxlZnQ6MHB4OyBib3R0b206MHB4OyByaWdodDowcHg7ICBiYWNrZ3JvdW5kLWNvbG9yOiNlOGViZWM7IGJhY2tncm91bmQtc2l6ZTpjb250YWluOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyIGNlbnRlcjsgYm9yZGVyLWxlZnQ6c29saWQgMXB4ICNmZmY7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoXCJtb2JpbGVcIikge3RvcDoxMHB4OyBsZWZ0OjEwcHg7IGJvdHRvbToxMHB4OyByaWdodDoxMHB4O31cbiAgICB9XG59XG5cblxuXG4uZ3JvdXA6YWZ0ZXIge2NvbnRlbnQ6IFwiXCI7IGRpc3BsYXk6IHRhYmxlOyBjbGVhcjogYm90aDt9XG5cbi5zZWxlY3RldXItZmlsdHJlLW1vZHVsZSB7XG4gICAgZm9udC1mYW1pbHk6ICdNb250c2VycmF0Jywgc2Fucy1zZXJpZjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiA0NSU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGNvbnRhaW5lci10eXBlOiBpbmxpbmUtc2l6ZTtcbiAgICBjb250YWluZXItbmFtZTogZmlsdHJlLW1vZHVsZTtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KFwibW9iaWxlXCIpIHsgd2lkdGg6IDEwMCU7IH1cbiAgICAqLCAqOjpiZWZvcmUsICo6OmFmdGVyIHsgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxufVxuXG4uZmlsdHJlLXNyLW9ubHkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgd2lkdGg6IDFweDsgaGVpZ2h0OiAxcHg7IHBhZGRpbmc6IDA7IG1hcmdpbjogLTFweDsgb3ZlcmZsb3c6IGhpZGRlbjsgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgYm9yZGVyOiAwO1xufVxuXG4uZmlsdHJlLWJhciB7XG4gICAgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxNHB4OyBwYWRkaW5nOiAxNnB4IDE4cHg7IGJhY2tncm91bmQ6ICNmZmY7IGNvbG9yOiAjM2Y0MjQ0OyBib3JkZXItcmFkaXVzOiA4cHg7IGJvcmRlcjogc29saWQgMXB4ICNlMGUwZTA7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7IGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXG4gICAgbGFiZWwgeyBkaXNwbGF5OiBibG9jazsgZm9udC1zaXplOiAxMXB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBtYXJnaW4tYm90dG9tOiA2cHg7IGNvbG9yOiAjNmE2ZTcxOyBmb250LXdlaWdodDogNjAwOyBsZXR0ZXItc3BhY2luZzogMC4wMmVtOyB9XG4gICAgLyogRmzDqGNoZSBjdXN0b20gb3JhbmdlIChsZSB0aMOobWUgLyBXZWJLaXQgcGV1dmVudCBsYWlzc2VyIHVuZSBmbMOoY2hlIHN5c3TDqG1lIHZlcnRlIHNpIGFwcGVhcmFuY2UgKyBiYWNrZ3JvdW5kIG5lIHNvbnQgcGFzIGFzc2V6IGZvcnRzKSAqL1xuICAgICRmaWx0cmUtc2VsZWN0LWFycm93OiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB3aWR0aCUzRCUyMjEyJTIyJTIwaGVpZ2h0JTNEJTIyMTIlMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAyNCUyMDI0JTIyJTIwZmlsbCUzRCUyMm5vbmUlMjIlM0UlM0NwYXRoJTIwc3Ryb2tlJTNEJTIyJTIzZjM2ZjJlJTIyJTIwc3Ryb2tlLXdpZHRoJTNEJTIyMi4yNSUyMiUyMHN0cm9rZS1saW5lY2FwJTNEJTIycm91bmQlMjIlMjBzdHJva2UtbGluZWpvaW4lM0QlMjJyb3VuZCUyMiUyMGQlM0QlMjJNNiUyMDlsNiUyMDYlMjA2LTYlMjIlMkYlM0UlM0MlMkZzdmclM0VcIik7XG5cbiAgICBzZWxlY3Qge1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIHBhZGRpbmc6IDhweCAycmVtIDhweCAxMHB4O1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGJvcmRlcjogc29saWQgMXB4ICNjOGM4Yzg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgY29sb3I6ICMzZjQyNDQ7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGNvbG9yLXNjaGVtZTogb25seSBsaWdodDtcbiAgICAgICAgYWNjZW50LWNvbG9yOiAjZjM2ZjJlO1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogJGZpbHRyZS1zZWxlY3QtYXJyb3c7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDAuNnJlbSBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTJweCAxMnB4O1xuICAgICAgICAmOjotbXMtZXhwYW5kIHsgZGlzcGxheTogbm9uZTsgfVxuICAgIH1cbn1cblxuLyogTcOqbWUgZmzDqGNoZSBhdmVjIHByaW9yaXTDqSBzdXIgZOKAmcOpdmVudHVlbHMgYHNlbGVjdCB7IGJhY2tncm91bmQ6IOKApiB9YCBkdSB0aMOobWUgKi9cbi5zZWxlY3RldXItZmlsdHJlLW1vZHVsZSAuZmlsdHJlLWJhciBzZWxlY3QsXG4uc2VsZWN0ZXVyLWZpbHRyZS1tb2R1bGUgLmZpbHRyZS1yb3ctLXNlbGVjdHMgc2VsZWN0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHdpZHRoJTNEJTIyMTIlMjIlMjBoZWlnaHQlM0QlMjIxMiUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDI0JTIwMjQlMjIlMjBmaWxsJTNEJTIybm9uZSUyMiUzRSUzQ3BhdGglMjBzdHJva2UlM0QlMjIlMjNmMzZmMmUlMjIlMjBzdHJva2Utd2lkdGglM0QlMjIyLjI1JTIyJTIwc3Ryb2tlLWxpbmVjYXAlM0QlMjJyb3VuZCUyMiUyMHN0cm9rZS1saW5lam9pbiUzRCUyMnJvdW5kJTIyJTIwZCUzRCUyMk02JTIwOWw2JTIwNiUyMDYtNiUyMiUyRiUzRSUzQyUyRnN2ZyUzRVwiKSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAwLjZyZW0gY2VudGVyICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxMnB4IDEycHggIWltcG9ydGFudDtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmUgIWltcG9ydGFudDtcbiAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmUgIWltcG9ydGFudDtcbiAgICBhcHBlYXJhbmNlOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5maWx0cmUtcm93LS1zZWxlY3RzIHtcbiAgICBkaXNwbGF5OiBmbGV4OyBmbGV4LXdyYXA6IG5vd3JhcDsgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyBnYXA6IDEwcHggMTJweDsgd2lkdGg6IDEwMCU7XG4gICAgLmZpbHRyZS1maWVsZCB7XG4gICAgICAgIGZsZXg6IDEgMSAwOyBtaW4td2lkdGg6IDA7IG1heC13aWR0aDogMTAwJTtcbiAgICB9XG4gICAgc2VsZWN0IHsgd2lkdGg6IDEwMCU7IG1pbi13aWR0aDogMCAhaW1wb3J0YW50OyBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KFwibW9iaWxlXCIpIHtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAuZmlsdHJlLWZpZWxkIHsgZmxleDogMSAxIGNhbGMoNTAlIC0gNnB4KTsgbWluLXdpZHRoOiAwOyB9XG4gICAgfVxufVxuXG5AY29udGFpbmVyIGZpbHRyZS1tb2R1bGUgKG1heC13aWR0aDogNTYwcHgpIHtcbiAgICAuZmlsdHJlLXJvdy0tc2VsZWN0cyB7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgLmZpbHRyZS1maWVsZCB7IGZsZXg6IDEgMSBjYWxjKDUwJSAtIDZweCk7IG1pbi13aWR0aDogMDsgfVxuICAgIH1cbn1cblxuLmZpbHRyZS1yb3ctLWRpc3BvLWFjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7IGZsZXgtd3JhcDogbm93cmFwOyBhbGlnbi1pdGVtczogZmxleC1lbmQ7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgZ2FwOiAxMHB4IDEycHg7IG1pbi13aWR0aDogMDtcbiAgICAuZmlsdHJlLWZpZWxkLmZpbHRyZS1kaXNwbyB7IGZsZXg6IDEgMSBhdXRvOyBtaW4td2lkdGg6IDA7IHBhZGRpbmctYm90dG9tOiAwcHg7IH1cbiAgICAuZmlsdHJlLWZpZWxkLmZpbHRyZS1hY3Rpb25zIHsgZmxleDogMCAwIGF1dG87IG1hcmdpbi1sZWZ0OiAwOyB3aWR0aDogYXV0bzsgbWF4LXdpZHRoOiBub25lOyB9XG59XG5cbi5maWx0cmUtcm93LS1wcmljZS1hY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4OyBmbGV4LXdyYXA6IG5vd3JhcDsgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyBnYXA6IDEwcHggMTJweDsgd2lkdGg6IDEwMCU7XG4gICAgLmZpbHRyZS1maWVsZC5maWx0cmUtcHJpeCB7IGZsZXg6IDYgMSAwJTsgbWluLXdpZHRoOiAwOyB9XG4gICAgLmZpbHRyZS1yb3ctLWRpc3BvLWFjdGlvbnMgeyBmbGV4OiAxIDEgYXV0bzsgbWluLXdpZHRoOiAwOyBhbGlnbi1pdGVtczpjZW50ZXI7fVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoXCJtb2JpbGVcIikge1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgICAgICAuZmlsdHJlLWZpZWxkLmZpbHRyZS1wcml4IHsgbWluLXdpZHRoOiAwOyBmbGV4OiAxIDEgYXV0bzsgfVxuICAgICAgICAuZmlsdHJlLXJvdy0tZGlzcG8tYWN0aW9ucyB7IHdpZHRoOiAxMDAlOyBmbGV4LXdyYXA6IG5vd3JhcDsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4gICAgfVxufVxuXG4vKiDiiaQxMjE1cHggOiBzdGF0aW9ubmVtZW50ICsgcmFuZ2UgcHJpeCBzdXIgdW5lIGxpZ25lIDUwLzUwIDsgbGlnbmUgZGlzcG8gOiB0b2dnbGUgc3VyIDLDlzFmciwgYm91dG9ucyBlbiBjb2xvbm5lIGF1dG8gKGxhcmdldXIgaW50cmluc8OocXVlKSAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDEyMTVweCkge1xuICAgIC5maWx0cmUtYmFyLS1oYXMtcGFya2luZy5maWx0cmUtYmFyLFxuICAgIC5maWx0cmUtYmFyLS1uby1wYXJraW5nLmZpbHRyZS1iYXIge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpIG1pbm1heCgwLCAxZnIpIGF1dG87XG4gICAgICAgIGNvbHVtbi1nYXA6IDEycHg7XG4gICAgICAgIHJvdy1nYXA6IDE0cHg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBlbmQ7XG4gICAgfVxuICAgIC5maWx0cmUtYmFyLS1oYXMtcGFya2luZyAuZmlsdHJlLXJvdy0tc2VsZWN0cyxcbiAgICAuZmlsdHJlLWJhci0taGFzLXBhcmtpbmcgLmZpbHRyZS1yb3ctLXByaWNlLWFjdGlvbnMsXG4gICAgLmZpbHRyZS1iYXItLW5vLXBhcmtpbmcgLmZpbHRyZS1yb3ctLXNlbGVjdHMsXG4gICAgLmZpbHRyZS1iYXItLW5vLXBhcmtpbmcgLmZpbHRyZS1yb3ctLXByaWNlLWFjdGlvbnMge1xuICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcbiAgICB9XG4gICAgLmZpbHRyZS1iYXItLWhhcy1wYXJraW5nIC5maWx0cmUtZmllbGQuZmlsdHJlLWRpbWVuc2lvbiB7IGdyaWQtY29sdW1uOiAxOyBncmlkLXJvdzogMTsgfVxuICAgIC5maWx0cmUtYmFyLS1oYXMtcGFya2luZyAuZmlsdHJlLWZpZWxkLmZpbHRyZS10eXBlLW1ldWJsZSB7IGdyaWQtY29sdW1uOiAyOyBncmlkLXJvdzogMTsgfVxuICAgIC5maWx0cmUtYmFyLS1oYXMtcGFya2luZyAuZmlsdHJlLWZpZWxkLmZpbHRyZS1wYXJraW5nIHsgZ3JpZC1jb2x1bW46IDE7IGdyaWQtcm93OiAyOyBtaW4td2lkdGg6IDA7IH1cbiAgICAuZmlsdHJlLWJhci0taGFzLXBhcmtpbmcgLmZpbHRyZS1maWVsZC5maWx0cmUtcHJpeCB7IGdyaWQtY29sdW1uOiAyOyBncmlkLXJvdzogMjsgbWluLXdpZHRoOiAwOyB3aWR0aDogMTAwJTsgfVxuICAgIC5maWx0cmUtYmFyLS1oYXMtcGFya2luZyAuZmlsdHJlLXJvdy0tZGlzcG8tYWN0aW9ucyB7IGdyaWQtY29sdW1uOiAxIC8gLTE7IGdyaWQtcm93OiAzOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogZmxleC1lbmQ7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgZ2FwOiAxMHB4IDEycHg7IG1pbi13aWR0aDogMDsgZmxleC13cmFwOiBub3dyYXA7IH1cbiAgICAuZmlsdHJlLWJhci0tbm8tcGFya2luZyAuZmlsdHJlLWZpZWxkLmZpbHRyZS1kaW1lbnNpb24geyBncmlkLWNvbHVtbjogMTsgZ3JpZC1yb3c6IDE7IH1cbiAgICAuZmlsdHJlLWJhci0tbm8tcGFya2luZyAuZmlsdHJlLWZpZWxkLmZpbHRyZS10eXBlLW1ldWJsZSB7IGdyaWQtY29sdW1uOiAyOyBncmlkLXJvdzogMTsgfVxuICAgIC5maWx0cmUtYmFyLS1uby1wYXJraW5nIC5maWx0cmUtZmllbGQuZmlsdHJlLXByaXggeyBncmlkLWNvbHVtbjogMSAvIDM7IGdyaWQtcm93OiAyOyBtaW4td2lkdGg6IDA7IH1cbiAgICAuZmlsdHJlLWJhci0tbm8tcGFya2luZyAuZmlsdHJlLXJvdy0tZGlzcG8tYWN0aW9ucyB7IGdyaWQtY29sdW1uOiAxIC8gLTE7IGdyaWQtcm93OiAzOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogZmxleC1lbmQ7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgZ2FwOiAxMHB4IDEycHg7IG1pbi13aWR0aDogMDsgZmxleC13cmFwOiBub3dyYXA7IH1cbn1cblxuLyogTW9iaWxlIDogMiBjb2xvbm5lcyA1MC81MCBzZXVsZW1lbnQg4oCUIHBhcyBkZSAzZSBjb2xvbm5lIMKrIGF1dG8gwrsgcXVpIHLDqXRyw6ljaXQgbGVzIHNlbGVjdHMgKHZvaXIgZ3JpbGxlIDEyMTVweCkgKi9cbkBpbmNsdWRlIGJyZWFrcG9pbnQoXCJtb2JpbGVcIikge1xuICAgIC5maWx0cmUtYmFyLS1oYXMtcGFya2luZy5maWx0cmUtYmFyLFxuICAgIC5maWx0cmUtYmFyLS1uby1wYXJraW5nLmZpbHRyZS1iYXIge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7XG4gICAgfVxuICAgIC5maWx0cmUtYmFyLS1oYXMtcGFya2luZyAuZmlsdHJlLWZpZWxkLmZpbHRyZS1kaW1lbnNpb24geyBncmlkLWNvbHVtbjogMTsgZ3JpZC1yb3c6IDE7IH1cbiAgICAuZmlsdHJlLWJhci0taGFzLXBhcmtpbmcgLmZpbHRyZS1maWVsZC5maWx0cmUtdHlwZS1tZXVibGUgeyBncmlkLWNvbHVtbjogMjsgZ3JpZC1yb3c6IDE7IH1cbiAgICAuZmlsdHJlLWJhci0taGFzLXBhcmtpbmcgLmZpbHRyZS1maWVsZC5maWx0cmUtcGFya2luZyB7IGdyaWQtY29sdW1uOiAxIC8gLTE7IGdyaWQtcm93OiAyOyB9XG4gICAgLmZpbHRyZS1iYXItLWhhcy1wYXJraW5nIC5maWx0cmUtZmllbGQuZmlsdHJlLXByaXggeyBncmlkLWNvbHVtbjogMSAvIC0xOyBncmlkLXJvdzogMzsgd2lkdGg6IDEwMCU7IG1pbi13aWR0aDogMDsgfVxuICAgIC5maWx0cmUtYmFyLS1oYXMtcGFya2luZyAuZmlsdHJlLXJvdy0tZGlzcG8tYWN0aW9ucyB7IGdyaWQtY29sdW1uOiAxIC8gLTE7IGdyaWQtcm93OiA0OyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogZmxleC1lbmQ7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgZ2FwOiAxMHB4IDEycHg7IG1pbi13aWR0aDogMDsgZmxleC13cmFwOiBub3dyYXA7IH1cbiAgICAuZmlsdHJlLWJhci0tbm8tcGFya2luZyAuZmlsdHJlLWZpZWxkLmZpbHRyZS1kaW1lbnNpb24geyBncmlkLWNvbHVtbjogMTsgZ3JpZC1yb3c6IDE7IH1cbiAgICAuZmlsdHJlLWJhci0tbm8tcGFya2luZyAuZmlsdHJlLWZpZWxkLmZpbHRyZS10eXBlLW1ldWJsZSB7IGdyaWQtY29sdW1uOiAyOyBncmlkLXJvdzogMTsgfVxuICAgIC5maWx0cmUtYmFyLS1uby1wYXJraW5nIC5maWx0cmUtZmllbGQuZmlsdHJlLXByaXggeyBncmlkLWNvbHVtbjogMSAvIC0xOyBncmlkLXJvdzogMjsgbWluLXdpZHRoOiAwOyB9XG4gICAgLmZpbHRyZS1iYXItLW5vLXBhcmtpbmcgLmZpbHRyZS1yb3ctLWRpc3BvLWFjdGlvbnMgeyBncmlkLWNvbHVtbjogMSAvIC0xOyBncmlkLXJvdzogMzsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IGdhcDogMTBweCAxMnB4OyBtaW4td2lkdGg6IDA7IGZsZXgtd3JhcDogbm93cmFwOyB9XG59XG5cbi5maWx0cmUtZmllbGQuZmlsdHJlLXByaXgge1xuICAgIGZsZXg6IDEgMSAwJTsgbWluLXdpZHRoOiAwO1xuICAgIC5maWx0cmUtcHJpeC13cmFwIHsgd2lkdGg6IDEwMCU7IH1cbiAgICAuZmlsdHJlLXByaXgtbGFiZWwgeyBkaXNwbGF5OiBibG9jazsgZm9udC1zaXplOiAxMXB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBtYXJnaW46IDAgMCA2cHg7IGNvbG9yOiAjNmE2ZTcxOyBmb250LXdlaWdodDogNjAwOyB0ZXh0LWFsaWduOiBsZWZ0OyB3aWR0aDogMTAwJTsgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTsgfVxuICAgIC5maWx0cmUtcHJpeC1zbGlkZXItcm93IHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxMHB4OyB3aWR0aDogMTAwJTsgfVxuICAgIC5wcml4LWJvcm5lLW1pbiwgLnByaXgtYm9ybmUtbWF4IHsgZmxleDogMCAwIGF1dG87IGZvbnQtc2l6ZTogMTJweDsgY29sb3I6ICMzZjQyNDQ7IGxpbmUtaGVpZ2h0OiAxOyBtYXgtd2lkdGg6IDUuNXJlbTsgfVxuICAgIC5wcml4LWJvcm5lLW1pbiB7IHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgICAucHJpeC1ib3JuZS1tYXggeyB0ZXh0LWFsaWduOiByaWdodDsgfVxufVxuXG4uZmlsdHJlLWZpZWxkLmZpbHRyZS1kaXNwbyB7XG4gICAgZmxleDogMCAwIGF1dG87IG1pbi13aWR0aDogMDtcbiAgICAuZmlsdHJlLXN3aXRjaC1sYWJlbCB7IHdoaXRlLXNwYWNlOiBub3dyYXA7IG1hcmdpbi1ib3R0b206IDBweDt9XG59XG5cbi5maWx0cmUtZmllbGQuZmlsdHJlLWFjdGlvbnMge1xuICAgIGZsZXg6IDAgMCBhdXRvOyBkaXNwbGF5OiBmbGV4OyBmbGV4LXdyYXA6IG5vd3JhcDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxMHB4OyBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KFwibW9iaWxlXCIpIHsgbWFyZ2luLWxlZnQ6IDA7IGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgZmxleC13cmFwOiBub3dyYXA7IH1cbn1cblxuLmZpbHRyZS1kb3VibGUtcmFuZ2Uge1xuICAgIC0tcmFuZ2UtbWluLXBjdDogMCU7XG4gICAgLS1yYW5nZS1tYXgtcGN0OiAxMDAlO1xuICAgIGNvbG9yLXNjaGVtZTogbGlnaHQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyBmbGV4OiAxIDEgYXV0bzsgbWluLXdpZHRoOiA4MHB4OyBoZWlnaHQ6IDMycHg7IG1hcmdpbjogMDtcbiAgICBpbnB1dFt0eXBlPVwicmFuZ2VcIl06OmJlZm9yZSxcbiAgICBpbnB1dFt0eXBlPVwicmFuZ2VcIl06OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuICAgICAgICBpbnNldDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgICBpbnB1dFt0eXBlPVwicmFuZ2VcIl06aG92ZXI6OmJlZm9yZSxcbiAgICBpbnB1dFt0eXBlPVwicmFuZ2VcIl06aG92ZXI6OmFmdGVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gICAgaW5wdXRbdHlwZT1cInJhbmdlXCJdIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwOyB3aWR0aDogMTAwJTsgaGVpZ2h0OiAzMnB4OyBtYXJnaW46IDA7IHBhZGRpbmc6IDA7IHRvcDogMDsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGN1cnNvcjogcG9pbnRlcjsgcG9pbnRlci1ldmVudHM6IG5vbmU7IC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgYXBwZWFyYW5jZTogbm9uZTsgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgICBhY2NlbnQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICAmOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFjayxcbiAgICAgICAgJjpob3Zlcjo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2ssXG4gICAgICAgICY6YWN0aXZlOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFjayxcbiAgICAgICAgJjpmb2N1czo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2sge1xuICAgICAgICAgICAgaGVpZ2h0OiA4cHg7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7IGJvcmRlcjogbm9uZTsgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpbnB1dC5yYW5nZS1wcml4LW1pbiB7IHotaW5kZXg6IDI7IH1cbiAgICBpbnB1dC5yYW5nZS1wcml4LW1heCB7IHotaW5kZXg6IDM7IH1cbiAgICBpbnB1dFt0eXBlPVwicmFuZ2VcIl06Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyBhcHBlYXJhbmNlOiBub25lOyBwb2ludGVyLWV2ZW50czogYXV0bzsgd2lkdGg6IDE4cHg7IGhlaWdodDogMThweDsgbWFyZ2luLXRvcDogLTVweDsgYm9yZGVyLXJhZGl1czogNTAlOyBiYWNrZ3JvdW5kOiAjZjM2ZjJlOyBib3JkZXI6IHNvbGlkIDJweCAjZmZmOyBib3gtc2hhZG93OiAwIDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgICB9XG4gICAgaW5wdXRbdHlwZT1cInJhbmdlXCJdOjotd2Via2l0LXNsaWRlci10aHVtYjpob3ZlcixcbiAgICBpbnB1dFt0eXBlPVwicmFuZ2VcIl06Oi13ZWJraXQtc2xpZGVyLXRodW1iOmFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmMzZmMmU7IGJvcmRlcjogc29saWQgMnB4ICNmZmY7IGJveC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKDAsIDAsIDAsIDAuMjUpOyBvdXRsaW5lOiBub25lOyBmaWx0ZXI6IG5vbmU7XG4gICAgfVxuICAgIGlucHV0W3R5cGU9XCJyYW5nZVwiXTo6LW1vei1yYW5nZS10cmFjayB7IGhlaWdodDogOHB4OyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OyBib3JkZXI6IG5vbmU7IGJveC1zaGFkb3c6IG5vbmU7IH1cbiAgICBpbnB1dFt0eXBlPVwicmFuZ2VcIl06Oi1tb3otcmFuZ2UtcHJvZ3Jlc3MgeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OyB9XG4gICAgaW5wdXRbdHlwZT1cInJhbmdlXCJdOjotbW96LXJhbmdlLXRodW1iIHtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87IHdpZHRoOiAxOHB4OyBoZWlnaHQ6IDE4cHg7IGJvcmRlci1yYWRpdXM6IDUwJTsgYmFja2dyb3VuZDogI2YzNmYyZTsgYm9yZGVyOiBzb2xpZCAycHggI2ZmZjsgYm94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gICAgfVxuICAgIGlucHV0W3R5cGU9XCJyYW5nZVwiXTo6LW1vei1yYW5nZS10aHVtYjpob3ZlcixcbiAgICBpbnB1dFt0eXBlPVwicmFuZ2VcIl06Oi1tb3otcmFuZ2UtdGh1bWI6YWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2YzNmYyZTsgYm9yZGVyOiBzb2xpZCAycHggI2ZmZjsgYm94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoMCwgMCwgMCwgMC4yNSk7IG91dGxpbmU6IG5vbmU7IGZpbHRlcjogbm9uZTtcbiAgICB9XG4gICAgaW5wdXRbdHlwZT1cInJhbmdlXCJdOmZvY3VzLXZpc2libGU6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHsgb3V0bGluZTogMnB4IHNvbGlkICNmZmY7IG91dGxpbmUtb2Zmc2V0OiAycHg7IH1cbiAgICBpbnB1dFt0eXBlPVwicmFuZ2VcIl06Zm9jdXMtdmlzaWJsZTo6LW1vei1yYW5nZS10aHVtYiB7IG91dGxpbmU6IDJweCBzb2xpZCAjZmZmOyBvdXRsaW5lLW9mZnNldDogMnB4OyB9XG59XG5cbi5maWx0cmUtcmFuZ2UtdHJhY2sge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMDsgcmlnaHQ6IDA7IHRvcDogNTAlOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IGhlaWdodDogMTBweDsgYm9yZGVyLXJhZGl1czogOTk5cHg7IGJvcmRlcjogc29saWQgMXB4ICNiOGI4Yjg7IGJhY2tncm91bmQ6ICNlY2VjZWM7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IHBvaW50ZXItZXZlbnRzOiBub25lOyB6LWluZGV4OiAwO1xufVxuXG4uZmlsdHJlLXJhbmdlLWZpbGwge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiA1MCU7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgaGVpZ2h0OiAxMHB4OyBib3JkZXItcmFkaXVzOiA5OTlweDsgYmFja2dyb3VuZDogI2YzNmYyZTsgcG9pbnRlci1ldmVudHM6IG5vbmU7IHotaW5kZXg6IDE7IGxlZnQ6IHZhcigtLXJhbmdlLW1pbi1wY3QpOyByaWdodDogY2FsYygxMDAlIC0gdmFyKC0tcmFuZ2UtbWF4LXBjdCkpOyBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4uZmlsdHJlLXN3aXRjaC1sYWJlbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTBweDsgY3Vyc29yOiBwb2ludGVyOyBmb250LXNpemU6IDEzcHg7IHVzZXItc2VsZWN0OiBub25lOyBjb2xvcjogIzNmNDI0NDsgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAuZmlsdHJlLWRpc3BvLXRleHQgeyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxufVxuXG4uc3dpdGNoIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDQ0cHg7IGhlaWdodDogMjRweDtcbiAgICBpbnB1dCB7IG9wYWNpdHk6IDA7IHdpZHRoOiAwOyBoZWlnaHQ6IDA7IH1cbiAgICAuc2xpZGVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyBpbnNldDogMDsgYmFja2dyb3VuZDogIzU1NTsgYm9yZGVyLXJhZGl1czogMjRweDsgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzO1xuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyBjb250ZW50OiBcIlwiOyBoZWlnaHQ6IDE4cHg7IHdpZHRoOiAxOHB4OyBsZWZ0OiAzcHg7IGJvdHRvbTogM3B4OyBiYWNrZ3JvdW5kOiAjZmZmOyBib3JkZXItcmFkaXVzOiA1MCU7IHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlucHV0OmNoZWNrZWQgKyAuc2xpZGVyIHsgYmFja2dyb3VuZDogIzJlY2M3MTsgfVxuICAgIGlucHV0OmNoZWNrZWQgKyAuc2xpZGVyOjpiZWZvcmUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjBweCk7IH1cbiAgICBpbnB1dDpmb2N1cy12aXNpYmxlICsgLnNsaWRlciB7IG91dGxpbmU6IDJweCBzb2xpZCAjZmZmOyBvdXRsaW5lLW9mZnNldDogMnB4OyB9XG59XG5cbi5maWx0cmUtdm9pci1yZXN1bHRhdHMge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgZ2FwOiA2cHg7IHBhZGRpbmc6IDEwcHggMTJweDsgZm9udC1zaXplOiAxNHB4OyBmb250LXdlaWdodDogNjAwOyBiYWNrZ3JvdW5kOiAjZjM2ZjJlOyBjb2xvcjogI2ZmZjsgYm9yZGVyOiBub25lOyBib3JkZXItcmFkaXVzOiA2cHg7IGN1cnNvcjogcG9pbnRlcjsgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgLmZpbHRyZS1pY29uLXNlYXJjaCB7IGZsZXgtc2hyaW5rOiAwOyBvcGFjaXR5OiAwLjk1OyB9XG4gICAgLmZpbHRyZS12b2lyLXRleHQgeyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG4gICAgLmZpbHRyZS1jb3VudCB7IGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7IH1cbiAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogI2UwNWQyMjsgY29sb3I6ICNmZmY7IH1cbiAgICAmOmZvY3VzLXZpc2libGUgeyBvdXRsaW5lOiAycHggc29saWQgIzNmNDI0NDsgb3V0bGluZS1vZmZzZXQ6IDJweDsgfVxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoXCJtb2JpbGVcIikge1xuICAgICAgICAuZmlsdHJlLXZvaXItdGV4dCB7IGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgICAgZ2FwOiAwO1xuICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgIH1cbn1cblxuLmZpbHRyZS1yZXNldCB7XG4gICAgcGFkZGluZzogMTBweCAxNHB4OyBmb250LXNpemU6IDEzcHg7IGJhY2tncm91bmQ6ICNmMGYwZjA7IGNvbG9yOiAjM2Y0MjQ0OyBib3JkZXI6IHNvbGlkIDFweCAjZDBkMGQwOyBib3JkZXItcmFkaXVzOiA2cHg7IGN1cnNvcjogcG9pbnRlcjsgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgJjpob3ZlciB7IGJhY2tncm91bmQ6ICNlNGU0ZTQ7IH1cbn1cblxuLmZpbHRyZS1yZXNldC0taWNvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOyB3aWR0aDogMzhweDsgaGVpZ2h0OiAzOHB4OyBtaW4td2lkdGg6IDM4cHg7IHBhZGRpbmc6IDA7IGJvcmRlci1yYWRpdXM6IDZweDsgYmFja2dyb3VuZDogI2YwZjBmMDsgYm9yZGVyOiBzb2xpZCAxcHggI2QwZDBkMDsgY29sb3I6ICM1YzVjNWM7XG4gICAgc3ZnIHsgZGlzcGxheTogYmxvY2s7IH1cbiAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogI2U4ZThlODsgY29sb3I6ICMzZjQyNDQ7IH1cbiAgICAmOmZvY3VzLXZpc2libGUgeyBvdXRsaW5lOiAycHggc29saWQgI2YzNmYyZTsgb3V0bGluZS1vZmZzZXQ6IDJweDsgfVxufVxuXG4uZmlsdHJlLW92ZXJsYXlbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4uZmlsdHJlLW92ZXJsYXkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiA4cHg7IGxlZnQ6IDhweDsgd2lkdGg6IGNhbGMoMjIuNSUgLSAxNnB4KTsgei1pbmRleDogMTIwMDsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgYWxpZ24taXRlbXM6IHN0cmV0Y2g7IGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgcGFkZGluZzogMDsgYm94LXNpemluZzogYm9yZGVyLWJveDsgcG9pbnRlci1ldmVudHM6IGF1dG87IG1pbi1oZWlnaHQ6IDA7XG4gICAgbWF4LWhlaWdodDogbWluKGNhbGMoMTAwJSAtIDE2cHgpLCA2MGR2aCk7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChcIm1vYmlsZVwiKSB7XG4gICAgICAgIGxlZnQ6IDhweDtcbiAgICAgICAgd2lkdGg6IGNhbGMoNTAlIC0gMTZweCk7XG4gICAgICAgIHRvcDogOHB4O1xuICAgICAgICBtYXgtaGVpZ2h0OiBtaW4oY2FsYygxMDAlIC0gMTZweCksIDgwZHZoKTtcbiAgICB9XG59XG5cbi5maWx0cmUtb3ZlcmxheS1iYWNrZHJvcCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlOyBpbnNldDogMDsgei1pbmRleDogMDtcbn1cblxuLmZpbHRyZS1vdmVybGF5LXBhbmVsIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5kZXg6IDE7IHdpZHRoOiAxMDAlOyBtYXgtd2lkdGg6IDEwMCU7IG1pbi1oZWlnaHQ6IDA7IGZsZXg6IDEgMSBhdXRvOyBtYXJnaW46IDA7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGJhY2tncm91bmQ6IHJnYmEoI2ZmZiwgMC45NSk7IGJvcmRlcjogc29saWQgMXB4ICMyMjI7IGJvcmRlci1yYWRpdXM6IDhweDsgYm94LXNoYWRvdzogMCA0cHggMjRweCByZ2JhKDAsIDAsIDAsIDAuMTUpOyBib3gtc2l6aW5nOiBib3JkZXItYm94OyBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZmlsdHJlLW92ZXJsYXkgPiAuZmlsdHJlLW92ZXJsYXktY2xvc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAtNHB4OyByaWdodDogLThweDsgei1pbmRleDogMzsgd2lkdGg6IDM4cHg7IGhlaWdodDogMzhweDsgYm9yZGVyLXJhZGl1czogNnB4OyBmb250LXNpemU6IDI4cHg7IGxpbmUtaGVpZ2h0OiAxOyBib3JkZXI6IG5vbmU7IGJhY2tncm91bmQ6ICNmMzZmMmU7IGNvbG9yOiAjZmZmOyBjdXJzb3I6IHBvaW50ZXI7IGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gICAgJjpob3ZlciB7IGJhY2tncm91bmQ6ICNlMDVkMjI7IGNvbG9yOiAjZmZmOyB9XG59XG5cbi5maWx0cmUtb3ZlcmxheS1yZXN1bHRzIHtcbiAgICBmbGV4OiAxIDEgYXV0bzsgbWluLWhlaWdodDogMDsgcGFkZGluZzogMzhweCAwOyBvdmVyZmxvdy14OiBoaWRkZW47IG92ZXJmbG93LXk6IGF1dG87IG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47IC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDsgdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgN3B4IDdweDtcbn1cblxuLmZpbHRyZS1vdmVybGF5LWVtcHR5IHtcbiAgICBwYWRkaW5nOiAyNHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGNvbG9yOiAjM2Y0MjQ0OyBmb250LXNpemU6IDE2cHg7XG59XG5cbi5maWx0cmUtb3ZlcmxheS1ncm91cCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgICAmOmxhc3QtY2hpbGQgeyBtYXJnaW4tYm90dG9tOiAwOyB9XG59XG5cbi5maWx0cmUtb3ZlcmxheS10YWJsZSB7XG4gICAgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAwOyBib3JkZXI6IHNvbGlkIDFweCAjZmZmO1xufVxuXG4uZmlsdHJlLW92ZXJsYXktdGFibGUgLmZpbHRyZS1yZXN1bHQtcm93IHtcbiAgICBkaXNwbGF5OiBncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDAuNWZyIDEuNGZyIDEuM2ZyIDAuOWZyIDAuOWZyIDFmcjsgZ2FwOiAwOyBmb250LXNpemU6IDE0cHg7XG4gICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICNlOGU4ZTg7IGN1cnNvcjogcG9pbnRlcjsgY29sb3I6ICMzZjQyNDQ7IGxpbmUtaGVpZ2h0OjEuMmVtICFpbXBvcnRhbnQ7XG4gICAgc3BhbiB7IHBhZGRpbmc6IDEwcHggNXB4OyBib3JkZXItcmlnaHQ6IHNvbGlkIDFweCAjZWVlOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgdGV4dC1hbGlnbjogY2VudGVyOyAmOmxhc3QtY2hpbGQgeyBib3JkZXItcmlnaHQ6IG5vbmU7IH0gfVxuICAgICY6bnRoLWNoaWxkKG9kZCkgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMWYzOyB9XG4gICAgJjpudGgtY2hpbGQoZXZlbikgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gICAgJjpub3QoLmZpbHRyZS1yZXN1bHQtcm93LS1pbmRpc3BvKSB7XG4gICAgICAgIHNwYW4geyBib3JkZXItcmlnaHQtY29sb3I6ICNmZmY7IH1cbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgM3B4IDAgMCByZ2JhKDQ2LCAyMDQsIDExMywgMC40NSk7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogIzNmNDI0NCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICAgICAgc3BhbiB7IGNvbG9yOiAjZmZmOyB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi5maWx0cmUtcmVzdWx0LXJvdy0taW5kaXNwbyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjQzLCAxMTEsIDQ2LCAwLjA4KTtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICAgICAgY29sb3I6ICM0YTRkNTA7XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDNweCAwIDAgcmdiYSgyNDMsIDExMSwgNDYsIDAuNDUpO1xuICAgICAgICAmOm50aC1jaGlsZChvZGQpIHNwYW4sXG4gICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHNwYW4geyBib3JkZXItcmlnaHQtY29sb3I6ICNlZWU7IH1cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjM2Y0MjQ0ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgICBzcGFuIHsgY29sb3I6ICNmZmY7IH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgYnJlYWtwb2ludChcIm1vYmlsZVwiKSB7XG4gICAgLmZpbHRyZS1vdmVybGF5LXRhYmxlIC5maWx0cmUtcmVzdWx0LXJvdyB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDAuODVmcikgbWlubWF4KDAsIDEuM2ZyKSBtaW5tYXgoMCwgMWZyKTtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIGF1dG87XG4gICAgICAgIGNvbHVtbi1nYXA6IDhweDtcbiAgICAgICAgcm93LWdhcDogNnB4O1xuICAgICAgICBwYWRkaW5nOiA4cHggMTBweDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgICAgICBvdmVyZmxvdy13cmFwOiBhbnl3aGVyZTtcbiAgICAgICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gICAgICAgIH1cbiAgICAgICAgc3BhbjpudGgtY2hpbGQoMSk6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBcIiNcIjtcbiAgICAgICAgfVxuICAgIH1cbn0iXX0= */
