/* Fonts */

@font-face {
  font-family: "Noto Sans";
  src: url("fonts/noto-sans-latin-standard-normal.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Noto Serif";
  src: url("fonts/noto-serif-latin-standard-normal.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

/* Scaling */

.fregate-root {
  --dw: 390;
  --vw-cap: 100vw;
  /* --px: calc(100vw / var(--dw)); */
  --px: calc(min(100vw, var(--vw-cap)) / var(--dw));
  font-size: calc(18 * var(--px));
  line-height: 1;
  height: 100vh;
  overflow-y: auto;
  overscroll-behavior: none;
  scroll-behavior: smooth;
}

.fregate-root picture {
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: clip;
    /* LQIP: the ~20px blur is inlined per <picture> as --lqip and scaled up
       (browsers interpolate backgrounds, so it reads as a soft blur). It sits
       behind the <img>, which fades in over it once loaded. */
    background-image: var(--lqip, none);
    background-size: cover;
    background-position: center;
  }

/* Only fade when JS is active, so without JS the images still show. */

.fregate-root.js picture img {
    opacity: 0;
    transition: opacity 0.6s ease;
  }

.fregate-root.js picture img.loaded {
    opacity: 1;
  }

@media screen and (min-width: 481px) {
  .fregate-root {
    --dw: 1024;
    --vw-cap: 100vw;
  }
}

@media screen and (min-width: 1025px) {
  .fregate-root {
    --dw: 1440;
    --vw-cap: 2240px;
  }
}

/* Colors */

.fregate-root {
  --dark-green: #11382d;
  --green: #006e4b;
  --light-green: #00d09e;
  --gold: #ce932c;
  --sand: #efefdc;
  --outline: rgba(17, 55, 44, 0.2);

  background: var(--sand);
  color: var(--dark-green);
}

/* Headings */

.xl-heading,
.l-heading,
.m-heading,
.s-heading,
.sub-heading,
.l-paragraph,
.serif-paragraph {
  font-family: "Noto Serif", serif;
}

.paragraph,
.s-paragraph,
.xs-paragraph,
.cta,
.m-cta,
.form-input {
  font-family: "Noto Sans", sans-serif;
}

.xl-heading {
  font-size: calc(55 * var(--px));
  line-height: calc(55 * var(--px));
  font-weight: 100;
}

.l-heading {
  font-size: calc(36 * var(--px));
  line-height: calc(40 * var(--px));
  font-weight: 300;
  letter-spacing: -0.03em;
}

.m-heading {
  font-size: calc(24 * var(--px));
  line-height: calc(28 * var(--px));
  font-weight: 300;
  letter-spacing: -0.03em;
}

.s-heading {
  font-size: calc(20 * var(--px));
  line-height: calc(26 * var(--px));
  font-weight: 300;
  letter-spacing: -0.03em;
}

.sub-heading {
  font-size: calc(30 * var(--px));
  line-height: calc(40 * var(--px));
  font-weight: 300;
  letter-spacing: -0.03em;
}

.l-paragraph {
  font-size: calc(22 * var(--px));
  line-height: calc(29 * var(--px));
  font-weight: 300;
  letter-spacing: -0.02em;
}

.l-paragraph strong {
    font-weight: 600;
  }

.serif-paragraph {
  font-size: calc(18 * var(--px));
  line-height: calc(24 * var(--px));
  font-weight: 400;
  letter-spacing: -0.02em;
}

.serif-paragraph strong {
    font-weight: 600;
  }

.paragraph {
  font-size: calc(14 * var(--px));
  line-height: calc(20 * var(--px));
  font-weight: 400;
  letter-spacing: -0.02em;
}

.paragraph strong {
    font-weight: 600;
  }

.s-paragraph,
.xs-paragraph {
  font-size: calc(12 * var(--px));
  line-height: calc(16 * var(--px));
  font-weight: 400;
  letter-spacing: -0.02em;
}

.form-input {
  font-size: calc(16 * var(--px));
  line-height: calc(18 * var(--px));
  font-weight: 400;
  letter-spacing: -0.02em;
}

.m-cta {
  font-size: calc(20 * var(--px));
  font-weight: 500;
  letter-spacing: -0.02em;
}

.cta {
  font-size: calc(14 * var(--px));
  line-height: calc(16 * var(--px));
  font-weight: 400;
  letter-spacing: -0.02em;
}

@media screen and (min-width: 481px) {
  .xl-heading {
    font-size: calc(80 * var(--px));
    line-height: calc(80 * var(--px));
  }

  .l-heading {
    font-size: calc(36 * var(--px));
    line-height: calc(40 * var(--px));
  }

  .m-heading {
    font-size: calc(32 * var(--px));
    line-height: calc(40 * var(--px));
  }

  .s-heading {
    font-size: calc(22 * var(--px));
    line-height: calc(28 * var(--px));
    font-weight: 300;
  }

  .sub-heading {
    font-size: calc(30 * var(--px));
    line-height: calc(40 * var(--px));
  }

  .l-paragraph {
    font-size: calc(22 * var(--px));
    line-height: calc(29 * var(--px));
  }

  .serif-paragraph {
    font-size: calc(18 * var(--px));
    line-height: calc(24 * var(--px));
  }

  .paragraph {
    font-size: calc(18 * var(--px));
    line-height: calc(24 * var(--px));
  }

  .s-paragraph {
    font-size: calc(14 * var(--px));
    line-height: calc(18 * var(--px));
  }

  .xs-paragraph {
    font-size: calc(12 * var(--px));
    line-height: calc(16 * var(--px));
  }

  .form-input {
    font-size: calc(16 * var(--px));
    line-height: calc(18 * var(--px));
  }

  .m-cta {
    font-size: calc(20 * var(--px));
  }

  .cta {
    font-size: calc(20 * var(--px));
    line-height: calc(20 * var(--px));
  }
}

@media screen and (min-width: 1025px) {
  .xl-heading {
    font-size: calc(100 * var(--px));
    line-height: calc(100 * var(--px));
  }

  .l-heading {
    font-size: calc(56 * var(--px));
    line-height: calc(70 * var(--px));
  }

  .m-heading {
    font-size: calc(32 * var(--px));
    line-height: calc(40 * var(--px));
  }

  .s-heading {
    font-size: calc(24 * var(--px));
    line-height: calc(30 * var(--px));
    font-weight: 300;
  }

  .sub-heading {
    font-size: calc(40 * var(--px));
    line-height: calc(50 * var(--px));
  }

  .l-paragraph {
    font-size: calc(28 * var(--px));
    line-height: calc(35 * var(--px));
  }

  .serif-paragraph {
    font-size: calc(22 * var(--px));
    line-height: calc(28 * var(--px));
  }

  .paragraph {
    font-size: calc(18 * var(--px));
    line-height: calc(24 * var(--px));
  }

  .s-paragraph {
    font-size: calc(14 * var(--px));
    line-height: calc(18 * var(--px));
  }

  .xs-paragraph {
    font-size: calc(12 * var(--px));
    line-height: calc(16 * var(--px));
  }

  .form-input {
    font-size: calc(16 * var(--px));
    line-height: calc(18 * var(--px));
  }

  .m-cta {
    font-size: calc(20 * var(--px));
  }

  .cta {
    font-size: calc(14 * var(--px));
    line-height: calc(16 * var(--px));
  }
}

/* Global */

.button {
  position: relative;
  width: 100%;
  height: calc(60 * var(--px));
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  background: var(--gold);
  overflow: hidden;
}

.button::before {
    content: "";
    position: absolute;
    inset: -1px;
    background: var(--dark-green);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.3s ease-out;
  }

@media (hover: hover) {
    .button:hover::before {
      transform: scaleX(1);
    }
  }

.button:active::before {
    transform: scaleX(1);
  }

.button.button-form,.button.button-sec {
    --notch-width: calc(9 * var(--px));
    --notch-height: calc(17 * var(--px));
    -webkit-mask-image:
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 9 17'%3E%3Cpath d='M1 0.500557V0H0V17H1V16.5131C1 15.5658 1.4263 14.6687 2.1608 14.0705L7.99914 9.3152C8.51545 8.89466 8.51498 8.10592 7.99816 7.68601L2.16374 2.94554C1.42748 2.34733 1 1.4492 1 0.500557Z' fill='white'/%3E%3C/svg%3E"),
      linear-gradient(white, white);
    mask-image:
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 9 17'%3E%3Cpath d='M1 0.500557V0H0V17H1V16.5131C1 15.5658 1.4263 14.6687 2.1608 14.0705L7.99914 9.3152C8.51545 8.89466 8.51498 8.10592 7.99816 7.68601L2.16374 2.94554C1.42748 2.34733 1 1.4492 1 0.500557Z' fill='white'/%3E%3C/svg%3E"),
      linear-gradient(white, white);
    -webkit-mask-size:
      var(--notch-width) var(--notch-height),
      100% 100%;
    mask-size:
      var(--notch-width) var(--notch-height),
      100% 100%;
    -webkit-mask-position:
      calc(-1 * var(--px)) center,
      0 0;
    mask-position:
      calc(-1 * var(--px)) center,
      0 0;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-composite: xor;
    mask-composite: exclude;
  }

.button svg {
    position: absolute;
    left: calc(-1 * var(--px));
    z-index: 1;
  }

.button span {
    position: relative;
    z-index: 1;
    padding-bottom: calc(1 * var(--px));
  }

.button-sec {
  width: fit-content;
  padding: 0 calc(40 * var(--px));
  background: var(--sand);
  color: var(--dark-green);
}

.button-sec::before {
    background: var(--gold);
  }

.container {
  /* display: flex;
  flex-direction: column; */
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  column-gap: calc(8 * var(--px));
  row-gap: calc(100 * var(--px));
  padding: calc(100 * var(--px)) calc(12 * var(--px));
}

.container.reduced {
    padding: calc(12 * var(--px)) calc(12 * var(--px));
  }

.container.reduced-bottom {
    padding: calc(100 * var(--px)) calc(12 * var(--px)) calc(12 * var(--px));
  }

.container.dark-green {
    background: var(--dark-green);
    color: var(--sand);
  }

/* Nav */

nav {
  position: fixed;
  width: 100%;
  z-index: 2;
  pointer-events: none;
}

nav .logo,nav .menu-button,nav .cta,nav .menu {
    pointer-events: auto;
  }

nav .nav-scroll {
    display: flex;
    flex-direction: column;
    gap: calc(24 * var(--px));
    padding: calc(12 * var(--px)) calc(12 * var(--px)) calc(12 * var(--px));
    background-color: transparent;
    transition: background-color 0.4s ease;
  }

nav.open .menu-overlay {
      opacity: 1;
      visibility: visible;
      pointer-events: all;
      transition:
        opacity 0.35s ease,
        visibility 0s;
    }

nav.open .menu {
      clip-path: inset(0 0 0 0);
      visibility: visible;
      pointer-events: auto;
      transition:
        clip-path 0.35s cubic-bezier(0.45, 0, 0.55, 1) 0.1s,
        visibility 0s;
    }

nav .logo {
    justify-self: center;
    display: block;
    height: auto;
    color: white;
    transition: color 0.3s ease;
    padding-block: unset;

    /* Combined logo emblem: scales with the design system and stays centered.
       Mobile uses a smaller fixed width; tablet+ uses 208 to match the JS
       collapse animation (LOGO_FULL_WIDTH). */
  }

:is(nav .logo)  > svg {
      display: block;
      width: calc(130 * var(--px));
      height: auto;
      margin: 0 auto;
      pointer-events: auto;

      /* The "fregate" wordmark paths (the bird is a gradient and is left
         untouched). Matches the menu overlay's 0.35s ease so the colour flip
         stays in sync with the open/close animation. */
    }

:is(:is(nav .logo) > svg) path[fill="#006E4B"] {
        transition: fill 0.35s ease;
      }

nav .nav-bar {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: start;
    gap: calc(24 * var(--px));
  }

nav .nav-buttons {
    justify-self: start;
    display: flex;
    gap: calc(4 * var(--px));
  }

nav .menu-button {
    position: relative;
    flex-shrink: 0;
    /* width: calc(40 * var(--px)); */
    height: calc(40 * var(--px));
    padding: 0 calc(25 * var(--px));
    display: flex;
    align-items: center;
    justify-content: center;
    gap: calc(8 * var(--px));
    color: white;
    background: var(--gold);
    transition:
      background 0.3s ease,
      color 0.3s ease-out;
  }

:is(nav .menu-button) .icon-close {
      display: none;
    }

nav .menu-button {
    --notch-width: calc(9 * var(--px));
    --notch-height: calc(17 * var(--px));
    -webkit-mask-image:
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 9 17'%3E%3Cpath d='M1 0.500557V0H0V17H1V16.5131C1 15.5658 1.4263 14.6687 2.1608 14.0705L7.99914 9.3152C8.51545 8.89466 8.51498 8.10592 7.99816 7.68601L2.16374 2.94554C1.42748 2.34733 1 1.4492 1 0.500557Z' fill='white'/%3E%3C/svg%3E"),
      linear-gradient(white, white);
    mask-image:
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 9 17'%3E%3Cpath d='M1 0.500557V0H0V17H1V16.5131C1 15.5658 1.4263 14.6687 2.1608 14.0705L7.99914 9.3152C8.51545 8.89466 8.51498 8.10592 7.99816 7.68601L2.16374 2.94554C1.42748 2.34733 1 1.4492 1 0.500557Z' fill='white'/%3E%3C/svg%3E"),
      linear-gradient(white, white);
    -webkit-mask-size:
      var(--notch-width) var(--notch-height),
      100% 100%;
    mask-size:
      var(--notch-width) var(--notch-height),
      100% 100%;
    -webkit-mask-position:
      calc(-1 * var(--px)) center,
      0 0;
    mask-position:
      calc(-1 * var(--px)) center,
      0 0;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-composite: xor;
    mask-composite: exclude;
  }

:is(nav .menu-button)::before {
      content: "";
      position: absolute;
      inset: -1px;
      background: var(--dark-green);
      transform: scaleX(0);
      transform-origin: left;
      transition: transform 0.3s ease-out;
    }

:is(nav .menu-button) span {
      position: relative;
      z-index: 1;
      display: none;
    }

@media (hover: hover) {
      :is(nav .menu-button):hover::before {
        transform: scaleX(1);
      }

      :is(nav .menu-button):hover svg rect {
        fill: white;
      }

      :is(nav .menu-button):hover svg path {
        stroke: white;
      }
    }

:is(nav .menu-button):active::before {
      transform: scaleX(1);
    }

:is(nav .menu-button):active svg rect {
      fill: white;
    }

:is(nav .menu-button):active svg path {
      stroke: white;
    }

:is(nav .menu-button) svg {
      position: relative;
      z-index: 1;
      width: calc(12 * var(--px));
      height: calc(12 * var(--px));
    }

:is(:is(nav .menu-button) svg) rect {
        fill: white;
        transition: fill 0.3s ease-out;
      }

:is(:is(nav .menu-button) svg) path {
        stroke: white;
        transition: stroke 0.3s ease-out;
      }

/* Over --dark-green sections the default hover wipe (dark-green) would
     vanish into the background. In dark theme the wipe goes white and the
     label/icons flip to dark-green so the button stays legible. The gold
     rest state already reads fine on dark, so only hover/active change. */

:is(nav.dark-theme .menu-button)::before {
      background: white;
    }

@media (hover: hover) {
      :is(nav.dark-theme .menu-button):hover {
        color: var(--dark-green);
      }

      :is(nav.dark-theme .menu-button):hover svg rect {
        fill: var(--dark-green);
      }

      :is(nav.dark-theme .menu-button):hover svg path {
        stroke: var(--dark-green);
      }
    }

:is(nav.dark-theme .menu-button):active {
      color: var(--dark-green);
    }

:is(nav.dark-theme .menu-button):active svg rect {
      fill: var(--dark-green);
    }

:is(nav.dark-theme .menu-button):active svg path {
      stroke: var(--dark-green);
    }

/* Over dark sections (and while the menu is open over the dark overlay) the
     green "fregate" wordmark is illegible, so flip it to white (the bird
     gradient is left as-is). */

nav.dark-theme .logo svg path[fill="#006E4B"],nav.open .logo svg path[fill="#006E4B"] {
    fill: white;
  }

nav .menu-overlay {
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100vh;
    background: rgba(0, 0, 0, 0.6);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    z-index: -1;
    transition:
      opacity 0.35s ease,
      visibility 0s linear 0.35s;
  }

nav .menu {
    position: fixed;
    top: calc(12 * var(--px));
    left: 0;
    transform: translateY(var(--menu-offset, 0));
    clip-path: inset(0 100% 100% 0);
    visibility: hidden;
    pointer-events: none;
    width: calc(100% - calc(24 * var(--px)));
    margin: 0 calc(12 * var(--px));
    z-index: 1;
    transition:
      clip-path 0.35s cubic-bezier(0.45, 0, 0.55, 1) 0.1s,
      visibility 0s linear 0.4s;
  }

nav.menu-at-top .menu {
    --notch-top: calc(11.5 * var(--px));
    --notch-width: calc(9 * var(--px));
    --notch-height: calc(17 * var(--px));
    -webkit-mask-image:
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 9 17'%3E%3Cpath d='M1 0.500557V0H0V17H1V16.5131C1 15.5658 1.4263 14.6687 2.1608 14.0705L7.99914 9.3152C8.51545 8.89466 8.51498 8.10592 7.99816 7.68601L2.16374 2.94554C1.42748 2.34733 1 1.4492 1 0.500557Z' fill='white'/%3E%3C/svg%3E"),
      linear-gradient(white, white);
    mask-image:
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 9 17'%3E%3Cpath d='M1 0.500557V0H0V17H1V16.5131C1 15.5658 1.4263 14.6687 2.1608 14.0705L7.99914 9.3152C8.51545 8.89466 8.51498 8.10592 7.99816 7.68601L2.16374 2.94554C1.42748 2.34733 1 1.4492 1 0.500557Z' fill='white'/%3E%3C/svg%3E"),
      linear-gradient(white, white);
    -webkit-mask-size:
      var(--notch-width) var(--notch-height),
      100% 100%;
    mask-size:
      var(--notch-width) var(--notch-height),
      100% 100%;
    -webkit-mask-position:
      calc(-1 * var(--px)) var(--notch-top),
      0 0;
    mask-position:
      calc(-1 * var(--px)) var(--notch-top),
      0 0;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-composite: xor;
    mask-composite: exclude;
  }

nav .menu-close {
    position: absolute;
    top: 0;
    left: calc(32 * var(--px));
    width: fit-content;
    height: calc(44 * var(--px));
    display: none;
    align-items: center;
    justify-content: center;
    gap: calc(8 * var(--px));
  }

nav.menu-at-top .menu-close {
    display: flex;
    transition: color 0.3s ease-out;
  }

:is(nav.menu-at-top .menu-close) svg {
      width: calc(12 * var(--px));
      height: calc(12 * var(--px));
    }

:is(:is(nav.menu-at-top .menu-close) svg) path {
        transition: stroke 0.3s ease-out;
      }

@media (hover: hover) {
      :is(nav.menu-at-top .menu-close):hover {
        color: var(--gold);
      }

      :is(nav.menu-at-top .menu-close):hover svg path {
        stroke: var(--gold);
      }
    }

:is(nav.menu-at-top .menu-close):active {
      color: var(--gold);
    }

:is(nav.menu-at-top .menu-close):active svg path {
      stroke: var(--gold);
    }

nav .menu-logo {
    display: block;
    width: 100%;
    margin-bottom: calc(28 * var(--px));
    color: var(--dark-green);
  }

:is(nav .menu-logo) svg {
      width: calc(69 * var(--px));
      height: auto;
    }

nav.menu-at-top .menu-inner {
    padding: calc(68 * var(--px)) calc(32 * var(--px)) calc(24 * var(--px));
  }

nav .menu-inner {
    padding: calc(24 * var(--px)) calc(32 * var(--px)) calc(24 * var(--px));
    background: var(--sand);
  }

nav .menu-links {
    margin-bottom: calc(28 * var(--px));
  }

:is(nav .menu-links) a {
      transition:
        transform 0.3s ease-out,
        color 0.3s ease-out;
    }

@media (hover: hover) {
        :is(:is(nav .menu-links) a):hover {
          transform: translateX(calc(12 * var(--px)));
          color: var(--gold);
          text-decoration: none;
        }
      }

:is(:is(nav .menu-links) a):active {
        transform: translateX(calc(12 * var(--px)));
        color: var(--gold);
        text-decoration: none;
      }

nav .socials {
    flex-direction: row;
    gap: calc(20 * var(--px));
  }

nav ul {
    align-items: flex-start;
    gap: 0;
  }

:is(nav ul) a {
      text-decoration: none;
    }

@media (hover: hover) {
        :is(:is(nav ul) a):hover {
          text-decoration: underline;
        }
      }

:is(:is(nav ul) a):active {
        text-decoration: underline;
      }

nav a {
    height: calc(44 * var(--px));
    display: flex;
    align-items: center;
  }

nav .button-notch-gold {
    display: none;
  }

nav.menu-at-top .button-notch-gold {
    position: relative;
    display: flex;
    justify-content: center;
    color: white;
    background: var(--gold);
    text-align: center;
    --notch-width: calc(9 * var(--px));
    --notch-height: calc(17 * var(--px));
    -webkit-mask-image:
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 9 17'%3E%3Cpath d='M1 0.500557V0H0V17H1V16.5131C1 15.5658 1.4263 14.6687 2.1608 14.0705L7.99914 9.3152C8.51545 8.89466 8.51498 8.10592 7.99816 7.68601L2.16374 2.94554C1.42748 2.34733 1 1.4492 1 0.500557Z' fill='white'/%3E%3C/svg%3E"),
      linear-gradient(white, white);
    mask-image:
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 9 17'%3E%3Cpath d='M1 0.500557V0H0V17H1V16.5131C1 15.5658 1.4263 14.6687 2.1608 14.0705L7.99914 9.3152C8.51545 8.89466 8.51498 8.10592 7.99816 7.68601L2.16374 2.94554C1.42748 2.34733 1 1.4492 1 0.500557Z' fill='white'/%3E%3C/svg%3E"),
      linear-gradient(white, white);
    -webkit-mask-size:
      var(--notch-width) var(--notch-height),
      100% 100%;
    mask-size:
      var(--notch-width) var(--notch-height),
      100% 100%;
    -webkit-mask-position:
      calc(-1 * var(--px)) center,
      0 0;
    mask-position:
      calc(-1 * var(--px)) center,
      0 0;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-composite: xor;
    mask-composite: exclude;
  }

:is(nav.menu-at-top .button-notch-gold)::before {
      content: "";
      position: absolute;
      inset: -1px;
      background: var(--dark-green);
      transform: scaleX(0);
      transform-origin: left;
      transition: transform 0.3s ease-out;
    }

@media (hover: hover) {
      :is(nav.menu-at-top .button-notch-gold):hover::before {
        transform: scaleX(1);
      }
    }

:is(nav.menu-at-top .button-notch-gold):active::before {
      transform: scaleX(1);
    }

:is(nav.menu-at-top .button-notch-gold) span {
      position: relative;
      z-index: 1;
    }

/* Page */

.hero {
  position: relative;
}

.hero picture {
    height: 100vh;
    position: relative;
    /* Always contain the full-height image so it can never spill onto the
       section below. overflow:hidden works in every browser (overflow:clip,
       inherited from the base picture rule, is Safari 16+ only). */
    overflow: hidden;
    /* Hero parallax translates the full-height image rather than overscanning,
       so it doesn't get the extra height. */
    --parallax-overscan: 0%;
  }

:is(.hero picture)::after {
      content: "";
      position: absolute;
      inset: 0;
      background: linear-gradient(180deg, white 0%, transparent 20%);
    }

.hero header {
    position: absolute;
    left: 0;
    right: 0;
    bottom: calc(180 * var(--px));
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: calc(48 * var(--px));
    margin-inline: calc(12 * var(--px));
    color: var(--sand);
  }

.hero .top {
    display: flex;
    align-items: center;
    flex-direction: column;
    gap: calc(40 * var(--px));
    text-align: center;
  }

:is(.hero .top) :is(p,h1) {
      width: 100%;
    }

.hero .bottom {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(20 * var(--px));
    text-align: center;
  }

:is(.hero .bottom) p {
      width: 100%;
    }

.heading-large {
  grid-column: 1/-1;

  display: flex;
  flex-direction: column;
  gap: calc(24 * var(--px));
  width: 100%;
  text-align: center;
}

.heading-large.body-copy {
    text-align: left;
  }

.heading-large.sand :is(p,h1,h2,h3) {
      color: var(--sand);
    }

.heading-large.centered {
    text-align: center;
  }

.video {
  grid-column: 1/-1;
  width: 100%;
  aspect-ratio: 16 / 9;
  background: var(--dark-green);
}

.video video {
  display: block;
  width: 100%;
  height: 100%;
  border: none;
  object-fit: cover;
}

/* Native controls stay mounted but hidden, then fade in via .controls-visible
   (toggled on hover for desktop / tap for mobile in script.js). */
.video video::-webkit-media-controls-panel {
  opacity: 0;
  transition: opacity 0.55s ease;
}

.video video.controls-visible::-webkit-media-controls-panel {
  opacity: 1;
}

.form {
  display: flex;
  flex-direction: column;
  gap: calc(40 * var(--px));
  /* padding-top: calc(40 * var(--px));
  padding-bottom: calc(24 * var(--px));
  padding-inline: calc(12 * var(--px)); */
}

.form form {
    display: flex;
    flex-direction: column;
    gap: calc(40 * var(--px));
  }

.form  > .success {
    display: none;
    width: 100%;
  }

:is(.form > .success) .message {
      display: flex;
      align-items: center;
      justify-content: center;
      flex-direction: column;
      gap: calc(28 * var(--px));
      background: white;
      height: calc(360 * var(--px));
    }

.form.is-success form,.form.is-success > .s-heading {
    display: none;
  }

.form.is-success > .success {
    display: block;
  }

.form .form-inputs {
    display: flex;
    flex-direction: column;
    gap: calc(20 * var(--px));
  }

.form .form-inputs-column {
    display: grid;
    grid-template-columns: 1fr;
    gap: calc(12 * var(--px));
  }

.form .form-input {
    position: relative;
  }

:is(.form .form-input):has(input:focus) > span,:is(.form .form-input):has(input:not(:placeholder-shown)) > span {
      color: var(--green);
      transform: translate3d(0, calc(-8 * var(--px)), 0) scale(0.6);
    }

:is(.form .form-input) span {
      position: absolute;
      top: calc(16 * var(--px));
      left: calc(17 * var(--px));
      transform-origin: 0 0;
      transition:
        transform 0.2s ease,
        color 0.2s ease;
    }

:is(.form .form-input) input {
      width: 100%;
      height: calc(50 * var(--px));
      padding: calc(12 * var(--px)) calc(16 * var(--px)) 0;
      border: 1px solid rgba(17, 56, 45, 0.2);
    }

:is(:is(.form .form-input) input)::placeholder {
        color: transparent;
      }

.form .checkbox {
    display: flex;
    /* align-items: center; */
    gap: calc(12 * var(--px));
  }

:is(.form .checkbox) .checkbox-wrap {
      position: relative;
    }

:is(:is(.form .checkbox) .checkbox-wrap) input {
        flex-shrink: 0;
        appearance: none;
        background: transparent;
        width: calc(16 * var(--px));
        height: calc(16 * var(--px));
        border: 1px solid var(--green);
      }

:is(:is(:is(.form .checkbox) .checkbox-wrap) input):checked {
          background: var(--green);
        }

:is(:is(:is(.form .checkbox) .checkbox-wrap) input):checked  + svg {
            display: block;
          }

:is(:is(.form .checkbox) .checkbox-wrap) svg {
        position: absolute;
        inset: 0;
        width: calc(16 * var(--px));
        height: calc(16 * var(--px));
        pointer-events: none;
        z-index: 1;
        display: none;
      }

.image-array {
  grid-column: 1/-1;
  display: flex;
  flex-direction: column;
  gap: calc(24 * var(--px));
  padding: calc(24 * var(--px)) 0;
}
.full-image {
  grid-column: 1/-1;
  aspect-ratio: 4/5;
  overflow: hidden;
}
.full-image picture {
    height: 100%;
  }

.sticky-image {
  grid-column: 1/-1;
  aspect-ratio: 4/5;
  overflow: hidden;
  width: calc(100% + 24 * var(--px));
  transform: translateX(calc(-12 * var(--px)));
}

.sticky-image picture {
    height: 100%;
  }

.stacked-cards {
  grid-column: 1/-1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(40 * var(--px));
}

.stacked-cards .card {
    display: flex;
    flex-direction: column;
    /* gap: calc(60 * var(--px)); */
    width: 100%;
    border: calc(1 * var(--px)) solid var(--outline);
  }

:is(.stacked-cards .card) .header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: calc(16 * var(--px));
      padding: calc(22 * var(--px)) calc(24 * var(--px));
      background: var(--gold);

      /* Same notch as the button, cut into the left edge. */
      --notch-width: calc(9 * var(--px));
      --notch-height: calc(17 * var(--px));
      -webkit-mask-image:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 9 17'%3E%3Cpath d='M1 0.500557V0H0V17H1V16.5131C1 15.5658 1.4263 14.6687 2.1608 14.0705L7.99914 9.3152C8.51545 8.89466 8.51498 8.10592 7.99816 7.68601L2.16374 2.94554C1.42748 2.34733 1 1.4492 1 0.500557Z' fill='white'/%3E%3C/svg%3E"),
        linear-gradient(white, white);
      mask-image:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 9 17'%3E%3Cpath d='M1 0.500557V0H0V17H1V16.5131C1 15.5658 1.4263 14.6687 2.1608 14.0705L7.99914 9.3152C8.51545 8.89466 8.51498 8.10592 7.99816 7.68601L2.16374 2.94554C1.42748 2.34733 1 1.4492 1 0.500557Z' fill='white'/%3E%3C/svg%3E"),
        linear-gradient(white, white);
      -webkit-mask-size:
        var(--notch-width) var(--notch-height),
        100% 100%;
      mask-size:
        var(--notch-width) var(--notch-height),
        100% 100%;
      -webkit-mask-position:
        calc(-1 * var(--px)) center,
        0 0;
      mask-position:
        calc(-1 * var(--px)) center,
        0 0;
      -webkit-mask-repeat: no-repeat;
      mask-repeat: no-repeat;
      -webkit-mask-composite: xor;
      mask-composite: exclude;
    }

:is(.stacked-cards .card) .text {
      display: flex;
      flex-direction: column;
      gap: calc(40 * var(--px));
      background: var(--sand);
      color: var(--dark-green);
      padding: calc(48 * var(--px)) calc(28 * var(--px));
    }

.text-box {
  grid-column: 1/-1;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: calc(140 * var(--px)) 0 calc(188 * var(--px));
}

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

.mask-wrap {
  grid-column: 1/-1;
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  column-gap: calc(8 * var(--px));
  row-gap: calc(133 * var(--px));
  padding: calc(210 * var(--px)) 0 calc(12 * var(--px));
  background: var(--green);

  /* Triangle notch cut into the left-center and right-center edges - same
       xor technique as the button notch, pointing inward on the x axis. */
  --notch-width: calc(15 * var(--px));
  --notch-height: calc(30 * var(--px));
  -webkit-mask-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 15 30'%3E%3Cpath d='M0 0V30L15 15Z' fill='white'/%3E%3C/svg%3E"),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 15 30'%3E%3Cpath d='M15 0V30L0 15Z' fill='white'/%3E%3C/svg%3E"),
    linear-gradient(white, white);
  mask-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 15 30'%3E%3Cpath d='M0 0V30L15 15Z' fill='white'/%3E%3C/svg%3E"),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 15 30'%3E%3Cpath d='M15 0V30L0 15Z' fill='white'/%3E%3C/svg%3E"),
    linear-gradient(white, white);
  -webkit-mask-size:
    var(--notch-width) var(--notch-height),
    var(--notch-width) var(--notch-height),
    100% 100%;
  mask-size:
    var(--notch-width) var(--notch-height),
    var(--notch-width) var(--notch-height),
    100% 100%;
  -webkit-mask-position:
    left center,
    calc(100% + calc(1 * var(--px))) center,
    0 0;
  mask-position:
    left center,
    calc(100% + calc(1 * var(--px))) center,
    0 0;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-composite: xor;
  mask-composite: exclude;
}

.mask-wrap .mask-cta {
    grid-column: 1/-1;
    justify-self: center;
  }

.mask-wrap .heading-large {
    grid-column: 3/7;
    /* text-align: unset; */
  }

.mask-wrap .button {
    width: auto;
    justify-self: stretch;
    grid-column: 1/-1;
    margin: 0 calc(12 * var(--px));
  }

.bird-logo {
  grid-column: 1/-1;
  display: flex;
  justify-content: center;
}

.bird-logo svg {
    width: calc(180 * var(--px));
    height: auto;
  }

footer {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: calc(40 * var(--px));
  /* padding: 0 calc(12 * var(--px)); */
}

footer .details {
    display: flex;
    flex-direction: column;
    gap: calc(24 * var(--px));
    padding: 0 calc(12 * var(--px));
  }

:is(footer .details) ul {
      gap: 0;
    }

:is(:is(footer .details) ul) li a {
        height: calc(40 * var(--px));
        display: flex;
        align-items: center;
        gap: calc(8 * var(--px));
      }

footer form {
    width: 100%;
    padding: 0 calc(12 * var(--px));
  }

:is(footer form) .success {
      display: none;
      width: 100%;
    }

:is(:is(footer form) .success) .message {
        display: flex;
        align-items: center;
        justify-content: center;
        flex-direction: column;
        gap: calc(28 * var(--px));
        text-align: center;
        background: white;
        height: calc(420 * var(--px));
      }

.is-success:is(footer form) .form,.is-success:is(footer form) > button[type="submit"] {
      display: none;
    }

.is-success:is(footer form) .success {
      display: block;
    }

footer .form {
    padding-bottom: calc(40 * var(--px));
  }

footer .text-wrap {
    display: flex;
    flex-direction: column;
    gap: calc(12 * var(--px));
  }

footer .illustration {
    padding: calc(20 * var(--px)) 0 0;
    /* No parallax, so no overscan: the image shows in full, not clipped. */
    --parallax-overscan: 0%;
  }

footer .logo {
    width: 100%;
    padding: calc(40 * var(--px)) calc(12 * var(--px)) 0;
  }

footer .meta {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(12 * var(--px));
    padding: 0 calc(12 * var(--px)) calc(40 * var(--px));
    color: var(--green);
  }

footer .socials {
    display: flex;
    flex-direction: row;
    gap: calc(24 * var(--px));
  }

:is(footer .socials) a {
      height: calc(40 * var(--px));
      display: flex;
      align-items: center;
      text-decoration: none;
    }

@media (hover: hover) {
        :is(:is(footer .socials) a):hover {
          text-decoration: underline;
        }
      }

:is(:is(footer .socials) a):active {
        text-decoration: underline;
      }

footer .legal {
    display: flex;
    flex-direction: row;
    text-decoration: underline;
    gap: calc(24 * var(--px));
    padding: 0;
  }

footer .copyright {
    text-align: center;
    width: calc(325 * var(--px));
  }

/* Tablet */

@media screen and (min-width: 481px) {
    nav .menu-logo {
      display: none;
    }

    nav .logo > svg {
      width: calc(208 * var(--px));
    }

    nav .nav-scroll {
      gap: calc(32 * var(--px));
      padding: calc(24 * var(--px)) calc(32 * var(--px)) calc(32 * var(--px));
    }

    nav .menu-button span {
      display: inline;
    }

    nav .menu {
      top: calc(24 * var(--px));
      width: calc(459 * var(--px));
      margin: 0 calc(32 * var(--px));
    }

    nav .menu-links {
      gap: calc(4 * var(--px));
    }

      :is(nav .menu-links) a {
        padding-block: 0;
      }

    nav .socials {
      margin-top: calc(16 * var(--px));
    }

    nav a {
      height: auto;
      padding-block: calc(4 * var(--px));
    }

    nav .button-notch-gold {
      height: calc(44 * var(--px));
    }

  .container {
    grid-template-columns: repeat(12, 1fr);
    padding: calc(120 * var(--px)) calc(24 * var(--px));
    row-gap: calc(120 * var(--px));
  }

    .container.reduced {
      padding: calc(24 * var(--px));
    }
    .container.reduced-bottom {
      padding: calc(120 * var(--px)) calc(24 * var(--px)) 0;
    }
    .hero picture {
      min-height: calc(730 * var(--px));
    }
    .hero .top {
      margin: 0 auto;
      width: calc(730 * var(--px));
      gap: calc(60 * var(--px));
      text-align: unset;
    }

      :is(.hero .top) :is(p,h1) {
        display: flex;
        flex-direction: column;
      }

        :is(:is(.hero .top) :is(p,h1)) span:nth-child(2) {
          align-self: flex-end;
        }

    .hero .bottom {
      width: calc(730 * var(--px));
      margin: 0 auto;
    }

      :is(.hero .bottom) p {
        text-align: center;
      }

  .heading-large {
    /* gap: calc(40 * var(--px)); */
    grid-column: 3/11;
    margin-inline: unset;
    margin: 0 auto;
    text-align: unset;
  }

    .heading-large :is(p,h2):last-child {
      display: flex;
      flex-direction: column;
    }

      :is(.heading-large :is(p,h2):last-child) span:nth-child(2) {
        align-self: flex-end;
      }

  .full-image {
    grid-column: 1/-1;
    aspect-ratio: 16/9;
  }

    .full-image picture {
      height: 100%;
    }

  .sticky-image {
    grid-column: 1/-1;
    aspect-ratio: 16/9;
    width: calc(100% + 48 * var(--px));
    transform: translateX(calc(-24 * var(--px)));
  }
    .form .form-inputs-column {
      grid-template-columns: repeat(2, 1fr);
    }

      :is(.form .form-inputs-column) .form-input:nth-child(1) {
        grid-column: 1 / 2;
      }

      :is(.form .form-inputs-column) .form-input:nth-child(2) {
        grid-column: 2 / 3;
      }

      :is(.form .form-inputs-column) .form-input:nth-child(3) {
        grid-column: 1 / -1;
      }
      :is(.form > .success) .message {
        height: calc(258 * var(--px));
        padding-bottom: calc(24 * var(--px));
      }

  .full-image {
    aspect-ratio: 16/9;
  }

    .full-image picture {
      height: 100%;
    }

  .stacked-cards {
    gap: calc(40 * var(--px));
    margin-inline: calc(40 * var(--px));
  }

    .stacked-cards .card {
      gap: initial;
      justify-content: space-between;
      width: calc(748 * var(--px));
      z-index: 1;
    }
        :is(:is(.stacked-cards .card) .text) .sub-heading {
          margin-top: auto;
          margin-bottom: auto;
        }

  .text-box {
    grid-column: 4/10;
    padding: calc(160 * var(--px)) 0 calc(220 * var(--px));
    z-index: 1;
  }
    .bird-logo svg {
      width: calc(420 * var(--px));
    }

  footer {
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    /* align-items: center; */
    gap: calc(8 * var(--px));
    /* margin-top: calc(60 * var(--px)); */
    padding: calc(60 * var(--px)) calc(24 * var(--px)) 0;
  }

    footer .details {
      grid-column: 1/4;
      padding: unset;
    }

    footer form {
      grid-column: 5/-1;
      grid-row: 1/3;
      padding: 0;
    }
        :is(:is(footer form) .success) .message {
          height: calc(408 * var(--px));
        }
      :is(footer .form) .form-inputs-column {
        grid-template-columns: 1fr;
      }

        :is(:is(footer .form) .form-inputs-column) .form-input:nth-child(1),:is(:is(footer .form) .form-inputs-column) .form-input:nth-child(2),:is(:is(footer .form) .form-inputs-column) .form-input:nth-child(3) {
          grid-column: auto;
        }

    footer .heading-wrap {
      gap: calc(20 * var(--px));
    }

    footer .illustration {
      grid-column: 1/4;
      transform: translateX(calc(-24 * var(--px)));
    }

      :is(footer .illustration) img {
        width: 100%;
      }

    footer .logo {
      grid-column: 1/-1;
      padding: 0;
    }

    footer .meta {
      grid-column: 1/-1;
      width: 100%;
      flex-direction: row;
      align-items: center;
      justify-content: space-between;
      gap: 0;
      padding: calc(20 * var(--px)) 0;
    }

    footer .socials {
      gap: calc(4 * var(--px));
      order: 3;
    }

      :is(footer .socials) a {
        height: auto;
      }
      :is(footer .socials) svg {
        width: calc(40 * var(--px));
        height: auto;
      }

    footer .legal {
      order: 2;
    }

    footer .copyright {
      order: 1;
      text-align: left;
      width: fit-content;
    }
}

/* Desktop */

@media screen and (min-width: 1025px) {
    nav .nav-scroll {
      gap: calc(24 * var(--px));
      padding: calc(24 * var(--px)) calc(24 * var(--px)) calc(12 * var(--px));
    }

    /* .menu-button {
      width: calc(80 * var(--px));
    } */

    nav .menu {
      margin: 0 calc(24 * var(--px));
    }

    nav .menu-links {
      gap: calc(4 * var(--px));
    }

      :is(nav .menu-links) a {
        padding-block: 0;
      }

    nav .socials {
      margin-top: calc(16 * var(--px));
    }

    nav a {
      height: auto;
      padding-block: calc(4 * var(--px));
    }

    nav .button-notch-gold {
      height: calc(44 * var(--px));
    }

  .container {
    grid-template-columns: repeat(12, 1fr);
    padding: calc(120 * var(--px)) calc(24 * var(--px));
    row-gap: calc(120 * var(--px));
  }

    .container.reduced {
      padding: calc(24 * var(--px));
    }
    .container.reduced-bottom {
      padding: calc(120 * var(--px)) calc(24 * var(--px)) 0;
    }
    .hero header {
      bottom: calc(80 * var(--px));
      gap: calc(60 * var(--px));
    }

    .hero .top {
      margin: 0 auto;

      width: calc(926 * var(--px));
      gap: calc(60 * var(--px));
    }

      :is(.hero .top) :is(p,h1) {
        display: flex;
        flex-direction: column;
      }

        :is(:is(.hero .top) :is(p,h1)) span:nth-child(2) {
          align-self: flex-end;
        }

    .hero .bottom {
      width: calc(926 * var(--px));
      margin: 0 auto;
    }

      :is(.hero .bottom) p {
        text-align: center;
      }

  .heading-large {
    /* grid-column: 3/11; */
    width: 100%;
    max-width: calc(926 * var(--px));
  }

    .heading-large.body-copy {
      max-width: unset;
    }

  .video {
    grid-column: 1/-1;
  }
    .bird-logo svg {
      width: calc(454 * var(--px));
    }

  .mask-wrap {
    grid-column: 1/-1;
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    column-gap: calc(8 * var(--px));
    row-gap: calc(80 * var(--px));
    padding: calc(140 * var(--px)) 0;
    background: var(--green);

    /* Triangle notch cut into the top-center and bottom-center edges - same
       xor technique as the button notch, wider on the x axis. */
    --notch-width: calc(30 * var(--px));
    --notch-height: calc(15 * var(--px));
    -webkit-mask-image:
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 15'%3E%3Cpath d='M0 0H30L15 15Z' fill='white'/%3E%3C/svg%3E"),
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 15'%3E%3Cpath d='M0 15H30L15 0Z' fill='white'/%3E%3C/svg%3E"),
      linear-gradient(white, white);
    mask-image:
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 15'%3E%3Cpath d='M0 0H30L15 15Z' fill='white'/%3E%3C/svg%3E"),
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 15'%3E%3Cpath d='M0 15H30L15 0Z' fill='white'/%3E%3C/svg%3E"),
      linear-gradient(white, white);
    -webkit-mask-size:
      var(--notch-width) var(--notch-height),
      var(--notch-width) var(--notch-height),
      100% 100%;
    mask-size:
      var(--notch-width) var(--notch-height),
      var(--notch-width) var(--notch-height),
      100% 100%;
    -webkit-mask-position:
      center top,
      center bottom,
      0 0;
    mask-position:
      center top,
      center bottom,
      0 0;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-composite: xor;
    mask-composite: exclude;
  }

    .mask-wrap .mask-cta {
      grid-column: 1/-1;
      justify-self: center;
    }

    .mask-wrap .heading-large {
      grid-column: 1/-1;
    }
    .mask-wrap .button {
      width: fit-content;
      grid-column: 1/-1;
      margin: calc(12 * var(--px));
    }

  .form {
    padding-bottom: calc(32 * var(--px));
    /* padding-inline: calc(24 * var(--px)); */
  }
      :is(.form > .success) .message {
        gap: calc(32 * var(--px));
        height: calc(400 * var(--px));
      }

  .image-array {
    grid-column: 1/-1;
    display: flex;
    flex-direction: column;
    gap: calc(24 * var(--px));
    padding: calc(24 * var(--px)) 0;
  }
  .full-image {
    grid-column: 1/-1;
  }

  .sticky-image {
    grid-column: 1/-1;
    position: sticky;
    top: 0;
    left: 0;
    right: 0;
    aspect-ratio: unset;
    height: 100vh;
    width: calc(100% + 48 * var(--px));
  }

    .sticky-image picture {
      height: 100%;
    }

  .stacked-cards {
    grid-column: 1/-1;
    gap: calc(120 * var(--px));
  }

    .stacked-cards .card {
      /* position: sticky; */
      top: calc(24 * var(--px));
      /* padding: calc(32 * var(--px)); */
      transform-origin: center center;
      will-change: transform, opacity;
      width: calc(926 * var(--px));
    }

      :is(.stacked-cards .card) .header {
        padding: calc(28 * var(--px)) calc(64 * var(--px));
        background: var(--gold);
      }

      :is(.stacked-cards .card) .text {
        gap: calc(48 * var(--px));
        padding: calc(64 * var(--px));
      }

        :is(:is(.stacked-cards .card) .text) ul {
          display: flex;
          flex-direction: column;
          gap: calc(8 * var(--px));
        }

  .text-box {
    grid-column: 4/10;
    /* padding: calc(335 * var(--px)) 0 calc(215 * var(--px)); */
    padding: unset;
    height: 100vh;
  }

  footer {
    grid-template-columns: repeat(12, 1fr);
    /* gap: calc(12 * var(--px)); */
  }

    footer .details {
      grid-column: 2/7;
    }

    footer form {
      /* width: calc(692 * var(--px)); */
      grid-column: 8/12;
    }
        :is(:is(footer form) .success) .message {
          gap: calc(32 * var(--px));
          height: calc(490 * var(--px));
        }

    footer .illustration {
      grid-column: 1/7;
    }
    footer .meta {
      display: grid;
      grid-template-columns: repeat(12, 1fr);
      gap: calc(8 * var(--px));
    }
    footer .legal {
      grid-column: 7/10;
      grid-row: 1;
    }
    footer .copyright {
      grid-column: 1/7;
      grid-row: 1;
    }
    footer .socials {
      grid-column: 10/13;
      grid-row: 1;
      justify-self: end;
    }
      :is(footer .socials) svg {
        width: calc(32 * var(--px));
        height: auto;
      }
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL1VzZXJzL3Rlc3QvRG9jdW1lbnRzL2ZyZWdhdGUtbGFuZGluZy9zdHlsZXMuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQVU7O0FBRVY7RUFDRSx3QkFBd0I7RUFDeEIsdUVBQXVFO0VBQ3ZFLG9CQUFvQjtFQUNwQixrQkFBa0I7RUFDbEIsa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UseUJBQXlCO0VBQ3pCLHdFQUF3RTtFQUN4RSxvQkFBb0I7RUFDcEIsa0JBQWtCO0VBQ2xCLGtCQUFrQjtBQUNwQjs7QUFFQSxZQUFZOztBQUVaO0VBQ0UsU0FBUztFQUNULGVBQWU7RUFDZixtQ0FBbUM7RUFDbkMsaURBQWlEO0VBQ2pELCtCQUErQjtFQUMvQixjQUFjO0VBQ2QsYUFBYTtFQUNiLGdCQUFnQjtFQUNoQix5QkFBeUI7RUFDekIsdUJBQXVCO0FBd0J6Qjs7QUF0QkU7SUFDRSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLHVCQUF1QjtJQUN2QixjQUFjO0lBQ2Q7OzhEQUUwRDtJQUMxRCxtQ0FBbUM7SUFDbkMsc0JBQXNCO0lBQ3RCLDJCQUEyQjtFQUM3Qjs7QUFFQSxzRUFBc0U7O0FBQ3RFO0lBQ0UsVUFBVTtJQUNWLDZCQUE2QjtFQUMvQjs7QUFFQTtJQUNFLFVBQVU7RUFDWjs7QUFHRjtFQUNFO0lBQ0UsVUFBVTtJQUNWLGVBQWU7RUFDakI7QUFDRjs7QUFFQTtFQUNFO0lBQ0UsVUFBVTtJQUNWLGdCQUFnQjtFQUNsQjtBQUNGOztBQUVBLFdBQVc7O0FBRVg7RUFDRSxxQkFBcUI7RUFDckIsZ0JBQWdCO0VBQ2hCLHNCQUFzQjtFQUN0QixlQUFlO0VBQ2YsZUFBZTtFQUNmLGdDQUFnQzs7RUFFaEMsdUJBQXVCO0VBQ3ZCLHdCQUF3QjtBQUMxQjs7QUFFQSxhQUFhOztBQUViOzs7Ozs7O0VBT0UsZ0NBQWdDO0FBQ2xDOztBQUVBOzs7Ozs7RUFNRSxvQ0FBb0M7QUFDdEM7O0FBRUE7RUFDRSwrQkFBK0I7RUFDL0IsaUNBQWlDO0VBQ2pDLGdC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QjtJQUNBO01BQ0UsaUJBQWlCO01BQ2pCLFdBQVc7SUFDYjtJQUNBO01BQ0UsZ0JBQWdCO01BQ2hCLFdBQVc7SUFDYjtJQUNBO01BQ0Usa0JBQWtCO01BQ2xCLFdBQVc7TUFDWCxpQkFBaUI7SUFLbkI7TUFKRTtRQUNFLDJCQUEyQjtRQUMzQixZQUFZO01BQ2Q7QUFHTiIsImZpbGUiOiJzdHlsZXMuZmxhdC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBGb250cyAqL1xuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiTm90byBTYW5zXCI7XG4gIHNyYzogdXJsKFwiZm9udHMvbm90by1zYW5zLWxhdGluLXN0YW5kYXJkLW5vcm1hbC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKTtcbiAgZm9udC13ZWlnaHQ6IDEwMCA5MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiTm90byBTZXJpZlwiO1xuICBzcmM6IHVybChcImZvbnRzL25vdG8tc2VyaWYtbGF0aW4tc3RhbmRhcmQtbm9ybWFsLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpO1xuICBmb250LXdlaWdodDogMTAwIDkwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG5cbi8qIFNjYWxpbmcgKi9cblxuLmZyZWdhdGUtcm9vdCB7XG4gIC0tZHc6IDM5MDtcbiAgLS12dy1jYXA6IDEwMHZ3O1xuICAvKiAtLXB4OiBjYWxjKDEwMHZ3IC8gdmFyKC0tZHcpKTsgKi9cbiAgLS1weDogY2FsYyhtaW4oMTAwdncsIHZhcigtLXZ3LWNhcCkpIC8gdmFyKC0tZHcpKTtcbiAgZm9udC1zaXplOiBjYWxjKDE4ICogdmFyKC0tcHgpKTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGhlaWdodDogMTAwdmg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJzY3JvbGwtYmVoYXZpb3I6IG5vbmU7XG4gIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xuXG4gIHBpY3R1cmUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBvdmVyZmxvdzogY2xpcDtcbiAgICAvKiBMUUlQOiB0aGUgfjIwcHggYmx1ciBpcyBpbmxpbmVkIHBlciA8cGljdHVyZT4gYXMgLS1scWlwIGFuZCBzY2FsZWQgdXBcbiAgICAgICAoYnJvd3NlcnMgaW50ZXJwb2xhdGUgYmFja2dyb3VuZHMsIHNvIGl0IHJlYWRzIGFzIGEgc29mdCBibHVyKS4gSXQgc2l0c1xuICAgICAgIGJlaGluZCB0aGUgPGltZz4sIHdoaWNoIGZhZGVzIGluIG92ZXIgaXQgb25jZSBsb2FkZWQuICovXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdmFyKC0tbHFpcCwgbm9uZSk7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIH1cblxuICAvKiBPbmx5IGZhZGUgd2hlbiBKUyBpcyBhY3RpdmUsIHNvIHdpdGhvdXQgSlMgdGhlIGltYWdlcyBzdGlsbCBzaG93LiAqL1xuICAmLmpzIHBpY3R1cmUgaW1nIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC42cyBlYXNlO1xuICB9XG5cbiAgJi5qcyBwaWN0dXJlIGltZy5sb2FkZWQge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDgxcHgpIHtcbiAgLmZyZWdhdGUtcm9vdCB7XG4gICAgLS1kdzogMTAyNDtcbiAgICAtLXZ3LWNhcDogMTAwdnc7XG4gIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAyNXB4KSB7XG4gIC5mcmVnYXRlLXJvb3Qge1xuICAgIC0tZHc6IDE0NDA7XG4gICAgLS12dy1jYXA6IDIyNDBweDtcbiAgfVxufVxuXG4vKiBDb2xvcnMgKi9cblxuLmZyZWdhdGUtcm9vdCB7XG4gIC0tZGFyay1ncmVlbjogIzExMzgyZDtcbiAgLS1ncmVlbjogIzAwNmU0YjtcbiAgLS1saWdodC1ncmVlbjogIzAwZDA5ZTtcbiAgLS1nb2xkOiAjY2U5MzJjO1xuICAtLXNhbmQ6ICNlZmVmZGM7XG4gIC0tb3V0bGluZTogcmdiYSgxNywgNTUsIDQ0LCAwLjIpO1xuXG4gIGJhY2tncm91bmQ6IHZhcigtLXNhbmQpO1xuICBjb2xvcjogdmFyKC0tZGFyay1ncmVlbik7XG59XG5cbi8qIEhlYWRpbmdzICovXG5cbi54bC1oZWFkaW5nLFxuLmwtaGVhZGluZyxcbi5tLWhlYWRpbmcsXG4ucy1oZWFkaW5nLFxuLnN1Yi1oZWFkaW5nLFxuLmwtcGFyYWdyYXBoLFxuLnNlcmlmLXBhcmFncmFwaCB7XG4gIGZvbnQtZmFtaWx5OiBcIk5vdG8gU2VyaWZcIiwgc2VyaWY7XG59XG5cbi5wYXJhZ3JhcGgsXG4ucy1wYXJhZ3JhcGgsXG4ueHMtcGFyYWdyYXBoLFxuLmN0YSxcbi5tLWN0YSxcbi5mb3JtLWlucHV0IHtcbiAgZm9udC1mYW1pbHk6IFwiTm90byBTYW5zXCIsIHNhbnMtc2VyaWY7XG59XG5cbi54bC1oZWFkaW5nIHtcbiAgZm9udC1zaXplOiBjYWxjKDU1ICogdmFyKC0tcHgpKTtcbiAgbGluZS1oZWlnaHQ6IGNhbGMoNTUgKiB2YXIoLS1weCkpO1xuICBmb250LXdlaWdodDogMTAwO1xufVxuXG4ubC1oZWFkaW5nIHtcbiAgZm9udC1zaXplOiBjYWxjKDM2ICogdmFyKC0tcHgpKTtcbiAgbGluZS1oZWlnaHQ6IGNhbGMoNDAgKiB2YXIoLS1weCkpO1xuICBmb250LXdlaWdodDogMzAwO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDNlbTtcbn1cblxuLm0taGVhZGluZyB7XG4gIGZvbnQtc2l6ZTogY2FsYygyNCAqIHZhcigtLXB4KSk7XG4gIGxpbmUtaGVpZ2h0OiBjYWxjKDI4ICogdmFyKC0tcHgpKTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAzZW07XG59XG5cbi5zLWhlYWRpbmcge1xuICBmb250LXNpemU6IGNhbGMoMjAgKiB2YXIoLS1weCkpO1xuICBsaW5lLWhlaWdodDogY2FsYygyNiAqIHZhcigtLXB4KSk7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wM2VtO1xufVxuXG4uc3ViLWhlYWRpbmcge1xuICBmb250LXNpemU6IGNhbGMoMzAgKiB2YXIoLS1weCkpO1xuICBsaW5lLWhlaWdodDogY2FsYyg0MCAqIHZhcigtLXB4KSk7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wM2VtO1xufVxuXG4ubC1wYXJhZ3JhcGgge1xuICBmb250LXNpemU6IGNhbGMoMjIgKiB2YXIoLS1weCkpO1xuICBsaW5lLWhlaWdodDogY2FsYygyOSAqIHZhcigtLXB4KSk7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuXG4gIHN0cm9uZyB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgfVxufVxuXG4uc2VyaWYtcGFyYWdyYXBoIHtcbiAgZm9udC1zaXplOiBjYWxjKDE4ICogdmFyKC0tcHgpKTtcbiAgbGluZS1oZWlnaHQ6IGNhbGMoMjQgKiB2YXIoLS1weCkpO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcblxuICBzdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIH1cbn1cblxuLnBhcmFncmFwaCB7XG4gIGZvbnQtc2l6ZTogY2FsYygxNCAqIHZhcigtLXB4KSk7XG4gIGxpbmUtaGVpZ2h0OiBjYWxjKDIwICogdmFyKC0tcHgpKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XG5cbiAgc3Ryb25nIHtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICB9XG59XG5cbi5zLXBhcmFncmFwaCxcbi54cy1wYXJhZ3JhcGgge1xuICBmb250LXNpemU6IGNhbGMoMTIgKiB2YXIoLS1weCkpO1xuICBsaW5lLWhlaWdodDogY2FsYygxNiAqIHZhcigtLXB4KSk7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xufVxuXG4uZm9ybS1pbnB1dCB7XG4gIGZvbnQtc2l6ZTogY2FsYygxNiAqIHZhcigtLXB4KSk7XG4gIGxpbmUtaGVpZ2h0OiBjYWxjKDE4ICogdmFyKC0tcHgpKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XG59XG5cbi5tLWN0YSB7XG4gIGZvbnQtc2l6ZTogY2FsYygyMCAqIHZhcigtLXB4KSk7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xufVxuXG4uY3RhIHtcbiAgZm9udC1zaXplOiBjYWxjKDE0ICogdmFyKC0tcHgpKTtcbiAgbGluZS1oZWlnaHQ6IGNhbGMoMTYgKiB2YXIoLS1weCkpO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDgxcHgpIHtcbiAgLnhsLWhlYWRpbmcge1xuICAgIGZvbnQtc2l6ZTogY2FsYyg4MCAqIHZhcigtLXB4KSk7XG4gICAgbGluZS1oZWlnaHQ6IGNhbGMoODAgKiB2YXIoLS1weCkpO1xuICB9XG5cbiAgLmwtaGVhZGluZyB7XG4gICAgZm9udC1zaXplOiBjYWxjKDM2ICogdmFyKC0tcHgpKTtcbiAgICBsaW5lLWhlaWdodDogY2FsYyg0MCAqIHZhcigtLXB4KSk7XG4gIH1cblxuICAubS1oZWFkaW5nIHtcbiAgICBmb250LXNpemU6IGNhbGMoMzIgKiB2YXIoLS1weCkpO1xuICAgIGxpbmUtaGVpZ2h0OiBjYWxjKDQwICogdmFyKC0tcHgpKTtcbiAgfVxuXG4gIC5zLWhlYWRpbmcge1xuICAgIGZvbnQtc2l6ZTogY2FsYygyMiAqIHZhcigtLXB4KSk7XG4gICAgbGluZS1oZWlnaHQ6IGNhbGMoMjggKiB2YXIoLS1weCkpO1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIH1cblxuICAuc3ViLWhlYWRpbmcge1xuICAgIGZvbnQtc2l6ZTogY2FsYygzMCAqIHZhcigtLXB4KSk7XG4gICAgbGluZS1oZWlnaHQ6IGNhbGMoNDAgKiB2YXIoLS1weCkpO1xuICB9XG5cbiAgLmwtcGFyYWdyYXBoIHtcbiAgICBmb250LXNpemU6IGNhbGMoMjIgKiB2YXIoLS1weCkpO1xuICAgIGxpbmUtaGVpZ2h0OiBjYWxjKDI5ICogdmFyKC0tcHgpKTtcbiAgfVxuXG4gIC5zZXJpZi1wYXJhZ3JhcGgge1xuICAgIGZvbnQtc2l6ZTogY2FsYygxOCAqIHZhcigtLXB4KSk7XG4gICAgbGluZS1oZWlnaHQ6IGNhbGMoMjQgKiB2YXIoLS1weCkpO1xuICB9XG5cbiAgLnBhcmFncmFwaCB7XG4gICAgZm9udC1zaXplOiBjYWxjKDE4ICogdmFyKC0tcHgpKTtcbiAgICBsaW5lLWhlaWdodDogY2FsYygyNCAqIHZhcigtLXB4KSk7XG4gIH1cblxuICAucy1wYXJhZ3JhcGgge1xuICAgIGZvbnQtc2l6ZTogY2FsYygxNCAqIHZhcigtLXB4KSk7XG4gICAgbGluZS1oZWlnaHQ6IGNhbGMoMTggKiB2YXIoLS1weCkpO1xuICB9XG5cbiAgLnhzLXBhcmFncmFwaCB7XG4gICAgZm9udC1zaXplOiBjYWxjKDEyICogdmFyKC0tcHgpKTtcbiAgICBsaW5lLWhlaWdodDogY2FsYygxNiAqIHZhcigtLXB4KSk7XG4gIH1cblxuICAuZm9ybS1pbnB1dCB7XG4gICAgZm9udC1zaXplOiBjYWxjKDE2ICogdmFyKC0tcHgpKTtcbiAgICBsaW5lLWhlaWdodDogY2FsYygxOCAqIHZhcigtLXB4KSk7XG4gIH1cblxuICAubS1jdGEge1xuICAgIGZvbnQtc2l6ZTogY2FsYygyMCAqIHZhcigtLXB4KSk7XG4gIH1cblxuICAuY3RhIHtcbiAgICBmb250LXNpemU6IGNhbGMoMjAgKiB2YXIoLS1weCkpO1xuICAgIGxpbmUtaGVpZ2h0OiBjYWxjKDIwICogdmFyKC0tcHgpKTtcbiAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI1cHgpIHtcbiAgLnhsLWhlYWRpbmcge1xuICAgIGZvbnQtc2l6ZTogY2FsYygxMDAgKiB2YXIoLS1weCkpO1xuICAgIGxpbmUtaGVpZ2h0OiBjYWxjKDEwMCAqIHZhcigtLXB4KSk7XG4gIH1cblxuICAubC1oZWFkaW5nIHtcbiAgICBmb250LXNpemU6IGNhbGMoNTYgKiB2YXIoLS1weCkpO1xuICAgIGxpbmUtaGVpZ2h0OiBjYWxjKDcwICogdmFyKC0tcHgpKTtcbiAgfVxuXG4gIC5tLWhlYWRpbmcge1xuICAgIGZvbnQtc2l6ZTogY2FsYygzMiAqIHZhcigtLXB4KSk7XG4gICAgbGluZS1oZWlnaHQ6IGNhbGMoNDAgKiB2YXIoLS1weCkpO1xuICB9XG5cbiAgLnMtaGVhZGluZyB7XG4gICAgZm9udC1zaXplOiBjYWxjKDI0ICogdmFyKC0tcHgpKTtcbiAgICBsaW5lLWhlaWdodDogY2FsYygzMCAqIHZhcigtLXB4KSk7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgfVxuXG4gIC5zdWItaGVhZGluZyB7XG4gICAgZm9udC1zaXplOiBjYWxjKDQwICogdmFyKC0tcHgpKTtcbiAgICBsaW5lLWhlaWdodDogY2FsYyg1MCAqIHZhcigtLXB4KSk7XG4gIH1cblxuICAubC1wYXJhZ3JhcGgge1xuICAgIGZvbnQtc2l6ZTogY2FsYygyOCAqIHZhcigtLXB4KSk7XG4gICAgbGluZS1oZWlnaHQ6IGNhbGMoMzUgKiB2YXIoLS1weCkpO1xuICB9XG5cbiAgLnNlcmlmLXBhcmFncmFwaCB7XG4gICAgZm9udC1zaXplOiBjYWxjKDIyICogdmFyKC0tcHgpKTtcbiAgICBsaW5lLWhlaWdodDogY2FsYygyOCAqIHZhcigtLXB4KSk7XG4gIH1cblxuICAucGFyYWdyYXBoIHtcbiAgICBmb250LXNpemU6IGNhbGMoMTggKiB2YXIoLS1weCkpO1xuICAgIGxpbmUtaGVpZ2h0OiBjYWxjKDI0ICogdmFyKC0tcHgpKTtcbiAgfVxuXG4gIC5zLXBhcmFncmFwaCB7XG4gICAgZm9udC1zaXplOiBjYWxjKDE0ICogdmFyKC0tcHgpKTtcbiAgICBsaW5lLWhlaWdodDogY2FsYygxOCAqIHZhcigtLXB4KSk7XG4gIH1cblxuICAueHMtcGFyYWdyYXBoIHtcbiAgICBmb250LXNpemU6IGNhbGMoMTIgKiB2YXIoLS1weCkpO1xuICAgIGxpbmUtaGVpZ2h0OiBjYWxjKDE2ICogdmFyKC0tcHgpKTtcbiAgfVxuXG4gIC5mb3JtLWlucHV0IHtcbiAgICBmb250LXNpemU6IGNhbGMoMTYgKiB2YXIoLS1weCkpO1xuICAgIGxpbmUtaGVpZ2h0OiBjYWxjKDE4ICogdmFyKC0tcHgpKTtcbiAgfVxuXG4gIC5tLWN0YSB7XG4gICAgZm9udC1zaXplOiBjYWxjKDIwICogdmFyKC0tcHgpKTtcbiAgfVxuXG4gIC5jdGEge1xuICAgIGZvbnQtc2l6ZTogY2FsYygxNCAqIHZhcigtLXB4KSk7XG4gICAgbGluZS1oZWlnaHQ6IGNhbGMoMTYgKiB2YXIoLS1weCkpO1xuICB9XG59XG5cbi8qIEdsb2JhbCAqL1xuXG4uYnV0dG9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBjYWxjKDYwICogdmFyKC0tcHgpKTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZDogdmFyKC0tZ29sZCk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogLTFweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kYXJrLWdyZWVuKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgwKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0O1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2Utb3V0O1xuICB9XG5cbiAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAmOmhvdmVyOjpiZWZvcmUge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7XG4gICAgfVxuICB9XG5cbiAgJjphY3RpdmU6OmJlZm9yZSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7XG4gIH1cblxuICAmLmJ1dHRvbi1mb3JtLFxuICAmLmJ1dHRvbi1zZWMge1xuICAgIC0tbm90Y2gtd2lkdGg6IGNhbGMoOSAqIHZhcigtLXB4KSk7XG4gICAgLS1ub3RjaC1oZWlnaHQ6IGNhbGMoMTcgKiB2YXIoLS1weCkpO1xuICAgIC13ZWJraXQtbWFzay1pbWFnZTpcbiAgICAgIHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgOSAxNyclM0UlM0NwYXRoIGQ9J00xIDAuNTAwNTU3VjBIMFYxN0gxVjE2LjUxMzFDMSAxNS41NjU4IDEuNDI2MyAxNC42Njg3IDIuMTYwOCAxNC4wNzA1TDcuOTk5MTQgOS4zMTUyQzguNTE1NDUgOC44OTQ2NiA4LjUxNDk4IDguMTA1OTIgNy45OTgxNiA3LjY4NjAxTDIuMTYzNzQgMi45NDU1NEMxLjQyNzQ4IDIuMzQ3MzMgMSAxLjQ0OTIgMSAwLjUwMDU1N1onIGZpbGw9J3doaXRlJy8lM0UlM0Mvc3ZnJTNFXCIpLFxuICAgICAgbGluZWFyLWdyYWRpZW50KHdoaXRlLCB3aGl0ZSk7XG4gICAgbWFzay1pbWFnZTpcbiAgICAgIHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgOSAxNyclM0UlM0NwYXRoIGQ9J00xIDAuNTAwNTU3VjBIMFYxN0gxVjE2LjUxMzFDMSAxNS41NjU4IDEuNDI2MyAxNC42Njg3IDIuMTYwOCAxNC4wNzA1TDcuOTk5MTQgOS4zMTUyQzguNTE1NDUgOC44OTQ2NiA4LjUxNDk4IDguMTA1OTIgNy45OTgxNiA3LjY4NjAxTDIuMTYzNzQgMi45NDU1NEMxLjQyNzQ4IDIuMzQ3MzMgMSAxLjQ0OTIgMSAwLjUwMDU1N1onIGZpbGw9J3doaXRlJy8lM0UlM0Mvc3ZnJTNFXCIpLFxuICAgICAgbGluZWFyLWdyYWRpZW50KHdoaXRlLCB3aGl0ZSk7XG4gICAgLXdlYmtpdC1tYXNrLXNpemU6XG4gICAgICB2YXIoLS1ub3RjaC13aWR0aCkgdmFyKC0tbm90Y2gtaGVpZ2h0KSxcbiAgICAgIDEwMCUgMTAwJTtcbiAgICBtYXNrLXNpemU6XG4gICAgICB2YXIoLS1ub3RjaC13aWR0aCkgdmFyKC0tbm90Y2gtaGVpZ2h0KSxcbiAgICAgIDEwMCUgMTAwJTtcbiAgICAtd2Via2l0LW1hc2stcG9zaXRpb246XG4gICAgICBjYWxjKC0xICogdmFyKC0tcHgpKSBjZW50ZXIsXG4gICAgICAwIDA7XG4gICAgbWFzay1wb3NpdGlvbjpcbiAgICAgIGNhbGMoLTEgKiB2YXIoLS1weCkpIGNlbnRlcixcbiAgICAgIDAgMDtcbiAgICAtd2Via2l0LW1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgbWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAtd2Via2l0LW1hc2stY29tcG9zaXRlOiB4b3I7XG4gICAgbWFzay1jb21wb3NpdGU6IGV4Y2x1ZGU7XG4gIH1cblxuICBzdmcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiBjYWxjKC0xICogdmFyKC0tcHgpKTtcbiAgICB6LWluZGV4OiAxO1xuICB9XG5cbiAgc3BhbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgcGFkZGluZy1ib3R0b206IGNhbGMoMSAqIHZhcigtLXB4KSk7XG4gIH1cbn1cblxuLmJ1dHRvbi1zZWMge1xuICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gIHBhZGRpbmc6IDAgY2FsYyg0MCAqIHZhcigtLXB4KSk7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNhbmQpO1xuICBjb2xvcjogdmFyKC0tZGFyay1ncmVlbik7XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1nb2xkKTtcbiAgfVxufVxuXG4uY29udGFpbmVyIHtcbiAgLyogZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgKi9cbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoOCwgMWZyKTtcbiAgY29sdW1uLWdhcDogY2FsYyg4ICogdmFyKC0tcHgpKTtcbiAgcm93LWdhcDogY2FsYygxMDAgKiB2YXIoLS1weCkpO1xuICBwYWRkaW5nOiBjYWxjKDEwMCAqIHZhcigtLXB4KSkgY2FsYygxMiAqIHZhcigtLXB4KSk7XG5cbiAgJi5yZWR1Y2VkIHtcbiAgICBwYWRkaW5nOiBjYWxjKDEyICogdmFyKC0tcHgpKSBjYWxjKDEyICogdmFyKC0tcHgpKTtcbiAgfVxuXG4gICYucmVkdWNlZC1ib3R0b20ge1xuICAgIHBhZGRpbmc6IGNhbGMoMTAwICogdmFyKC0tcHgpKSBjYWxjKDEyICogdmFyKC0tcHgpKSBjYWxjKDEyICogdmFyKC0tcHgpKTtcbiAgfVxuXG4gICYuZGFyay1ncmVlbiB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tZGFyay1ncmVlbik7XG4gICAgY29sb3I6IHZhcigtLXNhbmQpO1xuICB9XG59XG5cbi8qIE5hdiAqL1xuXG5uYXYge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiAyO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAubG9nbyxcbiAgLm1lbnUtYnV0dG9uLFxuICAuY3RhLFxuICAubWVudSB7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gIH1cblxuICAubmF2LXNjcm9sbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogY2FsYygyNCAqIHZhcigtLXB4KSk7XG4gICAgcGFkZGluZzogY2FsYygxMiAqIHZhcigtLXB4KSkgY2FsYygxMiAqIHZhcigtLXB4KSkgY2FsYygxMiAqIHZhcigtLXB4KSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjRzIGVhc2U7XG4gIH1cblxuICAmLm9wZW4ge1xuICAgIC5tZW51LW92ZXJsYXkge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgb3BhY2l0eSAwLjM1cyBlYXNlLFxuICAgICAgICB2aXNpYmlsaXR5IDBzO1xuICAgIH1cblxuICAgIC5tZW51IHtcbiAgICAgIGNsaXAtcGF0aDogaW5zZXQoMCAwIDAgMCk7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgICB0cmFuc2l0aW9uOlxuICAgICAgICBjbGlwLXBhdGggMC4zNXMgY3ViaWMtYmV6aWVyKDAuNDUsIDAsIDAuNTUsIDEpIDAuMXMsXG4gICAgICAgIHZpc2liaWxpdHkgMHM7XG4gICAgfVxuICB9XG5cbiAgLmxvZ28ge1xuICAgIGp1c3RpZnktc2VsZjogY2VudGVyO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMC4zcyBlYXNlO1xuICAgIHBhZGRpbmctYmxvY2s6IHVuc2V0O1xuXG4gICAgLyogQ29tYmluZWQgbG9nbyBlbWJsZW06IHNjYWxlcyB3aXRoIHRoZSBkZXNpZ24gc3lzdGVtIGFuZCBzdGF5cyBjZW50ZXJlZC5cbiAgICAgICBNb2JpbGUgdXNlcyBhIHNtYWxsZXIgZml4ZWQgd2lkdGg7IHRhYmxldCsgdXNlcyAyMDggdG8gbWF0Y2ggdGhlIEpTXG4gICAgICAgY29sbGFwc2UgYW5pbWF0aW9uIChMT0dPX0ZVTExfV0lEVEgpLiAqL1xuICAgID4gc3ZnIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IGNhbGMoMTMwICogdmFyKC0tcHgpKTtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG5cbiAgICAgIC8qIFRoZSBcImZyZWdhdGVcIiB3b3JkbWFyayBwYXRocyAodGhlIGJpcmQgaXMgYSBncmFkaWVudCBhbmQgaXMgbGVmdFxuICAgICAgICAgdW50b3VjaGVkKS4gTWF0Y2hlcyB0aGUgbWVudSBvdmVybGF5J3MgMC4zNXMgZWFzZSBzbyB0aGUgY29sb3VyIGZsaXBcbiAgICAgICAgIHN0YXlzIGluIHN5bmMgd2l0aCB0aGUgb3Blbi9jbG9zZSBhbmltYXRpb24uICovXG4gICAgICBwYXRoW2ZpbGw9XCIjMDA2RTRCXCJdIHtcbiAgICAgICAgdHJhbnNpdGlvbjogZmlsbCAwLjM1cyBlYXNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5uYXYtYmFyIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIGF1dG8gMWZyO1xuICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcbiAgICBnYXA6IGNhbGMoMjQgKiB2YXIoLS1weCkpO1xuICB9XG5cbiAgLm5hdi1idXR0b25zIHtcbiAgICBqdXN0aWZ5LXNlbGY6IHN0YXJ0O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiBjYWxjKDQgKiB2YXIoLS1weCkpO1xuICB9XG5cbiAgLm1lbnUtYnV0dG9uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgLyogd2lkdGg6IGNhbGMoNDAgKiB2YXIoLS1weCkpOyAqL1xuICAgIGhlaWdodDogY2FsYyg0MCAqIHZhcigtLXB4KSk7XG4gICAgcGFkZGluZzogMCBjYWxjKDI1ICogdmFyKC0tcHgpKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiBjYWxjKDggKiB2YXIoLS1weCkpO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1nb2xkKTtcbiAgICB0cmFuc2l0aW9uOlxuICAgICAgYmFja2dyb3VuZCAwLjNzIGVhc2UsXG4gICAgICBjb2xvciAwLjNzIGVhc2Utb3V0O1xuXG4gICAgLmljb24tY2xvc2Uge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgLS1ub3RjaC13aWR0aDogY2FsYyg5ICogdmFyKC0tcHgpKTtcbiAgICAtLW5vdGNoLWhlaWdodDogY2FsYygxNyAqIHZhcigtLXB4KSk7XG4gICAgLXdlYmtpdC1tYXNrLWltYWdlOlxuICAgICAgdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA5IDE3JyUzRSUzQ3BhdGggZD0nTTEgMC41MDA1NTdWMEgwVjE3SDFWMTYuNTEzMUMxIDE1LjU2NTggMS40MjYzIDE0LjY2ODcgMi4xNjA4IDE0LjA3MDVMNy45OTkxNCA5LjMxNTJDOC41MTU0NSA4Ljg5NDY2IDguNTE0OTggOC4xMDU5MiA3Ljk5ODE2IDcuNjg2MDFMMi4xNjM3NCAyLjk0NTU0QzEuNDI3NDggMi4zNDczMyAxIDEuNDQ5MiAxIDAuNTAwNTU3WicgZmlsbD0nd2hpdGUnLyUzRSUzQy9zdmclM0VcIiksXG4gICAgICBsaW5lYXItZ3JhZGllbnQod2hpdGUsIHdoaXRlKTtcbiAgICBtYXNrLWltYWdlOlxuICAgICAgdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA5IDE3JyUzRSUzQ3BhdGggZD0nTTEgMC41MDA1NTdWMEgwVjE3SDFWMTYuNTEzMUMxIDE1LjU2NTggMS40MjYzIDE0LjY2ODcgMi4xNjA4IDE0LjA3MDVMNy45OTkxNCA5LjMxNTJDOC41MTU0NSA4Ljg5NDY2IDguNTE0OTggOC4xMDU5MiA3Ljk5ODE2IDcuNjg2MDFMMi4xNjM3NCAyLjk0NTU0QzEuNDI3NDggMi4zNDczMyAxIDEuNDQ5MiAxIDAuNTAwNTU3WicgZmlsbD0nd2hpdGUnLyUzRSUzQy9zdmclM0VcIiksXG4gICAgICBsaW5lYXItZ3JhZGllbnQod2hpdGUsIHdoaXRlKTtcbiAgICAtd2Via2l0LW1hc2stc2l6ZTpcbiAgICAgIHZhcigtLW5vdGNoLXdpZHRoKSB2YXIoLS1ub3RjaC1oZWlnaHQpLFxuICAgICAgMTAwJSAxMDAlO1xuICAgIG1hc2stc2l6ZTpcbiAgICAgIHZhcigtLW5vdGNoLXdpZHRoKSB2YXIoLS1ub3RjaC1oZWlnaHQpLFxuICAgICAgMTAwJSAxMDAlO1xuICAgIC13ZWJraXQtbWFzay1wb3NpdGlvbjpcbiAgICAgIGNhbGMoLTEgKiB2YXIoLS1weCkpIGNlbnRlcixcbiAgICAgIDAgMDtcbiAgICBtYXNrLXBvc2l0aW9uOlxuICAgICAgY2FsYygtMSAqIHZhcigtLXB4KSkgY2VudGVyLFxuICAgICAgMCAwO1xuICAgIC13ZWJraXQtbWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBtYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIC13ZWJraXQtbWFzay1jb21wb3NpdGU6IHhvcjtcbiAgICBtYXNrLWNvbXBvc2l0ZTogZXhjbHVkZTtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgaW5zZXQ6IC0xcHg7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kYXJrLWdyZWVuKTtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDApO1xuICAgICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2Utb3V0O1xuICAgIH1cblxuICAgIHNwYW4ge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAgICY6aG92ZXI6OmJlZm9yZSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpO1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyIHN2ZyByZWN0IHtcbiAgICAgICAgZmlsbDogd2hpdGU7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIgc3ZnIHBhdGgge1xuICAgICAgICBzdHJva2U6IHdoaXRlO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6YWN0aXZlOjpiZWZvcmUge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7XG4gICAgfVxuXG4gICAgJjphY3RpdmUgc3ZnIHJlY3Qge1xuICAgICAgZmlsbDogd2hpdGU7XG4gICAgfVxuXG4gICAgJjphY3RpdmUgc3ZnIHBhdGgge1xuICAgICAgc3Ryb2tlOiB3aGl0ZTtcbiAgICB9XG5cbiAgICBzdmcge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIHdpZHRoOiBjYWxjKDEyICogdmFyKC0tcHgpKTtcbiAgICAgIGhlaWdodDogY2FsYygxMiAqIHZhcigtLXB4KSk7XG5cbiAgICAgIHJlY3Qge1xuICAgICAgICBmaWxsOiB3aGl0ZTtcbiAgICAgICAgdHJhbnNpdGlvbjogZmlsbCAwLjNzIGVhc2Utb3V0O1xuICAgICAgfVxuXG4gICAgICBwYXRoIHtcbiAgICAgICAgc3Ryb2tlOiB3aGl0ZTtcbiAgICAgICAgdHJhbnNpdGlvbjogc3Ryb2tlIDAuM3MgZWFzZS1vdXQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyogT3ZlciAtLWRhcmstZ3JlZW4gc2VjdGlvbnMgdGhlIGRlZmF1bHQgaG92ZXIgd2lwZSAoZGFyay1ncmVlbikgd291bGRcbiAgICAgdmFuaXNoIGludG8gdGhlIGJhY2tncm91bmQuIEluIGRhcmsgdGhlbWUgdGhlIHdpcGUgZ29lcyB3aGl0ZSBhbmQgdGhlXG4gICAgIGxhYmVsL2ljb25zIGZsaXAgdG8gZGFyay1ncmVlbiBzbyB0aGUgYnV0dG9uIHN0YXlzIGxlZ2libGUuIFRoZSBnb2xkXG4gICAgIHJlc3Qgc3RhdGUgYWxyZWFkeSByZWFkcyBmaW5lIG9uIGRhcmssIHNvIG9ubHkgaG92ZXIvYWN0aXZlIGNoYW5nZS4gKi9cbiAgJi5kYXJrLXRoZW1lIC5tZW51LWJ1dHRvbiB7XG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIH1cblxuICAgIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWRhcmstZ3JlZW4pO1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyIHN2ZyByZWN0IHtcbiAgICAgICAgZmlsbDogdmFyKC0tZGFyay1ncmVlbik7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIgc3ZnIHBhdGgge1xuICAgICAgICBzdHJva2U6IHZhcigtLWRhcmstZ3JlZW4pO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6YWN0aXZlIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1kYXJrLWdyZWVuKTtcbiAgICB9XG5cbiAgICAmOmFjdGl2ZSBzdmcgcmVjdCB7XG4gICAgICBmaWxsOiB2YXIoLS1kYXJrLWdyZWVuKTtcbiAgICB9XG5cbiAgICAmOmFjdGl2ZSBzdmcgcGF0aCB7XG4gICAgICBzdHJva2U6IHZhcigtLWRhcmstZ3JlZW4pO1xuICAgIH1cbiAgfVxuXG4gIC8qIE92ZXIgZGFyayBzZWN0aW9ucyAoYW5kIHdoaWxlIHRoZSBtZW51IGlzIG9wZW4gb3ZlciB0aGUgZGFyayBvdmVybGF5KSB0aGVcbiAgICAgZ3JlZW4gXCJmcmVnYXRlXCIgd29yZG1hcmsgaXMgaWxsZWdpYmxlLCBzbyBmbGlwIGl0IHRvIHdoaXRlICh0aGUgYmlyZFxuICAgICBncmFkaWVudCBpcyBsZWZ0IGFzLWlzKS4gKi9cbiAgJi5kYXJrLXRoZW1lIC5sb2dvIHN2ZyBwYXRoW2ZpbGw9XCIjMDA2RTRCXCJdLFxuICAmLm9wZW4gLmxvZ28gc3ZnIHBhdGhbZmlsbD1cIiMwMDZFNEJcIl0ge1xuICAgIGZpbGw6IHdoaXRlO1xuICB9XG5cbiAgLm1lbnUtb3ZlcmxheSB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGluc2V0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwdmg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHotaW5kZXg6IC0xO1xuICAgIHRyYW5zaXRpb246XG4gICAgICBvcGFjaXR5IDAuMzVzIGVhc2UsXG4gICAgICB2aXNpYmlsaXR5IDBzIGxpbmVhciAwLjM1cztcbiAgfVxuXG4gIC5tZW51IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiBjYWxjKDEyICogdmFyKC0tcHgpKTtcbiAgICBsZWZ0OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSh2YXIoLS1tZW51LW9mZnNldCwgMCkpO1xuICAgIGNsaXAtcGF0aDogaW5zZXQoMCAxMDAlIDEwMCUgMCk7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSBjYWxjKDI0ICogdmFyKC0tcHgpKSk7XG4gICAgbWFyZ2luOiAwIGNhbGMoMTIgKiB2YXIoLS1weCkpO1xuICAgIHotaW5kZXg6IDE7XG4gICAgdHJhbnNpdGlvbjpcbiAgICAgIGNsaXAtcGF0aCAwLjM1cyBjdWJpYy1iZXppZXIoMC40NSwgMCwgMC41NSwgMSkgMC4xcyxcbiAgICAgIHZpc2liaWxpdHkgMHMgbGluZWFyIDAuNHM7XG4gIH1cblxuICAmLm1lbnUtYXQtdG9wIC5tZW51IHtcbiAgICAtLW5vdGNoLXRvcDogY2FsYygxMS41ICogdmFyKC0tcHgpKTtcbiAgICAtLW5vdGNoLXdpZHRoOiBjYWxjKDkgKiB2YXIoLS1weCkpO1xuICAgIC0tbm90Y2gtaGVpZ2h0OiBjYWxjKDE3ICogdmFyKC0tcHgpKTtcbiAgICAtd2Via2l0LW1hc2staW1hZ2U6XG4gICAgICB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDkgMTcnJTNFJTNDcGF0aCBkPSdNMSAwLjUwMDU1N1YwSDBWMTdIMVYxNi41MTMxQzEgMTUuNTY1OCAxLjQyNjMgMTQuNjY4NyAyLjE2MDggMTQuMDcwNUw3Ljk5OTE0IDkuMzE1MkM4LjUxNTQ1IDguODk0NjYgOC41MTQ5OCA4LjEwNTkyIDcuOTk4MTYgNy42ODYwMUwyLjE2Mzc0IDIuOTQ1NTRDMS40Mjc0OCAyLjM0NzMzIDEgMS40NDkyIDEgMC41MDA1NTdaJyBmaWxsPSd3aGl0ZScvJTNFJTNDL3N2ZyUzRVwiKSxcbiAgICAgIGxpbmVhci1ncmFkaWVudCh3aGl0ZSwgd2hpdGUpO1xuICAgIG1hc2staW1hZ2U6XG4gICAgICB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDkgMTcnJTNFJTNDcGF0aCBkPSdNMSAwLjUwMDU1N1YwSDBWMTdIMVYxNi41MTMxQzEgMTUuNTY1OCAxLjQyNjMgMTQuNjY4NyAyLjE2MDggMTQuMDcwNUw3Ljk5OTE0IDkuMzE1MkM4LjUxNTQ1IDguODk0NjYgOC41MTQ5OCA4LjEwNTkyIDcuOTk4MTYgNy42ODYwMUwyLjE2Mzc0IDIuOTQ1NTRDMS40Mjc0OCAyLjM0NzMzIDEgMS40NDkyIDEgMC41MDA1NTdaJyBmaWxsPSd3aGl0ZScvJTNFJTNDL3N2ZyUzRVwiKSxcbiAgICAgIGxpbmVhci1ncmFkaWVudCh3aGl0ZSwgd2hpdGUpO1xuICAgIC13ZWJraXQtbWFzay1zaXplOlxuICAgICAgdmFyKC0tbm90Y2gtd2lkdGgpIHZhcigtLW5vdGNoLWhlaWdodCksXG4gICAgICAxMDAlIDEwMCU7XG4gICAgbWFzay1zaXplOlxuICAgICAgdmFyKC0tbm90Y2gtd2lkdGgpIHZhcigtLW5vdGNoLWhlaWdodCksXG4gICAgICAxMDAlIDEwMCU7XG4gICAgLXdlYmtpdC1tYXNrLXBvc2l0aW9uOlxuICAgICAgY2FsYygtMSAqIHZhcigtLXB4KSkgdmFyKC0tbm90Y2gtdG9wKSxcbiAgICAgIDAgMDtcbiAgICBtYXNrLXBvc2l0aW9uOlxuICAgICAgY2FsYygtMSAqIHZhcigtLXB4KSkgdmFyKC0tbm90Y2gtdG9wKSxcbiAgICAgIDAgMDtcbiAgICAtd2Via2l0LW1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgbWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAtd2Via2l0LW1hc2stY29tcG9zaXRlOiB4b3I7XG4gICAgbWFzay1jb21wb3NpdGU6IGV4Y2x1ZGU7XG4gIH1cblxuICAubWVudS1jbG9zZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiBjYWxjKDMyICogdmFyKC0tcHgpKTtcbiAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgaGVpZ2h0OiBjYWxjKDQ0ICogdmFyKC0tcHgpKTtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiBjYWxjKDggKiB2YXIoLS1weCkpO1xuICB9XG5cbiAgJi5tZW51LWF0LXRvcCAubWVudS1jbG9zZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzIGVhc2Utb3V0O1xuXG4gICAgc3ZnIHtcbiAgICAgIHdpZHRoOiBjYWxjKDEyICogdmFyKC0tcHgpKTtcbiAgICAgIGhlaWdodDogY2FsYygxMiAqIHZhcigtLXB4KSk7XG5cbiAgICAgIHBhdGgge1xuICAgICAgICB0cmFuc2l0aW9uOiBzdHJva2UgMC4zcyBlYXNlLW91dDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTtcbiAgICAgIH1cblxuICAgICAgJjpob3ZlciBzdmcgcGF0aCB7XG4gICAgICAgIHN0cm9rZTogdmFyKC0tZ29sZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjphY3RpdmUge1xuICAgICAgY29sb3I6IHZhcigtLWdvbGQpO1xuICAgIH1cblxuICAgICY6YWN0aXZlIHN2ZyBwYXRoIHtcbiAgICAgIHN0cm9rZTogdmFyKC0tZ29sZCk7XG4gICAgfVxuICB9XG5cbiAgLm1lbnUtbG9nbyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogY2FsYygyOCAqIHZhcigtLXB4KSk7XG4gICAgY29sb3I6IHZhcigtLWRhcmstZ3JlZW4pO1xuXG4gICAgc3ZnIHtcbiAgICAgIHdpZHRoOiBjYWxjKDY5ICogdmFyKC0tcHgpKTtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG4gIH1cbiAgJi5tZW51LWF0LXRvcCAubWVudS1pbm5lciB7XG4gICAgcGFkZGluZzogY2FsYyg2OCAqIHZhcigtLXB4KSkgY2FsYygzMiAqIHZhcigtLXB4KSkgY2FsYygyNCAqIHZhcigtLXB4KSk7XG4gIH1cbiAgLm1lbnUtaW5uZXIge1xuICAgIHBhZGRpbmc6IGNhbGMoMjQgKiB2YXIoLS1weCkpIGNhbGMoMzIgKiB2YXIoLS1weCkpIGNhbGMoMjQgKiB2YXIoLS1weCkpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXNhbmQpO1xuICB9XG5cbiAgLm1lbnUtbGlua3Mge1xuICAgIG1hcmdpbi1ib3R0b206IGNhbGMoMjggKiB2YXIoLS1weCkpO1xuXG4gICAgYSB7XG4gICAgICB0cmFuc2l0aW9uOlxuICAgICAgICB0cmFuc2Zvcm0gMC4zcyBlYXNlLW91dCxcbiAgICAgICAgY29sb3IgMC4zcyBlYXNlLW91dDtcblxuICAgICAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoMTIgKiB2YXIoLS1weCkpKTtcbiAgICAgICAgICBjb2xvcjogdmFyKC0tZ29sZCk7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoMTIgKiB2YXIoLS1weCkpKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWdvbGQpO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnNvY2lhbHMge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZ2FwOiBjYWxjKDIwICogdmFyKC0tcHgpKTtcbiAgfVxuXG4gIHVsIHtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBnYXA6IDA7XG5cbiAgICBhIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJjphY3RpdmUge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhIHtcbiAgICBoZWlnaHQ6IGNhbGMoNDQgKiB2YXIoLS1weCkpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuXG4gIC5idXR0b24tbm90Y2gtZ29sZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICYubWVudS1hdC10b3AgLmJ1dHRvbi1ub3RjaC1nb2xkIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tZ29sZCk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIC0tbm90Y2gtd2lkdGg6IGNhbGMoOSAqIHZhcigtLXB4KSk7XG4gICAgLS1ub3RjaC1oZWlnaHQ6IGNhbGMoMTcgKiB2YXIoLS1weCkpO1xuICAgIC13ZWJraXQtbWFzay1pbWFnZTpcbiAgICAgIHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgOSAxNyclM0UlM0NwYXRoIGQ9J00xIDAuNTAwNTU3VjBIMFYxN0gxVjE2LjUxMzFDMSAxNS41NjU4IDEuNDI2MyAxNC42Njg3IDIuMTYwOCAxNC4wNzA1TDcuOTk5MTQgOS4zMTUyQzguNTE1NDUgOC44OTQ2NiA4LjUxNDk4IDguMTA1OTIgNy45OTgxNiA3LjY4NjAxTDIuMTYzNzQgMi45NDU1NEMxLjQyNzQ4IDIuMzQ3MzMgMSAxLjQ0OTIgMSAwLjUwMDU1N1onIGZpbGw9J3doaXRlJy8lM0UlM0Mvc3ZnJTNFXCIpLFxuICAgICAgbGluZWFyLWdyYWRpZW50KHdoaXRlLCB3aGl0ZSk7XG4gICAgbWFzay1pbWFnZTpcbiAgICAgIHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgOSAxNyclM0UlM0NwYXRoIGQ9J00xIDAuNTAwNTU3VjBIMFYxN0gxVjE2LjUxMzFDMSAxNS41NjU4IDEuNDI2MyAxNC42Njg3IDIuMTYwOCAxNC4wNzA1TDcuOTk5MTQgOS4zMTUyQzguNTE1NDUgOC44OTQ2NiA4LjUxNDk4IDguMTA1OTIgNy45OTgxNiA3LjY4NjAxTDIuMTYzNzQgMi45NDU1NEMxLjQyNzQ4IDIuMzQ3MzMgMSAxLjQ0OTIgMSAwLjUwMDU1N1onIGZpbGw9J3doaXRlJy8lM0UlM0Mvc3ZnJTNFXCIpLFxuICAgICAgbGluZWFyLWdyYWRpZW50KHdoaXRlLCB3aGl0ZSk7XG4gICAgLXdlYmtpdC1tYXNrLXNpemU6XG4gICAgICB2YXIoLS1ub3RjaC13aWR0aCkgdmFyKC0tbm90Y2gtaGVpZ2h0KSxcbiAgICAgIDEwMCUgMTAwJTtcbiAgICBtYXNrLXNpemU6XG4gICAgICB2YXIoLS1ub3RjaC13aWR0aCkgdmFyKC0tbm90Y2gtaGVpZ2h0KSxcbiAgICAgIDEwMCUgMTAwJTtcbiAgICAtd2Via2l0LW1hc2stcG9zaXRpb246XG4gICAgICBjYWxjKC0xICogdmFyKC0tcHgpKSBjZW50ZXIsXG4gICAgICAwIDA7XG4gICAgbWFzay1wb3NpdGlvbjpcbiAgICAgIGNhbGMoLTEgKiB2YXIoLS1weCkpIGNlbnRlcixcbiAgICAgIDAgMDtcbiAgICAtd2Via2l0LW1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgbWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAtd2Via2l0LW1hc2stY29tcG9zaXRlOiB4b3I7XG4gICAgbWFzay1jb21wb3NpdGU6IGV4Y2x1ZGU7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGluc2V0OiAtMXB4O1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGFyay1ncmVlbik7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlWCgwKTtcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQ7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlLW91dDtcbiAgICB9XG5cbiAgICBAbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAgICAgJjpob3Zlcjo6YmVmb3JlIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjphY3RpdmU6OmJlZm9yZSB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTtcbiAgICB9XG5cbiAgICBzcGFuIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgfVxuICB9XG59XG5cbi8qIFBhZ2UgKi9cblxuLmhlcm8ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgcGljdHVyZSB7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgLyogSGVybyBwYXJhbGxheCB0cmFuc2xhdGVzIHRoZSBmdWxsLWhlaWdodCBpbWFnZSByYXRoZXIgdGhhbiBvdmVyc2Nhbm5pbmcsXG4gICAgICAgc28gaXQgZG9lc24ndCBnZXQgdGhlIGV4dHJhIGhlaWdodC4gKi9cbiAgICAtLXBhcmFsbGF4LW92ZXJzY2FuOiAwJTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBpbnNldDogMDtcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHdoaXRlIDAlLCB0cmFuc3BhcmVudCAyMCUpO1xuICAgIH1cbiAgfVxuXG4gIGhlYWRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiBjYWxjKDE4MCAqIHZhcigtLXB4KSk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgZ2FwOiBjYWxjKDQ4ICogdmFyKC0tcHgpKTtcbiAgICBtYXJnaW4taW5saW5lOiBjYWxjKDEyICogdmFyKC0tcHgpKTtcbiAgICBjb2xvcjogdmFyKC0tc2FuZCk7XG4gIH1cblxuICAudG9wIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IGNhbGMoNDAgKiB2YXIoLS1weCkpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIDppcyhwLCBoMSkge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgLmJvdHRvbSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiBjYWxjKDIwICogdmFyKC0tcHgpKTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBwIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxufVxuXG4uaGVhZGluZy1sYXJnZSB7XG4gIGdyaWQtY29sdW1uOiAxLy0xO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogY2FsYygyNCAqIHZhcigtLXB4KSk7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgJi5ib2R5LWNvcHkge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cblxuICAmLnNhbmQge1xuICAgIDppcyhwLCBoMSwgaDIsIGgzKSB7XG4gICAgICBjb2xvcjogdmFyKC0tc2FuZCk7XG4gICAgfVxuICB9XG5cbiAgJi5jZW50ZXJlZCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59XG5cbi52aWRlbyB7XG4gIGdyaWQtY29sdW1uOiAxLy0xO1xuICB3aWR0aDogMTAwJTtcbiAgYXNwZWN0LXJhdGlvOiAxNiAvIDk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWRhcmstZ3JlZW4pO1xufVxuXG4udmlkZW8gdmlkZW8ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYm9yZGVyOiBub25lO1xuICBvYmplY3QtZml0OiBjb3Zlcjtcbn1cblxuLyogTmF0aXZlIGNvbnRyb2xzIHN0YXkgbW91bnRlZCBidXQgaGlkZGVuLCB0aGVuIGZhZGUgaW4gdmlhIC5jb250cm9scy12aXNpYmxlXG4gICAodG9nZ2xlZCBvbiBob3ZlciBmb3IgZGVza3RvcCAvIHRhcCBmb3IgbW9iaWxlIGluIHNjcmlwdC5qcykuICovXG4udmlkZW8gdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFuZWwge1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNTVzIGVhc2U7XG59XG5cbi52aWRlbyB2aWRlby5jb250cm9scy12aXNpYmxlOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBhbmVsIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmZvcm0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IGNhbGMoNDAgKiB2YXIoLS1weCkpO1xuICAvKiBwYWRkaW5nLXRvcDogY2FsYyg0MCAqIHZhcigtLXB4KSk7XG4gIHBhZGRpbmctYm90dG9tOiBjYWxjKDI0ICogdmFyKC0tcHgpKTtcbiAgcGFkZGluZy1pbmxpbmU6IGNhbGMoMTIgKiB2YXIoLS1weCkpOyAqL1xuXG4gIGZvcm0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IGNhbGMoNDAgKiB2YXIoLS1weCkpO1xuICB9XG5cbiAgPiAuc3VjY2VzcyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC5tZXNzYWdlIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgZ2FwOiBjYWxjKDI4ICogdmFyKC0tcHgpKTtcbiAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgaGVpZ2h0OiBjYWxjKDM2MCAqIHZhcigtLXB4KSk7XG4gICAgfVxuICB9XG5cbiAgJi5pcy1zdWNjZXNzIGZvcm0sXG4gICYuaXMtc3VjY2VzcyA+IC5zLWhlYWRpbmcge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAmLmlzLXN1Y2Nlc3MgPiAuc3VjY2VzcyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAuZm9ybS1pbnB1dHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IGNhbGMoMjAgKiB2YXIoLS1weCkpO1xuICB9XG5cbiAgLmZvcm0taW5wdXRzLWNvbHVtbiB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICBnYXA6IGNhbGMoMTIgKiB2YXIoLS1weCkpO1xuICB9XG5cbiAgLmZvcm0taW5wdXQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6aGFzKGlucHV0OmZvY3VzKSA+IHNwYW4sXG4gICAgJjpoYXMoaW5wdXQ6bm90KDpwbGFjZWhvbGRlci1zaG93bikpID4gc3BhbiB7XG4gICAgICBjb2xvcjogdmFyKC0tZ3JlZW4pO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCBjYWxjKC04ICogdmFyKC0tcHgpKSwgMCkgc2NhbGUoMC42KTtcbiAgICB9XG5cbiAgICBzcGFuIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogY2FsYygxNiAqIHZhcigtLXB4KSk7XG4gICAgICBsZWZ0OiBjYWxjKDE3ICogdmFyKC0tcHgpKTtcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgICAgIHRyYW5zaXRpb246XG4gICAgICAgIHRyYW5zZm9ybSAwLjJzIGVhc2UsXG4gICAgICAgIGNvbG9yIDAuMnMgZWFzZTtcbiAgICB9XG5cbiAgICBpbnB1dCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogY2FsYyg1MCAqIHZhcigtLXB4KSk7XG4gICAgICBwYWRkaW5nOiBjYWxjKDEyICogdmFyKC0tcHgpKSBjYWxjKDE2ICogdmFyKC0tcHgpKSAwO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNywgNTYsIDQ1LCAwLjIpO1xuXG4gICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuY2hlY2tib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgLyogYWxpZ24taXRlbXM6IGNlbnRlcjsgKi9cbiAgICBnYXA6IGNhbGMoMTIgKiB2YXIoLS1weCkpO1xuXG4gICAgLmNoZWNrYm94LXdyYXAge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICBpbnB1dCB7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTYgKiB2YXIoLS1weCkpO1xuICAgICAgICBoZWlnaHQ6IGNhbGMoMTYgKiB2YXIoLS1weCkpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ncmVlbik7XG5cbiAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ncmVlbik7XG4gICAgICAgICAgKyBzdmcge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHN2ZyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IDA7XG4gICAgICAgIHdpZHRoOiBjYWxjKDE2ICogdmFyKC0tcHgpKTtcbiAgICAgICAgaGVpZ2h0OiBjYWxjKDE2ICogdmFyKC0tcHgpKTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5pbWFnZS1hcnJheSB7XG4gIGdyaWQtY29sdW1uOiAxLy0xO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IGNhbGMoMjQgKiB2YXIoLS1weCkpO1xuICBwYWRkaW5nOiBjYWxjKDI0ICogdmFyKC0tcHgpKSAwO1xufVxuLmZ1bGwtaW1hZ2Uge1xuICBncmlkLWNvbHVtbjogMS8tMTtcbiAgYXNwZWN0LXJhdGlvOiA0LzU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgcGljdHVyZSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG59XG5cbi5zdGlja3ktaW1hZ2Uge1xuICBncmlkLWNvbHVtbjogMS8tMTtcbiAgYXNwZWN0LXJhdGlvOiA0LzU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdpZHRoOiBjYWxjKDEwMCUgKyAyNCAqIHZhcigtLXB4KSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKC0xMiAqIHZhcigtLXB4KSkpO1xuXG4gIHBpY3R1cmUge1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxufVxuXG4uc3RhY2tlZC1jYXJkcyB7XG4gIGdyaWQtY29sdW1uOiAxLy0xO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IGNhbGMoNDAgKiB2YXIoLS1weCkpO1xuXG4gIC5jYXJkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgLyogZ2FwOiBjYWxjKDYwICogdmFyKC0tcHgpKTsgKi9cbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXI6IGNhbGMoMSAqIHZhcigtLXB4KSkgc29saWQgdmFyKC0tb3V0bGluZSk7XG5cbiAgICAuaGVhZGVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgZ2FwOiBjYWxjKDE2ICogdmFyKC0tcHgpKTtcbiAgICAgIHBhZGRpbmc6IGNhbGMoMjIgKiB2YXIoLS1weCkpIGNhbGMoMjQgKiB2YXIoLS1weCkpO1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tZ29sZCk7XG5cbiAgICAgIC8qIFNhbWUgbm90Y2ggYXMgdGhlIGJ1dHRvbiwgY3V0IGludG8gdGhlIGxlZnQgZWRnZS4gKi9cbiAgICAgIC0tbm90Y2gtd2lkdGg6IGNhbGMoOSAqIHZhcigtLXB4KSk7XG4gICAgICAtLW5vdGNoLWhlaWdodDogY2FsYygxNyAqIHZhcigtLXB4KSk7XG4gICAgICAtd2Via2l0LW1hc2staW1hZ2U6XG4gICAgICAgIHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgOSAxNyclM0UlM0NwYXRoIGQ9J00xIDAuNTAwNTU3VjBIMFYxN0gxVjE2LjUxMzFDMSAxNS41NjU4IDEuNDI2MyAxNC42Njg3IDIuMTYwOCAxNC4wNzA1TDcuOTk5MTQgOS4zMTUyQzguNTE1NDUgOC44OTQ2NiA4LjUxNDk4IDguMTA1OTIgNy45OTgxNiA3LjY4NjAxTDIuMTYzNzQgMi45NDU1NEMxLjQyNzQ4IDIuMzQ3MzMgMSAxLjQ0OTIgMSAwLjUwMDU1N1onIGZpbGw9J3doaXRlJy8lM0UlM0Mvc3ZnJTNFXCIpLFxuICAgICAgICBsaW5lYXItZ3JhZGllbnQod2hpdGUsIHdoaXRlKTtcbiAgICAgIG1hc2staW1hZ2U6XG4gICAgICAgIHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgOSAxNyclM0UlM0NwYXRoIGQ9J00xIDAuNTAwNTU3VjBIMFYxN0gxVjE2LjUxMzFDMSAxNS41NjU4IDEuNDI2MyAxNC42Njg3IDIuMTYwOCAxNC4wNzA1TDcuOTk5MTQgOS4zMTUyQzguNTE1NDUgOC44OTQ2NiA4LjUxNDk4IDguMTA1OTIgNy45OTgxNiA3LjY4NjAxTDIuMTYzNzQgMi45NDU1NEMxLjQyNzQ4IDIuMzQ3MzMgMSAxLjQ0OTIgMSAwLjUwMDU1N1onIGZpbGw9J3doaXRlJy8lM0UlM0Mvc3ZnJTNFXCIpLFxuICAgICAgICBsaW5lYXItZ3JhZGllbnQod2hpdGUsIHdoaXRlKTtcbiAgICAgIC13ZWJraXQtbWFzay1zaXplOlxuICAgICAgICB2YXIoLS1ub3RjaC13aWR0aCkgdmFyKC0tbm90Y2gtaGVpZ2h0KSxcbiAgICAgICAgMTAwJSAxMDAlO1xuICAgICAgbWFzay1zaXplOlxuICAgICAgICB2YXIoLS1ub3RjaC13aWR0aCkgdmFyKC0tbm90Y2gtaGVpZ2h0KSxcbiAgICAgICAgMTAwJSAxMDAlO1xuICAgICAgLXdlYmtpdC1tYXNrLXBvc2l0aW9uOlxuICAgICAgICBjYWxjKC0xICogdmFyKC0tcHgpKSBjZW50ZXIsXG4gICAgICAgIDAgMDtcbiAgICAgIG1hc2stcG9zaXRpb246XG4gICAgICAgIGNhbGMoLTEgKiB2YXIoLS1weCkpIGNlbnRlcixcbiAgICAgICAgMCAwO1xuICAgICAgLXdlYmtpdC1tYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgbWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIC13ZWJraXQtbWFzay1jb21wb3NpdGU6IHhvcjtcbiAgICAgIG1hc2stY29tcG9zaXRlOiBleGNsdWRlO1xuICAgIH1cblxuICAgIC50ZXh0IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgZ2FwOiBjYWxjKDQwICogdmFyKC0tcHgpKTtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNhbmQpO1xuICAgICAgY29sb3I6IHZhcigtLWRhcmstZ3JlZW4pO1xuICAgICAgcGFkZGluZzogY2FsYyg0OCAqIHZhcigtLXB4KSkgY2FsYygyOCAqIHZhcigtLXB4KSk7XG4gICAgfVxuICB9XG59XG5cbi50ZXh0LWJveCB7XG4gIGdyaWQtY29sdW1uOiAxLy0xO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogY2FsYygxNDAgKiB2YXIoLS1weCkpIDAgY2FsYygxODggKiB2YXIoLS1weCkpO1xuICBwIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn1cblxuLm1hc2std3JhcCB7XG4gIGdyaWQtY29sdW1uOiAxLy0xO1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg4LCAxZnIpO1xuICBjb2x1bW4tZ2FwOiBjYWxjKDggKiB2YXIoLS1weCkpO1xuICByb3ctZ2FwOiBjYWxjKDEzMyAqIHZhcigtLXB4KSk7XG4gIHBhZGRpbmc6IGNhbGMoMjEwICogdmFyKC0tcHgpKSAwIGNhbGMoMTIgKiB2YXIoLS1weCkpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ncmVlbik7XG5cbiAgLyogVHJpYW5nbGUgbm90Y2ggY3V0IGludG8gdGhlIGxlZnQtY2VudGVyIGFuZCByaWdodC1jZW50ZXIgZWRnZXMgLSBzYW1lXG4gICAgICAgeG9yIHRlY2huaXF1ZSBhcyB0aGUgYnV0dG9uIG5vdGNoLCBwb2ludGluZyBpbndhcmQgb24gdGhlIHggYXhpcy4gKi9cbiAgLS1ub3RjaC13aWR0aDogY2FsYygxNSAqIHZhcigtLXB4KSk7XG4gIC0tbm90Y2gtaGVpZ2h0OiBjYWxjKDMwICogdmFyKC0tcHgpKTtcbiAgLXdlYmtpdC1tYXNrLWltYWdlOlxuICAgIHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTUgMzAnJTNFJTNDcGF0aCBkPSdNMCAwVjMwTDE1IDE1WicgZmlsbD0nd2hpdGUnLyUzRSUzQy9zdmclM0VcIiksXG4gICAgdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNSAzMCclM0UlM0NwYXRoIGQ9J00xNSAwVjMwTDAgMTVaJyBmaWxsPSd3aGl0ZScvJTNFJTNDL3N2ZyUzRVwiKSxcbiAgICBsaW5lYXItZ3JhZGllbnQod2hpdGUsIHdoaXRlKTtcbiAgbWFzay1pbWFnZTpcbiAgICB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE1IDMwJyUzRSUzQ3BhdGggZD0nTTAgMFYzMEwxNSAxNVonIGZpbGw9J3doaXRlJy8lM0UlM0Mvc3ZnJTNFXCIpLFxuICAgIHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTUgMzAnJTNFJTNDcGF0aCBkPSdNMTUgMFYzMEwwIDE1WicgZmlsbD0nd2hpdGUnLyUzRSUzQy9zdmclM0VcIiksXG4gICAgbGluZWFyLWdyYWRpZW50KHdoaXRlLCB3aGl0ZSk7XG4gIC13ZWJraXQtbWFzay1zaXplOlxuICAgIHZhcigtLW5vdGNoLXdpZHRoKSB2YXIoLS1ub3RjaC1oZWlnaHQpLFxuICAgIHZhcigtLW5vdGNoLXdpZHRoKSB2YXIoLS1ub3RjaC1oZWlnaHQpLFxuICAgIDEwMCUgMTAwJTtcbiAgbWFzay1zaXplOlxuICAgIHZhcigtLW5vdGNoLXdpZHRoKSB2YXIoLS1ub3RjaC1oZWlnaHQpLFxuICAgIHZhcigtLW5vdGNoLXdpZHRoKSB2YXIoLS1ub3RjaC1oZWlnaHQpLFxuICAgIDEwMCUgMTAwJTtcbiAgLXdlYmtpdC1tYXNrLXBvc2l0aW9uOlxuICAgIGxlZnQgY2VudGVyLFxuICAgIGNhbGMoMTAwJSArIGNhbGMoMSAqIHZhcigtLXB4KSkpIGNlbnRlcixcbiAgICAwIDA7XG4gIG1hc2stcG9zaXRpb246XG4gICAgbGVmdCBjZW50ZXIsXG4gICAgY2FsYygxMDAlICsgY2FsYygxICogdmFyKC0tcHgpKSkgY2VudGVyLFxuICAgIDAgMDtcbiAgLXdlYmtpdC1tYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuICBtYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuICAtd2Via2l0LW1hc2stY29tcG9zaXRlOiB4b3I7XG4gIG1hc2stY29tcG9zaXRlOiBleGNsdWRlO1xuXG4gIC5tYXNrLWN0YSB7XG4gICAgZ3JpZC1jb2x1bW46IDEvLTE7XG4gICAganVzdGlmeS1zZWxmOiBjZW50ZXI7XG4gIH1cblxuICAuaGVhZGluZy1sYXJnZSB7XG4gICAgZ3JpZC1jb2x1bW46IDMvNztcbiAgICAvKiB0ZXh0LWFsaWduOiB1bnNldDsgKi9cbiAgfVxuICAuYnV0dG9uIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBqdXN0aWZ5LXNlbGY6IHN0cmV0Y2g7XG4gICAgZ3JpZC1jb2x1bW46IDEvLTE7XG4gICAgbWFyZ2luOiAwIGNhbGMoMTIgKiB2YXIoLS1weCkpO1xuICB9XG59XG5cbi5iaXJkLWxvZ28ge1xuICBncmlkLWNvbHVtbjogMS8tMTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgc3ZnIHtcbiAgICB3aWR0aDogY2FsYygxODAgKiB2YXIoLS1weCkpO1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxufVxuXG5mb290ZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogY2FsYyg0MCAqIHZhcigtLXB4KSk7XG4gIC8qIHBhZGRpbmc6IDAgY2FsYygxMiAqIHZhcigtLXB4KSk7ICovXG5cbiAgLmRldGFpbHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IGNhbGMoMjQgKiB2YXIoLS1weCkpO1xuICAgIHBhZGRpbmc6IDAgY2FsYygxMiAqIHZhcigtLXB4KSk7XG5cbiAgICB1bCB7XG4gICAgICBnYXA6IDA7XG4gICAgICBsaSBhIHtcbiAgICAgICAgaGVpZ2h0OiBjYWxjKDQwICogdmFyKC0tcHgpKTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiBjYWxjKDggKiB2YXIoLS1weCkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZvcm0ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDAgY2FsYygxMiAqIHZhcigtLXB4KSk7XG4gICAgLnN1Y2Nlc3Mge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAubWVzc2FnZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IGNhbGMoMjggKiB2YXIoLS1weCkpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgICBoZWlnaHQ6IGNhbGMoNDIwICogdmFyKC0tcHgpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmlzLXN1Y2Nlc3MgLmZvcm0sXG4gICAgJi5pcy1zdWNjZXNzID4gYnV0dG9uW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmLmlzLXN1Y2Nlc3MgLnN1Y2Nlc3Mge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgLmZvcm0ge1xuICAgIHBhZGRpbmctYm90dG9tOiBjYWxjKDQwICogdmFyKC0tcHgpKTtcbiAgfVxuXG4gIC50ZXh0LXdyYXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IGNhbGMoMTIgKiB2YXIoLS1weCkpO1xuICB9XG4gIC5pbGx1c3RyYXRpb24ge1xuICAgIHBhZGRpbmc6IGNhbGMoMjAgKiB2YXIoLS1weCkpIDAgMDtcbiAgICAvKiBObyBwYXJhbGxheCwgc28gbm8gb3ZlcnNjYW46IHRoZSBpbWFnZSBzaG93cyBpbiBmdWxsLCBub3QgY2xpcHBlZC4gKi9cbiAgICAtLXBhcmFsbGF4LW92ZXJzY2FuOiAwJTtcbiAgfVxuICAubG9nbyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogY2FsYyg0MCAqIHZhcigtLXB4KSkgY2FsYygxMiAqIHZhcigtLXB4KSkgMDtcbiAgfVxuXG4gIC5tZXRhIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IGNhbGMoMTIgKiB2YXIoLS1weCkpO1xuICAgIHBhZGRpbmc6IDAgY2FsYygxMiAqIHZhcigtLXB4KSkgY2FsYyg0MCAqIHZhcigtLXB4KSk7XG4gICAgY29sb3I6IHZhcigtLWdyZWVuKTtcbiAgfVxuXG4gIC5zb2NpYWxzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZ2FwOiBjYWxjKDI0ICogdmFyKC0tcHgpKTtcblxuICAgIGEge1xuICAgICAgaGVpZ2h0OiBjYWxjKDQwICogdmFyKC0tcHgpKTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICBAbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOmFjdGl2ZSB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5sZWdhbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIGdhcDogY2FsYygyNCAqIHZhcigtLXB4KSk7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC5jb3B5cmlnaHQge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aWR0aDogY2FsYygzMjUgKiB2YXIoLS1weCkpO1xuICB9XG59XG5cbi8qIFRhYmxldCAqL1xuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0ODFweCkge1xuICBuYXYge1xuICAgIC5tZW51LWxvZ28ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAubG9nbyA+IHN2ZyB7XG4gICAgICB3aWR0aDogY2FsYygyMDggKiB2YXIoLS1weCkpO1xuICAgIH1cblxuICAgIC5uYXYtc2Nyb2xsIHtcbiAgICAgIGdhcDogY2FsYygzMiAqIHZhcigtLXB4KSk7XG4gICAgICBwYWRkaW5nOiBjYWxjKDI0ICogdmFyKC0tcHgpKSBjYWxjKDMyICogdmFyKC0tcHgpKSBjYWxjKDMyICogdmFyKC0tcHgpKTtcbiAgICB9XG5cbiAgICAubWVudS1idXR0b24gc3BhbiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgfVxuXG4gICAgLm1lbnUge1xuICAgICAgdG9wOiBjYWxjKDI0ICogdmFyKC0tcHgpKTtcbiAgICAgIHdpZHRoOiBjYWxjKDQ1OSAqIHZhcigtLXB4KSk7XG4gICAgICBtYXJnaW46IDAgY2FsYygzMiAqIHZhcigtLXB4KSk7XG4gICAgfVxuXG4gICAgLm1lbnUtbGlua3Mge1xuICAgICAgZ2FwOiBjYWxjKDQgKiB2YXIoLS1weCkpO1xuXG4gICAgICBhIHtcbiAgICAgICAgcGFkZGluZy1ibG9jazogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuc29jaWFscyB7XG4gICAgICBtYXJnaW4tdG9wOiBjYWxjKDE2ICogdmFyKC0tcHgpKTtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIHBhZGRpbmctYmxvY2s6IGNhbGMoNCAqIHZhcigtLXB4KSk7XG4gICAgfVxuXG4gICAgLmJ1dHRvbi1ub3RjaC1nb2xkIHtcbiAgICAgIGhlaWdodDogY2FsYyg0NCAqIHZhcigtLXB4KSk7XG4gICAgfVxuICB9XG5cbiAgLmNvbnRhaW5lciB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMTIsIDFmcik7XG4gICAgcGFkZGluZzogY2FsYygxMjAgKiB2YXIoLS1weCkpIGNhbGMoMjQgKiB2YXIoLS1weCkpO1xuICAgIHJvdy1nYXA6IGNhbGMoMTIwICogdmFyKC0tcHgpKTtcblxuICAgICYucmVkdWNlZCB7XG4gICAgICBwYWRkaW5nOiBjYWxjKDI0ICogdmFyKC0tcHgpKTtcbiAgICB9XG4gICAgJi5yZWR1Y2VkLWJvdHRvbSB7XG4gICAgICBwYWRkaW5nOiBjYWxjKDEyMCAqIHZhcigtLXB4KSkgY2FsYygyNCAqIHZhcigtLXB4KSkgMDtcbiAgICB9XG4gIH1cblxuICAuaGVybyB7XG4gICAgcGljdHVyZSB7XG4gICAgICBtaW4taGVpZ2h0OiBjYWxjKDczMCAqIHZhcigtLXB4KSk7XG4gICAgfVxuICAgIC50b3Age1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICB3aWR0aDogY2FsYyg3MzAgKiB2YXIoLS1weCkpO1xuICAgICAgZ2FwOiBjYWxjKDYwICogdmFyKC0tcHgpKTtcbiAgICAgIHRleHQtYWxpZ246IHVuc2V0O1xuXG4gICAgICA6aXMocCwgaDEpIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICBzcGFuOm50aC1jaGlsZCgyKSB7XG4gICAgICAgICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAuYm90dG9tIHtcbiAgICAgIHdpZHRoOiBjYWxjKDczMCAqIHZhcigtLXB4KSk7XG4gICAgICBtYXJnaW46IDAgYXV0bztcblxuICAgICAgcCB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaGVhZGluZy1sYXJnZSB7XG4gICAgLyogZ2FwOiBjYWxjKDQwICogdmFyKC0tcHgpKTsgKi9cbiAgICBncmlkLWNvbHVtbjogMy8xMTtcbiAgICBtYXJnaW4taW5saW5lOiB1bnNldDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICB0ZXh0LWFsaWduOiB1bnNldDtcblxuICAgIDppcyhwLCBoMik6bGFzdC1jaGlsZCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgc3BhbjpudGgtY2hpbGQoMikge1xuICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZnVsbC1pbWFnZSB7XG4gICAgZ3JpZC1jb2x1bW46IDEvLTE7XG4gICAgYXNwZWN0LXJhdGlvOiAxNi85O1xuXG4gICAgcGljdHVyZSB7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgLnN0aWNreS1pbWFnZSB7XG4gICAgZ3JpZC1jb2x1bW46IDEvLTE7XG4gICAgYXNwZWN0LXJhdGlvOiAxNi85O1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKyA0OCAqIHZhcigtLXB4KSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoLTI0ICogdmFyKC0tcHgpKSk7XG4gIH1cblxuICAuZm9ybSB7XG4gICAgLmZvcm0taW5wdXRzLWNvbHVtbiB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuXG4gICAgICAuZm9ybS1pbnB1dDpudGgtY2hpbGQoMSkge1xuICAgICAgICBncmlkLWNvbHVtbjogMSAvIDI7XG4gICAgICB9XG5cbiAgICAgIC5mb3JtLWlucHV0Om50aC1jaGlsZCgyKSB7XG4gICAgICAgIGdyaWQtY29sdW1uOiAyIC8gMztcbiAgICAgIH1cblxuICAgICAgLmZvcm0taW5wdXQ6bnRoLWNoaWxkKDMpIHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IC5zdWNjZXNzIHtcbiAgICAgIC5tZXNzYWdlIHtcbiAgICAgICAgaGVpZ2h0OiBjYWxjKDI1OCAqIHZhcigtLXB4KSk7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBjYWxjKDI0ICogdmFyKC0tcHgpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZnVsbC1pbWFnZSB7XG4gICAgYXNwZWN0LXJhdGlvOiAxNi85O1xuXG4gICAgcGljdHVyZSB7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgLnN0YWNrZWQtY2FyZHMge1xuICAgIGdhcDogY2FsYyg0MCAqIHZhcigtLXB4KSk7XG4gICAgbWFyZ2luLWlubGluZTogY2FsYyg0MCAqIHZhcigtLXB4KSk7XG5cbiAgICAuY2FyZCB7XG4gICAgICBnYXA6IGluaXRpYWw7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICB3aWR0aDogY2FsYyg3NDggKiB2YXIoLS1weCkpO1xuICAgICAgei1pbmRleDogMTtcblxuICAgICAgLnRleHQge1xuICAgICAgICAuc3ViLWhlYWRpbmcge1xuICAgICAgICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogYXV0bztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC50ZXh0LWJveCB7XG4gICAgZ3JpZC1jb2x1bW46IDQvMTA7XG4gICAgcGFkZGluZzogY2FsYygxNjAgKiB2YXIoLS1weCkpIDAgY2FsYygyMjAgKiB2YXIoLS1weCkpO1xuICAgIHotaW5kZXg6IDE7XG4gIH1cblxuICAuYmlyZC1sb2dvIHtcbiAgICBzdmcge1xuICAgICAgd2lkdGg6IGNhbGMoNDIwICogdmFyKC0tcHgpKTtcbiAgICB9XG4gIH1cblxuICBmb290ZXIge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoOCwgMWZyKTtcbiAgICAvKiBhbGlnbi1pdGVtczogY2VudGVyOyAqL1xuICAgIGdhcDogY2FsYyg4ICogdmFyKC0tcHgpKTtcbiAgICAvKiBtYXJnaW4tdG9wOiBjYWxjKDYwICogdmFyKC0tcHgpKTsgKi9cbiAgICBwYWRkaW5nOiBjYWxjKDYwICogdmFyKC0tcHgpKSBjYWxjKDI0ICogdmFyKC0tcHgpKSAwO1xuXG4gICAgLmRldGFpbHMge1xuICAgICAgZ3JpZC1jb2x1bW46IDEvNDtcbiAgICAgIHBhZGRpbmc6IHVuc2V0O1xuICAgIH1cblxuICAgIGZvcm0ge1xuICAgICAgZ3JpZC1jb2x1bW46IDUvLTE7XG4gICAgICBncmlkLXJvdzogMS8zO1xuICAgICAgcGFkZGluZzogMDtcblxuICAgICAgLnN1Y2Nlc3Mge1xuICAgICAgICAubWVzc2FnZSB7XG4gICAgICAgICAgaGVpZ2h0OiBjYWxjKDQwOCAqIHZhcigtLXB4KSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZm9ybSB7XG4gICAgICAuZm9ybS1pbnB1dHMtY29sdW1uIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG5cbiAgICAgICAgLmZvcm0taW5wdXQ6bnRoLWNoaWxkKDEpLFxuICAgICAgICAuZm9ybS1pbnB1dDpudGgtY2hpbGQoMiksXG4gICAgICAgIC5mb3JtLWlucHV0Om50aC1jaGlsZCgzKSB7XG4gICAgICAgICAgZ3JpZC1jb2x1bW46IGF1dG87XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaGVhZGluZy13cmFwIHtcbiAgICAgIGdhcDogY2FsYygyMCAqIHZhcigtLXB4KSk7XG4gICAgfVxuXG4gICAgLmlsbHVzdHJhdGlvbiB7XG4gICAgICBncmlkLWNvbHVtbjogMS80O1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoLTI0ICogdmFyKC0tcHgpKSk7XG5cbiAgICAgIGltZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5sb2dvIHtcbiAgICAgIGdyaWQtY29sdW1uOiAxLy0xO1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAubWV0YSB7XG4gICAgICBncmlkLWNvbHVtbjogMS8tMTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBnYXA6IDA7XG4gICAgICBwYWRkaW5nOiBjYWxjKDIwICogdmFyKC0tcHgpKSAwO1xuICAgIH1cblxuICAgIC5zb2NpYWxzIHtcbiAgICAgIGdhcDogY2FsYyg0ICogdmFyKC0tcHgpKTtcbiAgICAgIG9yZGVyOiAzO1xuXG4gICAgICBhIHtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgfVxuICAgICAgc3ZnIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoNDAgKiB2YXIoLS1weCkpO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmxlZ2FsIHtcbiAgICAgIG9yZGVyOiAyO1xuICAgIH1cblxuICAgIC5jb3B5cmlnaHQge1xuICAgICAgb3JkZXI6IDE7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vKiBEZXNrdG9wICovXG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjVweCkge1xuICBuYXYge1xuICAgIC5uYXYtc2Nyb2xsIHtcbiAgICAgIGdhcDogY2FsYygyNCAqIHZhcigtLXB4KSk7XG4gICAgICBwYWRkaW5nOiBjYWxjKDI0ICogdmFyKC0tcHgpKSBjYWxjKDI0ICogdmFyKC0tcHgpKSBjYWxjKDEyICogdmFyKC0tcHgpKTtcbiAgICB9XG5cbiAgICAvKiAubWVudS1idXR0b24ge1xuICAgICAgd2lkdGg6IGNhbGMoODAgKiB2YXIoLS1weCkpO1xuICAgIH0gKi9cblxuICAgIC5tZW51IHtcbiAgICAgIG1hcmdpbjogMCBjYWxjKDI0ICogdmFyKC0tcHgpKTtcbiAgICB9XG5cbiAgICAubWVudS1saW5rcyB7XG4gICAgICBnYXA6IGNhbGMoNCAqIHZhcigtLXB4KSk7XG5cbiAgICAgIGEge1xuICAgICAgICBwYWRkaW5nLWJsb2NrOiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5zb2NpYWxzIHtcbiAgICAgIG1hcmdpbi10b3A6IGNhbGMoMTYgKiB2YXIoLS1weCkpO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgcGFkZGluZy1ibG9jazogY2FsYyg0ICogdmFyKC0tcHgpKTtcbiAgICB9XG5cbiAgICAuYnV0dG9uLW5vdGNoLWdvbGQge1xuICAgICAgaGVpZ2h0OiBjYWxjKDQ0ICogdmFyKC0tcHgpKTtcbiAgICB9XG4gIH1cblxuICAuY29udGFpbmVyIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxMiwgMWZyKTtcbiAgICBwYWRkaW5nOiBjYWxjKDEyMCAqIHZhcigtLXB4KSkgY2FsYygyNCAqIHZhcigtLXB4KSk7XG4gICAgcm93LWdhcDogY2FsYygxMjAgKiB2YXIoLS1weCkpO1xuXG4gICAgJi5yZWR1Y2VkIHtcbiAgICAgIHBhZGRpbmc6IGNhbGMoMjQgKiB2YXIoLS1weCkpO1xuICAgIH1cbiAgICAmLnJlZHVjZWQtYm90dG9tIHtcbiAgICAgIHBhZGRpbmc6IGNhbGMoMTIwICogdmFyKC0tcHgpKSBjYWxjKDI0ICogdmFyKC0tcHgpKSAwO1xuICAgIH1cbiAgfVxuXG4gIC5oZXJvIHtcbiAgICBoZWFkZXIge1xuICAgICAgYm90dG9tOiBjYWxjKDgwICogdmFyKC0tcHgpKTtcbiAgICAgIGdhcDogY2FsYyg2MCAqIHZhcigtLXB4KSk7XG4gICAgfVxuXG4gICAgLnRvcCB7XG4gICAgICBtYXJnaW46IDAgYXV0bztcblxuICAgICAgd2lkdGg6IGNhbGMoOTI2ICogdmFyKC0tcHgpKTtcbiAgICAgIGdhcDogY2FsYyg2MCAqIHZhcigtLXB4KSk7XG5cbiAgICAgIDppcyhwLCBoMSkge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgIHNwYW46bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5ib3R0b20ge1xuICAgICAgd2lkdGg6IGNhbGMoOTI2ICogdmFyKC0tcHgpKTtcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuXG4gICAgICBwIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5oZWFkaW5nLWxhcmdlIHtcbiAgICAvKiBncmlkLWNvbHVtbjogMy8xMTsgKi9cbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IGNhbGMoOTI2ICogdmFyKC0tcHgpKTtcblxuICAgICYuYm9keS1jb3B5IHtcbiAgICAgIG1heC13aWR0aDogdW5zZXQ7XG4gICAgfVxuICB9XG5cbiAgLnZpZGVvIHtcbiAgICBncmlkLWNvbHVtbjogMS8tMTtcbiAgfVxuXG4gIC5iaXJkLWxvZ28ge1xuICAgIHN2ZyB7XG4gICAgICB3aWR0aDogY2FsYyg0NTQgKiB2YXIoLS1weCkpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXNrLXdyYXAge1xuICAgIGdyaWQtY29sdW1uOiAxLy0xO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMTIsIDFmcik7XG4gICAgY29sdW1uLWdhcDogY2FsYyg4ICogdmFyKC0tcHgpKTtcbiAgICByb3ctZ2FwOiBjYWxjKDgwICogdmFyKC0tcHgpKTtcbiAgICBwYWRkaW5nOiBjYWxjKDE0MCAqIHZhcigtLXB4KSkgMDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ncmVlbik7XG5cbiAgICAvKiBUcmlhbmdsZSBub3RjaCBjdXQgaW50byB0aGUgdG9wLWNlbnRlciBhbmQgYm90dG9tLWNlbnRlciBlZGdlcyAtIHNhbWVcbiAgICAgICB4b3IgdGVjaG5pcXVlIGFzIHRoZSBidXR0b24gbm90Y2gsIHdpZGVyIG9uIHRoZSB4IGF4aXMuICovXG4gICAgLS1ub3RjaC13aWR0aDogY2FsYygzMCAqIHZhcigtLXB4KSk7XG4gICAgLS1ub3RjaC1oZWlnaHQ6IGNhbGMoMTUgKiB2YXIoLS1weCkpO1xuICAgIC13ZWJraXQtbWFzay1pbWFnZTpcbiAgICAgIHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMzAgMTUnJTNFJTNDcGF0aCBkPSdNMCAwSDMwTDE1IDE1WicgZmlsbD0nd2hpdGUnLyUzRSUzQy9zdmclM0VcIiksXG4gICAgICB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDMwIDE1JyUzRSUzQ3BhdGggZD0nTTAgMTVIMzBMMTUgMFonIGZpbGw9J3doaXRlJy8lM0UlM0Mvc3ZnJTNFXCIpLFxuICAgICAgbGluZWFyLWdyYWRpZW50KHdoaXRlLCB3aGl0ZSk7XG4gICAgbWFzay1pbWFnZTpcbiAgICAgIHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMzAgMTUnJTNFJTNDcGF0aCBkPSdNMCAwSDMwTDE1IDE1WicgZmlsbD0nd2hpdGUnLyUzRSUzQy9zdmclM0VcIiksXG4gICAgICB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDMwIDE1JyUzRSUzQ3BhdGggZD0nTTAgMTVIMzBMMTUgMFonIGZpbGw9J3doaXRlJy8lM0UlM0Mvc3ZnJTNFXCIpLFxuICAgICAgbGluZWFyLWdyYWRpZW50KHdoaXRlLCB3aGl0ZSk7XG4gICAgLXdlYmtpdC1tYXNrLXNpemU6XG4gICAgICB2YXIoLS1ub3RjaC13aWR0aCkgdmFyKC0tbm90Y2gtaGVpZ2h0KSxcbiAgICAgIHZhcigtLW5vdGNoLXdpZHRoKSB2YXIoLS1ub3RjaC1oZWlnaHQpLFxuICAgICAgMTAwJSAxMDAlO1xuICAgIG1hc2stc2l6ZTpcbiAgICAgIHZhcigtLW5vdGNoLXdpZHRoKSB2YXIoLS1ub3RjaC1oZWlnaHQpLFxuICAgICAgdmFyKC0tbm90Y2gtd2lkdGgpIHZhcigtLW5vdGNoLWhlaWdodCksXG4gICAgICAxMDAlIDEwMCU7XG4gICAgLXdlYmtpdC1tYXNrLXBvc2l0aW9uOlxuICAgICAgY2VudGVyIHRvcCxcbiAgICAgIGNlbnRlciBib3R0b20sXG4gICAgICAwIDA7XG4gICAgbWFzay1wb3NpdGlvbjpcbiAgICAgIGNlbnRlciB0b3AsXG4gICAgICBjZW50ZXIgYm90dG9tLFxuICAgICAgMCAwO1xuICAgIC13ZWJraXQtbWFzay1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBtYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIC13ZWJraXQtbWFzay1jb21wb3NpdGU6IHhvcjtcbiAgICBtYXNrLWNvbXBvc2l0ZTogZXhjbHVkZTtcblxuICAgIC5tYXNrLWN0YSB7XG4gICAgICBncmlkLWNvbHVtbjogMS8tMTtcbiAgICAgIGp1c3RpZnktc2VsZjogY2VudGVyO1xuICAgIH1cblxuICAgIC5oZWFkaW5nLWxhcmdlIHtcbiAgICAgIGdyaWQtY29sdW1uOiAxLy0xO1xuICAgIH1cbiAgICAuYnV0dG9uIHtcbiAgICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICAgIGdyaWQtY29sdW1uOiAxLy0xO1xuICAgICAgbWFyZ2luOiBjYWxjKDEyICogdmFyKC0tcHgpKTtcbiAgICB9XG4gIH1cblxuICAuZm9ybSB7XG4gICAgcGFkZGluZy1ib3R0b206IGNhbGMoMzIgKiB2YXIoLS1weCkpO1xuICAgIC8qIHBhZGRpbmctaW5saW5lOiBjYWxjKDI0ICogdmFyKC0tcHgpKTsgKi9cblxuICAgID4gLnN1Y2Nlc3Mge1xuICAgICAgLm1lc3NhZ2Uge1xuICAgICAgICBnYXA6IGNhbGMoMzIgKiB2YXIoLS1weCkpO1xuICAgICAgICBoZWlnaHQ6IGNhbGMoNDAwICogdmFyKC0tcHgpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaW1hZ2UtYXJyYXkge1xuICAgIGdyaWQtY29sdW1uOiAxLy0xO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IGNhbGMoMjQgKiB2YXIoLS1weCkpO1xuICAgIHBhZGRpbmc6IGNhbGMoMjQgKiB2YXIoLS1weCkpIDA7XG4gIH1cbiAgLmZ1bGwtaW1hZ2Uge1xuICAgIGdyaWQtY29sdW1uOiAxLy0xO1xuICB9XG5cbiAgLnN0aWNreS1pbWFnZSB7XG4gICAgZ3JpZC1jb2x1bW46IDEvLTE7XG4gICAgcG9zaXRpb246IHN0aWNreTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBhc3BlY3QtcmF0aW86IHVuc2V0O1xuICAgIGhlaWdodDogMTAwdmg7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSArIDQ4ICogdmFyKC0tcHgpKTtcblxuICAgIHBpY3R1cmUge1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gIC5zdGFja2VkLWNhcmRzIHtcbiAgICBncmlkLWNvbHVtbjogMS8tMTtcbiAgICBnYXA6IGNhbGMoMTIwICogdmFyKC0tcHgpKTtcblxuICAgIC5jYXJkIHtcbiAgICAgIC8qIHBvc2l0aW9uOiBzdGlja3k7ICovXG4gICAgICB0b3A6IGNhbGMoMjQgKiB2YXIoLS1weCkpO1xuICAgICAgLyogcGFkZGluZzogY2FsYygzMiAqIHZhcigtLXB4KSk7ICovXG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyO1xuICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICAgIHdpZHRoOiBjYWxjKDkyNiAqIHZhcigtLXB4KSk7XG5cbiAgICAgIC5oZWFkZXIge1xuICAgICAgICBwYWRkaW5nOiBjYWxjKDI4ICogdmFyKC0tcHgpKSBjYWxjKDY0ICogdmFyKC0tcHgpKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZ29sZCk7XG4gICAgICB9XG5cbiAgICAgIC50ZXh0IHtcbiAgICAgICAgZ2FwOiBjYWxjKDQ4ICogdmFyKC0tcHgpKTtcbiAgICAgICAgcGFkZGluZzogY2FsYyg2NCAqIHZhcigtLXB4KSk7XG5cbiAgICAgICAgdWwge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICBnYXA6IGNhbGMoOCAqIHZhcigtLXB4KSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAudGV4dC1ib3gge1xuICAgIGdyaWQtY29sdW1uOiA0LzEwO1xuICAgIC8qIHBhZGRpbmc6IGNhbGMoMzM1ICogdmFyKC0tcHgpKSAwIGNhbGMoMjE1ICogdmFyKC0tcHgpKTsgKi9cbiAgICBwYWRkaW5nOiB1bnNldDtcbiAgICBoZWlnaHQ6IDEwMHZoO1xuICB9XG5cbiAgZm9vdGVyIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxMiwgMWZyKTtcbiAgICAvKiBnYXA6IGNhbGMoMTIgKiB2YXIoLS1weCkpOyAqL1xuXG4gICAgLmRldGFpbHMge1xuICAgICAgZ3JpZC1jb2x1bW46IDIvNztcbiAgICB9XG5cbiAgICBmb3JtIHtcbiAgICAgIC8qIHdpZHRoOiBjYWxjKDY5MiAqIHZhcigtLXB4KSk7ICovXG4gICAgICBncmlkLWNvbHVtbjogOC8xMjtcblxuICAgICAgLnN1Y2Nlc3Mge1xuICAgICAgICAubWVzc2FnZSB7XG4gICAgICAgICAgZ2FwOiBjYWxjKDMyICogdmFyKC0tcHgpKTtcbiAgICAgICAgICBoZWlnaHQ6IGNhbGMoNDkwICogdmFyKC0tcHgpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5pbGx1c3RyYXRpb24ge1xuICAgICAgZ3JpZC1jb2x1bW46IDEvNztcbiAgICB9XG4gICAgLm1ldGEge1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEyLCAxZnIpO1xuICAgICAgZ2FwOiBjYWxjKDggKiB2YXIoLS1weCkpO1xuICAgIH1cbiAgICAubGVnYWwge1xuICAgICAgZ3JpZC1jb2x1bW46IDcvMTA7XG4gICAgICBncmlkLXJvdzogMTtcbiAgICB9XG4gICAgLmNvcHlyaWdodCB7XG4gICAgICBncmlkLWNvbHVtbjogMS83O1xuICAgICAgZ3JpZC1yb3c6IDE7XG4gICAgfVxuICAgIC5zb2NpYWxzIHtcbiAgICAgIGdyaWQtY29sdW1uOiAxMC8xMztcbiAgICAgIGdyaWQtcm93OiAxO1xuICAgICAganVzdGlmeS1zZWxmOiBlbmQ7XG4gICAgICBzdmcge1xuICAgICAgICB3aWR0aDogY2FsYygzMiAqIHZhcigtLXB4KSk7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ== */