/* --------------------
 @@ Mixins
-------------------- */
/* ----------
 @ Maintain Aspect Ratio
	- *** requires that the element has an inner container element if there is inner content
	- $x => x portion of ratio
	- $y => y portion of ratio
    - $c => set to 'false' to skip :first-child styling
---------- */
/* ----------
 @ Background Image
	- Shortcut for linking images in the configured images folder
	- $i => image file name (relative to images folder)
	- $rest => any additional 'background' property shortcut declarations (ie: no-repeat)
---------- */
/* --------------------
 @@ Functions
-------------------- */
/* ----------
 @ Color Get
 	- get value from the $theme-colors map
---------- */
/* ----------
 @ Breakpoint Get
 	- get value from the $grid-breakpoints map
 	- $type => 'max' | 'min', depending on media query type
---------- */
/* ----------
 @ Ems
	- convert pixels to ems
	- $p => pixel value
	- $b => base size (to use in formula) - defaults to $font-sizes root variable
---------- */
/* ----------
 @ Rems
	- convert pixels to rems
	- $p => pixel value
	- $b => base size (to use in formula) - defaults to $font-sizes root variable
---------- */
/* ----------
 @ Map Deep Get
 	- get value from nested maps
---------- */
/* ----------
 @ Weight Get
 	- get value from the $font-weights map
---------- */
/* ----------------------------------------------------------------------------

 @@@ Global Extensions

---------------------------------------------------------------------------- */
/* --------------------------------------
 @@ Generic Styles
-------------------------------------- */
/* ----------
 @ Display
---------- */
/* ----------
 @ Positioning
---------- */
/* ----------
 @ Layout
---------- */
/* ----------
 @ Colors
---------- */
/* ----------
 @ Typography
---------- */
/* ----------
 @ Overflow
---------- */
/* ----------
 @ Misc Visuals
---------- */
/* --------------------------------------
 @@ Components
-------------------------------------- */
/* ----------
 @ Pagination
---------- */
/* ----------
 @ Sliders
---------- */
/* ----------
 @ Text Fields
---------- */
/* ----------
 @ Dropdowns
---------- */
/* ----------
 @ Checkboxes
---------- */
/* ----------
 @ Radio Buttons
---------- */
/* ----------
 @ Dialogs
---------- */
/* ----------
 @ Tooltips
---------- */
/* --------------------
 @@ Project Specific Variables
-------------------- */
/* ----------
 @ Options
---------- */
/* ----------
 @ Colors
---------- */
/* ----------
 @ Layout
---------- */
/* ----------
 @ Typography
---------- */
/* ----------
 @ Misc
---------- */
#news {
  margin: 6.75rem 0;
}

#news .no-results {
  width: 100%;
  margin: 4rem 0 2rem;
}

#news .no-results::before, #news .no-results::after {
  background: rgba(150, 150, 150, 0.25);
}

#news .no-results .no-results-text {
  opacity: 0.3;
  text-align: center;
  margin: 0 5rem;
  font-family: azo-sans-web, "Avenir", "Tw Cen MT", "Helvetica", Arial, sans-serif;
  font-size: 2.5rem;
}

#news .card .card-content p {
  margin: 0.5rem 0;
}

#news .pagination-area {
  margin-top: 2rem;
}

@media only screen and (max-width: 991px) {
  #news .card {
    padding: 1.75rem;
  }
  #news .card .card-content {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
  #news .card .fa-chevron-circle-right {
    font-size: 1.5rem;
  }
}

@media only screen and (max-width: 768px) and (min-width: 576px) {
  #news .card-content, #news .card-image {
    margin-top: 0;
  }
  #news .news-posting {
    margin: 1rem 0;
  }
}

@media only screen and (max-width: 768px) {
  #news .card .card-bottom {
    position: relative;
  }
}

@media only screen and (max-width: 575px) {
  #news {
    margin: 4rem 0;
  }
  #news div.card {
    padding: 2rem;
  }
  #news div.card .card-image img {
    width: 100%;
  }
}

.page-banner {
  background: #007AF8;
  position: relative;
  margin: 0;
  padding-top: 3.125rem;
}

.page-banner.home-banner {
  padding-top: 3.125rem;
}

.page-banner .hidden {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 0;
  height: 0;
  visibility: hidden;
  opacity: 0;
}

.page-banner .banner-cityscape {
  margin: 0;
  height: 9.375rem;
  width: 100%;
  position: relative;
}

.page-banner .banner-cityscape.line {
  background: url("../../img/ui-assets/city-line-title.svg") repeat-x center/contain;
}

.page-banner .banner-cityscape.silhouette {
  background: url("../../img/ui-assets/city-silhouette-title.svg") repeat-x bottom center/contain;
  position: relative;
}

.page-banner .banner-cityscape.silhouette::after {
  position: absolute;
  top: 99%;
  right: 0;
  bottom: 0;
  left: 0;
  background: #1a1a1a;
  content: '';
}

.page-banner .banner-cityscape .silhouette-inner-layer {
  background: url("../../img/ui-assets/city-silhouette-title.svg") repeat-x bottom center/contain;
  opacity: 0.4;
  position: absolute;
  top: 0.8rem;
  right: 0;
  bottom: -5rem;
  left: 0;
  height: 5rem;
}

.page-banner .banner-wrapper {
  margin-top: 0;
}

.page-banner .banner-wrapper .page-heading {
  padding: 4.375rem 0;
}

.page-banner .banner-wrapper .page-heading .h3 {
  color: #fff;
  margin-left: 0;
}

.page-banner .banner-wrapper .page-heading .h3::after {
  display: none;
}

.page-banner .banner-wrapper .page-heading .h3 .black-button-outline:hover, .page-banner .banner-wrapper .page-heading .h3 .black-button-outline:focus {
  background: #1a1a1a;
  border-color: #1a1a1a;
  color: #007AF8;
}

.page-banner .carousel {
  margin: 0;
  background: #1a1a1a;
  padding: 4rem 0 6rem;
  min-height: 500px;
}

.page-banner .carousel--blue {
  background: #007AF8;
}

.page-banner .carousel .slider .previous {
  position: absolute;
  top: 25%;
  bottom: 25%;
  left: 28px;
  color: #fff;
}

.page-banner .carousel .slider .next {
  position: absolute;
  top: 25%;
  right: 28px;
  bottom: 25%;
  color: #fff;
}

.page-banner .carousel .slider .previous,
.page-banner .carousel .slider .next {
  font-size: 1.5rem;
  z-index: 5;
  -webkit-transition: 0.2s ease;
  transition: 0.2s ease;
  padding: 1.50rem;
  border: 2px solid #fff;
  width: 42px;
  height: 42px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin: auto 0;
  line-height: 0;
  opacity: 0.5;
}

.page-banner .carousel .slider .previous span,
.page-banner .carousel .slider .next span {
  line-height: 0;
}

.page-banner .carousel .slider .previous:hover, .page-banner .carousel .slider .previous:focus,
.page-banner .carousel .slider .next:hover,
.page-banner .carousel .slider .next:focus {
  opacity: 1;
}

.page-banner .carousel .slide {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.page-banner .carousel .slide .image-holder {
  overflow: hidden;
  position: relative;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%;
  margin-left: 0;
  margin-right: 0;
}

.page-banner .carousel .slide figcaption {
  font-size: 2.25rem;
  color: #fff;
  line-height: 1.4;
}

.page-banner .carousel .slide figcaption i, .page-banner .carousel .slide figcaption em, .page-banner .carousel .slide figcaption strong, .page-banner .carousel .slide figcaption b {
  color: #eee047;
}

.page-banner .carousel .slide .image-holder__content {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}

.page-banner .carousel .slide .image-holder__btn {
  margin-top: 1rem;
  padding: 0.4rem 1.25rem;
}

.page-banner .cta-boxes {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  width: 100%;
  position: relative;
}

.page-banner .cta-boxes .cta-box {
  width: 50%;
  text-align: center;
  padding: 1.35rem 0;
  color: #fff;
  font-size: 1.25rem;
  text-decoration: none;
  border: 5px solid #007AF8;
}

.page-banner .cta-boxes .cta-box:hover {
  -webkit-filter: brightness(115%);
          filter: brightness(115%);
}

.page-banner .cta-boxes .cta-box:first-of-type {
  padding-left: calc((100vw - 1270px) / 2 + 1px);
  color: #000;
  background-color: #eee047;
  border-color: #eee047;
}

.page-banner .cta-boxes .cta-box:first-of-type .link {
  color: #000;
}

.page-banner .cta-boxes .cta-box.second {
  padding-right: calc((100vw - 1270px) / 2 + 1px);
  background-color: #007AF8;
}

.page-banner .cta-boxes .cta-box.second .cta-box__link {
  color: #fff;
}

.page-banner .cta-boxes .cta-box.third {
  width: 100%;
  padding: 1.35rem 2rem;
  background-color: #e9e9e9;
  border-color: #e9e9e9;
  color: #000;
}

.page-banner .cta-boxes .cta-box.third .cta-box__link {
  color: #000;
}

.page-banner .cta-boxes .cta-box .cta-box__links a {
  text-decoration: none;
}

.page-banner .cta-boxes .cta-box .cta-box__links a:hover .cta-box__link {
  color: #000;
}

.page-banner .cta-boxes .cta-box .cta-box__links a:hover .cta-box__link u {
  text-decoration: none;
}

.page-banner .cta-boxes .cta-box .link {
  color: #fff;
  text-decoration: underline;
  padding-left: 1rem;
}

.page-banner .cta-boxes .cta-box .cta-box__linked-text {
  text-decoration: none !important;
}

.page-banner .cta-boxes .cta-box .cta-box__link {
  color: #000;
  white-space: nowrap;
  margin: 0 1rem;
}

.page-banner .cta-boxes .cta-box .cta-box__link .fa-angle-right {
  margin-left: 0.75rem;
}

.page-banner .cta-boxes .cta-box.full-width {
  width: 100% !important;
  padding-left: unset;
}

@media only screen and (max-width: 1279px) {
  .page-banner .cta-boxes .cta-box {
    font-size: 1.125rem;
  }
  .page-banner .cta-boxes .cta-box:first-of-type::before {
    width: 100%;
  }
}

@media only screen and (max-width: 991px) {
  .page-banner .cta-container {
    padding: 0;
  }
  .page-banner .cta-boxes {
    max-height: unset;
  }
  .page-banner .cta-boxes .cta-box {
    width: 100%;
  }
}

@media only screen and (max-width: 768px) {
  .page-banner .banner-cityscape.line, .page-banner .banner-cityscape.silhouette {
    background-size: cover;
  }
  .page-banner .banner-wrapper .page-heading h3 {
    font-size: 2rem;
  }
  .page-banner .carousel .slide .image-holder img {
    max-width: 250px;
    margin: 0 auto;
    text-align: center;
    display: block;
    padding: 0 2.5rem;
  }
  .page-banner .carousel .slide figcaption p {
    text-align: center;
    padding: 0 2.5rem;
    margin-top: 2.5rem;
    font-size: 2rem;
  }
  .page-banner .carousel .slide .image-holder__content {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
  .page-banner .carousel .slider .previous {
    position: absolute;
    top: 25%;
    bottom: 25%;
    left: 12px;
  }
  .page-banner .carousel .slider .next {
    position: absolute;
    top: 25%;
    right: 12px;
    bottom: 25%;
  }
  .page-banner .carousel .slider .previous,
  .page-banner .carousel .slider .next {
    font-size: 1.25rem;
    padding: 1.25rem;
    width: 25px;
    height: 25px;
  }
  .page-banner .cta-boxes .cta-box:first-of-type {
    padding: 1.35rem 0.5rem;
  }
}

.news-postings {
  margin: 2rem auto 4rem;
  max-width: 100%;
  overflow: hidden;
}

#home .news-postings {
  margin: 7rem auto 9rem;
}

#home .news-intro {
  width: auto;
}

#home .card .card-content p {
  margin: 0.5rem 0 2.5rem;
}

@media only screen and (max-width: 768px) and (min-width: 576px) {
  #home .news-postings {
    width: auto;
    max-width: unset;
  }
  #home .card-content {
    margin-top: 0;
  }
  #home .news-intro {
    margin-left: 0;
  }
}

@media only screen and (max-width: 1279px) {
  #home .listing-row > .row {
    height: 39em;
  }
}

@media only screen and (max-width: 768px) {
  #home .listing-row {
    padding: 0 2.25rem;
  }
  #home .listing-row > .row {
    height: auto;
  }
  #home .news-postings {
    margin: 2rem 0;
  }
  #home .news-intro {
    margin-left: 1rem;
  }
  #home .pagination-area {
    margin-top: 1rem;
    margin-bottom: 4rem;
  }
}

@media only screen and (max-width: 575px) {
  #home {
    margin: 2rem 0;
  }
  #home .news-posting {
    padding: 1rem 0;
  }
}

#home {
  margin: 0;
}

#home .home-section {
  position: relative;
  padding: 10.5rem 0;
  margin: 0;
}

#home .home-section .section-text {
  margin-top: -1rem;
  font-size: 1.125rem;
}

#home .home-section .section-text h2 {
  color: var(--brand-primary);
  line-height: 1.2;
}

#home .home-section .section-text .button-holder {
  margin-top: 0;
}

#home .home-section .section-text .button-holder .section-button {
  margin-top: 2.3rem;
  text-decoration: none;
  border: 2px solid #1a1a1a;
  color: #1a1a1a;
  padding: 0.7rem 1.75rem;
  display: inline-block;
  font-size: 1.35rem;
  max-width: 300px;
  text-align: center;
  line-height: 1.2;
  -webkit-transition: all 250ms ease-out;
  transition: all 250ms ease-out;
}

#home .home-section .section-text .button-holder .section-button:hover, #home .home-section .section-text .button-holder .section-button:focus {
  background: var(--brand-primary);
  border-color: var(--brand-primary);
  color: #fff;
}

#home .home-section .section-text--centered {
  text-align: center;
}

#home .home-section .section-image img {
  width: 100%;
  height: auto;
  margin: 0 auto;
  text-align: center;
  display: block;
}

#home .home-section--blue {
  background: var(--brand-primary);
  color: #fff;
}

#home .home-section--blue .section-text h2 {
  color: #fff;
}

#home .home-section--blue .section-text .button-holder .section-button {
  border-color: #fff;
  color: var(--brand-primary);
  background: #fff;
}

#home .home-section--blue .section-text .button-holder .section-button:hover, #home .home-section--blue .section-text .button-holder .section-button:focus {
  background: var(--brand-primary);
  color: #fff;
  border-color: #fff;
}

#home .home-section--blue .section-text li::before {
  color: #fff;
}

#home .home-section--radiation {
  background: url("../../img/ui-assets/nuclear-background-tile.svg") repeat center/700px 370.16949px;
}

#home .home-section--grey {
  background-color: var(--brand-light);
}

#home .home-section--light-blue {
  background-color: var(--brand-light-blue);
}

#home .home-section.research {
  background: var(--brand-light) url("../../img/ui-assets/radon-chemical-structure-tile.svg") repeat center/700px auto;
}

#home .home-section.research .section-text.research-text {
  margin-top: 1.5em;
}

#home .home-section.research .section-text.research-text h2, #home .home-section.research .section-text.research-text p {
  color: #1a1a1a;
}

