@media (min-width: 900px) {
  body header {
    min-height: 350px;
    width: 100%;
  }
}
body navigation-bar {
  background-color: initial !important;
}
body navigation-bar::before {
  display: none;
}
body > gallery-container {
  z-index: -1;
  grid-row: 1/span 2;
  grid-column: 1/-1;
  --background-theme-one: #1e1c1c;
  --background-theme-two: var(--primary, #131f6b);
}
body > gallery-container .slide.image {
  filter: saturate(0.4);
}
body > gallery-container::after {
  content: "";
  position: absolute;
  pointer-events: none;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(to bottom, var(--background-theme-one) 5%, rgba(19, 31, 107, 0.5), var(--background-theme-two) 80%);
}

.header {
  display: flex;
  flex-direction: column;
  place-items: center;
  place-content: center;
  place-self: center;
  max-width: 1400px;
  text-align: center;
  align-self: flex-start;
  position: relative;
  --translate-y: -20px;
}
@media (max-width: 900px) {
  .header {
    padding-bottom: 0;
  }
}
@media (min-width: 901px) {
  .header .heading,
  .header .sub-heading {
    max-width: 50%;
    margin: 0 auto;
  }
}
.header .heading {
  color: white;
}
.header .sub-heading {
  font-size: 18px;
}
.header .sub-heading,
.header tag-line {
  margin: var(--gutter1) auto;
}
.header tag-line {
  padding-bottom: 10px;
}
@media (max-width: 400px) {
  .header tag-line {
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--gap);
  }
}
.header .heading,
.header .sub-heading,
.header search-bar {
  opacity: 0;
  transform: translateY(var(--translate-y));
}
.header.in-view .heading,
.header.in-view .sub-heading,
.header.in-view search-bar {
  --translate-y: 0;
  opacity: 1;
  transition: opacity 1.2s cubic-bezier(0.165, 0.84, 0.44, 1) 0.2s, transform 1.2s cubic-bezier(0.165, 0.84, 0.44, 1) 0.2s;
}
.header.in-view .sub-heading {
  transition-delay: 0.4s, 0.4s;
}
.header.in-view search-bar {
  transition-delay: 0.6s, 0.6s;
}
.header .header-grid {
  display: grid;
  grid-template-columns: 2fr 1fr;
  margin-bottom: var(--spacer0);
  align-items: center;
}
.header .header-grid .heading,
.header .header-grid .sub-heading {
  max-width: 75%;
  text-align: left;
  margin-left: 0;
}
@media (max-width: 768px) {
  .header .header-grid {
    grid-template-columns: 1fr;
  }
  .header .header-grid .heading,
  .header .header-grid .sub-heading {
    text-align: center;
    margin-left: auto;
    margin-right: auto;
  }
}

.iso-banner {
  grid-row: 3;
  width: 100vw;
  left: calc(-50vw + 50%);
  background-color: #76bb28;
  text-align: center;
  color: white;
  padding-top: calc(var(--gap) * 2);
  padding-bottom: calc(var(--gap) * 2);
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.iso-banner h2 {
  margin-bottom: var(--gap);
  color: white;
}
.iso-banner h2 span {
  display: block;
  font-size: 16px;
  font-weight: 300;
  padding: 0 calc(var(--gap) * 2);
  font-family: "montserrat", sans-serif;
}
.iso-banner ~ main {
  --row-main: 4;
}
@media (min-width: 768px) {
  .iso-banner {
    position: absolute;
    height: 180px;
    width: auto;
    aspect-ratio: 1;
    border-radius: 50%;
    top: 20vh;
    right: 10vw;
    left: unset;
    transform: rotate(15deg);
    grid-row: unset;
    padding: var(--gap) calc(var(--gap) * 0.5);
  }
  .iso-banner h2 {
    margin-bottom: 0;
  }
  .iso-banner ~ main {
    --row-main: 3;
  }
}

.ecovadis-top-banner {
  display: none;
  position: absolute;
  height: 150px;
  width: auto;
  aspect-ratio: 1;
  border-radius: 50%;
  top: 2em;
  left: 0;
}
.ecovadis-top-banner img {
  width: 100%;
}
@media (min-width: 901px) {
  .ecovadis-top-banner {
    display: block;
  }
}

navigation-bar {
  background-color: initial;
  background: initial;
  align-self: flex-start;
  padding-top: var(--spacer0);
  padding-bottom: var(--spacer0);
}
navigation-bar::before {
  display: none;
}

#hero.promos {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  width: 100vw;
  margin-left: -50vw;
  left: 50%;
  box-shadow: initial;
  display: flex;
  flex-wrap: wrap;
}
#hero.promos .promo {
  flex: 1 1 410px;
  min-height: auto;
  padding-block: var(--spacer1);
  height: auto !important;
}
#hero.promos .promo tag-line {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}
#hero.promos .promo picture {
  min-width: auto;
}
#hero.promos .promo .text * {
  text-wrap: balance;
}
#hero.promos > .image,
#hero.promos .simpleParallax {
  position: absolute;
  max-height: 100vh;
  height: 100%;
  width: 100%;
  top: 0;
}
#hero.promos .quote {
  --quote-icon-size: 40px;
  position: relative;
  grid-row: 1;
  background-color: rgba(19, 31, 107, 0.9);
  border-radius: 0;
  border: none;
  height: -moz-fit-content;
  height: fit-content;
  padding: calc(var(--spacer1) + var(--quote-icon-size)) var(--gutter4) var(--spacer1) var(--gutter4);
  display: flex;
  flex-direction: column;
}
#hero.promos .quote blockquote {
  color: white;
}
#hero.promos .quote blockquote::before, #hero.promos .quote blockquote::after {
  opacity: 0.2;
  width: var(--quote-icon-size);
  height: var(--quote-icon-size);
  top: calc(-1 * var(--quote-icon-size));
}
#hero.promos .quote blockquote::after {
  display: none;
}
#hero.promos .quote img {
  margin-top: var(--gap);
  max-width: 130px;
}
#hero.promos .quote figcaption {
  color: #df3035;
  width: 100%;
  text-transform: uppercase;
}
#hero.promos .quote figcaption cite {
  font-style: normal;
  font-family: lato, sans-serif;
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
#hero.promos .quote figcaption cite svg {
  display: none;
}
#hero.promos .quote figcaption cite::before {
  content: initial;
}
@media (hover: hover) {
  #hero.promos .quote figcaption cite a:hover {
    color: white;
  }
}
#hero.promos .metal-links {
  grid-row: 1/-1;
  padding: var(--gutter2);
  display: grid;
  grid-gap: 0 var(--gutter1);
  grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
}
@media (max-width: 480px) {
  #hero.promos .metal-links {
    grid-template-columns: 1fr;
  }
}
#hero.promos .metal-links .text {
  grid-column: 1/-1;
}
#hero.promos .metal-links .text > h3 {
  font-size: 2em;
  line-height: 1.3;
  margin-bottom: calc(var(--gap) * 0.5);
  color: #131f6b;
}
#hero.promos .metal-links .text > h3 + p {
  color: #df3035;
  max-width: 600px;
  font-size: 1.0625em;
  line-height: 1.6;
}
#hero.promos .metal-links p.contains-button {
  margin-top: var(--gutter1);
  color: #131f6b;
  display: block;
  font-size: 1.0625em;
  line-height: 1.6;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
#hero.promos .metal-links p.contains-button .button {
  width: -moz-fit-content;
  width: fit-content;
  white-space: nowrap;
}
#hero.promos .metal-links .list-dropdowns {
  margin-top: var(--gutter1);
}
#hero.promos .metal-links .list-dropdowns .heading {
  font-size: 1.5625em;
  line-height: 1.6;
  text-transform: uppercase;
  color: #3d3f7f;
}
#hero.promos .metal-links button-container {
  margin-top: var(--spacer0);
  grid-column: 1/-1;
}
@media (min-width: 1681px) {
  #hero.promos .quote {
    padding-left: calc(var(--computed-gutter) + var(--gutter6));
  }
}
@media (max-width: 1400px) {
  #hero.promos .quote {
    --quote-icon-size: 20px;
    padding-left: var(--gutter2);
    padding-right: var(--gutter2);
  }
}
@media (max-width: 1120px) {
  #hero.promos {
    grid-template-rows: auto;
    grid-gap: 0;
  }
  #hero.promos .quote {
    align-items: center;
    text-align: center;
    position: relative;
  }
  #hero.promos .quote blockquote {
    position: relative;
    max-width: 700px;
  }
  #hero.promos .quote blockquote::before, #hero.promos .quote blockquote::after {
    padding: 0;
    width: 20px;
    height: 20px;
    position: absolute;
  }
  #hero.promos .quote blockquote::before {
    left: calc(var(--gap) * 0.5);
  }
  #hero.promos .quote blockquote::after {
    right: calc(var(--gap) * 0.5);
    display: block;
  }
  #hero.promos .metal-links button-container {
    justify-content: center;
  }
}

