/* 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);
  -webkit-clip-path: polygon(50% 100%, 0 0, 100% 0);
          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;
  -webkit-clip-path: polygon(0% 100%, 0% 0%, 100% 0%, 55% 100%);
          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;
  -webkit-margin-end: 1ch;
          margin-inline-end: 1ch;
  -webkit-margin-start: -2rem;
          margin-inline-start: -2rem;
}
.market-sectors\:list .result-item .result-image {
  -webkit-clip-path: polygon(0% 100%, 35% 0%, 100% 0%, 100% 100%);
          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);
    -webkit-padding-after: calc(clamp(200px, 20vw, 300px) + var(--gutter1));
            padding-block-end: calc(clamp(200px, 20vw, 300px) + var(--gutter1));
  }
  .market-sectors\:list .intro {
    -webkit-clip-path: initial;
            clip-path: initial;
    padding: var(--gutter2);
    padding-bottom: 50px;
  }
  .market-sectors\:list .result-item .result-image {
    -webkit-clip-path: initial;
            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%;
  }
}
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl92YXJpYWJsZXMvei1pbmRleC5zY3NzIiwiX2VsZW1lbnRzL2Zvcm0uc2NzcyIsIl9lbGVtZW50cy9yZXN1bHQtaXRlbS5zY3NzIiwiX2VsZW1lbnRzL3RhZy5zY3NzIiwiY29tcG9uZW50cy9tYXJrZXQtc2VjdG9ycy5zY3NzIiwiX3ZhcmlhYmxlcy9jb2xvdXJzLnNjc3MiLCJjb21wb25lbnRzL21hcmtldC1zZWN0b3JzLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9AZG9nZ2lzdHlsZS9zYXNzL2xpYnJhcnkvc3JjL2hlbHBlcnMvX2JyZWFrLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGRvZ2dpc3R5bGUvc2Fzcy9saWJyYXJ5L3NyYy9jcmVhdGUvX3VuaXRzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGRvZ2dpc3R5bGUvc2Fzcy9saWJyYXJ5L3NyYy9jcmVhdGUvX3BhbGV0dGUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9AZG9nZ2lzdHlsZS9zYXNzL2xpYnJhcnkvc3JjL2NyZWF0ZS9faGVhZGluZ3Muc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztFQUFBO0FDYUE7O3lEQUFBO0FBbURBOzt5REFBQTtBQzVEQTs7c0JBQUE7QUFzRUE7O3NCQUFBO0FDekRBOzt1REFBQTtBQStCQTs7dURBQUE7QUF5QkE7O3VEQUFBO0FBMkJBOzt1REFBQTtBQ2pHSTtFQUFzQixjQ3FCTjtBQ09wQjtBQzFCRTtFSERFO0lBRVEscUNBQUE7RUU2QlY7QUFDRjs7QUZ6QlE7RUFBZ0Isd0JBQUE7QUU2QnhCOztBRnhCUTtFQUNJO0lBQVEsNkJBQUE7RUU0QmxCO0FBQ0Y7QUYzQlE7RUFDSSxrQkFBQTtFQUNBLFVBQUE7RUFDQSx5QkNKUTtFREtSLHVCSTZHRDtBRmhGWDtBRjVCWTtFQUNJLFlBQUE7QUU4QmhCO0FGMUJJO0VBQVEsY0tzQkk7QUhPaEI7QUYxQlk7RUFDSSx5QkNUSTtFRFVKLFlBQUE7RUFDQSxrQkFBQTtFQUNBLG1GQUFBO0VBQ0EsdUJJK0ZMO0VKOUZLLGtCQUFBO0FFNEJoQjtBRjNCZ0I7RUFDSSxlQUFBO0VBQ0EsaUJBQUE7RUFDQSx5QklTWjtFSlJZLGtCQUFBO0VBQ0EseUJBQUE7RUFDQSxZQUFBO0FFNkJwQjtBRjNCZ0I7RUFBSSxZQUFBO0FFOEJwQjtBRjdCZ0I7RUFDSyxXQUFBO0VBQ0QsWUFBQTtFQUNBLFdBQUE7RUFDQSx5QkM1QkE7RUQ2QkEsY0FBQTtFQUNBLGtCQUFBO0VBQ0EsT0FBQTtFQUNBLHFCQUFBO0VBQ0EsaURBQUE7VUFBQSx5Q0FBQTtBRStCcEI7QUY1Qlk7RUFDSSxpQkFBQTtBRThCaEI7QUY3QmdCO0VBQ0ksaUJBQUE7QUUrQnBCO0FGM0JRO0VBQ0ksYUFBQTtFQUNBLHNCQUFBO0FFNkJaO0FGNUJZO0VBQ0ksa0JBQUE7RUFDQSxZQUFBO0FFOEJoQjtBQzNGRTtFSHdETTtJQVFRLDJCQUFBO0VFK0JkO0VGOUJjO0lBQVEsMkJBQUE7RUVpQ3RCO0VGaENjO0lBQ0ksYUFBQTtFRWtDbEI7QUFDRjs7QUM1R0U7RUhrRkY7SUFFSSw2QklnQk87RUZhVDtFRjVCRTtJQUFnQixhQUFBO0VFK0JsQjtBQUNGO0FDL0dFO0VIa0ZFO0lBQ0ksYUFBQTtJQUNBLGlCQUFBO0VFZ0NOO0VGOUJFO0lBQTZCLGFBQUE7RUVpQy9CO0FBQ0Y7QUN4SEU7RUg0RUY7SUFhSSwwQklLTztFRjhCVDtBQUNGO0FGbENFO0VNMENBLGlCQUFBO0VBV0ksZ0JBM0ZjO0VOd0NoQixjQ2hGZ0I7RURpRmhCLHlCQUFBO0VBQ0EsNkJJMEJPO0FGV1g7QUZuQ0U7RUFBVyxhQUFBO0FFc0NiOztBRm5DQTtFQUNJLGtCQUFBO0VBQ0EsNkRBQUE7RUFDQSxhQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQ0FBQTtFQUNBLHFCQUFBO0FFc0NKO0FGcENJO0VBQVcsYUFBQTtBRXVDZjtBRnJDSTtFQUNJLHlCQUFBO0VBQ0EsV0FBQTtFQUNBLHlCQzFHWTtFRDJHWixvRUFBQTtFQUNBLGFBQUE7RUFDQSxzQkFBQTtFQUNBLDZEQUFBO1VBQUEscURBQUE7QUV1Q1I7QUZ0Q1E7RU1lTixpQkFBQTtFQVdJLGdCQTNGYztBSjJHcEI7QUZ2Q1E7RUFDSSxTQUFBO0VBQ0EsY0M5R1E7RUs0SWxCLG1CQUFBO0VBV0ksZ0JBMUdjO0VObUVSLHlCSXJGSjtBRitIUjtBRnRDRTtFQUNFLG9CSTFGSTtFSjJGSix3Q0FBQTtFQUNBLFdBQUE7RUFDQSxrQkFBQTtFQUNBLGNBQUE7RUFDQSxtQkFBQTtPQUFBLGNBQUE7RUFDQSwrQklkTztPSmNQLDBCSWRPO0VKZVAsNkJJaEJPO0FGd0RYO0FGdENFO0VBQ0UsaUJBQUE7QUV3Q0o7QUZ2Q0k7RUFDSSxpQkFBQTtBRXlDUjtBRnhDUTtFQUNJLCtCQUFBO09BQUEsbUJBQUE7RUFDQSxjQUFBO0VBQ0EsNkJJMUJEO0FGb0VYO0FGekNZO0VBQVcsZ0JBQUE7QUU0Q3ZCO0FGM0NZO0VBQ0ksV0FBQTtFQUNBLFlBQUE7RUFDQSxXQUFBO0VBQ0EscUJBQUE7RUFDQSxxTkFBQTtFQUNBLDRCQUFBO0VBQ0Esd0JBQUE7RUFDQSxrQ0FBQTtFQUNBLHVCQUFBO1VBQUEsc0JBQUE7RUFDQSwyQkFBQTtVQUFBLDBCQUFBO0FFNkNoQjtBRnpDSTtFQUNJLCtEQUFBO1VBQUEsdURBQUE7RUFDQSxrQkFBQTtFQUNBLG9CQUFBO0VBQ0EsUUFBQTtFQUNBLE1BQUE7RUFDQSxTQUFBO0VBQ0EsZ0NBQUE7RUFDQSxZQUFBO0VBQ0EsV0FBQTtFQUNBLFVBQUE7RUFDQSxxSUFBQTtFQUNBLHNCQUFBO0VBRUEsVUFBQTtBRTBDUjtBRnpDUTtFQUNJLFlBQUE7RUFDQSxvQkFBQTtLQUFBLGlCQUFBO0FFMkNaO0FGdkNJO0VBQ0ksVUFBQTtFQUNBLG9CQUFBO0FFeUNSO0FGdkNJO0VBQ0ksVUFBQTtBRXlDUjtBRnJDSTtFQUNJLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLFVBQUE7RUFDQSxRQUFBO0FFdUNSO0FGcENJO0VBbkdKO0lBb0dRLGFBQUE7SUFDQSxzQkFBQTtFRXVDTjtFRnRDTTtJQUNJLDhCSWhGRDtJSmlGQyx1RUFBQTtZQUFBLG1FQUFBO0VFd0NWO0VGckNNO0lBQ0ksMEJBQUE7WUFBQSxrQkFBQTtJQUNBLHVCSXZGRDtJSnlGQyxvQkFBQTtFRXNDVjtFRm5DVTtJQUNJLDBCQUFBO1lBQUEsa0JBQUE7SUFDQSxrQkFBQTtJQUNBLFdBQUE7SUFDQSxZQUFBO0lBQ0EsaUNBQUE7SUFDQSxVQUFBO0VFcUNkO0VGcENjO0lBQ0ksWUFBQTtFRXNDbEI7QUFDRiIsImZpbGUiOiJjb21wb25lbnRzL21hcmtldC1zZWN0b3JzLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIHotaW5kZXhlcyBhcmUgbGFyZ2UgZHVlIHRvIHRoZSBmYWN0IHRoYXQgdGhpbmdzIG1pZ2h0IGNoYW5nZVxuICogaW4gdGhlIGZ1dHVyZS4gSW4gb3JkZXIgdG8gYWNjb3VudCBmb3Igc2NhbGFiaWxpdHksIHRoaXMgZ2l2ZXNcbiAqIHJvb20gdG8gbWFrZSBjaGFuZ2VzIGFuZCBub3QgYnJlYWsgdGhlIGVudGlyZSBzaXRlLCBtZWFuaW5nIFxuICogd2Ugd29uJ3QgaGF2ZSB0byBnbyBpbiBhbmQgcmVmYWN0b3IgYSBsb3Qgb2Ygb3VyIGNvZGUuXG4gKi9cblxuJHBhZ2UtYmFja2dyb3VuZCAgICAgICAgICA6IDUwMDtcblxuJG5hdmlnYXRpb24tYmFyICAgICAgICAgICA6IDE1MDA7XG4kbmF2aWdhdGlvbi1iYXItY29udGFpbmVyIDogJG5hdmlnYXRpb24tYmFyO1xuJGdsb2JhbC1zZWFyY2gtbW9iaWxlICAgICA6IC0xO1xuXG4kc2Nyb2xsLWJhciAgICAgICAgICAgICAgIDogMTEwMDtcblxuJG1haW4gICAgICAgICAgICAgICAgICAgICA6IDEwMDA7XG4kaGVhZGVyICAgICAgICAgICAgICAgICAgIDogMTAwMDtcbiRzaWRlLWJhciAgICAgICAgICAgICAgICAgOiAxNzUwO1xuXG4kbW9kYWwgICAgICAgICAgICAgICAgICAgIDogMTAwMDA7IiwiQHVzZSAnLi4vX3ZhcmlhYmxlcycgYXMgKjtcbkB1c2UgJ21vZHVsZXMvY29sb3VyL2VuY29kZScgYXMgY29sb3VyO1xuQHVzZSBcImZvbnRcIjtcbkB1c2UgJy4uL19oZWxwZXJzL21pc2Muc2NzcycgYXMgKjtcblxuJGJhc2UtaW5wdXQtcGFkZGluZzogJGdhcDtcblxuXG5AbWl4aW4gYXJyb3ctZG93bi1pbWFnZSgkc3Ryb2tlIDogdmFyKC0tZm9udC1jb2xvdXIpKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTcuNCcgaGVpZ2h0PScxMC4xJyUzRSUzQ3BhdGggZD0nTTE2LjcuN2wtOCA4LTgtOCcgZmlsbD0nbm9uZScgc3Ryb2tlPSdcIitjb2xvdXIuZW5jb2RlKCRzdHJva2UpK1wiJyBzdHJva2Utd2lkdGg9JzInIHN0cm9rZS1taXRlcmxpbWl0PScxMCcvJTNFJTNDL3N2ZyUzRVwiKTtcbn1cblxuXG4vKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIElOUFVUU1xuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5AbWl4aW4gY2hhcmFjdGVyLWlucHV0cygpIHtcbiAgaW5wdXRbdHlwZT1cInRleHRcIl0sIGlucHV0W3R5cGU9XCJlbWFpbFwiXSwgaW5wdXRbdHlwZT1cIm51bWJlclwiXSwgaW5wdXRbdHlwZT1cInNlYXJjaFwiXSwgc2VsZWN0LCB0ZXh0YXJlYSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIGFsbC1pbnB1dHMoKSB7XG4gIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuICBpbnB1dFt0eXBlPVwiZW1haWxcIl0sXG4gIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG4gIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXG4gIHNlbGVjdCxcbiAgdGV4dGFyZWEge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBjaGFyYWN0ZXItaW5wdXQoKSB7XG4gIC0tZm9udC1jb2xvdXIgICAgICAgOiAjeyRmb250LWNvbG91cn07XG4gIC0tYmFja2dyb3VuZC1jb2xvdXIgOiAjeyR3aGl0ZX07XG4gIC0tcGFkZGluZyAgICAgICAgICAgOiBjYWxjKCN7JGJhc2UtaW5wdXQtcGFkZGluZ30gLyAxLjUpICN7JGJhc2UtaW5wdXQtcGFkZGluZ307XG4gIC0tYm9yZGVyLWNvbG91ciAgICAgOiAjeyRncmV5N307XG4gIC0tYm9yZGVyLXJhZGl1cyAgICAgOiAwO1xuXG4gIG91dGxpbmU6IDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7ICAvKiBPcGVyYSAxMC41LCBJRSA5LCBTYWZhcmkgNSwgQ2hyb21lLCBGaXJlZm94IDQsIGlPUyA0LCBBbmRyb2lkIDIuMSsgKi9cbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAwOyAgLyogU2FmYXJpIDMtNCwgaU9TIDEtMy4yLCBBbmRyb2lkIDEuNi0gKi8gICAgXG4gIC1tb3otYm9yZGVyLXJhZGl1czogMDsgIC8qIEZpcmVmb3ggMS0zLjYgKi8gICAgIFxuXG4gIGNvbG9yOiB2YXIoLS1mb250LWNvbG91cik7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKTtcbiAgcGFkZGluZzogdmFyKC0tcGFkZGluZyk7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgJHRyYW5zaXRpb247XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMHB4IDBweCB0cmFuc3BhcmVudDtcblxuICAmOjpwbGFjZWhvbGRlciB7IHRyYW5zaXRpb246IGNvbG9yICR0cmFuc2l0aW9uIH1cblxuICAvLyAmOm5vdCg6ZW1wdHkpIHtcbiAgLy8gICAmOjpwbGFjZWhvbGRlciB7IGNvbG9yOiAkdHJhbnNwYXJlbnQgfVxuICAvLyB9XG59XG5cblxuLyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBDT05UQUlORVJTXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbkBtaXhpbiBjb250YWluZXIoKSB7XG4gIC0tbGFiZWwtY29sb3VyICAgICAgICA6IHZhcigtLWZvbnQtY29sb3VyKTtcbiAgLS1sYWJlbC1hY3RpdmUtY29sb3VyIDogdmFyKC0tdGhlbWUtYWNjZW50KTtcblxuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLWdhcDogMXJlbTtcblxuICBsYWJlbCB7XG4gICAgY29sb3I6IHZhcigtLWxhYmVsLWNvbG91cik7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgJHRyYW5zaXRpb247XG4gIH1cbn1cblxuQG1peGluIHRleHQtY29udGFpbmVyKCkge1xuICBAaW5jbHVkZSBjb250YWluZXIoKTtcbiAgZ3JpZC1hdXRvLWZsb3c6IHJvdztcbn1cblxuXG5AbWl4aW4gcmFkaW8tY2hlY2tib3gtY29udGFpbmVyKCkge1xuICBAaW5jbHVkZSBjb250YWluZXIoKTtcbiAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcblxuICAtLWlucHV0LXdpZHRoOiAxLjJlbTtcbiAgLS1pbnB1dC1ib3JkZXItdGhpY2tuZXNzOiAxcHg7XG4gIC0taW5wdXQtYWN0aXZlLWNvbG91cjogI3skcmVkfTtcblxuICBsYWJlbCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLWF1dG8tZmxvdzogY29sdW1uO1xuICAgIGdyaWQtZ2FwOiAkZ2FwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xuXG4gICAgJjo6YmVmb3JlLCAmOjphZnRlciB7XG4gICAgICBncmlkLXJvdzogMTtcbiAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgc3F1YXJlKHZhcigtLWlucHV0LXdpZHRoKSk7XG4gICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgICBib3JkZXI6IHZhcigtLWlucHV0LWJvcmRlci10aGlja25lc3MsIDFweCkgc29saWQgJGdyZXk7XG4gICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgJHRyYW5zaXRpb247XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgc3F1YXJlKGNhbGModmFyKC0taW5wdXQtd2lkdGgpIC0gdmFyKC0taW5wdXQtYm9yZGVyLXRoaWNrbmVzcykgKiA2KSk7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pbnB1dC1hY3RpdmUtY29sb3VyKTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICBsZWZ0OiAtMTBweDtcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJHRyYW5zaXRpb24sIHRyYW5zZm9ybSAkdHJhbnNpdGlvbjtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAganVzdGlmeS1zZWxmOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAtLWxhYmVsLWNvbG91cjogdmFyKC0tbGFiZWwtYWN0aXZlLWNvbG91cik7XG5cbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0taW5wdXQtYWN0aXZlLWNvbG91cik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaW5wdXQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAmOmNoZWNrZWQge1xuICAgICAgKyBsYWJlbCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1sYWJlbC1hY3RpdmUtY29sb3VyKTtcblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTBweCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIHJhZGlvLWNvbnRhaW5lcigpIHtcbiAgbGFiZWwge1xuICAgICY6OmJlZm9yZSwgJjo6YWZ0ZXIge1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbXVsdGktaW5wdXQoKSB7XG4gIC0taW5wdXQtc3BhY2luZzogMDtcbiAgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogdmFyKC0taW5wdXQtc3BhY2luZyk7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBmaXQtY29udGVudDtcblxuICBAaW5jbHVkZSBjaGFyYWN0ZXItaW5wdXRzKCkge1xuICAgICY6bm90KHNlbGVjdCkge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgfVxuICB9XG5cbiAgPiAqOm5vdChzZWxlY3QsIGJ1dHRvbiwgYSkge1xuICAgIGZsZXg6IDE7XG4gIH1cbiAgXG4gIHNlbGVjdCwgYnV0dG9uLCBhIHtcbiAgICAtLWZvbnQtY29sb3VyOiAjeyR3aGl0ZX07XG4gICAgLS1iYWNrZ3JvdW5kLWNvbG91cjogI3skcmVkfTtcblxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cik7XG4gICAgY29sb3I6IHZhcigtLWZvbnQtY29sb3VyKTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICB9XG5cbiAgc2VsZWN0IHsgQGluY2x1ZGUgYXJyb3ctZG93bi1pbWFnZSgkd2hpdGUpIH07XG59XG5cbkBtaXhpbiBiYXNlLXJlcXVpcmVkKCkge1xuICByZXF1aXJlZC1ub3RpY2Uge1xuICAgIC0tbm90aWNlLWNvbG91cjogI3skcmVkfTtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDEwcHg7XG4gICAgY29sb3I6IHZhcigtLW5vdGljZS1jb2xvdXIpO1xuICAgIGZvbnQtc2l6ZTogMS41ZW07XG5cbiAgICBzcGFuIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiAtMTAwJTtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiByYWRpby10YWJzKCkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gIHJhZGlvLXRhYiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBwYWRkaW5nLWJvdHRvbTogJGdhcDA7XG4gICAgXG4gICAgaW5wdXQgeyBcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICY6Y2hlY2tlZCArIGxhYmVsIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tdGhlbWUtYWNjZW50KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOm5vdCg6Y2hlY2tlZCkge1xuICAgICAgICArIGxhYmVsOmhvdmVyOjphZnRlciB7XG4gICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tdGhlbWUtYWNjZW50KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGxhYmVsIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1mb250LWNvbG91cik7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAzcHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICR0cmFuc3BhcmVudDtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAkdHJhbnNpdGlvbjtcbiAgICAgIH1cbiAgICAgIFxuXG4gICAgfVxuXG4gIH1cbn1cblxuXG5AbWl4aW4gaW5wdXQtZm9jdXMoKSB7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggMXB4IDFweCByZ2JhKCRyZWQsIDAuMyk7XG59IiwiQHVzZSAnLi4vX3ZhcmlhYmxlcy8nIGFzICo7XG5AdXNlICcuLi9faGVscGVycy8nIGFzICo7XG5cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHRCYXNlIHJlc3VsdCBzdHlsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblxuQG1peGluIGJhc2UoKSB7XG5cbiAgLS1oZWFkaW5nLWNvbG91ciAgICA6ICN7JGJsdWV9O1xuXG4gIC0tYm9yZGVyLXRoaWNrbmVzcyAgOiAxcHg7XG4gIC0tYm9yZGVyLXJhZGl1cyAgICAgOiAwcHg7XG4gIC0tYmFja2dyb3VuZC1jb2xvdXIgOiB3aGl0ZTtcblxuICAtLXBhZGRpbmcgICAgICAgICAgIDogMnJlbTtcblxuICAtLXBhZGRpbmctbGVmdCAgICAgIDogdmFyKC0tcGFkZGluZyk7XG4gIC0tcGFkZGluZy1yaWdodCAgICAgOiB2YXIoLS1wYWRkaW5nKTtcbiAgLS1wYWRkaW5nLXRvcCAgICAgICA6IHZhcigtLXBhZGRpbmcpO1xuICAtLXBhZGRpbmctYm90dG9tICAgIDogdmFyKC0tcGFkZGluZyk7XG5cbiAgLS1pbWFnZS13aWR0aCAgICAgICA6IDEwMHB4O1xuICAtLWltYWdlLWhlaWdodCAgICAgIDogMTAwcHg7XG5cbiAgLS1ncmlkLWdhcCAgICAgICAgICA6ICN7JGdhcH07XG5cblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IHZhcigtLXBhZGRpbmctdG9wKSB2YXIoLS1wYWRkaW5nLXJpZ2h0KSB2YXIoLS1wYWRkaW5nLWJvdHRvbSkgdmFyKC0tcGFkZGluZy1sZWZ0KTtcbiAgYm9yZGVyOiB2YXIoLS1ib3JkZXItdGhpY2tuZXNzKSBzb2xpZCAkdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cik7XG4gIC8vIGJveC1zaGFkb3c6IDBweCAwcHggNXB4IDFweCByZ2JhKCRncmV5LCAwLjEpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIHRyYW5zaXRpb246IGJvcmRlciAkdHJhbnNpdGlvbjtcblxuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLWdhcDogdmFyKC0tZ3JpZC1nYXApIHZhcigtLWdyaWQtZ2FwKTtcbiAgLy8gcGxhY2UtY29udGVudDogc3RhcnQ7XG5cbiAgLnJlc3VsdC1pbWFnZSB7XG4gICAgZ3JpZC1hcmVhOiBpbWFnZTtcbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgIHBpY3R1cmUge1xuICAgICAgaGVpZ2h0OiB2YXIoLS1pbWFnZS1oZWlnaHQpO1xuICAgICAgXG4gICAgICBpbWcge1xuICAgICAgICB3aWR0aDogdmFyKC0taW1hZ2UtaGVpZ2h0KTtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1pbWFnZS13aWR0aCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnJlc3VsdC10aXRsZSB7XG4gICAgZ3JpZC1hcmVhOiB0aXRsZTtcbiAgICBjb2xvcjogdmFyKC0taGVhZGluZy1jb2xvdXIpO1xuICAgIGEgeyBjb2xvcjogdmFyKC0taGVhZGluZy1jb2xvdXIpIH1cbiAgfVxuXG4gIC5yZXN1bHQtc3VidGl0bGUgeyBncmlkLWFyZWE6IHN1YnRpdGxlIH1cbiAgLnJlc3VsdC1ib2R5ICAgICB7IGdyaWQtYXJlYTogYm9keSB9XG5cbiAgJi5ibG9nICAgIHsgQGluY2x1ZGUgYmxvZygpIH1cbiAgJi5tYXJrZXQtc2VjdG9yICAgIHsgQGluY2x1ZGUgbWFya2V0LXNlY3RvcigpIH1cbiAgJi5wcm9kdWN0IHsgQGluY2x1ZGUgcHJvZHVjdCgpIH1cbiAgJi5wYWdlICAgIHsgQGluY2x1ZGUgcGFnZSgpIH1cbn1cblxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tXG5cdFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblxuQG1peGluIG1hcmtldC1zZWN0b3IoKSB7XG5cbiAgLS1iYWNrZ3JvdW5kLWNvbG91cjp0cmFuc3BhcmVudDsgXG4gIC0tZm9udC1jb2xvdXI6d2hpdGU7IFxuICAtLWhlYWRpbmctY29sb3VyIDogd2hpdGU7IFxuXG4gIGlzb2xhdGlvbjogaXNvbGF0ZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgcGFkZGluZzowIDAgJGd1dHRlcjAgMCA7IFxuICBib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1yZXN1bHQtaXRlbS1ib3JkZXItYm90dG9tLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMikpO1xuXG4gIC5yZXN1bHQtaW1hZ2Uge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogY2xhbXAoMTQwcHgsIDQwdncsIDE4MHB4KTtcbiAgICBvdXRsaW5lOiAxcHggc29saWQgdmFyKC0taW1hZ2Utb3V0bGluZS1jb2xvdXIsIHRyYW5zcGFyZW50KTtcbiAgICBvdXRsaW5lLW9mZnNldDogdmFyKC0taW1hZ2Utb3V0bGluZS1vZmZzZXQsIDAuMWVtKTsgXG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IG91dGxpbmUtY29sb3IgJHRyYW5zaXRpb24sIG91dGxpbmUtb2Zmc2V0ICR0cmFuc2l0aW9uO1xuICAgIGltZyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIH1cblxuICB9XG5cbiAgJjpob3ZlciB7IFxuICAgIC0taW1hZ2Utb3V0bGluZS1jb2xvdXIgOiAje3JnYmEod2hpdGUsIDAuMil9O1xuICAgIC0taW1hZ2Utb3V0bGluZS1vZmZzZXQgOiAwLjNlbTtcbiAgICAucmVzdWx0LXRpdGxlIGEgeyBjb2xvcjokcmVkOyB9XG4gIH1cblxuICAucmVzdWx0LXRpdGxlIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG5cbiAgICBhIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgJjo6YWZ0ZXIgeyBcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOmFic29sdXRlO1xuICAgICAgICBpbnNldDowOyBcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB6LWluZGV4OjE7IFxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBhdC1yb290IGJvZHlbZGF0YS10aGVtZT0nd2hpdGUnXSAmIHtcbiAgICAtLXJlc3VsdC1pdGVtLWJvcmRlci1ib3R0b20gOiAje3JnYmEoJGJsdWUsIDAuMil9O1xuICAgIC0tZm9udC1jb2xvdXI6I3skYmx1ZX07IFxuICAgIC0taGVhZGluZy1jb2xvdXIgOiAjeyRibHVlfTsgXG4gICAgJjpob3ZlciB7IFxuICAgICAgLS1pbWFnZS1vdXRsaW5lLWNvbG91ciA6ICN7cmdiYSgkYmx1ZSwgMC4yKX07XG4gICAgfVxuICB9XG5cbiAgQGF0LXJvb3QgYm9keSNtYXJrZXQtc2VjdG9ycyB7XG4gICAgJiB7XG4gICAgICAvLyBpc29sYXRpb246IGluaXRpYWw7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBjb250YWluZXItdHlwZTogaW5saW5lLXNpemU7XG4gICAgICBjb250YWluZXItbmFtZSA6IG1hcmtldC1zZWN0b3I7XG4gICAgICAucmVzdWx0LWl0ZW0ge1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICR0cmFuc2l0aW9uO1xuICAgICAgICBhLmRldGFpbHM6aG92ZXIge1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50OyBcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJjpob3ZlciAucmVzdWx0LWltYWdlIHtcbiAgICAgICAgLS1pbWFnZS1vdXRsaW5lLWNvbG91ciA6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIC0taW1hZ2Utb3V0bGluZS1vZmZzZXQgOjAgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICAgIC5kZXRhaWxzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWUtZGFyaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB6LWluZGV4OiAxOyBcbiAgICAgICAgcGFkZGluZzowOyBcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMjIwcHg7XG4gICAgICAgIHdpZHRoOnZhcigtLW1hcmtldC1zZWN0b3ItYXJ0aWNsZS13aWR0aCwgY2FsYygyMDAlICsgI3skZ3V0dGVyfSkpO1xuICAgICAgICBcbiAgICAgICAgLy8gRGlzY3JldGUgYW5pbWF0aW9uIHNldHVwXG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IFxuICAgICAgICAgIG9wYWNpdHkgJHRyYW5zaXRpb24sXG4gICAgICAgICAgZGlzcGxheSAkdHJhbnNpdGlvbiBhbGxvdy1kaXNjcmV0ZTsgXG4gICAgICAgIC5kZXRhaWxzLXRleHQge1xuICAgICAgICAgIHBhZGRpbmc6JGd1dHRlcjsgXG4gICAgICAgIH1cbiAgICAgICAgLmRldGFpbHMtaGVhZGluZyB7IFxuICAgICAgICAgIGNvbG9yOiRyZWQ7XG4gICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICBAaW5jbHVkZSBoZWFkaW5nLWgyO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206MWVtO1xuICAgICAgICB9XG4gICAgICAgIC5kZXRhaWxzLWltYWdlIHtcbiAgICAgICAgICBjbGlwLXBhdGg6IHBvbHlnb24oMCUgMTAwJSwgMzUlIDAlLCAxMDAlIDAlLCAxMDAlIDEwMCUpO1xuICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDoxMDAlOyBcbiAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgICAgIH1cbiAgICAgICAgICAuZGV0YWlscy1saW5rIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuZGV0YWlscy1saW5rIHtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgYm90dG9tOjA7IFxuICAgICAgICAgIHJpZ2h0OjA7IFxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAuZGV0YWlscyB7XG4gICAgICAgIEBjb250YWluZXIgbWFya2V0LXNlY3RvciAoIHdpZHRoIDwgNDIwcHgpIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAuZGV0YWlscy1pbWFnZSB7XG4gICAgICAgICAgICBjbGlwLXBhdGg6IGluaXRpYWw7XG4gICAgICAgICAgICBoZWlnaHQ6MTAwcHg7IFxuICAgICAgICAgICAgLmRldGFpbHMtbGluayB7XG4gICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gICAgICAmIC5yZXN1bHQtaXRlbTppcyg6aG92ZXIsIDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIC5kZXRhaWxzIHtcbiAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgXG4gICAgICAgICAgQHN0YXJ0aW5nLXN0eWxlIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG5cbiAgICBhcnRpY2xlLWdyaWQ6aGFzKC5yZXN1bHQtaXRlbTppcyg6aG92ZXIsIDpmb2N1cy12aXNpYmxlKSkge1xuICAgICAgLnJlc3VsdC1pdGVtOm5vdCg6aXMoOmhvdmVyLCA6Zm9jdXMtdmlzaWJsZSkpIHsgb3BhY2l0eTogMC41ICFpbXBvcnRhbnQ7fVxuICAgIH1cblxuICAgIEBjb250YWluZXIgbWFpbiAoIHdpZHRoIDwgNjYwcHgpIHtcbiAgICAgIGFydGljbGUtZ3JpZCB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyICFpbXBvcnRhbnQ7XG4gICAgICAgIC0tbWFya2V0LXNlY3Rvci1hcnRpY2xlLXdpZHRoIDogMTAwJTsgXG4gICAgICB9XG4gICAgfVxuXG4gICAgYXJ0aWNsZS1ncmlkIHtcbiAgICAgIEBjb250YWluZXIgbWFpbiAoNjYwcHggPCB3aWR0aCA8IDk2NHB4KSAge1xuICAgICAgICAucmVzdWx0LWl0ZW06bnRoLWNoaWxkKDJuKSAuZGV0YWlscyB7IFxuICAgICAgICAgICAgbGVmdDogaW5pdGlhbDsgXG4gICAgICAgICAgICByaWdodDowOyBcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGNvbnRhaW5lciBtYWluICggd2lkdGggPiA5NjRweCkgIHtcbiAgICAgICAgLnJlc3VsdC1pdGVtOm50aC1jaGlsZCgzbikgLmRldGFpbHMgeyBcbiAgICAgICAgICAgIGxlZnQ6IGluaXRpYWw7IFxuICAgICAgICAgICAgcmlnaHQ6MDsgXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IFxuXG4gIH1cblxuXG59XG5AbWl4aW4gYmxvZygpIHtcbiAgLS1wYWRkaW5nICAgICAgICAgIDogNHJlbTtcbiAgLS1ib3JkZXItdGhpY2tuZXNzIDogMDtcbiAgLS1ib3JkZXItcmFkaXVzICAgIDogMDtcbiAgLy8gLS1iYWNrZ3JvdW5kLWNvbG91ciA6IHRyYW5zcGFyZW50O1xuXG4gIGdyaWQtdGVtcGxhdGUtYXJlYXM6XG4gICAgXCJzdWJ0aXRsZVwiXG4gICAgXCJ0aXRsZVwiXG4gICAgXCJib2R5XCI7XG5cbiAgLnJlc3VsdC1pbWFnZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICBpbWcge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICB9XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTIwZGVnLCByZ2JhKHdoaXRlLCAxKSA0NSUsIHRyYW5zcGFyZW50IDEyMCUpO1xuICAgIH1cbiAgfVxuXG4gIC5yZXN1bHQtdGl0bGUsIC5yZXN1bHQtc3VidGl0bGUgeyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlIH1cblxuICAucmVzdWx0LXRpdGxlIHsgICAgIFxuICAgIEBpbmNsdWRlIGhlYWRpbmctaDI7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgfVxuXG4gIC5yZXN1bHQtc3VidGl0bGUge1xuICAgIC0taGVhZGluZy1jb2xvdXI6ICN7JHJlZH07XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICBoNCwgdGltZSB7XG4gICAgICBmb250LXNpemU6ICRmb250LXNpemU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgdGltZSB7XG4gICAgICBjb2xvcjogJGdyZXk7XG4gICAgfVxuICB9XG5cbiAgLnJlc3VsdC1ib2R5IHsgLS1mb250LWNvbG91cjogI3skYmxhY2t9OyB9XG5cbiAgJi5mZWF0dXJlZCB7XG4gICAgLS1wYWRkaW5nLXJpZ2h0OiA1cmVtO1xuXG4gICAgZ3JpZC1jb2x1bW46IDEgLyBzcGFuIDI7XG5cbiAgICAucmVzdWx0LXRpdGxlIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgICBmb250LXNpemU6ICRmb250LXNpemUtaDI7XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICdGRUFUVVJFRCc7XG4gICAgICBAaW5jbHVkZSBmZWF0dXJlZC1iYWRnZSgpO1xuICAgICAgbGVmdDogMTAwJTtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgfVxuICB9XG5cbiAgLnJlc3VsdC10aXRsZSwgLnJlc3VsdC1zdWJ0aXRsZSwgLnJlc3VsdC1ib2R5IHtcbiAgICB6LWluZGV4OiAyO1xuICB9XG59XG5cblxuXG5AbWl4aW4gcGFnZSgpIHtcbiAgZ3JpZC10ZW1wbGF0ZS1hcmVhczpcbiAgXCJpbWFnZSB0aXRsZVwiXG4gIFwiaW1hZ2UgYm9keVwiXG4gIFwiaW1hZ2UgYm9keVwiXG4gIFwiaW1hZ2UgYm9keVwiO1xuXG4gIC5yZXN1bHQtaW1hZ2Uge1xuICAgIGltZyB7XG4gICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICB9XG4gIH1cbn1cblxuXG5cbkBtaXhpbiBwcm9kdWN0KCkge1xuICAtLWJhZGdlLXNwYWNpbmcgOiAzcmVtO1xuXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogdmFyKC0taW1hZ2Utd2lkdGgpIGF1dG87XG5cbiAgZ3JpZC10ZW1wbGF0ZS1hcmVhczpcbiAgICBcImltYWdlIHRpdGxlXCJcbiAgICBcImltYWdlIHRpdGxlXCJcbiAgICBcImltYWdlIGRhdGFcIlxuICAgIFwiaW1hZ2UgZGF0YVwiO1xuXG4gIC8vIC5yZXN1bHQtdGl0bGUge1xuICAvLyAgIG1hcmdpbi10b3A6ICRnYXA7XG4gIC8vIH1cblxuICAucmVzdWx0LXRpdGxlLCAucmVzdWx0LWJvZHkge1xuICAgIHBhZGRpbmctcmlnaHQ6IGNhbGModmFyKC0tYmFkZ2Utc3BhY2luZykgKiAyKTtcbiAgfVxuXG4gIC5wcm9kdWN0LWRhdGEge1xuICAgIGdyaWQtYXJlYTogZGF0YTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdyaWQtZ2FwOiBjYWxjKCRnYXAgLyAyKSAkZ2FwO1xuICB9XG5cbiAgLnJlc3VsdC1pbWFnZSB7XG4gICAgaW1nIHtcbiAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgfVxuICB9XG5cblxuICBAaW5jbHVkZSBicmVhay1pbig0NTApIHtcbiAgICBncmlkLXRlbXBsYXRlLWFyZWFzOlxuICAgIFwiaW1hZ2UgXCJcbiAgICBcInRpdGxlXCJcbiAgICBcImRhdGFcIjtcblxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogdW5zZXQ7XG5cbiAgICAucHJvZHVjdC1kYXRhIHtcbiAgICAgIC8vIG1hcmdpbi10b3A6ICRnYXAtO1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICB9XG5cbiAgICAvLyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gMWZyO1xuXG4gICAgLnJlc3VsdC10aXRsZSwgLnJlc3VsdC1ib2R5IHsgcGFkZGluZy1yaWdodDogMCB9XG4gICAgLy8gLnJlc3VsdC10aXRsZSB7IGFsaWduLXNlbGY6IGNlbnRlciB9XG4gIH1cblxuXG4gICYuaW4tc3RvY2s6OmJlZm9yZSB7XG4gICAgLS1wYWRkaW5nLXkgOiAwLjJlbTtcbiAgICAtLXBhZGRpbmcteCA6IDEwZW07XG5cbiAgICBjb250ZW50OiAnaW4gc3RvY2snO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IGNhbGMoMWVtICsgdmFyKC0tcGFkZGluZy15KSk7XG4gICAgcmlnaHQ6IGNhbGMoLTEgKiB2YXIoLS1wYWRkaW5nLXgpKTtcbiAgICBwYWRkaW5nOiAwLjVlbSB2YXIoLS1wYWRkaW5nLXgpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gIH1cbn0iLCJAdXNlICcuLi9fdmFyaWFibGVzJyBhcyAqO1xuQHVzZSAnLi4vX2hlbHBlcnMvbWlzYy5zY3NzJyBhcyAqO1xuXG5AbWl4aW4gdGFnKCkge1xuICAmW2Rpc2FibGVkXSB7IEBpbmNsdWRlIGRpc2FibGVkKCkgfVxuICAmLmNhdGVnb3J5IHtcbiAgICBAaW5jbHVkZSB0YWctYmFzZSgpO1xuICAgIC0tYm9yZGVyLWNvbG91cjogI3skcmVkfTtcbiAgICBAaW5jbHVkZSB0YWctd2l0aC1zZWNvbmRhcnkoKTtcbiAgICAudGFnLXNlY29uZGFyeTpob3ZlciB7IEBpbmNsdWRlIHNlY29uZGFyeS1ob3ZlcigpIH1cbiAgfVxuXG4gICYuY2hlY2tib3gge1xuICAgIEBpbmNsdWRlIHRhZy1jaGVja2JveCgpO1xuICB9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIEJhc2Ugc3R5bGluZ1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBtaXhpbiB0YWctYmFzZSgpIHtcbiAgLS1ib3JkZXItcmFkaXVzICAgICAgIDogMHB4O1xuICAtLWZvbnQtY29sb3VyICAgICAgICAgOiAjeyRyZWR9O1xuICAtLWJnLWNvbG91ciAgICAgICAgICAgOiB3aGl0ZTtcbiAgLS1zZWNvbmRhcnktd2lkdGggICAgIDogM2NoO1xuICAtLXNlY29uZGFyeS1wYWRkaW5nLXggOiAzcHg7XG4gIC0tYm9yZGVyLWNvbG91ciAgICAgICA6IHRyYW5zcGFyZW50O1xuXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgd2lkdGg6IGZpdC1jb250ZW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG4gIGNvbG9yOiB2YXIoLS1mb250LWNvbG91cik7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnLWNvbG91cik7XG4gIHRyYW5zaXRpb246ICR0cmFuc2l0aW9uO1xuICBmb250LXNpemU6IDEzcHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuXG4gIC50YWctbGFiZWwge1xuICAgIHBhZGRpbmc6IDNweCAkZ2FwIDNweCAkZ2FwO1xuICB9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIFdpdGggc2Vjb25kYXJ5IHNlY3Rpb25cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5AbWl4aW4gdGFnLXdpdGgtc2Vjb25kYXJ5KCkge1xuICAtLXN5bWJvbC1jb2xvdXIgOiAjeyRyZWR9O1xuXG4gIC50YWctc2Vjb25kYXJ5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcGFkZGluZzogMCB2YXIoLS1zZWNvbmRhcnktcGFkZGluZy14KTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGdyZXk0O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2lkdGg6IDNjaDtcbiAgICB0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbjtcblxuICAgIHN2ZyB7XG4gICAgICB3aWR0aDogNTAlO1xuICAgICAgdHJhbnNpdGlvbjogJHRyYW5zaXRpb247XG4gICAgfVxuICB9XG59XG5cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgQ2hlY2tib3ggdGFnc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbkBtaXhpbiB0YWctY2hlY2tib3goKSB7XG4gIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgICYgfiBsYWJlbCB7XG4gICAgICBAaW5jbHVkZSB0YWctYmFzZSgpO1xuICAgICAgQGluY2x1ZGUgdGFnLXdpdGgtc2Vjb25kYXJ5KCk7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICAtLWJvcmRlci1jb2xvdXI6ICN7JHJlZH07XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmNoZWNrZWQgfiBsYWJlbCB7XG4gICAgICAtLWZvbnQtY29sb3VyOiB3aGl0ZTtcbiAgICAgIC0tYmctY29sb3VyOiAjeyRyZWR9O1xuXG4gICAgICAudGFnLXNlY29uZGFyeSB7IEBpbmNsdWRlIHNlY29uZGFyeS1ob3ZlcihyZ2JhKHdoaXRlLCAwLjMpKSB9XG4gICAgfVxuICB9XG59XG5cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgU3RhdGVzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuQG1peGluIHNlY29uZGFyeS1ob3ZlcigkY29sb3VyIDogJHJlZCkge1xuICAtLXN5bWJvbC1jb2xvdXI6IHdoaXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3VyO1xufSIsIkB1c2UgJy4uL21vZHVsZXMnIGFzICo7XG5cbiNtYXJrZXQtc2VjdG9ycyB7XG4gICAgLmhlYWRlciAuc3ViaGVhZGluZyB7IGNvbG9yOiAkcmVkOyB9XG4gICAgYXJ0aWNsZS1ncmlkIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWstb3V0KG1heCkge1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiNtYXJrZXQtc2VjdG9ycywgI2hvbWUgLm1hcmtldC1zZWN0b3JzXFw6bGlzdHtcbiAgICAgICAgLmNhbGxUb0FjdGlvbiB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxufVxuXG5ib2R5Lm1hcmtldC1zZWN0b3JzIHtcbiAgICBzaWRlLWJhciB7XG4gICAgICAgIEBtZWRpYSAobWF4LWhlaWdodDogMTAwMHB4KSB7XG4gICAgICAgICAgICA+IGRpdiB7IHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O31cbiAgICAgICAgfVxuICAgICAgICBmb3JtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcbiAgICAgICAgICAgIHBhZGRpbmc6JGd1dHRlcjsgXG4gICAgICAgICAgICAuZnJlZWZvcm0tbGFiZWwge1xuICAgICAgICAgICAgICAgIGNvbG9yOndoaXRlOyBcbiAgICAgICAgICAgIH1cblxuXG4gICAgbGFiZWwgeyBjb2xvcjokd2hpdGU7IH1cblxuXG4gICAgICAgICAgICAuZm9ybS1pbnRybyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHJlZDsgXG4gICAgICAgICAgICAgICAgY29sb3I6d2hpdGU7IFxuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBtYXJnaW46JGd1dHRlci0gJGd1dHRlci0gY2FsYyg2MHB4ICsgI3skZ3V0dGVyfSkgJGd1dHRlci07IFxuICAgICAgICAgICAgICAgIHBhZGRpbmc6JGd1dHRlcjsgXG4gICAgICAgICAgICAgICAgcG9zaXRpb246cmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgLmhlYWRpbmcge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6M3JlbTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206JGdhcDsgXG4gICAgICAgICAgICAgICAgICAgIHRleHQtd3JhcDpiYWxhbmNlO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjp3aGl0ZTsgXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHAgeyBjb2xvcjp3aGl0ZTsgfVxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDo2MHB4O1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDoxMDAlOyBcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHJlZDtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDowOyBcbiAgICAgICAgICAgICAgICAgICAgdG9wOmNhbGMoMTAwJSAtIDFweCk7IFxuICAgICAgICAgICAgICAgICAgICBjbGlwLXBhdGg6IHBvbHlnb24oNTAlIDEwMCUsIDAgMCwgMTAwJSAwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuZnJlZWZvcm0tcm93OmhhcyguZm9ybS1pbnRybykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuICAgICAgICAgICAgICAgIC5mcmVlZm9ybS1jb2x1bW4ge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJjpoYXMoZm9ybSkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmZWF0dXJlZC1pbWFnZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGhlaWdodDoxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWstaW4obGFyZ2UpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOjAgIWltcG9ydGFudDsgXG4gICAgICAgICAgICAgICAgPiBkaXYgeyBtYXJnaW4tYm90dG9tOjAgIWltcG9ydGFudDsgfVxuICAgICAgICAgICAgICAgIGZlYXR1cmVkLWltYWdlIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTpub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfVxuIFxufVxuXG4ubWFya2V0LXNlY3RvcnNcXDphcnRpY2xlcyB7XG4gIEBpbmNsdWRlIGJyZWFrLW91dChzbWFsbC1tZWRpdW0pIHtcbiAgICBtYXJnaW4tYm90dG9tOiRzcGFjZXI7IFxuICAgIC5jYWxsVG9BY3Rpb24geyBkaXNwbGF5OiBub25lOyB9XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWstaW4oc21hbGwtbWVkaXVtKSB7XG4gICAgLmNhbGxUb0FjdGlvbiB7IFxuICAgICAgICBkaXNwbGF5OiBmbGV4OyBcbiAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgICB9XG4gICAgLnJlc3VsdC1pdGVtLCA+IGgzLmhlYWRpbmcgeyBkaXNwbGF5OiBub25lO31cbiAgfVxuICBAaW5jbHVkZSBicmVhay1pbihsYXJnZSkge1xuICAgIG1hcmdpbi10b3A6JHNwYWNlcjsgXG4gIH1cbiAgPiAuaGVhZGluZyB7XG4gICAgQGluY2x1ZGUgaGVhZGluZy1oMjtcbiAgICBjb2xvcjokcmVkOyBcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIG1hcmdpbi1ib3R0b206JGd1dHRlcjsgXG4gIH1cbiAgLmRldGFpbHMgeyBkaXNwbGF5OiBub25lOyB9XG59XG5cbi5tYXJrZXQtc2VjdG9yc1xcOmxpc3Qge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTIwZGVnLCAjMTAxMjRkIDIwJSwgIzEzMWY2YiA4MCUpO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgaXNvbGF0aW9uOiBpc29sYXRlO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMjQwcHggMWZyO1xuICAgIGdhcDowICRndXR0ZXI7IFxuXG4gICAgLmRldGFpbHMgeyBkaXNwbGF5OiBub25lOyB9XG5cbiAgICAuaW50cm8ge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBncmlkLXJvdzoxOyAgXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuICAgICAgICBwYWRkaW5nOiRndXR0ZXIgJGd1dHRlcjIgJGd1dHRlciAkZ3V0dGVyOyBcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAlIDEwMCUsIDAlIDAlLCAxMDAlIDAlLCA1NSUgMTAwJSk7XG4gICAgICAgIC5oZWFkaW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlYWRpbmctaDI7XG4gICAgICAgIH1cbiAgICAgICAgLnN1Yi1oZWFkaW5nIHtcbiAgICAgICAgICAgIG9yZGVyOi0xOyBcbiAgICAgICAgICAgIGNvbG9yOiRyZWQ7IFxuICAgICAgICAgICAgQGluY2x1ZGUgaGVhZGluZy1oMztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRnYXA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgYXJ0aWNsZS1ncmlkIHtcbiAgICBncmlkLWdhcDogJGdhcDtcbiAgICBwYWRkaW5nOjAgY2xhbXAoMjAwcHgsIDIwdncsIDMwMHB4KSAwIDA7IFxuICAgIGdyaWQtcm93OjE7ICBcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IFxuICAgIGRpc3BsYXk6YmxvY2s7XG4gICAgY29sdW1uczogMTYwcHg7XG4gICAgY29sdW1uLWdhcDogJGd1dHRlcjI7XG4gICAgcGFkZGluZy1ibG9jazokZ3V0dGVyOyBcbiAgfVxuICAucmVzdWx0LWl0ZW0ge1xuICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuICAgIC5yZXN1bHQtdGl0bGUge1xuICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcbiAgICAgICAgYSB7XG4gICAgICAgICAgICBicmVhay1pbnNpZGU6IGF2b2lkOyBcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZy1ibG9jazokZ3V0dGVyMDsgXG4gICAgICAgICAgICAmOjphZnRlciB7IGNvbnRlbnQ6aW5pdGlhbDsgfVxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OicnO1xuICAgICAgICAgICAgICAgIGhlaWdodDoxcmVtO1xuICAgICAgICAgICAgICAgIHdpZHRoOjFyZW07IFxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDkgMTEnJTNFJTNDcGF0aCBkPSdtLjU3Ny44MTYgNi4wMDUgNC4yNDVMLjU3NyA5LjMwNicgZmlsbD0nbm9uZScgc3Ryb2tlPSclMjNkZjMwMzUnIHN0cm9rZS13aWR0aD0nMicvJTNFJTNDL3N2ZyUzRVwiKTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAxY2g7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLTJyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gICBcbiAgICB9XG4gICAgLnJlc3VsdC1pbWFnZSB7XG4gICAgICAgIGNsaXAtcGF0aDogcG9seWdvbigwJSAxMDAlLCAzNSUgMCUsIDEwMCUgMCUsIDEwMCUgMTAwJSk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgd2lkdGg6IGNsYW1wKDIwMHB4LCAyMHZ3LCAzMDBweCk7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgZ3JpZC1yb3c6IDE7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJHRyYW5zaXRpb247XG4gICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuM3M7XG5cbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpoYXMoYTpob3ZlcikgLnJlc3VsdC1pbWFnZSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDBzO1xuICAgIH1cbiAgICAmOm5vdCg6aGFzKGE6aG92ZXIpKTpmaXJzdC1vZi10eXBlIC5yZXN1bHQtaW1hZ2Uge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxuXG4gICAgLmJ1dHRvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOjA7IFxuICAgICAgICB6LWluZGV4OjI7IFxuICAgICAgICByaWdodDowOyBcbiAgICB9XG5cbiAgICBAY29udGFpbmVyICh3aWR0aCA8IDkwMHB4KSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFydGljbGUtZ3JpZCB7IFxuICAgICAgICAgICAgcGFkZGluZy1pbmxpbmU6ICRndXR0ZXIzO1xuICAgICAgICAgICAgcGFkZGluZy1ibG9jay1lbmQgOiBjYWxjKGNsYW1wKDIwMHB4LCAyMHZ3LCAzMDBweCkgKyAjeyAkZ3V0dGVyfSk7XG5cbiAgICAgICAgfVxuICAgICAgICAuaW50cm8ge1xuICAgICAgICAgICAgY2xpcC1wYXRoOiBpbml0aWFsOy8vIHBvbHlnb24oMCUgMTAwJSwgMCUgMCUsIDEwMCUgMCUsIDEwMCUgNzAlKTtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRndXR0ZXIyO1xuXG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTo1MHB4O1xuICAgICAgICB9XG4gICAgICAgIC5yZXN1bHQtaXRlbSB7XG4gICAgICAgICAgICAucmVzdWx0LWltYWdlIHtcbiAgICAgICAgICAgICAgICBjbGlwLXBhdGg6IGluaXRpYWw7Ly8gcG9seWdvbigwJSAxMDAlLCAwJSAyMCUsIDEwMCUgMCUsIDEwMCUgMTAwJSk7O1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICB0b3A6aW5pdGlhbDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGNsYW1wKDIwMHB4LCAyMHZ3LCAzMDBweCk7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBDb2xvdXJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4vLy8gRXhwbGljaXQgQ29sb3VycyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8vIEV4cGxpY2l0IGNvbG91cnMgYXJlIGEgd2hhdCB0aGV5IGFyZS4gR3JlZW4gaXMgZ3JlZW4sIGJsdWUgaXMgYmx1ZS4uLiBubyBvYnNjdXJpdHkuXG4vLy8gV2Ugc3VmZml4IG51bWJlcnMgdG8gZGVmaW5lIHZhcmlhdGlvbnMgb2YgY29sb3VycyBpbiBubyBwYXJ0aWN1bGFyIG9yZGVyIG9mIHNoYWRlLiBcbi8vLyBFeGFtcGxlOiBncmVlbjEsIGdyZWVuMiwgZ3JlZW4zLCBncmVlbjQuIFRoaXMgaXMgc28gd2UgY2FuIGltbWlkaWF0ZWx5IHNlZSBob3cgXG4vLy8gbWFueSBvcHRpb25zIHdlIGhhdmUgZm9yIGEgc2luZ2xlIGNvbG91ciBhdCBhIGdsYW5jZS4gSWYgeW91IHNlZSAkZ3JlZW40LCB5b3Uga25vdyB0aGlzXG4vLy8gcHJvamVjdCBpcyB1c2luZyBmb3VyIHZhcmlhdGlvbnMgb2YgZ3JlZW4uIFRoaXMgaXMgYWxzbyBvZnRlbiB1c2VmdWwgYmVjYXVzZSBtYW55IGRldmVsb3BtZW50IFxuLy8vIHRvb2xzIHdpbGwgYXV0by1zdWdnZXN0IGNvbG91cnMgd2l0aCBhY3R1YWwgZXhhbXBsZXMgb2YgdGhlIGNvbG91ci4gXG4vLy8gVGhlIFBhbGxldGVzIG1vZHVsZSAoYXQgdGhlIGJvdHRvbSBvZiB0aGlzIGZpbGUpIHdpbGwgb3V0cHV0IHNoYWRlZCBuYW1lZCB2YXJpYXRpb25zLCBcbi8vLy8gPGNvbG91cj4tZGFyayBhbmQgPGNvbG91cj4tbGlnaHQuIElmIHlvdSBuZWVkIGFkZGl0aW9uYWwgc2hhZGVzIHBsZWFzZSByZWZyYWltIGZyb20gZ29pbmcgZG93biBcbi8vLyB0aGUgJ2xpZ2h0ZXInLCAnbGlnaHRlc3QnLCAnZGFya2VyJywgJ2Rhcmtlc3QnIGNvbnZlbnRpb24uIFRoZXNlIGFyZSBub3QgcGFydGljdWFybHkgbGVnaWFibGUgXG4vLy8gYW5kIHRoZXkgYXJlIGxpbWl0ZWQgYnkgaG93IGNyZWF0aXZlIChjb25mdXNpbmcpIHlvdXIgd29yZGluZyBjYW4gYmUuIFxuLy8vIEl0IGlzIGJldHRlciB0byBkZWZpbmUgYSBuZXcgZXhwbGNpdCBjb2xvdXIgZW50aXJlbHkuIFxuLy8vIEBzZWUgaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS93aGF0LWRvLXlvdS1uYW1lLWNvbG9yLXZhcmlhYmxlcy9cblxuJGJsdWUgICAgICAgICAgICAgOiAjMTMxZjZiOyAvLyBQcmltYXJ5XG4kYmx1ZTIgICAgICAgICAgICA6ICMyOTJCNjg7IC8vIE5ha2VkIExpbmtcbiRibHVlMyAgICAgICAgICAgIDogIzNkM2Y3ZjsgLy8gTGlnbnQgR3JhZGllbnRcbiRibHVlNCAgICAgICAgICAgIDogIzEwMTI0ZDsgLy8gRGFyayBHcmFkaWVudFxuJGJsdWU1ICAgICAgICAgICAgOiAjMDA5NUZGOyAvLyBOYXZpZ2F0aW9uIGxpbmsgaG92ZXIgXG5cbiRyZWQgICAgICAgICAgICAgIDogI0RGMzAzNTsgLy8gU2Vjb25kYXJ5IC0gVGhpcyBwYXNzZXMgdGhlIGNvbnRyYXN0IHJhdGlvIGFjY2Vzc2liaWxpdHkgdGVzdCBpbiBHb29nbGVzIExpZ2h0aG91c2UgXG5cbiRncmV5ICAgICAgICAgICAgIDogIzk2OTY5NTtcbiRncmV5MiAgICAgICAgICAgIDogIzZBNkE2QTsgLy8gRm9udFxuJGdyZXkzICAgICAgICAgICAgOiAjRjRGNEY0OyAvLyBMaWdodGVyIEdyZXkgQmFja2dyb3VuZFxuJGdyZXk0ICAgICAgICAgICAgOiAjZGNkY2RjO1xuJGdyZXk1ICAgICAgICAgICAgOiAjQjFCMUIxOyAvLyBTcGFjZXJzIDxocj5cbiRncmV5NiAgICAgICAgICAgIDogIzMzMzIzNjsgLy8gTmF2aWdhdGlvbiBsaW5rIGhvdmVyICBcbiRncmV5NyAgICAgICAgICAgIDogI2U5ZTllOTtcbiRncmVlbiAgICAgICAgICAgIDogIzUwQkMwODtcbiR5ZWxsb3cgICAgICAgICAgIDogI0Y2RjREQjsgLy8gRGlzY2xhaW1lciBCYWNrZ3JvdW5kXG4keWVsbG93MiAgICAgICAgICA6ICNGQ0IwMDI7XG4kYmxhY2sgICAgICAgICAgICA6ICMxRTFBMUE7XG4kd2hpdGUgICAgICAgICAgICA6ICNGRkZGRkY7XG5cbiRvcmFuZ2UgICAgICAgICAgIDogI2VkNjIyNDtcblxuXG4kdHJhbnNwYXJlbnQgICAgICA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMCk7XG4kbWFyayAgICAgICAgICAgICA6ICRibHVlNTsgLy8gYmFja2dyb3VuZCBjb2xvdXIgZm9yIDxtYXJrPiB0YWdzXG5cbiRkZWZhdWx0LWdyYWRpZW50IDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSByaWdodCwgJGJsdWUgNSUsICRibGFjayA2NiUpO1xuJHJldmVyc2UtZ3JhZGllbnQgOiBsaW5lYXItZ3JhZGllbnQoMTIwZGVnLCAjMTAxMjRkIDAlLCAkYmx1ZSA4MCUpO1xuJGxpZ2h0LWdyYWRpZW50ICAgOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IGJvdHRvbSwgIzEwMTI0ZCA1NSUsICMxNzI1ODIgMTAwJSk7XG5cblxuLy8vXG4kcHJpbWFyeTogJGJsdWU7XG4vLy9cblxuXG5cblxuLy8vIFRoZW1lcyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJHRoZW1lLWRlZmF1bHQtcGFnZS1iYWNrZ3JvdW5kICAgIDogJGRlZmF1bHQtZ3JhZGllbnQ7XG4kdGhlbWUtZGVmYXVsdC1jb250ZW50LWJhY2tncm91bmQgOiAkdHJhbnNwYXJlbnQ7XG4kdGhlbWUtZGVmYXVsdC1uYXYtYmFja2dyb3VuZCAgICAgOiAkdHJhbnNwYXJlbnQ7XG4kdGhlbWUtZGVmYXVsdC1uYXYtYmFja2dyb3VuZC1tb2IgOiAkd2hpdGU7XG4kdGhlbWUtZGVmYXVsdC1uYXYtZm9udCAgICAgICAgICAgOiAkd2hpdGU7XG4kdGhlbWUtZGVmYXVsdC1uYXYtZm9udC1tb2IgICAgICAgOiAkYmx1ZTtcbiR0aGVtZS1kZWZhdWx0LW5hdi1zcGFjaW5nLWNvbG91ciA6IHJnYmEoJGJsdWUsIDAuMyk7XG4kdGhlbWUtZGVmYXVsdC1mb250ICAgICAgICAgICAgICAgOiAkd2hpdGU7XG4kdGhlbWUtZGVmYXVsdC1oZWFkaW5nICAgICAgICAgICAgOiAkd2hpdGU7XG4kdGhlbWUtZGVmYXVsdC1hY2NlbnRcdFx0XHRcdFx0ICAgIDogJHJlZDtcbiR0aGVtZS1kZWZhdWx0LWxvZ28gICAgICAgICAgICAgICA6ICR3aGl0ZTtcblxuJHRoZW1lLXdoaXRlLXBhZ2UtYmFja2dyb3VuZCAgICAgIDogJGxpZ2h0LWdyYWRpZW50O1xuJHRoZW1lLXdoaXRlLWNvbnRlbnQtYmFja2dyb3VuZCAgIDogI2Y4ZjhmODtcbiR0aGVtZS13aGl0ZS1uYXYtYmFja2dyb3VuZCAgICAgICA6ICR0cmFuc3BhcmVudDtcbiR0aGVtZS13aGl0ZS1uYXYtYmFja2dyb3VuZC1tb2IgICA6ICRibHVlO1xuJHRoZW1lLXdoaXRlLW5hdi1mb250ICAgICAgICAgICAgIDogJHdoaXRlO1xuJHRoZW1lLXdoaXRlLW5hdi1mb250LW1vYiAgICAgICAgIDogJHdoaXRlO1xuJHRoZW1lLXdoaXRlLW5hdi1zcGFjaW5nLWNvbG91ciAgIDogcmdiYSgkd2hpdGUsIDAuMyk7XG4kdGhlbWUtd2hpdGUtZm9udCAgICAgICAgICAgICAgICAgOiAkYmxhY2s7XG4kdGhlbWUtd2hpdGUtaGVhZGluZyAgICAgICAgICAgICAgOiAkYmx1ZTtcbiR0aGVtZS13aGl0ZS1hY2NlbnRcdFx0XHRcdFx0ICAgICAgOiAkdGhlbWUtZGVmYXVsdC1hY2NlbnQ7XG4kdGhlbWUtd2hpdGUtbG9nbyAgICAgICAgICAgICAgICAgOiAkd2hpdGU7XG5cbiR0aGVtZS1ibGFjay1wYWdlLWJhY2tncm91bmQgICAgICA6ICRkZWZhdWx0LWdyYWRpZW50O1xuJHRoZW1lLWJsYWNrLWNvbnRlbnQtYmFja2dyb3VuZCAgIDogJGJsYWNrO1xuJHRoZW1lLWJsYWNrLW5hdi1iYWNrZ3JvdW5kICAgICAgIDogJHdoaXRlO1xuJHRoZW1lLWJsYWNrLW5hdi1iYWNrZ3JvdW5kLW1vYiAgIDogJHdoaXRlO1xuJHRoZW1lLWJsYWNrLW5hdi1mb250ICAgICAgICAgICAgIDogJGJsdWU7XG4kdGhlbWUtYmxhY2stbmF2LWZvbnQtbW9iICAgICAgICAgOiAkYmx1ZTtcbiR0aGVtZS1ibGFjay1uYXYtc3BhY2luZy1jb2xvdXIgICA6IHJnYmEoJGJsdWUsIDAuMyk7XG4kdGhlbWUtYmxhY2stZm9udCAgICAgICAgICAgICAgICAgOiAkd2hpdGU7XG4kdGhlbWUtYmxhY2staGVhZGluZyAgICAgICAgICAgICAgOiAkd2hpdGU7XG4kdGhlbWUtYmxhY2stYWNjZW50XHRcdFx0XHRcdCAgICAgIDogJHRoZW1lLWRlZmF1bHQtYWNjZW50O1xuJHRoZW1lLWJsYWNrLWxvZ28gICAgICAgICAgICAgICAgIDogJGJsdWU7XG5cbi8vLyBQYWxldHRlID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLy8gQnkgbG9hZGluZyBjb25maWd1cmF0aW9ucyBpbnRvIHRoaXMgJ3BhbGxldGUnIG1vZHVsZSwgd2Ugd2lsbCBiZSBhYmxlXG4vLy8gdG8gZGVjbGFyZSB2YXJpYW50cyBvZiBhIGZldyBjb21tb24gY29sb3Vycy4gWW91IGNhbiBhbHNvIGFkanVzdCB0aGUgbGlnaHRuZXNzXG4vLy8gb3IgZGFya25lc3Mgb2YgZWFjaCB2YXJpYW50IGJ5IHBhc3NpbmcgaW4gdGhlIHJlbGV2YW50IHByaXZhdGUgcnVsZXMuIFxuLy8vIFBhbGV0dGUgd2lsbCBhbHNvIGV4cG9zZSBwb3B1bGFyIHNvY2lhbCBtZWRpYSBjb2xvdXJzIGFuZCB0aGUgWWVsbG8gYnJhbmQgY29sb3VyLlxuLy8vIEBzZWUgaHR0cHM6Ly9zYXNzLWxhbmcuY29tL2RvY3VtZW50YXRpb24vYXQtcnVsZXMvZm9yd2FyZCNjb25maWd1cmluZy1tb2R1bGVzXG4vLy8gQG91dHB1dCAkZ3JlZW4gOiAjMDI5MjlBOyAkZ3JlZW4tZGFyayA6ICMyNTY1Njk7ICRncmVlbi1saWdodDogIzA0YjljNDtcblxuQGZvcndhcmQgJ2NyZWF0ZS9wYWxldHRlJ3dpdGggKCRibHVlIDogJGJsdWUsXG5cdCRyZWQgOiAkcmVkLFxuXHQkZ3JleSA6ICRncmV5LFxuXHQkeWVsbG93IDogJHllbGxvdyxcblx0JGdyZWVuIDogJGdyZWVuLFxuXHQkYmxhY2sgOiAkYmxhY2spO1xuXG4kY29tcG9uZW50LXRoZW1lcyA6IChcInJlZFwiOiAkcmVkLCBcImJsdWVcIjogJGJsdWUsIFwiZ3JleVwiOiAkZ3JleTMsIFwid2hpdGVcIiA6ICR3aGl0ZSk7IiwiLyogei1pbmRleGVzIGFyZSBsYXJnZSBkdWUgdG8gdGhlIGZhY3QgdGhhdCB0aGluZ3MgbWlnaHQgY2hhbmdlXG4gKiBpbiB0aGUgZnV0dXJlLiBJbiBvcmRlciB0byBhY2NvdW50IGZvciBzY2FsYWJpbGl0eSwgdGhpcyBnaXZlc1xuICogcm9vbSB0byBtYWtlIGNoYW5nZXMgYW5kIG5vdCBicmVhayB0aGUgZW50aXJlIHNpdGUsIG1lYW5pbmcgXG4gKiB3ZSB3b24ndCBoYXZlIHRvIGdvIGluIGFuZCByZWZhY3RvciBhIGxvdCBvZiBvdXIgY29kZS5cbiAqL1xuLyogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBJTlBVVFNcbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgQ09OVEFJTkVSU1xuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHRCYXNlIHJlc3VsdCBzdHlsZXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tXG5cdFZhcmlhdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBCYXNlIHN0eWxpbmdcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBXaXRoIHNlY29uZGFyeSBzZWN0aW9uXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgQ2hlY2tib3ggdGFnc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIFN0YXRlc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbiNtYXJrZXQtc2VjdG9ycyAuaGVhZGVyIC5zdWJoZWFkaW5nIHtcbiAgY29sb3I6ICNERjMwMzU7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTY4MXB4KSB7XG4gICNtYXJrZXQtc2VjdG9ycyBhcnRpY2xlLWdyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gIH1cbn1cblxuI21hcmtldC1zZWN0b3JzIC5jYWxsVG9BY3Rpb24sICNob21lIC5tYXJrZXQtc2VjdG9yc1xcOmxpc3QgLmNhbGxUb0FjdGlvbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIChtYXgtaGVpZ2h0OiAxMDAwcHgpIHtcbiAgYm9keS5tYXJrZXQtc2VjdG9ycyBzaWRlLWJhciA+IGRpdiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gIH1cbn1cbmJvZHkubWFya2V0LXNlY3RvcnMgc2lkZS1iYXIgZm9ybSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzEzMWY2YjtcbiAgcGFkZGluZzogdmFyKC0tZ3V0dGVyMSk7XG59XG5ib2R5Lm1hcmtldC1zZWN0b3JzIHNpZGUtYmFyIGZvcm0gLmZyZWVmb3JtLWxhYmVsIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuYm9keS5tYXJrZXQtc2VjdG9ycyBzaWRlLWJhciBmb3JtIGxhYmVsIHtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG5ib2R5Lm1hcmtldC1zZWN0b3JzIHNpZGUtYmFyIGZvcm0gLmZvcm0taW50cm8ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjREYzMDM1O1xuICBjb2xvcjogd2hpdGU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luOiB2YXIoLS1ndXR0ZXIxLSkgdmFyKC0tZ3V0dGVyMS0pIGNhbGMoNjBweCArIHZhcigtLWd1dHRlcjEpKSB2YXIoLS1ndXR0ZXIxLSk7XG4gIHBhZGRpbmc6IHZhcigtLWd1dHRlcjEpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5ib2R5Lm1hcmtldC1zZWN0b3JzIHNpZGUtYmFyIGZvcm0gLmZvcm0taW50cm8gLmhlYWRpbmcge1xuICBmb250LXNpemU6IDNyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1nYXApO1xuICB0ZXh0LXdyYXA6IGJhbGFuY2U7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbmJvZHkubWFya2V0LXNlY3RvcnMgc2lkZS1iYXIgZm9ybSAuZm9ybS1pbnRybyBwIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuYm9keS5tYXJrZXQtc2VjdG9ycyBzaWRlLWJhciBmb3JtIC5mb3JtLWludHJvOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGhlaWdodDogNjBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNERjMwMzU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogY2FsYygxMDAlIC0gMXB4KTtcbiAgY2xpcC1wYXRoOiBwb2x5Z29uKDUwJSAxMDAlLCAwIDAsIDEwMCUgMCk7XG59XG5ib2R5Lm1hcmtldC1zZWN0b3JzIHNpZGUtYmFyIGZvcm0gLmZyZWVmb3JtLXJvdzpoYXMoLmZvcm0taW50cm8pIHtcbiAgZGlzcGxheTogY29udGVudHM7XG59XG5ib2R5Lm1hcmtldC1zZWN0b3JzIHNpZGUtYmFyIGZvcm0gLmZyZWVmb3JtLXJvdzpoYXMoLmZvcm0taW50cm8pIC5mcmVlZm9ybS1jb2x1bW4ge1xuICBkaXNwbGF5OiBjb250ZW50cztcbn1cbmJvZHkubWFya2V0LXNlY3RvcnMgc2lkZS1iYXI6aGFzKGZvcm0pIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbmJvZHkubWFya2V0LXNlY3RvcnMgc2lkZS1iYXI6aGFzKGZvcm0pIGZlYXR1cmVkLWltYWdlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTQwMHB4KSB7XG4gIGJvZHkubWFya2V0LXNlY3RvcnMgc2lkZS1iYXI6aGFzKGZvcm0pIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgYm9keS5tYXJrZXQtc2VjdG9ycyBzaWRlLWJhcjpoYXMoZm9ybSkgPiBkaXYge1xuICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgfVxuICBib2R5Lm1hcmtldC1zZWN0b3JzIHNpZGUtYmFyOmhhcyhmb3JtKSBmZWF0dXJlZC1pbWFnZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTgxcHgpIHtcbiAgLm1hcmtldC1zZWN0b3JzXFw6YXJ0aWNsZXMge1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNlcjEpO1xuICB9XG4gIC5tYXJrZXQtc2VjdG9yc1xcOmFydGljbGVzIC5jYWxsVG9BY3Rpb24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5ODBweCkge1xuICAubWFya2V0LXNlY3RvcnNcXDphcnRpY2xlcyAuY2FsbFRvQWN0aW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdyaWQtY29sdW1uOiAxLy0xO1xuICB9XG4gIC5tYXJrZXQtc2VjdG9yc1xcOmFydGljbGVzIC5yZXN1bHQtaXRlbSwgLm1hcmtldC1zZWN0b3JzXFw6YXJ0aWNsZXMgPiBoMy5oZWFkaW5nIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTQwMHB4KSB7XG4gIC5tYXJrZXQtc2VjdG9yc1xcOmFydGljbGVzIHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZXIxKTtcbiAgfVxufVxuLm1hcmtldC1zZWN0b3JzXFw6YXJ0aWNsZXMgPiAuaGVhZGluZyB7XG4gIGZvbnQtc2l6ZTogMS4yNWVtO1xuICBsaW5lLWhlaWdodDogMS4zO1xuICBjb2xvcjogI0RGMzAzNTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tZ3V0dGVyMSk7XG59XG4ubWFya2V0LXNlY3RvcnNcXDphcnRpY2xlcyAuZGV0YWlscyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5tYXJrZXQtc2VjdG9yc1xcOmxpc3Qge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMjBkZWcsICMxMDEyNGQgMjAlLCAjMTMxZjZiIDgwJSk7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGlzb2xhdGlvbjogaXNvbGF0ZTtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyNDBweCAxZnI7XG4gIGdhcDogMCB2YXIoLS1ndXR0ZXIxKTtcbn1cbi5tYXJrZXQtc2VjdG9yc1xcOmxpc3QgLmRldGFpbHMge1xuICBkaXNwbGF5OiBub25lO1xufVxuLm1hcmtldC1zZWN0b3JzXFw6bGlzdCAuaW50cm8ge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBncmlkLXJvdzogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzEzMWY2YjtcbiAgcGFkZGluZzogdmFyKC0tZ3V0dGVyMSkgdmFyKC0tZ3V0dGVyMikgdmFyKC0tZ3V0dGVyMSkgdmFyKC0tZ3V0dGVyMSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGNsaXAtcGF0aDogcG9seWdvbigwJSAxMDAlLCAwJSAwJSwgMTAwJSAwJSwgNTUlIDEwMCUpO1xufVxuLm1hcmtldC1zZWN0b3JzXFw6bGlzdCAuaW50cm8gLmhlYWRpbmcge1xuICBmb250LXNpemU6IDEuMjVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbn1cbi5tYXJrZXQtc2VjdG9yc1xcOmxpc3QgLmludHJvIC5zdWItaGVhZGluZyB7XG4gIG9yZGVyOiAtMTtcbiAgY29sb3I6ICNERjMwMzU7XG4gIGZvbnQtc2l6ZTogMC45Mzc1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLWdhcCk7XG59XG4ubWFya2V0LXNlY3RvcnNcXDpsaXN0IGFydGljbGUtZ3JpZCB7XG4gIGdyaWQtZ2FwOiB2YXIoLS1nYXApO1xuICBwYWRkaW5nOiAwIGNsYW1wKDIwMHB4LCAyMHZ3LCAzMDBweCkgMCAwO1xuICBncmlkLXJvdzogMTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29sdW1uczogMTYwcHg7XG4gIGNvbHVtbi1nYXA6IHZhcigtLWd1dHRlcjIpO1xuICBwYWRkaW5nLWJsb2NrOiB2YXIoLS1ndXR0ZXIxKTtcbn1cbi5tYXJrZXQtc2VjdG9yc1xcOmxpc3QgLnJlc3VsdC1pdGVtIHtcbiAgZGlzcGxheTogY29udGVudHM7XG59XG4ubWFya2V0LXNlY3RvcnNcXDpsaXN0IC5yZXN1bHQtaXRlbSAucmVzdWx0LXRpdGxlIHtcbiAgZGlzcGxheTogY29udGVudHM7XG59XG4ubWFya2V0LXNlY3RvcnNcXDpsaXN0IC5yZXN1bHQtaXRlbSAucmVzdWx0LXRpdGxlIGEge1xuICBicmVhay1pbnNpZGU6IGF2b2lkO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZy1ibG9jazogdmFyKC0tZ3V0dGVyMCk7XG59XG4ubWFya2V0LXNlY3RvcnNcXDpsaXN0IC5yZXN1bHQtaXRlbSAucmVzdWx0LXRpdGxlIGE6OmFmdGVyIHtcbiAgY29udGVudDogaW5pdGlhbDtcbn1cbi5tYXJrZXQtc2VjdG9yc1xcOmxpc3QgLnJlc3VsdC1pdGVtIC5yZXN1bHQtdGl0bGUgYTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgaGVpZ2h0OiAxcmVtO1xuICB3aWR0aDogMXJlbTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDkgMTEnJTNFJTNDcGF0aCBkPSdtLjU3Ny44MTYgNi4wMDUgNC4yNDVMLjU3NyA5LjMwNicgZmlsbD0nbm9uZScgc3Ryb2tlPSclMjNkZjMwMzUnIHN0cm9rZS13aWR0aD0nMicvJTNFJTNDL3N2ZyUzRVwiKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICBtYXJnaW4taW5saW5lLWVuZDogMWNoO1xuICBtYXJnaW4taW5saW5lLXN0YXJ0OiAtMnJlbTtcbn1cbi5tYXJrZXQtc2VjdG9yc1xcOmxpc3QgLnJlc3VsdC1pdGVtIC5yZXN1bHQtaW1hZ2Uge1xuICBjbGlwLXBhdGg6IHBvbHlnb24oMCUgMTAwJSwgMzUlIDAlLCAxMDAlIDAlLCAxMDAlIDEwMCUpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICByaWdodDogMDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiBjbGFtcCgyMDBweCwgMjB2dywgMzAwcHgpO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGdyaWQtcm93OiAxO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwLjNzO1xuICB6LWluZGV4OiAxO1xufVxuLm1hcmtldC1zZWN0b3JzXFw6bGlzdCAucmVzdWx0LWl0ZW0gLnJlc3VsdC1pbWFnZSBpbWcge1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xufVxuLm1hcmtldC1zZWN0b3JzXFw6bGlzdCAucmVzdWx0LWl0ZW06aGFzKGE6aG92ZXIpIC5yZXN1bHQtaW1hZ2Uge1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwcztcbn1cbi5tYXJrZXQtc2VjdG9yc1xcOmxpc3QgLnJlc3VsdC1pdGVtOm5vdCg6aGFzKGE6aG92ZXIpKTpmaXJzdC1vZi10eXBlIC5yZXN1bHQtaW1hZ2Uge1xuICBvcGFjaXR5OiAxO1xufVxuLm1hcmtldC1zZWN0b3JzXFw6bGlzdCAuYnV0dG9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIHotaW5kZXg6IDI7XG4gIHJpZ2h0OiAwO1xufVxuQGNvbnRhaW5lciAod2lkdGggPCA5MDBweCkge1xuICAubWFya2V0LXNlY3RvcnNcXDpsaXN0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbiAgLm1hcmtldC1zZWN0b3JzXFw6bGlzdCBhcnRpY2xlLWdyaWQge1xuICAgIHBhZGRpbmctaW5saW5lOiB2YXIoLS1ndXR0ZXIzKTtcbiAgICBwYWRkaW5nLWJsb2NrLWVuZDogY2FsYyhjbGFtcCgyMDBweCwgMjB2dywgMzAwcHgpICsgdmFyKC0tZ3V0dGVyMSkpO1xuICB9XG4gIC5tYXJrZXQtc2VjdG9yc1xcOmxpc3QgLmludHJvIHtcbiAgICBjbGlwLXBhdGg6IGluaXRpYWw7XG4gICAgcGFkZGluZzogdmFyKC0tZ3V0dGVyMik7XG4gICAgcGFkZGluZy1ib3R0b206IDUwcHg7XG4gIH1cbiAgLm1hcmtldC1zZWN0b3JzXFw6bGlzdCAucmVzdWx0LWl0ZW0gLnJlc3VsdC1pbWFnZSB7XG4gICAgY2xpcC1wYXRoOiBpbml0aWFsO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0b3A6IGluaXRpYWw7XG4gICAgaGVpZ2h0OiBjbGFtcCgyMDBweCwgMjB2dywgMzAwcHgpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgLm1hcmtldC1zZWN0b3JzXFw6bGlzdCAucmVzdWx0LWl0ZW0gLnJlc3VsdC1pbWFnZSBpbWcge1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8gQnJlYWsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNicmVha1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIG91dCgkYnJlYWtwb2ludCkge1xuICBAbWVkaWEgKG1pbi13aWR0aDojeyRicmVha3BvaW50ICsgMX0pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gaW4oJGJyZWFrcG9pbnQpIHtcbiAgQG1lZGlhIChtYXgtd2lkdGg6I3skYnJlYWtwb2ludH0pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gYmV0d2VlbigkbWluLCAkbWF4KSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiN7JG1pbn0pIGFuZCAobWF4LXdpZHRoOiN7JG1heH0pIHtcbiAgICBAY29udGVudDtcbiAgfVxufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBVbml0c1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQHVzZSBcInNhc3M6bWF0aFwiO1xuQHVzZSAnc2FzczpzdHJpbmcnO1xuQHVzZSAnc2FzczptZXRhJztcblxuLy8gVGhpcyB1bml0cyBjcmVhdG9yIHdpbGwgcmVuZGVyIHNpeCBwb3NpdGl2ZSBhbmQgc2l4IG5lZ2F0aXZlIHNhc3MgdmFyaWFibGVzIGZvciBcbi8vIGdhcHMsIHNwYWNlcnMsIGFuZCBndXR0ZXJzIHJlbGF0aXZlIHRvIHRoZSBiYXNldiB2YWx1ZXMgZGVmaW5lZCBiZWxvdy5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBCYXNlIFZhbHVlcyBcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vLyBAc2VlIGh0dHBzOi8vY29kZXBlbi5pby9tYXJrbm90dG9uL3Blbi9FeFBiTkdlXG5cbi8vIFRoZXNlIHRocmVlIHZhbHVlcyB3aWxsIGFjdCBhIGNvbnN0YW50IGJhc2VsaW5lIGZvciBhbGwgZm9sbG93aW5nIHVuaXQgZGVsY2FyYXRpb25zLlxuXG4vLyBHYXBzIG11c3QgdXNlIGFuIGFic29sdXRlIGFuZCBzdGF0aWMgJ3B4JyB1bml0LiBJdCBzaG91bGQgbm90IGJlIHJlbGF0aXZlIHRvIGFueVxuLy8gcGFyZW50IGNvbnRhaW5lciBhbmQgaXMgbm90IGludGVuZGVkIGZvciBmb250IHNpemVzLCBzbyB5b3Ugc2hvdWxkIG5vdCB1c2UgJ3JlbScgb3IgJ2VtJy4gXG4kZ2FwIDogMTZweCAhZGVmYXVsdDtcbiRiYXNlLWdhcCA6ICRnYXA7XG5cbi8vIFNwYWNlcnMgbXVzdCB1c2UgYSAndmgnIHVuaXQgc28gdGhleSBhcmUgcmVsYXRpdmUgdG8gdGhlIHVzZXJzIHZpZXdwb3J0IGhlaWdodC13aXNlLlxuLy8gVGhleSBzaG91bGQgcHJpbWFyaWx5IGJlIHVzZWQgZm9yIHRoZSB0b3AgYW5kIGJvdHRvbSBtYXJnaW5zIG9uIGEgY29tcG9uZW50IGxldmVsLlxuJHNwYWNlciA6IDR2aCAhZGVmYXVsdDsgXG4kYmFzZS1zcGFjZXIgOiAkc3BhY2VyOyBcblxuLy8gR3V0dGVycyBtdXN0IHVzZSBhICd2dycgdW5pdCBzbyB0aGV5IGFyZSByZWxhdGl2ZSB0byB0aGUgdXNlcnMgdmlld3BvcnQgd2lkdGgtd2lzZS4gXG4vLyBUaGV5IHNob3VsZCBwcmltYXJpbHkgYmUgdXNlZCBmb3IgdGhlIGxlZnQgYW5kIHJpZ2h0IHBhZGRpbmcgb3IgbWFyZ2luIG9uIGEgcGFyZW50IGxldmVsLlxuLy8gQXMgYSBzdWdnZXN0aW9uLCB0aGlzIGd1dHRlciBjb25zdGFudCBzaG91bGQgYmUgaGFsZiB0aGUgc2l6ZSBvZiB0aGUgc3BhY2VyIHZhbHVlLlxuJGd1dHRlciA6IDN2dyAhZGVmYXVsdDtcbiRiYXNlLWd1dHRlciA6ICRndXR0ZXI7IFxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQXNib2x1dGUgVW5pdHMgXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBHYXBzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gR2FwcyBhcmUgYW4gYWJzb2x1dGUgdW5pdCAocHgpIGludGVuZGVkIHRvIGJlIHVzZWQgb24gaW5kaXZpZHVhbCBlbGVtZW50cyB3aXRoaW4gYSBjb21wb25lbnRlZC4gXG4vLyBUaGUgYWltIGlzIHRvIHJldGFpbiBjb25zaXN0YW50IHNwYWNpbmcgYW1vbmdzdCBibG9jaywgaW5saW5lLCB0YWJsZSBhbmQgZ3JvdXAgaHRtbCBlbGVtZW50cy5cblxuQGZ1bmN0aW9uIGdhcCgkYW1vdW50IDogMSkge1xuICBAaWYgKCAkYW1vdW50ID09IDEgKSB7IFxuICAgIEByZXR1cm4gdmFyKC0tZ2FwKTsgXG4gIH0gQGVsc2UgeyBcbiAgICBAcmV0dXJuIGNhbGModmFyKC0tZ2FwKSAqICN7JGFtb3VudH0pOyBcbiAgfVxufVxuXG4kZ2FwMCA6IGdhcCgwLjUpOyAkZ2FwMC0gOiBnYXAoLTAuNSk7XG4kZ2FwICA6IGdhcCgxKTsgICAkZ2FwLSAgOiBnYXAoLTEpO1xuJGdhcDIgOiBnYXAoMik7ICAgJGdhcDItIDogZ2FwKC0yKTtcbiRnYXAzIDogZ2FwKDMpOyAgICRnYXAzLSA6IGdhcCgtMyk7XG4kZ2FwNCA6IGdhcCg0KTsgICAkZ2FwNC0gOiBnYXAoLTQpO1xuJGdhcDUgOiBnYXAoNSk7ICAgJGdhcDUtIDogZ2FwKC01KTtcbiRnYXA2IDogZ2FwKDYpOyAgICRnYXA2LSA6IGdhcCgtNik7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBSZWxhdGl2ZSBVbml0cyBcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBmdW5jdGlvbiBfZHluYW1pYy11bml0KCRjdXN0b20tcHJvcGVydHksICRhbW91bnQsICRtaW4sICRtYXgsICR1c2UtbmVnYXRpdmUgOiBmYWxzZSwgJHVzZS1jbGFtcCA6IHRydWUpIHtcblxuICAvLyBDYWxjIE1ldGhvZFxuICAkcmVzdWx0IDogY2FsYygoI3skY3VzdG9tLXByb3BlcnR5fSAqICN7JGFtb3VudH0pICsgI3tpZigkbWluID09IDAsIDBweCwgJG1pbil9KTtcbiAgXG4gIC8vIENsYW1wIE1ldGhvZFxuICBAaWYgKCAkdXNlLWNsYW1wICkge1xuICAgIEBpZiAoICRhbW91bnQgPT0gMCApIHtcbiAgICAgICRyZXN1bHQgOiBjbGFtcCgje21hdGguZGl2KCRtaW4sIDIpfSwgI3skY3VzdG9tLXByb3BlcnR5fSAqIDAuNSwgI3skbWF4fSk7XG4gICAgfSBAZWxzZSBpZiAoICRhbW91bnQgPT0gMSApIHtcbiAgICAgICRyZXN1bHQgOiBjbGFtcCgjeyRtaW59LCAjeyRjdXN0b20tcHJvcGVydHl9LCAjeyRtYXh9KTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRyZXN1bHQgOiBjbGFtcCgjeyRtaW59LCAjeyRjdXN0b20tcHJvcGVydHl9ICogI3skYW1vdW50fSwgI3skbWF4fSk7XG4gICAgfVxuICB9IFxuXG4gIEBpZiAoICR1c2UtbmVnYXRpdmUgKSB7XG4gICAgJHJlc3VsdCA6IGNhbGMoLTEgKiAjeyRyZXN1bHR9KTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlc3VsdDtcblxufSBcblxuLy8gU3BhY2VycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFNwYWNlcnMgYXJlIGEgcmVsYXRpdmUgdmlld3BvcnQgaGVpZ2h0ICh2aCkgdW5pdCBpbnRlbmRlZCB0byBiZSB1c2VkIG9uIGEgY29tcG9uZW50ZWQgbGV2ZWwuXG4vLyBUaGUgYWltIGlzIHRvIHJldGFpbiBjb25zaXN0YW50IHRvcCBhbmQgYm90dG9tIHNwYWNpbmcgYW1vbmdzdCAnc2VjdGlvbicgYW5kICdjdXN0b20nIGVsZW1lbnRzLlxuLy8gU3BhY2VycyB3aWxsIGVxdWF0ZSB0byBzb21ldGhpbmcgbGlrZTogYCgkc3BhY2VyICogeCkgKyAkZ2FwYC4gXG4vLyBUaGUgJyRnYXAnIGlzIGFkZGVkIHNvIHRoYXQgdmggc3BhY2luZyB3aWxsIG5ldmVyIHNjYWxlIHRvbyBjbG9zZSB0byAwcHguIFxuXG5AZnVuY3Rpb24gc3BhY2VyKCRhbW91bnQgOiAxLCAkbWluIDogJGJhc2UtZ2FwLCAkbWF4IDogbnVsbCwgJHVzZS1uZWdhdGl2ZSA6IGZhbHNlLCAkdXNlLWNsYW1wIDogdHJ1ZSkge1xuICBAaWYgKCAkYW1vdW50ID09IDApIHsgJGFtb3VudCA6IDAuNTsgJG1pbiA6IG1hdGguZGl2KCRtaW4sIDIpOyB9XG4gIEBpZiAoIG1ldGEudHlwZS1vZigkbWF4KSA9PSAnbnVsbCcgKSB7IFxuICAgIEBpZiAoIG1ldGEudHlwZS1vZigkbWluKSA9PSAnc3RyaW5nJyBhbmQgc3RyaW5nLmluZGV4KCRtaW4sICd2YXInKSApIHtcbiAgICAgICRtYXggOiBjYWxjKCN7JG1pbn0gKiAjeyRhbW91bnQgKyAxfSk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgJG1heCA6ICN7JG1pbiAqICgkYW1vdW50ICsgMSl9OyBcbiAgICB9XG4gIH1cbiAgQHJldHVybiBfZHluYW1pYy11bml0KHZhcigtLXNwYWNlciksICRhbW91bnQsICRtaW4sICRtYXgsICR1c2UtbmVnYXRpdmUsICR1c2UtY2xhbXApO1xufVxuXG4kc3BhY2VyMCA6IHZhcigtLXNwYWNlcjApOyAkc3BhY2VyMC0gOiB2YXIoLS1zcGFjZXIwLSk7XG4kc3BhY2VyICA6IHZhcigtLXNwYWNlcjEpOyAkc3BhY2VyLSAgOiB2YXIoLS1zcGFjZXIxLSk7XG4kc3BhY2VyMiA6IHZhcigtLXNwYWNlcjIpOyAkc3BhY2VyMi0gOiB2YXIoLS1zcGFjZXIyLSk7XG4kc3BhY2VyMyA6IHZhcigtLXNwYWNlcjMpOyAkc3BhY2VyMy0gOiB2YXIoLS1zcGFjZXIzLSk7XG4kc3BhY2VyNCA6IHZhcigtLXNwYWNlcjQpOyAkc3BhY2VyNC0gOiB2YXIoLS1zcGFjZXI0LSk7XG4kc3BhY2VyNSA6IHZhcigtLXNwYWNlcjUpOyAkc3BhY2VyNS0gOiB2YXIoLS1zcGFjZXI1LSk7XG4kc3BhY2VyNiA6IHZhcigtLXNwYWNlcjYpOyAkc3BhY2VyNi0gOiB2YXIoLS1zcGFjZXI2LSk7XG5cbi8vIEd1dHRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBHdXR0ZXJzIGFyZSBhIHJlbGF0aXZlIHZpZXdwb3J0IHdpZHRoICh2dykgdW5pdCBpbnRlbmRlZCB0byBiZSB1c2VkIG9uIGEgcGFyZW50IGxldmVsO1xuLy8gZm9yIGV4YW1wbGUsIGEgd3JhcHBlciBjb250YWluZXIgb3IgYm9keSB3aXRoIG5lc3RlZCBjb21wb25lbnRzLiBcbi8vIFRoZSBhaW0gaXMgdG8gcmV0YWluIGNvbnNpc3RhbnQgbGVmdCBhbmQgcmlnaHQgc3BhY2luZyBhbW9uZ3N0ICdzZWN0aW9uJyBhbmQgJ2N1c3RvbScgZWxlbWVudHMuXG4vLyBHdXR0ZXJzIHdpbGwgZXF1YXRlIHRvIHNvbWV0aGluZyBsaWtlOiBgKCRndXR0ZXIgKiB4KSArICRnYXBgLiBcbi8vIFRoZSAnJGdhcCcgaXMgYWRkZWQgc28gdGhhdCB2dyBzcGFjaW5nIHdpbGwgbmV2ZXIgc2NhbGUgdG9vIGNsb3NlIHRvIDBweC4gXG5cbkBmdW5jdGlvbiBndXR0ZXIoJGFtb3VudCA6IDEsICRtaW4gOiAkYmFzZS1nYXAsICRtYXggOiBudWxsLCAkdXNlLW5lZ2F0aXZlIDogZmFsc2UsICR1c2UtY2xhbXAgOiB0cnVlKSB7XG4gIEBpZiAoICRhbW91bnQgPT0gMCkgeyAkYW1vdW50IDogMC41OyAkbWluIDogbWF0aC5kaXYoJG1pbiwgMik7IH1cbiAgQGlmICggbWV0YS50eXBlLW9mKCRtYXgpID09ICdudWxsJyApIHsgXG4gICAgQGlmICggbWV0YS50eXBlLW9mKCRtaW4pID09ICdzdHJpbmcnIGFuZCBzdHJpbmcuaW5kZXgoJG1pbiwgJ3ZhcicpICkge1xuICAgICAgJG1heCA6IGNhbGMoI3skbWlufSAqICN7JGFtb3VudCArIDF9KTsgXG4gICAgfSBAZWxzZSB7XG4gICAgICAkbWF4IDogI3skbWluICogKCRhbW91bnQgKyAxKX07IFxuICAgIH1cbiAgfVxuICBAcmV0dXJuIF9keW5hbWljLXVuaXQodmFyKC0tZ3V0dGVyKSwgJGFtb3VudCwgJG1pbiwgJG1heCwgJHVzZS1uZWdhdGl2ZSwgJHVzZS1jbGFtcCk7XG59XG5cbiRndXR0ZXIwIDogdmFyKC0tZ3V0dGVyMCk7ICRndXR0ZXIwLSA6IHZhcigtLWd1dHRlcjAtKTtcbiRndXR0ZXIgIDogdmFyKC0tZ3V0dGVyMSk7ICRndXR0ZXItICA6IHZhcigtLWd1dHRlcjEtKTtcbiRndXR0ZXIyIDogdmFyKC0tZ3V0dGVyMik7ICRndXR0ZXIyLSA6IHZhcigtLWd1dHRlcjItKTtcbiRndXR0ZXIzIDogdmFyKC0tZ3V0dGVyMyk7ICRndXR0ZXIzLSA6IHZhcigtLWd1dHRlcjMtKTtcbiRndXR0ZXI0IDogdmFyKC0tZ3V0dGVyNCk7ICRndXR0ZXI0LSA6IHZhcigtLWd1dHRlcjQtKTtcbiRndXR0ZXI1IDogdmFyKC0tZ3V0dGVyNSk7ICRndXR0ZXI1LSA6IHZhcigtLWd1dHRlcjUtKTtcbiRndXR0ZXI2IDogdmFyKC0tZ3V0dGVyNik7ICRndXR0ZXI2LSA6IHZhcigtLWd1dHRlcjYtKTtcbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBDb2xvdXIgUGFsZXR0ZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQHVzZSBcIi4vbW9kdWxlcy9jb2xvdXJcIjtcblxuLy8gQWRqdXN0IHRoZXNlIHRvIGFtZW5kIHRoZSBsaWdodG5lc3Mgb3IgZGFya25lc3MgYW1vdW50cyBmb3IgdGhlIGNvbG91cnMgbHNpdGVkIGJlbG93Li4gXG5cbiRfbGlnaHRuZXNzIDogMTUlICFkZWZhdWx0O1xuJF9kYXJrbmVzcyAgOiAyMCUgIWRlZmF1bHQ7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBDb21tb24gQ29sb3Vyc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuJHJlZCAgICAgICAgICA6ICM5NzA4MEUgIWRlZmF1bHQ7XG4kcmVkLWxpZ2h0ICAgIDogY29sb3VyLmxpZ2h0ZW4oJHJlZCwgJF9saWdodG5lc3MpICFkZWZhdWx0O1xuJHJlZC1kYXJrICAgICA6IGNvbG91ci5kYXJrZW4oJHJlZCwgJF9kYXJrbmVzcykgIWRlZmF1bHQ7XG5cbiRvcmFuZ2UgICAgICAgOiAjREE0QjBGICFkZWZhdWx0O1xuJG9yYW5nZS1saWdodCA6IGNvbG91ci5saWdodGVuKCRvcmFuZ2UsICRfbGlnaHRuZXNzKSAhZGVmYXVsdDtcbiRvcmFuZ2UtZGFyayAgOiBjb2xvdXIuZGFya2VuKCRvcmFuZ2UsICRfZGFya25lc3MpICFkZWZhdWx0O1xuXG4keWVsbG93ICAgICAgIDogI0U5QjEwNCAhZGVmYXVsdDtcbiR5ZWxsb3ctbGlnaHQgOiBjb2xvdXIubGlnaHRlbigkeWVsbG93LCAkX2xpZ2h0bmVzcykgIWRlZmF1bHQ7XG4keWVsbG93LWRhcmsgIDogY29sb3VyLmRhcmtlbigkeWVsbG93LCAkX2RhcmtuZXNzKSAhZGVmYXVsdDtcblxuJGdyZWVuICAgICAgICA6ICM0ODhDMTMgIWRlZmF1bHQ7XG4kZ3JlZW4tbGlnaHQgIDogY29sb3VyLmxpZ2h0ZW4oJGdyZWVuLCAkX2xpZ2h0bmVzcykgIWRlZmF1bHQ7XG4kZ3JlZW4tZGFyayAgIDogY29sb3VyLmRhcmtlbigkZ3JlZW4sICRfZGFya25lc3MpICFkZWZhdWx0O1xuXG4kYmx1ZSAgICAgICAgIDogIzFCNTVDMCAhZGVmYXVsdDtcbiRibHVlLWxpZ2h0ICAgOiBjb2xvdXIubGlnaHRlbigkYmx1ZSwgJF9saWdodG5lc3MpICFkZWZhdWx0O1xuJGJsdWUtZGFyayAgICA6IGNvbG91ci5kYXJrZW4oJGJsdWUsICRfZGFya25lc3MpICFkZWZhdWx0O1xuXG4kcGluayAgICAgICAgIDogI0UwNUQ2QiAhZGVmYXVsdDtcbiRwaW5rLWxpZ2h0ICAgOiBjb2xvdXIubGlnaHRlbigkcGluaywgJF9saWdodG5lc3MpICFkZWZhdWx0O1xuJHBpbmstZGFyayAgICA6IGNvbG91ci5kYXJrZW4oJHBpbmssICRfZGFya25lc3MpICFkZWZhdWx0O1xuXG4kcHVycGxlICAgICAgIDogIzYxM0Q1QSAhZGVmYXVsdDtcbiRwdXJwbGUtbGlnaHQgOiBjb2xvdXIubGlnaHRlbigkcHVycGxlLCAkX2xpZ2h0bmVzcykgIWRlZmF1bHQ7XG4kcHVycGxlLWRhcmsgIDogY29sb3VyLmRhcmtlbigkcHVycGxlLCAkX2RhcmtuZXNzKSAhZGVmYXVsdDtcblxuJGdyZXkgICAgICAgICA6ICM3ODc4NzggIWRlZmF1bHQ7XG4kZ3JleS1saWdodCAgIDogY29sb3VyLmxpZ2h0ZW4oJGdyZXksICRfbGlnaHRuZXNzKSAhZGVmYXVsdDtcbiRncmV5LWRhcmsgICAgOiBjb2xvdXIuZGFya2VuKCRncmV5LCAkX2RhcmtuZXNzKSAhZGVmYXVsdDtcblxuJGJyb3duICAgICAgICA6ICM3NzRGMzggIWRlZmF1bHQ7XG4kYnJvd24tbGlnaHQgIDogY29sb3VyLmxpZ2h0ZW4oJGJyb3duLCAkX2xpZ2h0bmVzcykgIWRlZmF1bHQ7XG4kYnJvd24tZGFyayAgIDogY29sb3VyLmRhcmtlbigkYnJvd24sICRfZGFya25lc3MpICFkZWZhdWx0O1xuXG4kd2hpdGUgICAgICAgIDogI0ZGRkZGRiAhZGVmYXVsdCA7XG4kd2hpdGUtZGFyayAgIDogY29sb3VyLmxpZ2h0ZW4oJHdoaXRlLCAkX2xpZ2h0bmVzcykgIWRlZmF1bHQ7XG5cbiRibGFjayAgICAgICAgOiAjMDAwMDAwICFkZWZhdWx0IDtcbiRibGFjay1saWdodCAgOiBjb2xvdXIuZGFya2VuKCRibGFjaywgJF9kYXJrbmVzcykgIWRlZmF1bHQ7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBTb2NpYWwgTWVkaWEgQ29sb3Vyc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8vIEBzZWUgaHR0cHM6Ly93d3cubG9ja2Vkb3duc2VvLmNvbS9zb2NpYWwtbWVkaWEtY29sb3JzL1xuXG4kZmFjZWJvb2s6ICAgICMxODc3ZjIgIWRlZmF1bHQ7XG4kdHdpdHRlcjogICAgICMxZGExZjIgIWRlZmF1bHQ7XG4kZ29vZ2xlOiAgICAgICM0Mjg1ZjQgIWRlZmF1bHQ7XG4keW91dHViZTogICAgICNmZjAwMDAgIWRlZmF1bHQ7XG4kbGlua2VkaW46ICAgICMwMDdiYjUgIWRlZmF1bHQ7XG4kaW5zdGFncmFtOiAgICNjMzJhYTMgIWRlZmF1bHQ7XG4kcGludGVyZXN0OiAgICNiZDA4MWMgIWRlZmF1bHQ7XG4kZGFpbHltb3Rpb246ICMwMDY2REMgIWRlZmF1bHQ7XG4kc25hcGNoYXQ6ICAgICNmZmZjMDAgIWRlZmF1bHQ7XG4kZmxpY2tyOiAgICAgICNmNDAwODMgIWRlZmF1bHQ7XG4kdmltZW86ICAgICAgICMxYWI3ZWEgIWRlZmF1bHQ7XG4kdGh1bWJsZXI6ICAgICMzNTQ2NWQgIWRlZmF1bHQ7XG4kcmVkZGl0OiAgICAgICNmZjQ1MDAgIWRlZmF1bHQ7XG4kd2hhdHNhcHA6ICAgICMyNWQzNjYgIWRlZmF1bHQ7XG4kc2t5cGU6ICAgICAgICMwMGFmZjAgIWRlZmF1bHQ7XG4kZGlzY29yZDogICAgICM3Mjg5ZGEgIWRlZmF1bHQ7XG5cbiRzb2NpYWwtbWVkaWEgOiAoXG4gIGZhY2Vib29rOiAgICAgJGZhY2Vib29rLFxuICB0d2l0dGVyOiAgICAgICR0d2l0dGVyLFxuICBnb29nbGU6ICAgICAgICRnb29nbGUsXG4gIHlvdXR1YmU6ICAgICAgJHlvdXR1YmUsXG4gIGxpbmtlZGluOiAgICAgJGxpbmtlZGluLFxuICBpbnN0YWdyYW06ICAgICRpbnN0YWdyYW0sXG4gIHBpbnRlcmVzdDogICAgJHBpbnRlcmVzdCxcbiAgZGFpbHltb3Rpb246ICAkZGFpbHltb3Rpb24sXG4gIHNuYXBjaGF0OiAgICAgJHNuYXBjaGF0LFxuICBmbGlja3I6ICAgICAgICRmbGlja3IsXG4gIHZpbWVvOiAgICAgICAgJHZpbWVvLFxuICB0aHVtYmxlcjogICAgICR0aHVtYmxlcixcbiAgcmVkZGl0OiAgICAgICAkcmVkZGl0LFxuICB3aGF0c2FwcDogICAgICR3aGF0c2FwcCxcbiAgc2t5cGU6ICAgICAgICAkc2t5cGUsXG4gIGRpc2NvcmQ6ICAgICAgJGRpc2NvcmRcbik7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBPdGhlciBDb2xvdXJzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4keWVsbG86ICNGRkNCMDggIWRlZmF1bHQ7XG5cbi8vLyBIYW5kbGVzIHRoZSBjdXJzb3Igc2VsZWN0aW9uIGNvbG91clxuLy8vIEBzZWUgaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS9hbG1hbmFjL3NlbGVjdG9ycy9zL3NlbGVjdGlvbi9cblxuJGhpZ2hsaWdodDogI0IyRDNGQSAhZGVmYXVsdDsgXG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSGVhZGluZ3Ncbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkB1c2UgJ3Nhc3M6c3RyaW5nJztcbkB1c2UgJ3Nhc3M6bWFwJztcbkB1c2UgJ3Nhc3M6bWV0YSc7XG5AdXNlICdzYXNzOm1hdGgnO1xuQHVzZSAnLi9jb2xsZWN0aW9ucy9mb250JztcbkB1c2UgJy4vbW9kdWxlcy91bml0JztcblxuLy8gRGVmYXVsdCBIZWFkaW5nIFZhbHVlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJGgxIDogKFxuICAnZm9udC1zaXplJyAgIDogMy4wcmVtLFxuICAnbGluZS1oZWlnaHQnIDogMS4xXG4pICFkZWZhdWx0O1xuXG4kaDIgOiAoXG4gICdmb250LXNpemUnICAgOiAyLjVyZW0sXG4gICdsaW5lLWhlaWdodCcgOiAxLjNcbikgIWRlZmF1bHQ7XG5cbiRoMyA6IChcbiAgJ2ZvbnQtc2l6ZScgICA6IDIuMnJlbSxcbiAgJ2xpbmUtaGVpZ2h0JyA6IDEuNFxuKSAhZGVmYXVsdDtcblxuJGg0IDogKFxuICAnZm9udC1zaXplJyAgIDogMi4wcmVtLFxuICAnbGluZS1oZWlnaHQnIDogMS40XG4pICFkZWZhdWx0O1xuXG4kaDUgOiAoXG4gICdmb250LXNpemUnICAgOiAxLjhyZW0sXG4gICdsaW5lLWhlaWdodCcgOiAxLjRcbikgIWRlZmF1bHQ7XG5cbiRoNiA6IChcbiAgJ2ZvbnQtc2l6ZScgICA6IDEuNnJlbSxcbiAgJ2xpbmUtaGVpZ2h0JyA6IDEuNFxuKSAhZGVmYXVsdDtcblxuJGJhc2UgOiA2Mi41ICFkZWZhdWx0O1xuJHNjYWxlciA6IDEuNXZ3ICFkZWZhdWx0O1xuJGVuYWJsZS1jcm9wcGluZyA6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBGYWxsYmFjayBMaW5lLWhlaWdodHMgc2hvdWxkIHRoZXkgbm90IGhhdmUgYmVlbiBwYXNzZWQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AaWYgbm90IG1hcC5oYXMta2V5KCRoMSwgXCJsaW5lLWhlaWdodFwiKSB7ICRoMSA6IG1hcC5zZXQoJGgxLCAnbGluZS1oZWlnaHQnLCAxLjEpOyB9XG5AaWYgbm90IG1hcC5oYXMta2V5KCRoMiwgXCJsaW5lLWhlaWdodFwiKSB7ICRoMiA6IG1hcC5zZXQoJGgyLCAnbGluZS1oZWlnaHQnLCAxLjMpOyB9XG5AaWYgbm90IG1hcC5oYXMta2V5KCRoMywgXCJsaW5lLWhlaWdodFwiKSB7ICRoMyA6IG1hcC5zZXQoJGgzLCAnbGluZS1oZWlnaHQnLCAxLjQpOyB9XG5AaWYgbm90IG1hcC5oYXMta2V5KCRoNCwgXCJsaW5lLWhlaWdodFwiKSB7ICRoNCA6IG1hcC5zZXQoJGg0LCAnbGluZS1oZWlnaHQnLCAxLjQpOyB9XG5AaWYgbm90IG1hcC5oYXMta2V5KCRoNSwgXCJsaW5lLWhlaWdodFwiKSB7ICRoNSA6IG1hcC5zZXQoJGg1LCAnbGluZS1oZWlnaHQnLCAxLjQpOyB9XG5AaWYgbm90IG1hcC5oYXMta2V5KCRoNiwgXCJsaW5lLWhlaWdodFwiKSB7ICRoNiA6IG1hcC5zZXQoJGg2LCAnbGluZS1oZWlnaHQnLCAxLjQpOyB9XG5cbi8vIERlZmluZSB0aGUgdmFyaWFibGVzIHNvIHRoZXkgYXJlIHN0aWxsIGFjY2VzaWJsZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRoMS1mb250LXNpemUgICAgIDogbWFwLWdldCgkaDEsICdmb250LXNpemUnKTtcbiRoMS1saW5lLWhlaWdodCAgIDogbWFwLWdldCgkaDEsICdsaW5lLWhlaWdodCcpO1xuJGgxLWZvbnQtc2l6ZS1taW4gOiBpZihtYXAuaGFzLWtleSgkaDEsIFwiZm9udC1zaXplLW1pblwiKSwgbWFwLWdldCgkaDEsIFwiZm9udC1zaXplLW1pblwiKSwgZmFsc2UpO1xuJGgxLXNjYWxlciAgICAgICAgOiBpZihtYXAuaGFzLWtleSgkaDEsIFwic2NhbGVyXCIpLCBtYXAtZ2V0KCRoMSwgXCJzY2FsZXJcIiksICRzY2FsZXIpO1xuXG4kaDItZm9udC1zaXplICAgICA6IG1hcC1nZXQoJGgyLCAnZm9udC1zaXplJyk7XG4kaDItbGluZS1oZWlnaHQgICA6IG1hcC1nZXQoJGgyLCAnbGluZS1oZWlnaHQnKTtcbiRoMi1mb250LXNpemUtbWluIDogaWYobWFwLmhhcy1rZXkoJGgyLCBcImZvbnQtc2l6ZS1taW5cIiksIG1hcC1nZXQoJGgyLCBcImZvbnQtc2l6ZS1taW5cIiksIGZhbHNlKTtcbiRoMi1zY2FsZXIgICAgICAgIDogaWYobWFwLmhhcy1rZXkoJGgyLCBcInNjYWxlclwiKSwgbWFwLWdldCgkaDIsIFwic2NhbGVyXCIpLCAkc2NhbGVyKTtcblxuJGgzLWZvbnQtc2l6ZSAgICAgOiBtYXAtZ2V0KCRoMywgJ2ZvbnQtc2l6ZScpO1xuJGgzLWxpbmUtaGVpZ2h0ICAgOiBtYXAtZ2V0KCRoMywgJ2xpbmUtaGVpZ2h0Jyk7XG4kaDMtZm9udC1zaXplLW1pbiA6IGlmKG1hcC5oYXMta2V5KCRoMywgXCJmb250LXNpemUtbWluXCIpLCBtYXAtZ2V0KCRoMywgXCJmb250LXNpemUtbWluXCIpLCBmYWxzZSk7XG4kaDMtc2NhbGVyICAgICAgICA6IGlmKG1hcC5oYXMta2V5KCRoMywgXCJzY2FsZXJcIiksIG1hcC1nZXQoJGgzLCBcInNjYWxlclwiKSwgJHNjYWxlcik7XG5cbiRoNC1mb250LXNpemUgICAgIDogbWFwLWdldCgkaDQsICdmb250LXNpemUnKTtcbiRoNC1saW5lLWhlaWdodCAgIDogbWFwLWdldCgkaDQsICdsaW5lLWhlaWdodCcpO1xuJGg0LWZvbnQtc2l6ZS1taW4gOiBpZihtYXAuaGFzLWtleSgkaDQsIFwiZm9udC1zaXplLW1pblwiKSwgbWFwLWdldCgkaDQsIFwiZm9udC1zaXplLW1pblwiKSwgZmFsc2UpO1xuJGg0LXNjYWxlciAgICAgICAgOiBpZihtYXAuaGFzLWtleSgkaDQsIFwic2NhbGVyXCIpLCBtYXAtZ2V0KCRoNCwgXCJzY2FsZXJcIiksICRzY2FsZXIpO1xuXG4kaDUtZm9udC1zaXplICAgICA6IG1hcC1nZXQoJGg1LCAnZm9udC1zaXplJyk7XG4kaDUtbGluZS1oZWlnaHQgICA6IG1hcC1nZXQoJGg1LCAnbGluZS1oZWlnaHQnKTtcbiRoNS1mb250LXNpemUtbWluIDogaWYobWFwLmhhcy1rZXkoJGg1LCBcImZvbnQtc2l6ZS1taW5cIiksIG1hcC1nZXQoJGg1LCBcImZvbnQtc2l6ZS1taW5cIiksIGZhbHNlKTtcbiRoNS1zY2FsZXIgICAgICAgIDogaWYobWFwLmhhcy1rZXkoJGg1LCBcInNjYWxlclwiKSwgbWFwLWdldCgkaDUsIFwic2NhbGVyXCIpLCAkc2NhbGVyKTtcblxuJGg2LWZvbnQtc2l6ZSAgICAgOiBtYXAtZ2V0KCRoNiwgJ2ZvbnQtc2l6ZScpO1xuJGg2LWxpbmUtaGVpZ2h0ICAgOiBtYXAtZ2V0KCRoNiwgJ2xpbmUtaGVpZ2h0Jyk7XG4kaDYtZm9udC1zaXplLW1pbiA6IGlmKG1hcC5oYXMta2V5KCRoNiwgXCJmb250LXNpemUtbWluXCIpLCBtYXAtZ2V0KCRoNiwgXCJmb250LXNpemUtbWluXCIpLCBmYWxzZSk7XG4kaDYtc2NhbGVyICAgICAgICA6IGlmKG1hcC5oYXMta2V5KCRoNiwgXCJzY2FsZXJcIiksIG1hcC1nZXQoJGg2LCBcInNjYWxlclwiKSwgJHNjYWxlcik7XG5cbi8vIEhhbmRsZXMgQ3JvcHMgc2hvdWxkIHRoZXkgbm90IGhhdmUgYmVlbiBwYXNzZWQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRfaDEtY3JvcC10b3AgICAgOiBpZihtYXAuaGFzLWtleSgkaDEsIFwiY3JvcC10b3BcIiksIG1hcC1nZXQoJGgxLCBcImNyb3AtdG9wXCIpLCBmYWxzZSk7XG4kX2gyLWNyb3AtdG9wICAgIDogaWYobWFwLmhhcy1rZXkoJGgyLCBcImNyb3AtdG9wXCIpLCBtYXAtZ2V0KCRoMiwgXCJjcm9wLXRvcFwiKSwgZmFsc2UpO1xuJF9oMy1jcm9wLXRvcCAgICA6IGlmKG1hcC5oYXMta2V5KCRoMywgXCJjcm9wLXRvcFwiKSwgbWFwLWdldCgkaDMsIFwiY3JvcC10b3BcIiksIGZhbHNlKTtcbiRfaDQtY3JvcC10b3AgICAgOiBpZihtYXAuaGFzLWtleSgkaDQsIFwiY3JvcC10b3BcIiksIG1hcC1nZXQoJGg0LCBcImNyb3AtdG9wXCIpLCBmYWxzZSk7XG4kX2g1LWNyb3AtdG9wICAgIDogaWYobWFwLmhhcy1rZXkoJGg1LCBcImNyb3AtdG9wXCIpLCBtYXAtZ2V0KCRoNSwgXCJjcm9wLXRvcFwiKSwgZmFsc2UpO1xuJF9oNi1jcm9wLXRvcCAgICA6IGlmKG1hcC5oYXMta2V5KCRoNiwgXCJjcm9wLXRvcFwiKSwgbWFwLWdldCgkaDYsIFwiY3JvcC10b3BcIiksIGZhbHNlKTtcblxuJF9oMS1jcm9wLWJvdHRvbSA6IGlmKG1hcC5oYXMta2V5KCRoMSwgXCJjcm9wLWJvdHRvbVwiKSwgbWFwLWdldCgkaDEsIFwiY3JvcC1ib3R0b21cIiksIGZhbHNlKTtcbiRfaDItY3JvcC1ib3R0b20gOiBpZihtYXAuaGFzLWtleSgkaDIsIFwiY3JvcC1ib3R0b21cIiksIG1hcC1nZXQoJGgyLCBcImNyb3AtYm90dG9tXCIpLCBmYWxzZSk7XG4kX2gzLWNyb3AtYm90dG9tIDogaWYobWFwLmhhcy1rZXkoJGgzLCBcImNyb3AtYm90dG9tXCIpLCBtYXAtZ2V0KCRoMywgXCJjcm9wLWJvdHRvbVwiKSwgZmFsc2UpO1xuJF9oNC1jcm9wLWJvdHRvbSA6IGlmKG1hcC5oYXMta2V5KCRoNCwgXCJjcm9wLWJvdHRvbVwiKSwgbWFwLWdldCgkaDQsIFwiY3JvcC1ib3R0b21cIiksIGZhbHNlKTtcbiRfaDUtY3JvcC1ib3R0b20gOiBpZihtYXAuaGFzLWtleSgkaDUsIFwiY3JvcC1ib3R0b21cIiksIG1hcC1nZXQoJGg1LCBcImNyb3AtYm90dG9tXCIpLCBmYWxzZSk7XG4kX2g2LWNyb3AtYm90dG9tIDogaWYobWFwLmhhcy1rZXkoJGg2LCBcImNyb3AtYm90dG9tXCIpLCBtYXAtZ2V0KCRoNiwgXCJjcm9wLWJvdHRvbVwiKSwgZmFsc2UpO1xuXG5cbi8vIE1peGlucyBmb3IgZWFjaCBoZWFkaW5nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBtaXhpbiBfc2V0LWNyb3AoJGZvbnQtc2l6ZSwgJGxpbmUtaGVpZ2h0LCAkY3JvcCkge1xuXG4gIEBpZiAobWV0YS50eXBlLW9mKCRjcm9wKSA9PSAnbWFwJykge1xuXG4gICAgJGZvbnQtc2l6ZSAgIDogdW5pdC5zdHJpcCgkZm9udC1zaXplKSAqIDEwO1xuICAgICRsaW5lLWhlaWdodCA6IHVuaXQuc3RyaXAoJGxpbmUtaGVpZ2h0KTtcbiAgICAkdG9wICAgICAgICAgOiBpZihtYXAuaGFzLWtleSgkY3JvcCwgXCJ0b3BcIiksIHVuaXQuc3RyaXAobWFwLmdldCgkY3JvcCwgXCJ0b3BcIikpLCAwKTtcbiAgICAkYm90dG9tICAgICAgOiBpZihtYXAuaGFzLWtleSgkY3JvcCwgXCJib3R0b21cIiksIHVuaXQuc3RyaXAobWFwLmdldCgkY3JvcCwgXCJib3R0b21cIikpLCAwKTtcblxuICAgIEBpbmNsdWRlIGZvbnQuY3JvcCgkZm9udC1zaXplLCAkbGluZS1oZWlnaHQsICR0b3AsICRib3R0b20pO1xuXG4gIH1cblxufVxuXG5AbWl4aW4gaDEoJGZvbnQtc2l6ZS1vbmx5IDogZmFsc2UsICRjcm9wIDogJGVuYWJsZS1jcm9wcGluZykge1xuXG4gIGZvbnQtc2l6ZSA6IGZvbnQuc2l6ZSgkaDEtZm9udC1zaXplKTtcblxuICBAaWYgKCAkaDEtZm9udC1zaXplLW1pbiBhbmQgJGgxLWZvbnQtc2l6ZS1taW4gPCAkaDEtZm9udC1zaXplICkge1xuICAgIGZvbnQtc2l6ZSA6IGNsYW1wKCN7Zm9udC5zaXplKCRoMS1mb250LXNpemUtbWluKX0sICN7JGgxLXNjYWxlcn0sICN7Zm9udC5zaXplKCRoMS1mb250LXNpemUpfSk7XG4gIH1cblxuICBAaWYgbm90ICRmb250LXNpemUtb25seSB7IFxuXG4gICAgQGlmICggJGNyb3AgKSB7IFxuICAgICAgQGluY2x1ZGUgZm9udC5jcm9wKCRoMS1mb250LXNpemUsICRoMS1saW5lLWhlaWdodCwgJF9oMS1jcm9wLXRvcCwgJF9oMS1jcm9wLWJvdHRvbSApOyBcbiAgICB9IEBlbHNlIHtcbiAgICAgIGxpbmUtaGVpZ2h0IDogJGgxLWxpbmUtaGVpZ2h0OyBcbiAgICB9XG5cbiAgfVxuXG59XG5cbkBtaXhpbiBoMigkZm9udC1zaXplLW9ubHkgOiBmYWxzZSwgJGNyb3AgOiAkZW5hYmxlLWNyb3BwaW5nKSB7XG5cbiAgZm9udC1zaXplIDogZm9udC5zaXplKCRoMi1mb250LXNpemUpO1xuXG4gIEBpZiAoICRoMi1mb250LXNpemUtbWluIGFuZCAkaDItZm9udC1zaXplLW1pbiA8ICRoMi1mb250LXNpemUgKSB7XG4gICAgZm9udC1zaXplIDogY2xhbXAoI3tmb250LnNpemUoJGgyLWZvbnQtc2l6ZS1taW4pfSwgI3skaDItc2NhbGVyfSwgI3tmb250LnNpemUoJGgyLWZvbnQtc2l6ZSl9KTtcbiAgfVxuXG4gIEBpZiBub3QgJGZvbnQtc2l6ZS1vbmx5IHsgXG5cbiAgICBAaWYgKCAkY3JvcCApIHsgXG4gICAgICBAaW5jbHVkZSBmb250LmNyb3AoJGgyLWZvbnQtc2l6ZSwgJGgyLWxpbmUtaGVpZ2h0LCAkX2gyLWNyb3AtdG9wLCAkX2gyLWNyb3AtYm90dG9tICk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgbGluZS1oZWlnaHQgOiAkaDItbGluZS1oZWlnaHQ7IFxuICAgIH1cbiAgICBcbiAgfVxuXG59XG5cbkBtaXhpbiBoMygkZm9udC1zaXplLW9ubHkgOiBmYWxzZSwgJGNyb3AgOiAkZW5hYmxlLWNyb3BwaW5nKSB7XG5cbiAgZm9udC1zaXplIDogZm9udC5zaXplKCRoMy1mb250LXNpemUpO1xuXG4gIEBpZiAoICRoMy1mb250LXNpemUtbWluIGFuZCAkaDMtZm9udC1zaXplLW1pbiA8ICRoMy1mb250LXNpemUgKSB7XG4gICAgZm9udC1zaXplIDogY2xhbXAoI3tmb250LnNpemUoJGgzLWZvbnQtc2l6ZS1taW4pfSwgI3skaDMtc2NhbGVyfSwgI3tmb250LnNpemUoJGgzLWZvbnQtc2l6ZSl9KTtcbiAgfVxuXG4gIEBpZiBub3QgJGZvbnQtc2l6ZS1vbmx5IHsgXG5cbiAgICBAaWYgKCAkY3JvcCApIHsgXG4gICAgICBAaW5jbHVkZSBmb250LmNyb3AoJGgzLWZvbnQtc2l6ZSwgJGgzLWxpbmUtaGVpZ2h0LCAkX2gzLWNyb3AtdG9wLCAkX2gzLWNyb3AtYm90dG9tICk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgbGluZS1oZWlnaHQgOiAkaDMtbGluZS1oZWlnaHQ7IFxuICAgIH1cbiAgICBcbiAgfVxuXG59XG5cbkBtaXhpbiBoNCgkZm9udC1zaXplLW9ubHkgOiBmYWxzZSwgJGNyb3AgOiAkZW5hYmxlLWNyb3BwaW5nKSB7XG5cbiAgZm9udC1zaXplIDogZm9udC5zaXplKCRoNC1mb250LXNpemUpO1xuXG4gIEBpZiAoICRoNC1mb250LXNpemUtbWluIGFuZCAkaDQtZm9udC1zaXplLW1pbiA8ICRoNC1mb250LXNpemUgKSB7XG4gICAgZm9udC1zaXplIDogY2xhbXAoI3tmb250LnNpemUoJGg0LWZvbnQtc2l6ZS1taW4pfSwgI3skaDQtc2NhbGVyfSwgI3tmb250LnNpemUoJGg0LWZvbnQtc2l6ZSl9KTtcbiAgfVxuXG4gIEBpZiBub3QgJGZvbnQtc2l6ZS1vbmx5IHsgXG5cbiAgICBAaWYgKCAkY3JvcCApIHsgXG4gICAgICBAaW5jbHVkZSBmb250LmNyb3AoJGg0LWZvbnQtc2l6ZSwgJGg0LWxpbmUtaGVpZ2h0LCAkX2g0LWNyb3AtdG9wLCAkX2g0LWNyb3AtYm90dG9tICk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgbGluZS1oZWlnaHQgOiAkaDQtbGluZS1oZWlnaHQ7IFxuICAgIH1cbiAgICBcbiAgfVxuXG59XG5cbkBtaXhpbiBoNSgkZm9udC1zaXplLW9ubHkgOiBmYWxzZSwgJGNyb3AgOiAkZW5hYmxlLWNyb3BwaW5nKSB7XG5cbiAgZm9udC1zaXplIDogZm9udC5zaXplKCRoNS1mb250LXNpemUpO1xuXG4gIEBpZiAoICRoNS1mb250LXNpemUtbWluIGFuZCAkaDUtZm9udC1zaXplLW1pbiA8ICRoNS1mb250LXNpemUgKSB7XG4gICAgZm9udC1zaXplIDogY2xhbXAoI3tmb250LnNpemUoJGg1LWZvbnQtc2l6ZS1taW4pfSwgI3skaDUtc2NhbGVyfSwgI3tmb250LnNpemUoJGg1LWZvbnQtc2l6ZSl9KTtcbiAgfVxuXG4gIEBpZiBub3QgJGZvbnQtc2l6ZS1vbmx5IHsgXG5cbiAgICBAaWYgKCAkY3JvcCApIHsgXG4gICAgICBAaW5jbHVkZSBmb250LmNyb3AoJGg1LWZvbnQtc2l6ZSwgJGg1LWxpbmUtaGVpZ2h0LCAkX2g1LWNyb3AtdG9wLCAkX2g1LWNyb3AtYm90dG9tICk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgbGluZS1oZWlnaHQgOiAkaDUtbGluZS1oZWlnaHQ7IFxuICAgIH1cbiAgICBcbiAgfVxuXG59XG5cbkBtaXhpbiBoNigkZm9udC1zaXplLW9ubHkgOiBmYWxzZSwgJGNyb3AgOiAkZW5hYmxlLWNyb3BwaW5nKSB7XG5cbiAgZm9udC1zaXplIDogZm9udC5zaXplKCRoNi1mb250LXNpemUpO1xuXG4gIEBpZiAoICRoNi1mb250LXNpemUtbWluIGFuZCAkaDYtZm9udC1zaXplLW1pbiA8ICRoNi1mb250LXNpemUgKSB7XG4gICAgZm9udC1zaXplIDogY2xhbXAoI3tmb250LnNpemUoJGg2LWZvbnQtc2l6ZS1taW4pfSwgI3skaDYtc2NhbGVyfSwgI3tmb250LnNpemUoJGg2LWZvbnQtc2l6ZSl9KTtcbiAgfVxuXG4gIEBpZiBub3QgJGZvbnQtc2l6ZS1vbmx5IHsgXG5cbiAgICBAaWYgKCAkY3JvcCApIHsgXG4gICAgICBAaW5jbHVkZSBmb250LmNyb3AyKCRoNi1mb250LXNpemUsICRoNi1saW5lLWhlaWdodCwgJF9oNi1jcm9wLXRvcCwgJF9oNi1jcm9wLWJvdHRvbSApOyBcbiAgICB9IEBlbHNlIHtcbiAgICAgIGxpbmUtaGVpZ2h0IDogJGg2LWxpbmUtaGVpZ2h0OyBcbiAgICB9XG4gICAgXG4gIH1cblxufVxuXG5cbiJdfQ== */