/* z-indexes are large due to the fact that things might change
 * in the future. In order to account for scalability, this gives
 * room to make changes and not break the entire site, meaning 
 * we won't have to go in and refactor a lot of our code.
 */
/*  ----------------------------------------------------
    INPUTS
  ----------------------------------------------------- */
/*  ----------------------------------------------------
    CONTAINERS
  ----------------------------------------------------- */
/* -------------------
	Base result styles
-------------------- */
/* -------------------
	Variations
-------------------- */
/* -----------------------------------------------------
  Base styling
----------------------------------------------------- */
/* -----------------------------------------------------
  With secondary section
----------------------------------------------------- */
/* -----------------------------------------------------
  Checkbox tags
----------------------------------------------------- */
/* -----------------------------------------------------
  States
----------------------------------------------------- */
#market-sectors .header .subheading {
  color: #DF3035;
}
@media (min-width: 1681px) {
  #market-sectors article-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

#market-sectors .callToAction, #home .market-sectors\:list .callToAction {
  display: none !important;
}

@media (max-height: 1000px) {
  body.market-sectors side-bar > div {
    position: relative !important;
  }
}
body.market-sectors side-bar form {
  position: relative;
  z-index: 1;
  background-color: #131f6b;
  padding: var(--gutter1);
}
body.market-sectors side-bar form .freeform-label {
  color: white;
}
body.market-sectors side-bar form label {
  color: #FFFFFF;
}
body.market-sectors side-bar form .form-intro {
  background-color: #DF3035;
  color: white;
  text-align: center;
  margin: var(--gutter1-) var(--gutter1-) calc(60px + var(--gutter1)) var(--gutter1-);
  padding: var(--gutter1);
  position: relative;
}
body.market-sectors side-bar form .form-intro .heading {
  font-size: 3rem;
  font-weight: bold;
  margin-bottom: var(--gap);
  text-wrap: balance;
  text-transform: uppercase;
  color: white;
}
body.market-sectors side-bar form .form-intro p {
  color: white;
}
body.market-sectors side-bar form .form-intro::after {
  content: "";
  height: 60px;
  width: 100%;
  background-color: #DF3035;
  display: block;
  position: absolute;
  left: 0;
  top: calc(100% - 1px);
  clip-path: polygon(50% 100%, 0 0, 100% 0);
}
body.market-sectors side-bar form .freeform-row:has(.form-intro) {
  display: contents;
}
body.market-sectors side-bar form .freeform-row:has(.form-intro) .freeform-column {
  display: contents;
}
body.market-sectors side-bar:has(form) {
  display: flex;
  flex-direction: column;
}
body.market-sectors side-bar:has(form) featured-image {
  position: relative;
  height: 100%;
}
@media (max-width: 1400px) {
  body.market-sectors side-bar:has(form) {
    margin-bottom: 0 !important;
  }
  body.market-sectors side-bar:has(form) > div {
    margin-bottom: 0 !important;
  }
  body.market-sectors side-bar:has(form) featured-image {
    display: none;
  }
}

@media (min-width: 981px) {
  .market-sectors\:articles {
    margin-bottom: var(--spacer1);
  }
  .market-sectors\:articles .callToAction {
    display: none;
  }
}
@media (max-width: 980px) {
  .market-sectors\:articles .callToAction {
    display: flex;
    grid-column: 1/-1;
  }
  .market-sectors\:articles .result-item, .market-sectors\:articles > h3.heading {
    display: none;
  }
}
@media (max-width: 1400px) {
  .market-sectors\:articles {
    margin-top: var(--spacer1);
  }
}
.market-sectors\:articles > .heading {
  font-size: 1.25em;
  line-height: 1.3;
  color: #DF3035;
  text-transform: uppercase;
  margin-bottom: var(--gutter1);
}
.market-sectors\:articles .details {
  display: none;
}