#home .home-section.research .section-text.research-text h3 {
  color: var(--brand-tertiary);
  margin-top: 1.3rem;
  margin-left: 0;
  letter-spacing: 0;
}

#home .home-section.research .section-text.research-text h3::after {
  display: none;
}

#home .home-section.research .section-text.research-text .button-holder {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

#home .home-section.research .section-text.research-text .button-holder .section-button {
  color: var(--brand-tertiary);
  border-color: var(--brand-tertiary);
  margin-right: 3rem;
}

#home .home-section.research .section-text.research-text .button-holder .section-button:hover, #home .home-section.research .section-text.research-text .button-holder .section-button:focus {
  background: var(--brand-tertiary);
  color: #fff;
}

#home .home-section.research .section-text.research-text .button-holder .uofc-link {
  height: 3rem;
  width: auto;
  display: block;
}

#home .home-section.research .section-text.research-text .button-holder .uofc-link img {
  height: 100%;
  width: auto;
  margin-top: 5px;
}

.home-section__image--full-bleed {
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  width: 50%;
}

.home-section__image-el {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.home-section:nth-of-type(odd) .section-image,
.home-section:nth-of-type(odd) .home-section__image--full-bleed {
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          order: 1;
}

.home-section:nth-of-type(even):has(.home-section__image--full-bleed) .section-text {
  margin-left: 0;
  margin-right: 8.33%;
}

.home-section:nth-of-type(odd):has(.home-section__image--full-bleed) .section-row {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}

.home-section:nth-of-type(odd) .home-section__image--full-bleed {
  right: unset;
  left: 0;
}

.c-hr {
  margin-top: 0;
  display: block;
  width: 100%;
  height: 5px;
  background-color: #fff;
}

@media only screen and (max-width: 768px) {
  #home {
    margin-top: -3rem;
  }
  #home .home-section {
    padding: var(--grid-gutter-width) 0 4.5rem;
  }
  #home .home-section .section-text {
    margin-top: 1.5rem;
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
  #home .home-section .section-image {
    padding: 0 2rem;
    margin-bottom: 4rem;
  }
  #home .home-section .section-image img {
    width: 100%;
    height: auto;
    margin: 0 auto;
    max-width: 17.5rem;
    display: block;
  }
  #home .home-section.research .section-image {
    display: none;
  }
  #home .home-section__image--full-bleed {
    position: relative;
    width: 100%;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2Jhc2UtdGhlbWUvYXNzZXRzL3Njc3MvdXRpbGl0aWVzL19taXhpbnMuc2NzcyIsInBhZ2UtdGVtcGxhdGVzL3BhZ2UtaG9tZS5jc3MiLCIuLi8uLi8uLi9iYXNlLXRoZW1lL2Fzc2V0cy9zY3NzL3V0aWxpdGllcy9fZXh0ZW5zaW9ucy5zY3NzIiwiX3ZhcmlhYmxlcy5zY3NzIiwiX2FyY2hpdmUtbmV3cy5zY3NzIiwiX3BhZ2UtYmFubmVyLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9jb3JlL2JvdXJib24vbGlicmFyeS9fcG9zaXRpb24uc2NzcyIsIl9ob21lLW5ld3Muc2NzcyIsInBhZ2UtdGVtcGxhdGVzL3BhZ2UtaG9tZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztzQkNFc0I7QURFdEI7Ozs7OztZQ0tZO0FEa0JaOzs7OztZQ1pZO0FEdUJaOztzQkNwQnNCO0FEd0J0Qjs7O1lDcEJZO0FEOEJaOzs7O1lDekJZO0FEd0NaOzs7OztZQ2xDWTtBRDZDWjs7Ozs7WUN2Q1k7QURrRFo7OztZQzlDWTtBRDBEWjs7O1lDdERZO0FDL0NaOzs7OzhFRG9EOEU7QUM5QzlFOzt3Q0RpRHdDO0FDN0N4Qzs7WURnRFk7QUNsQlo7O1lEcUJZO0FDRVo7O1lEQ1k7QUNvRFo7O1lEakRZO0FDa0VaOztZRC9EWTtBQ2lHWjs7WUQ5Rlk7QUMrR1o7O1lENUdZO0FDdUhaOzt3Q0RwSHdDO0FDd0h4Qzs7WURySFk7QUNxSVo7O1lEbElZO0FDK0xaOztZRDVMWTtBQ2tOWjs7WUQvTVk7QUNvUVo7O1lEalFZO0FDMFZaOztZRHZWWTtBQ21XWjs7WURoV1k7QUM2YVo7O1lEMWFZO0FFdkdaOztzQkYwR3NCO0FFdEd0Qjs7WUZ5R1k7QUVqR1o7O1lGb0dZO0FFbkVaOztZRnNFWTtBRXJEWjs7WUZ3RFk7QUVIWjs7WUZNWTtBR3pIWjtFQUNJLGlCQUFpQjtBSDJIckI7O0FHNUhBO0VBSVEsV0FBVztFQUNYLG1C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dnNCQTtFQXFINEIsaUNBQWlDO0VBQ2pDLFdBQVc7QVBzbEJ2Qzs7QU81c0JBO0VBMEh3QixZQUFZO0VBQ1osV0FBVztFQUNYLGNBQWM7QVBzbEJ0Qzs7QU9sdEJBO0VBK0g0QixZQUFZO0VBQ1osV0FBVztFQUNYLGVBQWU7QVB1bEIzQzs7QU8va0JBO0VBQ0ksY0FBYztFQUNkLGtCQUFrQjtFQUNsQixNQUFNO0VBQ04sU0FBUztFQUNULFFBQVE7RUFDUixVQUFVO0FQa2xCZDs7QU9obEJBO0VBQ0ksV0FBVztFQUNYLFlBQVk7RUFDWixvQkFBaUI7S0FBakIsaUJBQWlCO0FQbWxCckI7O0FPamxCQTs7RUFFSSw0QkFBUTtNQUFSLGlCQUFRO1VBQVIsUUFBUTtBUG9sQlo7O0FPbGxCQTtFQUNJLGNBQWM7RUFDZCxtQkFBbUI7QVBxbEJ2Qjs7QU9ubEJBO0VBRVEscUJBQXlCO01BQXpCLGtCQUF5QjtVQUF6Qix5QkFBeUI7QVBxbEJqQzs7QU9sbEJBO0VBQ0ksWUFBWTtFQUNaLE9BQU87QVBxbEJYOztBT25sQkE7RUFDSSxhQUFhO0VBQ2IsY0FBYztFQUNkLFdBQVc7RUFDWCxXQUFXO0VBQ1gsc0JBQXNCO0FQc2xCMUI7O0FPbmxCQTtFRDVHSTtJQzhHSSxpQkFBaUI7RVBzbEJ2QjtFT3Z3QkY7SUFvTFksMENBQTBDO0VQc2xCcEQ7RU8xd0JGO0lBdUxnQixrQkFBa0I7SUFDbEIsNEJBQVE7UUFBUixpQkFBUTtZQUFSLFFBQVE7RVBzbEJ0QjtFTzlsQkU7SUFXWSxlQUFlO0lBQ2YsbUJBQW1CO0VQc2xCakM7RU9seEJGO0lBK0xvQixXQUFXO0lBQ1gsWUFBWTtJQUNaLGNBQWM7SUFDZCxrQkFBa0I7SUFDbEIsY0FBYztFUHNsQmhDO0VPem1CRTtJQXVCWSxhQUFhO0VQcWxCM0I7RU81bUJFO0lBMkJRLGtCQUFrQjtJQUNsQixXQUFXO0VQb2xCckI7QUFDRiIsImZpbGUiOiJwYWdlLXRlbXBsYXRlcy9wYWdlLWhvbWUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiBAQCBNaXhpbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qIC0tLS0tLS0tLS1cbiBAIE1haW50YWluIEFzcGVjdCBSYXRpb1xuXHQtICoqKiByZXF1aXJlcyB0aGF0IHRoZSBlbGVtZW50IGhhcyBhbiBpbm5lciBjb250YWluZXIgZWxlbWVudCBpZiB0aGVyZSBpcyBpbm5lciBjb250ZW50XG5cdC0gJHggPT4geCBwb3J0aW9uIG9mIHJhdGlvXG5cdC0gJHkgPT4geSBwb3J0aW9uIG9mIHJhdGlvXG4gICAgLSAkYyA9PiBzZXQgdG8gJ2ZhbHNlJyB0byBza2lwIDpmaXJzdC1jaGlsZCBzdHlsaW5nXG4tLS0tLS0tLS0tICovXG5cbkBtaXhpbiBhc3BlY3QtcmF0aW8oJHg6IDEsICR5OiAxLCAkYzogdHJ1ZSkge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0JjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cGFkZGluZy10b3A6IHBlcmNlbnRhZ2UoJHkgLyAkeCk7XG5cdH1cblx0QGlmICgkYyA9PSB0cnVlKSB7XG5cdFx0JiA+IDpmaXJzdC1jaGlsZCB7XG5cdFx0XHRAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCAwIDAgMCk7XG5cdFx0fVxuXHR9XG59XG5cbi8qIC0tLS0tLS0tLS1cbiBAIEJhY2tncm91bmQgSW1hZ2Vcblx0LSBTaG9ydGN1dCBmb3IgbGlua2luZyBpbWFnZXMgaW4gdGhlIGNvbmZpZ3VyZWQgaW1hZ2VzIGZvbGRlclxuXHQtICRpID0+IGltYWdlIGZpbGUgbmFtZSAocmVsYXRpdmUgdG8gaW1hZ2VzIGZvbGRlcilcblx0LSAkcmVzdCA9PiBhbnkgYWRkaXRpb25hbCAnYmFja2dyb3VuZCcgcHJvcGVydHkgc2hvcnRjdXQgZGVjbGFyYXRpb25zIChpZTogbm8tcmVwZWF0KVxuLS0tLS0tLS0tLSAqL1xuXG5AbWl4aW4gYmctaW1hZ2UoJGksICRyZXN0Li4uKSB7XG5cdGJhY2tncm91bmQ6IHVybChcIiN7JGltYWdlcy1mb2xkZXJ9LyN7JGl9XCIpICRyZXN0O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuIEBAIEZ1bmN0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyogLS0tLS0tLS0tLVxuIEAgQ29sb3IgR2V0XG4gXHQtIGdldCB2YWx1ZSBmcm9tIHRoZSAkdGhlbWUtY29sb3JzIG1hcFxuLS0tLS0tLS0tLSAqL1xuXG5AZnVuY3Rpb24gY29sb3ItZ2V0KCRrZXlzKSB7XG5cdCRjb2xvcjogbWFwLWRlZXAtZ2V0KCR0aGVtZS1jb2xvcnMsICRrZXlzKTtcblx0QHJldHVybiAkY29sb3I7XG59XG5cbi8qIC0tLS0tLS0tLS1cbiBAIEJyZWFrcG9pbnQgR2V0XG4gXHQtIGdldCB2YWx1ZSBmcm9tIHRoZSAkZ3JpZC1icmVha3BvaW50cyBtYXBcbiBcdC0gJHR5cGUgPT4gJ21heCcgfCAnbWluJywgZGVwZW5kaW5nIG9uIG1lZGlhIHF1ZXJ5IHR5cGVcbi0tLS0tLS0tLS0gKi9cblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtZ2V0KCR0eXBlLCAka2V5cykge1xuXHQkYnJlYWtwb2ludDogbWFwLWRlZXAtZ2V0KCRncmlkLWJyZWFrcG9pbnRzLCAka2V5cyk7XG5cdEBpZiAoJHR5cGUgPT0gJ21heCcpe1xuXHRcdEByZXR1cm4gJGJyZWFrcG9pbnQgLSAxO1xuXHR9IEBlbHNlIHtcblx0XHRAcmV0dXJuICRicmVha3BvaW50O1xuXHR9XG59XG5cbi8qIC0tLS0tLS0tLS1cbiBAIEVtc1xuXHQtIGNvbnZlcnQgcGl4ZWxzIHRvIGVtc1xuXHQtICRwID0+IHBpeGVsIHZhbHVlXG5cdC0gJGIgPT4gYmFzZSBzaXplICh0byB1c2UgaW4gZm9ybXVsYSkgLSBkZWZhdWx0cyB0byAkZm9udC1zaXplcyByb290IHZhcmlhYmxlXG4tLS0tLS0tLS0tICovXG5cbkBmdW5jdGlvbiBlbXMoJHAsICRiOiBtYXAtZ2V0KCRmb250LXNpemVzLCByb290KSkge1xuXHRAcmV0dXJuIChzdHJpcC11bml0KCRwKSAvIHN0cmlwLXVuaXQoJGIpKSArIDBlbTtcbn1cblxuLyogLS0tLS0tLS0tLVxuIEAgUmVtc1xuXHQtIGNvbnZlcnQgcGl4ZWxzIHRvIHJlbXNcblx0LSAkcCA9PiBwaXhlbCB2YWx1ZVxuXHQtICRiID0+IGJhc2Ugc2l6ZSAodG8gdXNlIGluIGZvcm11bGEpIC0gZGVmYXVsdHMgdG8gJGZvbnQtc2l6ZXMgcm9vdCB2YXJpYWJsZVxuLS0tLS0tLS0tLSAqL1xuXG5AZnVuY3Rpb24gcmVtcygkcCwgJGI6IG1hcC1nZXQoJGZvbnQtc2l6ZXMsIHJvb3QpKSB7XG4gICAgQHJldHVybiAoc3RyaXAtdW5pdCgkcCkgLyBzdHJpcC11bml0KCRiKSkgKyAwcmVtO1xufVxuXG4vKiAtLS0tLS0tLS0tXG4gQCBNYXAgRGVlcCBHZXRcbiBcdC0gZ2V0IHZhbHVlIGZyb20gbmVzdGVkIG1hcHNcbi0tLS0tLS0tLS0gKi9cblxuQGZ1bmN0aW9uIG1hcC1kZWVwLWdldCgkbWFwLCAka2V5cy4uLikge1xuXHRAZWFjaCAka2V5IGluICRrZXlzIHtcblx0XHQkbWFwOiBtYXAtZ2V0KCRtYXAsICRrZXkpO1xuXHR9XG5cdEByZXR1cm4gJG1hcDtcbn1cblxuLyogLS0tLS0tLS0tLVxuIEAgV2VpZ2h0IEdldFxuIFx0LSBnZXQgdmFsdWUgZnJvbSB0aGUgJGZvbnQtd2VpZ2h0cyBtYXBcbi0tLS0tLS0tLS0gKi9cblxuQGZ1bmN0aW9uIHdlaWdodC1nZXQoJGtleXMpIHtcblx0JHdlaWdodDogbWFwLWRlZXAtZ2V0KCRmb250LXdlaWdodHMsICRrZXlzKTtcblx0QHJldHVybiAkd2VpZ2h0O1xufSIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gQEAgTWl4aW5zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLVxuIEAgTWFpbnRhaW4gQXNwZWN0IFJhdGlvXG5cdC0gKioqIHJlcXVpcmVzIHRoYXQgdGhlIGVsZW1lbnQgaGFzIGFuIGlubmVyIGNvbnRhaW5lciBlbGVtZW50IGlmIHRoZXJlIGlzIGlubmVyIGNvbnRlbnRcblx0LSAkeCA9PiB4IHBvcnRpb24gb2YgcmF0aW9cblx0LSAkeSA9PiB5IHBvcnRpb24gb2YgcmF0aW9cbiAgICAtICRjID0+IHNldCB0byAnZmFsc2UnIHRvIHNraXAgOmZpcnN0LWNoaWxkIHN0eWxpbmdcbi0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS1cbiBAIEJhY2tncm91bmQgSW1hZ2Vcblx0LSBTaG9ydGN1dCBmb3IgbGlua2luZyBpbWFnZXMgaW4gdGhlIGNvbmZpZ3VyZWQgaW1hZ2VzIGZvbGRlclxuXHQtICRpID0+IGltYWdlIGZpbGUgbmFtZSAocmVsYXRpdmUgdG8gaW1hZ2VzIGZvbGRlcilcblx0LSAkcmVzdCA9PiBhbnkgYWRkaXRpb25hbCAnYmFja2dyb3VuZCcgcHJvcGVydHkgc2hvcnRjdXQgZGVjbGFyYXRpb25zIChpZTogbm8tcmVwZWF0KVxuLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiBAQCBGdW5jdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tXG4gQCBDb2xvciBHZXRcbiBcdC0gZ2V0IHZhbHVlIGZyb20gdGhlICR0aGVtZS1jb2xvcnMgbWFwXG4tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tXG4gQCBCcmVha3BvaW50IEdldFxuIFx0LSBnZXQgdmFsdWUgZnJvbSB0aGUgJGdyaWQtYnJlYWtwb2ludHMgbWFwXG4gXHQtICR0eXBlID0+ICdtYXgnIHwgJ21pbicsIGRlcGVuZGluZyBvbiBtZWRpYSBxdWVyeSB0eXBlXG4tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tXG4gQCBFbXNcblx0LSBjb252ZXJ0IHBpeGVscyB0byBlbXNcblx0LSAkcCA9PiBwaXhlbCB2YWx1ZVxuXHQtICRiID0+IGJhc2Ugc2l6ZSAodG8gdXNlIGluIGZvcm11bGEpIC0gZGVmYXVsdHMgdG8gJGZvbnQtc2l6ZXMgcm9vdCB2YXJpYWJsZVxuLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLVxuIEAgUmVtc1xuXHQtIGNvbnZlcnQgcGl4ZWxzIHRvIHJlbXNcblx0LSAkcCA9PiBwaXhlbCB2YWx1ZVxuXHQtICRiID0+IGJhc2Ugc2l6ZSAodG8gdXNlIGluIGZvcm11bGEpIC0gZGVmYXVsdHMgdG8gJGZvbnQtc2l6ZXMgcm9vdCB2YXJpYWJsZVxuLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLVxuIEAgTWFwIERlZXAgR2V0XG4gXHQtIGdldCB2YWx1ZSBmcm9tIG5lc3RlZCBtYXBzXG4tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tXG4gQCBXZWlnaHQgR2V0XG4gXHQtIGdldCB2YWx1ZSBmcm9tIHRoZSAkZm9udC13ZWlnaHRzIG1hcFxuLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gQEBAIEdsb2JhbCBFeHRlbnNpb25zXG5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gQEAgR2VuZXJpYyBTdHlsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tXG4gQCBEaXNwbGF5XG4tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tXG4gQCBQb3NpdGlvbmluZ1xuLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLVxuIEAgTGF5b3V0XG4tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tXG4gQCBDb2xvcnNcbi0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS1cbiBAIFR5cG9ncmFwaHlcbi0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS1cbiBAIE92ZXJmbG93XG4tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tXG4gQCBNaXNjIFZpc3VhbHNcbi0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gQEAgQ29tcG9uZW50c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS1cbiBAIFBhZ2luYXRpb25cbi0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS1cbiBAIFNsaWRlcnNcbi0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS1cbiBAIFRleHQgRmllbGRzXG4tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tXG4gQCBEcm9wZG93bnNcbi0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS1cbiBAIENoZWNrYm94ZXNcbi0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS1cbiBAIFJhZGlvIEJ1dHRvbnNcbi0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS1cbiBAIERpYWxvZ3Ncbi0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS1cbiBAIFRvb2x0aXBzXG4tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuIEBAIFByb2plY3QgU3BlY2lmaWMgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLVxuIEAgT3B0aW9uc1xuLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLVxuIEAgQ29sb3JzXG4tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tXG4gQCBMYXlvdXRcbi0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS1cbiBAIFR5cG9ncmFwaHlcbi0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS1cbiBAIE1pc2Ncbi0tLS0tLS0tLS0gKi9cbiNuZXdzIHtcbiAgbWFyZ2luOiA2Ljc1cmVtIDA7XG59XG5cbiNuZXdzIC5uby1yZXN1bHRzIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogNHJlbSAwIDJyZW07XG59XG5cbiNuZXdzIC5uby1yZXN1bHRzOjpiZWZvcmUsICNuZXdzIC5uby1yZXN1bHRzOjphZnRlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTUwLCAxNTAsIDE1MCwgMC4yNSk7XG59XG5cbiNuZXdzIC5uby1yZXN1bHRzIC5uby1yZXN1bHRzLXRleHQge1xuICBvcGFjaXR5OiAwLjM7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luOiAwIDVyZW07XG4gIGZvbnQtZmFtaWx5OiBhem8tc2Fucy13ZWIsIFwiQXZlbmlyXCIsIFwiVHcgQ2VuIE1UXCIsIFwiSGVsdmV0aWNhXCIsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDIuNXJlbTtcbn1cblxuI25ld3MgLmNhcmQgLmNhcmQtY29udGVudCBwIHtcbiAgbWFyZ2luOiAwLjVyZW0gMDtcbn1cblxuI25ld3MgLnBhZ2luYXRpb24tYXJlYSB7XG4gIG1hcmdpbi10b3A6IDJyZW07XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgI25ld3MgLmNhcmQge1xuICAgIHBhZGRpbmc6IDEuNzVyZW07XG4gIH1cbiAgI25ld3MgLmNhcmQgLmNhcmQtY29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG4gICNuZXdzIC5jYXJkIC5mYS1jaGV2cm9uLWNpcmNsZS1yaWdodCB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkgYW5kIChtaW4td2lkdGg6IDU3NnB4KSB7XG4gICNuZXdzIC5jYXJkLWNvbnRlbnQsICNuZXdzIC5jYXJkLWltYWdlIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG4gICNuZXdzIC5uZXdzLXBvc3Rpbmcge1xuICAgIG1hcmdpbjogMXJlbSAwO1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgI25ld3MgLmNhcmQgLmNhcmQtYm90dG9tIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NzVweCkge1xuICAjbmV3cyB7XG4gICAgbWFyZ2luOiA0cmVtIDA7XG4gIH1cbiAgI25ld3MgZGl2LmNhcmQge1xuICAgIHBhZGRpbmc6IDJyZW07XG4gIH1cbiAgI25ld3MgZGl2LmNhcmQgLmNhcmQtaW1hZ2UgaW1nIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG4ucGFnZS1iYW5uZXIge1xuICBiYWNrZ3JvdW5kOiAjMDA3QUY4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZy10b3A6IDMuMTI1cmVtO1xufVxuXG4ucGFnZS1iYW5uZXIuaG9tZS1iYW5uZXIge1xuICBwYWRkaW5nLXRvcDogMy4xMjVyZW07XG59XG5cbi5wYWdlLWJhbm5lciAuaGlkZGVuIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgb3BhY2l0eTogMDtcbn1cblxuLnBhZ2UtYmFubmVyIC5iYW5uZXItY2l0eXNjYXBlIHtcbiAgbWFyZ2luOiAwO1xuICBoZWlnaHQ6IDkuMzc1cmVtO1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ucGFnZS1iYW5uZXIgLmJhbm5lci1jaXR5c2NhcGUubGluZSB7XG4gIGJhY2tncm91bmQ6IHVybChcIi4uLy4uL2ltZy91aS1hc3NldHMvY2l0eS1saW5lLXRpdGxlLnN2Z1wiKSByZXBlYXQteCBjZW50ZXIvY29udGFpbjtcbn1cblxuLnBhZ2UtYmFubmVyIC5iYW5uZXItY2l0eXNjYXBlLnNpbGhvdWV0dGUge1xuICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi8uLi9pbWcvdWktYXNzZXRzL2NpdHktc2lsaG91ZXR0ZS10aXRsZS5zdmdcIikgcmVwZWF0LXggYm90dG9tIGNlbnRlci9jb250YWluO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5wYWdlLWJhbm5lciAuYmFubmVyLWNpdHlzY2FwZS5zaWxob3VldHRlOjphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA5OSU7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIGJhY2tncm91bmQ6ICMxYTFhMWE7XG4gIGNvbnRlbnQ6ICcnO1xufVxuXG4ucGFnZS1iYW5uZXIgLmJhbm5lci1jaXR5c2NhcGUgLnNpbGhvdWV0dGUtaW5uZXItbGF5ZXIge1xuICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi8uLi9pbWcvdWktYXNzZXRzL2NpdHktc2lsaG91ZXR0ZS10aXRsZS5zdmdcIikgcmVwZWF0LXggYm90dG9tIGNlbnRlci9jb250YWluO1xuICBvcGFjaXR5OiAwLjQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwLjhyZW07XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IC01cmVtO1xuICBsZWZ0OiAwO1xuICBoZWlnaHQ6IDVyZW07XG59XG5cbi5wYWdlLWJhbm5lciAuYmFubmVyLXdyYXBwZXIge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuXG4ucGFnZS1iYW5uZXIgLmJhbm5lci13cmFwcGVyIC5wYWdlLWhlYWRpbmcge1xuICBwYWRkaW5nOiA0LjM3NXJlbSAwO1xufVxuXG4ucGFnZS1iYW5uZXIgLmJhbm5lci13cmFwcGVyIC5wYWdlLWhlYWRpbmcgLmgzIHtcbiAgY29sb3I6ICNmZmY7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4ucGFnZS1iYW5uZXIgLmJhbm5lci13cmFwcGVyIC5wYWdlLWhlYWRpbmcgLmgzOjphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5wYWdlLWJhbm5lciAuYmFubmVyLXdyYXBwZXIgLnBhZ2UtaGVhZGluZyAuaDMgLmJsYWNrLWJ1dHRvbi1vdXRsaW5lOmhvdmVyLCAucGFnZS1iYW5uZXIgLmJhbm5lci13cmFwcGVyIC5wYWdlLWhlYWRpbmcgLmgzIC5ibGFjay1idXR0b24tb3V0bGluZTpmb2N1cyB7XG4gIGJhY2tncm91bmQ6ICMxYTFhMWE7XG4gIGJvcmRlci1jb2xvcjogIzFhMWExYTtcbiAgY29sb3I6ICMwMDdBRjg7XG59XG5cbi5wYWdlLWJhbm5lciAuY2Fyb3VzZWwge1xuICBtYXJnaW46IDA7XG4gIGJhY2tncm91bmQ6ICMxYTFhMWE7XG4gIHBhZGRpbmc6IDRyZW0gMCA2cmVtO1xuICBtaW4taGVpZ2h0OiA1MDBweDtcbn1cblxuLnBhZ2UtYmFubmVyIC5jYXJvdXNlbC0tYmx1ZSB7XG4gIGJhY2tncm91bmQ6ICMwMDdBRjg7XG59XG5cbi5wYWdlLWJhbm5lciAuY2Fyb3VzZWwgLnNsaWRlciAucHJldmlvdXMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMjUlO1xuICBib3R0b206IDI1JTtcbiAgbGVmdDogMjhweDtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5wYWdlLWJhbm5lciAuY2Fyb3VzZWwgLnNsaWRlciAubmV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAyNSU7XG4gIHJpZ2h0OiAyOHB4O1xuICBib3R0b206IDI1JTtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5wYWdlLWJhbm5lciAuY2Fyb3VzZWwgLnNsaWRlciAucHJldmlvdXMsXG4ucGFnZS1iYW5uZXIgLmNhcm91c2VsIC5zbGlkZXIgLm5leHQge1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgei1pbmRleDogNTtcbiAgdHJhbnNpdGlvbjogMC4ycyBlYXNlO1xuICBwYWRkaW5nOiAxLjUwcmVtO1xuICBib3JkZXI6IDJweCBzb2xpZCAjZmZmO1xuICB3aWR0aDogNDJweDtcbiAgaGVpZ2h0OiA0MnB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWFyZ2luOiBhdXRvIDA7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBvcGFjaXR5OiAwLjU7XG59XG5cbi5wYWdlLWJhbm5lciAuY2Fyb3VzZWwgLnNsaWRlciAucHJldmlvdXMgc3Bhbixcbi5wYWdlLWJhbm5lciAuY2Fyb3VzZWwgLnNsaWRlciAubmV4dCBzcGFuIHtcbiAgbGluZS1oZWlnaHQ6IDA7XG59XG5cbi5wYWdlLWJhbm5lciAuY2Fyb3VzZWwgLnNsaWRlciAucHJldmlvdXM6aG92ZXIsIC5wYWdlLWJhbm5lciAuY2Fyb3VzZWwgLnNsaWRlciAucHJldmlvdXM6Zm9jdXMsXG4ucGFnZS1iYW5uZXIgLmNhcm91c2VsIC5zbGlkZXIgLm5leHQ6aG92ZXIsXG4ucGFnZS1iYW5uZXIgLmNhcm91c2VsIC5zbGlkZXIgLm5leHQ6Zm9jdXMge1xuICBvcGFjaXR5OiAxO1xufVxuXG4ucGFnZS1iYW5uZXIgLmNhcm91c2VsIC5zbGlkZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5wYWdlLWJhbm5lciAuY2Fyb3VzZWwgLnNsaWRlIC5pbWFnZS1ob2xkZXIge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xufVxuXG4ucGFnZS1iYW5uZXIgLmNhcm91c2VsIC5zbGlkZSBmaWdjYXB0aW9uIHtcbiAgZm9udC1zaXplOiAyLjI1cmVtO1xuICBjb2xvcjogI2ZmZjtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbn1cblxuLnBhZ2UtYmFubmVyIC5jYXJvdXNlbCAuc2xpZGUgZmlnY2FwdGlvbiBpLCAucGFnZS1iYW5uZXIgLmNhcm91c2VsIC5zbGlkZSBmaWdjYXB0aW9uIGVtLCAucGFnZS1iYW5uZXIgLmNhcm91c2VsIC5zbGlkZSBmaWdjYXB0aW9uIHN0cm9uZywgLnBhZ2UtYmFubmVyIC5jYXJvdXNlbCAuc2xpZGUgZmlnY2FwdGlvbiBiIHtcbiAgY29sb3I6ICNlZWUwNDc7XG59XG5cbi5wYWdlLWJhbm5lciAuY2Fyb3VzZWwgLnNsaWRlIC5pbWFnZS1ob2xkZXJfX2NvbnRlbnQge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG5cbi5wYWdlLWJhbm5lciAuY2Fyb3VzZWwgLnNsaWRlIC5pbWFnZS1ob2xkZXJfX2J0biB7XG4gIG1hcmdpbi10b3A6IDFyZW07XG4gIHBhZGRpbmc6IDAuNHJlbSAxLjI1cmVtO1xufVxuXG4ucGFnZS1iYW5uZXIgLmN0YS1ib3hlcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5wYWdlLWJhbm5lciAuY3RhLWJveGVzIC5jdGEtYm94IHtcbiAgd2lkdGg6IDUwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAxLjM1cmVtIDA7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYm9yZGVyOiA1cHggc29saWQgIzAwN0FGODtcbn1cblxuLnBhZ2UtYmFubmVyIC5jdGEtYm94ZXMgLmN0YS1ib3g6aG92ZXIge1xuICBmaWx0ZXI6IGJyaWdodG5lc3MoMTE1JSk7XG59XG5cbi5wYWdlLWJhbm5lciAuY3RhLWJveGVzIC5jdGEtYm94OmZpcnN0LW9mLXR5cGUge1xuICBwYWRkaW5nLWxlZnQ6IGNhbGMoKDEwMHZ3IC0gMTI3MHB4KSAvIDIgKyAxcHgpO1xuICBjb2xvcjogIzAwMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTA0NztcbiAgYm9yZGVyLWNvbG9yOiAjZWVlMDQ3O1xufVxuXG4ucGFnZS1iYW5uZXIgLmN0YS1ib3hlcyAuY3RhLWJveDpmaXJzdC1vZi10eXBlIC5saW5rIHtcbiAgY29sb3I6ICMwMDA7XG59XG5cbi5wYWdlLWJhbm5lciAuY3RhLWJveGVzIC5jdGEtYm94LnNlY29uZCB7XG4gIHBhZGRpbmctcmlnaHQ6IGNhbGMoKDEwMHZ3IC0gMTI3MHB4KSAvIDIgKyAxcHgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3QUY4O1xufVxuXG4ucGFnZS1iYW5uZXIgLmN0YS1ib3hlcyAuY3RhLWJveC5zZWNvbmQgLmN0YS1ib3hfX2xpbmsge1xuICBjb2xvcjogI2ZmZjtcbn1cblxuLnBhZ2UtYmFubmVyIC5jdGEtYm94ZXMgLmN0YS1ib3gudGhpcmQge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMS4zNXJlbSAycmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTllOWU5O1xuICBib3JkZXItY29sb3I6ICNlOWU5ZTk7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG4ucGFnZS1iYW5uZXIgLmN0YS1ib3hlcyAuY3RhLWJveC50aGlyZCAuY3RhLWJveF9fbGluayB7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG4ucGFnZS1iYW5uZXIgLmN0YS1ib3hlcyAuY3RhLWJveCAuY3RhLWJveF9fbGlua3MgYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLnBhZ2UtYmFubmVyIC5jdGEtYm94ZXMgLmN0YS1ib3ggLmN0YS1ib3hfX2xpbmtzIGE6aG92ZXIgLmN0YS1ib3hfX2xpbmsge1xuICBjb2xvcjogIzAwMDtcbn1cblxuLnBhZ2UtYmFubmVyIC5jdGEtYm94ZXMgLmN0YS1ib3ggLmN0YS1ib3hfX2xpbmtzIGE6aG92ZXIgLmN0YS1ib3hfX2xpbmsgdSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLnBhZ2UtYmFubmVyIC5jdGEtYm94ZXMgLmN0YS1ib3ggLmxpbmsge1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIHBhZGRpbmctbGVmdDogMXJlbTtcbn1cblxuLnBhZ2UtYmFubmVyIC5jdGEtYm94ZXMgLmN0YS1ib3ggLmN0YS1ib3hfX2xpbmtlZC10ZXh0IHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5wYWdlLWJhbm5lciAuY3RhLWJveGVzIC5jdGEtYm94IC5jdGEtYm94X19saW5rIHtcbiAgY29sb3I6ICMwMDA7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG1hcmdpbjogMCAxcmVtO1xufVxuXG4ucGFnZS1iYW5uZXIgLmN0YS1ib3hlcyAuY3RhLWJveCAuY3RhLWJveF9fbGluayAuZmEtYW5nbGUtcmlnaHQge1xuICBtYXJnaW4tbGVmdDogMC43NXJlbTtcbn1cblxuLnBhZ2UtYmFubmVyIC5jdGEtYm94ZXMgLmN0YS1ib3guZnVsbC13aWR0aCB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctbGVmdDogdW5zZXQ7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTI3OXB4KSB7XG4gIC5wYWdlLWJhbm5lciAuY3RhLWJveGVzIC5jdGEtYm94IHtcbiAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICB9XG4gIC5wYWdlLWJhbm5lciAuY3RhLWJveGVzIC5jdGEtYm94OmZpcnN0LW9mLXR5cGU6OmJlZm9yZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAucGFnZS1iYW5uZXIgLmN0YS1jb250YWluZXIge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbiAgLnBhZ2UtYmFubmVyIC5jdGEtYm94ZXMge1xuICAgIG1heC1oZWlnaHQ6IHVuc2V0O1xuICB9XG4gIC5wYWdlLWJhbm5lciAuY3RhLWJveGVzIC5jdGEtYm94IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5wYWdlLWJhbm5lciAuYmFubmVyLWNpdHlzY2FwZS5saW5lLCAucGFnZS1iYW5uZXIgLmJhbm5lci1jaXR5c2NhcGUuc2lsaG91ZXR0ZSB7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgfVxuICAucGFnZS1iYW5uZXIgLmJhbm5lci13cmFwcGVyIC5wYWdlLWhlYWRpbmcgaDMge1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgfVxuICAucGFnZS1iYW5uZXIgLmNhcm91c2VsIC5zbGlkZSAuaW1hZ2UtaG9sZGVyIGltZyB7XG4gICAgbWF4LXdpZHRoOiAyNTBweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMCAyLjVyZW07XG4gIH1cbiAgLnBhZ2UtYmFubmVyIC5jYXJvdXNlbCAuc2xpZGUgZmlnY2FwdGlvbiBwIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMCAyLjVyZW07XG4gICAgbWFyZ2luLXRvcDogMi41cmVtO1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgfVxuICAucGFnZS1iYW5uZXIgLmNhcm91c2VsIC5zbGlkZSAuaW1hZ2UtaG9sZGVyX19jb250ZW50IHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG4gIC5wYWdlLWJhbm5lciAuY2Fyb3VzZWwgLnNsaWRlciAucHJldmlvdXMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDI1JTtcbiAgICBib3R0b206IDI1JTtcbiAgICBsZWZ0OiAxMnB4O1xuICB9XG4gIC5wYWdlLWJhbm5lciAuY2Fyb3VzZWwgLnNsaWRlciAubmV4dCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMjUlO1xuICAgIHJpZ2h0OiAxMnB4O1xuICAgIGJvdHRvbTogMjUlO1xuICB9XG4gIC5wYWdlLWJhbm5lciAuY2Fyb3VzZWwgLnNsaWRlciAucHJldmlvdXMsXG4gIC5wYWdlLWJhbm5lciAuY2Fyb3VzZWwgLnNsaWRlciAubmV4dCB7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgIHBhZGRpbmc6IDEuMjVyZW07XG4gICAgd2lkdGg6IDI1cHg7XG4gICAgaGVpZ2h0OiAyNXB4O1xuICB9XG4gIC5wYWdlLWJhbm5lciAuY3RhLWJveGVzIC5jdGEtYm94OmZpcnN0LW9mLXR5cGUge1xuICAgIHBhZGRpbmc6IDEuMzVyZW0gMC41cmVtO1xuICB9XG59XG5cbi5uZXdzLXBvc3RpbmdzIHtcbiAgbWFyZ2luOiAycmVtIGF1dG8gNHJlbTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4jaG9tZSAubmV3cy1wb3N0aW5ncyB7XG4gIG1hcmdpbjogN3JlbSBhdXRvIDlyZW07XG59XG5cbiNob21lIC5uZXdzLWludHJvIHtcbiAgd2lkdGg6IGF1dG87XG59XG5cbiNob21lIC5jYXJkIC5jYXJkLWNvbnRlbnQgcCB7XG4gIG1hcmdpbjogMC41cmVtIDAgMi41cmVtO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSBhbmQgKG1pbi13aWR0aDogNTc2cHgpIHtcbiAgI2hvbWUgLm5ld3MtcG9zdGluZ3Mge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1heC13aWR0aDogdW5zZXQ7XG4gIH1cbiAgI2hvbWUgLmNhcmQtY29udGVudCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxuICAjaG9tZSAubmV3cy1pbnRybyB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMjc5cHgpIHtcbiAgI2hvbWUgLmxpc3Rpbmctcm93ID4gLnJvdyB7XG4gICAgaGVpZ2h0OiAzOWVtO1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgI2hvbWUgLmxpc3Rpbmctcm93IHtcbiAgICBwYWRkaW5nOiAwIDIuMjVyZW07XG4gIH1cbiAgI2hvbWUgLmxpc3Rpbmctcm93ID4gLnJvdyB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG4gICNob21lIC5uZXdzLXBvc3RpbmdzIHtcbiAgICBtYXJnaW46IDJyZW0gMDtcbiAgfVxuICAjaG9tZSAubmV3cy1pbnRybyB7XG4gICAgbWFyZ2luLWxlZnQ6IDFyZW07XG4gIH1cbiAgI2hvbWUgLnBhZ2luYXRpb24tYXJlYSB7XG4gICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiA0cmVtO1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTc1cHgpIHtcbiAgI2hvbWUge1xuICAgIG1hcmdpbjogMnJlbSAwO1xuICB9XG4gICNob21lIC5uZXdzLXBvc3Rpbmcge1xuICAgIHBhZGRpbmc6IDFyZW0gMDtcbiAgfVxufVxuXG4jaG9tZSB7XG4gIG1hcmdpbjogMDtcbn1cblxuI2hvbWUgLmhvbWUtc2VjdGlvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMTAuNXJlbSAwO1xuICBtYXJnaW46IDA7XG59XG5cbiNob21lIC5ob21lLXNlY3Rpb24gLnNlY3Rpb24tdGV4dCB7XG4gIG1hcmdpbi10b3A6IC0xcmVtO1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xufVxuXG4jaG9tZSAuaG9tZS1zZWN0aW9uIC5zZWN0aW9uLXRleHQgaDIge1xuICBjb2xvcjogdmFyKC0tYnJhbmQtcHJpbWFyeSk7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG59XG5cbiNob21lIC5ob21lLXNlY3Rpb24gLnNlY3Rpb24tdGV4dCAuYnV0dG9uLWhvbGRlciB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG5cbiNob21lIC5ob21lLXNlY3Rpb24gLnNlY3Rpb24tdGV4dCAuYnV0dG9uLWhvbGRlciAuc2VjdGlvbi1idXR0b24ge1xuICBtYXJnaW4tdG9wOiAyLjNyZW07XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYm9yZGVyOiAycHggc29saWQgIzFhMWExYTtcbiAgY29sb3I6ICMxYTFhMWE7XG4gIHBhZGRpbmc6IDAuN3JlbSAxLjc1cmVtO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS4zNXJlbTtcbiAgbWF4LXdpZHRoOiAzMDBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICB0cmFuc2l0aW9uOiBhbGwgMjUwbXMgZWFzZS1vdXQ7XG59XG5cbiNob21lIC5ob21lLXNlY3Rpb24gLnNlY3Rpb24tdGV4dCAuYnV0dG9uLWhvbGRlciAuc2VjdGlvbi1idXR0b246aG92ZXIsICNob21lIC5ob21lLXNlY3Rpb24gLnNlY3Rpb24tdGV4dCAuYnV0dG9uLWhvbGRlciAuc2VjdGlvbi1idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1icmFuZC1wcmltYXJ5KTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1icmFuZC1wcmltYXJ5KTtcbiAgY29sb3I6ICNmZmY7XG59XG5cbiNob21lIC5ob21lLXNlY3Rpb24gLnNlY3Rpb24tdGV4dC0tY2VudGVyZWQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbiNob21lIC5ob21lLXNlY3Rpb24gLnNlY3Rpb24taW1hZ2UgaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbiNob21lIC5ob21lLXNlY3Rpb24tLWJsdWUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1icmFuZC1wcmltYXJ5KTtcbiAgY29sb3I6ICNmZmY7XG59XG5cbiNob21lIC5ob21lLXNlY3Rpb24tLWJsdWUgLnNlY3Rpb24tdGV4dCBoMiB7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG4jaG9tZSAuaG9tZS1zZWN0aW9uLS1ibHVlIC5zZWN0aW9uLXRleHQgLmJ1dHRvbi1ob2xkZXIgLnNlY3Rpb24tYnV0dG9uIHtcbiAgYm9yZGVyLWNvbG9yOiAjZmZmO1xuICBjb2xvcjogdmFyKC0tYnJhbmQtcHJpbWFyeSk7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG59XG5cbiNob21lIC5ob21lLXNlY3Rpb24tLWJsdWUgLnNlY3Rpb24tdGV4dCAuYnV0dG9uLWhvbGRlciAuc2VjdGlvbi1idXR0b246aG92ZXIsICNob21lIC5ob21lLXNlY3Rpb24tLWJsdWUgLnNlY3Rpb24tdGV4dCAuYnV0dG9uLWhvbGRlciAuc2VjdGlvbi1idXR0b246Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1icmFuZC1wcmltYXJ5KTtcbiAgY29sb3I6ICNmZmY7XG4gIGJvcmRlci1jb2xvcjogI2ZmZjtcbn1cblxuI2hvbWUgLmhvbWUtc2VjdGlvbi0tYmx1ZSAuc2VjdGlvbi10ZXh0IGxpOjpiZWZvcmUge1xuICBjb2xvcjogI2ZmZjtcbn1cblxuI2hvbWUgLmhvbWUtc2VjdGlvbi0tcmFkaWF0aW9uIHtcbiAgYmFja2dyb3VuZDogdXJsKFwiLi4vLi4vaW1nL3VpLWFzc2V0cy9udWNsZWFyLWJhY2tncm91bmQtdGlsZS5zdmdcIikgcmVwZWF0IGNlbnRlci83MDBweCAzNzAuMTY5NDlweDtcbn1cblxuI2hvbWUgLmhvbWUtc2VjdGlvbi0tZ3JleSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJyYW5kLWxpZ2h0KTtcbn1cblxuI2hvbWUgLmhvbWUtc2VjdGlvbi0tbGlnaHQtYmx1ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJyYW5kLWxpZ2h0LWJsdWUpO1xufVxuXG4jaG9tZSAuaG9tZS1zZWN0aW9uLnJlc2VhcmNoIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYnJhbmQtbGlnaHQpIHVybChcIi4uLy4uL2ltZy91aS1hc3NldHMvcmFkb24tY2hlbWljYWwtc3RydWN0dXJlLXRpbGUuc3ZnXCIpIHJlcGVhdCBjZW50ZXIvNzAwcHggYXV0bztcbn1cblxuI2hvbWUgLmhvbWUtc2VjdGlvbi5yZXNlYXJjaCAuc2VjdGlvbi10ZXh0LnJlc2VhcmNoLXRleHQge1xuICBtYXJnaW4tdG9wOiAxLjVlbTtcbn1cblxuI2hvbWUgLmhvbWUtc2VjdGlvbi5yZXNlYXJjaCAuc2VjdGlvbi10ZXh0LnJlc2VhcmNoLXRleHQgaDIsICNob21lIC5ob21lLXNlY3Rpb24ucmVzZWFyY2ggLnNlY3Rpb24tdGV4dC5yZXNlYXJjaC10ZXh0IHAge1xuICBjb2xvcjogIzFhMWExYTtcbn1cblxuI2hvbWUgLmhvbWUtc2VjdGlvbi5yZXNlYXJjaCAuc2VjdGlvbi10ZXh0LnJlc2VhcmNoLXRleHQgaDMge1xuICBjb2xvcjogdmFyKC0tYnJhbmQtdGVydGlhcnkpO1xuICBtYXJnaW4tdG9wOiAxLjNyZW07XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbn1cblxuI2hvbWUgLmhvbWUtc2VjdGlvbi5yZXNlYXJjaCAuc2VjdGlvbi10ZXh0LnJlc2VhcmNoLXRleHQgaDM6OmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuI2hvbWUgLmhvbWUtc2VjdGlvbi5yZXNlYXJjaCAuc2VjdGlvbi10ZXh0LnJlc2VhcmNoLXRleHQgLmJ1dHRvbi1ob2xkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4jaG9tZSAuaG9tZS1zZWN0aW9uLnJlc2VhcmNoIC5zZWN0aW9uLXRleHQucmVzZWFyY2gtdGV4dCAuYnV0dG9uLWhvbGRlciAuc2VjdGlvbi1idXR0b24ge1xuICBjb2xvcjogdmFyKC0tYnJhbmQtdGVydGlhcnkpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWJyYW5kLXRlcnRpYXJ5KTtcbiAgbWFyZ2luLXJpZ2h0OiAzcmVtO1xufVxuXG4jaG9tZSAuaG9tZS1zZWN0aW9uLnJlc2VhcmNoIC5zZWN0aW9uLXRleHQucmVzZWFyY2gtdGV4dCAuYnV0dG9uLWhvbGRlciAuc2VjdGlvbi1idXR0b246aG92ZXIsICNob21lIC5ob21lLXNlY3Rpb24ucmVzZWFyY2ggLnNlY3Rpb24tdGV4dC5yZXNlYXJjaC10ZXh0IC5idXR0b24taG9sZGVyIC5zZWN0aW9uLWJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJyYW5kLXRlcnRpYXJ5KTtcbiAgY29sb3I6ICNmZmY7XG59XG5cbiNob21lIC5ob21lLXNlY3Rpb24ucmVzZWFyY2ggLnNlY3Rpb24tdGV4dC5yZXNlYXJjaC10ZXh0IC5idXR0b24taG9sZGVyIC51b2ZjLWxpbmsge1xuICBoZWlnaHQ6IDNyZW07XG4gIHdpZHRoOiBhdXRvO1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuI2hvbWUgLmhvbWUtc2VjdGlvbi5yZXNlYXJjaCAuc2VjdGlvbi10ZXh0LnJlc2VhcmNoLXRleHQgLmJ1dHRvbi1ob2xkZXIgLnVvZmMtbGluayBpbWcge1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiBhdXRvO1xuICBtYXJnaW4tdG9wOiA1cHg7XG59XG5cbi5ob21lLXNlY3Rpb25fX2ltYWdlLS1mdWxsLWJsZWVkIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogNTAlO1xufVxuXG4uaG9tZS1zZWN0aW9uX19pbWFnZS1lbCB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xufVxuXG4uaG9tZS1zZWN0aW9uOm50aC1vZi10eXBlKG9kZCkgLnNlY3Rpb24taW1hZ2UsXG4uaG9tZS1zZWN0aW9uOm50aC1vZi10eXBlKG9kZCkgLmhvbWUtc2VjdGlvbl9faW1hZ2UtLWZ1bGwtYmxlZWQge1xuICBvcmRlcjogMTtcbn1cblxuLmhvbWUtc2VjdGlvbjpudGgtb2YtdHlwZShldmVuKTpoYXMoLmhvbWUtc2VjdGlvbl9faW1hZ2UtLWZ1bGwtYmxlZWQpIC5zZWN0aW9uLXRleHQge1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbWFyZ2luLXJpZ2h0OiA4LjMzJTtcbn1cblxuLmhvbWUtc2VjdGlvbjpudGgtb2YtdHlwZShvZGQpOmhhcyguaG9tZS1zZWN0aW9uX19pbWFnZS0tZnVsbC1ibGVlZCkgLnNlY3Rpb24tcm93IHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cblxuLmhvbWUtc2VjdGlvbjpudGgtb2YtdHlwZShvZGQpIC5ob21lLXNlY3Rpb25fX2ltYWdlLS1mdWxsLWJsZWVkIHtcbiAgcmlnaHQ6IHVuc2V0O1xuICBsZWZ0OiAwO1xufVxuXG4uYy1ociB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgI2hvbWUge1xuICAgIG1hcmdpbi10b3A6IC0zcmVtO1xuICB9XG4gICNob21lIC5ob21lLXNlY3Rpb24ge1xuICAgIHBhZGRpbmc6IHZhcigtLWdyaWQtZ3V0dGVyLXdpZHRoKSAwIDQuNXJlbTtcbiAgfVxuICAjaG9tZSAuaG9tZS1zZWN0aW9uIC5zZWN0aW9uLXRleHQge1xuICAgIG1hcmdpbi10b3A6IDEuNXJlbTtcbiAgICBvcmRlcjogMTtcbiAgfVxuICAjaG9tZSAuaG9tZS1zZWN0aW9uIC5zZWN0aW9uLWltYWdlIHtcbiAgICBwYWRkaW5nOiAwIDJyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogNHJlbTtcbiAgfVxuICAjaG9tZSAuaG9tZS1zZWN0aW9uIC5zZWN0aW9uLWltYWdlIGltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIG1heC13aWR0aDogMTcuNXJlbTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICAjaG9tZSAuaG9tZS1zZWN0aW9uLnJlc2VhcmNoIC5zZWN0aW9uLWltYWdlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gICNob21lIC5ob21lLXNlY3Rpb25fX2ltYWdlLS1mdWxsLWJsZWVkIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuIEBAQCBHbG9iYWwgRXh0ZW5zaW9uc1xuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gQEAgR2VuZXJpYyBTdHlsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qIC0tLS0tLS0tLS1cbiBAIERpc3BsYXlcbi0tLS0tLS0tLS0gKi9cblxuJWJsb2NrIHtcblx0ZGlzcGxheTogYmxvY2s7XG59XG4laW5saW5lIHtcblx0ZGlzcGxheTogaW5saW5lO1xufVxuJWlubGluZS1ibG9jayB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbiV0YWJsZSB7XG5cdGRpc3BsYXk6IHRhYmxlO1xufVxuJXRhYmxlLXJvdyB7XG4gICAgZGlzcGxheTogdGFibGUtcm93O1xufVxuJXRhYmxlLWNlbGwge1xuXHRkaXNwbGF5OiB0YWJsZS1jZWxsO1xufVxuJW5vbmUge1xuXHRkaXNwbGF5OiBub25lO1xufVxuJXBzZXVkbyB7XG5cdGNvbnRlbnQ6IFwiXCI7XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKiAtLS0tLS0tLS0tXG4gQCBQb3NpdGlvbmluZ1xuLS0tLS0tLS0tLSAqL1xuXG4lYWJzb2x1dGUge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG59XG4lcmVsYXRpdmUge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4lZml4ZWQge1xuXHRwb3NpdGlvbjogZml4ZWQ7XG59XG4lc3RhdGljIHtcblx0cG9zaXRpb246IHN0YXRpYztcbn1cbiVzdHJldGNoIHtcblx0dG9wOiAwO1xuXHRib3R0b206IDA7XG5cdGxlZnQ6IDA7XG5cdHJpZ2h0OiAwO1xufVxuXG4vKiAtLS0tLS0tLS0tXG4gQCBMYXlvdXRcbi0tLS0tLS0tLS0gKi9cblxuJWZ1bGwtd2lkdGgge1xuXHR3aWR0aDogMTAwJTtcbn1cbiVmdWxsLWhlaWdodCB7XG5cdGhlaWdodDogMTAwJTtcbn1cbiVhbGlnbi1sZWZ0IHtcblx0dGV4dC1hbGlnbjogbGVmdDtcbn1cbiVhbGlnbi1jZW50ZXIge1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4lYWxpZ24tcmlnaHQge1xuXHR0ZXh0LWFsaWduOiByaWdodDtcbn1cbiVqdXN0aWZ5IHtcblx0dGV4dC1hbGlnbjoganVzdGlmeTtcbn1cbiV2LWFsaWduLXRvcCB7XG5cdHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4ldi1hbGlnbi1taWRkbGUge1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuJXYtYWxpZ24tYm90dG9tIHtcblx0dmVydGljYWwtYWxpZ246IGJvdHRvbTtcbn1cbiV2LWFsaWduLWJhc2VsaW5lIHtcblx0dmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuJW5vLW1hcmdpbiB7XG5cdG1hcmdpbjogMDtcbn1cbiVtYXJnaW4tYXV0byB7XG5cdG1hcmdpbjogYXV0bztcbn1cbiVuby1wYWRkaW5nIHtcblx0cGFkZGluZzogMDtcbn1cbiVmbG9hdC1sZWZ0IHtcblx0ZmxvYXQ6IGxlZnQ7XG59XG4lZmxvYXQtcmlnaHQge1xuXHRmbG9hdDogcmlnaHQ7XG59XG4lZmxvYXQtbm9uZSB7XG4gICAgZmxvYXQ6IG5vbmU7XG59XG5cbi8qIC0tLS0tLS0tLS1cbiBAIENvbG9yc1xuLS0tLS0tLS0tLSAqL1xuXG4lYmctd2hpdGUge1xuXHRiYWNrZ3JvdW5kOiAjZmZmO1xufVxuJWJnLWJsYWNrIHtcblx0YmFja2dyb3VuZDogIzAwMDtcbn1cbiVjb2xvci13aGl0ZSB7XG5cdGNvbG9yOiAjZmZmO1xufVxuJWNvbG9yLWJsYWNrIHtcblx0Y29sb3I6ICMwMDA7XG59XG5cbi8qIC0tLS0tLS0tLS1cbiBAIFR5cG9ncmFwaHlcbi0tLS0tLS0tLS0gKi9cblxuJXVwcGVyY2FzZSB7XG5cdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG4lbG93ZXJjYXNlIHtcblx0dGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTtcbn1cbiVjYXBpdGFsaXplIHtcblx0dGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG59XG4ldW5kZXJsaW5lIHtcblx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4lbm8tdW5kZXJsaW5lIHtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuJW5vLWxpc3Qtc3R5bGUge1xuXHRsaXN0LXN0eWxlOiBub25lO1xufVxuJXdoaXRlLXNwYWNlLW5vcm1hbCB7XG5cdHdoaXRlLXNwYWNlOiBub3JtYWw7XG59XG4lbm93cmFwIHtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbiVlbGxpcHNpcyB7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4vKiAtLS0tLS0tLS0tXG4gQCBPdmVyZmxvd1xuLS0tLS0tLS0tLSAqL1xuXG4lb3ZlcmZsb3ctYXV0byB7XG5cdG92ZXJmbG93OiBhdXRvO1xufVxuJW92ZXJmbG93LWhpZGRlbiB7XG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG4lb3ZlcmZsb3ctdmlzaWJsZSB7XG5cdG92ZXJmbG93OiB2aXNpYmxlO1xufVxuJW92ZXJmbG93LXNjcm9sbCB7XG5cdG92ZXJmbG93OiBzY3JvbGw7XG59XG5cbi8qIC0tLS0tLS0tLS1cbiBAIE1pc2MgVmlzdWFsc1xuLS0tLS0tLS0tLSAqL1xuXG4lcG9pbnRlciB7XG5cdGN1cnNvcjogcG9pbnRlcjtcbn1cbiV0cmFuc2l0aW9uIHtcblx0dHJhbnNpdGlvbjogMC4xNXMgYWxsIGVhc2UtaW4tb3V0O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIEBAIENvbXBvbmVudHNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qIC0tLS0tLS0tLS1cbiBAIFBhZ2luYXRpb25cbi0tLS0tLS0tLS0gKi9cblxuJXBhZ2luYXRpb24ge1xuXHQucGFnZS1saW5rIHtcblx0XHRAaWYgdmFyaWFibGUtZXhpc3RzKGJvZHktY29sb3Ipe1xuXHRcdFx0Y29sb3I6ICRib2R5LWNvbG9yO1xuXHRcdH1cblx0fVxuXHQuZGlzYWJsZWQgLnBhZ2UtbGluayB7XG5cdFx0Y3Vyc29yOiBub3QtYWxsb3dlZDtcblx0XHRwb2ludGVyLWV2ZW50czogYWxsO1xuXHR9XG59XG5cbi8qIC0tLS0tLS0tLS1cbiBAIFNsaWRlcnNcbi0tLS0tLS0tLS0gKi9cblxuJXNsaWRlciB7XG4gICAgQGV4dGVuZCAlcmVsYXRpdmUgIW9wdGlvbmFsO1xuXHRAZXh0ZW5kIC5uby1heGlvbWF0aWMtbWFyZ2luICFvcHRpb25hbDtcblxuICAgIC5zbGlkZS1wYWdpbmF0aW9uIHtcbiAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgICAgIG1hcmdpbjogMC41ZW07XG5cdFx0XHRAaWYgdmFyaWFibGUtZXhpc3RzKGZvbnQtc2l6ZS1iYXNlKXtcblx0XHRcdFx0Zm9udC1zaXplOiAkZm9udC1zaXplLWJhc2U7XG5cdFx0XHR9XG4gICAgICAgICAgICBAaW5jbHVkZSBzaXplKDFlbSk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMDAwO1xuXG4gICAgICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIFtkYXRhLXNsaWRlci1jb21wb25lbnR+PVwiY29udHJvbHNcIl0ge1xuICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgQGV4dGVuZCAlcG9pbnRlciAhb3B0aW9uYWw7XG4gICAgICAgIH1cbiAgICB9XG5cdC5zbGlkZS1vdmVyZmxvdyB7XG5cdFx0QGV4dGVuZCAlb3ZlcmZsb3ctaGlkZGVuICFvcHRpb25hbDtcblx0fVxuXHQuc2xpZGUge1xuXHRcdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHR9XG4gICAgJi50cmFuc2l0aW9uLWZhZGUge1xuICAgICAgICBAZXh0ZW5kICVyZWxhdGl2ZSAhb3B0aW9uYWw7XG5cbiAgICAgICAgLnNsaWRlLWhvbGRlciB7XG4gICAgICAgICAgICBAZXh0ZW5kICVmdWxsLXdpZHRoICFvcHRpb25hbDtcblx0XHRcdGhlaWdodDogMjVlbTtcbiAgICAgICAgICAgIEBleHRlbmQgJXJlbGF0aXZlICFvcHRpb25hbDtcbiAgICAgICAgfVxuXHRcdC5zbGlkZSB7XG5cdFx0XHRAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCAwIDAgMCk7XG5cdFx0fVxuICAgIH1cbiAgICAmLnRyYW5zaXRpb24tc2xpZGUge1xuICAgICAgICAuc2xpZGUtaG9sZGVyIHtcbiAgICAgICAgICAgIEBleHRlbmQgJXJlbGF0aXZlICFvcHRpb25hbDtcbiAgICAgICAgICAgIEBleHRlbmQgLmQtZmxleCAhb3B0aW9uYWw7XG5cdFx0XHRAZXh0ZW5kIC5hbGlnbi1pdGVtcy1jZW50ZXIgIW9wdGlvbmFsO1xuXHRcdFx0ZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cbiAgICAgICAgLnNsaWRlIHtcblx0XHRcdGZsZXg6IDE7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIC0tLS0tLS0tLS1cbiBAIFRleHQgRmllbGRzXG4tLS0tLS0tLS0tICovXG5cbiVpbnB1dCB7XG5cdGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzAwMDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIHBhZGRpbmc6IDAuMzVlbTtcblxuICAgIEBpZiB2YXJpYWJsZS1leGlzdHModGhlbWUtY29sb3JzKSBhbmQgbWFwLWhhcy1rZXkoJHRoZW1lLWNvbG9ycywgcHJpbWFyeSl7XG5cdCAgICAmOmZvY3VzIHtcblx0ICAgICAgICBib3JkZXItY29sb3I6IG1hcC1nZXQoJHRoZW1lLWNvbG9ycywgcHJpbWFyeSk7XG5cdCAgICB9XG5cdH1cblx0QGlmIHZhcmlhYmxlLWV4aXN0cyh0aGVtZS1jb2xvcnMpIGFuZCBtYXAtaGFzLWtleSgkdGhlbWUtY29sb3JzLCBkYW5nZXIpe1xuXHQgICAgJi5lcnJvciB7XG5cdCAgICAgICAgYm9yZGVyLWNvbG9yOiBtYXAtZ2V0KCR0aGVtZS1jb2xvcnMsIGRhbmdlcik7XG5cdCAgICB9XG5cdH1cbn1cblxuLyogLS0tLS0tLS0tLVxuIEAgRHJvcGRvd25zXG4tLS0tLS0tLS0tICovXG5cbiVjdXN0b20tZHJvcGRvd24ge1xuICAgIEBleHRlbmQgJXJlbGF0aXZlICFvcHRpb25hbDtcblxuICAgIHNlbGVjdCB7XG4gICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIEBleHRlbmQgJXBvaW50ZXIgIW9wdGlvbmFsO1xuICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCAwIDAgMCk7XG4gICAgICAgIHotaW5kZXg6IDU7XG4gICAgICAgIG9wYWNpdHk6IDA7XG5cbiAgICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgICAgICAmICsgLmZha2UtZHJvcGRvd24ge1xuXHRcdFx0XHRAaWYgdmFyaWFibGUtZXhpc3RzKHRoZW1lLWNvbG9ycykgYW5kIG1hcC1oYXMta2V5KCR0aGVtZS1jb2xvcnMsIHByaW1hcnkpe1xuXHQgICAgICAgICAgICAgICAgLmFycm93LWhvbGRlciB7XG5cdCAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogZGFya2VuKG1hcC1nZXQoJHRoZW1lLWNvbG9ycywgcHJpbWFyeSksIDEwJSk7XG5cdCAgICAgICAgICAgICAgICB9XG5cdCAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAuZmFrZS1kcm9wZG93biB7XG4gICAgICAgIFtkYXRhLXZhbHVlXSB7XG4gICAgICAgICAgICBAZXh0ZW5kICVpbnB1dDtcbiAgICAgICAgfVxuICAgICAgICAuYXJyb3ctaG9sZGVyIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IDAuMTVzIGJhY2tncm91bmQgZWFzZS1pbi1vdXQ7XG5cdFx0XHRAaWYgdmFyaWFibGUtZXhpc3RzKHRoZW1lLWNvbG9ycykgYW5kIG1hcC1oYXMta2V5KCR0aGVtZS1jb2xvcnMsIHByaW1hcnkpe1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCR0aGVtZS1jb2xvcnMsIHByaW1hcnkpO1xuXHRcdFx0fVxuICAgICAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDAgMCBudWxsIG51bGwpO1xuICAgICAgICAgICAgQGV4dGVuZCAlYWxpZ24tY2VudGVyICFvcHRpb25hbDtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNpemUoMi4wNWVtKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgICAgQGV4dGVuZCAlaW5saW5lLWJsb2NrICFvcHRpb25hbDtcblxuXHRcdFx0QGlmIHZhcmlhYmxlLWV4aXN0cyh0aGVtZS1jb2xvcnMpIGFuZCBtYXAtaGFzLWtleSgkdGhlbWUtY29sb3JzLCBwcmltYXJ5KXtcblx0ICAgICAgICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG5cdCAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBkYXJrZW4obWFwLWdldCgkdGhlbWUtY29sb3JzLCBwcmltYXJ5KSwgMTAlKTtcblx0ICAgICAgICAgICAgfVxuXHQgICAgICAgIH1cbiAgICAgICAgICAgIC5hcnJvdzpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBGb250QXdlc29tZTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlxcZjBkN1wiO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiAtLS0tLS0tLS0tXG4gQCBDaGVja2JveGVzXG4tLS0tLS0tLS0tICovXG5cbiVjdXN0b20tY2hlY2tib3gge1xuXHRAaWYgdmFyaWFibGUtZXhpc3RzKGdyaWQtcGFkZGluZyl7XG5cdFx0bWFyZ2luOiAkZ3JpZC1wYWRkaW5nIDA7XG5cdH1cblx0QGV4dGVuZCAuZC1mbGV4ICFvcHRpb25hbDtcblx0QGV4dGVuZCAuYWxpZ24taXRlbXMtY2VudGVyICFvcHRpb25hbDtcblxuXHRsYWJlbCB7XG5cdFx0ZmxleC1ncm93OiAxO1xuXHRcdHBhZGRpbmctbGVmdDogMC41cmVtO1xuXHRcdGZvbnQtc2l6ZTogMXJlbTtcblx0XHRsaW5lLWhlaWdodDogMS4yO1xuXHR9XG4gICAgbGkge1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cblx0aW5wdXQge1xuXHRcdG9wYWNpdHk6IDA7XG5cdFx0bWFyZ2luLXRvcDogMDtcblx0XHRAZXh0ZW5kICVyZWxhdGl2ZSAhb3B0aW9uYWw7XG5cdFx0ei1pbmRleDogNTtcblx0XHRAZXh0ZW5kICVwb2ludGVyICFvcHRpb25hbDtcbiAgICAgICAgQGluY2x1ZGUgc2l6ZSgxMDAlKTtcblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cdFx0JltkaXNhYmxlZF0gfiAuaW5wdXQtYmcge1xuXHRcdFx0b3BhY2l0eTogMC4zNTtcblx0XHR9XG5cdH1cbiAgICAuaW5wdXQge1xuICAgICAgICBAaW5jbHVkZSBzaXplKDEuMjVlbSk7XG5cdFx0bWFyZ2luLXJpZ2h0OiAwLjVlbTtcblx0XHRAZXh0ZW5kICVyZWxhdGl2ZSAhb3B0aW9uYWw7XG5cdFx0QGV4dGVuZCAlcG9pbnRlciAhb3B0aW9uYWw7XG5cdH1cbiAgICAuaW5wdXQtYmcge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjMDAwO1xuICAgICAgICBAZXh0ZW5kICVhYnNvbHV0ZSAhb3B0aW9uYWw7XG4gICAgICAgIEBleHRlbmQgJXN0cmV0Y2ggIW9wdGlvbmFsO1xuICAgIH1cbiAgICAuc2VsZWN0ZWQtaW5kaWNhdG9yIHtcbiAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDUwJSBudWxsIG51bGwgNTAlKTtcbiAgICAgICAgQGV4dGVuZCAlYWxpZ24tY2VudGVyICFvcHRpb25hbDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwtNTAlKTtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBmb250LWZhbWlseTogRm9udEF3ZXNvbWU7XG4gICAgICAgICAgICBjb250ZW50OiBcIlxcZjAwY1wiO1xuICAgICAgICAgICAgd2lkdGg6IDEuMzVyZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4zNXJlbTtcbiAgICAgICAgICAgIEBleHRlbmQgJWFsaWduLWNlbnRlciAhb3B0aW9uYWw7XG4gICAgICAgICAgICBAZXh0ZW5kICVpbmxpbmUtYmxvY2sgIW9wdGlvbmFsO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogMC4xNXMgdHJhbnNmb3JtIGVhc2UtaW4tb3V0O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuc2VsZWN0ZWQge1xuICAgICAgICAuc2VsZWN0ZWQtaW5kaWNhdG9yIHtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIEBpZiB2YXJpYWJsZS1leGlzdHMoZm9udC13ZWlnaHRzKSBhbmQgbWFwLWhhcy1rZXkoJGZvbnQtd2VpZ2h0cywgcmVndWxhcil7XG5cdCAgICAgICAgZm9udC13ZWlnaHQ6IG1hcC1nZXQoJGZvbnQtd2VpZ2h0cywgcmVndWxhcik7XG5cdCAgICB9XG4gICAgfVxuXHQmLmZvY3VzIGxhYmVsLCAuZm9jdXMgKyBsYWJlbCB7XG5cdFx0QGV4dGVuZCAldW5kZXJsaW5lICFvcHRpb25hbDtcblx0fVxuXHRAaWYgdmFyaWFibGUtZXhpc3RzKHRoZW1lLWNvbG9ycykgYW5kIG1hcC1oYXMta2V5KCR0aGVtZS1jb2xvcnMsIHByaW1hcnkpe1xuXHQgICAgLmZvY3VzICsgbGkgaW5wdXQge1xuXHQgICAgICAgIGJvcmRlci1jb2xvcjogbWFwLWdldCgkdGhlbWUtY29sb3JzLCBwcmltYXJ5KTtcblx0ICAgIH1cblx0fVxufVxuXG4vKiAtLS0tLS0tLS0tXG4gQCBSYWRpbyBCdXR0b25zXG4tLS0tLS0tLS0tICovXG5cbiVjdXN0b20tcmFkaW8ge1xuXHRAZXh0ZW5kICVjdXN0b20tY2hlY2tib3g7XG5cblx0LmlucHV0LWJnIHtcblx0XHRib3JkZXItcmFkaXVzOiAyMHJlbTtcblx0fVxufVxuXG4vKiAtLS0tLS0tLS0tXG4gQCBEaWFsb2dzXG4tLS0tLS0tLS0tICovXG5cbiVkaWFsb2ctaG9sZGVyIHtcblx0QGluY2x1ZGUgcG9zaXRpb24oZml4ZWQsIDAgMCAwIDApO1xuXHRvdmVyZmxvdzogc2Nyb2xsO1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMyk7XG4gICAgdHJhbnNpdGlvbjogMC4ycyBiYWNrZ3JvdW5kIGVhc2UtaW4tb3V0O1xuXG5cdC5zY3JvbGwge1xuXHRcdEBleHRlbmQgJWZ1bGwtd2lkdGggIW9wdGlvbmFsO1xuXHRcdEBleHRlbmQgJWZ1bGwtaGVpZ2h0ICFvcHRpb25hbDtcblx0XHRAZXh0ZW5kICV0YWJsZSAhb3B0aW9uYWw7XG5cdH1cblx0LmNlbnRlciB7XG5cdFx0QGV4dGVuZCAldGFibGUtY2VsbCAhb3B0aW9uYWw7XG5cdFx0QGV4dGVuZCAldi1hbGlnbi1taWRkbGUgIW9wdGlvbmFsO1xuICAgICAgICBAZXh0ZW5kICVyZWxhdGl2ZSAhb3B0aW9uYWw7XG5cdH1cblx0LmRpYWxvZyB7XG4gICAgICAgIEBleHRlbmQgJWJnLXdoaXRlICFvcHRpb25hbDtcblx0XHRAZXh0ZW5kICVmdWxsLXdpZHRoICFvcHRpb25hbDtcblx0XHRAaWYgdmFyaWFibGUtZXhpc3RzKGdyaWQtZ3V0dGVyLXdpZHRoKXtcblx0XHRcdG1hcmdpbjogJGdyaWQtZ3V0dGVyLXdpZHRoIGF1dG87XG5cdFx0fVxuICAgICAgICBtYXgtd2lkdGg6IDUwMHB4O1xuXHRcdHdpZHRoOiA5MCU7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDFlbSByZ2JhKDAsMCwwLDAuMzUpO1xuXHRcdEBpZiB2YXJpYWJsZS1leGlzdHMoZ3JpZC1wYWRkaW5nKXtcblx0XHRcdHBhZGRpbmc6ICRncmlkLXBhZGRpbmcgKiAxLjU7XG5cdFx0fVxuXHRcdHRyYW5zZm9ybTogc2NhbGUoMC41KTtcblxuXHRcdEBpZiB2YXJpYWJsZS1leGlzdHMoZ3JpZC1icmVha3BvaW50cyl7XG5cdFx0XHQmLmRpYWxvZy1sZyB7XG5cdFx0XHRcdG1heC13aWR0aDogbWFwLWdldCgkZ3JpZC1icmVha3BvaW50cywgbGcpO1xuXHRcdFx0fVxuXHRcdFx0Ji5kaWFsb2ctbWQge1xuXHRcdFx0XHRtYXgtd2lkdGg6IG1hcC1nZXQoJGdyaWQtYnJlYWtwb2ludHMsIG1kKTtcblx0XHRcdH1cblx0XHRcdCYuZGlhbG9nLXNtIHtcblx0XHRcdFx0bWF4LXdpZHRoOiBtYXAtZ2V0KCRncmlkLWJyZWFrcG9pbnRzLCBzbSk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC5kaWFsb2ctaGVhZGluZyB7XG5cdFx0XHRAaWYgdmFyaWFibGUtZXhpc3RzKGdyaWQtcGFkZGluZykgYW5kIHZhcmlhYmxlLWV4aXN0cyhncmlkLWd1dHRlci13aWR0aCl7XG5cdFx0XHRcdHBhZGRpbmc6ICgkZ3JpZC1wYWRkaW5nICogMS41KSAkZ3JpZC1ndXR0ZXItd2lkdGg7XG5cdFx0XHR9XG5cbiAgICAgICAgICAgIGg0IHtcblx0XHRcdFx0cGFkZGluZy1yaWdodDogMmVtO1xuXHRcdFx0XHRtYXJnaW46IDA7XG4gICAgICAgICAgICB9XG5cdFx0fVxuXHRcdC5idXR0b24tZ3JvdXAge1xuXHRcdFx0QGlmIHZhcmlhYmxlLWV4aXN0cyhncmlkLXBhZGRpbmcpe1xuXHRcdFx0XHRtYXJnaW4tdG9wOiAkZ3JpZC1wYWRkaW5nO1xuXHRcdFx0fVxuXG5cdFx0XHQuYnRuIHtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAwLjVlbTtcblx0XHRcdH1cblx0XHR9XG5cdFx0LmRpYWxvZy1lcnJvciB7XG5cdFx0XHR3aWR0aDogNjAlO1xuXHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdH1cblx0Jjpub3QoLmNsb3NpbmcpIH4gJiB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdH1cbn1cblxuLyogLS0tLS0tLS0tLVxuIEAgVG9vbHRpcHNcbi0tLS0tLS0tLS0gKi9cblxuJXRvb2x0aXBzdGVyLWJhc2Uge1xuXHQudG9vbHRpcHN0ZXItYm94IHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDhweCByZ2JhKDAsMCwwLDAuMjUpO1xuXHRcdGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuXHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHRsaW5lLWhlaWdodDogMThweDtcblx0XHRwYWRkaW5nOiA4cHggMTBweDtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBtYXgtd2lkdGg6IDI3NXB4O1xuXG4gICAgICAgIC50b29sdGlwc3Rlci1jb250ZW50IHtcbiAgICAgICAgICAgIEBleHRlbmQgJWNvbG9yLXdoaXRlICFvcHRpb25hbDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cblx0fVxuICAgIC50b29sdGlwc3Rlci1hcnJvdy1ib3JkZXIge1xuICAgIFx0ZGlzcGxheTogbm9uZTtcbiAgICB9XG5cdCYuZGVmYXVsdCB7XG4gICAgICAgIC50b29sdGlwc3Rlci1ib3gge1xuICAgICAgICBcdEBpZiB2YXJpYWJsZS1leGlzdHMoYm9keS1jb2xvcil7XG5cdCAgICAgICAgICAgIGJhY2tncm91bmQ6ICRib2R5LWNvbG9yO1xuXHQgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAudG9vbHRpcHN0ZXItYXJyb3ctYmFja2dyb3VuZCB7XG4gICAgICAgIFx0QGlmIHZhcmlhYmxlLWV4aXN0cyhib2R5LWNvbG9yKXtcblx0ICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGJvZHktY29sb3I7XG5cdCAgICAgICAgfVxuICAgICAgICB9XG5cdH1cbiAgICB1bC50b29sdGlwLWxpc3Qge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxLjVlbTtcblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gICAgICAgIH1cbiAgICAgICAgcCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuIEBAIFByb2plY3QgU3BlY2lmaWMgVmFyaWFibGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKiAtLS0tLS0tLS0tXG4gQCBPcHRpb25zXG4tLS0tLS0tLS0tICovXG5cbiRlbmFibGUtcm91bmRlZDogICAgICAgICAgICBmYWxzZTtcbiRlbmFibGUtc2hhZG93czpcdFx0XHRmYWxzZTtcbiRlbmFibGUtcmVzcG9uc2l2ZS10ZXh0Olx0dHJ1ZTtcblxuLyogLS0tLS0tLS0tLVxuIEAgQ29sb3JzXG4tLS0tLS0tLS0tICovXG5cbiRicmFuZC1wcmltYXJ5OiAgICAgICAgICMwMDdBRjg7XG4kYnJhbmQtc2Vjb25kYXJ5OiAgICAgICAjZWVlMDQ3O1xuJGJyYW5kLXRlcnRpYXJ5OiAgICAgICAgI2U5MmEwZTtcblxuJHRoZW1lLWNvbG9yczogbWFwLW1lcmdlKCR0aGVtZS1jb2xvcnMsIChcbiAgICBwcmltYXJ5OiAkYnJhbmQtcHJpbWFyeSxcbiAgICBzZWNvbmRhcnk6ICRicmFuZC1zZWNvbmRhcnksXG4gICAgdGVydGlhcnk6ICRicmFuZC10ZXJ0aWFyeSxcbiAgICBibHVlOiAkYnJhbmQtcHJpbWFyeSxcbiAgICB5ZWxsb3c6ICRicmFuZC1zZWNvbmRhcnksXG4gICAgcmVkOiAkYnJhbmQtdGVydGlhcnksXG4gICAgYnJhbmQtbGlnaHQ6ICNlOWU5ZTksXG4gICAgYnJhbmQtZGFyazogIzFhMWExYSxcbiAgICBsaWdodDogI2U5ZTllOSxcbiAgICBkYXJrOiAjMWExYTFhLFxuICAgIHN1Y2Nlc3M6ICM2NmIxMzIsXG4gICAgaW5mbzogJGJyYW5kLXByaW1hcnksXG4gICAgd2FybmluZzogJGJyYW5kLXNlY29uZGFyeSxcbiAgICBkYW5nZXI6ICRicmFuZC10ZXJ0aWFyeVxuKSk7XG5cbiRib2R5LWJnOiAgICAgICAgICAgICAgICNmZmY7XG4kYm9keS1jb2xvcjogICAgICAgICAgICAjMWExYTFhO1xuXG4kbGluay1jb2xvcjogICAgICAgICAgICAkYnJhbmQtcHJpbWFyeTtcbiRsaW5rLWhvdmVyLWNvbG9yOiAgICAgIGRhcmtlbigkbGluay1jb2xvciwgMTUlKTtcblxuJGxpbmUtY29sb3I6IFx0XHRcdCNkZGQ7XG5cbi8qIC0tLS0tLS0tLS1cbiBAIExheW91dFxuLS0tLS0tLS0tLSAqL1xuXG4kZ3JpZC1ndXR0ZXItd2lkdGg6IFx0IDFyZW07XG4kZ3JpZC1wYWRkaW5nOlx0XHRcdCAkZ3JpZC1ndXR0ZXItd2lkdGggLyAyO1xuXG4kdmVydGljYWwtbWFyZ2luLWJhc2U6XHQgMS41ZW07XG5cbiRncmlkLWJyZWFrcG9pbnRzOiAoXG4gICAgeHM6IDAsXG4gICAgc206IDU3NnB4LFxuICAgIG1kOiA3NjlweCxcbiAgICBsZzogOTkycHgsXG4gICAgeGw6IDEyODBweFxuKTtcblxuLyogLS0tLS0tLS0tLVxuIEAgVHlwb2dyYXBoeVxuLS0tLS0tLS0tLSAqL1xuXG4kZm9udC1zaXplczogKFxuICAgIHJvb3Q6IDE2cHgsXG4gICAgaDE6IDMxcHgsXG4gICAgaDI6IDU0cHgsXG4gICAgaDM6IDMycHgsXG4gICAgaDQ6IDIzcHgsXG4gICAgaDU6IDIwcHgsXG4gICAgaDY6IDE4cHgsXG4gICAgbGVhZDogMjVweCxcbiAgICBibG9ja3F1b3RlOiAxOHB4XG4pO1xuXG4kZm9udC1zaXplLWJhc2U6IDFyZW07XG5cbi8vJGVuYWJsZS1hbnRpYWxpYXNpbmc6IGZhbHNlO1xuXG4kbGVhZC1mb250LXNpemU6IHJlbXMobWFwLWdldCgkZm9udC1zaXplcywgbGVhZCkpO1xuJGJsb2NrcXVvdGUtZm9udC1zaXplOiByZW1zKG1hcC1nZXQoJGZvbnQtc2l6ZXMsIGJsb2NrcXVvdGUpKTtcblxuJGZvbnQtZmFtaWx5LXNhbnMtc2VyaWY6IGF6by1zYW5zLXdlYiwgXCJBdmVuaXJcIiwgXCJUdyBDZW4gTVRcIiwgXCJIZWx2ZXRpY2FcIiwgQXJpYWwsIHNhbnMtc2VyaWY7XG4kaGVhZGluZ3MtZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1zYW5zLXNlcmlmO1xuJGZvbnQtZmFtaWx5LWJhc2U6ICRmb250LWZhbWlseS1zYW5zLXNlcmlmO1xuXG4kZm9udC13ZWlnaHRzOiAoXG4gICAgYm9sZDogNzAwLFxuICAgIG1lZGl1bTogNTAwLFxuICAgIHJlZ3VsYXI6IDQwMFxuKTtcblxuJGZvbnQtd2VpZ2h0LWJhc2U6IG1hcC1nZXQoJGZvbnQtd2VpZ2h0cywgcmVndWxhcik7XG4kaGVhZGluZ3MtZm9udC13ZWlnaHQ6IG1hcC1nZXQoJGZvbnQtd2VpZ2h0cywgYm9sZCk7XG4kbGVhZC1mb250LXdlaWdodDogbWFwLWdldCgkZm9udC13ZWlnaHRzLCBtZWRpdW0pO1xuXG4kbGluZS1oZWlnaHQtYmFzZTogMS42NTtcbiRoZWFkaW5ncy1saW5lLWhlaWdodDogMS4yNTtcblxuJGxpbmstZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuJGxpbmstaG92ZXItZGVjb3JhdGlvbjogJGxpbmstZGVjb3JhdGlvbjtcblxuJHJlc3BvbnNpdmUtdGV4dDogKFxuICAgIG1vYmlsZS1taW4tc2l6ZTogMTJweCxcbiAgICBtb2JpbGUtbWF4LXNpemU6IG1hcC1nZXQoJGZvbnQtc2l6ZXMsIHJvb3QpLFxuICAgIGRlc2t0b3AtbWluLXNpemU6IDEycHgsXG4gICAgZGVza3RvcC1tYXgtc2l6ZTogbWFwLWdldCgkZm9udC1zaXplcywgcm9vdCksXG4gICAgbWluLXNjcmVlbi13aWR0aDogMzIwcHgsXG4gICAgbW9iaWxlLXNjcmVlbi13aWR0aDogNzY4cHgsXG4gICAgbWF4LXNjcmVlbi13aWR0aDogbWFwLWdldCgkZ3JpZC1icmVha3BvaW50cywgeGwpXG4pO1xuXG4vKiAtLS0tLS0tLS0tXG4gQCBNaXNjXG4tLS0tLS0tLS0tICovXG5cbiRoci1ib3JkZXItY29sb3I6ICRsaW5lLWNvbG9yO1xuJGhyLWJvcmRlci13aWR0aDogMXB4O1xuXG4kYm9yZGVyLXJhZGl1czogMDtcbiRib3JkZXItcmFkaXVzLWxnOiAkYm9yZGVyLXJhZGl1cyAqIDEuNTtcbiRib3JkZXItcmFkaXVzLXNtOiAkYm9yZGVyLXJhZGl1cyAvIDEuNTtcblxuJGNvbnRhaW5lci13aWR0aDogMTM0NHB4O1xuIiwiI25ld3Mge1xuICAgIG1hcmdpbjogNi43NXJlbSAwO1xuXG4gICAgLm5vLXJlc3VsdHMge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luOiA0cmVtIDAgMnJlbTtcblxuICAgICAgICAmOjpiZWZvcmUsICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTUwLCAxNTAsIDE1MCwgMC4yNSk7XG4gICAgICAgIH1cbiAgICAgICAgLm5vLXJlc3VsdHMtdGV4dCB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjM7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBtYXJnaW46IDAgNXJlbTtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktc2Fucy1zZXJpZjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMi41cmVtO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5jYXJkIHtcbiAgICAgICAgLmNhcmQtY29udGVudCB7XG4gICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5wYWdpbmF0aW9uLWFyZWEge1xuICAgICAgICBtYXJnaW4tdG9wOiAycmVtO1xuICAgIH1cbn1cblxuLy8gTW9iaWxlIFN0eWxlc1xuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IGJyZWFrcG9pbnQtZ2V0KCdtYXgnLCBsZykpIHtcbiAgICAjbmV3cyB7XG4gICAgICAgIC5jYXJkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDEuNzVyZW07XG5cbiAgICAgICAgICAgIC5jYXJkLWNvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuY2FyZCAuZmEtY2hldnJvbi1jaXJjbGUtcmlnaHQge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogYnJlYWtwb2ludC1nZXQoJ21heCcsIG1kKSkgYW5kIChtaW4td2lkdGg6IGJyZWFrcG9pbnQtZ2V0KCdtaW4nLCBzbSkpIHtcbiAgICAjbmV3cyB7XG4gICAgICAgIC5jYXJkLWNvbnRlbnQsIC5jYXJkLWltYWdlIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIH1cbiAgICAgICAgLm5ld3MtcG9zdGluZyB7XG4gICAgICAgICAgICBtYXJnaW46IDFyZW0gMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiBicmVha3BvaW50LWdldCgnbWF4JywgbWQpKSB7XG4gICAgI25ld3Mge1xuICAgICAgICAuY2FyZCB7XG4gICAgICAgICAgICAuY2FyZC1ib3R0b20ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiBicmVha3BvaW50LWdldCgnbWF4Jywgc20pKSB7XG4gICAgI25ld3Mge1xuICAgICAgICBtYXJnaW46IDRyZW0gMDtcblxuICAgICAgICBkaXYuY2FyZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtO1xuXG4gICAgICAgICAgICAuY2FyZC1pbWFnZSBpbWcge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLnBhZ2UtYmFubmVyIHtcbiAgICBiYWNrZ3JvdW5kOiBjb2xvci1nZXQocHJpbWFyeSk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nLXRvcDogMy4xMjVyZW07XG5cbiAgICAmLmhvbWUtYmFubmVyIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDMuMTI1cmVtO1xuICAgIH1cbiAgICAuaGlkZGVuIHtcbiAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDApO1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICAgIC5iYW5uZXItY2l0eXNjYXBlIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBoZWlnaHQ6IDkuMzc1cmVtO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICYubGluZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uLy4uL2ltZy91aS1hc3NldHMvY2l0eS1saW5lLXRpdGxlLnN2ZycpIHJlcGVhdC14IGNlbnRlci9jb250YWluO1xuICAgICAgICB9XG4gICAgICAgICYuc2lsaG91ZXR0ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uLy4uL2ltZy91aS1hc3NldHMvY2l0eS1zaWxob3VldHRlLXRpdGxlLnN2ZycpIHJlcGVhdC14IGJvdHRvbSBjZW50ZXIvY29udGFpbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCA5OSUgMCAwIDApO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRib2R5LWNvbG9yO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5zaWxob3VldHRlLWlubmVyLWxheWVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHVybCgnLi4vLi4vaW1nL3VpLWFzc2V0cy9jaXR5LXNpbGhvdWV0dGUtdGl0bGUuc3ZnJykgcmVwZWF0LXggYm90dG9tIGNlbnRlci9jb250YWluO1xuICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDAuOHJlbSAwIC01cmVtIDApO1xuICAgICAgICAgICAgaGVpZ2h0OiA1cmVtO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5iYW5uZXItd3JhcHBlciB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG5cbiAgICAgICAgLnBhZ2UtaGVhZGluZyB7XG4gICAgICAgICAgICBwYWRkaW5nOiA0LjM3NXJlbSAwO1xuXG4gICAgICAgICAgICAuaDMge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuYmxhY2stYnV0dG9uLW91dGxpbmUge1xuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRib2R5LWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkYm9keS1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBjb2xvci1nZXQocHJpbWFyeSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmNhcm91c2VsIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYm9keS1jb2xvcjtcbiAgICAgICAgcGFkZGluZzogNHJlbSAwIDZyZW07XG4gICAgICAgIG1pbi1oZWlnaHQ6IDUwMHB4O1xuXG4gICAgICAgICYtLWJsdWUge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogY29sb3ItZ2V0KHByaW1hcnkpO1xuICAgICAgICB9XG4gICAgICAgIC5zbGlkZXIge1xuXG4gICAgICAgICAgICAucHJldmlvdXMge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAyNSUgbnVsbCAyNSUgMjhweCk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAubmV4dCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDI1JSAyOHB4IDI1JSBudWxsKTtcbiAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5wcmV2aW91cyxcbiAgICAgICAgICAgIC5uZXh0IHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiA1O1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IDAuMnMgZWFzZTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxLjUwcmVtO1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICNmZmY7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDQycHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA0MnB4O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG8gMDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG5cbiAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuc2xpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIC5pbWFnZS1ob2xkZXIge1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmlnY2FwdGlvbiB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW1zKDM2cHgpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG5cbiAgICAgICAgICAgICAgICBpLCBlbSwgc3Ryb25nLCBiIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IGNvbG9yLWdldCh5ZWxsb3cpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5pbWFnZS1ob2xkZXJfX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuaW1hZ2UtaG9sZGVyX19idG4ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMC40cmVtIDEuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmN0YS1ib3hlcyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIC8vbWF4LWhlaWdodDogNzZweDtcblxuICAgICAgICAuY3RhLWJveCB7XG4gICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgcGFkZGluZzogMS4zNXJlbSAwO1xuICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbXMoMjBweCk7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3JkZXI6IDVweCBzb2xpZCBjb2xvci1nZXQocHJpbWFyeSk7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGZpbHRlcjogYnJpZ2h0bmVzcygxMTUlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBjYWxjKCgxMDB2dyAtIDEyNzBweCkgLyAyICsgMXB4KTtcbiAgICAgICAgICAgICAgICBjb2xvcjogIzAwMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvci1nZXQoc2Vjb25kYXJ5KTtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IGNvbG9yLWdldChzZWNvbmRhcnkpO1xuXG4gICAgICAgICAgICAgICAgLmxpbmsge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogIzAwMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLnNlY29uZCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygoMTAwdncgLSAxMjcwcHgpIC8gMiArIDFweCk7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItZ2V0KHByaW1hcnkpO1xuXG4gICAgICAgICAgICAgICAgLmN0YS1ib3hfX2xpbmsge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLnRoaXJkIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxLjM1cmVtIDJyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItZ2V0KGJyYW5kLWxpZ2h0KTtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IGNvbG9yLWdldChicmFuZC1saWdodCk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICMwMDA7XG5cbiAgICAgICAgICAgICAgICAuY3RhLWJveF9fbGluayB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjMDAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5jdGEtYm94X19saW5rcyBhIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIC5jdGEtYm94X19saW5rIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICMwMDA7XG5cbiAgICAgICAgICAgICAgICAgICAgdSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAubGluayB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmN0YS1ib3hfX2xpbmtlZC10ZXh0IHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5jdGEtYm94X19saW5rIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogIzAwMDtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAxcmVtO1xuXG4gICAgICAgICAgICAgICAgLmZhLWFuZ2xlLXJpZ2h0IHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNzVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5mdWxsLXdpZHRoIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogdW5zZXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogYnJlYWtwb2ludC1nZXQoJ21heCcsIHhsKSkge1xuICAgIC5wYWdlLWJhbm5lciB7XG4gICAgICAgIC5jdGEtYm94ZXMgLmN0YS1ib3gge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW1zKDE4cHgpO1xuXG4gICAgICAgICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiBicmVha3BvaW50LWdldCgnbWF4JywgbGcpKSB7XG4gICAgLnBhZ2UtYmFubmVyIHtcbiAgICAgICAgLmN0YS1jb250YWluZXIge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgICAgICAuY3RhLWJveGVzIHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IHVuc2V0O1xuXG4gICAgICAgICAgICAuY3RhLWJveCB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogYnJlYWtwb2ludC1nZXQoJ21heCcsIG1kKSkge1xuICAgIC5wYWdlLWJhbm5lciB7XG4gICAgICAgIC5iYW5uZXItY2l0eXNjYXBlIHtcbiAgICAgICAgICAgICYubGluZSwgJi5zaWxob3VldHRlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5iYW5uZXItd3JhcHBlciAucGFnZS1oZWFkaW5nIGgzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgfVxuICAgICAgICAuY2Fyb3VzZWwgLnNsaWRlIHtcbiAgICAgICAgICAgIC5pbWFnZS1ob2xkZXIgaW1nIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDI1MHB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDIuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZpZ2NhcHRpb24ge1xuICAgICAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgMi41cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAyLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuaW1hZ2UtaG9sZGVyX19jb250ZW50IHtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5jYXJvdXNlbCAuc2xpZGVyIHtcbiAgICAgICAgICAgIC5wcmV2aW91cyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDI1JSBudWxsIDI1JSAxMnB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5uZXh0IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMjUlIDEycHggMjUlIG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLnByZXZpb3VzLFxuICAgICAgICAgICAgLm5leHQge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxLjI1cmVtO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAyNXB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjVweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAucGFnZS1iYW5uZXIgLmN0YS1ib3hlcyAuY3RhLWJveDpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgcGFkZGluZzogMS4zNXJlbSAwLjVyZW07XG4gICAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBjb25jaXNlLCBvbmUtbGluZSBtZXRob2QgZm9yIHNldHRpbmcgYW4gZWxlbWVudOKAmXMgcG9zaXRpb25pbmdcbi8vLyBwcm9wZXJ0aWVzOiBgcG9zaXRpb25gLCBgdG9wYCwgYHJpZ2h0YCwgYGJvdHRvbWAgYW5kIGBsZWZ0YC4gVXNlIGEgYG51bGxgXG4vLy8gdmFsdWUgdG8g4oCcc2tpcOKAnSBhbiBlZGdlIG9mIHRoZSBib3guXG4vLy9cbi8vLyBAYXJndW1lbnQge3N0cmluZ30gJHBvc2l0aW9uXG4vLy8gICBBIENTUyBwb3NpdGlvbiB2YWx1ZS5cbi8vL1xuLy8vIEBhcmd1bWVudCB7bGlzdH0gJGJveC1lZGdlLXZhbHVlc1xuLy8vICAgTGlzdCBvZiBsZW5ndGhzOyBhY2NlcHRzIENTUyBzaG9ydGhhbmQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHBvc2l0aW9uKHJlbGF0aXZlLCAwIG51bGwgbnVsbCAxMGVtKTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLy8gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBsZWZ0OiAxMGVtO1xuLy8vICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4vLy8gICAgIHRvcDogMDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDApO1xuLy8vICAgfVxuLy8vXG4vLy8gICAvLyBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vLyAgICAgdG9wOiAwO1xuLy8vICAgICByaWdodDogMDtcbi8vLyAgICAgYm90dG9tOiAwO1xuLy8vICAgICBsZWZ0OiAwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBfaXMtbGVuZ3RoXG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IF91bnBhY2stc2hvcnRoYW5kXG5cbkBtaXhpbiBwb3NpdGlvbihcbiAgJHBvc2l0aW9uLFxuICAkYm94LWVkZ2UtdmFsdWVzXG4pIHtcbiAgJGJveC1lZGdlLXZhbHVlczogX3VucGFjay1zaG9ydGhhbmQoJGJveC1lZGdlLXZhbHVlcyk7XG4gICRvZmZzZXRzOiAoXG4gICAgdG9wOiAgICBudGgoJGJveC1lZGdlLXZhbHVlcywgMSksXG4gICAgcmlnaHQ6ICBudGgoJGJveC1lZGdlLXZhbHVlcywgMiksXG4gICAgYm90dG9tOiBudGgoJGJveC1lZGdlLXZhbHVlcywgMyksXG4gICAgbGVmdDogICBudGgoJGJveC1lZGdlLXZhbHVlcywgNCksXG4gICk7XG5cbiAgcG9zaXRpb246ICRwb3NpdGlvbjtcblxuICBAZWFjaCAkb2Zmc2V0LCAkdmFsdWUgaW4gJG9mZnNldHMge1xuICAgIEBpZiBfaXMtbGVuZ3RoKCR2YWx1ZSkge1xuICAgICAgI3skb2Zmc2V0fTogJHZhbHVlO1xuICAgIH1cbiAgfVxufVxuIiwiLm5ld3MtcG9zdGluZ3Mge1xuICAgIG1hcmdpbjogMnJlbSBhdXRvIDRyZW07XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG4jaG9tZSB7XG4gICAgLm5ld3MtcG9zdGluZ3Mge1xuICAgICAgICBtYXJnaW46IDdyZW0gYXV0byA5cmVtO1xuICAgIH1cbiAgICAubmV3cy1pbnRybyB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbiAgICAuY2FyZCB7XG4gICAgICAgIC5jYXJkLWNvbnRlbnQge1xuICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMCAyLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIE1vYmlsZSBTdHlsZXNcblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiBicmVha3BvaW50LWdldCgnbWF4JywgbWQpKSBhbmQgKG1pbi13aWR0aDogYnJlYWtwb2ludC1nZXQoJ21pbicsIHNtKSkge1xuICAgICNob21lIHtcbiAgICAgICAgLm5ld3MtcG9zdGluZ3Mge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IHVuc2V0O1xuICAgICAgICB9XG4gICAgICAgIC5jYXJkLWNvbnRlbnQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgfVxuICAgICAgICAubmV3cy1pbnRybyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiBicmVha3BvaW50LWdldCgnbWF4JywgeGwpKSB7XG4gICAgI2hvbWUge1xuICAgICAgICAubGlzdGluZy1yb3cge1xuICAgICAgICAgICAgPiAucm93IHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM5ZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogYnJlYWtwb2ludC1nZXQoJ21heCcsIG1kKSkge1xuICAgICNob21lIHtcbiAgICAgICAgLmxpc3Rpbmctcm93IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMi4yNXJlbTtcblxuICAgICAgICAgICAgPiAucm93IHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLm5ld3MtcG9zdGluZ3Mge1xuICAgICAgICAgICAgbWFyZ2luOiAycmVtIDA7XG4gICAgICAgIH1cbiAgICAgICAgLm5ld3MtaW50cm8ge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDFyZW07XG4gICAgICAgIH1cbiAgICAgICAgLnBhZ2luYXRpb24tYXJlYSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNHJlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiBicmVha3BvaW50LWdldCgnbWF4Jywgc20pKSB7XG4gICAgI2hvbWUge1xuICAgICAgICBtYXJnaW46IDJyZW0gMDtcblxuICAgICAgICAubmV3cy1wb3N0aW5nIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgXCIuLi9zaW1wbGUtY29uZmlnXCI7XG5AaW1wb3J0ICcuLi9wYWdlLWJhbm5lcic7XG5AaW1wb3J0ICcuLi9ob21lLW5ld3MnO1xuXG4jaG9tZSB7XG4gICAgbWFyZ2luOiAwO1xuXG4gICAgLmhvbWUtc2VjdGlvbiB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZzogMTAuNXJlbSAwO1xuICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgLnNlY3Rpb24tdGV4dCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAtMXJlbTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtcygxOHB4KTtcblxuICAgICAgICAgICAgaDIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1icmFuZC1wcmltYXJ5KTtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmJ1dHRvbi1ob2xkZXIge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG5cbiAgICAgICAgICAgICAgICAuc2VjdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAyLjNyZW07XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgJGJvZHktY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYm9keS1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMC43cmVtIDEuNzVyZW07XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjM1cmVtO1xuICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDMwMHB4O1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAyNTBtcyBlYXNlLW91dDtcblxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJyYW5kLXByaW1hcnkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1icmFuZC1wcmltYXJ5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi0tY2VudGVyZWQge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuc2VjdGlvbi1pbWFnZSB7XG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi0tYmx1ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1icmFuZC1wcmltYXJ5KTtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuXG4gICAgICAgICAgICAuc2VjdGlvbi10ZXh0IHtcbiAgICAgICAgICAgICAgICBoMiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuYnV0dG9uLWhvbGRlciAuc2VjdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICNmZmY7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1icmFuZC1wcmltYXJ5KTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcblxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWJyYW5kLXByaW1hcnkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICNmZmY7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbGk6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLS1yYWRpYXRpb24ge1xuICAgICAgICAgICAgJHdpZHRoOiA3MDBweDtcbiAgICAgICAgICAgICRoZWlnaHQ6ICR3aWR0aCAvIDEuODkxMDI1NjQxO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdXJsKCcuLi8uLi9pbWcvdWktYXNzZXRzL251Y2xlYXItYmFja2dyb3VuZC10aWxlLnN2ZycpIHJlcGVhdCBjZW50ZXIvJHdpZHRoICRoZWlnaHQgO1xuICAgICAgICB9XG4gICAgICAgICYtLWdyZXkge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnJhbmQtbGlnaHQpO1xuICAgICAgICB9XG4gICAgICAgICYtLWxpZ2h0LWJsdWUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnJhbmQtbGlnaHQtYmx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgJi5yZXNlYXJjaCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1icmFuZC1saWdodCkgdXJsKCcuLi8uLi9pbWcvdWktYXNzZXRzL3JhZG9uLWNoZW1pY2FsLXN0cnVjdHVyZS10aWxlLnN2ZycpIHJlcGVhdCBjZW50ZXIvNzAwcHggYXV0bztcblxuICAgICAgICAgICAgLnNlY3Rpb24tdGV4dC5yZXNlYXJjaC10ZXh0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAkdmVydGljYWwtbWFyZ2luLWJhc2U7XG5cbiAgICAgICAgICAgICAgICBoMiwgcCB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYm9keS1jb2xvcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaDMge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tYnJhbmQtdGVydGlhcnkpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAxLjNyZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMDtcblxuICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5idXR0b24taG9sZGVyIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAgICAgICAgICAgICAuc2VjdGlvbi1idXR0b24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWJyYW5kLXRlcnRpYXJ5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYnJhbmQtdGVydGlhcnkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAzcmVtO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1icmFuZC10ZXJ0aWFyeSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLnVvZmMtbGluayB7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4uaG9tZS1zZWN0aW9uX19pbWFnZS0tZnVsbC1ibGVlZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgd2lkdGg6IDUwJTtcbn1cbi5ob21lLXNlY3Rpb25fX2ltYWdlLWVsIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG59XG4uaG9tZS1zZWN0aW9uOm50aC1vZi10eXBlKG9kZCkgLnNlY3Rpb24taW1hZ2UsXG4uaG9tZS1zZWN0aW9uOm50aC1vZi10eXBlKG9kZCkgLmhvbWUtc2VjdGlvbl9faW1hZ2UtLWZ1bGwtYmxlZWQge1xuICAgIG9yZGVyOiAxO1xufVxuLmhvbWUtc2VjdGlvbjpudGgtb2YtdHlwZShldmVuKTpoYXMoLmhvbWUtc2VjdGlvbl9faW1hZ2UtLWZ1bGwtYmxlZWQpIC5zZWN0aW9uLXRleHQge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogOC4zMyU7XG59XG4uaG9tZS1zZWN0aW9uOm50aC1vZi10eXBlKG9kZCk6aGFzKC5ob21lLXNlY3Rpb25fX2ltYWdlLS1mdWxsLWJsZWVkKSB7XG4gICAgLnNlY3Rpb24tcm93IHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICB9XG59XG4uaG9tZS1zZWN0aW9uOm50aC1vZi10eXBlKG9kZCkgLmhvbWUtc2VjdGlvbl9faW1hZ2UtLWZ1bGwtYmxlZWQge1xuICAgIHJpZ2h0OiB1bnNldDtcbiAgICBsZWZ0OiAwO1xufVxuLmMtaHIge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA1cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiBicmVha3BvaW50LWdldCgnbWF4JywgbWQpKSB7XG4gICAgI2hvbWUge1xuICAgICAgICBtYXJnaW4tdG9wOiAtM3JlbTtcblxuICAgICAgICAuaG9tZS1zZWN0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWdyaWQtZ3V0dGVyLXdpZHRoKSAwIDQuNXJlbTtcblxuICAgICAgICAgICAgLnNlY3Rpb24tdGV4dCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMS41cmVtO1xuICAgICAgICAgICAgICAgIG9yZGVyOiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLnNlY3Rpb24taW1hZ2Uge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgMnJlbTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA0cmVtO1xuXG4gICAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTcuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5yZXNlYXJjaCAuc2VjdGlvbi1pbWFnZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuaG9tZS1zZWN0aW9uX19pbWFnZS0tZnVsbC1ibGVlZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ== */
