@charset "UTF-8";
@import url(https://fonts.googleapis.com/css?family=PT+Serif:400,400italic,700,700italic);
body, html {
  margin: 0;
  padding: 0;
  overflow-x: hidden; }

hr {
  margin: 0;
  border: 0;
  border-top: 1px solid rgba(0, 0, 0, 0.15); }

hr.hr--light {
  border-top: 1px solid rgba(255, 255, 255, 0.1); }

.js-breakpoint:after,
.js-breakpoint {
  content: '{"mobile-portrait":"only screen and (max-width:425px)","mobile":"only screen and (max-width:740px)","not-mobile":"only screen and (min-width:741px)","only-mobile":"only screen and (max-width:740px)","tablet-portrait":"only screen and (max-width:850px)","tablet":"only screen and (max-width:1050px)","only-tablet":"only screen and (min-width:741px) and (max-width:1051px)","not-tablet":"only screen and (min-width:1051px)","desktop":"only screen and (min-width:1051px)","only-desktop":"only screen and (min-width:1051px)","retina":"only screen and (-webkit-min-device-pixel-ratio : 1.5), only screen and (min-device-pixel-ratio : 1.5)","highres":"print, (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi)","print":"print"}';
  font-family: '{"mobile-portrait":"only screen and (max-width:425px)","mobile":"only screen and (max-width:740px)","not-mobile":"only screen and (min-width:741px)","only-mobile":"only screen and (max-width:740px)","tablet-portrait":"only screen and (max-width:850px)","tablet":"only screen and (max-width:1050px)","only-tablet":"only screen and (min-width:741px) and (max-width:1051px)","not-tablet":"only screen and (min-width:1051px)","desktop":"only screen and (min-width:1051px)","only-desktop":"only screen and (min-width:1051px)","retina":"only screen and (-webkit-min-device-pixel-ratio : 1.5), only screen and (min-device-pixel-ratio : 1.5)","highres":"print, (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi)","print":"print"}'; }

/**
 * remove removes element from list returns the others
 */
/**
 * mixin responsive-visibility
 * $visibility-breakpoints {[list]} list of breakpoints you want to interact with
 * $overwrite {[boolean]} if set true will generate classes that overwrite what ever visibility is active on that element
 *
 * exact:
 * @include responsive-visibility("only-mobile" "only-tablet" "only-desktop", true);
 *
 * up:
 * @include responsive-visibility("mobile" "tablet" "desktop", false);
 */
/**
 * Define the breakpoints for vendor/sensible/mediaqueries
 * They are defined the mobile first way
 */

.l-grid {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: row;
      flex-direction: row;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  margin-left: -2rem; }
  
  .l-grid .l-grid-cell {
    padding-left: 2rem;
    display: block; }
  
  .l-grid--narrow {
    margin-left: -1rem; }
    
    .l-grid--narrow .l-grid-cell {
      padding-left: 1rem; }
  
  .l-grid--collapsed {
    margin-left: 0; }
    
    .l-grid--collapsed .l-grid-cell {
      padding-left: 0; }
  
  .l-grid--gapped > .l-grid-cell {
    padding-bottom: 2rem; }


.l-grid-cell {
  display: inline-block;
  vertical-align: top;
  box-sizing: border-box; }


.l-one-whole {
  width: 100%; }


.l-one-half {
  width: 50%; }


.l-one-quarter {
  width: 25%; }


.l-three-quarters {
  width: 75%; }


.l-one-third {
  width: 33.333%; }


.l-two-thirds {
  width: 66.666%; }


.l-one-fifth {
  width: 20%; }


.l-two-fifths {
  width: 40%; }


.l-three-fifths {
  width: 60%; }


.l-four-fifths {
  width: 80%; }


.l-one-sixth {
  width: 16.666%; }


.l-five-sixths {
  width: 83.333%; }

@media only screen and (max-width: 1050px) {
  
  .l-one-whole--tablet {
    width: 100%; }
  
  .l-one-half--tablet {
    width: 50%; }
  
  .l-one-quarter--tablet {
    width: 25%; }
  
  .l-three-quarters--tablet {
    width: 75%; }
  
  .l-one-third--tablet {
    width: 33.333%; }
  
  .l-two-thirds--tablet {
    width: 66.666%; }
  
  .l-one-fifth--tablet {
    width: 20%; }
  
  .l-two-fifths--tablet {
    width: 40%; }
  
  .l-three-fifths--tablet {
    width: 60%; }
  
  .l-four-fifths--tablet {
    width: 80%; }
  
  .l-one-sixth--tablet {
    width: 16.666%; }
  
  .l-five-sixths--tablet {
    width: 83.333%; } }

@media only screen and (max-width: 740px) {
  
  .l-one-whole--mobile {
    width: 100%; }
  
  .l-one-half--mobile {
    width: 50%; }
  
  .l-one-quarter--mobile {
    width: 25%; }
  
  .l-three-quarters--mobile {
    width: 75%; }
  
  .l-one-third--mobile {
    width: 33.333%; }
  
  .l-two-thirds--mobile {
    width: 66.666%; }
  
  .l-one-fifth--mobile {
    width: 20%; }
  
  .l-two-fifths--mobile {
    width: 40%; }
  
  .l-three-fifths--mobile {
    width: 60%; }
  
  .l-four-fifths--mobile {
    width: 80%; }
  
  .l-one-sixth--mobile {
    width: 16.666%; }
  
  .l-five-sixths--mobile {
    width: 83.333%; } }

.l-grid--v-centered {
  -ms-flex-align: center;
      align-items: center; }

.l-grid--vr > .l-grid-cell {
  margin-top: 1rem;
  margin-bottom: 1rem; }

.l-grid--vr.l-grid--narrow > .l-grid-cell {
  margin-top: 0.5rem;
  margin-bottom: 0.5rem; }

@media only screen and (min-width: 1051px) {
  .is-visible-desktop {
    display: block !important;
    visibility: visible; }
    .is-visible-desktop--inline {
      display: inline; }
    .is-visible-desktop--inline-block {
      display: inline-block; }
  .is-hidden-desktop, .is-visible-tablet, .is-visible-mobile {
    display: none !important;
    visibility: hidden; }
    .is-hidden-desktop--inline, .is-visible-tablet--inline, .is-visible-mobile--inline {
      display: none !important; }
    .is-hidden-desktop--inline-block, .is-visible-tablet--inline-block, .is-visible-mobile--inline-block {
      display: none !important; } }

@media only screen and (max-width: 1050px) {
  .is-visible-tablet {
    display: block !important;
    visibility: visible; }
    .is-visible-tablet--inline {
      display: inline; }
    .is-visible-tablet--inline-block {
      display: inline-block; }
  .is-hidden-tablet, .is-visible-desktop, .is-visible-mobile {
    display: none !important;
    visibility: hidden; }
    .is-hidden-tablet--inline, .is-visible-desktop--inline, .is-visible-mobile--inline {
      display: none !important; }
    .is-hidden-tablet--inline-block, .is-visible-desktop--inline-block, .is-visible-mobile--inline-block {
      display: none !important; } }

@media only screen and (max-width: 740px) {
  .is-visible-mobile {
    display: block !important;
    visibility: visible; }
    .is-visible-mobile--inline {
      display: inline; }
    .is-visible-mobile--inline-block {
      display: inline-block; }
  .is-hidden-mobile, .is-visible-desktop, .is-visible-tablet {
    display: none !important;
    visibility: hidden; }
    .is-hidden-mobile--inline, .is-visible-desktop--inline, .is-visible-tablet--inline {
      display: none !important; }
    .is-hidden-mobile--inline-block, .is-visible-desktop--inline-block, .is-visible-tablet--inline-block {
      display: none !important; } }

html {
  font-size: 20px;
  font-family: Avenir, Arial, sans-serif;
  font-weight: 400;
  font-style: normal;
  line-height: 1.4;
  color: c(neutral, black); }

.t-project-title {
  font-family: Avenir, Arial, sans-serif;
  font-weight: 800;
  font-style: normal;
  font-size: 2.8rem;
  line-height: 1.14; }
  @media only screen and (max-width: 740px) {
    .t-project-title {
      font-size: 2rem; } }

.t-project-lead {
  font-family: Avenir, Arial, sans-serif;
  font-weight: 800;
  font-style: normal;
  font-size: 2.1rem;
  line-height: 1.19; }

.t-section-title {
  font-family: Avenir, Arial, sans-serif;
  font-weight: 400;
  font-style: italic;
  font-size: 0.9rem;
  line-height: 1.5;
  letter-spacing: 4px;
  text-transform: uppercase; }
  @media only screen and (max-width: 740px) {
    .t-section-title {
      font-size: 0.8rem; } }

.t-title {
  font-family: Avenir, Arial, sans-serif;
  font-weight: 800;
  font-style: normal;
  font-size: 2rem;
  line-height: 1.3; }
  @media only screen and (max-width: 740px) {
    .t-title {
      font-size: 1.5rem; } }

.t-lead {
  font-family: "PT Serif", serif;
  font-weight: 400;
  font-style: normal;
  font-size: 1.2rem;
  line-height: 1.65; }
  @media only screen and (max-width: 740px) {
    .t-lead {
      font-size: 1rem; } }

.t-subtitle {
  font-family: Avenir, Arial, sans-serif;
  font-weight: 800;
  font-style: normal;
  font-size: 1.3rem;
  line-height: 1.3; }

.t-h4 {
  font-family: Avenir, Arial, sans-serif;
  font-weight: 800;
  font-style: normal;
  font-size: 1.1rem;
  line-height: 1.3; }

.t-paragraph {
  font-family: "PT Serif", serif;
  font-weight: 400;
  font-style: normal;
  font-size: 1rem;
  line-height: 1.65; }
  @media only screen and (max-width: 740px) {
    .t-paragraph {
      font-size: 0.9rem; } }

.t-paragraph-sans {
  font-family: Avenir, Arial, sans-serif;
  font-weight: 400;
  font-style: normal;
  font-size: 1rem;
  line-height: 1.65; }

.t-caption {
  font-family: Avenir, Arial, sans-serif;
  font-weight: 400;
  font-style: normal;
  font-size: 0.8rem;
  line-height: 1.4; }

.t-quote {
  font-family: "PT Serif", serif;
  font-weight: 400;
  font-style: italic;
  font-size: 1.8rem;
  line-height: 1.4; }
  @media only screen and (max-width: 740px) {
    .t-quote {
      font-size: 1.5rem; } }

.t-quote-small {
  font-family: "PT Serif", serif;
  font-weight: 400;
  font-style: normal;
  font-size: 1.5rem;
  line-height: 1.6; }

@font-face {
  font-family: Avenir;
  font-weight: 400;
  font-style: normal;
  src: url("//static.ginetta.net/fonts/avenir-roman/b9ebb19d-88c1-4cbd-9baf-cf51972422ec.eot");
  src: local("Avenir Roman"), url("//static.ginetta.net/fonts/avenir-roman/b9ebb19d-88c1-4cbd-9baf-cf51972422ec.woff") format("woff"), url("//static.ginetta.net/fonts/avenir-roman/5ed4f98e-9044-4810-88ff-74d412c1351f.ttf") format("truetype"), url("//static.ginetta.net/fonts/avenir-roman/4cb16859-16ca-4342-b89c-292dc83266af.svg") format("svg"); }

@font-face {
  font-family: Avenir;
  font-weight: 400;
  font-style: italic;
  src: url("static.ginetta.net/fonts/avenir-black-oblique/8f21e618-9282-4df1-b556-73ee82bdd673.eot");
  src: local("Avenir Oblique"), url("static.ginetta.net/fonts/avenir-black-oblique/3695342c-b5e2-4010-b0d4-56f563465922.woff") format("woff"), url("static.ginetta.net/fonts/avenir-black-oblique/2ba9f875-66d9-414d-a426-5a012b443475.ttf") format("truetype"), url("static.ginetta.net/fonts/avenir-black-oblique/0a88351a-e628-4b1f-99eb-3a729518af0a.svg") format("svg"); }

@font-face {
  font-family: Avenir;
  font-weight: 800;
  font-style: normal;
  src: url("//static.ginetta.net/fonts/avenir-heavy/f61bf0f6-c193-4100-b940-12a1a01dcee5.eot");
  src: local("Avenir Heavy"), url("//static.ginetta.net/fonts/avenir-heavy/7147ec3a-8ff8-4ec9-8c5c-bd1571dc6ae6.woff") format("woff"), url("//static.ginetta.net/fonts/avenir-heavy/d1dc54b2-878d-4693-8d6e-b442e99fef68.ttf") format("truetype"), url("//static.ginetta.net/fonts/avenir-heavy/731dd4d3-64da-427d-ba61-01575b3cf3f7.svg") format("svg"); }

h1,
h2,
h3,
h4,
h5,
h6,
p,
pre {
  margin: 0; }

strong,
.t-bold {
  font-weight: 800; }

.t-centered {
  text-align: center; }

.t-smooth {
  -webkit-font-smoothing: antialiased; }

.t-sans {
  font-family: Avenir, Arial, sans-serif; }

/**
 * Color variables
 */
/**
 * Color functions
 */
/**
 * Color classes
 * Try to use only in the styleguide
 */
.c-ginetta-pink {
  background-color: #fb9fb1; }

.c-ginetta-pink--fill {
  fill: #fb9fb1; }

.c-ginetta-pink--fill-dark {
  fill: #f96e89; }

.c-ginetta-pink--color {
  color: #fb9fb1; }

.c-ginetta-salmon {
  background-color: #f0a88b; }

.c-ginetta-salmon--fill {
  fill: #f0a88b; }

.c-ginetta-salmon--fill-dark {
  fill: #ea865e; }

.c-ginetta-salmon--color {
  color: #f0a88b; }

.c-ginetta-orange {
  background-color: #e6ad7a; }

.c-ginetta-orange--fill {
  fill: #e6ad7a; }

.c-ginetta-orange--fill-dark {
  fill: #de934f; }

.c-ginetta-orange--color {
  color: #e6ad7a; }

.c-ginetta-green-olive {
  background-color: #a4c46a; }

.c-ginetta-green-olive--fill {
  fill: #a4c46a; }

.c-ginetta-green-olive--fill-dark {
  fill: #8db447; }

.c-ginetta-green-olive--color {
  color: #a4c46a; }

.c-ginetta-green {
  background-color: #73cb88; }

.c-ginetta-green--fill {
  fill: #73cb88; }

.c-ginetta-green--fill-dark {
  fill: #4ebd68; }

.c-ginetta-green--color {
  color: #73cb88; }

.c-ginetta-green-lake {
  background-color: #55ce9b; }

.c-ginetta-green-lake--fill {
  fill: #55ce9b; }

.c-ginetta-green-lake--fill-dark {
  fill: #36ba82; }

.c-ginetta-green-lake--color {
  color: #55ce9b; }

.c-ginetta-teal {
  background-color: #34cfad; }

.c-ginetta-teal--fill {
  fill: #34cfad; }

.c-ginetta-teal--fill-dark {
  fill: #28a88c; }

.c-ginetta-teal--color {
  color: #34cfad; }

.c-ginetta-cyan {
  background-color: #0fcdd0; }

.c-ginetta-cyan--fill {
  fill: #0fcdd0; }

.c-ginetta-cyan--fill-dark {
  fill: #0c9ea0; }

.c-ginetta-cyan--color {
  color: #0fcdd0; }

.c-ginetta-blue {
  background-color: #5ec5eb; }

.c-ginetta-blue--fill {
  fill: #5ec5eb; }

.c-ginetta-blue--fill-dark {
  fill: #31b5e5; }

.c-ginetta-blue--color {
  color: #5ec5eb; }

.c-ginetta-blue-sky {
  background-color: #80bff4; }

.c-ginetta-blue-sky--fill {
  fill: #80bff4; }

.c-ginetta-blue-sky--fill-dark {
  fill: #51a7f0; }

.c-ginetta-blue-sky--color {
  color: #80bff4; }

.c-ginetta-purple {
  background-color: #9eb8f8; }

.c-ginetta-purple--fill {
  fill: #9eb8f8; }

.c-ginetta-purple--fill-dark {
  fill: #6e95f5; }

.c-ginetta-purple--color {
  color: #9eb8f8; }

.c-ginetta-violet {
  background-color: #d0a9f6; }

.c-ginetta-violet--fill {
  fill: #d0a9f6; }

.c-ginetta-violet--fill-dark {
  fill: #b77bf1; }

.c-ginetta-violet--color {
  color: #d0a9f6; }

.c-client-aroov {
  background-color: #32b5dc;
  color: rgba(255, 255, 255, 0.95); }

.c-client-aroov--fill {
  fill: #32b5dc; }

.c-client-aroov--fill-dark {
  fill: #2097bb; }

.c-client-aroov--color {
  color: #32b5dc; }

.c-client-aroov-text {
  background-color: #4da5ca;
  color: rgba(255, 255, 255, 0.95); }

.c-client-aroov-text--fill {
  fill: #4da5ca; }

.c-client-aroov-text--fill-dark {
  fill: #348bb0; }

.c-client-aroov-text--color {
  color: #4da5ca; }

.c-client-avaloq {
  background-color: #003076;
  color: rgba(255, 255, 255, 0.95); }

.c-client-avaloq--fill {
  fill: #003076; }

.c-client-avaloq--fill-dark {
  fill: #001b43; }

.c-client-avaloq--color {
  color: #003076; }

.c-client-basler-hofmann {
  background-color: #dc2856;
  color: rgba(255, 255, 255, 0.95); }

.c-client-basler-hofmann--fill {
  fill: #dc2856; }

.c-client-basler-hofmann--fill-dark {
  fill: #b41d44; }

.c-client-basler-hofmann--color {
  color: #dc2856; }

.c-client-bh-black {
  background-color: #2f2f2f;
  color: rgba(255, 255, 255, 0.95); }

.c-client-bh-black--fill {
  fill: #2f2f2f; }

.c-client-bh-black--fill-dark {
  fill: #161616; }

.c-client-bh-black--color {
  color: #2f2f2f; }

.c-client-comet {
  background-color: #48646d;
  color: rgba(255, 255, 255, 0.95); }

.c-client-comet--fill {
  fill: #48646d; }

.c-client-comet--fill-dark {
  fill: #34484e; }

.c-client-comet--color {
  color: #48646d; }

.c-client-crowdhouse {
  background-color: #5fb6cb;
  color: rgba(255, 255, 255, 0.95); }

.c-client-crowdhouse--fill {
  fill: #5fb6cb; }

.c-client-crowdhouse--fill-dark {
  fill: #3da2ba; }

.c-client-crowdhouse--color {
  color: #5fb6cb; }

.c-client-crowdhouse-dark {
  background-color: #008092;
  color: rgba(255, 255, 255, 0.95); }

.c-client-crowdhouse-dark--fill {
  fill: #008092; }

.c-client-crowdhouse-dark--fill-dark {
  fill: #00535f; }

.c-client-crowdhouse-dark--color {
  color: #008092; }

.c-client-crowdhouse-light {
  background-color: #ebf2f2;
  color: rgba(255, 255, 255, 0.95); }

.c-client-crowdhouse-light--fill {
  fill: #ebf2f2; }

.c-client-crowdhouse-light--fill-dark {
  fill: #ccdede; }

.c-client-crowdhouse-light--color {
  color: #ebf2f2; }

.c-client-docsafe {
  background-color: #1781e3;
  color: rgba(255, 255, 255, 0.95); }

.c-client-docsafe--fill {
  fill: #1781e3; }

.c-client-docsafe--fill-dark {
  fill: #1267b5; }

.c-client-docsafe--color {
  color: #1781e3; }

.c-client-docsafe-grey {
  background-color: #2c2723;
  color: rgba(255, 255, 255, 0.95); }

.c-client-docsafe-grey--fill {
  fill: #2c2723; }

.c-client-docsafe-grey--fill-dark {
  fill: #100e0c; }

.c-client-docsafe-grey--color {
  color: #2c2723; }

.c-client-doodle {
  background-color: #0060df;
  color: rgba(255, 255, 255, 0.95); }

.c-client-doodle--fill {
  fill: #0060df; }

.c-client-doodle--fill-dark {
  fill: #004aac; }

.c-client-doodle--color {
  color: #0060df; }

.c-client-fantoche {
  background-color: #5eaeaa;
  color: rgba(255, 255, 255, 0.95); }

.c-client-fantoche--fill {
  fill: #5eaeaa; }

.c-client-fantoche--fill-dark {
  fill: #49908d; }

.c-client-fantoche--color {
  color: #5eaeaa; }

.c-client-filmcoopi {
  background-color: #fff507;
  color: rgba(255, 255, 255, 0.95); }

.c-client-filmcoopi--fill {
  fill: #fff507; }

.c-client-filmcoopi--fill-dark {
  fill: #d3ca00; }

.c-client-filmcoopi--color {
  color: #fff507; }

.c-client-helsana {
  background-color: #9c0240;
  color: rgba(255, 255, 255, 0.95); }

.c-client-helsana--fill {
  fill: #9c0240; }

.c-client-helsana--fill-dark {
  fill: #6a012b; }

.c-client-helsana--color {
  color: #9c0240; }

.c-client-helsana-gold {
  background-color: #ddc48c;
  color: rgba(255, 255, 255, 0.95); }

.c-client-helsana-gold--fill {
  fill: #ddc48c; }

.c-client-helsana-gold--fill-dark {
  fill: #d1b065; }

.c-client-helsana-gold--color {
  color: #ddc48c; }

.c-client-endress {
  background-color: #007caa;
  color: rgba(255, 255, 255, 0.95); }

.c-client-endress--fill {
  fill: #007caa; }

.c-client-endress--fill-dark {
  fill: #005777; }

.c-client-endress--color {
  color: #007caa; }

.c-client-endress-magenta {
  background-color: #a8005c;
  color: rgba(255, 255, 255, 0.95); }

.c-client-endress-magenta--fill {
  fill: #a8005c; }

.c-client-endress-magenta--fill-dark {
  fill: #750040; }

.c-client-endress-magenta--color {
  color: #a8005c; }

.c-client-hilti {
  background-color: #d0021b;
  color: rgba(255, 255, 255, 0.95); }

.c-client-hilti--fill {
  fill: #d0021b; }

.c-client-hilti--fill-dark {
  fill: #9d0214; }

.c-client-hilti--color {
  color: #d0021b; }

.c-client-hilti-website {
  background-color: #d2071e;
  color: rgba(255, 255, 255, 0.95); }

.c-client-hilti-website--fill {
  fill: #d2071e; }

.c-client-hilti-website--fill-dark {
  fill: #a10517; }

.c-client-hilti-website--color {
  color: #d2071e; }

.c-client-lizzy {
  background-color: #e9eaf0;
  color: rgba(255, 255, 255, 0.95); }

.c-client-lizzy--fill {
  fill: #e9eaf0; }

.c-client-lizzy--fill-dark {
  fill: #cbcddb; }

.c-client-lizzy--color {
  color: #e9eaf0; }

.c-client-lizzy-purple {
  background-color: #00074e;
  color: rgba(255, 255, 255, 0.95); }

.c-client-lizzy-purple--fill {
  fill: #00074e; }

.c-client-lizzy-purple--fill-dark {
  fill: #00021b; }

.c-client-lizzy-purple--color {
  color: #00074e; }

.c-client-lizzy-pink {
  background-color: #e61b58;
  color: rgba(255, 255, 255, 0.95); }

.c-client-lizzy-pink--fill {
  fill: #e61b58; }

.c-client-lizzy-pink--fill-dark {
  fill: #ba1446; }

.c-client-lizzy-pink--color {
  color: #e61b58; }

.c-client-lizzy-darkgrey {
  background-color: #8f909b;
  color: rgba(255, 255, 255, 0.95); }

.c-client-lizzy-darkgrey--fill {
  fill: #8f909b; }

.c-client-lizzy-darkgrey--fill-dark {
  fill: #757682; }

.c-client-lizzy-darkgrey--color {
  color: #8f909b; }

.c-client-lizzy-blue {
  background-color: #006ce2;
  color: rgba(255, 255, 255, 0.95); }

.c-client-lizzy-blue--fill {
  fill: #006ce2; }

.c-client-lizzy-blue--fill-dark {
  fill: #0054af; }

.c-client-lizzy-blue--color {
  color: #006ce2; }

.c-client-local {
  background-color: #0d9bdb;
  color: rgba(255, 255, 255, 0.95); }

.c-client-local--fill {
  fill: #0d9bdb; }

.c-client-local--fill-dark {
  fill: #0a79ab; }

.c-client-local--color {
  color: #0d9bdb; }

.c-client-migros {
  background-color: #ff6600;
  color: rgba(255, 255, 255, 0.95); }

.c-client-migros--fill {
  fill: #ff6600; }

.c-client-migros--fill-dark {
  fill: #cc5200; }

.c-client-migros--color {
  color: #ff6600; }

.c-client-mobility {
  background-color: #c31622;
  color: rgba(255, 255, 255, 0.95); }

.c-client-mobility--fill {
  fill: #c31622; }

.c-client-mobility--fill-dark {
  fill: #95111a; }

.c-client-mobility--color {
  color: #c31622; }

.c-client-puma {
  background-color: #00853f;
  color: rgba(255, 255, 255, 0.95); }

.c-client-puma--fill {
  fill: #00853f; }

.c-client-puma--fill-dark {
  fill: #005227; }

.c-client-puma--color {
  color: #00853f; }

.c-client-puma-green {
  background-color: #006e34;
  color: rgba(255, 255, 255, 0.95); }

.c-client-puma-green--fill {
  fill: #006e34; }

.c-client-puma-green--fill-dark {
  fill: #003b1c; }

.c-client-puma-green--color {
  color: #006e34; }

.c-client-nzz {
  background-color: #3b8fc9;
  color: rgba(255, 255, 255, 0.95); }

.c-client-nzz--fill {
  fill: #3b8fc9; }

.c-client-nzz--fill-dark {
  fill: #2d73a4; }

.c-client-nzz--color {
  color: #3b8fc9; }

.c-client-paycall {
  background-color: #42414d;
  color: rgba(255, 255, 255, 0.95); }

.c-client-paycall--fill {
  fill: #42414d; }

.c-client-paycall--fill-dark {
  fill: #2a2a31; }

.c-client-paycall--color {
  color: #42414d; }

.c-client-paycall-violet {
  background-color: #4d4974;
  color: rgba(255, 255, 255, 0.95); }

.c-client-paycall-violet--fill {
  fill: #4d4974; }

.c-client-paycall-violet--fill-dark {
  fill: #383555; }

.c-client-paycall-violet--color {
  color: #4d4974; }

.c-client-postfinance {
  background-color: #f8cf34;
  color: rgba(255, 255, 255, 0.95); }

.c-client-postfinance--fill {
  fill: #f8cf34; }

.c-client-postfinance--fill-dark {
  fill: #f1c008; }

.c-client-postfinance--color {
  color: #f8cf34; }

.c-client-postfinanceapp {
  background-color: #00545E;
  color: rgba(255, 255, 255, 0.95); }

.c-client-postfinanceapp--fill {
  fill: #00545E; }

.c-client-postfinanceapp--fill-dark {
  fill: #00262b; }

.c-client-postfinanceapp--color {
  color: #00545E; }

.c-client-raiffeisen {
  background-color: #c84a48;
  color: rgba(255, 255, 255, 0.95); }

.c-client-raiffeisen--fill {
  fill: #c84a48; }

.c-client-raiffeisen--fill-dark {
  fill: #aa3533; }

.c-client-raiffeisen--color {
  color: #c84a48; }

.c-client-sbb {
  background-color: #f10000;
  color: rgba(255, 255, 255, 0.95); }

.c-client-sbb--fill {
  fill: #f10000; }

.c-client-sbb--fill-dark {
  fill: #be0000; }

.c-client-sbb--color {
  color: #f10000; }

.c-client-siroop {
  background-color: #41cadf;
  color: rgba(255, 255, 255, 0.95); }

.c-client-siroop--fill {
  fill: #41cadf; }

.c-client-siroop--fill-dark {
  fill: #22b4cb; }

.c-client-siroop--color {
  color: #41cadf; }

.c-client-siroop-grey {
  background-color: #f1f5f7;
  color: rgba(255, 255, 255, 0.95); }

.c-client-siroop-grey--fill {
  fill: #f1f5f7; }

.c-client-siroop-grey--fill-dark {
  fill: #d1dee4; }

.c-client-siroop-grey--color {
  color: #f1f5f7; }

.c-client-swisscom {
  background-color: #000d57;
  color: rgba(255, 255, 255, 0.95); }

.c-client-swisscom--fill {
  fill: #000d57; }

.c-client-swisscom--fill-dark {
  fill: #000524; }

.c-client-swisscom--color {
  color: #000d57; }

.c-client-sympany {
  background-color: #ca0018;
  color: rgba(255, 255, 255, 0.95); }

.c-client-sympany--fill {
  fill: #ca0018; }

.c-client-sympany--fill-dark {
  fill: #970012; }

.c-client-sympany--color {
  color: #ca0018; }

.c-client-sympany-light {
  background-color: #fdf7f8;
  color: rgba(255, 255, 255, 0.95); }

.c-client-sympany-light--fill {
  fill: #fdf7f8; }

.c-client-sympany-light--fill-dark {
  fill: #f3ced4; }

.c-client-sympany-light--color {
  color: #fdf7f8; }

.c-client-uepaa {
  background-color: #0e8bcf;
  color: rgba(255, 255, 255, 0.95); }

.c-client-uepaa--fill {
  fill: #0e8bcf; }

.c-client-uepaa--fill-dark {
  fill: #0b6b9f; }

.c-client-uepaa--color {
  color: #0e8bcf; }

.c-client-testingtime {
  background-color: #84c35a;
  color: rgba(255, 255, 255, 0.95); }

.c-client-testingtime--fill {
  fill: #84c35a; }

.c-client-testingtime--fill-dark {
  fill: #6aac3e; }

.c-client-testingtime--color {
  color: #84c35a; }

.c-client-twint-dark {
  background-color: #1d262c;
  color: rgba(255, 255, 255, 0.95); }

.c-client-twint-dark--fill {
  fill: #1d262c; }

.c-client-twint-dark--fill-dark {
  fill: #090b0d; }

.c-client-twint-dark--color {
  color: #1d262c; }

.c-client-twint-grey {
  background-color: #f3f3f3;
  color: rgba(255, 255, 255, 0.95); }

.c-client-twint-grey--fill {
  fill: #f3f3f3; }

.c-client-twint-grey--fill-dark {
  fill: #dadada; }

.c-client-twint-grey--color {
  color: #f3f3f3; }

.c-client-twint-blue {
  background-color: #50a4d3;
  color: rgba(255, 255, 255, 0.95); }

.c-client-twint-blue--fill {
  fill: #50a4d3; }

.c-client-twint-blue--fill-dark {
  fill: #308cc0; }

.c-client-twint-blue--color {
  color: #50a4d3; }

.c-client-zurich {
  background-color: #0c2e96;
  color: rgba(255, 255, 255, 0.95); }

.c-client-zurich--fill {
  fill: #0c2e96; }

.c-client-zurich--fill-dark {
  fill: #082067; }

.c-client-zurich--color {
  color: #0c2e96; }

.c-client-bfu {
  background-color: #00b2aa;
  color: rgba(255, 255, 255, 0.95); }

.c-client-bfu--fill {
  fill: #00b2aa; }

.c-client-bfu--fill-dark {
  fill: #007f79; }

.c-client-bfu--color {
  color: #00b2aa; }

.c-client-jutzler {
  background-color: #2f80ed;
  color: rgba(255, 255, 255, 0.95); }

.c-client-jutzler--fill {
  fill: #2f80ed; }

.c-client-jutzler--fill-dark {
  fill: #1366d6; }

.c-client-jutzler--color {
  color: #2f80ed; }

.c-client-vontobel {
  background-color: #ffd500;
  color: rgba(255, 255, 255, 0.95); }

.c-client-vontobel--fill {
  fill: #ffd500; }

.c-client-vontobel--fill-dark {
  fill: #ccaa00; }

.c-client-vontobel--color {
  color: #ffd500; }

.c-ui-link {
  background-color: cornflowerblue; }

.c-ui-link--fill {
  fill: cornflowerblue; }

.c-ui-link--fill-dark {
  fill: #3676e8; }

.c-ui-link--color {
  color: cornflowerblue; }

.c-neutral-black {
  background-color: #16161d; }

.c-neutral-black--fill {
  fill: #16161d; }

.c-neutral-black--fill-dark {
  fill: black; }

.c-neutral-black--color {
  color: #16161d; }

.c-neutral-graphite {
  background-color: #666; }

.c-neutral-graphite--fill {
  fill: #666; }

.c-neutral-graphite--fill-dark {
  fill: #4d4d4d; }

.c-neutral-graphite--color {
  color: #666; }

.c-neutral-gray {
  background-color: #ddd; }

.c-neutral-gray--fill {
  fill: #ddd; }

.c-neutral-gray--fill-dark {
  fill: #c4c4c4; }

.c-neutral-gray--color {
  color: #ddd; }

.c-neutral-silver {
  background-color: #fafafa; }

.c-neutral-silver--fill {
  fill: #fafafa; }

.c-neutral-silver--fill-dark {
  fill: #e1e1e1; }

.c-neutral-silver--color {
  color: #fafafa; }

.c-neutral-white {
  background-color: #fff; }

.c-neutral-white--fill {
  fill: #fff; }

.c-neutral-white--fill-dark {
  fill: #e6e6e6; }

.c-neutral-white--color {
  color: #fff; }

/*
   Hack to overcome the lack of color contrast check
 */
.c-client-siroop-grey {
  color: rgba(0, 0, 0, 0.8); }

.c-client-filmcoopi {
  color: black; }

.color-aroov,
.c-color-aroov--color blockquote {
  color: #32b5dc; }

.l-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 16px; }

.l-container--medium {
  max-width: 800px; }

.l-container--small {
  max-width: 680px; }

.l-container--spaceless {
  padding-left: 0;
  padding-right: 0; }

.l-container--left-aligned {
  margin-left: 0; }

.js-breakpoint:after,
.js-breakpoint {
  content: '{"mobile":"only screen and (max-width:740px)","tablet":"only screen and (max-width:1050px)","desktop":"only screen and (min-width:1051px)","print":"print"}';
  font-family: '{"mobile":"only screen and (max-width:740px)","tablet":"only screen and (max-width:1050px)","desktop":"only screen and (min-width:1051px)","print":"print"}'; }

.l-grid-hipster__row {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-flow: row wrap;
      flex-flow: row wrap; }
  .l-grid-hipster__row--vertical {
    -ms-flex-direction: column;
        flex-direction: column; }

.l-grid-hipster__cell {
  -ms-flex: 1;
      flex: 1;
  background: rgba(255, 0, 0, 0.1); }

@media only screen and (max-width: 740px) {
  .l-grid-hipster__row {
    display: block; } }

.icon {
  width: 24px;
  height: 24px;
  fill: currentColor; }

.narrative img,
.narrative video {
  max-width: 100%; }

.narrative h1:not([class]) {
  font-family: Avenir, Arial, sans-serif;
  font-weight: 800;
  font-style: normal;
  font-size: 2.8rem;
  line-height: 1.14; }
  @media only screen and (max-width: 740px) {
    .narrative h1:not([class]) {
      font-size: 2rem; } }

.narrative h2:not([class]) {
  font-family: Avenir, Arial, sans-serif;
  font-weight: 800;
  font-style: normal;
  font-size: 2rem;
  line-height: 1.3; }
  @media only screen and (max-width: 740px) {
    .narrative h2:not([class]) {
      font-size: 1.5rem; } }

.narrative h3:not([class]) {
  font-family: Avenir, Arial, sans-serif;
  font-weight: 800;
  font-style: normal;
  font-size: 1.3rem;
  line-height: 1.3; }

.narrative h4:not([class]) {
  font-family: Avenir, Arial, sans-serif;
  font-weight: 800;
  font-style: normal;
  font-size: 1.1rem;
  line-height: 1.3; }

.narrative h5:not([class]),
.narrative h6:not([class]) {
  font-family: "PT Serif", serif;
  font-weight: 400;
  font-style: normal;
  font-size: 1.2rem;
  line-height: 1.65; }
  @media only screen and (max-width: 740px) {
    .narrative h5:not([class]),
    .narrative h6:not([class]) {
      font-size: 1rem; } }

.narrative p:not([class]),
.narrative li {
  font-family: "PT Serif", serif;
  font-weight: 400;
  font-style: normal;
  font-size: 1rem;
  line-height: 1.65; }
  @media only screen and (max-width: 740px) {
    .narrative p:not([class]),
    .narrative li {
      font-size: 0.9rem; } }

.narrative figcaption:not([class]) {
  font-family: Avenir, Arial, sans-serif;
  font-weight: 400;
  font-style: normal;
  font-size: 0.8rem;
  line-height: 1.4;
  color: #666; }

.narrative table {
  font-family: "PT Serif", serif;
  font-weight: 400;
  font-style: normal;
  font-size: 1rem;
  line-height: 1.65; }
  @media only screen and (max-width: 740px) {
    .narrative table {
      font-size: 0.9rem; } }

.narrative a {
  color: cornflowerblue;
  text-decoration: none; }
  .narrative a:hover, .narrative a:focus {
    text-decoration: underline; }

.narrative figure {
  margin: 0; }

.narrative figure + figure {
  margin-top: 3rem; }

.narrative h1,
.narrative h2,
.narrative h3,
.narrative h4,
.narrative h5,
.narrative h6 {
  margin-top: 3rem; }

.narrative small {
  font-size: 90%; }

.narrative img {
  max-width: 100%;
  display: block;
  margin-left: auto;
  margin-right: auto; }

.narrative figure,
.narrative table,
.narrative figcaption,
.narrative ul,
.narrative ol,
.narrative p {
  margin-top: 1em; }

.narrative li {
  margin-top: .5em; }

.narrative img,
.narrative video {
  margin-top: 2rem;
  margin-bottom: 0; }

.narrative p + p {
  margin-top: 1.5em; }

.narrative h2 + p {
  margin-top: 2em; }

.narrative figcaption {
  margin-bottom: 2em; }

.narrative td {
  padding-top: 1.6em; }

.narrative > *:first-child {
  margin-top: 0; }

.narrative td {
  vertical-align: top; }

.narrative .timeline {
  margin-top: 4rem; }

.narrative .no-vr {
  margin-top: 0; }

.ratio {
  display: block;
  position: relative; }
  .ratio--panorama {
    padding-top: 50%; }
  .ratio--1to4 {
    padding-top: 25%; }
  .ratio--square {
    padding-top: 100%; }
    @media only screen and (max-width: 740px) {
      .ratio--square {
        padding-top: 50%; } }
  .ratio--3to2 {
    padding-top: 66.66667%; }
  .ratio__content {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0; }

/**
 * Sizes function
 * Expects a size name (default: medium) and returns it's value in rem
 */
/* Helpers for the styleguide to display the sizes */
.s-huge {
  width: 136px;
  height: 136px; }

.s-inner-huge {
  padding: 136px; }

.s-vertical-huge {
  padding-top: 136px;
  padding-bottom: 136px; }

.s-x-large {
  width: 64px;
  height: 64px; }

.s-inner-x-large {
  padding: 64px; }

.s-vertical-x-large {
  padding-top: 64px;
  padding-bottom: 64px; }

.s-large {
  width: 32px;
  height: 32px; }

.s-inner-large {
  padding: 32px; }

.s-vertical-large {
  padding-top: 32px;
  padding-bottom: 32px; }

.s-medium {
  width: 24px;
  height: 24px; }

.s-inner-medium {
  padding: 24px; }

.s-vertical-medium {
  padding-top: 24px;
  padding-bottom: 24px; }

.s-normal {
  width: 16px;
  height: 16px; }

.s-inner-normal {
  padding: 16px; }

.s-vertical-normal {
  padding-top: 16px;
  padding-bottom: 16px; }

.s-small {
  width: 12px;
  height: 12px; }

.s-inner-small {
  padding: 12px; }

.s-vertical-small {
  padding-top: 12px;
  padding-bottom: 12px; }

.s-tiny {
  width: 8px;
  height: 8px; }

.s-inner-tiny {
  padding: 8px; }

.s-vertical-tiny {
  padding-top: 8px;
  padding-bottom: 8px; }

.d-b {
  display: block; }

.affix-header {
  position: fixed;
  z-index: 3;
  top: 0;
  width: 100%;
  opacity: 1;
  box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.15); }
  .affix-header__container {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: center;
        justify-content: center;
    -ms-flex-align: center;
        align-items: center;
    position: relative;
    box-sizing: border-box;
    height: 60px;
    overflow: hidden; }
    @media only screen and (max-width: 740px) {
      .affix-header__container {
        height: 60px; } }
  .affix-header__go-back {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 24px;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    -ms-flex-pack: center;
        justify-content: center; }
  .affix-header__arrows {
    position: absolute;
    top: 0;
    bottom: 0;
    right: 24px;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center; }
  .affix-header__go-prev {
    -ms-transform: rotate(180deg) !important;
        transform: rotate(180deg) !important;
    margin-right: 24px; }
  .affix-header__logo {
    display: block;
    width: auto !important;
    height: 32px !important;
    transform: translate3d(0, 0, 0);
    will-change: transform;
    transition: transform 100ms ease-in-out; }
    .affix-header__logo svg {
      color: inherit;
      width: 100%; }
    .affix-header__logo path {
      fill: currentColor; }
  .affix-header__logo-container, .affix-header__title-container {
    transition: transform .2s ease-in-out, opacity .3s ease-in-out; }
  .affix-header__logo-container {
    position: relative;
    -ms-transform: translate(0, 0);
        transform: translate(0, 0); }
  .affix-header__title-container {
    position: absolute;
    top: 50%;
    left: 50%;
    -ms-transform: translate(-50%, 50%);
        transform: translate(-50%, 50%);
    opacity: 0; }
  .affix-header--scrolled .affix-header__logo-container {
    -ms-transform: translate(0, -100%);
        transform: translate(0, -100%);
    opacity: 0; }
  .affix-header--scrolled .affix-header__title-container {
    -ms-transform: translate(-50%, -50%);
        transform: translate(-50%, -50%);
    opacity: 1; }
  .affix-header__link {
    display: inline-block;
    color: inherit;
    width: 100%; }

/**
 * Sizes function
 * Expects a size name (default: medium) and returns it's value in rem
 */
/* Helper for avatar-sizes */
.avatar--small {
  width: 120px;
  height: 120px; }

.avatar--medium {
  width: 160px;
  height: 160px; }

.avatar--large {
  width: 190px;
  height: 190px; }

.avatar {
  position: relative;
  display: block;
  margin: 0 auto;
  border-radius: 50%;
  overflow: hidden;
  text-align: center; }
  .avatar__image {
    position: absolute;
    width: auto;
    -ms-transform: translateX(-50%);
        transform: translateX(-50%);
    width: auto;
    max-height: 100%;
    border-radius: 50%;
    background: #fafafa; }

.button {
  display: inline-block;
  padding: 10px 25px;
  background: #16161d;
  border: none;
  outline: none;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  color: #fff;
  text-align: center;
  cursor: pointer;
  transition: background-color .15s ease-in-out; }
  .button:hover {
    background-color: #424257; }
  .button[disable] {
    color: #cccccc;
    background-color: #424257;
    pointer-events: none; }

.callout {
  text-align: center;
  margin: 0;
  background-size: cover; }
  .callout:after {
    content: close-quote; }
  .callout:before {
    content: open-quote; }

.card {
  display: block;
  position: relative;
  background-color: #fafafa;
  background-repeat: no-repeat;
  background-size: cover; }
  .card__header {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    -ms-flex-pack: center;
        justify-content: center;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.2), rgba(0, 0, 0, 0.0980392)); }
  .card__logo {
    max-width: 130px;
    display: none; }
  .card__divider {
    position: absolute;
    top: 50%;
    left: calc(50% - 48px / 2);
    width: 48px;
    margin-top: .65rem;
    border: 0;
    border-bottom: 1px solid white;
    opacity: 0;
    -ms-transform: scaleX(0);
        transform: scaleX(0);
    transition: transform .2s, opacity .2s; }
  .card__footer {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: center;
        justify-content: center;
    -ms-flex-direction: column;
        flex-direction: column;
    -ms-flex-align: center;
        align-items: center;
    padding: 12px 24px; }
  .card__title, .card__subtitle {
    display: block;
    text-align: center; }
  .card__title {
    color: #fff;
    font-weight: 800;
    transition: 200ms transform; }
  .card__subtitle {
    height: 22px;
    color: #fff;
    transition: 200ms opacity, 200ms transform;
    margin-top: 12px; }
  .card__overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1;
    background: #16161d;
    opacity: .8;
    transform: translate3d(0, 0, 0);
    will-change: opacity;
    transition: 200ms opacity, 100ms background-color; }
  .card__content {
    z-index: 2; }
  .card:hover .card__title {
    -ms-transform: translateY(-10px);
        transform: translateY(-10px); }
  .card:hover .card__subtitle {
    opacity: 1;
    -ms-transform: translateY(10px);
        transform: translateY(10px); }
  .card:hover .card__divider {
    opacity: 1;
    -ms-transform: scaleX(1);
        transform: scaleX(1); }
  .card:hover .card__overlay {
    opacity: .9; }

.carousel {
  position: relative; }

.carousel__button {
  position: absolute;
  top: 50%;
  width: 4rem;
  height: 4rem;
  border: 0;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 0.5rem rgba(0, 0, 0, 0.3);
  font: 0/0 a;
  text-shadow: none;
  color: transparent;
  cursor: pointer;
  z-index: 2;
  outline: none;
  transition: box-shadow .1s linear, transform .1s;
  -ms-transform: translateY(-50%) scale(1);
      transform: translateY(-50%) scale(1); }
  .carousel__button:active {
    -ms-transform: translateY(-50%) scale(0.95);
        transform: translateY(-50%) scale(0.95); }
  .carousel__button:hover {
    opacity: 0.9; }
  .carousel__button--prev {
    left: 20px; }
    .carousel__button--prev:before {
      transition: transform 0.2s;
      -ms-transform: translate(3px, 0px) rotate(-135deg);
          transform: translate(3px, 0px) rotate(-135deg); }
  .carousel__button--next {
    right: 20px; }
    .carousel__button--next:before {
      -ms-transform: translate(-3px, 0px) rotate(45deg);
          transform: translate(-3px, 0px) rotate(45deg); }
  .carousel__button:before {
    content: "";
    display: inline-block;
    width: 1rem;
    height: 1rem;
    border-right: 0.05rem solid #666;
    border-top: 0.05rem solid #666; }
  .carousel__button:hover, .carousel__button:focus {
    background: #fff;
    box-shadow: 0 0 0.5rem rgba(0, 0, 0, 0.6); }
  @media only screen and (max-width: 740px) {
    .carousel__button {
      display: none; } }

.carousel__item {
  box-sizing: border-box;
  display: inline-block;
  vertical-align: middle;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  opacity: .2;
  transition: opacity .2s ease-in-out;
  outline: none;
  width: 1200px; }
  .carousel__item.slick-current, .carousel__item:focus {
    opacity: 1; }
  @media only screen and (max-width: 740px) {
    .carousel__item {
      padding-left: 0;
      padding-right: 0; } }

.carousel__image {
  display: block;
  margin: 0 auto;
  max-width: 100%;
  margin-bottom: 1rem; }

.carousel__dots {
  height: 30px;
  padding: 16px 90px;
  list-style: none;
  margin: 0;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: center;
      justify-content: center; }
  .carousel__dots button {
    font: 0/0 a;
    text-shadow: none;
    color: transparent;
    background: transparent;
    outline: none;
    padding: 0;
    cursor: pointer;
    border-radius: 50%;
    color: inherit;
    border: 1px solid currentColor;
    width: 10px;
    height: 10px; }
    .carousel__dots button:hover {
      background-color: currentColor; }
  .carousel__dots > li.slick-active button {
    background-color: currentColor; }
  .carousel__dots > li:not(:first-child) {
    margin-left: 8px; }

.footer {
  padding: 64px 0px 64px 0px;
  text-align: center; }
  .footer__logo {
    display: block;
    width: auto !important;
    height: 40px !important;
    transform: translate3d(0, 0, 0);
    will-change: transform;
    transition: transform 100ms ease-in-out; }
    .footer__logo g {
      fill: white; }
  .footer__info-block {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
        align-items: center;
    -ms-flex-pack: center;
        justify-content: center; }
    @media only screen and (max-width: 740px) {
      .footer__info-block--links {
        -ms-flex-direction: column;
            flex-direction: column; } }
    .footer__info-block--icons {
      margin-top: 24px; }
    .footer__info-block--logo {
      margin-top: 32px; }
  .footer__link {
    display: inline-block;
    margin-bottom: 24px; }
    .footer__link .icon-link__text {
      color: #fff; }
    .footer__link svg {
      fill: #fff; }
  .footer__info-block--icons .footer__link:not(:last-child) {
    margin-right: 32px; }
  .footer__info-block--links .footer__link:not(:last-child) {
    margin-right: 32px; }
    @media only screen and (max-width: 740px) {
      .footer__info-block--links .footer__link:not(:last-child) {
        margin-right: 0; } }

.hr--short {
  width: 48px;
  border: 0;
  outline: 0;
  border-bottom: 1px solid white;
  margin: 0 auto;
  display: inline-block; }

.header-minimal {
  overflow: hidden;
  box-sizing: border-box;
  background-size: cover;
  padding-top: 64px;
  position: relative;
  padding-top: 124px; }
  @media only screen and (max-width: 740px) {
    .header-minimal {
      padding-top: 124px;
      height: 80vh !important; } }
  .header-minimal__container {
    width: 100%;
    height: 100%;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
    box-sizing: border-box; }
  .header-minimal__image {
    transform: translate3d(0, 0, 0); }
  .header-minimal__title {
    text-align: center;
    transform: translate3d(0, 0, 0);
    padding-bottom: 32px; }
    @media only screen and (max-width: 740px) {
      .header-minimal__title {
        -ms-transform: none !important;
            transform: none !important;
        opacity: 1 !important; } }
  .header-minimal__image-abs {
    position: absolute;
    max-width: 75%;
    -webkit-backface-visibility: hidden;
            backface-visibility: hidden;
    will-change: transform;
    transform: translateZ(0); }
    @media only screen and (max-width: 740px) {
      .header-minimal__image-abs:not(.header-minimal__image-abs--manual-space-mobile) {
        max-width: 100%;
        max-height: 100%;
        width: auto;
        top: auto !important;
        bottom: 0 !important;
        left: 50% !important;
        right: auto !important;
        -ms-transform-origin: center center;
            transform-origin: center center;
        -ms-transform: translateX(-50%) !important;
            transform: translateX(-50%) !important; }
        .header-minimal__image-abs:not(.header-minimal__image-abs--manual-space-mobile).header-minimal__image-abs--space-on-mobile {
          top: 50% !important;
          bottom: auto !important;
          -ms-transform: translate(-50%, -50%) !important;
              transform: translate(-50%, -50%) !important; } }
    @media only screen and (max-width: 740px) {
      .header-minimal__image-abs--manual-space-mobile {
        max-width: 100%; } }
    .header-minimal__image-abs.is-centered {
      left: 50%;
      -ms-transform: translateX(-50%);
          transform: translateX(-50%); }
  .header-minimal__images {
    position: relative;
    -ms-flex-positive: 1;
        flex-grow: 1; }
    @media only screen and (max-width: 740px) {
      .header-minimal__images {
        margin-left: -16px;
        margin-right: -16px; } }
  .header-minimal__image {
    box-sizing: border-box;
    max-width: 100%;
    -ms-flex-positive: 1;
        flex-grow: 1;
    -ms-flex-negative: 0;
        flex-shrink: 0; }

.header-minimal--image-right {
  -ms-flex-direction: row;
      flex-direction: row; }

.header-minimal--centered-image .header-minimal__image {
  -ms-flex-item-align: center;
      -ms-grid-row-align: center;
      align-self: center;
  padding-bottom: 2rem; }

.header-minimal--has-abs-images {
  overflow: hidden; }

.hotspot {
  margin-top: 32px;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: center;
      justify-content: center; }

.hotspot__screenshot {
  position: relative;
  display: block; }

.hotspot__image {
  max-width: 100%;
  margin: 0; }

.hotspot__item {
  position: absolute; }

.hotspot__item-dot {
  display: block;
  border-radius: 50%;
  width: 1.25rem;
  height: 1.25rem;
  -ms-transform: translate(-50%, -50%);
      transform: translate(-50%, -50%);
  cursor: pointer;
  opacity: 1;
  box-shadow: 0 0 0.25rem rgba(0, 0, 0, 0.6); }

.hotspot__item-popup {
  opacity: 0;
  text-align: left;
  width: 15rem;
  padding: 0.5rem;
  z-index: -1; }

.hotspot__item-arrow {
  display: inline-block;
  position: absolute; }
  .hotspot__item-arrow:after {
    content: '';
    display: block;
    position: absolute;
    border-top: 0.5rem solid transparent;
    border-right: 0.5rem solid transparent;
    border-bottom: 0.5rem solid transparent;
    border-left: 0.5rem solid transparent; }

.hotspot__item-arrow-left:after {
  right: 100%;
  border-right-color: currentColor; }

.hotspot__item-arrow-right:after {
  left: 100%;
  border-left-color: currentColor; }

.hotspot__item-arrow-up:after {
  bottom: 100%;
  border-bottom-color: currentColor; }

.hotspot__item-arrow-down:after {
  top: 100%;
  border-top-color: currentColor; }

.hotspot__item-arrow-left-corner:after {
  left: 0.3rem; }

.hotspot__item-arrow-right-corner:after {
  right: 0.3rem; }

.hotspot__item-arrow-top-corner:after {
  top: 0.3rem; }

.hotspot__item-arrow-bottom-corner:after {
  bottom: 0.3rem; }

.hotspot__item-radio {
  visibility: hidden; }

.hotspot__item-radio:checked ~ .hotspot__item-popup {
  opacity: 1;
  z-index: 2; }

/**
 * Define the basic popup translations based on
 * the arrow direction and arrow corner position
 */
.hotspot__item-arrow-up.hotspot__item-arrow-left-corner {
  -ms-transform: translate(-0.95rem, 2.5rem);
      transform: translate(-0.95rem, 2.5rem); }

.hotspot__item-arrow-up.hotspot__item-arrow-right-corner {
  -ms-transform: translate(-16.25rem, 2.5rem);
      transform: translate(-16.25rem, 2.5rem); }

.hotspot__item-arrow-right.hotspot__item-arrow-top-corner {
  -ms-transform: translate(-18rem, -0.3rem);
      transform: translate(-18rem, -0.3rem); }

.hotspot__item-arrow-left.hotspot__item-arrow-top-corner {
  -ms-transform: translate(0.75rem, -0.3rem);
      transform: translate(0.75rem, -0.3rem); }

.hotspot__item-arrow-left.hotspot__item-arrow-bottom-corner {
  -ms-transform: translate(0.75rem, -0.5rem);
      transform: translate(0.75rem, -0.5rem); }

.hotspot__item-arrow-right.hotspot__item-arrow-bottom-corner {
  -ms-transform: translate(-18rem, -0.5rem);
      transform: translate(-18rem, -0.5rem); }

.hotspot__item-arrow-down.hotspot__item-arrow-left-corner {
  -ms-transform: translate(-0.95rem, -1.75rem);
      transform: translate(-0.95rem, -1.75rem); }

.hotspot__item-arrow-down.hotspot__item-arrow-right-corner {
  -ms-transform: translate(-16.25rem, -1.75rem);
      transform: translate(-16.25rem, -1.75rem); }

.icon-link {
  text-decoration: none;
  opacity: 1;
  transition: 0.4s opacity;
  will-change: opacity;
  transform: translate3d(0, 0, 0);
  color: inherit;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
      align-items: center;
  -ms-flex-pack: center;
      justify-content: center; }
  .icon-link:hover {
    opacity: .6; }
  .icon-link__icon {
    width: 24px;
    height: 24px; }
  .icon-link__text {
    margin-left: 12px; }
  @media only screen and (max-width: 740px) {
    .icon-link--hide-text-on-mobile .icon-link__text {
      display: none; } }
  .icon-link--rtl {
    -ms-flex-direction: row-reverse;
        flex-direction: row-reverse; }
  .icon-link--rtl .icon-link__text {
    margin-left: 0;
    margin-right: 12px; }
  .icon-link--text-only .icon-link__text {
    margin-left: 0;
    margin-right: 0; }

.image-link {
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  overflow: hidden;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden; }
  .image-link__content {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column;
    -ms-flex-pack: center;
        justify-content: center;
    padding: 24px 24px;
    z-index: 2; }
  .image-link__overlay {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    opacity: .3;
    background-color: currentColor;
    transition: 0.2s opacity, transform 0.3s ease-in-out;
    will-change: opacity, transform;
    transform: translate3d(0, 0, 0) scaleY(1);
    -ms-transform-origin: center center;
        transform-origin: center center; }
  .image-link__title {
    z-index: 1;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: center;
        justify-content: center;
    -ms-flex-align: center;
        align-items: center;
    transform: translate3d(0, 34px, 0);
    will-change: transform, transform;
    transition: opacity 0.3s ease-in-out, transform 0.3s ease-in-out; }
  .image-link__subtitle {
    margin-top: 8px;
    opacity: 0;
    transform: translate3d(0, 34px, 0);
    will-change: opacity, transform;
    transition: opacity 0.2s, transform 0.35s cubic-bezier(0.13, 1, 0.4, 1);
    line-height: 34px; }
  .image-link:hover .image-link__overlay {
    opacity: 0;
    transform: translate3d(0, -34px, 0) scaleY(0);
    transition: opacity .3s, transform 0.5s ease-in-out; }
  .image-link:hover .image-link__title,
  .image-link:hover .image-link__subtitle {
    transform: translate3d(0, 0, 0); }
  .image-link:hover .image-link__title {
    transition: transform 0.35s; }
  .image-link:hover .image-link__subtitle {
    opacity: 1;
    transition-delay: 0.15s;
    transition-duration: 0.35s; }

.banner {
  background-color: #ffd700;
  color: #000;
  padding: 24px;
  text-align: center;
  font-size: 12px;
  font-weight: bold; }
  .banner a {
    color: #000;
    text-decoration: underline; }
  .banner .t-lead {
    font-family: Avenir, Arial, sans-serif; }

.intro__header {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
      align-items: center; }

.intro__logo {
  width: 64px;
  margin-right: 24px; }

.intro__title {
  -ms-flex: 1;
      flex: 1; }

.intro__body {
  margin-top: 12px;
  opacity: 0.8; }

.list-pageable {
  text-align: center; }
  .list-pageable:not(.is-expanded) .list-pageable__hidden-projects {
    display: none; }
  .list-pageable__show-more {
    margin: 80px 0px;
    width: 40%;
    margin-right: auto;
    margin-left: auto; }
    .list-pageable__show-more.is-hidden {
      display: none; }

.list {
  list-style-type: none;
  margin-left: 0;
  margin-right: 0;
  padding: 0; }

.list__item {
  font-family: Avenir, Arial, sans-serif;
  font-weight: 400;
  font-style: normal;
  font-size: 1rem;
  line-height: 1.65;
  display: -ms-flexbox;
  display: flex;
  padding-top: 16px;
  padding-bottom: 16px; }
  .list__item:first-child {
    padding-top: 0; }
  .list__item:last-child {
    padding-bottom: 0; }
  .list__item:not(:last-child) {
    position: relative; }
    .list__item:not(:last-child)::after {
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      height: 1px;
      background-color: currentColor;
      opacity: .2;
      content: ''; }

.list__item-icon {
  display: none; }
  .list__item-icon svg {
    display: inline-block;
    vertical-align: middle;
    width: 1em; }

.list--dark .list__item-icon svg {
  fill: #4d4974;
  stroke: #4d4974; }

.list--tick {
  stroke: currentColor; }
  .list--tick .list__item-icon {
    display: inline-block; }

.list--number {
  counter-reset: number-counter; }
  .list--number .list__item {
    counter-increment: number-counter; }
  .list--number .list__item:before {
    content: counter(number-counter) ".";
    vertical-align: top; }

.list--tick .list__item-content, .list--number .list__item-content {
  padding-left: 16px; }

.list--tick .list__item::after, .list--number .list__item::after {
  display: none; }

.project-header {
  position: relative;
  margin: auto;
  text-align: center; }

.project-header__highlight {
  position: relative;
  margin-bottom: 3.5em; }

.project-header__background {
  position: absolute;
  height: 85%;
  top: 0;
  bottom: 0;
  right: 0;
  left: 0;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center; }

.project-header__device {
  position: relative;
  margin: auto auto 0 auto;
  padding-top: 10%; }

.project-header__device.iphone-6s {
  width: 25%;
  min-width: 150px;
  max-width: 250px; }

.project-header__device.dell-hd {
  width: 70%;
  min-width: 150px;
  max-width: 840px; }

.project-header__device.macbook-air {
  width: 70%;
  min-width: 150px;
  max-width: 840px; }

.project-header__device.ipad-air2 {
  width: 70%;
  max-width: 840px;
  min-width: 150px; }

.project-header__separator {
  width: 100px;
  height: 2px;
  margin: 3.5em auto;
  background-color: #fafafa; }

.project-header__slogan {
  margin-bottom: 6em; }

/* Multiple box shadows to achieve the glass lens effect */
/* Lens */
/* Text while loading */
.screenshot-magnifying {
  text-align: center; }

html.magnifying > body {
  overflow-x: hidden; }

.magnify {
  position: relative;
  display: inline-block; }

.magnify-lens {
  position: absolute;
  width: 10rem;
  height: 10rem;
  border-radius: 100%;
  box-shadow: 0 0 0 7px rgba(255, 255, 255, 0.85), 0 0 7px 7px rgba(0, 0, 0, 0.25), inset 0 0 40px 2px rgba(0, 0, 0, 0.25);
  cursor: none;
  display: none;
  z-index: 2; }

.magnify-lens.loading {
  background: #16161d !important;
  opacity: 0.75; }

.magnify-lens.loading:after {
  position: absolute;
  top: 45%;
  left: 0;
  width: 100%;
  color: #fff;
  content: "Loading...";
  text-align: center;
  text-shadow: 0 0 2px rgba(51, 51, 51, 0.8); }

.section {
  padding-top: 4.5rem;
  padding-bottom: 4.5rem;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center; }
  @media only screen and (max-width: 740px) {
    .section {
      padding-top: 2.5rem;
      padding-bottom: 2.5rem; } }
  .section__section-title {
    margin-bottom: 1rem; }
  .section__section-number {
    margin-right: 12px; }

.section-small {
  padding-top: 2rem;
  padding-bottom: 2rem; }

.aroov-research {
  position: relative;
  padding-top: 30vh;
  padding-bottom: 30vh; }
  .aroov-research .l-container {
    position: relative;
    z-index: 1; }
  .aroov-research .narrative p {
    font-size: 1.2rem; }
  .aroov-research:before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background-image: url(../content/images/aroov/research.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: 50% 50%;
    opacity: .2; }

.team {
  position: relative;
  margin: auto;
  text-align: center; }

.team__members {
  display: -ms-flexbox;
  display: flex;
  list-style: none;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -ms-flex-pack: center;
      justify-content: center;
  margin: 64px 0 0;
  padding: 0; }

.team__item {
  text-align: center;
  padding-left: 12px;
  padding-right: 12px;
  margin-bottom: 24px;
  min-width: 200px;
  max-width: 100%; }
  .team__item-name {
    margin-top: 12px; }

.team.c-color-aroov--color blockquote {
  max-width: 880px;
  margin-left: auto;
  margin-right: auto; }

/* Avatar positioned half his height and taking into consideration section padding top */
.testimonial__avatar {
  position: relative;
  margin: -8.5rem auto 0;
  text-align: center; }

.testimonial__callout {
  margin-top: 2rem; }

.testimonial__author {
  margin-top: 24px;
  text-align: center; }

.testimonial__name {
  display: block; }

.timeline-horizontal {
  padding: 0; }

.timeline-horizontal__item {
  display: -ms-inline-flexbox;
  display: inline-flex;
  -ms-flex-flow: row;
      flex-flow: row;
  -ms-flex-pack: center;
      justify-content: center;
  outline: none; }
  .timeline-horizontal__item > *:not(:last-child) {
    margin-right: 25px; }

.timeline-horizontal__dots {
  position: relative;
  padding: 50px 0;
  overflow: hidden; }
  .timeline-horizontal__dots ul {
    padding: 0; }

.timeline-horizontal__dots-line {
  position: absolute;
  z-index: 0;
  content: "";
  height: 2px;
  width: 0;
  top: 50%;
  left: 0;
  background-color: #0d9bdb;
  transition: width .2s ease-in-out; }

.timeline-horizontal__dots::before {
  position: absolute;
  z-index: 0;
  content: "";
  height: 2px;
  width: 100%;
  top: 50%;
  left: 0;
  background-color: #b9e6fb; }

.timeline-horizontal__dots .slick-dots {
  position: relative;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-flow: row;
      flex-flow: row;
  -ms-flex-pack: justify;
      justify-content: space-between; }
  .timeline-horizontal__dots .slick-dots * {
    outline: none; }
  .timeline-horizontal__dots .slick-dots li {
    display: inline;
    position: relative;
    height: 30px; }
    .timeline-horizontal__dots .slick-dots li button {
      color: transparent;
      border: none;
      position: relative;
      z-index: 1;
      background: white;
      border-radius: 100%;
      border-color: #0d9bdb;
      border-style: solid;
      border-width: 2px;
      height: 100%;
      width: 30px;
      cursor: pointer;
      transition: border-color .2s ease-in-out; }
      .timeline-horizontal__dots .slick-dots li button::after {
        position: absolute;
        content: "";
        background-color: transparent;
        border-radius: 100%;
        top: 4px;
        bottom: 4px;
        left: 4px;
        right: 4px;
        transition: background-color .2s ease-in-out; }
    .timeline-horizontal__dots .slick-dots li:hover button {
      border-color: #0d9bdb;
      transition-delay: .2s; }
    .timeline-horizontal__dots .slick-dots li.slick-active button {
      border-color: #0d9bdb;
      transition-delay: .2s; }
    .timeline-horizontal__dots .slick-dots li.slick-active button::after {
      background-color: #0d9bdb;
      transition-delay: .2s; }
    .timeline-horizontal__dots .slick-dots li.slick-active ~ li button {
      border-color: #b9e6fb;
      transition-delay: .2s; }

.timeline {
  position: relative;
  padding-left: 32px;
  /* this is the vertical line */ }
  @media only screen and (max-width: 740px) {
    .timeline {
      padding-left: 24px; } }
  .timeline:before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 0.075rem;
    background: #29b4f2; }
  .timeline__cursor {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0; }
  .timeline__cursor-line {
    position: absolute;
    top: 0.75rem;
    left: 0;
    width: 0.15rem;
    bottom: 0;
    -ms-transform: scaleY(0);
        transform: scaleY(0);
    background: #0d9bdb;
    margin-left: -0.05rem;
    -ms-transform-origin: top center;
        transform-origin: top center;
    transition: transform 16ms ease;
    will-change: transform; }
  .timeline__cursor-dot {
    position: absolute;
    top: 0;
    left: -0.5rem;
    width: 1rem;
    height: 1rem;
    border-radius: 50%;
    background: #0d9bdb;
    will-change: transform; }

.timeline__item {
  position: relative; }
  .timeline__item:not(:last-child) {
    margin-bottom: 4rem; }
  .timeline__item-content {
    -ms-flex-align: center;
        align-items: center;
    display: -ms-flexbox;
    display: flex; }
    @media only screen and (max-width: 740px) {
      .timeline__item-content {
        display: block; } }
  .timeline__item-content-cell {
    -ms-flex: 1;
        flex: 1; }
  .timeline__item-content-cell--image {
    text-align: center; }
  .timeline__item-dot {
    position: absolute;
    top: 50%;
    left: 0;
    width: 1.5rem;
    height: 1.5rem;
    border: 0.05rem solid #29b4f2;
    border-radius: 50%;
    -ms-transform: translate(-50%, -50%);
        transform: translate(-50%, -50%);
    margin-left: -32px;
    background-color: #fff;
    z-index: 1; }
    @media only screen and (max-width: 740px) {
      .timeline__item-dot {
        margin-left: -24px; } }
    .timeline__item-dot:before {
      will-change: opacity;
      content: "";
      position: absolute;
      top: 50%;
      left: 50%;
      width: 1rem;
      height: 1rem;
      opacity: 0;
      border-radius: 50%;
      background: #0d9bdb;
      -ms-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
      transition: opacity .2s ease-in-out; }
    .timeline__item-dot.is-active {
      border: 0.1rem solid #29b4f2; }
    .timeline__item-dot.is-active:before {
      opacity: 1; }
  .timeline__item:first-child .timeline__item-dot {
    top: 0;
    -ms-transform: translate(-50%, 0);
        transform: translate(-50%, 0);
    border: 0.1rem solid #29b4f2; }
  .timeline__item:last-child .timeline__item-dot {
    top: auto;
    bottom: 0;
    -ms-transform: translate(-50%, 0);
        transform: translate(-50%, 0); }

.timeline--middle {
  padding-left: 0; }
  @media only screen and (max-width: 740px) {
    .timeline--middle {
      padding-left: 24px; } }
  .timeline--middle:before,
  .timeline--middle .timeline__cursor,
  .timeline--middle .timeline__item-dot {
    left: 50%; }
    @media only screen and (max-width: 740px) {
      .timeline--middle:before,
      .timeline--middle .timeline__cursor,
      .timeline--middle .timeline__item-dot {
        left: 0; } }
  .timeline--middle .timeline__item-dot {
    margin-left: 0; }
    @media only screen and (max-width: 740px) {
      .timeline--middle .timeline__item-dot {
        margin-left: -24px; } }
  .timeline--middle .timeline__item:nth-child(even) .timeline__item-content-cell--text {
    -ms-flex-order: -1;
        order: -1; }

.timeline__item-content-cell--image > img {
  max-width: 100%; }

.timeline__item-content-cell--image {
  padding-right: 3rem; }
  @media only screen and (max-width: 740px) {
    .timeline__item-content-cell--image {
      padding-right: 0; } }

.timeline__item-content-cell--text {
  padding-left: 3rem; }
  @media only screen and (max-width: 740px) {
    .timeline__item-content-cell--text {
      padding-left: 0; } }

.timeline--middle .timeline__item:nth-child(even) .timeline__item-content-cell--image {
  padding-right: 0;
  padding-left: 3rem; }
  @media only screen and (max-width: 740px) {
    .timeline--middle .timeline__item:nth-child(even) .timeline__item-content-cell--image {
      padding-left: 0; } }

.timeline--middle .timeline__item:nth-child(even) .timeline__item-content-cell--text {
  padding-left: 0;
  padding-right: 3rem; }
  @media only screen and (max-width: 740px) {
    .timeline--middle .timeline__item:nth-child(even) .timeline__item-content-cell--text {
      padding-right: 0; } }

/*
 * A modern theme for portfolio pages using sans serif typefaces
 * and a modular scale with fluid type. This theme also includes a
 * dark variation that can be used to emphasize a section.
 */
/*
* Don’t import any other fonts here, because they would be loaded on every page.
* Ideally, themes could be included in the head of a page to avoid
* loading global styles. By design, this is not possible because the "meta" block
* in layout templates will inject custom meta tags, such as a custom CSS file,
* before other styles. Fonts are loaded from the page layout for now.

* @import url('https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,400i,600,700');

*/
.theme--modern .narrative {
  font-size: 1em;
  /* Remove element specific spacing */
  /*
   * Tags
   */
  /*
   * Spacing
   */
  /* Specific styles for project title + subtitle combo */ }
  .theme--modern .narrative h1, .theme--modern .narrative h2, .theme--modern .narrative h3, .theme--modern .narrative h4, .theme--modern .narrative h5, .theme--modern .narrative h6, .theme--modern .narrative p, .theme--modern .narrative ul, .theme--modern .narrative li, .theme--modern .narrative blockquote {
    font-family: "Avenir Next", "Avenir", "Helvetica Neue", sans-serif; }
  .theme--modern .narrative h1, .theme--modern .narrative h2, .theme--modern .narrative h3, .theme--modern .narrative h4, .theme--modern .narrative h5, .theme--modern .narrative h6 {
    margin-top: 0; }
  .theme--modern .narrative h1 {
    font-size: 35.2512px;
    text-align: center;
    line-height: 1.25;
    margin-top: 15%;
    font-weight: 700; }
    @media (min-width: 320px) and (max-width: 1200px) {
      .theme--modern .narrative h1 {
        font-size: calc( 35.2512px + 24.53591 * ( ( 100vw - 320px) / 880 )); } }
    @media (min-width: 1200px) {
      .theme--modern .narrative h1 {
        font-size: 59.78711px; } }
  .theme--modern .narrative h2 {
    font-size: 24.48px;
    font-weight: 700; }
    @media (min-width: 320px) and (max-width: 1200px) {
      .theme--modern .narrative h2 {
        font-size: calc( 24.48px + 8.325 * ( ( 100vw - 320px) / 880 )); } }
    @media (min-width: 1200px) {
      .theme--modern .narrative h2 {
        font-size: 32.805px; } }
  .theme--modern .narrative h3 {
    font-size: 20.4px;
    font-weight: 600; }
    @media (min-width: 320px) and (max-width: 1200px) {
      .theme--modern .narrative h3 {
        font-size: calc( 20.4px + 3.9 * ( ( 100vw - 320px) / 880 )); } }
    @media (min-width: 1200px) {
      .theme--modern .narrative h3 {
        font-size: 24.3px; } }
  .theme--modern .narrative h4 {
    font-size: 17px;
    font-weight: 600; }
    @media (min-width: 320px) and (max-width: 1200px) {
      .theme--modern .narrative h4 {
        font-size: calc( 17px + 1 * ( ( 100vw - 320px) / 880 )); } }
    @media (min-width: 1200px) {
      .theme--modern .narrative h4 {
        font-size: 18px; } }
  .theme--modern .narrative p, .theme--modern .narrative ul, .theme--modern .narrative li, .theme--modern .narrative blockquote {
    font-size: 17px;
    line-height: 1.5; }
    @media (min-width: 320px) and (max-width: 1200px) {
      .theme--modern .narrative p, .theme--modern .narrative ul, .theme--modern .narrative li, .theme--modern .narrative blockquote {
        font-size: calc( 17px + 1 * ( ( 100vw - 320px) / 880 )); } }
    @media (min-width: 1200px) {
      .theme--modern .narrative p, .theme--modern .narrative ul, .theme--modern .narrative li, .theme--modern .narrative blockquote {
        font-size: 18px; } }
  .theme--modern .narrative a {
    color: black;
    text-decoration: underline; }
  .theme--modern .narrative strong {
    font-weight: 600; }
  .theme--modern .narrative blockquote {
    border-left: 8px solid rgba(0, 0, 0, 0.1);
    margin: 1.5em 0 1.5em 0;
    padding-left: 1rem;
    opacity: 0.7; }
  .theme--modern .narrative figcaption {
    text-align: center; }
  .theme--modern .narrative hr {
    margin: 3rem 0; }
  .theme--modern .narrative h1 + h2 {
    margin-top: 0.5em;
    text-align: center;
    font-weight: normal;
    opacity: 0.5; }
  .theme--modern .narrative h2 + h3 {
    margin-top: 2rem; }
  .theme--modern .narrative figure + p,
  .theme--modern .narrative p + figure {
    margin-top: 1.5rem; }
  .theme--modern .narrative h3 + p,
  .theme--modern .narrative p + p {
    margin-top: 1em; }
  .theme--modern .narrative ul + h3,
  .theme--modern .narrative p + h3,
  .theme--modern .narrative figure + h3 {
    margin-top: 3rem; }

/* -------------------------------------------------------------------------- */
.theme--modern-dark .narrative {
  /*
   * Styles for a feature block that can be used to emphasize a section.
   * Applies a dark theme.
   */
  color: white;
  /* Control rendering for light text on dark background */
  -webkit-font-smoothing: antialiased;
  /*
   * Tags
   */
  /*
   * Spacing
   */
  /* Tweak for multi-column baseline alignment */
  /*
    * Mobile layout changes
    */ }
  .theme--modern-dark .narrative h2 {
    font-weight: 700;
    line-height: 1;
    text-transform: uppercase;
    text-align: left;
    font-size: 29.376px;
    color: white;
    opacity: 1; }
    @media (min-width: 320px) and (max-width: 1200px) {
      .theme--modern-dark .narrative h2 {
        font-size: calc( 29.376px + 14.91075 * ( ( 100vw - 320px) / 880 )); } }
    @media (min-width: 1200px) {
      .theme--modern-dark .narrative h2 {
        font-size: 44.28675px; } }
  .theme--modern-dark .narrative p {
    opacity: 0.8;
    margin-top: 0; }
  .theme--modern-dark .narrative hr {
    background: rgba(255, 255, 255, 0.25);
    border: 0;
    display: block;
    width: 100%;
    height: 1px;
    margin: 40px 0;
    padding: 0; }
  .theme--modern-dark .narrative h4 + p {
    margin-top: 0.2rem; }
  @media (max-width: 480px) {
    .theme--modern-dark .narrative {
      /* Change side-by-side grid layout to a stack */ }
      .theme--modern-dark .narrative .l-grid {
        display: block; }
      .theme--modern-dark .narrative .l-one-half + .l-one-half {
        margin-top: 1.5rem; }
      .theme--modern-dark .narrative .l-one-half {
        width: 100%; } }

.align-center {
  text-align: center; }

video,
.shadow {
  box-shadow: 0px 4px 30px rgba(0, 0, 0, 0.2), 0px 1px 4px rgba(0, 0, 0, 0.2); }

.l-page {
  margin-top: 60px; }
  .l-page:not(.l-page--spaceless) {
    min-height: calc(100vh - 60px);
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
        flex-direction: column; }
  .l-page__content {
    -ms-flex: 1;
        flex: 1; }
  @media only screen and (max-width: 740px) {
    .l-page {
      margin-top: 60px;
      min-height: auto; } }
  .l-page--spaceless {
    margin-top: 0; }
    @media only screen and (max-width: 740px) {
      .l-page--spaceless {
        margin-top: 0; } }

.video--no-shadow {
  box-shadow: none;
  -ms-flex-pack: center;
      justify-content: center; }

.download-badge {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: center;
      justify-content: center;
  margin-top: 30px; }
  @media only screen and (max-width: 740px) {
    .download-badge {
      -ms-flex-direction: column;
          flex-direction: column; } }

.download-badge__button {
  height: 100px;
  display: block;
  margin-top: 4.5rem; }
  @media only screen and (max-width: 740px) {
    .download-badge__button {
      margin: 0;
      height: 80px; } }

.download-badge__legal-notice {
  font-family: Avenir, Arial, sans-serif;
  font-weight: 400;
  font-style: normal;
  font-size: 0.8rem;
  line-height: 1.4;
  opacity: .5; }
  @media only screen and (max-width: 740px) {
    .download-badge__legal-notice {
      font-size: .7rem; } }

img.download-badge__img {
  height: 100%;
  width: auto;
  margin-top: 0; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlcy5jc3MiLCIuLi9lbGVtZW50cy8xdHlwb2dyYXBoeS9zdHlsZS5zY3NzIiwiXzMuYmFzZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3NlbnNpYmxlL19tZWRpYXF1ZXJpZXMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9zZW5zaWJsZS9fcmVzcG9uc2l2ZS12aXNpYmlsaXR5LnNjc3MiLCIuLi9lbGVtZW50cy8xZ3JpZC9zdHlsZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3NlbnNpYmxlL19ncmlkLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm9uZXNjc3MvbWl4aW5zL19wcmVmaXgtcnVsZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvbmVzY3NzL21peGlucy9fdG9vbHMtdHlwb2dyYXBoeS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JvbmVzY3NzL21peGlucy9fY3NzaWZ5LW1hcC5zY3NzIiwiLi4vZWxlbWVudHMvY29sb3JzL3N0eWxlLnNjc3MiLCIuLi9lbGVtZW50cy9jb250YWluZXJzL3N0eWxlLnNjc3MiLCIuLi9lbGVtZW50cy9ncmlkLWhpcHN0ZXIvc3R5bGUuc2NzcyIsIi4uL2VsZW1lbnRzL2ljb24vc3R5bGUuc2NzcyIsIi4uL2VsZW1lbnRzL25hcnJhdGl2ZS9zdHlsZS5zY3NzIiwiLi4vZWxlbWVudHMvcmF0aW8vc3R5bGUuc2NzcyIsIi4uL2VsZW1lbnRzL3NwYWNpbmdzL3N0eWxlLnNjc3MiLCIuLi9tb2R1bGVzL2FmZml4SGVhZGVyL3N0eWxlLnNjc3MiLCIuLi9tb2R1bGVzL2F2YXRhci9zdHlsZS5zY3NzIiwiLi4vbW9kdWxlcy9idXR0b25zL3N0eWxlLnNjc3MiLCIuLi9tb2R1bGVzL2NhbGxvdXQvc3R5bGUuc2NzcyIsIi4uL21vZHVsZXMvY2FyZC9zdHlsZS5zY3NzIiwiLi4vbW9kdWxlcy9jYXJvdXNlbC9zdHlsZS5zY3NzIiwiLi4vbW9kdWxlcy9mb290ZXIvc3R5bGUuc2NzcyIsIi4uL21vZHVsZXMvaGVhZGVyLW1pbmltYWwvc3R5bGUuc2NzcyIsIi4uL21vZHVsZXMvaG90c3BvdC9zdHlsZS5zY3NzIiwiLi4vbW9kdWxlcy9pY29uLWxpbmsvc3R5bGUuc2NzcyIsIi4uL21vZHVsZXMvaW1hZ2VMaW5rL3N0eWxlLnNjc3MiLCIuLi9tb2R1bGVzL2ludHJvL3N0eWxlLnNjc3MiLCIuLi9tb2R1bGVzL2xpc3QtcGFnZWFibGUvc3R5bGUuc2NzcyIsIi4uL21vZHVsZXMvbGlzdC9zdHlsZS5zY3NzIiwiLi4vbW9kdWxlcy9wcm9qZWN0SGVhZGVyL3N0eWxlLnNjc3MiLCIuLi9tb2R1bGVzL3NjcmVlbnNob3QtbWFnbmlmeWluZy9zdHlsZS5zY3NzIiwiLi4vbW9kdWxlcy9zZWN0aW9uL3N0eWxlLnNjc3MiLCIuLi9tb2R1bGVzL3RlYW0vc3R5bGUuc2NzcyIsIi4uL21vZHVsZXMvdGVzdGltb25pYWwvc3R5bGUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib25lc2Nzcy9taXhpbnMvX3Rvb2xzLXNpemUuc2NzcyIsIi4uL21vZHVsZXMvdGltZWxpbmUtaG9yaXpvbnRhbC9zdHlsZS5zY3NzIiwiLi4vbW9kdWxlcy90aW1lbGluZS9zdHlsZS5zY3NzIiwidGhlbWVzL21vZGVybi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL21vZHVsYXJzY2FsZS1zYXNzL3N0eWxlc2hlZXRzL21vZHVsYXJzY2FsZS9fZnVuY3Rpb24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9tb2R1bGFyc2NhbGUtc2Fzcy9zdHlsZXNoZWV0cy9tb2R1bGFyc2NhbGUvX3Jlc3BvbmQuc2NzcyIsIl81LmhlbHBlcnMuc2NzcyIsIl83LnNoYW1lLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FDK01qQiwwRkFBWTtBQy9NWjtFQUNFLFVBQVM7RUFDVCxXQUFVO0VBQ1YsbUJBQWtCLEVBQ25COztBQUVEO0VBQ0UsVUFBUztFQUNULFVBQVM7RUFDVCwwQ0FBeUMsRUFDMUM7O0FBRUQ7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RDtNQUNFLHNCQUFTLEVBQ1Y7RUFHTDtJQUNFLHlCQUF3QjtJQUN4QixtQkFBa0IsRUFNbkI7SUFKRztNQUNFLHlCQUF3QixFQUN6QjtJQUZEO01BQ0UseUJBQXdCLEVBQ3pCLEVBQUE7O0FIbUZYO0VBQ0UsZ0JBdEk0QjtFQXVJNUIsdUNBMUlpRDtFQTJJakQsaUJBakprQztFQWtKbEMsbUJBL0k4QjtFQWdKOUIsaUJBdEkyQjtFQXVJM0IseUJBQXdCLEVBRXpCOztBTW5JQztFQ1hJLHVDUEY2QztFT0U3QyxpQlBQOEI7RU9POUIsbUJQTDBCO0VPSzFCLGtCUHNCMEI7RU90QjFCLGtCUHVCd0IsRU1WM0I7RUpNQztJSVJGO01FcEJFLGdCUnVIaUIsRU1qR2xCLEVBQUE7O0FBRkQ7RUNYSSx1Q1BGNkM7RU9FN0MsaUJQUDhCO0VPTzlCLG1CUEwwQjtFT0sxQixrQlA4QjBCO0VPOUIxQixrQlArQndCLEVNbEIzQjs7QUFGRDtFQ1hJLHVDUEY2QztFT0U3QyxpQlBSOEI7RU9ROUIsbUJQSjBCO0VPSTFCLGtCUHFDeUI7RU9yQ3pCLGlCUHNDdUI7RU90Q3ZCLG9CUHVDdUI7RU92Q3ZCLDBCUHdDNkIsRU0zQmhDO0VKTUM7SUlSRjtNRXBCRSxrQlIySGtCLEVNckduQixFQUFBOztBQUZEO0VDWEksdUNQRjZDO0VPRTdDLGlCUFA4QjtFT085QixtQlBMMEI7RU9LMUIsZ0JQOEN3QjtFTzlDeEIsaUJQK0N1QixFTWxDMUI7RUpNQztJSVJGO01FcEJFLGtCUjhIbUIsRU14R3BCLEVBQUE7O0FBRkQ7RUNYSSwrQlBEcUM7RU9DckMsaUJQUjhCO0VPUTlCLG1CUEwwQjtFT0sxQixrQlBxRDBCO0VPckQxQixrQlBzRHdCLEVNekMzQjtFSk1DO0lJUkY7TUVwQkUsZ0JSaUlpQixFTTNHbEIsRUFBQTs7QUFGRDtFQ1hJLHVDUEY2QztFT0U3QyxpQlBQOEI7RU9POUIsbUJQTDBCO0VPSzFCLGtCUDREMEI7RU81RDFCLGlCUDZEdUIsRU1oRDFCOztBQUZEO0VDWEksdUNQRjZDO0VPRTdDLGlCUFA4QjtFT085QixtQlBMMEI7RU9LMUIsa0JQbUUwQjtFT25FMUIsaUJQb0V1QixFTXZEMUI7O0FBRkQ7RUNYSSwrQlBEcUM7RU9DckMsaUJQUjhCO0VPUTlCLG1CUEwwQjtFT0sxQixnQlAwRXdCO0VPMUV4QixrQlAyRXdCLEVNOUQzQjtFSk1DO0lJUkY7TUVwQkUsa0JScUltQixFTS9HcEIsRUFBQTs7QUFGRDtFQ1hJLHVDUEY2QztFT0U3QyxpQlBSOEI7RU9ROUIsbUJQTDBCO0VPSzFCLGdCUGlGd0I7RU9qRnhCLGtCUGtGd0IsRU1yRTNCOztBQUZEO0VDWEksdUNQRjZDO0VPRTdDLGlCUFI4QjtFT1E5QixtQlBMMEI7RU9LMUIsa0JQd0YwQjtFT3hGMUIsaUJQeUZ1QixFTTVFMUI7O0FBRkQ7RUNYSSwrQlBEcUM7RU9DckMsaUJQUjhCO0VPUTlCLG1CUEowQjtFT0kxQixrQlArRjBCO0VPL0YxQixpQlBnR3VCLEVNbkYxQjtFSk1DO0lJUkY7TUVwQkUsa0JSeUltQixFTW5IcEIsRUFBQTs7QUFGRDtFQ1hJLCtCUERxQztFT0NyQyxpQlBSOEI7RU9ROUIsbUJQTDBCO0VPSzFCLGtCUHNHMEI7RU90RzFCLGlCUHVHdUIsRU0xRjFCOztBTndJSDtFQUNFLG9CQUFtQjtFQUNuQixpQkEvSmtDO0VBZ0tsQyxtQkFBa0I7RUFDbEIsNkZBQTRGO0VBQzVGLHVWQUd1RyxFQUFBOztBQUd6RztFQUNFLG9CQUFtQjtFQUNuQixpQkExS2tDO0VBMktsQyxtQkFBa0I7RUFDbEIsbUdBQWtHO0VBQ2xHLDJXQUcrRyxFQUFBOztBQUlqSDtFQUNFLG9CQUFtQjtFQUNuQixpQkFyTGtDO0VBc0xsQyxtQkFBa0I7RUFDbEIsNkZBQTRGO0VBQzVGLHVWQUd1RyxFQUFBOztBQW1Cekc7Ozs7Ozs7O0VBUUUsVUFBUyxFQUNWOztBQUdEOztFQUVFLGlCQUFnQixFQUNqQjs7QUFFRDtFQUNFLG1CQUFrQixFQUNuQjs7QUFFRDtFQUNFLG9DQUFtQyxFQUNwQzs7QUFFRDtFQUNFLHVDQW5PaUQsRUFvT2xEOztBUzdPRDs7R0FFRztBQWlGSDs7R0FFRztB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QUFXO0VBQ1gsYUFBWTtFQUNaLG1CQUFrQixFQUNuQjs7QUNERDs7RUFJSSxnQkFBZSxFQUNoQjs7QUFMSDtFTlFNLHVDUEY2QztFT0U3QyxpQlBQOEI7RU9POUIsbUJQTDBCO0VPSzFCLGtCUHNCMEI7RU90QjFCLGtCUHVCd0IsRWF0QjNCO0VYa0JDO0lXM0JKO01MREksZ0JSdUhpQixFYTdHbEIsRUFBQTs7QUFUSDtFTlFNLHVDUEY2QztFT0U3QyxpQlBQOEI7RU9POUIsbUJQTDBCO0VPSzFCLGdCUDhDd0I7RU85Q3hCLGlCUCtDdUIsRWExQzFCO0VYY0M7SVczQko7TUxESSxrQlI4SG1CLEVhaEhwQixFQUFBOztBQWJIO0VOUU0sdUNQRjZDO0VPRTdDLGlCUFA4QjtFT085QixtQlBMMEI7RU9LMUIsa0JQNEQwQjtFTzVEMUIsaUJQNkR1QixFYW5EMUI7O0FBbEJIO0VOUU0sdUNQRjZDO0VPRTdDLGlCUFA4QjtFT085QixtQlBMMEI7RU9LMUIsa0JQbUUwQjtFT25FMUIsaUJQb0V1QixFYXREMUI7O0FBdEJIOztFTlFNLCtCUERxQztFT0NyQyxpQlBSOEI7RU9ROUIsbUJQTDBCO0VPSzFCLGtCUHFEMEI7RU9yRDFCLGtCUHNEd0IsRWFuQzNCO0VYQUM7SVczQko7O01MREksZ0JSaUlpQixFYXJHbEIsRUFBQTs7QUEzQkg7O0VOUU0sK0JQRHFDO0VPQ3JDLGlCUFI4QjtFT1E5QixtQlBMMEI7RU9LMUIsZ0JQMEV3QjtFTzFFeEIsa0JQMkV3QixFYW5EM0I7RVhMQztJVzNCSjs7TUxESSxrQlJxSW1CLEVhcEdwQixFQUFBOztBQWhDSDtFTlFNLHVDUEY2QztFT0U3QyxpQlBSOEI7RU9ROUIsbUJQTDBCO0VPSzFCLGtCUHdGMEI7RU94RjFCLGlCUHlGdUI7RWE3RHpCLFlKcUNjLEVJcENmOztBQXJDSDtFTlFNLCtCUERxQztFT0NyQyxpQlBSOEI7RU9ROUIsbUJQTDBCO0VPSzFCLGdCUDBFd0I7RU8xRXhCLGtCUDJFd0IsRWExQzNCO0VYZEM7SVczQko7TUxESSxrQlJxSW1CLEVhM0ZwQixFQUFBOztB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QixFQU1uQjtFeEM3Qkc7SXdDb0JKO01BTUksVUFBUztNQUNULGFBQVksRUFFZixFQUFBOztBQUVEO0VuQ2xETSx1Q1BGNkM7RU9FN0MsaUJQUjhCO0VPUTlCLG1CUEwwQjtFT0sxQixrQlB3RjBCO0VPeEYxQixpQlB5RnVCO0UwQ3JDekIsWUFBVyxFQUtaO0V4Q3RDQztJd0MrQko7TUFLTSxpQkFBZ0IsRUFFbkIsRUFBQTs7QUFHSDtFQUNFLGFBQVk7RUFDWixZQUFXO0VBQ1gsY0FBYSxFQUNkIiwiZmlsZSI6InN0eWxlcy5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAY2hhcnNldCBcIlVURi04XCI7XG5AaW1wb3J0IHVybChodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9UFQrU2VyaWY6NDAwLDQwMGl0YWxpYyw3MDAsNzAwaXRhbGljKTtcbmJvZHksIGh0bWwge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjsgfVxuXG5ociB7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjE1KTsgfVxuXG5oci5oci0tbGlnaHQge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpOyB9XG5cbi5qcy1icmVha3BvaW50OmFmdGVyLFxuLmpzLWJyZWFrcG9pbnQge1xuICBjb250ZW50OiAne1wibW9iaWxlLXBvcnRyYWl0XCI6XCJvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDo0MjVweClcIixcIm1vYmlsZVwiOlwib25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NzQwcHgpXCIsXCJub3QtbW9iaWxlXCI6XCJvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDo3NDFweClcIixcIm9ubHktbW9iaWxlXCI6XCJvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDo3NDBweClcIixcInRhYmxldC1wb3J0cmFpdFwiOlwib25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ODUwcHgpXCIsXCJ0YWJsZXRcIjpcIm9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjEwNTBweClcIixcIm9ubHktdGFibGV0XCI6XCJvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDo3NDFweCkgYW5kIChtYXgtd2lkdGg6MTA1MXB4KVwiLFwibm90LXRhYmxldFwiOlwib25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MTA1MXB4KVwiLFwiZGVza3RvcFwiOlwib25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MTA1MXB4KVwiLFwib25seS1kZXNrdG9wXCI6XCJvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDoxMDUxcHgpXCIsXCJyZXRpbmFcIjpcIm9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvIDogMS41KSwgb25seSBzY3JlZW4gYW5kIChtaW4tZGV2aWNlLXBpeGVsLXJhdGlvIDogMS41KVwiLFwiaGlnaHJlc1wiOlwicHJpbnQsICgtby1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiA1LzQpLCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjI1KSwgKG1pbi1yZXNvbHV0aW9uOiAxMjBkcGkpXCIsXCJwcmludFwiOlwicHJpbnRcIn0nO1xuICBmb250LWZhbWlseTogJ3tcIm1vYmlsZS1wb3J0cmFpdFwiOlwib25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NDI1cHgpXCIsXCJtb2JpbGVcIjpcIm9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjc0MHB4KVwiLFwibm90LW1vYmlsZVwiOlwib25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6NzQxcHgpXCIsXCJvbmx5LW1vYmlsZVwiOlwib25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NzQwcHgpXCIsXCJ0YWJsZXQtcG9ydHJhaXRcIjpcIm9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjg1MHB4KVwiLFwidGFibGV0XCI6XCJvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDoxMDUwcHgpXCIsXCJvbmx5LXRhYmxldFwiOlwib25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6NzQxcHgpIGFuZCAobWF4LXdpZHRoOjEwNTFweClcIixcIm5vdC10YWJsZXRcIjpcIm9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOjEwNTFweClcIixcImRlc2t0b3BcIjpcIm9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOjEwNTFweClcIixcIm9ubHktZGVza3RvcFwiOlwib25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MTA1MXB4KVwiLFwicmV0aW5hXCI6XCJvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbyA6IDEuNSksIG9ubHkgc2NyZWVuIGFuZCAobWluLWRldmljZS1waXhlbC1yYXRpbyA6IDEuNSlcIixcImhpZ2hyZXNcIjpcInByaW50LCAoLW8tbWluLWRldmljZS1waXhlbC1yYXRpbzogNS80KSwgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMS4yNSksIChtaW4tcmVzb2x1dGlvbjogMTIwZHBpKVwiLFwicHJpbnRcIjpcInByaW50XCJ9JzsgfVxuXG4vKipcbiAqIHJlbW92ZSByZW1vdmVzIGVsZW1lbnQgZnJvbSBsaXN0IHJldHVybnMgdGhlIG90aGVyc1xuICovXG4vKipcbiAqIG1peGluIHJlc3BvbnNpdmUtdmlzaWJpbGl0eVxuICogJHZpc2liaWxpdHktYnJlYWtwb2ludHMge1tsaXN0XX0gbGlzdCBvZiBicmVha3BvaW50cyB5b3Ugd2FudCB0byBpbnRlcmFjdCB3aXRoXG4gKiAkb3ZlcndyaXRlIHtbYm9vbGVhbl19IGlmIHNldCB0cnVlIHdpbGwgZ2VuZXJhdGUgY2xhc3NlcyB0aGF0IG92ZXJ3cml0ZSB3aGF0IGV2ZXIgdmlzaWJpbGl0eSBpcyBhY3RpdmUgb24gdGhhdCBlbGVtZW50XG4gKlxuICogZXhhY3Q6XG4gKiBAaW5jbHVkZSByZXNwb25zaXZlLXZpc2liaWxpdHkoXCJvbmx5LW1vYmlsZVwiIFwib25seS10YWJsZXRcIiBcIm9ubHktZGVza3RvcFwiLCB0cnVlKTtcbiAqXG4gKiB1cDpcbiAqIEBpbmNsdWRlIHJlc3BvbnNpdmUtdmlzaWJpbGl0eShcIm1vYmlsZVwiIFwidGFibGV0XCIgXCJkZXNrdG9wXCIsIGZhbHNlKTtcbiAqL1xuLyoqXG4gKiBEZWZpbmUgdGhlIGJyZWFrcG9pbnRzIGZvciB2ZW5kb3Ivc2Vuc2libGUvbWVkaWFxdWVyaWVzXG4gKiBUaGV5IGFyZSBkZWZpbmVkIHRoZSBtb2JpbGUgZmlyc3Qgd2F5XG4gKi9cblxuLmwtZ3JpZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWFyZ2luLWxlZnQ6IC0ycmVtOyB9XG4gIFxuICAubC1ncmlkIC5sLWdyaWQtY2VsbCB7XG4gICAgcGFkZGluZy1sZWZ0OiAycmVtO1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIFxuICAubC1ncmlkLS1uYXJyb3cge1xuICAgIG1hcmdpbi1sZWZ0OiAtMXJlbTsgfVxuICAgIFxuICAgIC5sLWdyaWQtLW5hcnJvdyAubC1ncmlkLWNlbGwge1xuICAgICAgcGFkZGluZy1sZWZ0OiAxcmVtOyB9XG4gIFxuICAubC1ncmlkLS1jb2xsYXBzZWQge1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gICAgXG4gICAgLmwtZ3JpZC0tY29sbGFwc2VkIC5sLWdyaWQtY2VsbCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgXG4gIC5sLWdyaWQtLWdhcHBlZCA+IC5sLWdyaWQtY2VsbCB7XG4gICAgcGFkZGluZy1ib3R0b206IDJyZW07IH1cblxuXG4ubC1ncmlkLWNlbGwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuXG4ubC1vbmUtd2hvbGUge1xuICB3aWR0aDogMTAwJTsgfVxuXG5cbi5sLW9uZS1oYWxmIHtcbiAgd2lkdGg6IDUwJTsgfVxuXG5cbi5sLW9uZS1xdWFydGVyIHtcbiAgd2lkdGg6IDI1JTsgfVxuXG5cbi5sLXRocmVlLXF1YXJ0ZXJzIHtcbiAgd2lkdGg6IDc1JTsgfVxuXG5cbi5sLW9uZS10aGlyZCB7XG4gIHdpZHRoOiAzMy4zMzMlOyB9XG5cblxuLmwtdHdvLXRoaXJkcyB7XG4gIHdpZHRoOiA2Ni42NjYlOyB9XG5cblxuLmwtb25lLWZpZnRoIHtcbiAgd2lkdGg6IDIwJTsgfVxuXG5cbi5sLXR3by1maWZ0aHMge1xuICB3aWR0aDogNDAlOyB9XG5cblxuLmwtdGhyZWUtZmlmdGhzIHtcbiAgd2lkdGg6IDYwJTsgfVxuXG5cbi5sLWZvdXItZmlmdGhzIHtcbiAgd2lkdGg6IDgwJTsgfVxuXG5cbi5sLW9uZS1zaXh0aCB7XG4gIHdpZHRoOiAxNi42NjYlOyB9XG5cblxuLmwtZml2ZS1zaXh0aHMge1xuICB3aWR0aDogODMuMzMzJTsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwNTBweCkge1xuICBcbiAgLmwtb25lLXdob2xlLS10YWJsZXQge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIFxuICAubC1vbmUtaGFsZi0tdGFibGV0IHtcbiAgICB3aWR0aDogNTAlOyB9XG4gIFxuICAubC1vbmUtcXVhcnRlci0tdGFibGV0IHtcbiAgICB3aWR0aDogMjUlOyB9XG4gIFxuICAubC10aHJlZS1xdWFydGVycy0tdGFibGV0IHtcbiAgICB3aWR0aDogNzUlOyB9XG4gIFxuICAubC1vbmUtdGhpcmQtLXRhYmxldCB7XG4gICAgd2lkdGg6IDMzLjMzMyU7IH1cbiAgXG4gIC5sLXR3by10aGlyZHMtLXRhYmxldCB7XG4gICAgd2lkdGg6IDY2LjY2NiU7IH1cbiAgXG4gIC5sLW9uZS1maWZ0aC0tdGFibGV0IHtcbiAgICB3aWR0aDogMjAlOyB9XG4gIFxuICAubC10d28tZmlmdGhzLS10YWJsZXQge1xuICAgIHdpZHRoOiA0MCU7IH1cbiAgXG4gIC5sLXRocmVlLWZpZnRocy0tdGFibGV0IHtcbiAgICB3aWR0aDogNjAlOyB9XG4gIFxuICAubC1mb3VyLWZpZnRocy0tdGFibGV0IHtcbiAgICB3aWR0aDogODAlOyB9XG4gIFxuICAubC1vbmUtc2l4dGgtLXRhYmxldCB7XG4gICAgd2lkdGg6IDE2LjY2NiU7IH1cbiAgXG4gIC5sLWZpdmUtc2l4dGhzLS10YWJsZXQge1xuICAgIHdpZHRoOiA4My4zMzMlOyB9IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NDBweCkge1xuICBcbiAgLmwtb25lLXdob2xlLS1tb2JpbGUge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIFxuICAubC1vbmUtaGFsZi0tbW9iaWxlIHtcbiAgICB3aWR0aDogNTAlOyB9XG4gIFxuICAubC1vbmUtcXVhcnRlci0tbW9iaWxlIHtcbiAgICB3aWR0aDogMjUlOyB9XG4gIFxuICAubC10aHJlZS1xdWFydGVycy0tbW9iaWxlIHtcbiAgICB3aWR0aDogNzUlOyB9XG4gIFxuICAubC1vbmUtdGhpcmQtLW1vYmlsZSB7XG4gICAgd2lkdGg6IDMzLjMzMyU7IH1cbiAgXG4gIC5sLXR3by10aGlyZHMtLW1vYmlsZSB7XG4gICAgd2lkdGg6IDY2LjY2NiU7IH1cbiAgXG4gIC5sLW9uZS1maWZ0aC0tbW9iaWxlIHtcbiAgICB3aWR0aDogMjAlOyB9XG4gIFxuICAubC10d28tZmlmdGhzLS1tb2JpbGUge1xuICAgIHdpZHRoOiA0MCU7IH1cbiAgXG4gIC5sLXRocmVlLWZpZnRocy0tbW9iaWxlIHtcbiAgICB3aWR0aDogNjAlOyB9XG4gIFxuICAubC1mb3VyLWZpZnRocy0tbW9iaWxlIHtcbiAgICB3aWR0aDogODAlOyB9XG4gIFxuICAubC1vbmUtc2l4dGgtLW1vYmlsZSB7XG4gICAgd2lkdGg6IDE2LjY2NiU7IH1cbiAgXG4gIC5sLWZpdmUtc2l4dGhzLS1tb2JpbGUge1xuICAgIHdpZHRoOiA4My4zMzMlOyB9IH1cblxuLmwtZ3JpZC0tdi1jZW50ZXJlZCB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cblxuLmwtZ3JpZC0tdnIgPiAubC1ncmlkLWNlbGwge1xuICBtYXJnaW4tdG9wOiAxcmVtO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG5cbi5sLWdyaWQtLXZyLmwtZ3JpZC0tbmFycm93ID4gLmwtZ3JpZC1jZWxsIHtcbiAgbWFyZ2luLXRvcDogMC41cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDUxcHgpIHtcbiAgLmlzLXZpc2libGUtZGVza3RvcCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gICAgLmlzLXZpc2libGUtZGVza3RvcC0taW5saW5lIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZTsgfVxuICAgIC5pcy12aXNpYmxlLWRlc2t0b3AtLWlubGluZS1ibG9jayB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgLmlzLWhpZGRlbi1kZXNrdG9wLCAuaXMtdmlzaWJsZS10YWJsZXQsIC5pcy12aXNpYmxlLW1vYmlsZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAgIC5pcy1oaWRkZW4tZGVza3RvcC0taW5saW5lLCAuaXMtdmlzaWJsZS10YWJsZXQtLWlubGluZSwgLmlzLXZpc2libGUtbW9iaWxlLS1pbmxpbmUge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gICAgLmlzLWhpZGRlbi1kZXNrdG9wLS1pbmxpbmUtYmxvY2ssIC5pcy12aXNpYmxlLXRhYmxldC0taW5saW5lLWJsb2NrLCAuaXMtdmlzaWJsZS1tb2JpbGUtLWlubGluZS1ibG9jayB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwNTBweCkge1xuICAuaXMtdmlzaWJsZS10YWJsZXQge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuICAgIC5pcy12aXNpYmxlLXRhYmxldC0taW5saW5lIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZTsgfVxuICAgIC5pcy12aXNpYmxlLXRhYmxldC0taW5saW5lLWJsb2NrIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAuaXMtaGlkZGVuLXRhYmxldCwgLmlzLXZpc2libGUtZGVza3RvcCwgLmlzLXZpc2libGUtbW9iaWxlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gICAgLmlzLWhpZGRlbi10YWJsZXQtLWlubGluZSwgLmlzLXZpc2libGUtZGVza3RvcC0taW5saW5lLCAuaXMtdmlzaWJsZS1tb2JpbGUtLWlubGluZSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgICAuaXMtaGlkZGVuLXRhYmxldC0taW5saW5lLWJsb2NrLCAuaXMtdmlzaWJsZS1kZXNrdG9wLS1pbmxpbmUtYmxvY2ssIC5pcy12aXNpYmxlLW1vYmlsZS0taW5saW5lLWJsb2NrIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzQwcHgpIHtcbiAgLmlzLXZpc2libGUtbW9iaWxlIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgICAuaXMtdmlzaWJsZS1tb2JpbGUtLWlubGluZSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmU7IH1cbiAgICAuaXMtdmlzaWJsZS1tb2JpbGUtLWlubGluZS1ibG9jayB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgLmlzLWhpZGRlbi1tb2JpbGUsIC5pcy12aXNpYmxlLWRlc2t0b3AsIC5pcy12aXNpYmxlLXRhYmxldCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAgIC5pcy1oaWRkZW4tbW9iaWxlLS1pbmxpbmUsIC5pcy12aXNpYmxlLWRlc2t0b3AtLWlubGluZSwgLmlzLXZpc2libGUtdGFibGV0LS1pbmxpbmUge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gICAgLmlzLWhpZGRlbi1tb2JpbGUtLWlubGluZS1ibG9jaywgLmlzLXZpc2libGUtZGVza3RvcC0taW5saW5lLWJsb2NrLCAuaXMtdmlzaWJsZS10YWJsZXQtLWlubGluZS1ibG9jayB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5odG1sIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBmb250LWZhbWlseTogQXZlbmlyLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBjb2xvcjogYyhuZXV0cmFsLCBibGFjayk7IH1cblxuLnQtcHJvamVjdC10aXRsZSB7XG4gIGZvbnQtZmFtaWx5OiBBdmVuaXIsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogODAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMi44cmVtO1xuICBsaW5lLWhlaWdodDogMS4xNDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0MHB4KSB7XG4gICAgLnQtcHJvamVjdC10aXRsZSB7XG4gICAgICBmb250LXNpemU6IDJyZW07IH0gfVxuXG4udC1wcm9qZWN0LWxlYWQge1xuICBmb250LWZhbWlseTogQXZlbmlyLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXNpemU6IDIuMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTk7IH1cblxuLnQtc2VjdGlvbi10aXRsZSB7XG4gIGZvbnQtZmFtaWx5OiBBdmVuaXIsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBsZXR0ZXItc3BhY2luZzogNHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzQwcHgpIHtcbiAgICAudC1zZWN0aW9uLXRpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMC44cmVtOyB9IH1cblxuLnQtdGl0bGUge1xuICBmb250LWZhbWlseTogQXZlbmlyLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXNpemU6IDJyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjM7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NDBweCkge1xuICAgIC50LXRpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMS41cmVtOyB9IH1cblxuLnQtbGVhZCB7XG4gIGZvbnQtZmFtaWx5OiBcIlBUIFNlcmlmXCIsIHNlcmlmO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xuICBsaW5lLWhlaWdodDogMS42NTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0MHB4KSB7XG4gICAgLnQtbGVhZCB7XG4gICAgICBmb250LXNpemU6IDFyZW07IH0gfVxuXG4udC1zdWJ0aXRsZSB7XG4gIGZvbnQtZmFtaWx5OiBBdmVuaXIsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogODAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xuICBsaW5lLWhlaWdodDogMS4zOyB9XG5cbi50LWg0IHtcbiAgZm9udC1mYW1pbHk6IEF2ZW5pciwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAxLjFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjM7IH1cblxuLnQtcGFyYWdyYXBoIHtcbiAgZm9udC1mYW1pbHk6IFwiUFQgU2VyaWZcIiwgc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS42NTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0MHB4KSB7XG4gICAgLnQtcGFyYWdyYXBoIHtcbiAgICAgIGZvbnQtc2l6ZTogMC45cmVtOyB9IH1cblxuLnQtcGFyYWdyYXBoLXNhbnMge1xuICBmb250LWZhbWlseTogQXZlbmlyLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY1OyB9XG5cbi50LWNhcHRpb24ge1xuICBmb250LWZhbWlseTogQXZlbmlyLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXNpemU6IDAuOHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDsgfVxuXG4udC1xdW90ZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlBUIFNlcmlmXCIsIHNlcmlmO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtc2l6ZTogMS44cmVtO1xuICBsaW5lLWhlaWdodDogMS40OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzQwcHgpIHtcbiAgICAudC1xdW90ZSB7XG4gICAgICBmb250LXNpemU6IDEuNXJlbTsgfSB9XG5cbi50LXF1b3RlLXNtYWxsIHtcbiAgZm9udC1mYW1pbHk6IFwiUFQgU2VyaWZcIiwgc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBBdmVuaXI7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgc3JjOiB1cmwoXCIvL3N0YXRpYy5naW5ldHRhLm5ldC9mb250cy9hdmVuaXItcm9tYW4vYjllYmIxOWQtODhjMS00Y2JkLTliYWYtY2Y1MTk3MjQyMmVjLmVvdFwiKTtcbiAgc3JjOiBsb2NhbChcIkF2ZW5pciBSb21hblwiKSwgdXJsKFwiLy9zdGF0aWMuZ2luZXR0YS5uZXQvZm9udHMvYXZlbmlyLXJvbWFuL2I5ZWJiMTlkLTg4YzEtNGNiZC05YmFmLWNmNTE5NzI0MjJlYy53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcIi8vc3RhdGljLmdpbmV0dGEubmV0L2ZvbnRzL2F2ZW5pci1yb21hbi81ZWQ0Zjk4ZS05MDQ0LTQ4MTAtODhmZi03NGQ0MTJjMTM1MWYudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLCB1cmwoXCIvL3N0YXRpYy5naW5ldHRhLm5ldC9mb250cy9hdmVuaXItcm9tYW4vNGNiMTY4NTktMTZjYS00MzQyLWI4OWMtMjkyZGM4MzI2NmFmLnN2Z1wiKSBmb3JtYXQoXCJzdmdcIik7IH1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBBdmVuaXI7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgc3JjOiB1cmwoXCJzdGF0aWMuZ2luZXR0YS5uZXQvZm9udHMvYXZlbmlyLWJsYWNrLW9ibGlxdWUvOGYyMWU2MTgtOTI4Mi00ZGYxLWI1NTYtNzNlZTgyYmRkNjczLmVvdFwiKTtcbiAgc3JjOiBsb2NhbChcIkF2ZW5pciBPYmxpcXVlXCIpLCB1cmwoXCJzdGF0aWMuZ2luZXR0YS5uZXQvZm9udHMvYXZlbmlyLWJsYWNrLW9ibGlxdWUvMzY5NTM0MmMtYjVlMi00MDEwLWIwZDQtNTZmNTYzNDY1OTIyLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwic3RhdGljLmdpbmV0dGEubmV0L2ZvbnRzL2F2ZW5pci1ibGFjay1vYmxpcXVlLzJiYTlmODc1LTY2ZDktNDE0ZC1hNDI2LTVhMDEyYjQ0MzQ3NS50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksIHVybChcInN0YXRpYy5naW5ldHRhLm5ldC9mb250cy9hdmVuaXItYmxhY2stb2JsaXF1ZS8wYTg4MzUxYS1lNjI4LTRiMWYtOTllYi0zYTcyOTUxOGFmMGEuc3ZnXCIpIGZvcm1hdChcInN2Z1wiKTsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IEF2ZW5pcjtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBzcmM6IHVybChcIi8vc3RhdGljLmdpbmV0dGEubmV0L2ZvbnRzL2F2ZW5pci1oZWF2eS9mNjFiZjBmNi1jMTkzLTQxMDAtYjk0MC0xMmExYTAxZGNlZTUuZW90XCIpO1xuICBzcmM6IGxvY2FsKFwiQXZlbmlyIEhlYXZ5XCIpLCB1cmwoXCIvL3N0YXRpYy5naW5ldHRhLm5ldC9mb250cy9hdmVuaXItaGVhdnkvNzE0N2VjM2EtOGZmOC00ZWM5LThjNWMtYmQxNTcxZGM2YWU2LndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiLy9zdGF0aWMuZ2luZXR0YS5uZXQvZm9udHMvYXZlbmlyLWhlYXZ5L2QxZGM1NGIyLTg3OGQtNDY5My04ZDZlLWI0NDJlOTlmZWY2OC50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksIHVybChcIi8vc3RhdGljLmdpbmV0dGEubmV0L2ZvbnRzL2F2ZW5pci1oZWF2eS83MzFkZDRkMy02NGRhLTQyN2QtYmE2MS0wMTU3NWIzY2YzZjcuc3ZnXCIpIGZvcm1hdChcInN2Z1wiKTsgfVxuXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYsXG5wLFxucHJlIHtcbiAgbWFyZ2luOiAwOyB9XG5cbnN0cm9uZyxcbi50LWJvbGQge1xuICBmb250LXdlaWdodDogODAwOyB9XG5cbi50LWNlbnRlcmVkIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi50LXNtb290aCB7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOyB9XG5cbi50LXNhbnMge1xuICBmb250LWZhbWlseTogQXZlbmlyLCBBcmlhbCwgc2Fucy1zZXJpZjsgfVxuXG4vKipcbiAqIENvbG9yIHZhcmlhYmxlc1xuICovXG4vKipcbiAqIENvbG9yIGZ1bmN0aW9uc1xuICovXG4vKipcbiAqIENvbG9yIGNsYXNzZXNcbiAqIFRyeSB0byB1c2Ugb25seSBpbiB0aGUgc3R5bGVndWlkZVxuICovXG4uYy1naW5ldHRhLXBpbmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmI5ZmIxOyB9XG5cbi5jLWdpbmV0dGEtcGluay0tZmlsbCB7XG4gIGZpbGw6ICNmYjlmYjE7IH1cblxuLmMtZ2luZXR0YS1waW5rLS1maWxsLWRhcmsge1xuICBmaWxsOiAjZjk2ZTg5OyB9XG5cbi5jLWdpbmV0dGEtcGluay0tY29sb3Ige1xuICBjb2xvcjogI2ZiOWZiMTsgfVxuXG4uYy1naW5ldHRhLXNhbG1vbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMGE4OGI7IH1cblxuLmMtZ2luZXR0YS1zYWxtb24tLWZpbGwge1xuICBmaWxsOiAjZjBhODhiOyB9XG5cbi5jLWdpbmV0dGEtc2FsbW9uLS1maWxsLWRhcmsge1xuICBmaWxsOiAjZWE4NjVlOyB9XG5cbi5jLWdpbmV0dGEtc2FsbW9uLS1jb2xvciB7XG4gIGNvbG9yOiAjZjBhODhiOyB9XG5cbi5jLWdpbmV0dGEtb3JhbmdlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2YWQ3YTsgfVxuXG4uYy1naW5ldHRhLW9yYW5nZS0tZmlsbCB7XG4gIGZpbGw6ICNlNmFkN2E7IH1cblxuLmMtZ2luZXR0YS1vcmFuZ2UtLWZpbGwtZGFyayB7XG4gIGZpbGw6ICNkZTkzNGY7IH1cblxuLmMtZ2luZXR0YS1vcmFuZ2UtLWNvbG9yIHtcbiAgY29sb3I6ICNlNmFkN2E7IH1cblxuLmMtZ2luZXR0YS1ncmVlbi1vbGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhNGM0NmE7IH1cblxuLmMtZ2luZXR0YS1ncmVlbi1vbGl2ZS0tZmlsbCB7XG4gIGZpbGw6ICNhNGM0NmE7IH1cblxuLmMtZ2luZXR0YS1ncmVlbi1vbGl2ZS0tZmlsbC1kYXJrIHtcbiAgZmlsbDogIzhkYjQ0NzsgfVxuXG4uYy1naW5ldHRhLWdyZWVuLW9saXZlLS1jb2xvciB7XG4gIGNvbG9yOiAjYTRjNDZhOyB9XG5cbi5jLWdpbmV0dGEtZ3JlZW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzNjYjg4OyB9XG5cbi5jLWdpbmV0dGEtZ3JlZW4tLWZpbGwge1xuICBmaWxsOiAjNzNjYjg4OyB9XG5cbi5jLWdpbmV0dGEtZ3JlZW4tLWZpbGwtZGFyayB7XG4gIGZpbGw6ICM0ZWJkNjg7IH1cblxuLmMtZ2luZXR0YS1ncmVlbi0tY29sb3Ige1xuICBjb2xvcjogIzczY2I4ODsgfVxuXG4uYy1naW5ldHRhLWdyZWVuLWxha2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTVjZTliOyB9XG5cbi5jLWdpbmV0dGEtZ3JlZW4tbGFrZS0tZmlsbCB7XG4gIGZpbGw6ICM1NWNlOWI7IH1cblxuLmMtZ2luZXR0YS1ncmVlbi1sYWtlLS1maWxsLWRhcmsge1xuICBmaWxsOiAjMzZiYTgyOyB9XG5cbi5jLWdpbmV0dGEtZ3JlZW4tbGFrZS0tY29sb3Ige1xuICBjb2xvcjogIzU1Y2U5YjsgfVxuXG4uYy1naW5ldHRhLXRlYWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzRjZmFkOyB9XG5cbi5jLWdpbmV0dGEtdGVhbC0tZmlsbCB7XG4gIGZpbGw6ICMzNGNmYWQ7IH1cblxuLmMtZ2luZXR0YS10ZWFsLS1maWxsLWRhcmsge1xuICBmaWxsOiAjMjhhODhjOyB9XG5cbi5jLWdpbmV0dGEtdGVhbC0tY29sb3Ige1xuICBjb2xvcjogIzM0Y2ZhZDsgfVxuXG4uYy1naW5ldHRhLWN5YW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGZjZGQwOyB9XG5cbi5jLWdpbmV0dGEtY3lhbi0tZmlsbCB7XG4gIGZpbGw6ICMwZmNkZDA7IH1cblxuLmMtZ2luZXR0YS1jeWFuLS1maWxsLWRhcmsge1xuICBmaWxsOiAjMGM5ZWEwOyB9XG5cbi5jLWdpbmV0dGEtY3lhbi0tY29sb3Ige1xuICBjb2xvcjogIzBmY2RkMDsgfVxuXG4uYy1naW5ldHRhLWJsdWUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNWVjNWViOyB9XG5cbi5jLWdpbmV0dGEtYmx1ZS0tZmlsbCB7XG4gIGZpbGw6ICM1ZWM1ZWI7IH1cblxuLmMtZ2luZXR0YS1ibHVlLS1maWxsLWRhcmsge1xuICBmaWxsOiAjMzFiNWU1OyB9XG5cbi5jLWdpbmV0dGEtYmx1ZS0tY29sb3Ige1xuICBjb2xvcjogIzVlYzVlYjsgfVxuXG4uYy1naW5ldHRhLWJsdWUtc2t5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzgwYmZmNDsgfVxuXG4uYy1naW5ldHRhLWJsdWUtc2t5LS1maWxsIHtcbiAgZmlsbDogIzgwYmZmNDsgfVxuXG4uYy1naW5ldHRhLWJsdWUtc2t5LS1maWxsLWRhcmsge1xuICBmaWxsOiAjNTFhN2YwOyB9XG5cbi5jLWdpbmV0dGEtYmx1ZS1za3ktLWNvbG9yIHtcbiAgY29sb3I6ICM4MGJmZjQ7IH1cblxuLmMtZ2luZXR0YS1wdXJwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOWViOGY4OyB9XG5cbi5jLWdpbmV0dGEtcHVycGxlLS1maWxsIHtcbiAgZmlsbDogIzllYjhmODsgfVxuXG4uYy1naW5ldHRhLXB1cnBsZS0tZmlsbC1kYXJrIHtcbiAgZmlsbDogIzZlOTVmNTsgfVxuXG4uYy1naW5ldHRhLXB1cnBsZS0tY29sb3Ige1xuICBjb2xvcjogIzllYjhmODsgfVxuXG4uYy1naW5ldHRhLXZpb2xldCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkMGE5ZjY7IH1cblxuLmMtZ2luZXR0YS12aW9sZXQtLWZpbGwge1xuICBmaWxsOiAjZDBhOWY2OyB9XG5cbi5jLWdpbmV0dGEtdmlvbGV0LS1maWxsLWRhcmsge1xuICBmaWxsOiAjYjc3YmYxOyB9XG5cbi5jLWdpbmV0dGEtdmlvbGV0LS1jb2xvciB7XG4gIGNvbG9yOiAjZDBhOWY2OyB9XG5cbi5jLWNsaWVudC1hcm9vdiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMmI1ZGM7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpOyB9XG5cbi5jLWNsaWVudC1hcm9vdi0tZmlsbCB7XG4gIGZpbGw6ICMzMmI1ZGM7IH1cblxuLmMtY2xpZW50LWFyb292LS1maWxsLWRhcmsge1xuICBmaWxsOiAjMjA5N2JiOyB9XG5cbi5jLWNsaWVudC1hcm9vdi0tY29sb3Ige1xuICBjb2xvcjogIzMyYjVkYzsgfVxuXG4uYy1jbGllbnQtYXJvb3YtdGV4dCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZGE1Y2E7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpOyB9XG5cbi5jLWNsaWVudC1hcm9vdi10ZXh0LS1maWxsIHtcbiAgZmlsbDogIzRkYTVjYTsgfVxuXG4uYy1jbGllbnQtYXJvb3YtdGV4dC0tZmlsbC1kYXJrIHtcbiAgZmlsbDogIzM0OGJiMDsgfVxuXG4uYy1jbGllbnQtYXJvb3YtdGV4dC0tY29sb3Ige1xuICBjb2xvcjogIzRkYTVjYTsgfVxuXG4uYy1jbGllbnQtYXZhbG9xIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMzA3NjtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7IH1cblxuLmMtY2xpZW50LWF2YWxvcS0tZmlsbCB7XG4gIGZpbGw6ICMwMDMwNzY7IH1cblxuLmMtY2xpZW50LWF2YWxvcS0tZmlsbC1kYXJrIHtcbiAgZmlsbDogIzAwMWI0MzsgfVxuXG4uYy1jbGllbnQtYXZhbG9xLS1jb2xvciB7XG4gIGNvbG9yOiAjMDAzMDc2OyB9XG5cbi5jLWNsaWVudC1iYXNsZXItaG9mbWFubiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkYzI4NTY7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpOyB9XG5cbi5jLWNsaWVudC1iYXNsZXItaG9mbWFubi0tZmlsbCB7XG4gIGZpbGw6ICNkYzI4NTY7IH1cblxuLmMtY2xpZW50LWJhc2xlci1ob2ZtYW5uLS1maWxsLWRhcmsge1xuICBmaWxsOiAjYjQxZDQ0OyB9XG5cbi5jLWNsaWVudC1iYXNsZXItaG9mbWFubi0tY29sb3Ige1xuICBjb2xvcjogI2RjMjg1NjsgfVxuXG4uYy1jbGllbnQtYmgtYmxhY2sge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmYyZjJmO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KTsgfVxuXG4uYy1jbGllbnQtYmgtYmxhY2stLWZpbGwge1xuICBmaWxsOiAjMmYyZjJmOyB9XG5cbi5jLWNsaWVudC1iaC1ibGFjay0tZmlsbC1kYXJrIHtcbiAgZmlsbDogIzE2MTYxNjsgfVxuXG4uYy1jbGllbnQtYmgtYmxhY2stLWNvbG9yIHtcbiAgY29sb3I6ICMyZjJmMmY7IH1cblxuLmMtY2xpZW50LWNvbWV0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ4NjQ2ZDtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7IH1cblxuLmMtY2xpZW50LWNvbWV0LS1maWxsIHtcbiAgZmlsbDogIzQ4NjQ2ZDsgfVxuXG4uYy1jbGllbnQtY29tZXQtLWZpbGwtZGFyayB7XG4gIGZpbGw6ICMzNDQ4NGU7IH1cblxuLmMtY2xpZW50LWNvbWV0LS1jb2xvciB7XG4gIGNvbG9yOiAjNDg2NDZkOyB9XG5cbi5jLWNsaWVudC1jcm93ZGhvdXNlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzVmYjZjYjtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7IH1cblxuLmMtY2xpZW50LWNyb3dkaG91c2UtLWZpbGwge1xuICBmaWxsOiAjNWZiNmNiOyB9XG5cbi5jLWNsaWVudC1jcm93ZGhvdXNlLS1maWxsLWRhcmsge1xuICBmaWxsOiAjM2RhMmJhOyB9XG5cbi5jLWNsaWVudC1jcm93ZGhvdXNlLS1jb2xvciB7XG4gIGNvbG9yOiAjNWZiNmNiOyB9XG5cbi5jLWNsaWVudC1jcm93ZGhvdXNlLWRhcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA4MDkyO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KTsgfVxuXG4uYy1jbGllbnQtY3Jvd2Rob3VzZS1kYXJrLS1maWxsIHtcbiAgZmlsbDogIzAwODA5MjsgfVxuXG4uYy1jbGllbnQtY3Jvd2Rob3VzZS1kYXJrLS1maWxsLWRhcmsge1xuICBmaWxsOiAjMDA1MzVmOyB9XG5cbi5jLWNsaWVudC1jcm93ZGhvdXNlLWRhcmstLWNvbG9yIHtcbiAgY29sb3I6ICMwMDgwOTI7IH1cblxuLmMtY2xpZW50LWNyb3dkaG91c2UtbGlnaHQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWJmMmYyO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KTsgfVxuXG4uYy1jbGllbnQtY3Jvd2Rob3VzZS1saWdodC0tZmlsbCB7XG4gIGZpbGw6ICNlYmYyZjI7IH1cblxuLmMtY2xpZW50LWNyb3dkaG91c2UtbGlnaHQtLWZpbGwtZGFyayB7XG4gIGZpbGw6ICNjY2RlZGU7IH1cblxuLmMtY2xpZW50LWNyb3dkaG91c2UtbGlnaHQtLWNvbG9yIHtcbiAgY29sb3I6ICNlYmYyZjI7IH1cblxuLmMtY2xpZW50LWRvY3NhZmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTc4MWUzO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KTsgfVxuXG4uYy1jbGllbnQtZG9jc2FmZS0tZmlsbCB7XG4gIGZpbGw6ICMxNzgxZTM7IH1cblxuLmMtY2xpZW50LWRvY3NhZmUtLWZpbGwtZGFyayB7XG4gIGZpbGw6ICMxMjY3YjU7IH1cblxuLmMtY2xpZW50LWRvY3NhZmUtLWNvbG9yIHtcbiAgY29sb3I6ICMxNzgxZTM7IH1cblxuLmMtY2xpZW50LWRvY3NhZmUtZ3JleSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyYzI3MjM7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpOyB9XG5cbi5jLWNsaWVudC1kb2NzYWZlLWdyZXktLWZpbGwge1xuICBmaWxsOiAjMmMyNzIzOyB9XG5cbi5jLWNsaWVudC1kb2NzYWZlLWdyZXktLWZpbGwtZGFyayB7XG4gIGZpbGw6ICMxMDBlMGM7IH1cblxuLmMtY2xpZW50LWRvY3NhZmUtZ3JleS0tY29sb3Ige1xuICBjb2xvcjogIzJjMjcyMzsgfVxuXG4uYy1jbGllbnQtZG9vZGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNjBkZjtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7IH1cblxuLmMtY2xpZW50LWRvb2RsZS0tZmlsbCB7XG4gIGZpbGw6ICMwMDYwZGY7IH1cblxuLmMtY2xpZW50LWRvb2RsZS0tZmlsbC1kYXJrIHtcbiAgZmlsbDogIzAwNGFhYzsgfVxuXG4uYy1jbGllbnQtZG9vZGxlLS1jb2xvciB7XG4gIGNvbG9yOiAjMDA2MGRmOyB9XG5cbi5jLWNsaWVudC1mYW50b2NoZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM1ZWFlYWE7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpOyB9XG5cbi5jLWNsaWVudC1mYW50b2NoZS0tZmlsbCB7XG4gIGZpbGw6ICM1ZWFlYWE7IH1cblxuLmMtY2xpZW50LWZhbnRvY2hlLS1maWxsLWRhcmsge1xuICBmaWxsOiAjNDk5MDhkOyB9XG5cbi5jLWNsaWVudC1mYW50b2NoZS0tY29sb3Ige1xuICBjb2xvcjogIzVlYWVhYTsgfVxuXG4uYy1jbGllbnQtZmlsbWNvb3BpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjUwNztcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7IH1cblxuLmMtY2xpZW50LWZpbG1jb29waS0tZmlsbCB7XG4gIGZpbGw6ICNmZmY1MDc7IH1cblxuLmMtY2xpZW50LWZpbG1jb29waS0tZmlsbC1kYXJrIHtcbiAgZmlsbDogI2QzY2EwMDsgfVxuXG4uYy1jbGllbnQtZmlsbWNvb3BpLS1jb2xvciB7XG4gIGNvbG9yOiAjZmZmNTA3OyB9XG5cbi5jLWNsaWVudC1oZWxzYW5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzljMDI0MDtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7IH1cblxuLmMtY2xpZW50LWhlbHNhbmEtLWZpbGwge1xuICBmaWxsOiAjOWMwMjQwOyB9XG5cbi5jLWNsaWVudC1oZWxzYW5hLS1maWxsLWRhcmsge1xuICBmaWxsOiAjNmEwMTJiOyB9XG5cbi5jLWNsaWVudC1oZWxzYW5hLS1jb2xvciB7XG4gIGNvbG9yOiAjOWMwMjQwOyB9XG5cbi5jLWNsaWVudC1oZWxzYW5hLWdvbGQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRjNDhjO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KTsgfVxuXG4uYy1jbGllbnQtaGVsc2FuYS1nb2xkLS1maWxsIHtcbiAgZmlsbDogI2RkYzQ4YzsgfVxuXG4uYy1jbGllbnQtaGVsc2FuYS1nb2xkLS1maWxsLWRhcmsge1xuICBmaWxsOiAjZDFiMDY1OyB9XG5cbi5jLWNsaWVudC1oZWxzYW5hLWdvbGQtLWNvbG9yIHtcbiAgY29sb3I6ICNkZGM0OGM7IH1cblxuLmMtY2xpZW50LWVuZHJlc3Mge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3Y2FhO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KTsgfVxuXG4uYy1jbGllbnQtZW5kcmVzcy0tZmlsbCB7XG4gIGZpbGw6ICMwMDdjYWE7IH1cblxuLmMtY2xpZW50LWVuZHJlc3MtLWZpbGwtZGFyayB7XG4gIGZpbGw6ICMwMDU3Nzc7IH1cblxuLmMtY2xpZW50LWVuZHJlc3MtLWNvbG9yIHtcbiAgY29sb3I6ICMwMDdjYWE7IH1cblxuLmMtY2xpZW50LWVuZHJlc3MtbWFnZW50YSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhODAwNWM7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpOyB9XG5cbi5jLWNsaWVudC1lbmRyZXNzLW1hZ2VudGEtLWZpbGwge1xuICBmaWxsOiAjYTgwMDVjOyB9XG5cbi5jLWNsaWVudC1lbmRyZXNzLW1hZ2VudGEtLWZpbGwtZGFyayB7XG4gIGZpbGw6ICM3NTAwNDA7IH1cblxuLmMtY2xpZW50LWVuZHJlc3MtbWFnZW50YS0tY29sb3Ige1xuICBjb2xvcjogI2E4MDA1YzsgfVxuXG4uYy1jbGllbnQtaGlsdGkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDAwMjFiO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KTsgfVxuXG4uYy1jbGllbnQtaGlsdGktLWZpbGwge1xuICBmaWxsOiAjZDAwMjFiOyB9XG5cbi5jLWNsaWVudC1oaWx0aS0tZmlsbC1kYXJrIHtcbiAgZmlsbDogIzlkMDIxNDsgfVxuXG4uYy1jbGllbnQtaGlsdGktLWNvbG9yIHtcbiAgY29sb3I6ICNkMDAyMWI7IH1cblxuLmMtY2xpZW50LWhpbHRpLXdlYnNpdGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDIwNzFlO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KTsgfVxuXG4uYy1jbGllbnQtaGlsdGktd2Vic2l0ZS0tZmlsbCB7XG4gIGZpbGw6ICNkMjA3MWU7IH1cblxuLmMtY2xpZW50LWhpbHRpLXdlYnNpdGUtLWZpbGwtZGFyayB7XG4gIGZpbGw6ICNhMTA1MTc7IH1cblxuLmMtY2xpZW50LWhpbHRpLXdlYnNpdGUtLWNvbG9yIHtcbiAgY29sb3I6ICNkMjA3MWU7IH1cblxuLmMtY2xpZW50LWxpenp5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U5ZWFmMDtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7IH1cblxuLmMtY2xpZW50LWxpenp5LS1maWxsIHtcbiAgZmlsbDogI2U5ZWFmMDsgfVxuXG4uYy1jbGllbnQtbGl6enktLWZpbGwtZGFyayB7XG4gIGZpbGw6ICNjYmNkZGI7IH1cblxuLmMtY2xpZW50LWxpenp5LS1jb2xvciB7XG4gIGNvbG9yOiAjZTllYWYwOyB9XG5cbi5jLWNsaWVudC1saXp6eS1wdXJwbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwNzRlO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KTsgfVxuXG4uYy1jbGllbnQtbGl6enktcHVycGxlLS1maWxsIHtcbiAgZmlsbDogIzAwMDc0ZTsgfVxuXG4uYy1jbGllbnQtbGl6enktcHVycGxlLS1maWxsLWRhcmsge1xuICBmaWxsOiAjMDAwMjFiOyB9XG5cbi5jLWNsaWVudC1saXp6eS1wdXJwbGUtLWNvbG9yIHtcbiAgY29sb3I6ICMwMDA3NGU7IH1cblxuLmMtY2xpZW50LWxpenp5LXBpbmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTYxYjU4O1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KTsgfVxuXG4uYy1jbGllbnQtbGl6enktcGluay0tZmlsbCB7XG4gIGZpbGw6ICNlNjFiNTg7IH1cblxuLmMtY2xpZW50LWxpenp5LXBpbmstLWZpbGwtZGFyayB7XG4gIGZpbGw6ICNiYTE0NDY7IH1cblxuLmMtY2xpZW50LWxpenp5LXBpbmstLWNvbG9yIHtcbiAgY29sb3I6ICNlNjFiNTg7IH1cblxuLmMtY2xpZW50LWxpenp5LWRhcmtncmV5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhmOTA5YjtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7IH1cblxuLmMtY2xpZW50LWxpenp5LWRhcmtncmV5LS1maWxsIHtcbiAgZmlsbDogIzhmOTA5YjsgfVxuXG4uYy1jbGllbnQtbGl6enktZGFya2dyZXktLWZpbGwtZGFyayB7XG4gIGZpbGw6ICM3NTc2ODI7IH1cblxuLmMtY2xpZW50LWxpenp5LWRhcmtncmV5LS1jb2xvciB7XG4gIGNvbG9yOiAjOGY5MDliOyB9XG5cbi5jLWNsaWVudC1saXp6eS1ibHVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNmNlMjtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7IH1cblxuLmMtY2xpZW50LWxpenp5LWJsdWUtLWZpbGwge1xuICBmaWxsOiAjMDA2Y2UyOyB9XG5cbi5jLWNsaWVudC1saXp6eS1ibHVlLS1maWxsLWRhcmsge1xuICBmaWxsOiAjMDA1NGFmOyB9XG5cbi5jLWNsaWVudC1saXp6eS1ibHVlLS1jb2xvciB7XG4gIGNvbG9yOiAjMDA2Y2UyOyB9XG5cbi5jLWNsaWVudC1sb2NhbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwZDliZGI7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpOyB9XG5cbi5jLWNsaWVudC1sb2NhbC0tZmlsbCB7XG4gIGZpbGw6ICMwZDliZGI7IH1cblxuLmMtY2xpZW50LWxvY2FsLS1maWxsLWRhcmsge1xuICBmaWxsOiAjMGE3OWFiOyB9XG5cbi5jLWNsaWVudC1sb2NhbC0tY29sb3Ige1xuICBjb2xvcjogIzBkOWJkYjsgfVxuXG4uYy1jbGllbnQtbWlncm9zIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmNjYwMDtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7IH1cblxuLmMtY2xpZW50LW1pZ3Jvcy0tZmlsbCB7XG4gIGZpbGw6ICNmZjY2MDA7IH1cblxuLmMtY2xpZW50LW1pZ3Jvcy0tZmlsbC1kYXJrIHtcbiAgZmlsbDogI2NjNTIwMDsgfVxuXG4uYy1jbGllbnQtbWlncm9zLS1jb2xvciB7XG4gIGNvbG9yOiAjZmY2NjAwOyB9XG5cbi5jLWNsaWVudC1tb2JpbGl0eSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjMzE2MjI7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpOyB9XG5cbi5jLWNsaWVudC1tb2JpbGl0eS0tZmlsbCB7XG4gIGZpbGw6ICNjMzE2MjI7IH1cblxuLmMtY2xpZW50LW1vYmlsaXR5LS1maWxsLWRhcmsge1xuICBmaWxsOiAjOTUxMTFhOyB9XG5cbi5jLWNsaWVudC1tb2JpbGl0eS0tY29sb3Ige1xuICBjb2xvcjogI2MzMTYyMjsgfVxuXG4uYy1jbGllbnQtcHVtYSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDg1M2Y7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpOyB9XG5cbi5jLWNsaWVudC1wdW1hLS1maWxsIHtcbiAgZmlsbDogIzAwODUzZjsgfVxuXG4uYy1jbGllbnQtcHVtYS0tZmlsbC1kYXJrIHtcbiAgZmlsbDogIzAwNTIyNzsgfVxuXG4uYy1jbGllbnQtcHVtYS0tY29sb3Ige1xuICBjb2xvcjogIzAwODUzZjsgfVxuXG4uYy1jbGllbnQtcHVtYS1ncmVlbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDZlMzQ7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpOyB9XG5cbi5jLWNsaWVudC1wdW1hLWdyZWVuLS1maWxsIHtcbiAgZmlsbDogIzAwNmUzNDsgfVxuXG4uYy1jbGllbnQtcHVtYS1ncmVlbi0tZmlsbC1kYXJrIHtcbiAgZmlsbDogIzAwM2IxYzsgfVxuXG4uYy1jbGllbnQtcHVtYS1ncmVlbi0tY29sb3Ige1xuICBjb2xvcjogIzAwNmUzNDsgfVxuXG4uYy1jbGllbnQtbnp6IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzNiOGZjOTtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7IH1cblxuLmMtY2xpZW50LW56ei0tZmlsbCB7XG4gIGZpbGw6ICMzYjhmYzk7IH1cblxuLmMtY2xpZW50LW56ei0tZmlsbC1kYXJrIHtcbiAgZmlsbDogIzJkNzNhNDsgfVxuXG4uYy1jbGllbnQtbnp6LS1jb2xvciB7XG4gIGNvbG9yOiAjM2I4ZmM5OyB9XG5cbi5jLWNsaWVudC1wYXljYWxsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQyNDE0ZDtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7IH1cblxuLmMtY2xpZW50LXBheWNhbGwtLWZpbGwge1xuICBmaWxsOiAjNDI0MTRkOyB9XG5cbi5jLWNsaWVudC1wYXljYWxsLS1maWxsLWRhcmsge1xuICBmaWxsOiAjMmEyYTMxOyB9XG5cbi5jLWNsaWVudC1wYXljYWxsLS1jb2xvciB7XG4gIGNvbG9yOiAjNDI0MTRkOyB9XG5cbi5jLWNsaWVudC1wYXljYWxsLXZpb2xldCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZDQ5NzQ7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpOyB9XG5cbi5jLWNsaWVudC1wYXljYWxsLXZpb2xldC0tZmlsbCB7XG4gIGZpbGw6ICM0ZDQ5NzQ7IH1cblxuLmMtY2xpZW50LXBheWNhbGwtdmlvbGV0LS1maWxsLWRhcmsge1xuICBmaWxsOiAjMzgzNTU1OyB9XG5cbi5jLWNsaWVudC1wYXljYWxsLXZpb2xldC0tY29sb3Ige1xuICBjb2xvcjogIzRkNDk3NDsgfVxuXG4uYy1jbGllbnQtcG9zdGZpbmFuY2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhjZjM0O1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KTsgfVxuXG4uYy1jbGllbnQtcG9zdGZpbmFuY2UtLWZpbGwge1xuICBmaWxsOiAjZjhjZjM0OyB9XG5cbi5jLWNsaWVudC1wb3N0ZmluYW5jZS0tZmlsbC1kYXJrIHtcbiAgZmlsbDogI2YxYzAwODsgfVxuXG4uYy1jbGllbnQtcG9zdGZpbmFuY2UtLWNvbG9yIHtcbiAgY29sb3I6ICNmOGNmMzQ7IH1cblxuLmMtY2xpZW50LXBvc3RmaW5hbmNlYXBwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNTQ1RTtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7IH1cblxuLmMtY2xpZW50LXBvc3RmaW5hbmNlYXBwLS1maWxsIHtcbiAgZmlsbDogIzAwNTQ1RTsgfVxuXG4uYy1jbGllbnQtcG9zdGZpbmFuY2VhcHAtLWZpbGwtZGFyayB7XG4gIGZpbGw6ICMwMDI2MmI7IH1cblxuLmMtY2xpZW50LXBvc3RmaW5hbmNlYXBwLS1jb2xvciB7XG4gIGNvbG9yOiAjMDA1NDVFOyB9XG5cbi5jLWNsaWVudC1yYWlmZmVpc2VuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2M4NGE0ODtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7IH1cblxuLmMtY2xpZW50LXJhaWZmZWlzZW4tLWZpbGwge1xuICBmaWxsOiAjYzg0YTQ4OyB9XG5cbi5jLWNsaWVudC1yYWlmZmVpc2VuLS1maWxsLWRhcmsge1xuICBmaWxsOiAjYWEzNTMzOyB9XG5cbi5jLWNsaWVudC1yYWlmZmVpc2VuLS1jb2xvciB7XG4gIGNvbG9yOiAjYzg0YTQ4OyB9XG5cbi5jLWNsaWVudC1zYmIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjEwMDAwO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KTsgfVxuXG4uYy1jbGllbnQtc2JiLS1maWxsIHtcbiAgZmlsbDogI2YxMDAwMDsgfVxuXG4uYy1jbGllbnQtc2JiLS1maWxsLWRhcmsge1xuICBmaWxsOiAjYmUwMDAwOyB9XG5cbi5jLWNsaWVudC1zYmItLWNvbG9yIHtcbiAgY29sb3I6ICNmMTAwMDA7IH1cblxuLmMtY2xpZW50LXNpcm9vcCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MWNhZGY7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpOyB9XG5cbi5jLWNsaWVudC1zaXJvb3AtLWZpbGwge1xuICBmaWxsOiAjNDFjYWRmOyB9XG5cbi5jLWNsaWVudC1zaXJvb3AtLWZpbGwtZGFyayB7XG4gIGZpbGw6ICMyMmI0Y2I7IH1cblxuLmMtY2xpZW50LXNpcm9vcC0tY29sb3Ige1xuICBjb2xvcjogIzQxY2FkZjsgfVxuXG4uYy1jbGllbnQtc2lyb29wLWdyZXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmNWY3O1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KTsgfVxuXG4uYy1jbGllbnQtc2lyb29wLWdyZXktLWZpbGwge1xuICBmaWxsOiAjZjFmNWY3OyB9XG5cbi5jLWNsaWVudC1zaXJvb3AtZ3JleS0tZmlsbC1kYXJrIHtcbiAgZmlsbDogI2QxZGVlNDsgfVxuXG4uYy1jbGllbnQtc2lyb29wLWdyZXktLWNvbG9yIHtcbiAgY29sb3I6ICNmMWY1Zjc7IH1cblxuLmMtY2xpZW50LXN3aXNzY29tIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMGQ1NztcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7IH1cblxuLmMtY2xpZW50LXN3aXNzY29tLS1maWxsIHtcbiAgZmlsbDogIzAwMGQ1NzsgfVxuXG4uYy1jbGllbnQtc3dpc3Njb20tLWZpbGwtZGFyayB7XG4gIGZpbGw6ICMwMDA1MjQ7IH1cblxuLmMtY2xpZW50LXN3aXNzY29tLS1jb2xvciB7XG4gIGNvbG9yOiAjMDAwZDU3OyB9XG5cbi5jLWNsaWVudC1zeW1wYW55IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NhMDAxODtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7IH1cblxuLmMtY2xpZW50LXN5bXBhbnktLWZpbGwge1xuICBmaWxsOiAjY2EwMDE4OyB9XG5cbi5jLWNsaWVudC1zeW1wYW55LS1maWxsLWRhcmsge1xuICBmaWxsOiAjOTcwMDEyOyB9XG5cbi5jLWNsaWVudC1zeW1wYW55LS1jb2xvciB7XG4gIGNvbG9yOiAjY2EwMDE4OyB9XG5cbi5jLWNsaWVudC1zeW1wYW55LWxpZ2h0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZkZjdmODtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7IH1cblxuLmMtY2xpZW50LXN5bXBhbnktbGlnaHQtLWZpbGwge1xuICBmaWxsOiAjZmRmN2Y4OyB9XG5cbi5jLWNsaWVudC1zeW1wYW55LWxpZ2h0LS1maWxsLWRhcmsge1xuICBmaWxsOiAjZjNjZWQ0OyB9XG5cbi5jLWNsaWVudC1zeW1wYW55LWxpZ2h0LS1jb2xvciB7XG4gIGNvbG9yOiAjZmRmN2Y4OyB9XG5cbi5jLWNsaWVudC11ZXBhYSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwZThiY2Y7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpOyB9XG5cbi5jLWNsaWVudC11ZXBhYS0tZmlsbCB7XG4gIGZpbGw6ICMwZThiY2Y7IH1cblxuLmMtY2xpZW50LXVlcGFhLS1maWxsLWRhcmsge1xuICBmaWxsOiAjMGI2YjlmOyB9XG5cbi5jLWNsaWVudC11ZXBhYS0tY29sb3Ige1xuICBjb2xvcjogIzBlOGJjZjsgfVxuXG4uYy1jbGllbnQtdGVzdGluZ3RpbWUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODRjMzVhO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KTsgfVxuXG4uYy1jbGllbnQtdGVzdGluZ3RpbWUtLWZpbGwge1xuICBmaWxsOiAjODRjMzVhOyB9XG5cbi5jLWNsaWVudC10ZXN0aW5ndGltZS0tZmlsbC1kYXJrIHtcbiAgZmlsbDogIzZhYWMzZTsgfVxuXG4uYy1jbGllbnQtdGVzdGluZ3RpbWUtLWNvbG9yIHtcbiAgY29sb3I6ICM4NGMzNWE7IH1cblxuLmMtY2xpZW50LXR3aW50LWRhcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWQyNjJjO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KTsgfVxuXG4uYy1jbGllbnQtdHdpbnQtZGFyay0tZmlsbCB7XG4gIGZpbGw6ICMxZDI2MmM7IH1cblxuLmMtY2xpZW50LXR3aW50LWRhcmstLWZpbGwtZGFyayB7XG4gIGZpbGw6ICMwOTBiMGQ7IH1cblxuLmMtY2xpZW50LXR3aW50LWRhcmstLWNvbG9yIHtcbiAgY29sb3I6ICMxZDI2MmM7IH1cblxuLmMtY2xpZW50LXR3aW50LWdyZXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjNmM2YzO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KTsgfVxuXG4uYy1jbGllbnQtdHdpbnQtZ3JleS0tZmlsbCB7XG4gIGZpbGw6ICNmM2YzZjM7IH1cblxuLmMtY2xpZW50LXR3aW50LWdyZXktLWZpbGwtZGFyayB7XG4gIGZpbGw6ICNkYWRhZGE7IH1cblxuLmMtY2xpZW50LXR3aW50LWdyZXktLWNvbG9yIHtcbiAgY29sb3I6ICNmM2YzZjM7IH1cblxuLmMtY2xpZW50LXR3aW50LWJsdWUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTBhNGQzO1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KTsgfVxuXG4uYy1jbGllbnQtdHdpbnQtYmx1ZS0tZmlsbCB7XG4gIGZpbGw6ICM1MGE0ZDM7IH1cblxuLmMtY2xpZW50LXR3aW50LWJsdWUtLWZpbGwtZGFyayB7XG4gIGZpbGw6ICMzMDhjYzA7IH1cblxuLmMtY2xpZW50LXR3aW50LWJsdWUtLWNvbG9yIHtcbiAgY29sb3I6ICM1MGE0ZDM7IH1cblxuLmMtY2xpZW50LXp1cmljaCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwYzJlOTY7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpOyB9XG5cbi5jLWNsaWVudC16dXJpY2gtLWZpbGwge1xuICBmaWxsOiAjMGMyZTk2OyB9XG5cbi5jLWNsaWVudC16dXJpY2gtLWZpbGwtZGFyayB7XG4gIGZpbGw6ICMwODIwNjc7IH1cblxuLmMtY2xpZW50LXp1cmljaC0tY29sb3Ige1xuICBjb2xvcjogIzBjMmU5NjsgfVxuXG4uYy1jbGllbnQtYmZ1IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYjJhYTtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7IH1cblxuLmMtY2xpZW50LWJmdS0tZmlsbCB7XG4gIGZpbGw6ICMwMGIyYWE7IH1cblxuLmMtY2xpZW50LWJmdS0tZmlsbC1kYXJrIHtcbiAgZmlsbDogIzAwN2Y3OTsgfVxuXG4uYy1jbGllbnQtYmZ1LS1jb2xvciB7XG4gIGNvbG9yOiAjMDBiMmFhOyB9XG5cbi5jLWNsaWVudC1qdXR6bGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJmODBlZDtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7IH1cblxuLmMtY2xpZW50LWp1dHpsZXItLWZpbGwge1xuICBmaWxsOiAjMmY4MGVkOyB9XG5cbi5jLWNsaWVudC1qdXR6bGVyLS1maWxsLWRhcmsge1xuICBmaWxsOiAjMTM2NmQ2OyB9XG5cbi5jLWNsaWVudC1qdXR6bGVyLS1jb2xvciB7XG4gIGNvbG9yOiAjMmY4MGVkOyB9XG5cbi5jLWNsaWVudC12b250b2JlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmQ1MDA7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpOyB9XG5cbi5jLWNsaWVudC12b250b2JlbC0tZmlsbCB7XG4gIGZpbGw6ICNmZmQ1MDA7IH1cblxuLmMtY2xpZW50LXZvbnRvYmVsLS1maWxsLWRhcmsge1xuICBmaWxsOiAjY2NhYTAwOyB9XG5cbi5jLWNsaWVudC12b250b2JlbC0tY29sb3Ige1xuICBjb2xvcjogI2ZmZDUwMDsgfVxuXG4uYy11aS1saW5rIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogY29ybmZsb3dlcmJsdWU7IH1cblxuLmMtdWktbGluay0tZmlsbCB7XG4gIGZpbGw6IGNvcm5mbG93ZXJibHVlOyB9XG5cbi5jLXVpLWxpbmstLWZpbGwtZGFyayB7XG4gIGZpbGw6ICMzNjc2ZTg7IH1cblxuLmMtdWktbGluay0tY29sb3Ige1xuICBjb2xvcjogY29ybmZsb3dlcmJsdWU7IH1cblxuLmMtbmV1dHJhbC1ibGFjayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxNjE2MWQ7IH1cblxuLmMtbmV1dHJhbC1ibGFjay0tZmlsbCB7XG4gIGZpbGw6ICMxNjE2MWQ7IH1cblxuLmMtbmV1dHJhbC1ibGFjay0tZmlsbC1kYXJrIHtcbiAgZmlsbDogYmxhY2s7IH1cblxuLmMtbmV1dHJhbC1ibGFjay0tY29sb3Ige1xuICBjb2xvcjogIzE2MTYxZDsgfVxuXG4uYy1uZXV0cmFsLWdyYXBoaXRlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY2NjsgfVxuXG4uYy1uZXV0cmFsLWdyYXBoaXRlLS1maWxsIHtcbiAgZmlsbDogIzY2NjsgfVxuXG4uYy1uZXV0cmFsLWdyYXBoaXRlLS1maWxsLWRhcmsge1xuICBmaWxsOiAjNGQ0ZDRkOyB9XG5cbi5jLW5ldXRyYWwtZ3JhcGhpdGUtLWNvbG9yIHtcbiAgY29sb3I6ICM2NjY7IH1cblxuLmMtbmV1dHJhbC1ncmF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RkZDsgfVxuXG4uYy1uZXV0cmFsLWdyYXktLWZpbGwge1xuICBmaWxsOiAjZGRkOyB9XG5cbi5jLW5ldXRyYWwtZ3JheS0tZmlsbC1kYXJrIHtcbiAgZmlsbDogI2M0YzRjNDsgfVxuXG4uYy1uZXV0cmFsLWdyYXktLWNvbG9yIHtcbiAgY29sb3I6ICNkZGQ7IH1cblxuLmMtbmV1dHJhbC1zaWx2ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhOyB9XG5cbi5jLW5ldXRyYWwtc2lsdmVyLS1maWxsIHtcbiAgZmlsbDogI2ZhZmFmYTsgfVxuXG4uYy1uZXV0cmFsLXNpbHZlci0tZmlsbC1kYXJrIHtcbiAgZmlsbDogI2UxZTFlMTsgfVxuXG4uYy1uZXV0cmFsLXNpbHZlci0tY29sb3Ige1xuICBjb2xvcjogI2ZhZmFmYTsgfVxuXG4uYy1uZXV0cmFsLXdoaXRlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuXG4uYy1uZXV0cmFsLXdoaXRlLS1maWxsIHtcbiAgZmlsbDogI2ZmZjsgfVxuXG4uYy1uZXV0cmFsLXdoaXRlLS1maWxsLWRhcmsge1xuICBmaWxsOiAjZTZlNmU2OyB9XG5cbi5jLW5ldXRyYWwtd2hpdGUtLWNvbG9yIHtcbiAgY29sb3I6ICNmZmY7IH1cblxuLypcbiAgIEhhY2sgdG8gb3ZlcmNvbWUgdGhlIGxhY2sgb2YgY29sb3IgY29udHJhc3QgY2hlY2tcbiAqL1xuLmMtY2xpZW50LXNpcm9vcC1ncmV5IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTsgfVxuXG4uYy1jbGllbnQtZmlsbWNvb3BpIHtcbiAgY29sb3I6IGJsYWNrOyB9XG5cbi5jb2xvci1hcm9vdixcbi5jLWNvbG9yLWFyb292LS1jb2xvciBibG9ja3F1b3RlIHtcbiAgY29sb3I6ICMzMmI1ZGM7IH1cblxuLmwtY29udGFpbmVyIHtcbiAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nOiAwIDE2cHg7IH1cblxuLmwtY29udGFpbmVyLS1tZWRpdW0ge1xuICBtYXgtd2lkdGg6IDgwMHB4OyB9XG5cbi5sLWNvbnRhaW5lci0tc21hbGwge1xuICBtYXgtd2lkdGg6IDY4MHB4OyB9XG5cbi5sLWNvbnRhaW5lci0tc3BhY2VsZXNzIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG5cbi5sLWNvbnRhaW5lci0tbGVmdC1hbGlnbmVkIHtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLmpzLWJyZWFrcG9pbnQ6YWZ0ZXIsXG4uanMtYnJlYWtwb2ludCB7XG4gIGNvbnRlbnQ6ICd7XCJtb2JpbGVcIjpcIm9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjc0MHB4KVwiLFwidGFibGV0XCI6XCJvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDoxMDUwcHgpXCIsXCJkZXNrdG9wXCI6XCJvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDoxMDUxcHgpXCIsXCJwcmludFwiOlwicHJpbnRcIn0nO1xuICBmb250LWZhbWlseTogJ3tcIm1vYmlsZVwiOlwib25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NzQwcHgpXCIsXCJ0YWJsZXRcIjpcIm9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjEwNTBweClcIixcImRlc2t0b3BcIjpcIm9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOjEwNTFweClcIixcInByaW50XCI6XCJwcmludFwifSc7IH1cblxuLmwtZ3JpZC1oaXBzdGVyX19yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwOyB9XG4gIC5sLWdyaWQtaGlwc3Rlcl9fcm93LS12ZXJ0aWNhbCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuXG4ubC1ncmlkLWhpcHN0ZXJfX2NlbGwge1xuICBmbGV4OiAxO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMCwgMCwgMC4xKTsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0MHB4KSB7XG4gIC5sLWdyaWQtaGlwc3Rlcl9fcm93IHtcbiAgICBkaXNwbGF5OiBibG9jazsgfSB9XG5cbi5pY29uIHtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbiAgZmlsbDogY3VycmVudENvbG9yOyB9XG5cbi5uYXJyYXRpdmUgaW1nLFxuLm5hcnJhdGl2ZSB2aWRlbyB7XG4gIG1heC13aWR0aDogMTAwJTsgfVxuXG4ubmFycmF0aXZlIGgxOm5vdChbY2xhc3NdKSB7XG4gIGZvbnQtZmFtaWx5OiBBdmVuaXIsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogODAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMi44cmVtO1xuICBsaW5lLWhlaWdodDogMS4xNDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0MHB4KSB7XG4gICAgLm5hcnJhdGl2ZSBoMTpub3QoW2NsYXNzXSkge1xuICAgICAgZm9udC1zaXplOiAycmVtOyB9IH1cblxuLm5hcnJhdGl2ZSBoMjpub3QoW2NsYXNzXSkge1xuICBmb250LWZhbWlseTogQXZlbmlyLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXNpemU6IDJyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjM7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NDBweCkge1xuICAgIC5uYXJyYXRpdmUgaDI6bm90KFtjbGFzc10pIHtcbiAgICAgIGZvbnQtc2l6ZTogMS41cmVtOyB9IH1cblxuLm5hcnJhdGl2ZSBoMzpub3QoW2NsYXNzXSkge1xuICBmb250LWZhbWlseTogQXZlbmlyLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXNpemU6IDEuM3JlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMzsgfVxuXG4ubmFycmF0aXZlIGg0Om5vdChbY2xhc3NdKSB7XG4gIGZvbnQtZmFtaWx5OiBBdmVuaXIsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogODAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMS4xcmVtO1xuICBsaW5lLWhlaWdodDogMS4zOyB9XG5cbi5uYXJyYXRpdmUgaDU6bm90KFtjbGFzc10pLFxuLm5hcnJhdGl2ZSBoNjpub3QoW2NsYXNzXSkge1xuICBmb250LWZhbWlseTogXCJQVCBTZXJpZlwiLCBzZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXNpemU6IDEuMnJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjU7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NDBweCkge1xuICAgIC5uYXJyYXRpdmUgaDU6bm90KFtjbGFzc10pLFxuICAgIC5uYXJyYXRpdmUgaDY6bm90KFtjbGFzc10pIHtcbiAgICAgIGZvbnQtc2l6ZTogMXJlbTsgfSB9XG5cbi5uYXJyYXRpdmUgcDpub3QoW2NsYXNzXSksXG4ubmFycmF0aXZlIGxpIHtcbiAgZm9udC1mYW1pbHk6IFwiUFQgU2VyaWZcIiwgc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS42NTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0MHB4KSB7XG4gICAgLm5hcnJhdGl2ZSBwOm5vdChbY2xhc3NdKSxcbiAgICAubmFycmF0aXZlIGxpIHtcbiAgICAgIGZvbnQtc2l6ZTogMC45cmVtOyB9IH1cblxuLm5hcnJhdGl2ZSBmaWdjYXB0aW9uOm5vdChbY2xhc3NdKSB7XG4gIGZvbnQtZmFtaWx5OiBBdmVuaXIsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBjb2xvcjogIzY2NjsgfVxuXG4ubmFycmF0aXZlIHRhYmxlIHtcbiAgZm9udC1mYW1pbHk6IFwiUFQgU2VyaWZcIiwgc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS42NTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0MHB4KSB7XG4gICAgLm5hcnJhdGl2ZSB0YWJsZSB7XG4gICAgICBmb250LXNpemU6IDAuOXJlbTsgfSB9XG5cbi5uYXJyYXRpdmUgYSB7XG4gIGNvbG9yOiBjb3JuZmxvd2VyYmx1ZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIC5uYXJyYXRpdmUgYTpob3ZlciwgLm5hcnJhdGl2ZSBhOmZvY3VzIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuXG4ubmFycmF0aXZlIGZpZ3VyZSB7XG4gIG1hcmdpbjogMDsgfVxuXG4ubmFycmF0aXZlIGZpZ3VyZSArIGZpZ3VyZSB7XG4gIG1hcmdpbi10b3A6IDNyZW07IH1cblxuLm5hcnJhdGl2ZSBoMSxcbi5uYXJyYXRpdmUgaDIsXG4ubmFycmF0aXZlIGgzLFxuLm5hcnJhdGl2ZSBoNCxcbi5uYXJyYXRpdmUgaDUsXG4ubmFycmF0aXZlIGg2IHtcbiAgbWFyZ2luLXRvcDogM3JlbTsgfVxuXG4ubmFycmF0aXZlIHNtYWxsIHtcbiAgZm9udC1zaXplOiA5MCU7IH1cblxuLm5hcnJhdGl2ZSBpbWcge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9XG5cbi5uYXJyYXRpdmUgZmlndXJlLFxuLm5hcnJhdGl2ZSB0YWJsZSxcbi5uYXJyYXRpdmUgZmlnY2FwdGlvbixcbi5uYXJyYXRpdmUgdWwsXG4ubmFycmF0aXZlIG9sLFxuLm5hcnJhdGl2ZSBwIHtcbiAgbWFyZ2luLXRvcDogMWVtOyB9XG5cbi5uYXJyYXRpdmUgbGkge1xuICBtYXJnaW4tdG9wOiAuNWVtOyB9XG5cbi5uYXJyYXRpdmUgaW1nLFxuLm5hcnJhdGl2ZSB2aWRlbyB7XG4gIG1hcmdpbi10b3A6IDJyZW07XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLm5hcnJhdGl2ZSBwICsgcCB7XG4gIG1hcmdpbi10b3A6IDEuNWVtOyB9XG5cbi5uYXJyYXRpdmUgaDIgKyBwIHtcbiAgbWFyZ2luLXRvcDogMmVtOyB9XG5cbi5uYXJyYXRpdmUgZmlnY2FwdGlvbiB7XG4gIG1hcmdpbi1ib3R0b206IDJlbTsgfVxuXG4ubmFycmF0aXZlIHRkIHtcbiAgcGFkZGluZy10b3A6IDEuNmVtOyB9XG5cbi5uYXJyYXRpdmUgPiAqOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMDsgfVxuXG4ubmFycmF0aXZlIHRkIHtcbiAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuXG4ubmFycmF0aXZlIC50aW1lbGluZSB7XG4gIG1hcmdpbi10b3A6IDRyZW07IH1cblxuLm5hcnJhdGl2ZSAubm8tdnIge1xuICBtYXJnaW4tdG9wOiAwOyB9XG5cbi5yYXRpbyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLnJhdGlvLS1wYW5vcmFtYSB7XG4gICAgcGFkZGluZy10b3A6IDUwJTsgfVxuICAucmF0aW8tLTF0bzQge1xuICAgIHBhZGRpbmctdG9wOiAyNSU7IH1cbiAgLnJhdGlvLS1zcXVhcmUge1xuICAgIHBhZGRpbmctdG9wOiAxMDAlOyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NDBweCkge1xuICAgICAgLnJhdGlvLS1zcXVhcmUge1xuICAgICAgICBwYWRkaW5nLXRvcDogNTAlOyB9IH1cbiAgLnJhdGlvLS0zdG8yIHtcbiAgICBwYWRkaW5nLXRvcDogNjYuNjY2NjclOyB9XG4gIC5yYXRpb19fY29udGVudCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICByaWdodDogMDsgfVxuXG4vKipcbiAqIFNpemVzIGZ1bmN0aW9uXG4gKiBFeHBlY3RzIGEgc2l6ZSBuYW1lIChkZWZhdWx0OiBtZWRpdW0pIGFuZCByZXR1cm5zIGl0J3MgdmFsdWUgaW4gcmVtXG4gKi9cbi8qIEhlbHBlcnMgZm9yIHRoZSBzdHlsZWd1aWRlIHRvIGRpc3BsYXkgdGhlIHNpemVzICovXG4ucy1odWdlIHtcbiAgd2lkdGg6IDEzNnB4O1xuICBoZWlnaHQ6IDEzNnB4OyB9XG5cbi5zLWlubmVyLWh1Z2Uge1xuICBwYWRkaW5nOiAxMzZweDsgfVxuXG4ucy12ZXJ0aWNhbC1odWdlIHtcbiAgcGFkZGluZy10b3A6IDEzNnB4O1xuICBwYWRkaW5nLWJvdHRvbTogMTM2cHg7IH1cblxuLnMteC1sYXJnZSB7XG4gIHdpZHRoOiA2NHB4O1xuICBoZWlnaHQ6IDY0cHg7IH1cblxuLnMtaW5uZXIteC1sYXJnZSB7XG4gIHBhZGRpbmc6IDY0cHg7IH1cblxuLnMtdmVydGljYWwteC1sYXJnZSB7XG4gIHBhZGRpbmctdG9wOiA2NHB4O1xuICBwYWRkaW5nLWJvdHRvbTogNjRweDsgfVxuXG4ucy1sYXJnZSB7XG4gIHdpZHRoOiAzMnB4O1xuICBoZWlnaHQ6IDMycHg7IH1cblxuLnMtaW5uZXItbGFyZ2Uge1xuICBwYWRkaW5nOiAzMnB4OyB9XG5cbi5zLXZlcnRpY2FsLWxhcmdlIHtcbiAgcGFkZGluZy10b3A6IDMycHg7XG4gIHBhZGRpbmctYm90dG9tOiAzMnB4OyB9XG5cbi5zLW1lZGl1bSB7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDI0cHg7IH1cblxuLnMtaW5uZXItbWVkaXVtIHtcbiAgcGFkZGluZzogMjRweDsgfVxuXG4ucy12ZXJ0aWNhbC1tZWRpdW0ge1xuICBwYWRkaW5nLXRvcDogMjRweDtcbiAgcGFkZGluZy1ib3R0b206IDI0cHg7IH1cblxuLnMtbm9ybWFsIHtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDsgfVxuXG4ucy1pbm5lci1ub3JtYWwge1xuICBwYWRkaW5nOiAxNnB4OyB9XG5cbi5zLXZlcnRpY2FsLW5vcm1hbCB7XG4gIHBhZGRpbmctdG9wOiAxNnB4O1xuICBwYWRkaW5nLWJvdHRvbTogMTZweDsgfVxuXG4ucy1zbWFsbCB7XG4gIHdpZHRoOiAxMnB4O1xuICBoZWlnaHQ6IDEycHg7IH1cblxuLnMtaW5uZXItc21hbGwge1xuICBwYWRkaW5nOiAxMnB4OyB9XG5cbi5zLXZlcnRpY2FsLXNtYWxsIHtcbiAgcGFkZGluZy10b3A6IDEycHg7XG4gIHBhZGRpbmctYm90dG9tOiAxMnB4OyB9XG5cbi5zLXRpbnkge1xuICB3aWR0aDogOHB4O1xuICBoZWlnaHQ6IDhweDsgfVxuXG4ucy1pbm5lci10aW55IHtcbiAgcGFkZGluZzogOHB4OyB9XG5cbi5zLXZlcnRpY2FsLXRpbnkge1xuICBwYWRkaW5nLXRvcDogOHB4O1xuICBwYWRkaW5nLWJvdHRvbTogOHB4OyB9XG5cbi5kLWIge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4uYWZmaXgtaGVhZGVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiAzO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBvcGFjaXR5OiAxO1xuICBib3gtc2hhZG93OiAwIDFweCA0cHggMCByZ2JhKDAsIDAsIDAsIDAuMTUpOyB9XG4gIC5hZmZpeC1oZWFkZXJfX2NvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGhlaWdodDogNjBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NDBweCkge1xuICAgICAgLmFmZml4LWhlYWRlcl9fY29udGFpbmVyIHtcbiAgICAgICAgaGVpZ2h0OiA2MHB4OyB9IH1cbiAgLmFmZml4LWhlYWRlcl9fZ28tYmFjayB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMjRweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgLmFmZml4LWhlYWRlcl9fYXJyb3dzIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICByaWdodDogMjRweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgLmFmZml4LWhlYWRlcl9fZ28tcHJldiB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogMjRweDsgfVxuICAuYWZmaXgtaGVhZGVyX19sb2dvIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogMzJweCAhaW1wb3J0YW50O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTAwbXMgZWFzZS1pbi1vdXQ7IH1cbiAgICAuYWZmaXgtaGVhZGVyX19sb2dvIHN2ZyB7XG4gICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLmFmZml4LWhlYWRlcl9fbG9nbyBwYXRoIHtcbiAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjsgfVxuICAuYWZmaXgtaGVhZGVyX19sb2dvLWNvbnRhaW5lciwgLmFmZml4LWhlYWRlcl9fdGl0bGUtY29udGFpbmVyIHtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjJzIGVhc2UtaW4tb3V0LCBvcGFjaXR5IC4zcyBlYXNlLWluLW91dDsgfVxuICAuYWZmaXgtaGVhZGVyX19sb2dvLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApOyB9XG4gIC5hZmZpeC1oZWFkZXJfX3RpdGxlLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCA1MCUpO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgLmFmZml4LWhlYWRlci0tc2Nyb2xsZWQgLmFmZml4LWhlYWRlcl9fbG9nby1jb250YWluZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xMDAlKTtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIC5hZmZpeC1oZWFkZXItLXNjcm9sbGVkIC5hZmZpeC1oZWFkZXJfX3RpdGxlLWNvbnRhaW5lciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgb3BhY2l0eTogMTsgfVxuICAuYWZmaXgtaGVhZGVyX19saW5rIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgd2lkdGg6IDEwMCU7IH1cblxuLyoqXG4gKiBTaXplcyBmdW5jdGlvblxuICogRXhwZWN0cyBhIHNpemUgbmFtZSAoZGVmYXVsdDogbWVkaXVtKSBhbmQgcmV0dXJucyBpdCdzIHZhbHVlIGluIHJlbVxuICovXG4vKiBIZWxwZXIgZm9yIGF2YXRhci1zaXplcyAqL1xuLmF2YXRhci0tc21hbGwge1xuICB3aWR0aDogMTIwcHg7XG4gIGhlaWdodDogMTIwcHg7IH1cblxuLmF2YXRhci0tbWVkaXVtIHtcbiAgd2lkdGg6IDE2MHB4O1xuICBoZWlnaHQ6IDE2MHB4OyB9XG5cbi5hdmF0YXItLWxhcmdlIHtcbiAgd2lkdGg6IDE5MHB4O1xuICBoZWlnaHQ6IDE5MHB4OyB9XG5cbi5hdmF0YXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDAgYXV0bztcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmF2YXRhcl9faW1hZ2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogYXV0bztcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogI2ZhZmFmYTsgfVxuXG4uYnV0dG9uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAxMHB4IDI1cHg7XG4gIGJhY2tncm91bmQ6ICMxNjE2MWQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuMTVzIGVhc2UtaW4tb3V0OyB9XG4gIC5idXR0b246aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0MjQyNTc7IH1cbiAgLmJ1dHRvbltkaXNhYmxlXSB7XG4gICAgY29sb3I6ICNjY2NjY2M7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzQyNDI1NztcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuXG4uY2FsbG91dCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luOiAwO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyOyB9XG4gIC5jYWxsb3V0OmFmdGVyIHtcbiAgICBjb250ZW50OiBjbG9zZS1xdW90ZTsgfVxuICAuY2FsbG91dDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IG9wZW4tcXVvdGU7IH1cblxuLmNhcmQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyOyB9XG4gIC5jYXJkX19oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMiksIHJnYmEoMCwgMCwgMCwgMC4wOTgwMzkyKSk7IH1cbiAgLmNhcmRfX2xvZ28ge1xuICAgIG1heC13aWR0aDogMTMwcHg7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuY2FyZF9fZGl2aWRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IGNhbGMoNTAlIC0gNDhweCAvIDIpO1xuICAgIHdpZHRoOiA0OHB4O1xuICAgIG1hcmdpbi10b3A6IC42NXJlbTtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHdoaXRlO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMCk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4ycywgb3BhY2l0eSAuMnM7IH1cbiAgLmNhcmRfX2Zvb3RlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAxMnB4IDI0cHg7IH1cbiAgLmNhcmRfX3RpdGxlLCAuY2FyZF9fc3VidGl0bGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuY2FyZF9fdGl0bGUge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgdHJhbnNpdGlvbjogMjAwbXMgdHJhbnNmb3JtOyB9XG4gIC5jYXJkX19zdWJ0aXRsZSB7XG4gICAgaGVpZ2h0OiAyMnB4O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHRyYW5zaXRpb246IDIwMG1zIG9wYWNpdHksIDIwMG1zIHRyYW5zZm9ybTtcbiAgICBtYXJnaW4tdG9wOiAxMnB4OyB9XG4gIC5jYXJkX19vdmVybGF5IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHotaW5kZXg6IDE7XG4gICAgYmFja2dyb3VuZDogIzE2MTYxZDtcbiAgICBvcGFjaXR5OiAuODtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHdpbGwtY2hhbmdlOiBvcGFjaXR5O1xuICAgIHRyYW5zaXRpb246IDIwMG1zIG9wYWNpdHksIDEwMG1zIGJhY2tncm91bmQtY29sb3I7IH1cbiAgLmNhcmRfX2NvbnRlbnQge1xuICAgIHotaW5kZXg6IDI7IH1cbiAgLmNhcmQ6aG92ZXIgLmNhcmRfX3RpdGxlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpOyB9XG4gIC5jYXJkOmhvdmVyIC5jYXJkX19zdWJ0aXRsZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCk7IH1cbiAgLmNhcmQ6aG92ZXIgLmNhcmRfX2RpdmlkZXIge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7IH1cbiAgLmNhcmQ6aG92ZXIgLmNhcmRfX292ZXJsYXkge1xuICAgIG9wYWNpdHk6IC45OyB9XG5cbi5jYXJvdXNlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4uY2Fyb3VzZWxfX2J1dHRvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHdpZHRoOiA0cmVtO1xuICBoZWlnaHQ6IDRyZW07XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3gtc2hhZG93OiAwIDAgMC41cmVtIHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgZm9udDogMC8wIGE7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgei1pbmRleDogMjtcbiAgb3V0bGluZTogbm9uZTtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAuMXMgbGluZWFyLCB0cmFuc2Zvcm0gLjFzO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgc2NhbGUoMSk7IH1cbiAgLmNhcm91c2VsX19idXR0b246YWN0aXZlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgc2NhbGUoMC45NSk7IH1cbiAgLmNhcm91c2VsX19idXR0b246aG92ZXIge1xuICAgIG9wYWNpdHk6IDAuOTsgfVxuICAuY2Fyb3VzZWxfX2J1dHRvbi0tcHJldiB7XG4gICAgbGVmdDogMjBweDsgfVxuICAgIC5jYXJvdXNlbF9fYnV0dG9uLS1wcmV2OmJlZm9yZSB7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycztcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDNweCwgMHB4KSByb3RhdGUoLTEzNWRlZyk7IH1cbiAgLmNhcm91c2VsX19idXR0b24tLW5leHQge1xuICAgIHJpZ2h0OiAyMHB4OyB9XG4gICAgLmNhcm91c2VsX19idXR0b24tLW5leHQ6YmVmb3JlIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0zcHgsIDBweCkgcm90YXRlKDQ1ZGVnKTsgfVxuICAuY2Fyb3VzZWxfX2J1dHRvbjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAxcmVtO1xuICAgIGhlaWdodDogMXJlbTtcbiAgICBib3JkZXItcmlnaHQ6IDAuMDVyZW0gc29saWQgIzY2NjtcbiAgICBib3JkZXItdG9wOiAwLjA1cmVtIHNvbGlkICM2NjY7IH1cbiAgLmNhcm91c2VsX19idXR0b246aG92ZXIsIC5jYXJvdXNlbF9fYnV0dG9uOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwLjVyZW0gcmdiYSgwLCAwLCAwLCAwLjYpOyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzQwcHgpIHtcbiAgICAuY2Fyb3VzZWxfX2J1dHRvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuLmNhcm91c2VsX19pdGVtIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcbiAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICBvcGFjaXR5OiAuMjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAuMnMgZWFzZS1pbi1vdXQ7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHdpZHRoOiAxMjAwcHg7IH1cbiAgLmNhcm91c2VsX19pdGVtLnNsaWNrLWN1cnJlbnQsIC5jYXJvdXNlbF9faXRlbTpmb2N1cyB7XG4gICAgb3BhY2l0eTogMTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0MHB4KSB7XG4gICAgLmNhcm91c2VsX19pdGVtIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7IH0gfVxuXG4uY2Fyb3VzZWxfX2ltYWdlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07IH1cblxuLmNhcm91c2VsX19kb3RzIHtcbiAgaGVpZ2h0OiAzMHB4O1xuICBwYWRkaW5nOiAxNnB4IDkwcHg7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgLmNhcm91c2VsX19kb3RzIGJ1dHRvbiB7XG4gICAgZm9udDogMC8wIGE7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcbiAgICB3aWR0aDogMTBweDtcbiAgICBoZWlnaHQ6IDEwcHg7IH1cbiAgICAuY2Fyb3VzZWxfX2RvdHMgYnV0dG9uOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjsgfVxuICAuY2Fyb3VzZWxfX2RvdHMgPiBsaS5zbGljay1hY3RpdmUgYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7IH1cbiAgLmNhcm91c2VsX19kb3RzID4gbGk6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIG1hcmdpbi1sZWZ0OiA4cHg7IH1cblxuLmZvb3RlciB7XG4gIHBhZGRpbmc6IDY0cHggMHB4IDY0cHggMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmZvb3Rlcl9fbG9nbyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDEwMG1zIGVhc2UtaW4tb3V0OyB9XG4gICAgLmZvb3Rlcl9fbG9nbyBnIHtcbiAgICAgIGZpbGw6IHdoaXRlOyB9XG4gIC5mb290ZXJfX2luZm8tYmxvY2sge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzQwcHgpIHtcbiAgICAgIC5mb290ZXJfX2luZm8tYmxvY2stLWxpbmtzIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfSB9XG4gICAgLmZvb3Rlcl9faW5mby1ibG9jay0taWNvbnMge1xuICAgICAgbWFyZ2luLXRvcDogMjRweDsgfVxuICAgIC5mb290ZXJfX2luZm8tYmxvY2stLWxvZ28ge1xuICAgICAgbWFyZ2luLXRvcDogMzJweDsgfVxuICAuZm9vdGVyX19saW5rIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogMjRweDsgfVxuICAgIC5mb290ZXJfX2xpbmsgLmljb24tbGlua19fdGV4dCB7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAgIC5mb290ZXJfX2xpbmsgc3ZnIHtcbiAgICAgIGZpbGw6ICNmZmY7IH1cbiAgLmZvb3Rlcl9faW5mby1ibG9jay0taWNvbnMgLmZvb3Rlcl9fbGluazpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDMycHg7IH1cbiAgLmZvb3Rlcl9faW5mby1ibG9jay0tbGlua3MgLmZvb3Rlcl9fbGluazpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDMycHg7IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0MHB4KSB7XG4gICAgICAuZm9vdGVyX19pbmZvLWJsb2NrLS1saW5rcyAuZm9vdGVyX19saW5rOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7IH0gfVxuXG4uaHItLXNob3J0IHtcbiAgd2lkdGg6IDQ4cHg7XG4gIGJvcmRlcjogMDtcbiAgb3V0bGluZTogMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHdoaXRlO1xuICBtYXJnaW46IDAgYXV0bztcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbi5oZWFkZXItbWluaW1hbCB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIHBhZGRpbmctdG9wOiA2NHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctdG9wOiAxMjRweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0MHB4KSB7XG4gICAgLmhlYWRlci1taW5pbWFsIHtcbiAgICAgIHBhZGRpbmctdG9wOiAxMjRweDtcbiAgICAgIGhlaWdodDogODB2aCAhaW1wb3J0YW50OyB9IH1cbiAgLmhlYWRlci1taW5pbWFsX19jb250YWluZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICAuaGVhZGVyLW1pbmltYWxfX2ltYWdlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOyB9XG4gIC5oZWFkZXItbWluaW1hbF9fdGl0bGUge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHBhZGRpbmctYm90dG9tOiAzMnB4OyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NDBweCkge1xuICAgICAgLmhlYWRlci1taW5pbWFsX190aXRsZSB7XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7IH0gfVxuICAuaGVhZGVyLW1pbmltYWxfX2ltYWdlLWFicyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIG1heC13aWR0aDogNzUlO1xuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzQwcHgpIHtcbiAgICAgIC5oZWFkZXItbWluaW1hbF9faW1hZ2UtYWJzOm5vdCguaGVhZGVyLW1pbmltYWxfX2ltYWdlLWFicy0tbWFudWFsLXNwYWNlLW1vYmlsZSkge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB0b3A6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGxlZnQ6IDUwJSAhaW1wb3J0YW50O1xuICAgICAgICByaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgIWltcG9ydGFudDsgfVxuICAgICAgICAuaGVhZGVyLW1pbmltYWxfX2ltYWdlLWFiczpub3QoLmhlYWRlci1taW5pbWFsX19pbWFnZS1hYnMtLW1hbnVhbC1zcGFjZS1tb2JpbGUpLmhlYWRlci1taW5pbWFsX19pbWFnZS1hYnMtLXNwYWNlLW9uLW1vYmlsZSB7XG4gICAgICAgICAgdG9wOiA1MCUgIWltcG9ydGFudDtcbiAgICAgICAgICBib3R0b206IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSAhaW1wb3J0YW50OyB9IH1cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0MHB4KSB7XG4gICAgICAuaGVhZGVyLW1pbmltYWxfX2ltYWdlLWFicy0tbWFudWFsLXNwYWNlLW1vYmlsZSB7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTsgfSB9XG4gICAgLmhlYWRlci1taW5pbWFsX19pbWFnZS1hYnMuaXMtY2VudGVyZWQge1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOyB9XG4gIC5oZWFkZXItbWluaW1hbF9faW1hZ2VzIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxleC1ncm93OiAxOyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NDBweCkge1xuICAgICAgLmhlYWRlci1taW5pbWFsX19pbWFnZXMge1xuICAgICAgICBtYXJnaW4tbGVmdDogLTE2cHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTE2cHg7IH0gfVxuICAuaGVhZGVyLW1pbmltYWxfX2ltYWdlIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgZmxleC1zaHJpbms6IDA7IH1cblxuLmhlYWRlci1taW5pbWFsLS1pbWFnZS1yaWdodCB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cblxuLmhlYWRlci1taW5pbWFsLS1jZW50ZXJlZC1pbWFnZSAuaGVhZGVyLW1pbmltYWxfX2ltYWdlIHtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xuICBwYWRkaW5nLWJvdHRvbTogMnJlbTsgfVxuXG4uaGVhZGVyLW1pbmltYWwtLWhhcy1hYnMtaW1hZ2VzIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4uaG90c3BvdCB7XG4gIG1hcmdpbi10b3A6IDMycHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG5cbi5ob3RzcG90X19zY3JlZW5zaG90IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4uaG90c3BvdF9faW1hZ2Uge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMDsgfVxuXG4uaG90c3BvdF9faXRlbSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuXG4uaG90c3BvdF9faXRlbS1kb3Qge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB3aWR0aDogMS4yNXJlbTtcbiAgaGVpZ2h0OiAxLjI1cmVtO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvcGFjaXR5OiAxO1xuICBib3gtc2hhZG93OiAwIDAgMC4yNXJlbSByZ2JhKDAsIDAsIDAsIDAuNik7IH1cblxuLmhvdHNwb3RfX2l0ZW0tcG9wdXAge1xuICBvcGFjaXR5OiAwO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB3aWR0aDogMTVyZW07XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgei1pbmRleDogLTE7IH1cblxuLmhvdHNwb3RfX2l0ZW0tYXJyb3cge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuICAuaG90c3BvdF9faXRlbS1hcnJvdzphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvcmRlci10b3A6IDAuNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmlnaHQ6IDAuNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItYm90dG9tOiAwLjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWxlZnQ6IDAuNXJlbSBzb2xpZCB0cmFuc3BhcmVudDsgfVxuXG4uaG90c3BvdF9faXRlbS1hcnJvdy1sZWZ0OmFmdGVyIHtcbiAgcmlnaHQ6IDEwMCU7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogY3VycmVudENvbG9yOyB9XG5cbi5ob3RzcG90X19pdGVtLWFycm93LXJpZ2h0OmFmdGVyIHtcbiAgbGVmdDogMTAwJTtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IGN1cnJlbnRDb2xvcjsgfVxuXG4uaG90c3BvdF9faXRlbS1hcnJvdy11cDphZnRlciB7XG4gIGJvdHRvbTogMTAwJTtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogY3VycmVudENvbG9yOyB9XG5cbi5ob3RzcG90X19pdGVtLWFycm93LWRvd246YWZ0ZXIge1xuICB0b3A6IDEwMCU7XG4gIGJvcmRlci10b3AtY29sb3I6IGN1cnJlbnRDb2xvcjsgfVxuXG4uaG90c3BvdF9faXRlbS1hcnJvdy1sZWZ0LWNvcm5lcjphZnRlciB7XG4gIGxlZnQ6IDAuM3JlbTsgfVxuXG4uaG90c3BvdF9faXRlbS1hcnJvdy1yaWdodC1jb3JuZXI6YWZ0ZXIge1xuICByaWdodDogMC4zcmVtOyB9XG5cbi5ob3RzcG90X19pdGVtLWFycm93LXRvcC1jb3JuZXI6YWZ0ZXIge1xuICB0b3A6IDAuM3JlbTsgfVxuXG4uaG90c3BvdF9faXRlbS1hcnJvdy1ib3R0b20tY29ybmVyOmFmdGVyIHtcbiAgYm90dG9tOiAwLjNyZW07IH1cblxuLmhvdHNwb3RfX2l0ZW0tcmFkaW8ge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLmhvdHNwb3RfX2l0ZW0tcmFkaW86Y2hlY2tlZCB+IC5ob3RzcG90X19pdGVtLXBvcHVwIHtcbiAgb3BhY2l0eTogMTtcbiAgei1pbmRleDogMjsgfVxuXG4vKipcbiAqIERlZmluZSB0aGUgYmFzaWMgcG9wdXAgdHJhbnNsYXRpb25zIGJhc2VkIG9uXG4gKiB0aGUgYXJyb3cgZGlyZWN0aW9uIGFuZCBhcnJvdyBjb3JuZXIgcG9zaXRpb25cbiAqL1xuLmhvdHNwb3RfX2l0ZW0tYXJyb3ctdXAuaG90c3BvdF9faXRlbS1hcnJvdy1sZWZ0LWNvcm5lciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0wLjk1cmVtLCAyLjVyZW0pOyB9XG5cbi5ob3RzcG90X19pdGVtLWFycm93LXVwLmhvdHNwb3RfX2l0ZW0tYXJyb3ctcmlnaHQtY29ybmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE2LjI1cmVtLCAyLjVyZW0pOyB9XG5cbi5ob3RzcG90X19pdGVtLWFycm93LXJpZ2h0LmhvdHNwb3RfX2l0ZW0tYXJyb3ctdG9wLWNvcm5lciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xOHJlbSwgLTAuM3JlbSk7IH1cblxuLmhvdHNwb3RfX2l0ZW0tYXJyb3ctbGVmdC5ob3RzcG90X19pdGVtLWFycm93LXRvcC1jb3JuZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLjc1cmVtLCAtMC4zcmVtKTsgfVxuXG4uaG90c3BvdF9faXRlbS1hcnJvdy1sZWZ0LmhvdHNwb3RfX2l0ZW0tYXJyb3ctYm90dG9tLWNvcm5lciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAuNzVyZW0sIC0wLjVyZW0pOyB9XG5cbi5ob3RzcG90X19pdGVtLWFycm93LXJpZ2h0LmhvdHNwb3RfX2l0ZW0tYXJyb3ctYm90dG9tLWNvcm5lciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xOHJlbSwgLTAuNXJlbSk7IH1cblxuLmhvdHNwb3RfX2l0ZW0tYXJyb3ctZG93bi5ob3RzcG90X19pdGVtLWFycm93LWxlZnQtY29ybmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTAuOTVyZW0sIC0xLjc1cmVtKTsgfVxuXG4uaG90c3BvdF9faXRlbS1hcnJvdy1kb3duLmhvdHNwb3RfX2l0ZW0tYXJyb3ctcmlnaHQtY29ybmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTE2LjI1cmVtLCAtMS43NXJlbSk7IH1cblxuLmljb24tbGluayB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNpdGlvbjogMC40cyBvcGFjaXR5O1xuICB3aWxsLWNoYW5nZTogb3BhY2l0eTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gIC5pY29uLWxpbms6aG92ZXIge1xuICAgIG9wYWNpdHk6IC42OyB9XG4gIC5pY29uLWxpbmtfX2ljb24ge1xuICAgIHdpZHRoOiAyNHB4O1xuICAgIGhlaWdodDogMjRweDsgfVxuICAuaWNvbi1saW5rX190ZXh0IHtcbiAgICBtYXJnaW4tbGVmdDogMTJweDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0MHB4KSB7XG4gICAgLmljb24tbGluay0taGlkZS10ZXh0LW9uLW1vYmlsZSAuaWNvbi1saW5rX190ZXh0IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAuaWNvbi1saW5rLS1ydGwge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgfVxuICAuaWNvbi1saW5rLS1ydGwgLmljb24tbGlua19fdGV4dCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMnB4OyB9XG4gIC5pY29uLWxpbmstLXRleHQtb25seSAuaWNvbi1saW5rX190ZXh0IHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cblxuLmltYWdlLWxpbmsge1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgLmltYWdlLWxpbmtfX2NvbnRlbnQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IDI0cHggMjRweDtcbiAgICB6LWluZGV4OiAyOyB9XG4gIC5pbWFnZS1saW5rX19vdmVybGF5IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIG9wYWNpdHk6IC4zO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgICB0cmFuc2l0aW9uOiAwLjJzIG9wYWNpdHksIHRyYW5zZm9ybSAwLjNzIGVhc2UtaW4tb3V0O1xuICAgIHdpbGwtY2hhbmdlOiBvcGFjaXR5LCB0cmFuc2Zvcm07XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKSBzY2FsZVkoMSk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjsgfVxuICAuaW1hZ2UtbGlua19fdGl0bGUge1xuICAgIHotaW5kZXg6IDE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMzRweCwgMCk7XG4gICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgdHJhbnNmb3JtO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlLWluLW91dCwgdHJhbnNmb3JtIDAuM3MgZWFzZS1pbi1vdXQ7IH1cbiAgLmltYWdlLWxpbmtfX3N1YnRpdGxlIHtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDM0cHgsIDApO1xuICAgIHdpbGwtY2hhbmdlOiBvcGFjaXR5LCB0cmFuc2Zvcm07XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzLCB0cmFuc2Zvcm0gMC4zNXMgY3ViaWMtYmV6aWVyKDAuMTMsIDEsIDAuNCwgMSk7XG4gICAgbGluZS1oZWlnaHQ6IDM0cHg7IH1cbiAgLmltYWdlLWxpbms6aG92ZXIgLmltYWdlLWxpbmtfX292ZXJsYXkge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMzRweCwgMCkgc2NhbGVZKDApO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjNzLCB0cmFuc2Zvcm0gMC41cyBlYXNlLWluLW91dDsgfVxuICAuaW1hZ2UtbGluazpob3ZlciAuaW1hZ2UtbGlua19fdGl0bGUsXG4gIC5pbWFnZS1saW5rOmhvdmVyIC5pbWFnZS1saW5rX19zdWJ0aXRsZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsgfVxuICAuaW1hZ2UtbGluazpob3ZlciAuaW1hZ2UtbGlua19fdGl0bGUge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjM1czsgfVxuICAuaW1hZ2UtbGluazpob3ZlciAuaW1hZ2UtbGlua19fc3VidGl0bGUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogMC4xNXM7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4zNXM7IH1cblxuLmJhbm5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmQ3MDA7XG4gIGNvbG9yOiAjMDAwO1xuICBwYWRkaW5nOiAyNHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgLmJhbm5lciBhIHtcbiAgICBjb2xvcjogIzAwMDtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAuYmFubmVyIC50LWxlYWQge1xuICAgIGZvbnQtZmFtaWx5OiBBdmVuaXIsIEFyaWFsLCBzYW5zLXNlcmlmOyB9XG5cbi5pbnRyb19faGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuXG4uaW50cm9fX2xvZ28ge1xuICB3aWR0aDogNjRweDtcbiAgbWFyZ2luLXJpZ2h0OiAyNHB4OyB9XG5cbi5pbnRyb19fdGl0bGUge1xuICBmbGV4OiAxOyB9XG5cbi5pbnRyb19fYm9keSB7XG4gIG1hcmdpbi10b3A6IDEycHg7XG4gIG9wYWNpdHk6IDAuODsgfVxuXG4ubGlzdC1wYWdlYWJsZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAubGlzdC1wYWdlYWJsZTpub3QoLmlzLWV4cGFuZGVkKSAubGlzdC1wYWdlYWJsZV9faGlkZGVuLXByb2plY3RzIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5saXN0LXBhZ2VhYmxlX19zaG93LW1vcmUge1xuICAgIG1hcmdpbjogODBweCAwcHg7XG4gICAgd2lkdGg6IDQwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cbiAgICAubGlzdC1wYWdlYWJsZV9fc2hvdy1tb3JlLmlzLWhpZGRlbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG5cbi5saXN0IHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBwYWRkaW5nOiAwOyB9XG5cbi5saXN0X19pdGVtIHtcbiAgZm9udC1mYW1pbHk6IEF2ZW5pciwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS42NTtcbiAgZGlzcGxheTogZmxleDtcbiAgcGFkZGluZy10b3A6IDE2cHg7XG4gIHBhZGRpbmctYm90dG9tOiAxNnB4OyB9XG4gIC5saXN0X19pdGVtOmZpcnN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLXRvcDogMDsgfVxuICAubGlzdF9faXRlbTpsYXN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDsgfVxuICAubGlzdF9faXRlbTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAubGlzdF9faXRlbTpub3QoOmxhc3QtY2hpbGQpOjphZnRlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBoZWlnaHQ6IDFweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgICAgIG9wYWNpdHk6IC4yO1xuICAgICAgY29udGVudDogJyc7IH1cblxuLmxpc3RfX2l0ZW0taWNvbiB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmxpc3RfX2l0ZW0taWNvbiBzdmcge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHdpZHRoOiAxZW07IH1cblxuLmxpc3QtLWRhcmsgLmxpc3RfX2l0ZW0taWNvbiBzdmcge1xuICBmaWxsOiAjNGQ0OTc0O1xuICBzdHJva2U6ICM0ZDQ5NzQ7IH1cblxuLmxpc3QtLXRpY2sge1xuICBzdHJva2U6IGN1cnJlbnRDb2xvcjsgfVxuICAubGlzdC0tdGljayAubGlzdF9faXRlbS1pY29uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLmxpc3QtLW51bWJlciB7XG4gIGNvdW50ZXItcmVzZXQ6IG51bWJlci1jb3VudGVyOyB9XG4gIC5saXN0LS1udW1iZXIgLmxpc3RfX2l0ZW0ge1xuICAgIGNvdW50ZXItaW5jcmVtZW50OiBudW1iZXItY291bnRlcjsgfVxuICAubGlzdC0tbnVtYmVyIC5saXN0X19pdGVtOmJlZm9yZSB7XG4gICAgY29udGVudDogY291bnRlcihudW1iZXItY291bnRlcikgXCIuXCI7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuXG4ubGlzdC0tdGljayAubGlzdF9faXRlbS1jb250ZW50LCAubGlzdC0tbnVtYmVyIC5saXN0X19pdGVtLWNvbnRlbnQge1xuICBwYWRkaW5nLWxlZnQ6IDE2cHg7IH1cblxuLmxpc3QtLXRpY2sgLmxpc3RfX2l0ZW06OmFmdGVyLCAubGlzdC0tbnVtYmVyIC5saXN0X19pdGVtOjphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLnByb2plY3QtaGVhZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IGF1dG87XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4ucHJvamVjdC1oZWFkZXJfX2hpZ2hsaWdodCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLWJvdHRvbTogMy41ZW07IH1cblxuLnByb2plY3QtaGVhZGVyX19iYWNrZ3JvdW5kIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBoZWlnaHQ6IDg1JTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiAwO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7IH1cblxuLnByb2plY3QtaGVhZGVyX19kZXZpY2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogYXV0byBhdXRvIDAgYXV0bztcbiAgcGFkZGluZy10b3A6IDEwJTsgfVxuXG4ucHJvamVjdC1oZWFkZXJfX2RldmljZS5pcGhvbmUtNnMge1xuICB3aWR0aDogMjUlO1xuICBtaW4td2lkdGg6IDE1MHB4O1xuICBtYXgtd2lkdGg6IDI1MHB4OyB9XG5cbi5wcm9qZWN0LWhlYWRlcl9fZGV2aWNlLmRlbGwtaGQge1xuICB3aWR0aDogNzAlO1xuICBtaW4td2lkdGg6IDE1MHB4O1xuICBtYXgtd2lkdGg6IDg0MHB4OyB9XG5cbi5wcm9qZWN0LWhlYWRlcl9fZGV2aWNlLm1hY2Jvb2stYWlyIHtcbiAgd2lkdGg6IDcwJTtcbiAgbWluLXdpZHRoOiAxNTBweDtcbiAgbWF4LXdpZHRoOiA4NDBweDsgfVxuXG4ucHJvamVjdC1oZWFkZXJfX2RldmljZS5pcGFkLWFpcjIge1xuICB3aWR0aDogNzAlO1xuICBtYXgtd2lkdGg6IDg0MHB4O1xuICBtaW4td2lkdGg6IDE1MHB4OyB9XG5cbi5wcm9qZWN0LWhlYWRlcl9fc2VwYXJhdG9yIHtcbiAgd2lkdGg6IDEwMHB4O1xuICBoZWlnaHQ6IDJweDtcbiAgbWFyZ2luOiAzLjVlbSBhdXRvO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhOyB9XG5cbi5wcm9qZWN0LWhlYWRlcl9fc2xvZ2FuIHtcbiAgbWFyZ2luLWJvdHRvbTogNmVtOyB9XG5cbi8qIE11bHRpcGxlIGJveCBzaGFkb3dzIHRvIGFjaGlldmUgdGhlIGdsYXNzIGxlbnMgZWZmZWN0ICovXG4vKiBMZW5zICovXG4vKiBUZXh0IHdoaWxlIGxvYWRpbmcgKi9cbi5zY3JlZW5zaG90LW1hZ25pZnlpbmcge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuaHRtbC5tYWduaWZ5aW5nID4gYm9keSB7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjsgfVxuXG4ubWFnbmlmeSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbi5tYWduaWZ5LWxlbnMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMHJlbTtcbiAgaGVpZ2h0OiAxMHJlbTtcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgYm94LXNoYWRvdzogMCAwIDAgN3B4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NSksIDAgMCA3cHggN3B4IHJnYmEoMCwgMCwgMCwgMC4yNSksIGluc2V0IDAgMCA0MHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICBjdXJzb3I6IG5vbmU7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHotaW5kZXg6IDI7IH1cblxuLm1hZ25pZnktbGVucy5sb2FkaW5nIHtcbiAgYmFja2dyb3VuZDogIzE2MTYxZCAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwLjc1OyB9XG5cbi5tYWduaWZ5LWxlbnMubG9hZGluZzphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA0NSU7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBjb2xvcjogI2ZmZjtcbiAgY29udGVudDogXCJMb2FkaW5nLi4uXCI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1zaGFkb3c6IDAgMCAycHggcmdiYSg1MSwgNTEsIDUxLCAwLjgpOyB9XG5cbi5zZWN0aW9uIHtcbiAgcGFkZGluZy10b3A6IDQuNXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDQuNXJlbTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0MHB4KSB7XG4gICAgLnNlY3Rpb24ge1xuICAgICAgcGFkZGluZy10b3A6IDIuNXJlbTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07IH0gfVxuICAuc2VjdGlvbl9fc2VjdGlvbi10aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfVxuICAuc2VjdGlvbl9fc2VjdGlvbi1udW1iZXIge1xuICAgIG1hcmdpbi1yaWdodDogMTJweDsgfVxuXG4uc2VjdGlvbi1zbWFsbCB7XG4gIHBhZGRpbmctdG9wOiAycmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMnJlbTsgfVxuXG4uYXJvb3YtcmVzZWFyY2gge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctdG9wOiAzMHZoO1xuICBwYWRkaW5nLWJvdHRvbTogMzB2aDsgfVxuICAuYXJvb3YtcmVzZWFyY2ggLmwtY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTsgfVxuICAuYXJvb3YtcmVzZWFyY2ggLm5hcnJhdGl2ZSBwIHtcbiAgICBmb250LXNpemU6IDEuMnJlbTsgfVxuICAuYXJvb3YtcmVzZWFyY2g6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2NvbnRlbnQvaW1hZ2VzL2Fyb292L3Jlc2VhcmNoLmpwZyk7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4gICAgb3BhY2l0eTogLjI7IH1cblxuLnRlYW0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogYXV0bztcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi50ZWFtX19tZW1iZXJzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWFyZ2luOiA2NHB4IDAgMDtcbiAgcGFkZGluZzogMDsgfVxuXG4udGVhbV9faXRlbSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZy1sZWZ0OiAxMnB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxMnB4O1xuICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICBtaW4td2lkdGg6IDIwMHB4O1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgLnRlYW1fX2l0ZW0tbmFtZSB7XG4gICAgbWFyZ2luLXRvcDogMTJweDsgfVxuXG4udGVhbS5jLWNvbG9yLWFyb292LS1jb2xvciBibG9ja3F1b3RlIHtcbiAgbWF4LXdpZHRoOiA4ODBweDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bzsgfVxuXG4vKiBBdmF0YXIgcG9zaXRpb25lZCBoYWxmIGhpcyBoZWlnaHQgYW5kIHRha2luZyBpbnRvIGNvbnNpZGVyYXRpb24gc2VjdGlvbiBwYWRkaW5nIHRvcCAqL1xuLnRlc3RpbW9uaWFsX19hdmF0YXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogLTguNXJlbSBhdXRvIDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4udGVzdGltb25pYWxfX2NhbGxvdXQge1xuICBtYXJnaW4tdG9wOiAycmVtOyB9XG5cbi50ZXN0aW1vbmlhbF9fYXV0aG9yIHtcbiAgbWFyZ2luLXRvcDogMjRweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi50ZXN0aW1vbmlhbF9fbmFtZSB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi50aW1lbGluZS1ob3Jpem9udGFsIHtcbiAgcGFkZGluZzogMDsgfVxuXG4udGltZWxpbmUtaG9yaXpvbnRhbF9faXRlbSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBmbGV4LWZsb3c6IHJvdztcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG91dGxpbmU6IG5vbmU7IH1cbiAgLnRpbWVsaW5lLWhvcml6b250YWxfX2l0ZW0gPiAqOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgIG1hcmdpbi1yaWdodDogMjVweDsgfVxuXG4udGltZWxpbmUtaG9yaXpvbnRhbF9fZG90cyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogNTBweCAwO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC50aW1lbGluZS1ob3Jpem9udGFsX19kb3RzIHVsIHtcbiAgICBwYWRkaW5nOiAwOyB9XG5cbi50aW1lbGluZS1ob3Jpem9udGFsX19kb3RzLWxpbmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDA7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGhlaWdodDogMnB4O1xuICB3aWR0aDogMDtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwZDliZGI7XG4gIHRyYW5zaXRpb246IHdpZHRoIC4ycyBlYXNlLWluLW91dDsgfVxuXG4udGltZWxpbmUtaG9yaXpvbnRhbF9fZG90czo6YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAwO1xuICBjb250ZW50OiBcIlwiO1xuICBoZWlnaHQ6IDJweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjllNmZiOyB9XG5cbi50aW1lbGluZS1ob3Jpem9udGFsX19kb3RzIC5zbGljay1kb3RzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdztcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4gIC50aW1lbGluZS1ob3Jpem9udGFsX19kb3RzIC5zbGljay1kb3RzICoge1xuICAgIG91dGxpbmU6IG5vbmU7IH1cbiAgLnRpbWVsaW5lLWhvcml6b250YWxfX2RvdHMgLnNsaWNrLWRvdHMgbGkge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiAzMHB4OyB9XG4gICAgLnRpbWVsaW5lLWhvcml6b250YWxfX2RvdHMgLnNsaWNrLWRvdHMgbGkgYnV0dG9uIHtcbiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICBib3JkZXItY29sb3I6ICMwZDliZGI7XG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgYm9yZGVyLXdpZHRoOiAycHg7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB3aWR0aDogMzBweDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAuMnMgZWFzZS1pbi1vdXQ7IH1cbiAgICAgIC50aW1lbGluZS1ob3Jpem9udGFsX19kb3RzIC5zbGljay1kb3RzIGxpIGJ1dHRvbjo6YWZ0ZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICB0b3A6IDRweDtcbiAgICAgICAgYm90dG9tOiA0cHg7XG4gICAgICAgIGxlZnQ6IDRweDtcbiAgICAgICAgcmlnaHQ6IDRweDtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuMnMgZWFzZS1pbi1vdXQ7IH1cbiAgICAudGltZWxpbmUtaG9yaXpvbnRhbF9fZG90cyAuc2xpY2stZG90cyBsaTpob3ZlciBidXR0b24ge1xuICAgICAgYm9yZGVyLWNvbG9yOiAjMGQ5YmRiO1xuICAgICAgdHJhbnNpdGlvbi1kZWxheTogLjJzOyB9XG4gICAgLnRpbWVsaW5lLWhvcml6b250YWxfX2RvdHMgLnNsaWNrLWRvdHMgbGkuc2xpY2stYWN0aXZlIGJ1dHRvbiB7XG4gICAgICBib3JkZXItY29sb3I6ICMwZDliZGI7XG4gICAgICB0cmFuc2l0aW9uLWRlbGF5OiAuMnM7IH1cbiAgICAudGltZWxpbmUtaG9yaXpvbnRhbF9fZG90cyAuc2xpY2stZG90cyBsaS5zbGljay1hY3RpdmUgYnV0dG9uOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGQ5YmRiO1xuICAgICAgdHJhbnNpdGlvbi1kZWxheTogLjJzOyB9XG4gICAgLnRpbWVsaW5lLWhvcml6b250YWxfX2RvdHMgLnNsaWNrLWRvdHMgbGkuc2xpY2stYWN0aXZlIH4gbGkgYnV0dG9uIHtcbiAgICAgIGJvcmRlci1jb2xvcjogI2I5ZTZmYjtcbiAgICAgIHRyYW5zaXRpb24tZGVsYXk6IC4yczsgfVxuXG4udGltZWxpbmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctbGVmdDogMzJweDtcbiAgLyogdGhpcyBpcyB0aGUgdmVydGljYWwgbGluZSAqLyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzQwcHgpIHtcbiAgICAudGltZWxpbmUge1xuICAgICAgcGFkZGluZy1sZWZ0OiAyNHB4OyB9IH1cbiAgLnRpbWVsaW5lOmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMC4wNzVyZW07XG4gICAgYmFja2dyb3VuZDogIzI5YjRmMjsgfVxuICAudGltZWxpbmVfX2N1cnNvciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGJvdHRvbTogMDsgfVxuICAudGltZWxpbmVfX2N1cnNvci1saW5lIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwLjc1cmVtO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDAuMTVyZW07XG4gICAgYm90dG9tOiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGVZKDApO1xuICAgIGJhY2tncm91bmQ6ICMwZDliZGI7XG4gICAgbWFyZ2luLWxlZnQ6IC0wLjA1cmVtO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBjZW50ZXI7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDE2bXMgZWFzZTtcbiAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOyB9XG4gIC50aW1lbGluZV9fY3Vyc29yLWRvdCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAtMC41cmVtO1xuICAgIHdpZHRoOiAxcmVtO1xuICAgIGhlaWdodDogMXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogIzBkOWJkYjtcbiAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOyB9XG5cbi50aW1lbGluZV9faXRlbSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAudGltZWxpbmVfX2l0ZW06bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNHJlbTsgfVxuICAudGltZWxpbmVfX2l0ZW0tY29udGVudCB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NDBweCkge1xuICAgICAgLnRpbWVsaW5lX19pdGVtLWNvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4gIC50aW1lbGluZV9faXRlbS1jb250ZW50LWNlbGwge1xuICAgIGZsZXg6IDE7IH1cbiAgLnRpbWVsaW5lX19pdGVtLWNvbnRlbnQtY2VsbC0taW1hZ2Uge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAudGltZWxpbmVfX2l0ZW0tZG90IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMS41cmVtO1xuICAgIGhlaWdodDogMS41cmVtO1xuICAgIGJvcmRlcjogMC4wNXJlbSBzb2xpZCAjMjliNGYyO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICBtYXJnaW4tbGVmdDogLTMycHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICB6LWluZGV4OiAxOyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NDBweCkge1xuICAgICAgLnRpbWVsaW5lX19pdGVtLWRvdCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMjRweDsgfSB9XG4gICAgLnRpbWVsaW5lX19pdGVtLWRvdDpiZWZvcmUge1xuICAgICAgd2lsbC1jaGFuZ2U6IG9wYWNpdHk7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICB3aWR0aDogMXJlbTtcbiAgICAgIGhlaWdodDogMXJlbTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBiYWNrZ3JvdW5kOiAjMGQ5YmRiO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4ycyBlYXNlLWluLW91dDsgfVxuICAgIC50aW1lbGluZV9faXRlbS1kb3QuaXMtYWN0aXZlIHtcbiAgICAgIGJvcmRlcjogMC4xcmVtIHNvbGlkICMyOWI0ZjI7IH1cbiAgICAudGltZWxpbmVfX2l0ZW0tZG90LmlzLWFjdGl2ZTpiZWZvcmUge1xuICAgICAgb3BhY2l0eTogMTsgfVxuICAudGltZWxpbmVfX2l0ZW06Zmlyc3QtY2hpbGQgLnRpbWVsaW5lX19pdGVtLWRvdCB7XG4gICAgdG9wOiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDApO1xuICAgIGJvcmRlcjogMC4xcmVtIHNvbGlkICMyOWI0ZjI7IH1cbiAgLnRpbWVsaW5lX19pdGVtOmxhc3QtY2hpbGQgLnRpbWVsaW5lX19pdGVtLWRvdCB7XG4gICAgdG9wOiBhdXRvO1xuICAgIGJvdHRvbTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAwKTsgfVxuXG4udGltZWxpbmUtLW1pZGRsZSB7XG4gIHBhZGRpbmctbGVmdDogMDsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0MHB4KSB7XG4gICAgLnRpbWVsaW5lLS1taWRkbGUge1xuICAgICAgcGFkZGluZy1sZWZ0OiAyNHB4OyB9IH1cbiAgLnRpbWVsaW5lLS1taWRkbGU6YmVmb3JlLFxuICAudGltZWxpbmUtLW1pZGRsZSAudGltZWxpbmVfX2N1cnNvcixcbiAgLnRpbWVsaW5lLS1taWRkbGUgLnRpbWVsaW5lX19pdGVtLWRvdCB7XG4gICAgbGVmdDogNTAlOyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NDBweCkge1xuICAgICAgLnRpbWVsaW5lLS1taWRkbGU6YmVmb3JlLFxuICAgICAgLnRpbWVsaW5lLS1taWRkbGUgLnRpbWVsaW5lX19jdXJzb3IsXG4gICAgICAudGltZWxpbmUtLW1pZGRsZSAudGltZWxpbmVfX2l0ZW0tZG90IHtcbiAgICAgICAgbGVmdDogMDsgfSB9XG4gIC50aW1lbGluZS0tbWlkZGxlIC50aW1lbGluZV9faXRlbS1kb3Qge1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NDBweCkge1xuICAgICAgLnRpbWVsaW5lLS1taWRkbGUgLnRpbWVsaW5lX19pdGVtLWRvdCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMjRweDsgfSB9XG4gIC50aW1lbGluZS0tbWlkZGxlIC50aW1lbGluZV9faXRlbTpudGgtY2hpbGQoZXZlbikgLnRpbWVsaW5lX19pdGVtLWNvbnRlbnQtY2VsbC0tdGV4dCB7XG4gICAgb3JkZXI6IC0xOyB9XG5cbi50aW1lbGluZV9faXRlbS1jb250ZW50LWNlbGwtLWltYWdlID4gaW1nIHtcbiAgbWF4LXdpZHRoOiAxMDAlOyB9XG5cbi50aW1lbGluZV9faXRlbS1jb250ZW50LWNlbGwtLWltYWdlIHtcbiAgcGFkZGluZy1yaWdodDogM3JlbTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0MHB4KSB7XG4gICAgLnRpbWVsaW5lX19pdGVtLWNvbnRlbnQtY2VsbC0taW1hZ2Uge1xuICAgICAgcGFkZGluZy1yaWdodDogMDsgfSB9XG5cbi50aW1lbGluZV9faXRlbS1jb250ZW50LWNlbGwtLXRleHQge1xuICBwYWRkaW5nLWxlZnQ6IDNyZW07IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NDBweCkge1xuICAgIC50aW1lbGluZV9faXRlbS1jb250ZW50LWNlbGwtLXRleHQge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwOyB9IH1cblxuLnRpbWVsaW5lLS1taWRkbGUgLnRpbWVsaW5lX19pdGVtOm50aC1jaGlsZChldmVuKSAudGltZWxpbmVfX2l0ZW0tY29udGVudC1jZWxsLS1pbWFnZSB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIHBhZGRpbmctbGVmdDogM3JlbTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0MHB4KSB7XG4gICAgLnRpbWVsaW5lLS1taWRkbGUgLnRpbWVsaW5lX19pdGVtOm50aC1jaGlsZChldmVuKSAudGltZWxpbmVfX2l0ZW0tY29udGVudC1jZWxsLS1pbWFnZSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7IH0gfVxuXG4udGltZWxpbmUtLW1pZGRsZSAudGltZWxpbmVfX2l0ZW06bnRoLWNoaWxkKGV2ZW4pIC50aW1lbGluZV9faXRlbS1jb250ZW50LWNlbGwtLXRleHQge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDNyZW07IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NDBweCkge1xuICAgIC50aW1lbGluZS0tbWlkZGxlIC50aW1lbGluZV9faXRlbTpudGgtY2hpbGQoZXZlbikgLnRpbWVsaW5lX19pdGVtLWNvbnRlbnQtY2VsbC0tdGV4dCB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9IH1cblxuLypcbiAqIEEgbW9kZXJuIHRoZW1lIGZvciBwb3J0Zm9saW8gcGFnZXMgdXNpbmcgc2FucyBzZXJpZiB0eXBlZmFjZXNcbiAqIGFuZCBhIG1vZHVsYXIgc2NhbGUgd2l0aCBmbHVpZCB0eXBlLiBUaGlzIHRoZW1lIGFsc28gaW5jbHVkZXMgYVxuICogZGFyayB2YXJpYXRpb24gdGhhdCBjYW4gYmUgdXNlZCB0byBlbXBoYXNpemUgYSBzZWN0aW9uLlxuICovXG4vKlxuKiBEb27igJl0IGltcG9ydCBhbnkgb3RoZXIgZm9udHMgaGVyZSwgYmVjYXVzZSB0aGV5IHdvdWxkIGJlIGxvYWRlZCBvbiBldmVyeSBwYWdlLlxuKiBJZGVhbGx5LCB0aGVtZXMgY291bGQgYmUgaW5jbHVkZWQgaW4gdGhlIGhlYWQgb2YgYSBwYWdlIHRvIGF2b2lkXG4qIGxvYWRpbmcgZ2xvYmFsIHN0eWxlcy4gQnkgZGVzaWduLCB0aGlzIGlzIG5vdCBwb3NzaWJsZSBiZWNhdXNlIHRoZSBcIm1ldGFcIiBibG9ja1xuKiBpbiBsYXlvdXQgdGVtcGxhdGVzIHdpbGwgaW5qZWN0IGN1c3RvbSBtZXRhIHRhZ3MsIHN1Y2ggYXMgYSBjdXN0b20gQ1NTIGZpbGUsXG4qIGJlZm9yZSBvdGhlciBzdHlsZXMuIEZvbnRzIGFyZSBsb2FkZWQgZnJvbSB0aGUgcGFnZSBsYXlvdXQgZm9yIG5vdy5cblxuKiBAaW1wb3J0IHVybCgnaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVNvdXJjZStTYW5zK1Bybzo0MDAsNDAwaSw2MDAsNzAwJyk7XG5cbiovXG4udGhlbWUtLW1vZGVybiAubmFycmF0aXZlIHtcbiAgZm9udC1zaXplOiAxZW07XG4gIC8qIFJlbW92ZSBlbGVtZW50IHNwZWNpZmljIHNwYWNpbmcgKi9cbiAgLypcbiAgICogVGFnc1xuICAgKi9cbiAgLypcbiAgICogU3BhY2luZ1xuICAgKi9cbiAgLyogU3BlY2lmaWMgc3R5bGVzIGZvciBwcm9qZWN0IHRpdGxlICsgc3VidGl0bGUgY29tYm8gKi8gfVxuICAudGhlbWUtLW1vZGVybiAubmFycmF0aXZlIGgxLCAudGhlbWUtLW1vZGVybiAubmFycmF0aXZlIGgyLCAudGhlbWUtLW1vZGVybiAubmFycmF0aXZlIGgzLCAudGhlbWUtLW1vZGVybiAubmFycmF0aXZlIGg0LCAudGhlbWUtLW1vZGVybiAubmFycmF0aXZlIGg1LCAudGhlbWUtLW1vZGVybiAubmFycmF0aXZlIGg2LCAudGhlbWUtLW1vZGVybiAubmFycmF0aXZlIHAsIC50aGVtZS0tbW9kZXJuIC5uYXJyYXRpdmUgdWwsIC50aGVtZS0tbW9kZXJuIC5uYXJyYXRpdmUgbGksIC50aGVtZS0tbW9kZXJuIC5uYXJyYXRpdmUgYmxvY2txdW90ZSB7XG4gICAgZm9udC1mYW1pbHk6IFwiQXZlbmlyIE5leHRcIiwgXCJBdmVuaXJcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmOyB9XG4gIC50aGVtZS0tbW9kZXJuIC5uYXJyYXRpdmUgaDEsIC50aGVtZS0tbW9kZXJuIC5uYXJyYXRpdmUgaDIsIC50aGVtZS0tbW9kZXJuIC5uYXJyYXRpdmUgaDMsIC50aGVtZS0tbW9kZXJuIC5uYXJyYXRpdmUgaDQsIC50aGVtZS0tbW9kZXJuIC5uYXJyYXRpdmUgaDUsIC50aGVtZS0tbW9kZXJuIC5uYXJyYXRpdmUgaDYge1xuICAgIG1hcmdpbi10b3A6IDA7IH1cbiAgLnRoZW1lLS1tb2Rlcm4gLm5hcnJhdGl2ZSBoMSB7XG4gICAgZm9udC1zaXplOiAzNS4yNTEycHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICAgIG1hcmdpbi10b3A6IDE1JTtcbiAgICBmb250LXdlaWdodDogNzAwOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDMyMHB4KSBhbmQgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgICAudGhlbWUtLW1vZGVybiAubmFycmF0aXZlIGgxIHtcbiAgICAgICAgZm9udC1zaXplOiBjYWxjKCAzNS4yNTEycHggKyAyNC41MzU5MSAqICggKCAxMDB2dyAtIDMyMHB4KSAvIDg4MCApKTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgICAgLnRoZW1lLS1tb2Rlcm4gLm5hcnJhdGl2ZSBoMSB7XG4gICAgICAgIGZvbnQtc2l6ZTogNTkuNzg3MTFweDsgfSB9XG4gIC50aGVtZS0tbW9kZXJuIC5uYXJyYXRpdmUgaDIge1xuICAgIGZvbnQtc2l6ZTogMjQuNDhweDtcbiAgICBmb250LXdlaWdodDogNzAwOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDMyMHB4KSBhbmQgKG1heC13aWR0aDogMTIwMHB4KSB7XG4gICAgICAudGhlbWUtLW1vZGVybiAubmFycmF0aXZlIGgyIHtcbiAgICAgICAgZm9udC1zaXplOiBjYWxjKCAyNC40OHB4ICsgOC4zMjUgKiAoICggMTAwdncgLSAzMjBweCkgLyA4ODAgKSk7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICAgIC50aGVtZS0tbW9kZXJuIC5uYXJyYXRpdmUgaDIge1xuICAgICAgICBmb250LXNpemU6IDMyLjgwNXB4OyB9IH1cbiAgLnRoZW1lLS1tb2Rlcm4gLm5hcnJhdGl2ZSBoMyB7XG4gICAgZm9udC1zaXplOiAyMC40cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAzMjBweCkgYW5kIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgICAgLnRoZW1lLS1tb2Rlcm4gLm5hcnJhdGl2ZSBoMyB7XG4gICAgICAgIGZvbnQtc2l6ZTogY2FsYyggMjAuNHB4ICsgMy45ICogKCAoIDEwMHZ3IC0gMzIwcHgpIC8gODgwICkpOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gICAgICAudGhlbWUtLW1vZGVybiAubmFycmF0aXZlIGgzIHtcbiAgICAgICAgZm9udC1zaXplOiAyNC4zcHg7IH0gfVxuICAudGhlbWUtLW1vZGVybiAubmFycmF0aXZlIGg0IHtcbiAgICBmb250LXNpemU6IDE3cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAzMjBweCkgYW5kIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgICAgLnRoZW1lLS1tb2Rlcm4gLm5hcnJhdGl2ZSBoNCB7XG4gICAgICAgIGZvbnQtc2l6ZTogY2FsYyggMTdweCArIDEgKiAoICggMTAwdncgLSAzMjBweCkgLyA4ODAgKSk7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICAgIC50aGVtZS0tbW9kZXJuIC5uYXJyYXRpdmUgaDQge1xuICAgICAgICBmb250LXNpemU6IDE4cHg7IH0gfVxuICAudGhlbWUtLW1vZGVybiAubmFycmF0aXZlIHAsIC50aGVtZS0tbW9kZXJuIC5uYXJyYXRpdmUgdWwsIC50aGVtZS0tbW9kZXJuIC5uYXJyYXRpdmUgbGksIC50aGVtZS0tbW9kZXJuIC5uYXJyYXRpdmUgYmxvY2txdW90ZSB7XG4gICAgZm9udC1zaXplOiAxN3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMzIwcHgpIGFuZCAobWF4LXdpZHRoOiAxMjAwcHgpIHtcbiAgICAgIC50aGVtZS0tbW9kZXJuIC5uYXJyYXRpdmUgcCwgLnRoZW1lLS1tb2Rlcm4gLm5hcnJhdGl2ZSB1bCwgLnRoZW1lLS1tb2Rlcm4gLm5hcnJhdGl2ZSBsaSwgLnRoZW1lLS1tb2Rlcm4gLm5hcnJhdGl2ZSBibG9ja3F1b3RlIHtcbiAgICAgICAgZm9udC1zaXplOiBjYWxjKCAxN3B4ICsgMSAqICggKCAxMDB2dyAtIDMyMHB4KSAvIDg4MCApKTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgICAgLnRoZW1lLS1tb2Rlcm4gLm5hcnJhdGl2ZSBwLCAudGhlbWUtLW1vZGVybiAubmFycmF0aXZlIHVsLCAudGhlbWUtLW1vZGVybiAubmFycmF0aXZlIGxpLCAudGhlbWUtLW1vZGVybiAubmFycmF0aXZlIGJsb2NrcXVvdGUge1xuICAgICAgICBmb250LXNpemU6IDE4cHg7IH0gfVxuICAudGhlbWUtLW1vZGVybiAubmFycmF0aXZlIGEge1xuICAgIGNvbG9yOiBibGFjaztcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAudGhlbWUtLW1vZGVybiAubmFycmF0aXZlIHN0cm9uZyB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuICAudGhlbWUtLW1vZGVybiAubmFycmF0aXZlIGJsb2NrcXVvdGUge1xuICAgIGJvcmRlci1sZWZ0OiA4cHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgIG1hcmdpbjogMS41ZW0gMCAxLjVlbSAwO1xuICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgICBvcGFjaXR5OiAwLjc7IH1cbiAgLnRoZW1lLS1tb2Rlcm4gLm5hcnJhdGl2ZSBmaWdjYXB0aW9uIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLnRoZW1lLS1tb2Rlcm4gLm5hcnJhdGl2ZSBociB7XG4gICAgbWFyZ2luOiAzcmVtIDA7IH1cbiAgLnRoZW1lLS1tb2Rlcm4gLm5hcnJhdGl2ZSBoMSArIGgyIHtcbiAgICBtYXJnaW4tdG9wOiAwLjVlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBvcGFjaXR5OiAwLjU7IH1cbiAgLnRoZW1lLS1tb2Rlcm4gLm5hcnJhdGl2ZSBoMiArIGgzIHtcbiAgICBtYXJnaW4tdG9wOiAycmVtOyB9XG4gIC50aGVtZS0tbW9kZXJuIC5uYXJyYXRpdmUgZmlndXJlICsgcCxcbiAgLnRoZW1lLS1tb2Rlcm4gLm5hcnJhdGl2ZSBwICsgZmlndXJlIHtcbiAgICBtYXJnaW4tdG9wOiAxLjVyZW07IH1cbiAgLnRoZW1lLS1tb2Rlcm4gLm5hcnJhdGl2ZSBoMyArIHAsXG4gIC50aGVtZS0tbW9kZXJuIC5uYXJyYXRpdmUgcCArIHAge1xuICAgIG1hcmdpbi10b3A6IDFlbTsgfVxuICAudGhlbWUtLW1vZGVybiAubmFycmF0aXZlIHVsICsgaDMsXG4gIC50aGVtZS0tbW9kZXJuIC5uYXJyYXRpdmUgcCArIGgzLFxuICAudGhlbWUtLW1vZGVybiAubmFycmF0aXZlIGZpZ3VyZSArIGgzIHtcbiAgICBtYXJnaW4tdG9wOiAzcmVtOyB9XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4udGhlbWUtLW1vZGVybi1kYXJrIC5uYXJyYXRpdmUge1xuICAvKlxuICAgKiBTdHlsZXMgZm9yIGEgZmVhdHVyZSBibG9jayB0aGF0IGNhbiBiZSB1c2VkIHRvIGVtcGhhc2l6ZSBhIHNlY3Rpb24uXG4gICAqIEFwcGxpZXMgYSBkYXJrIHRoZW1lLlxuICAgKi9cbiAgY29sb3I6IHdoaXRlO1xuICAvKiBDb250cm9sIHJlbmRlcmluZyBmb3IgbGlnaHQgdGV4dCBvbiBkYXJrIGJhY2tncm91bmQgKi9cbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC8qXG4gICAqIFRhZ3NcbiAgICovXG4gIC8qXG4gICAqIFNwYWNpbmdcbiAgICovXG4gIC8qIFR3ZWFrIGZvciBtdWx0aS1jb2x1bW4gYmFzZWxpbmUgYWxpZ25tZW50ICovXG4gIC8qXG4gICAgKiBNb2JpbGUgbGF5b3V0IGNoYW5nZXNcbiAgICAqLyB9XG4gIC50aGVtZS0tbW9kZXJuLWRhcmsgLm5hcnJhdGl2ZSBoMiB7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgZm9udC1zaXplOiAyOS4zNzZweDtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgb3BhY2l0eTogMTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAzMjBweCkgYW5kIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgICAgLnRoZW1lLS1tb2Rlcm4tZGFyayAubmFycmF0aXZlIGgyIHtcbiAgICAgICAgZm9udC1zaXplOiBjYWxjKCAyOS4zNzZweCArIDE0LjkxMDc1ICogKCAoIDEwMHZ3IC0gMzIwcHgpIC8gODgwICkpOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gICAgICAudGhlbWUtLW1vZGVybi1kYXJrIC5uYXJyYXRpdmUgaDIge1xuICAgICAgICBmb250LXNpemU6IDQ0LjI4Njc1cHg7IH0gfVxuICAudGhlbWUtLW1vZGVybi1kYXJrIC5uYXJyYXRpdmUgcCB7XG4gICAgb3BhY2l0eTogMC44O1xuICAgIG1hcmdpbi10b3A6IDA7IH1cbiAgLnRoZW1lLS1tb2Rlcm4tZGFyayAubmFycmF0aXZlIGhyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpO1xuICAgIGJvcmRlcjogMDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IDQwcHggMDtcbiAgICBwYWRkaW5nOiAwOyB9XG4gIC50aGVtZS0tbW9kZXJuLWRhcmsgLm5hcnJhdGl2ZSBoNCArIHAge1xuICAgIG1hcmdpbi10b3A6IDAuMnJlbTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgICAudGhlbWUtLW1vZGVybi1kYXJrIC5uYXJyYXRpdmUge1xuICAgICAgLyogQ2hhbmdlIHNpZGUtYnktc2lkZSBncmlkIGxheW91dCB0byBhIHN0YWNrICovIH1cbiAgICAgIC50aGVtZS0tbW9kZXJuLWRhcmsgLm5hcnJhdGl2ZSAubC1ncmlkIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgIC50aGVtZS0tbW9kZXJuLWRhcmsgLm5hcnJhdGl2ZSAubC1vbmUtaGFsZiArIC5sLW9uZS1oYWxmIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMS41cmVtOyB9XG4gICAgICAudGhlbWUtLW1vZGVybi1kYXJrIC5uYXJyYXRpdmUgLmwtb25lLWhhbGYge1xuICAgICAgICB3aWR0aDogMTAwJTsgfSB9XG5cbi5hbGlnbi1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxudmlkZW8sXG4uc2hhZG93IHtcbiAgYm94LXNoYWRvdzogMHB4IDRweCAzMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDFweCA0cHggcmdiYSgwLCAwLCAwLCAwLjIpOyB9XG5cbi5sLXBhZ2Uge1xuICBtYXJnaW4tdG9wOiA2MHB4OyB9XG4gIC5sLXBhZ2U6bm90KC5sLXBhZ2UtLXNwYWNlbGVzcykge1xuICAgIG1pbi1oZWlnaHQ6IGNhbGMoMTAwdmggLSA2MHB4KTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgLmwtcGFnZV9fY29udGVudCB7XG4gICAgZmxleDogMTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0MHB4KSB7XG4gICAgLmwtcGFnZSB7XG4gICAgICBtYXJnaW4tdG9wOiA2MHB4O1xuICAgICAgbWluLWhlaWdodDogYXV0bzsgfSB9XG4gIC5sLXBhZ2UtLXNwYWNlbGVzcyB7XG4gICAgbWFyZ2luLXRvcDogMDsgfVxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzQwcHgpIHtcbiAgICAgIC5sLXBhZ2UtLXNwYWNlbGVzcyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7IH0gfVxuXG4udmlkZW8tLW5vLXNoYWRvdyB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG5cbi5kb3dubG9hZC1iYWRnZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAzMHB4OyB9XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzQwcHgpIHtcbiAgICAuZG93bmxvYWQtYmFkZ2Uge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfSB9XG5cbi5kb3dubG9hZC1iYWRnZV9fYnV0dG9uIHtcbiAgaGVpZ2h0OiAxMDBweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi10b3A6IDQuNXJlbTsgfVxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc0MHB4KSB7XG4gICAgLmRvd25sb2FkLWJhZGdlX19idXR0b24ge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgaGVpZ2h0OiA4MHB4OyB9IH1cblxuLmRvd25sb2FkLWJhZGdlX19sZWdhbC1ub3RpY2Uge1xuICBmb250LWZhbWlseTogQXZlbmlyLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXNpemU6IDAuOHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgb3BhY2l0eTogLjU7IH1cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NDBweCkge1xuICAgIC5kb3dubG9hZC1iYWRnZV9fbGVnYWwtbm90aWNlIHtcbiAgICAgIGZvbnQtc2l6ZTogLjdyZW07IH0gfVxuXG5pbWcuZG93bmxvYWQtYmFkZ2VfX2ltZyB7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IGF1dG87XG4gIG1hcmdpbi10b3A6IDA7IH1cbiIsIlxuQGltcG9ydCBcImJvbmVzY3NzL21peGluc1wiO1xuXG4kdC13ZWlnaHQtcmVndWxhciAgICAgICAgICAgICAgOiA0MDA7XG4kdC13ZWlnaHQtYm9sZCAgICAgICAgICAgICAgICAgOiA4MDA7XG5cbiR0LXN0eWxlLW5vcm1hbCAgICAgICAgIDogbm9ybWFsO1xuJHQtc3R5bGUtaXRhbGljICAgICAgICAgOiBpdGFsaWM7XG5cbiR0LWZhbWlseS1zYW5zLXNlcmlmICAgIDogQXZlbmlyLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiR0LWZhbWlseS1zZXJpZiAgICAgICAgIDogJ1BUIFNlcmlmJywgc2VyaWY7XG5cbiR0LWRlZmF1bHQtZm9udC1zaXplICAgIDogMjBweDtcbiR0LWRlZmF1bHQtZm9udC1mYW1pbHkgIDogJHQtZmFtaWx5LXNhbnMtc2VyaWY7XG4kdC1kZWZhdWx0LWZvbnQtd2VpZ2h0ICA6ICR0LXdlaWdodC1yZWd1bGFyO1xuJHQtZGVmYXVsdC1mb250LXN0eWxlICAgOiAkdC1zdHlsZS1ub3JtYWw7XG4kdC1kZWZhdWx0LWxpbmUtaGVpZ2h0ICA6IDEuNDtcbiR0LWRlZmF1bHQtY29sb3IgICAgICAgIDogYyhuZXV0cmFsLCBibGFjayk7XG5cbiR0eXBlczogKFxuICBkZXNrdG9wOiAoXG4gICAgZGVmYXVsdDogKFxuICAgICAgZm9udC1mYW1pbHkgICAgICAgOiAkdC1kZWZhdWx0LWZvbnQtZmFtaWx5LFxuICAgICAgZm9udC13ZWlnaHQgICAgICAgOiAkdC13ZWlnaHQtcmVndWxhcixcbiAgICAgIGZvbnQtc3R5bGUgICAgICAgIDogJHQtc3R5bGUtbm9ybWFsLFxuICAgICAgZm9udC1zaXplICAgICAgICAgOiAkdC1kZWZhdWx0LWZvbnQtc2l6ZSxcbiAgICAgIGxpbmUtaGVpZ2h0ICAgICAgIDogJHQtZGVmYXVsdC1saW5lLWhlaWdodCxcbiAgICAgIGNvbG9yICAgICAgICAgICAgIDogJHQtZGVmYXVsdC1jb2xvclxuICAgICksXG4gICAgcHJvamVjdC10aXRsZTogKFxuICAgICAgZm9udC1mYW1pbHkgICAgICAgOiAkdC1kZWZhdWx0LWZvbnQtZmFtaWx5LFxuICAgICAgZm9udC13ZWlnaHQgICAgICAgOiAkdC13ZWlnaHQtYm9sZCxcbiAgICAgIGZvbnQtc3R5bGUgICAgICAgIDogJHQtc3R5bGUtbm9ybWFsLFxuICAgICAgZm9udC1zaXplICAgICAgICAgOiAyLjhyZW0sXG4gICAgICBsaW5lLWhlaWdodCAgICAgICA6IDEuMTQsXG5cbiAgICApLFxuICAgIHByb2plY3QtbGVhZDogKFxuICAgICAgZm9udC1mYW1pbHkgICAgICAgOiAkdC1kZWZhdWx0LWZvbnQtZmFtaWx5LFxuICAgICAgZm9udC13ZWlnaHQgICAgICAgOiAkdC13ZWlnaHQtYm9sZCxcbiAgICAgIGZvbnQtc3R5bGUgICAgICAgIDogJHQtc3R5bGUtbm9ybWFsLFxuICAgICAgZm9udC1zaXplICAgICAgICAgOiAyLjFyZW0sXG4gICAgICBsaW5lLWhlaWdodCAgICAgICA6IDEuMTksXG4gICAgKSxcbiAgICBzZWN0aW9uLXRpdGxlOiAoXG4gICAgICBmb250LWZhbWlseSAgICAgICA6ICR0LWRlZmF1bHQtZm9udC1mYW1pbHksXG4gICAgICBmb250LXdlaWdodCAgICAgICA6ICR0LXdlaWdodC1yZWd1bGFyLFxuICAgICAgZm9udC1zdHlsZSAgICAgICAgOiAkdC1zdHlsZS1pdGFsaWMsXG4gICAgICBmb250LXNpemUgICAgICAgICA6IC45cmVtLFxuICAgICAgbGluZS1oZWlnaHQgICAgICAgOiAxLjUsXG4gICAgICBsZXR0ZXItc3BhY2luZyAgICA6IDRweCxcbiAgICAgIHRleHQtdHJhbnNmb3JtICAgIDogdXBwZXJjYXNlXG4gICAgKSxcbiAgICB0aXRsZTogKFxuICAgICAgZm9udC1mYW1pbHkgICAgICAgOiAkdC1kZWZhdWx0LWZvbnQtZmFtaWx5LFxuICAgICAgZm9udC13ZWlnaHQgICAgICAgOiAkdC13ZWlnaHQtYm9sZCxcbiAgICAgIGZvbnQtc3R5bGUgICAgICAgIDogJHQtc3R5bGUtbm9ybWFsLFxuICAgICAgZm9udC1zaXplICAgICAgICAgOiAycmVtLFxuICAgICAgbGluZS1oZWlnaHQgICAgICAgOiAxLjMsXG4gICAgKSxcbiAgICBsZWFkOiAoXG4gICAgICBmb250LWZhbWlseSAgICAgICA6ICR0LWZhbWlseS1zZXJpZixcbiAgICAgIGZvbnQtd2VpZ2h0ICAgICAgIDogJHQtd2VpZ2h0LXJlZ3VsYXIsXG4gICAgICBmb250LXN0eWxlICAgICAgICA6ICR0LXN0eWxlLW5vcm1hbCxcbiAgICAgIGZvbnQtc2l6ZSAgICAgICAgIDogMS4ycmVtLFxuICAgICAgbGluZS1oZWlnaHQgICAgICAgOiAxLjY1LFxuICAgICksXG4gICAgc3VidGl0bGU6IChcbiAgICAgIGZvbnQtZmFtaWx5ICAgICAgIDogJHQtZGVmYXVsdC1mb250LWZhbWlseSxcbiAgICAgIGZvbnQtd2VpZ2h0ICAgICAgIDogJHQtd2VpZ2h0LWJvbGQsXG4gICAgICBmb250LXN0eWxlICAgICAgICA6ICR0LXN0eWxlLW5vcm1hbCxcbiAgICAgIGZvbnQtc2l6ZSAgICAgICAgIDogMS4zcmVtLFxuICAgICAgbGluZS1oZWlnaHQgICAgICAgOiAxLjMsXG4gICAgKSxcbiAgICBoNDogKFxuICAgICAgZm9udC1mYW1pbHkgICAgICAgOiAkdC1kZWZhdWx0LWZvbnQtZmFtaWx5LFxuICAgICAgZm9udC13ZWlnaHQgICAgICAgOiAkdC13ZWlnaHQtYm9sZCxcbiAgICAgIGZvbnQtc3R5bGUgICAgICAgIDogJHQtc3R5bGUtbm9ybWFsLFxuICAgICAgZm9udC1zaXplICAgICAgICAgOiAxLjFyZW0sXG4gICAgICBsaW5lLWhlaWdodCAgICAgICA6IDEuMyxcbiAgICApLFxuICAgIHBhcmFncmFwaDogKFxuICAgICAgZm9udC1mYW1pbHkgICAgICAgOiAkdC1mYW1pbHktc2VyaWYsXG4gICAgICBmb250LXdlaWdodCAgICAgICA6ICR0LXdlaWdodC1yZWd1bGFyLFxuICAgICAgZm9udC1zdHlsZSAgICAgICAgOiAkdC1zdHlsZS1ub3JtYWwsXG4gICAgICBmb250LXNpemUgICAgICAgICA6IDFyZW0sXG4gICAgICBsaW5lLWhlaWdodCAgICAgICA6IDEuNjVcbiAgICApLFxuICAgIHBhcmFncmFwaC1zYW5zOiAoXG4gICAgICBmb250LWZhbWlseSAgICAgICA6ICR0LWRlZmF1bHQtZm9udC1mYW1pbHksXG4gICAgICBmb250LXdlaWdodCAgICAgICA6ICR0LXdlaWdodC1yZWd1bGFyLFxuICAgICAgZm9udC1zdHlsZSAgICAgICAgOiAkdC1zdHlsZS1ub3JtYWwsXG4gICAgICBmb250LXNpemUgICAgICAgICA6IDFyZW0sXG4gICAgICBsaW5lLWhlaWdodCAgICAgICA6IDEuNjVcbiAgICApLFxuICAgIGNhcHRpb246IChcbiAgICAgIGZvbnQtZmFtaWx5ICAgICAgIDogJHQtZGVmYXVsdC1mb250LWZhbWlseSxcbiAgICAgIGZvbnQtd2VpZ2h0ICAgICAgIDogJHQtd2VpZ2h0LXJlZ3VsYXIsXG4gICAgICBmb250LXN0eWxlICAgICAgICA6ICR0LXN0eWxlLW5vcm1hbCxcbiAgICAgIGZvbnQtc2l6ZSAgICAgICAgIDogMC44cmVtLFxuICAgICAgbGluZS1oZWlnaHQgICAgICAgOiAxLjRcbiAgICApLFxuICAgIHF1b3RlOiAoXG4gICAgICBmb250LWZhbWlseSAgICAgICA6ICR0LWZhbWlseS1zZXJpZixcbiAgICAgIGZvbnQtd2VpZ2h0ICAgICAgIDogJHQtd2VpZ2h0LXJlZ3VsYXIsXG4gICAgICBmb250LXN0eWxlICAgICAgICA6ICR0LXN0eWxlLWl0YWxpYyxcbiAgICAgIGZvbnQtc2l6ZSAgICAgICAgIDogMS44cmVtLFxuICAgICAgbGluZS1oZWlnaHQgICAgICAgOiAxLjQsXG4gICAgKSxcbiAgICBxdW90ZS1zbWFsbDogKFxuICAgICAgZm9udC1mYW1pbHkgICAgICAgOiAkdC1mYW1pbHktc2VyaWYsXG4gICAgICBmb250LXdlaWdodCAgICAgICA6ICR0LXdlaWdodC1yZWd1bGFyLFxuICAgICAgZm9udC1zdHlsZSAgICAgICAgOiAkdC1zdHlsZS1ub3JtYWwsXG4gICAgICBmb250LXNpemUgICAgICAgICA6IDEuNXJlbSxcbiAgICAgIGxpbmUtaGVpZ2h0ICAgICAgIDogMS42LFxuICAgIClcbiAgKSxcbiAgbW9iaWxlOiAoXG4gICAgZGVmYXVsdDogKFxuICAgICksXG4gICAgcHJvamVjdC10aXRsZTogKFxuICAgICAgZm9udC1zaXplOiAycmVtXG4gICAgKSxcbiAgICBwcm9qZWN0LWxlYWQ6ICgpLFxuICAgIHNlY3Rpb24tdGl0bGU6IChcbiAgICAgIGZvbnQtc2l6ZTogLjhyZW0sXG4gICAgKSxcbiAgICB0aXRsZTogKFxuICAgICAgZm9udC1zaXplOiAxLjVyZW1cbiAgICApLFxuICAgIGxlYWQ6IChcbiAgICAgIGZvbnQtc2l6ZTogMXJlbVxuICAgICksXG4gICAgc3VidGl0bGU6ICgpLFxuICAgIHBhcmFncmFwaDogKFxuICAgICAgZm9udC1zaXplOiAwLjlyZW1cbiAgICApLFxuICAgIGNhcHRpb246ICgpLFxuICAgIHF1b3RlOiAoXG4gICAgICBmb250LXNpemU6IDEuNXJlbVxuICAgICksXG4gICAgcXVvdGUtc21hbGw6ICgpXG4gIClcbik7XG5cbmh0bWwge1xuICBmb250LXNpemU6ICR0LWRlZmF1bHQtZm9udC1zaXplO1xuICBmb250LWZhbWlseTogJHQtZGVmYXVsdC1mb250LWZhbWlseTtcbiAgZm9udC13ZWlnaHQ6ICR0LWRlZmF1bHQtZm9udC13ZWlnaHQ7XG4gIGZvbnQtc3R5bGU6ICR0LWRlZmF1bHQtZm9udC1zdHlsZTtcbiAgbGluZS1oZWlnaHQ6ICR0LWRlZmF1bHQtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiBjKG5ldXRyYWwsIGJsYWNrKTtcbiAgLy8gLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG59XG5cbiRicmVha3BvaW50LWRlZmF1bHQ6IGRlc2t0b3A7XG5cbi8vIHJlbmRlcnMgZGVmYXVsdCB0ZXh0IGhlbHBlciBjbGFzc2VzXG5AaW5jbHVkZSB0ZXh0Q2xhc3NlcyAoJHByZWZpeDogXCIudC1cIik7XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogQXZlbmlyO1xuICBmb250LXdlaWdodDogJHQtd2VpZ2h0LXJlZ3VsYXI7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgc3JjOiB1cmwoXCIvL3N0YXRpYy5naW5ldHRhLm5ldC9mb250cy9hdmVuaXItcm9tYW4vYjllYmIxOWQtODhjMS00Y2JkLTliYWYtY2Y1MTk3MjQyMmVjLmVvdFwiKTtcbiAgc3JjOiBsb2NhbCgnQXZlbmlyIFJvbWFuJyksXG4gICAgdXJsKFwiLy9zdGF0aWMuZ2luZXR0YS5uZXQvZm9udHMvYXZlbmlyLXJvbWFuL2I5ZWJiMTlkLTg4YzEtNGNiZC05YmFmLWNmNTE5NzI0MjJlYy53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksXG4gICAgdXJsKFwiLy9zdGF0aWMuZ2luZXR0YS5uZXQvZm9udHMvYXZlbmlyLXJvbWFuLzVlZDRmOThlLTkwNDQtNDgxMC04OGZmLTc0ZDQxMmMxMzUxZi50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksXG4gICAgdXJsKFwiLy9zdGF0aWMuZ2luZXR0YS5uZXQvZm9udHMvYXZlbmlyLXJvbWFuLzRjYjE2ODU5LTE2Y2EtNDM0Mi1iODljLTI5MmRjODMyNjZhZi5zdmdcIikgZm9ybWF0KFwic3ZnXCIpO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IEF2ZW5pcjtcbiAgZm9udC13ZWlnaHQ6ICR0LXdlaWdodC1yZWd1bGFyO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIHNyYzogdXJsKFwic3RhdGljLmdpbmV0dGEubmV0L2ZvbnRzL2F2ZW5pci1ibGFjay1vYmxpcXVlLzhmMjFlNjE4LTkyODItNGRmMS1iNTU2LTczZWU4MmJkZDY3My5lb3RcIik7XG4gIHNyYzogbG9jYWwoXCJBdmVuaXIgT2JsaXF1ZVwiKSxcbiAgICAgIHVybChcInN0YXRpYy5naW5ldHRhLm5ldC9mb250cy9hdmVuaXItYmxhY2stb2JsaXF1ZS8zNjk1MzQyYy1iNWUyLTQwMTAtYjBkNC01NmY1NjM0NjU5MjIud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLFxuICAgICAgdXJsKFwic3RhdGljLmdpbmV0dGEubmV0L2ZvbnRzL2F2ZW5pci1ibGFjay1vYmxpcXVlLzJiYTlmODc1LTY2ZDktNDE0ZC1hNDI2LTVhMDEyYjQ0MzQ3NS50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksXG4gICAgICB1cmwoXCJzdGF0aWMuZ2luZXR0YS5uZXQvZm9udHMvYXZlbmlyLWJsYWNrLW9ibGlxdWUvMGE4ODM1MWEtZTYyOC00YjFmLTk5ZWItM2E3Mjk1MThhZjBhLnN2Z1wiKSBmb3JtYXQoXCJzdmdcIik7XG59XG5cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBBdmVuaXI7XG4gIGZvbnQtd2VpZ2h0OiAkdC13ZWlnaHQtYm9sZDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBzcmM6IHVybChcIi8vc3RhdGljLmdpbmV0dGEubmV0L2ZvbnRzL2F2ZW5pci1oZWF2eS9mNjFiZjBmNi1jMTkzLTQxMDAtYjk0MC0xMmExYTAxZGNlZTUuZW90XCIpO1xuICBzcmM6IGxvY2FsKCdBdmVuaXIgSGVhdnknKSxcbiAgICB1cmwoXCIvL3N0YXRpYy5naW5ldHRhLm5ldC9mb250cy9hdmVuaXItaGVhdnkvNzE0N2VjM2EtOGZmOC00ZWM5LThjNWMtYmQxNTcxZGM2YWU2LndvZmZcIikgZm9ybWF0KFwid29mZlwiKSxcbiAgICB1cmwoXCIvL3N0YXRpYy5naW5ldHRhLm5ldC9mb250cy9hdmVuaXItaGVhdnkvZDFkYzU0YjItODc4ZC00NjkzLThkNmUtYjQ0MmU5OWZlZjY4LnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSxcbiAgICB1cmwoXCIvL3N0YXRpYy5naW5ldHRhLm5ldC9mb250cy9hdmVuaXItaGVhdnkvNzMxZGQ0ZDMtNjRkYS00MjdkLWJhNjEtMDE1NzViM2NmM2Y3LnN2Z1wiKSBmb3JtYXQoXCJzdmdcIik7XG59XG5cbi8vIFdlIGRvbid0IGhhdmUgdGhpc1xuLy8gQGZvbnQtZmFjZSB7XG4vLyAgIGZvbnQtZmFtaWx5OiBBdmVuaXI7XG4vLyAgIGZvbnQtd2VpZ2h0OiAkdC13ZWlnaHQtYm9sZDtcbi8vICAgZm9udC1zdHlsZTogaXRhbGljO1xuLy8gICBzcmM6IHVybChcIi8vc3RhdGljLmdpbmV0dGEubmV0L2ZvbnRzL2F2ZW5pci1ibGFjay1vYmxpcXVlL2ZiZjNlNjliLTczYjItNDA2ZC04NGJjLWZlZGEzMGEwYTU2My5lb3Q/I2llZml4XCIpO1xuLy8gICBzcmM6IGxvY2FsKCdBdmVuaXIgQmxhY2sgT2JsaXF1ZScpLFxuLy8gICAgICAgdXJsKFwiLy9zdGF0aWMuZ2luZXR0YS5uZXQvZm9udHMvYXZlbmlyLWJsYWNrLW9ibGlxdWUvMzZlYzE1YjktZjhkYS00NDdmLThmZWQtYTljZmRmYjkxZmJiLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSxcbi8vICAgICAgIHVybChcIi8vc3RhdGljLmdpbmV0dGEubmV0L2ZvbnRzL2F2ZW5pci1ibGFjay1vYmxpcXVlLzIzMGQ2YjE0LTZkNDQtNGRkNS1hNmFlLWE0Mjg3OTM2ZTUxZS50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksXG4vLyAgICAgICB1cmwoXCIvL3N0YXRpYy5naW5ldHRhLm5ldC9mb250cy9hdmVuaXItYmxhY2stb2JsaXF1ZS85YmNlNDkyMC05NGUyLTRlNGQtYmQzNC04MTg4MDFkZDNlYjMuc3ZnIzliY2U0OTIwLTk0ZTItNGU0ZC1iZDM0LTgxODgwMWRkM2ViM1wiKSBmb3JtYXQoXCJzdmdcIik7XG4vLyB9XG5cbi8vICBUT0RPOiBjaGFuZ2UgdG8gamF2YXNjcmlwdCBpbXBvcnRcbkBpbXBvcnQgdXJsKGh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1QVCtTZXJpZjo0MDAsNDAwaXRhbGljLDcwMCw3MDBpdGFsaWMpO1xuXG5cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNixcbnAsXG5wcmUge1xuICBtYXJnaW46IDA7XG59XG5cblxuc3Ryb25nLFxuLnQtYm9sZCB7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG59XG5cbi50LWNlbnRlcmVkIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4udC1zbW9vdGgge1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbn1cblxuLnQtc2FucyB7XG4gIGZvbnQtZmFtaWx5OiAkdC1mYW1pbHktc2Fucy1zZXJpZjtcbn1cbiIsImJvZHksIGh0bWwge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cblxuaHIge1xuICBtYXJnaW46IDA7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xNSk7XG59XG5cbmhyLmhyLS1saWdodCB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG4iLCIvLyAgdXNhZ2U6XG4vLyAgQGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUpIHtcbi8vICAgIG1hcmdpbjogMjBweDtcbi8vICB9XG5cbiRicmVha3BvaW50czogKFxuICBcIm1vYmlsZS1wb3J0cmFpdFwiICAgICA6IFwib25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NDI1cHgpXCIsXG4gIFwibW9iaWxlXCIgICAgICAgICAgICAgIDogXCJvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDo3NDBweClcIixcbiAgXCJub3QtbW9iaWxlXCIgICAgICAgICAgOiBcIm9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOjc0MXB4KVwiLFxuICBcIm9ubHktbW9iaWxlXCIgICAgICAgICA6IFwib25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NzQwcHgpXCIsXG4gIFwidGFibGV0LXBvcnRyYWl0XCIgICAgIDogXCJvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDo4NTBweClcIixcbiAgXCJ0YWJsZXRcIiAgICAgICAgICAgICAgOiBcIm9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjEwNTBweClcIixcbiAgXCJvbmx5LXRhYmxldFwiICAgICAgICAgOiBcIm9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOjc0MXB4KSBhbmQgKG1heC13aWR0aDoxMDUxcHgpXCIsXG4gIFwibm90LXRhYmxldFwiICAgICAgICAgIDogXCJvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDoxMDUxcHgpXCIsXG4gIFwiZGVza3RvcFwiICAgICAgICAgICAgIDogXCJvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDoxMDUxcHgpXCIsXG4gIFwib25seS1kZXNrdG9wXCIgICAgICAgIDogXCJvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDoxMDUxcHgpXCIsXG4gIFwicmV0aW5hXCIgICAgICAgICAgICAgIDogXCJvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbyA6IDEuNSksIG9ubHkgc2NyZWVuIGFuZCAobWluLWRldmljZS1waXhlbC1yYXRpbyA6IDEuNSlcIixcbiAgXCJoaWdocmVzXCIgICAgICAgICAgICAgOiBcInByaW50LCAoLW8tbWluLWRldmljZS1waXhlbC1yYXRpbzogNS80KSwgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMS4yNSksIChtaW4tcmVzb2x1dGlvbjogMTIwZHBpKVwiLFxuICBcInByaW50XCIgICAgICAgICAgICAgICA6IFwicHJpbnRcIlxuKSAhZGVmYXVsdDtcblxuLy8gYWRhcHRlZCBzbmlwcGVkIGZvcm0gSHVnbyBHaXJhdWRlbDogaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2Nyb3NzLW1lZGlhLXF1ZXJ5LWV4dGVuZC1zYXNzL1xuQG1peGluIGJyZWFrcG9pbnQoJGJyZWFrcG9pbnQpIHtcbiAgLy8gR2V0IHRoZSB3aWR0aCBmcm9tIHRoZSBrZXl3b3JkIGAkYnJlYWtwb2ludGBcbiAgLy8gT3IgYG51bGxgIGlmIHRoZSBrZXl3b3JkIGRvZXNuJ3QgZXhpc3QgaW4gYCRicmVha3BvaW50c2AgbWFwXG4gICR2YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRicmVha3BvaW50KTtcblxuICAvLyBJZiBgJGJyZWFrcG9pbnRgIGV4aXN0cyBhcyBhIGtleSBpbiBgJGJyZWFrcG9pbnRzYFxuICBAaWYgJHZhbHVlICE9IG51bGwge1xuICAgIC8vIE9wZW4gYSBtZWRpYSBxdWVyeSBibG9ja1xuICAgIEBtZWRpYSAjeyR2YWx1ZX0ge1xuICAgICAgLy8gTGV0IHRoZSB1c2VyIGR1bXAgY29udGVudFxuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG4gIC8vIElmIGAkYnJlYWtwb2ludGAgZG9lc24ndCBleGlzdCBpbiBgJGJyZWFrcG9pbnRzYCxcbiAgLy8gV2FybiB0aGUgdXNlciBhbmQgZG8gbm90aGluZ1xuICBAZWxzZSB7XG4gICAgQHdhcm4gXCJJbnZhbGlkIGJyZWFrcG9pbnQgYCN7JGJyZWFrcG9pbnR9YC5cIjtcbiAgfVxufVxuXG4vLyBjcmVhdGVzIGEganNvbiBvdXQgb2YgYCRicmVha3BvaW50c2BcbiRtZWRpYUpTT046ICd7JztcbkBlYWNoICRicmVha3BvaW50IGluICRicmVha3BvaW50cyB7XG4gICAgJG5hbWU6IG50aCgkYnJlYWtwb2ludCwgMSk7XG4gICAgJHZhbHVlOiBudGgoJGJyZWFrcG9pbnQsIDIpO1xuICAgICRtZWRpYUpTT046ICRtZWRpYUpTT04gKyAnXCIjeyRuYW1lfVwiOlwiI3skdmFsdWV9XCIsJyAhZ2xvYmFsO1xufVxuJG1lZGlhSlNPTjogc3RyLXNsaWNlKCAkbWVkaWFKU09OLCAxLCBzdHItbGVuZ3RoKCRtZWRpYUpTT04pIC0gMSk7XG4kbWVkaWFKU09OOiAkbWVkaWFKU09OICsgJ30nO1xuXG4vLyBhbiBlbGVtZW50IHdpdGggdGhpcyBjbGFzcyB3aWxsIGJlIGNyZWF0ZWQgd2l0aCBKUyBpbiBvcmRlciB0byBwYXJzZSB0aGUgSlNPTiBjb250ZW50XG4uanMtYnJlYWtwb2ludDphZnRlcixcbi5qcy1icmVha3BvaW50IHtcbiAgY29udGVudDogJG1lZGlhSlNPTjtcbiAgZm9udC1mYW1pbHk6ICRtZWRpYUpTT047XG59XG4iLCIvKipcbiAqIHJlbW92ZSByZW1vdmVzIGVsZW1lbnQgZnJvbSBsaXN0IHJldHVybnMgdGhlIG90aGVyc1xuICovXG5AZnVuY3Rpb24gcmVtb3ZlKCRrZXksICRsaXN0KSB7XG5cbiAgJG5ld0xpc3Q6ICgpO1xuICBAZWFjaCAkaXRlbSBpbiAkbGlzdCB7XG4gICAgQGlmICRpdGVtICE9ICRrZXkge1xuICAgICAgJG5ld0xpc3Q6IGFwcGVuZCgkbmV3TGlzdCwgJGl0ZW0sIFwiY29tbWFcIik7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkbmV3TGlzdDtcblxufVxuLyoqXG4gKiBtaXhpbiByZXNwb25zaXZlLXZpc2liaWxpdHlcbiAqICR2aXNpYmlsaXR5LWJyZWFrcG9pbnRzIHtbbGlzdF19IGxpc3Qgb2YgYnJlYWtwb2ludHMgeW91IHdhbnQgdG8gaW50ZXJhY3Qgd2l0aFxuICogJG92ZXJ3cml0ZSB7W2Jvb2xlYW5dfSBpZiBzZXQgdHJ1ZSB3aWxsIGdlbmVyYXRlIGNsYXNzZXMgdGhhdCBvdmVyd3JpdGUgd2hhdCBldmVyIHZpc2liaWxpdHkgaXMgYWN0aXZlIG9uIHRoYXQgZWxlbWVudFxuICpcbiAqIGV4YWN0OlxuICogQGluY2x1ZGUgcmVzcG9uc2l2ZS12aXNpYmlsaXR5KFwib25seS1tb2JpbGVcIiBcIm9ubHktdGFibGV0XCIgXCJvbmx5LWRlc2t0b3BcIiwgdHJ1ZSk7XG4gKlxuICogdXA6XG4gKiBAaW5jbHVkZSByZXNwb25zaXZlLXZpc2liaWxpdHkoXCJtb2JpbGVcIiBcInRhYmxldFwiIFwiZGVza3RvcFwiLCBmYWxzZSk7XG4gKi9cbkBtaXhpbiByZXNwb25zaXZlLXZpc2liaWxpdHkgKFxuICAkdmlzaWJpbGl0eS1icmVha3BvaW50cyxcbiAgJG92ZXJ3cml0ZTogZmFsc2UsXG4gICRkaXNwbGF5VHlwZXM6IFwiaW5saW5lXCIgXCJpbmxpbmUtYmxvY2tcIlxuKXtcbiAgQGVhY2ggJGJyZWFrcG9pbnQtYWN0aXZlIGluICR2aXNpYmlsaXR5LWJyZWFrcG9pbnRzIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicmVha3BvaW50LWFjdGl2ZSkge1xuICAgICAgJHZpc2libGVzOiBcIlwiO1xuICAgICAgJGludmlzaWJsZXM6IFwiXCI7XG5cbiAgICAgICR2aXNpYmxlczogdW5xdW90ZSgkdmlzaWJsZXMgKyBcIi5pcy12aXNpYmxlLSN7JGJyZWFrcG9pbnQtYWN0aXZlfSxcIik7XG4gICAgICAkaW52aXNpYmxlczogdW5xdW90ZSgkaW52aXNpYmxlcyArIFwiLmlzLWhpZGRlbi0jeyRicmVha3BvaW50LWFjdGl2ZX0sXCIpO1xuXG4gICAgICBAaWYgJG92ZXJ3cml0ZSA9PSB0cnVlIHtcbiAgICAgICAgJG90aGVyczogcmVtb3ZlKCRicmVha3BvaW50LWFjdGl2ZSwgJHZpc2liaWxpdHktYnJlYWtwb2ludHMpO1xuICAgICAgICAkb3RoZXJzUnVsZTogXCJcIjtcbiAgICAgICAgQGVhY2ggJG90aGVyIGluICRvdGhlcnMge1xuICAgICAgICAgICRpbnZpc2libGVzOiB1bnF1b3RlKCRpbnZpc2libGVzICsgXCIuaXMtdmlzaWJsZS0jeyRvdGhlcn0sXCIpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICN7JHZpc2libGVzfSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgIEBlYWNoICRkaXNwbGF5IGluICRkaXNwbGF5VHlwZXMge1xuICAgICAgICAgICYtLSN7JGRpc3BsYXl9IHtcbiAgICAgICAgICAgIGRpc3BsYXk6ICN7JGRpc3BsYXl9O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgI3skaW52aXNpYmxlc30ge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgQGVhY2ggJGRpc3BsYXkgaW4gJGRpc3BsYXlUeXBlcyB7XG4gICAgICAgICAgJi0tI3skZGlzcGxheX0ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQGltcG9ydFxuICAgIFwic2Vuc2libGUvbWVkaWFxdWVyaWVzXCJcbiAgLCBcInNlbnNpYmxlL2dyaWRcIlxuICAsIFwic2Vuc2libGUvcmVzcG9uc2l2ZS12aXNpYmlsaXR5XCJcbiAgO1xuXG4vKipcbiAqIERlZmluZSB0aGUgYnJlYWtwb2ludHMgZm9yIHZlbmRvci9zZW5zaWJsZS9tZWRpYXF1ZXJpZXNcbiAqIFRoZXkgYXJlIGRlZmluZWQgdGhlIG1vYmlsZSBmaXJzdCB3YXlcbiAqL1xuXG4kYnJlYWtwb2ludHM6IChcbiAgICBcIm1vYmlsZVwiICAgICAgICAgICAgICA6IFwib25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NzQwcHgpXCIsXG4gICAgXCJ0YWJsZXRcIiAgICAgICAgICAgICAgOiBcIm9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjEwNTBweClcIixcbiAgICBcImRlc2t0b3BcIiAgICAgICAgICAgICA6IFwib25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MTA1MXB4KVwiLFxuICAgIFwicHJpbnRcIiAgICAgICAgICAgICAgIDogXCJwcmludFwiXG4pO1xuXG5cbiRncmlkLWd1dHRlcjogMnJlbTtcblxuQGluY2x1ZGUgc2Vuc2libGVHcmlkIChcbiAgJG1vZGVybjogICAgICAgICAgICAgICB0cnVlLFxuICAkZ3V0dGVyOiAgICAgICAgICAgICAgICRncmlkLWd1dHRlcixcbiAgJGd1dHRlci10eXBlOiAgICAgICAgICBwYWRkaW5nLFxuICAkZ3V0dGVyLWRpcmVjdGlvbjogICAgIGxlZnQsXG4gICRndXR0ZXItbW9kaWZpZXJzOiAgICAgKFxuICAgIFwibmFycm93XCIgOiAxcmVtLFxuICAgIFwiY29sbGFwc2VkXCI6IDBcbiAgKSxcbiAgJGJhc2UtZm9udC1zaXplOiAgICAgICAxcmVtLFxuICAkc2x1ZzogICAgICAgICAgICAgICAgIFwibC1cIixcbiAgJHB1c2gtY2xhc3NlczogICAgICAgICBmYWxzZSxcbiAgJGdyaWQtd2lkdGhzOiAgICAgICAgICAoXG4gICAgXCJvbmUtd2hvbGVcIiAgICAgICA6IDEwMCUsXG4gICAgXCJvbmUtaGFsZlwiICAgICAgICA6IDUwJSxcbiAgICBcIm9uZS1xdWFydGVyXCIgICAgIDogMjUlLFxuICAgIFwidGhyZWUtcXVhcnRlcnNcIiAgOiA3NSUsXG4gICAgXCJvbmUtdGhpcmRcIiAgICAgICA6IDMzLjMzMyUsXG4gICAgXCJ0d28tdGhpcmRzXCIgICAgICA6IDY2LjY2NiUsXG4gICAgXCJvbmUtZmlmdGhcIiAgICAgICA6IDIwJSxcbiAgICBcInR3by1maWZ0aHNcIiAgICAgIDogNDAlLFxuICAgIFwidGhyZWUtZmlmdGhzXCIgICAgOiA2MCUsXG4gICAgXCJmb3VyLWZpZnRoc1wiICAgICA6IDgwJSxcbiAgICBcIm9uZS1zaXh0aFwiICAgICAgIDogMTYuNjY2JSxcbiAgICBcImZpdmUtc2l4dGhzXCIgICAgIDogODMuMzMzJVxuICApLFxuICAkZ3JpZC1icmVha3BvaW50czogIFwidGFibGV0XCIgXCJtb2JpbGVcIlxuKTtcblxuLmwtZ3JpZC0tdi1jZW50ZXJlZCB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5sLWdyaWQtLXZyID4gLmwtZ3JpZC1jZWxsIHtcbiAgbWFyZ2luLXRvcDogJGdyaWQtZ3V0dGVyIC8gMjtcbiAgbWFyZ2luLWJvdHRvbTogJGdyaWQtZ3V0dGVyIC8gMjtcbn1cbi5sLWdyaWQtLXZyLmwtZ3JpZC0tbmFycm93ID4gLmwtZ3JpZC1jZWxsIHtcbiAgbWFyZ2luLXRvcDogMC41cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG59XG5cbkBpbmNsdWRlIHJlc3BvbnNpdmUtdmlzaWJpbGl0eShcImRlc2t0b3BcIiBcInRhYmxldFwiIFwibW9iaWxlXCIsIHRydWUpO1xuIiwiLy8gQ29sdW1uLWxheW91dHNcblxuLy8gMDApIGZhbHNlIHdpbGwgc2V0IHRoZSBncmlkIGVsZW1lbnRzIHRvIGlubGluZS1ibG9jayBpZiB0cnVlIGZsZXhib3ggKGNvbnNpZGVyIHVzaW5nIGF1dG9wcmVmaXhlciBmb3IgYmV0dGVyIGJvd3NlciBzdXBwb3J0KVxuLy8gMDEpIHNpemUgb2YgdGhlIGd1dHRlciBiZXR3ZWVuIHRoZSBjb2xzXG4vLyAwMikgdGhlIGd1dHRlciBiZXR3ZWVuIHRoZSBjb2x1bW5zIGNhbiBiZSBwYWRkaW5nIG9yIG1hcmdpblxuLy8gMDMpIHRoZSBndXR0ZXIgY2FuIGJlIG9uIHRoZSByaWdodCBvciB0aGUgbGVmdCBzaWRlIG9mIGV2ZXJ5IGNvbFxuLy8gMDQpIFByb3ZpZGVzIGFkZGl0aW9uYWwgY2xhc3NlcyBmb3IgdGhlIGdyaWQgaW4gb3JkZXIgaGF2ZSBkaWZmZXJlbnQgYXZhaWxhYmxlIGd1dHRlciBzaXplc1xuLy8gMDUpIEJhc2UgZm9udCBzaXplIHVzZWQgZm9yIHRoZSBpbi1saW5lLWJsb2NrIGdhcCBmaXg6IGh0dHA6Ly9jc3MtdHJpY2tzLmNvbS9maWdodGluZy10aGUtc3BhY2UtYmV0d2Vlbi1pbmxpbmUtYmxvY2stZWxlbWVudHMvXG4vLyAwNikgU2x1ZyB1c2VkIGZvciB0aGUgZ3JpZCBjbGFzc2VzIChsLSBmb3IgU01BQ1NTIGxheW91dCksIGVtcHR5IHN0cmluZyBmb3Igbm8gc2x1Z1xuLy8gMDcpIElmIHNldCB0byB0cnVlLCBvbmUgcHVzaCBjbGFzcyBwZXIgd2l0aCB3aWxsIGJlIGF2YWlsYWJsZSAobWFyZ2luLWxlZnQpXG4vLyAwOCkgR2VuZXJhdGVkIGNvbCBuYW1lcyA8LT4gd2l0aHMgKHVuY29tbWVudCBmb3IgY2xhc3NlcyBsaWtlIGwtMS8yLCBsLTEvMiBldGMuLilcbi8vIDA5KSBCcmVha3BvaW50cyB1c2VkIGluIHRoZSBncmlkIChpZGVhbGx5IHJlZHVjZWQgdG8gYSBtaW5pbXVtKVxuLy8gMTApIFRvIGF2b2lkIGJyZWFraW5nIHRoZSBncmlkIG9uIEJsYWNrYmVycnkgYW5kIHNvbWUgRmlyZWZveCB2ZXJzaW9uIHlvdSBjYW4gc2V0IGEgcm91bmRpbmcuIDUwJSB3aWxsIGJlIDUwJSAtICRyb3VuZGluZyBldGMuLiBTZXQgdGhpcyB0byAwIGlmIHlvdSBkb24ndCBuZWVkIGl0LlxuXG4vLyBDb25maWd1cmF0aW9uOlxuQG1peGluIHNlbnNpYmxlR3JpZCAoXG4gICRtb2Rlcm46ICAgICAgICAgICAgICAgdHJ1ZSwgICAgICAgICAgICAvLyBbMDBdXG4gICRndXR0ZXI6ICAgICAgICAgICAgICAgMXJlbSwgICAgICAgICAgICAvLyBbMDFdXG4gICRndXR0ZXItdHlwZTogICAgICAgICAgbWFyZ2luLCAgICAgICAgICAvLyBbMDJdXG4gICRndXR0ZXItZGlyZWN0aW9uOiAgICAgbGVmdCwgICAgICAgICAgICAvLyBbMDNdXG4gICRndXR0ZXItbW9kaWZpZXJzOiAgICAgKCAgICAgICAgICAgICAgICAvLyBbMDRdXG4gICAgXCJuby1nYXBcIjogMCxcbiAgICBcImxhcmdlXCIgOiAycmVtXG4gICAgKSxcbiAgJGJhc2UtZm9udC1zaXplOiAgICAgICAxNnB4LCAgICAgICAgICAgICAvLyBbMDVdXG4gICRzbHVnOiAgICAgICAgICAgICAgICAgXCJsLVwiLCAgICAgICAgICAgICAvLyBbMDZdXG4gICRwdXNoLWNsYXNzZXM6ICAgICAgICAgZmFsc2UsICAgICAgICAgICAgLy8gWzA3XVxuICAkZ3JpZC13aWR0aHM6ICAgICAgICAgICggICAgICAgICAgICAgICAgIC8vIFswOF1cbiAgICBcIm9uZS13aG9sZVwiICAgICAgIDogMTAwJSwgICAgICAgICAgICAgIC8vIDFcXC8xICAgICA6IDEwMCUsXG4gICAgXCJvbmUtaGFsZlwiICAgICAgICA6IDUwJSwgICAgICAgICAgICAgICAvLyAxXFwvMiAgICAgOiA1MCUsXG4gICAgXCJvbmUtcXVhcnRlclwiICAgICA6IDI1JSwgICAgICAgICAgICAgICAvLyAxXFwvNCAgICAgOiAyNSUsXG4gICAgXCJ0aHJlZS1xdWFydGVyc1wiICA6IDc1JSwgICAgICAgICAgICAgICAvLyAzXFwvNCAgICAgOiA3NSUsXG4gICAgXCJvbmUtdGhpcmRcIiAgICAgICA6IDMzLjMzMyUsICAgICAgICAgICAvLyAxXFwvMyAgICAgOiAzMy4zMzMlLFxuICAgIFwidHdvLXRoaXJkc1wiICAgICAgOiA2Ni42NjYlLCAgICAgICAgICAgLy8gMlxcLzMgICAgIDogNjYuNjY2JSxcbiAgICBcIm9uZS1maWZ0aFwiICAgICAgIDogMjAlLCAgICAgICAgICAgICAgIC8vIDFcXC81ICAgICA6IDIwJSxcbiAgICBcImZvdXItZmlmdGhzXCIgICAgIDogODAlLCAgICAgICAgICAgICAgIC8vIDRcXC81ICAgICA6IDgwJSxcbiAgICBcIm9uZS1zaXh0aFwiICAgICAgIDogMTYuNjY2JSwgICAgICAgICAgIC8vIDFcXC82ICAgICA6IDE2LjY2NiUsXG4gICAgXCJmaXZlLXNpeHRoc1wiICAgICA6IDgzLjMzMyUgICAgICAgICAgICAvLyA1XFwvNiAgICAgOiA4My4zMzMlXG4gICAgKSxcbiAgJGdyaWQtYnJlYWtwb2ludHM6ICAgICBcIm5vdC10YWJsZXRcIiBcInRhYmxldFwiIFwidGFibGV0LXBvcnRyYWl0XCIgXCJub3QtbW9iaWxlXCIgXCJtb2JpbGVcIiBcIm1vYmlsZS1wb3J0cmFpdFwiIFwicHJpbnRcIiwgICAgICAgICAgICAgICAgICAgICAgICAgLy8gWzA5XVxuICAkcm91bmRpbmc6ICAgICAgICAgICAgIDAuMDA5NSUgICAgICAgICAgIC8vIFsxMF1cbil7XG4gIC8vIENvbmZpZ3VyYXRpb24gZW5kXG4gICRndXR0ZXItY29ycmVjdGlvbjogIGNhbGMoIC0jeyRndXR0ZXJ9ICsgI3stMXB4fSApO1xuXG4gIC8vIHJvdW5kaW5nIGlzIG5vdCBhbiBpc3N1ZSB3aXRoIGZsZXhib3hcbiAgQGlmICRtb2Rlcm4ge1xuICAgICRyb3VuZGluZzogMDtcbiAgICAkZ3V0dGVyLWNvcnJlY3Rpb246IC0jeyRndXR0ZXJ9O1xuICB9XG5cbiAgLy8gY2xhc3MgdGhhdCB3cmFwcyBhIGdyaWQgY29sc1xuICAlI3skc2x1Z31ncmlkLFxuICAuI3skc2x1Z31ncmlkIHtcbiAgICBAaWYgJG1vZGVybiB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICB9IEBlbHNlIHtcbiAgICAgIC8vIGZpeGVzIHRoZSB3ZWJraXQgaW5saW5lLWJsb2NrIGlzc3VlXG4gICAgICBmb250LXNpemU6IDAuMXB4O1xuICAgIH1cblxuICAgIEBpZiAkZ3V0dGVyID4gMCB7XG4gICAgICBtYXJnaW4tI3skZ3V0dGVyLWRpcmVjdGlvbn06ICRndXR0ZXItY29ycmVjdGlvbjtcbiAgICB9XG5cbiAgICAlI3skc2x1Z31ncmlkLWNlbGwsXG4gICAgLiN7JHNsdWd9Z3JpZC1jZWxsIHtcbiAgICAgIC8vY2VsbHMgb25seSBoYXZlIGEgZ3V0dGVyIGluc2lkZSB0aGUgZ3JpZFxuICAgICAgI3skZ3V0dGVyLXR5cGV9LSN7JGd1dHRlci1kaXJlY3Rpb259OiAkZ3V0dGVyO1xuXG4gICAgICBAaWYgbm90ICRtb2Rlcm4ge1xuICAgICAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGlmICRndXR0ZXItbW9kaWZpZXJzICE9IGZhbHNlIHtcbiAgICAgICAgQGVhY2ggJGd1dHRlci1tb2RpZmllciwgJG5ldy1ndXR0ZXIgaW4gJGd1dHRlci1tb2RpZmllcnMge1xuICAgICAgICAgJi0tI3skZ3V0dGVyLW1vZGlmaWVyfSB7XG4gICAgICAgICAgbWFyZ2luLSN7JGd1dHRlci1kaXJlY3Rpb259OiAtJG5ldy1ndXR0ZXI7XG4gICAgICAgICAgQGlmICRuZXctZ3V0dGVyID4gMCBhbmQgbm90ICRtb2Rlcm4ge1xuICAgICAgICAgICAgbWFyZ2luLSN7JGd1dHRlci1kaXJlY3Rpb259OiBjYWxjKCAtI3skbmV3LWd1dHRlcn0gKyAjey0xcHh9ICk7XG4gICAgICAgICAgfVxuICAgICAgICAgICUjeyRzbHVnfWdyaWQtY2VsbCxcbiAgICAgICAgICAuI3skc2x1Z31ncmlkLWNlbGwge1xuICAgICAgICAgICAgI3skZ3V0dGVyLXR5cGV9LSN7JGd1dHRlci1kaXJlY3Rpb259OiAkbmV3LWd1dHRlcjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1nYXBwZWQge1xuICAgICAgJiA+ICUjeyRzbHVnfWdyaWQtY2VsbCxcbiAgICAgICYgPiAuI3skc2x1Z31ncmlkLWNlbGwge1xuICAgICAgICAjeyRndXR0ZXItdHlwZX0tYm90dG9tOiAkZ3V0dGVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICUjeyRzbHVnfWdyaWQtY2VsbCxcbiAgLiN7JHNsdWd9Z3JpZC1jZWxsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgLy8gaW5jbHVkZXMgdGhlIGRlZmF1bHQgY2xhc3Nlc1xuICBAaW5jbHVkZSBzZW5zaWJsZUdyaWRDbGFzc2VzKCRkZXZpY2U6IGZhbHNlLCAkZ3JpZC13aWR0aHM6ICRncmlkLXdpZHRocywgJHJvdW5kaW5nOiAkcm91bmRpbmcsICRzbHVnOiAkc2x1ZywgJHB1c2gtY2xhc3NlczogJHB1c2gtY2xhc3NlcywgJGd1dHRlci10eXBlOiAkZ3V0dGVyLXR5cGUsICRndXR0ZXI6ICRndXR0ZXIsICRndXR0ZXItbW9kaWZpZXJzOiAkZ3V0dGVyLW1vZGlmaWVycyk7XG5cbiAgLy8gaW5jbHVkZXMgdGhlIGNsYXNzZXMgZm9yIHRoZSBiZXJlYWtwb2ludHMgbGlzdGVkIGluICRncmlkYnJlYWtwb2ludHNcbiAgQGVhY2ggJGJyZWFrcG9pbnQgaW4gJGdyaWQtYnJlYWtwb2ludHMge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoICRicmVha3BvaW50ICkge1xuICAgICAgQGluY2x1ZGUgc2Vuc2libGVHcmlkQ2xhc3NlcyggJGRldmljZTogJGJyZWFrcG9pbnQsICRncmlkLXdpZHRoczogJGdyaWQtd2lkdGhzLCAkcm91bmRpbmc6ICRyb3VuZGluZywgJHNsdWc6ICRzbHVnLCAkcHVzaC1jbGFzc2VzOiAkcHVzaC1jbGFzc2VzLCAkZ3V0dGVyLXR5cGU6ICRndXR0ZXItdHlwZSwgJGd1dHRlcjogJGd1dHRlciwgJGd1dHRlci1tb2RpZmllcnM6ICRndXR0ZXItbW9kaWZpZXJzKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gZ2VuZXJhdGUgY2xhc3NlcyBmb3IgZ3JpZCBjZWxsc1xuQG1peGluIHNlbnNpYmxlR3JpZENsYXNzZXMoJGRldmljZSwgJGdyaWQtd2lkdGhzLCAkcm91bmRpbmcsICRzbHVnLCAkcHVzaC1jbGFzc2VzLCAkZ3V0dGVyLXR5cGUsICRndXR0ZXIsICRndXR0ZXItbW9kaWZpZXJzKSB7XG4gICRkZXZpY2VTdHJpbmc6IG51bGw7XG5cbiAgQGlmICRkZXZpY2Uge1xuICAgICRkZXZpY2VTdHJpbmc6IFwiLS0jeyRkZXZpY2V9XCI7XG4gIH1cblxuICAvLyBsb29wcyB0aGUgJGdyaWRXaXRocyBtYXBcbiAgQGVhY2ggJGdyaWRXaWR0aCwgJHdpZHRoIGluICRncmlkLXdpZHRocyB7XG4gICAgJG5ld1dpZHRoOiAkd2lkdGggLyAxMCUgKiAoMTAlIC0gJHJvdW5kaW5nKTtcblxuICAgIC8vIGlmIG1hcmdpbiBpcyB1c2VkIHdlIG5lZWQgdG8gc3VidHJhY3QgdGhlIGd1dHRlclxuICAgIEBpZiAkZ3V0dGVyID4gMCBhbmQgJGd1dHRlci10eXBlID09IG1hcmdpbiB7XG4gICAgICAkbmV3V2lkdGg6IGNhbGMoI3skd2lkdGh9IC0gI3skZ3V0dGVyfSk7XG4gICAgfVxuXG4gICAgJSN7JHNsdWd9I3skZ3JpZFdpZHRofSN7JGRldmljZVN0cmluZ30sXG4gICAgLiN7JHNsdWd9I3skZ3JpZFdpZHRofSN7JGRldmljZVN0cmluZ30ge1xuICAgICAgd2lkdGg6ICRuZXdXaWR0aDtcbiAgICB9XG5cbiAgICBAaWYgJGd1dHRlci10eXBlID09IG1hcmdpbiB7XG4gICAgICBAZWFjaCAkZ3V0dGVyLW1vZGlmaWVyLCAkbmV3LWd1dHRlciBpbiAkZ3V0dGVyLW1vZGlmaWVycyB7XG4gICAgICAgIEBpZiAkbmV3LWd1dHRlciA+IDAge1xuICAgICAgICAgICRuZXdXaWR0aDogJHdpZHRoIC8gMTAlICogKDEwJSAtICRyb3VuZGluZyk7XG4gICAgICAgICAgJG5ld1dpZHRoOiBjYWxjKCN7JG5ld1dpZHRofSAtICN7JG5ldy1ndXR0ZXJ9KTtcbiAgICAgICAgICAlI3skc2x1Z31ncmlkLS0jeyRndXR0ZXItbW9kaWZpZXJ9ICUjeyRzbHVnfSN7JGdyaWRXaWR0aH0jeyRkZXZpY2VTdHJpbmd9LFxuICAgICAgICAgIC4jeyRzbHVnfWdyaWQtLSN7JGd1dHRlci1tb2RpZmllcn0gLiN7JHNsdWd9I3skZ3JpZFdpZHRofSN7JGRldmljZVN0cmluZ30ge1xuICAgICAgICAgICAgd2lkdGg6ICRuZXdXaWR0aDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJHB1c2gtY2xhc3NlcyB7XG4gICAgICAlI3skc2x1Z31wdXNoLSN7JGdyaWRXaWR0aH0jeyRkZXZpY2VTdHJpbmd9LFxuICAgICAgLiN7JHNsdWd9cHVzaC0jeyRncmlkV2lkdGh9I3skZGV2aWNlU3RyaW5nfSxcbiAgICAgIC4jeyRzbHVnfWdyaWQgLiN7JHNsdWd9cHVzaC0jeyRncmlkV2lkdGh9I3skZGV2aWNlU3RyaW5nfSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAkbmV3V2lkdGg7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvL1ByZml4ZXMgYSBydWxlbmFtZSB3aXRoIHlvdXIgcHJlZmVyZWQgcHJlZml4LlxuLy9DYW4gYWxzbyBiZSB1c2VkIHRvIGNyZWF0ZSBwbGFjZWhvbGRlciBhbmQgbm9ybWFsIGNsYXNzZXNcbi8vcHJlZml4LXJ1bGVzKCAkcnVsZU5hbWUsJHByZWZpeGVzIClcbi8vQHR5cGUge1tzdHJpbmcvbGlzdF19ICRydWxlTmFtZSBjbGFzcyBvci9hbmQgcGxhY2Vob2xkZXIgbmFtZVxuLy9AdHlwZSB7W2xpc3RdfSAkcmVmaXhlcyBzZWxlY3RvciBzbHVnXG4vL3VzYWdlOlxuLy8gQGluY2x1ZGUgcHJlZml4LXJ1bGUoIFwiZm9vXCIsIFwiLmwtXCIgXCIuaXMtXCIgXCIlXCIgKSB7XG4vLyAgICAgbWFyZ2luOiAyMHB4O1xuLy8gfVxuLy9nZW5lcmF0ZXM6XG4vLyAubC1mb28sIC5pcy1mb28sICVmb28ge1xuLy8gICAgIG1hcmdpbjogMjBweDtcbi8vIH1cbiRkZWZhdWx0LXNlbGVjdG9yLXByZWZpeGVzOiBcIiVcIiBcIi5cIiAhZGVmYXVsdDtcblxuQG1peGluIHByZWZpeC1ydWxlICggJHJ1bGVOYW1lcywgJHByZWZpeGVzOiAkZGVmYXVsdC1zZWxlY3Rvci1wcmVmaXhlcykge1xuICAkcnVsZXM6IFwiXCI7XG4gIEBlYWNoICRydWxlTmFtZSBpbiAkcnVsZU5hbWVzIHtcbiAgICBAZWFjaCAkcHJlZml4IGluICRwcmVmaXhlcyB7XG4gICAgICAkcnVsZXM6IHVucXVvdGUoJHJ1bGVzICsgJHByZWZpeCArICRydWxlTmFtZSArIFwiLFwiKTtcbiAgICB9XG4gIH1cbiAgI3skcnVsZXN9IHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiQG1peGluIHR5cGUoJG5hbWU6IGRlZmF1bHQsICRvdmVyd3JpdGVzOiBudWxsKSB7XG4gICR0eXBlLWJyZWFrcG9pbnRzOiBtYXAta2V5cygkdHlwZXMpO1xuICAkZGVmYXVsdC10eXBlczogbWFwLWdldCgkdHlwZXMsICRicmVha3BvaW50LWRlZmF1bHQpO1xuXG4gIEBpZiBtYXAtaGFzLWtleSgkZGVmYXVsdC10eXBlcywgJG5hbWUpIHtcbiAgICAkYnJlYWtwb2ludC1zdHlsZXM6IG1hcC1nZXQoJGRlZmF1bHQtdHlwZXMsICRuYW1lKTtcbiAgICBAaWYgJG92ZXJ3cml0ZXMge1xuICAgICAgJGJyZWFrcG9pbnQtc3R5bGVzOiBtYXAtbWVyZ2UoJGJyZWFrcG9pbnQtc3R5bGVzLCAkb3ZlcndyaXRlcyk7XG4gICAgfVxuICAgIC8vIHByaW50cyBzdHlsZXMgZm9yIHRoZSBkZWZhdWx0IGJyZWFrcG9pbnRcbiAgICBAZWFjaCAkcHJvcGVydHksICR2YWx1ZSBpbiAkYnJlYWtwb2ludC1zdHlsZXMge1xuICAgICAgI3skcHJvcGVydHl9OiAkdmFsdWVcbiAgICB9XG4gICAgQGluY2x1ZGUgdHlwZUJyZWFrcG9pbnQoJHR5cGUtYnJlYWtwb2ludHMsICRuYW1lLCAkZGVmYXVsdC10eXBlcyk7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuICdubyB0eXBlIG5hbWVkIGAjeyRuYW1lfWAgaW4gJHR5cGVzJztcbiAgfVxufVxuXG4vLyByZW5kZXJzIG1vZGlmaWVyZXNcbkBtaXhpbiB0eXBlQnJlYWtwb2ludCgkdHlwZS1icmVha3BvaW50cywgJG5hbWUsICRkZWZhdWx0LXR5cGVzKSB7XG4gIEBlYWNoICRicmVha3BvaW50LW5hbWUgaW4gJHR5cGUtYnJlYWtwb2ludHMge1xuICAgIEBpZiBub3QgKCRicmVha3BvaW50LW5hbWUgPT0gJGJyZWFrcG9pbnQtZGVmYXVsdCkge1xuICAgICAgQGluY2x1ZGUgYnAoJGJyZWFrcG9pbnQtbmFtZSkge1xuICAgICAgICAkYnJlYWtwb2ludC1zdHlsZXM6IG1hcC1nZXQoJHR5cGVzLCAkYnJlYWtwb2ludC1uYW1lKTtcbiAgICAgICAgQGluY2x1ZGUgY3NzaWZ5LW1hcChtYXAtZ2V0KCRicmVha3BvaW50LXN0eWxlcywgJG5hbWUpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gcmVuZGVycyBkZWZhdWx0IHRleHQgaGVscGVyIGNsYXNzZXNcbkBtaXhpbiB0ZXh0Q2xhc3NlcyAoJHByZWZpeDogXCIldC1cIiBcIi50LVwiKSB7XG4gICRkZWZhdWx0LXR5cGVzOiBtYXAtZ2V0KCR0eXBlcywgJGJyZWFrcG9pbnQtZGVmYXVsdCk7XG5cbiAgQGVhY2ggJHJ1bGUsICRrZXkgaW4gJGRlZmF1bHQtdHlwZXMge1xuICAgIEBpZiBub3QgKCRydWxlID09IGRlZmF1bHQpICB7XG4gICAgICBAaW5jbHVkZSBwcmVmaXgtcnVsZSgkcnVsZSwgJHByZWZpeGVzOiAkcHJlZml4KSB7XG4gICAgICAgIEBpbmNsdWRlIHR5cGUoJHJ1bGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQG1peGluIGNzc2lmeS1tYXAoJGRlY2xhcmF0aW9ucykge1xuICBAZWFjaCAkcHJvcGVydHksICR2YWx1ZSBpbiAkZGVjbGFyYXRpb25zIHtcbiAgICAjeyRwcm9wZXJ0eX06ICR2YWx1ZVxuICB9XG59XG4iLCIvKipcbiAqIENvbG9yIHZhcmlhYmxlc1xuICovXG4kY29sb3JzOiAoXG4gIGdpbmV0dGE6IChcbiAgICBwaW5rOiAjZmI5ZmIxLFxuICAgIHNhbG1vbjogI2YwYTg4YixcbiAgICBvcmFuZ2U6ICNlNmFkN2EsXG4gICAgZ3JlZW4tb2xpdmU6ICNhNGM0NmEsXG4gICAgZ3JlZW46ICM3M2NiODgsXG4gICAgZ3JlZW4tbGFrZTogIzU1Y2U5YixcbiAgICB0ZWFsOiAjMzRjZmFkLFxuICAgIGN5YW46ICMwZmNkZDAsXG4gICAgYmx1ZTogIzVlYzVlYixcbiAgICBibHVlLXNreTogIzgwYmZmNCxcbiAgICBwdXJwbGU6ICM5ZWI4ZjgsXG4gICAgdmlvbGV0OiAjZDBhOWY2LFxuICApLFxuICBjbGllbnQ6IChcbiAgICBhcm9vdjogIzMyYjVkYyxcbiAgICBhcm9vdi10ZXh0OiAjNGRhNWNhLFxuICAgIGF2YWxvcTogIzAwMzA3NixcbiAgICBiYXNsZXItaG9mbWFubjogI2RjMjg1NixcbiAgICBiaC1ibGFjazogIzJmMmYyZixcbiAgICBjb21ldDogIzQ4NjQ2ZCxcbiAgICBjcm93ZGhvdXNlOiAjNWZiNmNiLFxuICAgIGNyb3dkaG91c2UtZGFyazogIzAwODA5MixcbiAgICBjcm93ZGhvdXNlLWxpZ2h0OiAjZWJmMmYyLFxuICAgIGRvY3NhZmU6ICMxNzgxZTMsXG4gICAgZG9jc2FmZS1ncmV5OiAjMmMyNzIzLFxuICAgIGRvb2RsZTogIzAwNjBkZixcbiAgICBmYW50b2NoZTogIzVlYWVhYSxcbiAgICBmaWxtY29vcGk6ICNmZmY1MDcsXG4gICAgaGVsc2FuYTogIzljMDI0MCxcbiAgICBoZWxzYW5hLWdvbGQ6ICNkZGM0OGMsXG4gICAgZW5kcmVzczogIzAwN2NhYSxcbiAgICBlbmRyZXNzLW1hZ2VudGE6ICNhODAwNWMsXG4gICAgaGlsdGk6ICNkMDAyMWIsXG4gICAgaGlsdGktd2Vic2l0ZTogI2QyMDcxZSxcbiAgICBsaXp6eTogI2U5ZWFmMCxcbiAgICBsaXp6eS1wdXJwbGU6ICMwMDA3NGUsXG4gICAgbGl6enktcGluazogI2U2MWI1OCxcbiAgICBsaXp6eS1kYXJrZ3JleTogIzhmOTA5YixcbiAgICBsaXp6eS1ibHVlOiAjMDA2Y2UyLFxuICAgIGxvY2FsOiAjMGQ5YmRiLFxuICAgIG1pZ3JvczogI2ZmNjYwMCxcbiAgICBtb2JpbGl0eTogI2MzMTYyMixcbiAgICBwdW1hOiAjMDA4NTNmLFxuICAgIHB1bWEtZ3JlZW46ICMwMDZlMzQsXG4gICAgbnp6OiAjM2I4ZmM5LFxuICAgIHBheWNhbGw6ICM0MjQxNGQsXG4gICAgcGF5Y2FsbC12aW9sZXQ6ICM0ZDQ5NzQsXG4gICAgcG9zdGZpbmFuY2U6ICNmOGNmMzQsXG4gICAgcG9zdGZpbmFuY2VhcHA6ICMwMDU0NUUsXG4gICAgcmFpZmZlaXNlbjogI2M4NGE0OCxcbiAgICBzYmI6ICNmMTAwMDAsXG4gICAgc2lyb29wOiAjNDFjYWRmLFxuICAgIHNpcm9vcC1ncmV5OiAjZjFmNWY3LFxuICAgIHN3aXNzY29tOiAjMDAwZDU3LFxuICAgIHN5bXBhbnk6ICNjYTAwMTgsXG4gICAgc3ltcGFueS1saWdodDogI2ZkZjdmOCxcbiAgICB1ZXBhYTogIzBlOGJjZixcbiAgICB0ZXN0aW5ndGltZTogIzg0YzM1YSxcbiAgICB0d2ludC1kYXJrOiAjMWQyNjJjLFxuICAgIHR3aW50LWdyZXk6ICNmM2YzZjMsXG4gICAgdHdpbnQtYmx1ZTogIzUwYTRkMyxcbiAgICB6dXJpY2g6ICMwYzJlOTYsXG4gICAgYmZ1OiAjMDBiMmFhLFxuICAgIGp1dHpsZXI6ICMyZjgwZWQsXG4gICAgdm9udG9iZWw6ICNmZmQ1MDAsXG4gICksXG4gIHVpOiAoXG4gICAgbGluazogY29ybmZsb3dlcmJsdWUsXG4gICksXG4gIG5ldXRyYWw6IChcbiAgICBibGFjazogIzE2MTYxZCxcbiAgICBncmFwaGl0ZTogIzY2NixcbiAgICBncmF5OiAjZGRkLFxuICAgIHNpbHZlcjogI2ZhZmFmYSxcbiAgICB3aGl0ZTogI2ZmZixcbiAgKSxcbik7XG5cbi8qKlxuICogQ29sb3IgZnVuY3Rpb25zXG4gKi9cbkBmdW5jdGlvbiBjKCRuYW1lLCAkbGlnaHRuZXNzOiBub3JtYWwpIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRjb2xvcnMsICRuYW1lKSB7XG4gICAgJGNvbG9yLXZhcmlhbnRzOiBtYXAtZ2V0KCRjb2xvcnMsICRuYW1lKTtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJGNvbG9yLXZhcmlhbnRzLCAkbGlnaHRuZXNzKSB7XG4gICAgICBAcmV0dXJuIG1hcC1nZXQoJGNvbG9yLXZhcmlhbnRzLCAkbGlnaHRuZXNzKTtcbiAgICB9XG4gIH1cbiAgQHdhcm4gJ25vIGNvbG9yIG5hbWVkICN7JG5hbWV9IGluICRjb2xvcnMnO1xuICBAcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogQ29sb3IgY2xhc3Nlc1xuICogVHJ5IHRvIHVzZSBvbmx5IGluIHRoZSBzdHlsZWd1aWRlXG4gKi9cbkBlYWNoICRjb2xvciwgJHZhcmlhbnRzIGluICRjb2xvcnMge1xuICBAZWFjaCAkdmFyaWFudCwgJHZhbHVlIGluICR2YXJpYW50cyB7XG4gICAgLy8gUmVtb3ZlIHRoZSAnbm9ybWFsJyBrZXkgZm9yIGRlZmF1bHQgY29sb3JzXG4gICAgJHZhcmlhbnROYW1lOiAtI3skdmFyaWFudH07XG4gICAgQGlmICR2YXJpYW50ID09IFwibm9ybWFsXCIge1xuICAgICAgJHZhcmlhbnROYW1lOiBcIlwiO1xuICAgIH1cblxuICAgIC5jLSN7JGNvbG9yfSN7JHZhcmlhbnROYW1lfSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjeyR2YWx1ZX07XG5cbiAgICAgIEBpZiAkY29sb3IgPT0gXCJjbGllbnRcIiB7XG4gICAgICAgIGNvbG9yOiByZ2JhKGMobmV1dHJhbCwgd2hpdGUpLCAwLjk1KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuYy0jeyRjb2xvcn0jeyR2YXJpYW50TmFtZX0tLWZpbGwge1xuICAgICAgZmlsbDogI3skdmFsdWV9O1xuICAgIH1cbiAgICAuYy0jeyRjb2xvcn0jeyR2YXJpYW50TmFtZX0tLWZpbGwtZGFyayB7XG4gICAgICBmaWxsOiAje2RhcmtlbigkdmFsdWUsIDEwJSl9O1xuICAgIH1cblxuICAgIC5jLSN7JGNvbG9yfSN7JHZhcmlhbnROYW1lfS0tY29sb3Ige1xuICAgICAgY29sb3I6ICN7JHZhbHVlfTtcbiAgICB9XG4gIH1cbn1cblxuLypcbiAgIEhhY2sgdG8gb3ZlcmNvbWUgdGhlIGxhY2sgb2YgY29sb3IgY29udHJhc3QgY2hlY2tcbiAqL1xuLmMtY2xpZW50LXNpcm9vcC1ncmV5IHtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTtcbn1cblxuLmMtY2xpZW50LWZpbG1jb29waSB7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDEpO1xufVxuXG4uY29sb3ItYXJvb3YsXG4uYy1jb2xvci1hcm9vdi0tY29sb3IgYmxvY2txdW90ZSB7XG4gIGNvbG9yOiAjMzJiNWRjO1xufVxuIiwiJGwtY29udGFpbmVyLXdpZHRoOiAxMjAwcHg7XG5cbi5sLWNvbnRhaW5lciB7XG4gIG1heC13aWR0aDogJGwtY29udGFpbmVyLXdpZHRoO1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogMCAxNnB4O1xufVxuXG4ubC1jb250YWluZXItLW1lZGl1bSB7XG4gIG1heC13aWR0aDogODAwcHg7XG59XG5cbi5sLWNvbnRhaW5lci0tc21hbGwge1xuICBtYXgtd2lkdGg6IDY4MHB4O1xufVxuXG5cbi5sLWNvbnRhaW5lci0tc3BhY2VsZXNzIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xufVxuXG4ubC1jb250YWluZXItLWxlZnQtYWxpZ25lZCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuIiwiQGltcG9ydCBcInNlbnNpYmxlL21lZGlhcXVlcmllc1wiO1xuXG4ubC1ncmlkLWhpcHN0ZXIge1xuICAmX19yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAmLS12ZXJ0aWNhbCB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cbiAgfVxuICAmX19jZWxsIHtcbiAgICBmbGV4OiAxO1xuICAgIGJhY2tncm91bmQ6IHJnYmEocmVkLCAwLjEpO1xuICB9XG59XG5cblxuQGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUpIHtcbiAgLmwtZ3JpZC1oaXBzdGVyIHtcbiAgICAmX19yb3cge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG59XG4iLCIuaWNvbiB7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDI0cHg7XG4gIGZpbGw6IGN1cnJlbnRDb2xvcjtcbn1cbiIsIkBpbXBvcnQgXCJib25lc2Nzcy9taXhpbnNcIjtcblxuXG4ubmFycmF0aXZlIHtcblxuICBpbWcsXG4gIHZpZGVvIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cblxuICBoMTpub3QoW2NsYXNzXSkge1xuICAgIEBpbmNsdWRlIHR5cGUocHJvamVjdC10aXRsZSk7XG4gIH1cblxuICBoMjpub3QoW2NsYXNzXSkge1xuICAgIEBpbmNsdWRlIHR5cGUodGl0bGUpO1xuICB9XG5cblxuICBoMzpub3QoW2NsYXNzXSkge1xuICAgIEBpbmNsdWRlIHR5cGUoc3VidGl0bGUpO1xuICB9XG5cbiAgaDQ6bm90KFtjbGFzc10pIHtcbiAgICBAaW5jbHVkZSB0eXBlKGg0KTtcbiAgfVxuXG4gIGg1Om5vdChbY2xhc3NdKSxcbiAgaDY6bm90KFtjbGFzc10pIHtcbiAgICBAaW5jbHVkZSB0eXBlKGxlYWQpO1xuICB9XG5cbiAgcDpub3QoW2NsYXNzXSksXG4gIGxpIHtcbiAgICBAaW5jbHVkZSB0eXBlKHBhcmFncmFwaCk7XG4gIH1cblxuICBmaWdjYXB0aW9uOm5vdChbY2xhc3NdKSB7XG4gICAgQGluY2x1ZGUgdHlwZShjYXB0aW9uKTtcbiAgICBjb2xvcjogYyhuZXV0cmFsLCBncmFwaGl0ZSk7XG4gIH1cblxuICB0YWJsZSB7XG4gICAgQGluY2x1ZGUgdHlwZShwYXJhZ3JhcGgpO1xuICB9XG5cbiAgYSB7XG4gICAgY29sb3I6IGModWksIGxpbmspO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuICB9XG5cbiAgZmlndXJlIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICBmaWd1cmUgKyBmaWd1cmUge1xuICAgIG1hcmdpbi10b3A6IDNyZW07XG4gIH1cblxuXG4gIGgxLFxuICBoMixcbiAgaDMsXG4gIGg0LFxuICBoNSxcbiAgaDYge1xuICAgIG1hcmdpbi10b3A6IDNyZW07XG4gIH1cblxuICBoMSxcbiAgaDIsXG4gIGgzLFxuICBoNCxcbiAgaDUsXG4gIGg2LFxuICBwLFxuICBsaSB7XG4gICAgLy8gbWF4LXdpZHRoOiAzNnJlbTtcbiAgfVxuXG4gIHNtYWxsIHtcbiAgICBmb250LXNpemU6IDkwJTtcbiAgfVxuXG4gIGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIC8vIGNlbnRlciBpbWFnZVxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgfVxuXG5cbiAgZmlndXJlLFxuICB0YWJsZSxcbiAgZmlnY2FwdGlvbixcbiAgdWwsXG4gIG9sLFxuICBwIHtcbiAgICBtYXJnaW4tdG9wOiAxZW07XG4gIH1cblxuICBsaSB7XG4gICAgbWFyZ2luLXRvcDogLjVlbTtcbiAgfVxuXG4gIGltZyxcbiAgdmlkZW8ge1xuICAgIG1hcmdpbi10b3A6IDJyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gIHAgKyBwIHtcbiAgICBtYXJnaW4tdG9wOiAxLjVlbTtcbiAgfVxuXG4gIGgyICsgcCB7XG4gICAgbWFyZ2luLXRvcDogMmVtO1xuICAgIC8vIGNvbG9yOiByZWJlY2NhcHVycGxlO1xuICB9XG5cbiAgZmlnY2FwdGlvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMmVtO1xuICB9XG5cbiAgdGQge1xuICAgIHBhZGRpbmctdG9wOiAxLjZlbSxcbiAgfVxuXG5cbiAgPiAqOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG5cbiAgdGQge1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIH1cblxuICAudGltZWxpbmUge1xuICAgIG1hcmdpbi10b3A6IDRyZW07XG4gIH1cblxuICAubm8tdnIge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cbn1cbiIsIi5yYXRpbyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICYtLXBhbm9yYW1hIHtcbiAgICBwYWRkaW5nLXRvcDogNTAlO1xuICB9XG5cbiAgJi0tMXRvNCB7XG4gICAgcGFkZGluZy10b3A6ICgxIC8gNCkgKiAxMDAlO1xuICB9XG5cbiAgJi0tc3F1YXJlIHtcbiAgICBwYWRkaW5nLXRvcDogMTAwJTtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1vYmlsZSkge1xuICAgICAgcGFkZGluZy10b3A6IDUwJTtcbiAgICB9XG4gIH1cblxuICAmLS0zdG8yIHtcbiAgICBwYWRkaW5nLXRvcDogKDIvMykgKiAxMDAlO1xuICB9XG5cbiAgJl9fY29udGVudCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICByaWdodDogMDtcbiAgfVxufVxuIiwiJHNpemVzOiAoXG4gIGh1Z2UgICAgICAgIDogMTM2cHgsXG4gIHgtbGFyZ2UgICAgIDogNjRweCxcbiAgbGFyZ2UgICAgICAgOiAzMnB4LFxuICBtZWRpdW0gICAgICA6IDI0cHgsXG4gIG5vcm1hbCAgICAgIDogMTZweCxcbiAgc21hbGwgICAgICAgOiAxMnB4LFxuICB0aW55ICAgICAgICA6IDhweFxuKTtcblxuLyoqXG4gKiBTaXplcyBmdW5jdGlvblxuICogRXhwZWN0cyBhIHNpemUgbmFtZSAoZGVmYXVsdDogbWVkaXVtKSBhbmQgcmV0dXJucyBpdCdzIHZhbHVlIGluIHJlbVxuICovXG5AZnVuY3Rpb24gcygkbmFtZTogbWVkaXVtKSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkc2l6ZXMsICRuYW1lKSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRzaXplcywgJG5hbWUpO1xuICB9XG5cbiAgQHdhcm4gXCJVbmtub3duIGAjeyRuYW1lfWAgaW4gJHNpemVzLlwiO1xuICBAcmV0dXJuIG51bGw7XG59XG5cbi8qIEhlbHBlcnMgZm9yIHRoZSBzdHlsZWd1aWRlIHRvIGRpc3BsYXkgdGhlIHNpemVzICovXG5AZWFjaCAkc2l6ZSwgJHZhbHVlIGluICRzaXplcyB7XG4gIC5zLSN7JHNpemV9IHtcbiAgICB3aWR0aDogcygkc2l6ZSk7XG4gICAgaGVpZ2h0OiBzKCRzaXplKTtcbiAgfVxuXG4gIC5zLWlubmVyLSN7JHNpemV9IHtcbiAgICBwYWRkaW5nOiBzKCRzaXplKTtcbiAgfVxuXG4gIC5zLXZlcnRpY2FsLSN7JHNpemV9IHtcbiAgICBwYWRkaW5nLXRvcDogcygkc2l6ZSk7XG4gICAgcGFkZGluZy1ib3R0b206IHMoJHNpemUpO1xuICB9XG59XG5cblxuLmQtYiB7IGRpc3BsYXk6IGJsb2NrOyB9IiwiJGhlYWRlci1oZWlnaHQ6IDYwcHg7XG4kaGVhZGVyLWhlaWdodC1tb2JpbGU6IDYwcHg7XG4kaW1hZ2UtaGVpZ2h0OiAzNXB4O1xuJGltYWdlLWhlaWdodC1tb2JpbGU6IDI1cHg7XG5cbi5hZmZpeC1oZWFkZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDM7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG9wYWNpdHk6IDE7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDRweCAwIHJnYmEoMCwgMCwgMCwgMC4xNSk7XG5cbiAgJl9fY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgaGVpZ2h0OiAkaGVhZGVyLWhlaWdodDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUpIHtcbiAgICAgIGhlaWdodDogJGhlYWRlci1oZWlnaHQtbW9iaWxlO1xuICAgIH1cbiAgfVxuXG4gICZfX2dvLWJhY2sge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IHMobWVkaXVtKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cblxuXG4gICZfX2Fycm93cyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgcmlnaHQ6IHMobWVkaXVtKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cblxuICAmX19nby1wcmV2IHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiBzKG1lZGl1bSk7XG4gIH1cblxuICAmX19sb2dvIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogMzJweCAhaW1wb3J0YW50O1xuXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxMDBtcyBlYXNlLWluLW91dDtcblxuICAgIHN2ZyB7XG4gICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIHBhdGgge1xuICAgICAgZmlsbDogY3VycmVudENvbG9yO1xuICAgIH1cbiAgfVxuXG4gICZfX2xvZ28tY29udGFpbmVyLFxuICAmX190aXRsZS1jb250YWluZXIge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMnMgZWFzZS1pbi1vdXQsIG9wYWNpdHkgLjNzIGVhc2UtaW4tb3V0O1xuICB9XG5cbiAgJl9fbG9nby1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgfVxuXG4gICZfX3RpdGxlLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCA1MCUpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICAmLS1zY3JvbGxlZCAmX19sb2dvLWNvbnRhaW5lciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTEwMCUpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICAmLS1zY3JvbGxlZCAmX190aXRsZS1jb250YWluZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAmX19saW5rIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbiIsIiRhdmF0YXItYmFja2dyb3VuZC1jb2xvcjogYyhuZXV0cmFsLCBzaWx2ZXIpO1xuXG4kYXZhdGFyLXNpemVzOiAoXG4gIHNtYWxsOiAxMjBweCxcbiAgbWVkaXVtIDogMTYwcHgsXG4gIGxhcmdlOiAxOTBweFxuKTtcblxuLyoqXG4gKiBTaXplcyBmdW5jdGlvblxuICogRXhwZWN0cyBhIHNpemUgbmFtZSAoZGVmYXVsdDogbWVkaXVtKSBhbmQgcmV0dXJucyBpdCdzIHZhbHVlIGluIHJlbVxuICovXG5AZnVuY3Rpb24gYXZhdGFyU2l6ZSgkbmFtZTogbWVkaXVtKSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkYXZhdGFyLXNpemVzLCAkbmFtZSkge1xuICAgIEByZXR1cm4gbWFwLWdldCgkYXZhdGFyLXNpemVzLCAkbmFtZSk7XG4gIH1cblxuICBAd2FybiBcIlVua25vd24gYCN7JG5hbWV9YCBpbiAkYXZhdGFyLXNpemVzLlwiO1xuICBAcmV0dXJuIG51bGw7XG59XG5cbi8qIEhlbHBlciBmb3IgYXZhdGFyLXNpemVzICovXG5AZWFjaCAkYXZhdGFyLXNpemUsICR2YWx1ZSBpbiAkYXZhdGFyLXNpemVzIHtcbiAgLmF2YXRhci0tI3skYXZhdGFyLXNpemV9IHtcbiAgICB3aWR0aDogYXZhdGFyU2l6ZSgkYXZhdGFyLXNpemUpO1xuICAgIGhlaWdodDogYXZhdGFyU2l6ZSgkYXZhdGFyLXNpemUpO1xuICB9XG59XG5cbi5hdmF0YXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDAgYXV0bztcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgJl9faW1hZ2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogYXV0bztcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogJGF2YXRhci1iYWNrZ3JvdW5kLWNvbG9yO1xuICB9XG59XG4iLCIkdmVydGljYWwtc3BhY2luZzogMTBweDtcbiRob3Jpem9udGFsLXNwYWNpbmc6IDI1cHg7XG4kYmctY29sb3ItaG92ZXItbGlnaHRlbjogMjAlO1xuJGJnLWNvbG9yLWRpc2FibGUtbGlnaHRlbjogMjAlO1xuJGNvbG9yLWRpc2FibGUtZGFya2VuOiAyMCU7XG5cbi5idXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6ICR2ZXJ0aWNhbC1zcGFjaW5nICRob3Jpem9udGFsLXNwYWNpbmc7XG4gIGJhY2tncm91bmQ6IGMobmV1dHJhbCwgYmxhY2spO1xuXG4gIC8vIFJlc2V0IGRlZmF1bHQgc3R5bGVzXG4gIGJvcmRlcjogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgY29sb3I6IGMobmV1dHJhbCwgd2hpdGUpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4xNXMgZWFzZS1pbi1vdXQ7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbihjKG5ldXRyYWwsIGJsYWNrKSwgJGJnLWNvbG9yLWhvdmVyLWxpZ2h0ZW4pO1xuICB9XG5cbiAgJltkaXNhYmxlXSB7XG4gICAgY29sb3I6IGRhcmtlbihjKG5ldXRyYWwsIHdoaXRlKSwgJGNvbG9yLWRpc2FibGUtZGFya2VuKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKGMobmV1dHJhbCwgYmxhY2spLCAkYmctY29sb3ItZGlzYWJsZS1saWdodGVuKTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxufVxuIiwiLmNhbGxvdXQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbjogMDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgJjphZnRlciB7XG4gICAgY29udGVudDogY2xvc2UtcXVvdGU7XG4gIH1cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IG9wZW4tcXVvdGU7XG4gIH1cbn1cbiIsIiRjYXJkLXN1YnRpdGxlLWhlaWdodDogMjJweDtcbiRjYXJkLWRpdmlkZXItd2lkdGg6IDQ4cHg7XG5cbi5jYXJkIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogYyhuZXV0cmFsLCBzaWx2ZXIpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXG4gICZfX2hlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG5cbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMiksIHJnYmEoMCwgMCwgMCwgMC4wOTgwMzkyKSlcbiAgfVxuXG4gICZfX2xvZ28ge1xuICAgIG1heC13aWR0aDogMTMwcHg7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICZfX2RpdmlkZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiBjYWxjKDUwJSAtICN7JGNhcmQtZGl2aWRlci13aWR0aH0gLyAyKTtcbiAgICB3aWR0aDogJGNhcmQtZGl2aWRlci13aWR0aDtcbiAgICBtYXJnaW4tdG9wOiAuNjVyZW07XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB3aGl0ZTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKDApO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMnMsIG9wYWNpdHkgLjJzO1xuICB9XG5cbiAgJl9fZm9vdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogcyhzbWFsbCkgcyhtZWRpdW0pO1xuICB9XG5cbiAgJl9fdGl0bGUsXG4gICZfX3N1YnRpdGxlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAmX190aXRsZSB7XG4gICAgY29sb3I6IGMobmV1dHJhbCwgd2hpdGUpO1xuICAgIGZvbnQtd2VpZ2h0OiAkdC13ZWlnaHQtYm9sZDtcbiAgICAvLyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoJGNhcmQtc3VidGl0bGUtaGVpZ2h0KTtcbiAgICB0cmFuc2l0aW9uOiAyMDBtcyB0cmFuc2Zvcm07XG4gIH1cblxuICAmX19zdWJ0aXRsZSB7XG4gICAgaGVpZ2h0OiAkY2FyZC1zdWJ0aXRsZS1oZWlnaHQ7XG4gICAgY29sb3I6IGMobmV1dHJhbCwgd2hpdGUpO1xuICAgIC8vIG9wYWNpdHk6IDA7XG4gICAgLy8gdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xuICAgIHRyYW5zaXRpb246IDIwMG1zIG9wYWNpdHksIDIwMG1zIHRyYW5zZm9ybTtcbiAgICBtYXJnaW4tdG9wOiBzKHNtYWxsKTtcbiAgfVxuXG4gICZfX292ZXJsYXkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgei1pbmRleDogMTtcbiAgICBiYWNrZ3JvdW5kOiBjKG5ldXRyYWwsIGJsYWNrKTtcbiAgICBvcGFjaXR5OiAuODtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHdpbGwtY2hhbmdlOiBvcGFjaXR5O1xuICAgIHRyYW5zaXRpb246IDIwMG1zIG9wYWNpdHksIDEwMG1zIGJhY2tncm91bmQtY29sb3I7XG4gIH1cblxuICAmX19jb250ZW50IHtcbiAgICB6LWluZGV4OiAyO1xuICB9XG5cbiAgJjpob3ZlciAmX190aXRsZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KTtcbiAgfVxuXG4gICY6aG92ZXIgJl9fc3VidGl0bGUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpO1xuICB9XG5cbiAgJjpob3ZlciAmX19kaXZpZGVyIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpO1xuICB9XG5cbiAgJjpob3ZlciAmX19vdmVybGF5IHtcbiAgICBvcGFjaXR5OiAuOTtcbiAgfVxufVxuIiwiJGNhcm91c2VsLXdpZHRoOiA4MCU7XG4kY2Fyb3VzZWwtbmVpZ2hib3VyLXNsaWRlcy1vcGFjaXR5OiAwLjM7XG4kY2Fyb3VzZWwtbmVpZ2hib3VyLXNsaWRlcy1zY2FsaW5nOiAwLjg7XG4kY2Fyb3VzZWwtY2VudGVyLXNsaWRlLW9wYWNpdHk6IDE7XG4kY2Fyb3VzZWwtY2VudGVyLXNsaWRlLXNjYWxpbmc6IDE7XG4kY2Fyb3VzZWwtc2xpY2stc2xpZGUtdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4zcyBlYXNlLW91dDtcbiRjYXJvdXNlbC1idXR0b24tY29sb3I6IGMobmV1dHJhbCwgZ3JhcGhpdGUpO1xuJGNhcm91c2VsLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yOiBjKG5ldXRyYWwsIHdoaXRlKTtcbiRjYXJvdXNlbC1idXR0b24tcmFkaXVzOiA0cmVtO1xuXG5cbiRjYXJvdXNlbC1idXR0b24tc2hhZG93OiAwIDAgMC41cmVtIHJnYmEoMCwgMCwgMCwgMC4zKTtcbiRjYXJvdXNlbC1idXR0b24tc2hhZG93LWhvdmVyOiAwIDAgMC41cmVtIHJnYmEoMCwgMCwgMCwgMC42KTtcblxuJGNhcm91c2VsLWJ1dHRvbi1wb3NpdGlvbjogMnJlbTtcbiRjYXJvdXNlbC1idXR0b24tYXJyb3ctc2l6ZTogJGNhcm91c2VsLWJ1dHRvbi1yYWRpdXMgLzQ7XG4kY2Fyb3VzZWwtYnV0dG9uLWFycm93LXRoaWNrbmVzczogMC4wNXJlbTtcbiRjYXJvdXNlbC1kaXN0YW5jZS10by1jZW50ZXItc2xpZGU6IDEuNXJlbTtcblxuJGNhcm91c2VsLWJ1dHRvbi1ib3JkZXItdGhpY2tuZXNzOiAxcHg7XG4kY2Fyb3VzZWwtYnV0dG9uLXNpemU6IDEwcHg7XG4kY2Fyb3VzZWwtYnV0dG9uLXNwYWNlLWJldHdlZW46IDhweDtcblxuJGNhcm91c2VsLWZvb3Rlci1tb2JpbGUtaGVpZ2h0OiAzMHB4O1xuJGNhcm91c2VsLWZvb3Rlci1tb2JpbGUtc3BhY2luZzogMTZweDtcblxuXG5cbkBtaXhpbiBoaWRlLXRleHQge1xuICAgIGZvbnQ6IDAvMCBhO1xuICAgIHRleHQtc2hhZG93OiBub25lO1xuICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmNhcm91c2VsIHtcbiAgLy8gd2lkdGg6ICRjYXJvdXNlbC13aWR0aDtcbiAgLy8gbWFyZ2luOiAwIGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmNhcm91c2VsX19idXR0b24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB3aWR0aDogJGNhcm91c2VsLWJ1dHRvbi1yYWRpdXM7XG4gIGhlaWdodDogJGNhcm91c2VsLWJ1dHRvbi1yYWRpdXM7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiAkY2Fyb3VzZWwtYnV0dG9uLWJhY2tncm91bmQtY29sb3I7XG4gIGJveC1zaGFkb3c6ICRjYXJvdXNlbC1idXR0b24tc2hhZG93O1xuICBAaW5jbHVkZSBoaWRlLXRleHQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgei1pbmRleDogMjtcbiAgb3V0bGluZTogbm9uZTtcblxuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IC4xcyBsaW5lYXIsIHRyYW5zZm9ybSAuMXM7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSBzY2FsZSgxKTtcblxuXG4gICY6YWN0aXZlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgc2NhbGUoMC45NSk7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBvcGFjaXR5OiAwLjk7XG4gIH1cblxuXG4gICYtLXByZXYge1xuICAgIGxlZnQ6IDIwcHg7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycztcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDNweCwgMHB4KSByb3RhdGUoLTEzNWRlZyk7XG4gICAgfVxuICB9XG5cbiAgJi0tbmV4dCB7XG4gICAgcmlnaHQ6IDIwcHg7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtM3B4LCAwcHgpIHJvdGF0ZSg0NWRlZykgO1xuICAgIH1cbiAgfVxuXG5cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAkY2Fyb3VzZWwtYnV0dG9uLWFycm93LXNpemU7XG4gICAgaGVpZ2h0OiAkY2Fyb3VzZWwtYnV0dG9uLWFycm93LXNpemU7XG4gICAgYm9yZGVyLXJpZ2h0OiAkY2Fyb3VzZWwtYnV0dG9uLWFycm93LXRoaWNrbmVzcyBzb2xpZCAkY2Fyb3VzZWwtYnV0dG9uLWNvbG9yO1xuICAgIGJvcmRlci10b3A6ICRjYXJvdXNlbC1idXR0b24tYXJyb3ctdGhpY2tuZXNzIHNvbGlkICRjYXJvdXNlbC1idXR0b24tY29sb3I7XG4gIH1cblxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kOiAkY2Fyb3VzZWwtYnV0dG9uLWJhY2tncm91bmQtY29sb3I7XG4gICAgYm94LXNoYWRvdzogJGNhcm91c2VsLWJ1dHRvbi1zaGFkb3ctaG92ZXI7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1vYmlsZSkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLmNhcm91c2VsX19pdGVtIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBwYWRkaW5nLWxlZnQ6ICRjYXJvdXNlbC1kaXN0YW5jZS10by1jZW50ZXItc2xpZGU7XG4gIHBhZGRpbmctcmlnaHQ6ICRjYXJvdXNlbC1kaXN0YW5jZS10by1jZW50ZXItc2xpZGU7XG4gIG9wYWNpdHk6IC4yO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4ycyBlYXNlLWluLW91dDtcbiAgb3V0bGluZTogbm9uZTtcbiAgd2lkdGg6ICRsLWNvbnRhaW5lci13aWR0aDtcblxuICAmLnNsaWNrLWN1cnJlbnQsXG4gICY6Zm9jdXMge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1vYmlsZSkge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG59XG5cbi5jYXJvdXNlbF9faW1hZ2Uge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAwIGF1dG87XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuXG4uY2Fyb3VzZWxfX2RvdHMge1xuICBoZWlnaHQ6ICRjYXJvdXNlbC1mb290ZXItbW9iaWxlLWhlaWdodDtcbiAgcGFkZGluZzogJGNhcm91c2VsLWZvb3Rlci1tb2JpbGUtc3BhY2luZyAoJGNhcm91c2VsLWZvb3Rlci1tb2JpbGUtaGVpZ2h0ICsgMiAqICRjYXJvdXNlbC1mb290ZXItbW9iaWxlLWhlaWdodCk7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgLy8gWzFdIHJlc2V0IGJ1dHRvbiBzdHVsaW5nXG4gIGJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgaGlkZS10ZXh0O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyAvLyBbMV1cbiAgICBvdXRsaW5lOiBub25lOyAgICAgICAgICAgLy8gWzFdXG4gICAgcGFkZGluZzogMDsgICAgICAgICAgICAgIC8vIFsxXVxuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgY29sb3I6IGluaGVyaXQ7XG5cbiAgICBib3JkZXI6ICRjYXJvdXNlbC1idXR0b24tYm9yZGVyLXRoaWNrbmVzcyBzb2xpZCBjdXJyZW50Q29sb3I7XG4gICAgd2lkdGg6ICRjYXJvdXNlbC1idXR0b24tc2l6ZTtcbiAgICBoZWlnaHQ6ICRjYXJvdXNlbC1idXR0b24tc2l6ZTtcblxuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gICAgfVxuICB9XG5cbiAgPiBsaS5zbGljay1hY3RpdmUgYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gIH1cblxuICA+IGxpOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBtYXJnaW4tbGVmdDogJGNhcm91c2VsLWJ1dHRvbi1zcGFjZS1iZXR3ZWVuO1xuICB9XG59XG4iLCIkdG9wLXNwYWNpbmc6IHMoeC1sYXJnZSk7XG4kYm90dG9tLXNwYWNpbmc6IHMoeC1sYXJnZSk7XG4kaXRlbS1saW5lLXNwYWNpbmc6IHMobWVkaXVtKTtcbiRsaW5lLXdpZHRoOiA1MHB4O1xuJGxpbmUtdG9wLXNwYWNpbmc6IHMoeC1sYXJnZSk7XG4kbGluZS1ib3R0b20tc3BhY2luZzogNTBweDtcbiRpbWFnZS1oZWlnaHQ6IDUwcHg7XG5cbi5mb290ZXIge1xuICBwYWRkaW5nOiAkdG9wLXNwYWNpbmcgMHB4ICRib3R0b20tc3BhY2luZyAwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAmX19sb2dvIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogNDBweCAhaW1wb3J0YW50O1xuXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxMDBtcyBlYXNlLWluLW91dDtcblxuICAgIGcge1xuICAgICAgICBmaWxsOiB3aGl0ZTtcbiAgICB9XG4gIH1cblxuICAmX19pbmZvIHtcblxuICB9XG5cbiAgJl9faW5mby1ibG9jayB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgJi0tbGlua3Mge1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1vYmlsZSkge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgfVxuICAgIH1cblxuICAgICYtLWljb25zIHtcbiAgICAgIG1hcmdpbi10b3A6IHMobWVkaXVtKTtcbiAgICB9XG5cbiAgICAmLS1sb2dvIHtcbiAgICAgIG1hcmdpbi10b3A6IHMobGFyZ2UpO1xuICAgIH1cbiAgfVxuXG5cblxuICAmX19saW5rIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogJGl0ZW0tbGluZS1zcGFjaW5nO1xuXG5cblxuXG4gICAgLmljb24tbGlua19fdGV4dCB7XG4gICAgICBjb2xvcjogYyhuZXV0cmFsLCB3aGl0ZSk7XG4gICAgfVxuXG5cbiAgICBzdmcge1xuICAgICAgZmlsbDogYyhuZXV0cmFsLCB3aGl0ZSk7XG4gICAgfVxuICB9XG5cbiAgJl9faW5mby1ibG9jay0taWNvbnMgJl9fbGluazpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICBtYXJnaW4tcmlnaHQ6IHMobGFyZ2UpO1xuXG4gIH1cblxuICAmX19pbmZvLWJsb2NrLS1saW5rcyAmX19saW5rOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgIG1hcmdpbi1yaWdodDogcyhsYXJnZSk7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUpIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG4gIH1cbn1cblxuXG4uaHItLXNob3J0IHtcbiAgICB3aWR0aDogNDhweDtcbiAgICBib3JkZXI6IDA7XG4gICAgb3V0bGluZTogMDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgd2hpdGU7XG5cbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4iLCIvLyBbMV0gdmVydGljYWxseSBjZW50ZXIgaW1hZ2Vcbi5oZWFkZXItbWluaW1hbCB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cbiAgcGFkZGluZy10b3A6IHMoeC1sYXJnZSk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy10b3A6IHMoeC1sYXJnZSkgKyAkaGVhZGVyLWhlaWdodDtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUpIHtcbiAgICBwYWRkaW5nLXRvcDogcyh4LWxhcmdlKSArICRoZWFkZXItaGVpZ2h0LW1vYmlsZTtcbiAgICBoZWlnaHQ6IDgwdmggIWltcG9ydGFudDtcbiAgfVxuXG5cbiAgJl9fY29udGFpbmVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gICZfX2ltYWdlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIHBhZGRpbmctYm90dG9tOiBzKGxhcmdlKTtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1vYmlsZSkge1xuICAgICAgdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgJl9faW1hZ2UtYWJzIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbWF4LXdpZHRoOiA3NSU7XG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuICAgICY6bm90KCYtLW1hbnVhbC1zcGFjZS1tb2JpbGUpIHtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUpIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgdG9wOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgICAgICBsZWZ0OiA1MCUgIWltcG9ydGFudDtcbiAgICAgICAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcblxuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyO1xuXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSAhaW1wb3J0YW50O1xuXG4gICAgICAgICYuaGVhZGVyLW1pbmltYWxfX2ltYWdlLWFicy0tc3BhY2Utb24tbW9iaWxlIHtcbiAgICAgICAgICB0b3A6IDUwJSAhaW1wb3J0YW50O1xuICAgICAgICAgIGJvdHRvbTogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1tYW51YWwtc3BhY2UtbW9iaWxlIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobW9iaWxlKSB7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmlzLWNlbnRlcmVkIHtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICB9XG4gIH1cblxuICAmX19pbWFnZXMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUpIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMTZweDtcbiAgICAgIG1hcmdpbi1yaWdodDogLTE2cHg7XG4gICAgfVxuICB9XG5cbiAgJl9fdGl0bGUsXG4gICZfX2ltYWdlLWFicyB7XG4gICAgLy8gd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICAvLyB0cmFuc2l0aW9uLWRlbGF5OiAxNm1zO1xuICAgIC8vIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgfVxuXG4gICZfX2ltYWdlIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gIH1cbn1cblxuXG4vLyBAVE9ET1xuLmhlYWRlci1taW5pbWFsLS1pbWFnZS1yaWdodCB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG59XG5cblxuLmhlYWRlci1taW5pbWFsLS1jZW50ZXJlZC1pbWFnZSAuaGVhZGVyLW1pbmltYWxfX2ltYWdlIHtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xuICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcbn1cblxuXG4uaGVhZGVyLW1pbmltYWwtLWhhcy1hYnMtaW1hZ2VzIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbiIsIiRob3RzcG90LWhvdHNwb3QtcmFkaXVzOiAxLjI1cmVtO1xuJGhvdHNwb3QtaG90c3BvdC1zaGFkb3c6IDAgMCAwLjI1cmVtIHJnYmEoMCwgMCwgMCwgMC42KTs7XG4kaG90c3BvdC1ob3RzcG90LXBvcHVwLXdpZHRoOiAxNXJlbTtcbiRob3RzcG90LWhvdHNwb3QtcG9wdXAtcGFkZGluZzogMC41cmVtO1xuXG4kaG90c3BvdC1ob3RzcG90LWFycm93LXNpemU6IDAuNXJlbTtcbiRob3RzcG90LWhvdHNwb3QtYXJyb3ctYm9yZGVyLWRlZmF1bHQ6ICRob3RzcG90LWhvdHNwb3QtYXJyb3ctc2l6ZSBzb2xpZCB0cmFuc3BhcmVudDtcbiRob3RzcG90LWhvdHNwb3QtYXJyb3ctZGlzdGFuY2UtZnJvbS1jb3JuZXI6IDAuM3JlbTtcblxuJGhvdHNwb3QtaG90c3BvdC1wb3B1cC1kaXN0YW5jZS1mcm9tLWhvdHNwb3Q6ICRob3RzcG90LWhvdHNwb3QtcmFkaXVzO1xuXG4kaG90c3BvdC1ob3RzcG90LXBvcHVwLWFycm93LXVwLWxlZnQtY29ybmVyOiB0cmFuc2xhdGUoLSRob3RzcG90LWhvdHNwb3QtcmFkaXVzICsgJGhvdHNwb3QtaG90c3BvdC1hcnJvdy1kaXN0YW5jZS1mcm9tLWNvcm5lciwgJGhvdHNwb3QtaG90c3BvdC1yYWRpdXMgKyAkaG90c3BvdC1ob3RzcG90LXBvcHVwLWRpc3RhbmNlLWZyb20taG90c3BvdCk7XG4kaG90c3BvdC1ob3RzcG90LXBvcHVwLWFycm93LXVwLXJpZ2h0LWNvcm5lcjogdHJhbnNsYXRlKC0kaG90c3BvdC1ob3RzcG90LXJhZGl1cyAgLSAkaG90c3BvdC1ob3RzcG90LXBvcHVwLXdpZHRoLCAkaG90c3BvdC1ob3RzcG90LXJhZGl1cyArICRob3RzcG90LWhvdHNwb3QtcG9wdXAtZGlzdGFuY2UtZnJvbS1ob3RzcG90KTtcbiRob3RzcG90LWhvdHNwb3QtcG9wdXAtYXJyb3ctcmlnaHQtdG9wLWNvcm5lcjogdHJhbnNsYXRlKC0kaG90c3BvdC1ob3RzcG90LXJhZGl1cyAtICRob3RzcG90LWhvdHNwb3QtcG9wdXAtd2lkdGggLSAkaG90c3BvdC1ob3RzcG90LWFycm93LXNpemUgLSAkaG90c3BvdC1ob3RzcG90LXBvcHVwLWRpc3RhbmNlLWZyb20taG90c3BvdCwgLSAkaG90c3BvdC1ob3RzcG90LWFycm93LWRpc3RhbmNlLWZyb20tY29ybmVyKTtcbiRob3RzcG90LWhvdHNwb3QtcG9wdXAtYXJyb3ctbGVmdC10b3AtY29ybmVyOiB0cmFuc2xhdGUoJGhvdHNwb3QtaG90c3BvdC1wb3B1cC1kaXN0YW5jZS1mcm9tLWhvdHNwb3QgLSAkaG90c3BvdC1ob3RzcG90LWFycm93LXNpemUsIC0gJGhvdHNwb3QtaG90c3BvdC1hcnJvdy1kaXN0YW5jZS1mcm9tLWNvcm5lcik7XG4kaG90c3BvdC1ob3RzcG90LXBvcHVwLWFycm93LWxlZnQtYm90dG9tLWNvcm5lcjogdHJhbnNsYXRlKCRob3RzcG90LWhvdHNwb3QtcG9wdXAtZGlzdGFuY2UtZnJvbS1ob3RzcG90IC0gJGhvdHNwb3QtaG90c3BvdC1hcnJvdy1zaXplLCAtICRob3RzcG90LWhvdHNwb3QtYXJyb3ctc2l6ZSk7XG4kaG90c3BvdC1ob3RzcG90LXBvcHVwLWFycm93LXJpZ2h0LWJvdHRvbS1jb3JuZXI6IHRyYW5zbGF0ZSgtICRob3RzcG90LWhvdHNwb3QtcG9wdXAtZGlzdGFuY2UtZnJvbS1ob3RzcG90ICAtICRob3RzcG90LWhvdHNwb3QtYXJyb3ctc2l6ZSAtJGhvdHNwb3QtaG90c3BvdC1yYWRpdXMgLSAkaG90c3BvdC1ob3RzcG90LXBvcHVwLXdpZHRoLCAtICRob3RzcG90LWhvdHNwb3QtYXJyb3ctc2l6ZSk7XG4kaG90c3BvdC1ob3RzcG90LXBvcHVwLWFycm93LWRvd24tbGVmdC1jb3JuZXI6IHRyYW5zbGF0ZSgtJGhvdHNwb3QtaG90c3BvdC1yYWRpdXMgKyAkaG90c3BvdC1ob3RzcG90LWFycm93LWRpc3RhbmNlLWZyb20tY29ybmVyLCAtICRob3RzcG90LWhvdHNwb3QtcG9wdXAtZGlzdGFuY2UtZnJvbS1ob3RzcG90IC0gJGhvdHNwb3QtaG90c3BvdC1hcnJvdy1zaXplKTtcbiRob3RzcG90LWhvdHNwb3QtcG9wdXAtYXJyb3ctZG93bi1yaWdodC1jb3JuZXI6IHRyYW5zbGF0ZSgtJGhvdHNwb3QtaG90c3BvdC1yYWRpdXMgLSAkaG90c3BvdC1ob3RzcG90LXBvcHVwLXdpZHRoLCAtICRob3RzcG90LWhvdHNwb3QtcG9wdXAtZGlzdGFuY2UtZnJvbS1ob3RzcG90IC0gJGhvdHNwb3QtaG90c3BvdC1hcnJvdy1zaXplKTtcblxuXG4uaG90c3BvdCB7XG4gIG1hcmdpbi10b3A6IHMobGFyZ2UpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLmhvdHNwb3RfX3NjcmVlbnNob3Qge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uaG90c3BvdF9faW1hZ2Uge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMDtcbn1cblxuLmhvdHNwb3RfX2l0ZW0ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbi5ob3RzcG90X19pdGVtLWRvdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHdpZHRoOiAkaG90c3BvdC1ob3RzcG90LXJhZGl1cztcbiAgaGVpZ2h0OiAkaG90c3BvdC1ob3RzcG90LXJhZGl1cztcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3BhY2l0eTogMTtcbiAgYm94LXNoYWRvdzogJGhvdHNwb3QtaG90c3BvdC1zaGFkb3c7XG59XG5cbi5ob3RzcG90X19pdGVtLXBvcHVwIHtcbiAgb3BhY2l0eTogMDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgd2lkdGg6ICRob3RzcG90LWhvdHNwb3QtcG9wdXAtd2lkdGg7XG4gIHBhZGRpbmc6ICRob3RzcG90LWhvdHNwb3QtcG9wdXAtcGFkZGluZztcbiAgei1pbmRleDogLTE7XG59XG5cbi5ob3RzcG90X19pdGVtLWFycm93IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3JkZXItdG9wOiAkaG90c3BvdC1ob3RzcG90LWFycm93LWJvcmRlci1kZWZhdWx0O1xuICAgIGJvcmRlci1yaWdodDogJGhvdHNwb3QtaG90c3BvdC1hcnJvdy1ib3JkZXItZGVmYXVsdDtcbiAgICBib3JkZXItYm90dG9tOiAkaG90c3BvdC1ob3RzcG90LWFycm93LWJvcmRlci1kZWZhdWx0O1xuICAgIGJvcmRlci1sZWZ0OiAkaG90c3BvdC1ob3RzcG90LWFycm93LWJvcmRlci1kZWZhdWx0O1xuICB9XG59XG5cbi5ob3RzcG90X19pdGVtLWFycm93LWxlZnQ6YWZ0ZXIge1xuICByaWdodDogMTAwJTtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiBjdXJyZW50Q29sb3I7XG59XG5cbi5ob3RzcG90X19pdGVtLWFycm93LXJpZ2h0OmFmdGVyIHtcbiAgbGVmdDogMTAwJTtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cblxuLmhvdHNwb3RfX2l0ZW0tYXJyb3ctdXA6YWZ0ZXIge1xuICBib3R0b206IDEwMCU7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cblxuLmhvdHNwb3RfX2l0ZW0tYXJyb3ctZG93bjphZnRlciB7XG4gIHRvcDogMTAwJTtcbiAgYm9yZGVyLXRvcC1jb2xvcjogY3VycmVudENvbG9yO1xufVxuXG4uaG90c3BvdF9faXRlbS1hcnJvdy1sZWZ0LWNvcm5lcjphZnRlciB7XG4gIGxlZnQ6ICRob3RzcG90LWhvdHNwb3QtYXJyb3ctZGlzdGFuY2UtZnJvbS1jb3JuZXI7XG59XG5cbi5ob3RzcG90X19pdGVtLWFycm93LXJpZ2h0LWNvcm5lcjphZnRlciB7XG4gIHJpZ2h0OiAkaG90c3BvdC1ob3RzcG90LWFycm93LWRpc3RhbmNlLWZyb20tY29ybmVyO1xufVxuXG4uaG90c3BvdF9faXRlbS1hcnJvdy10b3AtY29ybmVyOmFmdGVyIHtcbiAgdG9wOiAkaG90c3BvdC1ob3RzcG90LWFycm93LWRpc3RhbmNlLWZyb20tY29ybmVyO1xufVxuXG4uaG90c3BvdF9faXRlbS1hcnJvdy1ib3R0b20tY29ybmVyOmFmdGVyIHtcbiAgYm90dG9tOiAkaG90c3BvdC1ob3RzcG90LWFycm93LWRpc3RhbmNlLWZyb20tY29ybmVyO1xufVxuXG4uaG90c3BvdF9faXRlbS1yYWRpbyB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLmhvdHNwb3RfX2l0ZW0tcmFkaW86Y2hlY2tlZCB+IC5ob3RzcG90X19pdGVtLXBvcHVwIHtcbiAgb3BhY2l0eTogMTtcbiAgei1pbmRleDogMjtcbn1cblxuLyoqXG4gKiBEZWZpbmUgdGhlIGJhc2ljIHBvcHVwIHRyYW5zbGF0aW9ucyBiYXNlZCBvblxuICogdGhlIGFycm93IGRpcmVjdGlvbiBhbmQgYXJyb3cgY29ybmVyIHBvc2l0aW9uXG4gKi9cbi5ob3RzcG90X19pdGVtLWFycm93LXVwLmhvdHNwb3RfX2l0ZW0tYXJyb3ctbGVmdC1jb3JuZXIge1xuICB0cmFuc2Zvcm06ICRob3RzcG90LWhvdHNwb3QtcG9wdXAtYXJyb3ctdXAtbGVmdC1jb3JuZXI7XG59XG5cbi5ob3RzcG90X19pdGVtLWFycm93LXVwLmhvdHNwb3RfX2l0ZW0tYXJyb3ctcmlnaHQtY29ybmVyIHtcbiAgdHJhbnNmb3JtOiAkaG90c3BvdC1ob3RzcG90LXBvcHVwLWFycm93LXVwLXJpZ2h0LWNvcm5lcjtcbn1cblxuLmhvdHNwb3RfX2l0ZW0tYXJyb3ctcmlnaHQuaG90c3BvdF9faXRlbS1hcnJvdy10b3AtY29ybmVyIHtcbiAgdHJhbnNmb3JtOiAkaG90c3BvdC1ob3RzcG90LXBvcHVwLWFycm93LXJpZ2h0LXRvcC1jb3JuZXI7XG59XG5cbi5ob3RzcG90X19pdGVtLWFycm93LWxlZnQuaG90c3BvdF9faXRlbS1hcnJvdy10b3AtY29ybmVyIHtcbiAgdHJhbnNmb3JtOiAkaG90c3BvdC1ob3RzcG90LXBvcHVwLWFycm93LWxlZnQtdG9wLWNvcm5lcjtcbn1cblxuLmhvdHNwb3RfX2l0ZW0tYXJyb3ctbGVmdC5ob3RzcG90X19pdGVtLWFycm93LWJvdHRvbS1jb3JuZXIge1xuICB0cmFuc2Zvcm06ICRob3RzcG90LWhvdHNwb3QtcG9wdXAtYXJyb3ctbGVmdC1ib3R0b20tY29ybmVyO1xufVxuXG4uaG90c3BvdF9faXRlbS1hcnJvdy1yaWdodC5ob3RzcG90X19pdGVtLWFycm93LWJvdHRvbS1jb3JuZXIge1xuICB0cmFuc2Zvcm06ICRob3RzcG90LWhvdHNwb3QtcG9wdXAtYXJyb3ctcmlnaHQtYm90dG9tLWNvcm5lcjtcbn1cblxuLmhvdHNwb3RfX2l0ZW0tYXJyb3ctZG93bi5ob3RzcG90X19pdGVtLWFycm93LWxlZnQtY29ybmVyIHtcbiAgdHJhbnNmb3JtOiAkaG90c3BvdC1ob3RzcG90LXBvcHVwLWFycm93LWRvd24tbGVmdC1jb3JuZXI7XG59XG5cbi5ob3RzcG90X19pdGVtLWFycm93LWRvd24uaG90c3BvdF9faXRlbS1hcnJvdy1yaWdodC1jb3JuZXIge1xuICB0cmFuc2Zvcm06ICRob3RzcG90LWhvdHNwb3QtcG9wdXAtYXJyb3ctZG93bi1yaWdodC1jb3JuZXI7XG59XG4iLCIkaWNvbi1saW5rLXNwYWNlLWJldHdlZW46IHMoc21hbGwpO1xuXG4uaWNvbi1saW5rIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2l0aW9uOiAwLjRzIG9wYWNpdHkgO1xuICB3aWxsLWNoYW5nZTogb3BhY2l0eTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgY29sb3I6IGluaGVyaXQ7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cblxuICAmOmhvdmVyIHtcbiAgICBvcGFjaXR5OiAuNjtcbiAgfVxuICAmX19pY29uIHtcbiAgICB3aWR0aDogcyhtZWRpdW0pO1xuICAgIGhlaWdodDogcyhtZWRpdW0pO1xuICB9XG5cbiAgJl9fdGV4dCB7XG4gICAgbWFyZ2luLWxlZnQ6ICRpY29uLWxpbmstc3BhY2UtYmV0d2VlbjtcbiAgICAvLyBUT0RPOlxuXG4gIH1cbiAgJi0taGlkZS10ZXh0LW9uLW1vYmlsZSAmX190ZXh0IHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1vYmlsZSkge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmLS1ydGwge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgfVxuXG4gICYtLXJ0bCAmX190ZXh0IHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6ICRpY29uLWxpbmstc3BhY2UtYmV0d2VlbjtcbiAgfVxuXG4gICYtLXRleHQtb25seSAmX190ZXh0IHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gIH1cbn1cbiIsIiR2ZXJ0aWNhbC1wYWRkaW5nOiBzKG1lZGl1bSk7XG4kaG9yaXpvbnRhbC1wYWRkaW5nOiBzKG1lZGl1bSk7XG4kdGl0bGUtYm90dG9tLXNwYWNpbmc6IHMoc21hbGwpO1xuXG4uaW1hZ2UtbGluayB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gICZfX2NvbnRlbnQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6ICR2ZXJ0aWNhbC1wYWRkaW5nICRob3Jpem9udGFsLXBhZGRpbmc7XG4gICAgei1pbmRleDogMjtcbiAgfVxuXG4gICZfX292ZXJsYXkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgb3BhY2l0eTogLjM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yO1xuICAgIHRyYW5zaXRpb246IDAuMnMgb3BhY2l0eSwgdHJhbnNmb3JtIDAuM3MgZWFzZS1pbi1vdXQ7XG4gICAgd2lsbC1jaGFuZ2U6IG9wYWNpdHksIHRyYW5zZm9ybTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApIHNjYWxlWSgxKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyO1xuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIHotaW5kZXg6IDE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMzRweCwgMCk7O1xuICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIHRyYW5zZm9ybTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZS1pbi1vdXQsIHRyYW5zZm9ybSAwLjNzIGVhc2UtaW4tb3V0O1xuICB9XG5cblxuICAmX19zdWJ0aXRsZSB7XG4gICAgbWFyZ2luLXRvcDogcyh0aW55KTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMzRweCwgMCk7XG4gICAgd2lsbC1jaGFuZ2U6IG9wYWNpdHksIHRyYW5zZm9ybTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMsIHRyYW5zZm9ybSAwLjM1cyBjdWJpYy1iZXppZXIoLjEzLCAxLCAuNCwgMSk7XG4gICAgbGluZS1oZWlnaHQ6IDM0cHg7XG4gIH1cblxuICAmOmhvdmVyICZfX292ZXJsYXkge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMzRweCwgMCkgc2NhbGVZKDApO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjNzLCB0cmFuc2Zvcm0gMC41cyBlYXNlLWluLW91dDtcbiAgfVxuXG4gICY6aG92ZXIgJl9fdGl0bGUsXG4gICY6aG92ZXIgJl9fc3VidGl0bGUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cblxuICAmOmhvdmVyICZfX3RpdGxlIHtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zNXM7XG4gIH1cblxuICAmOmhvdmVyICZfX3N1YnRpdGxlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuMTVzO1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMzVzO1xuICB9XG59XG4iLCIuYmFubmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZDcwMDtcbiAgY29sb3I6ICMwMDA7XG4gIHBhZGRpbmc6IHMobWVkaXVtKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IHMoc21hbGwpO1xuICBmb250LXdlaWdodDogYm9sZDtcblxuICBhIHtcbiAgICBjb2xvcjogIzAwMDtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgfVxuXG4gICYgLnQtbGVhZCB7XG4gICAgZm9udC1mYW1pbHk6IEF2ZW5pciwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIH1cbn1cblxuLmludHJvIHtcbiAgJl9faGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cbiAgJl9fbG9nbyB7XG4gICAgd2lkdGg6IHMoeC1sYXJnZSk7XG4gICAgbWFyZ2luLXJpZ2h0OiBzKG1lZGl1bSk7XG4gIH1cbiAgJl9fdGl0bGUge1xuICAgIGZsZXg6IDE7XG4gIH1cblxuICAmX19ib2R5IHtcbiAgICBtYXJnaW4tdG9wOiBzKHNtYWxsKTtcbiAgICBvcGFjaXR5OiAwLjg7XG4gIH1cbn1cbiIsIiRpdGVtLXNwYWNpbmc6IDVweDtcbiRidXR0b24tdmVydGljYWwtc3BhY2luZzogODBweDtcbiRidXR0b24td2lkdGg6IDQwJTtcblxuLmxpc3QtcGFnZWFibGUge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgJjpub3QoLmlzLWV4cGFuZGVkKSAubGlzdC1wYWdlYWJsZV9faGlkZGVuLXByb2plY3RzIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgJl9fc2hvdy1tb3JlIHtcbiAgICBtYXJnaW46ICRidXR0b24tdmVydGljYWwtc3BhY2luZyAwcHg7XG4gICAgd2lkdGg6ICRidXR0b24td2lkdGg7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgJi5pcy1oaWRkZW4ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIiRpdGVtLXNwYWNpbmc6IHMobm9ybWFsKTtcbiRpY29uLXNwYWNpbmc6IHMobm9ybWFsKTtcbiRpY29uLXNpemU6IDEuMnJlbTtcblxuLmxpc3Qge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5saXN0X19pdGVtIHtcbiAgQGluY2x1ZGUgdHlwZSgncGFyYWdyYXBoLXNhbnMnKTtcbiAgZGlzcGxheTogZmxleDtcbiAgcGFkZGluZy10b3A6ICRpdGVtLXNwYWNpbmc7XG4gIHBhZGRpbmctYm90dG9tOiAkaXRlbS1zcGFjaW5nO1xuXG4gICY6Zmlyc3QtY2hpbGQge1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICB9XG4gICY6bGFzdC1jaGlsZCB7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gIH1cblxuICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIGhlaWdodDogMXB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yO1xuICAgICAgb3BhY2l0eTogLjI7XG4gICAgICBjb250ZW50OiAnJztcbiAgICB9XG4gIH1cbn1cblxuLmxpc3RfX2l0ZW0taWNvbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgc3ZnIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgIHdpZHRoOiAxZW07XG4gIH1cbn1cblxuLmxpc3QtLWRhcmsgLmxpc3RfX2l0ZW0taWNvbiBzdmcge1xuICAvLyBAVE9ETzogYWRkIHByb3BlcnQgY29sb3IgYXMgb3B0aW9uXG4gIGZpbGw6IGMoY2xpZW50LCBwYXljYWxsLXZpb2xldCk7XG4gIHN0cm9rZTogYyhjbGllbnQsIHBheWNhbGwtdmlvbGV0KTtcbiAgLy9vcGFjaXR5OiAuNjtcbn1cblxuLmxpc3Qge1xuICAmLS10aWNrIHtcbiAgICBzdHJva2U6IGN1cnJlbnRDb2xvcjtcblxuICAgIC5saXN0X19pdGVtLWljb24ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbiAgfVxuICAmLS1udW1iZXIge1xuICAgIGNvdW50ZXItcmVzZXQ6IG51bWJlci1jb3VudGVyO1xuXG4gICAgLmxpc3RfX2l0ZW0ge1xuICAgICAgY291bnRlci1pbmNyZW1lbnQ6IG51bWJlci1jb3VudGVyO1xuICAgIH1cblxuICAgIC5saXN0X19pdGVtOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBjb3VudGVyKG51bWJlci1jb3VudGVyKSAnLic7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIH1cbiAgfVxuXG4gICYtLXRpY2ssXG4gICYtLW51bWJlciB7XG4gICAgLmxpc3RfX2l0ZW0tY29udGVudCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6ICRpY29uLXNwYWNpbmc7XG4gICAgfVxuXG4gICAgLmxpc3RfX2l0ZW0ge1xuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiJGRldmljZS1tYXJnaW4tYm90dG9tOiAzLjVlbTtcbiRzZXBhcmF0b3Itd2lkdGg6IDEwMHB4O1xuJHNlcGFyYXRvci1oZWlnaHQ6IDJweDtcbiRzZXBhcmF0b3ItbWFyZ2luOiAzLjVlbTtcbiRzbG9nYW4tbWFyZ2luLWJvdHRvbTogNmVtO1xuXG4ucHJvamVjdC1oZWFkZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogYXV0bztcblxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5wcm9qZWN0LWhlYWRlcl9faGlnaGxpZ2h0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tYm90dG9tOiAkZGV2aWNlLW1hcmdpbi1ib3R0b207XG59XG5cbi5wcm9qZWN0LWhlYWRlcl9fYmFja2dyb3VuZCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiA4NSU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbiAgbGVmdDogMDtcblxuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG59XG5cbi8vIERldmljZXNcbi5wcm9qZWN0LWhlYWRlcl9fZGV2aWNlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IGF1dG8gYXV0byAwIGF1dG87XG4gIHBhZGRpbmctdG9wOiAxMCU7XG59XG5cbi8vIERldmljZSBzcGVjaWZpYyBwb3NpdGlvbmluZ1xuLnByb2plY3QtaGVhZGVyX19kZXZpY2UuaXBob25lLTZzIHtcbiAgd2lkdGg6IDI1JTtcbiAgbWluLXdpZHRoOiAxNTBweDtcbiAgbWF4LXdpZHRoOiAyNTBweDtcbn1cbi5wcm9qZWN0LWhlYWRlcl9fZGV2aWNlLmRlbGwtaGQge1xuICB3aWR0aDogNzAlO1xuICBtaW4td2lkdGg6IDE1MHB4O1xuICBtYXgtd2lkdGg6IDg0MHB4O1xufVxuLnByb2plY3QtaGVhZGVyX19kZXZpY2UubWFjYm9vay1haXIge1xuICB3aWR0aDogNzAlO1xuICBtaW4td2lkdGg6IDE1MHB4O1xuICBtYXgtd2lkdGg6IDg0MHB4O1xufVxuXG4ucHJvamVjdC1oZWFkZXJfX2RldmljZS5pcGFkLWFpcjIge1xuICB3aWR0aDogNzAlO1xuICBtYXgtd2lkdGg6IDg0MHB4O1xuICBtaW4td2lkdGg6IDE1MHB4O1xufVxuXG4ucHJvamVjdC1oZWFkZXJfX3NlcGFyYXRvciB7XG4gIHdpZHRoOiAkc2VwYXJhdG9yLXdpZHRoO1xuICBoZWlnaHQ6ICRzZXBhcmF0b3ItaGVpZ2h0O1xuICBtYXJnaW46ICRzZXBhcmF0b3ItbWFyZ2luIGF1dG87XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogYyhuZXV0cmFsLCBzaWx2ZXIpO1xufVxuXG4ucHJvamVjdC1oZWFkZXJfX3Nsb2dhbiB7XG4gIG1hcmdpbi1ib3R0b206ICRzbG9nYW4tbWFyZ2luLWJvdHRvbTtcbn1cbiIsIi8qIE11bHRpcGxlIGJveCBzaGFkb3dzIHRvIGFjaGlldmUgdGhlIGdsYXNzIGxlbnMgZWZmZWN0ICovXG4kc2NyZWVuc2hvdC1tYWduaWZ5aW5nLWxlbnMtYm94LXNoYWRvdzogMCAwIDAgN3B4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NSksIDAgMCA3cHggN3B4IHJnYmEoMCwgMCwgMCwgMC4yNSksIGluc2V0IDAgMCA0MHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuXG4vKiBMZW5zICovXG4kc2NyZWVuc2hvdC1tYWduaWZ5aW5nLWxlbnMtc2l6ZTogMTByZW07XG5cbi8qIFRleHQgd2hpbGUgbG9hZGluZyAqL1xuJHNjcmVlbnNob3QtbWFnbmlmeWluZy1sb2FkaW5nLWNvbG9yOiBjKG5ldXRyYWwsIHdoaXRlKTtcbiRzY3JlZW5zaG90LW1hZ25pZnlpbmctbG9hZGluZy1iYWNrZ3JvdW5kOiBjKG5ldXRyYWwsIGJsYWNrKTtcbiRzY3JlZW5zaG90LW1hZ25pZnlpbmctbG9hZGluZy1jb250ZW50OiAnTG9hZGluZy4uLic7XG4kc2NyZWVuc2hvdC1tYWduaWZ5aW5nLXRleHQtc2hhZG93OiAwIDAgMnB4IHJnYmEoNTEsIDUxLCA1MSwgMC44KTtcbiRzY3JlZW5zaG90LW1hZ25pZnlpbmctbG9hZGluZy1jb250ZW50LXRvcDogNDUlO1xuXG5cbi5zY3JlZW5zaG90LW1hZ25pZnlpbmcge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cblxuaHRtbC5tYWduaWZ5aW5nID4gYm9keSB7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cblxuLm1hZ25pZnkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5tYWduaWZ5LWxlbnMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAkc2NyZWVuc2hvdC1tYWduaWZ5aW5nLWxlbnMtc2l6ZTtcbiAgaGVpZ2h0OiAkc2NyZWVuc2hvdC1tYWduaWZ5aW5nLWxlbnMtc2l6ZTtcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgYm94LXNoYWRvdzogJHNjcmVlbnNob3QtbWFnbmlmeWluZy1sZW5zLWJveC1zaGFkb3c7XG4gIGN1cnNvcjogbm9uZTtcbiAgZGlzcGxheTogbm9uZTtcbiAgei1pbmRleDogMjtcbn1cbi5tYWduaWZ5LWxlbnMubG9hZGluZyB7XG4gIGJhY2tncm91bmQ6ICRzY3JlZW5zaG90LW1hZ25pZnlpbmctbG9hZGluZy1iYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDAuNzU7XG59XG4ubWFnbmlmeS1sZW5zLmxvYWRpbmc6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogJHNjcmVlbnNob3QtbWFnbmlmeWluZy1sb2FkaW5nLWNvbnRlbnQtdG9wO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgY29sb3I6ICRzY3JlZW5zaG90LW1hZ25pZnlpbmctbG9hZGluZy1jb2xvcjtcbiAgY29udGVudDogJHNjcmVlbnNob3QtbWFnbmlmeWluZy1sb2FkaW5nLWNvbnRlbnQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1zaGFkb3c6ICRzY3JlZW5zaG90LW1hZ25pZnlpbmctdGV4dC1zaGFkb3c7XG59XG4iLCIkc2VjdGlvbi1zcGFjaW5nLXZlcnRpY2FsOiA0LjVyZW07XG4kc2VjdGlvbi1zcGFjaW5nLXZlcnRpY2FsLW1vYmlsZTogMi41cmVtO1xuXG4kc2VjdGlvbi1zZWN0aW9uLW51bWJlci1kaXZpZGVyLXNwYWNpbmctaG9yaXpvbnRhbDogcyhzbWFsbCk7XG4kc2VjdGlvbi1zZWN0aW9uLW51bWJlci1tYXJnaW46IDFyZW07XG5cbi5zZWN0aW9uIHtcblxuICBwYWRkaW5nLXRvcDogJHNlY3Rpb24tc3BhY2luZy12ZXJ0aWNhbDtcbiAgcGFkZGluZy1ib3R0b206ICRzZWN0aW9uLXNwYWNpbmctdmVydGljYWw7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUpIHtcbiAgICBwYWRkaW5nLXRvcDogJHNlY3Rpb24tc3BhY2luZy12ZXJ0aWNhbC1tb2JpbGU7XG4gICAgcGFkZGluZy1ib3R0b206ICRzZWN0aW9uLXNwYWNpbmctdmVydGljYWwtbW9iaWxlO1xuICB9XG5cblxuICAmX19zZWN0aW9uLXRpdGxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkc2VjdGlvbi1zZWN0aW9uLW51bWJlci1tYXJnaW47XG5cbiAgfVxuXG4gICZfX3NlY3Rpb24tbnVtYmVyIHtcbiAgICBtYXJnaW4tcmlnaHQ6IHMoc21hbGwpO1xuICAgIC8vICY6YWZ0ZXIge1xuICAgIC8vICAgY29udGVudDogXCJcIjtcbiAgICAvLyAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAvL1xuICAgIC8vICAgd2lkdGg6IDFweDtcbiAgICAvLyAgIG1hcmdpbjogMCAkc2VjdGlvbi1zZWN0aW9uLW51bWJlci1kaXZpZGVyLXNwYWNpbmctaG9yaXpvbnRhbDtcbiAgICAvLyAgIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgICAvLyAgIC8vIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg1MCUpO1xuICAgIC8vICAgLy8gdHJhbnNmb3JtOiBza2V3KDEwZGVnKTtcbiAgICAvLyAgIG9wYWNpdHk6IC44O1xuICAgIC8vIH1cbiAgfVxufVxuXG4uc2VjdGlvbi1zbWFsbCB7XG4gIHBhZGRpbmctdG9wOiAycmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcbn1cblxuXG4uYXJvb3YtcmVzZWFyY2gge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctdG9wOiAzMHZoO1xuICBwYWRkaW5nLWJvdHRvbTogMzB2aDtcblxuICAubC1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xuICB9XG5cbiAgLm5hcnJhdGl2ZSBwIHtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgfVxuXG4gICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2NvbnRlbnQvaW1hZ2VzL2Fyb292L3Jlc2VhcmNoLmpwZyk7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4gICAgb3BhY2l0eTogLjI7XG4gIH1cbn1cbiIsIiR0ZWFtLWl0ZW0tbmFtZS1tYXJnaW4tdG9wOiBzKHNtYWxsKTtcbiRpdGVtLWl0ZW0tc3BhY2UtYmV0d2VlbjogcyhtZWRpdW0pO1xuJGl0ZW0taXRlbS1zcGFjZS1icHR0b206IHMobWVkaXVtKTtcbiRpdGVtLW1pbi13aWR0aDogMjAwcHg7XG4kdGVhbS1tZW1iZXJzLXNwYWNpbmc6IHMoeC1sYXJnZSk7XG5cbi50ZWFtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IGF1dG87XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnRlYW1fX21lbWJlcnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtYXJnaW46ICR0ZWFtLW1lbWJlcnMtc3BhY2luZyAwIDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi50ZWFtX19pdGVtIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nLWxlZnQ6ICRpdGVtLWl0ZW0tc3BhY2UtYmV0d2Vlbi8yO1xuICBwYWRkaW5nLXJpZ2h0OiAkaXRlbS1pdGVtLXNwYWNlLWJldHdlZW4vMjtcbiAgbWFyZ2luLWJvdHRvbTogJGl0ZW0taXRlbS1zcGFjZS1icHR0b207XG4gIG1pbi13aWR0aDogJGl0ZW0tbWluLXdpZHRoO1xuICBtYXgtd2lkdGg6IDEwMCU7XG5cblxuICAmLW5hbWUge1xuICAgIG1hcmdpbi10b3A6ICR0ZWFtLWl0ZW0tbmFtZS1tYXJnaW4tdG9wO1xuICB9XG59XG5cbi50ZWFtLmMtY29sb3ItYXJvb3YtLWNvbG9yIGJsb2NrcXVvdGUge1xuICBtYXgtd2lkdGg6IDg4MHB4O1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuIiwiJHRlc3RpbW9uaWFsLWNhbGxvdXQtbWFyZ2luLXRvcDogMnJlbTtcbiR0ZXN0aW1vbmlhbC1hdmF0YXItaGVpZ2h0OiA4cmVtO1xuJHRlc3RpbW9uaWFsLXNlY3Rpb24tcGFkZGluZy10b3A6IDQuNXJlbTtcbiR0ZXN0aW1vbmlhbC1hdXRob3ItbWFyZ2luLXRvcDogc2l6ZShtZWRpdW0pO1xuXG4vKiBBdmF0YXIgcG9zaXRpb25lZCBoYWxmIGhpcyBoZWlnaHQgYW5kIHRha2luZyBpbnRvIGNvbnNpZGVyYXRpb24gc2VjdGlvbiBwYWRkaW5nIHRvcCAqL1xuJHRlc3RpbW9uaWFsLWF2YXRhci1wb3NpdGlvbi1oYWxmLWhlaWdodDogJHRlc3RpbW9uaWFsLWF2YXRhci1oZWlnaHQvMiArICR0ZXN0aW1vbmlhbC1zZWN0aW9uLXBhZGRpbmctdG9wO1xuXG4udGVzdGltb25pYWwge1xuICAmX19hdmF0YXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IC0gJHRlc3RpbW9uaWFsLWF2YXRhci1wb3NpdGlvbi1oYWxmLWhlaWdodCBhdXRvIDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgJl9fY2FsbG91dCB7XG4gICAgbWFyZ2luLXRvcDogJHRlc3RpbW9uaWFsLWNhbGxvdXQtbWFyZ2luLXRvcDtcbiAgfVxuXG4gICZfX2F1dGhvciB7XG4gICAgbWFyZ2luLXRvcDogJHRlc3RpbW9uaWFsLWF1dGhvci1tYXJnaW4tdG9wO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gICZfX25hbWUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG4iLCIvLyBzdHJpcC11bml0IHJlbW92ZXMgdW5pdHMgZnJvbSB2YWx1ZXNcbi8vIGJ5IHRoZSBicmlnaHQgQEh1Z29HaXJhdWRlbCBodHRwOi8vaHVnb2dpcmF1ZGVsLmNvbS8yMDEzLzA4LzEyL3Nhc3MtZnVuY3Rpb25zL1xuLy8gQHBhcmFtICB7W251bWJlcl19ICR2YWx1ZSB3aXRoIHVuaXRcbi8vIEByZXR1cm4ge1tudW1iZXJdfSB3aXRob3V0IHVuaXRcbkBmdW5jdGlvbiBzdHJpcC11bml0KCR2YWx1ZSkge1xuICBAcmV0dXJuICR2YWx1ZSAvICgkdmFsdWUgKiAwICsgMSk7XG59XG5cbi8vcHgycGVyY2VudCBjYWxjdWxhdGVzIHRoZSByZWxhdGl2ZSB3aXRoIGJhc2VkIG9uIHR3byB2YWx1ZXNcbi8vQHBhcmFtICB7W251bWJlcl19ICRzaXplXG4vL0BwYXJhbSAge1tudW1iZXJdfSAkY29udGV4dFNpemVcbi8vQHJldHVybiB7W251bWJlciBpbiAlXX1cbkBmdW5jdGlvbiBweDJwZXJjZW50ICgkc2l6ZSwkY29udGV4dFNpemU6ICRzLWRlc2lnbi13aWR0aCkge1xuXHRAcmV0dXJuICgkc2l6ZSAvICRjb250ZXh0U2l6ZSkgKiAxMDAlO1xufVxuXG4vLyBpc1JlbGF0aXZlIGRldGVybWluZXMgaWYgdGhlIG51bWJlciBpcyBhIHJlbGF0aXZlIHZhbHVlXG4vLyBAcGFyYW0gICB7bnVtYmVyfSAgJHZhbFxuLy8gQHJldHVybnMge0Jvb2xlYW59XG5AZnVuY3Rpb24gaXNSZWxhdGl2ZSgkdmFsKSB7XG4gICRyZWxVbml0czogcmVtIGVtO1xuICBAZWFjaCAkdW5pdCBpbiAkcmVsVW5pdHMge1xuICAgIEBpZiAkdW5pdCA9PSB1bml0KCR2YWwpIHtcbiAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgQHJldHVybiBmYWxzZTtcbn1cblxuLy8gcHgycmVsIHR1cm5zIHB4IHZhbHVlcyBpbiB0byBSRU0ncyBiYXNlIG9uIHRoZSBiYXNlIGZvbnQgc2l6ZVxuLy8gQHBhcmFtICB7W251bWJlcl19ICRweCBXaXNoZWQgZm9udCBzaXplXG4vLyBAcGFyYW0gIHtbbnVtYmVyXX0gJGJhc2VTaXplIFJlZmVyZW5jZSBTaXplICh1c3VhbGx5IEhUTUwvQm9keSBmb250IHNpemUpXG4vLyBAcGFyYW0gIHtbbnVtYmVyXX0gJHVuaXQgb2YgdGhlIGNvbnZlcnRlZCB2YWx1ZVxuLy8gQHJldHVybiB7W251bWJlcl19IFJlbGF0aXZlIHZhbHVlIGluYy4gdW5pdFxuQGZ1bmN0aW9uIHB4MnJlbCgkcHgsICRiYXNlU2l6ZTogJHQtZGVmYXVsdC1mb250LXNpemUsICR1bml0OiByZW0pIHtcbiAgJHJldHVybjogbnVsbDtcbiAgQGVhY2ggJHZhbCBpbiAkcHgge1xuICAgIEBpZiB0eXBlLW9mKCR2YWwpID09IG51bWJlciBhbmQgdW5pdCgkdmFsKSA9PSAncHgnIHtcbiAgICAgICRyZXR1cm46IGFwcGVuZCgkcmV0dXJuLCAoICR2YWwgLyAkYmFzZVNpemUgKSAqIDEpICsgJHVuaXQ7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkcmV0dXJuOiBhcHBlbmQoJHJldHVybiwgJHZhbCk7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gJHJldHVybjtcbn1cblxuLy8gcmVsMnB4IGNvbnZlcnRzIHJlbGF0aXZlIHZhbHVlcyBpbiB0byBQWCB2YWx1ZXNcbi8vIEBwYXJhbSAgIHtbbnVtYmVyXX0gJHJlbCAgICAgICAgICAgcmVsYXRpdmUgbnVtYmVyIHRvIGNvbnZlcnRcbi8vIEBwYXJhbSAgIHtbbnVtYmVyXX0gJGJhc2VTaXplICAgICAgbXVsdGlwbGljYXRvclxuLy8gQHJldHVybnMge1tudW1iZXJdfSAgICAgICAgICAgICAgICB2YWx1ZSBpbiBweFxuQGZ1bmN0aW9uIHJlbDJweCgkcmVsLCAkYmFzZVNpemU6ICR0LWRlZmF1bHQtZm9udC1zaXplKSB7XG4gICRyZXR1cm46IG51bGw7XG4gIEBlYWNoICR2YWwgaW4gJHJlbCB7XG4gICAgQGlmIHR5cGUtb2YoJHZhbCkgPT0gbnVtYmVyIGFuZCBpc1JlbGF0aXZlKCR2YWwpIHtcbiAgICAgICRyZXR1cm46IGFwcGVuZCgkcmV0dXJuLCBzdHJpcC11bml0KCR2YWwpICogc3RyaXAtdW5pdCgkYmFzZVNpemUpICsgcHgpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHJldHVybjogYXBwZW5kKCRyZXR1cm4sICR2YWwpO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuICRyZXR1cm47XG59XG5cblxuLy8gcmVtRmFsbGJhY2sgdHVybnMgYXR0cmlidXRlcyBjb250YWluaW5nIHJlbSBpbnRvIHRoZXJlIFBYIGZhbGxiYWNrXG4vLyBhbHNvIG1hZ2ljYWxseSBkb2VzIHRoZSBvcHBvc2l0ZSAodHVybnMgYXR0cmlidXRlcyBjb250YWluaW5nIFBYIGluIHJlbSlcbi8vIGV4YW1wbGVzOiBodHRwOi8vc2Fzc21laXN0ZXIuY29tL2dpc3QvZTZiZDA2MTA4OGYyODljNjY0YTlcbi8vIEBwYXJhbSAgIHtbc3RyaW5nXX0gJGF0dHIgW2Rlc2NyaXB0aW9uXVxuLy8gQHBhcmFtICAge1tsaXN0XX0gJHZhbHMgW2Rlc2NyaXB0aW9uXVxuQG1peGluIHJlbUZhbGxiYWNrKCRhdHRyLCR2YWxzKSB7XG4gICR2YWx1ZXM6IHB4MnJlbCgkdmFscyk7XG4gICRmYWxsYmFjazogcmVsMnB4KCR2YWxzKTtcblxuICBAaWYgJGZhbGxiYWNrICE9ICR2YWx1ZXMge1xuICAgICN7JGF0dHJ9OiAkZmFsbGJhY2s7XG4gIH1cbiAgI3skYXR0cn06ICR2YWx1ZXM7XG59XG5cbi8vIHNpemUgb3V0cHV0cyAkc2l6ZXNcbi8vIEBwYXJhbSAgIHtbc3RyaW5nXX0gJG5hbWUgICAgICAgICAga2V5IGZyb20gJHNpemVzIG1hcFxuLy8gQHJldHVybnMge1tudW1iZXJdfVxuQGZ1bmN0aW9uIHNpemUoJG5hbWU6IG1lZGl1bSwgJG11bHRpcGxpZXI6IDEpIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRzaXplcywgJG5hbWUpIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJHNpemVzLCAkbmFtZSkgKiAkbXVsdGlwbGllcjtcbiAgfVxuXG4gIEB3YXJuIFwiVW5rbm93biBgI3skbmFtZX1gIGluICRzaXplcy5cIjtcbiAgQHJldHVybiBudWxsO1xufVxuXG5AbWl4aW4gYnAoJGxhYmVsKSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRsYWJlbCkge1xuICAgICR3aWR0aDogbWFwLWdldCgkYnJlYWtwb2ludHMsICRsYWJlbCk7XG4gICAgQGlmIG1peGluLWV4aXN0cyhicmVha3BvaW50KSB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRsYWJlbCkge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBtZWRpYSAjeyR3aWR0aH0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuIFwiYCN7JGxhYmVsfWAgaXMgbm90IGEgdmFsaWQga2V5IGluIGAkYnJlYWtwb2ludHNgLlwiO1xuICB9XG59XG4iLCIkdGltZWxpbmUtY29sb3I6IGMoY2xpZW50LCBsb2NhbCk7XG4kdGltZWxpbmUtY29sb3ItbGlnaHRlbjogbGlnaHRlbihjKGNsaWVudCwgbG9jYWwpLCA0MCUpO1xuJHRpbWVsaW5lLWl0ZW0taW5uZXItc3BhY2luZ3M6IDI1cHg7XG4kdGltZWxpbmUtZG90cy12ZXJ0aWNhbC1zcGFjaW5nOiA1MHB4O1xuJHRpbWVsaW5lLWRvdHMtZGltZW50aW9uOiAzMHB4O1xuJHRpbWVsaW5lLWRvdHMtaW5uZXItc3BoZXJlLXNwYWNpbmc6IDRweDtcbiR0aW1lbGluZS1kb3RzLWJvcmRlci13aWR0aDogMnB4O1xuJHRpbWVsaW5lLWRvdHMtbGluZS13aWR0aDogMnB4O1xuXG4udGltZWxpbmUtaG9yaXpvbnRhbCB7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi50aW1lbGluZS1ob3Jpem9udGFsX19pdGVtIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGZsZXgtZmxvdzogcm93O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgb3V0bGluZTogbm9uZTtcblxuICAmID4gKiB7XG4gICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgIG1hcmdpbi1yaWdodDogJHRpbWVsaW5lLWl0ZW0taW5uZXItc3BhY2luZ3M7XG4gICAgfVxuICB9XG59XG5cbi50aW1lbGluZS1ob3Jpem9udGFsX19kb3RzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAkdGltZWxpbmUtZG90cy12ZXJ0aWNhbC1zcGFjaW5nIDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgLy8gUmVtb3ZlIHVsIGRlZmF1bHQgcGFkZGluZy1zdGFydFxuICB1bCB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxufVxuXG4udGltZWxpbmUtaG9yaXpvbnRhbF9fZG90cy1saW5lIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAwO1xuICBjb250ZW50OiBcIlwiO1xuICBoZWlnaHQ6ICR0aW1lbGluZS1kb3RzLWxpbmUtd2lkdGg7XG4gIHdpZHRoOiAwO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogMDtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGltZWxpbmUtY29sb3I7XG5cbiAgdHJhbnNpdGlvbjogd2lkdGggLjJzIGVhc2UtaW4tb3V0O1xufVxuXG4udGltZWxpbmUtaG9yaXpvbnRhbF9fZG90czo6YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAwO1xuICBjb250ZW50OiBcIlwiO1xuICBoZWlnaHQ6ICR0aW1lbGluZS1kb3RzLWxpbmUtd2lkdGg7XG4gIHdpZHRoOiAxMDAlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogMDtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGltZWxpbmUtY29sb3ItbGlnaHRlbjtcbn1cblxuLnRpbWVsaW5lLWhvcml6b250YWxfX2RvdHMgLnNsaWNrLWRvdHMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgKiB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuXG4gIGxpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogJHRpbWVsaW5lLWRvdHMtZGltZW50aW9uO1xuXG4gICAgLy8gU3BoZXJlIGJvcmRlclxuICAgIGJ1dHRvbiB7XG4gICAgICAvLyBSZXNldCBkZWZhdWx0IGJ1dHRvbiBzdHlsZXNcbiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlcjogbm9uZTtcblxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogMTtcblxuICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgYm9yZGVyLWNvbG9yOiAkdGltZWxpbmUtY29sb3I7XG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgYm9yZGVyLXdpZHRoOiAkdGltZWxpbmUtZG90cy1ib3JkZXItd2lkdGg7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB3aWR0aDogJHRpbWVsaW5lLWRvdHMtZGltZW50aW9uO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgLjJzIGVhc2UtaW4tb3V0O1xuXG4gICAgICAvLyBTcGhlcmUgY2lyY2xlXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIHRvcDogJHRpbWVsaW5lLWRvdHMtaW5uZXItc3BoZXJlLXNwYWNpbmc7XG4gICAgICAgIGJvdHRvbTogJHRpbWVsaW5lLWRvdHMtaW5uZXItc3BoZXJlLXNwYWNpbmc7XG4gICAgICAgIGxlZnQ6ICR0aW1lbGluZS1kb3RzLWlubmVyLXNwaGVyZS1zcGFjaW5nO1xuICAgICAgICByaWdodDogJHRpbWVsaW5lLWRvdHMtaW5uZXItc3BoZXJlLXNwYWNpbmc7XG5cbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuMnMgZWFzZS1pbi1vdXQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gSGlnaGxpZ2h0IHRoZSBzcGhlcmUgYm9yZGVyIG9uIGhvdmVyXG4gICAgJjpob3ZlciBidXR0b24ge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkdGltZWxpbmUtY29sb3I7XG4gICAgICB0cmFuc2l0aW9uLWRlbGF5OiAuMnM7XG4gICAgfVxuXG4gICAgJi5zbGljay1hY3RpdmUge1xuICAgICAgLy8gSGlnaGxpZ2h0IHRoZSBjdXJyZW50IHNlbGVjdGVkIHNwaGVyZSBib3JkZXIgKGFsc28gb24gaG92ZXIpXG4gICAgICBidXR0b24ge1xuICAgICAgICBib3JkZXItY29sb3I6ICR0aW1lbGluZS1jb2xvcjtcbiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogLjJzO1xuICAgICAgfVxuXG4gICAgICAvLyBIaWdobGlnaHQgdGhlIGN1cnJlbnQgc3BoZXJlIGNpcmNsZVxuICAgICAgYnV0dG9uOjphZnRlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0aW1lbGluZS1jb2xvcjtcbiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogLjJzO1xuICAgICAgfVxuXG4gICAgICAvLyBVbmhpZ2hsaWdodCBhbGwgdGhlIGZvbGxvd2luZyBzcGhlcmUgYm9yZGVyXG4gICAgICAmIH4gbGkgYnV0dG9uIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkdGltZWxpbmUtY29sb3ItbGlnaHRlbjtcbiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogLjJzO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiJHRpbWVsaW5lLWNvbG9yOiBjKGNsaWVudCwgbG9jYWwpO1xuJHRpbWVsaW5lLWNvbG9yLWxpZ2h0ZW46IGxpZ2h0ZW4oJHRpbWVsaW5lLWNvbG9yLCAxMCUpO1xuXG4kdGltZWxpbmUtYmFja2dyb3VuZC1jb2xvcjogYyhuZXV0cmFsLCB3aGl0ZSk7XG5cbiR0aW1lbGluZS1kaXN0YW5jZS10by1jb250ZW50OiBzaXplKGxhcmdlKTtcbiR0aW1lbGluZS1kaXN0YW5jZS10by1jb250ZW50LW1vYmlsZTogc2l6ZShtZWRpdW0pO1xuJHRpbWVsaW5lLWRpc3RhbmNlLWJldHdlZW4taXRlbXM6IDRyZW07XG5cbiR0aW1lbGluZS1saW5lLXdpZHRoOiAwLjA3NXJlbTtcbiR0aW1lbGluZS1jdXJzb3ItbGluZS13aWR0aDogMC4xNXJlbTtcblxuJHRpbWVsaW5lLWN1cnNvci1kb3Qtc2l6ZTogMS41cmVtO1xuJHRpbWVsaW5lLWN1cnNvci1kb3Qtd2lkdGg6IDAuMXJlbTtcbiR0aW1lbGluZS1pdGVtLWRvdC1zaXplOiAgMXJlbTtcbiR0aW1lbGluZS1jdXJzb3ItbGluZS1oZWlnaHQ6IDAuNXJlbTtcblxuJHRpbWVsaW5lLXNwYWNpbmctYmV0d2VlbjogNnJlbTtcblxuXG4udGltZWxpbmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctbGVmdDogJHRpbWVsaW5lLWRpc3RhbmNlLXRvLWNvbnRlbnQ7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUpIHtcbiAgICBwYWRkaW5nLWxlZnQ6ICR0aW1lbGluZS1kaXN0YW5jZS10by1jb250ZW50LW1vYmlsZTtcbiAgfVxuICAgLyogdGhpcyBpcyB0aGUgdmVydGljYWwgbGluZSAqL1xuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogJHRpbWVsaW5lLWxpbmUtd2lkdGg7XG4gICAgYmFja2dyb3VuZDogJHRpbWVsaW5lLWNvbG9yLWxpZ2h0ZW47XG4gIH1cblxuICAmX19jdXJzb3Ige1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBib3R0b206IDA7XG4gIH1cblxuICAmX19jdXJzb3ItbGluZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogKCR0aW1lbGluZS1jdXJzb3ItZG90LXNpemUgLyAyKTtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAkdGltZWxpbmUtY3Vyc29yLWxpbmUtd2lkdGg7XG4gICAgYm90dG9tOiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGVZKDApO1xuICAgIGJhY2tncm91bmQ6ICR0aW1lbGluZS1jb2xvcjtcbiAgICBtYXJnaW4tbGVmdDogLSgkdGltZWxpbmUtY3Vyc29yLWRvdC13aWR0aCAvIDIpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBjZW50ZXI7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDE2bXMgZWFzZTtcbiAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xuICB9XG5cbiAgJl9fY3Vyc29yLWRvdCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAtICR0aW1lbGluZS1pdGVtLWRvdC1zaXplIC8gMjtcbiAgICB3aWR0aDogJHRpbWVsaW5lLWl0ZW0tZG90LXNpemU7XG4gICAgaGVpZ2h0OiAkdGltZWxpbmUtaXRlbS1kb3Qtc2l6ZTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogJHRpbWVsaW5lLWNvbG9yO1xuICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gIH1cbn1cblxuLnRpbWVsaW5lX19pdGVtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogJHRpbWVsaW5lLWRpc3RhbmNlLWJldHdlZW4taXRlbXM7XG4gIH1cblxuICAmLWNvbnRlbnQge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1vYmlsZSkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgJi1jb250ZW50LWNlbGwge1xuICAgIGZsZXg6IDE7XG4gIH1cblxuXG4gICYtY29udGVudC1jZWxsLS1pbWFnZSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgJi1kb3Qge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAkdGltZWxpbmUtY3Vyc29yLWRvdC1zaXplO1xuICAgIGhlaWdodDogJHRpbWVsaW5lLWN1cnNvci1kb3Qtc2l6ZTtcbiAgICBib3JkZXI6ICgkdGltZWxpbmUtY3Vyc29yLWRvdC13aWR0aCAvIDIpIHNvbGlkICR0aW1lbGluZS1jb2xvci1saWdodGVuO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICBtYXJnaW4tbGVmdDogLSAkdGltZWxpbmUtZGlzdGFuY2UtdG8tY29udGVudDtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1vYmlsZSkge1xuICAgICAgbWFyZ2luLWxlZnQ6IC0gJHRpbWVsaW5lLWRpc3RhbmNlLXRvLWNvbnRlbnQtbW9iaWxlO1xuICAgIH1cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGltZWxpbmUtYmFja2dyb3VuZC1jb2xvcjtcbiAgICB6LWluZGV4OiAxO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgd2lsbC1jaGFuZ2U6IG9wYWNpdHk7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICB3aWR0aDogJHRpbWVsaW5lLWl0ZW0tZG90LXNpemU7XG4gICAgICBoZWlnaHQ6ICR0aW1lbGluZS1pdGVtLWRvdC1zaXplO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIGJhY2tncm91bmQ6ICR0aW1lbGluZS1jb2xvcjtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuMnMgZWFzZS1pbi1vdXQ7XG4gICAgfVxuXG4gICAgJi5pcy1hY3RpdmUge1xuICAgICAgYm9yZGVyOiAkdGltZWxpbmUtY3Vyc29yLWRvdC13aWR0aCBzb2xpZCAkdGltZWxpbmUtY29sb3ItbGlnaHRlbjtcbiAgICB9XG5cbiAgICAmLmlzLWFjdGl2ZTpiZWZvcmUge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgfVxuICAmOmZpcnN0LWNoaWxkICYtZG90IHtcbiAgICB0b3A6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgMCk7XG4gICAgYm9yZGVyOiAkdGltZWxpbmUtY3Vyc29yLWRvdC13aWR0aCBzb2xpZCAkdGltZWxpbmUtY29sb3ItbGlnaHRlbjtcbiAgfVxuXG4gICY6bGFzdC1jaGlsZCAmLWRvdCB7XG4gICAgdG9wOiBhdXRvO1xuICAgIGJvdHRvbTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAwKTtcbiAgfVxufVxuXG4udGltZWxpbmUtLW1pZGRsZSB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUpIHtcbiAgICBwYWRkaW5nLWxlZnQ6ICR0aW1lbGluZS1kaXN0YW5jZS10by1jb250ZW50LW1vYmlsZTtcbiAgfVxuXG4gICY6YmVmb3JlLFxuICAudGltZWxpbmVfX2N1cnNvcixcbiAgLnRpbWVsaW5lX19pdGVtLWRvdCB7XG4gICAgbGVmdDogNTAlO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobW9iaWxlKSB7XG4gICAgICBsZWZ0OiAwO1xuICAgIH1cblxuICB9XG5cbiAgLnRpbWVsaW5lX19pdGVtLWRvdCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUpIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtICR0aW1lbGluZS1kaXN0YW5jZS10by1jb250ZW50LW1vYmlsZTtcbiAgICB9XG4gIH1cblxuICAudGltZWxpbmVfX2l0ZW06bnRoLWNoaWxkKGV2ZW4pIC50aW1lbGluZV9faXRlbS1jb250ZW50LWNlbGwtLXRleHQge1xuICAgIG9yZGVyOiAtMTtcbiAgfVxufVxuXG4udGltZWxpbmVfX2l0ZW0tY29udGVudC1jZWxsLS1pbWFnZSA+IGltZyB7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuLnRpbWVsaW5lX19pdGVtIHtcbiAgJi1jb250ZW50LWNlbGwtLWltYWdlIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAkdGltZWxpbmUtc3BhY2luZy1iZXR3ZWVuLzI7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUpIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgfVxuICB9XG5cbiAgJi1jb250ZW50LWNlbGwtLXRleHQge1xuICAgIHBhZGRpbmctbGVmdDogJHRpbWVsaW5lLXNwYWNpbmctYmV0d2Vlbi8yO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobW9iaWxlKSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgfVxuICB9XG5cbiAgLnRpbWVsaW5lLS1taWRkbGUgJjpudGgtY2hpbGQoZXZlbikge1xuICAgIC50aW1lbGluZV9faXRlbS1jb250ZW50LWNlbGwtLWltYWdlIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICBwYWRkaW5nLWxlZnQ6ICR0aW1lbGluZS1zcGFjaW5nLWJldHdlZW4vMjtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobW9iaWxlKSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAudGltZWxpbmVfX2l0ZW0tY29udGVudC1jZWxsLS10ZXh0IHtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6ICR0aW1lbGluZS1zcGFjaW5nLWJldHdlZW4vMjtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobW9iaWxlKSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbn1cbiIsIkBpbXBvcnQgJ21vZHVsYXJzY2FsZS1zYXNzL3N0eWxlc2hlZXRzL21vZHVsYXJzY2FsZSc7XG5cbi8qXG4gKiBBIG1vZGVybiB0aGVtZSBmb3IgcG9ydGZvbGlvIHBhZ2VzIHVzaW5nIHNhbnMgc2VyaWYgdHlwZWZhY2VzXG4gKiBhbmQgYSBtb2R1bGFyIHNjYWxlIHdpdGggZmx1aWQgdHlwZS4gVGhpcyB0aGVtZSBhbHNvIGluY2x1ZGVzIGFcbiAqIGRhcmsgdmFyaWF0aW9uIHRoYXQgY2FuIGJlIHVzZWQgdG8gZW1waGFzaXplIGEgc2VjdGlvbi5cbiAqL1xuXG4gJG1vZHVsYXJzY2FsZTogKFxuIDMyMHB4OiAoXG4gICBiYXNlOiAxN3B4LFxuICAgcmF0aW86IDEuMixcbiApLFxuIDEyMDBweDogKFxuICAgYmFzZTogMThweCxcbiAgIHJhdGlvOiAxLjM1LFxuICksXG4pO1xuXG4vKlxuKiBEb27igJl0IGltcG9ydCBhbnkgb3RoZXIgZm9udHMgaGVyZSwgYmVjYXVzZSB0aGV5IHdvdWxkIGJlIGxvYWRlZCBvbiBldmVyeSBwYWdlLlxuKiBJZGVhbGx5LCB0aGVtZXMgY291bGQgYmUgaW5jbHVkZWQgaW4gdGhlIGhlYWQgb2YgYSBwYWdlIHRvIGF2b2lkXG4qIGxvYWRpbmcgZ2xvYmFsIHN0eWxlcy4gQnkgZGVzaWduLCB0aGlzIGlzIG5vdCBwb3NzaWJsZSBiZWNhdXNlIHRoZSBcIm1ldGFcIiBibG9ja1xuKiBpbiBsYXlvdXQgdGVtcGxhdGVzIHdpbGwgaW5qZWN0IGN1c3RvbSBtZXRhIHRhZ3MsIHN1Y2ggYXMgYSBjdXN0b20gQ1NTIGZpbGUsXG4qIGJlZm9yZSBvdGhlciBzdHlsZXMuIEZvbnRzIGFyZSBsb2FkZWQgZnJvbSB0aGUgcGFnZSBsYXlvdXQgZm9yIG5vdy5cblxuKiBAaW1wb3J0IHVybCgnaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVNvdXJjZStTYW5zK1Bybzo0MDAsNDAwaSw2MDAsNzAwJyk7XG5cbiovXG5cbi50aGVtZS0tbW9kZXJuIC5uYXJyYXRpdmUge1xuXG4gIGZvbnQtc2l6ZTogbXMoMCk7XG5cbiAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcCwgdWwsIGxpLCBibG9ja3F1b3RlIHtcbiAgICBmb250LWZhbWlseTogIFwiQXZlbmlyIE5leHRcIiwgXCJBdmVuaXJcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICB9XG5cbiAgLyogUmVtb3ZlIGVsZW1lbnQgc3BlY2lmaWMgc3BhY2luZyAqL1xuICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG5cbiAgLypcbiAgICogVGFnc1xuICAgKi9cblxuICBoMSB7XG4gICAgQGluY2x1ZGUgbXMtcmVzcG9uZChmb250LXNpemUsIDQsICRtb2R1bGFyc2NhbGUpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBsaW5lLWhlaWdodDogMS4yNTtcbiAgICBtYXJnaW4tdG9wOiAxNSU7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgfVxuXG4gIGgyIHtcbiAgICBAaW5jbHVkZSBtcy1yZXNwb25kKGZvbnQtc2l6ZSwgMiwgJG1vZHVsYXJzY2FsZSk7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgfVxuXG4gIGgzIHtcbiAgICBAaW5jbHVkZSBtcy1yZXNwb25kKGZvbnQtc2l6ZSwgMSwgJG1vZHVsYXJzY2FsZSk7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgfVxuXG4gIGg0IHtcbiAgICBAaW5jbHVkZSBtcy1yZXNwb25kKGZvbnQtc2l6ZSwgMCwgJG1vZHVsYXJzY2FsZSk7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgfVxuXG4gIHAsIHVsLCBsaSwgYmxvY2txdW90ZSB7XG4gICAgQGluY2x1ZGUgbXMtcmVzcG9uZChmb250LXNpemUsIDAsICRtb2R1bGFyc2NhbGUpO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIH1cblxuICBhIHtcbiAgICBjb2xvcjogYmxhY2s7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cblxuICBzdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIH1cblxuICBibG9ja3F1b3RlIHtcbiAgICBib3JkZXItbGVmdDogOHB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICBtYXJnaW46IDEuNWVtIDAgMS41ZW0gMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gICAgb3BhY2l0eTogMC43O1xuICB9XG5cbiAgZmlnY2FwdGlvbiB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgaHIge1xuICAgIG1hcmdpbjogM3JlbSAwO1xuICB9XG5cbiAgLypcbiAgICogU3BhY2luZ1xuICAgKi9cblxuICAvKiBTcGVjaWZpYyBzdHlsZXMgZm9yIHByb2plY3QgdGl0bGUgKyBzdWJ0aXRsZSBjb21ibyAqL1xuICBoMSArIGgyIHtcbiAgICBtYXJnaW4tdG9wOiAwLjVlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBvcGFjaXR5OiAwLjU7XG4gIH1cblxuICBoMiArIGgzIHtcbiAgICBtYXJnaW4tdG9wOiAycmVtO1xuICB9XG5cbiAgZmlndXJlICsgcCxcbiAgcCArIGZpZ3VyZSB7XG4gICAgbWFyZ2luLXRvcDogMS41cmVtO1xuICB9XG5cbiAgaDMgKyBwLFxuICBwICsgcCB7XG4gICAgbWFyZ2luLXRvcDogMWVtO1xuICB9XG5cbiAgdWwgKyBoMyxcbiAgcCArIGgzLFxuICBmaWd1cmUgKyBoMyB7XG4gICAgbWFyZ2luLXRvcDogM3JlbTtcbiAgfVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cbi50aGVtZS0tbW9kZXJuLWRhcmsgLm5hcnJhdGl2ZSB7XG5cbiAgLypcbiAgICogU3R5bGVzIGZvciBhIGZlYXR1cmUgYmxvY2sgdGhhdCBjYW4gYmUgdXNlZCB0byBlbXBoYXNpemUgYSBzZWN0aW9uLlxuICAgKiBBcHBsaWVzIGEgZGFyayB0aGVtZS5cbiAgICovXG5cbiAgIGNvbG9yOiB3aGl0ZTtcblxuICAvKiBDb250cm9sIHJlbmRlcmluZyBmb3IgbGlnaHQgdGV4dCBvbiBkYXJrIGJhY2tncm91bmQgKi9cbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG5cbiAgLypcbiAgICogVGFnc1xuICAgKi9cblxuICBoMiB7XG5cbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgIEBpbmNsdWRlIG1zLXJlc3BvbmQoZm9udC1zaXplLCAzLCAkbW9kdWxhcnNjYWxlKTtcblxuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgcCB7XG4gICAgb3BhY2l0eTogMC44O1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cblxuICBociB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTtcbiAgICBib3JkZXI6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiA0MHB4IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC8qXG4gICAqIFNwYWNpbmdcbiAgICovXG5cbiAgIC8qIFR3ZWFrIGZvciBtdWx0aS1jb2x1bW4gYmFzZWxpbmUgYWxpZ25tZW50ICovXG4gICBoNCArIHAge1xuICAgICBtYXJnaW4tdG9wOiAwLjJyZW07XG4gICB9XG5cbiAgIC8qXG4gICAgKiBNb2JpbGUgbGF5b3V0IGNoYW5nZXNcbiAgICAqL1xuXG4gICBAbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcblxuICAgICAvKiBDaGFuZ2Ugc2lkZS1ieS1zaWRlIGdyaWQgbGF5b3V0IHRvIGEgc3RhY2sgKi9cbiAgICAgLmwtZ3JpZCB7XG4gICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgIH1cblxuICAgICAubC1vbmUtaGFsZiArIC5sLW9uZS1oYWxmIHtcbiAgICAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gICAgIH1cblxuICAgICAubC1vbmUtaGFsZiB7XG4gICAgICAgd2lkdGg6IDEwMCU7XG4gICAgIH1cbiAgIH1cbn1cbiIsIkBmdW5jdGlvbiBtcy1mdW5jdGlvbigkdjogMCwgJGJhc2U6IGZhbHNlLCAkcmF0aW86IGZhbHNlLCAkdGhyZWFkOiBmYWxzZSwgJHNldHRpbmdzOiAkbW9kdWxhcnNjYWxlKSB7XG5cbiAgLy8gUGFyc2Ugc2V0dGluZ3NcbiAgJG1zLXNldHRpbmdzOiBtcy1zZXR0aW5ncygkYmFzZSwkcmF0aW8sJHRocmVhZCwkc2V0dGluZ3MpO1xuICAkYmFzZTogbnRoKCRtcy1zZXR0aW5ncywgMSk7XG4gICRyYXRpbzogbnRoKCRtcy1zZXR0aW5ncywgMik7XG5cbiAgLy8gUmVuZGVyIHRhcmdldCB2YWx1ZXMgZnJvbSBzZXR0aW5ncy5cbiAgQGlmIHVuaXQoJHJhdGlvKSAhPSAnJyB7XG4gICAgJHJhdGlvOiBtcy10YXJnZXQoJHJhdGlvLCRiYXNlKVxuICB9XG5cbiAgLy8gRmFzdCBjYWxjIGlmIG5vdCBtdWx0aSBzdHJhbmRlZFxuICBAaWYobGVuZ3RoKCRiYXNlKSA9PSAxKSB7XG4gICAgQHJldHVybiBtcy1wb3coJHJhdGlvLCAkdikgKiAkYmFzZTtcbiAgfVxuXG4gIC8vIENyZWF0ZSBuZXcgYmFzZSBhcnJheVxuICAkbXMtYmFzZXM6IG50aCgkYmFzZSwxKTtcblxuICAvLyBOb3JtYWxpemUgYmFzZSB2YWx1ZXNcbiAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCBsZW5ndGgoJGJhc2UpIHtcbiAgICAvLyBpbml0aWFsIGJhc2UgdmFsdWVcbiAgICAkbXMtYmFzZTogbnRoKCRiYXNlLCRpKTtcbiAgICAvLyBJZiB0aGUgYmFzZSBpcyBiaWdnZXIgdGhhbiB0aGUgbWFpbiBiYXNlXG4gICAgQGlmKCRtcy1iYXNlID4gbnRoKCRiYXNlLDEpKSB7XG4gICAgICAvLyBkaXZpZGUgdGhlIHZhbHVlIHVudGlsIGl0IGFsaWducyB3aXRoIG1haW4gYmFzZS5cbiAgICAgIEB3aGlsZSgkbXMtYmFzZSA+IG50aCgkYmFzZSwxKSkge1xuICAgICAgICAkbXMtYmFzZTogJG1zLWJhc2UgLyAkcmF0aW87XG4gICAgICB9XG4gICAgICAkbXMtYmFzZTogJG1zLWJhc2UgKiAkcmF0aW87XG4gICAgfVxuICAgIC8vIElmIHRoZSBiYXNlIGlzIHNtYWxsZXIgdGhhbiB0aGUgbWFpbiBiYXNlLlxuICAgIEBlbHNlIGlmICgkbXMtYmFzZSA8IG50aCgkYmFzZSwxKSkge1xuICAgICAgLy8gcHVtcCB1cCB0aGUgdmFsdWUgdW50aWwgaXQgYWxpZ25zIHdpdGggbWFpbiBiYXNlLlxuICAgICAgQHdoaWxlICRtcy1iYXNlIDwgbnRoKCRiYXNlLDEpIHtcbiAgICAgICAgJG1zLWJhc2U6ICRtcy1iYXNlICogJHJhdGlvO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBQdXNoIGludG8gbmV3IGFycmF5XG4gICAgJG1zLWJhc2VzOiBhcHBlbmQoJG1zLWJhc2VzLCRtcy1iYXNlKTtcbiAgfVxuXG4gIC8vIFNvcnQgYXJyYXkgZnJvbSBzbWFsbGVzdCB0byBsYXJnZXN0LlxuICAkbXMtYmFzZXM6IG1zLXNvcnQoJG1zLWJhc2VzKTtcblxuICAvLyBGaW5kIHN0ZXAgdG8gdXNlIGluIGNhbGN1bGF0aW9uXG4gICR2dGVwOiBmbG9vcigkdiAvIGxlbmd0aCgkbXMtYmFzZXMpKTtcbiAgLy8gRmluZCBiYXNlIHRvIHVzZSBpbiBjYWxjdWxhdGlvblxuICAkbXMtYmFzZTogcm91bmQoKCR2IC8gbGVuZ3RoKCRtcy1iYXNlcykgLSAkdnRlcCkgKiBsZW5ndGgoJG1zLWJhc2VzKSkgKyAxO1xuXG4gIEByZXR1cm4gbXMtcG93KCRyYXRpbywgJHZ0ZXApICogbnRoKCRtcy1iYXNlcywkbXMtYmFzZSk7XG59IiwiLy8gR2VuZXJhdGUgY2FsYygpIGZ1bmN0aW9uXG4vLyBiYXNlZCBvbiBNaWtlIFJpZXRobXVsbGVyJ3MgUHJlY2lzZSBjb250cm9sIG92ZXIgcmVzcG9uc2l2ZSB0eXBvZ3JhcGh5XG4vLyBodHRwOi8vbWFkZWJ5bWlrZS5jb20uYXUvd3JpdGluZy9wcmVjaXNlLWNvbnRyb2wtcmVzcG9uc2l2ZS10eXBvZ3JhcGh5L1xuQGZ1bmN0aW9uIG1zLWZsdWlkKCR2YWwxOiAxZW0sICR2YWwyOiAxZW0sICRicmVhazE6IDAsICRicmVhazI6IDApIHtcbiAgJGRpZmY6IG1zLXVuaXRsZXNzKCR2YWwyKSAtIG1zLXVuaXRsZXNzKCR2YWwxKTtcblxuICAvLyB2MSArICh2MiAtIHYxKSAqICggKDEwMHZ3IC0gYjEpIC8gYjIgLSBiMSApXG4gIEByZXR1cm4gY2FsYyggI3skdmFsMX0gKyAje21zLXVuaXRsZXNzKCR2YWwyKSAtIG1zLXVuaXRsZXNzKCR2YWwxKX0gKiAoICggMTAwdncgLSAjeyRicmVhazF9KSAvICN7bXMtdW5pdGxlc3MoJGJyZWFrMikgLSBtcy11bml0bGVzcygkYnJlYWsxKX0gKSApO1xufVxuXG4vLyBNYWluIHJlc3BvbnNpdmUgbWl4aW5cbkBtaXhpbiBtcy1yZXNwb25kKCRwcm9wLCAkdmFsLCAkbWFwOiAkbW9kdWxhcnNjYWxlLCAkbXMtaW1wb3J0YW50OiBmYWxzZSkge1xuICAkYmFzZTogJG1zLWJhc2U7XG4gICRyYXRpbzogJG1zLXJhdGlvO1xuXG4gICRmaXJzdC13cml0ZTogdHJ1ZTtcbiAgJGxhc3QtYnJlYWs6IG51bGw7XG5cbiAgJGltcG9ydGFudDogJyc7XG5cbiAgQGlmICRtcy1pbXBvcnRhbnQgPT0gdHJ1ZSB7XG4gICAgJGltcG9ydGFudDogJyAhaW1wb3J0YW50JztcbiAgfVxuXG4gIC8vIGxvb3AgdGhyb3VnaCBhbGwgc2V0dGluZ3Mgd2l0aCBhIGJyZWFrcG9pbnQgdHlwZSB2YWx1ZVxuICBAZWFjaCAkdiwgJHMgaW4gJG1hcCB7XG4gICAgQGlmIHR5cGUtb2YoJHYpID09IG51bWJlciB7XG4gICAgICBAaWYgdW5pdCgkdikgIT0gJycge1xuXG4gICAgICAgIC8vIFdyaXRlIG91dCB0aGUgZmlyc3QgdmFsdWUgd2l0aG91dCBhIG1lZGlhIHF1ZXJ5LlxuICAgICAgICBAaWYgJGZpcnN0LXdyaXRlIHtcbiAgICAgICAgICAjeyRwcm9wfTogdW5xdW90ZShcIiN7bXMtZnVuY3Rpb24oJHZhbCwgJHRocmVhZDogJHYsICRzZXR0aW5nczogJG1hcCl9I3skaW1wb3J0YW50fVwiKTtcblxuICAgICAgICAgIC8vIE5vdCB0aGUgZmlyc3Qgd3JpdGUgYW55bW9yZSwgcmVzZXQgdG8gZmFsc2UgdG8gbW92ZSBvbi5cbiAgICAgICAgICAkZmlyc3Qtd3JpdGU6IGZhbHNlO1xuICAgICAgICAgICRsYXN0LWJyZWFrOiAkdjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFdyaXRlIGludGVybWVkaWF0ZSBicmVha3BvaW50cy5cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbGFzdC1icmVhaykgYW5kIChtYXgtd2lkdGg6ICR2KSB7XG4gICAgICAgICAgICAkdmFsMTogbXMtZnVuY3Rpb24oJHZhbCwgJHRocmVhZDogJGxhc3QtYnJlYWssICRzZXR0aW5nczogJG1hcCk7XG4gICAgICAgICAgICAkdmFsMjogbXMtZnVuY3Rpb24oJHZhbCwgJHRocmVhZDogJHYsICRzZXR0aW5nczogJG1hcCk7XG4gICAgICAgICAgICAjeyRwcm9wfTogdW5xdW90ZShcIiN7bXMtZmx1aWQoJHZhbDEsJHZhbDIsJGxhc3QtYnJlYWssJHYpfSN7JGltcG9ydGFudH1cIik7XG4gICAgICAgICAgfVxuICAgICAgICAgICRsYXN0LWJyZWFrOiAkdjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFdyaXRlIHRoZSBsYXN0IGJyZWFrcG9pbnQuXG4gIEBpZiAkbGFzdC1icmVhayB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRsYXN0LWJyZWFrKSB7XG4gICAgICAjeyRwcm9wfTogdW5xdW90ZShcIiN7bXMtZnVuY3Rpb24oJHZhbCwgJHRocmVhZDogJGxhc3QtYnJlYWssICRzZXR0aW5nczogJG1hcCl9I3skaW1wb3J0YW50fVwiKTtcbiAgICB9XG4gIH1cbn0iLCIuYWxpZ24tY2VudGVyIHsgdGV4dC1hbGlnbjogY2VudGVyO30iLCJ2aWRlbyxcbi5zaGFkb3cge1xuICBib3gtc2hhZG93OiAwcHggNHB4IDMwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMXB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMik7XG59XG5cbi5sLXBhZ2Uge1xuICBtYXJnaW4tdG9wOiAkaGVhZGVyLWhlaWdodDtcbiAgJjpub3QoLmwtcGFnZS0tc3BhY2VsZXNzKSB7XG4gICAgbWluLWhlaWdodDogY2FsYygxMDB2aCAtICN7JGhlYWRlci1oZWlnaHR9KTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cblxuICAmX19jb250ZW50IHtcbiAgICBmbGV4OiAxO1xuICB9XG5cbiAgJl9fZm9vdGVyIHtcblxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtb2JpbGUpIHtcbiAgICBtYXJnaW4tdG9wOiAkaGVhZGVyLWhlaWdodC1tb2JpbGU7XG4gICAgbWluLWhlaWdodDogYXV0bztcbiAgfVxuICAmLS1zcGFjZWxlc3Mge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCAobW9iaWxlKSB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cbiAgfVxufVxuXG4udmlkZW8tLW5vLXNoYWRvdyB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG5cblxuLmRvd25sb2FkLWJhZGdlIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IDMwcHg7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCAobW9iaWxlKSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxufVxuXG4uZG93bmxvYWQtYmFkZ2VfX2J1dHRvbiB7XG4gIGhlaWdodDogMTAwcHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tdG9wOiA0LjVyZW07XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCAobW9iaWxlKSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGhlaWdodDogODBweDtcbiAgfVxufVxuXG4uZG93bmxvYWQtYmFkZ2VfX2xlZ2FsLW5vdGljZSB7XG4gICAgQGluY2x1ZGUgdHlwZShjYXB0aW9uKTtcbiAgICBvcGFjaXR5OiAuNTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQgKG1vYmlsZSkge1xuICAgICAgZm9udC1zaXplOiAuN3JlbTtcbiAgICB9XG4gIH1cblxuXG5pbWcuZG93bmxvYWQtYmFkZ2VfX2ltZyB7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IGF1dG87XG4gIG1hcmdpbi10b3A6IDA7XG59XG4iXX0= */
