document-viewer {
  position: relative;
}
document-viewer .text {
  margin-bottom: var(--spacer0);
}
document-viewer[data-layout=list] tr td {
  padding: 0 !important;
}
document-viewer[data-layout=list] .pdf-link {
  padding: calc(var(--gap) * 0.5) var(--gap);
  display: flex;
  text-decoration: none;
  align-items: center;
  transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
}
document-viewer[data-layout=list] .pdf-link img {
  border: 1px solid #dcdcdc;
  margin-right: var(--gap);
}
document-viewer[data-layout=list] .pdf-link span {
  margin-right: var(--gap);
}
document-viewer[data-layout=list] .pdf-link svg {
  margin-left: auto;
  --fill: #DF3035;
  width: 20px;
  height: 20px;
}
document-viewer .card .pdf-link {
  position: relative;
  padding: calc(var(--gap) * 0.5);
  text-decoration: none;
  align-items: center;
  border: 1px solid #dcdcdc;
  transition: border-color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  background-color: white;
  display: flex;
  justify-content: center;
}
document-viewer .card .pdf-link img {
  width: 100%;
  height: auto;
}
document-viewer .card .pdf-link svg {
  --fill: #DF3035;
  --icon-size: clamp(20px, 100%, 50px);
  transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275), opacity var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  position: absolute;
  top: calc(50% - var(--icon-size) / 2);
  left: calc(50% - var(--icon-size) / 2);
  width: var(--icon-size);
  height: var(--icon-size);
  opacity: 0;
}
@supports not (width: clamp(1px, 5vw, 10px)) {
  document-viewer .card .pdf-link svg {
    width: 20px;
    height: 20px;
    top: calc(50% - 10px);
    left: calc(50% - 10px);
  }
}
@media (hover: hover) {
  document-viewer .card .pdf-link:hover {
    border-color: #DF3035;
    transform: scale(1.05);
  }
  document-viewer .card .pdf-link:hover svg {
    transform: scale(1.2);
    opacity: 1 !important;
  }
}
document-viewer[data-layout=grid] .container {
  display: grid;
  grid-gap: var(--gutter2) var(--gutter1);
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
}
@media (max-width: 1120px) {
  document-viewer[data-layout=grid] .container {
    grid-template-columns: repeat(4, 1fr);
  }
}
@media (max-width: 480px) {
  document-viewer[data-layout=grid] .container {
    grid-template-columns: repeat(2, 1fr);
  }
}
document-viewer[data-layout=grid] .card {
  display: flex;
  flex-direction: column;
}
document-viewer[data-layout=grid] .card span {
  margin-top: calc(var(--gap) * 0.5);
  font-weight: bold;
  color: #131f6b;
  font-size: 0.875em;
}
document-viewer[data-layout=scroller] {
  position: relative;
}
@media (min-width: 981px) {
  document-viewer[data-layout=scroller] {
    display: grid;
    flex-direction: column;
    grid-template-columns: 1fr minmax(var(--featured-card-width), auto);
    grid-template-rows: repeat(2, auto);
    grid-gap: 0 var(--gutter3);
    justify-items: flex-end;
    --card-width: 220px;
    --featured-card-width: 350px;
  }
  document-viewer[data-layout=scroller].loading .featured.card::after {
    opacity: 1;
    animation-play-state: running;
  }
  document-viewer[data-layout=scroller].loading .featured.card img,
  document-viewer[data-layout=scroller].loading .featured.card span {
    opacity: 0;
  }
  document-viewer[data-layout=scroller].loading .container,
  document-viewer[data-layout=scroller].loading .featured.card {
    pointer-events: none;
  }
  document-viewer[data-layout=scroller] .introduction.text {
    grid-column: 1;
    grid-row: 1;
    height: -moz-fit-content;
    height: fit-content;
    max-width: 900px;
    justify-self: flex-start;
    margin-bottom: 0;
  }
  document-viewer[data-layout=scroller] .container {
    display: flex;
    position: relative;
    height: -moz-fit-content;
    height: fit-content;
    width: calc(100% + var(--computed-gutter) + var(--gutter3));
    left: var(--gutter3);
    box-sizing: border-box;
    grid-column: 1;
    grid-row: 2;
    overflow: hidden;
    padding-left: calc(var(--computed-gutter));
    padding-right: var(--gutter3);
    padding-top: var(--spacer1);
    padding-bottom: var(--spacer1);
    scroll-behavior: smooth;
  }
  document-viewer[data-layout=scroller] .container .bounds {
    display: grid;
    grid-gap: var(--gutter2);
  }
  document-viewer[data-layout=scroller] .container .bounds .card {
    width: var(--card-width);
    grid-row: 1;
    scroll-snap-align: start;
  }
  document-viewer[data-layout=scroller] .container .bounds .card .pdf-link {
    height: 100%;
  }
  document-viewer[data-layout=scroller] .container .bounds .card .pdf-link svg {
    display: none;
  }
  document-viewer[data-layout=scroller] .container .bounds .card span {
    position: relative;
    bottom: -1.5rem;
  }
  :root:not([data-browser-feature*=touch]) document-viewer[data-layout=scroller] .container ~ button.navigation {
    opacity: 0;
  }
}
@media (min-width: 981px) and (hover: hover) {
  :root:not([data-browser-feature*=touch]) document-viewer[data-layout=scroller] .container:hover ~ button.navigation {
    opacity: 1;
  }
}
@media (min-width: 981px) {
  :root[data-browser-feature*=touch] document-viewer[data-layout=scroller] .container {
    overflow-x: auto;
  }
  document-viewer[data-layout=scroller].scrolled-right button.next, document-viewer[data-layout=scroller].scrolled-left button.previous {
    pointer-events: none;
    opacity: 0 !important;
  }
  document-viewer[data-layout=scroller] button.navigation {
    --button-size: 40px;
    grid-column: 1;
    grid-row: 2;
    background-color: white;
    border: 1px solid #dcdcdc;
    border-radius: 50%;
    z-index: 1;
    width: var(--button-size);
    height: var(--button-size);
    position: relative;
    display: flex;
    place-items: center;
    place-content: center;
    align-self: center;
    color: #6A6A6A;
    transition: background-color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), opacity var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  }
  document-viewer[data-layout=scroller] button.navigation.previous {
    justify-self: flex-start;
    left: var(--gutter2-);
  }
  document-viewer[data-layout=scroller] button.navigation.previous svg {
    margin-left: -2px;
  }
  document-viewer[data-layout=scroller] button.navigation.next {
    justify-self: flex-end;
    left: var(--gutter2);
  }
  document-viewer[data-layout=scroller] button.navigation.next svg {
    margin-left: 2px;
  }
  document-viewer[data-layout=scroller] button.navigation svg {
    width: calc(var(--button-size) / 2.5);
    height: calc(var(--button-size) / 2.5);
  }
}
@media (min-width: 981px) and (hover: hover) {
  document-viewer[data-layout=scroller] button.navigation:hover {
    transform: scale(1.1);
    background-color: #3d3f7f;
    color: white;
    opacity: 1 !important;
    border-color: transparent;
  }
}
@media (min-width: 981px) {
  document-viewer[data-layout=scroller] .card:not(.featured) > span {
    color: #B1B1B1;
  }
  document-viewer[data-layout=scroller] .card {
    text-align: center;
  }
  document-viewer[data-layout=scroller] .card.featured {
    grid-column: 2;
    position: relative;
    grid-row: 1/span 2;
    max-width: 500px;
    width: clamp(350px, 30vw, 500px);
    height: -moz-fit-content;
    height: fit-content;
    z-index: 1;
    align-self: end;
    --aspect-ratio: 216/300;
    aspect-ratio: var(--aspect-ratio);
  }
  document-viewer[data-layout=scroller] .card.featured img {
    transition: opacity var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  }
  @supports not (aspect-ratio: 216/300) {
    document-viewer[data-layout=scroller] .card.featured {
      aspect-ratio: initial;
      padding-bottom: calc(100% / (var(--aspect-ratio)));
      height: 0;
    }
    document-viewer[data-layout=scroller] .card.featured > * {
      position: absolute;
    }
  }
  document-viewer[data-layout=scroller] .card.featured::after {
    --size: 12px;
    content: "";
    position: absolute;
    top: calc(50% - var(--size) / 2);
    left: calc(50% - var(--size) / 2);
    opacity: 0;
    width: var(--size);
    height: var(--size);
    border-radius: 50%;
    border: 2px solid var(--loader-colour, #969695);
    border-top-color: transparent;
    border-bottom-color: transparent;
    animation-name: loader-rotate;
    animation-duration: 0.5s;
    animation-iteration-count: infinite;
    transition: opacity 0.2s cubic-bezier(0.42, 0, 0.58, 1);
    animation-play-state: paused;
    top: calc(50% - 10px);
    left: calc(50% - 10px);
  }
  @keyframes loader-rotate {
    from {
      transform: rotate(180deg);
    }
    to {
      transform: rotate(0deg);
    }
  }
  document-viewer[data-layout=scroller] .card.featured + .card.featured {
    opacity: 0;
  }
  document-viewer[data-layout=scroller] .card.featured .pdf-link {
    height: 100%;
  }
  document-viewer[data-layout=scroller] .card.featured .pdf-link svg {
    opacity: 0;
  }
  document-viewer[data-layout=scroller] .card.featured span {
    display: block;
    width: 100%;
    text-align: center;
    margin-top: var(--spacer0);
    position: absolute;
    left: 0;
    top: 100%;
    transition: color var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, ), opacity var(--transition-duration, 0.2s) var(--transition-ease, cubic-bezier(0.42, 0, 0.58, 1)) var(--transition-delay, );
  }
  document-viewer[data-layout=scroller] .card.featured a {
    display: flex;
  }
  @supports not (aspect-ratio: 1/1) {
    document-viewer[data-layout=scroller] .card.featured a {
      position: absolute;
      place-items: center;
      place-content: center;
    }
  }
}
@media (min-width: 981px) and (hover: hover) {
  document-viewer[data-layout=scroller] .card.featured:hover span {
    color: #969695;
  }
}
@media (min-width: 981px) {
  document-viewer[data-layout=scroller] .card .pdf-link {
    box-shadow: 0px 0px 20px 3px rgba(0, 0, 0, 0.1);
  }
  document-viewer[data-layout=scroller] .card .pdf-link.active {
    border-color: #DF3035;
  }
}
@media (min-width: 981px) and (max-width: 1816px) {
  document-viewer[data-layout=scroller] button.navigation.previous {
    left: 0;
  }
}
@media (min-width: 981px) and (max-width: 1744px) {
  document-viewer[data-layout=scroller] .container {
    width: calc(100% + var(--gutter5));
    left: var(--gutter3);
    padding-left: var(--gutter1);
  }
}
@media (max-width: 980px) {
  document-viewer[data-layout=scroller] .bounds {
    display: grid;
    grid-gap: var(--gutter2) var(--gutter1);
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  }
}
@media (max-width: 980px) and (max-width: 1120px) {
  document-viewer[data-layout=scroller] .bounds {
    grid-template-columns: repeat(4, 1fr);
  }
}
@media (max-width: 980px) and (max-width: 480px) {
  document-viewer[data-layout=scroller] .bounds {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 980px) {
  document-viewer[data-layout=scroller] .card {
    display: flex;
    flex-direction: column;
  }
  document-viewer[data-layout=scroller] .card.featured {
    display: none;
  }
  document-viewer[data-layout=scroller] .card span {
    margin-top: calc(var(--gap) * 0.5);
    font-weight: bold;
    color: #131f6b;
    font-size: 0.875em;
    text-align: center;
  }
  document-viewer[data-layout=scroller] button.navigation {
    display: none;
  }
}

main ~ document-viewer {
  padding-top: var(--spacer1);
  padding-bottom: var(--spacer2);
}
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZG9jdW1lbnQtdmlld2VyLnNjc3MiLCJjb21wb25lbnRzL2RvY3VtZW50LXZpZXdlci5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGRvZ2dpc3R5bGUvc2Fzcy9saWJyYXJ5L3NyYy9jcmVhdGUvX3VuaXRzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGRvZ2dpc3R5bGUvc2Fzcy9saWJyYXJ5L3NyYy9jb2xsZWN0aW9ucy9zdHlsaW5nL19ob3Zlci5zY3NzIiwiX3ZhcmlhYmxlcy9jb2xvdXJzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGRvZ2dpc3R5bGUvc2Fzcy9saWJyYXJ5L3NyYy9oZWxwZXJzL19icmVhay5zY3NzIiwiX2VsZW1lbnRzL2xvYWRlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0Bkb2dnaXN0eWxlL3Nhc3MvbGlicmFyeS9zcmMvaGVscGVycy9fYnJvd3Nlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0Bkb2dnaXN0eWxlL3Nhc3MvbGlicmFyeS9zcmMvY29sbGVjdGlvbnMvc3R5bGluZy9fYXNwZWN0LXJhdGlvLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUE7RUFDRSxrQkFBQTtBQ0xGO0FET0U7RUFDRSw2QkU4Rk87QURuR1g7QURTSTtFQUNFLHFCQUFBO0FDUE47QURTSTtFQUNFLDBDQUFBO0VBQ0EsYUFBQTtFQUNBLHFCQUFBO0VBQ0EsbUJBQUE7RUFDQSxtSUFBQTtBQ1BOO0FEUU07RUFDRSx5QkFBQTtFQUNBLHdCRTBCQTtBRGhDUjtBRFFNO0VBQ0Usd0JFdUJBO0FEN0JSO0FEUU07RUFDRSxpQkFBQTtFQUNBLGVBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtBQ05SO0FEV0U7RUFDRSxrQkFBQTtFQUNBLCtCRVNJO0VGUkoscUJBQUE7RUFDQSxtQkFBQTtFQUNBLHlCQUFBO0VBQ0Esa01BQUE7RUFDQSx1QkFBQTtFQUNBLGFBQUE7RUFDQSx1QkFBQTtBQ1RKO0FEV0k7RUFD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VkU7RUxrVUk7SUFTSSxxQ0FBQTtFQ21CUjtBQUNGO0FJL1ZFO0VMK1VJO0lBQ0UsYUFBQTtJQUNBLHNCQUFBO0VDbUJOO0VEakJNO0lBQ0UsYUFBQTtFQ21CUjtFRGpCTTtJQUNFLGtDRWhURjtJRmlURSxpQkFBQTtJQUNBLGNJbFZBO0lKbVZBLGtCQUFBO0lBQ0Esa0JBQUE7RUNtQlI7RURoQkk7SUFDRSxhQUFBO0VDa0JOO0FBQ0Y7O0FEWkE7RUFDRSwyQkV6UVM7RUYwUVQsOEJFelFTO0FEd1JYIiwiZmlsZSI6ImNvbXBvbmVudHMvZG9jdW1lbnQtdmlld2VyLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJ3Nhc3M6bWF0aCc7XG5cbkB1c2UgJ19tb2R1bGVzJyBhcyAqO1xuXG4kYnV0dG9uLXNpemU6IDQwcHg7XG5cbmRvY3VtZW50LXZpZXdlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAudGV4dCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJHNwYWNlcjA7XG4gIH1cblxuICAmW2RhdGEtbGF5b3V0PSdsaXN0J10ge1xuICAgIHRyIHRkIHtcbiAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgLnBkZi1saW5rIHtcbiAgICAgIHBhZGRpbmc6ICRnYXAwICRnYXA7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIHRyYW5zaXRpb246IGNvbG9yICR0cmFuc2l0aW9uO1xuICAgICAgaW1nIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGdyZXk0O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRnYXA7XG4gICAgICB9XG4gICAgICBzcGFuIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkZ2FwO1xuICAgICAgfVxuICAgICAgc3ZnIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIC0tZmlsbDogI3skcmVkfTtcbiAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuY2FyZCAucGRmLWxpbmsge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiAkZ2FwMDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkZ3JleTQ7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yICR0cmFuc2l0aW9uLCB0cmFuc2Zvcm0gMC4zcyAkZWFzZS1vdXQtYmFjaztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgaW1nIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cblxuICAgIHN2ZyB7XG4gICAgICAtLWZpbGw6ICN7JHJlZH07XG4gICAgICAtLWljb24tc2l6ZTogY2xhbXAoMjBweCwgMTAwJSwgNTBweCk7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyAkZWFzZS1vdXQtYmFjaywgb3BhY2l0eSAkdHJhbnNpdGlvbjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgdG9wOiBjYWxjKDUwJSAtICh2YXIoLS1pY29uLXNpemUpIC8gMikpO1xuICAgICAgbGVmdDogY2FsYyg1MCUgLSAodmFyKC0taWNvbi1zaXplKSAvIDIpKTtcbiAgICAgIHdpZHRoOiB2YXIoLS1pY29uLXNpemUpO1xuICAgICAgaGVpZ2h0OiB2YXIoLS1pY29uLXNpemUpO1xuICAgICAgb3BhY2l0eTogMDtcblxuICAgICAgQHN1cHBvcnRzIG5vdCAod2lkdGg6IGNsYW1wKDFweCwgNXZ3LCAxMHB4KSkge1xuICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICB0b3A6IGNhbGMoNTAlIC0gMTBweCk7XG4gICAgICAgIGxlZnQ6IGNhbGMoNTAlIC0gMTBweCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgaG92ZXIge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkcmVkO1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcbiAgICAgIHN2ZyB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4yKTtcbiAgICAgICAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZbZGF0YS1sYXlvdXQ9J2dyaWQnXSB7XG4gICAgLmNvbnRhaW5lciB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC1nYXA6ICRndXR0ZXIyICRndXR0ZXI7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgyMDBweCwgMWZyKSk7XG4gICAgICAvLyBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gICAgICBAaW5jbHVkZSBicmVhay1pbihtZWRpdW0pIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIGJyZWFrLWluKHNtYWxsKSB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmNhcmQge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBzcGFuIHtcbiAgICAgICAgbWFyZ2luLXRvcDogJGdhcDA7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBjb2xvcjogJGJsdWU7XG4gICAgICAgIGZvbnQtc2l6ZTogZm9udC1zaXplKDE0KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmW2RhdGEtbGF5b3V0PSdzY3JvbGxlciddIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBAaW5jbHVkZSBicmVhay1vdXQoJ3NtYWxsLW1lZGl1bScpIHtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgbWlubWF4KHZhcigtLWZlYXR1cmVkLWNhcmQtd2lkdGgpLCBhdXRvKTtcbiAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogcmVwZWF0KDIsIGF1dG8pO1xuICAgICAgZ3JpZC1nYXA6IDAgJGd1dHRlcjM7XG4gICAgICBqdXN0aWZ5LWl0ZW1zOiBmbGV4LWVuZDtcblxuICAgICAgLS1jYXJkLXdpZHRoOiAyMjBweDtcbiAgICAgIC0tZmVhdHVyZWQtY2FyZC13aWR0aDogMzUwcHg7XG5cbiAgICAgICYubG9hZGluZyB7XG4gICAgICAgIC5mZWF0dXJlZC5jYXJkIHtcbiAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBsb2FkZXItYW5pbWF0aW9uO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpbWcsXG4gICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuY29udGFpbmVyLFxuICAgICAgICAuZmVhdHVyZWQuY2FyZCB7XG4gICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmludHJvZHVjdGlvbi50ZXh0IHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgIGdyaWQtcm93OiAxO1xuICAgICAgICBoZWlnaHQ6IGZpdC1jb250ZW50O1xuICAgICAgICBtYXgtd2lkdGg6IDkwMHB4O1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IGZsZXgtc3RhcnQ7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB9XG5cbiAgICAgIC5jb250YWluZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGhlaWdodDogZml0LWNvbnRlbnQ7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyB2YXIoLS1jb21wdXRlZC1ndXR0ZXIpICsgI3skZ3V0dGVyM30pO1xuICAgICAgICBsZWZ0OiAkZ3V0dGVyMztcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgIGdyaWQtcm93OiAyO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IGNhbGModmFyKC0tY29tcHV0ZWQtZ3V0dGVyKSk7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRndXR0ZXIzO1xuICAgICAgICBwYWRkaW5nLXRvcDogJHNwYWNlcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICRzcGFjZXI7XG4gICAgICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xuICAgICAgICAuYm91bmRzIHtcbiAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgIGdyaWQtZ2FwOiAkZ3V0dGVyMjtcbiAgICAgICAgICAuY2FyZCB7XG4gICAgICAgICAgICB3aWR0aDogdmFyKC0tY2FyZC13aWR0aCk7XG4gICAgICAgICAgICBncmlkLXJvdzogMTtcbiAgICAgICAgICAgIHNjcm9sbC1zbmFwLWFsaWduOiBzdGFydDtcbiAgICAgICAgICAgIC5wZGYtbGluayB7XG4gICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgIGJvdHRvbTogLTEuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgYnJvd3Nlci13aXRob3V0LWZlYXR1cmUoJ3RvdWNoJykge1xuICAgICAgICAgIH4gYnV0dG9uLm5hdmlnYXRpb24ge1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICB9XG4gICAgICAgICAgQGluY2x1ZGUgaG92ZXIge1xuICAgICAgICAgICAgfiBidXR0b24ubmF2aWdhdGlvbiB7XG4gICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIGJyb3dzZXItZmVhdHVyZSgndG91Y2gnKSB7XG4gICAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLnNjcm9sbGVkLXJpZ2h0IGJ1dHRvbi5uZXh0LFxuICAgICAgJi5zY3JvbGxlZC1sZWZ0IGJ1dHRvbi5wcmV2aW91cyB7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICBvcGFjaXR5OiAwICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICAgIGJ1dHRvbi5uYXZpZ2F0aW9uIHtcbiAgICAgICAgLS1idXR0b24tc2l6ZTogI3skYnV0dG9uLXNpemV9O1xuICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgZ3JpZC1yb3c6IDI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkZ3JleTQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgd2lkdGg6IHZhcigtLWJ1dHRvbi1zaXplKTtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1idXR0b24tc2l6ZSk7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcGxhY2UtY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgIGNvbG9yOiAkZ3JleTI7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgJHRyYW5zaXRpb24sIGNvbG9yICR0cmFuc2l0aW9uLCBvcGFjaXR5ICR0cmFuc2l0aW9uLCB0cmFuc2Zvcm0gMC4zcyAkZWFzZS1vdXQtYmFjaztcbiAgICAgICAgJi5wcmV2aW91cyB7XG4gICAgICAgICAganVzdGlmeS1zZWxmOiBmbGV4LXN0YXJ0O1xuICAgICAgICAgIGxlZnQ6ICRndXR0ZXIyLTtcbiAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0ycHg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYubmV4dCB7XG4gICAgICAgICAganVzdGlmeS1zZWxmOiBmbGV4LWVuZDtcbiAgICAgICAgICBsZWZ0OiAkZ3V0dGVyMjtcbiAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDJweDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICB3aWR0aDogY2FsYyh2YXIoLS1idXR0b24tc2l6ZSkgLyAyLjUpO1xuICAgICAgICAgIGhlaWdodDogY2FsYyh2YXIoLS1idXR0b24tc2l6ZSkgLyAyLjUpO1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIGhvdmVyIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWUzO1xuICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuY2FyZDpub3QoLmZlYXR1cmVkKSB7XG4gICAgICAgID4gc3BhbiB7XG4gICAgICAgICAgY29sb3I6ICRncmV5NTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuY2FyZCB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmLmZlYXR1cmVkIHtcbiAgICAgICAgICBncmlkLWNvbHVtbjogMjtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgZ3JpZC1yb3c6IDEgLyBzcGFuIDI7XG4gICAgICAgICAgbWF4LXdpZHRoOiA1MDBweDtcbiAgICAgICAgICB3aWR0aDogY2xhbXAoMzUwcHgsIDMwdncsIDUwMHB4KTtcbiAgICAgICAgICBoZWlnaHQ6IGZpdC1jb250ZW50O1xuICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgYWxpZ24tc2VsZjogZW5kO1xuXG4gICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJHRyYW5zaXRpb247XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpbmNsdWRlIGFzcGVjdC1yYXRpbygnMjE2LzMwMCcpO1xuICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGxvYWRlcigpO1xuICAgICAgICAgICAgdG9wOiBjYWxjKDUwJSAtIDEwcHgpO1xuICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAxMHB4KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgKyAuY2FyZC5mZWF0dXJlZCB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgICAucGRmLWxpbmsge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHNwYWNlcjA7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgJHRyYW5zaXRpb24sIG9wYWNpdHkgJHRyYW5zaXRpb247XG4gICAgICAgICAgfVxuICAgICAgICAgIGEge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIEBzdXBwb3J0cyBub3QgKGFzcGVjdC1yYXRpbzogMS8xKSB7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgcGxhY2UtY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBAaW5jbHVkZSBob3ZlciB7XG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgY29sb3I6ICRncmV5O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAucGRmLWxpbmsge1xuICAgICAgICAgIGJveC1zaGFkb3c6IDBweCAwcHggMjBweCAzcHggcmdiYShibGFjaywgMC4xKTtcbiAgICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRyZWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrLWluKCRicmVhay1tYXggKyAoJGJhc2UtZ2FwICogNikgKyAkYnV0dG9uLXNpemUpIHtcbiAgICAgICAgYnV0dG9uLm5hdmlnYXRpb24ucHJldmlvdXMge1xuICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIGJyZWFrLWluKCRicmVhay1tYXggKyAoJGJhc2UtZ2FwICogNCkpIHtcbiAgICAgICAgLmNvbnRhaW5lciB7XG4gICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArICN7JGd1dHRlcjV9KTtcbiAgICAgICAgICBsZWZ0OiAkZ3V0dGVyMztcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRndXR0ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWstaW4oJ3NtYWxsLW1lZGl1bScpIHtcbiAgICAgIC5ib3VuZHMge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLWdhcDogJGd1dHRlcjIgJGd1dHRlcjtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMjAwcHgsIDFmcikpO1xuICAgICAgICAvLyBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrLWluKG1lZGl1bSkge1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIDFmcik7XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgYnJlYWstaW4oc21hbGwpIHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5jYXJkIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgLy8gaGVpZ2h0OiBmaXQtY29udGVudDtcbiAgICAgICAgJi5mZWF0dXJlZCB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAkZ2FwMDtcbiAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICBjb2xvcjogJGJsdWU7XG4gICAgICAgICAgZm9udC1zaXplOiBmb250LXNpemUoMTQpO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYnV0dG9uLm5hdmlnYXRpb24ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gQHNlZSBodHRwOi8vd3d3LnJpZ2h0b25ibGFja2J1cm5zLmxvYy9zZXJ2aWNlcy92YWx1ZS1hZGRlZC1zZXJ2aWNlc1xubWFpbiB+IGRvY3VtZW50LXZpZXdlciB7XG4gIHBhZGRpbmctdG9wOiAkc3BhY2VyO1xuICBwYWRkaW5nLWJvdHRvbTogJHNwYWNlcjI7XG59XG4iLCJkb2N1bWVudC12aWV3ZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5kb2N1bWVudC12aWV3ZXIgLnRleHQge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjZXIwKTtcbn1cbmRvY3VtZW50LXZpZXdlcltkYXRhLWxheW91dD1saXN0XSB0ciB0ZCB7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbn1cbmRvY3VtZW50LXZpZXdlcltkYXRhLWxheW91dD1saXN0XSAucGRmLWxpbmsge1xuICBwYWRkaW5nOiBjYWxjKHZhcigtLWdhcCkgKiAwLjUpIHZhcigtLWdhcCk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG59XG5kb2N1bWVudC12aWV3ZXJbZGF0YS1sYXlvdXQ9bGlzdF0gLnBkZi1saW5rIGltZyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkY2RjZGM7XG4gIG1hcmdpbi1yaWdodDogdmFyKC0tZ2FwKTtcbn1cbmRvY3VtZW50LXZpZXdlcltkYXRhLWxheW91dD1saXN0XSAucGRmLWxpbmsgc3BhbiB7XG4gIG1hcmdpbi1yaWdodDogdmFyKC0tZ2FwKTtcbn1cbmRvY3VtZW50LXZpZXdlcltkYXRhLWxheW91dD1saXN0XSAucGRmLWxpbmsgc3ZnIHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIC0tZmlsbDogI0RGMzAzNTtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbn1cbmRvY3VtZW50LXZpZXdlciAuY2FyZCAucGRmLWxpbmsge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IGNhbGModmFyKC0tZ2FwKSAqIDAuNSk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RjZGNkYztcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApLCB0cmFuc2Zvcm0gMC4zcyBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjI3NSk7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbmRvY3VtZW50LXZpZXdlciAuY2FyZCAucGRmLWxpbmsgaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbn1cbmRvY3VtZW50LXZpZXdlciAuY2FyZCAucGRmLWxpbmsgc3ZnIHtcbiAgLS1maWxsOiAjREYzMDM1O1xuICAtLWljb24tc2l6ZTogY2xhbXAoMjBweCwgMTAwJSwgNTBweCk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIsIDEuMjc1KSwgb3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGMoNTAlIC0gdmFyKC0taWNvbi1zaXplKSAvIDIpO1xuICBsZWZ0OiBjYWxjKDUwJSAtIHZhcigtLWljb24tc2l6ZSkgLyAyKTtcbiAgd2lkdGg6IHZhcigtLWljb24tc2l6ZSk7XG4gIGhlaWdodDogdmFyKC0taWNvbi1zaXplKTtcbiAgb3BhY2l0eTogMDtcbn1cbkBzdXBwb3J0cyBub3QgKHdpZHRoOiBjbGFtcCgxcHgsIDV2dywgMTBweCkpIHtcbiAgZG9jdW1lbnQtdmlld2VyIC5jYXJkIC5wZGYtbGluayBzdmcge1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICB0b3A6IGNhbGMoNTAlIC0gMTBweCk7XG4gICAgbGVmdDogY2FsYyg1MCUgLSAxMHB4KTtcbiAgfVxufVxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgZG9jdW1lbnQtdmlld2VyIC5jYXJkIC5wZGYtbGluazpob3ZlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAjREYzMDM1O1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG4gIH1cbiAgZG9jdW1lbnQtdmlld2VyIC5jYXJkIC5wZGYtbGluazpob3ZlciBzdmcge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4yKTtcbiAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG4gIH1cbn1cbmRvY3VtZW50LXZpZXdlcltkYXRhLWxheW91dD1ncmlkXSAuY29udGFpbmVyIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC1nYXA6IHZhcigtLWd1dHRlcjIpIHZhcigtLWd1dHRlcjEpO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgyMDBweCwgMWZyKSk7XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTEyMHB4KSB7XG4gIGRvY3VtZW50LXZpZXdlcltkYXRhLWxheW91dD1ncmlkXSAuY29udGFpbmVyIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCAxZnIpO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgZG9jdW1lbnQtdmlld2VyW2RhdGEtbGF5b3V0PWdyaWRdIC5jb250YWluZXIge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gIH1cbn1cbmRvY3VtZW50LXZpZXdlcltkYXRhLWxheW91dD1ncmlkXSAuY2FyZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5kb2N1bWVudC12aWV3ZXJbZGF0YS1sYXlvdXQ9Z3JpZF0gLmNhcmQgc3BhbiB7XG4gIG1hcmdpbi10b3A6IGNhbGModmFyKC0tZ2FwKSAqIDAuNSk7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogIzEzMWY2YjtcbiAgZm9udC1zaXplOiAwLjg3NWVtO1xufVxuZG9jdW1lbnQtdmlld2VyW2RhdGEtbGF5b3V0PXNjcm9sbGVyXSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5ODFweCkge1xuICBkb2N1bWVudC12aWV3ZXJbZGF0YS1sYXlvdXQ9c2Nyb2xsZXJdIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgbWlubWF4KHZhcigtLWZlYXR1cmVkLWNhcmQtd2lkdGgpLCBhdXRvKTtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IHJlcGVhdCgyLCBhdXRvKTtcbiAgICBncmlkLWdhcDogMCB2YXIoLS1ndXR0ZXIzKTtcbiAgICBqdXN0aWZ5LWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAtLWNhcmQtd2lkdGg6IDIyMHB4O1xuICAgIC0tZmVhdHVyZWQtY2FyZC13aWR0aDogMzUwcHg7XG4gIH1cbiAgZG9jdW1lbnQtdmlld2VyW2RhdGEtbGF5b3V0PXNjcm9sbGVyXS5sb2FkaW5nIC5mZWF0dXJlZC5jYXJkOjphZnRlciB7XG4gICAgb3BhY2l0eTogMTtcbiAgICBhbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZztcbiAgfVxuICBkb2N1bWVudC12aWV3ZXJbZGF0YS1sYXlvdXQ9c2Nyb2xsZXJdLmxvYWRpbmcgLmZlYXR1cmVkLmNhcmQgaW1nLFxuICBkb2N1bWVudC12aWV3ZXJbZGF0YS1sYXlvdXQ9c2Nyb2xsZXJdLmxvYWRpbmcgLmZlYXR1cmVkLmNhcmQgc3BhbiB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICBkb2N1bWVudC12aWV3ZXJbZGF0YS1sYXlvdXQ9c2Nyb2xsZXJdLmxvYWRpbmcgLmNvbnRhaW5lcixcbiAgZG9jdW1lbnQtdmlld2VyW2RhdGEtbGF5b3V0PXNjcm9sbGVyXS5sb2FkaW5nIC5mZWF0dXJlZC5jYXJkIHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxuICBkb2N1bWVudC12aWV3ZXJbZGF0YS1sYXlvdXQ9c2Nyb2xsZXJdIC5pbnRyb2R1Y3Rpb24udGV4dCB7XG4gICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgZ3JpZC1yb3c6IDE7XG4gICAgaGVpZ2h0OiBmaXQtY29udGVudDtcbiAgICBtYXgtd2lkdGg6IDkwMHB4O1xuICAgIGp1c3RpZnktc2VsZjogZmxleC1zdGFydDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG4gIGRvY3VtZW50LXZpZXdlcltkYXRhLWxheW91dD1zY3JvbGxlcl0gLmNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiBmaXQtY29udGVudDtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgdmFyKC0tY29tcHV0ZWQtZ3V0dGVyKSArIHZhcigtLWd1dHRlcjMpKTtcbiAgICBsZWZ0OiB2YXIoLS1ndXR0ZXIzKTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGdyaWQtY29sdW1uOiAxO1xuICAgIGdyaWQtcm93OiAyO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZy1sZWZ0OiBjYWxjKHZhcigtLWNvbXB1dGVkLWd1dHRlcikpO1xuICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLWd1dHRlcjMpO1xuICAgIHBhZGRpbmctdG9wOiB2YXIoLS1zcGFjZXIxKTtcbiAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tc3BhY2VyMSk7XG4gICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XG4gIH1cbiAgZG9jdW1lbnQtdmlld2VyW2RhdGEtbGF5b3V0PXNjcm9sbGVyXSAuY29udGFpbmVyIC5ib3VuZHMge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC1nYXA6IHZhcigtLWd1dHRlcjIpO1xuICB9XG4gIGRvY3VtZW50LXZpZXdlcltkYXRhLWxheW91dD1zY3JvbGxlcl0gLmNvbnRhaW5lciAuYm91bmRzIC5jYXJkIHtcbiAgICB3aWR0aDogdmFyKC0tY2FyZC13aWR0aCk7XG4gICAgZ3JpZC1yb3c6IDE7XG4gICAgc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0O1xuICB9XG4gIGRvY3VtZW50LXZpZXdlcltkYXRhLWxheW91dD1zY3JvbGxlcl0gLmNvbnRhaW5lciAuYm91bmRzIC5jYXJkIC5wZGYtbGluayB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG4gIGRvY3VtZW50LXZpZXdlcltkYXRhLWxheW91dD1zY3JvbGxlcl0gLmNvbnRhaW5lciAuYm91bmRzIC5jYXJkIC5wZGYtbGluayBzdmcge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgZG9jdW1lbnQtdmlld2VyW2RhdGEtbGF5b3V0PXNjcm9sbGVyXSAuY29udGFpbmVyIC5ib3VuZHMgLmNhcmQgc3BhbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvdHRvbTogLTEuNXJlbTtcbiAgfVxuICA6cm9vdDpub3QoW2RhdGEtYnJvd3Nlci1mZWF0dXJlKj10b3VjaF0pIGRvY3VtZW50LXZpZXdlcltkYXRhLWxheW91dD1zY3JvbGxlcl0gLmNvbnRhaW5lciB+IGJ1dHRvbi5uYXZpZ2F0aW9uIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTgxcHgpIGFuZCAoaG92ZXI6IGhvdmVyKSB7XG4gIDpyb290Om5vdChbZGF0YS1icm93c2VyLWZlYXR1cmUqPXRvdWNoXSkgZG9jdW1lbnQtdmlld2VyW2RhdGEtbGF5b3V0PXNjcm9sbGVyXSAuY29udGFpbmVyOmhvdmVyIH4gYnV0dG9uLm5hdmlnYXRpb24ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5ODFweCkge1xuICA6cm9vdFtkYXRhLWJyb3dzZXItZmVhdHVyZSo9dG91Y2hdIGRvY3VtZW50LXZpZXdlcltkYXRhLWxheW91dD1zY3JvbGxlcl0gLmNvbnRhaW5lciB7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgfVxuICBkb2N1bWVudC12aWV3ZXJbZGF0YS1sYXlvdXQ9c2Nyb2xsZXJdLnNjcm9sbGVkLXJpZ2h0IGJ1dHRvbi5uZXh0LCBkb2N1bWVudC12aWV3ZXJbZGF0YS1sYXlvdXQ9c2Nyb2xsZXJdLnNjcm9sbGVkLWxlZnQgYnV0dG9uLnByZXZpb3VzIHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBvcGFjaXR5OiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgZG9jdW1lbnQtdmlld2VyW2RhdGEtbGF5b3V0PXNjcm9sbGVyXSBidXR0b24ubmF2aWdhdGlvbiB7XG4gICAgLS1idXR0b24tc2l6ZTogNDBweDtcbiAgICBncmlkLWNvbHVtbjogMTtcbiAgICBncmlkLXJvdzogMjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGNkY2RjO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB6LWluZGV4OiAxO1xuICAgIHdpZHRoOiB2YXIoLS1idXR0b24tc2l6ZSk7XG4gICAgaGVpZ2h0OiB2YXIoLS1idXR0b24tc2l6ZSk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICBwbGFjZS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgIGNvbG9yOiAjNkE2QTZBO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICksIGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApLCBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24sIDAuMnMpIHZhcigtLXRyYW5zaXRpb24tZWFzZSwgY3ViaWMtYmV6aWVyKDAuNDIsIDAsIDAuNTgsIDEpKSB2YXIoLS10cmFuc2l0aW9uLWRlbGF5LCApLCB0cmFuc2Zvcm0gMC4zcyBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjI3NSk7XG4gIH1cbiAgZG9jdW1lbnQtdmlld2VyW2RhdGEtbGF5b3V0PXNjcm9sbGVyXSBidXR0b24ubmF2aWdhdGlvbi5wcmV2aW91cyB7XG4gICAganVzdGlmeS1zZWxmOiBmbGV4LXN0YXJ0O1xuICAgIGxlZnQ6IHZhcigtLWd1dHRlcjItKTtcbiAgfVxuICBkb2N1bWVudC12aWV3ZXJbZGF0YS1sYXlvdXQ9c2Nyb2xsZXJdIGJ1dHRvbi5uYXZpZ2F0aW9uLnByZXZpb3VzIHN2ZyB7XG4gICAgbWFyZ2luLWxlZnQ6IC0ycHg7XG4gIH1cbiAgZG9jdW1lbnQtdmlld2VyW2RhdGEtbGF5b3V0PXNjcm9sbGVyXSBidXR0b24ubmF2aWdhdGlvbi5uZXh0IHtcbiAgICBqdXN0aWZ5LXNlbGY6IGZsZXgtZW5kO1xuICAgIGxlZnQ6IHZhcigtLWd1dHRlcjIpO1xuICB9XG4gIGRvY3VtZW50LXZpZXdlcltkYXRhLWxheW91dD1zY3JvbGxlcl0gYnV0dG9uLm5hdmlnYXRpb24ubmV4dCBzdmcge1xuICAgIG1hcmdpbi1sZWZ0OiAycHg7XG4gIH1cbiAgZG9jdW1lbnQtdmlld2VyW2RhdGEtbGF5b3V0PXNjcm9sbGVyXSBidXR0b24ubmF2aWdhdGlvbiBzdmcge1xuICAgIHdpZHRoOiBjYWxjKHZhcigtLWJ1dHRvbi1zaXplKSAvIDIuNSk7XG4gICAgaGVpZ2h0OiBjYWxjKHZhcigtLWJ1dHRvbi1zaXplKSAvIDIuNSk7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5ODFweCkgYW5kIChob3ZlcjogaG92ZXIpIHtcbiAgZG9jdW1lbnQtdmlld2VyW2RhdGEtbGF5b3V0PXNjcm9sbGVyXSBidXR0b24ubmF2aWdhdGlvbjpob3ZlciB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzZDNmN2Y7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTgxcHgpIHtcbiAgZG9jdW1lbnQtdmlld2VyW2RhdGEtbGF5b3V0PXNjcm9sbGVyXSAuY2FyZDpub3QoLmZlYXR1cmVkKSA+IHNwYW4ge1xuICAgIGNvbG9yOiAjQjFCMUIxO1xuICB9XG4gIGRvY3VtZW50LXZpZXdlcltkYXRhLWxheW91dD1zY3JvbGxlcl0gLmNhcmQge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICBkb2N1bWVudC12aWV3ZXJbZGF0YS1sYXlvdXQ9c2Nyb2xsZXJdIC5jYXJkLmZlYXR1cmVkIHtcbiAgICBncmlkLWNvbHVtbjogMjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZ3JpZC1yb3c6IDEvc3BhbiAyO1xuICAgIG1heC13aWR0aDogNTAwcHg7XG4gICAgd2lkdGg6IGNsYW1wKDM1MHB4LCAzMHZ3LCA1MDBweCk7XG4gICAgaGVpZ2h0OiBmaXQtY29udGVudDtcbiAgICB6LWluZGV4OiAxO1xuICAgIGFsaWduLXNlbGY6IGVuZDtcbiAgICAtLWFzcGVjdC1yYXRpbzogMjE2LzMwMDtcbiAgICBhc3BlY3QtcmF0aW86IHZhcigtLWFzcGVjdC1yYXRpbyk7XG4gIH1cbiAgZG9jdW1lbnQtdmlld2VyW2RhdGEtbGF5b3V0PXNjcm9sbGVyXSAuY2FyZC5mZWF0dXJlZCBpbWcge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbiwgMC4ycykgdmFyKC0tdHJhbnNpdGlvbi1lYXNlLCBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkpIHZhcigtLXRyYW5zaXRpb24tZGVsYXksICk7XG4gIH1cbiAgQHN1cHBvcnRzIG5vdCAoYXNwZWN0LXJhdGlvOiAyMTYvMzAwKSB7XG4gICAgZG9jdW1lbnQtdmlld2VyW2RhdGEtbGF5b3V0PXNjcm9sbGVyXSAuY2FyZC5mZWF0dXJlZCB7XG4gICAgICBhc3BlY3QtcmF0aW86IGluaXRpYWw7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogY2FsYygxMDAlIC8gKHZhcigtLWFzcGVjdC1yYXRpbykpKTtcbiAgICAgIGhlaWdodDogMDtcbiAgICB9XG4gICAgZG9jdW1lbnQtdmlld2VyW2RhdGEtbGF5b3V0PXNjcm9sbGVyXSAuY2FyZC5mZWF0dXJlZCA+ICoge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIH1cbiAgfVxuICBkb2N1bWVudC12aWV3ZXJbZGF0YS1sYXlvdXQ9c2Nyb2xsZXJdIC5jYXJkLmZlYXR1cmVkOjphZnRlciB7XG4gICAgLS1zaXplOiAxMnB4O1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogY2FsYyg1MCUgLSB2YXIoLS1zaXplKSAvIDIpO1xuICAgIGxlZnQ6IGNhbGMoNTAlIC0gdmFyKC0tc2l6ZSkgLyAyKTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHdpZHRoOiB2YXIoLS1zaXplKTtcbiAgICBoZWlnaHQ6IHZhcigtLXNpemUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1sb2FkZXItY29sb3VyLCAjOTY5Njk1KTtcbiAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBhbmltYXRpb24tbmFtZTogbG9hZGVyLXJvdGF0ZTtcbiAgICBhbmltYXRpb24tZHVyYXRpb246IDAuNXM7XG4gICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKTtcbiAgICBhbmltYXRpb24tcGxheS1zdGF0ZTogcGF1c2VkO1xuICAgIHRvcDogY2FsYyg1MCUgLSAxMHB4KTtcbiAgICBsZWZ0OiBjYWxjKDUwJSAtIDEwcHgpO1xuICB9XG4gIEBrZXlmcmFtZXMgbG9hZGVyLXJvdGF0ZSB7XG4gICAgZnJvbSB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgIH1cbiAgICB0byB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICB9XG4gIH1cbiAgZG9jdW1lbnQtdmlld2VyW2RhdGEtbGF5b3V0PXNjcm9sbGVyXSAuY2FyZC5mZWF0dXJlZCArIC5jYXJkLmZlYXR1cmVkIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIGRvY3VtZW50LXZpZXdlcltkYXRhLWxheW91dD1zY3JvbGxlcl0gLmNhcmQuZmVhdHVyZWQgLnBkZi1saW5rIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cbiAgZG9jdW1lbnQtdmlld2VyW2RhdGEtbGF5b3V0PXNjcm9sbGVyXSAuY2FyZC5mZWF0dXJlZCAucGRmLWxpbmsgc3ZnIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIGRvY3VtZW50LXZpZXdlcltkYXRhLWxheW91dD1zY3JvbGxlcl0gLmNhcmQuZmVhdHVyZWQgc3BhbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlcjApO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMTAwJTtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKSwgb3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uLWR1cmF0aW9uLCAwLjJzKSB2YXIoLS10cmFuc2l0aW9uLWVhc2UsIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSkgdmFyKC0tdHJhbnNpdGlvbi1kZWxheSwgKTtcbiAgfVxuICBkb2N1bWVudC12aWV3ZXJbZGF0YS1sYXlvdXQ9c2Nyb2xsZXJdIC5jYXJkLmZlYXR1cmVkIGEge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cbiAgQHN1cHBvcnRzIG5vdCAoYXNwZWN0LXJhdGlvOiAxLzEpIHtcbiAgICBkb2N1bWVudC12aWV3ZXJbZGF0YS1sYXlvdXQ9c2Nyb2xsZXJdIC5jYXJkLmZlYXR1cmVkIGEge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICAgIHBsYWNlLWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5ODFweCkgYW5kIChob3ZlcjogaG92ZXIpIHtcbiAgZG9jdW1lbnQtdmlld2VyW2RhdGEtbGF5b3V0PXNjcm9sbGVyXSAuY2FyZC5mZWF0dXJlZDpob3ZlciBzcGFuIHtcbiAgICBjb2xvcjogIzk2OTY5NTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk4MXB4KSB7XG4gIGRvY3VtZW50LXZpZXdlcltkYXRhLWxheW91dD1zY3JvbGxlcl0gLmNhcmQgLnBkZi1saW5rIHtcbiAgICBib3gtc2hhZG93OiAwcHggMHB4IDIwcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgfVxuICBkb2N1bWVudC12aWV3ZXJbZGF0YS1sYXlvdXQ9c2Nyb2xsZXJdIC5jYXJkIC5wZGYtbGluay5hY3RpdmUge1xuICAgIGJvcmRlci1jb2xvcjogI0RGMzAzNTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk4MXB4KSBhbmQgKG1heC13aWR0aDogMTgxNnB4KSB7XG4gIGRvY3VtZW50LXZpZXdlcltkYXRhLWxheW91dD1zY3JvbGxlcl0gYnV0dG9uLm5hdmlnYXRpb24ucHJldmlvdXMge1xuICAgIGxlZnQ6IDA7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5ODFweCkgYW5kIChtYXgtd2lkdGg6IDE3NDRweCkge1xuICBkb2N1bWVudC12aWV3ZXJbZGF0YS1sYXlvdXQ9c2Nyb2xsZXJdIC5jb250YWluZXIge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKyB2YXIoLS1ndXR0ZXI1KSk7XG4gICAgbGVmdDogdmFyKC0tZ3V0dGVyMyk7XG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1ndXR0ZXIxKTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk4MHB4KSB7XG4gIGRvY3VtZW50LXZpZXdlcltkYXRhLWxheW91dD1zY3JvbGxlcl0gLmJvdW5kcyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLWdhcDogdmFyKC0tZ3V0dGVyMikgdmFyKC0tZ3V0dGVyMSk7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMjAwcHgsIDFmcikpO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTgwcHgpIGFuZCAobWF4LXdpZHRoOiAxMTIwcHgpIHtcbiAgZG9jdW1lbnQtdmlld2VyW2RhdGEtbGF5b3V0PXNjcm9sbGVyXSAuYm91bmRzIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCAxZnIpO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTgwcHgpIGFuZCAobWF4LXdpZHRoOiA0ODBweCkge1xuICBkb2N1bWVudC12aWV3ZXJbZGF0YS1sYXlvdXQ9c2Nyb2xsZXJdIC5ib3VuZHMge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5ODBweCkge1xuICBkb2N1bWVudC12aWV3ZXJbZGF0YS1sYXlvdXQ9c2Nyb2xsZXJdIC5jYXJkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbiAgZG9jdW1lbnQtdmlld2VyW2RhdGEtbGF5b3V0PXNjcm9sbGVyXSAuY2FyZC5mZWF0dXJlZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICBkb2N1bWVudC12aWV3ZXJbZGF0YS1sYXlvdXQ9c2Nyb2xsZXJdIC5jYXJkIHNwYW4ge1xuICAgIG1hcmdpbi10b3A6IGNhbGModmFyKC0tZ2FwKSAqIDAuNSk7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgY29sb3I6ICMxMzFmNmI7XG4gICAgZm9udC1zaXplOiAwLjg3NWVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICBkb2N1bWVudC12aWV3ZXJbZGF0YS1sYXlvdXQ9c2Nyb2xsZXJdIGJ1dHRvbi5uYXZpZ2F0aW9uIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbm1haW4gfiBkb2N1bWVudC12aWV3ZXIge1xuICBwYWRkaW5nLXRvcDogdmFyKC0tc3BhY2VyMSk7XG4gIHBhZGRpbmctYm90dG9tOiB2YXIoLS1zcGFjZXIyKTtcbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gVW5pdHNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkB1c2UgXCJzYXNzOm1hdGhcIjtcbkB1c2UgJ3Nhc3M6c3RyaW5nJztcbkB1c2UgJ3Nhc3M6bWV0YSc7XG5cbi8vIFRoaXMgdW5pdHMgY3JlYXRvciB3aWxsIHJlbmRlciBzaXggcG9zaXRpdmUgYW5kIHNpeCBuZWdhdGl2ZSBzYXNzIHZhcmlhYmxlcyBmb3IgXG4vLyBnYXBzLCBzcGFjZXJzLCBhbmQgZ3V0dGVycyByZWxhdGl2ZSB0byB0aGUgYmFzZXYgdmFsdWVzIGRlZmluZWQgYmVsb3cuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQmFzZSBWYWx1ZXMgXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLy8gQHNlZSBodHRwczovL2NvZGVwZW4uaW8vbWFya25vdHRvbi9wZW4vRXhQYk5HZVxuXG4vLyBUaGVzZSB0aHJlZSB2YWx1ZXMgd2lsbCBhY3QgYSBjb25zdGFudCBiYXNlbGluZSBmb3IgYWxsIGZvbGxvd2luZyB1bml0IGRlbGNhcmF0aW9ucy5cblxuLy8gR2FwcyBtdXN0IHVzZSBhbiBhYnNvbHV0ZSBhbmQgc3RhdGljICdweCcgdW5pdC4gSXQgc2hvdWxkIG5vdCBiZSByZWxhdGl2ZSB0byBhbnlcbi8vIHBhcmVudCBjb250YWluZXIgYW5kIGlzIG5vdCBpbnRlbmRlZCBmb3IgZm9udCBzaXplcywgc28geW91IHNob3VsZCBub3QgdXNlICdyZW0nIG9yICdlbScuIFxuJGdhcCA6IDE2cHggIWRlZmF1bHQ7XG4kYmFzZS1nYXAgOiAkZ2FwO1xuXG4vLyBTcGFjZXJzIG11c3QgdXNlIGEgJ3ZoJyB1bml0IHNvIHRoZXkgYXJlIHJlbGF0aXZlIHRvIHRoZSB1c2VycyB2aWV3cG9ydCBoZWlnaHQtd2lzZS5cbi8vIFRoZXkgc2hvdWxkIHByaW1hcmlseSBiZSB1c2VkIGZvciB0aGUgdG9wIGFuZCBib3R0b20gbWFyZ2lucyBvbiBhIGNvbXBvbmVudCBsZXZlbC5cbiRzcGFjZXIgOiA0dmggIWRlZmF1bHQ7IFxuJGJhc2Utc3BhY2VyIDogJHNwYWNlcjsgXG5cbi8vIEd1dHRlcnMgbXVzdCB1c2UgYSAndncnIHVuaXQgc28gdGhleSBhcmUgcmVsYXRpdmUgdG8gdGhlIHVzZXJzIHZpZXdwb3J0IHdpZHRoLXdpc2UuIFxuLy8gVGhleSBzaG91bGQgcHJpbWFyaWx5IGJlIHVzZWQgZm9yIHRoZSBsZWZ0IGFuZCByaWdodCBwYWRkaW5nIG9yIG1hcmdpbiBvbiBhIHBhcmVudCBsZXZlbC5cbi8vIEFzIGEgc3VnZ2VzdGlvbiwgdGhpcyBndXR0ZXIgY29uc3RhbnQgc2hvdWxkIGJlIGhhbGYgdGhlIHNpemUgb2YgdGhlIHNwYWNlciB2YWx1ZS5cbiRndXR0ZXIgOiAzdncgIWRlZmF1bHQ7XG4kYmFzZS1ndXR0ZXIgOiAkZ3V0dGVyOyBcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEFzYm9sdXRlIFVuaXRzIFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gR2FwcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEdhcHMgYXJlIGFuIGFic29sdXRlIHVuaXQgKHB4KSBpbnRlbmRlZCB0byBiZSB1c2VkIG9uIGluZGl2aWR1YWwgZWxlbWVudHMgd2l0aGluIGEgY29tcG9uZW50ZWQuIFxuLy8gVGhlIGFpbSBpcyB0byByZXRhaW4gY29uc2lzdGFudCBzcGFjaW5nIGFtb25nc3QgYmxvY2ssIGlubGluZSwgdGFibGUgYW5kIGdyb3VwIGh0bWwgZWxlbWVudHMuXG5cbkBmdW5jdGlvbiBnYXAoJGFtb3VudCA6IDEpIHtcbiAgQGlmICggJGFtb3VudCA9PSAxICkgeyBcbiAgICBAcmV0dXJuIHZhcigtLWdhcCk7IFxuICB9IEBlbHNlIHsgXG4gICAgQHJldHVybiBjYWxjKHZhcigtLWdhcCkgKiAjeyRhbW91bnR9KTsgXG4gIH1cbn1cblxuJGdhcDAgOiBnYXAoMC41KTsgJGdhcDAtIDogZ2FwKC0wLjUpO1xuJGdhcCAgOiBnYXAoMSk7ICAgJGdhcC0gIDogZ2FwKC0xKTtcbiRnYXAyIDogZ2FwKDIpOyAgICRnYXAyLSA6IGdhcCgtMik7XG4kZ2FwMyA6IGdhcCgzKTsgICAkZ2FwMy0gOiBnYXAoLTMpO1xuJGdhcDQgOiBnYXAoNCk7ICAgJGdhcDQtIDogZ2FwKC00KTtcbiRnYXA1IDogZ2FwKDUpOyAgICRnYXA1LSA6IGdhcCgtNSk7XG4kZ2FwNiA6IGdhcCg2KTsgICAkZ2FwNi0gOiBnYXAoLTYpO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUmVsYXRpdmUgVW5pdHMgXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5AZnVuY3Rpb24gX2R5bmFtaWMtdW5pdCgkY3VzdG9tLXByb3BlcnR5LCAkYW1vdW50LCAkbWluLCAkbWF4LCAkdXNlLW5lZ2F0aXZlIDogZmFsc2UsICR1c2UtY2xhbXAgOiB0cnVlKSB7XG5cbiAgLy8gQ2FsYyBNZXRob2RcbiAgJHJlc3VsdCA6IGNhbGMoKCN7JGN1c3RvbS1wcm9wZXJ0eX0gKiAjeyRhbW91bnR9KSArICN7aWYoJG1pbiA9PSAwLCAwcHgsICRtaW4pfSk7XG4gIFxuICAvLyBDbGFtcCBNZXRob2RcbiAgQGlmICggJHVzZS1jbGFtcCApIHtcbiAgICBAaWYgKCAkYW1vdW50ID09IDAgKSB7XG4gICAgICAkcmVzdWx0IDogY2xhbXAoI3ttYXRoLmRpdigkbWluLCAyKX0sICN7JGN1c3RvbS1wcm9wZXJ0eX0gKiAwLjUsICN7JG1heH0pO1xuICAgIH0gQGVsc2UgaWYgKCAkYW1vdW50ID09IDEgKSB7XG4gICAgICAkcmVzdWx0IDogY2xhbXAoI3skbWlufSwgI3skY3VzdG9tLXByb3BlcnR5fSwgI3skbWF4fSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkcmVzdWx0IDogY2xhbXAoI3skbWlufSwgI3skY3VzdG9tLXByb3BlcnR5fSAqICN7JGFtb3VudH0sICN7JG1heH0pO1xuICAgIH1cbiAgfSBcblxuICBAaWYgKCAkdXNlLW5lZ2F0aXZlICkge1xuICAgICRyZXN1bHQgOiBjYWxjKC0xICogI3skcmVzdWx0fSk7XG4gIH1cblxuICBAcmV0dXJuICRyZXN1bHQ7XG5cbn0gXG5cbi8vIFNwYWNlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBTcGFjZXJzIGFyZSBhIHJlbGF0aXZlIHZpZXdwb3J0IGhlaWdodCAodmgpIHVuaXQgaW50ZW5kZWQgdG8gYmUgdXNlZCBvbiBhIGNvbXBvbmVudGVkIGxldmVsLlxuLy8gVGhlIGFpbSBpcyB0byByZXRhaW4gY29uc2lzdGFudCB0b3AgYW5kIGJvdHRvbSBzcGFjaW5nIGFtb25nc3QgJ3NlY3Rpb24nIGFuZCAnY3VzdG9tJyBlbGVtZW50cy5cbi8vIFNwYWNlcnMgd2lsbCBlcXVhdGUgdG8gc29tZXRoaW5nIGxpa2U6IGAoJHNwYWNlciAqIHgpICsgJGdhcGAuIFxuLy8gVGhlICckZ2FwJyBpcyBhZGRlZCBzbyB0aGF0IHZoIHNwYWNpbmcgd2lsbCBuZXZlciBzY2FsZSB0b28gY2xvc2UgdG8gMHB4LiBcblxuQGZ1bmN0aW9uIHNwYWNlcigkYW1vdW50IDogMSwgJG1pbiA6ICRiYXNlLWdhcCwgJG1heCA6IG51bGwsICR1c2UtbmVnYXRpdmUgOiBmYWxzZSwgJHVzZS1jbGFtcCA6IHRydWUpIHtcbiAgQGlmICggJGFtb3VudCA9PSAwKSB7ICRhbW91bnQgOiAwLjU7ICRtaW4gOiBtYXRoLmRpdigkbWluLCAyKTsgfVxuICBAaWYgKCBtZXRhLnR5cGUtb2YoJG1heCkgPT0gJ251bGwnICkgeyBcbiAgICBAaWYgKCBtZXRhLnR5cGUtb2YoJG1pbikgPT0gJ3N0cmluZycgYW5kIHN0cmluZy5pbmRleCgkbWluLCAndmFyJykgKSB7XG4gICAgICAkbWF4IDogY2FsYygjeyRtaW59ICogI3skYW1vdW50ICsgMX0pOyBcbiAgICB9IEBlbHNlIHtcbiAgICAgICRtYXggOiAjeyRtaW4gKiAoJGFtb3VudCArIDEpfTsgXG4gICAgfVxuICB9XG4gIEByZXR1cm4gX2R5bmFtaWMtdW5pdCh2YXIoLS1zcGFjZXIpLCAkYW1vdW50LCAkbWluLCAkbWF4LCAkdXNlLW5lZ2F0aXZlLCAkdXNlLWNsYW1wKTtcbn1cblxuJHNwYWNlcjAgOiB2YXIoLS1zcGFjZXIwKTsgJHNwYWNlcjAtIDogdmFyKC0tc3BhY2VyMC0pO1xuJHNwYWNlciAgOiB2YXIoLS1zcGFjZXIxKTsgJHNwYWNlci0gIDogdmFyKC0tc3BhY2VyMS0pO1xuJHNwYWNlcjIgOiB2YXIoLS1zcGFjZXIyKTsgJHNwYWNlcjItIDogdmFyKC0tc3BhY2VyMi0pO1xuJHNwYWNlcjMgOiB2YXIoLS1zcGFjZXIzKTsgJHNwYWNlcjMtIDogdmFyKC0tc3BhY2VyMy0pO1xuJHNwYWNlcjQgOiB2YXIoLS1zcGFjZXI0KTsgJHNwYWNlcjQtIDogdmFyKC0tc3BhY2VyNC0pO1xuJHNwYWNlcjUgOiB2YXIoLS1zcGFjZXI1KTsgJHNwYWNlcjUtIDogdmFyKC0tc3BhY2VyNS0pO1xuJHNwYWNlcjYgOiB2YXIoLS1zcGFjZXI2KTsgJHNwYWNlcjYtIDogdmFyKC0tc3BhY2VyNi0pO1xuXG4vLyBHdXR0ZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gR3V0dGVycyBhcmUgYSByZWxhdGl2ZSB2aWV3cG9ydCB3aWR0aCAodncpIHVuaXQgaW50ZW5kZWQgdG8gYmUgdXNlZCBvbiBhIHBhcmVudCBsZXZlbDtcbi8vIGZvciBleGFtcGxlLCBhIHdyYXBwZXIgY29udGFpbmVyIG9yIGJvZHkgd2l0aCBuZXN0ZWQgY29tcG9uZW50cy4gXG4vLyBUaGUgYWltIGlzIHRvIHJldGFpbiBjb25zaXN0YW50IGxlZnQgYW5kIHJpZ2h0IHNwYWNpbmcgYW1vbmdzdCAnc2VjdGlvbicgYW5kICdjdXN0b20nIGVsZW1lbnRzLlxuLy8gR3V0dGVycyB3aWxsIGVxdWF0ZSB0byBzb21ldGhpbmcgbGlrZTogYCgkZ3V0dGVyICogeCkgKyAkZ2FwYC4gXG4vLyBUaGUgJyRnYXAnIGlzIGFkZGVkIHNvIHRoYXQgdncgc3BhY2luZyB3aWxsIG5ldmVyIHNjYWxlIHRvbyBjbG9zZSB0byAwcHguIFxuXG5AZnVuY3Rpb24gZ3V0dGVyKCRhbW91bnQgOiAxLCAkbWluIDogJGJhc2UtZ2FwLCAkbWF4IDogbnVsbCwgJHVzZS1uZWdhdGl2ZSA6IGZhbHNlLCAkdXNlLWNsYW1wIDogdHJ1ZSkge1xuICBAaWYgKCAkYW1vdW50ID09IDApIHsgJGFtb3VudCA6IDAuNTsgJG1pbiA6IG1hdGguZGl2KCRtaW4sIDIpOyB9XG4gIEBpZiAoIG1ldGEudHlwZS1vZigkbWF4KSA9PSAnbnVsbCcgKSB7IFxuICAgIEBpZiAoIG1ldGEudHlwZS1vZigkbWluKSA9PSAnc3RyaW5nJyBhbmQgc3RyaW5nLmluZGV4KCRtaW4sICd2YXInKSApIHtcbiAgICAgICRtYXggOiBjYWxjKCN7JG1pbn0gKiAjeyRhbW91bnQgKyAxfSk7IFxuICAgIH0gQGVsc2Uge1xuICAgICAgJG1heCA6ICN7JG1pbiAqICgkYW1vdW50ICsgMSl9OyBcbiAgICB9XG4gIH1cbiAgQHJldHVybiBfZHluYW1pYy11bml0KHZhcigtLWd1dHRlciksICRhbW91bnQsICRtaW4sICRtYXgsICR1c2UtbmVnYXRpdmUsICR1c2UtY2xhbXApO1xufVxuXG4kZ3V0dGVyMCA6IHZhcigtLWd1dHRlcjApOyAkZ3V0dGVyMC0gOiB2YXIoLS1ndXR0ZXIwLSk7XG4kZ3V0dGVyICA6IHZhcigtLWd1dHRlcjEpOyAkZ3V0dGVyLSAgOiB2YXIoLS1ndXR0ZXIxLSk7XG4kZ3V0dGVyMiA6IHZhcigtLWd1dHRlcjIpOyAkZ3V0dGVyMi0gOiB2YXIoLS1ndXR0ZXIyLSk7XG4kZ3V0dGVyMyA6IHZhcigtLWd1dHRlcjMpOyAkZ3V0dGVyMy0gOiB2YXIoLS1ndXR0ZXIzLSk7XG4kZ3V0dGVyNCA6IHZhcigtLWd1dHRlcjQpOyAkZ3V0dGVyNC0gOiB2YXIoLS1ndXR0ZXI0LSk7XG4kZ3V0dGVyNSA6IHZhcigtLWd1dHRlcjUpOyAkZ3V0dGVyNS0gOiB2YXIoLS1ndXR0ZXI1LSk7XG4kZ3V0dGVyNiA6IHZhcigtLWd1dHRlcjYpOyAkZ3V0dGVyNi0gOiB2YXIoLS1ndXR0ZXI2LSk7XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vIEhvdmVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjaG92ZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBob3Zlcigkc2VsZWN0b3IgOiBudWxsKSB7XG4gIEBtZWRpYSAoIGhvdmVyIDogaG92ZXIgKSB7XG4gICAgJjpob3ZlciB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cblxuICBAaWYgJHNlbGVjdG9yIHtcbiAgICAmI3skc2VsZWN0b3J9IHsgXG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cblxufSIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBDb2xvdXJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4vLy8gRXhwbGljaXQgQ29sb3VycyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8vIEV4cGxpY2l0IGNvbG91cnMgYXJlIGEgd2hhdCB0aGV5IGFyZS4gR3JlZW4gaXMgZ3JlZW4sIGJsdWUgaXMgYmx1ZS4uLiBubyBvYnNjdXJpdHkuXG4vLy8gV2Ugc3VmZml4IG51bWJlcnMgdG8gZGVmaW5lIHZhcmlhdGlvbnMgb2YgY29sb3VycyBpbiBubyBwYXJ0aWN1bGFyIG9yZGVyIG9mIHNoYWRlLiBcbi8vLyBFeGFtcGxlOiBncmVlbjEsIGdyZWVuMiwgZ3JlZW4zLCBncmVlbjQuIFRoaXMgaXMgc28gd2UgY2FuIGltbWlkaWF0ZWx5IHNlZSBob3cgXG4vLy8gbWFueSBvcHRpb25zIHdlIGhhdmUgZm9yIGEgc2luZ2xlIGNvbG91ciBhdCBhIGdsYW5jZS4gSWYgeW91IHNlZSAkZ3JlZW40LCB5b3Uga25vdyB0aGlzXG4vLy8gcHJvamVjdCBpcyB1c2luZyBmb3VyIHZhcmlhdGlvbnMgb2YgZ3JlZW4uIFRoaXMgaXMgYWxzbyBvZnRlbiB1c2VmdWwgYmVjYXVzZSBtYW55IGRldmVsb3BtZW50IFxuLy8vIHRvb2xzIHdpbGwgYXV0by1zdWdnZXN0IGNvbG91cnMgd2l0aCBhY3R1YWwgZXhhbXBsZXMgb2YgdGhlIGNvbG91ci4gXG4vLy8gVGhlIFBhbGxldGVzIG1vZHVsZSAoYXQgdGhlIGJvdHRvbSBvZiB0aGlzIGZpbGUpIHdpbGwgb3V0cHV0IHNoYWRlZCBuYW1lZCB2YXJpYXRpb25zLCBcbi8vLy8gPGNvbG91cj4tZGFyayBhbmQgPGNvbG91cj4tbGlnaHQuIElmIHlvdSBuZWVkIGFkZGl0aW9uYWwgc2hhZGVzIHBsZWFzZSByZWZyYWltIGZyb20gZ29pbmcgZG93biBcbi8vLyB0aGUgJ2xpZ2h0ZXInLCAnbGlnaHRlc3QnLCAnZGFya2VyJywgJ2Rhcmtlc3QnIGNvbnZlbnRpb24uIFRoZXNlIGFyZSBub3QgcGFydGljdWFybHkgbGVnaWFibGUgXG4vLy8gYW5kIHRoZXkgYXJlIGxpbWl0ZWQgYnkgaG93IGNyZWF0aXZlIChjb25mdXNpbmcpIHlvdXIgd29yZGluZyBjYW4gYmUuIFxuLy8vIEl0IGlzIGJldHRlciB0byBkZWZpbmUgYSBuZXcgZXhwbGNpdCBjb2xvdXIgZW50aXJlbHkuIFxuLy8vIEBzZWUgaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS93aGF0LWRvLXlvdS1uYW1lLWNvbG9yLXZhcmlhYmxlcy9cblxuJGJsdWUgICA6ICMxMzFmNmI7IC8vIFByaW1hcnlcbiRibHVlMiAgOiAjMjkyQjY4OyAvLyBOYWtlZCBMaW5rXG4kYmx1ZTMgIDogIzNkM2Y3ZjsgLy8gTGlnbnQgR3JhZGllbnRcbiRibHVlNCAgOiAjMTAxMjRkOyAvLyBEYXJrIEdyYWRpZW50XG4kYmx1ZTUgIDogIzAwOTVGRjsgLy8gTmF2aWdhdGlvbiBsaW5rIGhvdmVyICBcbi8vICRyZWQgICAgOiAjRTAzQTQwOyAvLyBTZWNvbmRhcnlcbiRyZWQgICAgOiAjREYzMDM1OyAvLyBTZWNvbmRhcnkgLSBUaGlzIHBhc3NlcyB0aGUgY29udHJhc3QgcmF0aW8gYWNjZXNzaWJpbGl0eSB0ZXN0IGluIEdvb2dsZXMgTGlnaHRob3VzZSBcbiRncmV5ICAgOiAjOTY5Njk1O1xuJGdyZXkyICA6ICM2QTZBNkE7IC8vIEZvbnRcbiRncmV5MyAgOiAjRjRGNEY0OyAvLyBMaWdodGVyIEdyZXkgQmFja2dyb3VuZFxuJGdyZXk0ICA6ICNkY2RjZGM7IFxuJGdyZXk1ICA6ICNCMUIxQjE7IC8vIFNwYWNlcnMgPGhyPlxuJGdyZXk2ICA6ICMzMzMyMzY7IC8vIE5hdmlnYXRpb24gbGluayBob3ZlciAgXG4kZ3JlZW4gIDogIzUwQkMwODtcbiRncmVlbjIgOiAjNzZiYjI4OyAvLyBFU0cgZ3JlZW5cbiR5ZWxsb3cgOiAjRjZGNERCOyAvLyBEaXNjbGFpbWVyIEJhY2tncm91bmRcbiR5ZWxsb3cyIDogI0ZDQjAwMjsgXG4kYmxhY2sgIDogIzFFMUExQTtcblxuJG1hcmsgOiAkYmx1ZTU7IC8vIGJhY2tncm91bmQgY29sb3VyIGZvciA8bWFyaz4gdGFnc1xuXG4kcHJpbWFyeSAgIDogdmFyKC0tcHJpbWFyeSwgICN7JGJsdWV9KTtcbiRzZWNvbmRhcnkgOiB2YXIoLS1zZWNvbmRhcnksICN7JHJlZH0pO1xuXG4vLy8gUGFsZXR0ZSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8vIEJ5IGxvYWRpbmcgY29uZmlndXJhdGlvbnMgaW50byB0aGlzICdwYWxsZXRlJyBtb2R1bGUsIHdlIHdpbGwgYmUgYWJsZVxuLy8vIHRvIGRlY2xhcmUgdmFyaWFudHMgb2YgYSBmZXcgY29tbW9uIGNvbG91cnMuIFlvdSBjYW4gYWxzbyBhZGp1c3QgdGhlIGxpZ2h0bmVzc1xuLy8vIG9yIGRhcmtuZXNzIG9mIGVhY2ggdmFyaWFudCBieSBwYXNzaW5nIGluIHRoZSByZWxldmFudCBwcml2YXRlIHJ1bGVzLiBcbi8vLyBQYWxldHRlIHdpbGwgYWxzbyBleHBvc2UgcG9wdWxhciBzb2NpYWwgbWVkaWEgY29sb3VycyBhbmQgdGhlIFllbGxvIGJyYW5kIGNvbG91ci5cbi8vLyBAc2VlIGh0dHBzOi8vc2Fzcy1sYW5nLmNvbS9kb2N1bWVudGF0aW9uL2F0LXJ1bGVzL2ZvcndhcmQjY29uZmlndXJpbmctbW9kdWxlc1xuLy8vIEBvdXRwdXQgJGdyZWVuIDogIzAyOTI5QTsgJGdyZWVuLWRhcmsgOiAjMjU2NTY5OyAkZ3JlZW4tbGlnaHQ6ICMwNGI5YzQ7XG5cbkBmb3J3YXJkICdjcmVhdGUvcGFsZXR0ZScgd2l0aCAoXG4gICRibHVlICAgOiAkYmx1ZSxcbiAgJHJlZCAgICA6ICRyZWQsXG4gICRncmV5ICAgOiAkZ3JleSxcbiAgJHllbGxvdyA6ICR5ZWxsb3csXG4gICRncmVlbiAgOiAkZ3JlZW4sXG4gICRibGFjayAgOiAkYmxhY2tcbik7XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vIEJyZWFrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjYnJlYWtcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBvdXQoJGJyZWFrcG9pbnQpIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6I3skYnJlYWtwb2ludCArIDF9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIGluKCRicmVha3BvaW50KSB7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiN7JGJyZWFrcG9pbnR9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIGJldHdlZW4oJG1pbiwgJG1heCkge1xuICBAbWVkaWEgKG1pbi13aWR0aDojeyRtaW59KSBhbmQgKG1heC13aWR0aDojeyRtYXh9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn0iLCJAdXNlICcuLi9fdmFyaWFibGVzJyBhcyAqO1xuQHVzZSAnbW9kdWxlcy9jb2xvdXIvZW5jb2RlJyBhcyBjb2xvdXI7XG5cblxuQG1peGluIGxvYWRlcigkc2l6ZSA6IDEycHgsICRjb2xvdXIgOiAkZ3JleSkge1xuICAtLXNpemUgOiAjeyRzaXplfTsgXG4gIGNvbnRlbnQ6XCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6Y2FsYyg1MCUgLSAodmFyKC0tc2l6ZSkgLyAyKSk7IFxuICBsZWZ0OmNhbGMoNTAlIC0gKHZhcigtLXNpemUpIC8gMikpOyBcbiAgb3BhY2l0eTogMDtcbiAgd2lkdGg6dmFyKC0tc2l6ZSk7IFxuICBoZWlnaHQ6dmFyKC0tc2l6ZSk7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYm9yZGVyOjJweCBzb2xpZCB2YXIoLS1sb2FkZXItY29sb3VyLCAkY29sb3VyKTtcbiAgYm9yZGVyLXRvcC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICBhbmltYXRpb24tbmFtZTogbG9hZGVyLXJvdGF0ZTtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjVzO1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzICRlYXNlLWluLW91dDtcbiAgYW5pbWF0aW9uLXBsYXktc3RhdGU6IHBhdXNlZDtcbiAgQGtleWZyYW1lcyBsb2FkZXItcm90YXRlIHtcbiAgICBmcm9tIHt0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpOyB9XG4gICAgdG8ge3RyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9XG4gIH1cbiAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBsb2FkZXItYW5pbWF0aW9uIHsgXG4gIG9wYWNpdHk6MTsgXG4gIGFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nO1xuICBAY29udGVudDtcbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vIEJyb3dzZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2Jyb3dzZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBfYnJvd3NlcigkbmFtZSwgJHZlcnNpb246ZmFsc2UpIHtcbiAgQGF0LXJvb3QgOnJvb3Qge1xuICAgICZbZGF0YS1icm93c2VyKj1cIiN7JG5hbWV9XCJdIHtcbiAgICAgIEBpZiAkdmVyc2lvbiB7XG4gICAgICAgICZbZGF0YS1icm93c2VyKj1cIiN7JHZlcnNpb259XCJdIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZmVhdHVyZSgkbmFtZSkge1xuICBAYXQtcm9vdCA6cm9vdFtkYXRhLWJyb3dzZXItZmVhdHVyZSo9XCIjeyRuYW1lfVwiXSAmIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gd2l0aG91dC1mZWF0dXJlKCRuYW1lKSB7XG4gIEBhdC1yb290IDpyb290Om5vdChbZGF0YS1icm93c2VyLWZlYXR1cmUqPVwiI3skbmFtZX1cIl0pICYge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBmaXJlZm94KCR2ZXJzaW9uOmZhbHNlKSB7XG4gIEBpbmNsdWRlIF9icm93c2VyKCdmaXJlZm94JywgJHZlcnNpb24pIHsgQGNvbnRlbnQ7IH07XG59XG5cbkBtaXhpbiBpZSgkdmVyc2lvbjpmYWxzZSkge1xuICBAaW5jbHVkZSBfYnJvd3NlcignaWUnLCAkdmVyc2lvbikgeyBAY29udGVudDsgfTtcbn1cblxuQG1peGluIGNocm9tZSgkdmVyc2lvbjpmYWxzZSkge1xuICBAaW5jbHVkZSBfYnJvd3NlcignY2hyb21lJywgJHZlcnNpb24pIHsgQGNvbnRlbnQ7IH07XG59XG5cbkBtaXhpbiBlZGdlKCR2ZXJzaW9uOmZhbHNlKSB7XG4gIEBpbmNsdWRlIF9icm93c2VyKCdlZGdlJywgJHZlcnNpb24pIHsgQGNvbnRlbnQ7IH07XG59XG5cbkBtaXhpbiBvcGVyYSgkdmVyc2lvbjpmYWxzZSkge1xuICBAaW5jbHVkZSBfYnJvd3Nlcignb3BlcmEnLCAkdmVyc2lvbikgeyBAY29udGVudDsgfTtcbn1cblxuQG1peGluIHNhZmFyaSgkdmVyc2lvbjpmYWxzZSkge1xuICBAaW5jbHVkZSBfYnJvd3Nlcignc2FmYXJpJywgJHZlcnNpb24pIHsgQGNvbnRlbnQ7IH07XG59XG5cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8gQXNwZWN0IFJhdGlvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2FzcGVjdC1yYXRpb1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQHVzZSBcInNhc3M6c3RyaW5nXCI7XG5cbi8vLyBAZXhhbXBsZSBAaW5jbHVkZSBhc3BlY3QtcmF0aW8oMTYvOSlcblxuQG1peGluIGFzcGVjdC1yYXRpbygkcmF0aW8gOiAnMTYvOScpIHtcblxuICAtLWFzcGVjdC1yYXRpbzogI3tzdHJpbmcudW5xdW90ZSgkcmF0aW8pfTtcbiAgYXNwZWN0LXJhdGlvOiB2YXIoLS1hc3BlY3QtcmF0aW8pO1xuXG4gIEBzdXBwb3J0cyBub3QgKGFzcGVjdC1yYXRpbzogI3tzdHJpbmcudW5xdW90ZSgkcmF0aW8pfSkge1xuICAgIGFzcGVjdC1yYXRpbzppbml0aWFsO1xuICAgIHBhZGRpbmctYm90dG9tOiBjYWxjKDEwMCUvKHZhcigtLWFzcGVjdC1yYXRpbykpKTtcbiAgICBoZWlnaHQ6IDA7XG4gICAgPiAqIHsgcG9zaXRpb246IGFic29sdXRlOyB9IFxuICB9XG59Il19 */