:root {
  --transition-speed-slow: 0.5s;
  --transition-speed: 0.3s;
  --transition-speed-fast: 0.2s;
  --bezier: cubic-bezier(0.4, 0, 0.2, 1);
  --color-black: #1E1E1EFF;
  --color-text: var(--color-black);
  --color-brand: #CF111BFF;
  --color-secondary: #F5F4F3FF;
  --color-tertiary: #FAE4E4FF;
}

@layer reset, base;
@layer reset {
  html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
    margin: 0;
    padding: 0;
    border: 0;
    font: inherit;
    font-size: 100%;
    vertical-align: baseline;
  }
  html {
    line-height: 1;
  }
  ol, ul {
    list-style: none;
  }
  table {
    border-collapse: collapse;
    border-spacing: 0;
  }
  caption, th, td {
    text-align: left;
    font-weight: normal;
    vertical-align: middle;
  }
  q, blockquote {
    quotes: none;
  }
  q:before, q:after, blockquote:before, blockquote:after {
    content: "";
    content: none;
  }
  a img {
    border: none;
  }
  article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary {
    display: block;
  }
}
@layer base {
  * {
    box-sizing: border-box;
  }
  *:before,
*:after {
    box-sizing: border-box;
  }
  *:focus {
    outline: none;
  }
  html {
    font-size: calc(16 / 390 * 100vw);
    height: 100%;
    -webkit-text-size-adjust: 100%;
    -moz-text-size-adjust: 100%;
    text-size-adjust: 100%;
  }
  @media print, screen and (min-width: 768px) {
    html {
      font-size: min(18px, calc(18 / 1440 * 100vw));
    }
  }
  body {
    color: var(--color-text);
    background-color: var(--color-background-strong);
    font-feature-settings: var(--font-feature-settings);
    font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif;
    font-size: calc(var(--fs-m) / 390 * 100vw);
    display: grid;
    grid-template: "header" auto "main" auto "footer" 1fr/100%;
    min-height: 100vh;
  }
  @media print, screen and (min-width: 768px) {
    body {
      font-size: min(calc(var(--fs-l) * 1px), calc(var(--fs-l) / 1440 * 100vw));
    }
  }
  body.is-fixed, body.fixed {
    overflow: hidden;
  }
  strong {
    font-weight: var(--font-weight-bold);
  }
  label {
    cursor: pointer;
  }
  a {
    color: inherit;
    text-decoration: none;
    cursor: pointer;
  }
  a[href^="tel:"] {
    color: inherit;
  }
  @media print, screen and (min-width: 768px) {
    a[href^="tel:"] {
      pointer-events: none;
    }
  }
  abbr {
    text-decoration: none;
  }
  button {
    cursor: pointer;
    background: none;
    border: none;
    padding: 0;
    font: inherit;
    color: inherit;
    text-align: inherit;
  }
  @media print, screen and (min-width: 768px) {
    br.sp-only {
      display: none;
    }
  }
  br.pc-only {
    display: none;
  }
  @media print, screen and (min-width: 768px) {
    br.pc-only {
      display: inline;
    }
  }
  :where(button, [type=button], [type=reset], [type=submit]) {
    touch-action: manipulation;
  }
  :where(:-moz-any-link,
button,
[type=button],
[type=reset],
[type=submit],
label[for],
select,
summary,
[role=tab],
[role=button]) {
    cursor: pointer;
  }
  :where(:any-link,
button,
[type=button],
[type=reset],
[type=submit],
label[for],
select,
summary,
[role=tab],
[role=button]) {
    cursor: pointer;
  }
  :focus:not(:focus-visible) {
    outline: none;
  }
  sup,
sub {
    height: 0;
    line-height: 1;
    vertical-align: baseline;
    position: relative;
    font-size: 0.75em;
  }
  sup {
    bottom: 0.75ex;
  }
  sub {
    top: 0.5ex;
  }
  img {
    max-width: 100%;
    height: auto;
    vertical-align: bottom;
  }
  .svg_def {
    display: none;
  }
  svg {
    height: auto;
  }
  pre {
    white-space: pre-wrap;
  }
  html.lenis,
html.lenis body {
    height: auto;
  }
  .lenis.lenis-smooth {
    scroll-behavior: auto !important;
  }
  .lenis.lenis-smooth [data-lenis-prevent] {
    overscroll-behavior: contain;
  }
  .lenis.lenis-stopped {
    overflow: hidden;
  }
  .lenis.lenis-scrolling iframe {
    pointer-events: none;
  }
  html.is-changing .transition-fade {
    transition: opacity 0.5s;
    opacity: 1;
  }
  html.is-animating .transition-fade {
    transition: opacity 0.5s;
    opacity: 0;
  }
  .hidden-sp {
    display: none;
  }
  @media print, screen and (min-width: 768px) {
    .hidden-sp {
      display: unset;
    }
  }
  @media print, screen and (min-width: 768px) {
    .hidden-pc {
      display: none;
    }
  }
  @media print, screen and (min-width: 1080px) {
    .hidden-over-tbl {
      display: none;
    }
  }
  @media print, screen and (min-width: 768px) {
    .hidden-over-tb {
      display: none;
    }
  }
  @media print, screen and (min-width: 375px) {
    .hidden-over-sp {
      display: none;
    }
  }
  .visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
  }
  main {
    -ms-grid-row: 2;
    -ms-grid-column: 1;
    grid-area: main;
  }
  header {
    padding-bottom: calc(62 / 390 * 100vw);
    background-image: url(../images/header_bg.svg);
    background-repeat: no-repeat;
    background-position: left bottom;
    background-size: calc(296 / 390 * 100vw) auto;
  }
  @media print, screen and (min-width: 768px) {
    header {
      padding-bottom: min(191px, calc(191 / 1440 * 100vw));
      background-size: min(936px, calc(936 / 1440 * 100vw)) auto;
      background-image: url(../images/header_bg_pc.svg);
    }
  }
  #hero {
    padding: calc(16 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #hero {
      padding: unset;
      padding-top: min(32px, calc(32 / 1440 * 100vw));
      width: min(1218px, calc(1218 / 1440 * 100vw));
      margin-inline: auto;
    }
  }
  #hero .inner {
    background: url(../images/hero_bg.webp) no-repeat center center/cover;
    border-radius: calc(8 / 390 * 100vw);
    padding: calc(50 / 390 * 100vw) calc(16 / 390 * 100vw) calc(206 / 390 * 100vw);
    text-align: center;
    position: relative;
  }
  @media print, screen and (min-width: 768px) {
    #hero .inner {
      background-image: url(../images/hero_bg_pc.webp);
      padding: min(112px, calc(112 / 1440 * 100vw)) min(32px, calc(32 / 1440 * 100vw)) min(92px, calc(92 / 1440 * 100vw));
      border-radius: min(16px, calc(16 / 1440 * 100vw));
    }
  }
  #hero .inner .hero_01 img {
    width: calc(156 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #hero .inner .hero_01 img {
      width: min(538px, calc(538 / 1440 * 100vw));
    }
  }
  #hero .inner .hero_02 {
    margin-top: calc(24 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #hero .inner .hero_02 {
      margin-top: min(24px, calc(24 / 1440 * 100vw));
    }
  }
  #hero .inner .hero_02 img {
    width: calc(312 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #hero .inner .hero_02 img {
      width: min(750px, calc(750 / 1440 * 100vw));
    }
  }
  #hero .inner h1 {
    margin-top: calc(28 / 390 * 100vw);
    font-size: calc(13.5 / 390 * 100vw);
    font-weight: 700;
    color: #fff;
    line-height: 2;
  }
  @media print, screen and (min-width: 768px) {
    #hero .inner h1 {
      margin-top: min(90px, calc(90 / 1440 * 100vw));
      font-size: min(16.5px, calc(16.5 / 1440 * 100vw));
      line-height: 2;
    }
  }
  #hero .inner h1 span {
    background-color: var(--color-brand);
    padding: calc(2 / 390 * 100vw) calc(4 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #hero .inner h1 span {
      padding: min(2px, calc(2 / 1440 * 100vw)) min(4px, calc(4 / 1440 * 100vw));
    }
  }
  #hero .inner .badge {
    margin-top: calc(13 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #hero .inner .badge {
      margin-top: min(24px, calc(24 / 1440 * 100vw));
    }
  }
  #hero .inner .badge img {
    width: calc(134 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #hero .inner .badge img {
      width: min(178px, calc(178 / 1440 * 100vw));
    }
  }
  #hero .inner .banner {
    display: none;
  }
  #hero .inner .icons img {
    position: absolute;
  }
  #hero .inner .icons img.pc {
    display: none;
  }
  @media print, screen and (min-width: 768px) {
    #hero .inner .icons img.pc {
      display: block;
    }
  }
  #hero .inner .icons img.icon_01 {
    width: calc(42 / 390 * 100vw);
    bottom: calc(71 / 390 * 100vw);
    left: calc(87 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #hero .inner .icons img.icon_01 {
      width: min(50px, calc(50 / 1440 * 100vw));
      bottom: min(39px, calc(39 / 1440 * 100vw));
      left: min(373px, calc(373 / 1440 * 100vw));
    }
  }
  #hero .inner .icons img.icon_02 {
    width: calc(25 / 390 * 100vw);
    bottom: calc(130 / 390 * 100vw);
    right: calc(65 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #hero .inner .icons img.icon_02 {
      width: min(40px, calc(40 / 1440 * 100vw));
      bottom: min(57px, calc(57 / 1440 * 100vw));
      right: min(306px, calc(306 / 1440 * 100vw));
    }
  }
  #hero .inner .icons img.icon_03 {
    width: calc(17 / 390 * 100vw);
    bottom: calc(188 / 390 * 100vw);
    left: calc(37 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #hero .inner .icons img.icon_03 {
      width: min(27px, calc(27 / 1440 * 100vw));
      bottom: min(116px, calc(116 / 1440 * 100vw));
      left: min(134px, calc(134 / 1440 * 100vw));
    }
  }
  #hero .inner .icons img.icon_04 {
    width: calc(11 / 390 * 100vw);
    bottom: calc(226 / 390 * 100vw);
    right: calc(17 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #hero .inner .icons img.icon_04 {
      width: min(25px, calc(25 / 1440 * 100vw));
      bottom: min(158px, calc(158 / 1440 * 100vw));
      right: auto;
      left: min(277px, calc(277 / 1440 * 100vw));
    }
  }
  @media print, screen and (min-width: 768px) {
    #hero .inner .icons img.icon_05 {
      width: min(20px, calc(20 / 1440 * 100vw));
      bottom: min(179px, calc(179 / 1440 * 100vw));
      right: min(41px, calc(41 / 1440 * 100vw));
    }
  }
  @media print, screen and (min-width: 768px) {
    #hero .inner .icons img.icon_06 {
      width: min(20px, calc(20 / 1440 * 100vw));
      bottom: min(199px, calc(199 / 1440 * 100vw));
      right: min(195px, calc(195 / 1440 * 100vw));
    }
  }
  @media print, screen and (min-width: 768px) {
    #hero .inner .icons img.icon_07 {
      width: min(18px, calc(18 / 1440 * 100vw));
      bottom: min(241px, calc(241 / 1440 * 100vw));
      right: min(323px, calc(323 / 1440 * 100vw));
    }
  }
  @media print, screen and (min-width: 768px) {
    #hero .inner .icons img.icon_08 {
      width: min(15px, calc(15 / 1440 * 100vw));
      bottom: min(266px, calc(266 / 1440 * 100vw));
      left: min(74px, calc(74 / 1440 * 100vw));
    }
  }
  @media print, screen and (min-width: 768px) {
    #hero .inner .icons img.icon_09 {
      width: min(12px, calc(12 / 1440 * 100vw));
      bottom: min(291px, calc(291 / 1440 * 100vw));
      right: min(90px, calc(90 / 1440 * 100vw));
    }
  }
  #onestop {
    margin-top: calc(66 / 390 * 100vw);
    padding-inline: calc(16 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #onestop {
      margin-top: min(120px, calc(120 / 1440 * 100vw));
      padding-inline: unset;
      width: min(1040px, calc(1040 / 1440 * 100vw));
      margin-inline: auto;
      position: relative;
      display: grid;
      grid-template: "image text" auto/min(550px, calc(550 / 1440 * 100vw)) 1fr;
      gap: min(56px, calc(56 / 1440 * 100vw));
    }
  }
  #onestop .text {
    position: relative;
    padding-bottom: calc(62 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #onestop .text {
      position: static;
      padding-bottom: unset;
      grid-area: text;
      align-self: self-end;
    }
  }
  #onestop .text .character {
    position: absolute;
    bottom: 0;
    right: calc(4 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #onestop .text .character {
      bottom: unset;
      top: min(26px, calc(26 / 1440 * 100vw));
      right: min(20px, calc(20 / 1440 * 100vw));
    }
  }
  #onestop .text .character img {
    width: calc(64 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #onestop .text .character img {
      width: min(62px, calc(62 / 1440 * 100vw));
    }
  }
  #onestop .text h2 img {
    width: calc(314 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #onestop .text h2 img {
      width: min(408px, calc(408 / 1440 * 100vw));
    }
  }
  #onestop .text p {
    margin-top: calc(14 / 390 * 100vw);
    font-size: calc(16 / 390 * 100vw);
    line-height: 1.8;
  }
  @media print, screen and (min-width: 768px) {
    #onestop .text p {
      margin-top: min(14px, calc(14 / 1440 * 100vw));
      font-size: min(18px, calc(18 / 1440 * 100vw));
      line-height: 1.8;
    }
  }
  #onestop .text p span {
    font-size: calc(12 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #onestop .text p span {
      font-size: min(14px, calc(14 / 1440 * 100vw));
    }
  }
  #onestop .image {
    margin-top: calc(-22 / 390 * 100vw);
    position: relative;
    z-index: 1;
  }
  @media print, screen and (min-width: 768px) {
    #onestop .image {
      margin-top: unset;
      grid-area: image;
    }
  }
  #onestop .image img {
    border-radius: calc(8 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #onestop .image img {
      border-radius: min(16px, calc(16 / 1440 * 100vw));
    }
  }
  #worries {
    padding: calc(56 / 390 * 100vw) calc(16 / 390 * 100vw) calc(42 / 390 * 100vw);
    background-color: var(--color-secondary);
    border-radius: calc(24 / 390 * 100vw) 0 0 0;
    margin-top: calc(-12 / 390 * 100vw);
    box-shadow: -737px 192px 213px 0 rgba(0, 0, 0, 0), -472px 123px 195px 0 rgba(0, 0, 0, 0.01), -265px 69px 165px 0 rgba(0, 0, 0, 0.03), -118px 31px 122px 0 rgba(0, 0, 0, 0.05);
  }
  @media print, screen and (min-width: 768px) {
    #worries {
      padding: min(80px, calc(80 / 1440 * 100vw)) 0 min(64px, calc(64 / 1440 * 100vw));
      border-radius: min(48px, calc(48 / 1440 * 100vw)) 0 0 0;
      margin-top: max(-48px, calc(-48 / 1440 * 100vw));
    }
  }
  #worries h1 {
    text-align: center;
  }
  #worries h1 img {
    width: calc(336 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #worries h1 img {
      width: min(543px, calc(543 / 1440 * 100vw));
    }
  }
  #worries ul {
    margin-top: calc(24 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #worries ul {
      margin-top: min(38px, calc(38 / 1440 * 100vw));
      width: min(1040px, calc(1040 / 1440 * 100vw));
      margin-inline: auto;
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: min(24px, calc(24 / 1440 * 100vw));
    }
  }
  #worries li {
    width: calc(200 / 390 * 100vw);
    position: relative;
    z-index: 2;
  }
  @media print, screen and (min-width: 768px) {
    #worries li {
      width: auto;
    }
  }
  #worries li:nth-child(2n) {
    margin-top: calc(-130 / 390 * 100vw);
    margin-left: auto;
    z-index: 1;
  }
  @media print, screen and (min-width: 768px) {
    #worries li:nth-child(2n) {
      margin-top: unset;
      margin-left: unset;
      z-index: unset;
    }
  }
  #worries li:nth-child(3n) {
    margin-top: calc(-82 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #worries li:nth-child(3n) {
      margin-top: unset;
    }
  }
  #worries li:nth-child(4n) {
    margin-top: calc(-130 / 390 * 100vw);
    margin-left: auto;
    z-index: 1;
  }
  @media print, screen and (min-width: 768px) {
    #worries li:nth-child(4n) {
      margin-top: unset;
      margin-left: unset;
      z-index: unset;
    }
  }
  #worries li h2 img {
    filter: drop-shadow(1px 1px 3px rgba(0, 0, 0, 0.06)) drop-shadow(3px 5px 6px rgba(0, 0, 0, 0.05)) drop-shadow(6px 12px 8px rgba(0, 0, 0, 0.03)) drop-shadow(10px 22px 10px rgba(0, 0, 0, 0.01));
    width: 100%;
  }
  #worries li p {
    margin-top: calc(20 / 390 * 100vw);
    text-align: center;
    position: relative;
  }
  @media print, screen and (min-width: 768px) {
    #worries li p {
      margin-top: min(24px, calc(24 / 1440 * 100vw));
    }
  }
  #worries li p.q_sp::after {
    content: "";
    display: block;
    width: calc(23 / 390 * 100vw);
    height: calc(31 / 390 * 100vw);
    position: absolute;
    top: calc(-16 / 390 * 100vw);
    left: 50%;
    translate: calc(-50 / 390 * 100vw) 0;
    background-image: url(../images/question.svg);
    background-size: contain;
    rotate: z -19deg;
  }
  @media print, screen and (min-width: 768px) {
    #worries li p.q_sp::after {
      left: auto;
      right: 50%;
      width: min(28px, calc(28 / 1440 * 100vw));
      height: min(38px, calc(38 / 1440 * 100vw));
      top: min(-16px, calc(-16 / 1440 * 100vw));
      rotate: z 19deg;
      translate: min(60px, calc(60 / 1440 * 100vw)) 0;
    }
  }
  #worries li p.q_sp.right::after {
    left: auto;
    right: 50%;
    translate: calc(50 / 390 * 100vw) 0;
    rotate: z 19deg;
  }
  @media print, screen and (min-width: 768px) {
    #worries li p.q_sp.right::after {
      translate: min(60px, calc(60 / 1440 * 100vw)) 0;
    }
  }
  #worries li p img {
    width: calc(50 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #worries li p img {
      width: min(60px, calc(60 / 1440 * 100vw));
    }
  }
  #support {
    background-color: var(--color-brand);
    padding: calc(62 / 390 * 100vw) calc(16 / 390 * 100vw) calc(100 / 390 * 100vw);
    border-radius: 0 0 calc(24 / 390 * 100vw) 0;
  }
  @media print, screen and (min-width: 768px) {
    #support {
      padding: min(124px, calc(124 / 1440 * 100vw)) 0 min(114px, calc(114 / 1440 * 100vw));
      border-radius: 0 0 min(48px, calc(48 / 1440 * 100vw)) 0;
    }
  }
  #support h1 {
    text-align: center;
  }
  #support h1 img {
    width: calc(280 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #support h1 img {
      width: min(791px, calc(791 / 1440 * 100vw));
    }
  }
  #support .inner {
    margin-top: calc(36 / 390 * 100vw);
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    gap: calc(24 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #support .inner {
      margin-top: min(62px, calc(62 / 1440 * 100vw));
      grid-template-columns: repeat(3, 1fr);
      gap: min(24px, calc(24 / 1440 * 100vw));
      width: min(1040px, calc(1040 / 1440 * 100vw));
      margin-inline: auto;
    }
  }
  #support .inner .unit {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    gap: calc(24 / 390 * 100vw);
    background-color: #fff;
    padding: calc(24 / 390 * 100vw) calc(24 / 390 * 100vw) calc(32 / 390 * 100vw);
    border-radius: calc(8 / 390 * 100vw);
    box-shadow: 26px 163px 46px 0 rgba(0, 0, 0, 0), 16px 104px 42px 0 rgba(0, 0, 0, 0.01), 9px 59px 36px 0 rgba(0, 0, 0, 0.05), 4px 26px 26px 0 rgba(0, 0, 0, 0.09), 1px 7px 15px 0 rgba(0, 0, 0, 0.1);
  }
  @media print, screen and (min-width: 768px) {
    #support .inner .unit {
      grid-template-rows: subgrid;
      grid-row: span 3;
      gap: min(24px, calc(24 / 1440 * 100vw));
      padding: min(24px, calc(24 / 1440 * 100vw)) min(24px, calc(24 / 1440 * 100vw)) min(32px, calc(32 / 1440 * 100vw));
      border-radius: min(16px, calc(16 / 1440 * 100vw));
    }
  }
  #support .inner .unit .title {
    text-align: center;
  }
  #support .inner .unit .title .num img {
    width: calc(42 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #support .inner .unit .title .num img {
      width: min(42px, calc(42 / 1440 * 100vw));
    }
  }
  #support .inner .unit .title h2 {
    margin-top: calc(12 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #support .inner .unit .title h2 {
      margin-top: min(12px, calc(12 / 1440 * 100vw));
    }
  }
  #support .inner .unit .title h2 img {
    height: calc(24 / 390 * 100vw);
    width: auto;
  }
  @media print, screen and (min-width: 768px) {
    #support .inner .unit .title h2 img {
      height: min(24px, calc(24 / 1440 * 100vw));
    }
  }
  #support .inner .unit .desc {
    font-size: calc(14 / 390 * 100vw);
    line-height: 1.8;
  }
  @media print, screen and (min-width: 768px) {
    #support .inner .unit .desc {
      font-size: min(14px, calc(14 / 1440 * 100vw));
      line-height: 1.8;
    }
  }
  #onestopservice {
    padding: calc(62 / 390 * 100vw) calc(16 / 390 * 100vw) 0;
  }
  @media print, screen and (min-width: 768px) {
    #onestopservice {
      padding: min(90px, calc(90 / 1440 * 100vw)) 0 0;
      width: min(1040px, calc(1040 / 1440 * 100vw));
      margin-inline: auto;
    }
  }
  #onestopservice h1 {
    text-align: center;
  }
  #onestopservice h1 img {
    width: calc(336 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #onestopservice h1 img {
      width: min(594px, calc(594 / 1440 * 100vw));
    }
  }
  #onestopservice .inner {
    margin-top: calc(32 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #onestopservice .inner {
      margin-top: min(62px, calc(62 / 1440 * 100vw));
      display: grid;
      grid-template: "text image" auto/1fr min(550px, calc(550 / 1440 * 100vw));
      gap: min(64px, calc(64 / 1440 * 100vw));
    }
  }
  #onestopservice .inner .image {
    position: relative;
  }
  @media print, screen and (min-width: 768px) {
    #onestopservice .inner .image {
      grid-area: image;
    }
  }
  #onestopservice .inner .image img {
    position: relative;
    z-index: 2;
  }
  #onestopservice .inner .image::after {
    content: "";
    display: block;
    width: calc(44 / 390 * 100vw);
    height: calc(51 / 390 * 100vw);
    position: absolute;
    top: 0;
    left: 0;
    background-image: url(../images/character_01.svg);
  }
  @media print, screen and (min-width: 768px) {
    #onestopservice .inner .image::after {
      width: min(72px, calc(72 / 1440 * 100vw));
      height: min(84px, calc(84 / 1440 * 100vw));
      top: max(-58px, calc(-58 / 1440 * 100vw));
      right: min(30px, calc(30 / 1440 * 100vw));
      left: auto;
    }
  }
  #onestopservice .inner .text {
    padding-inline: calc(12 / 390 * 100vw);
    margin-top: calc(32 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #onestopservice .inner .text {
      padding-inline: unset;
      margin-top: unset;
      grid-area: text;
    }
  }
  #onestopservice .inner .text h2 img {
    width: calc(238 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #onestopservice .inner .text h2 img {
      width: min(291px, calc(291 / 1440 * 100vw));
    }
  }
  #onestopservice .inner .text p {
    margin-top: calc(30 / 390 * 100vw);
    font-size: calc(16 / 390 * 100vw);
    line-height: 1.8;
  }
  @media print, screen and (min-width: 768px) {
    #onestopservice .inner .text p {
      margin-top: min(32px, calc(32 / 1440 * 100vw));
      font-size: min(18px, calc(18 / 1440 * 100vw));
      line-height: 1.8;
    }
  }
  #onestopservice .inner .text p strong {
    font-weight: 700;
    color: var(--color-brand);
  }
  #onestopservice figure {
    margin-top: calc(32 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #onestopservice figure {
      margin-top: min(72px, calc(72 / 1440 * 100vw));
    }
  }
  #onestopservice figure img {
    filter: drop-shadow(0 53.406px 14.954px rgba(0, 0, 0, 0)) drop-shadow(0 34.18px 13.529px rgba(0, 0, 0, 0.01)) drop-shadow(0 19.226px 11.393px rgba(0, 0, 0, 0.05)) drop-shadow(0 8.545px 8.545px rgba(0, 0, 0, 0.09)) drop-shadow(0 2.136px 4.985px rgba(0, 0, 0, 0.1));
  }
  #listedcompany {
    margin-top: calc(68 / 390 * 100vw);
    padding-inline: calc(16 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #listedcompany {
      margin-top: min(122px, calc(122 / 1440 * 100vw));
      padding-inline: unset;
    }
  }
  #listedcompany .inner {
    background-color: var(--color-secondary);
    padding: calc(8 / 390 * 100vw);
    border-radius: calc(8 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #listedcompany .inner {
      padding: min(70px, calc(70 / 1440 * 100vw)) min(62px, calc(62 / 1440 * 100vw));
      border-radius: min(16px, calc(16 / 1440 * 100vw));
      width: min(1160px, calc(1160 / 1440 * 100vw));
      margin-inline: auto;
      display: grid;
      grid-template: "image text" auto/min(420px, calc(420 / 1440 * 100vw)) 1fr;
      gap: min(72px, calc(72 / 1440 * 100vw));
    }
  }
  #listedcompany .inner .text {
    margin-top: calc(12 / 390 * 100vw);
    padding: calc(16 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #listedcompany .inner .text {
      margin-top: unset;
      padding: unset;
      grid-area: text;
    }
  }
  #listedcompany .inner .text h1 img {
    width: calc(210 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #listedcompany .inner .text h1 img {
      width: min(240px, calc(240 / 1440 * 100vw));
    }
  }
  #listedcompany .inner .text p {
    margin-top: calc(24 / 390 * 100vw);
    font-size: calc(16 / 390 * 100vw);
    line-height: 1.8;
  }
  @media print, screen and (min-width: 768px) {
    #listedcompany .inner .text p {
      margin-top: min(32px, calc(32 / 1440 * 100vw));
      font-size: min(16px, calc(16 / 1440 * 100vw));
      line-height: 1.8;
    }
  }
  #flow {
    margin-top: calc(68 / 390 * 100vw);
    background-color: var(--color-brand);
    padding: calc(62 / 390 * 100vw) calc(16 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #flow {
      margin-top: min(100px, calc(100 / 1440 * 100vw));
      padding: min(100px, calc(100 / 1440 * 100vw)) 0;
    }
  }
  #flow h1 {
    text-align: center;
  }
  #flow h1 img {
    width: calc(246 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #flow h1 img {
      width: min(392px, calc(392 / 1440 * 100vw));
    }
  }
  #flow .lead {
    margin-top: calc(30 / 390 * 100vw);
    font-size: calc(16 / 390 * 100vw);
    line-height: 1.6;
    text-align: center;
    color: #fff;
    font-weight: 700;
  }
  @media print, screen and (min-width: 768px) {
    #flow .lead {
      margin-top: min(32px, calc(32 / 1440 * 100vw));
      font-size: min(18px, calc(18 / 1440 * 100vw));
    }
  }
  #flow .inner {
    margin-top: calc(32 / 390 * 100vw);
    background-color: #fff;
    padding: calc(32 / 390 * 100vw) calc(24 / 390 * 100vw);
    border-radius: calc(8 / 390 * 100vw);
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    gap: calc(24 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #flow .inner {
      margin-top: min(56px, calc(56 / 1440 * 100vw));
      padding: min(48px, calc(48 / 1440 * 100vw)) min(64px, calc(64 / 1440 * 100vw));
      border-radius: min(16px, calc(16 / 1440 * 100vw));
      width: min(1040px, calc(1040 / 1440 * 100vw));
      margin-inline: auto;
      gap: min(24px, calc(24 / 1440 * 100vw));
    }
  }
  @media print, screen and (min-width: 768px) {
    #flow .inner .unit {
      display: grid;
      grid-template: "image text" auto "line line" auto/min(236px, calc(236 / 1440 * 100vw)) 1fr;
      gap: min(32px, calc(32 / 1440 * 100vw));
      align-items: center;
    }
  }
  #flow .inner .unit:not(:last-child)::after {
    content: "";
    display: block;
    width: 100%;
    margin-top: calc(24 / 390 * 100vw);
    aspect-ratio: 312/28;
    background-image: url(../images/flow_bg.svg);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
  }
  @media print, screen and (min-width: 768px) {
    #flow .inner .unit:not(:last-child)::after {
      grid-area: line;
      margin-top: unset;
      aspect-ratio: 910/28;
      background-image: url(../images/flow_bg_pc.svg);
    }
  }
  @media print, screen and (min-width: 768px) {
    #flow .inner .unit .image {
      grid-area: image;
    }
  }
  @media print, screen and (min-width: 768px) {
    #flow .inner .unit .text {
      grid-area: text;
    }
  }
  @media print, screen and (min-width: 768px) {
    #onestop .text {
      -ms-grid-row: 1;
      -ms-grid-column: 3;
    }
    #onestopservice .inner > .text {
      -ms-grid-row: 1;
      -ms-grid-column: 1;
    }
    #listedcompany .inner > .text {
      -ms-grid-row: 1;
      -ms-grid-column: 3;
    }
    #flow .inner .unit > .text {
      -ms-grid-row: 1;
      -ms-grid-column: 3;
    }
    #onestop .image {
      -ms-grid-row: 1;
      -ms-grid-column: 1;
    }
    #onestopservice .inner > .image {
      -ms-grid-row: 1;
      -ms-grid-column: 3;
    }
    #listedcompany .inner > .image {
      -ms-grid-row: 1;
      -ms-grid-column: 1;
    }
    #flow .inner .unit > .image {
      -ms-grid-row: 1;
      -ms-grid-column: 1;
    }
    #onestopservice .inner .image {
      -ms-grid-row: 1;
      -ms-grid-column: 1;
    }
    #onestopservice .inner > .image {
      -ms-grid-row: 1;
      -ms-grid-column: 3;
    }
    #listedcompany .inner > .image {
      -ms-grid-row: 1;
      -ms-grid-column: 1;
    }
    #flow .inner .unit > .image {
      -ms-grid-row: 1;
      -ms-grid-column: 1;
    }
    #onestopservice .inner .text {
      -ms-grid-row: 1;
      -ms-grid-column: 3;
    }
    #onestopservice .inner > .text {
      -ms-grid-row: 1;
      -ms-grid-column: 1;
    }
    #listedcompany .inner > .text {
      -ms-grid-row: 1;
      -ms-grid-column: 3;
    }
    #flow .inner .unit > .text {
      -ms-grid-row: 1;
      -ms-grid-column: 3;
    }
    #listedcompany .inner .text {
      -ms-grid-row: 1;
      -ms-grid-column: 3;
    }
    #onestopservice .inner > .text {
      -ms-grid-row: 1;
      -ms-grid-column: 1;
    }
    #listedcompany .inner > .text {
      -ms-grid-row: 1;
      -ms-grid-column: 3;
    }
    #flow .inner .unit > .text {
      -ms-grid-row: 1;
      -ms-grid-column: 3;
    }
    #flow .inner .unit:not(:last-child)::after {
      -ms-grid-row: 3;
      -ms-grid-column: 1;
      -ms-grid-column-span: 3;
    }
    #flow .inner .unit .image {
      -ms-grid-row: 1;
      -ms-grid-column: 1;
    }
    #onestopservice .inner > .image {
      -ms-grid-row: 1;
      -ms-grid-column: 3;
    }
    #listedcompany .inner > .image {
      -ms-grid-row: 1;
      -ms-grid-column: 1;
    }
    #flow .inner .unit > .image {
      -ms-grid-row: 1;
      -ms-grid-column: 1;
    }
    #flow .inner .unit .text {
      -ms-grid-row: 1;
      -ms-grid-column: 3;
    }
    #onestopservice .inner > .text {
      -ms-grid-row: 1;
      -ms-grid-column: 1;
    }
    #listedcompany .inner > .text {
      -ms-grid-row: 1;
      -ms-grid-column: 3;
    }
    #flow .inner .unit > .text {
      -ms-grid-row: 1;
      -ms-grid-column: 3;
    }
  }
  #flow .inner .unit .text h2 {
    margin-top: calc(32 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #flow .inner .unit .text h2 {
      margin-top: unset;
    }
  }
  #flow .inner .unit .text h2 img {
    height: calc(25 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #flow .inner .unit .text h2 img {
      height: min(32px, calc(32 / 1440 * 100vw));
    }
  }
  #flow .inner .unit .text p {
    margin-top: calc(16 / 390 * 100vw);
    font-size: calc(16 / 390 * 100vw);
    line-height: 1.8;
  }
  @media print, screen and (min-width: 768px) {
    #flow .inner .unit .text p {
      margin-top: min(16px, calc(16 / 1440 * 100vw));
      font-size: min(16px, calc(16 / 1440 * 100vw));
      line-height: 1.8;
    }
  }
  #aftersupport {
    margin-top: calc(68 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #aftersupport {
      margin-top: min(122px, calc(122 / 1440 * 100vw));
    }
  }
  #aftersupport .title {
    text-align: center;
  }
  #aftersupport .title img {
    width: calc(286 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #aftersupport .title img {
      width: min(495px, calc(495 / 1440 * 100vw));
    }
  }
  #aftersupport .lead {
    margin-top: calc(42 / 390 * 100vw);
    font-size: calc(16 / 390 * 100vw);
    line-height: 1.6;
    text-align: center;
    font-weight: 700;
  }
  @media print, screen and (min-width: 768px) {
    #aftersupport .lead {
      margin-top: min(30px, calc(30 / 1440 * 100vw));
      font-size: min(18px, calc(18 / 1440 * 100vw));
    }
  }
  #aftersupport .sp {
    margin-top: calc(28 / 390 * 100vw);
    overflow: hidden;
    position: relative;
    height: calc(597 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #aftersupport .sp {
      display: none;
    }
  }
  #aftersupport .sp .image {
    position: absolute;
  }
  #aftersupport .sp .image.figure_01 {
    top: calc(73 / 390 * 100vw);
    left: calc(15 / 390 * 100vw);
    z-index: 2;
  }
  #aftersupport .sp .image.figure_01 img {
    width: calc(210 / 390 * 100vw);
  }
  #aftersupport .sp .image.figure_02 {
    top: calc(306 / 390 * 100vw);
    left: calc(165 / 390 * 100vw);
    z-index: 2;
  }
  #aftersupport .sp .image.figure_02 img {
    width: calc(210 / 390 * 100vw);
  }
  #aftersupport .sp .image.figure_03 {
    top: calc(22 / 390 * 100vw);
    right: calc(-14 / 390 * 100vw);
  }
  #aftersupport .sp .image.figure_03 img {
    width: calc(193 / 390 * 100vw);
    opacity: 0.9;
  }
  #aftersupport .sp .image.figure_04 {
    bottom: calc(46 / 390 * 100vw);
    left: calc(-27 / 390 * 100vw);
  }
  #aftersupport .sp .image.figure_04 img {
    width: calc(225 / 390 * 100vw);
    opacity: 0.9;
  }
  #aftersupport .sp .image.figure_05 {
    bottom: 0;
    right: calc(12 / 390 * 100vw);
  }
  #aftersupport .sp .image.figure_05 img {
    width: calc(108 / 390 * 100vw);
    opacity: 0.8;
  }
  #aftersupport .sp .image.figure_06 {
    top: calc(203 / 390 * 100vw);
    left: calc(121 / 390 * 100vw);
  }
  #aftersupport .sp .image.figure_06 img {
    width: calc(161 / 390 * 100vw);
    opacity: 0.8;
  }
  #aftersupport .sp .image.figure_08 {
    top: 0;
    left: calc(-11 / 390 * 100vw);
  }
  #aftersupport .sp .image.figure_08 img {
    width: calc(118 / 390 * 100vw);
    opacity: 0.8;
  }
  #aftersupport .scroll-wrapper {
    display: none;
  }
  @media print, screen and (min-width: 768px) {
    #aftersupport .scroll-wrapper {
      display: flex;
      width: 100%;
      overflow: hidden;
      margin-top: min(64px, calc(64 / 1440 * 100vw));
    }
  }
  #aftersupport .scroll-wrapper:last-child .container:first-child {
    animation: loop 60s -30s linear infinite;
  }
  #aftersupport .scroll-wrapper:last-child .container:last-child {
    animation: loop2 60s linear infinite;
  }
  #aftersupport .scroll-wrapper .container {
    display: flex;
    gap: min(32px, calc(32 / 1440 * 100vw));
    padding-right: min(32px, calc(32 / 1440 * 100vw));
    flex-shrink: 0;
  }
  #aftersupport .scroll-wrapper .container:first-child {
    animation: loop 80s -40s linear infinite;
  }
  #aftersupport .scroll-wrapper .container:last-child {
    animation: loop2 80s linear infinite;
  }
  #aftersupport .scroll-wrapper .container .wrap {
    flex-shrink: 0;
    width: min(324px, calc(324 / 1440 * 100vw));
    height: auto;
  }
  @keyframes loop {
    0% {
      transform: translateX(100%);
    }
    to {
      transform: translateX(-100%);
    }
  }
  @keyframes loop2 {
    0% {
      transform: translateX(0);
    }
    to {
      transform: translateX(-200%);
    }
  }
  #contact {
    margin-top: calc(46 / 390 * 100vw);
    padding: calc(16 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #contact {
      margin-top: min(80px, calc(80 / 1440 * 100vw));
      padding: unset;
    }
  }
  #contact .inner {
    position: relative;
    border-radius: calc(16 / 390 * 100vw);
    border: 1px solid var(--color-brand);
    background: #FFF4F4;
    box-shadow: 0 75px 21px 0 rgba(0, 0, 0, 0), 0 48px 19px 0 rgba(0, 0, 0, 0.01), 0 27px 16px 0 rgba(0, 0, 0, 0.05), 0 12px 12px 0 rgba(0, 0, 0, 0.09), 0 3px 7px 0 rgba(0, 0, 0, 0.1);
    padding: calc(36 / 390 * 100vw) calc(32 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #contact .inner {
      padding: min(56px, calc(56 / 1440 * 100vw));
      border-radius: min(16px, calc(16 / 1440 * 100vw));
      width: min(852px, calc(852 / 1440 * 100vw));
      margin-inline: auto;
    }
  }
  #contact .inner h1 img {
    width: calc(231 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #contact .inner h1 img {
      width: min(364px, calc(364 / 1440 * 100vw));
    }
  }
  #contact .inner .lead {
    margin-top: calc(16 / 390 * 100vw);
    font-size: calc(16 / 390 * 100vw);
    line-height: 1.8;
    font-weight: 700;
  }
  @media print, screen and (min-width: 768px) {
    #contact .inner .lead {
      margin-top: min(22px, calc(22 / 1440 * 100vw));
      font-size: min(18px, calc(18 / 1440 * 100vw));
      line-height: 1.8;
    }
  }
  @media print, screen and (min-width: 768px) {
    #contact .inner .lead br {
      display: none;
    }
  }
  #contact .inner .btn {
    display: block;
    width: -moz-fit-content;
    width: fit-content;
    padding: calc(12 / 390 * 100vw) calc(15 / 390 * 100vw) calc(12 / 390 * 100vw) calc(18 / 390 * 100vw);
    margin-top: calc(36 / 390 * 100vw);
    border-radius: calc(8 / 390 * 100vw);
    border: 1px solid var(--color-brand);
    background: #FFF;
    box-shadow: calc(3.2 / 390 * 100vw) calc(3.2 / 390 * 100vw) 0 0 var(--color-brand);
  }
  @media print, screen and (min-width: 768px) {
    #contact .inner .btn {
      padding: min(16px, calc(16 / 1440 * 100vw)) min(24px, calc(24 / 1440 * 100vw));
      margin-top: min(42px, calc(42 / 1440 * 100vw));
      border-radius: min(8px, calc(8 / 1440 * 100vw));
      box-shadow: min(4px, calc(4 / 1440 * 100vw)) min(4px, calc(4 / 1440 * 100vw)) 0 0 var(--color-brand);
      transition: all 0.1s ease;
    }
    #contact .inner .btn:hover {
      translate: max(-2px, calc(-2 / 1440 * 100vw)) max(-2px, calc(-2 / 1440 * 100vw));
      box-shadow: min(6px, calc(6 / 1440 * 100vw)) min(6px, calc(6 / 1440 * 100vw)) 0 0 var(--color-brand);
    }
  }
  #contact .inner .btn img {
    width: calc(150 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #contact .inner .btn img {
      width: min(188px, calc(188 / 1440 * 100vw));
    }
  }
  #contact .inner .image {
    position: absolute;
    right: calc(9 / 390 * 100vw);
    bottom: 0;
  }
  @media print, screen and (min-width: 768px) {
    #contact .inner .image {
      right: min(6px, calc(6 / 1440 * 100vw));
      bottom: 0;
    }
  }
  #contact .inner .image img {
    width: calc(130 / 390 * 100vw);
  }
  @media print, screen and (min-width: 768px) {
    #contact .inner .image img {
      width: min(340px, calc(340 / 1440 * 100vw));
    }
  }
  footer {
    margin-top: calc(62 / 390 * 100vw);
    padding: calc(48 / 390 * 100vw) 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: calc(16 / 390 * 100vw);
    background: var(--color-black);
    color: #fff;
    text-align: center;
  }
  @media print, screen and (min-width: 768px) {
    footer {
      margin-top: min(140px, calc(140 / 1440 * 100vw));
      padding: min(48px, calc(48 / 1440 * 100vw)) 0;
      gap: min(16px, calc(16 / 1440 * 100vw));
    }
  }
  footer h1 {
    font-size: calc(20 / 390 * 100vw);
    font-weight: 700;
  }
  @media print, screen and (min-width: 768px) {
    footer h1 {
      font-size: min(22px, calc(22 / 1440 * 100vw));
    }
  }
  footer p {
    font-size: calc(12 / 390 * 100vw);
    line-height: 2;
  }
  @media print, screen and (min-width: 768px) {
    footer p {
      font-size: min(14px, calc(14 / 1440 * 100vw));
    }
  }
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlLnNjc3MiLCJzdHlsZS5jc3MiLCJfcmVzZXQuc2NzcyIsIl9taXhpbnMuc2NzcyIsIjxubyBzb3VyY2U+Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBO0VBQ0UsNkJBQUE7RUFDQSx3QkFBQTtFQUNBLDZCQUFBO0VBQ0Esc0NBQUE7RUFDQSx3QkFBQTtFQUNBLGdDQUFBO0VBQ0Esd0JBQUE7RUFDQSw0QkFBQTtFQUNBLDJCQUFBO0FDRkY7O0FESUEsa0JBQUE7QUFFQTtFRWhCQTtJQUNFLFNBQUE7SUFDQSxVQUFBO0lBQ0EsU0FBQTtJQUNBLGFBQUE7SUFDQSxlQUFBO0lBQ0Esd0JBQUE7RURlQTtFQ2JGO0lBQ0UsY0FBQTtFRGVBO0VDYkY7SUFDRSxnQkFBQTtFRGVBO0VDYkY7SUFDRSx5QkFBQTtJQUNBLGlCQUFBO0VEZUE7RUNiRjtJQUNFLGdCQUFBO0lBQ0EsbUJBQUE7SUFDQSxzQkFBQTtFRGVBO0VDYkY7SUFDRSxZQUFBO0VEZUE7RUNiRjtJQUNFLFdBQUE7SUFDQSxhQUFBO0VEZUE7RUNiRjtJQUNFLFlBQUE7RURlQTtFQ2JGO0lBQ0UsY0FBQTtFRGVBO0FBQ0Y7QUQ5QkE7RUFDRTtJQUNFLHNCQUFBO0VDZ0NGO0VEOUJBOztJQUVFLHNCQUFBO0VDZ0NGO0VEOUJBO0lBQ0UsYUFBQTtFQ2dDRjtFRDlCQTtJQUNFLGlDQUFBO0lBQ0EsWUFBQTtJQUNBLDhCQUFBO0lBQUEsMkJBQUE7SUFBQSxzQkFBQTtFQ2dDRjtFRXREQTtJSG1CQTtNQUtJLDZDQUFBO0lDa0NGO0VBQ0Y7RURoQ0E7SUFDRSx3QkFBQTtJQUNBLGdEQUFBO0lBQ0EsbURBQUE7SUFDQSw4R0FBQTtJQU1BLDBDQUFBO0lBQ0EsYUFBQTtJQUNBLDBEQUNBO0lBSUEsaUJBQUE7RUN5QkY7RUVyRUE7SUgyQkE7TUFtQkkseUVBQUE7SUMyQkY7RUFDRjtFRDFCRTtJQUNFLGdCQUFBO0VDNEJKO0VEeEJBO0lBQ0Usb0NBQUE7RUMwQkY7RUR4QkE7SUFDRSxlQUFBO0VDMEJGO0VEeEJBO0lBQ0UsY0FBQTtJQUNBLHFCQUFBO0lBQ0EsZUFBQTtFQzBCRjtFRHpCRTtJQUNFLGNBQUE7RUMyQko7RUUzRkE7SUgrREU7TUFHSSxvQkFBQTtJQzZCSjtFQUNGO0VEekJBO0lBQ0UscUJBQUE7RUMyQkY7RUR6QkE7SUFDRSxlQUFBO0lBQ0EsZ0JBQUE7SUFDQSxZQUFBO0lBQ0EsVUFBQTtJQUNBLGFBQUE7SUFDQSxjQUFBO0lBQ0EsbUJBQUE7RUMyQkY7RUU1R0E7SUhvRkU7TUFFSSxhQUFBO0lDMEJKO0VBQ0Y7RUR4QkU7SUFDRSxhQUFBO0VDMEJKO0VFcEhBO0lIeUZFO01BR0ksZUFBQTtJQzRCSjtFQUNGO0VEekJBO0lBQ0UsMEJBQUE7RUMyQkY7RUR6QkE7Ozs7Ozs7Ozs7SUFZRSxlQUFBO0VDeUJGO0VEckNBOzs7Ozs7Ozs7O0lBWUUsZUFBQTtFQ3lCRjtFRHZCQTtJQUNFLGFBQUE7RUN5QkY7RUR2QkE7O0lBRUUsU0FBQTtJQUNBLGNBQUE7SUFDQSx3QkFBQTtJQUNBLGtCQUFBO0lBQ0EsaUJBQUE7RUN5QkY7RUR2QkE7SUFDRSxjQUFBO0VDeUJGO0VEdkJBO0lBQ0UsVUFBQTtFQ3lCRjtFRHZCQTtJQUNFLGVBQUE7SUFDQSxZQUFBO0lBQ0Esc0JBQUE7RUN5QkY7RUR2QkE7SUFDRSxhQUFBO0VDeUJGO0VEdkJBO0lBQ0UsWUFBQTtFQ3lCRjtFRHZCQTtJQUNFLHFCQUFBO0VDeUJGO0VEdkJBOztJQUVFLFlBQUE7RUN5QkY7RUR2QkE7SUFDRSxnQ0FBQTtFQ3lCRjtFRHZCQTtJQUNFLDRCQUFBO0VDeUJGO0VEdkJBO0lBQ0UsZ0JBQUE7RUN5QkY7RUR2QkE7SUFDRSxvQkFBQTtFQ3lCRjtFRHZCQTtJQUNFLHdCQUFBO0lBQ0EsVUFBQTtFQ3lCRjtFRHRCQTtJQUNFLHdCQUFBO0lBQ0EsVUFBQTtFQ3dCRjtFRHRCQTtJQUNFLGFBQUE7RUN3QkY7RUVsTUE7SUh5S0E7TUFHSSxjQUFBO0lDMEJGO0VBQ0Y7RUV2TUE7SUgrS0E7TUFFSSxhQUFBO0lDMEJGO0VBQ0Y7RUU1TUE7SUhvTEE7TUFFSSxhQUFBO0lDMEJGO0VBQ0Y7RUVqTkE7SUh5TEE7TUFFSSxhQUFBO0lDMEJGO0VBQ0Y7RUV0TkE7SUg4TEE7TUFFSSxhQUFBO0lDMEJGO0VBQ0Y7RUR2QkE7SUFDRSw2QkFBQTtJQUNBLHFCQUFBO0lBQ0Esc0JBQUE7SUFDQSxxQkFBQTtJQUNBLHVCQUFBO0lBQ0EsMkJBQUE7SUFDQSxpQ0FBQTtJQUNBLDhCQUFBO0lBQ0Esb0JBQUE7RUN5QkY7RUR2QkE7SUkzTkYsZ0JBQUE7SUFBQSxtQkFBQTtJSjROSSxlQUFBO0VDeUJGO0VEdkJBO0lBQ0Usc0NBQUE7SUFDQSw4Q0FBQTtJQUNBLDRCQUFBO0lBQ0EsZ0NBQUE7SUFDQSw2Q0FBQTtFQ3lCRjtFRWhQQTtJSGtOQTtNQU9JLG9EQUFBO01BQ0EsMERBQUE7TUFDQSxpREFBQTtJQzJCRjtFQUNGO0VEekJBO0lBQ0UsK0JBQUE7RUMyQkY7RUUxUEE7SUg4TkE7TUFHSSxjQUFBO01BQ0EsK0NBQUE7TUFDQSw2Q0FBQTtNQUNBLG1CQUFBO0lDNkJGO0VBQ0Y7RUQ1QkU7SUFDRSxxRUFBQTtJQUNBLG9DQUFBO0lBQ0EsOEVBQUE7SUFDQSxrQkFBQTtJQUNBLGtCQUFBO0VDOEJKO0VFelFBO0lIc09FO01BT0ksZ0RBQUE7TUFDQSxtSEFBQTtNQUNBLGlEQUFBO0lDZ0NKO0VBQ0Y7RUQ5Qk07SUFDRSw4QkFBQTtFQ2dDUjtFRW5SQTtJSGtQTTtNQUdJLDJDQUFBO0lDa0NSO0VBQ0Y7RUQvQkk7SUFDRSxrQ0FBQTtFQ2lDTjtFRTNSQTtJSHlQSTtNQUdJLDhDQUFBO0lDbUNOO0VBQ0Y7RURsQ007SUFDRSw4QkFBQTtFQ29DUjtFRW5TQTtJSDhQTTtNQUdJLDJDQUFBO0lDc0NSO0VBQ0Y7RURuQ0k7SUFDRSxrQ0FBQTtJQUNBLG1DQUFBO0lBQ0EsZ0JBQUE7SUFDQSxXQUFBO0lBQ0EsY0FBQTtFQ3FDTjtFRS9TQTtJSHFRSTtNQU9JLDhDQUFBO01BQ0EsaURBQUE7TUFDQSxjQUFBO0lDdUNOO0VBQ0Y7RUR0Q007SUFDRSxvQ0FBQTtJQUNBLG9EQUFBO0VDd0NSO0VFMVRBO0lIZ1JNO01BSUksMEVBQUE7SUMwQ1I7RUFDRjtFRHZDSTtJQUNFLGtDQUFBO0VDeUNOO0VFbFVBO0lId1JJO01BR0ksOENBQUE7SUMyQ047RUFDRjtFRDFDTTtJQUNFLDhCQUFBO0VDNENSO0VFMVVBO0lINlJNO01BR0ksMkNBQUE7SUM4Q1I7RUFDRjtFRDNDSTtJQUNFLGFBQUE7RUM2Q047RUQxQ007SUFDRSxrQkFBQTtFQzRDUjtFRDNDUTtJQUNFLGFBQUE7RUM2Q1Y7RUV4VkE7SUgwU1E7TUFHSSxjQUFBO0lDK0NWO0VBQ0Y7RUQ3Q1E7SUFDRSw2QkFBQTtJQUNBLDhCQUFBO0lBQ0EsNEJBQUE7RUMrQ1Y7RUVsV0E7SUhnVFE7TUFLSSx5Q0FBQTtNQUNBLDBDQUFBO01BQ0EsMENBQUE7SUNpRFY7RUFDRjtFRC9DUTtJQUNFLDZCQUFBO0lBQ0EsK0JBQUE7SUFDQSw2QkFBQTtFQ2lEVjtFRTlXQTtJSDBUUTtNQUtJLHlDQUFBO01BQ0EsMENBQUE7TUFDQSwyQ0FBQTtJQ21EVjtFQUNGO0VEakRRO0lBQ0UsNkJBQUE7SUFDQSwrQkFBQTtJQUNBLDRCQUFBO0VDbURWO0VFMVhBO0lIb1VRO01BS0kseUNBQUE7TUFDQSw0Q0FBQTtNQUNBLDBDQUFBO0lDcURWO0VBQ0Y7RURuRFE7SUFDRSw2QkFBQTtJQUNBLCtCQUFBO0lBQ0EsNkJBQUE7RUNxRFY7RUV0WUE7SUg4VVE7TUFLSSx5Q0FBQTtNQUNBLDRDQUFBO01BQ0EsV0FBQTtNQUNBLDBDQUFBO0lDdURWO0VBQ0Y7RUU5WUE7SUh5VlE7TUFFSSx5Q0FBQTtNQUNBLDRDQUFBO01BQ0EseUNBQUE7SUN1RFY7RUFDRjtFRXJaQTtJSGdXUTtNQUVJLHlDQUFBO01BQ0EsNENBQUE7TUFDQSwyQ0FBQTtJQ3VEVjtFQUNGO0VFNVpBO0lIdVdRO01BRUkseUNBQUE7TUFDQSw0Q0FBQTtNQUNBLDJDQUFBO0lDdURWO0VBQ0Y7RUVuYUE7SUg4V1E7TUFFSSx5Q0FBQTtNQUNBLDRDQUFBO01BQ0Esd0NBQUE7SUN1RFY7RUFDRjtFRTFhQTtJSHFYUTtNQUVJLHlDQUFBO01BQ0EsNENBQUE7TUFDQSx5Q0FBQTtJQ3VEVjtFQUNGO0VEakRBO0lBQ0Usa0NBQUE7SUFDQSxzQ0FBQTtFQ21ERjtFRXJiQTtJSGdZQTtNQUlJLGdEQUFBO01BQ0EscUJBQUE7TUFDQSw2Q0FBQTtNQUNBLG1CQUFBO01BQ0Esa0JBQUE7TUFDQSxhQUFBO01BQ0EseUVBQ0E7TUFFQSx1Q0FBQTtJQ21ERjtFQUNGO0VEbERFO0lBQ0Usa0JBQUE7SUFDQSxzQ0FBQTtFQ29ESjtFRXJjQTtJSCtZRTtNQUlJLGdCQUFBO01BQ0EscUJBQUE7TUFDQSxlQUFBO01BQ0Esb0JBQUE7SUNzREo7RUFDRjtFRHJESTtJQUNFLGtCQUFBO0lBQ0EsU0FBQTtJQUNBLDRCQUFBO0VDdUROO0VFbGRBO0lId1pJO01BS0ksYUFBQTtNQUNBLHVDQUFBO01BQ0EseUNBQUE7SUN5RE47RUFDRjtFRHhETTtJQUNFLDZCQUFBO0VDMERSO0VFNWRBO0lIaWFNO01BR0kseUNBQUE7SUM0RFI7RUFDRjtFRHhETTtJQUNFLDhCQUFBO0VDMERSO0VFcGVBO0lIeWFNO01BR0ksMkNBQUE7SUM0RFI7RUFDRjtFRHpESTtJQUNFLGtDQUFBO0lBQ0EsaUNBQUE7SUFDQSxnQkFBQTtFQzJETjtFRTllQTtJSGdiSTtNQUtJLDhDQUFBO01BQ0EsNkNBQUE7TUFDQSxnQkFBQTtJQzZETjtFQUNGO0VENURNO0lBQ0UsaUNBQUE7RUM4RFI7RUV4ZkE7SUh5Yk07TUFHSSw2Q0FBQTtJQ2dFUjtFQUNGO0VENURFO0lBQ0UsbUNBQUE7SUFDQSxrQkFBQTtJQUNBLFVBQUE7RUM4REo7RUVsZ0JBO0lIaWNFO01BS0ksaUJBQUE7TUFDQSxnQkFBQTtJQ2dFSjtFQUNGO0VEL0RJO0lBQ0Usb0NBQUE7RUNpRU47RUUzZ0JBO0lIeWNJO01BR0ksaURBQUE7SUNtRU47RUFDRjtFRC9EQTtJQUNFLDZFQUFBO0lBQ0Esd0NBQUE7SUFDQSwyQ0FBQTtJQUNBLG1DQUFBO0lBQ0EsNktBQUE7RUNpRUY7RUV2aEJBO0lIaWRBO01BT0ksZ0ZBQUE7TUFDQSx1REFBQTtNQUNBLGdEQUFBO0lDbUVGO0VBQ0Y7RURsRUU7SUFDRSxrQkFBQTtFQ29FSjtFRG5FSTtJQUNFLDhCQUFBO0VDcUVOO0VFcGlCQTtJSDhkSTtNQUdJLDJDQUFBO0lDdUVOO0VBQ0Y7RURwRUU7SUFDRSxrQ0FBQTtFQ3NFSjtFRTVpQkE7SUhxZUU7TUFHSSw4Q0FBQTtNQUNBLDZDQUFBO01BQ0EsbUJBQUE7TUFDQSxhQUFBO01BQ0EscUNBQUE7TUFDQSx1Q0FBQTtJQ3dFSjtFQUNGO0VEdEVFO0lBQ0UsOEJBQUE7SUFDQSxrQkFBQTtJQUNBLFVBQUE7RUN3RUo7RUUzakJBO0lIZ2ZFO01BS0ksV0FBQTtJQzBFSjtFQUNGO0VEekVJO0lBQ0Usb0NBQUE7SUFDQSxpQkFBQTtJQUNBLFVBQUE7RUMyRU47RUVya0JBO0lIdWZJO01BS0ksaUJBQUE7TUFDQSxrQkFBQTtNQUNBLGNBQUE7SUM2RU47RUFDRjtFRDNFSTtJQUNFLG1DQUFBO0VDNkVOO0VFL2tCQTtJSGlnQkk7TUFHSSxpQkFBQTtJQytFTjtFQUNGO0VEN0VJO0lBQ0Usb0NBQUE7SUFDQSxpQkFBQTtJQUNBLFVBQUE7RUMrRU47RUV6bEJBO0lIdWdCSTtNQUtJLGlCQUFBO01BQ0Esa0JBQUE7TUFDQSxjQUFBO0lDaUZOO0VBQ0Y7RUQ5RU07SUFDRSwrTEFBQTtJQUNBLFdBQUE7RUNnRlI7RUQ3RUk7SUFDRSxrQ0FBQTtJQUNBLGtCQUFBO0lBQ0Esa0JBQUE7RUMrRU47RUV6bUJBO0lIdWhCSTtNQUtJLDhDQUFBO0lDaUZOO0VBQ0Y7RUQvRVE7SUFDRSxXQUFBO0lBQ0EsY0FBQTtJQUNBLDZCQUFBO0lBQ0EsOEJBQUE7SUFDQSxrQkFBQTtJQUNBLDRCQUFBO0lBQ0EsU0FBQTtJQUNBLG9DQUFBO0lBQ0EsNkNBQUE7SUFDQSx3QkFBQTtJQUNBLGdCQUFBO0VDaUZWO0VFM25CQTtJSCtoQlE7TUFhSSxVQUFBO01BQ0EsVUFBQTtNQUNBLHlDQUFBO01BQ0EsMENBQUE7TUFDQSx5Q0FBQTtNQUNBLGVBQUE7TUFDQSwrQ0FBQTtJQ21GVjtFQUNGO0VEaEZVO0lBQ0UsVUFBQTtJQUNBLFVBQUE7SUFDQSxtQ0FBQTtJQUNBLGVBQUE7RUNrRlo7RUU1b0JBO0lIc2pCVTtNQU1JLCtDQUFBO0lDb0ZaO0VBQ0Y7RURoRk07SUFDRSw2QkFBQTtFQ2tGUjtFRXBwQkE7SUhpa0JNO01BR0kseUNBQUE7SUNvRlI7RUFDRjtFRC9FQTtJQUNFLG9DQUFBO0lBQ0EsOEVBQUE7SUFDQSwyQ0FBQTtFQ2lGRjtFRTlwQkE7SUgwa0JBO01BS0ksb0ZBQUE7TUFDQSx1REFBQTtJQ21GRjtFQUNGO0VEbEZFO0lBQ0Usa0JBQUE7RUNvRko7RURuRkk7SUFDRSw4QkFBQTtFQ3FGTjtFRTFxQkE7SUhvbEJJO01BR0ksMkNBQUE7SUN1Rk47RUFDRjtFRHBGRTtJQUNFLGtDQUFBO0lBQ0EsYUFBQTtJQUNBLHFDQUFBO0lBQ0EsMkJBQUE7RUNzRko7RUVyckJBO0lIMmxCRTtNQU1JLDhDQUFBO01BQ0EscUNBQUE7TUFDQSx1Q0FBQTtNQUNBLDZDQUFBO01BQ0EsbUJBQUE7SUN3Rko7RUFDRjtFRHZGSTtJQUNFLGFBQUE7SUFDQSxxQ0FBQTtJQUNBLDJCQUFBO0lBQ0Esc0JBQUE7SUFDQSw2RUFBQTtJQUNBLG9DQUFBO0lBQ0Esa01BQUE7RUN5Rk47RUV2c0JBO0lIdW1CSTtNQVNJLDJCQUFBO01BQ0EsZ0JBQUE7TUFDQSx1Q0FBQTtNQUNBLGlIQUFBO01BQ0EsaURBQUE7SUMyRk47RUFDRjtFRDFGTTtJQUNFLGtCQUFBO0VDNEZSO0VEMUZVO0lBQ0UsNkJBQUE7RUM0Rlo7RUV0dEJBO0lIeW5CVTtNQUdJLHlDQUFBO0lDOEZaO0VBQ0Y7RUQzRlE7SUFDRSxrQ0FBQTtFQzZGVjtFRTl0QkE7SUhnb0JRO01BR0ksOENBQUE7SUMrRlY7RUFDRjtFRDlGVTtJQUNFLDhCQUFBO0lBQ0EsV0FBQTtFQ2dHWjtFRXZ1QkE7SUhxb0JVO01BSUksMENBQUE7SUNrR1o7RUFDRjtFRDdGTTtJQUNFLGlDQUFBO0lBQ0EsZ0JBQUE7RUMrRlI7RUVodkJBO0lIK29CTTtNQUlJLDZDQUFBO01BQ0EsZ0JBQUE7SUNpR1I7RUFDRjtFRDVGQTtJQUNFLHdEQUFBO0VDOEZGO0VFenZCQTtJSDBwQkE7TUFHSSwrQ0FBQTtNQUNBLDZDQUFBO01BQ0EsbUJBQUE7SUNnR0Y7RUFDRjtFRC9GRTtJQUNFLGtCQUFBO0VDaUdKO0VEaEdJO0lBQ0UsOEJBQUE7RUNrR047RUV0d0JBO0lIbXFCSTtNQUdJLDJDQUFBO0lDb0dOO0VBQ0Y7RURqR0U7SUFDRSxrQ0FBQTtFQ21HSjtFRTl3QkE7SUgwcUJFO01BR0ksOENBQUE7TUFDQSxhQUFBO01BQ0EseUVBQ0E7TUFFQSx1Q0FBQTtJQ21HSjtFQUNGO0VEbEdJO0lBQ0Usa0JBQUE7RUNvR047RUV6eEJBO0lIb3JCSTtNQUdJLGdCQUFBO0lDc0dOO0VBQ0Y7RURyR007SUFDRSxrQkFBQTtJQUNBLFVBQUE7RUN1R1I7RURyR007SUFDRSxXQUFBO0lBQ0EsY0FBQTtJQUNBLDZCQUFBO0lBQ0EsOEJBQUE7SUFDQSxrQkFBQTtJQUNBLE1BQUE7SUFDQSxPQUFBO0lBQ0EsaURBQUE7RUN1R1I7RUU1eUJBO0lINnJCTTtNQVVJLHlDQUFBO01BQ0EsMENBQUE7TUFDQSx5Q0FBQTtNQUNBLHlDQUFBO01BQ0EsVUFBQTtJQ3lHUjtFQUNGO0VEckdJO0lBQ0Usc0NBQUE7SUFDQSxrQ0FBQTtFQ3VHTjtFRXp6QkE7SUhndEJJO01BSUkscUJBQUE7TUFDQSxpQkFBQTtNQUNBLGVBQUE7SUN5R047RUFDRjtFRHZHUTtJQUNFLDhCQUFBO0VDeUdWO0VFbjBCQTtJSHl0QlE7TUFHSSwyQ0FBQTtJQzJHVjtFQUNGO0VEeEdNO0lBQ0Usa0NBQUE7SUFDQSxpQ0FBQTtJQUNBLGdCQUFBO0VDMEdSO0VFNzBCQTtJSGd1Qk07TUFLSSw4Q0FBQTtNQUNBLDZDQUFBO01BQ0EsZ0JBQUE7SUM0R1I7RUFDRjtFRDNHUTtJQUNFLGdCQUFBO0lBQ0EseUJBQUE7RUM2R1Y7RUR4R0U7SUFDRSxrQ0FBQTtFQzBHSjtFRTMxQkE7SUhndkJFO01BR0ksOENBQUE7SUM0R0o7RUFDRjtFRDNHSTtJQUNFLHVRQUNFO0VDNEdSO0VEcEdBO0lBQ0Usa0NBQUE7SUFDQSxzQ0FBQTtFQ3NHRjtFRXYyQkE7SUgrdkJBO01BSUksZ0RBQUE7TUFDQSxxQkFBQTtJQ3dHRjtFQUNGO0VEdkdFO0lBQ0Usd0NBQUE7SUFDQSw4QkFBQTtJQUNBLG9DQUFBO0VDeUdKO0VFbDNCQTtJSHN3QkU7TUFLSSw4RUFBQTtNQUNBLGlEQUFBO01BQ0EsNkNBQUE7TUFDQSxtQkFBQTtNQUNBLGFBQUE7TUFDQSx5RUFDQTtNQUVBLHVDQUFBO0lDeUdKO0VBQ0Y7RUR4R0k7SUFDRSxrQ0FBQTtJQUNBLCtCQUFBO0VDMEdOO0VFajRCQTtJSHF4Qkk7TUFJSSxpQkFBQTtNQUNBLGNBQUE7TUFDQSxlQUFBO0lDNEdOO0VBQ0Y7RUQxR1E7SUFDRSw4QkFBQTtFQzRHVjtFRTM0QkE7SUg4eEJRO01BR0ksMkNBQUE7SUM4R1Y7RUFDRjtFRDNHTTtJQUNFLGtDQUFBO0lBQ0EsaUNBQUE7SUFDQSxnQkFBQTtFQzZHUjtFRXI1QkE7SUhxeUJNO01BS0ksOENBQUE7TUFDQSw2Q0FBQTtNQUNBLGdCQUFBO0lDK0dSO0VBQ0Y7RUQxR0E7SUFDRSxrQ0FBQTtJQUNBLG9DQUFBO0lBQ0Esc0RBQUE7RUM0R0Y7RUVqNkJBO0lIa3pCQTtNQUtJLGdEQUFBO01BQ0EsK0NBQUE7SUM4R0Y7RUFDRjtFRDdHRTtJQUNFLGtCQUFBO0VDK0dKO0VEOUdJO0lBQ0UsOEJBQUE7RUNnSE47RUU3NkJBO0lINHpCSTtNQUdJLDJDQUFBO0lDa0hOO0VBQ0Y7RUQvR0U7SUFDRSxrQ0FBQTtJQUNBLGlDQUFBO0lBQ0EsZ0JBQUE7SUFDQSxrQkFBQTtJQUNBLFdBQUE7SUFDQSxnQkFBQTtFQ2lISjtFRTE3QkE7SUhtMEJFO01BUUksOENBQUE7TUFDQSw2Q0FBQTtJQ21ISjtFQUNGO0VEakhFO0lBQ0Usa0NBQUE7SUFDQSxzQkFBQTtJQUNBLHNEQUFBO0lBQ0Esb0NBQUE7SUFDQSxhQUFBO0lBQ0EscUNBQUE7SUFDQSwyQkFBQTtFQ21ISjtFRXo4QkE7SUgrMEJFO01BU0ksOENBQUE7TUFDQSw4RUFBQTtNQUNBLGlEQUFBO01BQ0EsNkNBQUE7TUFDQSxtQkFBQTtNQUNBLHVDQUFBO0lDcUhKO0VBQ0Y7RUVuOUJBO0lIKzFCSTtNQUVJLGFBQUE7TUFDQSwwRkFDQTtNQUdBLHVDQUFBO01BQ0EsbUJBQUE7SUNtSE47RUFDRjtFRGpIUTtJQUNFLFdBQUE7SUFDQSxjQUFBO0lBQ0EsV0FBQTtJQUNBLGtDQUFBO0lBQ0Esb0JBQUE7SUFDQSw0Q0FBQTtJQUNBLHdCQUFBO0lBQ0EsNEJBQUE7SUFDQSwyQkFBQTtFQ21IVjtFRXQrQkE7SUgwMkJRO01BV0ksZUFBQTtNQUNBLGlCQUFBO01BQ0Esb0JBQUE7TUFDQSwrQ0FBQTtJQ3FIVjtFQUNGO0VFOStCQTtJSDQzQk07TUFFSSxnQkFBQTtJQ29IUjtFQUNGO0VFbi9CQTtJSGk0Qk07TUFFSSxlQUFBO0lDb0hSO0VBQ0Y7RUdwZ0NGO0lKMlpJO01JM1pKLGdCQUFBO01BQUEsbUJBQUE7SUh3ZEk7SUQ3REE7TUkzWkosZ0JBQUE7TUFBQSxtQkFBQTtJSHdkSTtJRDdEQTtNSTNaSixnQkFBQTtNQUFBLG1CQUFBO0lId2RJO0lEN0RBO01JM1pKLGdCQUFBO01BQUEsbUJBQUE7SUh3ZEk7SURYQTtNSTdjSixnQkFBQTtNQUFBLG1CQUFBO0lIbWhCSTtJRHRFQTtNSTdjSixnQkFBQTtNQUFBLG1CQUFBO0lIbWhCSTtJRHRFQTtNSTdjSixnQkFBQTtNQUFBLG1CQUFBO0lIbWhCSTtJRHRFQTtNSTdjSixnQkFBQTtNQUFBLG1CQUFBO0lIbWhCSTtJRDZLRTtNSWhzQk4sZ0JBQUE7TUFBQSxtQkFBQTtJSHl5Qkk7SUR6R0U7TUloc0JOLGdCQUFBO01BQUEsbUJBQUE7SUh5eUJJO0lEekdFO01JaHNCTixnQkFBQTtNQUFBLG1CQUFBO0lIeXlCSTtJRHpHRTtNSWhzQk4sZ0JBQUE7TUFBQSxtQkFBQTtJSHl5Qkk7SUQ3RUU7TUk1dEJOLGdCQUFBO01BQUEsbUJBQUE7SUgyMEJJO0lEL0dFO01JNXRCTixnQkFBQTtNQUFBLG1CQUFBO0lIMjBCSTtJRC9HRTtNSTV0Qk4sZ0JBQUE7TUFBQSxtQkFBQTtJSDIwQkk7SUQvR0U7TUk1dEJOLGdCQUFBO01BQUEsbUJBQUE7SUgyMEJJO0lEMUNFO01JanlCTixnQkFBQTtNQUFBLG1CQUFBO0lIbTVCSTtJRGxIRTtNSWp5Qk4sZ0JBQUE7TUFBQSxtQkFBQTtJSG01Qkk7SURsSEU7TUlqeUJOLGdCQUFBO01BQUEsbUJBQUE7SUhtNUJJO0lEbEhFO01JanlCTixnQkFBQTtNQUFBLG1CQUFBO0lIbTVCSTtJRDdCTTtNSXQzQlYsZ0JBQUE7TUFBQSxtQkFBQTtNQUFBLHdCQUFBO0lIeS9CSTtJRGpISTtNSXg0QlIsZ0JBQUE7TUFBQSxtQkFBQTtJSDgvQkk7SUR0SEk7TUl4NEJSLGdCQUFBO01BQUEsbUJBQUE7SUg4L0JJO0lEdEhJO01JeDRCUixnQkFBQTtNQUFBLG1CQUFBO0lIOC9CSTtJRHRISTtNSXg0QlIsZ0JBQUE7TUFBQSxtQkFBQTtJSDgvQkk7SURqSEk7TUk3NEJSLGdCQUFBO01BQUEsbUJBQUE7SUhtZ0NJO0lEdEhJO01JNzRCUixnQkFBQTtNQUFBLG1CQUFBO0lIbWdDSTtJRHRISTtNSTc0QlIsZ0JBQUE7TUFBQSxtQkFBQTtJSG1nQ0k7SUR0SEk7TUk3NEJSLGdCQUFBO01BQUEsbUJBQUE7SUhtZ0NJO0dHbmdDSjtFSmk1QlU7SUFDRSxrQ0FBQTtFQ3FIVjtFRTMvQkE7SUhxNEJRO01BR0ksaUJBQUE7SUN1SFY7RUFDRjtFRHRIVTtJQUNFLDhCQUFBO0VDd0haO0VFbmdDQTtJSDA0QlU7TUFHSSwwQ0FBQTtJQzBIWjtFQUNGO0VEdkhRO0lBQ0Usa0NBQUE7SUFDQSxpQ0FBQTtJQUNBLGdCQUFBO0VDeUhWO0VFN2dDQTtJSGk1QlE7TUFLSSw4Q0FBQTtNQUNBLDZDQUFBO01BQ0EsZ0JBQUE7SUMySFY7RUFDRjtFRHBIQTtJQUNFLGtDQUFBO0VDc0hGO0VFdmhDQTtJSGc2QkE7TUFHSSxnREFBQTtJQ3dIRjtFQUNGO0VEdkhFO0lBQ0Usa0JBQUE7RUN5SEo7RUR4SEk7SUFDRSw4QkFBQTtFQzBITjtFRWxpQ0E7SUh1NkJJO01BR0ksMkNBQUE7SUM0SE47RUFDRjtFRHpIRTtJQUNFLGtDQUFBO0lBQ0EsaUNBQUE7SUFDQSxnQkFBQTtJQUNBLGtCQUFBO0lBQ0EsZ0JBQUE7RUMySEo7RUU5aUNBO0lIODZCRTtNQU9JLDhDQUFBO01BQ0EsNkNBQUE7SUM2SEo7RUFDRjtFRDNIRTtJQUNFLGtDQUFBO0lBQ0EsZ0JBQUE7SUFDQSxrQkFBQTtJQUNBLCtCQUFBO0VDNkhKO0VFMWpDQTtJSHk3QkU7TUFNSSxhQUFBO0lDK0hKO0VBQ0Y7RUQ5SEk7SUFDRSxrQkFBQTtFQ2dJTjtFRC9ITTtJQUNFLDJCQUFBO0lBQ0EsNEJBQUE7SUFDQSxVQUFBO0VDaUlSO0VEaElRO0lBQ0UsOEJBQUE7RUNrSVY7RUQvSE07SUFDRSw0QkFBQTtJQUNBLDZCQUFBO0lBQ0EsVUFBQTtFQ2lJUjtFRGhJUTtJQUNFLDhCQUFBO0VDa0lWO0VEL0hNO0lBQ0UsMkJBQUE7SUFDQSw4QkFBQTtFQ2lJUjtFRGhJUTtJQUNFLDhCQUFBO0lBQ0EsWUFBQTtFQ2tJVjtFRC9ITTtJQUNFLDhCQUFBO0lBQ0EsNkJBQUE7RUNpSVI7RURoSVE7SUFDRSw4QkFBQTtJQUNBLFlBQUE7RUNrSVY7RUQvSE07SUFDRSxTQUFBO0lBQ0EsNkJBQUE7RUNpSVI7RURoSVE7SUFDRSw4QkFBQTtJQUNBLFlBQUE7RUNrSVY7RUQvSE07SUFDRSw0QkFBQTtJQUNBLDZCQUFBO0VDaUlSO0VEaElRO0lBQ0UsOEJBQUE7SUFDQSxZQUFBO0VDa0lWO0VEL0hNO0lBQ0UsTUFBQTtJQUNBLDZCQUFBO0VDaUlSO0VEaElRO0lBQ0UsOEJBQUE7SUFDQSxZQUFBO0VDa0lWO0VEN0hFO0lBQ0UsYUFBQTtFQytISjtFRTduQ0E7SUg2L0JFO01BR0ksYUFBQTtNQUNBLFdBQUE7TUFDQSxnQkFBQTtNQUNBLDhDQUFBO0lDaUlKO0VBQ0Y7RUQ5SFE7SUFDRSx3Q0FBQTtFQ2dJVjtFRDlIUTtJQUNFLG9DQUFBO0VDZ0lWO0VEM0hJO0lBQ0UsYUFBQTtJQUNBLHVDQUFBO0lBQ0EsaURBQUE7SUFDQSxjQUFBO0VDNkhOO0VENUhNO0lBQ0Usd0NBQUE7RUM4SFI7RUQ1SE07SUFDRSxvQ0FBQTtFQzhIUjtFRDVITTtJQUNFLGNBQUE7SUFDQSwyQ0FBQTtJQUNBLFlBQUE7RUM4SFI7RUQxSEU7SUFDRTtNQUNFLDJCQUFBO0lDNEhKO0lEMUhFO01BQ0UsNEJBQUE7SUM0SEo7RUFDRjtFRDFIRTtJQUNFO01BQ0Usd0JBQUE7SUM0SEo7SUQxSEU7TUFDRSw0QkFBQTtJQzRISjtFQUNGO0VEekhBO0lBQ0Usa0NBQUE7SUFDQSwrQkFBQTtFQzJIRjtFRWhyQ0E7SUhtakNBO01BSUksOENBQUE7TUFDQSxjQUFBO0lDNkhGO0VBQ0Y7RUQ1SEU7SUFDRSxrQkFBQTtJQUNBLHFDQUFBO0lBQ0Esb0NBQUE7SUFDQSxtQkFBQTtJQUNBLG1MQUFBO0lBQ0Esc0RBQUE7RUM4SEo7RUU5ckNBO0lIMGpDRTtNQVFJLDJDQUFBO01BQ0EsaURBQUE7TUFDQSwyQ0FBQTtNQUNBLG1CQUFBO0lDZ0lKO0VBQ0Y7RUQ5SE07SUFDRSw4QkFBQTtFQ2dJUjtFRXpzQ0E7SUh3a0NNO01BR0ksMkNBQUE7SUNrSVI7RUFDRjtFRC9ISTtJQUNFLGtDQUFBO0lBQ0EsaUNBQUE7SUFDQSxnQkFBQTtJQUNBLGdCQUFBO0VDaUlOO0VFcHRDQTtJSCtrQ0k7TUFNSSw4Q0FBQTtNQUNBLDZDQUFBO01BQ0EsZ0JBQUE7SUNtSU47RUFDRjtFRTN0Q0E7SUh5bENNO01BRUksYUFBQTtJQ29JUjtFQUNGO0VEaklJO0lBQ0UsY0FBQTtJQUNBLHVCQUFBO0lBQUEsa0JBQUE7SUFDQSxvR0FBQTtJQUNBLGtDQUFBO0lBQ0Esb0NBQUE7SUFDQSxvQ0FBQTtJQUNBLGdCQUFBO0lBQ0Esa0ZBQUE7RUNtSU47RUUxdUNBO0lIK2xDSTtNQVVJLDhFQUFBO01BQ0EsOENBQUE7TUFDQSwrQ0FBQTtNQUNBLG9HQUFBO01BQ0EseUJBQUE7SUNxSU47SURwSU07TUFDRSxnRkFBQTtNQUNBLG9HQUFBO0lDc0lSO0VBQ0Y7RURwSU07SUFDRSw4QkFBQTtFQ3NJUjtFRTF2Q0E7SUhtbkNNO01BR0ksMkNBQUE7SUN3SVI7RUFDRjtFRHJJSTtJQUNFLGtCQUFBO0lBQ0EsNEJBQUE7SUFDQSxTQUFBO0VDdUlOO0VFcHdDQTtJSDBuQ0k7TUFLSSx1Q0FBQTtNQUNBLFNBQUE7SUN5SU47RUFDRjtFRHhJTTtJQUNFLDhCQUFBO0VDMElSO0VFN3dDQTtJSGtvQ007TUFHSSwyQ0FBQTtJQzRJUjtFQUNGO0VEdElBO0lBQ0Usa0NBQUE7SUFDQSxpQ0FBQTtJQUNBLGFBQUE7SUFDQSxzQkFBQTtJQUNBLHVCQUFBO0lBQ0EsbUJBQUE7SUFDQSwyQkFBQTtJQUNBLDhCQUFBO0lBQ0EsV0FBQTtJQUNBLGtCQUFBO0VDd0lGO0VFOXhDQTtJSDRvQ0E7TUFZSSxnREFBQTtNQUNBLDZDQUFBO01BQ0EsdUNBQUE7SUMwSUY7RUFDRjtFRHpJRTtJQUNFLGlDQUFBO0lBQ0EsZ0JBQUE7RUMySUo7RUV6eUNBO0lINHBDRTtNQUlJLDZDQUFBO0lDNklKO0VBQ0Y7RUQzSUU7SUFDRSxpQ0FBQTtJQUNBLGNBQUE7RUM2SUo7RUVsekNBO0lIbXFDRTtNQUlJLDZDQUFBO0lDK0lKO0VBQ0Y7QUFDRiIsImZpbGUiOiJzdHlsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAY2hhcnNldCBcIlVURi04XCI7XG5AaW1wb3J0IFwibWl4aW5zXCI7XG5cbjpyb290IHtcbiAgLS10cmFuc2l0aW9uLXNwZWVkLXNsb3c6IDAuNXM7XG4gIC0tdHJhbnNpdGlvbi1zcGVlZDogMC4zcztcbiAgLS10cmFuc2l0aW9uLXNwZWVkLWZhc3Q6IDAuMnM7XG4gIC0tYmV6aWVyOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICAtLWNvbG9yLWJsYWNrOiAjMUUxRTFFRkY7XG4gIC0tY29sb3ItdGV4dDogdmFyKC0tY29sb3ItYmxhY2spO1xuICAtLWNvbG9yLWJyYW5kOiAjQ0YxMTFCRkY7XG4gIC0tY29sb3Itc2Vjb25kYXJ5OiAjRjVGNEYzRkY7XG4gIC0tY29sb3ItdGVydGlhcnk6ICNGQUU0RTRGRjtcbn1cbkBsYXllciByZXNldCwgYmFzZTtcblxuQGxheWVyIHJlc2V0IHtcbiAgQGltcG9ydCBcInJlc2V0XCI7XG59XG5cbkBsYXllciBiYXNlIHtcbiAgKiB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuICAqOmJlZm9yZSxcbiAgKjphZnRlciB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuICAqOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG4gIGh0bWwge1xuICAgIGZvbnQtc2l6ZTogdncoMTZweCk7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gICAgQGluY2x1ZGUgbXEoKSB7XG4gICAgICBmb250LXNpemU6IHBjKDE4cHgpO1xuICAgIH1cbiAgfVxuICBib2R5IHtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItdGV4dCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZC1zdHJvbmcpO1xuICAgIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogdmFyKC0tZm9udC1mZWF0dXJlLXNldHRpbmdzKTtcbiAgICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLFxuICAgICAgICBBcmlhbCxcbiAgICAgICAgXCJIaXJhZ2lubyBLYWt1IEdvdGhpYyBQcm9OXCIsXG4gICAgICAgIFwiSGlyYWdpbm8gU2Fuc1wiLFxuICAgICAgICBcIk5vdG8gU2FucyBKUFwiLFxuICAgICAgICBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogdncoLS1mcy1tKTtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGU6IFxuICAgIFwiaGVhZGVyXCIgYXV0b1xuICAgIFwibWFpblwiIGF1dG9cbiAgICBcImZvb3RlclwiIDFmclxuICAgIC8gMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgICBAaW5jbHVkZSBtcSgpIHtcbiAgICAgIGZvbnQtc2l6ZTogcGMoLS1mcy1sKTtcbiAgICB9XG4gICAgJi5pcy1maXhlZCwgJi5maXhlZCB7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cbiAgfVxuXG4gIHN0cm9uZyB7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuICB9XG4gIGxhYmVsIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgYSB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAmW2hyZWZePVwidGVsOlwiXSB7XG4gICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgIEBpbmNsdWRlIG1xKCkge1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIH1cblxuICAgIH1cbiAgfVxuICBhYmJyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cbiAgYnV0dG9uIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBmb250OiBpbmhlcml0O1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gIH1cbiAgYnIge1xuICAgICYuc3Atb25seSB7XG4gICAgICBAaW5jbHVkZSBtcSgpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gICAgJi5wYy1vbmx5IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBAaW5jbHVkZSBtcSgpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICA6d2hlcmUoYnV0dG9uLCBbdHlwZT0nYnV0dG9uJ10sIFt0eXBlPSdyZXNldCddLCBbdHlwZT0nc3VibWl0J10pIHtcbiAgICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbiAgfVxuICA6d2hlcmUoXG4gICAgICA6YW55LWxpbmssXG4gICAgICBidXR0b24sXG4gICAgICBbdHlwZT0nYnV0dG9uJ10sXG4gICAgICBbdHlwZT0ncmVzZXQnXSxcbiAgICAgIFt0eXBlPSdzdWJtaXQnXSxcbiAgICAgIGxhYmVsW2Zvcl0sXG4gICAgICBzZWxlY3QsXG4gICAgICBzdW1tYXJ5LFxuICAgICAgW3JvbGU9J3RhYiddLFxuICAgICAgW3JvbGU9J2J1dHRvbiddXG4gICAgKSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG4gIDpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG4gIHN1cCxcbiAgc3ViIHtcbiAgICBoZWlnaHQ6IDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmb250LXNpemU6IDAuNzVlbTtcbiAgfVxuICBzdXAge1xuICAgIGJvdHRvbTogLjc1ZXg7XG4gIH1cbiAgc3ViIHtcbiAgICB0b3A6IC41ZXg7XG4gIH1cbiAgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gIH1cbiAgLnN2Z19kZWYge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgc3ZnIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbiAgcHJlIHtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gIH1cbiAgaHRtbC5sZW5pcyxcbiAgaHRtbC5sZW5pcyBib2R5IHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbiAgLmxlbmlzLmxlbmlzLXNtb290aCB7XG4gICAgc2Nyb2xsLWJlaGF2aW9yOiBhdXRvICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmxlbmlzLmxlbmlzLXNtb290aCBbZGF0YS1sZW5pcy1wcmV2ZW50XSB7XG4gICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjtcbiAgfVxuICAubGVuaXMubGVuaXMtc3RvcHBlZCB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuICAubGVuaXMubGVuaXMtc2Nyb2xsaW5nIGlmcmFtZSB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cbiAgaHRtbC5pcy1jaGFuZ2luZyAudHJhbnNpdGlvbi1mYWRlIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC41cztcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgaHRtbC5pcy1hbmltYXRpbmcgLnRyYW5zaXRpb24tZmFkZSB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuNXM7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICAuaGlkZGVuLXNwIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIEBpbmNsdWRlIG1xIHtcbiAgICAgIGRpc3BsYXk6IHVuc2V0O1xuICAgIH1cbiAgfVxuICAuaGlkZGVuLXBje1xuICAgIEBpbmNsdWRlIG1xIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG4gIC5oaWRkZW4tb3Zlci10Ymwge1xuICAgIEBpbmNsdWRlIG1xKHRibCkge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbiAgLmhpZGRlbi1vdmVyLXRiIHtcbiAgICBAaW5jbHVkZSBtcSh0Yikge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbiAgLmhpZGRlbi1vdmVyLXNwIHtcbiAgICBAaW5jbHVkZSBtcShzcCkge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAudmlzdWFsbHktaGlkZGVuIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgICB3aWR0aDogMXB4ICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAxcHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAtMXB4ICFpbXBvcnRhbnQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCkgIWltcG9ydGFudDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgbWFpbiB7XG4gICAgZ3JpZC1hcmVhOiBtYWluO1xuICB9XG4gIGhlYWRlciB7XG4gICAgcGFkZGluZy1ib3R0b206IHZ3KDYycHgpO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvaGVhZGVyX2JnLnN2Zyk7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IGJvdHRvbTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IHZ3KDI5NnB4KSBhdXRvO1xuICAgIEBpbmNsdWRlIG1xKCkge1xuICAgICAgcGFkZGluZy1ib3R0b206IHBjKDE5MXB4KTtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogcGMoOTM2cHgpIGF1dG87XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL2hlYWRlcl9iZ19wYy5zdmcpO1xuICAgIH1cbiAgfVxuICAjaGVybyB7XG4gICAgcGFkZGluZzogdncoMTZweCk7XG4gICAgQGluY2x1ZGUgbXEoKSB7XG4gICAgICBwYWRkaW5nOiB1bnNldDtcbiAgICAgIHBhZGRpbmctdG9wOiBwYygzMnB4KTtcbiAgICAgIHdpZHRoOiBwYygxMjE4cHgpO1xuICAgICAgbWFyZ2luLWlubGluZTogYXV0bztcbiAgICB9XG4gICAgLmlubmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvaGVyb19iZy53ZWJwKSBuby1yZXBlYXQgY2VudGVyIGNlbnRlciAvIGNvdmVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogdncoOHB4KTtcbiAgICAgIHBhZGRpbmc6IHZ3KDUwcHgpIHZ3KDE2cHgpIHZ3KDIwNnB4KTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIEBpbmNsdWRlIG1xKCkge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL2hlcm9fYmdfcGMud2VicCk7XG4gICAgICAgIHBhZGRpbmc6IHBjKDExMnB4KSBwYygzMnB4KSBwYyg5MnB4KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogcGMoMTZweCk7XG4gICAgICB9XG4gICAgICAuaGVyb18wMSB7XG4gICAgICAgIGltZyB7XG4gICAgICAgICAgd2lkdGg6IHZ3KDE1NnB4KTtcbiAgICAgICAgICBAaW5jbHVkZSBtcSgpIHtcbiAgICAgICAgICAgIHdpZHRoOiBwYyg1MzhweCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAuaGVyb18wMiB7XG4gICAgICAgIG1hcmdpbi10b3A6IHZ3KDI0cHgpO1xuICAgICAgICBAaW5jbHVkZSBtcSgpIHtcbiAgICAgICAgICBtYXJnaW4tdG9wOiBwYygyNHB4KTtcbiAgICAgICAgfVxuICAgICAgICBpbWcge1xuICAgICAgICAgIHdpZHRoOiB2dygzMTJweCk7XG4gICAgICAgICAgQGluY2x1ZGUgbXEoKSB7XG4gICAgICAgICAgICB3aWR0aDogcGMoNzUwcHgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaDEge1xuICAgICAgICBtYXJnaW4tdG9wOiB2dygyOHB4KTtcbiAgICAgICAgZm9udC1zaXplOiB2dygxMy41cHgpO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI7XG4gICAgICAgIEBpbmNsdWRlIG1xKCkge1xuICAgICAgICAgIG1hcmdpbi10b3A6IHBjKDkwcHgpO1xuICAgICAgICAgIGZvbnQtc2l6ZTogcGMoMTYuNXB4KTtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMjtcbiAgICAgICAgfVxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1icmFuZCk7XG4gICAgICAgICAgcGFkZGluZzogdncoMnB4KSB2dyg0cHgpO1xuICAgICAgICAgIEBpbmNsdWRlIG1xKCkge1xuICAgICAgICAgICAgcGFkZGluZzogcGMoMnB4KSBwYyg0cHgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLmJhZGdlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdncoMTNweCk7XG4gICAgICAgIEBpbmNsdWRlIG1xKCkge1xuICAgICAgICAgIG1hcmdpbi10b3A6IHBjKDI0cHgpO1xuICAgICAgICB9XG4gICAgICAgIGltZyB7XG4gICAgICAgICAgd2lkdGg6IHZ3KDEzNHB4KTtcbiAgICAgICAgICBAaW5jbHVkZSBtcSgpIHtcbiAgICAgICAgICAgIHdpZHRoOiBwYygxNzhweCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAuYmFubmVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICAgIC5pY29ucyB7XG4gICAgICAgIGltZyB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICYucGMge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1xKCkge1xuICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgJi5pY29uXzAxIHtcbiAgICAgICAgICAgIHdpZHRoOiB2dyg0MnB4KTtcbiAgICAgICAgICAgIGJvdHRvbTogdncoNzFweCk7XG4gICAgICAgICAgICBsZWZ0OiB2dyg4N3B4KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1xKCkge1xuICAgICAgICAgICAgICB3aWR0aDogcGMoNTBweCk7XG4gICAgICAgICAgICAgIGJvdHRvbTogcGMoMzlweCk7XG4gICAgICAgICAgICAgIGxlZnQ6IHBjKDM3M3B4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgJi5pY29uXzAyIHtcbiAgICAgICAgICAgIHdpZHRoOiB2dygyNXB4KTtcbiAgICAgICAgICAgIGJvdHRvbTogdncoMTMwcHgpO1xuICAgICAgICAgICAgcmlnaHQ6IHZ3KDY1cHgpO1xuICAgICAgICAgICAgQGluY2x1ZGUgbXEoKSB7XG4gICAgICAgICAgICAgIHdpZHRoOiBwYyg0MHB4KTtcbiAgICAgICAgICAgICAgYm90dG9tOiBwYyg1N3B4KTtcbiAgICAgICAgICAgICAgcmlnaHQ6IHBjKDMwNnB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgJi5pY29uXzAzIHtcbiAgICAgICAgICAgIHdpZHRoOiB2dygxN3B4KTtcbiAgICAgICAgICAgIGJvdHRvbTogdncoMTg4cHgpO1xuICAgICAgICAgICAgbGVmdDogdncoMzdweCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBtcSgpIHtcbiAgICAgICAgICAgICAgd2lkdGg6IHBjKDI3cHgpO1xuICAgICAgICAgICAgICBib3R0b206IHBjKDExNnB4KTtcbiAgICAgICAgICAgICAgbGVmdDogcGMoMTM0cHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAmLmljb25fMDQge1xuICAgICAgICAgICAgd2lkdGg6IHZ3KDExcHgpO1xuICAgICAgICAgICAgYm90dG9tOiB2dygyMjZweCk7XG4gICAgICAgICAgICByaWdodDogdncoMTdweCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBtcSgpIHtcbiAgICAgICAgICAgICAgd2lkdGg6IHBjKDI1cHgpO1xuICAgICAgICAgICAgICBib3R0b206IHBjKDE1OHB4KTtcbiAgICAgICAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgIGxlZnQ6IHBjKDI3N3B4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgJi5pY29uXzA1IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1xKCkge1xuICAgICAgICAgICAgICB3aWR0aDogcGMoMjBweCk7XG4gICAgICAgICAgICAgIGJvdHRvbTogcGMoMTc5cHgpO1xuICAgICAgICAgICAgICByaWdodDogcGMoNDFweCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgICYuaWNvbl8wNiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtcSgpIHtcbiAgICAgICAgICAgICAgd2lkdGg6IHBjKDIwcHgpO1xuICAgICAgICAgICAgICBib3R0b206IHBjKDE5OXB4KTtcbiAgICAgICAgICAgICAgcmlnaHQ6IHBjKDE5NXB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgJi5pY29uXzA3IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1xKCkge1xuICAgICAgICAgICAgICB3aWR0aDogcGMoMThweCk7XG4gICAgICAgICAgICAgIGJvdHRvbTogcGMoMjQxcHgpO1xuICAgICAgICAgICAgICByaWdodDogcGMoMzIzcHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAmLmljb25fMDgge1xuICAgICAgICAgICAgQGluY2x1ZGUgbXEoKSB7XG4gICAgICAgICAgICAgIHdpZHRoOiBwYygxNXB4KTtcbiAgICAgICAgICAgICAgYm90dG9tOiBwYygyNjZweCk7XG4gICAgICAgICAgICAgIGxlZnQ6IHBjKDc0cHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAmLmljb25fMDkge1xuICAgICAgICAgICAgQGluY2x1ZGUgbXEoKSB7XG4gICAgICAgICAgICAgIHdpZHRoOiBwYygxMnB4KTtcbiAgICAgICAgICAgICAgYm90dG9tOiBwYygyOTFweCk7XG4gICAgICAgICAgICAgIHJpZ2h0OiBwYyg5MHB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgI29uZXN0b3Age1xuICAgIG1hcmdpbi10b3A6IHZ3KDY2cHgpO1xuICAgIHBhZGRpbmctaW5saW5lOiB2dygxNnB4KTtcbiAgICBAaW5jbHVkZSBtcSgpIHtcbiAgICAgIG1hcmdpbi10b3A6IHBjKDEyMHB4KTtcbiAgICAgIHBhZGRpbmctaW5saW5lOiB1bnNldDtcbiAgICAgIHdpZHRoOiBwYygxMDQwcHgpO1xuICAgICAgbWFyZ2luLWlubGluZTogYXV0bztcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBncmlkLXRlbXBsYXRlOiBcbiAgICAgIFwiaW1hZ2UgdGV4dFwiIGF1dG9cbiAgICAgIC8gcGMoNTUwcHgpIDFmcjtcbiAgICAgIGdhcDogcGMoNTZweCk7XG4gICAgfVxuICAgIC50ZXh0IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiB2dyg2MnB4KTtcbiAgICAgIEBpbmNsdWRlIG1xKCkge1xuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogdW5zZXQ7XG4gICAgICAgIGdyaWQtYXJlYTogdGV4dDtcbiAgICAgICAgYWxpZ24tc2VsZjogc2VsZi1lbmQ7XG4gICAgICB9XG4gICAgICAuY2hhcmFjdGVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHJpZ2h0OiB2dyg0cHgpO1xuICAgICAgICBAaW5jbHVkZSBtcSgpIHtcbiAgICAgICAgICBib3R0b206IHVuc2V0O1xuICAgICAgICAgIHRvcDogcGMoMjZweCk7XG4gICAgICAgICAgcmlnaHQ6IHBjKDIwcHgpO1xuICAgICAgICB9XG4gICAgICAgIGltZyB7XG4gICAgICAgICAgd2lkdGg6IHZ3KDY0cHgpO1xuICAgICAgICAgIEBpbmNsdWRlIG1xKCkge1xuICAgICAgICAgICAgd2lkdGg6IHBjKDYycHgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaDIge1xuICAgICAgICBpbWcge1xuICAgICAgICAgIHdpZHRoOiB2dygzMTRweCk7XG4gICAgICAgICAgQGluY2x1ZGUgbXEoKSB7XG4gICAgICAgICAgICB3aWR0aDogcGMoNDA4cHgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcCB7XG4gICAgICAgIG1hcmdpbi10b3A6IHZ3KDE0cHgpO1xuICAgICAgICBmb250LXNpemU6IHZ3KDE2cHgpO1xuICAgICAgICBsaW5lLWhlaWdodDogMS44O1xuICAgICAgICBAaW5jbHVkZSBtcSgpIHtcbiAgICAgICAgICBtYXJnaW4tdG9wOiBwYygxNHB4KTtcbiAgICAgICAgICBmb250LXNpemU6IHBjKDE4cHgpO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjg7XG4gICAgICAgIH1cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgZm9udC1zaXplOiB2dygxMnB4KTtcbiAgICAgICAgICBAaW5jbHVkZSBtcSgpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcGMoMTRweCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC5pbWFnZSB7XG4gICAgICBtYXJnaW4tdG9wOiB2dygtMjJweCk7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgQGluY2x1ZGUgbXEoKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IHVuc2V0O1xuICAgICAgICBncmlkLWFyZWE6IGltYWdlO1xuICAgICAgfVxuICAgICAgaW1nIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdncoOHB4KTtcbiAgICAgICAgQGluY2x1ZGUgbXEoKSB7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogcGMoMTZweCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgI3dvcnJpZXMge1xuICAgIHBhZGRpbmc6IHZ3KDU2cHgpIHZ3KDE2cHgpIHZ3KDQycHgpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXNlY29uZGFyeSk7XG4gICAgYm9yZGVyLXJhZGl1czogdncoMjRweCkgMCAwIDA7XG4gICAgbWFyZ2luLXRvcDogdncoLTEycHgpO1xuICAgIGJveC1zaGFkb3c6IC03MzdweCAxOTJweCAyMTNweCAwIHJnYmEoMCwgMCwgMCwgMC4wMCksIC00NzJweCAxMjNweCAxOTVweCAwIHJnYmEoMCwgMCwgMCwgMC4wMSksIC0yNjVweCA2OXB4IDE2NXB4IDAgcmdiYSgwLCAwLCAwLCAwLjAzKSwgLTExOHB4IDMxcHggMTIycHggMCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICAgIEBpbmNsdWRlIG1xKCkge1xuICAgICAgcGFkZGluZzogcGMoODBweCkgMCBwYyg2NHB4KTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IHBjKDQ4cHgpIDAgMCAwO1xuICAgICAgbWFyZ2luLXRvcDogcGNtYXgoLTQ4cHgpO1xuICAgIH1cbiAgICBoMSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBpbWcge1xuICAgICAgICB3aWR0aDogdncoMzM2cHgpO1xuICAgICAgICBAaW5jbHVkZSBtcSgpIHtcbiAgICAgICAgICB3aWR0aDogcGMoNTQzcHgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHVsIHtcbiAgICAgIG1hcmdpbi10b3A6IHZ3KDI0cHgpO1xuICAgICAgQGluY2x1ZGUgbXEoKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IHBjKDM4cHgpO1xuICAgICAgICB3aWR0aDogcGMoMTA0MHB4KTtcbiAgICAgICAgbWFyZ2luLWlubGluZTogYXV0bztcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTtcbiAgICAgICAgZ2FwOiBwYygyNHB4KTtcbiAgICAgIH1cbiAgICB9XG4gICAgbGkge1xuICAgICAgd2lkdGg6IHZ3KDIwMHB4KTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgICBAaW5jbHVkZSBtcSgpIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICB9XG4gICAgICAmOm50aC1jaGlsZCgybikge1xuICAgICAgICBtYXJnaW4tdG9wOiB2dygtMTMwcHgpO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgQGluY2x1ZGUgbXEoKSB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogdW5zZXQ7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IHVuc2V0O1xuICAgICAgICAgIHotaW5kZXg6IHVuc2V0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmOm50aC1jaGlsZCgzbikge1xuICAgICAgICBtYXJnaW4tdG9wOiB2dygtODJweCk7XG4gICAgICAgIEBpbmNsdWRlIG1xKCkge1xuICAgICAgICAgIG1hcmdpbi10b3A6IHVuc2V0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmOm50aC1jaGlsZCg0bikge1xuICAgICAgICBtYXJnaW4tdG9wOiB2dygtMTMwcHgpO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgQGluY2x1ZGUgbXEoKSB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogdW5zZXQ7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IHVuc2V0O1xuICAgICAgICAgIHotaW5kZXg6IHVuc2V0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBoMiB7XG4gICAgICAgIGltZyB7XG4gICAgICAgICAgZmlsdGVyOiBkcm9wLXNoYWRvdygxcHggMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMDYpKSBkcm9wLXNoYWRvdygzcHggNXB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMDUpKSBkcm9wLXNoYWRvdyg2cHggMTJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjAzKSkgZHJvcC1zaGFkb3coMTBweCAyMnB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjAxKSk7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHAge1xuICAgICAgICBtYXJnaW4tdG9wOiB2dygyMHB4KTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIEBpbmNsdWRlIG1xKCkge1xuICAgICAgICAgIG1hcmdpbi10b3A6IHBjKDI0cHgpO1xuICAgICAgICB9XG4gICAgICAgICYucV9zcCB7XG4gICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiB2dygyM3B4KTtcbiAgICAgICAgICAgIGhlaWdodDogdncoMzFweCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IHZ3KC0xNnB4KTtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zbGF0ZTogdncoLTUwcHgpIDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL3F1ZXN0aW9uLnN2Zyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgICAgICAgICByb3RhdGU6IHogLTE5ZGVnO1xuICAgICAgICAgICAgQGluY2x1ZGUgbXEoKSB7XG4gICAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICAgIHJpZ2h0OiA1MCU7XG4gICAgICAgICAgICAgIHdpZHRoOiBwYygyOHB4KTtcbiAgICAgICAgICAgICAgaGVpZ2h0OiBwYygzOHB4KTtcbiAgICAgICAgICAgICAgdG9wOiBwYygtMTZweCk7XG4gICAgICAgICAgICAgIHJvdGF0ZTogeiAxOWRlZztcbiAgICAgICAgICAgICAgdHJhbnNsYXRlOiBwYyg2MHB4KSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAmLnJpZ2h0IHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgICAgcmlnaHQ6IDUwJTtcbiAgICAgICAgICAgICAgdHJhbnNsYXRlOiB2dyg1MHB4KSAwO1xuICAgICAgICAgICAgICByb3RhdGU6IHogMTlkZWc7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIG1xKCkge1xuICAgICAgICAgICAgICAgIHRyYW5zbGF0ZTogcGMoNjBweCkgMDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpbWcge1xuICAgICAgICAgIHdpZHRoOiB2dyg1MHB4KTtcbiAgICAgICAgICBAaW5jbHVkZSBtcSgpIHtcbiAgICAgICAgICAgIHdpZHRoOiBwYyg2MHB4KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgI3N1cHBvcnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJyYW5kKTtcbiAgICBwYWRkaW5nOiB2dyg2MnB4KSB2dygxNnB4KSB2dygxMDBweCk7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwIHZ3KDI0cHgpIDA7XG4gICAgQGluY2x1ZGUgbXEoKSB7XG4gICAgICBwYWRkaW5nOiBwYygxMjRweCkgMCBwYygxMTRweCk7XG4gICAgICBib3JkZXItcmFkaXVzOiAwIDAgcGMoNDhweCkgMDtcbiAgICB9XG4gICAgaDEge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgaW1nIHtcbiAgICAgICAgd2lkdGg6IHZ3KDI4MHB4KTtcbiAgICAgICAgQGluY2x1ZGUgbXEoKSB7XG4gICAgICAgICAgd2lkdGg6IHBjKDc5MXB4KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAuaW5uZXIge1xuICAgICAgbWFyZ2luLXRvcDogdncoMzZweCk7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMSwgMWZyKTtcbiAgICAgIGdhcDogdncoMjRweCk7XG4gICAgICBAaW5jbHVkZSBtcSgpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogcGMoNjJweCk7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG4gICAgICAgIGdhcDogcGMoMjRweCk7XG4gICAgICAgIHdpZHRoOiBwYygxMDQwcHgpO1xuICAgICAgICBtYXJnaW4taW5saW5lOiBhdXRvO1xuICAgICAgfVxuICAgICAgLnVuaXQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxLCAxZnIpO1xuICAgICAgICBnYXA6IHZ3KDI0cHgpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgICBwYWRkaW5nOiB2dygyNHB4KSB2dygyNHB4KSB2dygzMnB4KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdncoOHB4KTtcbiAgICAgICAgYm94LXNoYWRvdzogMjZweCAxNjNweCA0NnB4IDAgcmdiYSgwLCAwLCAwLCAwLjAwKSwgMTZweCAxMDRweCA0MnB4IDAgcmdiYSgwLCAwLCAwLCAwLjAxKSwgOXB4IDU5cHggMzZweCAwIHJnYmEoMCwgMCwgMCwgMC4wNSksIDRweCAyNnB4IDI2cHggMCByZ2JhKDAsIDAsIDAsIDAuMDkpLCAxcHggN3B4IDE1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTApO1xuICAgICAgICBAaW5jbHVkZSBtcSgpIHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IHN1YmdyaWQ7XG4gICAgICAgICAgZ3JpZC1yb3c6IHNwYW4gMztcbiAgICAgICAgICBnYXA6IHBjKDI0cHgpO1xuICAgICAgICAgIHBhZGRpbmc6IHBjKDI0cHgpIHBjKDI0cHgpIHBjKDMycHgpO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHBjKDE2cHgpO1xuICAgICAgICB9XG4gICAgICAgIC50aXRsZSB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgIC5udW0ge1xuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgd2lkdGg6IHZ3KDQycHgpO1xuICAgICAgICAgICAgICBAaW5jbHVkZSBtcSgpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogcGMoNDJweCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaDIge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogdncoMTJweCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBtcSgpIHtcbiAgICAgICAgICAgICAgbWFyZ2luLXRvcDogcGMoMTJweCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICBoZWlnaHQ6IHZ3KDI0cHgpO1xuICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgQGluY2x1ZGUgbXEoKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBwYygyNHB4KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICB9XG4gICAgICAgIC5kZXNjIHtcbiAgICAgICAgICBmb250LXNpemU6IHZ3KDE0cHgpO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjg7XG4gICAgICAgICAgQGluY2x1ZGUgbXEoKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IHBjKDE0cHgpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuODtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgI29uZXN0b3BzZXJ2aWNlIHtcbiAgICBwYWRkaW5nOiB2dyg2MnB4KSB2dygxNnB4KSAwO1xuICAgIEBpbmNsdWRlIG1xKCkge1xuICAgICAgcGFkZGluZzogcGMoOTBweCkgMCAwO1xuICAgICAgd2lkdGg6IHBjKDEwNDBweCk7XG4gICAgICBtYXJnaW4taW5saW5lOiBhdXRvO1xuICAgIH1cbiAgICBoMSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBpbWcge1xuICAgICAgICB3aWR0aDogdncoMzM2cHgpO1xuICAgICAgICBAaW5jbHVkZSBtcSgpIHtcbiAgICAgICAgICB3aWR0aDogcGMoNTk0cHgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC5pbm5lciB7XG4gICAgICBtYXJnaW4tdG9wOiB2dygzMnB4KTtcbiAgICAgIEBpbmNsdWRlIG1xKCkge1xuICAgICAgICBtYXJnaW4tdG9wOiBwYyg2MnB4KTtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZTogXG4gICAgICAgIFwidGV4dCBpbWFnZVwiIGF1dG9cbiAgICAgICAgLyAxZnIgcGMoNTUwcHgpO1xuICAgICAgICBnYXA6IHBjKDY0cHgpO1xuICAgICAgfVxuICAgICAgLmltYWdlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBAaW5jbHVkZSBtcSgpIHtcbiAgICAgICAgICBncmlkLWFyZWE6IGltYWdlO1xuICAgICAgICB9XG4gICAgICAgIGltZyB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIH1cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIHdpZHRoOiB2dyg0NHB4KTtcbiAgICAgICAgICBoZWlnaHQ6IHZ3KDUxcHgpO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL2NoYXJhY3Rlcl8wMS5zdmcpO1xuICAgICAgICAgIEBpbmNsdWRlIG1xKCkge1xuICAgICAgICAgICAgd2lkdGg6IHBjKDcycHgpO1xuICAgICAgICAgICAgaGVpZ2h0OiBwYyg4NHB4KTtcbiAgICAgICAgICAgIHRvcDogcGNtYXgoLTU4cHgpO1xuICAgICAgICAgICAgcmlnaHQ6IHBjKDMwcHgpO1xuICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgfVxuICAgICAgLnRleHQge1xuICAgICAgICBwYWRkaW5nLWlubGluZTogdncoMTJweCk7XG4gICAgICAgIG1hcmdpbi10b3A6IHZ3KDMycHgpO1xuICAgICAgICBAaW5jbHVkZSBtcSgpIHtcbiAgICAgICAgICBwYWRkaW5nLWlubGluZTogdW5zZXQ7XG4gICAgICAgICAgbWFyZ2luLXRvcDogdW5zZXQ7XG4gICAgICAgICAgZ3JpZC1hcmVhOiB0ZXh0O1xuICAgICAgICB9XG4gICAgICAgIGgyIHtcbiAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgd2lkdGg6IHZ3KDIzOHB4KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1xKCkge1xuICAgICAgICAgICAgICB3aWR0aDogcGMoMjkxcHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBwIHtcbiAgICAgICAgICBtYXJnaW4tdG9wOiB2dygzMHB4KTtcbiAgICAgICAgICBmb250LXNpemU6IHZ3KDE2cHgpO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjg7XG4gICAgICAgICAgQGluY2x1ZGUgbXEoKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiBwYygzMnB4KTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcGMoMThweCk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS44O1xuICAgICAgICAgIH1cbiAgICAgICAgICBzdHJvbmcge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1icmFuZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGZpZ3VyZSB7XG4gICAgICBtYXJnaW4tdG9wOiB2dygzMnB4KTtcbiAgICAgIEBpbmNsdWRlIG1xKCkge1xuICAgICAgICBtYXJnaW4tdG9wOiBwYyg3MnB4KTtcbiAgICAgIH1cbiAgICAgIGltZyB7XG4gICAgICAgIGZpbHRlcjpcbiAgICAgICAgICBkcm9wLXNoYWRvdygwIDUzLjQwNnB4IDE0Ljk1NHB4IHJnYmEoMCwgMCwgMCwgMC4wMCkpXG4gICAgICAgICAgZHJvcC1zaGFkb3coMCAzNC4xOHB4IDEzLjUyOXB4IHJnYmEoMCwgMCwgMCwgMC4wMSkpXG4gICAgICAgICAgZHJvcC1zaGFkb3coMCAxOS4yMjZweCAxMS4zOTNweCByZ2JhKDAsIDAsIDAsIDAuMDUpKVxuICAgICAgICAgIGRyb3Atc2hhZG93KDAgOC41NDVweCA4LjU0NXB4IHJnYmEoMCwgMCwgMCwgMC4wOSkpXG4gICAgICAgICAgZHJvcC1zaGFkb3coMCAyLjEzNnB4IDQuOTg1cHggcmdiYSgwLCAwLCAwLCAwLjEwKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gICNsaXN0ZWRjb21wYW55IHtcbiAgICBtYXJnaW4tdG9wOiB2dyg2OHB4KTtcbiAgICBwYWRkaW5nLWlubGluZTogdncoMTZweCk7XG4gICAgQGluY2x1ZGUgbXEoKSB7XG4gICAgICBtYXJnaW4tdG9wOiBwYygxMjJweCk7XG4gICAgICBwYWRkaW5nLWlubGluZTogdW5zZXQ7XG4gICAgfVxuICAgIC5pbm5lciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1zZWNvbmRhcnkpO1xuICAgICAgcGFkZGluZzogdncoOHB4KTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IHZ3KDhweCk7XG4gICAgICBAaW5jbHVkZSBtcSgpIHtcbiAgICAgICAgcGFkZGluZzogcGMoNzBweCkgcGMoNjJweCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHBjKDE2cHgpO1xuICAgICAgICB3aWR0aDogcGMoMTE2MHB4KTtcbiAgICAgICAgbWFyZ2luLWlubGluZTogYXV0bztcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZTogXG4gICAgICAgIFwiaW1hZ2UgdGV4dFwiIGF1dG9cbiAgICAgICAgLyBwYyg0MjBweCkgMWZyO1xuICAgICAgICBnYXA6IHBjKDcycHgpO1xuICAgICAgfVxuICAgICAgLnRleHQge1xuICAgICAgICBtYXJnaW4tdG9wOiB2dygxMnB4KTtcbiAgICAgICAgcGFkZGluZzogdncoMTZweCk7XG4gICAgICAgIEBpbmNsdWRlIG1xKCkge1xuICAgICAgICAgIG1hcmdpbi10b3A6IHVuc2V0O1xuICAgICAgICAgIHBhZGRpbmc6IHVuc2V0O1xuICAgICAgICAgIGdyaWQtYXJlYTogdGV4dDtcbiAgICAgICAgfVxuICAgICAgICBoMSB7XG4gICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIHdpZHRoOiB2dygyMTBweCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBtcSgpIHtcbiAgICAgICAgICAgICAgd2lkdGg6IHBjKDI0MHB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcCB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogdncoMjRweCk7XG4gICAgICAgICAgZm9udC1zaXplOiB2dygxNnB4KTtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMS44O1xuICAgICAgICAgIEBpbmNsdWRlIG1xKCkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcGMoMzJweCk7XG4gICAgICAgICAgICBmb250LXNpemU6IHBjKDE2cHgpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuODtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgI2Zsb3cge1xuICAgIG1hcmdpbi10b3A6IHZ3KDY4cHgpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJyYW5kKTtcbiAgICBwYWRkaW5nOiB2dyg2MnB4KSB2dygxNnB4KTtcbiAgICBAaW5jbHVkZSBtcSgpIHtcbiAgICAgIG1hcmdpbi10b3A6IHBjKDEwMHB4KTtcbiAgICAgIHBhZGRpbmc6IHBjKDEwMHB4KSAwO1xuICAgIH1cbiAgICBoMSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBpbWcge1xuICAgICAgICB3aWR0aDogdncoMjQ2cHgpO1xuICAgICAgICBAaW5jbHVkZSBtcSgpIHtcbiAgICAgICAgICB3aWR0aDogcGMoMzkycHgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC5sZWFkIHtcbiAgICAgIG1hcmdpbi10b3A6IHZ3KDMwcHgpO1xuICAgICAgZm9udC1zaXplOiB2dygxNnB4KTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICBAaW5jbHVkZSBtcSgpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogcGMoMzJweCk7XG4gICAgICAgIGZvbnQtc2l6ZTogcGMoMThweCk7XG4gICAgICB9XG4gICAgfVxuICAgIC5pbm5lciB7XG4gICAgICBtYXJnaW4tdG9wOiB2dygzMnB4KTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICBwYWRkaW5nOiB2dygzMnB4KSB2dygyNHB4KTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IHZ3KDhweCk7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMSwgMWZyKTtcbiAgICAgIGdhcDogdncoMjRweCk7XG4gICAgICBAaW5jbHVkZSBtcSgpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogcGMoNTZweCk7XG4gICAgICAgIHBhZGRpbmc6IHBjKDQ4cHgpIHBjKDY0cHgpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiBwYygxNnB4KTtcbiAgICAgICAgd2lkdGg6IHBjKDEwNDBweCk7XG4gICAgICAgIG1hcmdpbi1pbmxpbmU6IGF1dG87XG4gICAgICAgIGdhcDogcGMoMjRweCk7XG4gICAgICB9XG4gICAgICAudW5pdCB7XG4gICAgICAgIEBpbmNsdWRlIG1xKCkge1xuICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZTogXG4gICAgICAgICAgXCJpbWFnZSB0ZXh0XCIgYXV0b1xuICAgICAgICAgIFwibGluZSBsaW5lXCIgYXV0b1xuICAgICAgICAgIC8gcGMoMjM2cHgpIDFmcjtcbiAgICAgICAgICBnYXA6IHBjKDMycHgpO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiB2dygyNHB4KTtcbiAgICAgICAgICAgIGFzcGVjdC1yYXRpbzogMzEyIC8gMjg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL2Zsb3dfYmcuc3ZnKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICBAaW5jbHVkZSBtcSgpIHtcbiAgICAgICAgICAgICAgZ3JpZC1hcmVhOiBsaW5lO1xuICAgICAgICAgICAgICBtYXJnaW4tdG9wOiB1bnNldDtcbiAgICAgICAgICAgICAgYXNwZWN0LXJhdGlvOiA5MTAgLyAyODtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9mbG93X2JnX3BjLnN2Zyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5pbWFnZSB7XG4gICAgICAgICAgQGluY2x1ZGUgbXEoKSB7XG4gICAgICAgICAgICBncmlkLWFyZWE6IGltYWdlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAudGV4dCB7XG4gICAgICAgICAgQGluY2x1ZGUgbXEoKSB7XG4gICAgICAgICAgICBncmlkLWFyZWE6IHRleHQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIGgyIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHZ3KDMycHgpO1xuICAgICAgICAgICAgQGluY2x1ZGUgbXEoKSB7XG4gICAgICAgICAgICAgIG1hcmdpbi10b3A6IHVuc2V0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgaGVpZ2h0OiB2dygyNXB4KTtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgbXEoKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBwYygzMnB4KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBwIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHZ3KDE2cHgpO1xuICAgICAgICAgICAgZm9udC1zaXplOiB2dygxNnB4KTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjg7XG4gICAgICAgICAgICBAaW5jbHVkZSBtcSgpIHtcbiAgICAgICAgICAgICAgbWFyZ2luLXRvcDogcGMoMTZweCk7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogcGMoMTZweCk7XG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICB9XG4gIH1cbiAgI2FmdGVyc3VwcG9ydCB7XG4gICAgbWFyZ2luLXRvcDogdncoNjhweCk7XG4gICAgQGluY2x1ZGUgbXEoKSB7XG4gICAgICBtYXJnaW4tdG9wOiBwYygxMjJweCk7XG4gICAgfVxuICAgIC50aXRsZSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBpbWcge1xuICAgICAgICB3aWR0aDogdncoMjg2cHgpO1xuICAgICAgICBAaW5jbHVkZSBtcSgpIHtcbiAgICAgICAgICB3aWR0aDogcGMoNDk1cHgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC5sZWFkIHtcbiAgICAgIG1hcmdpbi10b3A6IHZ3KDQycHgpO1xuICAgICAgZm9udC1zaXplOiB2dygxNnB4KTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgQGluY2x1ZGUgbXEoKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IHBjKDMwcHgpO1xuICAgICAgICBmb250LXNpemU6IHBjKDE4cHgpO1xuICAgICAgfVxuICAgIH1cbiAgICAuc3Age1xuICAgICAgbWFyZ2luLXRvcDogdncoMjhweCk7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgaGVpZ2h0OiB2dyg1OTdweCk7XG4gICAgICBAaW5jbHVkZSBtcSgpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICAgIC5pbWFnZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgJi5maWd1cmVfMDEge1xuICAgICAgICAgIHRvcDogdncoNzNweCk7XG4gICAgICAgICAgbGVmdDogdncoMTVweCk7XG4gICAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgd2lkdGg6IHZ3KDIxMHB4KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi5maWd1cmVfMDIge1xuICAgICAgICAgIHRvcDogdncoMzA2cHgpO1xuICAgICAgICAgIGxlZnQ6IHZ3KDE2NXB4KTtcbiAgICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICB3aWR0aDogdncoMjEwcHgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLmZpZ3VyZV8wMyB7XG4gICAgICAgICAgdG9wOiB2dygyMnB4KTtcbiAgICAgICAgICByaWdodDogdncoLTE0cHgpO1xuICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICB3aWR0aDogdncoMTkzcHgpO1xuICAgICAgICAgICAgb3BhY2l0eTogLjk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYuZmlndXJlXzA0IHtcbiAgICAgICAgICBib3R0b206IHZ3KDQ2cHgpO1xuICAgICAgICAgIGxlZnQ6IHZ3KC0yN3B4KTtcbiAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgd2lkdGg6IHZ3KDIyNXB4KTtcbiAgICAgICAgICAgIG9wYWNpdHk6IC45O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLmZpZ3VyZV8wNSB7XG4gICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgIHJpZ2h0OiB2dygxMnB4KTtcbiAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgd2lkdGg6IHZ3KDEwOHB4KTtcbiAgICAgICAgICAgIG9wYWNpdHk6IC44O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLmZpZ3VyZV8wNiB7XG4gICAgICAgICAgdG9wOiB2dygyMDNweCk7XG4gICAgICAgICAgbGVmdDogdncoMTIxcHgpO1xuICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICB3aWR0aDogdncoMTYxcHgpO1xuICAgICAgICAgICAgb3BhY2l0eTogLjg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYuZmlndXJlXzA4IHtcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgbGVmdDogdncoLTExcHgpO1xuICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICB3aWR0aDogdncoMTE4cHgpO1xuICAgICAgICAgICAgb3BhY2l0eTogLjg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC5zY3JvbGwtd3JhcHBlciB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgQGluY2x1ZGUgbXEoKSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBtYXJnaW4tdG9wOiBwYyg2NHB4KTtcbiAgICAgIH1cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIC5jb250YWluZXIge1xuICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBsb29wIDYwcyAtMzBzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogbG9vcDIgNjBzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLmNvbnRhaW5lciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGdhcDogcGMoMzJweCk7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IHBjKDMycHgpO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgYW5pbWF0aW9uOiBsb29wIDgwcyAtNDBzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgICAgfVxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgIGFuaW1hdGlvbjogbG9vcDIgODBzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgICAgfVxuICAgICAgICAud3JhcCB7XG4gICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgd2lkdGg6IHBjKDMyNHB4KTtcbiAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgQGtleWZyYW1lcyBsb29wIHtcbiAgICAgIDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xuICAgICAgfVxuICAgICAgdG8ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICAgICAgfVxuICAgIH1cbiAgICBAa2V5ZnJhbWVzIGxvb3AyIHtcbiAgICAgIDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgICAgfVxuICAgICAgdG8ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwMCUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAjY29udGFjdCB7XG4gICAgbWFyZ2luLXRvcDogdncoNDZweCk7XG4gICAgcGFkZGluZzogdncoMTZweCk7XG4gICAgQGluY2x1ZGUgbXEoKSB7XG4gICAgICBtYXJnaW4tdG9wOiBwYyg4MHB4KTtcbiAgICAgIHBhZGRpbmc6IHVuc2V0O1xuICAgIH1cbiAgICAuaW5uZXIge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgYm9yZGVyLXJhZGl1czogdncoMTZweCk7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1icmFuZCk7XG4gICAgICBiYWNrZ3JvdW5kOiAjRkZGNEY0O1xuICAgICAgYm94LXNoYWRvdzogMCA3NXB4IDIxcHggMCByZ2JhKDAsIDAsIDAsIDAuMDApLCAwIDQ4cHggMTlweCAwIHJnYmEoMCwgMCwgMCwgMC4wMSksIDAgMjdweCAxNnB4IDAgcmdiYSgwLCAwLCAwLCAwLjA1KSwgMCAxMnB4IDEycHggMCByZ2JhKDAsIDAsIDAsIDAuMDkpLCAwIDNweCA3cHggMCByZ2JhKDAsIDAsIDAsIDAuMTApO1xuICAgICAgcGFkZGluZzogdncoMzZweCkgdncoMzJweCk7XG4gICAgICBAaW5jbHVkZSBtcSgpIHtcbiAgICAgICAgcGFkZGluZzogcGMoNTZweCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHBjKDE2cHgpO1xuICAgICAgICB3aWR0aDogcGMoODUycHgpO1xuICAgICAgICBtYXJnaW4taW5saW5lOiBhdXRvO1xuICAgICAgfVxuICAgICAgaDEge1xuICAgICAgICBpbWcge1xuICAgICAgICAgIHdpZHRoOiB2dygyMzFweCk7XG4gICAgICAgICAgQGluY2x1ZGUgbXEoKSB7XG4gICAgICAgICAgICB3aWR0aDogcGMoMzY0cHgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLmxlYWQge1xuICAgICAgICBtYXJnaW4tdG9wOiB2dygxNnB4KTtcbiAgICAgICAgZm9udC1zaXplOiB2dygxNnB4KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuODtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgQGluY2x1ZGUgbXEoKSB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogcGMoMjJweCk7XG4gICAgICAgICAgZm9udC1zaXplOiBwYygxOHB4KTtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMS44O1xuICAgICAgICB9XG4gICAgICAgIGJyIHtcbiAgICAgICAgICBAaW5jbHVkZSBtcSgpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAuYnRuIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICAgICAgcGFkZGluZzogdncoMTJweCkgdncoMTVweCkgdncoMTJweCkgdncoMThweCk7XG4gICAgICAgIG1hcmdpbi10b3A6IHZ3KDM2cHgpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2dyg4cHgpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1icmFuZCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICNGRkY7XG4gICAgICAgIGJveC1zaGFkb3c6IHZ3KDMuMnB4KSB2dygzLjJweCkgMCAwIHZhcigtLWNvbG9yLWJyYW5kKTtcbiAgICAgICAgQGluY2x1ZGUgbXEoKSB7XG4gICAgICAgICAgcGFkZGluZzogcGMoMTZweCkgcGMoMjRweCk7XG4gICAgICAgICAgbWFyZ2luLXRvcDogcGMoNDJweCk7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogcGMoOHB4KTtcbiAgICAgICAgICBib3gtc2hhZG93OiBwYyg0cHgpIHBjKDRweCkgMCAwIHZhcigtLWNvbG9yLWJyYW5kKTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xcyBlYXNlO1xuICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdHJhbnNsYXRlOiBwY21heCgtMnB4KSBwY21heCgtMnB4KTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IHBjKDZweCkgcGMoNnB4KSAwIDAgdmFyKC0tY29sb3ItYnJhbmQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpbWcge1xuICAgICAgICAgIHdpZHRoOiB2dygxNTBweCk7XG4gICAgICAgICAgQGluY2x1ZGUgbXEoKSB7XG4gICAgICAgICAgICB3aWR0aDogcGMoMTg4cHgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLmltYWdlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogdncoOXB4KTtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBAaW5jbHVkZSBtcSgpIHtcbiAgICAgICAgICByaWdodDogcGMoNnB4KTtcbiAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICB3aWR0aDogdncoMTMwcHgpO1xuICAgICAgICAgIEBpbmNsdWRlIG1xKCkge1xuICAgICAgICAgICAgd2lkdGg6IHBjKDM0MHB4KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuICBmb290ZXIge1xuICAgIG1hcmdpbi10b3A6IHZ3KDYycHgpO1xuICAgIHBhZGRpbmc6IHZ3KDQ4cHgpIDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiB2dygxNnB4KTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ibGFjayk7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIEBpbmNsdWRlIG1xKCkge1xuICAgICAgbWFyZ2luLXRvcDogcGMoMTQwcHgpO1xuICAgICAgcGFkZGluZzogcGMoNDhweCkgMDtcbiAgICAgIGdhcDogcGMoMTZweCk7XG4gICAgfVxuICAgIGgxIHtcbiAgICAgIGZvbnQtc2l6ZTogdncoMjBweCk7XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgQGluY2x1ZGUgbXEoKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogcGMoMjJweCk7XG4gICAgICB9XG4gICAgfVxuICAgIHAge1xuICAgICAgZm9udC1zaXplOiB2dygxMnB4KTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyO1xuICAgICAgQGluY2x1ZGUgbXEoKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogcGMoMTRweCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiOnJvb3Qge1xuICAtLXRyYW5zaXRpb24tc3BlZWQtc2xvdzogMC41cztcbiAgLS10cmFuc2l0aW9uLXNwZWVkOiAwLjNzO1xuICAtLXRyYW5zaXRpb24tc3BlZWQtZmFzdDogMC4ycztcbiAgLS1iZXppZXI6IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gIC0tY29sb3ItYmxhY2s6ICMxRTFFMUVGRjtcbiAgLS1jb2xvci10ZXh0OiB2YXIoLS1jb2xvci1ibGFjayk7XG4gIC0tY29sb3ItYnJhbmQ6ICNDRjExMUJGRjtcbiAgLS1jb2xvci1zZWNvbmRhcnk6ICNGNUY0RjNGRjtcbiAgLS1jb2xvci10ZXJ0aWFyeTogI0ZBRTRFNEZGO1xufVxuXG5AbGF5ZXIgcmVzZXQsIGJhc2U7XG5AbGF5ZXIgcmVzZXQge1xuICBodG1sLCBib2R5LCBkaXYsIHNwYW4sIGFwcGxldCwgb2JqZWN0LCBpZnJhbWUsIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHAsIGJsb2NrcXVvdGUsIHByZSwgYSwgYWJiciwgYWNyb255bSwgYWRkcmVzcywgYmlnLCBjaXRlLCBjb2RlLCBkZWwsIGRmbiwgZW0sIGltZywgaW5zLCBrYmQsIHEsIHMsIHNhbXAsIHNtYWxsLCBzdHJpa2UsIHN0cm9uZywgc3ViLCBzdXAsIHR0LCB2YXIsIGIsIHUsIGksIGNlbnRlciwgZGwsIGR0LCBkZCwgb2wsIHVsLCBsaSwgZmllbGRzZXQsIGZvcm0sIGxhYmVsLCBsZWdlbmQsIHRhYmxlLCBjYXB0aW9uLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0ciwgdGgsIHRkLCBhcnRpY2xlLCBhc2lkZSwgY2FudmFzLCBkZXRhaWxzLCBlbWJlZCwgZmlndXJlLCBmaWdjYXB0aW9uLCBmb290ZXIsIGhlYWRlciwgaGdyb3VwLCBtZW51LCBuYXYsIG91dHB1dCwgcnVieSwgc2VjdGlvbiwgc3VtbWFyeSwgdGltZSwgbWFyaywgYXVkaW8sIHZpZGVvIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgZm9udDogaW5oZXJpdDtcbiAgICBmb250LXNpemU6IDEwMCU7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICB9XG4gIGh0bWwge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICB9XG4gIG9sLCB1bCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgfVxuICB0YWJsZSB7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICBib3JkZXItc3BhY2luZzogMDtcbiAgfVxuICBjYXB0aW9uLCB0aCwgdGQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG4gIHEsIGJsb2NrcXVvdGUge1xuICAgIHF1b3Rlczogbm9uZTtcbiAgfVxuICBxOmJlZm9yZSwgcTphZnRlciwgYmxvY2txdW90ZTpiZWZvcmUsIGJsb2NrcXVvdGU6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgY29udGVudDogbm9uZTtcbiAgfVxuICBhIGltZyB7XG4gICAgYm9yZGVyOiBub25lO1xuICB9XG4gIGFydGljbGUsIGFzaWRlLCBkZXRhaWxzLCBmaWdjYXB0aW9uLCBmaWd1cmUsIGZvb3RlciwgaGVhZGVyLCBoZ3JvdXAsIG1lbnUsIG5hdiwgc2VjdGlvbiwgc3VtbWFyeSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cbkBsYXllciBiYXNlIHtcbiAgKiB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuICAqOmJlZm9yZSxcbio6YWZ0ZXIge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cbiAgKjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuICBodG1sIHtcbiAgICBmb250LXNpemU6IGNhbGMoMTYgLyAzOTAgKiAxMDB2dyk7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgaHRtbCB7XG4gICAgICBmb250LXNpemU6IG1pbigxOHB4LCBjYWxjKDE4IC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgfVxuICB9XG4gIGJvZHkge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLXN0cm9uZyk7XG4gICAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiB2YXIoLS1mb250LWZlYXR1cmUtc2V0dGluZ3MpO1xuICAgIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEFyaWFsLCBcIkhpcmFnaW5vIEtha3UgR290aGljIFByb05cIiwgXCJIaXJhZ2lubyBTYW5zXCIsIFwiTm90byBTYW5zIEpQXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiBjYWxjKHZhcigtLWZzLW0pIC8gMzkwICogMTAwdncpO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZTogXCJoZWFkZXJcIiBhdXRvIFwibWFpblwiIGF1dG8gXCJmb290ZXJcIiAxZnIvMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICBib2R5IHtcbiAgICAgIGZvbnQtc2l6ZTogbWluKGNhbGModmFyKC0tZnMtbCkgKiAxcHgpLCBjYWxjKHZhcigtLWZzLWwpIC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgfVxuICB9XG4gIGJvZHkuaXMtZml4ZWQsIGJvZHkuZml4ZWQge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cbiAgc3Ryb25nIHtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG4gIH1cbiAgbGFiZWwge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBhIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG4gIGFbaHJlZl49XCJ0ZWw6XCJdIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICBhW2hyZWZePVwidGVsOlwiXSB7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG4gIH1cbiAgYWJiciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG4gIGJ1dHRvbiB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZm9udDogaW5oZXJpdDtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB0ZXh0LWFsaWduOiBpbmhlcml0O1xuICB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIGJyLnNwLW9ubHkge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbiAgYnIucGMtb25seSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICBici5wYy1vbmx5IHtcbiAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICB9XG4gIH1cbiAgOndoZXJlKGJ1dHRvbiwgW3R5cGU9YnV0dG9uXSwgW3R5cGU9cmVzZXRdLCBbdHlwZT1zdWJtaXRdKSB7XG4gICAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gIH1cbiAgOndoZXJlKDphbnktbGluayxcbmJ1dHRvbixcblt0eXBlPWJ1dHRvbl0sXG5bdHlwZT1yZXNldF0sXG5bdHlwZT1zdWJtaXRdLFxubGFiZWxbZm9yXSxcbnNlbGVjdCxcbnN1bW1hcnksXG5bcm9sZT10YWJdLFxuW3JvbGU9YnV0dG9uXSkge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICA6Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuICBzdXAsXG5zdWIge1xuICAgIGhlaWdodDogMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZvbnQtc2l6ZTogMC43NWVtO1xuICB9XG4gIHN1cCB7XG4gICAgYm90dG9tOiAwLjc1ZXg7XG4gIH1cbiAgc3ViIHtcbiAgICB0b3A6IDAuNWV4O1xuICB9XG4gIGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICB9XG4gIC5zdmdfZGVmIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIHN2ZyB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG4gIHByZSB7XG4gICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICB9XG4gIGh0bWwubGVuaXMsXG5odG1sLmxlbmlzIGJvZHkge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuICAubGVuaXMubGVuaXMtc21vb3RoIHtcbiAgICBzY3JvbGwtYmVoYXZpb3I6IGF1dG8gIWltcG9ydGFudDtcbiAgfVxuICAubGVuaXMubGVuaXMtc21vb3RoIFtkYXRhLWxlbmlzLXByZXZlbnRdIHtcbiAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluO1xuICB9XG4gIC5sZW5pcy5sZW5pcy1zdG9wcGVkIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG4gIC5sZW5pcy5sZW5pcy1zY3JvbGxpbmcgaWZyYW1lIHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxuICBodG1sLmlzLWNoYW5naW5nIC50cmFuc2l0aW9uLWZhZGUge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cztcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIGh0bWwuaXMtYW5pbWF0aW5nIC50cmFuc2l0aW9uLWZhZGUge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cztcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIC5oaWRkZW4tc3Age1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgLmhpZGRlbi1zcCB7XG4gICAgICBkaXNwbGF5OiB1bnNldDtcbiAgICB9XG4gIH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgLmhpZGRlbi1wYyB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTA4MHB4KSB7XG4gICAgLmhpZGRlbi1vdmVyLXRibCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAuaGlkZGVuLW92ZXItdGIge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDM3NXB4KSB7XG4gICAgLmhpZGRlbi1vdmVyLXNwIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG4gIC52aXN1YWxseS1oaWRkZW4ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAxcHggIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDFweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICBtYXJnaW46IC0xcHggIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKSAhaW1wb3J0YW50O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXAgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDAgIWltcG9ydGFudDtcbiAgfVxuICBtYWluIHtcbiAgICBncmlkLWFyZWE6IG1haW47XG4gIH1cbiAgaGVhZGVyIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogY2FsYyg2MiAvIDM5MCAqIDEwMHZ3KTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL2hlYWRlcl9iZy5zdmcpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCBib3R0b207XG4gICAgYmFja2dyb3VuZC1zaXplOiBjYWxjKDI5NiAvIDM5MCAqIDEwMHZ3KSBhdXRvO1xuICB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIGhlYWRlciB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogbWluKDE5MXB4LCBjYWxjKDE5MSAvIDE0NDAgKiAxMDB2dykpO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBtaW4oOTM2cHgsIGNhbGMoOTM2IC8gMTQ0MCAqIDEwMHZ3KSkgYXV0bztcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvaGVhZGVyX2JnX3BjLnN2Zyk7XG4gICAgfVxuICB9XG4gICNoZXJvIHtcbiAgICBwYWRkaW5nOiBjYWxjKDE2IC8gMzkwICogMTAwdncpO1xuICB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICNoZXJvIHtcbiAgICAgIHBhZGRpbmc6IHVuc2V0O1xuICAgICAgcGFkZGluZy10b3A6IG1pbigzMnB4LCBjYWxjKDMyIC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgICB3aWR0aDogbWluKDEyMThweCwgY2FsYygxMjE4IC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgICBtYXJnaW4taW5saW5lOiBhdXRvO1xuICAgIH1cbiAgfVxuICAjaGVybyAuaW5uZXIge1xuICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvaGVyb19iZy53ZWJwKSBuby1yZXBlYXQgY2VudGVyIGNlbnRlci9jb3ZlcjtcbiAgICBib3JkZXItcmFkaXVzOiBjYWxjKDggLyAzOTAgKiAxMDB2dyk7XG4gICAgcGFkZGluZzogY2FsYyg1MCAvIDM5MCAqIDEwMHZ3KSBjYWxjKDE2IC8gMzkwICogMTAwdncpIGNhbGMoMjA2IC8gMzkwICogMTAwdncpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgI2hlcm8gLmlubmVyIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvaGVyb19iZ19wYy53ZWJwKTtcbiAgICAgIHBhZGRpbmc6IG1pbigxMTJweCwgY2FsYygxMTIgLyAxNDQwICogMTAwdncpKSBtaW4oMzJweCwgY2FsYygzMiAvIDE0NDAgKiAxMDB2dykpIG1pbig5MnB4LCBjYWxjKDkyIC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgICBib3JkZXItcmFkaXVzOiBtaW4oMTZweCwgY2FsYygxNiAvIDE0NDAgKiAxMDB2dykpO1xuICAgIH1cbiAgfVxuICAjaGVybyAuaW5uZXIgLmhlcm9fMDEgaW1nIHtcbiAgICB3aWR0aDogY2FsYygxNTYgLyAzOTAgKiAxMDB2dyk7XG4gIH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgI2hlcm8gLmlubmVyIC5oZXJvXzAxIGltZyB7XG4gICAgICB3aWR0aDogbWluKDUzOHB4LCBjYWxjKDUzOCAvIDE0NDAgKiAxMDB2dykpO1xuICAgIH1cbiAgfVxuICAjaGVybyAuaW5uZXIgLmhlcm9fMDIge1xuICAgIG1hcmdpbi10b3A6IGNhbGMoMjQgLyAzOTAgKiAxMDB2dyk7XG4gIH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgI2hlcm8gLmlubmVyIC5oZXJvXzAyIHtcbiAgICAgIG1hcmdpbi10b3A6IG1pbigyNHB4LCBjYWxjKDI0IC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgfVxuICB9XG4gICNoZXJvIC5pbm5lciAuaGVyb18wMiBpbWcge1xuICAgIHdpZHRoOiBjYWxjKDMxMiAvIDM5MCAqIDEwMHZ3KTtcbiAgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAjaGVybyAuaW5uZXIgLmhlcm9fMDIgaW1nIHtcbiAgICAgIHdpZHRoOiBtaW4oNzUwcHgsIGNhbGMoNzUwIC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgfVxuICB9XG4gICNoZXJvIC5pbm5lciBoMSB7XG4gICAgbWFyZ2luLXRvcDogY2FsYygyOCAvIDM5MCAqIDEwMHZ3KTtcbiAgICBmb250LXNpemU6IGNhbGMoMTMuNSAvIDM5MCAqIDEwMHZ3KTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGxpbmUtaGVpZ2h0OiAyO1xuICB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICNoZXJvIC5pbm5lciBoMSB7XG4gICAgICBtYXJnaW4tdG9wOiBtaW4oOTBweCwgY2FsYyg5MCAvIDE0NDAgKiAxMDB2dykpO1xuICAgICAgZm9udC1zaXplOiBtaW4oMTYuNXB4LCBjYWxjKDE2LjUgLyAxNDQwICogMTAwdncpKTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyO1xuICAgIH1cbiAgfVxuICAjaGVybyAuaW5uZXIgaDEgc3BhbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYnJhbmQpO1xuICAgIHBhZGRpbmc6IGNhbGMoMiAvIDM5MCAqIDEwMHZ3KSBjYWxjKDQgLyAzOTAgKiAxMDB2dyk7XG4gIH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgI2hlcm8gLmlubmVyIGgxIHNwYW4ge1xuICAgICAgcGFkZGluZzogbWluKDJweCwgY2FsYygyIC8gMTQ0MCAqIDEwMHZ3KSkgbWluKDRweCwgY2FsYyg0IC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgfVxuICB9XG4gICNoZXJvIC5pbm5lciAuYmFkZ2Uge1xuICAgIG1hcmdpbi10b3A6IGNhbGMoMTMgLyAzOTAgKiAxMDB2dyk7XG4gIH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgI2hlcm8gLmlubmVyIC5iYWRnZSB7XG4gICAgICBtYXJnaW4tdG9wOiBtaW4oMjRweCwgY2FsYygyNCAvIDE0NDAgKiAxMDB2dykpO1xuICAgIH1cbiAgfVxuICAjaGVybyAuaW5uZXIgLmJhZGdlIGltZyB7XG4gICAgd2lkdGg6IGNhbGMoMTM0IC8gMzkwICogMTAwdncpO1xuICB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICNoZXJvIC5pbm5lciAuYmFkZ2UgaW1nIHtcbiAgICAgIHdpZHRoOiBtaW4oMTc4cHgsIGNhbGMoMTc4IC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgfVxuICB9XG4gICNoZXJvIC5pbm5lciAuYmFubmVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gICNoZXJvIC5pbm5lciAuaWNvbnMgaW1nIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIH1cbiAgI2hlcm8gLmlubmVyIC5pY29ucyBpbWcucGMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgI2hlcm8gLmlubmVyIC5pY29ucyBpbWcucGMge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG4gICNoZXJvIC5pbm5lciAuaWNvbnMgaW1nLmljb25fMDEge1xuICAgIHdpZHRoOiBjYWxjKDQyIC8gMzkwICogMTAwdncpO1xuICAgIGJvdHRvbTogY2FsYyg3MSAvIDM5MCAqIDEwMHZ3KTtcbiAgICBsZWZ0OiBjYWxjKDg3IC8gMzkwICogMTAwdncpO1xuICB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICNoZXJvIC5pbm5lciAuaWNvbnMgaW1nLmljb25fMDEge1xuICAgICAgd2lkdGg6IG1pbig1MHB4LCBjYWxjKDUwIC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgICBib3R0b206IG1pbigzOXB4LCBjYWxjKDM5IC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgICBsZWZ0OiBtaW4oMzczcHgsIGNhbGMoMzczIC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgfVxuICB9XG4gICNoZXJvIC5pbm5lciAuaWNvbnMgaW1nLmljb25fMDIge1xuICAgIHdpZHRoOiBjYWxjKDI1IC8gMzkwICogMTAwdncpO1xuICAgIGJvdHRvbTogY2FsYygxMzAgLyAzOTAgKiAxMDB2dyk7XG4gICAgcmlnaHQ6IGNhbGMoNjUgLyAzOTAgKiAxMDB2dyk7XG4gIH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgI2hlcm8gLmlubmVyIC5pY29ucyBpbWcuaWNvbl8wMiB7XG4gICAgICB3aWR0aDogbWluKDQwcHgsIGNhbGMoNDAgLyAxNDQwICogMTAwdncpKTtcbiAgICAgIGJvdHRvbTogbWluKDU3cHgsIGNhbGMoNTcgLyAxNDQwICogMTAwdncpKTtcbiAgICAgIHJpZ2h0OiBtaW4oMzA2cHgsIGNhbGMoMzA2IC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgfVxuICB9XG4gICNoZXJvIC5pbm5lciAuaWNvbnMgaW1nLmljb25fMDMge1xuICAgIHdpZHRoOiBjYWxjKDE3IC8gMzkwICogMTAwdncpO1xuICAgIGJvdHRvbTogY2FsYygxODggLyAzOTAgKiAxMDB2dyk7XG4gICAgbGVmdDogY2FsYygzNyAvIDM5MCAqIDEwMHZ3KTtcbiAgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAjaGVybyAuaW5uZXIgLmljb25zIGltZy5pY29uXzAzIHtcbiAgICAgIHdpZHRoOiBtaW4oMjdweCwgY2FsYygyNyAvIDE0NDAgKiAxMDB2dykpO1xuICAgICAgYm90dG9tOiBtaW4oMTE2cHgsIGNhbGMoMTE2IC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgICBsZWZ0OiBtaW4oMTM0cHgsIGNhbGMoMTM0IC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgfVxuICB9XG4gICNoZXJvIC5pbm5lciAuaWNvbnMgaW1nLmljb25fMDQge1xuICAgIHdpZHRoOiBjYWxjKDExIC8gMzkwICogMTAwdncpO1xuICAgIGJvdHRvbTogY2FsYygyMjYgLyAzOTAgKiAxMDB2dyk7XG4gICAgcmlnaHQ6IGNhbGMoMTcgLyAzOTAgKiAxMDB2dyk7XG4gIH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgI2hlcm8gLmlubmVyIC5pY29ucyBpbWcuaWNvbl8wNCB7XG4gICAgICB3aWR0aDogbWluKDI1cHgsIGNhbGMoMjUgLyAxNDQwICogMTAwdncpKTtcbiAgICAgIGJvdHRvbTogbWluKDE1OHB4LCBjYWxjKDE1OCAvIDE0NDAgKiAxMDB2dykpO1xuICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICBsZWZ0OiBtaW4oMjc3cHgsIGNhbGMoMjc3IC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgfVxuICB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICNoZXJvIC5pbm5lciAuaWNvbnMgaW1nLmljb25fMDUge1xuICAgICAgd2lkdGg6IG1pbigyMHB4LCBjYWxjKDIwIC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgICBib3R0b206IG1pbigxNzlweCwgY2FsYygxNzkgLyAxNDQwICogMTAwdncpKTtcbiAgICAgIHJpZ2h0OiBtaW4oNDFweCwgY2FsYyg0MSAvIDE0NDAgKiAxMDB2dykpO1xuICAgIH1cbiAgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAjaGVybyAuaW5uZXIgLmljb25zIGltZy5pY29uXzA2IHtcbiAgICAgIHdpZHRoOiBtaW4oMjBweCwgY2FsYygyMCAvIDE0NDAgKiAxMDB2dykpO1xuICAgICAgYm90dG9tOiBtaW4oMTk5cHgsIGNhbGMoMTk5IC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgICByaWdodDogbWluKDE5NXB4LCBjYWxjKDE5NSAvIDE0NDAgKiAxMDB2dykpO1xuICAgIH1cbiAgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAjaGVybyAuaW5uZXIgLmljb25zIGltZy5pY29uXzA3IHtcbiAgICAgIHdpZHRoOiBtaW4oMThweCwgY2FsYygxOCAvIDE0NDAgKiAxMDB2dykpO1xuICAgICAgYm90dG9tOiBtaW4oMjQxcHgsIGNhbGMoMjQxIC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgICByaWdodDogbWluKDMyM3B4LCBjYWxjKDMyMyAvIDE0NDAgKiAxMDB2dykpO1xuICAgIH1cbiAgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAjaGVybyAuaW5uZXIgLmljb25zIGltZy5pY29uXzA4IHtcbiAgICAgIHdpZHRoOiBtaW4oMTVweCwgY2FsYygxNSAvIDE0NDAgKiAxMDB2dykpO1xuICAgICAgYm90dG9tOiBtaW4oMjY2cHgsIGNhbGMoMjY2IC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgICBsZWZ0OiBtaW4oNzRweCwgY2FsYyg3NCAvIDE0NDAgKiAxMDB2dykpO1xuICAgIH1cbiAgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAjaGVybyAuaW5uZXIgLmljb25zIGltZy5pY29uXzA5IHtcbiAgICAgIHdpZHRoOiBtaW4oMTJweCwgY2FsYygxMiAvIDE0NDAgKiAxMDB2dykpO1xuICAgICAgYm90dG9tOiBtaW4oMjkxcHgsIGNhbGMoMjkxIC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgICByaWdodDogbWluKDkwcHgsIGNhbGMoOTAgLyAxNDQwICogMTAwdncpKTtcbiAgICB9XG4gIH1cbiAgI29uZXN0b3Age1xuICAgIG1hcmdpbi10b3A6IGNhbGMoNjYgLyAzOTAgKiAxMDB2dyk7XG4gICAgcGFkZGluZy1pbmxpbmU6IGNhbGMoMTYgLyAzOTAgKiAxMDB2dyk7XG4gIH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgI29uZXN0b3Age1xuICAgICAgbWFyZ2luLXRvcDogbWluKDEyMHB4LCBjYWxjKDEyMCAvIDE0NDAgKiAxMDB2dykpO1xuICAgICAgcGFkZGluZy1pbmxpbmU6IHVuc2V0O1xuICAgICAgd2lkdGg6IG1pbigxMDQwcHgsIGNhbGMoMTA0MCAvIDE0NDAgKiAxMDB2dykpO1xuICAgICAgbWFyZ2luLWlubGluZTogYXV0bztcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBncmlkLXRlbXBsYXRlOiBcImltYWdlIHRleHRcIiBhdXRvL21pbig1NTBweCwgY2FsYyg1NTAgLyAxNDQwICogMTAwdncpKSAxZnI7XG4gICAgICBnYXA6IG1pbig1NnB4LCBjYWxjKDU2IC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgfVxuICB9XG4gICNvbmVzdG9wIC50ZXh0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy1ib3R0b206IGNhbGMoNjIgLyAzOTAgKiAxMDB2dyk7XG4gIH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgI29uZXN0b3AgLnRleHQge1xuICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgIHBhZGRpbmctYm90dG9tOiB1bnNldDtcbiAgICAgIGdyaWQtYXJlYTogdGV4dDtcbiAgICAgIGFsaWduLXNlbGY6IHNlbGYtZW5kO1xuICAgIH1cbiAgfVxuICAjb25lc3RvcCAudGV4dCAuY2hhcmFjdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIHJpZ2h0OiBjYWxjKDQgLyAzOTAgKiAxMDB2dyk7XG4gIH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgI29uZXN0b3AgLnRleHQgLmNoYXJhY3RlciB7XG4gICAgICBib3R0b206IHVuc2V0O1xuICAgICAgdG9wOiBtaW4oMjZweCwgY2FsYygyNiAvIDE0NDAgKiAxMDB2dykpO1xuICAgICAgcmlnaHQ6IG1pbigyMHB4LCBjYWxjKDIwIC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgfVxuICB9XG4gICNvbmVzdG9wIC50ZXh0IC5jaGFyYWN0ZXIgaW1nIHtcbiAgICB3aWR0aDogY2FsYyg2NCAvIDM5MCAqIDEwMHZ3KTtcbiAgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAjb25lc3RvcCAudGV4dCAuY2hhcmFjdGVyIGltZyB7XG4gICAgICB3aWR0aDogbWluKDYycHgsIGNhbGMoNjIgLyAxNDQwICogMTAwdncpKTtcbiAgICB9XG4gIH1cbiAgI29uZXN0b3AgLnRleHQgaDIgaW1nIHtcbiAgICB3aWR0aDogY2FsYygzMTQgLyAzOTAgKiAxMDB2dyk7XG4gIH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgI29uZXN0b3AgLnRleHQgaDIgaW1nIHtcbiAgICAgIHdpZHRoOiBtaW4oNDA4cHgsIGNhbGMoNDA4IC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgfVxuICB9XG4gICNvbmVzdG9wIC50ZXh0IHAge1xuICAgIG1hcmdpbi10b3A6IGNhbGMoMTQgLyAzOTAgKiAxMDB2dyk7XG4gICAgZm9udC1zaXplOiBjYWxjKDE2IC8gMzkwICogMTAwdncpO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjg7XG4gIH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgI29uZXN0b3AgLnRleHQgcCB7XG4gICAgICBtYXJnaW4tdG9wOiBtaW4oMTRweCwgY2FsYygxNCAvIDE0NDAgKiAxMDB2dykpO1xuICAgICAgZm9udC1zaXplOiBtaW4oMThweCwgY2FsYygxOCAvIDE0NDAgKiAxMDB2dykpO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuODtcbiAgICB9XG4gIH1cbiAgI29uZXN0b3AgLnRleHQgcCBzcGFuIHtcbiAgICBmb250LXNpemU6IGNhbGMoMTIgLyAzOTAgKiAxMDB2dyk7XG4gIH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgI29uZXN0b3AgLnRleHQgcCBzcGFuIHtcbiAgICAgIGZvbnQtc2l6ZTogbWluKDE0cHgsIGNhbGMoMTQgLyAxNDQwICogMTAwdncpKTtcbiAgICB9XG4gIH1cbiAgI29uZXN0b3AgLmltYWdlIHtcbiAgICBtYXJnaW4tdG9wOiBjYWxjKC0yMiAvIDM5MCAqIDEwMHZ3KTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTtcbiAgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAjb25lc3RvcCAuaW1hZ2Uge1xuICAgICAgbWFyZ2luLXRvcDogdW5zZXQ7XG4gICAgICBncmlkLWFyZWE6IGltYWdlO1xuICAgIH1cbiAgfVxuICAjb25lc3RvcCAuaW1hZ2UgaW1nIHtcbiAgICBib3JkZXItcmFkaXVzOiBjYWxjKDggLyAzOTAgKiAxMDB2dyk7XG4gIH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgI29uZXN0b3AgLmltYWdlIGltZyB7XG4gICAgICBib3JkZXItcmFkaXVzOiBtaW4oMTZweCwgY2FsYygxNiAvIDE0NDAgKiAxMDB2dykpO1xuICAgIH1cbiAgfVxuICAjd29ycmllcyB7XG4gICAgcGFkZGluZzogY2FsYyg1NiAvIDM5MCAqIDEwMHZ3KSBjYWxjKDE2IC8gMzkwICogMTAwdncpIGNhbGMoNDIgLyAzOTAgKiAxMDB2dyk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTtcbiAgICBib3JkZXItcmFkaXVzOiBjYWxjKDI0IC8gMzkwICogMTAwdncpIDAgMCAwO1xuICAgIG1hcmdpbi10b3A6IGNhbGMoLTEyIC8gMzkwICogMTAwdncpO1xuICAgIGJveC1zaGFkb3c6IC03MzdweCAxOTJweCAyMTNweCAwIHJnYmEoMCwgMCwgMCwgMCksIC00NzJweCAxMjNweCAxOTVweCAwIHJnYmEoMCwgMCwgMCwgMC4wMSksIC0yNjVweCA2OXB4IDE2NXB4IDAgcmdiYSgwLCAwLCAwLCAwLjAzKSwgLTExOHB4IDMxcHggMTIycHggMCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICN3b3JyaWVzIHtcbiAgICAgIHBhZGRpbmc6IG1pbig4MHB4LCBjYWxjKDgwIC8gMTQ0MCAqIDEwMHZ3KSkgMCBtaW4oNjRweCwgY2FsYyg2NCAvIDE0NDAgKiAxMDB2dykpO1xuICAgICAgYm9yZGVyLXJhZGl1czogbWluKDQ4cHgsIGNhbGMoNDggLyAxNDQwICogMTAwdncpKSAwIDAgMDtcbiAgICAgIG1hcmdpbi10b3A6IG1heCgtNDhweCwgY2FsYygtNDggLyAxNDQwICogMTAwdncpKTtcbiAgICB9XG4gIH1cbiAgI3dvcnJpZXMgaDEge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAjd29ycmllcyBoMSBpbWcge1xuICAgIHdpZHRoOiBjYWxjKDMzNiAvIDM5MCAqIDEwMHZ3KTtcbiAgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAjd29ycmllcyBoMSBpbWcge1xuICAgICAgd2lkdGg6IG1pbig1NDNweCwgY2FsYyg1NDMgLyAxNDQwICogMTAwdncpKTtcbiAgICB9XG4gIH1cbiAgI3dvcnJpZXMgdWwge1xuICAgIG1hcmdpbi10b3A6IGNhbGMoMjQgLyAzOTAgKiAxMDB2dyk7XG4gIH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgI3dvcnJpZXMgdWwge1xuICAgICAgbWFyZ2luLXRvcDogbWluKDM4cHgsIGNhbGMoMzggLyAxNDQwICogMTAwdncpKTtcbiAgICAgIHdpZHRoOiBtaW4oMTA0MHB4LCBjYWxjKDEwNDAgLyAxNDQwICogMTAwdncpKTtcbiAgICAgIG1hcmdpbi1pbmxpbmU6IGF1dG87XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTtcbiAgICAgIGdhcDogbWluKDI0cHgsIGNhbGMoMjQgLyAxNDQwICogMTAwdncpKTtcbiAgICB9XG4gIH1cbiAgI3dvcnJpZXMgbGkge1xuICAgIHdpZHRoOiBjYWxjKDIwMCAvIDM5MCAqIDEwMHZ3KTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMjtcbiAgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAjd29ycmllcyBsaSB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG4gIH1cbiAgI3dvcnJpZXMgbGk6bnRoLWNoaWxkKDJuKSB7XG4gICAgbWFyZ2luLXRvcDogY2FsYygtMTMwIC8gMzkwICogMTAwdncpO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIHotaW5kZXg6IDE7XG4gIH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgI3dvcnJpZXMgbGk6bnRoLWNoaWxkKDJuKSB7XG4gICAgICBtYXJnaW4tdG9wOiB1bnNldDtcbiAgICAgIG1hcmdpbi1sZWZ0OiB1bnNldDtcbiAgICAgIHotaW5kZXg6IHVuc2V0O1xuICAgIH1cbiAgfVxuICAjd29ycmllcyBsaTpudGgtY2hpbGQoM24pIHtcbiAgICBtYXJnaW4tdG9wOiBjYWxjKC04MiAvIDM5MCAqIDEwMHZ3KTtcbiAgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAjd29ycmllcyBsaTpudGgtY2hpbGQoM24pIHtcbiAgICAgIG1hcmdpbi10b3A6IHVuc2V0O1xuICAgIH1cbiAgfVxuICAjd29ycmllcyBsaTpudGgtY2hpbGQoNG4pIHtcbiAgICBtYXJnaW4tdG9wOiBjYWxjKC0xMzAgLyAzOTAgKiAxMDB2dyk7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgei1pbmRleDogMTtcbiAgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAjd29ycmllcyBsaTpudGgtY2hpbGQoNG4pIHtcbiAgICAgIG1hcmdpbi10b3A6IHVuc2V0O1xuICAgICAgbWFyZ2luLWxlZnQ6IHVuc2V0O1xuICAgICAgei1pbmRleDogdW5zZXQ7XG4gICAgfVxuICB9XG4gICN3b3JyaWVzIGxpIGgyIGltZyB7XG4gICAgZmlsdGVyOiBkcm9wLXNoYWRvdygxcHggMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMDYpKSBkcm9wLXNoYWRvdygzcHggNXB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMDUpKSBkcm9wLXNoYWRvdyg2cHggMTJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjAzKSkgZHJvcC1zaGFkb3coMTBweCAyMnB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjAxKSk7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgI3dvcnJpZXMgbGkgcCB7XG4gICAgbWFyZ2luLXRvcDogY2FsYygyMCAvIDM5MCAqIDEwMHZ3KTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICN3b3JyaWVzIGxpIHAge1xuICAgICAgbWFyZ2luLXRvcDogbWluKDI0cHgsIGNhbGMoMjQgLyAxNDQwICogMTAwdncpKTtcbiAgICB9XG4gIH1cbiAgI3dvcnJpZXMgbGkgcC5xX3NwOjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogY2FsYygyMyAvIDM5MCAqIDEwMHZ3KTtcbiAgICBoZWlnaHQ6IGNhbGMoMzEgLyAzOTAgKiAxMDB2dyk7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogY2FsYygtMTYgLyAzOTAgKiAxMDB2dyk7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zbGF0ZTogY2FsYygtNTAgLyAzOTAgKiAxMDB2dykgMDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL3F1ZXN0aW9uLnN2Zyk7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgIHJvdGF0ZTogeiAtMTlkZWc7XG4gIH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgI3dvcnJpZXMgbGkgcC5xX3NwOjphZnRlciB7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgICAgcmlnaHQ6IDUwJTtcbiAgICAgIHdpZHRoOiBtaW4oMjhweCwgY2FsYygyOCAvIDE0NDAgKiAxMDB2dykpO1xuICAgICAgaGVpZ2h0OiBtaW4oMzhweCwgY2FsYygzOCAvIDE0NDAgKiAxMDB2dykpO1xuICAgICAgdG9wOiBtaW4oLTE2cHgsIGNhbGMoLTE2IC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgICByb3RhdGU6IHogMTlkZWc7XG4gICAgICB0cmFuc2xhdGU6IG1pbig2MHB4LCBjYWxjKDYwIC8gMTQ0MCAqIDEwMHZ3KSkgMDtcbiAgICB9XG4gIH1cbiAgI3dvcnJpZXMgbGkgcC5xX3NwLnJpZ2h0OjphZnRlciB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogNTAlO1xuICAgIHRyYW5zbGF0ZTogY2FsYyg1MCAvIDM5MCAqIDEwMHZ3KSAwO1xuICAgIHJvdGF0ZTogeiAxOWRlZztcbiAgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAjd29ycmllcyBsaSBwLnFfc3AucmlnaHQ6OmFmdGVyIHtcbiAgICAgIHRyYW5zbGF0ZTogbWluKDYwcHgsIGNhbGMoNjAgLyAxNDQwICogMTAwdncpKSAwO1xuICAgIH1cbiAgfVxuICAjd29ycmllcyBsaSBwIGltZyB7XG4gICAgd2lkdGg6IGNhbGMoNTAgLyAzOTAgKiAxMDB2dyk7XG4gIH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgI3dvcnJpZXMgbGkgcCBpbWcge1xuICAgICAgd2lkdGg6IG1pbig2MHB4LCBjYWxjKDYwIC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgfVxuICB9XG4gICNzdXBwb3J0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1icmFuZCk7XG4gICAgcGFkZGluZzogY2FsYyg2MiAvIDM5MCAqIDEwMHZ3KSBjYWxjKDE2IC8gMzkwICogMTAwdncpIGNhbGMoMTAwIC8gMzkwICogMTAwdncpO1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCBjYWxjKDI0IC8gMzkwICogMTAwdncpIDA7XG4gIH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgI3N1cHBvcnQge1xuICAgICAgcGFkZGluZzogbWluKDEyNHB4LCBjYWxjKDEyNCAvIDE0NDAgKiAxMDB2dykpIDAgbWluKDExNHB4LCBjYWxjKDExNCAvIDE0NDAgKiAxMDB2dykpO1xuICAgICAgYm9yZGVyLXJhZGl1czogMCAwIG1pbig0OHB4LCBjYWxjKDQ4IC8gMTQ0MCAqIDEwMHZ3KSkgMDtcbiAgICB9XG4gIH1cbiAgI3N1cHBvcnQgaDEge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAjc3VwcG9ydCBoMSBpbWcge1xuICAgIHdpZHRoOiBjYWxjKDI4MCAvIDM5MCAqIDEwMHZ3KTtcbiAgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAjc3VwcG9ydCBoMSBpbWcge1xuICAgICAgd2lkdGg6IG1pbig3OTFweCwgY2FsYyg3OTEgLyAxNDQwICogMTAwdncpKTtcbiAgICB9XG4gIH1cbiAgI3N1cHBvcnQgLmlubmVyIHtcbiAgICBtYXJnaW4tdG9wOiBjYWxjKDM2IC8gMzkwICogMTAwdncpO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMSwgMWZyKTtcbiAgICBnYXA6IGNhbGMoMjQgLyAzOTAgKiAxMDB2dyk7XG4gIH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgI3N1cHBvcnQgLmlubmVyIHtcbiAgICAgIG1hcmdpbi10b3A6IG1pbig2MnB4LCBjYWxjKDYyIC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuICAgICAgZ2FwOiBtaW4oMjRweCwgY2FsYygyNCAvIDE0NDAgKiAxMDB2dykpO1xuICAgICAgd2lkdGg6IG1pbigxMDQwcHgsIGNhbGMoMTA0MCAvIDE0NDAgKiAxMDB2dykpO1xuICAgICAgbWFyZ2luLWlubGluZTogYXV0bztcbiAgICB9XG4gIH1cbiAgI3N1cHBvcnQgLmlubmVyIC51bml0IHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEsIDFmcik7XG4gICAgZ2FwOiBjYWxjKDI0IC8gMzkwICogMTAwdncpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgcGFkZGluZzogY2FsYygyNCAvIDM5MCAqIDEwMHZ3KSBjYWxjKDI0IC8gMzkwICogMTAwdncpIGNhbGMoMzIgLyAzOTAgKiAxMDB2dyk7XG4gICAgYm9yZGVyLXJhZGl1czogY2FsYyg4IC8gMzkwICogMTAwdncpO1xuICAgIGJveC1zaGFkb3c6IDI2cHggMTYzcHggNDZweCAwIHJnYmEoMCwgMCwgMCwgMCksIDE2cHggMTA0cHggNDJweCAwIHJnYmEoMCwgMCwgMCwgMC4wMSksIDlweCA1OXB4IDM2cHggMCByZ2JhKDAsIDAsIDAsIDAuMDUpLCA0cHggMjZweCAyNnB4IDAgcmdiYSgwLCAwLCAwLCAwLjA5KSwgMXB4IDdweCAxNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjEpO1xuICB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICNzdXBwb3J0IC5pbm5lciAudW5pdCB7XG4gICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IHN1YmdyaWQ7XG4gICAgICBncmlkLXJvdzogc3BhbiAzO1xuICAgICAgZ2FwOiBtaW4oMjRweCwgY2FsYygyNCAvIDE0NDAgKiAxMDB2dykpO1xuICAgICAgcGFkZGluZzogbWluKDI0cHgsIGNhbGMoMjQgLyAxNDQwICogMTAwdncpKSBtaW4oMjRweCwgY2FsYygyNCAvIDE0NDAgKiAxMDB2dykpIG1pbigzMnB4LCBjYWxjKDMyIC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgICBib3JkZXItcmFkaXVzOiBtaW4oMTZweCwgY2FsYygxNiAvIDE0NDAgKiAxMDB2dykpO1xuICAgIH1cbiAgfVxuICAjc3VwcG9ydCAuaW5uZXIgLnVuaXQgLnRpdGxlIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgI3N1cHBvcnQgLmlubmVyIC51bml0IC50aXRsZSAubnVtIGltZyB7XG4gICAgd2lkdGg6IGNhbGMoNDIgLyAzOTAgKiAxMDB2dyk7XG4gIH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgI3N1cHBvcnQgLmlubmVyIC51bml0IC50aXRsZSAubnVtIGltZyB7XG4gICAgICB3aWR0aDogbWluKDQycHgsIGNhbGMoNDIgLyAxNDQwICogMTAwdncpKTtcbiAgICB9XG4gIH1cbiAgI3N1cHBvcnQgLmlubmVyIC51bml0IC50aXRsZSBoMiB7XG4gICAgbWFyZ2luLXRvcDogY2FsYygxMiAvIDM5MCAqIDEwMHZ3KTtcbiAgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAjc3VwcG9ydCAuaW5uZXIgLnVuaXQgLnRpdGxlIGgyIHtcbiAgICAgIG1hcmdpbi10b3A6IG1pbigxMnB4LCBjYWxjKDEyIC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgfVxuICB9XG4gICNzdXBwb3J0IC5pbm5lciAudW5pdCAudGl0bGUgaDIgaW1nIHtcbiAgICBoZWlnaHQ6IGNhbGMoMjQgLyAzOTAgKiAxMDB2dyk7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgI3N1cHBvcnQgLmlubmVyIC51bml0IC50aXRsZSBoMiBpbWcge1xuICAgICAgaGVpZ2h0OiBtaW4oMjRweCwgY2FsYygyNCAvIDE0NDAgKiAxMDB2dykpO1xuICAgIH1cbiAgfVxuICAjc3VwcG9ydCAuaW5uZXIgLnVuaXQgLmRlc2Mge1xuICAgIGZvbnQtc2l6ZTogY2FsYygxNCAvIDM5MCAqIDEwMHZ3KTtcbiAgICBsaW5lLWhlaWdodDogMS44O1xuICB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICNzdXBwb3J0IC5pbm5lciAudW5pdCAuZGVzYyB7XG4gICAgICBmb250LXNpemU6IG1pbigxNHB4LCBjYWxjKDE0IC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgICBsaW5lLWhlaWdodDogMS44O1xuICAgIH1cbiAgfVxuICAjb25lc3RvcHNlcnZpY2Uge1xuICAgIHBhZGRpbmc6IGNhbGMoNjIgLyAzOTAgKiAxMDB2dykgY2FsYygxNiAvIDM5MCAqIDEwMHZ3KSAwO1xuICB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICNvbmVzdG9wc2VydmljZSB7XG4gICAgICBwYWRkaW5nOiBtaW4oOTBweCwgY2FsYyg5MCAvIDE0NDAgKiAxMDB2dykpIDAgMDtcbiAgICAgIHdpZHRoOiBtaW4oMTA0MHB4LCBjYWxjKDEwNDAgLyAxNDQwICogMTAwdncpKTtcbiAgICAgIG1hcmdpbi1pbmxpbmU6IGF1dG87XG4gICAgfVxuICB9XG4gICNvbmVzdG9wc2VydmljZSBoMSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gICNvbmVzdG9wc2VydmljZSBoMSBpbWcge1xuICAgIHdpZHRoOiBjYWxjKDMzNiAvIDM5MCAqIDEwMHZ3KTtcbiAgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAjb25lc3RvcHNlcnZpY2UgaDEgaW1nIHtcbiAgICAgIHdpZHRoOiBtaW4oNTk0cHgsIGNhbGMoNTk0IC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgfVxuICB9XG4gICNvbmVzdG9wc2VydmljZSAuaW5uZXIge1xuICAgIG1hcmdpbi10b3A6IGNhbGMoMzIgLyAzOTAgKiAxMDB2dyk7XG4gIH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgI29uZXN0b3BzZXJ2aWNlIC5pbm5lciB7XG4gICAgICBtYXJnaW4tdG9wOiBtaW4oNjJweCwgY2FsYyg2MiAvIDE0NDAgKiAxMDB2dykpO1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdyaWQtdGVtcGxhdGU6IFwidGV4dCBpbWFnZVwiIGF1dG8vMWZyIG1pbig1NTBweCwgY2FsYyg1NTAgLyAxNDQwICogMTAwdncpKTtcbiAgICAgIGdhcDogbWluKDY0cHgsIGNhbGMoNjQgLyAxNDQwICogMTAwdncpKTtcbiAgICB9XG4gIH1cbiAgI29uZXN0b3BzZXJ2aWNlIC5pbm5lciAuaW1hZ2Uge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAjb25lc3RvcHNlcnZpY2UgLmlubmVyIC5pbWFnZSB7XG4gICAgICBncmlkLWFyZWE6IGltYWdlO1xuICAgIH1cbiAgfVxuICAjb25lc3RvcHNlcnZpY2UgLmlubmVyIC5pbWFnZSBpbWcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyO1xuICB9XG4gICNvbmVzdG9wc2VydmljZSAuaW5uZXIgLmltYWdlOjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogY2FsYyg0NCAvIDM5MCAqIDEwMHZ3KTtcbiAgICBoZWlnaHQ6IGNhbGMoNTEgLyAzOTAgKiAxMDB2dyk7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvY2hhcmFjdGVyXzAxLnN2Zyk7XG4gIH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgI29uZXN0b3BzZXJ2aWNlIC5pbm5lciAuaW1hZ2U6OmFmdGVyIHtcbiAgICAgIHdpZHRoOiBtaW4oNzJweCwgY2FsYyg3MiAvIDE0NDAgKiAxMDB2dykpO1xuICAgICAgaGVpZ2h0OiBtaW4oODRweCwgY2FsYyg4NCAvIDE0NDAgKiAxMDB2dykpO1xuICAgICAgdG9wOiBtYXgoLTU4cHgsIGNhbGMoLTU4IC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgICByaWdodDogbWluKDMwcHgsIGNhbGMoMzAgLyAxNDQwICogMTAwdncpKTtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgfVxuICB9XG4gICNvbmVzdG9wc2VydmljZSAuaW5uZXIgLnRleHQge1xuICAgIHBhZGRpbmctaW5saW5lOiBjYWxjKDEyIC8gMzkwICogMTAwdncpO1xuICAgIG1hcmdpbi10b3A6IGNhbGMoMzIgLyAzOTAgKiAxMDB2dyk7XG4gIH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgI29uZXN0b3BzZXJ2aWNlIC5pbm5lciAudGV4dCB7XG4gICAgICBwYWRkaW5nLWlubGluZTogdW5zZXQ7XG4gICAgICBtYXJnaW4tdG9wOiB1bnNldDtcbiAgICAgIGdyaWQtYXJlYTogdGV4dDtcbiAgICB9XG4gIH1cbiAgI29uZXN0b3BzZXJ2aWNlIC5pbm5lciAudGV4dCBoMiBpbWcge1xuICAgIHdpZHRoOiBjYWxjKDIzOCAvIDM5MCAqIDEwMHZ3KTtcbiAgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAjb25lc3RvcHNlcnZpY2UgLmlubmVyIC50ZXh0IGgyIGltZyB7XG4gICAgICB3aWR0aDogbWluKDI5MXB4LCBjYWxjKDI5MSAvIDE0NDAgKiAxMDB2dykpO1xuICAgIH1cbiAgfVxuICAjb25lc3RvcHNlcnZpY2UgLmlubmVyIC50ZXh0IHAge1xuICAgIG1hcmdpbi10b3A6IGNhbGMoMzAgLyAzOTAgKiAxMDB2dyk7XG4gICAgZm9udC1zaXplOiBjYWxjKDE2IC8gMzkwICogMTAwdncpO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjg7XG4gIH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgI29uZXN0b3BzZXJ2aWNlIC5pbm5lciAudGV4dCBwIHtcbiAgICAgIG1hcmdpbi10b3A6IG1pbigzMnB4LCBjYWxjKDMyIC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgICBmb250LXNpemU6IG1pbigxOHB4LCBjYWxjKDE4IC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgICBsaW5lLWhlaWdodDogMS44O1xuICAgIH1cbiAgfVxuICAjb25lc3RvcHNlcnZpY2UgLmlubmVyIC50ZXh0IHAgc3Ryb25nIHtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1icmFuZCk7XG4gIH1cbiAgI29uZXN0b3BzZXJ2aWNlIGZpZ3VyZSB7XG4gICAgbWFyZ2luLXRvcDogY2FsYygzMiAvIDM5MCAqIDEwMHZ3KTtcbiAgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAjb25lc3RvcHNlcnZpY2UgZmlndXJlIHtcbiAgICAgIG1hcmdpbi10b3A6IG1pbig3MnB4LCBjYWxjKDcyIC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgfVxuICB9XG4gICNvbmVzdG9wc2VydmljZSBmaWd1cmUgaW1nIHtcbiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgNTMuNDA2cHggMTQuOTU0cHggcmdiYSgwLCAwLCAwLCAwKSkgZHJvcC1zaGFkb3coMCAzNC4xOHB4IDEzLjUyOXB4IHJnYmEoMCwgMCwgMCwgMC4wMSkpIGRyb3Atc2hhZG93KDAgMTkuMjI2cHggMTEuMzkzcHggcmdiYSgwLCAwLCAwLCAwLjA1KSkgZHJvcC1zaGFkb3coMCA4LjU0NXB4IDguNTQ1cHggcmdiYSgwLCAwLCAwLCAwLjA5KSkgZHJvcC1zaGFkb3coMCAyLjEzNnB4IDQuOTg1cHggcmdiYSgwLCAwLCAwLCAwLjEpKTtcbiAgfVxuICAjbGlzdGVkY29tcGFueSB7XG4gICAgbWFyZ2luLXRvcDogY2FsYyg2OCAvIDM5MCAqIDEwMHZ3KTtcbiAgICBwYWRkaW5nLWlubGluZTogY2FsYygxNiAvIDM5MCAqIDEwMHZ3KTtcbiAgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAjbGlzdGVkY29tcGFueSB7XG4gICAgICBtYXJnaW4tdG9wOiBtaW4oMTIycHgsIGNhbGMoMTIyIC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgICBwYWRkaW5nLWlubGluZTogdW5zZXQ7XG4gICAgfVxuICB9XG4gICNsaXN0ZWRjb21wYW55IC5pbm5lciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTtcbiAgICBwYWRkaW5nOiBjYWxjKDggLyAzOTAgKiAxMDB2dyk7XG4gICAgYm9yZGVyLXJhZGl1czogY2FsYyg4IC8gMzkwICogMTAwdncpO1xuICB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICNsaXN0ZWRjb21wYW55IC5pbm5lciB7XG4gICAgICBwYWRkaW5nOiBtaW4oNzBweCwgY2FsYyg3MCAvIDE0NDAgKiAxMDB2dykpIG1pbig2MnB4LCBjYWxjKDYyIC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgICBib3JkZXItcmFkaXVzOiBtaW4oMTZweCwgY2FsYygxNiAvIDE0NDAgKiAxMDB2dykpO1xuICAgICAgd2lkdGg6IG1pbigxMTYwcHgsIGNhbGMoMTE2MCAvIDE0NDAgKiAxMDB2dykpO1xuICAgICAgbWFyZ2luLWlubGluZTogYXV0bztcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBncmlkLXRlbXBsYXRlOiBcImltYWdlIHRleHRcIiBhdXRvL21pbig0MjBweCwgY2FsYyg0MjAgLyAxNDQwICogMTAwdncpKSAxZnI7XG4gICAgICBnYXA6IG1pbig3MnB4LCBjYWxjKDcyIC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgfVxuICB9XG4gICNsaXN0ZWRjb21wYW55IC5pbm5lciAudGV4dCB7XG4gICAgbWFyZ2luLXRvcDogY2FsYygxMiAvIDM5MCAqIDEwMHZ3KTtcbiAgICBwYWRkaW5nOiBjYWxjKDE2IC8gMzkwICogMTAwdncpO1xuICB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICNsaXN0ZWRjb21wYW55IC5pbm5lciAudGV4dCB7XG4gICAgICBtYXJnaW4tdG9wOiB1bnNldDtcbiAgICAgIHBhZGRpbmc6IHVuc2V0O1xuICAgICAgZ3JpZC1hcmVhOiB0ZXh0O1xuICAgIH1cbiAgfVxuICAjbGlzdGVkY29tcGFueSAuaW5uZXIgLnRleHQgaDEgaW1nIHtcbiAgICB3aWR0aDogY2FsYygyMTAgLyAzOTAgKiAxMDB2dyk7XG4gIH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgI2xpc3RlZGNvbXBhbnkgLmlubmVyIC50ZXh0IGgxIGltZyB7XG4gICAgICB3aWR0aDogbWluKDI0MHB4LCBjYWxjKDI0MCAvIDE0NDAgKiAxMDB2dykpO1xuICAgIH1cbiAgfVxuICAjbGlzdGVkY29tcGFueSAuaW5uZXIgLnRleHQgcCB7XG4gICAgbWFyZ2luLXRvcDogY2FsYygyNCAvIDM5MCAqIDEwMHZ3KTtcbiAgICBmb250LXNpemU6IGNhbGMoMTYgLyAzOTAgKiAxMDB2dyk7XG4gICAgbGluZS1oZWlnaHQ6IDEuODtcbiAgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAjbGlzdGVkY29tcGFueSAuaW5uZXIgLnRleHQgcCB7XG4gICAgICBtYXJnaW4tdG9wOiBtaW4oMzJweCwgY2FsYygzMiAvIDE0NDAgKiAxMDB2dykpO1xuICAgICAgZm9udC1zaXplOiBtaW4oMTZweCwgY2FsYygxNiAvIDE0NDAgKiAxMDB2dykpO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuODtcbiAgICB9XG4gIH1cbiAgI2Zsb3cge1xuICAgIG1hcmdpbi10b3A6IGNhbGMoNjggLyAzOTAgKiAxMDB2dyk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYnJhbmQpO1xuICAgIHBhZGRpbmc6IGNhbGMoNjIgLyAzOTAgKiAxMDB2dykgY2FsYygxNiAvIDM5MCAqIDEwMHZ3KTtcbiAgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAjZmxvdyB7XG4gICAgICBtYXJnaW4tdG9wOiBtaW4oMTAwcHgsIGNhbGMoMTAwIC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgICBwYWRkaW5nOiBtaW4oMTAwcHgsIGNhbGMoMTAwIC8gMTQ0MCAqIDEwMHZ3KSkgMDtcbiAgICB9XG4gIH1cbiAgI2Zsb3cgaDEge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAjZmxvdyBoMSBpbWcge1xuICAgIHdpZHRoOiBjYWxjKDI0NiAvIDM5MCAqIDEwMHZ3KTtcbiAgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAjZmxvdyBoMSBpbWcge1xuICAgICAgd2lkdGg6IG1pbigzOTJweCwgY2FsYygzOTIgLyAxNDQwICogMTAwdncpKTtcbiAgICB9XG4gIH1cbiAgI2Zsb3cgLmxlYWQge1xuICAgIG1hcmdpbi10b3A6IGNhbGMoMzAgLyAzOTAgKiAxMDB2dyk7XG4gICAgZm9udC1zaXplOiBjYWxjKDE2IC8gMzkwICogMTAwdncpO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgI2Zsb3cgLmxlYWQge1xuICAgICAgbWFyZ2luLXRvcDogbWluKDMycHgsIGNhbGMoMzIgLyAxNDQwICogMTAwdncpKTtcbiAgICAgIGZvbnQtc2l6ZTogbWluKDE4cHgsIGNhbGMoMTggLyAxNDQwICogMTAwdncpKTtcbiAgICB9XG4gIH1cbiAgI2Zsb3cgLmlubmVyIHtcbiAgICBtYXJnaW4tdG9wOiBjYWxjKDMyIC8gMzkwICogMTAwdncpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgcGFkZGluZzogY2FsYygzMiAvIDM5MCAqIDEwMHZ3KSBjYWxjKDI0IC8gMzkwICogMTAwdncpO1xuICAgIGJvcmRlci1yYWRpdXM6IGNhbGMoOCAvIDM5MCAqIDEwMHZ3KTtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEsIDFmcik7XG4gICAgZ2FwOiBjYWxjKDI0IC8gMzkwICogMTAwdncpO1xuICB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICNmbG93IC5pbm5lciB7XG4gICAgICBtYXJnaW4tdG9wOiBtaW4oNTZweCwgY2FsYyg1NiAvIDE0NDAgKiAxMDB2dykpO1xuICAgICAgcGFkZGluZzogbWluKDQ4cHgsIGNhbGMoNDggLyAxNDQwICogMTAwdncpKSBtaW4oNjRweCwgY2FsYyg2NCAvIDE0NDAgKiAxMDB2dykpO1xuICAgICAgYm9yZGVyLXJhZGl1czogbWluKDE2cHgsIGNhbGMoMTYgLyAxNDQwICogMTAwdncpKTtcbiAgICAgIHdpZHRoOiBtaW4oMTA0MHB4LCBjYWxjKDEwNDAgLyAxNDQwICogMTAwdncpKTtcbiAgICAgIG1hcmdpbi1pbmxpbmU6IGF1dG87XG4gICAgICBnYXA6IG1pbigyNHB4LCBjYWxjKDI0IC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgfVxuICB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICNmbG93IC5pbm5lciAudW5pdCB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC10ZW1wbGF0ZTogXCJpbWFnZSB0ZXh0XCIgYXV0byBcImxpbmUgbGluZVwiIGF1dG8vbWluKDIzNnB4LCBjYWxjKDIzNiAvIDE0NDAgKiAxMDB2dykpIDFmcjtcbiAgICAgIGdhcDogbWluKDMycHgsIGNhbGMoMzIgLyAxNDQwICogMTAwdncpKTtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuICB9XG4gICNmbG93IC5pbm5lciAudW5pdDpub3QoOmxhc3QtY2hpbGQpOjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tdG9wOiBjYWxjKDI0IC8gMzkwICogMTAwdncpO1xuICAgIGFzcGVjdC1yYXRpbzogMzEyLzI4O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvZmxvd19iZy5zdmcpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAjZmxvdyAuaW5uZXIgLnVuaXQ6bm90KDpsYXN0LWNoaWxkKTo6YWZ0ZXIge1xuICAgICAgZ3JpZC1hcmVhOiBsaW5lO1xuICAgICAgbWFyZ2luLXRvcDogdW5zZXQ7XG4gICAgICBhc3BlY3QtcmF0aW86IDkxMC8yODtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvZmxvd19iZ19wYy5zdmcpO1xuICAgIH1cbiAgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAjZmxvdyAuaW5uZXIgLnVuaXQgLmltYWdlIHtcbiAgICAgIGdyaWQtYXJlYTogaW1hZ2U7XG4gICAgfVxuICB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICNmbG93IC5pbm5lciAudW5pdCAudGV4dCB7XG4gICAgICBncmlkLWFyZWE6IHRleHQ7XG4gICAgfVxuICB9XG4gICNmbG93IC5pbm5lciAudW5pdCAudGV4dCBoMiB7XG4gICAgbWFyZ2luLXRvcDogY2FsYygzMiAvIDM5MCAqIDEwMHZ3KTtcbiAgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAjZmxvdyAuaW5uZXIgLnVuaXQgLnRleHQgaDIge1xuICAgICAgbWFyZ2luLXRvcDogdW5zZXQ7XG4gICAgfVxuICB9XG4gICNmbG93IC5pbm5lciAudW5pdCAudGV4dCBoMiBpbWcge1xuICAgIGhlaWdodDogY2FsYygyNSAvIDM5MCAqIDEwMHZ3KTtcbiAgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAjZmxvdyAuaW5uZXIgLnVuaXQgLnRleHQgaDIgaW1nIHtcbiAgICAgIGhlaWdodDogbWluKDMycHgsIGNhbGMoMzIgLyAxNDQwICogMTAwdncpKTtcbiAgICB9XG4gIH1cbiAgI2Zsb3cgLmlubmVyIC51bml0IC50ZXh0IHAge1xuICAgIG1hcmdpbi10b3A6IGNhbGMoMTYgLyAzOTAgKiAxMDB2dyk7XG4gICAgZm9udC1zaXplOiBjYWxjKDE2IC8gMzkwICogMTAwdncpO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjg7XG4gIH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgI2Zsb3cgLmlubmVyIC51bml0IC50ZXh0IHAge1xuICAgICAgbWFyZ2luLXRvcDogbWluKDE2cHgsIGNhbGMoMTYgLyAxNDQwICogMTAwdncpKTtcbiAgICAgIGZvbnQtc2l6ZTogbWluKDE2cHgsIGNhbGMoMTYgLyAxNDQwICogMTAwdncpKTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjg7XG4gICAgfVxuICB9XG4gICNhZnRlcnN1cHBvcnQge1xuICAgIG1hcmdpbi10b3A6IGNhbGMoNjggLyAzOTAgKiAxMDB2dyk7XG4gIH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgI2FmdGVyc3VwcG9ydCB7XG4gICAgICBtYXJnaW4tdG9wOiBtaW4oMTIycHgsIGNhbGMoMTIyIC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgfVxuICB9XG4gICNhZnRlcnN1cHBvcnQgLnRpdGxlIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgI2FmdGVyc3VwcG9ydCAudGl0bGUgaW1nIHtcbiAgICB3aWR0aDogY2FsYygyODYgLyAzOTAgKiAxMDB2dyk7XG4gIH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgI2FmdGVyc3VwcG9ydCAudGl0bGUgaW1nIHtcbiAgICAgIHdpZHRoOiBtaW4oNDk1cHgsIGNhbGMoNDk1IC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgfVxuICB9XG4gICNhZnRlcnN1cHBvcnQgLmxlYWQge1xuICAgIG1hcmdpbi10b3A6IGNhbGMoNDIgLyAzOTAgKiAxMDB2dyk7XG4gICAgZm9udC1zaXplOiBjYWxjKDE2IC8gMzkwICogMTAwdncpO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgI2FmdGVyc3VwcG9ydCAubGVhZCB7XG4gICAgICBtYXJnaW4tdG9wOiBtaW4oMzBweCwgY2FsYygzMCAvIDE0NDAgKiAxMDB2dykpO1xuICAgICAgZm9udC1zaXplOiBtaW4oMThweCwgY2FsYygxOCAvIDE0NDAgKiAxMDB2dykpO1xuICAgIH1cbiAgfVxuICAjYWZ0ZXJzdXBwb3J0IC5zcCB7XG4gICAgbWFyZ2luLXRvcDogY2FsYygyOCAvIDM5MCAqIDEwMHZ3KTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IGNhbGMoNTk3IC8gMzkwICogMTAwdncpO1xuICB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICNhZnRlcnN1cHBvcnQgLnNwIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG4gICNhZnRlcnN1cHBvcnQgLnNwIC5pbWFnZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG4gICNhZnRlcnN1cHBvcnQgLnNwIC5pbWFnZS5maWd1cmVfMDEge1xuICAgIHRvcDogY2FsYyg3MyAvIDM5MCAqIDEwMHZ3KTtcbiAgICBsZWZ0OiBjYWxjKDE1IC8gMzkwICogMTAwdncpO1xuICAgIHotaW5kZXg6IDI7XG4gIH1cbiAgI2FmdGVyc3VwcG9ydCAuc3AgLmltYWdlLmZpZ3VyZV8wMSBpbWcge1xuICAgIHdpZHRoOiBjYWxjKDIxMCAvIDM5MCAqIDEwMHZ3KTtcbiAgfVxuICAjYWZ0ZXJzdXBwb3J0IC5zcCAuaW1hZ2UuZmlndXJlXzAyIHtcbiAgICB0b3A6IGNhbGMoMzA2IC8gMzkwICogMTAwdncpO1xuICAgIGxlZnQ6IGNhbGMoMTY1IC8gMzkwICogMTAwdncpO1xuICAgIHotaW5kZXg6IDI7XG4gIH1cbiAgI2FmdGVyc3VwcG9ydCAuc3AgLmltYWdlLmZpZ3VyZV8wMiBpbWcge1xuICAgIHdpZHRoOiBjYWxjKDIxMCAvIDM5MCAqIDEwMHZ3KTtcbiAgfVxuICAjYWZ0ZXJzdXBwb3J0IC5zcCAuaW1hZ2UuZmlndXJlXzAzIHtcbiAgICB0b3A6IGNhbGMoMjIgLyAzOTAgKiAxMDB2dyk7XG4gICAgcmlnaHQ6IGNhbGMoLTE0IC8gMzkwICogMTAwdncpO1xuICB9XG4gICNhZnRlcnN1cHBvcnQgLnNwIC5pbWFnZS5maWd1cmVfMDMgaW1nIHtcbiAgICB3aWR0aDogY2FsYygxOTMgLyAzOTAgKiAxMDB2dyk7XG4gICAgb3BhY2l0eTogMC45O1xuICB9XG4gICNhZnRlcnN1cHBvcnQgLnNwIC5pbWFnZS5maWd1cmVfMDQge1xuICAgIGJvdHRvbTogY2FsYyg0NiAvIDM5MCAqIDEwMHZ3KTtcbiAgICBsZWZ0OiBjYWxjKC0yNyAvIDM5MCAqIDEwMHZ3KTtcbiAgfVxuICAjYWZ0ZXJzdXBwb3J0IC5zcCAuaW1hZ2UuZmlndXJlXzA0IGltZyB7XG4gICAgd2lkdGg6IGNhbGMoMjI1IC8gMzkwICogMTAwdncpO1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuICAjYWZ0ZXJzdXBwb3J0IC5zcCAuaW1hZ2UuZmlndXJlXzA1IHtcbiAgICBib3R0b206IDA7XG4gICAgcmlnaHQ6IGNhbGMoMTIgLyAzOTAgKiAxMDB2dyk7XG4gIH1cbiAgI2FmdGVyc3VwcG9ydCAuc3AgLmltYWdlLmZpZ3VyZV8wNSBpbWcge1xuICAgIHdpZHRoOiBjYWxjKDEwOCAvIDM5MCAqIDEwMHZ3KTtcbiAgICBvcGFjaXR5OiAwLjg7XG4gIH1cbiAgI2FmdGVyc3VwcG9ydCAuc3AgLmltYWdlLmZpZ3VyZV8wNiB7XG4gICAgdG9wOiBjYWxjKDIwMyAvIDM5MCAqIDEwMHZ3KTtcbiAgICBsZWZ0OiBjYWxjKDEyMSAvIDM5MCAqIDEwMHZ3KTtcbiAgfVxuICAjYWZ0ZXJzdXBwb3J0IC5zcCAuaW1hZ2UuZmlndXJlXzA2IGltZyB7XG4gICAgd2lkdGg6IGNhbGMoMTYxIC8gMzkwICogMTAwdncpO1xuICAgIG9wYWNpdHk6IDAuODtcbiAgfVxuICAjYWZ0ZXJzdXBwb3J0IC5zcCAuaW1hZ2UuZmlndXJlXzA4IHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogY2FsYygtMTEgLyAzOTAgKiAxMDB2dyk7XG4gIH1cbiAgI2FmdGVyc3VwcG9ydCAuc3AgLmltYWdlLmZpZ3VyZV8wOCBpbWcge1xuICAgIHdpZHRoOiBjYWxjKDExOCAvIDM5MCAqIDEwMHZ3KTtcbiAgICBvcGFjaXR5OiAwLjg7XG4gIH1cbiAgI2FmdGVyc3VwcG9ydCAuc2Nyb2xsLXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgI2FmdGVyc3VwcG9ydCAuc2Nyb2xsLXdyYXBwZXIge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIG1hcmdpbi10b3A6IG1pbig2NHB4LCBjYWxjKDY0IC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgfVxuICB9XG4gICNhZnRlcnN1cHBvcnQgLnNjcm9sbC13cmFwcGVyOmxhc3QtY2hpbGQgLmNvbnRhaW5lcjpmaXJzdC1jaGlsZCB7XG4gICAgYW5pbWF0aW9uOiBsb29wIDYwcyAtMzBzIGxpbmVhciBpbmZpbml0ZTtcbiAgfVxuICAjYWZ0ZXJzdXBwb3J0IC5zY3JvbGwtd3JhcHBlcjpsYXN0LWNoaWxkIC5jb250YWluZXI6bGFzdC1jaGlsZCB7XG4gICAgYW5pbWF0aW9uOiBsb29wMiA2MHMgbGluZWFyIGluZmluaXRlO1xuICB9XG4gICNhZnRlcnN1cHBvcnQgLnNjcm9sbC13cmFwcGVyIC5jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiBtaW4oMzJweCwgY2FsYygzMiAvIDE0NDAgKiAxMDB2dykpO1xuICAgIHBhZGRpbmctcmlnaHQ6IG1pbigzMnB4LCBjYWxjKDMyIC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gIH1cbiAgI2FmdGVyc3VwcG9ydCAuc2Nyb2xsLXdyYXBwZXIgLmNvbnRhaW5lcjpmaXJzdC1jaGlsZCB7XG4gICAgYW5pbWF0aW9uOiBsb29wIDgwcyAtNDBzIGxpbmVhciBpbmZpbml0ZTtcbiAgfVxuICAjYWZ0ZXJzdXBwb3J0IC5zY3JvbGwtd3JhcHBlciAuY29udGFpbmVyOmxhc3QtY2hpbGQge1xuICAgIGFuaW1hdGlvbjogbG9vcDIgODBzIGxpbmVhciBpbmZpbml0ZTtcbiAgfVxuICAjYWZ0ZXJzdXBwb3J0IC5zY3JvbGwtd3JhcHBlciAuY29udGFpbmVyIC53cmFwIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICB3aWR0aDogbWluKDMyNHB4LCBjYWxjKDMyNCAvIDE0NDAgKiAxMDB2dykpO1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuICBAa2V5ZnJhbWVzIGxvb3Age1xuICAgIDAlIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgICB9XG4gICAgdG8ge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbiAgICB9XG4gIH1cbiAgQGtleWZyYW1lcyBsb29wMiB7XG4gICAgMCUge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgIH1cbiAgICB0byB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwMCUpO1xuICAgIH1cbiAgfVxuICAjY29udGFjdCB7XG4gICAgbWFyZ2luLXRvcDogY2FsYyg0NiAvIDM5MCAqIDEwMHZ3KTtcbiAgICBwYWRkaW5nOiBjYWxjKDE2IC8gMzkwICogMTAwdncpO1xuICB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICNjb250YWN0IHtcbiAgICAgIG1hcmdpbi10b3A6IG1pbig4MHB4LCBjYWxjKDgwIC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgICBwYWRkaW5nOiB1bnNldDtcbiAgICB9XG4gIH1cbiAgI2NvbnRhY3QgLmlubmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm9yZGVyLXJhZGl1czogY2FsYygxNiAvIDM5MCAqIDEwMHZ3KTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1icmFuZCk7XG4gICAgYmFja2dyb3VuZDogI0ZGRjRGNDtcbiAgICBib3gtc2hhZG93OiAwIDc1cHggMjFweCAwIHJnYmEoMCwgMCwgMCwgMCksIDAgNDhweCAxOXB4IDAgcmdiYSgwLCAwLCAwLCAwLjAxKSwgMCAyN3B4IDE2cHggMCByZ2JhKDAsIDAsIDAsIDAuMDUpLCAwIDEycHggMTJweCAwIHJnYmEoMCwgMCwgMCwgMC4wOSksIDAgM3B4IDdweCAwIHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICBwYWRkaW5nOiBjYWxjKDM2IC8gMzkwICogMTAwdncpIGNhbGMoMzIgLyAzOTAgKiAxMDB2dyk7XG4gIH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgI2NvbnRhY3QgLmlubmVyIHtcbiAgICAgIHBhZGRpbmc6IG1pbig1NnB4LCBjYWxjKDU2IC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgICBib3JkZXItcmFkaXVzOiBtaW4oMTZweCwgY2FsYygxNiAvIDE0NDAgKiAxMDB2dykpO1xuICAgICAgd2lkdGg6IG1pbig4NTJweCwgY2FsYyg4NTIgLyAxNDQwICogMTAwdncpKTtcbiAgICAgIG1hcmdpbi1pbmxpbmU6IGF1dG87XG4gICAgfVxuICB9XG4gICNjb250YWN0IC5pbm5lciBoMSBpbWcge1xuICAgIHdpZHRoOiBjYWxjKDIzMSAvIDM5MCAqIDEwMHZ3KTtcbiAgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAjY29udGFjdCAuaW5uZXIgaDEgaW1nIHtcbiAgICAgIHdpZHRoOiBtaW4oMzY0cHgsIGNhbGMoMzY0IC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgfVxuICB9XG4gICNjb250YWN0IC5pbm5lciAubGVhZCB7XG4gICAgbWFyZ2luLXRvcDogY2FsYygxNiAvIDM5MCAqIDEwMHZ3KTtcbiAgICBmb250LXNpemU6IGNhbGMoMTYgLyAzOTAgKiAxMDB2dyk7XG4gICAgbGluZS1oZWlnaHQ6IDEuODtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICNjb250YWN0IC5pbm5lciAubGVhZCB7XG4gICAgICBtYXJnaW4tdG9wOiBtaW4oMjJweCwgY2FsYygyMiAvIDE0NDAgKiAxMDB2dykpO1xuICAgICAgZm9udC1zaXplOiBtaW4oMThweCwgY2FsYygxOCAvIDE0NDAgKiAxMDB2dykpO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuODtcbiAgICB9XG4gIH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgI2NvbnRhY3QgLmlubmVyIC5sZWFkIGJyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG4gICNjb250YWN0IC5pbm5lciAuYnRuIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgcGFkZGluZzogY2FsYygxMiAvIDM5MCAqIDEwMHZ3KSBjYWxjKDE1IC8gMzkwICogMTAwdncpIGNhbGMoMTIgLyAzOTAgKiAxMDB2dykgY2FsYygxOCAvIDM5MCAqIDEwMHZ3KTtcbiAgICBtYXJnaW4tdG9wOiBjYWxjKDM2IC8gMzkwICogMTAwdncpO1xuICAgIGJvcmRlci1yYWRpdXM6IGNhbGMoOCAvIDM5MCAqIDEwMHZ3KTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1icmFuZCk7XG4gICAgYmFja2dyb3VuZDogI0ZGRjtcbiAgICBib3gtc2hhZG93OiBjYWxjKDMuMiAvIDM5MCAqIDEwMHZ3KSBjYWxjKDMuMiAvIDM5MCAqIDEwMHZ3KSAwIDAgdmFyKC0tY29sb3ItYnJhbmQpO1xuICB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICNjb250YWN0IC5pbm5lciAuYnRuIHtcbiAgICAgIHBhZGRpbmc6IG1pbigxNnB4LCBjYWxjKDE2IC8gMTQ0MCAqIDEwMHZ3KSkgbWluKDI0cHgsIGNhbGMoMjQgLyAxNDQwICogMTAwdncpKTtcbiAgICAgIG1hcmdpbi10b3A6IG1pbig0MnB4LCBjYWxjKDQyIC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgICBib3JkZXItcmFkaXVzOiBtaW4oOHB4LCBjYWxjKDggLyAxNDQwICogMTAwdncpKTtcbiAgICAgIGJveC1zaGFkb3c6IG1pbig0cHgsIGNhbGMoNCAvIDE0NDAgKiAxMDB2dykpIG1pbig0cHgsIGNhbGMoNCAvIDE0NDAgKiAxMDB2dykpIDAgMCB2YXIoLS1jb2xvci1icmFuZCk7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xcyBlYXNlO1xuICAgIH1cbiAgICAjY29udGFjdCAuaW5uZXIgLmJ0bjpob3ZlciB7XG4gICAgICB0cmFuc2xhdGU6IG1heCgtMnB4LCBjYWxjKC0yIC8gMTQ0MCAqIDEwMHZ3KSkgbWF4KC0ycHgsIGNhbGMoLTIgLyAxNDQwICogMTAwdncpKTtcbiAgICAgIGJveC1zaGFkb3c6IG1pbig2cHgsIGNhbGMoNiAvIDE0NDAgKiAxMDB2dykpIG1pbig2cHgsIGNhbGMoNiAvIDE0NDAgKiAxMDB2dykpIDAgMCB2YXIoLS1jb2xvci1icmFuZCk7XG4gICAgfVxuICB9XG4gICNjb250YWN0IC5pbm5lciAuYnRuIGltZyB7XG4gICAgd2lkdGg6IGNhbGMoMTUwIC8gMzkwICogMTAwdncpO1xuICB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICNjb250YWN0IC5pbm5lciAuYnRuIGltZyB7XG4gICAgICB3aWR0aDogbWluKDE4OHB4LCBjYWxjKDE4OCAvIDE0NDAgKiAxMDB2dykpO1xuICAgIH1cbiAgfVxuICAjY29udGFjdCAuaW5uZXIgLmltYWdlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IGNhbGMoOSAvIDM5MCAqIDEwMHZ3KTtcbiAgICBib3R0b206IDA7XG4gIH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgI2NvbnRhY3QgLmlubmVyIC5pbWFnZSB7XG4gICAgICByaWdodDogbWluKDZweCwgY2FsYyg2IC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgICBib3R0b206IDA7XG4gICAgfVxuICB9XG4gICNjb250YWN0IC5pbm5lciAuaW1hZ2UgaW1nIHtcbiAgICB3aWR0aDogY2FsYygxMzAgLyAzOTAgKiAxMDB2dyk7XG4gIH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgI2NvbnRhY3QgLmlubmVyIC5pbWFnZSBpbWcge1xuICAgICAgd2lkdGg6IG1pbigzNDBweCwgY2FsYygzNDAgLyAxNDQwICogMTAwdncpKTtcbiAgICB9XG4gIH1cbiAgZm9vdGVyIHtcbiAgICBtYXJnaW4tdG9wOiBjYWxjKDYyIC8gMzkwICogMTAwdncpO1xuICAgIHBhZGRpbmc6IGNhbGMoNDggLyAzOTAgKiAxMDB2dykgMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IGNhbGMoMTYgLyAzOTAgKiAxMDB2dyk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmxhY2spO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICBmb290ZXIge1xuICAgICAgbWFyZ2luLXRvcDogbWluKDE0MHB4LCBjYWxjKDE0MCAvIDE0NDAgKiAxMDB2dykpO1xuICAgICAgcGFkZGluZzogbWluKDQ4cHgsIGNhbGMoNDggLyAxNDQwICogMTAwdncpKSAwO1xuICAgICAgZ2FwOiBtaW4oMTZweCwgY2FsYygxNiAvIDE0NDAgKiAxMDB2dykpO1xuICAgIH1cbiAgfVxuICBmb290ZXIgaDEge1xuICAgIGZvbnQtc2l6ZTogY2FsYygyMCAvIDM5MCAqIDEwMHZ3KTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIGZvb3RlciBoMSB7XG4gICAgICBmb250LXNpemU6IG1pbigyMnB4LCBjYWxjKDIyIC8gMTQ0MCAqIDEwMHZ3KSk7XG4gICAgfVxuICB9XG4gIGZvb3RlciBwIHtcbiAgICBmb250LXNpemU6IGNhbGMoMTIgLyAzOTAgKiAxMDB2dyk7XG4gICAgbGluZS1oZWlnaHQ6IDI7XG4gIH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgZm9vdGVyIHAge1xuICAgICAgZm9udC1zaXplOiBtaW4oMTRweCwgY2FsYygxNCAvIDE0NDAgKiAxMDB2dykpO1xuICAgIH1cbiAgfVxufSIsImh0bWwsIGJvZHksIGRpdiwgc3BhbiwgYXBwbGV0LCBvYmplY3QsIGlmcmFtZSwgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcCwgYmxvY2txdW90ZSwgcHJlLCBhLCBhYmJyLCBhY3JvbnltLCBhZGRyZXNzLCBiaWcsIGNpdGUsIGNvZGUsIGRlbCwgZGZuLCBlbSwgaW1nLCBpbnMsIGtiZCwgcSwgcywgc2FtcCwgc21hbGwsIHN0cmlrZSwgc3Ryb25nLCBzdWIsIHN1cCwgdHQsIHZhciwgYiwgdSwgaSwgY2VudGVyLCBkbCwgZHQsIGRkLCBvbCwgdWwsIGxpLCBmaWVsZHNldCwgZm9ybSwgbGFiZWwsIGxlZ2VuZCwgdGFibGUsIGNhcHRpb24sIHRib2R5LCB0Zm9vdCwgdGhlYWQsIHRyLCB0aCwgdGQsIGFydGljbGUsIGFzaWRlLCBjYW52YXMsIGRldGFpbHMsIGVtYmVkLCBmaWd1cmUsIGZpZ2NhcHRpb24sIGZvb3RlciwgaGVhZGVyLCBoZ3JvdXAsIG1lbnUsIG5hdiwgb3V0cHV0LCBydWJ5LCBzZWN0aW9uLCBzdW1tYXJ5LCB0aW1lLCBtYXJrLCBhdWRpbywgdmlkZW8ge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbiAgZm9udDogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAxMDAlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5odG1sIHtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5vbCwgdWwge1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbn1cbmNhcHRpb24sIHRoLCB0ZCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5xLCBibG9ja3F1b3RlIHtcbiAgcXVvdGVzOiBub25lO1xufVxucTpiZWZvcmUsIHE6YWZ0ZXIsIGJsb2NrcXVvdGU6YmVmb3JlLCBibG9ja3F1b3RlOmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgY29udGVudDogbm9uZTtcbn1cbmEgaW1nIHtcbiAgYm9yZGVyOiBub25lO1xufVxuYXJ0aWNsZSwgYXNpZGUsIGRldGFpbHMsIGZpZ2NhcHRpb24sIGZpZ3VyZSwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgbWVudSwgbmF2LCBzZWN0aW9uLCBzdW1tYXJ5IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4iLCJcbiRicmVha3BvaW50czogKFxuICAnbWluJzogJ3ByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM3NHB4KScsXG4gICdzcCc6ICdwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzNzVweCknLFxuICAnc3BsJzogJ3ByaW50LCBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSBhbmQgKG9yaWVudGF0aW9uOmxhbmRzY2FwZSknLFxuICAndGInOiAncHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpJyxcbiAgJ3RibCc6ICdwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDgwcHgpJyxcbiAgJ3BjJzogJ3ByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE0NDBweCknLFxuICAncGNsYXJnZSc6ICdwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxOTIwcHgpJyxcbikgIWRlZmF1bHQ7XG5cbkBtaXhpbiBtcSgkYnJlYWtwb2ludDogdGIpIHtcbiAgQG1lZGlhICN7bWFwLWdldCgkYnJlYWtwb2ludHMsICRicmVha3BvaW50KX0ge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5AZnVuY3Rpb24gaXMtY3NzLXZhcigkdmFsdWUpIHtcbiAgJGZpcnN0LWNoYXJzOiBzdHItc2xpY2UoI3skdmFsdWV9LCAxLCAyKTtcbiAgQHJldHVybiAkZmlyc3QtY2hhcnMgPT0gJy0tJyBvciBzdHItaW5kZXgoI3skdmFsdWV9LCAndmFyKC0tJykgIT0gbnVsbDtcbn1cbkBtaXhpbiBwZCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuQG1peGluIGhvdmVyT3AoJG9wOjAuNjUpIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAuM3MgdmFyKC0tYmV6aWVyKTtcbiAgQG1lZGlhIChhbnktaG92ZXI6IGhvdmVyKSB7XG4gICAgJjpob3ZlciB7XG4gICAgICBvcGFjaXR5OiAkb3A7XG4gICAgfVxuICB9XG59XG5AbWl4aW4gaG92ZXJDb2xvcigkY29sb3IpIHtcbiAgdHJhbnNpdGlvbjogY29sb3IgLjNzIHZhcigtLWJlemllcik7XG4gIEBtZWRpYSAoYW55LWhvdmVyOiBob3Zlcikge1xuICAgICY6aG92ZXIge1xuICAgICAgQGlmIGlzLWNzcy12YXIoJGNvbG9yKSB7XG4gICAgICAgIEBpZiBzdHItaW5kZXgoI3skY29sb3J9LCAndmFyKCcpICE9IG51bGwge1xuICAgICAgICAgIGNvbG9yOiAjeyRjb2xvcn07XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIGNvbG9yOiB2YXIoI3skY29sb3J9KTtcbiAgICAgICAgfVxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5AbWl4aW4gY29udGFpbmVyKCR3aWR0aDoxMDI2cHgpIHtcbiAgcGFkZGluZy1sZWZ0OiB2dygtLWNvbnRhaW5lci1wYWRkaW5nLXNwKTtcbiAgcGFkZGluZy1yaWdodDogdncoLS1jb250YWluZXItcGFkZGluZy1zcCk7XG4gIEBpbmNsdWRlIG1xKCkge1xuICAgIHBhZGRpbmctbGVmdDogdW5zZXQ7XG4gICAgcGFkZGluZy1yaWdodDogdW5zZXQ7XG4gICAgbWFyZ2luLWlubGluZTogYXV0bztcbiAgICBAaWYgJHdpZHRoID09IHdpZGV7XG4gICAgICB3aWR0aDogcGMoMTI0MHB4KTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIHdpZHRoOiBwYygkd2lkdGgpO1xuICAgIH1cbiAgfVxufVxuQG1peGluIHBhZGRpbmdMUiB7XG4gIHBhZGRpbmctbGVmdDogdncoLS1jb250YWluZXItcGFkZGluZy1zcCk7XG4gIHBhZGRpbmctcmlnaHQ6IHZ3KC0tY29udGFpbmVyLXBhZGRpbmctc3ApO1xuICBAaW5jbHVkZSBtcSB7XG4gICAgcGFkZGluZy1sZWZ0OiB1bnNldDtcbiAgICBwYWRkaW5nLXJpZ2h0OiB1bnNldDtcbiAgfVxufVxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJG51bWJlcikge1xuICBAaWYgdHlwZS1vZigkbnVtYmVyKSA9PSAnbnVtYmVyJyBhbmQgbm90IHVuaXRsZXNzKCRudW1iZXIpIHtcbiAgICBAcmV0dXJuICRudW1iZXIgLyAoJG51bWJlciAqIDAgKyAxKTtcbiAgfVxuICBAcmV0dXJuICRudW1iZXI7XG59XG5cbkBmdW5jdGlvbiB2dygkcHgsICRiYXNlOiAzOTBweCkge1xuICBAaWYgaXMtY3NzLXZhcigkcHgpIHtcbiAgICBAaWYgc3RyLWluZGV4KCN7JHB4fSwgJ3ZhcignKSAhPSBudWxsIHtcbiAgICAgIEByZXR1cm4gY2FsYygjeyRweH0gLyAje3N0cmlwLXVuaXQoJGJhc2UpfSAqIDEwMHZ3KTtcbiAgICB9XG4gICAgQHJldHVybiBjYWxjKHZhcigjeyRweH0pIC8gI3tzdHJpcC11bml0KCRiYXNlKX0gKiAxMDB2dyk7XG4gIH1cblxuICAkdmFsdWU6ICRweDtcbiAgQGlmICh1bml0KCRweCkgIT0gJ3B4Jykge1xuICAgIEB3YXJuICd2dygp44Gu5byV5pWw44GrcHjku6XlpJbjga7lgKTjgpLmjIflrprjgZfjgabjgoLoqIjnrpfjgafjgY3jgb7jgZvjgpMnO1xuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9XG4gICR2YWx1ZTogY2FsYygje3N0cmlwLXVuaXQoJHB4KX0gLyAje3N0cmlwLXVuaXQoJGJhc2UpfSAqIDEwMHZ3KTtcbiAgQHJldHVybiAkdmFsdWU7XG59XG5cbkBmdW5jdGlvbiBwYygkcHgsICRiYXNlOiAxNDQwcHgpIHtcbiAgQGlmIGlzLWNzcy12YXIoJHB4KSB7XG4gICAgQGlmIHN0ci1pbmRleCgjeyRweH0sICd2YXIoJykgIT0gbnVsbCB7XG4gICAgICAkdnctdmFsdWU6IGNhbGMoI3skcHh9IC8gI3tzdHJpcC11bml0KCRiYXNlKX0gKiAxMDB2dyk7XG4gICAgICBAcmV0dXJuIG1pbihjYWxjKCN7JHB4fSAqIDFweCksICN7JHZ3LXZhbHVlfSk7XG4gICAgfVxuICAgICR2dy12YWx1ZTogY2FsYyh2YXIoI3skcHh9KSAvICN7c3RyaXAtdW5pdCgkYmFzZSl9ICogMTAwdncpO1xuICAgIEByZXR1cm4gbWluKGNhbGModmFyKCN7JHB4fSkgKiAxcHgpLCAjeyR2dy12YWx1ZX0pO1xuICB9XG5cbiAgJHZhbHVlOiAkcHg7XG4gIEBpZiAodW5pdCgkcHgpICE9ICdweCcpIHtcbiAgICBAd2FybiAncGMoKeOBruW8leaVsOOBq3B45Lul5aSW44Gu5YCk44KS5oyH5a6a44GX44Gm44KC6KiI566X44Gn44GN44G+44Gb44KTJztcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfVxuICAkdmFsdWU6IGNhbGMoI3tzdHJpcC11bml0KCRweCl9IC8gI3tzdHJpcC11bml0KCRiYXNlKX0gKiAxMDB2dyk7XG4gIEByZXR1cm4gbWluKCN7JHB4fSwgI3skdmFsdWV9KTtcbn1cblxuXG5AZnVuY3Rpb24gcGNtYXgoJHB4LCAkYmFzZTogMTQ0MHB4KSB7XG4gIEBpZiBpcy1jc3MtdmFyKCRweCkge1xuICAgIEBpZiBzdHItaW5kZXgoI3skcHh9LCAndmFyKCcpICE9IG51bGwge1xuICAgICAgJHZ3LXZhbHVlOiBjYWxjKCN7JHB4fSAvICN7c3RyaXAtdW5pdCgkYmFzZSl9ICogMTAwdncpO1xuICAgICAgQHJldHVybiBtYXgoY2FsYygjeyRweH0gKiAxcHgpLCAjeyR2dy12YWx1ZX0pO1xuICAgIH1cbiAgICAkdnctdmFsdWU6IGNhbGModmFyKCN7JHB4fSkgLyAje3N0cmlwLXVuaXQoJGJhc2UpfSAqIDEwMHZ3KTtcbiAgICBAcmV0dXJuIG1heChjYWxjKHZhcigjeyRweH0pICogMXB4KSwgI3skdnctdmFsdWV9KTtcbiAgfVxuXG4gICR2YWx1ZTogJHB4O1xuICBAaWYgKHVuaXQoJHB4KSAhPSAncHgnKSB7XG4gICAgQHdhcm4gJ3BjbWF4KCnjga7lvJXmlbDjgatweOS7peWkluOBruWApOOCkuaMh+WumuOBl+OBpuOCguioiOeul+OBp+OBjeOBvuOBm+OCkyc7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cbiAgJHZhbHVlOiBjYWxjKCN7c3RyaXAtdW5pdCgkcHgpfSAvICN7c3RyaXAtdW5pdCgkYmFzZSl9ICogMTAwdncpO1xuICBAcmV0dXJuIG1heCgjeyRweH0sICN7JHZhbHVlfSk7XG59XG5cblxuQG1peGluIHNwX3BjIHtcbiAgJi5zcCB7XG4gICAgQGluY2x1ZGUgbXEge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbiAgJi5wYyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBAaW5jbHVkZSBtcSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGhvdmVyT3AoJG9wOjAuNykge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4zcyB2YXIoLS1iZXppZXIpO1xuICAmOmhvdmVyIHtcbiAgICBvcGFjaXR5OiAkb3A7XG4gIH1cbn1cbkBtaXhpbiBob3ZlckNvbG9yKCRjb2xvcjp2YXIoLS1jb2xvci1icmFuZCkpIHtcbiAgdHJhbnNpdGlvbjogY29sb3IgLjNzIHZhcigtLWJlemllcik7XG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cbn1cblxuQG1peGluIGdyaWQoJGNvbHMsJGdhcC12ZXJ0LCRnYXAtaG9yaXopIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoJGNvbHMsIDFmcik7XG4gIGdyaWQtdGVtcGxhdGUtcm93czogcmVwZWF0KDEsIGF1dG8pO1xuICBncmlkLWdhcDogJGdhcC12ZXJ0ICRnYXAtaG9yaXo7XG59XG5cbkBtaXhpbiBjbGVhcmZpeCgpIHtcbiAgJjo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6ICcnO1xuICB9XG59XG5AbWl4aW4gc2VjdGlvbiB7XG4gIG1hcmdpbi10b3A6IHZ3KC0tbWFyZ2luLXNlY3Rpb24pO1xuICBAaW5jbHVkZSBtcSB7XG4gICAgbWFyZ2luLXRvcDogcGMoLS1tYXJnaW4tc2VjdGlvbi1wYyk7XG4gIH1cbn1cbkBtaXhpbiBtb2R1bGUge1xuICBtYXJnaW4tdG9wOiB2dygtLW1hcmdpbi1tb2R1bGUpO1xuICBAaW5jbHVkZSBtcSB7XG4gICAgbWFyZ2luLXRvcDogcGMoLS1tYXJnaW4tbW9kdWxlLXBjKTtcbiAgfVxufVxuQG1peGluIHBhcnRzIHtcbiAgbWFyZ2luLXRvcDogdncoLS1tYXJnaW4tcGFydHMpO1xuICBAaW5jbHVkZSBtcSB7XG4gICAgbWFyZ2luLXRvcDogcGMoLS1tYXJnaW4tcGFydHMtcGMpO1xuICB9XG59XG5AbWl4aW4gaGVhZGluZy1zbWFsbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuICBmb250LXNpemU6IHZ3KC0tZnMtbSk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC14c21hbGwpO1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gMWZyO1xuICBnYXA6IHZ3KDhweCk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci10aGlyZC13ZWFrKTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5LWVuKTtcbiAgQGluY2x1ZGUgbXEge1xuICAgIGZvbnQtc2l6ZTogcGMoLS1mcy14bCk7XG4gICAgZ2FwOiBwYygxNnB4KTtcbiAgfVxuICAmOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMWxoO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2ltYWdlcy9pY29uX2hlYWRpbmcuc3ZnJyk7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMC4xZW0pO1xuICAgIHdpZHRoOiB2dygxMHB4KTtcbiAgICBAaW5jbHVkZSBtcSgpIHtcbiAgICAgIHdpZHRoOiBwYygxNnB4KTtcbiAgICB9XG4gIH1cbn1cblxuXG5AbWl4aW4gZnMoJGZ0cywgJGxpbjogMTQsJGxzOjApIHtcbiAgJHJlbTogY2FsYygkZnRzIC8gMTApO1xuICAkbGluUzogY2FsYygkbGluIC8gJGZ0cyk7XG4gICRsc206IGNhbGMoJGxzICogMC4wMDEpO1xuICBmb250LXNpemU6ICN7JGZ0c31weDtcbiAgZm9udC1zaXplOiAjeyRyZW19cmVtO1xuICBsaW5lLWhlaWdodDogJGxpblM7XG4gIGxldHRlci1zcGFjaW5nOiAjeyRsc219ZW07XG4gIFxufVxuXG5AbWl4aW4gdGV4dCgkc2l6ZTptZWRpdW0pe1xuICBAaWYgJHNpemUgPT0geHhzbWFsbCB7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5LWVuKTtcbiAgICBAaW5jbHVkZSBmcygxMCwxNiw1MCk7XG4gICAgQGluY2x1ZGUgbXEodGJsKSB7XG4gICAgICBAaW5jbHVkZSBmcygxMiwxOCw1MCk7XG4gICAgfVxuICB9XG4gIEBpZiAkc2l6ZSA9PSB4c21hbGwge1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseS1lbik7XG4gICAgQGluY2x1ZGUgZnMoMTEsMTgsNTApO1xuICAgIEBpbmNsdWRlIG1xKHRibCkge1xuICAgICAgQGluY2x1ZGUgZnMoMTMsMjEsNTApO1xuICAgIH1cbiAgfVxuICBAaWYgJHNpemUgPT0gc21hbGwge1xuICAgIEBpbmNsdWRlIGZzKDEyLDIyLDUwKTtcbiAgICBAaW5jbHVkZSBtcSh0YmwpIHtcbiAgICAgIEBpbmNsdWRlIGZzKDE0LDI4LDUwKTtcbiAgICB9XG4gIH1cbiAgQGlmICRzaXplID09IG1lZGl1bSB7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5LWVuKTtcbiAgICBAaW5jbHVkZSBmcygxNSwyOCw1MCk7XG4gICAgQGluY2x1ZGUgbXEodGJsKSB7XG4gICAgICBAaW5jbHVkZSBmcygxNiwzNCw1MCk7XG4gICAgfVxuICB9XG4gIEBpZiAkc2l6ZSA9PSBsYXJnZSB7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5LWVuKTtcbiAgICBAaW5jbHVkZSBmcygxNiwzMCw1MCk7XG4gICAgQGluY2x1ZGUgbXEodGJsKSB7XG4gICAgICBAaW5jbHVkZSBmcygxOCwzMiw1MCk7XG4gICAgfVxuICB9XG4gIEBpZiAkc2l6ZSA9PSB4bGFyZ2Uge1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseS1lbik7XG4gICAgQGluY2x1ZGUgZnMoMTgsMzIsNTApO1xuICAgIEBpbmNsdWRlIG1xKHRibCkge1xuICAgICAgQGluY2x1ZGUgZnMoMjAsMzQsNTApO1xuICAgIH1cbiAgfVxuICBAaWYgJHNpemUgPT0gY2FwdGlvbiB7XG4gICAgQGluY2x1ZGUgZnMoMTEsMTgsNTApO1xuICAgIGNvbG9yOiAkZ3JheTtcbiAgICBAaW5jbHVkZSBtcSh0YmwpIHtcbiAgICAgIEBpbmNsdWRlIGZzKDEzLDIxLDUwKTtcbiAgICB9XG4gIH1cbiAgQGlmICRzaXplID09IGhlYWRpbmctbGFyZ2Uge1xuICAgIGZvbnQtZmFtaWx5OnZhcigtLWZvbnQtZmFtaWx5LWVuKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG4gICAgQGluY2x1ZGUgZnMoMjAsMzQsNTApO1xuICAgIEBpbmNsdWRlIG1xKHRibCkge1xuICAgICAgQGluY2x1ZGUgZnMoMzIsNTgsNTApO1xuICAgIH1cbiAgfVxuICBAaWYgJHNpemUgPT0gaGVhZGluZy1tZWRpdW0ge1xuICAgIGZvbnQtZmFtaWx5OnZhcigtLWZvbnQtZmFtaWx5LWVuKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG4gICAgQGluY2x1ZGUgZnMoMTcsMjUsMTAwKTtcbiAgICBAaW5jbHVkZSBtcSh0YmwpIHtcbiAgICAgIEBpbmNsdWRlIGZzKDI2LDQ2LDEwMCk7XG4gICAgfVxuICB9XG4gIEBpZiAkc2l6ZSA9PSBoZWFkaW5nLXNtYWxsIHtcbiAgICBmb250LWZhbWlseTp2YXIoLS1mb250LWZhbWlseS1lbik7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuICAgIEBpbmNsdWRlIGZzKDE0LDIwLDEwMCk7XG4gICAgQGluY2x1ZGUgbXEodGJsKSB7XG4gICAgICBAaW5jbHVkZSBmcygyMCwzMCwxMDApO1xuICAgIH1cbiAgfVxuICBAaWYgJHNpemUgPT0gaGVhZGluZy14c21hbGwge1xuICAgIGZvbnQtZmFtaWx5OnZhcigtLWZvbnQtZmFtaWx5LWVuKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG4gICAgQGluY2x1ZGUgZnMoMTQsMjAsMTAwKTtcbiAgICBAaW5jbHVkZSBtcSh0YmwpIHtcbiAgICAgIEBpbmNsdWRlIGZzKDIwLDMwLDEwMCk7XG4gICAgfVxuICB9XG4gIEBpZiAkc2l6ZSA9PSBoZWFkaW5nLXh4c21hbGwge1xuICAgIGZvbnQtZmFtaWx5OnZhcigtLWZvbnQtZmFtaWx5LWVuKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG4gICAgQGluY2x1ZGUgZnMoMTQsMjAsMTAwKTtcbiAgICBAaW5jbHVkZSBtcSh0YmwpIHtcbiAgICAgIEBpbmNsdWRlIGZzKDIwLDMwLDEwMCk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBzbGlja2RvdHMoJHdpZHRoOjhweCwkaGVpZ2h0OjhweCkge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGxpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDAgNXB4O1xuICAgIGJ1dHRvbiB7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1zdXJmYWNlKTtcbiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGhlaWdodDogJGhlaWdodDtcbiAgICAgIHdpZHRoOiAkd2lkdGg7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICB9XG4gICAgJi5zbGljay1hY3RpdmUge1xuICAgICAgYnV0dG9uIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItdGhpcmQtd2Vhayk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiB0b3BtYXJnaW4oJHNpemU6bWVkaXVtKXtcbiAgbWFyZ2luLXRvcDogNDBweDtcbiAgQGluY2x1ZGUgbXEodGJsKSB7XG4gICAgbWFyZ2luLXRvcDogNjBweDtcbiAgfVxuICBAaWYgJHNpemUgPT0gc21hbGwge1xuICAgIG1hcmdpbi10b3A6IDI1cHg7XG4gICAgQGluY2x1ZGUgbXEodGJsKSB7XG4gICAgICBtYXJnaW4tdG9wOiA0MHB4O1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkc2l6ZSA9PSBsYXJnZSB7XG4gICAgbWFyZ2luLXRvcDogNjBweDtcbiAgICBAaW5jbHVkZSBtcSh0YmwpIHtcbiAgICAgIG1hcmdpbi10b3A6IDgwcHg7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRzaXplID09IHhsYXJnZSB7XG4gICAgbWFyZ2luLXRvcDogODBweDtcbiAgICBAaW5jbHVkZSBtcSh0YmwpIHtcbiAgICAgIG1hcmdpbi10b3A6IDEwMHB4O1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkc2l6ZSA9PSB4eGxhcmdlIHtcbiAgICBtYXJnaW4tdG9wOiAxMDBweDtcbiAgICBAaW5jbHVkZSBtcSh0YmwpIHtcbiAgICAgIG1hcmdpbi10b3A6IDEyMHB4O1xuICAgIH1cbiAgfVxufVxuXG5cbkBtaXhpbiBoZWFkaW5nTFAge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGkge1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcbiAgICBAaW5jbHVkZSBmcygxNiwyMiw1MCk7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgQGluY2x1ZGUgbXEodGJsKSB7XG4gICAgICBAaW5jbHVkZSBmcygxOCwyNSw1MCk7XG4gICAgfVxuICB9XG4gIGgxIHtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG4gICAgQGluY2x1ZGUgZnMoMzAsMzYsNTApO1xuICAgIEBpbmNsdWRlIG1xKHRibCkge1xuICAgICAgQGluY2x1ZGUgZnMoMzYsNDYsNTApO1xuICAgIH1cbiAgfVxuICBwIHtcbiAgICBtYXJnaW4tdG9wOiAzMHB4O1xuICAgIEBpbmNsdWRlIGZzKDE0LDI0LDUwKTtcbiAgICBAaW5jbHVkZSBtcSh0YmwpIHtcbiAgICAgIEBpbmNsdWRlIGZzKDE2LDMyLDUwKTtcbiAgICB9XG4gIH1cbn0iLG51bGxdfQ== */