markets-summary {
  margin-top: 1px;
  box-shadow: 0px -1px var(--border-top-colour, #46528a);
}
markets-summary::before {
  box-shadow: inherit;
  border: initial;
}
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhZ2VzL2hvbWUuc2NzcyIsInBhZ2VzL2hvbWUuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0Bkb2dnaXN0eWxlL3Nhc3MvbGlicmFyeS9zcmMvaGVscGVycy9fYnJlYWsuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9AZG9nZ2lzdHlsZS9zYXNzL2xpYnJhcnkvc3JjL2NyZWF0ZS9fdW5pdHMuc2NzcyIsIl92YXJpYWJsZXMvY29sb3Vycy5zY3NzIiwiX3ZhcmlhYmxlcy9mb250cy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0Bkb2dnaXN0eWxlL3Nhc3MvbGlicmFyeS9zcmMvY29sbGVjdGlvbnMvc3R5bGluZy9faG92ZXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9AZG9nZ2lzdHlsZS9zYXNzL2xpYnJhcnkvc3JjL2NyZWF0ZS9faGVhZGluZ3Muc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJSTtFQURGO0lBRUksaUJBQUE7SUFDQSxXQUFBO0VDRko7QUFDRjtBREtFO0VBQ0Usb0NBQUE7QUNISjtBRElJO0VBQ0UsYUFBQTtBQ0ZOO0FETUU7RUFDRSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSxpQkFBQTtFQUVBLCtCQUFBO0VBQ0EsK0NBQUE7QUNMSjtBRFFNO0VBQ0UscUJBQUE7QUNOUjtBRFVJO0VBQ0UsV0FBQTtFQUNBLGtCQUFBO0VBQ0Esb0JBQUE7RUFDQSxNQUFBO0VBQ0EsT0FBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsK0hBQUE7QUNSTjs7QURhQTtFQUNFLGFBQUE7RUFDQSxzQkFBQTtFQUNBLG1CQUFBO0VBQ0EscUJBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxzQkFBQTtFQUNBLGtCQUFBO0VBc0NBLG9CQUFBO0FDL0NGO0FDakNFO0VGaUNGO0lBWUksaUJBQUE7RUNSRjtBQUNGO0FDNUNFO0VGdURFOztJQUVFLGNBQUE7SUFDQSxjQUFBO0VDUko7QUFDRjtBRFdFO0VBQ0UsWUFBQTtB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O0VGc1VOO0VEK0JNO0lBQ0UsNkJHdFdGO0lIdVdFLGNBQUE7RUM3QlI7RURpQ0U7SUFDRSx1QkFBQTtFQy9CSjtBQUNGOztBRG1DQTtFQUNFLGVBQUE7RUFDQSxzREFBQTtBQ2hDRjtBRGlDRTtFQUNFLG1CQUFBO0VBQ0EsZUFBQTtBQy9CSiIsImZpbGUiOiJwYWdlcy9ob21lLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJ19tb2R1bGVzJyBhcyAqO1xuXG5ib2R5IHtcbiAgaGVhZGVyIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogOTAwcHgpIHtcbiAgICAgIG1pbi1oZWlnaHQ6IDM1MHB4O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgbmF2aWdhdGlvbi1iYXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWwgIWltcG9ydGFudDtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICA+IGdhbGxlcnktY29udGFpbmVyIHtcbiAgICB6LWluZGV4OiAtMTtcbiAgICBncmlkLXJvdzogMSAvIHNwYW4gMjtcbiAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuXG4gICAgLS1iYWNrZ3JvdW5kLXRoZW1lLW9uZTogI3skYmxhY2t9O1xuICAgIC0tYmFja2dyb3VuZC10aGVtZS10d286ICN7JHByaW1hcnl9O1xuXG4gICAgLnNsaWRlIHtcbiAgICAgICYuaW1hZ2Uge1xuICAgICAgICBmaWx0ZXI6IHNhdHVyYXRlKDAuNCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHZhcigtLWJhY2tncm91bmQtdGhlbWUtb25lKSA1JSwgcmdiYSgxOSwgMzEsIDEwNywgMC41KSwgdmFyKC0tYmFja2dyb3VuZC10aGVtZS10d28pIDgwJSk7XG4gICAgfVxuICB9XG59XG5cbi5oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBwbGFjZS1pdGVtczogY2VudGVyO1xuICBwbGFjZS1jb250ZW50OiBjZW50ZXI7XG4gIHBsYWNlLXNlbGY6IGNlbnRlcjtcbiAgbWF4LXdpZHRoOiAxNDAwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIEBpbmNsdWRlIGJyZWFrLWluKDkwMCkge1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWstb3V0KDkwMCkge1xuICAgIC5oZWFkaW5nLFxuICAgIC5zdWItaGVhZGluZyB7XG4gICAgICBtYXgtd2lkdGg6IDUwJTtcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIH1cbiAgfVxuXG4gIC5oZWFkaW5nIHtcbiAgICBjb2xvcjogd2hpdGU7XG4gIH1cblxuICAuc3ViLWhlYWRpbmcge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgfVxuXG4gIC5zdWItaGVhZGluZyxcbiAgdGFnLWxpbmUge1xuICAgIG1hcmdpbjogJGd1dHRlciBhdXRvO1xuICB9XG5cbiAgdGFnLWxpbmUge1xuICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICAgIEBpbmNsdWRlIGJyZWFrLWluKDQwMHB4KSB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGdhcDogJGdhcDtcbiAgICB9XG4gIH1cblxuICAvLyBUcmFuc2l0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAtLXRyYW5zbGF0ZS15OiAtMjBweDtcblxuICAuaGVhZGluZyxcbiAgLnN1Yi1oZWFkaW5nLFxuICBzZWFyY2gtYmFyIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSh2YXIoLS10cmFuc2xhdGUteSkpO1xuICB9XG5cbiAgJi5pbi12aWV3IHtcbiAgICAuaGVhZGluZyxcbiAgICAuc3ViLWhlYWRpbmcsXG4gICAgc2VhcmNoLWJhciB7XG4gICAgICAtLXRyYW5zbGF0ZS15OiAwO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMS4ycyAkZWFzZS1vdXQtcXVhcnQgMC4ycywgdHJhbnNmb3JtIDEuMnMgJGVhc2Utb3V0LXF1YXJ0IDAuMnM7XG4gICAgfVxuICAgIC5zdWItaGVhZGluZyB7XG4gICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjRzLCAwLjRzO1xuICAgIH1cbiAgICBzZWFyY2gtYmFyIHtcbiAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuNnMsIDAuNnM7XG4gICAgfVxuICB9XG5cbiAgLmhlYWRlci1ncmlkIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMmZyIDFmcjtcbiAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2VyMDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIC5oZWFkaW5nLFxuICAgIC5zdWItaGVhZGluZyB7XG4gICAgICBtYXgtd2lkdGg6IDc1JTtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICAgIC5oZWFkaW5nLFxuICAgICAgLnN1Yi1oZWFkaW5nIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uaXNvLWJhbm5lciB7XG4gIGdyaWQtcm93OiAzO1xuICB3aWR0aDogMTAwdnc7XG4gIGxlZnQ6IGNhbGMoLTUwdncgKyA1MCUpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JlZW4yO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZy10b3A6ICRnYXAyO1xuICBwYWRkaW5nLWJvdHRvbTogJGdhcDI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGgyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBzcGFuIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgIHBhZGRpbmc6IDAgJGdhcDI7XG4gICAgICBmb250LWZhbWlseTogJ21vbnRzZXJyYXQnLCBzYW5zLXNlcmlmO1xuICAgIH1cbiAgfVxuXG4gICYgfiBtYWluIHtcbiAgICAtLXJvdy1tYWluOiA0O1xuICB9XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGhlaWdodDogMTgwcHg7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgYXNwZWN0LXJhdGlvOiAxO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB0b3A6IDIwdmg7XG4gICAgcmlnaHQ6IDEwdnc7XG4gICAgbGVmdDogdW5zZXQ7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTVkZWcpO1xuICAgIGdyaWQtcm93OiB1bnNldDtcbiAgICBwYWRkaW5nOiAkZ2FwICRnYXAwO1xuICAgIGgyIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgJiB+IG1haW4ge1xuICAgICAgLS1yb3ctbWFpbjogMztcbiAgICB9XG4gIH1cbn1cblxuLmVjb3ZhZGlzLXRvcC1iYW5uZXIge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGhlaWdodDogMTUwcHg7XG4gIHdpZHRoOiBhdXRvO1xuICBhc3BlY3QtcmF0aW86IDE7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgdG9wOiAyZW07XG4gIGxlZnQ6IDA7XG5cbiAgaW1nIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrLW91dCg5MDApIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG5uYXZpZ2F0aW9uLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7XG4gIGJhY2tncm91bmQ6IGluaXRpYWw7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gIHBhZGRpbmctdG9wOiAkc3BhY2VyMDtcbiAgcGFkZGluZy1ib3R0b206ICRzcGFjZXIwO1xuICAmOjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLy8gSGVybyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuI2hlcm8ucHJvbW9zIHtcbiAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcbiAgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgd2lkdGg6IDEwMHZ3O1xuICBtYXJnaW4tbGVmdDogLTUwdnc7XG4gIGxlZnQ6IDUwJTtcbiAgYm94LXNoYWRvdzogaW5pdGlhbDtcbiAgLy8gZ3JpZC10ZW1wbGF0ZS1yb3dzOiByZXBlYXQoMiwgMWZyKTtcbiAgLy8gZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxMDAlO1xuICAvLyBncmlkLWdhcDogMDtcbiAgLy8gb3ZlcmZsb3cteTogY2xpcDtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgLnByb21vIHtcbiAgICBmbGV4OiAxIDEgNDEwcHg7XG4gICAgbWluLWhlaWdodDogYXV0bztcbiAgICBwYWRkaW5nLWJsb2NrOiAkc3BhY2VyO1xuICAgIC8vIG1heC1oZWlnaHQ6IDUwMHB4O1xuICAgIC8vIGhlaWdodDogZml0LWNvbnRlbnQ7XG4gICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgdGFnLWxpbmUge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cbiAgICBwaWN0dXJlIHtcbiAgICAgIG1pbi13aWR0aDogYXV0bztcbiAgICB9XG4gICAgLnRleHQgKiB7XG4gICAgICB0ZXh0LXdyYXA6IGJhbGFuY2U7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWstb3V0KDc2OCkge1xuICAgIC8vIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gICAgLy8gZ3JpZC10ZW1wbGF0ZS1yb3dzOiAxMDAlO1xuICB9XG5cbiAgPiAuaW1hZ2UsXG4gIC5zaW1wbGVQYXJhbGxheCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIG1heC1oZWlnaHQ6IDEwMHZoO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0b3A6IDA7XG4gIH1cbiAgLnF1b3RlIHtcbiAgICAtLXF1b3RlLWljb24tc2l6ZTogNDBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZ3JpZC1yb3c6IDE7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkYmx1ZSwgMC45KTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBoZWlnaHQ6IGZpdC1jb250ZW50O1xuICAgIHBhZGRpbmc6IGNhbGMoI3skc3BhY2VyfSArIHZhcigtLXF1b3RlLWljb24tc2l6ZSkpICRndXR0ZXI0ICRzcGFjZXIgJGd1dHRlcjQ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgYmxvY2txdW90ZSB7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAmOjpiZWZvcmUsXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIG9wYWNpdHk6IDAuMjtcbiAgICAgICAgd2lkdGg6IHZhcigtLXF1b3RlLWljb24tc2l6ZSk7XG4gICAgICAgIGhlaWdodDogdmFyKC0tcXVvdGUtaWNvbi1zaXplKTtcbiAgICAgICAgdG9wOiBjYWxjKC0xICogdmFyKC0tcXVvdGUtaWNvbi1zaXplKSk7XG4gICAgICB9XG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICAgIGltZyB7XG4gICAgICBtYXJnaW4tdG9wOiAkZ2FwO1xuICAgICAgbWF4LXdpZHRoOiAxMzBweDtcbiAgICB9XG4gICAgZmlnY2FwdGlvbiB7XG4gICAgICBjb2xvcjogJHJlZDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGNpdGUge1xuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgIEBpbmNsdWRlIGZvbnQtbGF0byhib2xkKTtcbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgY29udGVudDogaW5pdGlhbDtcbiAgICAgICAgfVxuICAgICAgICBhIHtcbiAgICAgICAgICBAaW5jbHVkZSBob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1ldGFsLWxpbmtzIHtcbiAgICBncmlkLXJvdzogMSAvIC0xO1xuICAgIHBhZGRpbmc6ICRndXR0ZXIyO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC1nYXA6IDAgJGd1dHRlcjtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDM0MHB4LCAxZnIpKTtcblxuICAgIEBpbmNsdWRlIGJyZWFrLWluKHNtYWxsKSB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICB9XG5cbiAgICAudGV4dCB7XG4gICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICAgICAgPiBoMyB7XG4gICAgICAgIEBpbmNsdWRlIGhlYWRpbmctaDI7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRnYXAwO1xuICAgICAgICBjb2xvcjogJGJsdWU7XG4gICAgICAgICsgcCB7XG4gICAgICAgICAgY29sb3I6ICRyZWQ7XG4gICAgICAgICAgbWF4LXdpZHRoOiA2MDBweDtcbiAgICAgICAgICBAaW5jbHVkZSBoZWFkaW5nLWg0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcC5jb250YWlucy1idXR0b24ge1xuICAgICAgbWFyZ2luLXRvcDogJGd1dHRlcjtcbiAgICAgIGNvbG9yOiAkYmx1ZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgQGluY2x1ZGUgaGVhZGluZy1oNDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAvLyBnYXA6JGdhcDAgJGdhcDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAuYnV0dG9uIHtcbiAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgfVxuICAgIH1cbiAgICAubGlzdC1kcm9wZG93bnMge1xuICAgICAgbWFyZ2luLXRvcDogJGd1dHRlcjtcbiAgICAgIC5oZWFkaW5nIHtcbiAgICAgICAgQGluY2x1ZGUgaGVhZGluZy1oMztcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgY29sb3I6ICRibHVlMztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBidXR0b24tY29udGFpbmVyIHtcbiAgICAgIG1hcmdpbi10b3A6ICRzcGFjZXIwO1xuICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgICB9XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWstb3V0KG1heCkge1xuICAgIC5xdW90ZSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IGNhbGModmFyKC0tY29tcHV0ZWQtZ3V0dGVyKSArICN7JGd1dHRlcjZ9KTtcbiAgICB9XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWstaW4obGFyZ2UpIHtcbiAgICAucXVvdGUge1xuICAgICAgLS1xdW90ZS1pY29uLXNpemU6IDIwcHg7XG4gICAgICBwYWRkaW5nLWxlZnQ6ICRndXR0ZXIyO1xuICAgICAgcGFkZGluZy1yaWdodDogJGd1dHRlcjI7XG4gICAgfVxuICB9XG4gIEBpbmNsdWRlIGJyZWFrLWluKG1lZGl1bSkge1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0bztcbiAgICBncmlkLWdhcDogMDtcbiAgICAucXVvdGUge1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgYmxvY2txdW90ZSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiA3MDBweDtcbiAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB9XG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgbGVmdDogJGdhcDA7XG4gICAgICAgIH1cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIHJpZ2h0OiAkZ2FwMDtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAubWV0YWwtbGlua3MgYnV0dG9uLWNvbnRhaW5lciB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG4gIH1cbn1cblxubWFya2V0cy1zdW1tYXJ5IHtcbiAgbWFyZ2luLXRvcDogMXB4O1xuICBib3gtc2hhZG93OiAwcHggLTFweCB2YXIoLS1ib3JkZXItdG9wLWNvbG91ciwgIzQ2NTI4YSk7XG4gICY6OmJlZm9yZSB7XG4gICAgYm94LXNoYWRvdzogaW5oZXJpdDtcbiAgICBib3JkZXI6IGluaXRpYWw7XG4gIH1cbn1cbiIsIkBtZWRpYSAobWluLXdpZHRoOiA5MDBweCkge1xuICBib2R5IGhlYWRlciB7XG4gICAgbWluLWhlaWdodDogMzUwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbmJvZHkgbmF2aWdhdGlvbi1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsICFpbXBvcnRhbnQ7XG59XG5ib2R5IG5hdmlnYXRpb24tYmFyOjpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuYm9keSA+IGdhbGxlcnktY29udGFpbmVyIHtcbiAgei1pbmRleDogLTE7XG4gIGdyaWQtcm93OiAxL3NwYW4gMjtcbiAgZ3JpZC1jb2x1bW46IDEvLTE7XG4gIC0tYmFja2dyb3VuZC10aGVtZS1vbmU6ICMxZTFjMWM7XG4gIC0tYmFja2dyb3VuZC10aGVtZS10d286IHZhcigtLXByaW1hcnksICMxMzFmNmIpO1xufVxuYm9keSA+IGdhbGxlcnktY29udGFpbmVyIC5zbGlkZS5pbWFnZSB7XG4gIGZpbHRlcjogc2F0dXJhdGUoMC40KTtcbn1cbmJvZHkgPiBnYWxsZXJ5LWNvbnRhaW5lcjo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHZhcigtLWJhY2tncm91bmQtdGhlbWUtb25lKSA1JSwgcmdiYSgxOSwgMzEsIDEwNywgMC41KSwgdmFyKC0tYmFja2dyb3VuZC10aGVtZS10d28pIDgwJSk7XG59XG5cbi5oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBwbGFjZS1pdGVtczogY2VudGVyO1xuICBwbGFjZS1jb250ZW50OiBjZW50ZXI7XG4gIHBsYWNlLXNlbGY6IGNlbnRlcjtcbiAgbWF4LXdpZHRoOiAxNDAwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAtLXRyYW5zbGF0ZS15OiAtMjBweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5MDBweCkge1xuICAuaGVhZGVyIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDkwMXB4KSB7XG4gIC5oZWFkZXIgLmhlYWRpbmcsXG4gIC5oZWFkZXIgLnN1Yi1oZWFkaW5nIHtcbiAgICBtYXgtd2lkdGg6IDUwJTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgfVxufVxuLmhlYWRlciAuaGVhZGluZyB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5oZWFkZXIgLnN1Yi1oZWFkaW5nIHtcbiAgZm9udC1zaXplOiAxOHB4O1xufVxuLmhlYWRlciAuc3ViLWhlYWRpbmcsXG4uaGVhZGVyIHRhZy1saW5lIHtcbiAgbWFyZ2luOiB2YXIoLS1ndXR0ZXIxKSBhdXRvO1xufVxuLmhlYWRlciB0YWctbGluZSB7XG4gIHBhZGRpbmctYm90dG9tOiAxMHB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQwMHB4KSB7XG4gIC5oZWFkZXIgdGFnLWxpbmUge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLWdhcCk7XG4gIH1cbn1cbi5oZWFkZXIgLmhlYWRpbmcsXG4uaGVhZGVyIC5zdWItaGVhZGluZyxcbi5oZWFkZXIgc2VhcmNoLWJhciB7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSh2YXIoLS10cmFuc2xhdGUteSkpO1xufVxuLmhlYWRlci5pbi12aWV3IC5oZWFkaW5nLFxuLmhlYWRlci5pbi12aWV3IC5zdWItaGVhZGluZyxcbi5oZWFkZXIuaW4tdmlldyBzZWFyY2gtYmFyIHtcbiAgLS10cmFuc2xhdGUteTogMDtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxLjJzIGN1YmljLWJlemllcigwLjE2NSwgMC44NCwgMC40NCwgMSkgMC4ycywgdHJhbnNmb3JtIDEuMnMgY3ViaWMtYmV6aWVyKDAuMTY1LCAwLjg0LCAwLjQ0LCAxKSAwLjJzO1xufVxuLmhlYWRlci5pbi12aWV3IC5zdWItaGVhZGluZyB7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDAuNHMsIDAuNHM7XG59XG4uaGVhZGVyLmluLXZpZXcgc2VhcmNoLWJhciB7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDAuNnMsIDAuNnM7XG59XG4uaGVhZGVyIC5oZWFkZXItZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMmZyIDFmcjtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2VyMCk7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4uaGVhZGVyIC5oZWFkZXItZ3JpZCAuaGVhZGluZyxcbi5oZWFkZXIgLmhlYWRlci1ncmlkIC5zdWItaGVhZGluZyB7XG4gIG1heC13aWR0aDogNzUlO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBtYXJnaW4tbGVmdDogMDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuaGVhZGVyIC5oZWFkZXItZ3JpZCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gIH1cbiAgLmhlYWRlciAuaGVhZGVyLWdyaWQgLmhlYWRpbmcsXG4gIC5oZWFkZXIgLmhlYWRlci1ncmlkIC5zdWItaGVhZGluZyB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgfVxufVxuXG4uaXNvLWJhbm5lciB7XG4gIGdyaWQtcm93OiAzO1xuICB3aWR0aDogMTAwdnc7XG4gIGxlZnQ6IGNhbGMoLTUwdncgKyA1MCUpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzZiYjI4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZy10b3A6IGNhbGModmFyKC0tZ2FwKSAqIDIpO1xuICBwYWRkaW5nLWJvdHRvbTogY2FsYyh2YXIoLS1nYXApICogMik7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4uaXNvLWJhbm5lciBoMiB7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLWdhcCk7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5pc28tYmFubmVyIGgyIHNwYW4ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogMzAwO1xuICBwYWRkaW5nOiAwIGNhbGModmFyKC0tZ2FwKSAqIDIpO1xuICBmb250LWZhbWlseTogXCJtb250c2VycmF0XCIsIHNhbnMtc2VyaWY7XG59XG4uaXNvLWJhbm5lciB+IG1haW4ge1xuICAtLXJvdy1tYWluOiA0O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5pc28tYmFubmVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaGVpZ2h0OiAxODBweDtcbiAgICB3aWR0aDogYXV0bztcbiAgICBhc3BlY3QtcmF0aW86IDE7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHRvcDogMjB2aDtcbiAgICByaWdodDogMTB2dztcbiAgICBsZWZ0OiB1bnNldDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxNWRlZyk7XG4gICAgZ3JpZC1yb3c6IHVuc2V0O1xuICAgIHBhZGRpbmc6IHZhcigtLWdhcCkgY2FsYyh2YXIoLS1nYXApICogMC41KTtcbiAgfVxuICAuaXNvLWJhbm5lciBoMiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuICAuaXNvLWJhbm5lciB+IG1haW4ge1xuICAgIC0tcm93LW1haW46IDM7XG4gIH1cbn1cblxuLmVjb3ZhZGlzLXRvcC1iYW5uZXIge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGhlaWdodDogMTUwcHg7XG4gIHdpZHRoOiBhdXRvO1xuICBhc3BlY3QtcmF0aW86IDE7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgdG9wOiAyZW07XG4gIGxlZnQ6IDA7XG59XG4uZWNvdmFkaXMtdG9wLWJhbm5lciBpbWcge1xuICB3aWR0aDogMTAwJTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5MDFweCkge1xuICAuZWNvdmFkaXMtdG9wLWJhbm5lciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxubmF2aWdhdGlvbi1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsO1xuICBiYWNrZ3JvdW5kOiBpbml0aWFsO1xuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICBwYWRkaW5nLXRvcDogdmFyKC0tc3BhY2VyMCk7XG4gIHBhZGRpbmctYm90dG9tOiB2YXIoLS1zcGFjZXIwKTtcbn1cbm5hdmlnYXRpb24tYmFyOjpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4jaGVyby5wcm9tb3Mge1xuICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICB3aWR0aDogMTAwdnc7XG4gIG1hcmdpbi1sZWZ0OiAtNTB2dztcbiAgbGVmdDogNTAlO1xuICBib3gtc2hhZG93OiBpbml0aWFsO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG4jaGVyby5wcm9tb3MgLnByb21vIHtcbiAgZmxleDogMSAxIDQxMHB4O1xuICBtaW4taGVpZ2h0OiBhdXRvO1xuICBwYWRkaW5nLWJsb2NrOiB2YXIoLS1zcGFjZXIxKTtcbiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG59XG4jaGVyby5wcm9tb3MgLnByb21vIHRhZy1saW5lIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbiNoZXJvLnByb21vcyAucHJvbW8gcGljdHVyZSB7XG4gIG1pbi13aWR0aDogYXV0bztcbn1cbiNoZXJvLnByb21vcyAucHJvbW8gLnRleHQgKiB7XG4gIHRleHQtd3JhcDogYmFsYW5jZTtcbn1cbiNoZXJvLnByb21vcyA+IC5pbWFnZSxcbiNoZXJvLnByb21vcyAuc2ltcGxlUGFyYWxsYXgge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1heC1oZWlnaHQ6IDEwMHZoO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICB0b3A6IDA7XG59XG4jaGVyby5wcm9tb3MgLnF1b3RlIHtcbiAgLS1xdW90ZS1pY29uLXNpemU6IDQwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZ3JpZC1yb3c6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTksIDMxLCAxMDcsIDAuOSk7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJvcmRlcjogbm9uZTtcbiAgaGVpZ2h0OiBmaXQtY29udGVudDtcbiAgcGFkZGluZzogY2FsYyh2YXIoLS1zcGFjZXIxKSArIHZhcigtLXF1b3RlLWljb24tc2l6ZSkpIHZhcigtLWd1dHRlcjQpIHZhcigtLXNwYWNlcjEpIHZhcigtLWd1dHRlcjQpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuI2hlcm8ucHJvbW9zIC5xdW90ZSBibG9ja3F1b3RlIHtcbiAgY29sb3I6IHdoaXRlO1xufVxuI2hlcm8ucHJvbW9zIC5xdW90ZSBibG9ja3F1b3RlOjpiZWZvcmUsICNoZXJvLnByb21vcyAucXVvdGUgYmxvY2txdW90ZTo6YWZ0ZXIge1xuICBvcGFjaXR5OiAwLjI7XG4gIHdpZHRoOiB2YXIoLS1xdW90ZS1pY29uLXNpemUpO1xuICBoZWlnaHQ6IHZhcigtLXF1b3RlLWljb24tc2l6ZSk7XG4gIHRvcDogY2FsYygtMSAqIHZhcigtLXF1b3RlLWljb24tc2l6ZSkpO1xufVxuI2hlcm8ucHJvbW9zIC5xdW90ZSBibG9ja3F1b3RlOjphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4jaGVyby5wcm9tb3MgLnF1b3RlIGltZyB7XG4gIG1hcmdpbi10b3A6IHZhcigtLWdhcCk7XG4gIG1heC13aWR0aDogMTMwcHg7XG59XG4jaGVyby5wcm9tb3MgLnF1b3RlIGZpZ2NhcHRpb24ge1xuICBjb2xvcjogI2RmMzAzNTtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG4jaGVyby5wcm9tb3MgLnF1b3RlIGZpZ2NhcHRpb24gY2l0ZSB7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1mYW1pbHk6IGxhdG8sIHNhbnMtc2VyaWY7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cbiNoZXJvLnByb21vcyAucXVvdGUgZmlnY2FwdGlvbiBjaXRlIHN2ZyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4jaGVyby5wcm9tb3MgLnF1b3RlIGZpZ2NhcHRpb24gY2l0ZTo6YmVmb3JlIHtcbiAgY29udGVudDogaW5pdGlhbDtcbn1cbkBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gICNoZXJvLnByb21vcyAucXVvdGUgZmlnY2FwdGlvbiBjaXRlIGE6aG92ZXIge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgfVxufVxuI2hlcm8ucHJvbW9zIC5tZXRhbC1saW5rcyB7XG4gIGdyaWQtcm93OiAxLy0xO1xuICBwYWRkaW5nOiB2YXIoLS1ndXR0ZXIyKTtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC1nYXA6IDAgdmFyKC0tZ3V0dGVyMSk7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMzQwcHgsIDFmcikpO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gICNoZXJvLnByb21vcyAubWV0YWwtbGlua3Mge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICB9XG59XG4jaGVyby5wcm9tb3MgLm1ldGFsLWxpbmtzIC50ZXh0IHtcbiAgZ3JpZC1jb2x1bW46IDEvLTE7XG59XG4jaGVyby5wcm9tb3MgLm1ldGFsLWxpbmtzIC50ZXh0ID4gaDMge1xuICBmb250LXNpemU6IDJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbiAgbWFyZ2luLWJvdHRvbTogY2FsYyh2YXIoLS1nYXApICogMC41KTtcbiAgY29sb3I6ICMxMzFmNmI7XG59XG4jaGVyby5wcm9tb3MgLm1ldGFsLWxpbmtzIC50ZXh0ID4gaDMgKyBwIHtcbiAgY29sb3I6ICNkZjMwMzU7XG4gIG1heC13aWR0aDogNjAwcHg7XG4gIGZvbnQtc2l6ZTogMS4wNjI1ZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG59XG4jaGVyby5wcm9tb3MgLm1ldGFsLWxpbmtzIHAuY29udGFpbnMtYnV0dG9uIHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tZ3V0dGVyMSk7XG4gIGNvbG9yOiAjMTMxZjZiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxLjA2MjVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuI2hlcm8ucHJvbW9zIC5tZXRhbC1saW5rcyBwLmNvbnRhaW5zLWJ1dHRvbiAuYnV0dG9uIHtcbiAgd2lkdGg6IGZpdC1jb250ZW50O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuI2hlcm8ucHJvbW9zIC5tZXRhbC1saW5rcyAubGlzdC1kcm9wZG93bnMge1xuICBtYXJnaW4tdG9wOiB2YXIoLS1ndXR0ZXIxKTtcbn1cbiNoZXJvLnByb21vcyAubWV0YWwtbGlua3MgLmxpc3QtZHJvcGRvd25zIC5oZWFkaW5nIHtcbiAgZm9udC1zaXplOiAxLjU2MjVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6ICMzZDNmN2Y7XG59XG4jaGVyby5wcm9tb3MgLm1ldGFsLWxpbmtzIGJ1dHRvbi1jb250YWluZXIge1xuICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZXIwKTtcbiAgZ3JpZC1jb2x1bW46IDEvLTE7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTY4MXB4KSB7XG4gICNoZXJvLnByb21vcyAucXVvdGUge1xuICAgIHBhZGRpbmctbGVmdDogY2FsYyh2YXIoLS1jb21wdXRlZC1ndXR0ZXIpICsgdmFyKC0tZ3V0dGVyNikpO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTQwMHB4KSB7XG4gICNoZXJvLnByb21vcyAucXVvdGUge1xuICAgIC0tcXVvdGUtaWNvbi1zaXplOiAyMHB4O1xuICAgIHBhZGRpbmctbGVmdDogdmFyKC0tZ3V0dGVyMik7XG4gICAgcGFkZGluZy1yaWdodDogdmFyKC0tZ3V0dGVyMik7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMTIwcHgpIHtcbiAgI2hlcm8ucHJvbW9zIHtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG87XG4gICAgZ3JpZC1nYXA6IDA7XG4gIH1cbiAgI2hlcm8ucHJvbW9zIC5xdW90ZSB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG4gICNoZXJvLnByb21vcyAucXVvdGUgYmxvY2txdW90ZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1heC13aWR0aDogNzAwcHg7XG4gIH1cbiAgI2hlcm8ucHJvbW9zIC5xdW90ZSBibG9ja3F1b3RlOjpiZWZvcmUsICNoZXJvLnByb21vcyAucXVvdGUgYmxvY2txdW90ZTo6YWZ0ZXIge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgfVxuICAjaGVyby5wcm9tb3MgLnF1b3RlIGJsb2NrcXVvdGU6OmJlZm9yZSB7XG4gICAgbGVmdDogY2FsYyh2YXIoLS1nYXApICogMC41KTtcbiAgfVxuICAjaGVyby5wcm9tb3MgLnF1b3RlIGJsb2NrcXVvdGU6OmFmdGVyIHtcbiAgICByaWdodDogY2FsYyh2YXIoLS1nYXApICogMC41KTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICAjaGVyby5wcm9tb3MgLm1ldGFsLWxpbmtzIGJ1dHRvbi1jb250YWluZXIge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG59XG5cbm1hcmtldHMtc3VtbWFyeSB7XG4gIG1hcmdpbi10b3A6IDFweDtcbiAgYm94LXNoYWRvdzogMHB4IC0xcHggdmFyKC0tYm9yZGVyLXRvcC1jb2xvdXIsICM0NjUyOGEpO1xufVxubWFya2V0cy1zdW1tYXJ5OjpiZWZvcmUge1xuICBib3gtc2hhZG93OiBpbmhlcml0O1xuICBib3JkZXI6IGluaXRpYWw7XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLyBCcmVhayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2JyZWFrXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gb3V0KCRicmVha3BvaW50KSB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiN7JGJyZWFrcG9pbnQgKyAxfSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBpbigkYnJlYWtwb2ludCkge1xuICBAbWVkaWEgKG1heC13aWR0aDojeyRicmVha3BvaW50fSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBiZXR3ZWVuKCRtaW4sICRtYXgpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6I3skbWlufSkgYW5kIChtYXgtd2lkdGg6I3skbWF4fSkge1xuICAgIEBjb250ZW50O1xuICB9XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFVuaXRzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AdXNlIFwic2FzczptYXRoXCI7XG5AdXNlICdzYXNzOnN0cmluZyc7XG5AdXNlICdzYXNzOm1ldGEnO1xuXG4vLyBUaGlzIHVuaXRzIGNyZWF0b3Igd2lsbCByZW5kZXIgc2l4IHBvc2l0aXZlIGFuZCBzaXggbmVnYXRpdmUgc2FzcyB2YXJpYWJsZXMgZm9yIFxuLy8gZ2Fwcywgc3BhY2VycywgYW5kIGd1dHRlcnMgcmVsYXRpdmUgdG8gdGhlIGJhc2V2IHZhbHVlcyBkZWZpbmVkIGJlbG93LlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEJhc2UgVmFsdWVzIFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8vIEBzZWUgaHR0cHM6Ly9jb2RlcGVuLmlvL21hcmtub3R0b24vcGVuL0V4UGJOR2VcblxuLy8gVGhlc2UgdGhyZWUgdmFsdWVzIHdpbGwgYWN0IGEgY29uc3RhbnQgYmFzZWxpbmUgZm9yIGFsbCBmb2xsb3dpbmcgdW5pdCBkZWxjYXJhdGlvbnMuXG5cbi8vIEdhcHMgbXVzdCB1c2UgYW4gYWJzb2x1dGUgYW5kIHN0YXRpYyAncHgnIHVuaXQuIEl0IHNob3VsZCBub3QgYmUgcmVsYXRpdmUgdG8gYW55XG4vLyBwYXJlbnQgY29udGFpbmVyIGFuZCBpcyBub3QgaW50ZW5kZWQgZm9yIGZvbnQgc2l6ZXMsIHNvIHlvdSBzaG91bGQgbm90IHVzZSAncmVtJyBvciAnZW0nLiBcbiRnYXAgOiAxNnB4ICFkZWZhdWx0O1xuJGJhc2UtZ2FwIDogJGdhcDtcblxuLy8gU3BhY2VycyBtdXN0IHVzZSBhICd2aCcgdW5pdCBzbyB0aGV5IGFyZSByZWxhdGl2ZSB0byB0aGUgdXNlcnMgdmlld3BvcnQgaGVpZ2h0LXdpc2UuXG4vLyBUaGV5IHNob3VsZCBwcmltYXJpbHkgYmUgdXNlZCBmb3IgdGhlIHRvcCBhbmQgYm90dG9tIG1hcmdpbnMgb24gYSBjb21wb25lbnQgbGV2ZWwuXG4kc3BhY2VyIDogNHZoICFkZWZhdWx0OyBcbiRiYXNlLXNwYWNlciA6ICRzcGFjZXI7IFxuXG4vLyBHdXR0ZXJzIG11c3QgdXNlIGEgJ3Z3JyB1bml0IHNvIHRoZXkgYXJlIHJlbGF0aXZlIHRvIHRoZSB1c2VycyB2aWV3cG9ydCB3aWR0aC13aXNlLiBcbi8vIFRoZXkgc2hvdWxkIHByaW1hcmlseSBiZSB1c2VkIGZvciB0aGUgbGVmdCBhbmQgcmlnaHQgcGFkZGluZyBvciBtYXJnaW4gb24gYSBwYXJlbnQgbGV2ZWwuXG4vLyBBcyBhIHN1Z2dlc3Rpb24sIHRoaXMgZ3V0dGVyIGNvbnN0YW50IHNob3VsZCBiZSBoYWxmIHRoZSBzaXplIG9mIHRoZSBzcGFjZXIgdmFsdWUuXG4kZ3V0dGVyIDogM3Z3ICFkZWZhdWx0O1xuJGJhc2UtZ3V0dGVyIDogJGd1dHRlcjsgXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBBc2JvbHV0ZSBVbml0cyBcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIEdhcHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBHYXBzIGFyZSBhbiBhYnNvbHV0ZSB1bml0IChweCkgaW50ZW5kZWQgdG8gYmUgdXNlZCBvbiBpbmRpdmlkdWFsIGVsZW1lbnRzIHdpdGhpbiBhIGNvbXBvbmVudGVkLiBcbi8vIFRoZSBhaW0gaXMgdG8gcmV0YWluIGNvbnNpc3RhbnQgc3BhY2luZyBhbW9uZ3N0IGJsb2NrLCBpbmxpbmUsIHRhYmxlIGFuZCBncm91cCBodG1sIGVsZW1lbnRzLlxuXG5AZnVuY3Rpb24gZ2FwKCRhbW91bnQgOiAxKSB7XG4gIEBpZiAoICRhbW91bnQgPT0gMSApIHsgXG4gICAgQHJldHVybiB2YXIoLS1nYXApOyBcbiAgfSBAZWxzZSB7IFxuICAgIEByZXR1cm4gY2FsYyh2YXIoLS1nYXApICogI3skYW1vdW50fSk7IFxuICB9XG59XG5cbiRnYXAwIDogZ2FwKDAuNSk7ICRnYXAwLSA6IGdhcCgtMC41KTtcbiRnYXAgIDogZ2FwKDEpOyAgICRnYXAtICA6IGdhcCgtMSk7XG4kZ2FwMiA6IGdhcCgyKTsgICAkZ2FwMi0gOiBnYXAoLTIpO1xuJGdhcDMgOiBnYXAoMyk7ICAgJGdhcDMtIDogZ2FwKC0zKTtcbiRnYXA0IDogZ2FwKDQpOyAgICRnYXA0LSA6IGdhcCgtNCk7XG4kZ2FwNSA6IGdhcCg1KTsgICAkZ2FwNS0gOiBnYXAoLTUpO1xuJGdhcDYgOiBnYXAoNik7ICAgJGdhcDYtIDogZ2FwKC02KTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFJlbGF0aXZlIFVuaXRzIFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQGZ1bmN0aW9uIF9keW5hbWljLXVuaXQoJGN1c3RvbS1wcm9wZXJ0eSwgJGFtb3VudCwgJG1pbiwgJG1heCwgJHVzZS1uZWdhdGl2ZSA6IGZhbHNlLCAkdXNlLWNsYW1wIDogdHJ1ZSkge1xuXG4gIC8vIENhbGMgTWV0aG9kXG4gICRyZXN1bHQgOiBjYWxjKCgjeyRjdXN0b20tcHJvcGVydHl9ICogI3skYW1vdW50fSkgKyAje2lmKCRtaW4gPT0gMCwgMHB4LCAkbWluKX0pO1xuICBcbiAgLy8gQ2xhbXAgTWV0aG9kXG4gIEBpZiAoICR1c2UtY2xhbXAgKSB7XG4gICAgQGlmICggJGFtb3VudCA9PSAwICkge1xuICAgICAgJHJlc3VsdCA6IGNsYW1wKCN7bWF0aC5kaXYoJG1pbiwgMil9LCAjeyRjdXN0b20tcHJvcGVydHl9ICogMC41LCAjeyRtYXh9KTtcbiAgICB9IEBlbHNlIGlmICggJGFtb3VudCA9PSAxICkge1xuICAgICAgJHJlc3VsdCA6IGNsYW1wKCN7JG1pbn0sICN7JGN1c3RvbS1wcm9wZXJ0eX0sICN7JG1heH0pO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHJlc3VsdCA6IGNsYW1wKCN7JG1pbn0sICN7JGN1c3RvbS1wcm9wZXJ0eX0gKiAjeyRhbW91bnR9LCAjeyRtYXh9KTtcbiAgICB9XG4gIH0gXG5cbiAgQGlmICggJHVzZS1uZWdhdGl2ZSApIHtcbiAgICAkcmVzdWx0IDogY2FsYygtMSAqICN7JHJlc3VsdH0pO1xuICB9XG5cbiAgQHJldHVybiAkcmVzdWx0O1xuXG59IFxuXG4vLyBTcGFjZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gU3BhY2VycyBhcmUgYSByZWxhdGl2ZSB2aWV3cG9ydCBoZWlnaHQgKHZoKSB1bml0IGludGVuZGVkIHRvIGJlIHVzZWQgb24gYSBjb21wb25lbnRlZCBsZXZlbC5cbi8vIFRoZSBhaW0gaXMgdG8gcmV0YWluIGNvbnNpc3RhbnQgdG9wIGFuZCBib3R0b20gc3BhY2luZyBhbW9uZ3N0ICdzZWN0aW9uJyBhbmQgJ2N1c3RvbScgZWxlbWVudHMuXG4vLyBTcGFjZXJzIHdpbGwgZXF1YXRlIHRvIHNvbWV0aGluZyBsaWtlOiBgKCRzcGFjZXIgKiB4KSArICRnYXBgLiBcbi8vIFRoZSAnJGdhcCcgaXMgYWRkZWQgc28gdGhhdCB2aCBzcGFjaW5nIHdpbGwgbmV2ZXIgc2NhbGUgdG9vIGNsb3NlIHRvIDBweC4gXG5cbkBmdW5jdGlvbiBzcGFjZXIoJGFtb3VudCA6IDEsICRtaW4gOiAkYmFzZS1nYXAsICRtYXggOiBudWxsLCAkdXNlLW5lZ2F0aXZlIDogZmFsc2UsICR1c2UtY2xhbXAgOiB0cnVlKSB7XG4gIEBpZiAoICRhbW91bnQgPT0gMCkgeyAkYW1vdW50IDogMC41OyAkbWluIDogbWF0aC5kaXYoJG1pbiwgMik7IH1cbiAgQGlmICggbWV0YS50eXBlLW9mKCRtYXgpID09ICdudWxsJyApIHsgXG4gICAgQGlmICggbWV0YS50eXBlLW9mKCRtaW4pID09ICdzdHJpbmcnIGFuZCBzdHJpbmcuaW5kZXgoJG1pbiwgJ3ZhcicpICkge1xuICAgICAgJG1heCA6IGNhbGMoI3skbWlufSAqICN7JGFtb3VudCArIDF9KTsgXG4gICAgfSBAZWxzZSB7XG4gICAgICAkbWF4IDogI3skbWluICogKCRhbW91bnQgKyAxKX07IFxuICAgIH1cbiAgfVxuICBAcmV0dXJuIF9keW5hbWljLXVuaXQodmFyKC0tc3BhY2VyKSwgJGFtb3VudCwgJG1pbiwgJG1heCwgJHVzZS1uZWdhdGl2ZSwgJHVzZS1jbGFtcCk7XG59XG5cbiRzcGFjZXIwIDogdmFyKC0tc3BhY2VyMCk7ICRzcGFjZXIwLSA6IHZhcigtLXNwYWNlcjAtKTtcbiRzcGFjZXIgIDogdmFyKC0tc3BhY2VyMSk7ICRzcGFjZXItICA6IHZhcigtLXNwYWNlcjEtKTtcbiRzcGFjZXIyIDogdmFyKC0tc3BhY2VyMik7ICRzcGFjZXIyLSA6IHZhcigtLXNwYWNlcjItKTtcbiRzcGFjZXIzIDogdmFyKC0tc3BhY2VyMyk7ICRzcGFjZXIzLSA6IHZhcigtLXNwYWNlcjMtKTtcbiRzcGFjZXI0IDogdmFyKC0tc3BhY2VyNCk7ICRzcGFjZXI0LSA6IHZhcigtLXNwYWNlcjQtKTtcbiRzcGFjZXI1IDogdmFyKC0tc3BhY2VyNSk7ICRzcGFjZXI1LSA6IHZhcigtLXNwYWNlcjUtKTtcbiRzcGFjZXI2IDogdmFyKC0tc3BhY2VyNik7ICRzcGFjZXI2LSA6IHZhcigtLXNwYWNlcjYtKTtcblxuLy8gR3V0dGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEd1dHRlcnMgYXJlIGEgcmVsYXRpdmUgdmlld3BvcnQgd2lkdGggKHZ3KSB1bml0IGludGVuZGVkIHRvIGJlIHVzZWQgb24gYSBwYXJlbnQgbGV2ZWw7XG4vLyBmb3IgZXhhbXBsZSwgYSB3cmFwcGVyIGNvbnRhaW5lciBvciBib2R5IHdpdGggbmVzdGVkIGNvbXBvbmVudHMuIFxuLy8gVGhlIGFpbSBpcyB0byByZXRhaW4gY29uc2lzdGFudCBsZWZ0IGFuZCByaWdodCBzcGFjaW5nIGFtb25nc3QgJ3NlY3Rpb24nIGFuZCAnY3VzdG9tJyBlbGVtZW50cy5cbi8vIEd1dHRlcnMgd2lsbCBlcXVhdGUgdG8gc29tZXRoaW5nIGxpa2U6IGAoJGd1dHRlciAqIHgpICsgJGdhcGAuIFxuLy8gVGhlICckZ2FwJyBpcyBhZGRlZCBzbyB0aGF0IHZ3IHNwYWNpbmcgd2lsbCBuZXZlciBzY2FsZSB0b28gY2xvc2UgdG8gMHB4LiBcblxuQGZ1bmN0aW9uIGd1dHRlcigkYW1vdW50IDogMSwgJG1pbiA6ICRiYXNlLWdhcCwgJG1heCA6IG51bGwsICR1c2UtbmVnYXRpdmUgOiBmYWxzZSwgJHVzZS1jbGFtcCA6IHRydWUpIHtcbiAgQGlmICggJGFtb3VudCA9PSAwKSB7ICRhbW91bnQgOiAwLjU7ICRtaW4gOiBtYXRoLmRpdigkbWluLCAyKTsgfVxuICBAaWYgKCBtZXRhLnR5cGUtb2YoJG1heCkgPT0gJ251bGwnICkgeyBcbiAgICBAaWYgKCBtZXRhLnR5cGUtb2YoJG1pbikgPT0gJ3N0cmluZycgYW5kIHN0cmluZy5pbmRleCgkbWluLCAndmFyJykgKSB7XG4gICAgICAkbWF4IDogY2FsYygjeyRtaW59ICogI3skYW1vdW50ICsgMX0pOyBcbiAgICB9IEBlbHNlIHtcbiAgICAgICRtYXggOiAjeyRtaW4gKiAoJGFtb3VudCArIDEpfTsgXG4gICAgfVxuICB9XG4gIEByZXR1cm4gX2R5bmFtaWMtdW5pdCh2YXIoLS1ndXR0ZXIpLCAkYW1vdW50LCAkbWluLCAkbWF4LCAkdXNlLW5lZ2F0aXZlLCAkdXNlLWNsYW1wKTtcbn1cblxuJGd1dHRlcjAgOiB2YXIoLS1ndXR0ZXIwKTsgJGd1dHRlcjAtIDogdmFyKC0tZ3V0dGVyMC0pO1xuJGd1dHRlciAgOiB2YXIoLS1ndXR0ZXIxKTsgJGd1dHRlci0gIDogdmFyKC0tZ3V0dGVyMS0pO1xuJGd1dHRlcjIgOiB2YXIoLS1ndXR0ZXIyKTsgJGd1dHRlcjItIDogdmFyKC0tZ3V0dGVyMi0pO1xuJGd1dHRlcjMgOiB2YXIoLS1ndXR0ZXIzKTsgJGd1dHRlcjMtIDogdmFyKC0tZ3V0dGVyMy0pO1xuJGd1dHRlcjQgOiB2YXIoLS1ndXR0ZXI0KTsgJGd1dHRlcjQtIDogdmFyKC0tZ3V0dGVyNC0pO1xuJGd1dHRlcjUgOiB2YXIoLS1ndXR0ZXI1KTsgJGd1dHRlcjUtIDogdmFyKC0tZ3V0dGVyNS0pO1xuJGd1dHRlcjYgOiB2YXIoLS1ndXR0ZXI2KTsgJGd1dHRlcjYtIDogdmFyKC0tZ3V0dGVyNi0pO1xuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIENvbG91cnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbi8vLyBFeHBsaWNpdCBDb2xvdXJzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLy8gRXhwbGljaXQgY29sb3VycyBhcmUgYSB3aGF0IHRoZXkgYXJlLiBHcmVlbiBpcyBncmVlbiwgYmx1ZSBpcyBibHVlLi4uIG5vIG9ic2N1cml0eS5cbi8vLyBXZSBzdWZmaXggbnVtYmVycyB0byBkZWZpbmUgdmFyaWF0aW9ucyBvZiBjb2xvdXJzIGluIG5vIHBhcnRpY3VsYXIgb3JkZXIgb2Ygc2hhZGUuXG4vLy8gRXhhbXBsZTogZ3JlZW4xLCBncmVlbjIsIGdyZWVuMywgZ3JlZW40LiBUaGlzIGlzIHNvIHdlIGNhbiBpbW1pZGlhdGVseSBzZWUgaG93XG4vLy8gbWFueSBvcHRpb25zIHdlIGhhdmUgZm9yIGEgc2luZ2xlIGNvbG91ciBhdCBhIGdsYW5jZS4gSWYgeW91IHNlZSAkZ3JlZW40LCB5b3Uga25vdyB0aGlzXG4vLy8gcHJvamVjdCBpcyB1c2luZyBmb3VyIHZhcmlhdGlvbnMgb2YgZ3JlZW4uIFRoaXMgaXMgYWxzbyBvZnRlbiB1c2VmdWwgYmVjYXVzZSBtYW55IGRldmVsb3BtZW50XG4vLy8gdG9vbHMgd2lsbCBhdXRvLXN1Z2dlc3QgY29sb3VycyB3aXRoIGFjdHVhbCBleGFtcGxlcyBvZiB0aGUgY29sb3VyLlxuLy8vIFRoZSBQYWxsZXRlcyBtb2R1bGUgKGF0IHRoZSBib3R0b20gb2YgdGhpcyBmaWxlKSB3aWxsIG91dHB1dCBzaGFkZWQgbmFtZWQgdmFyaWF0aW9ucyxcbi8vLy8gPGNvbG91cj4tZGFyayBhbmQgPGNvbG91cj4tbGlnaHQuIElmIHlvdSBuZWVkIGFkZGl0aW9uYWwgc2hhZGVzIHBsZWFzZSByZWZyYWltIGZyb20gZ29pbmcgZG93blxuLy8vIHRoZSAnbGlnaHRlcicsICdsaWdodGVzdCcsICdkYXJrZXInLCAnZGFya2VzdCcgY29udmVudGlvbi4gVGhlc2UgYXJlIG5vdCBwYXJ0aWN1YXJseSBsZWdpYWJsZVxuLy8vIGFuZCB0aGV5IGFyZSBsaW1pdGVkIGJ5IGhvdyBjcmVhdGl2ZSAoY29uZnVzaW5nKSB5b3VyIHdvcmRpbmcgY2FuIGJlLlxuLy8vIEl0IGlzIGJldHRlciB0byBkZWZpbmUgYSBuZXcgZXhwbGNpdCBjb2xvdXIgZW50aXJlbHkuXG4vLy8gQHNlZSBodHRwczovL2Nzcy10cmlja3MuY29tL3doYXQtZG8teW91LW5hbWUtY29sb3ItdmFyaWFibGVzL1xuXG4kYmx1ZTogIzEzMWY2YjsgLy8gUHJpbWFyeVxuJGJsdWUyOiAjMjkyYjY4OyAvLyBOYWtlZCBMaW5rXG4kYmx1ZTM6ICMzZDNmN2Y7IC8vIExpZ250IEdyYWRpZW50XG4kYmx1ZTQ6ICMxMDEyNGQ7IC8vIERhcmsgR3JhZGllbnRcbiRibHVlNTogIzAwOTVmZjsgLy8gTmF2aWdhdGlvbiBsaW5rIGhvdmVyXG4vLyAkcmVkICAgIDogI0UwM0E0MDsgLy8gU2Vjb25kYXJ5XG4kcmVkOiAjZGYzMDM1OyAvLyBTZWNvbmRhcnkgLSBUaGlzIHBhc3NlcyB0aGUgY29udHJhc3QgcmF0aW8gYWNjZXNzaWJpbGl0eSB0ZXN0IGluIEdvb2dsZXMgTGlnaHRob3VzZVxuJGdyZXk6ICM5Njk2OTU7XG4kZ3JleTI6ICM2YTZhNmE7IC8vIEZvbnRcbiRncmV5MzogI2Y0ZjRmNDsgLy8gTGlnaHRlciBHcmV5IEJhY2tncm91bmRcbiRncmV5NDogI2RjZGNkYztcbiRncmV5NTogI2IxYjFiMTsgLy8gU3BhY2VycyA8aHI+XG4kZ3JleTY6ICMzMzMyMzY7IC8vIE5hdmlnYXRpb24gbGluayBob3ZlclxuJGdyZWVuOiAjNTBiYzA4O1xuJGdyZWVuMjogIzc2YmIyODsgLy8gRVNHIGdyZWVuXG4keWVsbG93OiAjZjZmNGRiOyAvLyBEaXNjbGFpbWVyIEJhY2tncm91bmRcbiR5ZWxsb3cyOiAjZmNiMDAyO1xuJG9yYW5nZTogI2ZmNmEwMDtcbiRvcmFuZ2UyOiAjZGE4YjBmO1xuJGJsYWNrOiAjMWUxYzFjO1xuXG4kbWFyazogJGJsdWU1OyAvLyBiYWNrZ3JvdW5kIGNvbG91ciBmb3IgPG1hcms+IHRhZ3NcblxuJHByaW1hcnk6IHZhcigtLXByaW1hcnksICN7JGJsdWV9KTtcbiRzZWNvbmRhcnk6IHZhcigtLXNlY29uZGFyeSwgI3skcmVkfSk7XG5cbi8vLyBQYWxldHRlID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLy8gQnkgbG9hZGluZyBjb25maWd1cmF0aW9ucyBpbnRvIHRoaXMgJ3BhbGxldGUnIG1vZHVsZSwgd2Ugd2lsbCBiZSBhYmxlXG4vLy8gdG8gZGVjbGFyZSB2YXJpYW50cyBvZiBhIGZldyBjb21tb24gY29sb3Vycy4gWW91IGNhbiBhbHNvIGFkanVzdCB0aGUgbGlnaHRuZXNzXG4vLy8gb3IgZGFya25lc3Mgb2YgZWFjaCB2YXJpYW50IGJ5IHBhc3NpbmcgaW4gdGhlIHJlbGV2YW50IHByaXZhdGUgcnVsZXMuXG4vLy8gUGFsZXR0ZSB3aWxsIGFsc28gZXhwb3NlIHBvcHVsYXIgc29jaWFsIG1lZGlhIGNvbG91cnMgYW5kIHRoZSBZZWxsbyBicmFuZCBjb2xvdXIuXG4vLy8gQHNlZSBodHRwczovL3Nhc3MtbGFuZy5jb20vZG9jdW1lbnRhdGlvbi9hdC1ydWxlcy9mb3J3YXJkI2NvbmZpZ3VyaW5nLW1vZHVsZXNcbi8vLyBAb3V0cHV0ICRncmVlbiA6ICMwMjkyOUE7ICRncmVlbi1kYXJrIDogIzI1NjU2OTsgJGdyZWVuLWxpZ2h0OiAjMDRiOWM0O1xuXG5AZm9yd2FyZCAnY3JlYXRlL3BhbGV0dGUnIHdpdGggKFxuICAkYmx1ZTogJGJsdWUsXG4gICRyZWQ6ICRyZWQsXG4gICRncmV5OiAkZ3JleSxcbiAgJHllbGxvdzogJHllbGxvdyxcbiAgJG9yYW5nZTogJG9yYW5nZSxcbiAgJGdyZWVuOiAkZ3JlZW4sXG4gICRibGFjazogJGJsYWNrXG4pO1xuXG4kbWFwOiAoXG4gIGJsdWU6ICRibHVlLFxuICByZWQ6ICRyZWQsXG4gIGdyZXk6ICRncmV5MyxcbiAgeWVsbG93OiAkeWVsbG93LFxuICBvcmFuZ2U6ICRvcmFuZ2UsXG4gIGdyZWVuOiAkZ3JlZW4sXG4gIGJsYWNrOiAkYmxhY2ssXG4pO1xuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLyBGb250XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AdXNlICdjb2xvdXJzJyBhcyAqO1xuXG4kY29sb3VyICAgICAgOiAkZ3JleTI7XG4kc2l6ZSAgICAgICAgOiAxLjVyZW0gIWRlZmF1bHQ7XG4kc2l6ZS1taW4gICAgOiAxLjRyZW0gIWRlZmF1bHQ7IFxuJHNpemUtbWF4ICAgIDogMS42cmVtICFkZWZhdWx0OyBcbiRsaW5lLWhlaWdodCA6IDEuNiAhZGVmYXVsdDsgXG5cbiRzaXplLWgxICAgICA6IDYuMWVtICFkZWZhdWx0O1xuJHNpemUtaDEtbWluIDogNGVtICFkZWZhdWx0O1xuJHNpemUtaDIgICAgIDogMy4yZW0gIWRlZmF1bHQ7XG4kc2l6ZS1oMyAgICAgOiAyLjVlbSAhZGVmYXVsdDtcbiRzaXplLWg0ICAgICA6IDEuN2VtICFkZWZhdWx0O1xuJHNpemUtaDUgICAgIDogMS43ZW0gIWRlZmF1bHQ7XG4kc2l6ZS1oNiAgICAgOiAxLjdlbSAhZGVmYXVsdDtcbiAgXG4vLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8vIExhdG8gRm9udFxuLy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vLyBUaGlzIGZvbnQgaXQgcHJpbWFyaWx5IHVzZWQgZm9yIGhlYWRpbmdzICg8aCo+IHRhZ3MpXG4vLy8gQGV4YW1wbGUgQGluY2x1ZGUgZm9udC1sYXRvKGJvbGQpXG5cbkBtaXhpbiBsYXRvKCR3ZWlnaHQ6cmVndWxhcikge1xuXG4gIGZvbnQtZmFtaWx5OmxhdG8sIHNhbnMtc2VyaWY7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcblxuICBAaWYgKCAkd2VpZ2h0ID09ICdyZWd1bGFyJykge1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIH0gQGVsc2UgaWYgKCAkd2VpZ2h0ID09ICdzZW1pLWJvbGQnIG9yICR3ZWlnaHQgPT0gJ3NlbWlib2xkJykge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIH0gQGVsc2UgaWYgKCAkd2VpZ2h0ID09ICdib2xkJykge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIH1cblxuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuXHQtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG4vLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8vIE1vbnRzZXJyYXQgRm9udFxuLy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vLyBUaGlzIGlzIHRoZSBiYXNlIGZvbnQgdXNlZCBmb3IgYWxsIHN0YW5kYXJkIGNvcHkgdGhyb3VnaG91dCB0aGUgc2l0ZS5cbi8vLyBAZXhhbXBsZSBAaW5jbHVkZSBmb250LW1vbnRzZXJyYXQoKVxuXG5AbWl4aW4gbW9udHNlcnJhdCgkd2VpZ2h0OnJlZ3VsYXIpIHtcblxuICBmb250LWZhbWlseTptb250c2VycmF0LCBzYW5zLXNlcmlmO1xuICBcbiAgQGlmICggJHdlaWdodCA9PSAncmVndWxhcicpIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgfSBAZWxzZSBpZiAoICR3ZWlnaHQgPT0gJ2l0YWxpYycpIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgfSBAZWxzZSBpZiAoICR3ZWlnaHQgPT0gJ2JvbGQnKSB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gIH1cblxuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuXHQtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuXG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLyBIb3ZlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2hvdmVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gaG92ZXIoJHNlbGVjdG9yIDogbnVsbCkge1xuICBAbWVkaWEgKCBob3ZlciA6IGhvdmVyICkge1xuICAgICY6aG92ZXIge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgQGlmICRzZWxlY3RvciB7XG4gICAgJiN7JHNlbGVjdG9yfSB7IFxuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSGVhZGluZ3Ncbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkB1c2UgJ3Nhc3M6c3RyaW5nJztcbkB1c2UgJ3Nhc3M6bWFwJztcbkB1c2UgJ3Nhc3M6bWV0YSc7XG5AdXNlICdzYXNzOm1hdGgnO1xuQHVzZSAnLi9jb2xsZWN0aW9ucy9mb250JztcbkB1c2UgJy4vbW9kdWxlcy91bml0JztcblxuLy8gRGVmYXVsdCBIZWFkaW5nIFZhbHVlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJGgxIDogKFxuICAnZm9udC1zaXplJyAgIDogMy4wcmVtLFxuICAnbGluZS1oZWlnaHQnIDogMS4xXG4pICFkZWZhdWx0O1xuXG4kaDIgOiAoXG4gICdmb250LXNpemUnICAgOiAyLjVyZW0sXG4gICdsaW5lLWhlaWdodCcgOiAxLjNcbikgIWRlZmF1bHQ7XG5cbiRoMyA6IChcbiAgJ2ZvbnQtc2l6ZScgICA6IDIuMnJlbSxcbiAgJ2xpbmUtaGVpZ2h0JyA6IDEuNFxuKSAhZGVmYXVsdDtcblxuJGg0IDogKFxuICAnZm9udC1zaXplJyAgIDogMi4wcmVtLFxuICAnbGluZS1oZWlnaHQnIDogMS40XG4pICFkZWZhdWx0O1xuXG4kaDUgOiAoXG4gICdmb250LXNpemUnICAgOiAxLjhyZW0sXG4gICdsaW5lLWhlaWdodCcgOiAxLjRcbikgIWRlZmF1bHQ7XG5cbiRoNiA6IChcbiAgJ2ZvbnQtc2l6ZScgICA6IDEuNnJlbSxcbiAgJ2xpbmUtaGVpZ2h0JyA6IDEuNFxuKSAhZGVmYXVsdDtcblxuJGJhc2UgOiA2Mi41ICFkZWZhdWx0O1xuJHNjYWxlciA6IDEuNXZ3ICFkZWZhdWx0O1xuJGVuYWJsZS1jcm9wcGluZyA6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBGYWxsYmFjayBMaW5lLWhlaWdodHMgc2hvdWxkIHRoZXkgbm90IGhhdmUgYmVlbiBwYXNzZWQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AaWYgbm90IG1hcC5oYXMta2V5KCRoMSwgXCJsaW5lLWhlaWdodFwiKSB7ICRoMSA6IG1hcC5zZXQoJGgxLCAnbGluZS1oZWlnaHQnLCAxLjEpOyB9XG5AaWYgbm90IG1hcC5oYXMta2V5KCRoMiwgXCJsaW5lLWhlaWdodFwiKSB7ICRoMiA6IG1hcC5zZXQoJGgyLCAnbGluZS1oZWlnaHQnLCAxLjMpOyB9XG5AaWYgbm90IG1hcC5oYXMta2V5KCRoMywgXCJsaW5lLWhlaWdodFwiKSB7ICRoMyA6IG1hcC5zZXQoJGgzLCAnbGluZS1oZWlnaHQnLCAxLjQpOyB9XG5AaWYgbm90IG1hcC5oYXMta2V5KCRoNCwgXCJsaW5lLWhlaWdodFwiKSB7ICRoNCA6IG1hcC5zZXQoJGg0LCAnbGluZS1oZWlnaHQnLCAxLjQpOyB9XG5AaWYgbm90IG1hcC5oYXMta2V5KCRoNSwgXCJsaW5lLWhlaWdodFwiKSB7ICRoNSA6IG1hcC5zZXQoJGg1LCAnbGluZS1oZWlnaHQnLCAxLjQpOyB9XG5AaWYgbm90IG1hcC5oYXMta2V5KCRoNiwgXCJsaW5lLWhlaWdodFwiKSB7ICRoNiA6IG1hcC5zZXQoJGg2LCAnbGluZS1oZWlnaHQnLCAxLjQpOyB9XG5cbi8vIERlZmluZSB0aGUgdmFyaWFibGVzIHNvIHRoZXkgYXJlIHN0aWxsIGFjY2VzaWJsZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRoMS1mb250LXNpemUgICAgIDogbWFwLWdldCgkaDEsICdmb250LXNpemUnKTtcbiRoMS1saW5lLWhlaWdodCAgIDogbWFwLWdldCgkaDEsICdsaW5lLWhlaWdodCcpO1xuJGgxLWZvbnQtc2l6ZS1taW4gOiBpZihtYXAuaGFzLWtleSgkaDEsIFwiZm9udC1zaXplLW1pblwiKSwgbWFwLWdldCgkaDEsIFwiZm9udC1zaXplLW1pblwiKSwgZmFsc2UpO1xuJGgxLXNjYWxlciAgICAgICAgOiBpZihtYXAuaGFzLWtleSgkaDEsIFwic2NhbGVyXCIpLCBtYXAtZ2V0KCRoMSwgXCJzY2FsZXJcIiksICRzY2FsZXIpO1xuXG4kaDItZm9udC1zaXplICAgICA6IG1hcC1nZXQoJGgyLCAnZm9udC1zaXplJyk7XG4kaDItbGluZS1oZWlnaHQgICA6IG1hcC1nZXQoJGgyLCAnbGluZS1oZWlnaHQnKTtcbiRoMi1mb250LXNpemUtbWluIDogaWYobWFwLmhhcy1rZXkoJGgyLCBcImZvbnQtc2l6ZS1taW5cIiksIG1hcC1nZXQoJGgyLCBcImZvbnQtc2l6ZS1taW5cIiksIGZhbHNlKTtcbiRoMi1zY2FsZXIgICAgICAgIDogaWYobWFwLmhhcy1rZXkoJGgyLCBcInNjYWxlclwiKSwgbWFwLWdldCgkaDIsIFwic2NhbGVyXCIpLCAkc2NhbGVyKTtcblxuJGgzLWZvbnQtc2l6ZSAgICAgOiBtYXAtZ2V0KCRoMywgJ2ZvbnQtc2l6ZScpO1xuJGgzLWxpbmUtaGVpZ2h0ICAgOiBtYXAtZ2V0KCRoMywgJ2xpbmUtaGVpZ2h0Jyk7XG4kaDMtZm9udC1zaXplLW1pbiA6IGlmKG1hcC5oYXMta2V5KCRoMywgXCJmb250LXNpemUtbWluXCIpLCBtYXAtZ2V0KCRoMywgXCJmb250LXNpemUtbWluXCIpLCBmYWxzZSk7XG4kaDMtc2NhbGVyICAgICAgICA6IGlmKG1hcC5oYXMta2V5KCRoMywgXCJzY2FsZXJcIiksIG1hcC1nZXQoJGgzLCBcInNjYWxlclwiKSwgJHNjYWxlcik7XG5cbiRoNC1mb250LXNpemUgICAgIDogbWFwLWdldCgkaDQsICdmb250LXNpemUnKTtcbiRoNC1saW5lLWhlaWdodCAgIDogbWFwLWdldCgkaDQsICdsaW5lLWhlaWdodCcpO1xuJGg0LWZvbnQtc2l6ZS1taW4gOiBpZihtYXAuaGFzLWtleSgkaDQsIFwiZm9udC1zaXplLW1pblwiKSwgbWFwLWdldCgkaDQsIFwiZm9udC1zaXplLW1pblwiKSwgZmFsc2UpO1xuJGg0LXNjYWxlciAgICAgICAgOiBpZihtYXAuaGFzLWtleSgkaDQsIFwic2NhbGVyXCIpLCBtYXAtZ2V0KCRoNCwgXCJzY2FsZXJcIiksICRzY2FsZXIpO1xuXG4kaDUtZm9udC1zaXplICAgICA6IG1hcC1nZXQoJGg1LCAnZm9udC1zaXplJyk7XG4kaDUtbGluZS1oZWlnaHQgICA6IG1hcC1nZXQoJGg1LCAnbGluZS1oZWlnaHQnKTtcbiRoNS1mb250LXNpemUtbWluIDogaWYobWFwLmhhcy1rZXkoJGg1LCBcImZvbnQtc2l6ZS1taW5cIiksIG1hcC1nZXQoJGg1LCBcImZvbnQtc2l6ZS1taW5cIiksIGZhbHNlKTtcbiRoNS1zY2FsZXIgICAgICAgIDogaWYobWFwLmhhcy1rZXkoJGg1LCBcInNjYWxlclwiKSwgbWFwLWdldCgkaDUsIFwic2NhbGVyXCIpLCAkc2NhbGVyKTtcblxuJGg2LWZvbnQtc2l6ZSAgICAgOiBtYXAtZ2V0KCRoNiwgJ2ZvbnQtc2l6ZScpO1xuJGg2LWxpbmUtaGVpZ2h0ICAgOiBtYXAtZ2V0KCRoNiwgJ2xpbmUtaGVpZ2h0Jyk7XG4kaDYtZm9udC1zaXplLW1pbiA6IGlmKG1hcC5oYXMta2V5KCRoNiwgXCJmb250LXNpemUtbWluXCIpLCBtYXAtZ2V0KCRoNiwgXCJmb250LXNpemUtbWluXCIpLCBmYWxzZSk7XG4kaDYtc2NhbGVyICAgICAgICA6IGlmKG1hcC5oYXMta2V5KCRoNiwgXCJzY2FsZXJcIiksIG1hcC1nZXQoJGg2LCBcInNjYWxlclwiKSwgJHNjYWxlcik7XG5cbi8vIEhhbmRsZXMgQ3JvcHMgc2hvdWxkIHRoZXkgbm90IGhhdmUgYmVlbiBwYXNzZWQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRfaDEtY3JvcC10b3AgICAgOiBpZihtYXAuaGFzLWtleSgkaDEsIFwiY3JvcC10b3BcIiksIG1hcC1nZXQoJGgxLCBcImNyb3AtdG9wXCIpLCBmYWxzZSk7XG4kX2gyLWNyb3AtdG9wICAgIDogaWYobWFwLmhhcy1rZXkoJGgyLCBcImNyb3AtdG9wXCIpLCBtYXAtZ2V0KCRoMiwgXCJjcm9wLXRvcFwiKSwgZmFsc2UpO1xuJF9oMy1jcm9wLXRvcCAgICA6IGlmKG1hcC5oYXMta2V5KCRoMywgXCJjcm9wLXRvcFwiKSwgbWFwLWdldCgkaDMsIFwiY3JvcC10b3BcIiksIGZhbHNlKTtcbiRfaDQtY3JvcC10b3AgICAgOiBpZihtYXAuaGFzLWtleSgkaDQsIFwiY3JvcC10b3BcIiksIG1hcC1nZXQoJGg0LCBcImNyb3AtdG9wXCIpLCBmYWxzZSk7XG4kX2g1LWNyb3AtdG9wICAgIDogaWYobWFwLmhhcy1rZXkoJGg1LCBcImNyb3AtdG9wXCIpLCBtYXAtZ2V0KCRoNSwgXCJjcm9wLXRvcFwiKSwgZmFsc2UpO1xuJF9oNi1jcm9wLXRvcCAgICA6IGlmKG1hcC5oYXMta2V5KCRoNiwgXCJjcm9wLXRvcFwiKSwgbWFwLWdldCgkaDYsIFwiY3JvcC10b3BcIiksIGZhbHNlKTtcblxuJF9oMS1jcm9wLWJvdHRvbSA6IGlmKG1hcC5oYXMta2V5KCRoMSwgXCJjcm9wLWJvdHRvbVwiKSwgbWFwLWdldCgkaDEsIFwiY3JvcC1ib3R0b21cIiksIGZhbHNlKTtcbiRfaDItY3JvcC1ib3R0b20gOiBpZihtYXAuaGFzLWtleSgkaDIsIFwiY3JvcC1ib3R0b21cIiksIG1hcC1nZXQoJGgyLCBcImNyb3AtYm90dG9tXCIpLCBmYWxzZSk7XG4kX2gzLWNyb3AtYm90dG9tIDogaWYobWFwLmhhcy1rZXkoJGgzLCBcImNyb3AtYm90dG9tXCIpLCBtYXAtZ2V0KCRoMywgXCJjcm9wLWJvdHRvbVwiKSwgZmFsc2UpO1xuJF9oNC1jcm9wLWJvdHRvbSA6IGlmKG1hcC5oYXMta2V5KCRoNCwgXCJjcm9wLWJvdHRvbVwiKSwgbWFwLWdldCgkaDQsIFwiY3JvcC1ib3R0b21cIiksIGZhbHNlKTtcbiRfaDUtY3JvcC1ib3R0b20gOiBpZihtYXAuaGFzLWtleSgkaDUsIFwiY3JvcC1ib3R0b21cIiksIG1hcC1nZXQoJGg1LCBcImNyb3AtYm90dG9tXCIpLCBmYWxzZSk7XG4kX2g2LWNyb3AtYm90dG9tIDogaWYobWFwLmhhcy1rZXkoJGg2LCBcImNyb3AtYm90dG9tXCIpLCBtYXAtZ2V0KCRoNiwgXCJjcm9wLWJvdHRvbVwiKSwgZmFsc2UpO1xuXG5cbi8vIE1peGlucyBmb3IgZWFjaCBoZWFkaW5nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBtaXhpbiBfc2V0LWNyb3AoJGZvbnQtc2l6ZSwgJGxpbmUtaGVpZ2h0LCAkY3JvcCkge1xuXG4gIEBpZiAobWV0YS50eXBlLW9mKCRjcm9wKSA9PSAnbWFwJykge1xuXG4gICAgJGZvbnQtc2l6ZSAgIDogdW5pdC5zdHJpcCgkZm9udC1zaXplKSAqIDEwO1xuICAgICRsaW5lLWhlaWdodCA6IHVuaXQuc3RyaXAoJGxpbmUtaGVpZ2h0KTtcbiAgICAkdG9wICAgICAgICAgOiBpZihtYXAuaGFzLWtleSgkY3JvcCwgXCJ0b3BcIiksIHVuaXQuc3RyaXAobWFwLmdldCgkY3JvcCwgXCJ0b3BcIikpLCAwKTtcbiAgICAkYm90dG9tICAgICAgOiBpZihtYXAuaGFzLWtleSgkY3JvcCwgXCJib3R0b21cIiksIHVuaXQuc3RyaXAobWFwLmdldCgkY3JvcCwgXCJib3R0b21cIikpLCAwKTtcblxuICAgIEBpbmNsdWRlIGZvbnQuY3JvcCgkZm9udC1zaXplLCAkbGluZS1oZWlnaHQsICR0b3AsICRib3R0b20pO1xuXG4gIH1cblxufVxuXG5AbWl4aW4gaDEoJGZvbnQtc2l6ZS1vbmx5IDogZmFsc2UsICRjcm9wIDogJGVuYWJsZS1jcm9wcGluZykge1xuXG4gIGZvbnQtc2l6ZSA6IGZvbnQuc2l6ZSgkaDEtZm9udC1zaXplKTtcblxuICBAaWYgKCAkaDEtZm9udC1zaXplLW1pbiBhbmQgJGgxLWZvbnQtc2l6ZS1taW4gPCAkaDEtZm9udC1zaXplICkge1xuICAgIGZvbnQtc2l6ZSA6IGNsYW1wKCN7Zm9udC5zaXplKCRoMS1mb250LXNpemUtbWluKX0sICN7JGgxLXNjYWxlcn0sICN7Zm9udC5zaXplKCRoMS1mb250LXNpemUpfSk7XG4gIH1cblxuICBAaWYgbm90ICRmb250LXNpemUtb25seSB7IFxuXG4gICAgQGlmICggJGNyb3AgKSB7IFxuICAgICAgQGluY2x1ZGUgZm9udC5jcm9wKCRoMS1mb250LXNpemUsICRoMS1saW5lLWhlaWdodCwgJF9oMS1jcm9wLXRvcCwgJF9oMS1jcm9wLWJvdHRvbSApOyBcbiAgICB9IEBlbHNlIHtcbiAgICAgIGxpbmUtaGVpZ2h0IDogJGgxLWxpbmUtaGVpZ2h0OyBcbiAgICB9XG5cbiAgfVxuXG59XG5cbkBtaXhpbiBoMigkZm9udC1zaXplLW9ubHkgOiBmYWxzZSwgJGNyb3AgOiAkZW5hYmxlLWNyb3BwaW5nKSB7XG5cbiAgZm9udC1zaXplIDogZm9udC5zaXplKCRoMi1mb250LXNpemUpO1xuXG4gIEBpZiAoICRoMi1mb250LXNpemUtbWluIGFuZCAkaDItZm9udC1zaXplLW1pbiA8ICRoMi1mb250LXNpemUgKSB7XG4gICAgZm9udC1zaXplIDogY2xhbXAoI3tmb250LnNpemUoJGgyLWZvbnQtc2l6ZS1taW4pfSwgI3skaDItc2NhbGVyfSwgI3tmb250LnNpemUoJGgyLWZvbnQtc2l6ZSl9KTtcbiAgfVxuXG4gIEBpZiBub3QgJGZvbnQtc2l6ZS1vbmx5IHsgXG5cbiAgICBAaWYgKCAkY3JvcCApIHsgXG4gICAgICBAaW5jbHVkZSBmb250LmNyb3AoJGgyLWZvbnQtc2l6ZSwgJGgyLWxpbmUtaGVpZ2h0LCAkX2gyLWNyb3AtdG9wLCAkX2gyLWNyb3AtYm90dG9tICk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgbGluZS1oZWlnaHQgOiAkaDItbGluZS1oZWlnaHQ7IFxuICAgIH1cbiAgICBcbiAgfVxuXG59XG5cbkBtaXhpbiBoMygkZm9udC1zaXplLW9ubHkgOiBmYWxzZSwgJGNyb3AgOiAkZW5hYmxlLWNyb3BwaW5nKSB7XG5cbiAgZm9udC1zaXplIDogZm9udC5zaXplKCRoMy1mb250LXNpemUpO1xuXG4gIEBpZiAoICRoMy1mb250LXNpemUtbWluIGFuZCAkaDMtZm9udC1zaXplLW1pbiA8ICRoMy1mb250LXNpemUgKSB7XG4gICAgZm9udC1zaXplIDogY2xhbXAoI3tmb250LnNpemUoJGgzLWZvbnQtc2l6ZS1taW4pfSwgI3skaDMtc2NhbGVyfSwgI3tmb250LnNpemUoJGgzLWZvbnQtc2l6ZSl9KTtcbiAgfVxuXG4gIEBpZiBub3QgJGZvbnQtc2l6ZS1vbmx5IHsgXG5cbiAgICBAaWYgKCAkY3JvcCApIHsgXG4gICAgICBAaW5jbHVkZSBmb250LmNyb3AoJGgzLWZvbnQtc2l6ZSwgJGgzLWxpbmUtaGVpZ2h0LCAkX2gzLWNyb3AtdG9wLCAkX2gzLWNyb3AtYm90dG9tICk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgbGluZS1oZWlnaHQgOiAkaDMtbGluZS1oZWlnaHQ7IFxuICAgIH1cbiAgICBcbiAgfVxuXG59XG5cbkBtaXhpbiBoNCgkZm9udC1zaXplLW9ubHkgOiBmYWxzZSwgJGNyb3AgOiAkZW5hYmxlLWNyb3BwaW5nKSB7XG5cbiAgZm9udC1zaXplIDogZm9udC5zaXplKCRoNC1mb250LXNpemUpO1xuXG4gIEBpZiAoICRoNC1mb250LXNpemUtbWluIGFuZCAkaDQtZm9udC1zaXplLW1pbiA8ICRoNC1mb250LXNpemUgKSB7XG4gICAgZm9udC1zaXplIDogY2xhbXAoI3tmb250LnNpemUoJGg0LWZvbnQtc2l6ZS1taW4pfSwgI3skaDQtc2NhbGVyfSwgI3tmb250LnNpemUoJGg0LWZvbnQtc2l6ZSl9KTtcbiAgfVxuXG4gIEBpZiBub3QgJGZvbnQtc2l6ZS1vbmx5IHsgXG5cbiAgICBAaWYgKCAkY3JvcCApIHsgXG4gICAgICBAaW5jbHVkZSBmb250LmNyb3AoJGg0LWZvbnQtc2l6ZSwgJGg0LWxpbmUtaGVpZ2h0LCAkX2g0LWNyb3AtdG9wLCAkX2g0LWNyb3AtYm90dG9tICk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgbGluZS1oZWlnaHQgOiAkaDQtbGluZS1oZWlnaHQ7IFxuICAgIH1cbiAgICBcbiAgfVxuXG59XG5cbkBtaXhpbiBoNSgkZm9udC1zaXplLW9ubHkgOiBmYWxzZSwgJGNyb3AgOiAkZW5hYmxlLWNyb3BwaW5nKSB7XG5cbiAgZm9udC1zaXplIDogZm9udC5zaXplKCRoNS1mb250LXNpemUpO1xuXG4gIEBpZiAoICRoNS1mb250LXNpemUtbWluIGFuZCAkaDUtZm9udC1zaXplLW1pbiA8ICRoNS1mb250LXNpemUgKSB7XG4gICAgZm9udC1zaXplIDogY2xhbXAoI3tmb250LnNpemUoJGg1LWZvbnQtc2l6ZS1taW4pfSwgI3skaDUtc2NhbGVyfSwgI3tmb250LnNpemUoJGg1LWZvbnQtc2l6ZSl9KTtcbiAgfVxuXG4gIEBpZiBub3QgJGZvbnQtc2l6ZS1vbmx5IHsgXG5cbiAgICBAaWYgKCAkY3JvcCApIHsgXG4gICAgICBAaW5jbHVkZSBmb250LmNyb3AoJGg1LWZvbnQtc2l6ZSwgJGg1LWxpbmUtaGVpZ2h0LCAkX2g1LWNyb3AtdG9wLCAkX2g1LWNyb3AtYm90dG9tICk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgbGluZS1oZWlnaHQgOiAkaDUtbGluZS1oZWlnaHQ7IFxuICAgIH1cbiAgICBcbiAgfVxuXG59XG5cbkBtaXhpbiBoNigkZm9udC1zaXplLW9ubHkgOiBmYWxzZSwgJGNyb3AgOiAkZW5hYmxlLWNyb3BwaW5nKSB7XG5cbiAgZm9udC1zaXplIDogZm9udC5zaXplKCRoNi1mb250LXNpemUpO1xuXG4gIEBpZiAoICRoNi1mb250LXNpemUtbWluIGFuZCAkaDYtZm9udC1zaXplLW1pbiA8ICRoNi1mb250LXNpemUgKSB7XG4gICAgZm9udC1zaXplIDogY2xhbXAoI3tmb250LnNpemUoJGg2LWZvbnQtc2l6ZS1taW4pfSwgI3skaDYtc2NhbGVyfSwgI3tmb250LnNpemUoJGg2LWZvbnQtc2l6ZSl9KTtcbiAgfVxuXG4gIEBpZiBub3QgJGZvbnQtc2l6ZS1vbmx5IHsgXG5cbiAgICBAaWYgKCAkY3JvcCApIHsgXG4gICAgICBAaW5jbHVkZSBmb250LmNyb3AyKCRoNi1mb250LXNpemUsICRoNi1saW5lLWhlaWdodCwgJF9oNi1jcm9wLXRvcCwgJF9oNi1jcm9wLWJvdHRvbSApOyBcbiAgICB9IEBlbHNlIHtcbiAgICAgIGxpbmUtaGVpZ2h0IDogJGg2LWxpbmUtaGVpZ2h0OyBcbiAgICB9XG4gICAgXG4gIH1cblxufVxuXG5cbiJdfQ== */