.market-sectors\:list {
  position: relative;
  background: linear-gradient(120deg, #10124d 20%, #131f6b 80%);
  display: grid;
  isolation: isolate;
  grid-template-columns: 240px 1fr;
  gap: 0 var(--gutter1);
}
.market-sectors\:list .details {
  display: none;
}
.market-sectors\:list .intro {
  text-transform: uppercase;
  grid-row: 1;
  background-color: #131f6b;
  padding: var(--gutter1) var(--gutter2) var(--gutter1) var(--gutter1);
  display: flex;
  flex-direction: column;
  clip-path: polygon(0% 100%, 0% 0%, 100% 0%, 55% 100%);
}
.market-sectors\:list .intro .heading {
  font-size: 1.25em;
  line-height: 1.3;
}
.market-sectors\:list .intro .sub-heading {
  order: -1;
  color: #DF3035;
  font-size: 0.9375em;
  line-height: 1.6;
  margin-bottom: var(--gap);
}
.market-sectors\:list article-grid {
  grid-gap: var(--gap);
  padding: 0 clamp(200px, 20vw, 300px) 0 0;
  grid-row: 1;
  position: relative;
  display: block;
  -moz-columns: 160px;
       columns: 160px;
  -moz-column-gap: var(--gutter2);
       column-gap: var(--gutter2);
  padding-block: var(--gutter1);
}
.market-sectors\:list .result-item {
  display: contents;
}
.market-sectors\:list .result-item .result-title {
  display: contents;
}
.market-sectors\:list .result-item .result-title a {
  -moz-column-break-inside: avoid;
       break-inside: avoid;
  display: block;
  padding-block: var(--gutter0);
}
.market-sectors\:list .result-item .result-title a::after {
  content: initial;
}
.market-sectors\:list .result-item .result-title a::before {
  content: "";
  height: 1rem;
  width: 1rem;
  display: inline-block;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 9 11'%3E%3Cpath d='m.577.816 6.005 4.245L.577 9.306' fill='none' stroke='%23df3035' stroke-width='2'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center center;
  margin-inline-end: 1ch;
  margin-inline-start: -2rem;
}
.market-sectors\:list .result-item .result-image {
  clip-path: polygon(0% 100%, 35% 0%, 100% 0%, 100% 100%);
  position: absolute;
  pointer-events: none;
  right: 0;
  top: 0;
  bottom: 0;
  width: clamp(200px, 20vw, 300px);
  height: 100%;
  grid-row: 1;
  opacity: 0;
  transition: opacity var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  transition-delay: 0.3s;
  z-index: 1;
}
.market-sectors\:list .result-item .result-image img {
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.market-sectors\:list .result-item:has(a:hover) .result-image {
  opacity: 1;
  transition-delay: 0s;
}
.market-sectors\:list .result-item:not(:has(a:hover)):first-of-type .result-image {
  opacity: 1;
}
.market-sectors\:list .button {
  position: absolute;
  bottom: 0;
  z-index: 2;
  right: 0;
}
@container (width < 900px) {
  .market-sectors\:list {
    display: flex;
    flex-direction: column;
  }
  .market-sectors\:list article-grid {
    padding-inline: var(--gutter3);
    padding-block-end: calc(clamp(200px, 20vw, 300px) + var(--gutter1));
  }
  .market-sectors\:list .intro {
    clip-path: initial;
    padding: var(--gutter2);
    padding-bottom: 50px;
  }
  .market-sectors\:list .result-item .result-image {
    clip-path: initial;
    position: absolute;
    width: 100%;
    top: initial;
    height: clamp(200px, 20vw, 300px);
    opacity: 0;
  }
  .market-sectors\:list .result-item .result-image img {
    height: 100%;
  }
}

.applications\:list {
  max-width: 1200px;
}
.applications\:list article-grid {
  -moz-columns: 220px;
       columns: 220px;
}

#market-sectors, #applications {
  --theme-content-background: #131f6b;
  --heading-colour: white;
  --font-colour: white;
}
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl92YXJpYWJsZXMvei1pbmRleC5zY3NzIiwiX2VsZW1lbnRzL2Zvcm0uc2NzcyIsIl9lbGVtZW50cy9yZXN1bHQtaXRlbS5zY3NzIiwiX2VsZW1lbnRzL3RhZy5zY3NzIiwiY29tcG9uZW50cy9tYXJrZXQtc2VjdG9ycy5zY3NzIiwiX3ZhcmlhYmxlcy9jb2xvdXJzLnNjc3MiLCJjb21wb25lbnRzL21hcmtldC1zZWN0b3JzLmNzcyIsIl9saWIvaGVscGVycy9fYnJlYWsuc2NzcyIsIl9saWIvY3JlYXRlL191bml0cy5zY3NzIiwiX2xpYi9jcmVhdGUvX3BhbGV0dGUuc2NzcyIsIl9saWIvY3JlYXRlL19oZWFkaW5ncy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0VBQUE7QUNhQTs7eURBQUE7QUFtREE7O3lEQUFBO0FDNURBOztzQkFBQTtBQXNFQTs7c0JBQUE7QUN6REE7O3VEQUFBO0FBK0JBOzt1REFBQTtBQXlCQTs7dURBQUE7QUEyQkE7O3VEQUFBO0FDakdJO0VBQXNCLGNDcUJOO0FDT3BCO0FDMUJFO0VIREU7SUFFUSxxQ0FBQTtFRTZCVjtBQUNGOztBRnhCSTtFQUFnQix3QkFBQTtBRTRCcEI7O0FGdkJRO0VBQ0k7SUFBUSw2QkFBQTtFRTJCbEI7QUFDRjtBRjFCUTtFQUNJLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLHlCQ0xRO0VETVIsdUJJNEdEO0FGaEZYO0FGM0JZO0VBQ0ksWUFBQTtBRTZCaEI7QUZ6Qkk7RUFBUSxjS3FCSTtBSE9oQjtBRnpCWTtFQUNJLHlCQ1ZJO0VEV0osWUFBQTtFQUNBLGtCQUFBO0VBQ0EsbUZBQUE7RUFDQSx1Qkk4Rkw7RUo3Rkssa0JBQUE7QUUyQmhCO0FGMUJnQjtFQUNJLGVBQUE7RUFDQSxpQkFBQTtFQUNBLHlCSVFaO0VKUFksa0JBQUE7RUFDQSx5QkFBQTtFQUNBLFlBQUE7QUU0QnBCO0FGMUJnQjtFQUFJLFlBQUE7QUU2QnBCO0FGNUJnQjtFQUNLLFdBQUE7RUFDRCxZQUFBO0VBQ0EsV0FBQTtFQUNBLHlCQzdCQTtFRDhCQSxjQUFBO0VBQ0Esa0JBQUE7RUFDQSxPQUFBO0VBQ0EscUJBQUE7RUFDQSx5Q0FBQTtBRThCcEI7QUYzQlk7RUFDSSxpQkFBQTtBRTZCaEI7QUY1QmdCO0VBQ0ksaUJBQUE7QUU4QnBCO0FGMUJRO0VBQ0ksYUFBQTtFQUNBLHNCQUFBO0FFNEJaO0FGM0JZO0VBQ0ksa0JBQUE7RUFDQSxZQUFBO0FFNkJoQjtBQzNGRTtFSHlETTtJQVFRLDJCQUFBO0VFOEJkO0VGN0JjO0lBQVEsMkJBQUE7RUVnQ3RCO0VGL0JjO0lBQ0ksYUFBQTtFRWlDbEI7QUFDRjs7QUM1R0U7RUhtRkY7SUFFSSw2QkllTztFRmFUO0VGM0JFO0lBQWdCLGFBQUE7RUU4QmxCO0FBQ0Y7QUMvR0U7RUhtRkU7SUFDSSxhQUFBO0lBQ0EsaUJBQUE7RUUrQk47RUY3QkU7SUFBNkIsYUFBQTtFRWdDL0I7QUFDRjtBQ3hIRTtFSDZFRjtJQWFJLDBCSUlPO0VGOEJUO0FBQ0Y7QUZqQ0U7RU15Q0EsaUJBQUE7RUFXSSxnQkEzRmM7RU55Q2hCLGNDakZnQjtFRGtGaEIseUJBQUE7RUFDQSw2Qkl5Qk87QUZXWDtBRmxDRTtFQUFXLGFBQUE7QUVxQ2I7O0FGbENBO0VBQ0ksa0JBQUE7RUFDQSw2REFBQTtFQUNBLGFBQUE7RUFDQSxrQkFBQTtFQUNBLGdDQUFBO0VBQ0EscUJBQUE7QUVxQ0o7QUZuQ0k7RUFBVyxhQUFBO0FFc0NmO0FGcENJO0VBQ0kseUJBQUE7RUFDQSxXQUFBO0VBQ0EseUJDM0dZO0VENEdaLG9FQUFBO0VBQ0EsYUFBQTtFQUNBLHNCQUFBO0VBQ0EscURBQUE7QUVzQ1I7QUZyQ1E7RU1jTixpQkFBQTtFQVdJLGdCQTNGYztBSjJHcEI7QUZ0Q1E7RUFDSSxTQUFBO0VBQ0EsY0MvR1E7RUs0SWxCLG1CQUFBO0VBV0ksZ0JBMUdjO0VOb0VSLHlCSXRGSjtBRitIUjtBRnJDRTtFQUNFLG9CSTNGSTtFSjRGSix3Q0FBQTtFQUNBLFdBQUE7RUFDQSxrQkFBQTtFQUNBLGNBQUE7RUFDQSxtQkFBQTtPQUFBLGNBQUE7RUFDQSwrQklmTztPSmVQLDBCSWZPO0VKZ0JQLDZCSWpCTztBRndEWDtBRnJDRTtFQUNFLGlCQUFBO0FFdUNKO0FGdENJO0VBQ0ksaUJBQUE7QUV3Q1I7QUZ2Q1E7RUFDSSwrQkFBQTtPQUFBLG1CQUFBO0VBQ0EsY0FBQTtFQUNBLDZCSTNCRDtBRm9FWDtBRnhDWTtFQUFXLGdCQUFBO0FFMkN2QjtBRjFDWTtFQUNJLFdBQUE7RUFDQSxZQUFBO0VBQ0EsV0FBQTtFQUNBLHFCQUFBO0VBQ0EscU5BQUE7RUFDQSw0QkFBQTtFQUNBLHdCQUFBO0VBQ0Esa0NBQUE7RUFDQSxzQkFBQTtFQUNBLDBCQUFBO0FFNENoQjtBRnhDSTtFQUNJLHVEQUFBO0VBQ0Esa0JBQUE7RUFDQSxvQkFBQTtFQUNBLFFBQUE7RUFDQSxNQUFBO0VBQ0EsU0FBQTtFQUNBLGdDQUFBO0VBQ0EsWUFBQTtFQUNBLFdBQUE7RUFDQSxVQUFBO0VBQ0EscUlBQUE7RUFDQSxzQkFBQTtFQUVBLFVBQUE7QUV5Q1I7QUZ4Q1E7RUFDSSxZQUFBO0VBQ0Esb0JBQUE7S0FBQSxpQkFBQTtBRTBDWjtBRnRDSTtFQUNJLFVBQUE7RUFDQSxvQkFBQTtBRXdDUjtBRnRDSTtFQUNJLFVBQUE7QUV3Q1I7QUZwQ0k7RUFDSSxrQkFBQTtFQUNBLFNBQUE7RUFDQSxVQUFBO0VBQ0EsUUFBQTtBRXNDUjtBRm5DSTtFQW5HSjtJQW9HUSxhQUFBO0lBQ0Esc0JBQUE7RUVzQ047RUZyQ007SUFDSSw4QklqRkQ7SUprRkMsbUVBQUE7RUV1Q1Y7RUZwQ007SUFDSSxrQkFBQTtJQUNBLHVCSXhGRDtJSjBGQyxvQkFBQTtFRXFDVjtFRmxDVTtJQUNJLGtCQUFBO0lBQ0Esa0JBQUE7SUFDQSxXQUFBO0lBQ0EsWUFBQTtJQUNBLGlDQUFBO0lBQ0EsVUFBQTtFRW9DZDtFRm5DYztJQUNJLFlBQUE7RUVxQ2xCO0FBQ0Y7O0FGOUJBO0VBQ0ksaUJBQUE7QUVpQ0o7QUZoQ0k7RUFDSSxtQkFBQTtPQUFBLGNBQUE7QUVrQ1I7O0FGOUJBO0VBQ0UsbUNBQUE7RUFDQSx1QkFBQTtFQUNBLG9CQUFBO0FFaUNGIiwiZmlsZSI6ImNvbXBvbmVudHMvbWFya2V0LXNlY3RvcnMuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyogei1pbmRleGVzIGFyZSBsYXJnZSBkdWUgdG8gdGhlIGZhY3QgdGhhdCB0aGluZ3MgbWlnaHQgY2hhbmdlXG4gKiBpbiB0aGUgZnV0dXJlLiBJbiBvcmRlciB0byBhY2NvdW50IGZvciBzY2FsYWJpbGl0eSwgdGhpcyBnaXZlc1xuICogcm9vbSB0byBtYWtlIGNoYW5nZXMgYW5kIG5vdCBicmVhayB0aGUgZW50aXJlIHNpdGUsIG1lYW5pbmcgXG4gKiB3ZSB3b24ndCBoYXZlIHRvIGdvIGluIGFuZCByZWZhY3RvciBhIGxvdCBvZiBvdXIgY29kZS5cbiAqL1xuXG4kcGFnZS1iYWNrZ3JvdW5kICAgICAgICAgIDogNTAwO1xuXG4kbmF2aWdhdGlvbi1iYXIgICAgICAgICAgIDogMTUwMDtcbiRuYXZpZ2F0aW9uLWJhci1jb250YWluZXIgOiAkbmF2aWdhdGlvbi1iYXI7XG4kZ2xvYmFsLXNlYXJjaC1tb2JpbGUgICAgIDogLTE7XG5cbiRzY3JvbGwtYmFyICAgICAgICAgICAgICAgOiAxMTAwO1xuXG4kbWFpbiAgICAgICAgICAgICAgICAgICAgIDogMTAwMDtcbiRoZWFkZXIgICAgICAgICAgICAgICAgICAgOiAxMDAwO1xuJHNpZGUtYmFyICAgICAgICAgICAgICAgICA6IDE3NTA7XG5cbiRtb2RhbCAgICAgICAgICAgICAgICAgICAgOiAxMDAwMDsiLCJAdXNlICcuLi9fdmFyaWFibGVzJyBhcyAqO1xuQHVzZSAnbW9kdWxlcy9jb2xvdXIvZW5jb2RlJyBhcyBjb2xvdXI7XG5AdXNlIFwiZm9udFwiO1xuQHVzZSAnLi4vX2hlbHBlcnMvbWlzYy5zY3NzJyBhcyAqO1xuXG4kYmFzZS1pbnB1dC1wYWRkaW5nOiAkZ2FwO1xuXG5cbkBtaXhpbiBhcnJvdy1kb3duLWltYWdlKCRzdHJva2UgOiB2YXIoLS1mb250LWNvbG91cikpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxNy40JyBoZWlnaHQ9JzEwLjEnJTNFJTNDcGF0aCBkPSdNMTYuNy43bC04IDgtOC04JyBmaWxsPSdub25lJyBzdHJva2U9J1wiK2NvbG91ci5lbmNvZGUoJHN0cm9rZSkrXCInIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLW1pdGVybGltaXQ9JzEwJy8lM0UlM0Mvc3ZnJTNFXCIpO1xufVxuXG5cbi8qICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgSU5QVVRTXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbkBtaXhpbiBjaGFyYWN0ZXItaW5wdXRzKCkge1xuICBpbnB1dFt0eXBlPVwidGV4dFwiXSwgaW5wdXRbdHlwZT1cImVtYWlsXCJdLCBpbnB1dFt0eXBlPVwibnVtYmVyXCJdLCBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLCBzZWxlY3QsIHRleHRhcmVhIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gYWxsLWlucHV0cygpIHtcbiAgaW5wdXRbdHlwZT1cInRleHRcIl0sXG4gIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbiAgaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcbiAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXSxcbiAgc2VsZWN0LFxuICB0ZXh0YXJlYSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIGNoYXJhY3Rlci1pbnB1dCgpIHtcbiAgLS1mb250LWNvbG91ciAgICAgICA6ICN7JGZvbnQtY29sb3VyfTtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91ciA6ICN7JHdoaXRlfTtcbiAgLS1wYWRkaW5nICAgICAgICAgICA6IGNhbGMoI3skYmFzZS1pbnB1dC1wYWRkaW5nfSAvIDEuNSkgI3skYmFzZS1pbnB1dC1wYWRkaW5nfTtcbiAgLS1ib3JkZXItY29sb3VyICAgICA6ICN7JGdyZXk3fTtcbiAgLS1ib3JkZXItcmFkaXVzICAgICA6IDA7XG5cbiAgb3V0bGluZTogMDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1czsgIC8qIE9wZXJhIDEwLjUsIElFIDksIFNhZmFyaSA1LCBDaHJvbWUsIEZpcmVmb3ggNCwgaU9TIDQsIEFuZHJvaWQgMi4xKyAqL1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDA7ICAvKiBTYWZhcmkgMy00LCBpT1MgMS0zLjIsIEFuZHJvaWQgMS42LSAqLyAgICBcbiAgLW1vei1ib3JkZXItcmFkaXVzOiAwOyAgLyogRmlyZWZveCAxLTMuNiAqLyAgICAgXG5cbiAgY29sb3I6IHZhcigtLWZvbnQtY29sb3VyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xuICBwYWRkaW5nOiB2YXIoLS1wYWRkaW5nKTtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAkdHJhbnNpdGlvbjtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMHB4IHRyYW5zcGFyZW50O1xuXG4gICY6OnBsYWNlaG9sZGVyIHsgdHJhbnNpdGlvbjogY29sb3IgJHRyYW5zaXRpb24gfVxuXG4gIC8vICY6bm90KDplbXB0eSkge1xuICAvLyAgICY6OnBsYWNlaG9sZGVyIHsgY29sb3I6ICR0cmFuc3BhcmVudCB9XG4gIC8vIH1cbn1cblxuXG4vKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIENPTlRBSU5FUlNcbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQG1peGluIGNvbnRhaW5lcigpIHtcbiAgLS1sYWJlbC1jb2xvdXIgICAgICAgIDogdmFyKC0tZm9udC1jb2xvdXIpO1xuICAtLWxhYmVsLWFjdGl2ZS1jb2xvdXIgOiB2YXIoLS10aGVtZS1hY2NlbnQpO1xuXG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtZ2FwOiAxcmVtO1xuXG4gIGxhYmVsIHtcbiAgICBjb2xvcjogdmFyKC0tbGFiZWwtY29sb3VyKTtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAkdHJhbnNpdGlvbjtcbiAgfVxufVxuXG5AbWl4aW4gdGV4dC1jb250YWluZXIoKSB7XG4gIEBpbmNsdWRlIGNvbnRhaW5lcigpO1xuICBncmlkLWF1dG8tZmxvdzogcm93O1xufVxuXG5cbkBtaXhpbiByYWRpby1jaGVja2JveC1jb250YWluZXIoKSB7XG4gIEBpbmNsdWRlIGNvbnRhaW5lcigpO1xuICBncmlkLWF1dG8tZmxvdzogY29sdW1uO1xuXG4gIC0taW5wdXQtd2lkdGg6IDEuMmVtO1xuICAtLWlucHV0LWJvcmRlci10aGlja25lc3M6IDFweDtcbiAgLS1pbnB1dC1hY3RpdmUtY29sb3VyOiAjeyRyZWR9O1xuXG4gIGxhYmVsIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XG4gICAgZ3JpZC1nYXA6ICRnYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG5cbiAgICAmOjpiZWZvcmUsICY6OmFmdGVyIHtcbiAgICAgIGdyaWQtcm93OiAxO1xuICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSBzcXVhcmUodmFyKC0taW5wdXQtd2lkdGgpKTtcbiAgICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgICAgIGJvcmRlcjogdmFyKC0taW5wdXQtYm9yZGVyLXRoaWNrbmVzcywgMXB4KSBzb2xpZCAkZ3JleTtcbiAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAkdHJhbnNpdGlvbjtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBAaW5jbHVkZSBzcXVhcmUoY2FsYyh2YXIoLS1pbnB1dC13aWR0aCkgLSB2YXIoLS1pbnB1dC1ib3JkZXItdGhpY2tuZXNzKSAqIDYpKTtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlucHV0LWFjdGl2ZS1jb2xvdXIpO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIGxlZnQ6IC0xMHB4O1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkdHJhbnNpdGlvbiwgdHJhbnNmb3JtICR0cmFuc2l0aW9uO1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIC0tbGFiZWwtY29sb3VyOiB2YXIoLS1sYWJlbC1hY3RpdmUtY29sb3VyKTtcblxuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pbnB1dC1hY3RpdmUtY29sb3VyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpbnB1dCB7XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgICY6Y2hlY2tlZCB7XG4gICAgICArIGxhYmVsIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWxhYmVsLWFjdGl2ZS1jb2xvdXIpO1xuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMHB4KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gcmFkaW8tY29udGFpbmVyKCkge1xuICBsYWJlbCB7XG4gICAgJjo6YmVmb3JlLCAmOjphZnRlciB7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtdWx0aS1pbnB1dCgpIHtcbiAgLS1pbnB1dC1zcGFjaW5nOiAwO1xuICBcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiB2YXIoLS1pbnB1dC1zcGFjaW5nKTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGZpdC1jb250ZW50O1xuXG4gIEBpbmNsdWRlIGNoYXJhY3Rlci1pbnB1dHMoKSB7XG4gICAgJjpub3Qoc2VsZWN0KSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgICAgIGJvcmRlci1yaWdodDogMDtcbiAgICB9XG4gIH1cblxuICA+ICo6bm90KHNlbGVjdCwgYnV0dG9uLCBhKSB7XG4gICAgZmxleDogMTtcbiAgfVxuICBcbiAgc2VsZWN0LCBidXR0b24sIGEge1xuICAgIC0tZm9udC1jb2xvdXI6ICN7JHdoaXRlfTtcbiAgICAtLWJhY2tncm91bmQtY29sb3VyOiAjeyRyZWR9O1xuXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKTtcbiAgICBjb2xvcjogdmFyKC0tZm9udC1jb2xvdXIpO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIH1cblxuICBzZWxlY3QgeyBAaW5jbHVkZSBhcnJvdy1kb3duLWltYWdlKCR3aGl0ZSkgfTtcbn1cblxuQG1peGluIGJhc2UtcmVxdWlyZWQoKSB7XG4gIHJlcXVpcmVkLW5vdGljZSB7XG4gICAgLS1ub3RpY2UtY29sb3VyOiAjeyRyZWR9O1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMTBweDtcbiAgICBjb2xvcjogdmFyKC0tbm90aWNlLWNvbG91cik7XG4gICAgZm9udC1zaXplOiAxLjVlbTtcblxuICAgIHNwYW4ge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcmlnaHQ6IC0xMDAlO1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHJhZGlvLXRhYnMoKSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgcmFkaW8tdGFiIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHBhZGRpbmctYm90dG9tOiAkZ2FwMDtcbiAgICBcbiAgICBpbnB1dCB7IFxuICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgJjpjaGVja2VkICsgbGFiZWwge1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10aGVtZS1hY2NlbnQpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICY6bm90KDpjaGVja2VkKSB7XG4gICAgICAgICsgbGFiZWw6aG92ZXI6OmFmdGVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS10aGVtZS1hY2NlbnQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGFiZWwge1xuICAgICAgY29sb3I6IHZhcigtLWZvbnQtY29sb3VyKTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDNweDtcbiAgICAgICAgYmFja2dyb3VuZDogJHRyYW5zcGFyZW50O1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kICR0cmFuc2l0aW9uO1xuICAgICAgfVxuICAgICAgXG5cbiAgICB9XG5cbiAgfVxufVxuXG5cbkBtaXhpbiBpbnB1dC1mb2N1cygpIHtcbiAgYm94LXNoYWRvdzogMHB4IDBweCAxcHggMXB4IHJnYmEoJHJlZCwgMC4zKTtcbn0iLCJAdXNlICcuLi9fdmFyaWFibGVzLycgYXMgKjtcbkB1c2UgJy4uL19oZWxwZXJzLycgYXMgKjtcblxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tXG5cdEJhc2UgcmVzdWx0IHN0eWxlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXG5AbWl4aW4gYmFzZSgpIHtcblxuICAtLWhlYWRpbmctY29sb3VyICAgIDogI3skYmx1ZX07XG5cbiAgLS1ib3JkZXItdGhpY2tuZXNzICA6IDFweDtcbiAgLS1ib3JkZXItcmFkaXVzICAgICA6IDBweDtcbiAgLS1iYWNrZ3JvdW5kLWNvbG91ciA6IHdoaXRlO1xuXG4gIC0tcGFkZGluZyAgICAgICAgICAgOiAycmVtO1xuXG4gIC0tcGFkZGluZy1sZWZ0ICAgICAgOiB2YXIoLS1wYWRkaW5nKTtcbiAgLS1wYWRkaW5nLXJpZ2h0ICAgICA6IHZhcigtLXBhZGRpbmcpO1xuICAtLXBhZGRpbmctdG9wICAgICAgIDogdmFyKC0tcGFkZGluZyk7XG4gIC0tcGFkZGluZy1ib3R0b20gICAgOiB2YXIoLS1wYWRkaW5nKTtcblxuICAtLWltYWdlLXdpZHRoICAgICAgIDogMTAwcHg7XG4gIC0taW1hZ2UtaGVpZ2h0ICAgICAgOiAxMDBweDtcblxuICAtLWdyaWQtZ2FwICAgICAgICAgIDogI3skZ2FwfTtcblxuXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogdmFyKC0tcGFkZGluZy10b3ApIHZhcigtLXBhZGRpbmctcmlnaHQpIHZhcigtLXBhZGRpbmctYm90dG9tKSB2YXIoLS1wYWRkaW5nLWxlZnQpO1xuICBib3JkZXI6IHZhcigtLWJvcmRlci10aGlja25lc3MpIHNvbGlkICR0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKTtcbiAgLy8gYm94LXNoYWRvdzogMHB4IDBweCA1cHggMXB4IHJnYmEoJGdyZXksIDAuMSk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgdHJhbnNpdGlvbjogYm9yZGVyICR0cmFuc2l0aW9uO1xuXG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtZ2FwOiB2YXIoLS1ncmlkLWdhcCkgdmFyKC0tZ3JpZC1nYXApO1xuICAvLyBwbGFjZS1jb250ZW50OiBzdGFydDtcblxuICAucmVzdWx0LWltYWdlIHtcbiAgICBncmlkLWFyZWE6IGltYWdlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgcGljdHVyZSB7XG4gICAgICBoZWlnaHQ6IHZhcigtLWltYWdlLWhlaWdodCk7XG4gICAgICBcbiAgICAgIGltZyB7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1pbWFnZS1oZWlnaHQpO1xuICAgICAgICBoZWlnaHQ6IHZhcigtLWltYWdlLXdpZHRoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAucmVzdWx0LXRpdGxlIHtcbiAgICBncmlkLWFyZWE6IHRpdGxlO1xuICAgIGNvbG9yOiB2YXIoLS1oZWFkaW5nLWNvbG91cik7XG4gICAgYSB7IGNvbG9yOiB2YXIoLS1oZWFkaW5nLWNvbG91cikgfVxuICB9XG5cbiAgLnJlc3VsdC1zdWJ0aXRsZSB7IGdyaWQtYXJlYTogc3VidGl0bGUgfVxuICAucmVzdWx0LWJvZHkgICAgIHsgZ3JpZC1hcmVhOiBib2R5IH1cblxuICAmLmJsb2cgICAgeyBAaW5jbHVkZSBibG9nKCkgfVxuICAmLm1hcmtldC1zZWN0b3IgICAgeyBAaW5jbHVkZSBtYXJrZXQtc2VjdG9yKCkgfVxuICAmLnByb2R1Y3QgeyBAaW5jbHVkZSBwcm9kdWN0KCkgfVxuICAmLnBhZ2UgICAgeyBAaW5jbHVkZSBwYWdlKCkgfVxufVxuXG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS1cblx0VmFyaWF0aW9uc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuQG1peGluIG1hcmtldC1zZWN0b3IoKSB7XG5cbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjp0cmFuc3BhcmVudDsgXG4gIC0tZm9udC1jb2xvdXI6d2hpdGU7IFxuICAtLWhlYWRpbmctY29sb3VyIDogd2hpdGU7IFxuXG4gIGlzb2xhdGlvbjogaXNvbGF0ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgcGFkZGluZzowIDAgJGd1dHRlcjAgMCA7IFxuICBib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1yZXN1bHQtaXRlbS1ib3JkZXItYm90dG9tLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMikpO1xuXG4gIC5yZXN1bHQtaW1hZ2Uge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogY2xhbXAoMTQwcHgsIDQwdncsIDE4MHB4KTtcbiAgICBvdXRsaW5lOiAxcHggc29saWQgdmFyKC0taW1hZ2Utb3V0bGluZS1jb2xvdXIsIHRyYW5zcGFyZW50KTtcbiAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0taW1hZ2Utb3V0bGluZS1vZmZzZXQsIDAuMWVtKTsgXG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IG91dGxpbmUtY29sb3IgJHRyYW5zaXRpb24sIG91dGxpbmUtb2Zmc2V0ICR0cmFuc2l0aW9uO1xuICAgIGltZyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIH1cblxuICB9XG5cbiAgJjpob3ZlciB7IFxuICAgIC0taW1hZ2Utb3V0bGluZS1jb2xvdXIgOiAje3JnYmEod2hpdGUsIDAuMil9O1xuICAgIC0taW1hZ2Utb3V0bGluZS1vZmZzZXQgOiAwLjNlbTtcbiAgICAucmVzdWx0LXRpdGxlIGEgeyBjb2xvcjokcmVkOyB9XG4gIH1cblxuICAucmVzdWx0LXRpdGxlIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG5cbiAgICBhIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgJjo6YWZ0ZXIgeyBcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOmFic29sdXRlO1xuICAgICAgICBpbnNldDowOyBcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB6LWluZGV4OjE7IFxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBhdC1yb290IGJvZHlbZGF0YS10aGVtZT0nd2hpdGUnXSAmIHtcbiAgICAtLXJlc3VsdC1pdGVtLWJvcmRlci1ib3R0b20gOiAje3JnYmEoJGJsdWUsIDAuMil9O1xuICAgIC0tZm9udC1jb2xvdXI6I3skYmx1ZX07IFxuICAgIC0taGVhZGluZy1jb2xvdXIgOiAjeyRibHVlfTsgXG4gICAgJjpob3ZlciB7IFxuICAgICAgLS1pbWFnZS1vdXRsaW5lLWNvbG91ciA6ICN7cmdiYSgkYmx1ZSwgMC4yKX07XG4gICAgfVxuICB9XG5cbiAgQGF0LXJvb3QgYm9keSNtYXJrZXQtc2VjdG9ycyB7XG4gICAgJiB7XG4gICAgICAvLyBpc29sYXRpb246IGluaXRpYWw7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBjb250YWluZXItdHlwZTogaW5saW5lLXNpemU7XG4gICAgICBjb250YWluZXItbmFtZSA6IG1hcmtldC1zZWN0b3I7XG4gICAgICAucmVzdWx0LWl0ZW0ge1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICR0cmFuc2l0aW9uO1xuICAgICAgICBhLmRldGFpbHM6aG92ZXIge1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmOmhvdmVyIC5yZXN1bHQtaW1hZ2Uge1xuICAgICAgICAtLWltYWdlLW91dGxpbmUtY29sb3VyIDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgLS1pbWFnZS1vdXRsaW5lLW9mZnNldCA6MCAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgICAgLmRldGFpbHMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZS1kYXJrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIHBhZGRpbmc6MDtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMjIwcHg7XG4gICAgICAgIHdpZHRoOnZhcigtLW1hcmtldC1zZWN0b3ItYXJ0aWNsZS13aWR0aCwgY2FsYygyMDAlICsgI3skZ3V0dGVyfSArIDJweCkpO1xuXG4gICAgICAgIC8vIERpc2NyZXRlIGFuaW1hdGlvbiBzZXR1cFxuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgIG9wYWNpdHkgJHRyYW5zaXRpb24sXG4gICAgICAgICAgZGlzcGxheSAkdHJhbnNpdGlvbiBhbGxvdy1kaXNjcmV0ZTtcbiAgICAgICAgLmRldGFpbHMtdGV4dCB7XG4gICAgICAgICAgcGFkZGluZzokZ3V0dGVyO1xuICAgICAgICB9XG4gICAgICAgIC5kZXRhaWxzLWhlYWRpbmcge1xuICAgICAgICAgIGNvbG9yOiRyZWQ7XG4gICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICBAaW5jbHVkZSBoZWFkaW5nLWgyO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206MWVtO1xuICAgICAgICB9XG4gICAgICAgIC5kZXRhaWxzLWltYWdlIHtcbiAgICAgICAgICBjbGlwLXBhdGg6IHBvbHlnb24oMCUgMTAwJSwgMzUlIDAlLCAxMDAlIDAlLCAxMDAlIDEwMCUpO1xuICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDoxMDAlO1xuICAgICAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgICAgfVxuICAgICAgICAgIC5kZXRhaWxzLWxpbmsge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5kZXRhaWxzLWxpbmsge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBib3R0b206MDtcbiAgICAgICAgICByaWdodDowO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAuZGV0YWlscyB7XG4gICAgICAgIEBjb250YWluZXIgbWFya2V0LXNlY3RvciAoIHdpZHRoIDwgNDIwcHgpIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAuZGV0YWlscy1pbWFnZSB7XG4gICAgICAgICAgICBjbGlwLXBhdGg6IGluaXRpYWw7XG4gICAgICAgICAgICBoZWlnaHQ6MTAwcHg7XG4gICAgICAgICAgICAuZGV0YWlscy1saW5rIHtcbiAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gICAgICAmIC5yZXN1bHQtaXRlbTppcyg6aG92ZXIsIDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIC5kZXRhaWxzIHtcbiAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgQHN0YXJ0aW5nLXN0eWxlIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgfVxuICAgICAgICAgIEBtZWRpYSAoIHdpZHRoID4gMjA1MHB4KSB7XG4gICAgICAgICAgd2lkdGg6MTAwJTsgXG5cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBhcnRpY2xlLWdyaWQ6aGFzKC5yZXN1bHQtaXRlbTppcyg6aG92ZXIsIDpmb2N1cy12aXNpYmxlKSkge1xuICAgICAgLnJlc3VsdC1pdGVtOm5vdCg6aXMoOmhvdmVyLCA6Zm9jdXMtdmlzaWJsZSkpIHsgb3BhY2l0eTogMC41ICFpbXBvcnRhbnQ7fVxuICAgIH1cblxuICAgIEBjb250YWluZXIgbWFpbiAoIHdpZHRoIDwgNjYwcHgpIHtcbiAgICAgIGFydGljbGUtZ3JpZCB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyICFpbXBvcnRhbnQ7XG4gICAgICAgIC0tbWFya2V0LXNlY3Rvci1hcnRpY2xlLXdpZHRoIDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBhcnRpY2xlLWdyaWQge1xuICAgICAgQGNvbnRhaW5lciBtYWluICg2NjBweCA8IHdpZHRoIDwgOTY0cHgpICB7XG4gICAgICAgIC5yZXN1bHQtaXRlbTpudGgtY2hpbGQoMm4pIC5kZXRhaWxzIHtcbiAgICAgICAgICAgIGxlZnQ6IGluaXRpYWw7XG4gICAgICAgICAgICByaWdodDowO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAY29udGFpbmVyIG1haW4gKCB3aWR0aCA+IDk2NHB4KSAge1xuICAgICAgICAucmVzdWx0LWl0ZW06bnRoLWNoaWxkKDNuKSAuZGV0YWlscyB7XG4gICAgICAgICAgICBsZWZ0OiBpbml0aWFsO1xuICAgICAgICAgICAgcmlnaHQ6MDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gYmxvZygpIHtcbiAgLS1wYWRkaW5nICAgICAgICAgIDogNHJlbTtcbiAgLS1ib3JkZXItdGhpY2tuZXNzIDogMDtcbiAgLS1ib3JkZXItcmFkaXVzICAgIDogMDtcbiAgLy8gLS1iYWNrZ3JvdW5kLWNvbG91ciA6IHRyYW5zcGFyZW50O1xuXG4gIGdyaWQtdGVtcGxhdGUtYXJlYXM6XG4gICAgXCJzdWJ0aXRsZVwiXG4gICAgXCJ0aXRsZVwiXG4gICAgXCJib2R5XCI7XG5cbiAgLnJlc3VsdC1pbWFnZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICBpbWcge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICB9XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTIwZGVnLCByZ2JhKHdoaXRlLCAxKSA0NSUsIHRyYW5zcGFyZW50IDEyMCUpO1xuICAgIH1cbiAgfVxuXG4gIC5yZXN1bHQtdGl0bGUsIC5yZXN1bHQtc3VidGl0bGUgeyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlIH1cblxuICAucmVzdWx0LXRpdGxlIHsgICAgIFxuICAgIEBpbmNsdWRlIGhlYWRpbmctaDI7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgfVxuXG4gIC5yZXN1bHQtc3VidGl0bGUge1xuICAgIC0taGVhZGluZy1jb2xvdXI6ICN7JHJlZH07XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICBoNCwgdGltZSB7XG4gICAgICBmb250LXNpemU6ICRmb250LXNpemU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgdGltZSB7XG4gICAgICBjb2xvcjogJGdyZXk7XG4gICAgfVxuICB9XG5cbiAgLnJlc3VsdC1ib2R5IHsgLS1mb250LWNvbG91cjogI3skYmxhY2t9OyB9XG5cbiAgJi5mZWF0dXJlZCB7XG4gICAgLS1wYWRkaW5nLXJpZ2h0OiA1cmVtO1xuXG4gICAgZ3JpZC1jb2x1bW46IDEgLyBzcGFuIDI7XG5cbiAgICAucmVzdWx0LXRpdGxlIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgICBmb250LXNpemU6ICRmb250LXNpemUtaDI7XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICdGRUFUVVJFRCc7XG4gICAgICBAaW5jbHVkZSBmZWF0dXJlZC1iYWRnZSgpO1xuICAgICAgbGVmdDogMTAwJTtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgfVxuICB9XG5cbiAgLnJlc3VsdC10aXRsZSwgLnJlc3VsdC1zdWJ0aXRsZSwgLnJlc3VsdC1ib2R5IHtcbiAgICB6LWluZGV4OiAyO1xuICB9XG59XG5cblxuXG5AbWl4aW4gcGFnZSgpIHtcbiAgZ3JpZC10ZW1wbGF0ZS1hcmVhczpcbiAgXCJpbWFnZSB0aXRsZVwiXG4gIFwiaW1hZ2UgYm9keVwiXG4gIFwiaW1hZ2UgYm9keVwiXG4gIFwiaW1hZ2UgYm9keVwiO1xuXG4gIC5yZXN1bHQtaW1hZ2Uge1xuICAgIGltZyB7XG4gICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICB9XG4gIH1cbn1cblxuXG5cbkBtaXhpbiBwcm9kdWN0KCkge1xuICAtLWJhZGdlLXNwYWNpbmcgOiAzcmVtO1xuXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogdmFyKC0taW1hZ2Utd2lkdGgpIGF1dG87XG5cbiAgZ3JpZC10ZW1wbGF0ZS1hcmVhczpcbiAgICBcImltYWdlIHRpdGxlXCJcbiAgICBcImltYWdlIHRpdGxlXCJcbiAgICBcImltYWdlIGRhdGFcIlxuICAgIFwiaW1hZ2UgZGF0YVwiO1xuXG4gIC8vIC5yZXN1bHQtdGl0bGUge1xuICAvLyAgIG1hcmdpbi10b3A6ICRnYXA7XG4gIC8vIH1cblxuICAucmVzdWx0LXRpdGxlLCAucmVzdWx0LWJvZHkge1xuICAgIHBhZGRpbmctcmlnaHQ6IGNhbGModmFyKC0tYmFkZ2Utc3BhY2luZykgKiAyKTtcbiAgfVxuXG4gIC5wcm9kdWN0LWRhdGEge1xuICAgIGdyaWQtYXJlYTogZGF0YTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdyaWQtZ2FwOiBjYWxjKCRnYXAgLyAyKSAkZ2FwO1xuICB9XG5cbiAgLnJlc3VsdC1pbWFnZSB7XG4gICAgaW1nIHtcbiAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgfVxuICB9XG5cblxuICBAaW5jbHVkZSBicmVhay1pbig0NTApIHtcbiAgICBncmlkLXRlbXBsYXRlLWFyZWFzOlxuICAgIFwiaW1hZ2UgXCJcbiAgICBcInRpdGxlXCJcbiAgICBcImRhdGFcIjtcblxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogdW5zZXQ7XG5cbiAgICAucHJvZHVjdC1kYXRhIHtcbiAgICAgIC8vIG1hcmdpbi10b3A6ICRnYXAtO1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICB9XG5cbiAgICAvLyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gMWZyO1xuXG4gICAgLnJlc3VsdC10aXRsZSwgLnJlc3VsdC1ib2R5IHsgcGFkZGluZy1yaWdodDogMCB9XG4gICAgLy8gLnJlc3VsdC10aXRsZSB7IGFsaWduLXNlbGY6IGNlbnRlciB9XG4gIH1cblxuXG4gICYuaW4tc3RvY2s6OmJlZm9yZSB7XG4gICAgLS1wYWRkaW5nLXkgOiAwLjJlbTtcbiAgICAtLXBhZGRpbmcteCA6IDEwZW07XG5cbiAgICBjb250ZW50OiAnaW4gc3RvY2snO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IGNhbGMoMWVtICsgdmFyKC0tcGFkZGluZy15KSk7XG4gICAgcmlnaHQ6IGNhbGMoLTEgKiB2YXIoLS1wYWRkaW5nLXgpKTtcbiAgICBwYWRkaW5nOiAwLjVlbSB2YXIoLS1wYWRkaW5nLXgpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gIH1cbn0iLCJAdXNlICcuLi9fdmFyaWFibGVzJyBhcyAqO1xuQHVzZSAnLi4vX2hlbHBlcnMvbWlzYy5zY3NzJyBhcyAqO1xuXG5AbWl4aW4gdGFnKCkge1xuICAmW2Rpc2FibGVkXSB7IEBpbmNsdWRlIGRpc2FibGVkKCkgfVxuICAmLmNhdGVnb3J5IHtcbiAgICBAaW5jbHVkZSB0YWctYmFzZSgpO1xuICAgIC0tYm9yZGVyLWNvbG91cjogI3skcmVkfTtcbiAgICBAaW5jbHVkZSB0YWctd2l0aC1zZWNvbmRhcnkoKTtcbiAgICAudGFnLXNlY29uZGFyeTpob3ZlciB7IEBpbmNsdWRlIHNlY29uZGFyeS1ob3ZlcigpIH1cbiAgfVxuXG4gICYuY2hlY2tib3gge1xuICAgIEBpbmNsdWRlIHRhZy1jaGVja2JveCgpO1xuICB9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEJhc2Ugc3R5bGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBtaXhpbiB0YWctYmFzZSgpIHtcbiAgLS1ib3JkZXItcmFkaXVzICAgICAgIDogMHB4O1xuICAtLWZvbnQtY29sb3VyICAgICAgICAgOiAjeyRyZWR9O1xuICAtLWJnLWNvbG91ciAgICAgICAgICAgOiB3aGl0ZTtcbiAgLS1zZWNvbmRhcnktd2lkdGggICAgIDogM2NoO1xuICAtLXNlY29uZGFyeS1wYWRkaW5nLXggOiAzcHg7XG4gIC0tYm9yZGVyLWNvbG91ciAgICAgICA6IHRyYW5zcGFyZW50O1xuXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgd2lkdGg6IGZpdC1jb250ZW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG4gIGNvbG9yOiB2YXIoLS1mb250LWNvbG91cik7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnLWNvbG91cik7XG4gIHRyYW5zaXRpb246ICR0cmFuc2l0aW9uO1xuICBmb250LXNpemU6IDEzcHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuXG4gIC50YWctbGFiZWwge1xuICAgIHBhZGRpbmc6IDNweCAkZ2FwIDNweCAkZ2FwO1xuICB9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIFdpdGggc2Vjb25kYXJ5IHNlY3Rpb25cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AbWl4aW4gdGFnLXdpdGgtc2Vjb25kYXJ5KCkge1xuICAtLXN5bWJvbC1jb2xvdXIgOiAjeyRyZWR9O1xuXG4gIC50YWctc2Vjb25kYXJ5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcGFkZGluZzogMCB2YXIoLS1zZWNvbmRhcnktcGFkZGluZy14KTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGdyZXk0O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2lkdGg6IDNjaDtcbiAgICB0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbjtcblxuICAgIHN2ZyB7XG4gICAgICB3aWR0aDogNTAlO1xuICAgICAgdHJhbnNpdGlvbjogJHRyYW5zaXRpb247XG4gICAgfVxuICB9XG59XG5cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgQ2hlY2tib3ggdGFnc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBtaXhpbiB0YWctY2hlY2tib3goKSB7XG4gIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgICYgfiBsYWJlbCB7XG4gICAgICBAaW5jbHVkZSB0YWctYmFzZSgpO1xuICAgICAgQGluY2x1ZGUgdGFnLXdpdGgtc2Vjb25kYXJ5KCk7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICAtLWJvcmRlci1jb2xvdXI6ICN7JHJlZH07XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmNoZWNrZWQgfiBsYWJlbCB7XG4gICAgICAtLWZvbnQtY29sb3VyOiB3aGl0ZTtcbiAgICAgIC0tYmctY29sb3VyOiAjeyRyZWR9O1xuXG4gICAgICAudGFnLXNlY29uZGFyeSB7IEBpbmNsdWRlIHNlY29uZGFyeS1ob3ZlcihyZ2JhKHdoaXRlLCAwLjMpKSB9XG4gICAgfVxuICB9XG59XG5cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuQG1peGluIHNlY29uZGFyeS1ob3ZlcigkY29sb3VyIDogJHJlZCkge1xuICAtLXN5bWJvbC1jb2xvdXI6IHdoaXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3VyO1xufSIsIkB1c2UgJy4uL21vZHVsZXMnIGFzICo7XG5cbiNtYXJrZXQtc2VjdG9ycyB7XG4gICAgLmhlYWRlciAuc3ViaGVhZGluZyB7IGNvbG9yOiAkcmVkOyB9XG4gICAgYXJ0aWNsZS1ncmlkIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWstb3V0KG1heCkge1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuI21hcmtldC1zZWN0b3JzLCAjaG9tZSAubWFya2V0LXNlY3RvcnNcXDpsaXN0IHtcbiAgICAuY2FsbFRvQWN0aW9uIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG59XG5cbmJvZHkubWFya2V0LXNlY3RvcnMge1xuICAgIHNpZGUtYmFyIHtcbiAgICAgICAgQG1lZGlhIChtYXgtaGVpZ2h0OiAxMDAwcHgpIHtcbiAgICAgICAgICAgID4gZGl2IHsgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7fVxuICAgICAgICB9XG4gICAgICAgIGZvcm0ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuICAgICAgICAgICAgcGFkZGluZzokZ3V0dGVyOyBcbiAgICAgICAgICAgIC5mcmVlZm9ybS1sYWJlbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6d2hpdGU7IFxuICAgICAgICAgICAgfVxuXG5cbiAgICBsYWJlbCB7IGNvbG9yOiR3aGl0ZTsgfVxuXG5cbiAgICAgICAgICAgIC5mb3JtLWludHJvIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmVkOyBcbiAgICAgICAgICAgICAgICBjb2xvcjp3aGl0ZTsgXG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIG1hcmdpbjokZ3V0dGVyLSAkZ3V0dGVyLSBjYWxjKDYwcHggKyAjeyRndXR0ZXJ9KSAkZ3V0dGVyLTsgXG4gICAgICAgICAgICAgICAgcGFkZGluZzokZ3V0dGVyOyBcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjpyZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAuaGVhZGluZyB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTozcmVtO1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTokZ2FwOyBcbiAgICAgICAgICAgICAgICAgICAgdGV4dC13cmFwOmJhbGFuY2U7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOndoaXRlOyBcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcCB7IGNvbG9yOndoaXRlOyB9XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OjYwcHg7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOjEwMCU7IFxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmVkO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OjA7IFxuICAgICAgICAgICAgICAgICAgICB0b3A6Y2FsYygxMDAlIC0gMXB4KTsgXG4gICAgICAgICAgICAgICAgICAgIGNsaXAtcGF0aDogcG9seWdvbig1MCUgMTAwJSwgMCAwLCAxMDAlIDApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5mcmVlZm9ybS1yb3c6aGFzKC5mb3JtLWludHJvKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogY29udGVudHM7XG4gICAgICAgICAgICAgICAgLmZyZWVmb3JtLWNvbHVtbiB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmOmhhcyhmb3JtKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZlYXR1cmVkLWltYWdlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OjEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVhay1pbihsYXJnZSkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206MCAhaW1wb3J0YW50OyBcbiAgICAgICAgICAgICAgICA+IGRpdiB7IG1hcmdpbi1ib3R0b206MCAhaW1wb3J0YW50OyB9XG4gICAgICAgICAgICAgICAgZmVhdHVyZWQtaW1hZ2Uge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5Om5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG4gXG59XG5cbi5tYXJrZXQtc2VjdG9yc1xcOmFydGljbGVzIHtcbiAgQGluY2x1ZGUgYnJlYWstb3V0KHNtYWxsLW1lZGl1bSkge1xuICAgIG1hcmdpbi1ib3R0b206JHNwYWNlcjsgXG4gICAgLmNhbGxUb0FjdGlvbiB7IGRpc3BsYXk6IG5vbmU7IH1cbiAgfVxuICBAaW5jbHVkZSBicmVhay1pbihzbWFsbC1tZWRpdW0pIHtcbiAgICAuY2FsbFRvQWN0aW9uIHsgXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7IFxuICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICAgIH1cbiAgICAucmVzdWx0LWl0ZW0sID4gaDMuaGVhZGluZyB7IGRpc3BsYXk6IG5vbmU7fVxuICB9XG4gIEBpbmNsdWRlIGJyZWFrLWluKGxhcmdlKSB7XG4gICAgbWFyZ2luLXRvcDokc3BhY2VyOyBcbiAgfVxuICA+IC5oZWFkaW5nIHtcbiAgICBAaW5jbHVkZSBoZWFkaW5nLWgyO1xuICAgIGNvbG9yOiRyZWQ7IFxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbWFyZ2luLWJvdHRvbTokZ3V0dGVyOyBcbiAgfVxuICAuZGV0YWlscyB7IGRpc3BsYXk6IG5vbmU7IH1cbn1cblxuLm1hcmtldC1zZWN0b3JzXFw6bGlzdCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMjBkZWcsICMxMDEyNGQgMjAlLCAjMTMxZjZiIDgwJSk7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBpc29sYXRpb246IGlzb2xhdGU7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyNDBweCAxZnI7XG4gICAgZ2FwOjAgJGd1dHRlcjsgXG5cbiAgICAuZGV0YWlscyB7IGRpc3BsYXk6IG5vbmU7IH1cblxuICAgIC5pbnRybyB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGdyaWQtcm93OjE7ICBcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gICAgICAgIHBhZGRpbmc6JGd1dHRlciAkZ3V0dGVyMiAkZ3V0dGVyICRndXR0ZXI7IFxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBjbGlwLXBhdGg6IHBvbHlnb24oMCUgMTAwJSwgMCUgMCUsIDEwMCUgMCUsIDU1JSAxMDAlKTtcbiAgICAgICAgLmhlYWRpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVhZGluZy1oMjtcbiAgICAgICAgfVxuICAgICAgICAuc3ViLWhlYWRpbmcge1xuICAgICAgICAgICAgb3JkZXI6LTE7IFxuICAgICAgICAgICAgY29sb3I6JHJlZDsgXG4gICAgICAgICAgICBAaW5jbHVkZSBoZWFkaW5nLWgzO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbiAgICAgICAgfVxuICAgIH1cblxuICBhcnRpY2xlLWdyaWQge1xuICAgIGdyaWQtZ2FwOiAkZ2FwO1xuICAgIHBhZGRpbmc6MCBjbGFtcCgyMDBweCwgMjB2dywgMzAwcHgpIDAgMDsgXG4gICAgZ3JpZC1yb3c6MTsgIFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgXG4gICAgZGlzcGxheTpibG9jaztcbiAgICBjb2x1bW5zOiAxNjBweDtcbiAgICBjb2x1bW4tZ2FwOiAkZ3V0dGVyMjtcbiAgICBwYWRkaW5nLWJsb2NrOiRndXR0ZXI7IFxuICB9XG4gIC5yZXN1bHQtaXRlbSB7XG4gICAgZGlzcGxheTogY29udGVudHM7XG4gICAgLnJlc3VsdC10aXRsZSB7XG4gICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuICAgICAgICBhIHtcbiAgICAgICAgICAgIGJyZWFrLWluc2lkZTogYXZvaWQ7IFxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nLWJsb2NrOiRndXR0ZXIwOyBcbiAgICAgICAgICAgICY6OmFmdGVyIHsgY29udGVudDppbml0aWFsOyB9XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6Jyc7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OjFyZW07XG4gICAgICAgICAgICAgICAgd2lkdGg6MXJlbTsgXG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgOSAxMSclM0UlM0NwYXRoIGQ9J20uNTc3LjgxNiA2LjAwNSA0LjI0NUwuNTc3IDkuMzA2JyBmaWxsPSdub25lJyBzdHJva2U9JyUyM2RmMzAzNScgc3Ryb2tlLXdpZHRoPScyJy8lM0UlM0Mvc3ZnJTNFXCIpO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDFjaDtcbiAgICAgICAgICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAtMnJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSAgIFxuICAgIH1cbiAgICAucmVzdWx0LWltYWdlIHtcbiAgICAgICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAlIDEwMCUsIDM1JSAwJSwgMTAwJSAwJSwgMTAwJSAxMDAlKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICB3aWR0aDogY2xhbXAoMjAwcHgsIDIwdncsIDMwMHB4KTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBncmlkLXJvdzogMTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkdHJhbnNpdGlvbjtcbiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC4zcztcblxuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICBpbWcge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmhhcyhhOmhvdmVyKSAucmVzdWx0LWltYWdlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMHM7XG4gICAgfVxuICAgICY6bm90KDpoYXMoYTpob3ZlcikpOmZpcnN0LW9mLXR5cGUgLnJlc3VsdC1pbWFnZSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICB9XG5cbiAgICAuYnV0dG9uIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206MDsgXG4gICAgICAgIHotaW5kZXg6MjsgXG4gICAgICAgIHJpZ2h0OjA7IFxuICAgIH1cblxuICAgIEBjb250YWluZXIgKHdpZHRoIDwgOTAwcHgpIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYXJ0aWNsZS1ncmlkIHsgXG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZTogJGd1dHRlcjM7XG4gICAgICAgICAgICBwYWRkaW5nLWJsb2NrLWVuZCA6IGNhbGMoY2xhbXAoMjAwcHgsIDIwdncsIDMwMHB4KSArICN7ICRndXR0ZXJ9KTtcblxuICAgICAgICB9XG4gICAgICAgIC5pbnRybyB7XG4gICAgICAgICAgICBjbGlwLXBhdGg6IGluaXRpYWw7Ly8gcG9seWdvbigwJSAxMDAlLCAwJSAwJSwgMTAwJSAwJSwgMTAwJSA3MCUpO1xuICAgICAgICAgICAgcGFkZGluZzogJGd1dHRlcjI7XG5cbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOjUwcHg7XG4gICAgICAgIH1cbiAgICAgICAgLnJlc3VsdC1pdGVtIHtcbiAgICAgICAgICAgIC5yZXN1bHQtaW1hZ2Uge1xuICAgICAgICAgICAgICAgIGNsaXAtcGF0aDogaW5pdGlhbDsvLyBwb2x5Z29uKDAlIDEwMCUsIDAlIDIwJSwgMTAwJSAwJSwgMTAwJSAxMDAlKTs7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIHRvcDppbml0aWFsO1xuICAgICAgICAgICAgICAgIGhlaWdodDogY2xhbXAoMjAwcHgsIDIwdncsIDMwMHB4KTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cblxufVxuLmFwcGxpY2F0aW9uc1xcOmxpc3Qge1xuICAgIG1heC13aWR0aDogMTIwMHB4O1xuICAgIGFydGljbGUtZ3JpZCB7XG4gICAgICAgIGNvbHVtbnM6IDIyMHB4O1xuICAgIH1cbn1cblxuI21hcmtldC1zZWN0b3JzLCAjYXBwbGljYXRpb25zIHtcbiAgLS10aGVtZS1jb250ZW50LWJhY2tncm91bmQ6ICMxMzFmNmI7XG4gIC0taGVhZGluZy1jb2xvdXI6IHdoaXRlO1xuICAtLWZvbnQtY29sb3VyOiB3aGl0ZTtcbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQ29sb3Vyc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLy8vIEV4cGxpY2l0IENvbG91cnMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vLyBFeHBsaWNpdCBjb2xvdXJzIGFyZSBhIHdoYXQgdGhleSBhcmUuIEdyZWVuIGlzIGdyZWVuLCBibHVlIGlzIGJsdWUuLi4gbm8gb2JzY3VyaXR5LlxuLy8vIFdlIHN1ZmZpeCBudW1iZXJzIHRvIGRlZmluZSB2YXJpYXRpb25zIG9mIGNvbG91cnMgaW4gbm8gcGFydGljdWxhciBvcmRlciBvZiBzaGFkZS4gXG4vLy8gRXhhbXBsZTogZ3JlZW4xLCBncmVlbjIsIGdyZWVuMywgZ3JlZW40LiBUaGlzIGlzIHNvIHdlIGNhbiBpbW1pZGlhdGVseSBzZWUgaG93IFxuLy8vIG1hbnkgb3B0aW9ucyB3ZSBoYXZlIGZvciBhIHNpbmdsZSBjb2xvdXIgYXQgYSBnbGFuY2UuIElmIHlvdSBzZWUgJGdyZWVuNCwgeW91IGtub3cgdGhpc1xuLy8vIHByb2plY3QgaXMgdXNpbmcgZm91ciB2YXJpYXRpb25zIG9mIGdyZWVuLiBUaGlzIGlzIGFsc28gb2Z0ZW4gdXNlZnVsIGJlY2F1c2UgbWFueSBkZXZlbG9wbWVudCBcbi8vLyB0b29scyB3aWxsIGF1dG8tc3VnZ2VzdCBjb2xvdXJzIHdpdGggYWN0dWFsIGV4YW1wbGVzIG9mIHRoZSBjb2xvdXIuIFxuLy8vIFRoZSBQYWxsZXRlcyBtb2R1bGUgKGF0IHRoZSBib3R0b20gb2YgdGhpcyBmaWxlKSB3aWxsIG91dHB1dCBzaGFkZWQgbmFtZWQgdmFyaWF0aW9ucywgXG4vLy8vIDxjb2xvdXI+LWRhcmsgYW5kIDxjb2xvdXI+LWxpZ2h0LiBJZiB5b3UgbmVlZCBhZGRpdGlvbmFsIHNoYWRlcyBwbGVhc2UgcmVmcmFpbSBmcm9tIGdvaW5nIGRvd24gXG4vLy8gdGhlICdsaWdodGVyJywgJ2xpZ2h0ZXN0JywgJ2RhcmtlcicsICdkYXJrZXN0JyBjb252ZW50aW9uLiBUaGVzZSBhcmUgbm90IHBhcnRpY3Vhcmx5IGxlZ2lhYmxlIFxuLy8vIGFuZCB0aGV5IGFyZSBsaW1pdGVkIGJ5IGhvdyBjcmVhdGl2ZSAoY29uZnVzaW5nKSB5b3VyIHdvcmRpbmcgY2FuIGJlLiBcbi8vLyBJdCBpcyBiZXR0ZXIgdG8gZGVmaW5lIGEgbmV3IGV4cGxjaXQgY29sb3VyIGVudGlyZWx5LiBcbi8vLyBAc2VlIGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vd2hhdC1kby15b3UtbmFtZS1jb2xvci12YXJpYWJsZXMvXG5cbiRibHVlICAgICAgICAgICAgIDogIzEzMWY2YjsgLy8gUHJpbWFyeVxuJGJsdWUyICAgICAgICAgICAgOiAjMjkyQjY4OyAvLyBOYWtlZCBMaW5rXG4kYmx1ZTMgICAgICAgICAgICA6ICMzZDNmN2Y7IC8vIExpZ250IEdyYWRpZW50XG4kYmx1ZTQgICAgICAgICAgICA6ICMxMDEyNGQ7IC8vIERhcmsgR3JhZGllbnRcbiRibHVlNSAgICAgICAgICAgIDogIzAwOTVGRjsgLy8gTmF2aWdhdGlvbiBsaW5rIGhvdmVyIFxuXG4kcmVkICAgICAgICAgICAgICA6ICNERjMwMzU7IC8vIFNlY29uZGFyeSAtIFRoaXMgcGFzc2VzIHRoZSBjb250cmFzdCByYXRpbyBhY2Nlc3NpYmlsaXR5IHRlc3QgaW4gR29vZ2xlcyBMaWdodGhvdXNlIFxuXG4kZ3JleSAgICAgICAgICAgICA6ICM5Njk2OTU7XG4kZ3JleTIgICAgICAgICAgICA6ICM2QTZBNkE7IC8vIEZvbnRcbiRncmV5MyAgICAgICAgICAgIDogI0Y0RjRGNDsgLy8gTGlnaHRlciBHcmV5IEJhY2tncm91bmRcbiRncmV5NCAgICAgICAgICAgIDogI2RjZGNkYztcbiRncmV5NSAgICAgICAgICAgIDogI0IxQjFCMTsgLy8gU3BhY2VycyA8aHI+XG4kZ3JleTYgICAgICAgICAgICA6ICMzMzMyMzY7IC8vIE5hdmlnYXRpb24gbGluayBob3ZlciAgXG4kZ3JleTcgICAgICAgICAgICA6ICNlOWU5ZTk7XG4kZ3JlZW4gICAgICAgICAgICA6ICM1MEJDMDg7XG4keWVsbG93ICAgICAgICAgICA6ICNGNkY0REI7IC8vIERpc2NsYWltZXIgQmFja2dyb3VuZFxuJHllbGxvdzIgICAgICAgICAgOiAjRkNCMDAyO1xuJGJsYWNrICAgICAgICAgICAgOiAjMUUxQTFBO1xuJHdoaXRlICAgICAgICAgICAgOiAjRkZGRkZGO1xuXG4kb3JhbmdlICAgICAgICAgICA6ICNlZDYyMjQ7XG5cblxuJHRyYW5zcGFyZW50ICAgICAgOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDApO1xuJG1hcmsgICAgICAgICAgICAgOiAkYmx1ZTU7IC8vIGJhY2tncm91bmQgY29sb3VyIGZvciA8bWFyaz4gdGFnc1xuXG4kZGVmYXVsdC1ncmFkaWVudCA6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20gcmlnaHQsICRibHVlIDUlLCAkYmxhY2sgNjYlKTtcbiRyZXZlcnNlLWdyYWRpZW50IDogbGluZWFyLWdyYWRpZW50KDEyMGRlZywgIzEwMTI0ZCAwJSwgJGJsdWUgODAlKTtcbiRsaWdodC1ncmFkaWVudCAgIDogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCBib3R0b20sICMxMDEyNGQgNTUlLCAjMTcyNTgyIDEwMCUpO1xuXG5cbi8vL1xuJHByaW1hcnk6ICRibHVlO1xuLy8vXG5cblxuXG5cbi8vLyBUaGVtZXMgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiR0aGVtZS1kZWZhdWx0LXBhZ2UtYmFja2dyb3VuZCAgICA6ICRkZWZhdWx0LWdyYWRpZW50O1xuJHRoZW1lLWRlZmF1bHQtY29udGVudC1iYWNrZ3JvdW5kIDogJHRyYW5zcGFyZW50O1xuJHRoZW1lLWRlZmF1bHQtbmF2LWJhY2tncm91bmQgICAgIDogJHRyYW5zcGFyZW50O1xuJHRoZW1lLWRlZmF1bHQtbmF2LWJhY2tncm91bmQtbW9iIDogJHdoaXRlO1xuJHRoZW1lLWRlZmF1bHQtbmF2LWZvbnQgICAgICAgICAgIDogJHdoaXRlO1xuJHRoZW1lLWRlZmF1bHQtbmF2LWZvbnQtbW9iICAgICAgIDogJGJsdWU7XG4kdGhlbWUtZGVmYXVsdC1uYXYtc3BhY2luZy1jb2xvdXIgOiByZ2JhKCRibHVlLCAwLjMpO1xuJHRoZW1lLWRlZmF1bHQtZm9udCAgICAgICAgICAgICAgIDogJHdoaXRlO1xuJHRoZW1lLWRlZmF1bHQtaGVhZGluZyAgICAgICAgICAgIDogJHdoaXRlO1xuJHRoZW1lLWRlZmF1bHQtYWNjZW50XHRcdFx0XHRcdCAgICA6ICRyZWQ7XG4kdGhlbWUtZGVmYXVsdC1sb2dvICAgICAgICAgICAgICAgOiAkd2hpdGU7XG5cbiR0aGVtZS13aGl0ZS1wYWdlLWJhY2tncm91bmQgICAgICA6ICRsaWdodC1ncmFkaWVudDtcbiR0aGVtZS13aGl0ZS1jb250ZW50LWJhY2tncm91bmQgICA6ICNmOGY4Zjg7XG4kdGhlbWUtd2hpdGUtbmF2LWJhY2tncm91bmQgICAgICAgOiAkdHJhbnNwYXJlbnQ7XG4kdGhlbWUtd2hpdGUtbmF2LWJhY2tncm91bmQtbW9iICAgOiAkYmx1ZTtcbiR0aGVtZS13aGl0ZS1uYXYtZm9udCAgICAgICAgICAgICA6ICR3aGl0ZTtcbiR0aGVtZS13aGl0ZS1uYXYtZm9udC1tb2IgICAgICAgICA6ICR3aGl0ZTtcbiR0aGVtZS13aGl0ZS1uYXYtc3BhY2luZy1jb2xvdXIgICA6IHJnYmEoJHdoaXRlLCAwLjMpO1xuJHRoZW1lLXdoaXRlLWZvbnQgICAgICAgICAgICAgICAgIDogJGJsYWNrO1xuJHRoZW1lLXdoaXRlLWhlYWRpbmcgICAgICAgICAgICAgIDogJGJsdWU7XG4kdGhlbWUtd2hpdGUtYWNjZW50XHRcdFx0XHRcdCAgICAgIDogJHRoZW1lLWRlZmF1bHQtYWNjZW50O1xuJHRoZW1lLXdoaXRlLWxvZ28gICAgICAgICAgICAgICAgIDogJHdoaXRlO1xuXG4kdGhlbWUtYmxhY2stcGFnZS1iYWNrZ3JvdW5kICAgICAgOiAkZGVmYXVsdC1ncmFkaWVudDtcbiR0aGVtZS1ibGFjay1jb250ZW50LWJhY2tncm91bmQgICA6ICRibGFjaztcbiR0aGVtZS1ibGFjay1uYXYtYmFja2dyb3VuZCAgICAgICA6ICR3aGl0ZTtcbiR0aGVtZS1ibGFjay1uYXYtYmFja2dyb3VuZC1tb2IgICA6ICR3aGl0ZTtcbiR0aGVtZS1ibGFjay1uYXYtZm9udCAgICAgICAgICAgICA6ICRibHVlO1xuJHRoZW1lLWJsYWNrLW5hdi1mb250LW1vYiAgICAgICAgIDogJGJsdWU7XG4kdGhlbWUtYmxhY2stbmF2LXNwYWNpbmctY29sb3VyICAgOiByZ2JhKCRibHVlLCAwLjMpO1xuJHRoZW1lLWJsYWNrLWZvbnQgICAgICAgICAgICAgICAgIDogJHdoaXRlO1xuJHRoZW1lLWJsYWNrLWhlYWRpbmcgICAgICAgICAgICAgIDogJHdoaXRlO1xuJHRoZW1lLWJsYWNrLWFjY2VudFx0XHRcdFx0XHQgICAgICA6ICR0aGVtZS1kZWZhdWx0LWFjY2VudDtcbiR0aGVtZS1ibGFjay1sb2dvICAgICAgICAgICAgICAgICA6ICRibHVlO1xuXG4vLy8gUGFsZXR0ZSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8vIEJ5IGxvYWRpbmcgY29uZmlndXJhdGlvbnMgaW50byB0aGlzICdwYWxsZXRlJyBtb2R1bGUsIHdlIHdpbGwgYmUgYWJsZVxuLy8vIHRvIGRlY2xhcmUgdmFyaWFudHMgb2YgYSBmZXcgY29tbW9uIGNvbG91cnMuIFlvdSBjYW4gYWxzbyBhZGp1c3QgdGhlIGxpZ2h0bmVzc1xuLy8vIG9yIGRhcmtuZXNzIG9mIGVhY2ggdmFyaWFudCBieSBwYXNzaW5nIGluIHRoZSByZWxldmFudCBwcml2YXRlIHJ1bGVzLiBcbi8vLyBQYWxldHRlIHdpbGwgYWxzbyBleHBvc2UgcG9wdWxhciBzb2NpYWwgbWVkaWEgY29sb3VycyBhbmQgdGhlIFllbGxvIGJyYW5kIGNvbG91ci5cbi8vLyBAc2VlIGh0dHBzOi8vc2Fzcy1sYW5nLmNvbS9kb2N1bWVudGF0aW9uL2F0LXJ1bGVzL2ZvcndhcmQjY29uZmlndXJpbmctbW9kdWxlc1xuLy8vIEBvdXRwdXQgJGdyZWVuIDogIzAyOTI5QTsgJGdyZWVuLWRhcmsgOiAjMjU2NTY5OyAkZ3JlZW4tbGlnaHQ6ICMwNGI5YzQ7XG5cbkBmb3J3YXJkICdjcmVhdGUvcGFsZXR0ZSd3aXRoICgkYmx1ZSA6ICRibHVlLFxuXHQkcmVkIDogJHJlZCxcblx0JGdyZXkgOiAkZ3JleSxcblx0JHllbGxvdyA6ICR5ZWxsb3csXG5cdCRncmVlbiA6ICRncmVlbixcblx0JGJsYWNrIDogJGJsYWNrKTtcblxuJGNvbXBvbmVudC10aGVtZXMgOiAoXCJyZWRcIjogJHJlZCwgXCJibHVlXCI6ICRibHVlLCBcImdyZXlcIjogJGdyZXkzLCBcIndoaXRlXCIgOiAkd2hpdGUpOyIsIi8qIHotaW5kZXhlcyBhcmUgbGFyZ2UgZHVlIHRvIHRoZSBmYWN0IHRoYXQgdGhpbmdzIG1pZ2h0IGNoYW5nZVxuICogaW4gdGhlIGZ1dHVyZS4gSW4gb3JkZXIgdG8gYWNjb3VudCBmb3Igc2NhbGFiaWxpdHksIHRoaXMgZ2l2ZXNcbiAqIHJvb20gdG8gbWFrZSBjaGFuZ2VzIGFuZCBub3QgYnJlYWsgdGhlIGVudGlyZSBzaXRlLCBtZWFuaW5nIFxuICogd2Ugd29uJ3QgaGF2ZSB0byBnbyBpbiBhbmQgcmVmYWN0b3IgYSBsb3Qgb2Ygb3VyIGNvZGUuXG4gKi9cbi8qICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgSU5QVVRTXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIENPTlRBSU5FUlNcbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS1cblx0QmFzZSByZXN1bHQgc3R5bGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHRWYXJpYXRpb25zXG4tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgQmFzZSBzdHlsaW5nXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgV2l0aCBzZWNvbmRhcnkgc2VjdGlvblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIENoZWNrYm94IHRhZ3Ncbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBTdGF0ZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4jbWFya2V0LXNlY3RvcnMgLmhlYWRlciAuc3ViaGVhZGluZyB7XG4gIGNvbG9yOiAjREYzMDM1O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDE2ODFweCkge1xuICAjbWFya2V0LXNlY3RvcnMgYXJ0aWNsZS1ncmlkIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICB9XG59XG5cbiNtYXJrZXQtc2VjdG9ycyAuY2FsbFRvQWN0aW9uLCAjaG9tZSAubWFya2V0LXNlY3RvcnNcXDpsaXN0IC5jYWxsVG9BY3Rpb24ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSAobWF4LWhlaWdodDogMTAwMHB4KSB7XG4gIGJvZHkubWFya2V0LXNlY3RvcnMgc2lkZS1iYXIgPiBkaXYge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICB9XG59XG5ib2R5Lm1hcmtldC1zZWN0b3JzIHNpZGUtYmFyIGZvcm0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxMzFmNmI7XG4gIHBhZGRpbmc6IHZhcigtLWd1dHRlcjEpO1xufVxuYm9keS5tYXJrZXQtc2VjdG9ycyBzaWRlLWJhciBmb3JtIC5mcmVlZm9ybS1sYWJlbCB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbmJvZHkubWFya2V0LXNlY3RvcnMgc2lkZS1iYXIgZm9ybSBsYWJlbCB7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuYm9keS5tYXJrZXQtc2VjdG9ycyBzaWRlLWJhciBmb3JtIC5mb3JtLWludHJvIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0RGMzAzNTtcbiAgY29sb3I6IHdoaXRlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbjogdmFyKC0tZ3V0dGVyMS0pIHZhcigtLWd1dHRlcjEtKSBjYWxjKDYwcHggKyB2YXIoLS1ndXR0ZXIxKSkgdmFyKC0tZ3V0dGVyMS0pO1xuICBwYWRkaW5nOiB2YXIoLS1ndXR0ZXIxKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuYm9keS5tYXJrZXQtc2VjdG9ycyBzaWRlLWJhciBmb3JtIC5mb3JtLWludHJvIC5oZWFkaW5nIHtcbiAgZm9udC1zaXplOiAzcmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tZ2FwKTtcbiAgdGV4dC13cmFwOiBiYWxhbmNlO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogd2hpdGU7XG59XG5ib2R5Lm1hcmtldC1zZWN0b3JzIHNpZGUtYmFyIGZvcm0gLmZvcm0taW50cm8gcCB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbmJvZHkubWFya2V0LXNlY3RvcnMgc2lkZS1iYXIgZm9ybSAuZm9ybS1pbnRybzo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBoZWlnaHQ6IDYwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjREYzMDM1O1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IGNhbGMoMTAwJSAtIDFweCk7XG4gIGNsaXAtcGF0aDogcG9seWdvbig1MCUgMTAwJSwgMCAwLCAxMDAlIDApO1xufVxuYm9keS5tYXJrZXQtc2VjdG9ycyBzaWRlLWJhciBmb3JtIC5mcmVlZm9ybS1yb3c6aGFzKC5mb3JtLWludHJvKSB7XG4gIGRpc3BsYXk6IGNvbnRlbnRzO1xufVxuYm9keS5tYXJrZXQtc2VjdG9ycyBzaWRlLWJhciBmb3JtIC5mcmVlZm9ybS1yb3c6aGFzKC5mb3JtLWludHJvKSAuZnJlZWZvcm0tY29sdW1uIHtcbiAgZGlzcGxheTogY29udGVudHM7XG59XG5ib2R5Lm1hcmtldC1zZWN0b3JzIHNpZGUtYmFyOmhhcyhmb3JtKSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5ib2R5Lm1hcmtldC1zZWN0b3JzIHNpZGUtYmFyOmhhcyhmb3JtKSBmZWF0dXJlZC1pbWFnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE0MDBweCkge1xuICBib2R5Lm1hcmtldC1zZWN0b3JzIHNpZGUtYmFyOmhhcyhmb3JtKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICB9XG4gIGJvZHkubWFya2V0LXNlY3RvcnMgc2lkZS1iYXI6aGFzKGZvcm0pID4gZGl2IHtcbiAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgYm9keS5tYXJrZXQtc2VjdG9ycyBzaWRlLWJhcjpoYXMoZm9ybSkgZmVhdHVyZWQtaW1hZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk4MXB4KSB7XG4gIC5tYXJrZXQtc2VjdG9yc1xcOmFydGljbGVzIHtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjZXIxKTtcbiAgfVxuICAubWFya2V0LXNlY3RvcnNcXDphcnRpY2xlcyAuY2FsbFRvQWN0aW9uIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTgwcHgpIHtcbiAgLm1hcmtldC1zZWN0b3JzXFw6YXJ0aWNsZXMgLmNhbGxUb0FjdGlvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBncmlkLWNvbHVtbjogMS8tMTtcbiAgfVxuICAubWFya2V0LXNlY3RvcnNcXDphcnRpY2xlcyAucmVzdWx0LWl0ZW0sIC5tYXJrZXQtc2VjdG9yc1xcOmFydGljbGVzID4gaDMuaGVhZGluZyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDE0MDBweCkge1xuICAubWFya2V0LXNlY3RvcnNcXDphcnRpY2xlcyB7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2VyMSk7XG4gIH1cbn1cbi5tYXJrZXQtc2VjdG9yc1xcOmFydGljbGVzID4gLmhlYWRpbmcge1xuICBmb250LXNpemU6IDEuMjVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbiAgY29sb3I6ICNERjMwMzU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLWd1dHRlcjEpO1xufVxuLm1hcmtldC1zZWN0b3JzXFw6YXJ0aWNsZXMgLmRldGFpbHMge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ubWFya2V0LXNlY3RvcnNcXDpsaXN0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTIwZGVnLCAjMTAxMjRkIDIwJSwgIzEzMWY2YiA4MCUpO1xuICBkaXNwbGF5OiBncmlkO1xuICBpc29sYXRpb246IGlzb2xhdGU7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMjQwcHggMWZyO1xuICBnYXA6IDAgdmFyKC0tZ3V0dGVyMSk7XG59XG4ubWFya2V0LXNlY3RvcnNcXDpsaXN0IC5kZXRhaWxzIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5tYXJrZXQtc2VjdG9yc1xcOmxpc3QgLmludHJvIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZ3JpZC1yb3c6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxMzFmNmI7XG4gIHBhZGRpbmc6IHZhcigtLWd1dHRlcjEpIHZhcigtLWd1dHRlcjIpIHZhcigtLWd1dHRlcjEpIHZhcigtLWd1dHRlcjEpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBjbGlwLXBhdGg6IHBvbHlnb24oMCUgMTAwJSwgMCUgMCUsIDEwMCUgMCUsIDU1JSAxMDAlKTtcbn1cbi5tYXJrZXQtc2VjdG9yc1xcOmxpc3QgLmludHJvIC5oZWFkaW5nIHtcbiAgZm9udC1zaXplOiAxLjI1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG59XG4ubWFya2V0LXNlY3RvcnNcXDpsaXN0IC5pbnRybyAuc3ViLWhlYWRpbmcge1xuICBvcmRlcjogLTE7XG4gIGNvbG9yOiAjREYzMDM1O1xuICBmb250LXNpemU6IDAuOTM3NWVtO1xuICBsaW5lLWhlaWdodDogMS42O1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1nYXApO1xufVxuLm1hcmtldC1zZWN0b3JzXFw6bGlzdCBhcnRpY2xlLWdyaWQge1xuICBncmlkLWdhcDogdmFyKC0tZ2FwKTtcbiAgcGFkZGluZzogMCBjbGFtcCgyMDBweCwgMjB2dywgMzAwcHgpIDAgMDtcbiAgZ3JpZC1yb3c6IDE7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbHVtbnM6IDE2MHB4O1xuICBjb2x1bW4tZ2FwOiB2YXIoLS1ndXR0ZXIyKTtcbiAgcGFkZGluZy1ibG9jazogdmFyKC0tZ3V0dGVyMSk7XG59XG4ubWFya2V0LXNlY3RvcnNcXDpsaXN0IC5yZXN1bHQtaXRlbSB7XG4gIGRpc3BsYXk6IGNvbnRlbnRzO1xufVxuLm1hcmtldC1zZWN0b3JzXFw6bGlzdCAucmVzdWx0LWl0ZW0gLnJlc3VsdC10aXRsZSB7XG4gIGRpc3BsYXk6IGNvbnRlbnRzO1xufVxuLm1hcmtldC1zZWN0b3JzXFw6bGlzdCAucmVzdWx0LWl0ZW0gLnJlc3VsdC10aXRsZSBhIHtcbiAgYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmctYmxvY2s6IHZhcigtLWd1dHRlcjApO1xufVxuLm1hcmtldC1zZWN0b3JzXFw6bGlzdCAucmVzdWx0LWl0ZW0gLnJlc3VsdC10aXRsZSBhOjphZnRlciB7XG4gIGNvbnRlbnQ6IGluaXRpYWw7XG59XG4ubWFya2V0LXNlY3RvcnNcXDpsaXN0IC5yZXN1bHQtaXRlbSAucmVzdWx0LXRpdGxlIGE6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGhlaWdodDogMXJlbTtcbiAgd2lkdGg6IDFyZW07XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA5IDExJyUzRSUzQ3BhdGggZD0nbS41NzcuODE2IDYuMDA1IDQuMjQ1TC41NzcgOS4zMDYnIGZpbGw9J25vbmUnIHN0cm9rZT0nJTIzZGYzMDM1JyBzdHJva2Utd2lkdGg9JzInLyUzRSUzQy9zdmclM0VcIik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgbWFyZ2luLWlubGluZS1lbmQ6IDFjaDtcbiAgbWFyZ2luLWlubGluZS1zdGFydDogLTJyZW07XG59XG4ubWFya2V0LXNlY3RvcnNcXDpsaXN0IC5yZXN1bHQtaXRlbSAucmVzdWx0LWltYWdlIHtcbiAgY2xpcC1wYXRoOiBwb2x5Z29uKDAlIDEwMCUsIDM1JSAwJSwgMTAwJSAwJSwgMTAwJSAxMDAlKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgcmlnaHQ6IDA7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogY2xhbXAoMjAwcHgsIDIwdncsIDMwMHB4KTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBncmlkLXJvdzogMTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbiAgdHJhbnNpdGlvbi1kZWxheTogMC4zcztcbiAgei1pbmRleDogMTtcbn1cbi5tYXJrZXQtc2VjdG9yc1xcOmxpc3QgLnJlc3VsdC1pdGVtIC5yZXN1bHQtaW1hZ2UgaW1nIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvYmplY3QtZml0OiBjb3Zlcjtcbn1cbi5tYXJrZXQtc2VjdG9yc1xcOmxpc3QgLnJlc3VsdC1pdGVtOmhhcyhhOmhvdmVyKSAucmVzdWx0LWltYWdlIHtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNpdGlvbi1kZWxheTogMHM7XG59XG4ubWFya2V0LXNlY3RvcnNcXDpsaXN0IC5yZXN1bHQtaXRlbTpub3QoOmhhcyhhOmhvdmVyKSk6Zmlyc3Qtb2YtdHlwZSAucmVzdWx0LWltYWdlIHtcbiAgb3BhY2l0eTogMTtcbn1cbi5tYXJrZXQtc2VjdG9yc1xcOmxpc3QgLmJ1dHRvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICB6LWluZGV4OiAyO1xuICByaWdodDogMDtcbn1cbkBjb250YWluZXIgKHdpZHRoIDwgOTAwcHgpIHtcbiAgLm1hcmtldC1zZWN0b3JzXFw6bGlzdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG4gIC5tYXJrZXQtc2VjdG9yc1xcOmxpc3QgYXJ0aWNsZS1ncmlkIHtcbiAgICBwYWRkaW5nLWlubGluZTogdmFyKC0tZ3V0dGVyMyk7XG4gICAgcGFkZGluZy1ibG9jay1lbmQ6IGNhbGMoY2xhbXAoMjAwcHgsIDIwdncsIDMwMHB4KSArIHZhcigtLWd1dHRlcjEpKTtcbiAgfVxuICAubWFya2V0LXNlY3RvcnNcXDpsaXN0IC5pbnRybyB7XG4gICAgY2xpcC1wYXRoOiBpbml0aWFsO1xuICAgIHBhZGRpbmc6IHZhcigtLWd1dHRlcjIpO1xuICAgIHBhZGRpbmctYm90dG9tOiA1MHB4O1xuICB9XG4gIC5tYXJrZXQtc2VjdG9yc1xcOmxpc3QgLnJlc3VsdC1pdGVtIC5yZXN1bHQtaW1hZ2Uge1xuICAgIGNsaXAtcGF0aDogaW5pdGlhbDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdG9wOiBpbml0aWFsO1xuICAgIGhlaWdodDogY2xhbXAoMjAwcHgsIDIwdncsIDMwMHB4KTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIC5tYXJrZXQtc2VjdG9yc1xcOmxpc3QgLnJlc3VsdC1pdGVtIC5yZXN1bHQtaW1hZ2UgaW1nIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cbn1cblxuLmFwcGxpY2F0aW9uc1xcOmxpc3Qge1xuICBtYXgtd2lkdGg6IDEyMDBweDtcbn1cbi5hcHBsaWNhdGlvbnNcXDpsaXN0IGFydGljbGUtZ3JpZCB7XG4gIGNvbHVtbnM6IDIyMHB4O1xufVxuXG4jbWFya2V0LXNlY3RvcnMsICNhcHBsaWNhdGlvbnMge1xuICAtLXRoZW1lLWNvbnRlbnQtYmFja2dyb3VuZDogIzEzMWY2YjtcbiAgLS1oZWFkaW5nLWNvbG91cjogd2hpdGU7XG4gIC0tZm9udC1jb2xvdXI6IHdoaXRlO1xufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8gQnJlYWsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNicmVha1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIG91dCgkYnJlYWtwb2ludCkge1xuICBAbWVkaWEgKG1pbi13aWR0aDojeyRicmVha3BvaW50ICsgMX0pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gaW4oJGJyZWFrcG9pbnQpIHtcbiAgQG1lZGlhIChtYXgtd2lkdGg6I3skYnJlYWtwb2ludH0pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gYmV0d2VlbigkbWluLCAkbWF4KSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiN7JG1pbn0pIGFuZCAobWF4LXdpZHRoOiN7JG1heH0pIHtcbiAgICBAY29udGVudDtcbiAgfVxufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBVbml0c1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQHVzZSBcInNhc3M6bWF0aFwiO1xuQHVzZSAnc2FzczpzdHJpbmcnO1xuQHVzZSAnc2FzczptZXRhJztcblxuLy8gVGhpcyB1bml0cyBjcmVhdG9yIHdpbGwgcmVuZGVyIHNpeCBwb3NpdGl2ZSBhbmQgc2l4IG5lZ2F0aXZlIHNhc3MgdmFyaWFibGVzIGZvciBcbi8vIGdhcHMsIHNwYWNlcnMsIGFuZCBndXR0ZXJzIHJlbGF0aXZlIHRvIHRoZSBiYXNldiB2YWx1ZXMgZGVmaW5lZCBiZWxvdy5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBCYXNlIFZhbHVlcyBcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vLyBAc2VlIGh0dHBzOi8vY29kZXBlbi5pby9tYXJrbm90dG9uL3Blbi9FeFBiTkdlXG5cbi8vIFRoZXNlIHRocmVlIHZhbHVlcyB3aWxsIGFjdCBhIGNvbnN0YW50IGJhc2VsaW5lIGZvciBhbGwgZm9sbG93aW5nIHVuaXQgZGVsY2FyYXRpb25zLlxuXG4vLyBHYXBzIG11c3QgdXNlIGFuIGFic29sdXRlIGFuZCBzdGF0aWMgJ3B4JyB1bml0LiBJdCBzaG91bGQgbm90IGJlIHJlbGF0aXZlIHRvIGFueVxuLy8gcGFyZW50IGNvbnRhaW5lciBhbmQgaXMgbm90IGludGVuZGVkIGZvciBmb250IHNpemVzLCBzbyB5b3Ugc2hvdWxkIG5vdCB1c2UgJ3JlbScgb3IgJ2VtJy4gXG4kZ2FwIDogMTZweCAhZGVmYXVsdDtcbiRiYXNlLWdhcCA6ICRnYXA7XG5cbi8vIFNwYWNlcnMgbXVzdCB1c2UgYSAndmgnIHVuaXQgc28gdGhleSBhcmUgcmVsYXRpdmUgdG8gdGhlIHVzZXJzIHZpZXdwb3J0IGhlaWdodC13aXNlLlxuLy8gVGhleSBzaG91bGQgcHJpbWFyaWx5IGJlIHVzZWQgZm9yIHRoZSB0b3AgYW5kIGJvdHRvbSBtYXJnaW5zIG9uIGEgY29tcG9uZW50IGxldmVsLlxuJHNwYWNlciA6IDR2aCAhZGVmYXVsdDsgXG4kYmFzZS1zcGFjZXIgOiAkc3BhY2VyOyBcblxuLy8gR3V0dGVycyBtdXN0IHVzZSBhICd2dycgdW5pdCBzbyB0aGV5IGFyZSByZWxhdGl2ZSB0byB0aGUgdXNlcnMgdmlld3BvcnQgd2lkdGgtd2lzZS4gXG4vLyBUaGV5IHNob3VsZCBwcmltYXJpbHkgYmUgdXNlZCBmb3IgdGhlIGxlZnQgYW5kIHJpZ2h0IHBhZGRpbmcgb3IgbWFyZ2luIG9uIGEgcGFyZW50IGxldmVsLlxuLy8gQXMgYSBzdWdnZXN0aW9uLCB0aGlzIGd1dHRlciBjb25zdGFudCBzaG91bGQgYmUgaGFsZiB0aGUgc2l6ZSBvZiB0aGUgc3BhY2VyIHZhbHVlLlxuJGd1dHRlciA6IDN2dyAhZGVmYXVsdDtcbiRiYXNlLWd1dHRlciA6ICRndXR0ZXI7IFxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQXNib2x1dGUgVW5pdHMgXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBHYXBzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gR2FwcyBhcmUgYW4gYWJzb2x1dGUgdW5pdCAocHgpIGludGVuZGVkIHRvIGJlIHVzZWQgb24gaW5kaXZpZHVhbCBlbGVtZW50cyB3aXRoaW4gYSBjb21wb25lbnRlZC4gXG4vLyBUaGUgYWltIGlzIHRvIHJldGFpbiBjb25zaXN0YW50IHNwYWNpbmcgYW1vbmdzdCBibG9jaywgaW5saW5lLCB0YWJsZSBhbmQgZ3JvdXAgaHRtbCBlbGVtZW50cy5cblxuQGZ1bmN0aW9uIGdhcCgkYW1vdW50IDogMSkge1xuICBAaWYgKCAkYW1vdW50ID09IDEgKSB7IFxuICAgIEByZXR1cm4gdmFyKC0tZ2FwKTsgXG4gIH0gQGVsc2UgeyBcbiAgICBAcmV0dXJuIGNhbGModmFyKC0tZ2FwKSAqICN7JGFtb3VudH0pOyBcbiAgfVxufVxuXG4kZ2FwMCA6IGdhcCgwLjUpOyAkZ2FwMC0gOiBnYXAoLTAuNSk7XG4kZ2FwICA6IGdhcCgxKTsgICAkZ2FwLSAgOiBnYXAoLTEpO1xuJGdhcDIgOiBnYXAoMik7ICAgJGdhcDItIDogZ2FwKC0yKTtcbiRnYXAzIDogZ2FwKDMpOyAgICRnYXAzLSA6IGdhcCgtMyk7XG4kZ2FwNCA6IGdhcCg0KTsgICAkZ2FwNC0gOiBnYXAoLTQpO1xuJGdhcDUgOiBnYXAoNSk7ICAgJGdhcDUtIDogZ2FwKC01KTtcbiRnYXA2IDogZ2FwKDYpOyAgICRnYXA2LSA6IGdhcCgtNik7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBSZWxhdGl2ZSBVbml0cyBcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBmdW5jdGlvbiBfZHluYW1pYy11bml0KCRjdXN0b20tcHJvcGVydHksICRhbW91bnQsICRtaW4sICRtYXgsICR1c2UtbmVnYXRpdmUgOiBmYWxzZSwgJHVzZS1jbGFtcCA6IHRydWUpIHtcblxuICAvLyBDYWxjIE1ldGhvZFxuICAkcmVzdWx0IDogY2FsYygoI3skY3VzdG9tLXByb3BlcnR5fSAqICN7JGFtb3VudH0pICsgI3tpZihzYXNzKCRtaW4gPT0gMCk6IDBweDsgZWxzZTogJG1pbil9KTtcbiAgXG4gIC8vIENsYW1wIE1ldGhvZFxuICBAaWYgKCAkdXNlLWNsYW1wICkge1xuICAgIEBpZiAoICRhbW91bnQgPT0gMCApIHtcbiAgICAgICRyZXN1bHQgOiBjbGFtcCgje21hdGguZGl2KCRtaW4sIDIpfSwgI3skY3VzdG9tLXByb3BlcnR5fSAqIDAuNSwgI3skbWF4fSk7XG4gICAgfSBAZWxzZSBpZiAoICRhbW91bnQgPT0gMSApIHtcbiAgICAgICRyZXN1bHQgOiBjbGFtcCgjeyRtaW59LCAjeyRjdXN0b20tcHJvcGVydHl9LCAjeyRtYXh9KTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRyZXN1bHQgOiBjbGFtcCgjeyRtaW59LCAjeyRjdXN0b20tcHJvcGVydHl9ICogI3skYW1vdW50fSwgI3skbWF4fSk7XG4gICAgfVxuICB9IFxuXG4gIEBpZiAoICR1c2UtbmVnYXRpdmUgKSB7XG4gICAgJHJlc3VsdCA6IGNhbGMoLTEgKiAjeyRyZXN1bHR9KTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlc3VsdDtcblxufSBcblxuLy8gU3BhY2VycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFNwYWNlcnMgYXJlIGEgcmVsYXRpdmUgdmlld3BvcnQgaGVpZ2h0ICh2aCkgdW5pdCBpbnRlbmRlZCB0byBiZSB1c2VkIG9uIGEgY29tcG9uZW50ZWQgbGV2ZWwuXG4vLyBUaGUgYWltIGlzIHRvIHJldGFpbiBjb25zaXN0YW50IHRvcCBhbmQgYm90dG9tIHNwYWNpbmcgYW1vbmdzdCAnc2VjdGlvbicgYW5kICdjdXN0b20nIGVsZW1lbnRzLlxuLy8gU3BhY2VycyB3aWxsIGVxdWF0ZSB0byBzb21ldGhpbmcgbGlrZTogYCgkc3BhY2VyICogeCkgKyAkZ2FwYC4gXG4vLyBUaGUgJyRnYXAnIGlzIGFkZGVkIHNvIHRoYXQgdmggc3BhY2luZyB3aWxsIG5ldmVyIHNjYWxlIHRvbyBjbG9zZSB0byAwcHguIFxuXG5AZnVuY3Rpb24gc3BhY2VyKCRhbW91bnQgOiAxLCAkbWluIDogJGJhc2UtZ2FwLCAkbWF4IDogbnVsbCwgJHVzZS1uZWdhdGl2ZSA6IGZhbHNlLCAkdXNlLWNsYW1wIDogdHJ1ZSkge1xuICBAaWYgKCAkYW1vdW50ID09IDApIHsgJGFtb3VudCA6IDAuNTsgJG1pbiA6IG1hdGguZGl2KCRtaW4sIDIpOyB9XG4gIEBpZiAoIG1ldGEudHlwZS1vZigkbWF4KSA9PSAnbnVsbCcgKSB7IFxuICAgIEBpZiAoIG1ldGEudHlwZS1vZigkbWluKSA9PSAnc3RyaW5nJyBhbmQgc3RyaW5nLmluZGV4KCRtaW4sICd2YXInKSApIHtcbiAgICAgICRtYXggOiBjYWxjKCN7JG1pbn0gKiAjeyRhbW91bnQgKyAxfSk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgJG1heCA6ICN7JG1pbiAqICgkYW1vdW50ICsgMSl9OyBcbiAgICB9XG4gIH1cbiAgQHJldHVybiBfZHluYW1pYy11bml0KHZhcigtLXNwYWNlciksICRhbW91bnQsICRtaW4sICRtYXgsICR1c2UtbmVnYXRpdmUsICR1c2UtY2xhbXApO1xufVxuXG4kc3BhY2VyMCA6IHZhcigtLXNwYWNlcjApOyAkc3BhY2VyMC0gOiB2YXIoLS1zcGFjZXIwLSk7XG4kc3BhY2VyICA6IHZhcigtLXNwYWNlcjEpOyAkc3BhY2VyLSAgOiB2YXIoLS1zcGFjZXIxLSk7XG4kc3BhY2VyMiA6IHZhcigtLXNwYWNlcjIpOyAkc3BhY2VyMi0gOiB2YXIoLS1zcGFjZXIyLSk7XG4kc3BhY2VyMyA6IHZhcigtLXNwYWNlcjMpOyAkc3BhY2VyMy0gOiB2YXIoLS1zcGFjZXIzLSk7XG4kc3BhY2VyNCA6IHZhcigtLXNwYWNlcjQpOyAkc3BhY2VyNC0gOiB2YXIoLS1zcGFjZXI0LSk7XG4kc3BhY2VyNSA6IHZhcigtLXNwYWNlcjUpOyAkc3BhY2VyNS0gOiB2YXIoLS1zcGFjZXI1LSk7XG4kc3BhY2VyNiA6IHZhcigtLXNwYWNlcjYpOyAkc3BhY2VyNi0gOiB2YXIoLS1zcGFjZXI2LSk7XG5cbi8vIEd1dHRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBHdXR0ZXJzIGFyZSBhIHJlbGF0aXZlIHZpZXdwb3J0IHdpZHRoICh2dykgdW5pdCBpbnRlbmRlZCB0byBiZSB1c2VkIG9uIGEgcGFyZW50IGxldmVsO1xuLy8gZm9yIGV4YW1wbGUsIGEgd3JhcHBlciBjb250YWluZXIgb3IgYm9keSB3aXRoIG5lc3RlZCBjb21wb25lbnRzLiBcbi8vIFRoZSBhaW0gaXMgdG8gcmV0YWluIGNvbnNpc3RhbnQgbGVmdCBhbmQgcmlnaHQgc3BhY2luZyBhbW9uZ3N0ICdzZWN0aW9uJyBhbmQgJ2N1c3RvbScgZWxlbWVudHMuXG4vLyBHdXR0ZXJzIHdpbGwgZXF1YXRlIHRvIHNvbWV0aGluZyBsaWtlOiBgKCRndXR0ZXIgKiB4KSArICRnYXBgLiBcbi8vIFRoZSAnJGdhcCcgaXMgYWRkZWQgc28gdGhhdCB2dyBzcGFjaW5nIHdpbGwgbmV2ZXIgc2NhbGUgdG9vIGNsb3NlIHRvIDBweC4gXG5cbkBmdW5jdGlvbiBndXR0ZXIoJGFtb3VudCA6IDEsICRtaW4gOiAkYmFzZS1nYXAsICRtYXggOiBudWxsLCAkdXNlLW5lZ2F0aXZlIDogZmFsc2UsICR1c2UtY2xhbXAgOiB0cnVlKSB7XG4gIEBpZiAoICRhbW91bnQgPT0gMCkgeyAkYW1vdW50IDogMC41OyAkbWluIDogbWF0aC5kaXYoJG1pbiwgMik7IH1cbiAgQGlmICggbWV0YS50eXBlLW9mKCRtYXgpID09ICdudWxsJyApIHsgXG4gICAgQGlmICggbWV0YS50eXBlLW9mKCRtaW4pID09ICdzdHJpbmcnIGFuZCBzdHJpbmcuaW5kZXgoJG1pbiwgJ3ZhcicpICkge1xuICAgICAgJG1heCA6IGNhbGMoI3skbWlufSAqICN7JGFtb3VudCArIDF9KTsgXG4gICAgfSBAZWxzZSB7XG4gICAgICAkbWF4IDogI3skbWluICogKCRhbW91bnQgKyAxKX07IFxuICAgIH1cbiAgfVxuICBAcmV0dXJuIF9keW5hbWljLXVuaXQodmFyKC0tZ3V0dGVyKSwgJGFtb3VudCwgJG1pbiwgJG1heCwgJHVzZS1uZWdhdGl2ZSwgJHVzZS1jbGFtcCk7XG59XG5cbiRndXR0ZXIwIDogdmFyKC0tZ3V0dGVyMCk7ICRndXR0ZXIwLSA6IHZhcigtLWd1dHRlcjAtKTtcbiRndXR0ZXIgIDogdmFyKC0tZ3V0dGVyMSk7ICRndXR0ZXItICA6IHZhcigtLWd1dHRlcjEtKTtcbiRndXR0ZXIyIDogdmFyKC0tZ3V0dGVyMik7ICRndXR0ZXIyLSA6IHZhcigtLWd1dHRlcjItKTtcbiRndXR0ZXIzIDogdmFyKC0tZ3V0dGVyMyk7ICRndXR0ZXIzLSA6IHZhcigtLWd1dHRlcjMtKTtcbiRndXR0ZXI0IDogdmFyKC0tZ3V0dGVyNCk7ICRndXR0ZXI0LSA6IHZhcigtLWd1dHRlcjQtKTtcbiRndXR0ZXI1IDogdmFyKC0tZ3V0dGVyNSk7ICRndXR0ZXI1LSA6IHZhcigtLWd1dHRlcjUtKTtcbiRndXR0ZXI2IDogdmFyKC0tZ3V0dGVyNik7ICRndXR0ZXI2LSA6IHZhcigtLWd1dHRlcjYtKTtcbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBDb2xvdXIgUGFsZXR0ZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQHVzZSBcIi4vbW9kdWxlcy9jb2xvdXJcIjtcblxuLy8gQWRqdXN0IHRoZXNlIHRvIGFtZW5kIHRoZSBsaWdodG5lc3Mgb3IgZGFya25lc3MgYW1vdW50cyBmb3IgdGhlIGNvbG91cnMgbHNpdGVkIGJlbG93Li4gXG5cbiRfbGlnaHRuZXNzIDogMTUlICFkZWZhdWx0O1xuJF9kYXJrbmVzcyAgOiAyMCUgIWRlZmF1bHQ7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBDb21tb24gQ29sb3Vyc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJHJlZCAgICAgICAgICA6ICM5NzA4MEUgIWRlZmF1bHQ7XG4kcmVkLWxpZ2h0ICAgIDogY29sb3VyLmxpZ2h0ZW4oJHJlZCwgJF9saWdodG5lc3MpICFkZWZhdWx0O1xuJHJlZC1kYXJrICAgICA6IGNvbG91ci5kYXJrZW4oJHJlZCwgJF9kYXJrbmVzcykgIWRlZmF1bHQ7XG5cbiRvcmFuZ2UgICAgICAgOiAjREE0QjBGICFkZWZhdWx0O1xuJG9yYW5nZS1saWdodCA6IGNvbG91ci5saWdodGVuKCRvcmFuZ2UsICRfbGlnaHRuZXNzKSAhZGVmYXVsdDtcbiRvcmFuZ2UtZGFyayAgOiBjb2xvdXIuZGFya2VuKCRvcmFuZ2UsICRfZGFya25lc3MpICFkZWZhdWx0O1xuXG4keWVsbG93ICAgICAgIDogI0U5QjEwNCAhZGVmYXVsdDtcbiR5ZWxsb3ctbGlnaHQgOiBjb2xvdXIubGlnaHRlbigkeWVsbG93LCAkX2xpZ2h0bmVzcykgIWRlZmF1bHQ7XG4keWVsbG93LWRhcmsgIDogY29sb3VyLmRhcmtlbigkeWVsbG93LCAkX2RhcmtuZXNzKSAhZGVmYXVsdDtcblxuJGdyZWVuICAgICAgICA6ICM0ODhDMTMgIWRlZmF1bHQ7XG4kZ3JlZW4tbGlnaHQgIDogY29sb3VyLmxpZ2h0ZW4oJGdyZWVuLCAkX2xpZ2h0bmVzcykgIWRlZmF1bHQ7XG4kZ3JlZW4tZGFyayAgIDogY29sb3VyLmRhcmtlbigkZ3JlZW4sICRfZGFya25lc3MpICFkZWZhdWx0O1xuXG4kYmx1ZSAgICAgICAgIDogIzFCNTVDMCAhZGVmYXVsdDtcbiRibHVlLWxpZ2h0ICAgOiBjb2xvdXIubGlnaHRlbigkYmx1ZSwgJF9saWdodG5lc3MpICFkZWZhdWx0O1xuJGJsdWUtZGFyayAgICA6IGNvbG91ci5kYXJrZW4oJGJsdWUsICRfZGFya25lc3MpICFkZWZhdWx0O1xuXG4kcGluayAgICAgICAgIDogI0UwNUQ2QiAhZGVmYXVsdDtcbiRwaW5rLWxpZ2h0ICAgOiBjb2xvdXIubGlnaHRlbigkcGluaywgJF9saWdodG5lc3MpICFkZWZhdWx0O1xuJHBpbmstZGFyayAgICA6IGNvbG91ci5kYXJrZW4oJHBpbmssICRfZGFya25lc3MpICFkZWZhdWx0O1xuXG4kcHVycGxlICAgICAgIDogIzYxM0Q1QSAhZGVmYXVsdDtcbiRwdXJwbGUtbGlnaHQgOiBjb2xvdXIubGlnaHRlbigkcHVycGxlLCAkX2xpZ2h0bmVzcykgIWRlZmF1bHQ7XG4kcHVycGxlLWRhcmsgIDogY29sb3VyLmRhcmtlbigkcHVycGxlLCAkX2RhcmtuZXNzKSAhZGVmYXVsdDtcblxuJGdyZXkgICAgICAgICA6ICM3ODc4NzggIWRlZmF1bHQ7XG4kZ3JleS1saWdodCAgIDogY29sb3VyLmxpZ2h0ZW4oJGdyZXksICRfbGlnaHRuZXNzKSAhZGVmYXVsdDtcbiRncmV5LWRhcmsgICAgOiBjb2xvdXIuZGFya2VuKCRncmV5LCAkX2RhcmtuZXNzKSAhZGVmYXVsdDtcblxuJGJyb3duICAgICAgICA6ICM3NzRGMzggIWRlZmF1bHQ7XG4kYnJvd24tbGlnaHQgIDogY29sb3VyLmxpZ2h0ZW4oJGJyb3duLCAkX2xpZ2h0bmVzcykgIWRlZmF1bHQ7XG4kYnJvd24tZGFyayAgIDogY29sb3VyLmRhcmtlbigkYnJvd24sICRfZGFya25lc3MpICFkZWZhdWx0O1xuXG4kd2hpdGUgICAgICAgIDogI0ZGRkZGRiAhZGVmYXVsdCA7XG4kd2hpdGUtZGFyayAgIDogY29sb3VyLmxpZ2h0ZW4oJHdoaXRlLCAkX2xpZ2h0bmVzcykgIWRlZmF1bHQ7XG5cbiRibGFjayAgICAgICAgOiAjMDAwMDAwICFkZWZhdWx0IDtcbiRibGFjay1saWdodCAgOiBjb2xvdXIuZGFya2VuKCRibGFjaywgJF9kYXJrbmVzcykgIWRlZmF1bHQ7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTb2NpYWwgTWVkaWEgQ29sb3Vyc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8vIEBzZWUgaHR0cHM6Ly93d3cubG9ja2Vkb3duc2VvLmNvbS9zb2NpYWwtbWVkaWEtY29sb3JzL1xuXG4kZmFjZWJvb2s6ICAgICMxODc3ZjIgIWRlZmF1bHQ7XG4kdHdpdHRlcjogICAgICMxZGExZjIgIWRlZmF1bHQ7XG4kZ29vZ2xlOiAgICAgICM0Mjg1ZjQgIWRlZmF1bHQ7XG4keW91dHViZTogICAgICNmZjAwMDAgIWRlZmF1bHQ7XG4kbGlua2VkaW46ICAgICMwMDdiYjUgIWRlZmF1bHQ7XG4kaW5zdGFncmFtOiAgICNjMzJhYTMgIWRlZmF1bHQ7XG4kcGludGVyZXN0OiAgICNiZDA4MWMgIWRlZmF1bHQ7XG4kZGFpbHltb3Rpb246ICMwMDY2REMgIWRlZmF1bHQ7XG4kc25hcGNoYXQ6ICAgICNmZmZjMDAgIWRlZmF1bHQ7XG4kZmxpY2tyOiAgICAgICNmNDAwODMgIWRlZmF1bHQ7XG4kdmltZW86ICAgICAgICMxYWI3ZWEgIWRlZmF1bHQ7XG4kdGh1bWJsZXI6ICAgICMzNTQ2NWQgIWRlZmF1bHQ7XG4kcmVkZGl0OiAgICAgICNmZjQ1MDAgIWRlZmF1bHQ7XG4kd2hhdHNhcHA6ICAgICMyNWQzNjYgIWRlZmF1bHQ7XG4kc2t5cGU6ICAgICAgICMwMGFmZjAgIWRlZmF1bHQ7XG4kZGlzY29yZDogICAgICM3Mjg5ZGEgIWRlZmF1bHQ7XG5cbiRzb2NpYWwtbWVkaWEgOiAoXG4gIGZhY2Vib29rOiAgICAgJGZhY2Vib29rLFxuICB0d2l0dGVyOiAgICAgICR0d2l0dGVyLFxuICBnb29nbGU6ICAgICAgICRnb29nbGUsXG4gIHlvdXR1YmU6ICAgICAgJHlvdXR1YmUsXG4gIGxpbmtlZGluOiAgICAgJGxpbmtlZGluLFxuICBpbnN0YWdyYW06ICAgICRpbnN0YWdyYW0sXG4gIHBpbnRlcmVzdDogICAgJHBpbnRlcmVzdCxcbiAgZGFpbHltb3Rpb246ICAkZGFpbHltb3Rpb24sXG4gIHNuYXBjaGF0OiAgICAgJHNuYXBjaGF0LFxuICBmbGlja3I6ICAgICAgICRmbGlja3IsXG4gIHZpbWVvOiAgICAgICAgJHZpbWVvLFxuICB0aHVtYmxlcjogICAgICR0aHVtYmxlcixcbiAgcmVkZGl0OiAgICAgICAkcmVkZGl0LFxuICB3aGF0c2FwcDogICAgICR3aGF0c2FwcCxcbiAgc2t5cGU6ICAgICAgICAkc2t5cGUsXG4gIGRpc2NvcmQ6ICAgICAgJGRpc2NvcmRcbik7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBPdGhlciBDb2xvdXJzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4keWVsbG86ICNGRkNCMDggIWRlZmF1bHQ7XG5cbi8vLyBIYW5kbGVzIHRoZSBjdXJzb3Igc2VsZWN0aW9uIGNvbG91clxuLy8vIEBzZWUgaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS9hbG1hbmFjL3NlbGVjdG9ycy9zL3NlbGVjdGlvbi9cblxuJGhpZ2hsaWdodDogI0IyRDNGQSAhZGVmYXVsdDsgXG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSGVhZGluZ3Ncbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkB1c2UgJ3Nhc3M6c3RyaW5nJztcbkB1c2UgJ3Nhc3M6bWFwJztcbkB1c2UgJ3Nhc3M6bWV0YSc7XG5AdXNlICdzYXNzOm1hdGgnO1xuQHVzZSAnLi9jb2xsZWN0aW9ucy9mb250JztcbkB1c2UgJy4vbW9kdWxlcy91bml0JztcblxuLy8gRGVmYXVsdCBIZWFkaW5nIFZhbHVlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJGgxIDogKFxuICAnZm9udC1zaXplJyAgIDogMy4wcmVtLFxuICAnbGluZS1oZWlnaHQnIDogMS4xXG4pICFkZWZhdWx0O1xuXG4kaDIgOiAoXG4gICdmb250LXNpemUnICAgOiAyLjVyZW0sXG4gICdsaW5lLWhlaWdodCcgOiAxLjNcbikgIWRlZmF1bHQ7XG5cbiRoMyA6IChcbiAgJ2ZvbnQtc2l6ZScgICA6IDIuMnJlbSxcbiAgJ2xpbmUtaGVpZ2h0JyA6IDEuNFxuKSAhZGVmYXVsdDtcblxuJGg0IDogKFxuICAnZm9udC1zaXplJyAgIDogMi4wcmVtLFxuICAnbGluZS1oZWlnaHQnIDogMS40XG4pICFkZWZhdWx0O1xuXG4kaDUgOiAoXG4gICdmb250LXNpemUnICAgOiAxLjhyZW0sXG4gICdsaW5lLWhlaWdodCcgOiAxLjRcbikgIWRlZmF1bHQ7XG5cbiRoNiA6IChcbiAgJ2ZvbnQtc2l6ZScgICA6IDEuNnJlbSxcbiAgJ2xpbmUtaGVpZ2h0JyA6IDEuNFxuKSAhZGVmYXVsdDtcblxuJGJhc2UgOiA2Mi41ICFkZWZhdWx0O1xuJHNjYWxlciA6IDEuNXZ3ICFkZWZhdWx0O1xuJGVuYWJsZS1jcm9wcGluZyA6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBGYWxsYmFjayBMaW5lLWhlaWdodHMgc2hvdWxkIHRoZXkgbm90IGhhdmUgYmVlbiBwYXNzZWQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AaWYgbm90IG1hcC5oYXMta2V5KCRoMSwgXCJsaW5lLWhlaWdodFwiKSB7ICRoMSA6IG1hcC5zZXQoJGgxLCAnbGluZS1oZWlnaHQnLCAxLjEpOyB9XG5AaWYgbm90IG1hcC5oYXMta2V5KCRoMiwgXCJsaW5lLWhlaWdodFwiKSB7ICRoMiA6IG1hcC5zZXQoJGgyLCAnbGluZS1oZWlnaHQnLCAxLjMpOyB9XG5AaWYgbm90IG1hcC5oYXMta2V5KCRoMywgXCJsaW5lLWhlaWdodFwiKSB7ICRoMyA6IG1hcC5zZXQoJGgzLCAnbGluZS1oZWlnaHQnLCAxLjQpOyB9XG5AaWYgbm90IG1hcC5oYXMta2V5KCRoNCwgXCJsaW5lLWhlaWdodFwiKSB7ICRoNCA6IG1hcC5zZXQoJGg0LCAnbGluZS1oZWlnaHQnLCAxLjQpOyB9XG5AaWYgbm90IG1hcC5oYXMta2V5KCRoNSwgXCJsaW5lLWhlaWdodFwiKSB7ICRoNSA6IG1hcC5zZXQoJGg1LCAnbGluZS1oZWlnaHQnLCAxLjQpOyB9XG5AaWYgbm90IG1hcC5oYXMta2V5KCRoNiwgXCJsaW5lLWhlaWdodFwiKSB7ICRoNiA6IG1hcC5zZXQoJGg2LCAnbGluZS1oZWlnaHQnLCAxLjQpOyB9XG5cbi8vIERlZmluZSB0aGUgdmFyaWFibGVzIHNvIHRoZXkgYXJlIHN0aWxsIGFjY2VzaWJsZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRoMS1mb250LXNpemUgICAgIDogbWFwLmdldCgkaDEsICdmb250LXNpemUnKTtcbiRoMS1saW5lLWhlaWdodCAgIDogbWFwLmdldCgkaDEsICdsaW5lLWhlaWdodCcpO1xuJGgxLWZvbnQtc2l6ZS1taW4gOiBpZihzYXNzKG1hcC5oYXMta2V5KCRoMSwgXCJmb250LXNpemUtbWluXCIpKTogbWFwLmdldCgkaDEsIFwiZm9udC1zaXplLW1pblwiKTsgZWxzZTogZmFsc2UpO1xuJGgxLXNjYWxlciAgICAgICAgOiBpZihzYXNzKG1hcC5oYXMta2V5KCRoMSwgXCJzY2FsZXJcIikpOiBtYXAuZ2V0KCRoMSwgXCJzY2FsZXJcIik7IGVsc2U6ICRzY2FsZXIpO1xuXG4kaDItZm9udC1zaXplICAgICA6IG1hcC5nZXQoJGgyLCAnZm9udC1zaXplJyk7XG4kaDItbGluZS1oZWlnaHQgICA6IG1hcC5nZXQoJGgyLCAnbGluZS1oZWlnaHQnKTtcbiRoMi1mb250LXNpemUtbWluIDogaWYoc2FzcyhtYXAuaGFzLWtleSgkaDIsIFwiZm9udC1zaXplLW1pblwiKSk6IG1hcC5nZXQoJGgyLCBcImZvbnQtc2l6ZS1taW5cIik7IGVsc2U6IGZhbHNlKTtcbiRoMi1zY2FsZXIgICAgICAgIDogaWYoc2FzcyhtYXAuaGFzLWtleSgkaDIsIFwic2NhbGVyXCIpKTogbWFwLmdldCgkaDIsIFwic2NhbGVyXCIpOyBlbHNlOiAkc2NhbGVyKTtcblxuJGgzLWZvbnQtc2l6ZSAgICAgOiBtYXAuZ2V0KCRoMywgJ2ZvbnQtc2l6ZScpO1xuJGgzLWxpbmUtaGVpZ2h0ICAgOiBtYXAuZ2V0KCRoMywgJ2xpbmUtaGVpZ2h0Jyk7XG4kaDMtZm9udC1zaXplLW1pbiA6IGlmKHNhc3MobWFwLmhhcy1rZXkoJGgzLCBcImZvbnQtc2l6ZS1taW5cIikpOiBtYXAuZ2V0KCRoMywgXCJmb250LXNpemUtbWluXCIpOyBlbHNlOiBmYWxzZSk7XG4kaDMtc2NhbGVyICAgICAgICA6IGlmKHNhc3MobWFwLmhhcy1rZXkoJGgzLCBcInNjYWxlclwiKSk6IG1hcC5nZXQoJGgzLCBcInNjYWxlclwiKTsgZWxzZTogJHNjYWxlcik7XG5cbiRoNC1mb250LXNpemUgICAgIDogbWFwLmdldCgkaDQsICdmb250LXNpemUnKTtcbiRoNC1saW5lLWhlaWdodCAgIDogbWFwLmdldCgkaDQsICdsaW5lLWhlaWdodCcpO1xuJGg0LWZvbnQtc2l6ZS1taW4gOiBpZihzYXNzKG1hcC5oYXMta2V5KCRoNCwgXCJmb250LXNpemUtbWluXCIpKTogbWFwLmdldCgkaDQsIFwiZm9udC1zaXplLW1pblwiKTsgZWxzZTogZmFsc2UpO1xuJGg0LXNjYWxlciAgICAgICAgOiBpZihzYXNzKG1hcC5oYXMta2V5KCRoNCwgXCJzY2FsZXJcIikpOiBtYXAuZ2V0KCRoNCwgXCJzY2FsZXJcIik7IGVsc2U6ICRzY2FsZXIpO1xuXG4kaDUtZm9udC1zaXplICAgICA6IG1hcC5nZXQoJGg1LCAnZm9udC1zaXplJyk7XG4kaDUtbGluZS1oZWlnaHQgICA6IG1hcC5nZXQoJGg1LCAnbGluZS1oZWlnaHQnKTtcbiRoNS1mb250LXNpemUtbWluIDogaWYoc2FzcyhtYXAuaGFzLWtleSgkaDUsIFwiZm9udC1zaXplLW1pblwiKSk6IG1hcC5nZXQoJGg1LCBcImZvbnQtc2l6ZS1taW5cIik7IGVsc2U6IGZhbHNlKTtcbiRoNS1zY2FsZXIgICAgICAgIDogaWYoc2FzcyhtYXAuaGFzLWtleSgkaDUsIFwic2NhbGVyXCIpKTogbWFwLmdldCgkaDUsIFwic2NhbGVyXCIpOyBlbHNlOiAkc2NhbGVyKTtcblxuJGg2LWZvbnQtc2l6ZSAgICAgOiBtYXAuZ2V0KCRoNiwgJ2ZvbnQtc2l6ZScpO1xuJGg2LWxpbmUtaGVpZ2h0ICAgOiBtYXAuZ2V0KCRoNiwgJ2xpbmUtaGVpZ2h0Jyk7XG4kaDYtZm9udC1zaXplLW1pbiA6IGlmKHNhc3MobWFwLmhhcy1rZXkoJGg2LCBcImZvbnQtc2l6ZS1taW5cIikpOiBtYXAuZ2V0KCRoNiwgXCJmb250LXNpemUtbWluXCIpOyBlbHNlOiBmYWxzZSk7XG4kaDYtc2NhbGVyICAgICAgICA6IGlmKHNhc3MobWFwLmhhcy1rZXkoJGg2LCBcInNjYWxlclwiKSk6IG1hcC5nZXQoJGg2LCBcInNjYWxlclwiKTsgZWxzZTogJHNjYWxlcik7XG5cbi8vIEhhbmRsZXMgQ3JvcHMgc2hvdWxkIHRoZXkgbm90IGhhdmUgYmVlbiBwYXNzZWQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRfaDEtY3JvcC10b3AgICAgOiBpZihzYXNzKG1hcC5oYXMta2V5KCRoMSwgXCJjcm9wLXRvcFwiKSk6IG1hcC5nZXQoJGgxLCBcImNyb3AtdG9wXCIpOyBlbHNlOiBmYWxzZSk7XG4kX2gyLWNyb3AtdG9wICAgIDogaWYoc2FzcyhtYXAuaGFzLWtleSgkaDIsIFwiY3JvcC10b3BcIikpOiBtYXAuZ2V0KCRoMiwgXCJjcm9wLXRvcFwiKTsgZWxzZTogZmFsc2UpO1xuJF9oMy1jcm9wLXRvcCAgICA6IGlmKHNhc3MobWFwLmhhcy1rZXkoJGgzLCBcImNyb3AtdG9wXCIpKTogbWFwLmdldCgkaDMsIFwiY3JvcC10b3BcIik7IGVsc2U6IGZhbHNlKTtcbiRfaDQtY3JvcC10b3AgICAgOiBpZihzYXNzKG1hcC5oYXMta2V5KCRoNCwgXCJjcm9wLXRvcFwiKSk6IG1hcC5nZXQoJGg0LCBcImNyb3AtdG9wXCIpOyBlbHNlOiBmYWxzZSk7XG4kX2g1LWNyb3AtdG9wICAgIDogaWYoc2FzcyhtYXAuaGFzLWtleSgkaDUsIFwiY3JvcC10b3BcIikpOiBtYXAuZ2V0KCRoNSwgXCJjcm9wLXRvcFwiKTsgZWxzZTogZmFsc2UpO1xuJF9oNi1jcm9wLXRvcCAgICA6IGlmKHNhc3MobWFwLmhhcy1rZXkoJGg2LCBcImNyb3AtdG9wXCIpKTogbWFwLmdldCgkaDYsIFwiY3JvcC10b3BcIik7IGVsc2U6IGZhbHNlKTtcblxuJF9oMS1jcm9wLWJvdHRvbSA6IGlmKHNhc3MobWFwLmhhcy1rZXkoJGgxLCBcImNyb3AtYm90dG9tXCIpKTogbWFwLmdldCgkaDEsIFwiY3JvcC1ib3R0b21cIik7IGVsc2U6IGZhbHNlKTtcbiRfaDItY3JvcC1ib3R0b20gOiBpZihzYXNzKG1hcC5oYXMta2V5KCRoMiwgXCJjcm9wLWJvdHRvbVwiKSk6IG1hcC5nZXQoJGgyLCBcImNyb3AtYm90dG9tXCIpOyBlbHNlOiBmYWxzZSk7XG4kX2gzLWNyb3AtYm90dG9tIDogaWYoc2FzcyhtYXAuaGFzLWtleSgkaDMsIFwiY3JvcC1ib3R0b21cIikpOiBtYXAuZ2V0KCRoMywgXCJjcm9wLWJvdHRvbVwiKTsgZWxzZTogZmFsc2UpO1xuJF9oNC1jcm9wLWJvdHRvbSA6IGlmKHNhc3MobWFwLmhhcy1rZXkoJGg0LCBcImNyb3AtYm90dG9tXCIpKTogbWFwLmdldCgkaDQsIFwiY3JvcC1ib3R0b21cIik7IGVsc2U6IGZhbHNlKTtcbiRfaDUtY3JvcC1ib3R0b20gOiBpZihzYXNzKG1hcC5oYXMta2V5KCRoNSwgXCJjcm9wLWJvdHRvbVwiKSk6IG1hcC5nZXQoJGg1LCBcImNyb3AtYm90dG9tXCIpOyBlbHNlOiBmYWxzZSk7XG4kX2g2LWNyb3AtYm90dG9tIDogaWYoc2FzcyhtYXAuaGFzLWtleSgkaDYsIFwiY3JvcC1ib3R0b21cIikpOiBtYXAuZ2V0KCRoNiwgXCJjcm9wLWJvdHRvbVwiKTsgZWxzZTogZmFsc2UpO1xuXG5cbi8vIE1peGlucyBmb3IgZWFjaCBoZWFkaW5nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBtaXhpbiBfc2V0LWNyb3AoJGZvbnQtc2l6ZSwgJGxpbmUtaGVpZ2h0LCAkY3JvcCkge1xuXG4gIEBpZiAobWV0YS50eXBlLW9mKCRjcm9wKSA9PSAnbWFwJykge1xuXG4gICAgJGZvbnQtc2l6ZSAgIDogdW5pdC5zdHJpcCgkZm9udC1zaXplKSAqIDEwO1xuICAgICRsaW5lLWhlaWdodCA6IHVuaXQuc3RyaXAoJGxpbmUtaGVpZ2h0KTtcbiAgICAkdG9wICAgICAgICAgOiBpZihzYXNzKG1hcC5oYXMta2V5KCRjcm9wLCBcInRvcFwiKSk6IHVuaXQuc3RyaXAobWFwLmdldCgkY3JvcCwgXCJ0b3BcIikpOyBlbHNlOiAwKTtcbiAgICAkYm90dG9tICAgICAgOiBpZihzYXNzKG1hcC5oYXMta2V5KCRjcm9wLCBcImJvdHRvbVwiKSk6IHVuaXQuc3RyaXAobWFwLmdldCgkY3JvcCwgXCJib3R0b21cIikpOyBlbHNlOiAwKTtcblxuICAgIEBpbmNsdWRlIGZvbnQuY3JvcCgkZm9udC1zaXplLCAkbGluZS1oZWlnaHQsICR0b3AsICRib3R0b20pO1xuXG4gIH1cblxufVxuXG5AbWl4aW4gaDEoJGZvbnQtc2l6ZS1vbmx5IDogZmFsc2UsICRjcm9wIDogJGVuYWJsZS1jcm9wcGluZykge1xuXG4gIGZvbnQtc2l6ZSA6IGZvbnQuc2l6ZSgkaDEtZm9udC1zaXplKTtcblxuICBAaWYgKCAkaDEtZm9udC1zaXplLW1pbiBhbmQgJGgxLWZvbnQtc2l6ZS1taW4gPCAkaDEtZm9udC1zaXplICkge1xuICAgIGZvbnQtc2l6ZSA6IGNsYW1wKCN7Zm9udC5zaXplKCRoMS1mb250LXNpemUtbWluKX0sICN7JGgxLXNjYWxlcn0sICN7Zm9udC5zaXplKCRoMS1mb250LXNpemUpfSk7XG4gIH1cblxuICBAaWYgbm90ICRmb250LXNpemUtb25seSB7IFxuXG4gICAgQGlmICggJGNyb3AgKSB7IFxuICAgICAgQGluY2x1ZGUgZm9udC5jcm9wKCRoMS1mb250LXNpemUsICRoMS1saW5lLWhlaWdodCwgJF9oMS1jcm9wLXRvcCwgJF9oMS1jcm9wLWJvdHRvbSApOyBcbiAgICB9IEBlbHNlIHtcbiAgICAgIGxpbmUtaGVpZ2h0IDogJGgxLWxpbmUtaGVpZ2h0OyBcbiAgICB9XG5cbiAgfVxuXG59XG5cbkBtaXhpbiBoMigkZm9udC1zaXplLW9ubHkgOiBmYWxzZSwgJGNyb3AgOiAkZW5hYmxlLWNyb3BwaW5nKSB7XG5cbiAgZm9udC1zaXplIDogZm9udC5zaXplKCRoMi1mb250LXNpemUpO1xuXG4gIEBpZiAoICRoMi1mb250LXNpemUtbWluIGFuZCAkaDItZm9udC1zaXplLW1pbiA8ICRoMi1mb250LXNpemUgKSB7XG4gICAgZm9udC1zaXplIDogY2xhbXAoI3tmb250LnNpemUoJGgyLWZvbnQtc2l6ZS1taW4pfSwgI3skaDItc2NhbGVyfSwgI3tmb250LnNpemUoJGgyLWZvbnQtc2l6ZSl9KTtcbiAgfVxuXG4gIEBpZiBub3QgJGZvbnQtc2l6ZS1vbmx5IHsgXG5cbiAgICBAaWYgKCAkY3JvcCApIHsgXG4gICAgICBAaW5jbHVkZSBmb250LmNyb3AoJGgyLWZvbnQtc2l6ZSwgJGgyLWxpbmUtaGVpZ2h0LCAkX2gyLWNyb3AtdG9wLCAkX2gyLWNyb3AtYm90dG9tICk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgbGluZS1oZWlnaHQgOiAkaDItbGluZS1oZWlnaHQ7IFxuICAgIH1cbiAgICBcbiAgfVxuXG59XG5cbkBtaXhpbiBoMygkZm9udC1zaXplLW9ubHkgOiBmYWxzZSwgJGNyb3AgOiAkZW5hYmxlLWNyb3BwaW5nKSB7XG5cbiAgZm9udC1zaXplIDogZm9udC5zaXplKCRoMy1mb250LXNpemUpO1xuXG4gIEBpZiAoICRoMy1mb250LXNpemUtbWluIGFuZCAkaDMtZm9udC1zaXplLW1pbiA8ICRoMy1mb250LXNpemUgKSB7XG4gICAgZm9udC1zaXplIDogY2xhbXAoI3tmb250LnNpemUoJGgzLWZvbnQtc2l6ZS1taW4pfSwgI3skaDMtc2NhbGVyfSwgI3tmb250LnNpemUoJGgzLWZvbnQtc2l6ZSl9KTtcbiAgfVxuXG4gIEBpZiBub3QgJGZvbnQtc2l6ZS1vbmx5IHsgXG5cbiAgICBAaWYgKCAkY3JvcCApIHsgXG4gICAgICBAaW5jbHVkZSBmb250LmNyb3AoJGgzLWZvbnQtc2l6ZSwgJGgzLWxpbmUtaGVpZ2h0LCAkX2gzLWNyb3AtdG9wLCAkX2gzLWNyb3AtYm90dG9tICk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgbGluZS1oZWlnaHQgOiAkaDMtbGluZS1oZWlnaHQ7IFxuICAgIH1cbiAgICBcbiAgfVxuXG59XG5cbkBtaXhpbiBoNCgkZm9udC1zaXplLW9ubHkgOiBmYWxzZSwgJGNyb3AgOiAkZW5hYmxlLWNyb3BwaW5nKSB7XG5cbiAgZm9udC1zaXplIDogZm9udC5zaXplKCRoNC1mb250LXNpemUpO1xuXG4gIEBpZiAoICRoNC1mb250LXNpemUtbWluIGFuZCAkaDQtZm9udC1zaXplLW1pbiA8ICRoNC1mb250LXNpemUgKSB7XG4gICAgZm9udC1zaXplIDogY2xhbXAoI3tmb250LnNpemUoJGg0LWZvbnQtc2l6ZS1taW4pfSwgI3skaDQtc2NhbGVyfSwgI3tmb250LnNpemUoJGg0LWZvbnQtc2l6ZSl9KTtcbiAgfVxuXG4gIEBpZiBub3QgJGZvbnQtc2l6ZS1vbmx5IHsgXG5cbiAgICBAaWYgKCAkY3JvcCApIHsgXG4gICAgICBAaW5jbHVkZSBmb250LmNyb3AoJGg0LWZvbnQtc2l6ZSwgJGg0LWxpbmUtaGVpZ2h0LCAkX2g0LWNyb3AtdG9wLCAkX2g0LWNyb3AtYm90dG9tICk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgbGluZS1oZWlnaHQgOiAkaDQtbGluZS1oZWlnaHQ7IFxuICAgIH1cbiAgICBcbiAgfVxuXG59XG5cbkBtaXhpbiBoNSgkZm9udC1zaXplLW9ubHkgOiBmYWxzZSwgJGNyb3AgOiAkZW5hYmxlLWNyb3BwaW5nKSB7XG5cbiAgZm9udC1zaXplIDogZm9udC5zaXplKCRoNS1mb250LXNpemUpO1xuXG4gIEBpZiAoICRoNS1mb250LXNpemUtbWluIGFuZCAkaDUtZm9udC1zaXplLW1pbiA8ICRoNS1mb250LXNpemUgKSB7XG4gICAgZm9udC1zaXplIDogY2xhbXAoI3tmb250LnNpemUoJGg1LWZvbnQtc2l6ZS1taW4pfSwgI3skaDUtc2NhbGVyfSwgI3tmb250LnNpemUoJGg1LWZvbnQtc2l6ZSl9KTtcbiAgfVxuXG4gIEBpZiBub3QgJGZvbnQtc2l6ZS1vbmx5IHsgXG5cbiAgICBAaWYgKCAkY3JvcCApIHsgXG4gICAgICBAaW5jbHVkZSBmb250LmNyb3AoJGg1LWZvbnQtc2l6ZSwgJGg1LWxpbmUtaGVpZ2h0LCAkX2g1LWNyb3AtdG9wLCAkX2g1LWNyb3AtYm90dG9tICk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgbGluZS1oZWlnaHQgOiAkaDUtbGluZS1oZWlnaHQ7IFxuICAgIH1cbiAgICBcbiAgfVxuXG59XG5cbkBtaXhpbiBoNigkZm9udC1zaXplLW9ubHkgOiBmYWxzZSwgJGNyb3AgOiAkZW5hYmxlLWNyb3BwaW5nKSB7XG5cbiAgZm9udC1zaXplIDogZm9udC5zaXplKCRoNi1mb250LXNpemUpO1xuXG4gIEBpZiAoICRoNi1mb250LXNpemUtbWluIGFuZCAkaDYtZm9udC1zaXplLW1pbiA8ICRoNi1mb250LXNpemUgKSB7XG4gICAgZm9udC1zaXplIDogY2xhbXAoI3tmb250LnNpemUoJGg2LWZvbnQtc2l6ZS1taW4pfSwgI3skaDYtc2NhbGVyfSwgI3tmb250LnNpemUoJGg2LWZvbnQtc2l6ZSl9KTtcbiAgfVxuXG4gIEBpZiBub3QgJGZvbnQtc2l6ZS1vbmx5IHsgXG5cbiAgICBAaWYgKCAkY3JvcCApIHsgXG4gICAgICBAaW5jbHVkZSBmb250LmNyb3AyKCRoNi1mb250LXNpemUsICRoNi1saW5lLWhlaWdodCwgJF9oNi1jcm9wLXRvcCwgJF9oNi1jcm9wLWJvdHRvbSApOyBcbiAgICB9IEBlbHNlIHtcbiAgICAgIGxpbmUtaGVpZ2h0IDogJGg2LWxpbmUtaGVpZ2h0OyBcbiAgICB9XG4gICAgXG4gIH1cblxufVxuXG5cbiJdfQ== */