/* Vendor css and variables */
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
/* Document
   ========================================================================== */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
}
/* Sections
   ========================================================================== */
/**
 * Remove the margin in all browsers.
 */
body {
  margin: 0;
}
/**
 * Render the `main` element consistently in IE.
 */
main {
  display: block;
}
/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}
/* Grouping content
   ========================================================================== */
/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
  -webkit-box-sizing: content-box;
          box-sizing: content-box; /* 1 */
  height: 0; /* 1 */
  overflow: visible; /* 2 */
}
/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}
/* Text-level semantics
   ========================================================================== */
/**
 * Remove the gray background on active links in IE 10.
 */
a {
  background-color: transparent;
}
/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  border-bottom: none; /* 1 */
  text-decoration: underline; /* 2 */
  text-decoration: underline;
  -webkit-text-decoration: underline dotted currentColor;
          text-decoration: underline dotted currentColor; /* 2 */
}
/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
  font-weight: bolder;
}
/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}
/**
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%;
}
/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sub {
  bottom: -0.25em;
}
sup {
  top: -0.5em;
}
/* Embedded content
   ========================================================================== */
/**
 * Remove the border on images inside links in IE 10.
 */
img {
  border-style: none;
}
/* Forms
   ========================================================================== */
/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-size: 100%; /* 1 */
  line-height: 1.15; /* 1 */
  margin: 0; /* 2 */
}
/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input { /* 1 */
  overflow: visible;
}
/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select { /* 1 */
  text-transform: none;
}
/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
button,
[type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
}
/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}
/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText;
}
/**
 * Correct the padding in Firefox.
 */
fieldset {
  padding: 0.35em 0.75em 0.625em;
}
/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */
legend {
  -webkit-box-sizing: border-box;
          box-sizing: border-box; /* 1 */
  color: inherit; /* 2 */
  display: table; /* 1 */
  max-width: 100%; /* 1 */
  padding: 0; /* 3 */
  white-space: normal; /* 1 */
}
/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  vertical-align: baseline;
}
/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
  overflow: auto;
}
/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */
[type="checkbox"],
[type="radio"] {
  -webkit-box-sizing: border-box;
          box-sizing: border-box; /* 1 */
  padding: 0; /* 2 */
}
/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}
/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type="search"] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}
/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}
/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}
/* Interactive
   ========================================================================== */
/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
  display: block;
}
/*
 * Add the correct display in all browsers.
 */
summary {
  display: list-item;
}
/* Misc
   ========================================================================== */
/**
 * Add the correct display in IE 10+.
 */
template {
  display: none;
}
/**
 * Add the correct display in IE 10.
 */
[hidden] {
  display: none;
}
/* Customized for OUR design */
/* Core css and variables */
/*----------------------------------------------------------------------------
 *
 * Colors
 *
 *---------------------------------------------------------------------------*/
:root {

    /* Colors with "-our-" in their name are sourced from the OUR brand guidelines. Pulled from Bookworms web. */

    --our-primary-orange:       rgb(252,76,2);    /* #FC4C02 */
    --our-globalnav-orange:     rgb(241,89,42);   /* #F1592A  - a less bright, WCAG AA+ compliant orange */
    --aa-orange:                rgb(215,65,2);    /* #d74102 - AA orange with white — used in the CMS, skews reddish */
    --our-primary-yellow:       rgb(255,184,28);  /* #FFB81C */
    --our-primary-gray:         rgb(110,98,89);   /* #6E6259 */
    --our-primary-dark-gray:    rgb(69,53,54);    /* #453536 */
    --gray:                     rgb(200,200,200);
    --accessible-gray:          rgb(119,119,119); /* The lightest gray that is accessible at < 18px text on white */
    --light-gray:               rgb(241,241,241);
    --sticky-note-yellow:       #fdf4a4; /* Used only for the annotations in the teacher manual, or similar future components */
    --teal:                     #008470; /* A secondary accent color, used for announcement and message backgrounds on the landing pages */

    /* Neutral and accent color variables */

    --black:      #000000;
    --text:       var(--our-primary-dark-gray);
    --dark-gray:  #4c4c4c; /* 70% black */
    --med-gray:   #bfbfbf; /* 25% black */
    --light-gray: #ebebeb; /* 8% black */
    --white:      #ffffff;
    --accent:     var(--aa-orange);
    --accent-large:     var(--our-globalnav-orange);
    --accent-alt: var(--teal);
    --wormsy:                   rgb(81, 187, 114); /* #51BB72 */
    --wormsy-aa:                rgb(52, 133, 78);  /* #34854e */
    --wormsy-aa-large:          rgb(66, 168, 98);  /* #42a862 */

}
/*----------------------------------------------------------------------------
 *
 * Fonts
 *
 *---------------------------------------------------------------------------*/
:root {
  --font-family-text: 'Roboto', 'Trebuchet MS', Trebuchet, Tahoma, sans-serif; /* Default text, Global Nav, Curriculum Nav, Buttons… 400,500,700 weight */
  --font-family-text-alt: 'Source Sans Pro', sans-serif; /* Default text for index. 400, 600, 700 weight */
  --font-family-display: agenda-one, sans-serif; /* Headings — 600, 700 */
}
/*----------------------------------------------------------------------------
 *
 * Sizes
 *
 *---------------------------------------------------------------------------*/
/* Font and Foundational Modular Sizes */
:root {
  --alpha:            2.4rem;                /* Eg. Banners and Text Treated Like Large Graphics */
  --beta:             1.784rem;              /* Eg. H2ish Headings */
  --gamma:            1.2rem;              /* Eg. H3ish Headings */
  --rem:              100%;                  /* Eg. Foundation for all type, margin, and padding sizes */
  --delta:            1rem;                  /* Eg. H4ish Headings */
  --base:             1rem;                  /* Eg. Body font */
  --epsilon:          .9rem;                 /* Eg. Standards tags */
  --zeta:             .833rem;               /* DO NOT EDIT — Used in curriculum nav and breadcrumb nav */
  --eta:              .75rem;                /* Reserved for fine print and informationally dense elements like tables */

}
/* Content Area Related Sizes */
:root {
  --measure: 40rem;
  --content-width: 48rem;
}
/* Viewport Width Variables */
:root {

  --bp-nano-minus:   319px;
  --bp-nano:         320px;
  --bp-micro-minus:  410px;
  --bp-micro:        411px;
  --bp-min-minus:    536px;
  --bp-min:          537px;
  --bp-mid-minus:    767px;
  --bp-mid:          768px;
  --bp-mega-minus:   1023px;
  --bp-mega:         1024px;
  --bp-max-minus:    1319px;
  --bp-max:          1320px

}
/* Custom Media Declarations for Breakpoints */
/*----------------------------------------------------------------------------
 *
 * TYPOGRAPHY
 *
 *---------------------------------------------------------------------------*/
html {
  font-size: 100%;
  font-size: var(--rem);
  font-family: 'Roboto', 'Trebuchet MS', Trebuchet, Tahoma, sans-serif;
  font-family: var(--font-family-text);
  font-style: normal;
  font-weight: 400;
  -webkit-text-size-adjust: none;
     -moz-text-size-adjust: none;
      -ms-text-size-adjust: none;
          text-size-adjust: none;

  /* Fluid type size from 16px to 20px between --bp-min and --bp-max breakpoints */
}
@media (min-width: 537px) {
    html {
      font-size: 1em; /* 16px at 320px */
      font-size: calc(1em + 0.4vw - 1.28px);
    }
  }
@media (min-width: 1320px) {
    html {
      font-size: 1.25em; /* 20px at 1320px */
    }
  }
body {
  line-height: 1.35;
  color: rgb(69,53,54);
  color: var(--text);

  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;

  /* Fluid line-height from 1.35 to 1.45 between $bp-min and $bp-max breakpoints */
}
@media (min-width: 537px) {
    body {
      line-height: 1.35; /* 1.35 at 320px */
      line-height: calc(1.35em + 0.01vw - 0.032px);
    }
  }
@media (min-width: 1320px) {
    body {
      line-height: 1.45; /* 1.45 at 1320px */
    }
  }
a {
  color: rgb(69,53,54);
  color: var(--text);
}
a:hover {
     color: rgb(241,89,42);
     color: var(--our-globalnav-orange);
     text-decoration-color: color(rgb(252,76,2) a(25%));
     text-decoration-color: color(var(--our-primary-orange) a(25%));
  }
strong, b {
  font-weight: 600;
}
/*
     HEADING and TEXT SIZES
*/
h1,h2,h3,h4,h5,h6 {
  -webkit-hyphens: none;
      -ms-hyphens: none;
          hyphens: none;
}
.hed-alpha,
.hed-beta,
.hed-gamma,
.hed-delta,
.hed-epsilon,
.hed-zeta,
[class|=hed-sequence] {
  font-weight: normal;
  font-style: normal;
  display: block;
  margin-bottom: .5em;
  line-height: 1.1;
  page-break-after: avoid;
  -webkit-hyphens: none;
      -ms-hyphens: none;
          hyphens: none;
}
.hed-alpha,
.hed-beta,
.hed-gamma,
[class|=hed-sequence] {
  margin-top: 3rem;
}
.hed-delta,
.hed-epsilon,
.hed-zeta {
  margin-top: 2rem;
}
[class*=hed-]:not(span) + [class*=hed-]:not(span) {
  margin-top: 1rem;
}
.hed-alpha {
  font-family: agenda-one, sans-serif;
  font-family: var(--font-family-display);
  font-weight: 700;
  font-size: 2.4rem;
  font-size: var(--alpha);
  color: var(--deep);
}
.hed-beta {
  font-family: agenda-one, sans-serif;
  font-family: var(--font-family-display);
  font-weight: 700;
  font-size: 1.784rem;
  font-size: var(--beta);
  color: var(--primary);
}
.hed-gamma {
  font-family: agenda-one, sans-serif;
  font-family: var(--font-family-display);
  font-weight: 700;
  font-size: 1.2rem;
  font-size: var(--gamma);
  color: rgb(69,53,54);
  color: var(--text);
}
.hed-delta {
  font-family: agenda-one, sans-serif;
  font-family: var(--font-family-display);
  font-weight: 600;
  font-size: 1rem;
  font-size: var(--delta);
  color: rgb(69,53,54);
  color: var(--text);
  margin-bottom: 1rem;
}
.hed-epsilon {
  font-size: .9rem;
  font-size: var(--epsilon);
  font-weight: 600;
  color: rgb(69,53,54);
  color: var(--text);
}
.hed-zeta {
  font-size: .833rem;
  font-size: var(--zeta);
  font-weight: 600;
  color: rgb(69,53,54);
  color: var(--text);
}
.text-epsilon {
  font-size: .9rem;
  font-size: var(--epsilon);
}
.text-zeta {
  font-size: .833rem;
  font-size: var(--zeta);
}
.is-text-color {
  color: rgb(69,53,54);
  color: var(--text);
}
/*
     PARAGRAPHS
*/
p {
  margin: 0 0 1rem;
  orphans: 2;
  widows: 2;
}
p:last-child {
  margin-bottom: 0;
}
/*
     LISTS AND VARIATIONS
*/
ul {
  margin: 1rem 0 1rem 1rem;
  padding: 0;
  orphans: 2;
  widows: 2;
}
ul ul,
ol ol {
  margin-top: .5rem;
}
li > p + ul {
  margin-top: -.5rem;
}
ol {
  margin: 1rem 0 1rem 1rem;
  padding: 0;
  orphans: 2;
  widows: 2;
}
li {
  margin-bottom: .5rem;
}
li:last-child {
  margin-bottom: 0;
}
/* Helpers */
.h-hide-cms-content-during-development { /* @TODO delete rule after development */
  display: none;
}
@media (min-width: 537px) {
  .h-nobr {
      white-space: nowrap;
  }
}
.h-url-wrap { /* allow URLs displayed inline to wrap */
  word-wrap: break-word;
}
.h-show-inline-bp-min {
  display: none;
}
@media (min-width: 537px) {
    .h-show-inline-bp-min {
      display: inline;
    }
  }
.h-flush-top {
  margin-top: 0;
  padding-top: 0;
}
.h-flush-bottom {
  margin-bottom: 0;
  padding-bottom: 0;
}
/* ----------------------------------------------------------------------------
 *
 * BUTTONS
 *
 * ------------------------------------------------------------------------- */
.c-button {
  background-color: rgb(215,65,2);
  background-color: var(--accent);
  border: 0.0625rem solid rgb(215,65,2);
  border: 0.0625rem solid var(--accent);
  border-radius: 0.25rem;
  color: #ffffff;
  color: var(--white);
  cursor: pointer;
  display: inline-block;
  font-weight: 500;
  height: 2.375rem;
  line-height: 2.375rem;
  padding: 0 1.875rem;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  -moz-appearance: none;
       appearance: none;
  margin: .25rem .5rem .25rem 0;
  -webkit-appearance: none;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
@media (min-width: 768px) {
    .c-button {
      font-size: .9rem;
      font-size: var(--epsilon);
    }
  }
.c-button_small {
  height: 2.375em;
  line-height: 2.375em;
  padding: 0 1.875em;
  font-size: .75rem;
  font-size: var(--eta);
}
.c-button:first-of-type {
  margin-left: 0;
}
.c-button:focus,
.c-button:hover {
  background-color: rgb(241,89,42);
  background-color: var(--accent-large);
  border-color: rgb(241,89,42);
  border-color: var(--accent-large);
  color: #fff;
  outline: 0;
}
.c-button[disabled] {
  cursor: default;
  opacity: .4;
}
.c-button[disabled]:focus,
.c-button[disabled]:hover {
  background-color: rgb(215,65,2);
  background-color: var(--accent);
  border-color: rgb(215,65,2);
  border-color: var(--accent);
}
.c-button_beefy {
  padding: .125rem 2.5rem;
  height: auto;
}
.c-button_wormsy {
  background-color: rgb(52, 133, 78);
  background-color: var(--wormsy-aa);
  border-color: rgb(52, 133, 78);
  border-color: var(--wormsy-aa);
}
.c-button_wormsy:focus,
.c-button_wormsy:hover {
  background-color: rgb(66, 168, 98);
  background-color: var(--wormsy-aa-large);
  border-color: rgb(66, 168, 98);
  border-color: var(--wormsy-aa-large);
}
.c-button_wormsy-grade {
  min-width: 7rem;
  padding-left: 1rem;
  padding-right: 1rem;
}
.c-button_reverse {
  background-color: #ffffff;
  background-color: var(--white);
  border: 0.0625rem solid #ffffff;
  border: 0.0625rem solid var(--white);
  color: rgb(215,65,2);
  color: var(--accent);
}
.c-button_reverse:focus,
.c-button_reverse:hover {
  background-color: #ffffff;
  background-color: var(--white);
  border-color: #ffffff;
  border-color: var(--white);
  color: rgb(241,89,42);
  color: var(--accent-large);
}
.c-button_outline {
  background-color: transparent;
  color: rgb(215,65,2);
  color: var(--accent);
}
.c-button_outline:focus,
.c-button_outline:hover {
  background-color: transparent;
  border-color: rgb(241,89,42);
  border-color: var(--accent-large);
  color: rgb(241,89,42);
  color: var(--accent-large);
}
.c-button-outline[disabled]:focus,
.c-button-outline[disabled]:hover {
  border-color: inherit;
  color: rgb(215,65,2);
  color: var(--accent);
}
.c-button_outline-reverse {
  background-color: transparent;
  border-color: #ebebeb;
  border-color: var(--light-gray);
  color: #ebebeb;
  color: var(--light-gray);
}
.c-button_outline-reverse:focus,
.c-button_outline-reverse:hover {
  background-color: transparent;
  border-color: #ffffff;
  border-color: var(--white);
  color: #ffffff;
  color: var(--white);
}
.c-button-outline-reverse[disabled]:focus,
.c-button-outline-reverse[disabled]:hover {
  border-color: inherit;
  color: #ebebeb;
  color: var(--light-gray);
}
.c-button_clear {
  background-color: transparent;
  border-color: transparent;
  color: rgb(215,65,2);
  color: var(--accent);
}
.c-button_clear:focus,
.c-button_clear:hover {
  background-color: transparent;
  border-color: transparent;
  color: rgb(241,89,42);
  color: var(--accent-large);
}
.c-button_clear[disabled]:focus,
.c-button_clear[disabled]:hover {
  color: rgb(215,65,2);
  color: var(--accent);
}
.c-button_clear-reverse {
  background-color: transparent;
  border-color: transparent;
  color: #ebebeb;
  color: var(--light-gray);
}
.c-button_clear-reverse:focus,
.c-button_clear-reverse:hover {
  background-color: transparent;
  border-color: transparent;
  color: #ffffff;
  color: var(--white);
}
.c-button_clear-reverse[disabled]:focus,
.c-button_clear-reverse[disabled]:hover {
  color: #ebebeb;
  color: var(--light-gray);
}
.c-button .c-icon {
  margin-right: .5ch;
  font-size: 1.2em;
  margin-left: -1ch;
}
.c-button.has-icon-before::before,
.c-button.has-icon-after::after {
  font-size: 1.1em;
  line-height: 0;
}
/* Layout */
/*----------------------------------------------------------------------------
 *
 * LAYOUT
 *
 *---------------------------------------------------------------------------*/
body {
  margin: 0;
  padding: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  min-height: 100vh;
}
.l-header {

}
.l-header_bookworms {
  -webkit-box-flex: 1;
      -ms-flex: 1 0 auto;
          flex: 1 0 auto;
  position: relative;
}
.l-header_el-k8 {
  -webkit-box-flex: 1;
      -ms-flex: 1 0 auto;
          flex: 1 0 auto;
  position: relative;
}
.l-header_el-k5-2025 {
  -webkit-box-flex: 1;
      -ms-flex: 1 0 auto;
          flex: 1 0 auto;
  position: relative;
}
.l-header_el-skills-block-2024 {
  -webkit-box-flex: 1;
      -ms-flex: 1 0 auto;
          flex: 1 0 auto;
  position: relative;
}
.l-banner__inner-columns {
  margin: 0;
  padding: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
@media (min-width: 768px) {
    .l-banner__inner-columns {
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
          -ms-flex-direction: row;
              flex-direction: row;
      -webkit-box-align: end;
          -ms-flex-align: end;
              align-items: flex-end;
    }
  }
@media (min-width: 768px) {
    .l-banner__inner-left-column {
        -webkit-box-flex: 1;
            -ms-flex: 1 0 45%;
                flex: 1 0 45%;
        width: 45%;
        text-align: left;
        margin-right: 2rem;
    }
  }
.l-banner__inner-left-column p {
  margin: 1rem 0;
}
.l-banner__inner-left-column p:first-child {
    margin-top: 0;
  }
@media (min-width: 768px) {
    .l-banner__inner-left-column p:last-child {
      margin-bottom: 0;
    }
  }
.l-banner__inner-right-column {
  width: 100%;
}
@media (min-width: 768px) {
    .l-banner__inner-right-column {
      -webkit-box-flex: 1;
          -ms-flex: 1 0 45%;
              flex: 1 0 45%;
      width: 45%;
    }
  }
.l-main {
  padding: 1rem 1rem 2rem;
}
.l-content {
  width: 100%;
  max-width: 48rem;
  max-width: var(--content-width);
  margin: 1rem auto;
}
@media (min-width: 537px) {
    .l-content_golden-columns {
      margin: 2rem auto;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: start;
          -ms-flex-align: start;
              align-items: flex-start;
      -webkit-box-pack: justify;
          -ms-flex-pack: justify;
              justify-content: space-between;
    }
  }
@media (min-width: 768px) {
    .l-content_golden-columns {
      -webkit-box-align: stretch;
          -ms-flex-align: stretch;
              align-items: stretch;
      margin: 3rem auto;
    }
  }
.l-content_golden-columns .c-button {
  margin-bottom: 0;
}
.l-content__golden-column-a > *:first-child {
    margin-top: 0;
  }
@media (min-width: 537px) {
    .l-content__golden-column-a {
      -webkit-box-flex: 1;
          -ms-flex: 1 0 45%;
              flex: 1 0 45%;
      width: 45%;
      margin-right: 2rem;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column;
    }
    .l-content__golden-column-a > *:last-child {
      margin-top: auto;
      margin-bottom: 0;
    }
  }
@media (min-width: 537px) {
    .l-content__golden-column-b {
      -webkit-box-flex: 1;
          -ms-flex: 1 0 45%;
              flex: 1 0 45%;
      width: 45%;
    }
    .l-content__golden-column-b > *:first-child {
      margin-top: 0;
    }
  }
.l-footer {
  margin-top: auto;
  background: rgb(69,53,54);
  background: var(--our-primary-dark-gray);
}
.l-list-of-buttons {
  list-style: none;
  margin: 0;
  padding: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}
.l-list-of-buttons li {
  margin-bottom: 0;
}
.is-hidden {
  display: none;
}
.l-index-wrapper {
  background: rgb(241,89,42);
  background: var(--accent-large);
  background:
    url(/assets/forms/texture-regform-white15-4efd336d027f8a7e31beafddabfae3af2af5f5bcaee38cbd560051209aa46d28.svg),
    -webkit-gradient(linear, left top, left bottom, from(rgb(241,89,42)), color-stop(18.75rem, rgb(241,89,42)), color-stop(18.75rem, #ffffff),  to(#ffffff));
  background:
    url(/assets/forms/texture-regform-white15-4efd336d027f8a7e31beafddabfae3af2af5f5bcaee38cbd560051209aa46d28.svg),
    linear-gradient(rgb(241,89,42) 0%, rgb(241,89,42) 18.75rem, #ffffff 18.75rem,  #ffffff 100%);
  background:
    url(/assets/forms/texture-regform-white15-4efd336d027f8a7e31beafddabfae3af2af5f5bcaee38cbd560051209aa46d28.svg),
    -webkit-gradient(linear, left top, left bottom, from(var(--accent-large)), color-stop(18.75rem, var(--accent-large)), color-stop(18.75rem, var(--white)),  to(var(--white)));
  background:
    url(/assets/forms/texture-regform-white15-4efd336d027f8a7e31beafddabfae3af2af5f5bcaee38cbd560051209aa46d28.svg),
    linear-gradient(var(--accent-large) 0%, var(--accent-large) 18.75rem, var(--white) 18.75rem,  var(--white) 100%);
  min-height: 20rem;
  background-size:
    67rem,
    100%;
  background-repeat:
    repeat-x,
    no-repeat;
  background-blend-mode:
    overlay,
    normal;
}
/* Components */
/*----------------------------------------------------------------------------
 *
 * BANNER
 *
 *---------------------------------------------------------------------------*/
.c-banner {
  background-color: rgba(21,11,73,0.81); /* #150B49 */
  color: #ffffff;
  color: var(--white);
  padding: 4rem 1rem;
}
.c-banner_odell-hs-ela {
  background-color: rgba(47,55,118,0.81); /* #2f3776*/
  background-image:
    -webkit-gradient(linear, left top, right top, from(rgba(47,55,118,0.81)), to(rgba(47,55,118,0.81))), /* Set as a flat, non-changing gradient in order to layer this color like an image */
    url(/assets/publications/odell-hs-ela_background50Q-845797bd6b95c0061d5da0d34c2198d9998c6e870402c0b0389b1486117ff5b6.jpg);
  background-image:
    linear-gradient(90deg, rgba(47,55,118,0.81) 0%, rgba(47,55,118,0.81) 100%), /* Set as a flat, non-changing gradient in order to layer this color like an image */
    url(/assets/publications/odell-hs-ela_background50Q-845797bd6b95c0061d5da0d34c2198d9998c6e870402c0b0389b1486117ff5b6.jpg);
  background-size:
    cover,
    cover;
  padding: 4rem 1rem 6rem; /* Beefy padding since there is so little in the banner. */
}
.c-banner_ca-k8-math {
  background-color: rgba(21,11,73,0.81); /* #150B49 */
  background-image:
    -webkit-gradient(linear, left top, right top, from(rgba(21,11,73,0.81)), to(rgba(21,11,73,0.81))), /* Set as a flat, non-changing gradient in order to layer this color like an image */
    url(/assets/publications/ca-k8-math_background-20b1ff8c7fcfbe87fa33684ca9bc4dbd07fd1e8dc9439c70ae1714e057727305.jpg);
  background-image:
    linear-gradient(90deg, rgba(21,11,73,0.81) 0%, rgba(21,11,73,0.81) 100%), /* Set as a flat, non-changing gradient in order to layer this color like an image */
    url(/assets/publications/ca-k8-math_background-20b1ff8c7fcfbe87fa33684ca9bc4dbd07fd1e8dc9439c70ae1714e057727305.jpg);
  background-size:
    cover,
    cover;
}
.c-banner_our6-8math {
  background-color: rgba(21,11,73,0.81); /* #150B49 */
  background-image:
    -webkit-gradient(linear, left top, right top, from(rgba(21,11,73,0.81)), to(rgba(21,11,73,0.81))), /* Set as a flat, non-changing gradient in order to layer this color like an image */
    url(/assets/publications/our6-8math_background50Q-28100e29f407c4e53d051c6f75ced0d59f772818e3ec65f4a492777533c4eee9.jpg);
  background-image:
    linear-gradient(90deg, rgba(21,11,73,0.81) 0%, rgba(21,11,73,0.81) 100%), /* Set as a flat, non-changing gradient in order to layer this color like an image */
    url(/assets/publications/our6-8math_background50Q-28100e29f407c4e53d051c6f75ced0d59f772818e3ec65f4a492777533c4eee9.jpg);
  background-size:
    cover,
    cover;
}
.c-banner_our-hs-math {
  background-color: rgba(21,11,73,0.81); /* #150B49 */
  background-image:
    -webkit-gradient(linear, left top, right top, from(rgba(21,11,73,0.81)), to(rgba(21,11,73,0.81))), /* Set as a flat, non-changing gradient in order to layer this color like an image */
    url(/assets/publications/our-hs-math-aga_background25Q-106e294756952f23d4cde3b2fbd4353c2547e6f52a6e48de07180a4b443c98c7.jpg);
  background-image:
    linear-gradient(90deg, rgba(21,11,73,0.81) 0%, rgba(21,11,73,0.81) 100%), /* Set as a flat, non-changing gradient in order to layer this color like an image */
    url(/assets/publications/our-hs-math-aga_background25Q-106e294756952f23d4cde3b2fbd4353c2547e6f52a6e48de07180a4b443c98c7.jpg);
  background-size:
    cover,
    cover;
}
.c-banner_our-hs-math-pilot-pl {
  background-color: rgba(21,11,73,0.81); /* #150B49 */
  background-image:
    -webkit-gradient(linear, left top, right top, from(rgba(21,11,73,0.81)), to(rgba(21,11,73,0.81))), /* Set as a flat, non-changing gradient in order to layer this color like an image */
    url(/assets/publications/our-hs-math-MVPPilot_LandingPage_Image50Q-4f67dac1fb0a815548f7e2cc29e73c4e616003d206b65c89ffc03ae4af0a53c6.jpg);
  background-image:
    linear-gradient(90deg, rgba(21,11,73,0.81) 0%, rgba(21,11,73,0.81) 100%), /* Set as a flat, non-changing gradient in order to layer this color like an image */
    url(/assets/publications/our-hs-math-MVPPilot_LandingPage_Image50Q-4f67dac1fb0a815548f7e2cc29e73c4e616003d206b65c89ffc03ae4af0a53c6.jpg);
  background-size:
    cover,
    cover;
}
.c-banner_our-hs-math-nc {
  background-color: rgba(21,11,73,0.81); /* #150B49 */
  background-image:
    -webkit-gradient(linear, left top, right top, from(rgba(21,11,73,0.81)), to(rgba(21,11,73,0.81))), /* Set as a flat, non-changing gradient in order to layer this color like an image */
    url(/assets/publications/our-hs-math-nc_background25Q-ab93eaa384bee7721a7803c3e22c46f4309400adfe1097fd3eef472f91e6c50e.jpg);
  background-image:
    linear-gradient(90deg, rgba(21,11,73,0.81) 0%, rgba(21,11,73,0.81) 100%), /* Set as a flat, non-changing gradient in order to layer this color like an image */
    url(/assets/publications/our-hs-math-nc_background25Q-ab93eaa384bee7721a7803c3e22c46f4309400adfe1097fd3eef472f91e6c50e.jpg);
  background-size:
    cover,
    cover;
}
.c-banner_our-k5-math {
  background-color: rgba(21,11,73,0.81); /* #150B49 */
  background-image:
    -webkit-gradient(linear, left top, right top, from(rgba(21,11,73,0.81)), to(rgba(21,11,73,0.81))), /* Set as a flat, non-changing gradient in order to layer this color like an image */
    url(/assets/publications/ourmath-k5_background_optimized-3bdf98c239e68b6ab77c22287c371d915a7d19ccddf1b353c7dc63e8b7a1cbc9.svg);
  background-image:
    linear-gradient(90deg, rgba(21,11,73,0.81) 0%, rgba(21,11,73,0.81) 100%), /* Set as a flat, non-changing gradient in order to layer this color like an image */
    url(/assets/publications/ourmath-k5_background_optimized-3bdf98c239e68b6ab77c22287c371d915a7d19ccddf1b353c7dc63e8b7a1cbc9.svg);
  background-size:
    cover,
    cover;
}
.c-banner_our-pk5-math {
  background-color: rgba(21,11,73,0.81); /* #150B49 */
  background-image:
    -webkit-gradient(linear, left top, right top, from(rgba(21,11,73,0.81)), to(rgba(21,11,73,0.81))), /* Set as a flat, non-changing gradient in order to layer this color like an image */
    url(/assets/publications/pk5-math-pilot_background-ef954f781585d440f427b53ee3418186f26485658338833348701fa73f1c9c38.jpg);
  background-image:
    linear-gradient(90deg, rgba(21,11,73,0.81) 0%, rgba(21,11,73,0.81) 100%), /* Set as a flat, non-changing gradient in order to layer this color like an image */
    url(/assets/publications/pk5-math-pilot_background-ef954f781585d440f427b53ee3418186f26485658338833348701fa73f1c9c38.jpg);
  background-size:
    cover,
    cover;
}
.c-banner_k8-math-pilot-pl {
  background-color: rgba(21,11,73,0.81); /* #150B49 */
  background-image:
    -webkit-gradient(linear, left top, right top, from(rgba(21,11,73,0.81)), to(rgba(21,11,73,0.81))), /* Set as a flat, non-changing gradient in order to layer this color like an image */
    url(/assets/publications/ourmath-k5_background_optimized-3bdf98c239e68b6ab77c22287c371d915a7d19ccddf1b353c7dc63e8b7a1cbc9.svg);
  background-image:
    linear-gradient(90deg, rgba(21,11,73,0.81) 0%, rgba(21,11,73,0.81) 100%), /* Set as a flat, non-changing gradient in order to layer this color like an image */
    url(/assets/publications/ourmath-k5_background_optimized-3bdf98c239e68b6ab77c22287c371d915a7d19ccddf1b353c7dc63e8b7a1cbc9.svg);
  background-size:
    cover,
    cover;
}
.c-banner_bookworms {
  background-color: rgba(17,65,65,0.81); /* #114141 */
  background-image:
    -webkit-gradient(linear, left top, right top, from(rgba(17,65,65,0.81)), to(rgba(17,65,65,0.81))), /* Set as a flat, non-changing gradient in order to layer this color like an image */
    url(/assets/publications/bookworms_background50Q_2022-00f4ef286d9017403889c19ce717390909004cb587f2a800518843c137fe024d.jpg);
  background-image:
    linear-gradient(90deg, rgba(17,65,65,0.81) 0%, rgba(17,65,65,0.81) 100%), /* Set as a flat, non-changing gradient in order to layer this color like an image */
    url(/assets/publications/bookworms_background50Q_2022-00f4ef286d9017403889c19ce717390909004cb587f2a800518843c137fe024d.jpg);
  background-size:
    cover,
    cover;
}
.c-banner_bookworms-pilot-pl {
  background-color: rgba(17,65,65,0.81); /* #114141 */
  background-image:
    -webkit-gradient(linear, left top, right top, from(rgba(17,65,65,0.81)), to(rgba(17,65,65,0.81))), /* Set as a flat, non-changing gradient in order to layer this color like an image */
    url(/assets/publications/bookworms-pilot-pl-landing-page-background50Q-cda78630a97ca597858508bde72053d6bec8c16f49ebc679c8106306923d6e95.jpg);
  background-image:
    linear-gradient(90deg, rgba(17,65,65,0.81) 0%, rgba(17,65,65,0.81) 100%), /* Set as a flat, non-changing gradient in order to layer this color like an image */
    url(/assets/publications/bookworms-pilot-pl-landing-page-background50Q-cda78630a97ca597858508bde72053d6bec8c16f49ebc679c8106306923d6e95.jpg);
  background-position: center;
  background-size:
    cover,
    cover;
}
.c-banner_bw-di {
  background-color: rgb(81, 187, 114);
  background-color: var(--wormsy);
  background-image: url(/assets/publications/bw-pl_background50Q-2ba9a4d13f7cb80bfc142257dc8f82b77e333d4f397958437e32826d3bca78b8.jpg);
  background-size: cover;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  color: rgb(69,53,54);
  color: var(--text);
  -webkit-box-shadow:
    inset 0 .125rem 0 0 rgb(81, 187, 114),
    inset 0 -0.125rem 0 0 rgb(81, 187, 114);
          box-shadow:
    inset 0 .125rem 0 0 rgb(81, 187, 114),
    inset 0 -0.125rem 0 0 rgb(81, 187, 114);
  -webkit-box-shadow:
    inset 0 .125rem 0 0 var(--wormsy),
    inset 0 -0.125rem 0 0 var(--wormsy);
          box-shadow:
    inset 0 .125rem 0 0 var(--wormsy),
    inset 0 -0.125rem 0 0 var(--wormsy);
}
.c-banner_bw-pl {
  background-color: rgb(81, 187, 114);
  background-color: var(--wormsy);
  background-image: url(/assets/publications/bw-pl_background50Q-2ba9a4d13f7cb80bfc142257dc8f82b77e333d4f397958437e32826d3bca78b8.jpg);
  background-size: cover;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  color: rgb(69,53,54);
  color: var(--text);
  -webkit-box-shadow:
    inset 0 .125rem 0 0 rgb(81, 187, 114),
    inset 0 -0.125rem 0 0 rgb(81, 187, 114);
          box-shadow:
    inset 0 .125rem 0 0 rgb(81, 187, 114),
    inset 0 -0.125rem 0 0 rgb(81, 187, 114);
  -webkit-box-shadow:
    inset 0 .125rem 0 0 var(--wormsy),
    inset 0 -0.125rem 0 0 var(--wormsy);
          box-shadow:
    inset 0 .125rem 0 0 var(--wormsy),
    inset 0 -0.125rem 0 0 var(--wormsy);
}
.c-banner_el-k8 {
  background-color: rgb(69,53,54);
  background-color: var(--text, rgb(69,53,54));
  background-image:
    -webkit-gradient(linear, left top, right top, from(rgba(69,53,54,0.85)), to(rgba(69,53,54,0.85))), /* Set as a flat, non-changing gradient in order to layer this color like an image - Colors in gradient are RGBA equivalents of var(--text) + 85% Alpha */
    url(/assets/publications/el-k8_background50Q-228bfcb56465f88f28e3fea331291ed05ec3fb7c4c1f82b98bf546f049af1430.jpg);
  background-image:
    linear-gradient(90deg, rgba(69,53,54,0.85) 0%, rgba(69,53,54,0.85) 100%), /* Set as a flat, non-changing gradient in order to layer this color like an image - Colors in gradient are RGBA equivalents of var(--text) + 85% Alpha */
    url(/assets/publications/el-k8_background50Q-228bfcb56465f88f28e3fea331291ed05ec3fb7c4c1f82b98bf546f049af1430.jpg);
  background-size:
    cover,
    cover;
  background-blend-mode:
    normal,
    normal;
}
.c-banner_el-k5-2025 {
  background-color: rgb(69,53,54);
  background-color: var(--text, rgb(69,53,54));
  background-image:
    -webkit-gradient(linear, left top, right top, from(rgba(69,53,54,0.85)), to(rgba(69,53,54,0.85))), /* Set as a flat, non-changing gradient in order to layer this color like an image - Colors in gradient are RGBA equivalents of var(--text) + 85% Alpha */
    url(/assets/publications/el-k5-2025_background-7c46a14fc7326aeeceddbad6e7b197b4e300415fbe2719259ef10940a4e59838.jpg);
  background-image:
    linear-gradient(90deg, rgba(69,53,54,0.85) 0%, rgba(69,53,54,0.85) 100%), /* Set as a flat, non-changing gradient in order to layer this color like an image - Colors in gradient are RGBA equivalents of var(--text) + 85% Alpha */
    url(/assets/publications/el-k5-2025_background-7c46a14fc7326aeeceddbad6e7b197b4e300415fbe2719259ef10940a4e59838.jpg);
  background-size:
    cover,
    cover;
  background-blend-mode:
    normal,
    normal;
}
.c-banner_el-pilot-pl {
  background-color: rgb(69,53,54);
  background-color: var(--text, rgb(69,53,54));
  background-image:
    -webkit-gradient(linear, left top, right top, from(rgba(69,53,54,0.85)), to(rgba(69,53,54,0.85))), /* Set as a flat, non-changing gradient in order to layer this color like an image - Colors in gradient are RGBA equivalents of var(--text) + 85% Alpha */
    url(/assets/publications/el-k8_background50Q-228bfcb56465f88f28e3fea331291ed05ec3fb7c4c1f82b98bf546f049af1430.jpg);
  background-image:
    linear-gradient(90deg, rgba(69,53,54,0.85) 0%, rgba(69,53,54,0.85) 100%), /* Set as a flat, non-changing gradient in order to layer this color like an image - Colors in gradient are RGBA equivalents of var(--text) + 85% Alpha */
    url(/assets/publications/el-k8_background50Q-228bfcb56465f88f28e3fea331291ed05ec3fb7c4c1f82b98bf546f049af1430.jpg);
  background-size:
    cover,
    cover;
  background-blend-mode:
    normal,
    normal;
}
.c-banner_el-skills-block-2024 {
  background-color: rgb(69,53,54);
  background-color: var(--text, rgb(69,53,54));
  background-image:
    -webkit-gradient(linear, left top, right top, from(rgba(69,53,54,0.85)), to(rgba(69,53,54,0.85))), /* Set as a flat, non-changing gradient in order to layer this color like an image - Colors in gradient are RGBA equivalents of var(--text) + 85% Alpha */
    url(/assets/publications/el-skills-block-2024-background-7178a88a457e8dec5638e30023a77847fb751e6bc2ea20bca08ffb2e3895923c.jpg);
  background-image:
    linear-gradient(90deg, rgba(69,53,54,0.85) 0%, rgba(69,53,54,0.85) 100%), /* Set as a flat, non-changing gradient in order to layer this color like an image - Colors in gradient are RGBA equivalents of var(--text) + 85% Alpha */
    url(/assets/publications/el-skills-block-2024-background-7178a88a457e8dec5638e30023a77847fb751e6bc2ea20bca08ffb2e3895923c.jpg);
  background-size:
    cover,
    cover;
  background-blend-mode:
    normal,
    normal;
}
.c-banner [class^="hed"] {
  color: #ffffff;
  color: var(--white);
  margin-top: 0;
}
.c-banner__inner {
  margin: 0 auto;
  max-width: 48rem;
  max-width: var(--content-width);
}
.c-banner__dek {
  font-family: agenda-one, sans-serif;
  font-family: var(--font-family-display);
  font-weight: 600;
  font-size: 1.2rem;
  font-size: var(--gamma);
  line-height: 1.1;
}
.c-banner__dek a {
  color: #ffffff;
  color: var(--white);
  text-decoration: none;
  border-bottom: 1px solid #ebebeb;
  border-bottom: 1px solid var(--light-gray);
}
.c-banner__dek a:hover {
  border-color: #ffffff;
  border-color: var(--white);
}
.c-banner__hed {
  font-family: agenda-one, sans-serif;
  font-family: var(--font-family-display);
  font-weight: 700;
  font-size: 2.4rem;
  font-size: var(--alpha);
  line-height: 1;
}
.c-banner_bw-pl .c-banner__hed {
  color: rgb(52, 133, 78);
  color: var(--wormsy-aa);
}
.c-banner__lede a,
.c-banner__fineprint a {
  color: #ffffff;
  color: var(--white);
  text-decoration: none;
  border-bottom: 1px solid #ebebeb;
  border-bottom: 1px solid var(--light-gray);
}
.c-banner__lede a:hover,
.c-banner__fineprint a:hover {
  border-color: #ffffff;
  border-color: var(--white);
}
.c-banner__form {
}
.c-banner__chooser-group:first-of-type {
  margin-top: 3.5rem;
}
.c-banner__chooser-group.is-disabled,
.c-banner__acknowledgment.is-disabled {
  opacity: .4;
}
.c-banner__chooser-group.is-disabled .c-button_outline-reverse:focus,
.c-banner__chooser-group.is-disabled .c-button_outline-reverse:hover {
  background-color: transparent;
  border-color: #ebebeb;
  border-color: var(--light-gray);
  color: #ebebeb;
  color: var(--light-gray);
  cursor: default;
}
/* Container for a checkbox + label pair */
.c-banner__acknowledgment {
  margin-top: 1rem;
  overflow: visible;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
  gap: 0.5em;
}
.c-banner__label {
  overflow: hidden;
}
/* Off-screen radio button styles and contexts */
.c-banner__radio {
  position: absolute;
  left: -10rem;
}
.c-banner__radio.focus-visible + .c-button {
  -webkit-box-shadow:
    inset 0 0 0 0.15em rgb(215,65,2),
    inset 0 0 0 0.3em #fff;
          box-shadow:
    inset 0 0 0 0.15em rgb(215,65,2),
    inset 0 0 0 0.3em #fff;
  -webkit-box-shadow:
    inset 0 0 0 0.15em var(--aa-orange),
    inset 0 0 0 0.3em #fff;
          box-shadow:
    inset 0 0 0 0.15em var(--aa-orange),
    inset 0 0 0 0.3em #fff;
}
.c-banner__radio.focus-visible + .c-button {
  -webkit-box-shadow:
    inset 0 0 0 0.15em rgb(215,65,2),
    inset 0 0 0 0.3em #fff;
          box-shadow:
    inset 0 0 0 0.15em rgb(215,65,2),
    inset 0 0 0 0.3em #fff;
  -webkit-box-shadow:
    inset 0 0 0 0.15em var(--aa-orange),
    inset 0 0 0 0.3em #fff;
          box-shadow:
    inset 0 0 0 0.15em var(--aa-orange),
    inset 0 0 0 0.3em #fff;
}
.c-banner__radio:focus-visible + .c-button {
  -webkit-box-shadow:
    inset 0 0 0 0.15em rgb(215,65,2),
    inset 0 0 0 0.3em #fff;
          box-shadow:
    inset 0 0 0 0.15em rgb(215,65,2),
    inset 0 0 0 0.3em #fff;
  -webkit-box-shadow:
    inset 0 0 0 0.15em var(--aa-orange),
    inset 0 0 0 0.3em #fff;
          box-shadow:
    inset 0 0 0 0.15em var(--aa-orange),
    inset 0 0 0 0.3em #fff;
}
.c-banner__radio:checked + .c-button {
  background: #ffffff;
  background: var(--white);
  color: rgb(215,65,2);
  color: var(--accent);
}
/* @Designers: This is a special case for the PK5 Math Pilot, where we have grade PK disabled on initial launch. */
.c-banner__radio[data-permanently-disabled] + .c-button {
  color: #ebebeb;
  color: var(--light-gray);
  opacity: 0.65;
  cursor: not-allowed;
  background-image: repeating-linear-gradient(
    45deg,
    rgba(255,255,255,0.26667),
    rgba(255,255,255,0.26667) 0.08em,
    transparent 0.08em,
    transparent 0.5em
  );
}
/* Checkbox styles and contexts */
.c-banner__checkbox.focus-visible + .c-banner__label {
  -webkit-box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em rgb(215,65,2);
          box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em rgb(215,65,2);
  -webkit-box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em var(--aa-orange);
          box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em var(--aa-orange);
}
.c-banner__checkbox.focus-visible + .c-banner__label {
  -webkit-box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em rgb(215,65,2);
          box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em rgb(215,65,2);
  -webkit-box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em var(--aa-orange);
          box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em var(--aa-orange);
}
.c-banner__checkbox:focus-visible + .c-banner__label {
  -webkit-box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em rgb(215,65,2);
          box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em rgb(215,65,2);
  -webkit-box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em var(--aa-orange);
          box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em var(--aa-orange);
}
/* Submit button styles and contexts */
.c-banner__submit {
  margin-top: 2rem;
  clear: both;
}
.c-banner__submit > a.focus-visible {
  -webkit-box-shadow:
    inset 0 0 0 0.15em rgb(215,65,2),
    inset 0 0 0 0.3em #fff;
          box-shadow:
    inset 0 0 0 0.15em rgb(215,65,2),
    inset 0 0 0 0.3em #fff;
  -webkit-box-shadow:
    inset 0 0 0 0.15em var(--aa-orange),
    inset 0 0 0 0.3em #fff;
          box-shadow:
    inset 0 0 0 0.15em var(--aa-orange),
    inset 0 0 0 0.3em #fff;
}
.c-banner__submit > a.focus-visible {
  -webkit-box-shadow:
    inset 0 0 0 0.15em rgb(215,65,2),
    inset 0 0 0 0.3em #fff;
          box-shadow:
    inset 0 0 0 0.15em rgb(215,65,2),
    inset 0 0 0 0.3em #fff;
  -webkit-box-shadow:
    inset 0 0 0 0.15em var(--aa-orange),
    inset 0 0 0 0.3em #fff;
          box-shadow:
    inset 0 0 0 0.15em var(--aa-orange),
    inset 0 0 0 0.3em #fff;
}
.c-banner__submit > a:focus-visible {
  -webkit-box-shadow:
    inset 0 0 0 0.15em rgb(215,65,2),
    inset 0 0 0 0.3em #fff;
          box-shadow:
    inset 0 0 0 0.15em rgb(215,65,2),
    inset 0 0 0 0.3em #fff;
  -webkit-box-shadow:
    inset 0 0 0 0.15em var(--aa-orange),
    inset 0 0 0 0.3em #fff;
          box-shadow:
    inset 0 0 0 0.15em var(--aa-orange),
    inset 0 0 0 0.3em #fff;
}
.c-banner__fineprint {
  margin-top: 1rem;
  font-size: .75rem;
}
/* The following containing elements are used instead of a form to contain the grade choices when the options may simply be links instead of input fields. */
.c-banner__course-choices .c-button {
  padding-left: 0;
  padding-right: 0;
  margin: .5rem auto;
  display: block;
  width: 9rem;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
.c-banner__course-choices .c-button:first-child {
  margin-top: 1.25rem;
}
@media (min-width: 375px) {

  .c-banner__course-choices {
    --max-width: 28.5rem;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    max-width: var(--max-width); /* constrain the width of the option container, preventing awkward wraps */
  }
    .c-banner__course-choices.c-banner__course-choices_ca-k8 {
      --max-width: 30rem;
    }

  .c-banner__course-choices .c-button,
  .c-banner__course-choices .c-button:first-child {
    margin-top: .25rem;
    -webkit-box-flex: 0;
        -ms-flex: 0 0 8rem;
            flex: 0 0 8rem;
    margin-left: 0;
    margin-right: .75rem;
  }

}
.c-banner__cta {
  font-family: agenda-one, sans-serif;
  font-family: var(--font-family-display);
  font-weight: 600;
  color: #ffffff;
  color: var(--white);
  margin-top: 2rem;
  font-size: 1.2rem;
  font-size: var(--gamma);
}
.c-banner__cta_alt {
  font-family: 'Roboto', 'Trebuchet MS', Trebuchet, Tahoma, sans-serif;
  font-family: var(--font-family-text);
  font-size: .9rem;
  font-size: var(--epsilon);
  font-style: italic;
}
@media (min-width: 375px) {
  .c-banner__cta br {
    display: none;
  }
}
.c-banner__img {
  display:  block;
  max-width: 80%;
  margin-left:  auto;
  margin-right: auto;
}
.c-banner__video-wrapper {
  padding: 56.25% 0 0 0;
  width: 100%;
  position: relative;
  -webkit-box-shadow:
    .125rem .125rem .125rem 0 rgba(0, 0, 0, .125),
    1px 1px 0 0 rgba(0, 0, 0, .25);
          box-shadow:
    .125rem .125rem .125rem 0 rgba(0, 0, 0, .125),
    1px 1px 0 0 rgba(0, 0, 0, .25);
  z-index: 10;
}
.c-banner__video-source {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
/*----------------------------------------------------------------------------
 *
 * ANNOUNCEMENT
 *
 *---------------------------------------------------------------------------*/
.c-announcement {
  background: #008470;
  color: #ffffff;
  color: var(--white);
  padding: 0 2rem;
  text-align: center;
}
@media (min-width: 768px) {
    .c-announcement {
      font-size: .833rem;
      font-size: var(--zeta);
    }
  }
@media (min-width: 1024px) {
    .c-announcement {
      text-align: left;
      background:
        -webkit-gradient(linear, left top, right top, from(#ffffff), color-stop(49.975%, #ffffff), color-stop(50%, #008470), to(#008470));
      background:
        linear-gradient(90deg, #ffffff 0%, #ffffff 49.975%, #008470 50%, #008470 100%);
      padding: 0;
    }
  }
.c-announcement [class^="hed"] {
  color: #ffffff;
  color: var(--white);
  margin-top: 0;
}
.c-announcement a {
  color: #ebebeb;
  color: var(--light-gray);
  font-weight: 600;
}
.c-announcement a:hover,
.c-announcement a:active,
.c-announcement a:visited {
  color: #ffffff;
  color: var(--white);
  font-weight: 600;
}
.c-announcement__inner {
  margin: 0 auto;
  max-width: 48rem;
  max-width: var(--content-width);
  background: #008470;
  padding: 1.5rem 0;
}
.c-announcement__inner p {
  margin: 0;
}
@media (min-width: 1024px) {
    .c-announcement__inner p {
      padding-left: 2rem;
    }
  }
/*----------------------------------------------------------------------------
 *
 * CTA Sidebar
 * Appropriate for multi-column layouts in the landing page main content area.
 *
 *---------------------------------------------------------------------------*/
.c-cta-sidebar {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  border: .125rem solid #ebebeb;
  padding: 1rem;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  margin-top: 2rem;
}
.c-cta-sidebar > *:first-child {
    margin-top: 0;
  }
.c-cta-sidebar > *:last-child {
    margin-top: auto;
    margin-bottom: 0;
  }
@media (min-width: 537px) {
    .c-cta-sidebar {
      margin-top: -1rem;
      margin-bottom: -1.125rem;
    }
  }
/*----------------------------------------------------------------------------
 *
 * DIRECTORY
 *
 *---------------------------------------------------------------------------*/
.c-directory {
  max-width: 48rem;
  max-width: var(--content-width);
  margin: auto;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
.c-directory__sequence {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  margin: 1rem auto;
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
}
@media (min-width: 768px) {
    .c-directory__sequence {
      -ms-flex-wrap: nowrap;
          flex-wrap: nowrap;
      margin: 2rem auto;
    }
  }
.c-directory__hed {
  font-size: 1.2rem;
  font-size: var(--gamma);
  font-family: agenda-one, sans-serif;
  font-family: var(--font-family-display);
  font-weight: 600;
  margin: 0 2rem 1.5rem 0;
  line-height: 1.1;
  -webkit-box-flex: 1;
      -ms-flex: 1 0 100%;
          flex: 1 0 100%;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
@media (min-width: 768px) {
    .c-directory__hed {
      -webkit-box-flex: 0;
          -ms-flex: 0 1 auto;
              flex: 0 1 auto;
      margin: 0;
      margin-right: 3rem;
      font-size: 1rem;
      font-size: var(--base);
      min-width: auto;
    }
  }
.c-directory__listing {
  list-style: none;
  margin: 0 2rem 1rem 0;
  -webkit-box-flex: 0;
      -ms-flex: 0 1 auto;
          flex: 0 1 auto;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
@media (min-width: 768px) {
    .c-directory__listing {
      -webkit-box-flex: 0;
          -ms-flex: 0 1 auto;
              flex: 0 1 auto;
      margin-right: 2rem;
    }
  }
.c-directory__subhed {
  font-size: 1rem;
  font-size: var(--base);
  font-family: agenda-one, sans-serif;
  font-family: var(--font-family-display);
  font-weight: 700;
  margin: 0 0 1rem;
  line-height: 1.1;
}
.c-directory__sublisting {
  list-style: none;
  margin: 0;
  padding: 0;
}
/*----------------------------------------------------------------------------
 *
 * FIGURE
 *
 *---------------------------------------------------------------------------*/
.c-figure {
  margin: 0;
  padding: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: reverse;
      -ms-flex-direction: column-reverse;
          flex-direction: column-reverse;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media (min-width: 768px) {
    .c-figure {
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
          -ms-flex-direction: row;
              flex-direction: row;
    }
  }
.c-figure__video {
  border: 1px solid rgb(200,200,200);
  border: 1px solid var(--gray);
  overflow: hidden;
  width: 100%;
}
@media (min-width: 768px) {
    .c-figure__video {
      -webkit-box-flex: 1;
          -ms-flex: 1 0 63%;
              flex: 1 0 63%;
      width: 63%;
    }
  }
.c-figure__video-wrapper {
  padding: 56.25% 0 0 0;
  width: 100%;
  position: relative;
}
.c-figure__video-source {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.c-figure__caption {
  font-size: 1.2rem;
  font-size: var(--gamma);
  font-family: agenda-one, sans-serif;
  font-family: var(--font-family-display);
  font-weight: 600;
  line-height: 1.1;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  margin: 1rem 0;
  position: relative;
  padding: 0 0 3rem 0;
  text-align: center;
  max-width: 20em;
}
@media (min-width: 768px) {
    .c-figure__caption {
        padding: 0 0 0 3rem;
        -webkit-box-flex: 1;
            -ms-flex: 1 1 37%;
                flex: 1 1 37%;
        text-align: left;
    }
  }
.c-figure__caption::before {
  content: "";
  width: 2rem;
  height: 2rem;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  position: absolute;
  left: 50%;
  bottom: 0;
  margin-left: -1rem;
  border-top: 1rem solid rgb(200,200,200);
  border-top: 1rem solid var(--gray);
  border-left: 1rem solid transparent;
  border-right: 1rem solid transparent;
  border-bottom: 1rem solid transparent;
}
@media (min-width: 768px) {
    .c-figure__caption::before {
      left: 0;
      top: 50%;
      margin-left: 0;
      margin-top: -1rem;
      border-top: 1rem solid transparent;
      border-left: 1rem solid transparent;
      border-right: 1rem solid rgb(200,200,200);
      border-right: 1rem solid var(--gray);
      border-bottom: 1rem solid transparent;
    }
  }
.c-figure__listing {
  list-style: none;
  margin: 0 0 1rem 0;
  padding-right: 1rem;
  -webkit-box-flex: 0;
      -ms-flex: 0 1 33%;
          flex: 0 1 33%;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
@media (min-width: 768px) {
    .c-figure__listing {
      -webkit-box-flex: 1;
          -ms-flex: 1 1 25%;
              flex: 1 1 25%;
    }
  }
.c-figure__subhed {
  font-size: 1rem;
  font-size: var(--base);
  font-family: agenda-one, sans-serif;
  font-family: var(--font-family-display);
  font-weight: 700;
  margin: 0 0 1rem;
  line-height: 1.1;
}
.c-figure__sublisting {
  list-style: none;
  margin: 0;
  padding: 0;
}
/*--------------------------------------
 *
 * COMPONENT: CURRICULUM NAV
 *
 *-------------------------------------*/
.c-nav-curriculum {
  font-size: 1rem;
  font-family: 'Roboto', 'Trebuchet MS', Trebuchet, Tahoma, sans-serif;
  font-family: var(--font-family-text);
  line-height: 1.45;
  font-weight: 500;
}
.c-nav-curriculum__items {
  list-style: none;
  -webkit-hyphens: none;
      -ms-hyphens: none;
          hyphens: none;
  margin: 0;
  padding: 0 0 0 1rem;
  background: #ebebeb;
  background: var(--light-gray);
}
@media (min-width: 320px) {
    .c-nav-curriculum__items {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    }
  }
.c-nav-curriculum__branding {
  position: relative;
  padding: .65625em 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  margin: 0 0 0 0;
  -ms-flex-item-align: center;
      align-self: center;
}
@media (min-width: 768px) {
    .c-nav-curriculum__branding {
      padding: 0;
    }
  }
/* Default styling for all logo elements, see variants for guidance when customizing background images, widths, etc. */
.c-nav-curriculum__logo {
  font-size: 1rem;
  height: 2.25rem;
  padding: 0;
  text-indent: 102%;
  white-space: nowrap;
  overflow: hidden;
  background-position: left center;
  background-repeat: no-repeat;
}
@media (min-width: 768px) {
    .c-nav-curriculum__logo {
      border-right: solid .0625rem rgb(69,53,54);
      border-right: solid .0625rem var(--text);
      margin: .8125rem 0; /* At this breakpoint, increase margin and decrease height to ensure right border is proportional to that in the lockup */
      height: 2.125rem; /* At this breakpoint, increase margin and decrease height to ensure right border is proportional to that in the lockup */
    }
  }
/* MS Math */
/* Replace link with curriculum logo background-image while keeping the link and its text accessible */
.c-nav-curriculum__logo_our6-8math,
.c-nav-curriculum__logo_our6-8math-nc,
.c-nav-curriculum__logo_our6-8math-tn,
.c-nav-curriculum__logo_our6-8math-wv,
.c-nav-curriculum__logo_our6-8math-v1,
.c-nav-curriculum__logo_our6-8math-v3,
.c-nav-curriculum__logo_ca-k8-math {
  width: 3rem;
  background-image: url(/assets/nav-curriculum/logos/our-symbol-msmath-cfb81192b8fa35161d0fb8f4397bbfc57f0d5d7e2effd351dee5af7d8cca4bc4.svg);
  background-size: 14.3125rem;
    /* Since this is an OUR branded product, this width is calculated to match the OUR MS Math lockup to the OUR logo in the global nav. For projects with non-OUR branded lockups, this width match the aspect ratio of the lockup at 2.25rem tall. See Bookworms, EL K-5. */
  border-right: solid .0625rem black; /* exception for MS Math, show right border in narrow viewports */
}
/* HS Math */
/* Replace link with curriculum logo background-image while keeping the link and its text accessible */
.c-nav-curriculum__logo_our-hs-math,
.c-nav-curriculum__logo_our-hs-math-nc,
.c-nav-curriculum__logo_our-hs-math-tn,
.c-nav-curriculum__logo_our-hs-math-pilot-pl {
  width: 3rem;
  background-image: url(/assets/nav-curriculum/logos/our-symbol-hsmath-cfb81192b8fa35161d0fb8f4397bbfc57f0d5d7e2effd351dee5af7d8cca4bc4.svg);
  background-size: 14.3125rem;
    /* Since this is an OUR branded product, this width is calculated to match the OUR HS Math lockup to the OUR logo in the global nav. For projects with non-OUR branded lockups, this width match the aspect ratio of the lockup at 2.25rem tall. See Bookworms, EL K-5. */
  border-right: solid .0625rem black; /* exception for HS Math, show right border in narrow viewports */
}
/* K5 Math */
/* Replace link with curriculum logo background-image while keeping the link and its text accessible */
.c-nav-curriculum__logo_our-k5-math,
.c-nav-curriculum__logo_our-k5-math-tn,
.c-nav-curriculum__logo_k8-math-pilot-pl {
  width: 3rem;
  background-image: url(/assets/nav-curriculum/logos/our-symbol-k5math-cfb81192b8fa35161d0fb8f4397bbfc57f0d5d7e2effd351dee5af7d8cca4bc4.svg);
  background-size: 14.3125rem;
    /* Since this is an OUR branded product, this width is calculated to match the OUR K5 Math lockup to the OUR logo in the global nav. For projects with non-OUR branded lockups, this width match the aspect ratio of the lockup at 2.25rem tall. See Bookworms, EL K-5. */
  border-right: solid .0625rem black; /* exception for K5 Math, show right border in narrow viewports */
}
/* Odell */
/* Should be the same approach as we used for HS Math. */
.c-nav-curriculum__logo_odell-hs-literacy {
  width: 3rem;
  background-image: url(/assets/nav-curriculum/logos/our-symbol-odell-4e18e4bff0888b10e0a532ad9c6611d9c43330859e9660e0654321e293d8b27f.svg);
  background-size: 14.3125rem;
  border-right: solid .0625rem black; /* show right border in narrow viewports */
}
/* Bookworms */
/* Replace link with curriculum logo background-image while keeping the link and its text accessible */
.c-nav-curriculum__logo_bookworms,
.c-nav-curriculum__logo_bookworms-k5,
.c-nav-curriculum__logo_bookworms-pl-videos,
.c-nav-curriculum__logo_bookworms-pilot-pl {
  background-image: url(/assets/nav-curriculum/logos/bookworms-logotype-only-f9e027f3d916a3981536925cf71ac26f9dc0d3949b31899aa5dac0dfab0dc872.svg);
  background-size: 19.4375rem; /* Match Bookworms lockup aspect ratio 311 x 36 */
  width: 12.75rem; /* Match aspect ratio of Bookworms logotype to "pipe" in lockup (204 x 36), thereby hiding the pipe and the description text to the right of the pipe */
}
@media (min-width: 768px) {
    .c-nav-curriculum__logo_bookworms, .c-nav-curriculum__logo_bookworms-k5, .c-nav-curriculum__logo_bookworms-pl-videos, .c-nav-curriculum__logo_bookworms-pilot-pl {
      background-image: url(/assets/nav-curriculum/logos/bookworms-lockup-8574353a244e9406bb4115af225f09e298cee0b4e27a2e1a576c6e38011aadc0.svg);
    }
  }
/* EL K-5 */
/* Replace link with curriculum logo background-image while keeping the link and its text accessible */
.c-nav-curriculum__logo_el,
.c-nav-curriculum__logo_el-pilot-pl,
.c-nav-curriculum__logo_el-k5-2017,
.c-nav-curriculum__logo_el-ms-2019,
.c-nav-curriculum__logo_el-skills-block-2024,
.c-nav-curriculum__logo_el-k5-2025 {
  background-image: url(/assets/nav-curriculum/logos/el-k8-logotype-only-3941722567e369436e1b3aac598ff4368e0ab804cfeed65ab492759de356d404.svg);
  background-size: 16.1875rem; /* Match EL K-5 lockup aspect ratio 259 x 36 */
  width: 10.5625rem; /* Match aspect ratio of EL K-5 logotype to "pipe" in lockup (169 x 36), thereby hiding the pipe and the description text to the right of the pipe */
}
@media (min-width: 768px) {
    .c-nav-curriculum__logo_el, .c-nav-curriculum__logo_el-pilot-pl, .c-nav-curriculum__logo_el-k5-2017, .c-nav-curriculum__logo_el-ms-2019, .c-nav-curriculum__logo_el-skills-block-2024, .c-nav-curriculum__logo_el-k5-2025 {
      background-image: url(/assets/nav-curriculum/logos/el-k8-lockup-e16a5e17d0af34df78819d3b7ef797945a7e6c0562215667e29e178d9a0c2f2c.svg);
    }
  }
.c-nav-curriculum__logo_pk5-math {
  background-image: url(/assets/nav-curriculum/logos/pk5-math-logo-39a9086b43cfe35091f2c0c1a810373f1a7cc9052740a4dc1458b222a100a1c6.svg);
  background-size: contain;
  width: 3rem;
}
/* Default section text styling */
.c-nav-curriculum__section-text {
  font-size: .833rem;
  font-size: var(--zeta);
  color: rgb(69,53,54);
  color: var(--our-primary-dark-gray);
  text-decoration: none;
  display: none;
  -ms-flex-item-align: center;
      align-self: center;
}
@media (min-width: 768px) {
    .c-nav-curriculum__section-text {
      display: block;
      padding: 1.375rem 1.5rem 1rem .925rem;
    }
  }
/* Exception for Bookworms DI */
.c-nav-curriculum__section-text_bookworms-di {
  display: block;
  padding: calc(1.375rem - 0.65625em) 1.5rem calc(1rem - 0.65625em) .925rem;
  border-left: solid .0625rem rgb(69,53,54);
  border-left: solid .0625rem var(--text);
}
@media (min-width: 768px) {
    .c-nav-curriculum__section-text_bookworms-di {
      border-left: none;
      padding: 1.375rem 1.5rem 1rem .925rem;
    }
  }
.c-nav-curriculum__section-text_bookworms-di::before {
  content: attr(data-title-short);
}
@media (min-width: 411px) {
    .c-nav-curriculum__section-text_bookworms-di::before {
      content: attr(data-title-medium);
    }
  }
@media (min-width: 768px) {
    .c-nav-curriculum__section-text_bookworms-di::before {
      content: "";
    }
  }
.c-nav-curriculum__section-text-swap {
  display: none;
}
@media (min-width: 768px) {
    .c-nav-curriculum__section-text-swap {
      display: inline;
    }
  }
/* Exception for HS Math, K5 Math, MS Math, & Odell HS Literacy */
.c-nav-curriculum__section-text_our-hs-math,
.c-nav-curriculum__section-text_our-hs-math-tn,
.c-nav-curriculum__section-text_our-hs-math-nc,
.c-nav-curriculum__section-text_our-k5-math,
.c-nav-curriculum__section-text_our-k5-math-tn,
.c-nav-curriculum__section-text_k8-math-pilot-pl,
.c-nav-curriculum__section-text_our6-8math,
.c-nav-curriculum__section-text_our6-8math-nc,
.c-nav-curriculum__section-text_our6-8math-tn,
.c-nav-curriculum__section-text_our6-8math-wv,
.c-nav-curriculum__section-text_our6-8math-v1,
.c-nav-curriculum__section-text_our6-8math-v3,
.c-nav-curriculum__section-text_odell-hs-literacy,
.c-nav-curriculum__section-text_pk5-math {
  display: block;
  padding: .5rem 1rem;
}
@media (min-width: 768px) {
    .c-nav-curriculum__section-text_our-hs-math, .c-nav-curriculum__section-text_our-hs-math-tn, .c-nav-curriculum__section-text_our-hs-math-nc, .c-nav-curriculum__section-text_our-k5-math, .c-nav-curriculum__section-text_our-k5-math-tn, .c-nav-curriculum__section-text_k8-math-pilot-pl, .c-nav-curriculum__section-text_our6-8math, .c-nav-curriculum__section-text_our6-8math-nc, .c-nav-curriculum__section-text_our6-8math-tn, .c-nav-curriculum__section-text_our6-8math-wv, .c-nav-curriculum__section-text_our6-8math-v1, .c-nav-curriculum__section-text_our6-8math-v3, .c-nav-curriculum__section-text_odell-hs-literacy, .c-nav-curriculum__section-text_pk5-math {
      padding: 1rem 1.5rem 1rem .925rem;
    }
  }
.c-nav-curriculum__section-text-suffix {
  display: none;
}
@media (min-width: 411px) {
    .c-nav-curriculum__section-text-suffix {
      display: inline-block;
    }
  }
.c-nav-curriculum__item {
  font-size: .833rem;
  font-size: var(--zeta);
  margin: 0 0 0 -1rem;
  padding: 0;
  list-style: none;
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -ms-flex-item-align: stretch;
      align-self: stretch;
  outline: none;
  border-top: 1px solid rgb(200,200,200);
  border-top: 1px solid var(--gray);
}
@media (min-width: 320px) {
    .c-nav-curriculum__item {
      border-top: none;
      border-left: 1px solid rgb(200,200,200);
      border-left: 1px solid var(--gray);
      margin: 0;
    }
  }
.c-nav-curriculum__item-title {
  display: block;
  font-weight: 500;
  position: relative;
  padding: .5rem 1rem;
  -ms-flex-item-align: center;
      align-self: center;
  text-decoration: none;
  color: rgb(69,53,54);
  color: var(--our-primary-dark-gray);
  outline: none;
}
@media (min-width: 320px) {
    .c-nav-curriculum__item-title {
      padding: .5rem 1rem;
    }
  }
@media (min-width: 768px) {
    .c-nav-curriculum__item-title {
      padding: 1rem 1.25rem;
    }
  }
.c-nav-curriculum__item-title.is-current {
  color: rgb(241,89,42);
  color: var(--our-globalnav-orange);
  font-weight: 500;
}
.c-nav-curriculum__item-title.is-current:hover {
    color: rgb(241,89,42);
    color: var(--our-globalnav-orange);
  }
/* EN/ES Toggle */
.c-nav-curriculum__item_locale {
  white-space: nowrap;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding-left: 2.5rem;
  background: url(/assets/nav-curriculum/globe-solid-44b3d564e79842267687d9afffa46f833f1c5a77ce0a751dce010f3dd169be4f.svg);
  background-size: 1.25rem;
  background-repeat: no-repeat;
  background-position: 1rem center;
  border: none;
  margin-left: auto;
}
.c-nav-curriculum__label_locale {
  border-right: .0625rem solid rgb(200,200,200);
  border-right: .0625rem solid var(--gray);
  padding: .275rem .375rem .275rem .4375rem;
  margin: .7rem 0;
  font-weight: 900;
  letter-spacing: .075em;
  line-height: 1;
  text-decoration: none;
}
.c-nav-curriculum__label_locale:first-child {
  padding: .275rem .375rem;
}
.c-nav-curriculum__label_locale:last-child {
  border-right: none;
  padding: .275rem 1rem .275rem .4375rem;
}
.c-nav-curriculum__label_locale.is-current {
  color: rgb(241,89,42);
  color: var(--our-globalnav-orange);
}
/* Inline Menu */
.c-nav-curriculum__item-menu {
  display: none;
}
@media (min-width: 768px) {
    .c-nav-curriculum__item-menu {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      margin: 0;
      padding-right: 1rem;
    }
  }
.c-nav-curriculum__item-menu > li {
  list-style: none;
  margin: 0;
}
.c-nav-curriculum__item-menu > li > a {
  display: block;
  text-decoration: none;
  text-align: center;
  padding: .5rem;
}
.c-nav-curriculum__item-menu > li > a.is-current {
  color: rgb(241,89,42);
  color: var(--our-globalnav-orange);
  font-weight: 500;
}
.c-nav-curriculum__item-menu > li > a.is-current:hover {
    color: rgb(241,89,42);
    color: var(--our-globalnav-orange);
  }
/* ----------------------------------------------------------------------------
 *
 * Component: Publications Index Styles
 * Contains/constrains/centers the content for curriculum
 * selection page. Matches Registration App pages.
 *
 * ------------------------------------------------------------------------- */
.c-index {
  font-family: 'Source Sans Pro', sans-serif;
  font-family: var(--font-family-text-alt);
  margin: auto auto 5rem;
  padding: 2.625rem 1rem 0;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 100%;
  max-width: 42.8rem;
}
.c-index * {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
/*
  -- hed
  Presumably an H1. Appears over the textured
  motif that signifies the Registration App screens.
*/
.c-index__hed {
  font-family: agenda-one, sans-serif;
  font-family: var(--font-family-display);
  font-weight: 700;
  font-size: 2.4rem;
  font-size: var(--alpha);
  margin: 0 auto 2.625rem;
  line-height: 2.75rem;
  text-align: center;
  color: #ffffff;
  color: var(--white);
}
/*
  -- inner
  Inner container for publication options.
  Appears as a “floating” white box.
*/
.c-index__inner {
  margin: 2.5rem auto;
  background-color: #ffffff;
  background-color: var(--white);
  padding: 1rem 1.5rem 2.75rem;
  -webkit-box-shadow: .25rem .3rem .5rem 0 rgba(0, 0, 0, 0.15);
          box-shadow: .25rem .3rem .5rem 0 rgba(0, 0, 0, 0.15);
  position: relative;
}
/*
  -- Subhed
  Presumably an H2. Intentionally has the same appearance as
  a Registration Page Legend.
*/
.c-index__subhed {
  font-family: agenda-one, sans-serif;
  font-family: var(--font-family-display);
  font-weight: 700;
  font-size: 1.2rem;
  font-size: var(--gamma);
  color: rgb(69,53,54);
  color: var(--text);
  line-height: 1.2;
}
/*
  -- Info groups
  Laid out identically to the form groups
  found in the Registration App.
*/
.c-index__infogroup {
  margin: 1rem auto;
  width: 100%;
  max-width: 23.5rem;
  clear: left; /* I know! A clearing floats flashback! Clears the floated legend element when it’s present. */
}
.c-index__infogroup:last-child {
    margin-bottom: 0;
  }
.c-index__infogroup:first-child {
    margin-top: 1.25rem;
  }
/*
  -- Subject groups
  Styles for subject groupings of curriculum options.
*/
.c-index__subjectgroup {
  margin: 2rem auto 1rem;
  border: .125rem solid rgb(255,184,28);
  border: .125rem solid var(--our-primary-yellow);
  border-radius: .4rem;
  padding: .5rem 1rem;
  max-width: 30.5rem;
  position: relative;
}
.c-index__subjectlabel {
  position: absolute;
  left: 1.25rem;
  top: -.575em;
  margin: 0;
  padding: 0 .25rem;
  line-height: 1.1rem;
  background: #ffffff;
  background: var(--white);
  text-transform: uppercase;
  font-size: 1rem;
  font-size: var(--delta);
  letter-spacing: .03em;
}
/*
  -- note style
  One step smaller than default text size.
*/
.c-index__note {
  display: inline-block;
  color: rgb(69,53,54);
  color: var(--text);
  font-size: .9rem;
  font-size: var(--epsilon);
  font-weight: 400;
  line-height: 1.2;
}
.c-index__note a {
  color: rgb(215,65,2);
  color: var(--accent);
  text-decoration-color: rgb(241,89,42);
  text-decoration-color: var(--accent-large);
}
.c-index__note a:link,
  .c-index__note a:visited {
    color: rgb(215,65,2);
    color: var(--accent);
    text-decoration-color: rgb(241,89,42);
    text-decoration-color: var(--accent-large);
  }
.c-index__note a:hover,
  .c-index__note a:active,
  .c-index__note a:focus {
    color: rgb(241,89,42);
    color: var(--accent-large);
    text-decoration-color: rgb(241,89,42);
    text-decoration-color: var(--accent-large);
  }
/*
  -- Curriculum Choice
  Conjoined Text + "Go" CTA
*/
.c-index__curriculum-choice {
  border-color: rgb(255,184,28);
  border-color: var(--our-primary-yellow);
  background-color: #ebebeb;
  background-color: var(--light-gray);
  border-radius: .4rem;
  color: rgb(69,53,54);
  color: var(--text);
  display: block;
  margin-top: 1.25rem;
  margin-bottom: 1.25rem;
  width: 100%;
  text-decoration: none;
  font-weight: 600;
  line-height: 1.1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 0 0 0 1rem;
}
@media (min-width: 525px) {
    .c-index__curriculum-choice {
      -webkit-box-align: baseline;
          -ms-flex-align: baseline;
              align-items: baseline;;
    }
  }
.c-index__curriculum-choice:hover {
  color: rgb(215,65,2);
  color: var(--accent);
}
.c-index__curriculum-choice::after {
  content: "";
  width: 0;
  height: 0;
  border-top: transparent solid .5rem;
  border-right: transparent solid .75rem;
  border-bottom: transparent solid .5rem;
  border-left: rgb(69,53,54) solid .75rem;
  border-left: var(--text) solid .75rem;
  margin-left: auto;
  -ms-flex-item-align: center;
      align-self: center;
}
.c-index__curriculum-choice:hover::after {
  border-left-color: rgb(241,89,42);
  border-left-color: var(--accent-large);
}
.c-index__curriculum-title {
  padding: .75rem 0;
  margin-right: .75em;
  -webkit-box-flex: 0;
      -ms-flex: 0 1 auto;
          flex: 0 1 auto;
  line-height: 1.3rem;
}
@media (min-width: 525px) {
    .c-index__curriculum-title {
      white-space: nowrap;
      -webkit-box-flex: 0;
          -ms-flex: 0 0 0px;
              flex: 0 0 0;
    }
  }
.c-index__curriculum-edition {
  font-size: .833rem;
  font-size: var(--zeta);
  text-transform: uppercase;
  letter-spacing: .02em;
  font-weight: 700;
  padding: 0 1rem 0 .5rem;
  line-height: 1.3rem;
  color: rgb(215,65,2);
  color: var(--accent);
  white-space: nowrap;
  display: inline-block;
  vertical-align: baseline;
}
.c-index__edition-separator {
  color: rgb(255,184,28);
  color: var(--our-primary-yellow);
  border-style: dashed;
}
.c-index__curriculum-new {
  padding: 0 0 0 0.25rem;
  color: #008470;
  color: var(--accent-alt);
}
/*
  -- Subject group helper class
    For aligning elements outside `.c-index-subjectgroup' with
    that subject group.
*/
.c-index .for-subjectgroup {
  max-width: 30.5rem;
  margin-left: auto;
  margin-right: auto;
}
/* Shared Styles */
/*--------------------------------------
 *
 * COMPONENT: OUR GLOBAL FOOTER
 * Included in this document: Variables, Base, Styles
 *
 * The instance of the global footer embedded within
 * the reg app is considered canonical.
 *
 *-------------------------------------*/
/*--------------------------------------
*
* COMPONENT: OUR GLOBAL FOOTER -- ROBOTO FONTS
*
*-------------------------------------*/
/* If Google Fonts are already imported into the app, append "Roboto:500" if necessary. */
/* If Google Fonts are not already imported, uncomment the following import statement or (better) add the equivalent to the <head> of the app. */
/* @import url('https://fonts.googleapis.com/css?family=Roboto:500&subset=latin'); */
/*--------------------------------------
 *
 * COMPONENT: OUR GLOBAL FOOTER -- VARIABLES
 *
 *-------------------------------------*/
/* Color palette */
:root {

/* Colors with "-our-" in their name are sourced from the OUR brand guidelines */

--footer-our-primary-dark-gray:    rgb(69,53,54);    /* #453536 */
--footer-white:                    #ffffff;

/*
  Typographic sizes

  Font sizes based on minor third (1.2) http://www.modularscale.com/?1&em&1.2

*/

--footer-font-base-min: 16px;
--footer-font-base-max: 20px;
--footer-fluid-em:      calc(14.72px + 0.4vw);
--footer-zeta:          .833em;
--footer-eta:           .75em;

}
/* Custom Media Declarations for Breakpoints */
/*--------------------------------------
 *
 * COMPONENT: OUR GLOBAL FOOTER -- BASE
 *
 *-------------------------------------*/
.c-footer {
  font-size: 16px;
  font-size: var(--footer-font-base-min);
  font-family: 'Roboto', 'Trebuchet MS', Trebuchet, Tahoma, sans-serif;
  font-weight: 500;
  text-rendering: optimizelegibility; /* Can cause problems in some versions of Android */
   -webkit-text-size-adjust: none;
      -moz-text-size-adjust: none;
       -ms-text-size-adjust: none;
           text-size-adjust: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-display: swap; /* https://www.zachleat.com/web/comprehensive-webfonts/#font-display */
  line-height: 1.45;
  margin-top: auto;

  /* Fluid from 16px to 20px between breakpoints */
}
@media (min-width: 537px) {
    .c-footer {
     font-size: 16px;
     font-size: var(--footer-font-base-min); /* 16px at 320px */ /* px fallback for browsers that don’t get calc */
     font-size: calc(14.72px + 0.4vw);
    }
  }
@media (min-width: 1320px) {
    .c-footer {
     font-size: 20px;
     font-size: var(--footer-font-base-max); /* 20px at 1320px */
    }
  }
.c-footer * {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
.c-footer *::before, .c-footer *::after {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
  }
/*--------------------------------------
*
* COMPONENT: OUR GLOBAL FOOTER -- OVERRIDES
* Override overarching properties in curriculum gateway theme
*
*-------------------------------------*/
.c-footer li {
  padding-left: inherit;
  line-height: inherit;
}
.c-footer li::before,
.c-footer li::before {
  content: normal;
}
/*--------------------------------------
*
* COMPONENT: OUR GLOBAL FOOTER -- STYLES
*
*-------------------------------------*/
.c-footer {
  padding: .75em 1em 4em; /* Fat padding-bottom accommodates feedback widget */
  color: rgba(255, 255, 255,.65);
  background: rgb(69,53,54);
  background: var(--footer-our-primary-dark-gray);
  text-align: center;
}
@media (min-width: 411px) {
    .c-footer {
      text-align: left;
    }
  }
.c-footer a {
   color: rgba(255, 255, 255,.8);
   text-decoration: underline;
}
.c-footer a:hover {
   color: #ffffff;
   color: var(--footer-white);
   text-decoration: underline;
}
.c-footer__navs {
  font-size: .833em;
  font-size: var(--footer-zeta);
}
@media (min-width: 411px) {
    .c-footer__navs {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-pack: justify;
          -ms-flex-pack: justify;
              justify-content: space-between;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
    }
  }
.c-footer__nav-corporate {
  list-style: none;
  margin: calc(7.36px + 0.2vw) 0 0;
  margin: calc(7.36px + 0.2vw) 0 0;
  margin: calc(var(--footer-fluid-em)*0.5) 0 0;
  padding: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media (min-width: 411px) {
    .c-footer__nav-corporate {
      margin-top: 0;
      -webkit-box-pack: start;
          -ms-flex-pack: start;
              justify-content: flex-start;
      margin-right: auto;
    }
  }
.c-footer__nav-social {
  list-style: none;
  margin: calc(14.72px + 0.4vw) 0 0;
  margin: var(--footer-fluid-em) 0 0;
  padding: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media (min-width: 411px) {
    .c-footer__nav-social {
      margin-top: 0;
      -webkit-box-pack: end;
          -ms-flex-pack: end;
              justify-content: flex-end;
      margin-left: auto;
    }
  }
.c-footer__our-logo {
  height: calc(29.44px + 0.8vw);
  height: calc(29.44px + 0.8vw);
  height: calc(var(--footer-fluid-em)*2);
  width: auto;
  display: block;
  margin: calc(3.68px + 0.1vw) auto 0;
  margin: calc(3.68px + 0.1vw) auto 0;
  margin: calc(var(--footer-fluid-em)*0.25) auto 0;
}
@media (min-width: 411px) {
    .c-footer__our-logo {
      position: relative;
      top: calc(1.84px + 0.05vw);
      top: calc(1.84px + 0.05vw);
      top: calc(var(--footer-fluid-em)*0.125);
      margin-right: calc(14.72px + 0.4vw);
      margin-right: var(--footer-fluid-em);
      margin-top: 0;
    }
  }
@media (min-width: 1320px) {
    .c-footer__our-logo {
      top: 2.5px;
      top: calc(var(--footer-font-base-max)*0.125);
      margin-right: 20px;
      margin-right: var(--footer-font-base-max);
      height: 40px;
      height: calc(var(--footer-font-base-max)*2);
    }
  }
.c-footer__nav-corporate li,
.c-footer__nav-social li {
  margin-bottom: 0;
}
.c-footer__nav-corporate li + li {
  margin-left: 20px;
  margin-left: var(--footer-font-base-max);
}
@media (min-width: 1320px) {
    .c-footer__nav-corporate li + li {
      margin-left: 20px;
      margin-left: var(--footer-font-base-max);
    }
  }
.c-footer__nav-social li + li {
  margin-left: 20px;
  margin-left: var(--footer-font-base-max);
}
@media (min-width: 1320px) {
    .c-footer__nav-social li + li {
      margin-left: 20px;
      margin-left: var(--footer-font-base-max);
    }
  }
.c-footer__social-icon {
  height: 1em;
  width: auto;
  display: block;
}
.c-footer__copyrights {
  font-size: .75em;
  font-size: var(--footer-eta);
  margin-top: calc(14.72px + 0.4vw);
  margin-top: var(--footer-fluid-em);
  padding-top: calc(14.72px + 0.4vw);
  padding-top: var(--footer-fluid-em);
  border-top: solid 1px rgba(255, 255, 255,.35);
}
@media (min-width: 411px) {
    .c-footer__copyrights {
      margin-top: calc(11.04px + 0.3vw);
      margin-top: calc(11.04px + 0.3vw);
      margin-top: calc(var(--footer-fluid-em)*0.75);
    }
  }
@media (min-width: 1320px) {
    .c-footer__copyrights {
      padding-top: 20px;
      padding-top: var(--footer-font-base-max);
      margin-top: 15px;
      margin-top: calc(var(--footer-font-base-max)*0.75);
    }
  }
.c-footer__copyrights:only-child,
.c-footer__copyrights:first-child {
  margin-top: 0;
  border: none;
  padding-top: calc(3.68px + 0.1vw);
  padding-top: calc(3.68px + 0.1vw);
  padding-top: calc(var(--footer-fluid-em)*0.25);
}
@media (min-width: 1320px) {
    .c-footer__copyrights:only-child, .c-footer__copyrights:first-child {
      padding-top: 5px;
      padding-top: calc(var(--footer-font-base-max)*0.25);
    }
  }
.c-footer__build {
  display: block;
}
/* ----------------------------------------------------------------------------
 *
 * COMPONENT: OUR MODAL MESSAGE
 * Intended for only very short messages. Message box grows with content,
 * so this component is not appropriate for content that might exceed
 * the height of the viewport on any device.
 *
 * Bonus! Body properties to prevent scrolling when the modal is open.
 *
 *--------------------------------------------------------------------------- */
/*--------------------------------------
*
* COMPONENT: OUR MODAL MESSAGE -- ROBOTO FONTS
*
*-------------------------------------*/
/* Roboto at 400 weight is necessary for the typography in this component. */
/* Roboto at 500 weight is necessary for the button in this component. */
/* If Google Fonts are already imported into the app, append "Roboto:400,500,700" if necessary. */
/* If Google Fonts are not already imported, uncomment the following import statement or (better) add
the equivalent to the <head> of the app. */
/* @import url('https://fonts.googleapis.com/css?family=Roboto:400,500&subset=latin'); */
/*--------------------------------------
 *
 * COMPONENT: OUR MODAL MESSAGE -- VARIABLES
 *
 *-------------------------------------*/
:root {

  /* Color palette */

  --modal-teal:       #008470;
  --modal-light-gray: #ebebeb; /* 8% black */
  --modal-white:      #ffffff;

  /*
    Typographic sizes

  */

  --modal-font-base-min: 16px;
  --modal-font-base-max: 20px;
  --modal-fluid-em:      calc(14.72px + 0.4vw);
  --modal-beta:          1.784em;
  --modal-gamma:         1.2em;
  --modal-delta:         1em;
  --modal-zeta:          .875em;
  --modal-eta:           .75em;

}
/* Viewport Width Variables */
:root {

  --modal-bp-min:          320px;
  --modal-bp-mega:         1024px;
  --modal-bp-max:          1320px;

}
/* Custom Media Declarations for Breakpoints */
/*--------------------------------------
*
* COMPONENT: OUR MODAL MESSAGE -- TYPOGRAPHY
*
*-------------------------------------*/
.c-modal {
  font-size: 16px;
  font-size: var(--modal-font-base-min);
  font-family: 'Roboto', 'Trebuchet MS', Trebuchet, Tahoma, sans-serif;
  font-weight: 500;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-display: swap; /* https://www.zachleat.com/web/comprehensive-webfonts/#font-display */
  line-height: 1.35;

  /* Fluid from 16px to 20px between breakpoints */

  /* Fluid type size from 16px to 20px between --modal-bp-min and --modal-bp-max breakpoints */


}
@media (min-width: 320px) {
    .c-modal {
      font-size: 16px;
      font-size: var(--modal-font-base-min); /* 16px at 320px */
      font-size: calc(14.72px + 0.4vw);
    }
  }
@media (min-width: 1320px) {
    .c-modal {
      font-size: 20px;
      font-size: var(--modal-font-base-max); /* 20px at 1320px */
    }
  }
/* Fluid line-height from 1.35 to 1.45 between --modal-bp-min and --modal-bp-max breakpoints */
@media (min-width: 320px) {
.c-modal {
    line-height: 1.35; /* 1.35 at 320px */
    line-height: calc(1.35em + 0.01vw - 0.032px);


}
  }
@media (min-width: 1320px) {
.c-modal {
    line-height: 1.45; /* 1.45 at 1320px */


}
  }
/*--------------------------------------
*
* COMPONENT: OUR MODAL MESSAGE -- STYLES
*
*-------------------------------------*/
body.l-has-modal {
  overflow-y: hidden;
}
.c-modal {
  display: none;
}
.c-modal * {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
body.l-has-modal .c-modal {
  background: rgba(0, 0, 0, 0.85) !important;
}
body.l-has-modal .c-modal {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -ms-flex-pack: distribute;
      justify-content: space-around;
  z-index: 8675310;
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}
.c-modal__content {
  margin-left: 5vw;
  margin-right: 5vw;
  padding: 2em;
  z-index: 8675310;
  background: #008470;
  background: var(--modal-teal);
  color: #ffffff;
  color: var(--modal-white);
  -webkit-box-shadow: 0 25px 100px rgba(0, 0, 0, 0.5);
          box-shadow: 0 25px 100px rgba(0, 0, 0, 0.5);
  border-radius: .25em;
  text-align: center;
  position: relative;
}
@media (min-width: 1024px) {
  .c-modal__content {
    margin-right: 15vw;
    margin-left: 15vw;
  }
}
.c-modal p {
  margin-bottom: 1em;
  font-weight: 400;
}
a.c-modal__close,
a.c-modal__close:link,
a.c-modal__close:visited
a.c-modal__close:active {
  position: absolute;
  text-decoration: none;
  top: calc(1.84px + 0.05vw);
  top: calc(1.84px + 0.05vw);
  top: calc(var(--modal-fluid-em)*0.125);
  right: calc(7.36px + 0.2vw);
  right: calc(7.36px + 0.2vw);
  right: calc(var(--modal-fluid-em)*0.5);
  font-size: 1.784em;
  font-size: var(--modal-beta);
  line-height: 1;
  -webkit-appearance: none;
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  color: #ffffff;
  color: var(--modal-white);
  cursor: pointer;
  opacity: .8;
  -webkit-transition: none;
  transition: none;
}
a.c-modal__close:focus,
a.c-modal__close:hover {
  opacity: 1;
  color: #ffffff;
  color: var(--modal-white);
}
a.c-modal__cancel,
a.c-modal__cancel:link,
a.c-modal__cancel:visited
a.c-modal__cancel:active {
  font-size: .75em;
  font-size: var(--modal-eta);
  background-color: transparent;
  color: #ebebeb;
  color: var(--modal-light-gray);
  cursor: pointer;
  display: block;
  font-weight: 500;
  min-height: 2.375em;
  line-height: 1.2;
  text-align: center;
  text-decoration: underline;
  -moz-appearance: none;
       appearance: none;
  margin: calc(3.68px + 0.1vw) 0 0;
  margin: calc(3.68px + 0.1vw) 0 0;
  margin: calc(var(--modal-fluid-em)*0.25) 0 0;
  -webkit-appearance: none;
  -webkit-transition: none;
  transition: none;
}
a.c-modal__cancel:focus,
a.c-modal__cancel:hover {
  color: #ffffff;
  color: var(--modal-white);
}
.c-modal__content > h1 {
    font-size: 1.2em;
    font-size: var(--modal-gamma);
    font-weight: 700;
  }
.c-modal__content > a[role="button"],
  .c-modal__content > a[role="button"]:link,
  .c-modal__content > a[role="button"]:visited
  .c-modal__content > a[role="button"]:active {
    font-size: .75em;
    font-size: var(--modal-eta);
    background-color: transparent;
    border: calc(0.92px + 0.025vw) solid #ebebeb;
    border: calc(0.92px + 0.025vw) solid #ebebeb;
    border: calc(var(--modal-fluid-em)*0.0625) solid var(--modal-light-gray);
    border-radius: calc(3.68px + 0.1vw);
    border-radius: calc(3.68px + 0.1vw);
    border-radius: calc(var(--modal-fluid-em)*0.25);
    color: #ebebeb;
    color: var(--modal-light-gray);
    cursor: pointer;
    display: inline-block;
    font-weight: 700;
    min-height: 2.375em;
    line-height: 1.2;
    padding: .75em 1.875em;
    text-align: center;
    text-decoration: none;
    -moz-appearance: none;
         appearance: none;
    margin: calc(3.68px + 0.1vw) 0 0;
    margin: calc(3.68px + 0.1vw) 0 0;
    margin: calc(var(--modal-fluid-em)*0.25) 0 0;
    -webkit-appearance: none;
    -webkit-transition: none;
    transition: none;
  }
.c-modal__content > a[role="button"]:focus,
  .c-modal__content > a[role="button"]:hover {
    background-color: transparent;
    border-color: #ffffff;
    border-color: var(--modal-white);
    color: #ffffff;
    color: var(--modal-white);
  }
.c-modal__content > a[rel="alternate"],
  .c-modal__content > a[rel="alternate"]:link,
  .c-modal__content > a[rel="alternate"]:visited
  .c-modal__content > a[rel="alternate"]:active {
    font-size: .875em;
    font-size: var(--modal-zeta);
    position: relative;
    padding-right: 2.5em;
    margin: calc(7.36px + 0.2vw) 0;
    margin: calc(7.36px + 0.2vw) 0;
    margin: calc(var(--modal-fluid-em)*0.5) 0;
  }
.c-modal__content > a[rel="alternate"]::after {
    position: absolute;
    top: 50%;
    margin-top: -.5em;
    right: .125em;
    content: "";
    width: 0;
    height: 0;
    border-top: transparent solid .5em;
    border-right: transparent solid .75em;
    border-bottom: transparent solid .5em;
    border-left: #ebebeb solid .75em;
    border-left: var(--modal-light-gray) solid .75em;
    margin-left: auto;
  }
.c-modal__content > a[rel="alternate"]:focus::after,
  .c-modal__content > a[rel="alternate"]:hover::after {
    border-left-color: #ffffff;
    border-left-color: var(--modal-white);
  }
.h-modal-url-wrap {
  word-wrap: break-word;
}
/*--------------------------------------
 *
 * COMPONENT: OUR GLOBAL NAV
 * Included in this document: Variables, Base, Styles
 *
 * The instance of the global nav embedded within
 * the reg app is canonical.
 * (https://github.com/openupresources/curriculum-gateway)
 *
 *-------------------------------------*/
/*--------------------------------------
 *
 * COMPONENT: OUR GLOBAL NAV -- ROBOTO FONTS
 *
 *-------------------------------------*/
/* Avoid loading unnecessary font weights! */
/* Always necessary: */
/* Roboto 500 for top and second-level list items. */
/* Sometimes necessary: */
/* Roboto 400 for third-level list items in narrow viewports and global notifications. */
/* Only necessary in the Curriculum Gateway/Reg App: */
/* Roboto 700 for “Create New Account” on login page. */
/* If Google Fonts are already imported into the app, include "&family=Roboto:ital,wght@0,400;0,500;1,700" as necessary. */
/* If Google Fonts are not already imported, uncomment the following import statement or (better) add
 the equivalent to the <head> of the app. */
/* @import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,400;0,500;1,700&display=swap'); */
/*--------------------------------------
 *
 * COMPONENT: OUR GLOBAL NAV -- VARIABLES
 *
 *-------------------------------------*/
/* Color palette */
:root {

  /* Colors with "-our-" in their name are sourced from the OUR brand guidelines */

--nav-global-our-primary-orange:       rgb(252,76,2);    /* #FC4C02 */
--nav-global-our-globalnav-orange:     rgb(241,89,42);   /* #F1592A  - a less bright orange */
--nav-global-our-primary-yellow:       rgb(255,184,28);  /* #FFB81C */
--nav-global-our-primary-gray:         rgb(110,98,89);   /* #6E6259 */
--nav-global-our-primary-dark-gray:    rgb(69,53,54);    /* #453536 */
--nav-global-white:                    white;
--nav-global-light-gray:               rgb(241,241,241);

/*
  Typographic sizes

  Font sizes based on minor third (1.2) http://www.modularscale.com/?1&em&1.2

*/

--nav-global-font-base-min: 16px;
--nav-global-font-base-max: 20px;
--nav-global-fluid-em:      calc(14.72px + 0.4vw);
--nav-global-delta:         1.2em;
--nav-global-epsilon:       .833em;
--nav-global-zeta:          .8em;

}
/* Custom Media Declarations for Breakpoints */
/*--------------------------------------
 *
 * COMPONENT: OUR GLOBAL NAV -- BASE
 *
 *-------------------------------------*/
.c-nav-global {
   font-size: 16px;
   font-size: var(--nav-global-font-base-min);
   font-family: 'Roboto', 'Trebuchet MS', Trebuchet, Tahoma, sans-serif;
   font-weight: 500;
   text-rendering: optimizelegibility; /* Can cause problems in some versions of Android */
     -webkit-text-size-adjust: none;
        -moz-text-size-adjust: none;
         -ms-text-size-adjust: none;
             text-size-adjust: none;
   -webkit-font-smoothing: antialiased;
   -moz-osx-font-smoothing: grayscale;
   font-display: swap; /* https://www.zachleat.com/web/comprehensive-webfonts/#font-display */
   line-height: 1.45;

   /* Fluid from 16px to 20px between breakpoints */
}
@media (min-width: 537px) {
     .c-nav-global {
       font-size: 16px;
       font-size: var(--nav-global-font-base-min); /* 16px at 320px */ /* px fallback for browsers that don’t get calc */
       font-size: calc(14.72px + 0.4vw);
     }
   }
@media (min-width: 1320px) {
     .c-nav-global {
       font-size: 20px;
       font-size: var(--nav-global-font-base-max); /* 20px at 1320px */
     }
   }
.c-nav-global * {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
.c-nav-global *::before, .c-nav-global *::after {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
  }
/*--------------------------------------
 *
 * COMPONENT: OUR GLOBAL NAV -- STYLES
 *
 *-------------------------------------*/
@media (min-width: 1024px) {
    .c-nav-global {
      z-index: 8675309;
      width: 100%;
    }
  }
.c-nav-global__wrapper {
  padding: .75em 1em;
  background: rgb(241,89,42);
  background: var(--nav-global-our-globalnav-orange);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  position:relative;
}
@media (min-width: 1024px) {
    .c-nav-global__wrapper {
      padding: 0 .25em 0 1em;
    }
  }
.c-nav-global__logolink {
  display: block;
}
@media (min-width: 1024px) {
    .c-nav-global__logolink {
      padding: 0.83125em 0;
    }
  }
.c-nav-global__logoimg {
  display: block;
  height: 2em;
  width: auto;
}
.c-nav-global__menu {
  display:inline-block;
  text-decoration: none;
  color: white;
  color: var(--nav-global-white);
  border: 3px rgb(255,184,28) solid;
  border: 3px var(--nav-global-our-primary-yellow) solid; /* Normally, I prefer rems/ems for all dimensions, but browser rounding on an element this small results in different pixel widths across adjacent instances of this same element. The difference is noticeable and annoying.  */
  border-radius: calc(18.4px + 0.5vw);
  border-radius: calc(18.4px + 0.5vw);
  border-radius: calc(var(--nav-global-fluid-em)*1.25);
  padding: calc(7.36px + 0.2vw) calc(14.72px + 0.4vw);
  padding: calc(7.36px + 0.2vw) calc(14.72px + 0.4vw);
  padding: calc(var(--nav-global-fluid-em)*0.5) calc(var(--nav-global-fluid-em));
  text-transform: uppercase;
  line-height: calc(14.72px + 0.4vw);
  line-height: calc(14.72px + 0.4vw);
  line-height: calc(var(--nav-global-fluid-em));
  width: calc(73.6px + 2vw);
  width: calc(73.6px + 2vw);
  width: calc(var(--nav-global-fluid-em)*5);
  text-align:center;
  font-size: .833em;
  font-size: var(--nav-global-epsilon);
  font-weight: 500;
}
@media (min-width: 1024px) {
    .c-nav-global__menu {
      display: none;
    }
  }
.c-nav-global__menu:link,
  .c-nav-global__menu:visited,
  .c-nav-global__menu:hover,
  .c-nav-global__menu:active {
    color: white;
    color: var(--nav-global-white);
  }
@media (max-width: 1023px) {
    .c-nav-global__nav {
      background: rgb(241,89,42);
      background: var(--nav-global-our-globalnav-orange);
      padding: .75em 1em;
      text-align: right;
      position: fixed;
      overflow-y: scroll;
      z-index: 8675309;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      visibility: hidden;
      opacity: 0;
      -webkit-transition: opacity 0.5s, visibility 0s 0.5s;
      transition: opacity 0.5s, visibility 0s 0.5s;
    }

      .c-nav-global__nav:target:not([data-skip-targeting]), .c-nav-global__nav[data-visible] {
        opacity: 1;
        visibility: visible;
        -webkit-transition: opacity 0.5s;
        transition: opacity 0.5s;
      }
  }
.c-nav-global__list {
  list-style: none;
  margin: 1em auto 0;
  padding: 2em 1em 2em;
  text-align: center;
  position: static;
}
@media (min-width: 1024px) {
    .c-nav-global__list {
      margin: 0;
      padding: 0;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-pack: justify;
          -ms-flex-pack: justify;
              justify-content: space-between;
    }
  }
.c-nav-global__list {
  /* Annoying necessity - override of OUR wordpress theme defaults for ul */
  position: static;
}
.c-nav-global__listitem {
  list-style: none;
  -webkit-hyphens: none;
      -ms-hyphens: none;
          hyphens: none;
  margin: 0;
  padding: .65625em 0 0;
  line-height: 1.25;
}
@media (min-width: 1024px) {
    .c-nav-global__listitem {
      padding: 1.15625em 0;
    }
  }
/* Annoying necessity - override of OUR wordpress theme defaults for ul li */
.c-nav-global__listitem::before {
  content: normal;
}
.c-nav-global__label {
  color: white;
  color: var(--nav-global-white);
  font-size: 1.2em;
  font-size: var(--nav-global-delta);
  display: inline-block;
}
@media (min-width: 1024px) {
    .c-nav-global__label {
      font-size: .833em;
      font-size: var(--nav-global-epsilon);
    }
  }
.c-nav-global__link,
.c-nav-global__link:link,
.c-nav-global__link:visited,
.c-nav-global__link:active {
  font-size: 1.2em;
  font-size: var(--nav-global-delta);
  font-weight: 500;
  position: relative;
  display: inline-block;
  text-decoration: none;
  color: white;
  color: var(--nav-global-white);
  padding: calc(7.36px + 0.2vw);
  padding: calc(7.36px + 0.2vw);
  padding: calc(var(--nav-global-fluid-em)*0.5);
  -webkit-transition: none;
  transition: none;
}
@media (min-width: 1024px) {
    .c-nav-global__link, .c-nav-global__link:link, .c-nav-global__link:visited, .c-nav-global__link:active {
      font-size: .833em;
      font-size: var(--nav-global-epsilon);
      padding: 0 20px;
      padding: 0 var(--nav-global-font-base-max);
    }
  }
@media (min-width: 1024px) {
    .c-nav-global__link::before,
    .c-nav-global__link:link::before,
    .c-nav-global__link:visited::before,
    .c-nav-global__link:active::before,
    .c-nav-global__link::after,
    .c-nav-global__link:link::after,
    .c-nav-global__link:visited::after,
    .c-nav-global__link:active::after {
      display: block;
      height: 3px; /* Normally, I prefer rems/ems for all dimensions, but browser rounding on an element this small results in different pixel widths across adjacent instances of this same element. The difference is noticeable and annoying.  */
      width: 100%;
      content: "";
      position: relative;
      top: 2px;
    }
  }
@media (max-width: 1023px) {
    .c-nav-global__link::before,
    .c-nav-global__link:link::before,
    .c-nav-global__link:visited::before,
    .c-nav-global__link:active::before,
    .c-nav-global__link::after,
    .c-nav-global__link:link::after,
    .c-nav-global__link:visited::after,
    .c-nav-global__link:active::after {
      position: absolute;
      bottom: calc(3.68px + 0.1vw);
      bottom: calc(3.68px + 0.1vw);
      bottom: calc(var(--nav-global-fluid-em)*0.25);
      left: 0;
      right: 0;
      width: auto;
    }
  }
.c-nav-global__link:hover, .c-nav-global__link:link:hover, .c-nav-global__link:visited:hover, .c-nav-global__link:active:hover {
    color: white;
    color: var(--nav-global-white);
    text-decoration: none;
  }
@media (min-width: 1024px) {
    .c-nav-global__link:hover::after,
    .c-nav-global__link:link:hover::after,
    .c-nav-global__link:visited:hover::after,
    .c-nav-global__link:active:hover::after,
    .c-nav-global__link:focus::after,
    .c-nav-global__link:link:focus::after,
    .c-nav-global__link:visited:focus::after,
    .c-nav-global__link:active:focus::after {
      background: rgb(255,184,28);
      background: var(--nav-global-our-primary-yellow);
    }
  }
/* 700 weight only required in the Reg App for formatting "Create New Account" */
.c-nav-global__label + .c-nav-global__link,
.c-nav-global__label + .c-nav-global__link:link,
.c-nav-global__label + .c-nav-global__link:visited,
.c-nav-global__label + .c-nav-global__link:active {
  padding-left: 0;
  font-weight: 700;
}
.c-nav-global__label + .c-nav-global__link::before,
  .c-nav-global__label + .c-nav-global__link:link::before,
  .c-nav-global__label + .c-nav-global__link:visited::before,
  .c-nav-global__label + .c-nav-global__link:active::before,
  .c-nav-global__label + .c-nav-global__link::after,
  .c-nav-global__label + .c-nav-global__link:link::after,
  .c-nav-global__label + .c-nav-global__link:visited::after,
  .c-nav-global__label + .c-nav-global__link:active::after {
    display: block;
    height: 3px; /* Normally, I prefer rems/ems for all dimensions, but browser rounding on an element this small results in different pixel widths across adjacent instances of this same element. The difference is noticeable and annoying.  */
    width: 100%;
    content: "";
    position: relative;
    top: 2px;
  }
.c-nav-global__label + .c-nav-global__link::after, .c-nav-global__label + .c-nav-global__link:link::after, .c-nav-global__label + .c-nav-global__link:visited::after, .c-nav-global__label + .c-nav-global__link:active::after {
    background: rgb(255,184,28);
    background: var(--nav-global-our-primary-yellow);
    opacity: .75;
  }
.c-nav-global__label + .c-nav-global__link:hover::after, .c-nav-global__label + .c-nav-global__link:link:hover::after, .c-nav-global__label + .c-nav-global__link:visited:hover::after, .c-nav-global__label + .c-nav-global__link:active:hover::after {
    opacity: 1;
  }
@media (min-width: 1024px) {
    .c-nav-global__label + .c-nav-global__link::before,
    .c-nav-global__label + .c-nav-global__link:link::before,
    .c-nav-global__label + .c-nav-global__link:visited::before,
    .c-nav-global__label + .c-nav-global__link:active::before,
    .c-nav-global__label + .c-nav-global__link::after,
    .c-nav-global__label + .c-nav-global__link:link::after,
    .c-nav-global__label + .c-nav-global__link:visited::after,
    .c-nav-global__label + .c-nav-global__link:active::after {
      top: 0;
    }
  }
@media (min-width: 1024px) {
      .c-nav-global__listitem:last-child:not(:only-child) .c-nav-global__link, .c-nav-global__listitem:last-child:not(:only-child) .c-nav-global__link:link, .c-nav-global__listitem:last-child:not(:only-child) .c-nav-global__link:visited, .c-nav-global__listitem:last-child:not(:only-child) .c-nav-global__link:active {
        margin-left: 20px;
        margin-left: var(--nav-global-font-base-max);
        padding-left: 40px;
        padding-left: calc(var(--nav-global-font-base-max)*2);
        border-left: 1px solid white;
        border-left: 1px solid var(--nav-global-white);
      }
    }
.c-nav-global__notification {
  padding: .8em 3em;
  padding: var(--nav-global-zeta) 3em;
  background-color: orange;
  text-align: center;
}
.c-nav-global__notification p {
  font-size: .8em;
  font-size: var(--nav-global-zeta);
  font-weight: 400;
  line-height: 1.2;
  margin: 0;
}
.c-nav-global__notification a {
  color: rgb(69,53,54);
  color: var(--nav-global-our-primary-dark-gray);
  border: none;
  text-decoration: underline;
  white-space: nowrap;
}
.c-nav-global__helper-nowrap {
  white-space: nowrap;
}
/* Make content visible screen readers only when not focused or active */
/* "sr" meaning "screen-reader". Learn more: https://css-tricks.com/inclusively-hidden/ */
.sr-only:not(:focus):not(:active) {
  clip: rect(0 0 0 0);
  -webkit-clip-path: inset(50%);
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}
*:focus {
  outline: none;
}
*.focus-visible {
  outline: none;
  -webkit-box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em rgb(215,65,2);
          box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em rgb(215,65,2);
  -webkit-box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em var(--aa-orange);
          box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em var(--aa-orange);
}
*.focus-visible {
  outline: none;
  -webkit-box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em rgb(215,65,2);
          box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em rgb(215,65,2);
  -webkit-box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em var(--aa-orange);
          box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em var(--aa-orange);
}
*:focus-visible {
  outline: none;
  -webkit-box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em rgb(215,65,2);
          box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em rgb(215,65,2);
  -webkit-box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em var(--aa-orange);
          box-shadow:
    0 0 0 0.15em #fff,
    0 0 0 0.3em var(--aa-orange);
}
@media (forced-colors: active) {
  *.focus-visible {
    outline: 0.2em solid;
  }
  *:focus-visible {
    outline: 0.2em solid;
  }
}
/** Utility Classes **/
/*
  Used to indicate preformatted whitespace.
*/
.u-preformatted { white-space: pre }

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3N0eWxlc2hlZXRzL3B1YmxpY2F0aW9ucy5jc3MiLCIuLi9zdHlsZXNoZWV0cy9wdWJsaWNhdGlvbnMvdmVuZG9yL25vcm1hbGl6ZS5jc3MiLCIuLi9zdHlsZXNoZWV0cy9wdWJsaWNhdGlvbnMvY29yZS9fY29sb3IuY3NzIiwiLi4vc3R5bGVzaGVldHMvcHVibGljYXRpb25zL2NvcmUvX2ZvbnRzLmNzcyIsIi4uL3N0eWxlc2hlZXRzL3B1YmxpY2F0aW9ucy9jb3JlL19zaXplcy5jc3MiLCIuLi9zdHlsZXNoZWV0cy9wdWJsaWNhdGlvbnMvY29yZS9fdHlwb2dyYXBoeS5jc3MiLCIuLi9zdHlsZXNoZWV0cy9wdWJsaWNhdGlvbnMvY29yZS9fYnV0dG9uLmNzcyIsIi4uL3N0eWxlc2hlZXRzL3B1YmxpY2F0aW9ucy9sYXlvdXQvX2xheW91dC5jc3MiLCIuLi9zdHlsZXNoZWV0cy9wdWJsaWNhdGlvbnMvY29tcG9uZW50cy9fYmFubmVyLmNzcyIsIi4uL3N0eWxlc2hlZXRzL3B1YmxpY2F0aW9ucy9jb21wb25lbnRzL19hbm5vdW5jZW1lbnQuY3NzIiwiLi4vc3R5bGVzaGVldHMvcHVibGljYXRpb25zL2NvbXBvbmVudHMvX2N0YS1zaWRlYmFyLmNzcyIsIi4uL3N0eWxlc2hlZXRzL3B1YmxpY2F0aW9ucy9jb21wb25lbnRzL19kaXJlY3RvcnkuY3NzIiwiLi4vc3R5bGVzaGVldHMvcHVibGljYXRpb25zL2NvbXBvbmVudHMvX2ZpZ3VyZS5jc3MiLCIuLi9zdHlsZXNoZWV0cy9wdWJsaWNhdGlvbnMvY29tcG9uZW50cy9fbmF2LWN1cnJpY3VsdW0uY3NzIiwiLi4vc3R5bGVzaGVldHMvcHVibGljYXRpb25zL2NvbXBvbmVudHMvX2luZGV4LmNzcyIsIi4uL3N0eWxlc2hlZXRzL3NoYXJlZC9jb21wb25lbnRzL19mb290ZXIuY3NzIiwiLi4vc3R5bGVzaGVldHMvc2hhcmVkL2NvbXBvbmVudHMvX21vZGFsLmNzcyIsIi4uL3N0eWxlc2hlZXRzL3NoYXJlZC9jb21wb25lbnRzL19uYXYtZ2xvYmFsLmNzcyIsIi4uL3N0eWxlc2hlZXRzL3NoYXJlZC9jb21wb25lbnRzL19hY2Nlc3NpYmlsaXR5LmNzcyIsIi4uL3N0eWxlc2hlZXRzL3NoYXJlZC9zdHlsZXMuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDZCQUE2QjtBQ0E3QiwyRUFBMkU7QUFFM0U7K0VBQytFO0FBRS9FOzs7RUFHRTtBQUVGO0VBQ0UsaUJBQWlCLEVBQUUsTUFBTTtFQUN6Qiw4QkFBOEIsRUFBRSxNQUFNO0FBQ3hDO0FBRUE7K0VBQytFO0FBRS9FOztFQUVFO0FBRUY7RUFDRSxTQUFTO0FBQ1g7QUFFQTs7RUFFRTtBQUVGO0VBQ0UsY0FBYztBQUNoQjtBQUVBOzs7RUFHRTtBQUVGO0VBQ0UsY0FBYztFQUNkLGdCQUFnQjtBQUNsQjtBQUVBOytFQUMrRTtBQUUvRTs7O0VBR0U7QUFFRjtFQUNFLCtCQUF1QjtVQUF2Qix1QkFBdUIsRUFBRSxNQUFNO0VBQy9CLFNBQVMsRUFBRSxNQUFNO0VBQ2pCLGlCQUFpQixFQUFFLE1BQU07QUFDM0I7QUFFQTs7O0VBR0U7QUFFRjtFQUNFLGlDQUFpQyxFQUFFLE1BQU07RUFDekMsY0FBYyxFQUFFLE1BQU07QUFDeEI7QUFFQTsrRUFDK0U7QUFFL0U7O0VBRUU7QUFFRjtFQUNFLDZCQUE2QjtBQUMvQjtBQUVBOzs7RUFHRTtBQUVGO0VBQ0UsbUJBQW1CLEVBQUUsTUFBTTtFQUMzQiwwQkFBMEIsRUFBRSxNQUFNO0VBQ2xDLDBCQUFpQztFQUFqQyxzREFBaUM7VUFBakMsOENBQWlDLEVBQUUsTUFBTTtBQUMzQztBQUVBOztFQUVFO0FBRUY7O0VBRUUsbUJBQW1CO0FBQ3JCO0FBRUE7OztFQUdFO0FBRUY7OztFQUdFLGlDQUFpQyxFQUFFLE1BQU07RUFDekMsY0FBYyxFQUFFLE1BQU07QUFDeEI7QUFFQTs7RUFFRTtBQUVGO0VBQ0UsY0FBYztBQUNoQjtBQUVBOzs7RUFHRTtBQUVGOztFQUVFLGNBQWM7RUFDZCxjQUFjO0VBQ2Qsa0JBQWtCO0VBQ2xCLHdCQUF3QjtBQUMxQjtBQUVBO0VBQ0UsZUFBZTtBQUNqQjtBQUVBO0VBQ0UsV0FBVztBQUNiO0FBRUE7K0VBQytFO0FBRS9FOztFQUVFO0FBRUY7RUFDRSxrQkFBa0I7QUFDcEI7QUFFQTsrRUFDK0U7QUFFL0U7OztFQUdFO0FBRUY7Ozs7O0VBS0Usb0JBQW9CLEVBQUUsTUFBTTtFQUM1QixlQUFlLEVBQUUsTUFBTTtFQUN2QixpQkFBaUIsRUFBRSxNQUFNO0VBQ3pCLFNBQVMsRUFBRSxNQUFNO0FBQ25CO0FBRUE7OztFQUdFO0FBRUY7UUFDUSxNQUFNO0VBQ1osaUJBQWlCO0FBQ25CO0FBRUE7OztFQUdFO0FBRUY7U0FDUyxNQUFNO0VBQ2Isb0JBQW9CO0FBQ3RCO0FBRUE7O0VBRUU7QUFFRjs7OztFQUlFLDBCQUEwQjtBQUM1QjtBQUVBOztFQUVFO0FBRUY7Ozs7RUFJRSxrQkFBa0I7RUFDbEIsVUFBVTtBQUNaO0FBRUE7O0VBRUU7QUFFRjs7OztFQUlFLDhCQUE4QjtBQUNoQztBQUVBOztFQUVFO0FBRUY7RUFDRSw4QkFBOEI7QUFDaEM7QUFFQTs7Ozs7RUFLRTtBQUVGO0VBQ0UsOEJBQXNCO1VBQXRCLHNCQUFzQixFQUFFLE1BQU07RUFDOUIsY0FBYyxFQUFFLE1BQU07RUFDdEIsY0FBYyxFQUFFLE1BQU07RUFDdEIsZUFBZSxFQUFFLE1BQU07RUFDdkIsVUFBVSxFQUFFLE1BQU07RUFDbEIsbUJBQW1CLEVBQUUsTUFBTTtBQUM3QjtBQUVBOztFQUVFO0FBRUY7RUFDRSx3QkFBd0I7QUFDMUI7QUFFQTs7RUFFRTtBQUVGO0VBQ0UsY0FBYztBQUNoQjtBQUVBOzs7RUFHRTtBQUVGOztFQUVFLDhCQUFzQjtVQUF0QixzQkFBc0IsRUFBRSxNQUFNO0VBQzlCLFVBQVUsRUFBRSxNQUFNO0FBQ3BCO0FBRUE7O0VBRUU7QUFFRjs7RUFFRSxZQUFZO0FBQ2Q7QUFFQTs7O0VBR0U7QUFFRjtFQUNFLDZCQUE2QixFQUFFLE1BQU07RUFDckMsb0JBQW9CLEVBQUUsTUFBTTtBQUM5QjtBQUVBOztFQUVFO0FBRUY7RUFDRSx3QkFBd0I7QUFDMUI7QUFFQTs7O0VBR0U7QUFFRjtFQUNFLDBCQUEwQixFQUFFLE1BQU07RUFDbEMsYUFBYSxFQUFFLE1BQU07QUFDdkI7QUFFQTsrRUFDK0U7QUFFL0U7O0VBRUU7QUFFRjtFQUNFLGNBQWM7QUFDaEI7QUFFQTs7RUFFRTtBQUVGO0VBQ0Usa0JBQWtCO0FBQ3BCO0FBRUE7K0VBQytFO0FBRS9FOztFQUVFO0FBRUY7RUFDRSxhQUFhO0FBQ2Y7QUFFQTs7RUFFRTtBQUVGO0VBQ0UsYUFBYTtBQUNmO0FEM1YrQyw4QkFBOEI7QUFFN0UsMkJBQTJCO0FFSDNCOzs7OzhFQUk4RTtBQUU5RTs7SUFFSSw0R0FBNEc7O0lBRTVHLHlDQUF5QyxLQUFLLFlBQVk7SUFDMUQsMENBQTBDLElBQUksd0RBQXdEO0lBQ3RHLHlDQUF5QyxLQUFLLG9FQUFvRTtJQUNsSCwyQ0FBMkMsR0FBRyxZQUFZO0lBQzFELDBDQUEwQyxJQUFJLFlBQVk7SUFDMUQseUNBQXlDLEtBQUssWUFBWTtJQUMxRCw0Q0FBNEM7SUFDNUMsNENBQTRDLEVBQUUsaUVBQWlFO0lBQy9HLDRDQUE0QztJQUM1QyxtQ0FBbUMsRUFBRSxzRkFBc0Y7SUFDM0gsbUNBQW1DLEVBQUUsaUdBQWlHOztJQUV0SSx1Q0FBdUM7O0lBRXZDLHFCQUFxQjtJQUNyQiwwQ0FBMEM7SUFDMUMscUJBQXFCLEVBQUUsY0FBYztJQUNyQyxxQkFBcUIsRUFBRSxjQUFjO0lBQ3JDLHFCQUFxQixFQUFFLGFBQWE7SUFDcEMscUJBQXFCO0lBQ3JCLDhCQUE4QjtJQUM5QiwrQ0FBK0M7SUFDL0MseUJBQXlCO0lBQ3pCLDZDQUE2QyxFQUFFLFlBQVk7SUFDM0QsNENBQTRDLEdBQUcsWUFBWTtJQUMzRCw0Q0FBNEMsR0FBRyxZQUFZOztBQUUvRDtBQ3JDQTs7Ozs4RUFJOEU7QUFFOUU7RUFDRSwyRUFBMkUsRUFBRSwwRUFBMEU7RUFDdkoscURBQXFELEVBQUUsaURBQWlEO0VBQ3hHLDZDQUE2QyxFQUFFLHdCQUF3QjtBQUN6RTtBQ1ZBOzs7OzhFQUk4RTtBQUU5RSx3Q0FBd0M7QUFFeEM7RUFDRSwwQkFBMEIsaUJBQWlCLHFEQUFxRDtFQUNoRyw0QkFBNEIsZUFBZSx1QkFBdUI7RUFDbEUsMEJBQTBCLGVBQWUsdUJBQXVCO0VBQ2hFLHdCQUF3QixtQkFBbUIsMkRBQTJEO0VBQ3RHLHdCQUF3QixtQkFBbUIsdUJBQXVCO0VBQ2xFLHdCQUF3QixtQkFBbUIsa0JBQWtCO0VBQzdELHlCQUF5QixrQkFBa0IsdUJBQXVCO0VBQ2xFLDJCQUEyQixnQkFBZ0IsNERBQTREO0VBQ3ZHLDBCQUEwQixpQkFBaUIsMkVBQTJFOztBQUV4SDtBQUVBLCtCQUErQjtBQUUvQjtFQUNFLGdCQUFnQjtFQUNoQixzQkFBc0I7QUFDeEI7QUFFQSw2QkFBNkI7QUFFN0I7O0VBRUUsd0JBQXdCO0VBQ3hCLHdCQUF3QjtFQUN4Qix3QkFBd0I7RUFDeEIsd0JBQXdCO0VBQ3hCLHdCQUF3QjtFQUN4Qix3QkFBd0I7RUFDeEIsd0JBQXdCO0VBQ3hCLHdCQUF3QjtFQUN4Qix5QkFBeUI7RUFDekIseUJBQXlCO0VBQ3pCLHlCQUF5QjtFQUN6Qjs7QUFFRjtBQUVBLDhDQUE4QztBQy9DOUM7Ozs7OEVBSThFO0FBRTlFO0VBQ0UsZUFBcUI7RUFBckIscUJBQXFCO0VBQ3JCLG9FQUFvQztFQUFwQyxvQ0FBb0M7RUFDcEMsa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQiw4QkFBc0I7S0FBdEIsMkJBQXNCO01BQXRCLDBCQUFzQjtVQUF0QixzQkFBc0I7O0VBRXRCLGdGQUFnRjtBQWNsRjtBQVpFO0lBQ0U7TUFDRSxjQUFjLEVBQUUsa0JBQWtCO01BQ2xDLHFDQUFpRTtJQUNuRTtFQUNGO0FBRUE7SUFDRTtNQUNFLGlCQUF3QixFQUFFLG1CQUFtQjtJQUMvQztFQUNGO0FBR0Y7RUFDRSxpQkFBaUI7RUFDakIsb0JBQWtCO0VBQWxCLGtCQUFrQjs7RUFFbEIsbUNBQW1DO0VBQ25DLGtDQUFrQzs7RUFFbEMsZ0ZBQWdGO0FBY2xGO0FBWkU7SUFDRTtNQUNFLGlCQUFpQixFQUFFLGtCQUFrQjtNQUNyQyw0Q0FBMEU7SUFDNUU7RUFDRjtBQUVBO0lBQ0U7TUFDRSxpQkFBaUIsRUFBRSxtQkFBbUI7SUFDeEM7RUFDRjtBQUdGO0VBQ0Usb0JBQWtCO0VBQWxCLGtCQUFrQjtBQUtwQjtBQUpFO0tBQ0cscUJBQWtDO0tBQWxDLGtDQUFrQztLQUNsQyxrREFBOEQ7S0FBOUQsOERBQThEO0VBQ2pFO0FBR0Y7RUFDRSxnQkFBZ0I7QUFDbEI7QUFFQTs7Q0FFQztBQUVEO0VBQ0UscUJBQWE7TUFBYixpQkFBYTtVQUFiLGFBQWE7QUFDZjtBQUVBOzs7Ozs7O0VBT0UsbUJBQW1CO0VBQ25CLGtCQUFrQjtFQUNsQixjQUFjO0VBQ2QsbUJBQW1CO0VBQ25CLGdCQUFnQjtFQUNoQix1QkFBdUI7RUFDdkIscUJBQWE7TUFBYixpQkFBYTtVQUFiLGFBQWE7QUFDZjtBQUVBOzs7O0VBSUUsZ0JBQWdCO0FBQ2xCO0FBRUE7OztFQUdFLGdCQUFnQjtBQUNsQjtBQUVBO0VBQ0UsZ0JBQWdCO0FBQ2xCO0FBRUE7RUFDRSxtQ0FBdUM7RUFBdkMsdUNBQXVDO0VBQ3ZDLGdCQUFnQjtFQUNoQixpQkFBdUI7RUFBdkIsdUJBQXVCO0VBQ3ZCLGtCQUFrQjtBQUNwQjtBQUVBO0VBQ0UsbUNBQXVDO0VBQXZDLHVDQUF1QztFQUN2QyxnQkFBZ0I7RUFDaEIsbUJBQXNCO0VBQXRCLHNCQUFzQjtFQUN0QixxQkFBcUI7QUFDdkI7QUFFQTtFQUNFLG1DQUF1QztFQUF2Qyx1Q0FBdUM7RUFDdkMsZ0JBQWdCO0VBQ2hCLGlCQUF1QjtFQUF2Qix1QkFBdUI7RUFDdkIsb0JBQWtCO0VBQWxCLGtCQUFrQjtBQUNwQjtBQUVBO0VBQ0UsbUNBQXVDO0VBQXZDLHVDQUF1QztFQUN2QyxnQkFBZ0I7RUFDaEIsZUFBdUI7RUFBdkIsdUJBQXVCO0VBQ3ZCLG9CQUFrQjtFQUFsQixrQkFBa0I7RUFDbEIsbUJBQW1CO0FBQ3JCO0FBRUE7RUFDRSxnQkFBeUI7RUFBekIseUJBQXlCO0VBQ3pCLGdCQUFnQjtFQUNoQixvQkFBa0I7RUFBbEIsa0JBQWtCO0FBQ3BCO0FBRUE7RUFDRSxrQkFBc0I7RUFBdEIsc0JBQXNCO0VBQ3RCLGdCQUFnQjtFQUNoQixvQkFBa0I7RUFBbEIsa0JBQWtCO0FBQ3BCO0FBRUE7RUFDRSxnQkFBeUI7RUFBekIseUJBQXlCO0FBQzNCO0FBRUE7RUFDRSxrQkFBc0I7RUFBdEIsc0JBQXNCO0FBQ3hCO0FBRUE7RUFDRSxvQkFBa0I7RUFBbEIsa0JBQWtCO0FBQ3BCO0FBRUE7O0NBRUM7QUFFRDtFQUNFLGdCQUFnQjtFQUNoQixVQUFVO0VBQ1YsU0FBUztBQUNYO0FBRUE7RUFDRSxnQkFBZ0I7QUFDbEI7QUFFQTs7Q0FFQztBQUVEO0VBQ0Usd0JBQXdCO0VBQ3hCLFVBQVU7RUFDVixVQUFVO0VBQ1YsU0FBUztBQUNYO0FBRUE7O0VBRUUsaUJBQWlCO0FBQ25CO0FBRUE7RUFDRSxrQkFBa0I7QUFDcEI7QUFFQTtFQUNFLHdCQUF3QjtFQUN4QixVQUFVO0VBQ1YsVUFBVTtFQUNWLFNBQVM7QUFDWDtBQUVBO0VBQ0Usb0JBQW9CO0FBQ3RCO0FBRUE7RUFDRSxnQkFBZ0I7QUFDbEI7QUFFQSxZQUFZO0FBRVoseUNBQXlDLHdDQUF3QztFQUMvRSxhQUFhO0FBQ2Y7QUFFQTtFQUNFO01BQ0ksbUJBQW1CO0VBQ3ZCO0FBQ0Y7QUFFQSxjQUFjLHdDQUF3QztFQUNwRCxxQkFBcUI7QUFDdkI7QUFFQTtFQUNFLGFBQWE7QUFNZjtBQUxFO0lBQ0U7TUFDRSxlQUFlO0lBQ2pCO0VBQ0Y7QUFHRjtFQUNFLGFBQWE7RUFDYixjQUFjO0FBQ2hCO0FBRUE7RUFDRSxnQkFBZ0I7RUFDaEIsaUJBQWlCO0FBQ25CO0FDaFBBOzs7OzhFQUk4RTtBQUU5RTtFQUNFLCtCQUErQjtFQUEvQiwrQkFBK0I7RUFDL0IscUNBQXFDO0VBQXJDLHFDQUFxQztFQUNyQyxzQkFBc0I7RUFDdEIsY0FBbUI7RUFBbkIsbUJBQW1CO0VBQ25CLGVBQWU7RUFDZixxQkFBcUI7RUFDckIsZ0JBQWdCO0VBQ2hCLGdCQUFnQjtFQUNoQixxQkFBcUI7RUFDckIsbUJBQW1CO0VBQ25CLGtCQUFrQjtFQUNsQixxQkFBcUI7RUFDckIsbUJBQW1CO0VBQ25CLHFCQUFnQjtPQUFoQixnQkFBZ0I7RUFDaEIsNkJBQTZCO0VBQzdCLHdCQUF3QjtFQUN4Qiw4QkFBc0I7VUFBdEIsc0JBQXNCO0FBTXhCO0FBTEU7SUFDRTtNQUNFLGdCQUF5QjtNQUF6Qix5QkFBeUI7SUFDM0I7RUFDRjtBQUdGO0VBQ0UsZUFBZTtFQUNmLG9CQUFvQjtFQUNwQixrQkFBa0I7RUFDbEIsaUJBQXFCO0VBQXJCLHFCQUFxQjtBQUN2QjtBQUVBO0VBQ0UsY0FBYztBQUNoQjtBQUVBOztFQUVFLGdDQUFxQztFQUFyQyxxQ0FBcUM7RUFDckMsNEJBQWlDO0VBQWpDLGlDQUFpQztFQUNqQyxXQUFXO0VBQ1gsVUFBVTtBQUNaO0FBRUE7RUFDRSxlQUFlO0VBQ2YsV0FBVztBQUNiO0FBRUE7O0VBRUUsK0JBQStCO0VBQS9CLCtCQUErQjtFQUMvQiwyQkFBMkI7RUFBM0IsMkJBQTJCO0FBQzdCO0FBRUE7RUFDRSx1QkFBdUI7RUFDdkIsWUFBWTtBQUNkO0FBRUE7RUFDRSxrQ0FBa0M7RUFBbEMsa0NBQWtDO0VBQ2xDLDhCQUE4QjtFQUE5Qiw4QkFBOEI7QUFDaEM7QUFFQTs7RUFFRSxrQ0FBd0M7RUFBeEMsd0NBQXdDO0VBQ3hDLDhCQUFvQztFQUFwQyxvQ0FBb0M7QUFDdEM7QUFFQTtFQUNFLGVBQWU7RUFDZixrQkFBa0I7RUFDbEIsbUJBQW1CO0FBQ3JCO0FBRUE7RUFDRSx5QkFBOEI7RUFBOUIsOEJBQThCO0VBQzlCLCtCQUFvQztFQUFwQyxvQ0FBb0M7RUFDcEMsb0JBQW9CO0VBQXBCLG9CQUFvQjtBQUN0QjtBQUVBOztFQUVFLHlCQUE4QjtFQUE5Qiw4QkFBOEI7RUFDOUIscUJBQTBCO0VBQTFCLDBCQUEwQjtFQUMxQixxQkFBMEI7RUFBMUIsMEJBQTBCO0FBQzVCO0FBRUE7RUFDRSw2QkFBNkI7RUFDN0Isb0JBQW9CO0VBQXBCLG9CQUFvQjtBQUN0QjtBQUVBOztFQUVFLDZCQUE2QjtFQUM3Qiw0QkFBaUM7RUFBakMsaUNBQWlDO0VBQ2pDLHFCQUEwQjtFQUExQiwwQkFBMEI7QUFDNUI7QUFFQTs7RUFFRSxxQkFBcUI7RUFDckIsb0JBQW9CO0VBQXBCLG9CQUFvQjtBQUN0QjtBQUVBO0VBQ0UsNkJBQTZCO0VBQzdCLHFCQUErQjtFQUEvQiwrQkFBK0I7RUFDL0IsY0FBd0I7RUFBeEIsd0JBQXdCO0FBQzFCO0FBRUE7O0VBRUUsNkJBQTZCO0VBQzdCLHFCQUEwQjtFQUExQiwwQkFBMEI7RUFDMUIsY0FBbUI7RUFBbkIsbUJBQW1CO0FBQ3JCO0FBRUE7O0VBRUUscUJBQXFCO0VBQ3JCLGNBQXdCO0VBQXhCLHdCQUF3QjtBQUMxQjtBQUVBO0VBQ0UsNkJBQTZCO0VBQzdCLHlCQUF5QjtFQUN6QixvQkFBb0I7RUFBcEIsb0JBQW9CO0FBQ3RCO0FBRUE7O0VBRUUsNkJBQTZCO0VBQzdCLHlCQUF5QjtFQUN6QixxQkFBMEI7RUFBMUIsMEJBQTBCO0FBQzVCO0FBRUE7O0VBRUUsb0JBQW9CO0VBQXBCLG9CQUFvQjtBQUN0QjtBQUVBO0VBQ0UsNkJBQTZCO0VBQzdCLHlCQUF5QjtFQUN6QixjQUF3QjtFQUF4Qix3QkFBd0I7QUFDMUI7QUFFQTs7RUFFRSw2QkFBNkI7RUFDN0IseUJBQXlCO0VBQ3pCLGNBQW1CO0VBQW5CLG1CQUFtQjtBQUNyQjtBQUVBOztFQUVFLGNBQXdCO0VBQXhCLHdCQUF3QjtBQUMxQjtBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQixpQkFBaUI7QUFDbkI7QUFFQTs7RUFFRSxnQkFBZ0I7RUFDaEIsY0FBYztBQUNoQjtBTnpLQSxXQUFXO0FPVlg7Ozs7OEVBSThFO0FBRTlFO0VBQ0UsU0FBUztFQUNULFVBQVU7RUFDVixvQkFBYTtFQUFiLG9CQUFhO0VBQWIsYUFBYTtFQUNiLDRCQUFzQjtFQUF0Qiw2QkFBc0I7TUFBdEIsMEJBQXNCO1VBQXRCLHNCQUFzQjtFQUN0QixpQkFBaUI7QUFDbkI7QUFFQTs7QUFFQTtBQUVBO0VBQ0UsbUJBQWM7TUFBZCxrQkFBYztVQUFkLGNBQWM7RUFDZCxrQkFBa0I7QUFDcEI7QUFFQTtFQUNFLG1CQUFjO01BQWQsa0JBQWM7VUFBZCxjQUFjO0VBQ2Qsa0JBQWtCO0FBQ3BCO0FBRUE7RUFDRSxtQkFBYztNQUFkLGtCQUFjO1VBQWQsY0FBYztFQUNkLGtCQUFrQjtBQUNwQjtBQUVBO0VBQ0UsbUJBQWM7TUFBZCxrQkFBYztVQUFkLGNBQWM7RUFDZCxrQkFBa0I7QUFDcEI7QUFFQTtFQUNFLFNBQVM7RUFDVCxVQUFVO0VBQ1Ysb0JBQWE7RUFBYixvQkFBYTtFQUFiLGFBQWE7RUFDYiw0QkFBc0I7RUFBdEIsNkJBQXNCO01BQXRCLDBCQUFzQjtVQUF0QixzQkFBc0I7QUFPeEI7QUFORTtJQUNFO01BQ0UsOEJBQW1CO01BQW5CLDZCQUFtQjtVQUFuQix1QkFBbUI7Y0FBbkIsbUJBQW1CO01BQ25CLHNCQUFxQjtVQUFyQixtQkFBcUI7Y0FBckIscUJBQXFCO0lBQ3ZCO0VBQ0Y7QUFJQTtJQUNFO1FBQ0ksbUJBQWE7WUFBYixpQkFBYTtnQkFBYixhQUFhO1FBQ2IsVUFBVTtRQUNWLGdCQUFnQjtRQUNoQixrQkFBa0I7SUFDdEI7RUFDRjtBQUdGO0VBQ0UsY0FBYztBQVNoQjtBQVJFO0lBQ0UsYUFBYTtFQUNmO0FBQ0E7SUFDRTtNQUNFLGdCQUFnQjtJQUNsQjtFQUNGO0FBR0Y7RUFDRSxXQUFXO0FBT2I7QUFORTtJQUNFO01BQ0UsbUJBQWE7VUFBYixpQkFBYTtjQUFiLGFBQWE7TUFDYixVQUFVO0lBQ1o7RUFDRjtBQUdGO0VBQ0UsdUJBQXVCO0FBQ3pCO0FBRUE7RUFDRSxXQUFXO0VBQ1gsZ0JBQStCO0VBQS9CLCtCQUErQjtFQUMvQixpQkFBaUI7QUFDbkI7QUFHRTtJQUNFO01BQ0UsaUJBQWlCO01BQ2pCLG9CQUFhO01BQWIsb0JBQWE7TUFBYixhQUFhO01BQ2Isd0JBQXVCO1VBQXZCLHFCQUF1QjtjQUF2Qix1QkFBdUI7TUFDdkIseUJBQThCO1VBQTlCLHNCQUE4QjtjQUE5Qiw4QkFBOEI7SUFDaEM7RUFDRjtBQUNBO0lBQ0U7TUFDRSwwQkFBb0I7VUFBcEIsdUJBQW9CO2NBQXBCLG9CQUFvQjtNQUNwQixpQkFBaUI7SUFDbkI7RUFDRjtBQUdGO0VBQ0UsZ0JBQWdCO0FBQ2xCO0FBR0U7SUFDRSxhQUFhO0VBQ2Y7QUFDQTtJQUNFO01BQ0UsbUJBQWE7VUFBYixpQkFBYTtjQUFiLGFBQWE7TUFDYixVQUFVO01BQ1Ysa0JBQWtCO01BQ2xCLG9CQUFhO01BQWIsb0JBQWE7TUFBYixhQUFhO01BQ2IsNEJBQXNCO01BQXRCLDZCQUFzQjtVQUF0QiwwQkFBc0I7Y0FBdEIsc0JBQXNCO0lBQ3hCO0lBQ0E7TUFDRSxnQkFBZ0I7TUFDaEIsZ0JBQWdCO0lBQ2xCO0VBQ0Y7QUFJQTtJQUNFO01BQ0UsbUJBQWE7VUFBYixpQkFBYTtjQUFiLGFBQWE7TUFDYixVQUFVO0lBQ1o7SUFDQTtNQUNFLGFBQWE7SUFDZjtFQUNGO0FBR0Y7RUFDRSxnQkFBZ0I7RUFDaEIseUJBQXdDO0VBQXhDLHdDQUF3QztBQUMxQztBQUVBO0VBQ0UsZ0JBQWdCO0VBQ2hCLFNBQVM7RUFDVCxVQUFVO0VBQ1Ysb0JBQWE7RUFBYixvQkFBYTtFQUFiLGFBQWE7RUFDYixtQkFBZTtNQUFmLGVBQWU7QUFDakI7QUFFQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUVBO0VBQ0UsYUFBYTtBQUNmO0FBRUE7RUFDRSwwQkFBK0I7RUFBL0IsK0JBQStCO0VBQy9COzs0SkFFa0g7RUFGbEg7O2dHQUVrSDtFQUZsSDs7Z0xBRWtIO0VBRmxIOztvSEFFa0g7RUFDbEgsaUJBQWlCO0VBQ2pCOztRQUVNO0VBQ047O2FBRVc7RUFDWDs7VUFFUTtBQUNWO0FQektBLGVBQWU7QVFiZjs7Ozs4RUFJOEU7QUFFOUU7RUFDRSxxQ0FBcUMsRUFBRSxZQUFZO0VBQ25ELGNBQW1CO0VBQW5CLG1CQUFtQjtFQUNuQixrQkFBa0I7QUFDcEI7QUFFQTtFQUNFLHNDQUFzQyxFQUFFLFdBQVc7RUFDbkQ7O3NEQUVvRDtFQUZwRDs7c0RBRW9EO0VBQ3BEOztTQUVPO0VBQ1AsdUJBQXVCLEVBQUUsMERBQTBEO0FBQ3JGO0FBRUE7RUFDRSxxQ0FBcUMsRUFBRSxZQUFZO0VBQ25EOztpREFFK0M7RUFGL0M7O2lEQUUrQztFQUMvQzs7U0FFTztBQUNUO0FBQ0E7RUFDRSxxQ0FBcUMsRUFBRSxZQUFZO0VBQ25EOztvREFFa0Q7RUFGbEQ7O29EQUVrRDtFQUNsRDs7U0FFTztBQUNUO0FBRUE7RUFDRSxxQ0FBcUMsRUFBRSxZQUFZO0VBQ25EOzt5REFFdUQ7RUFGdkQ7O3lEQUV1RDtFQUN2RDs7U0FFTztBQUNUO0FBRUE7RUFDRSxxQ0FBcUMsRUFBRSxZQUFZO0VBQ25EOztxRUFFbUU7RUFGbkU7O3FFQUVtRTtFQUNuRTs7U0FFTztBQUNUO0FBRUE7RUFDRSxxQ0FBcUMsRUFBRSxZQUFZO0VBQ25EOzt3REFFc0Q7RUFGdEQ7O3dEQUVzRDtFQUN0RDs7U0FFTztBQUNUO0FBRUE7RUFDRSxxQ0FBcUMsRUFBRSxZQUFZO0VBQ25EOzsyREFFeUQ7RUFGekQ7OzJEQUV5RDtFQUN6RDs7U0FFTztBQUNUO0FBRUE7RUFDRSxxQ0FBcUMsRUFBRSxZQUFZO0VBQ25EOztxREFFbUQ7RUFGbkQ7O3FEQUVtRDtFQUNuRDs7U0FFTztBQUNUO0FBRUE7RUFDRSxxQ0FBcUMsRUFBRSxZQUFZO0VBQ25EOzsyREFFeUQ7RUFGekQ7OzJEQUV5RDtFQUN6RDs7U0FFTztBQUNUO0FBRUE7RUFDRSxxQ0FBcUMsRUFBRSxZQUFZO0VBQ25EOzt3REFFc0Q7RUFGdEQ7O3dEQUVzRDtFQUN0RDs7U0FFTztBQUNUO0FBRUE7RUFDRSxxQ0FBcUMsRUFBRSxZQUFZO0VBQ25EOzt5RUFFdUU7RUFGdkU7O3lFQUV1RTtFQUN2RSwyQkFBMkI7RUFDM0I7O1NBRU87QUFDVDtBQUVBO0VBQ0UsbUNBQStCO0VBQS9CLCtCQUErQjtFQUMvQiw2REFBNkQ7RUFDN0Qsc0JBQXNCO0VBQ3RCLHlCQUFtQjtNQUFuQixzQkFBbUI7VUFBbkIsbUJBQW1CO0VBQ25CLG9CQUFrQjtFQUFsQixrQkFBa0I7RUFDbEI7OzJDQUVxQztVQUZyQzs7MkNBRXFDO0VBRnJDOzt1Q0FFcUM7VUFGckM7O3VDQUVxQztBQUN2QztBQUVBO0VBQ0UsbUNBQStCO0VBQS9CLCtCQUErQjtFQUMvQiw2REFBNkQ7RUFDN0Qsc0JBQXNCO0VBQ3RCLHlCQUFtQjtNQUFuQixzQkFBbUI7VUFBbkIsbUJBQW1CO0VBQ25CLG9CQUFrQjtFQUFsQixrQkFBa0I7RUFDbEI7OzJDQUVxQztVQUZyQzs7MkNBRXFDO0VBRnJDOzt1Q0FFcUM7VUFGckM7O3VDQUVxQztBQUN2QztBQUVBO0VBQ0UsK0JBQTRDO0VBQTVDLDRDQUE0QztFQUM1Qzs7K0NBRTZDO0VBRjdDOzsrQ0FFNkM7RUFDN0M7O1NBRU87RUFDUDs7VUFFUTtBQUNWO0FBRUE7RUFDRSwrQkFBNEM7RUFBNUMsNENBQTRDO0VBQzVDOztpREFFK0M7RUFGL0M7O2lEQUUrQztFQUMvQzs7U0FFTztFQUNQOztVQUVRO0FBQ1Y7QUFFQTtFQUNFLCtCQUE0QztFQUE1Qyw0Q0FBNEM7RUFDNUM7OytDQUU2QztFQUY3Qzs7K0NBRTZDO0VBQzdDOztTQUVPO0VBQ1A7O1VBRVE7QUFDVjtBQUVBO0VBQ0UsK0JBQTRDO0VBQTVDLDRDQUE0QztFQUM1Qzs7MkRBRXlEO0VBRnpEOzsyREFFeUQ7RUFDekQ7O1NBRU87RUFDUDs7VUFFUTtBQUNWO0FBRUE7RUFDRSxjQUFtQjtFQUFuQixtQkFBbUI7RUFDbkIsYUFBYTtBQUNmO0FBRUE7RUFDRSxjQUFjO0VBQ2QsZ0JBQStCO0VBQS9CLCtCQUErQjtBQUNqQztBQUVBO0VBQ0UsbUNBQXVDO0VBQXZDLHVDQUF1QztFQUN2QyxnQkFBZ0I7RUFDaEIsaUJBQXVCO0VBQXZCLHVCQUF1QjtFQUN2QixnQkFBZ0I7QUFDbEI7QUFFQTtFQUNFLGNBQW1CO0VBQW5CLG1CQUFtQjtFQUNuQixxQkFBcUI7RUFDckIsZ0NBQTBDO0VBQTFDLDBDQUEwQztBQUM1QztBQUVBO0VBQ0UscUJBQTBCO0VBQTFCLDBCQUEwQjtBQUM1QjtBQUVBO0VBQ0UsbUNBQXVDO0VBQXZDLHVDQUF1QztFQUN2QyxnQkFBZ0I7RUFDaEIsaUJBQXVCO0VBQXZCLHVCQUF1QjtFQUN2QixjQUFjO0FBQ2hCO0FBRUE7RUFDRSx1QkFBdUI7RUFBdkIsdUJBQXVCO0FBQ3pCO0FBRUE7O0VBRUUsY0FBbUI7RUFBbkIsbUJBQW1CO0VBQ25CLHFCQUFxQjtFQUNyQixnQ0FBMEM7RUFBMUMsMENBQTBDO0FBQzVDO0FBRUE7O0VBRUUscUJBQTBCO0VBQTFCLDBCQUEwQjtBQUM1QjtBQUVBO0FBQ0E7QUFFQTtFQUNFLGtCQUFrQjtBQUNwQjtBQUVBOztFQUVFLFdBQVc7QUFDYjtBQUVBOztFQUVFLDZCQUE2QjtFQUM3QixxQkFBK0I7RUFBL0IsK0JBQStCO0VBQy9CLGNBQXdCO0VBQXhCLHdCQUF3QjtFQUN4QixlQUFlO0FBQ2pCO0FBRUEsMENBQTBDO0FBQzFDO0VBQ0UsZ0JBQWdCO0VBQ2hCLGlCQUFpQjtFQUNqQixvQkFBYTtFQUFiLG9CQUFhO0VBQWIsYUFBYTtFQUNiLDJCQUFxQjtNQUFyQix3QkFBcUI7VUFBckIscUJBQXFCO0VBQ3JCLFVBQVU7QUFDWjtBQUVBO0VBQ0UsZ0JBQWdCO0FBQ2xCO0FBRUEsZ0RBQWdEO0FBRWhEO0VBQ0Usa0JBQWtCO0VBQ2xCLFlBQVk7QUFDZDtBQUVBO0VBQ0U7OzBCQUV3QjtVQUZ4Qjs7MEJBRXdCO0VBRnhCOzswQkFFd0I7VUFGeEI7OzBCQUV3QjtBQUMxQjtBQUpBO0VBQ0U7OzBCQUV3QjtVQUZ4Qjs7MEJBRXdCO0VBRnhCOzswQkFFd0I7VUFGeEI7OzBCQUV3QjtBQUMxQjtBQUpBO0VBQ0U7OzBCQUV3QjtVQUZ4Qjs7MEJBRXdCO0VBRnhCOzswQkFFd0I7VUFGeEI7OzBCQUV3QjtBQUMxQjtBQUVBO0VBQ0UsbUJBQXdCO0VBQXhCLHdCQUF3QjtFQUN4QixvQkFBb0I7RUFBcEIsb0JBQW9CO0FBQ3RCO0FBRUEsa0hBQWtIO0FBQ2xIO0VBQ0UsY0FBd0I7RUFBeEIsd0JBQXdCO0VBQ3hCLGFBQWE7RUFDYixtQkFBbUI7RUFDbkI7Ozs7OztHQU1DO0FBQ0g7QUFFQSxpQ0FBaUM7QUFFakM7RUFDRTs7NkJBRThCO1VBRjlCOzs2QkFFOEI7RUFGOUI7O2dDQUU4QjtVQUY5Qjs7Z0NBRThCO0FBQ2hDO0FBSkE7RUFDRTs7NkJBRThCO1VBRjlCOzs2QkFFOEI7RUFGOUI7O2dDQUU4QjtVQUY5Qjs7Z0NBRThCO0FBQ2hDO0FBSkE7RUFDRTs7NkJBRThCO1VBRjlCOzs2QkFFOEI7RUFGOUI7O2dDQUU4QjtVQUY5Qjs7Z0NBRThCO0FBQ2hDO0FBRUEsc0NBQXNDO0FBRXRDO0VBQ0UsZ0JBQWdCO0VBQ2hCLFdBQVc7QUFDYjtBQUVBO0VBQ0U7OzBCQUV3QjtVQUZ4Qjs7MEJBRXdCO0VBRnhCOzswQkFFd0I7VUFGeEI7OzBCQUV3QjtBQUMxQjtBQUpBO0VBQ0U7OzBCQUV3QjtVQUZ4Qjs7MEJBRXdCO0VBRnhCOzswQkFFd0I7VUFGeEI7OzBCQUV3QjtBQUMxQjtBQUpBO0VBQ0U7OzBCQUV3QjtVQUZ4Qjs7MEJBRXdCO0VBRnhCOzswQkFFd0I7VUFGeEI7OzBCQUV3QjtBQUMxQjtBQUVBO0VBQ0UsZ0JBQWdCO0VBQ2hCLGlCQUFpQjtBQUNuQjtBQUVBLDRKQUE0SjtBQUU1SjtFQUNFLGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIsa0JBQWtCO0VBQ2xCLGNBQWM7RUFDZCxXQUFXO0VBQ1gsOEJBQXNCO1VBQXRCLHNCQUFzQjtBQUN4QjtBQUVBO0VBQ0UsbUJBQW1CO0FBQ3JCO0FBRUE7O0VBRUU7SUFDRSxvQkFBb0I7SUFDcEIsb0JBQWE7SUFBYixvQkFBYTtJQUFiLGFBQWE7SUFDYixtQkFBZTtRQUFmLGVBQWU7SUFDZiwyQkFBMkIsRUFBRSwwRUFBMEU7RUFJekc7SUFIRTtNQUNFLGtCQUFrQjtJQUNwQjs7RUFHRjs7SUFFRSxrQkFBa0I7SUFDbEIsbUJBQWM7UUFBZCxrQkFBYztZQUFkLGNBQWM7SUFDZCxjQUFjO0lBQ2Qsb0JBQW9CO0VBQ3RCOztBQUVGO0FBRUE7RUFDRSxtQ0FBdUM7RUFBdkMsdUNBQXVDO0VBQ3ZDLGdCQUFnQjtFQUNoQixjQUFtQjtFQUFuQixtQkFBbUI7RUFDbkIsZ0JBQWdCO0VBQ2hCLGlCQUF1QjtFQUF2Qix1QkFBdUI7QUFDekI7QUFFQTtFQUNFLG9FQUFvQztFQUFwQyxvQ0FBb0M7RUFDcEMsZ0JBQXlCO0VBQXpCLHlCQUF5QjtFQUN6QixrQkFBa0I7QUFDcEI7QUFFQTtFQUNFO0lBQ0UsYUFBYTtFQUNmO0FBQ0Y7QUFFQTtFQUNFLGVBQWU7RUFDZixjQUFjO0VBQ2Qsa0JBQWtCO0VBQ2xCLGtCQUFrQjtBQUNwQjtBQUVBO0VBQ0UscUJBQXFCO0VBQ3JCLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEI7O2tDQUVnQztVQUZoQzs7a0NBRWdDO0VBQ2hDLFdBQVc7QUFDYjtBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLE1BQU07RUFDTixPQUFPO0VBQ1AsV0FBVztFQUNYLFlBQVk7QUFDZDtBQ2xhQTs7Ozs4RUFJOEU7QUFFOUU7RUFDRSxtQkFBbUI7RUFDbkIsY0FBbUI7RUFBbkIsbUJBQW1CO0VBQ25CLGVBQWU7RUFDZixrQkFBa0I7QUFjcEI7QUFiRTtJQUNFO01BQ0Usa0JBQXNCO01BQXRCLHNCQUFzQjtJQUN4QjtFQUNGO0FBQ0E7SUFDRTtNQUNFLGdCQUFnQjtNQUNoQjt5SUFDZ0Y7TUFEaEY7c0ZBQ2dGO01BQ2hGLFVBQVU7SUFDWjtFQUNGO0FBR0Y7RUFDRSxjQUFtQjtFQUFuQixtQkFBbUI7RUFDbkIsYUFBYTtBQUNmO0FBRUE7RUFDRSxjQUF3QjtFQUF4Qix3QkFBd0I7RUFDeEIsZ0JBQWdCO0FBQ2xCO0FBRUE7OztFQUdFLGNBQW1CO0VBQW5CLG1CQUFtQjtFQUNuQixnQkFBZ0I7QUFDbEI7QUFFQTtFQUNFLGNBQWM7RUFDZCxnQkFBK0I7RUFBL0IsK0JBQStCO0VBQy9CLG1CQUFtQjtFQUNuQixpQkFBaUI7QUFDbkI7QUFFQTtFQUNFLFNBQVM7QUFNWDtBQUxFO0lBQ0U7TUFDRSxrQkFBa0I7SUFDcEI7RUFDRjtBQ3hERjs7Ozs7OEVBSzhFO0FBRTlFO0VBQ0Usb0JBQWE7RUFBYixvQkFBYTtFQUFiLGFBQWE7RUFDYiw0QkFBc0I7RUFBdEIsNkJBQXNCO01BQXRCLDBCQUFzQjtVQUF0QixzQkFBc0I7RUFDdEIsNkJBQTZCO0VBQzdCLGFBQWE7RUFDYiw4QkFBc0I7VUFBdEIsc0JBQXNCO0VBQ3RCLGdCQUFnQjtBQWNsQjtBQWJFO0lBQ0UsYUFBYTtFQUNmO0FBQ0E7SUFDRSxnQkFBZ0I7SUFDaEIsZ0JBQWdCO0VBQ2xCO0FBQ0E7SUFDRTtNQUNFLGlCQUFpQjtNQUNqQix3QkFBd0I7SUFDMUI7RUFDRjtBQzFCRjs7Ozs4RUFJOEU7QUFFOUU7RUFDRSxnQkFBK0I7RUFBL0IsK0JBQStCO0VBQy9CLFlBQVk7RUFDWiw4QkFBc0I7VUFBdEIsc0JBQXNCO0FBQ3hCO0FBRUE7RUFDRSxvQkFBYTtFQUFiLG9CQUFhO0VBQWIsYUFBYTtFQUNiLG1CQUFlO01BQWYsZUFBZTtFQUNmLHVCQUEyQjtNQUEzQixvQkFBMkI7VUFBM0IsMkJBQTJCO0VBQzNCLGlCQUFpQjtFQUNqQiwyQkFBcUI7TUFBckIsd0JBQXFCO1VBQXJCLHFCQUFxQjtBQU92QjtBQU5FO0lBQ0U7TUFDRSxxQkFBaUI7VUFBakIsaUJBQWlCO01BQ2pCLGlCQUFpQjtJQUNuQjtFQUNGO0FBR0Y7RUFDRSxpQkFBdUI7RUFBdkIsdUJBQXVCO0VBQ3ZCLG1DQUF1QztFQUF2Qyx1Q0FBdUM7RUFDdkMsZ0JBQWdCO0VBQ2hCLHVCQUF1QjtFQUN2QixnQkFBZ0I7RUFDaEIsbUJBQWM7TUFBZCxrQkFBYztVQUFkLGNBQWM7RUFDZCw4QkFBc0I7VUFBdEIsc0JBQXNCO0FBVXhCO0FBVEU7SUFDRTtNQUNFLG1CQUFjO1VBQWQsa0JBQWM7Y0FBZCxjQUFjO01BQ2QsU0FBUztNQUNULGtCQUFrQjtNQUNsQixlQUFzQjtNQUF0QixzQkFBc0I7TUFDdEIsZUFBZTtJQUNqQjtFQUNGO0FBR0Y7RUFDRSxnQkFBZ0I7RUFDaEIscUJBQXFCO0VBQ3JCLG1CQUFjO01BQWQsa0JBQWM7VUFBZCxjQUFjO0VBQ2QsOEJBQXNCO1VBQXRCLHNCQUFzQjtBQU94QjtBQU5FO0lBQ0U7TUFDRSxtQkFBYztVQUFkLGtCQUFjO2NBQWQsY0FBYztNQUNkLGtCQUFrQjtJQUNwQjtFQUNGO0FBR0Y7RUFDRSxlQUFzQjtFQUF0QixzQkFBc0I7RUFDdEIsbUNBQXVDO0VBQXZDLHVDQUF1QztFQUN2QyxnQkFBZ0I7RUFDaEIsZ0JBQWdCO0VBQ2hCLGdCQUFnQjtBQUNsQjtBQUVBO0VBQ0UsZ0JBQWdCO0VBQ2hCLFNBQVM7RUFDVCxVQUFVO0FBQ1o7QUN0RUE7Ozs7OEVBSThFO0FBRTlFO0VBQ0UsU0FBUztFQUNULFVBQVU7RUFDVixvQkFBYTtFQUFiLG9CQUFhO0VBQWIsYUFBYTtFQUNiLDRCQUE4QjtFQUE5Qiw4QkFBOEI7TUFBOUIsa0NBQThCO1VBQTlCLDhCQUE4QjtFQUM5Qix5QkFBbUI7TUFBbkIsc0JBQW1CO1VBQW5CLG1CQUFtQjtBQU1yQjtBQUxFO0lBQ0U7TUFDRSw4QkFBbUI7TUFBbkIsNkJBQW1CO1VBQW5CLHVCQUFtQjtjQUFuQixtQkFBbUI7SUFDckI7RUFDRjtBQUdGO0VBQ0Usa0NBQTZCO0VBQTdCLDZCQUE2QjtFQUM3QixnQkFBZ0I7RUFDaEIsV0FBVztBQU9iO0FBTkU7SUFDRTtNQUNFLG1CQUFhO1VBQWIsaUJBQWE7Y0FBYixhQUFhO01BQ2IsVUFBVTtJQUNaO0VBQ0Y7QUFHRjtFQUNFLHFCQUFxQjtFQUNyQixXQUFXO0VBQ1gsa0JBQWtCO0FBQ3BCO0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsTUFBTTtFQUNOLE9BQU87RUFDUCxXQUFXO0VBQ1gsWUFBWTtBQUNkO0FBRUE7RUFDRSxpQkFBdUI7RUFBdkIsdUJBQXVCO0VBQ3ZCLG1DQUF1QztFQUF2Qyx1Q0FBdUM7RUFDdkMsZ0JBQWdCO0VBQ2hCLGdCQUFnQjtFQUNoQiw4QkFBc0I7VUFBdEIsc0JBQXNCO0VBQ3RCLGNBQWM7RUFDZCxrQkFBa0I7RUFDbEIsbUJBQW1CO0VBQ25CLGtCQUFrQjtFQUNsQixlQUFlO0FBUWpCO0FBUEU7SUFDRTtRQUNJLG1CQUFtQjtRQUNuQixtQkFBYTtZQUFiLGlCQUFhO2dCQUFiLGFBQWE7UUFDYixnQkFBZ0I7SUFDcEI7RUFDRjtBQUdGO0VBQ0UsV0FBVztFQUNYLFdBQVc7RUFDWCxZQUFZO0VBQ1osOEJBQXNCO1VBQXRCLHNCQUFzQjtFQUN0QixrQkFBa0I7RUFDbEIsU0FBUztFQUNULFNBQVM7RUFDVCxrQkFBa0I7RUFDbEIsdUNBQWtDO0VBQWxDLGtDQUFrQztFQUNsQyxtQ0FBbUM7RUFDbkMsb0NBQW9DO0VBQ3BDLHFDQUFxQztBQWF2QztBQVpFO0lBQ0U7TUFDRSxPQUFPO01BQ1AsUUFBUTtNQUNSLGNBQWM7TUFDZCxpQkFBaUI7TUFDakIsa0NBQWtDO01BQ2xDLG1DQUFtQztNQUNuQyx5Q0FBb0M7TUFBcEMsb0NBQW9DO01BQ3BDLHFDQUFxQztJQUN2QztFQUNGO0FBR0Y7RUFDRSxnQkFBZ0I7RUFDaEIsa0JBQWtCO0VBQ2xCLG1CQUFtQjtFQUNuQixtQkFBYTtNQUFiLGlCQUFhO1VBQWIsYUFBYTtFQUNiLDhCQUFzQjtVQUF0QixzQkFBc0I7QUFNeEI7QUFMRTtJQUNFO01BQ0UsbUJBQWE7VUFBYixpQkFBYTtjQUFiLGFBQWE7SUFDZjtFQUNGO0FBR0Y7RUFDRSxlQUFzQjtFQUF0QixzQkFBc0I7RUFDdEIsbUNBQXVDO0VBQXZDLHVDQUF1QztFQUN2QyxnQkFBZ0I7RUFDaEIsZ0JBQWdCO0VBQ2hCLGdCQUFnQjtBQUNsQjtBQUVBO0VBQ0UsZ0JBQWdCO0VBQ2hCLFNBQVM7RUFDVCxVQUFVO0FBQ1o7QUNySEE7Ozs7d0NBSXdDO0FBRXhDO0VBQ0UsZUFBZTtFQUNmLG9FQUFvQztFQUFwQyxvQ0FBb0M7RUFDcEMsaUJBQWlCO0VBQ2pCLGdCQUFnQjtBQUNsQjtBQUVBO0VBQ0UsZ0JBQWdCO0VBQ2hCLHFCQUFhO01BQWIsaUJBQWE7VUFBYixhQUFhO0VBQ2IsU0FBUztFQUNULG1CQUFtQjtFQUNuQixtQkFBNkI7RUFBN0IsNkJBQTZCO0FBUS9CO0FBUEU7SUFDRTtJQUNBLG9CQUFhO0lBQWIsb0JBQWE7SUFBYixhQUFhO0lBQ2IsbUJBQWU7UUFBZixlQUFlO0lBQ2YsdUJBQTJCO1FBQTNCLG9CQUEyQjtZQUEzQiwyQkFBMkI7SUFDM0I7RUFDRjtBQUdGO0VBQ0Usa0JBQWtCO0VBQ2xCLG1CQUFtQjtFQUNuQixvQkFBYTtFQUFiLG9CQUFhO0VBQWIsYUFBYTtFQUNiLGVBQWU7RUFDZiwyQkFBa0I7TUFBbEIsa0JBQWtCO0FBTXBCO0FBTEU7SUFDRTtNQUNFLFVBQVU7SUFDWjtFQUNGO0FBR0Ysc0hBQXNIO0FBRXRIO0VBQ0UsZUFBZTtFQUNmLGVBQWU7RUFDZixVQUFVO0VBQ1YsaUJBQWlCO0VBQ2pCLG1CQUFtQjtFQUNuQixnQkFBZ0I7RUFDaEIsZ0NBQWdDO0VBQ2hDLDRCQUE0QjtBQVE5QjtBQVBFO0lBQ0U7TUFDRSwwQ0FBd0M7TUFBeEMsd0NBQXdDO01BQ3hDLGtCQUFrQixFQUFFLHlIQUF5SDtNQUM3SSxnQkFBZ0IsRUFBRSx5SEFBeUg7SUFDN0k7RUFDRjtBQUdGLFlBQVk7QUFFWixzR0FBc0c7QUFFdEc7Ozs7Ozs7RUFPRSxXQUFXO0VBQ1gsbUVBQW1FO0VBQ25FLDJCQUEyQjtJQUN6Qix5UUFBeVE7RUFDM1Esa0NBQWtDLEVBQUUsaUVBQWlFO0FBQ3ZHO0FBRUEsWUFBWTtBQUVaLHNHQUFzRztBQUV0Rzs7OztFQUlFLFdBQVc7RUFDWCxtRUFBbUU7RUFDbkUsMkJBQTJCO0lBQ3pCLHlRQUF5UTtFQUMzUSxrQ0FBa0MsRUFBRSxpRUFBaUU7QUFDdkc7QUFFQSxZQUFZO0FBRVosc0dBQXNHO0FBRXRHOzs7RUFHRSxXQUFXO0VBQ1gsbUVBQW1FO0VBQ25FLDJCQUEyQjtJQUN6Qix5UUFBeVE7RUFDM1Esa0NBQWtDLEVBQUUsaUVBQWlFO0FBQ3ZHO0FBRUEsVUFBVTtBQUVWLHdEQUF3RDtBQUV4RDtFQUNFLFdBQVc7RUFDWCxrRUFBa0U7RUFDbEUsMkJBQTJCO0VBQzNCLGtDQUFrQyxFQUFFLDBDQUEwQztBQUNoRjtBQUVBLGNBQWM7QUFFZCxzR0FBc0c7QUFFdEc7Ozs7RUFJRSx5RUFBeUU7RUFDekUsMkJBQTZDLEVBQUUsaURBQWlEO0VBQ2hHLGVBQW1DLEVBQUUsdUpBQXVKO0FBTTlMO0FBTEU7SUFDRTtNQUNFLGtFQUFrRTtJQUNwRTtFQUNGO0FBR0YsV0FBVztBQUVYLHNHQUFzRztBQUV0Rzs7Ozs7O0VBTUUscUVBQXFFO0VBQ3JFLDJCQUE0QyxFQUFFLDhDQUE4QztFQUM1RixpQkFBbUMsRUFBRSxvSkFBb0o7QUFNM0w7QUFMRTtJQUNFO01BQ0UsOERBQThEO0lBQ2hFO0VBQ0Y7QUFHRjtFQUNFLCtEQUErRDtFQUMvRCx3QkFBd0I7RUFDeEIsV0FBVztBQUNiO0FBRUEsaUNBQWlDO0FBRWpDO0VBQ0Usa0JBQXNCO0VBQXRCLHNCQUFzQjtFQUN0QixvQkFBbUM7RUFBbkMsbUNBQW1DO0VBQ25DLHFCQUFxQjtFQUNyQixhQUFhO0VBQ2IsMkJBQWtCO01BQWxCLGtCQUFrQjtBQU9wQjtBQU5FO0lBQ0U7TUFDRSxjQUFjO01BQ2QscUNBQXFDO0lBQ3ZDO0VBQ0Y7QUFHRiwrQkFBK0I7QUFFL0I7RUFDRSxjQUFjO0VBQ2QseUVBQXVFO0VBQ3ZFLHlDQUF1QztFQUF2Qyx1Q0FBdUM7QUFPekM7QUFORTtJQUNFO01BQ0UsaUJBQWlCO01BQ2pCLHFDQUFxQztJQUN2QztFQUNGO0FBR0Y7RUFDRSwrQkFBK0I7QUFXakM7QUFWRTtJQUNFO01BQ0UsZ0NBQWdDO0lBQ2xDO0VBQ0Y7QUFDQTtJQUNFO01BQ0UsV0FBVztJQUNiO0VBQ0Y7QUFHRjtFQUNFLGFBQWE7QUFNZjtBQUxFO0lBQ0U7TUFDRSxlQUFlO0lBQ2pCO0VBQ0Y7QUFHRixpRUFBaUU7QUFFakU7Ozs7Ozs7Ozs7Ozs7O0VBY0UsY0FBYztFQUNkLG1CQUFtQjtBQU1yQjtBQUxFO0lBQ0U7TUFDRSxpQ0FBaUM7SUFDbkM7RUFDRjtBQUdGO0VBQ0UsYUFBYTtBQU1mO0FBTEU7SUFDRTtNQUNFLHFCQUFxQjtJQUN2QjtFQUNGO0FBR0Y7RUFDRSxrQkFBc0I7RUFBdEIsc0JBQXNCO0VBQ3RCLG1CQUFtQjtFQUNuQixVQUFVO0VBQ1YsZ0JBQWdCO0VBQ2hCLGtCQUFrQjtFQUNsQixvQkFBYTtFQUFiLG9CQUFhO0VBQWIsYUFBYTtFQUNiLHlCQUFtQjtNQUFuQixzQkFBbUI7VUFBbkIsbUJBQW1CO0VBQ25CLDRCQUFtQjtNQUFuQixtQkFBbUI7RUFDbkIsYUFBYTtFQUNiLHNDQUFpQztFQUFqQyxpQ0FBaUM7QUFRbkM7QUFQRTtJQUNFO01BQ0UsZ0JBQWdCO01BQ2hCLHVDQUFrQztNQUFsQyxrQ0FBa0M7TUFDbEMsU0FBUztJQUNYO0VBQ0Y7QUFHRjtFQUNFLGNBQWM7RUFDZCxnQkFBZ0I7RUFDaEIsa0JBQWtCO0VBQ2xCLG1CQUFtQjtFQUNuQiwyQkFBa0I7TUFBbEIsa0JBQWtCO0VBQ2xCLHFCQUFxQjtFQUNyQixvQkFBbUM7RUFBbkMsbUNBQW1DO0VBQ25DLGFBQWE7QUFXZjtBQVZFO0lBQ0U7TUFDRSxtQkFBbUI7SUFDckI7RUFDRjtBQUNBO0lBQ0U7TUFDRSxxQkFBcUI7SUFDdkI7RUFDRjtBQUdGO0VBQ0UscUJBQWtDO0VBQWxDLGtDQUFrQztFQUNsQyxnQkFBZ0I7QUFJbEI7QUFIRTtJQUNFLHFCQUFrQztJQUFsQyxrQ0FBa0M7RUFDcEM7QUFHRixpQkFBaUI7QUFFakI7RUFDRSxtQkFBbUI7RUFDbkIsb0JBQWE7RUFBYixvQkFBYTtFQUFiLGFBQWE7RUFDYix5QkFBbUI7TUFBbkIsc0JBQW1CO1VBQW5CLG1CQUFtQjtFQUNuQixvQkFBb0I7RUFDcEIsaURBQWlEO0VBQ2pELHdCQUF3QjtFQUN4Qiw0QkFBNEI7RUFDNUIsZ0NBQWdDO0VBQ2hDLFlBQVk7RUFDWixpQkFBaUI7QUFDbkI7QUFFQTtFQUNFLDZDQUF3QztFQUF4Qyx3Q0FBd0M7RUFDeEMseUNBQXlDO0VBQ3pDLGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIsc0JBQXNCO0VBQ3RCLGNBQWM7RUFDZCxxQkFBcUI7QUFDdkI7QUFFQTtFQUNFLHdCQUF3QjtBQUMxQjtBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLHNDQUFzQztBQUN4QztBQUVBO0VBQ0UscUJBQWtDO0VBQWxDLGtDQUFrQztBQUNwQztBQUVBLGdCQUFnQjtBQUVoQjtFQUNFLGFBQWE7QUFTZjtBQVJFO0lBQ0U7TUFDRSxvQkFBYTtNQUFiLG9CQUFhO01BQWIsYUFBYTtNQUNiLHlCQUFtQjtVQUFuQixzQkFBbUI7Y0FBbkIsbUJBQW1CO01BQ25CLFNBQVM7TUFDVCxtQkFBbUI7SUFDckI7RUFDRjtBQUdGO0VBQ0UsZ0JBQWdCO0VBQ2hCLFNBQVM7QUFDWDtBQUVBO0VBQ0UsY0FBYztFQUNkLHFCQUFxQjtFQUNyQixrQkFBa0I7RUFDbEIsY0FBYztBQUNoQjtBQUVBO0VBQ0UscUJBQWtDO0VBQWxDLGtDQUFrQztFQUNsQyxnQkFBZ0I7QUFJbEI7QUFIRTtJQUNFLHFCQUFrQztJQUFsQyxrQ0FBa0M7RUFDcEM7QUNoWEY7Ozs7Ozs4RUFNOEU7QUFFOUU7RUFDRSwwQ0FBd0M7RUFBeEMsd0NBQXdDO0VBQ3hDLHNCQUFzQjtFQUN0Qix3QkFBd0I7RUFDeEIsOEJBQXNCO1VBQXRCLHNCQUFzQjtFQUN0QixXQUFXO0VBQ1gsa0JBQWtCO0FBQ3BCO0FBRUE7RUFDRSw4QkFBc0I7VUFBdEIsc0JBQXNCO0FBQ3hCO0FBRUE7Ozs7Q0FJQztBQUVEO0VBQ0UsbUNBQXVDO0VBQXZDLHVDQUF1QztFQUN2QyxnQkFBZ0I7RUFDaEIsaUJBQXVCO0VBQXZCLHVCQUF1QjtFQUN2Qix1QkFBdUI7RUFDdkIsb0JBQW9CO0VBQ3BCLGtCQUFrQjtFQUNsQixjQUFtQjtFQUFuQixtQkFBbUI7QUFDckI7QUFFQTs7OztDQUlDO0FBRUQ7RUFDRSxtQkFBbUI7RUFDbkIseUJBQThCO0VBQTlCLDhCQUE4QjtFQUM5Qiw0QkFBNEI7RUFDNUIsNERBQW9EO1VBQXBELG9EQUFvRDtFQUNwRCxrQkFBa0I7QUFDcEI7QUFFQTs7OztDQUlDO0FBRUQ7RUFDRSxtQ0FBdUM7RUFBdkMsdUNBQXVDO0VBQ3ZDLGdCQUFnQjtFQUNoQixpQkFBdUI7RUFBdkIsdUJBQXVCO0VBQ3ZCLG9CQUFrQjtFQUFsQixrQkFBa0I7RUFDbEIsZ0JBQWdCO0FBQ2xCO0FBRUE7Ozs7Q0FJQztBQUVEO0VBQ0UsaUJBQWlCO0VBQ2pCLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsV0FBVyxFQUFFLDhGQUE4RjtBQU83RztBQU5FO0lBQ0UsZ0JBQWdCO0VBQ2xCO0FBQ0E7SUFDRSxtQkFBbUI7RUFDckI7QUFHRjs7O0NBR0M7QUFFRDtFQUNFLHNCQUFzQjtFQUN0QixxQ0FBK0M7RUFBL0MsK0NBQStDO0VBQy9DLG9CQUFvQjtFQUNwQixtQkFBbUI7RUFDbkIsa0JBQWtCO0VBQ2xCLGtCQUFrQjtBQUNwQjtBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLGFBQWE7RUFDYixZQUFZO0VBQ1osU0FBUztFQUNULGlCQUFpQjtFQUNqQixtQkFBbUI7RUFDbkIsbUJBQXdCO0VBQXhCLHdCQUF3QjtFQUN4Qix5QkFBeUI7RUFDekIsZUFBdUI7RUFBdkIsdUJBQXVCO0VBQ3ZCLHFCQUFxQjtBQUN2QjtBQUVBOzs7Q0FHQztBQUVEO0VBQ0UscUJBQXFCO0VBQ3JCLG9CQUFrQjtFQUFsQixrQkFBa0I7RUFDbEIsZ0JBQXlCO0VBQXpCLHlCQUF5QjtFQUN6QixnQkFBZ0I7RUFDaEIsZ0JBQWdCO0FBQ2xCO0FBRUE7RUFDRSxvQkFBb0I7RUFBcEIsb0JBQW9CO0VBQ3BCLHFDQUEwQztFQUExQywwQ0FBMEM7QUFZNUM7QUFYRTs7SUFFRSxvQkFBb0I7SUFBcEIsb0JBQW9CO0lBQ3BCLHFDQUEwQztJQUExQywwQ0FBMEM7RUFDNUM7QUFDQTs7O0lBR0UscUJBQTBCO0lBQTFCLDBCQUEwQjtJQUMxQixxQ0FBMEM7SUFBMUMsMENBQTBDO0VBQzVDO0FBSUY7OztDQUdDO0FBRUQ7RUFDRSw2QkFBdUM7RUFBdkMsdUNBQXVDO0VBQ3ZDLHlCQUFtQztFQUFuQyxtQ0FBbUM7RUFDbkMsb0JBQW9CO0VBQ3BCLG9CQUFrQjtFQUFsQixrQkFBa0I7RUFDbEIsY0FBYztFQUNkLG1CQUFtQjtFQUNuQixzQkFBc0I7RUFDdEIsV0FBVztFQUNYLHFCQUFxQjtFQUNyQixnQkFBZ0I7RUFDaEIsZ0JBQWdCO0VBQ2hCLG9CQUFhO0VBQWIsb0JBQWE7RUFBYixhQUFhO0VBQ2IseUJBQW1CO01BQW5CLHNCQUFtQjtVQUFuQixtQkFBbUI7RUFDbkIsbUJBQW1CO0FBTXJCO0FBTEU7SUFDRTtNQUNFLDJCQUFxQjtVQUFyQix3QkFBcUI7Y0FBckIscUJBQXFCO0lBQ3ZCO0VBQ0Y7QUFHRjtFQUNFLG9CQUFvQjtFQUFwQixvQkFBb0I7QUFDdEI7QUFFQTtFQUNFLFdBQVc7RUFDWCxRQUFRO0VBQ1IsU0FBUztFQUNULG1DQUFtQztFQUNuQyxzQ0FBc0M7RUFDdEMsc0NBQXNDO0VBQ3RDLHVDQUFxQztFQUFyQyxxQ0FBcUM7RUFDckMsaUJBQWlCO0VBQ2pCLDJCQUFrQjtNQUFsQixrQkFBa0I7QUFDcEI7QUFFQTtFQUNFLGlDQUFzQztFQUF0QyxzQ0FBc0M7QUFDeEM7QUFFQTtFQUNFLGlCQUFpQjtFQUNqQixtQkFBbUI7RUFDbkIsbUJBQWM7TUFBZCxrQkFBYztVQUFkLGNBQWM7RUFDZCxtQkFBbUI7QUFPckI7QUFORTtJQUNFO01BQ0UsbUJBQW1CO01BQ25CLG1CQUFXO1VBQVgsaUJBQVc7Y0FBWCxXQUFXO0lBQ2I7RUFDRjtBQUdGO0VBQ0Usa0JBQXNCO0VBQXRCLHNCQUFzQjtFQUN0Qix5QkFBeUI7RUFDekIscUJBQXFCO0VBQ3JCLGdCQUFnQjtFQUNoQix1QkFBdUI7RUFDdkIsbUJBQW1CO0VBQ25CLG9CQUFvQjtFQUFwQixvQkFBb0I7RUFDcEIsbUJBQW1CO0VBQ25CLHFCQUFxQjtFQUNyQix3QkFBd0I7QUFDMUI7QUFFQTtFQUNFLHNCQUFnQztFQUFoQyxnQ0FBZ0M7RUFDaEMsb0JBQW9CO0FBQ3RCO0FBRUE7RUFDRSxzQkFBc0I7RUFDdEIsY0FBd0I7RUFBeEIsd0JBQXdCO0FBQzFCO0FBRUE7Ozs7Q0FJQztBQUVEO0VBQ0Usa0JBQWtCO0VBQ2xCLGlCQUFpQjtFQUNqQixrQkFBa0I7QUFDcEI7QWRwTkEsa0JBQWtCO0FldEJsQjs7Ozs7Ozs7d0NBUXdDO0FBRXhDOzs7O3VDQUl1QztBQUV2Qyx5RkFBeUY7QUFDekYsZ0pBQWdKO0FBQ2hKLG9GQUFvRjtBQUVwRjs7Ozt3Q0FJd0M7QUFFeEMsa0JBQWtCO0FBRWxCOztBQUVBLGdGQUFnRjs7QUFFaEYsZ0RBQWdELEtBQUssWUFBWTtBQUNqRSwwQ0FBMEM7O0FBRTFDOzs7OztDQUtDOztBQUVELDRCQUE0QjtBQUM1Qiw0QkFBNEI7QUFDNUIsNkNBQStFO0FBQy9FLDhCQUE4QjtBQUM5Qiw2QkFBNkI7O0FBRTdCO0FBRUEsOENBQThDO0FBYTlDOzs7O3dDQUl3QztBQUV4QztFQUNFLGVBQXNDO0VBQXRDLHNDQUFzQztFQUN0QyxvRUFBb0U7RUFDcEUsZ0JBQWdCO0VBQ2hCLGtDQUFrQyxFQUFFLG1EQUFtRDtHQUN0Riw4QkFBc0I7TUFBdEIsMkJBQXNCO09BQXRCLDBCQUFzQjtXQUF0QixzQkFBc0I7RUFDdkIsbUNBQW1DO0VBQ25DLGtDQUFrQztFQUNsQyxrQkFBa0IsRUFBRSxzRUFBc0U7RUFDMUYsaUJBQWlCO0VBQ2pCLGdCQUFnQjs7RUFFaEIsZ0RBQWdEO0FBY2xEO0FBWkU7SUFDRTtLQUNDLGVBQXNDO0tBQXRDLHNDQUFzQyxFQUFFLGtCQUFrQixFQUFFLGlEQUFpRDtLQUM3RyxnQ0FBa0U7SUFDbkU7RUFDRjtBQUVBO0lBQ0U7S0FDQyxlQUFzQztLQUF0QyxzQ0FBc0MsRUFBRSxtQkFBbUI7SUFDNUQ7RUFDRjtBQUdGO0VBQ0UsOEJBQXNCO1VBQXRCLHNCQUFzQjtBQUl4QjtBQUhFO0lBQ0UsOEJBQXNCO1lBQXRCLHNCQUFzQjtFQUN4QjtBQUdGOzs7Ozt1Q0FLdUM7QUFFdkM7RUFDRSxxQkFBcUI7RUFDckIsb0JBQW9CO0FBQ3RCO0FBRUE7O0VBRUUsZUFBZTtBQUNqQjtBQUVBOzs7O3VDQUl1QztBQUV2QztFQUNFLHNCQUFzQixFQUFFLG9EQUFvRDtFQUM1RSw4QkFBK0I7RUFDL0IseUJBQStDO0VBQS9DLCtDQUErQztFQUMvQyxrQkFBa0I7QUFNcEI7QUFMRTtJQUNFO01BQ0UsZ0JBQWdCO0lBQ2xCO0VBQ0Y7QUFHRjtHQUNHLDZCQUE4QjtHQUM5QiwwQkFBMEI7QUFDN0I7QUFFQTtHQUNHLGNBQTBCO0dBQTFCLDBCQUEwQjtHQUMxQiwwQkFBMEI7QUFDN0I7QUFFQTtFQUNFLGlCQUE2QjtFQUE3Qiw2QkFBNkI7QUFRL0I7QUFQRTtJQUNFO01BQ0Usb0JBQWE7TUFBYixvQkFBYTtNQUFiLGFBQWE7TUFDYix5QkFBOEI7VUFBOUIsc0JBQThCO2NBQTlCLDhCQUE4QjtNQUM5Qix5QkFBbUI7VUFBbkIsc0JBQW1CO2NBQW5CLG1CQUFtQjtJQUNyQjtFQUNGO0FBR0Y7RUFDRSxnQkFBZ0I7RUFDaEIsZ0NBQTZDO0VBQTdDLGdDQUE2QztFQUE3Qyw0Q0FBNkM7RUFDN0MsVUFBVTtFQUNWLG9CQUFhO0VBQWIsb0JBQWE7RUFBYixhQUFhO0VBQ2IseUJBQW1CO01BQW5CLHNCQUFtQjtVQUFuQixtQkFBbUI7RUFDbkIsd0JBQXVCO01BQXZCLHFCQUF1QjtVQUF2Qix1QkFBdUI7QUFRekI7QUFQRTtJQUNFO01BQ0UsYUFBYTtNQUNiLHVCQUEyQjtVQUEzQixvQkFBMkI7Y0FBM0IsMkJBQTJCO01BQzNCLGtCQUFrQjtJQUNwQjtFQUNGO0FBR0Y7RUFDRSxnQkFBZ0I7RUFDaEIsaUNBQWtDO0VBQWxDLGtDQUFrQztFQUNsQyxVQUFVO0VBQ1Ysb0JBQWE7RUFBYixvQkFBYTtFQUFiLGFBQWE7RUFDYix5QkFBbUI7TUFBbkIsc0JBQW1CO1VBQW5CLG1CQUFtQjtFQUNuQix3QkFBdUI7TUFBdkIscUJBQXVCO1VBQXZCLHVCQUF1QjtBQVF6QjtBQVBFO0lBQ0U7TUFDRSxhQUFhO01BQ2IscUJBQXlCO1VBQXpCLGtCQUF5QjtjQUF6Qix5QkFBeUI7TUFDekIsaUJBQWlCO0lBQ25CO0VBQ0Y7QUFHRjtFQUNFLDZCQUF3QztFQUF4Qyw2QkFBd0M7RUFBeEMsc0NBQXdDO0VBQ3hDLFdBQVc7RUFDWCxjQUFjO0VBQ2QsbUNBQWlEO0VBQWpELG1DQUFpRDtFQUFqRCxnREFBaUQ7QUFnQm5EO0FBZkU7SUFDRTtNQUNFLGtCQUFrQjtNQUNsQiwwQkFBd0M7TUFBeEMsMEJBQXdDO01BQXhDLHVDQUF3QztNQUN4QyxtQ0FBb0M7TUFBcEMsb0NBQW9DO01BQ3BDLGFBQWE7SUFDZjtFQUNGO0FBQ0E7SUFDRTtNQUNFLFVBQTZDO01BQTdDLDRDQUE2QztNQUM3QyxrQkFBeUM7TUFBekMseUNBQXlDO01BQ3pDLFlBQTZDO01BQTdDLDJDQUE2QztJQUMvQztFQUNGO0FBR0Y7O0VBRUUsZ0JBQWdCO0FBQ2xCO0FBRUE7RUFDRSxpQkFBd0M7RUFBeEMsd0NBQXdDO0FBTTFDO0FBTEU7SUFDRTtNQUNFLGlCQUF3QztNQUF4Qyx3Q0FBd0M7SUFDMUM7RUFDRjtBQUdGO0VBQ0UsaUJBQXdDO0VBQXhDLHdDQUF3QztBQU0xQztBQUxFO0lBQ0U7TUFDRSxpQkFBd0M7TUFBeEMsd0NBQXdDO0lBQzFDO0VBQ0Y7QUFHRjtFQUNFLFdBQVc7RUFDWCxXQUFXO0VBQ1gsY0FBYztBQUNoQjtBQUVBO0VBQ0UsZ0JBQTRCO0VBQTVCLDRCQUE0QjtFQUM1QixpQ0FBa0M7RUFBbEMsa0NBQWtDO0VBQ2xDLGtDQUFtQztFQUFuQyxtQ0FBbUM7RUFDbkMsNkNBQThDO0FBWWhEO0FBWEU7SUFDRTtNQUNFLGlDQUE4QztNQUE5QyxpQ0FBOEM7TUFBOUMsNkNBQThDO0lBQ2hEO0VBQ0Y7QUFDQTtJQUNFO01BQ0UsaUJBQXdDO01BQXhDLHdDQUF3QztNQUN4QyxnQkFBbUQ7TUFBbkQsa0RBQW1EO0lBQ3JEO0VBQ0Y7QUFHRjs7RUFFRSxhQUFhO0VBQ2IsWUFBWTtFQUNaLGlDQUErQztFQUEvQyxpQ0FBK0M7RUFBL0MsOENBQStDO0FBTWpEO0FBTEU7SUFDRTtNQUNFLGdCQUFvRDtNQUFwRCxtREFBb0Q7SUFDdEQ7RUFDRjtBQUdGO0VBQ0UsY0FBYztBQUNoQjtBQ25SQTs7Ozs7Ozs7OytFQVMrRTtBQUUvRTs7Ozt1Q0FJdUM7QUFFdkMsNEVBQTRFO0FBQzVFLHdFQUF3RTtBQUN4RSxpR0FBaUc7QUFDakc7MENBQzBDO0FBQzFDLHdGQUF3RjtBQUV4Rjs7Ozt3Q0FJd0M7QUFFeEM7O0VBRUUsa0JBQWtCOztFQUVsQiwyQkFBMkI7RUFDM0IsMkJBQTJCLEVBQUUsYUFBYTtFQUMxQywyQkFBMkI7O0VBRTNCOzs7R0FHQzs7RUFFRCwyQkFBMkI7RUFDM0IsMkJBQTJCO0VBQzNCLDRDQUE4RTtFQUM5RSw4QkFBOEI7RUFDOUIsNEJBQTRCO0VBQzVCLDBCQUEwQjtFQUMxQiw2QkFBNkI7RUFDN0IsNEJBQTRCOztBQUU5QjtBQUVBLDZCQUE2QjtBQUU3Qjs7RUFFRSw4QkFBOEI7RUFDOUIsK0JBQStCO0VBQy9CLCtCQUErQjs7QUFFakM7QUFFQSw4Q0FBOEM7QUFNOUM7Ozs7dUNBSXVDO0FBRXZDO0VBQ0UsZUFBcUM7RUFBckMscUNBQXFDO0VBQ3JDLG9FQUFvRTtFQUNwRSxnQkFBZ0I7RUFDaEIsbUNBQW1DO0VBQ25DLGtDQUFrQztFQUNsQyxrQkFBa0IsRUFBRSxzRUFBc0U7RUFDMUYsaUJBQWlCOztFQUVqQixnREFBZ0Q7O0VBRWhELDRGQUE0Rjs7O0FBMkI5RjtBQXpCRTtJQUNFO01BQ0UsZUFBcUM7TUFBckMscUNBQXFDLEVBQUUsa0JBQWtCO01BQ3pELGdDQUFrRTtJQUNwRTtFQUNGO0FBRUE7SUFDRTtNQUNFLGVBQXFDO01BQXJDLHFDQUFxQyxFQUFFLG1CQUFtQjtJQUM1RDtFQUNGO0FBRUEsOEZBQThGO0FBRTlGO0FBNUJGO0lBNkJJLGlCQUFpQixFQUFFLGtCQUFrQjtJQUNyQyw0Q0FBMEU7OztBQVE5RTtFQVBFO0FBRUE7QUFqQ0Y7SUFrQ0ksaUJBQWlCLEVBQUUsbUJBQW1COzs7QUFJMUM7RUFIRTtBQUtGOzs7O3VDQUl1QztBQUV2QztFQUNFLGtCQUFrQjtBQUNwQjtBQUVBO0VBQ0UsYUFBYTtBQUNmO0FBRUE7RUFDRSw4QkFBc0I7VUFBdEIsc0JBQXNCO0FBQ3hCO0FBRUE7RUFVRSwwQ0FBMEM7QUFDNUM7QUFYQTtFQUNFLG9CQUFhO0VBQWIsb0JBQWE7RUFBYixhQUFhO0VBQ2IsNEJBQXNCO0VBQXRCLDZCQUFzQjtNQUF0QiwwQkFBc0I7VUFBdEIsc0JBQXNCO0VBQ3RCLHlCQUE2QjtNQUE3Qiw2QkFBNkI7RUFDN0IsZ0JBQWdCO0VBQ2hCLGVBQWU7RUFDZixNQUFNO0VBQ04sUUFBUTtFQUNSLFNBQVM7RUFDVCxPQUFPO0FBRVQ7QUFFQTtFQUNFLGdCQUFnQjtFQUNoQixpQkFBaUI7RUFDakIsWUFBWTtFQUNaLGdCQUFnQjtFQUNoQixtQkFBNkI7RUFBN0IsNkJBQTZCO0VBQzdCLGNBQXlCO0VBQXpCLHlCQUF5QjtFQUN6QixtREFBMkM7VUFBM0MsMkNBQTJDO0VBQzNDLG9CQUFvQjtFQUNwQixrQkFBa0I7RUFDbEIsa0JBQWtCO0FBQ3BCO0FBRUE7RUFDRTtJQUNFLGtCQUFrQjtJQUNsQixpQkFBaUI7RUFDbkI7QUFDRjtBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLGdCQUFnQjtBQUNsQjtBQUVBOzs7O0VBSUUsa0JBQWtCO0VBQ2xCLHFCQUFxQjtFQUNyQiwwQkFBdUM7RUFBdkMsMEJBQXVDO0VBQXZDLHNDQUF1QztFQUN2QywyQkFBdUM7RUFBdkMsMkJBQXVDO0VBQXZDLHNDQUF1QztFQUN2QyxrQkFBNEI7RUFBNUIsNEJBQTRCO0VBQzVCLGNBQWM7RUFDZCx3QkFBd0I7RUFDeEIsZ0JBQWdCO0VBQ2hCLFlBQVk7RUFDWixVQUFVO0VBQ1YsU0FBUztFQUNULGNBQXlCO0VBQXpCLHlCQUF5QjtFQUN6QixlQUFlO0VBQ2YsV0FBVztFQUNYLHdCQUFnQjtFQUFoQixnQkFBZ0I7QUFDbEI7QUFFQTs7RUFFRSxVQUFVO0VBQ1YsY0FBeUI7RUFBekIseUJBQXlCO0FBQzNCO0FBRUE7Ozs7RUFJRSxnQkFBMkI7RUFBM0IsMkJBQTJCO0VBQzNCLDZCQUE2QjtFQUM3QixjQUE4QjtFQUE5Qiw4QkFBOEI7RUFDOUIsZUFBZTtFQUNmLGNBQWM7RUFDZCxnQkFBZ0I7RUFDaEIsbUJBQW1CO0VBQ25CLGdCQUFnQjtFQUNoQixrQkFBa0I7RUFDbEIsMEJBQTBCO0VBQzFCLHFCQUFnQjtPQUFoQixnQkFBZ0I7RUFDaEIsZ0NBQTZDO0VBQTdDLGdDQUE2QztFQUE3Qyw0Q0FBNkM7RUFDN0Msd0JBQXdCO0VBQ3hCLHdCQUFnQjtFQUFoQixnQkFBZ0I7QUFDbEI7QUFFQTs7RUFFRSxjQUF5QjtFQUF6Qix5QkFBeUI7QUFDM0I7QUFHRTtJQUNFLGdCQUE2QjtJQUE3Qiw2QkFBNkI7SUFDN0IsZ0JBQWdCO0VBQ2xCO0FBRUE7Ozs7SUFJRSxnQkFBMkI7SUFBM0IsMkJBQTJCO0lBQzNCLDZCQUE2QjtJQUM3Qiw0Q0FBeUU7SUFBekUsNENBQXlFO0lBQXpFLHdFQUF5RTtJQUN6RSxtQ0FBZ0Q7SUFBaEQsbUNBQWdEO0lBQWhELCtDQUFnRDtJQUNoRCxjQUE4QjtJQUE5Qiw4QkFBOEI7SUFDOUIsZUFBZTtJQUNmLHFCQUFxQjtJQUNyQixnQkFBZ0I7SUFDaEIsbUJBQW1CO0lBQ25CLGdCQUFnQjtJQUNoQixzQkFBc0I7SUFDdEIsa0JBQWtCO0lBQ2xCLHFCQUFxQjtJQUNyQixxQkFBZ0I7U0FBaEIsZ0JBQWdCO0lBQ2hCLGdDQUE2QztJQUE3QyxnQ0FBNkM7SUFBN0MsNENBQTZDO0lBQzdDLHdCQUF3QjtJQUN4Qix3QkFBZ0I7SUFBaEIsZ0JBQWdCO0VBQ2xCO0FBRUE7O0lBRUUsNkJBQTZCO0lBQzdCLHFCQUFnQztJQUFoQyxnQ0FBZ0M7SUFDaEMsY0FBeUI7SUFBekIseUJBQXlCO0VBQzNCO0FBRUE7Ozs7SUFJRSxpQkFBNEI7SUFBNUIsNEJBQTRCO0lBQzVCLGtCQUFrQjtJQUNsQixvQkFBb0I7SUFDcEIsOEJBQTBDO0lBQTFDLDhCQUEwQztJQUExQyx5Q0FBMEM7RUFDNUM7QUFFQTtJQUNFLGtCQUFrQjtJQUNsQixRQUFRO0lBQ1IsaUJBQWlCO0lBQ2pCLGFBQWE7SUFDYixXQUFXO0lBQ1gsUUFBUTtJQUNSLFNBQVM7SUFDVCxrQ0FBa0M7SUFDbEMscUNBQXFDO0lBQ3JDLHFDQUFxQztJQUNyQyxnQ0FBZ0Q7SUFBaEQsZ0RBQWdEO0lBQ2hELGlCQUFpQjtFQUNuQjtBQUVBOztJQUVFLDBCQUFxQztJQUFyQyxxQ0FBcUM7RUFDdkM7QUFHRjtFQUNFLHFCQUFxQjtBQUN2QjtBQ3JTQTs7Ozs7Ozs7O3dDQVN3QztBQUV4Qzs7Ozt3Q0FJd0M7QUFFdkMsNENBQTRDO0FBQzVDLHNCQUFzQjtBQUNuQixvREFBb0Q7QUFDdkQseUJBQXlCO0FBQ3RCLHdGQUF3RjtBQUMzRixzREFBc0Q7QUFDbkQsdURBQXVEO0FBRTFELDBIQUEwSDtBQUMxSDsyQ0FDMEM7QUFDMUMsNkdBQTZHO0FBRTlHOzs7O3dDQUl3QztBQUV4QyxrQkFBa0I7QUFFbEI7O0VBRUUsZ0ZBQWdGOztBQUVsRixvREFBb0QsS0FBSyxZQUFZO0FBQ3JFLHFEQUFxRCxJQUFJLG9DQUFvQztBQUM3RixzREFBc0QsR0FBRyxZQUFZO0FBQ3JFLHFEQUFxRCxJQUFJLFlBQVk7QUFDckUsb0RBQW9ELEtBQUssWUFBWTtBQUNyRSw0Q0FBNEM7QUFDNUMsdURBQXVEOztBQUV2RDs7Ozs7Q0FLQzs7QUFFRCxnQ0FBZ0M7QUFDaEMsZ0NBQWdDO0FBQ2hDLGlEQUFtRjtBQUNuRixpQ0FBaUM7QUFDakMsa0NBQWtDO0FBQ2xDLGdDQUFnQzs7QUFFaEM7QUFFQSw4Q0FBOEM7QUFTOUM7Ozs7d0NBSXdDO0FBRXhDO0dBQ0csZUFBMEM7R0FBMUMsMENBQTBDO0dBQzFDLG9FQUFvRTtHQUNwRSxnQkFBZ0I7R0FDaEIsa0NBQWtDLEVBQUUsbURBQW1EO0tBQ3JGLDhCQUFzQjtRQUF0QiwyQkFBc0I7U0FBdEIsMEJBQXNCO2FBQXRCLHNCQUFzQjtHQUN4QixtQ0FBbUM7R0FDbkMsa0NBQWtDO0dBQ2xDLGtCQUFrQixFQUFFLHNFQUFzRTtHQUMxRixpQkFBaUI7O0dBRWpCLGdEQUFnRDtBQWNuRDtBQVpHO0tBQ0U7T0FDRSxlQUEwQztPQUExQywwQ0FBMEMsRUFBRSxrQkFBa0IsRUFBRSxpREFBaUQ7T0FDakgsZ0NBQWtFO0tBQ3BFO0dBQ0Y7QUFFQTtLQUNFO09BQ0UsZUFBMEM7T0FBMUMsMENBQTBDLEVBQUUsbUJBQW1CO0tBQ2pFO0dBQ0Y7QUFHSDtFQUNFLDhCQUFzQjtVQUF0QixzQkFBc0I7QUFJeEI7QUFIRTtJQUNFLDhCQUFzQjtZQUF0QixzQkFBc0I7RUFDeEI7QUFHRjs7Ozt3Q0FJd0M7QUFHdEM7SUFDRTtNQUNFLGdCQUFnQjtNQUNoQixXQUFXO0lBQ2I7RUFDRjtBQUdGO0VBQ0Usa0JBQWtCO0VBQ2xCLDBCQUFrRDtFQUFsRCxrREFBa0Q7RUFDbEQsb0JBQWE7RUFBYixvQkFBYTtFQUFiLGFBQWE7RUFDYix5QkFBOEI7TUFBOUIsc0JBQThCO1VBQTlCLDhCQUE4QjtFQUM5Qix5QkFBbUI7TUFBbkIsc0JBQW1CO1VBQW5CLG1CQUFtQjtFQUNuQixpQkFBaUI7QUFNbkI7QUFMRTtJQUNFO01BQ0Usc0JBQXNCO0lBQ3hCO0VBQ0Y7QUFHRjtFQUNFLGNBQWM7QUFNaEI7QUFMRTtJQUNFO01BQ0Usb0JBQW9CO0lBQ3RCO0VBQ0Y7QUFHRjtFQUNFLGNBQWM7RUFDZCxXQUFXO0VBQ1gsV0FBVztBQUNiO0FBRUE7RUFDRSxvQkFBb0I7RUFDcEIscUJBQXFCO0VBQ3JCLFlBQThCO0VBQTlCLDhCQUE4QjtFQUM5QixpQ0FBc0Q7RUFBdEQsc0RBQXNELEVBQUUsZ09BQWdPO0VBQ3hSLG1DQUFzRDtFQUF0RCxtQ0FBc0Q7RUFBdEQsb0RBQXNEO0VBQ3RELG1EQUErRTtFQUEvRSxtREFBK0U7RUFBL0UsOEVBQStFO0VBQy9FLHlCQUF5QjtFQUN6QixrQ0FBNkM7RUFBN0Msa0NBQTZDO0VBQTdDLDZDQUE2QztFQUM3Qyx5QkFBMkM7RUFBM0MseUJBQTJDO0VBQTNDLHlDQUEyQztFQUMzQyxpQkFBaUI7RUFDakIsaUJBQW9DO0VBQXBDLG9DQUFvQztFQUNwQyxnQkFBZ0I7QUFZbEI7QUFYRTtJQUNFO01BQ0UsYUFBYTtJQUNmO0VBQ0Y7QUFDQTs7OztJQUlFLFlBQThCO0lBQTlCLDhCQUE4QjtFQUNoQztBQUlBO0lBQ0U7TUFDRSwwQkFBa0Q7TUFBbEQsa0RBQWtEO01BQ2xELGtCQUFrQjtNQUNsQixpQkFBaUI7TUFDakIsZUFBZTtNQUNmLGtCQUFrQjtNQUNsQixnQkFBZ0I7TUFDaEIsTUFBTTtNQUNOLE9BQU87TUFDUCxXQUFXO01BQ1gsWUFBWTtNQUNaLGtCQUFrQjtNQUNsQixVQUFVO01BQ1Ysb0RBQTRDO01BQTVDLDRDQUE0QztJQU85Qzs7TUFMRTtRQUNFLFVBQVU7UUFDVixtQkFBbUI7UUFDbkIsZ0NBQXdCO1FBQXhCLHdCQUF3QjtNQUMxQjtFQUVKO0FBR0Y7RUFDRSxnQkFBZ0I7RUFDaEIsa0JBQWtCO0VBQ2xCLG9CQUFvQjtFQUNwQixrQkFBa0I7RUFDbEIsZ0JBQWdCO0FBU2xCO0FBUkU7SUFDRTtNQUNFLFNBQVM7TUFDVCxVQUFVO01BQ1Ysb0JBQWE7TUFBYixvQkFBYTtNQUFiLGFBQWE7TUFDYix5QkFBOEI7VUFBOUIsc0JBQThCO2NBQTlCLDhCQUE4QjtJQUNoQztFQUNGO0FBR0Y7RUFDRSx5RUFBeUU7RUFDekUsZ0JBQWdCO0FBQ2xCO0FBRUE7RUFDRSxnQkFBZ0I7RUFDaEIscUJBQWE7TUFBYixpQkFBYTtVQUFiLGFBQWE7RUFDYixTQUFTO0VBQ1QscUJBQXFCO0VBQ3JCLGlCQUFpQjtBQU1uQjtBQUxFO0lBQ0U7TUFDRSxvQkFBb0I7SUFDdEI7RUFDRjtBQUdGLDRFQUE0RTtBQUM1RTtFQUNFLGVBQWU7QUFDakI7QUFFQTtFQUNFLFlBQThCO0VBQTlCLDhCQUE4QjtFQUM5QixnQkFBa0M7RUFBbEMsa0NBQWtDO0VBQ2xDLHFCQUFxQjtBQU12QjtBQUxFO0lBQ0U7TUFDRSxpQkFBb0M7TUFBcEMsb0NBQW9DO0lBQ3RDO0VBQ0Y7QUFHRjs7OztFQUlFLGdCQUFrQztFQUFsQyxrQ0FBa0M7RUFDbEMsZ0JBQWdCO0VBQ2hCLGtCQUFrQjtFQUNsQixxQkFBcUI7RUFDckIscUJBQXFCO0VBQ3JCLFlBQThCO0VBQTlCLDhCQUE4QjtFQUM5Qiw2QkFBOEM7RUFBOUMsNkJBQThDO0VBQTlDLDZDQUE4QztFQUM5Qyx3QkFBZ0I7RUFBaEIsZ0JBQWdCO0FBc0NsQjtBQXJDRTtJQUNFO01BQ0UsaUJBQW9DO01BQXBDLG9DQUFvQztNQUNwQyxlQUEwQztNQUExQywwQ0FBMEM7SUFDNUM7RUFDRjtBQUNBO0lBQ0U7Ozs7Ozs7O01BRUUsY0FBYztNQUNkLFdBQVcsRUFBRSxnT0FBZ087TUFDN08sV0FBVztNQUNYLFdBQVc7TUFDWCxrQkFBa0I7TUFDbEIsUUFBUTtJQUNWO0VBQ0Y7QUFDQTtJQUNFOzs7Ozs7OztNQUVFLGtCQUFrQjtNQUNsQiw0QkFBOEM7TUFBOUMsNEJBQThDO01BQTlDLDZDQUE4QztNQUM5QyxPQUFPO01BQ1AsUUFBUTtNQUNSLFdBQVc7SUFDYjtFQUNGO0FBQ0E7SUFDRSxZQUE4QjtJQUE5Qiw4QkFBOEI7SUFDOUIscUJBQXFCO0VBQ3ZCO0FBQ0E7SUFDRTs7Ozs7Ozs7TUFFRSwyQkFBZ0Q7TUFBaEQsZ0RBQWdEO0lBQ2xEO0VBQ0Y7QUFHRixnRkFBZ0Y7QUFDaEY7Ozs7RUFJRSxlQUFlO0VBQ2YsZ0JBQWdCO0FBdUJsQjtBQXRCRTs7Ozs7Ozs7SUFFRSxjQUFjO0lBQ2QsV0FBVyxFQUFFLGdPQUFnTztJQUM3TyxXQUFXO0lBQ1gsV0FBVztJQUNYLGtCQUFrQjtJQUNsQixRQUFRO0VBQ1Y7QUFDQTtJQUNFLDJCQUFnRDtJQUFoRCxnREFBZ0Q7SUFDaEQsWUFBWTtFQUNkO0FBQ0E7SUFDRSxVQUFVO0VBQ1o7QUFDQTtJQUNFOzs7Ozs7OztNQUVFLE1BQU07SUFDUjtFQUNGO0FBUUU7TUFDRTtRQUNFLGlCQUE0QztRQUE1Qyw0Q0FBNEM7UUFDNUMsa0JBQXVEO1FBQXZELHFEQUF1RDtRQUN2RCw0QkFBOEM7UUFBOUMsOENBQThDO01BQ2hEO0lBQ0Y7QUFHSjtFQUNFLGlCQUFtQztFQUFuQyxtQ0FBbUM7RUFDbkMsd0JBQXdCO0VBQ3hCLGtCQUFrQjtBQUNwQjtBQUVBO0VBQ0UsZUFBaUM7RUFBakMsaUNBQWlDO0VBQ2pDLGdCQUFnQjtFQUNoQixnQkFBZ0I7RUFDaEIsU0FBUztBQUNYO0FBRUE7RUFDRSxvQkFBOEM7RUFBOUMsOENBQThDO0VBQzlDLFlBQVk7RUFDWiwwQkFBMEI7RUFDMUIsbUJBQW1CO0FBQ3JCO0FBRUE7RUFDRSxtQkFBbUI7QUFDckI7QUMzWEEsd0VBQXdFO0FBQ3hFLHlGQUF5RjtBQUV6RjtFQUNFLG1CQUFtQjtFQUNuQiw2QkFBNkI7RUFDN0IscUJBQXFCO0VBQ3JCLFdBQVc7RUFDWCxnQkFBZ0I7RUFDaEIsa0JBQWtCO0VBQ2xCLG1CQUFtQjtFQUNuQixVQUFVO0FBQ1o7QUFFQTtFQUNFLGFBQWE7QUFDZjtBQUVBO0VBQ0UsYUFBYTtFQUNiOzs2QkFFOEI7VUFGOUI7OzZCQUU4QjtFQUY5Qjs7Z0NBRThCO1VBRjlCOztnQ0FFOEI7QUFDaEM7QUFMQTtFQUNFLGFBQWE7RUFDYjs7NkJBRThCO1VBRjlCOzs2QkFFOEI7RUFGOUI7O2dDQUU4QjtVQUY5Qjs7Z0NBRThCO0FBQ2hDO0FBTEE7RUFDRSxhQUFhO0VBQ2I7OzZCQUU4QjtVQUY5Qjs7NkJBRThCO0VBRjlCOztnQ0FFOEI7VUFGOUI7O2dDQUU4QjtBQUNoQztBQUVBO0VBQ0U7SUFDRSxvQkFBb0I7RUFDdEI7RUFGQTtJQUNFLG9CQUFvQjtFQUN0QjtBQUNGO0FDeEJBLHNCQUFzQjtBQUV0Qjs7Q0FFQztBQUNELGtCQUFrQixpQkFBaUIiLCJmaWxlIjoicHVibGljYXRpb25zLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIFZlbmRvciBjc3MgYW5kIHZhcmlhYmxlcyAqL1xuQGltcG9ydCAnLi9wdWJsaWNhdGlvbnMvdmVuZG9yL25vcm1hbGl6ZS5jc3MnOyAvKiBDdXN0b21pemVkIGZvciBPVVIgZGVzaWduICovXG5cbi8qIENvcmUgY3NzIGFuZCB2YXJpYWJsZXMgKi9cbkBpbXBvcnQgJy4vcHVibGljYXRpb25zL2NvcmUvX2NvbG9yLmNzcyc7XG5AaW1wb3J0ICcuL3B1YmxpY2F0aW9ucy9jb3JlL19mb250cy5jc3MnO1xuQGltcG9ydCAnLi9wdWJsaWNhdGlvbnMvY29yZS9fc2l6ZXMuY3NzJztcbkBpbXBvcnQgJy4vcHVibGljYXRpb25zL2NvcmUvX3R5cG9ncmFwaHkuY3NzJztcbkBpbXBvcnQgJy4vcHVibGljYXRpb25zL2NvcmUvX2J1dHRvbi5jc3MnO1xuXG4vKiBMYXlvdXQgKi9cbkBpbXBvcnQgJy4vcHVibGljYXRpb25zL2xheW91dC9fbGF5b3V0LmNzcyc7XG5cbi8qIENvbXBvbmVudHMgKi9cbkBpbXBvcnQgJy4vcHVibGljYXRpb25zL2NvbXBvbmVudHMvX2Jhbm5lci5jc3MnO1xuQGltcG9ydCAnLi9wdWJsaWNhdGlvbnMvY29tcG9uZW50cy9fYW5ub3VuY2VtZW50LmNzcyc7XG5AaW1wb3J0ICcuL3B1YmxpY2F0aW9ucy9jb21wb25lbnRzL19jdGEtc2lkZWJhci5jc3MnO1xuQGltcG9ydCAnLi9wdWJsaWNhdGlvbnMvY29tcG9uZW50cy9fZGlyZWN0b3J5LmNzcyc7XG5AaW1wb3J0ICcuL3B1YmxpY2F0aW9ucy9jb21wb25lbnRzL19maWd1cmUuY3NzJztcbkBpbXBvcnQgJy4vcHVibGljYXRpb25zL2NvbXBvbmVudHMvX25hdi1jdXJyaWN1bHVtLmNzcyc7XG5AaW1wb3J0ICcuL3B1YmxpY2F0aW9ucy9jb21wb25lbnRzL19pbmRleC5jc3MnO1xuXG4vKiBTaGFyZWQgU3R5bGVzICovXG5AaW1wb3J0ICcuL3NoYXJlZC9zdHlsZXMuY3NzJztcbiIsIi8qISBub3JtYWxpemUuY3NzIHY4LjAuMSB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cblxuLyogRG9jdW1lbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpbiBpT1MuXG4gKi9cblxuaHRtbCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xufVxuXG4vKiBTZWN0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyoqXG4gKiBSZW5kZXIgdGhlIGBtYWluYCBlbGVtZW50IGNvbnNpc3RlbnRseSBpbiBJRS5cbiAqL1xuXG5tYWluIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAqL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gKiAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cbiAqL1xuXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAxICovXG4gIGhlaWdodDogMDsgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTsgLyogMiAqL1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny1cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gKi9cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lOyAvKiAxICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAvKiAyICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gKiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxMDAlOyAvKiAxICovXG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIG1hcmdpbjogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICogMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCB7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHsgLyogMSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcblt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gKi9cblxuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5sZWdlbmQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIGNvbG9yOiBpbmhlcml0OyAvKiAyICovXG4gIGRpc3BsYXk6IHRhYmxlOyAvKiAxICovXG4gIG1heC13aWR0aDogMTAwJTsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAzICovXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8qIDEgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5cbnByb2dyZXNzIHtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgMTArLlxuICovXG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAuXG4gKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAuXG4gKi9cblxuW3R5cGU9XCJjaGVja2JveFwiXSxcblt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG4gKi9cblxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICovXG5cblt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gKi9cblxuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAqL1xuXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xufVxuXG4vKiBJbnRlcmFjdGl2ZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFIDEwKywgYW5kIEZpcmVmb3guXG4gKi9cblxuZGV0YWlscyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG59XG5cbi8qIE1pc2NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTArLlxuICovXG5cbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC5cbiAqL1xuXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBDb2xvcnNcbiAqXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbjpyb290IHtcblxuICAgIC8qIENvbG9ycyB3aXRoIFwiLW91ci1cIiBpbiB0aGVpciBuYW1lIGFyZSBzb3VyY2VkIGZyb20gdGhlIE9VUiBicmFuZCBndWlkZWxpbmVzLiBQdWxsZWQgZnJvbSBCb29rd29ybXMgd2ViLiAqL1xuXG4gICAgLS1vdXItcHJpbWFyeS1vcmFuZ2U6ICAgICAgIHJnYigyNTIsNzYsMik7ICAgIC8qICNGQzRDMDIgKi9cbiAgICAtLW91ci1nbG9iYWxuYXYtb3JhbmdlOiAgICAgcmdiKDI0MSw4OSw0Mik7ICAgLyogI0YxNTkyQSAgLSBhIGxlc3MgYnJpZ2h0LCBXQ0FHIEFBKyBjb21wbGlhbnQgb3JhbmdlICovXG4gICAgLS1hYS1vcmFuZ2U6ICAgICAgICAgICAgICAgIHJnYigyMTUsNjUsMik7ICAgIC8qICNkNzQxMDIgLSBBQSBvcmFuZ2Ugd2l0aCB3aGl0ZSDigJQgdXNlZCBpbiB0aGUgQ01TLCBza2V3cyByZWRkaXNoICovXG4gICAgLS1vdXItcHJpbWFyeS15ZWxsb3c6ICAgICAgIHJnYigyNTUsMTg0LDI4KTsgIC8qICNGRkI4MUMgKi9cbiAgICAtLW91ci1wcmltYXJ5LWdyYXk6ICAgICAgICAgcmdiKDExMCw5OCw4OSk7ICAgLyogIzZFNjI1OSAqL1xuICAgIC0tb3VyLXByaW1hcnktZGFyay1ncmF5OiAgICByZ2IoNjksNTMsNTQpOyAgICAvKiAjNDUzNTM2ICovXG4gICAgLS1ncmF5OiAgICAgICAgICAgICAgICAgICAgIHJnYigyMDAsMjAwLDIwMCk7XG4gICAgLS1hY2Nlc3NpYmxlLWdyYXk6ICAgICAgICAgIHJnYigxMTksMTE5LDExOSk7IC8qIFRoZSBsaWdodGVzdCBncmF5IHRoYXQgaXMgYWNjZXNzaWJsZSBhdCA8IDE4cHggdGV4dCBvbiB3aGl0ZSAqL1xuICAgIC0tbGlnaHQtZ3JheTogICAgICAgICAgICAgICByZ2IoMjQxLDI0MSwyNDEpO1xuICAgIC0tc3RpY2t5LW5vdGUteWVsbG93OiAgICAgICAjZmRmNGE0OyAvKiBVc2VkIG9ubHkgZm9yIHRoZSBhbm5vdGF0aW9ucyBpbiB0aGUgdGVhY2hlciBtYW51YWwsIG9yIHNpbWlsYXIgZnV0dXJlIGNvbXBvbmVudHMgKi9cbiAgICAtLXRlYWw6ICAgICAgICAgICAgICAgICAgICAgIzAwODQ3MDsgLyogQSBzZWNvbmRhcnkgYWNjZW50IGNvbG9yLCB1c2VkIGZvciBhbm5vdW5jZW1lbnQgYW5kIG1lc3NhZ2UgYmFja2dyb3VuZHMgb24gdGhlIGxhbmRpbmcgcGFnZXMgKi9cblxuICAgIC8qIE5ldXRyYWwgYW5kIGFjY2VudCBjb2xvciB2YXJpYWJsZXMgKi9cblxuICAgIC0tYmxhY2s6ICAgICAgIzAwMDAwMDtcbiAgICAtLXRleHQ6ICAgICAgIHZhcigtLW91ci1wcmltYXJ5LWRhcmstZ3JheSk7XG4gICAgLS1kYXJrLWdyYXk6ICAjNGM0YzRjOyAvKiA3MCUgYmxhY2sgKi9cbiAgICAtLW1lZC1ncmF5OiAgICNiZmJmYmY7IC8qIDI1JSBibGFjayAqL1xuICAgIC0tbGlnaHQtZ3JheTogI2ViZWJlYjsgLyogOCUgYmxhY2sgKi9cbiAgICAtLXdoaXRlOiAgICAgICNmZmZmZmY7XG4gICAgLS1hY2NlbnQ6ICAgICB2YXIoLS1hYS1vcmFuZ2UpO1xuICAgIC0tYWNjZW50LWxhcmdlOiAgICAgdmFyKC0tb3VyLWdsb2JhbG5hdi1vcmFuZ2UpO1xuICAgIC0tYWNjZW50LWFsdDogdmFyKC0tdGVhbCk7XG4gICAgLS13b3Jtc3k6ICAgICAgICAgICAgICAgICAgIHJnYig4MSwgMTg3LCAxMTQpOyAvKiAjNTFCQjcyICovXG4gICAgLS13b3Jtc3ktYWE6ICAgICAgICAgICAgICAgIHJnYig1MiwgMTMzLCA3OCk7ICAvKiAjMzQ4NTRlICovXG4gICAgLS13b3Jtc3ktYWEtbGFyZ2U6ICAgICAgICAgIHJnYig2NiwgMTY4LCA5OCk7ICAvKiAjNDJhODYyICovXG5cbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIEZvbnRzXG4gKlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG46cm9vdCB7XG4gIC0tZm9udC1mYW1pbHktdGV4dDogJ1JvYm90bycsICdUcmVidWNoZXQgTVMnLCBUcmVidWNoZXQsIFRhaG9tYSwgc2Fucy1zZXJpZjsgLyogRGVmYXVsdCB0ZXh0LCBHbG9iYWwgTmF2LCBDdXJyaWN1bHVtIE5hdiwgQnV0dG9uc+KApiA0MDAsNTAwLDcwMCB3ZWlnaHQgKi9cbiAgLS1mb250LWZhbWlseS10ZXh0LWFsdDogJ1NvdXJjZSBTYW5zIFBybycsIHNhbnMtc2VyaWY7IC8qIERlZmF1bHQgdGV4dCBmb3IgaW5kZXguIDQwMCwgNjAwLCA3MDAgd2VpZ2h0ICovXG4gIC0tZm9udC1mYW1pbHktZGlzcGxheTogYWdlbmRhLW9uZSwgc2Fucy1zZXJpZjsgLyogSGVhZGluZ3Mg4oCUIDYwMCwgNzAwICovXG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBTaXplc1xuICpcbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogRm9udCBhbmQgRm91bmRhdGlvbmFsIE1vZHVsYXIgU2l6ZXMgKi9cblxuOnJvb3Qge1xuICAtLWFscGhhOiAgICAgICAgICAgIDIuNHJlbTsgICAgICAgICAgICAgICAgLyogRWcuIEJhbm5lcnMgYW5kIFRleHQgVHJlYXRlZCBMaWtlIExhcmdlIEdyYXBoaWNzICovXG4gIC0tYmV0YTogICAgICAgICAgICAgMS43ODRyZW07ICAgICAgICAgICAgICAvKiBFZy4gSDJpc2ggSGVhZGluZ3MgKi9cbiAgLS1nYW1tYTogICAgICAgICAgICAxLjJyZW07ICAgICAgICAgICAgICAvKiBFZy4gSDNpc2ggSGVhZGluZ3MgKi9cbiAgLS1yZW06ICAgICAgICAgICAgICAxMDAlOyAgICAgICAgICAgICAgICAgIC8qIEVnLiBGb3VuZGF0aW9uIGZvciBhbGwgdHlwZSwgbWFyZ2luLCBhbmQgcGFkZGluZyBzaXplcyAqL1xuICAtLWRlbHRhOiAgICAgICAgICAgIDFyZW07ICAgICAgICAgICAgICAgICAgLyogRWcuIEg0aXNoIEhlYWRpbmdzICovXG4gIC0tYmFzZTogICAgICAgICAgICAgMXJlbTsgICAgICAgICAgICAgICAgICAvKiBFZy4gQm9keSBmb250ICovXG4gIC0tZXBzaWxvbjogICAgICAgICAgLjlyZW07ICAgICAgICAgICAgICAgICAvKiBFZy4gU3RhbmRhcmRzIHRhZ3MgKi9cbiAgLS16ZXRhOiAgICAgICAgICAgICAuODMzcmVtOyAgICAgICAgICAgICAgIC8qIERPIE5PVCBFRElUIOKAlCBVc2VkIGluIGN1cnJpY3VsdW0gbmF2IGFuZCBicmVhZGNydW1iIG5hdiAqL1xuICAtLWV0YTogICAgICAgICAgICAgIC43NXJlbTsgICAgICAgICAgICAgICAgLyogUmVzZXJ2ZWQgZm9yIGZpbmUgcHJpbnQgYW5kIGluZm9ybWF0aW9uYWxseSBkZW5zZSBlbGVtZW50cyBsaWtlIHRhYmxlcyAqL1xuXG59XG5cbi8qIENvbnRlbnQgQXJlYSBSZWxhdGVkIFNpemVzICovXG5cbjpyb290IHtcbiAgLS1tZWFzdXJlOiA0MHJlbTtcbiAgLS1jb250ZW50LXdpZHRoOiA0OHJlbTtcbn1cblxuLyogVmlld3BvcnQgV2lkdGggVmFyaWFibGVzICovXG5cbjpyb290IHtcblxuICAtLWJwLW5hbm8tbWludXM6ICAgMzE5cHg7XG4gIC0tYnAtbmFubzogICAgICAgICAzMjBweDtcbiAgLS1icC1taWNyby1taW51czogIDQxMHB4O1xuICAtLWJwLW1pY3JvOiAgICAgICAgNDExcHg7XG4gIC0tYnAtbWluLW1pbnVzOiAgICA1MzZweDtcbiAgLS1icC1taW46ICAgICAgICAgIDUzN3B4O1xuICAtLWJwLW1pZC1taW51czogICAgNzY3cHg7XG4gIC0tYnAtbWlkOiAgICAgICAgICA3NjhweDtcbiAgLS1icC1tZWdhLW1pbnVzOiAgIDEwMjNweDtcbiAgLS1icC1tZWdhOiAgICAgICAgIDEwMjRweDtcbiAgLS1icC1tYXgtbWludXM6ICAgIDEzMTlweDtcbiAgLS1icC1tYXg6ICAgICAgICAgIDEzMjBweFxuXG59XG5cbi8qIEN1c3RvbSBNZWRpYSBEZWNsYXJhdGlvbnMgZm9yIEJyZWFrcG9pbnRzICovXG5cbkBjdXN0b20tbWVkaWEgLS1icC1uYW5vLW1pbnVzIChtYXgtd2lkdGg6IDMxOXB4KTtcbkBjdXN0b20tbWVkaWEgLS1icC1uYW5vIChtaW4td2lkdGg6IDMyMHB4KTtcbkBjdXN0b20tbWVkaWEgLS1icC1taWNyby1taW51cyAobWF4LXdpZHRoOiA0MTBweCk7XG5AY3VzdG9tLW1lZGlhIC0tYnAtbWljcm8gKG1pbi13aWR0aDogNDExcHgpO1xuQGN1c3RvbS1tZWRpYSAtLWJwLW1pbi1taW51cyAobWF4LXdpZHRoOiA1MzZweCk7XG5AY3VzdG9tLW1lZGlhIC0tYnAtbWluIChtaW4td2lkdGg6IDUzN3B4KTtcbkBjdXN0b20tbWVkaWEgLS1icC1taWQtbWludXMgKG1heC13aWR0aDogNzY3cHgpO1xuQGN1c3RvbS1tZWRpYSAtLWJwLW1pZCAobWluLXdpZHRoOiA3NjhweCk7XG5AY3VzdG9tLW1lZGlhIC0tYnAtbWVnYS1taW51cyAobWF4LXdpZHRoOiAxMDIzcHgpO1xuQGN1c3RvbS1tZWRpYSAtLWJwLW1lZ2EgKG1pbi13aWR0aDogMTAyNHB4KTtcbkBjdXN0b20tbWVkaWEgLS1icC1tYXgtbWludXMgKG1heC13aWR0aDogMTMxOXB4KTtcbkBjdXN0b20tbWVkaWEgLS1icC1tYXggKG1pbi13aWR0aDogMTMyMHB4KTtcbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIFRZUE9HUkFQSFlcbiAqXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmh0bWwge1xuICBmb250LXNpemU6IHZhcigtLXJlbSk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseS10ZXh0KTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICB0ZXh0LXNpemUtYWRqdXN0OiBub25lO1xuXG4gIC8qIEZsdWlkIHR5cGUgc2l6ZSBmcm9tIDE2cHggdG8gMjBweCBiZXR3ZWVuIC0tYnAtbWluIGFuZCAtLWJwLW1heCBicmVha3BvaW50cyAqL1xuXG4gIEBtZWRpYSAoLS1icC1taW4pIHtcbiAgICAmIHtcbiAgICAgIGZvbnQtc2l6ZTogMWVtOyAvKiAxNnB4IGF0IDMyMHB4ICovXG4gICAgICBmb250LXNpemU6IGNhbGMoMWVtICsgKDIwIC0gMTYpICogKCgxMDB2dyAtIDMyMHB4KS8oMTMyMCAtIDMyMCkpKTtcbiAgICB9XG4gIH1cblxuICBAbWVkaWEgKC0tYnAtbWF4KSB7XG4gICAgJiB7XG4gICAgICBmb250LXNpemU6IGNhbGMoMjBlbS8xNik7IC8qIDIwcHggYXQgMTMyMHB4ICovXG4gICAgfVxuICB9XG59XG5cbmJvZHkge1xuICBsaW5lLWhlaWdodDogMS4zNTtcbiAgY29sb3I6IHZhcigtLXRleHQpO1xuXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuXG4gIC8qIEZsdWlkIGxpbmUtaGVpZ2h0IGZyb20gMS4zNSB0byAxLjQ1IGJldHdlZW4gJGJwLW1pbiBhbmQgJGJwLW1heCBicmVha3BvaW50cyAqL1xuXG4gIEBtZWRpYSAoLS1icC1taW4pIHtcbiAgICAmIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjM1OyAvKiAxLjM1IGF0IDMyMHB4ICovXG4gICAgICBsaW5lLWhlaWdodDogY2FsYygxLjM1ZW0gKyAoMS40NSAtIDEuMzUpICogKCgxMDB2dyAtIDMyMHB4KS8oMTMyMCAtIDMyMCkpKTtcbiAgICB9XG4gIH1cblxuICBAbWVkaWEgKC0tYnAtbWF4KSB7XG4gICAgJiB7XG4gICAgICBsaW5lLWhlaWdodDogMS40NTsgLyogMS40NSBhdCAxMzIwcHggKi9cbiAgICB9XG4gIH1cbn1cblxuYSB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0KTtcbiAgJjpob3ZlciB7XG4gICAgIGNvbG9yOiB2YXIoLS1vdXItZ2xvYmFsbmF2LW9yYW5nZSk7XG4gICAgIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogY29sb3IodmFyKC0tb3VyLXByaW1hcnktb3JhbmdlKSBhKDI1JSkpO1xuICB9XG59XG5cbnN0cm9uZywgYiB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi8qXG4gICAgIEhFQURJTkcgYW5kIFRFWFQgU0laRVNcbiovXG5cbmgxLGgyLGgzLGg0LGg1LGg2IHtcbiAgaHlwaGVuczogbm9uZTtcbn1cblxuLmhlZC1hbHBoYSxcbi5oZWQtYmV0YSxcbi5oZWQtZ2FtbWEsXG4uaGVkLWRlbHRhLFxuLmhlZC1lcHNpbG9uLFxuLmhlZC16ZXRhLFxuW2NsYXNzfD1oZWQtc2VxdWVuY2VdIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogLjVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7XG4gIGh5cGhlbnM6IG5vbmU7XG59XG5cbi5oZWQtYWxwaGEsXG4uaGVkLWJldGEsXG4uaGVkLWdhbW1hLFxuW2NsYXNzfD1oZWQtc2VxdWVuY2VdIHtcbiAgbWFyZ2luLXRvcDogM3JlbTtcbn1cblxuLmhlZC1kZWx0YSxcbi5oZWQtZXBzaWxvbixcbi5oZWQtemV0YSB7XG4gIG1hcmdpbi10b3A6IDJyZW07XG59XG5cbltjbGFzcyo9aGVkLV06bm90KHNwYW4pICsgW2NsYXNzKj1oZWQtXTpub3Qoc3Bhbikge1xuICBtYXJnaW4tdG9wOiAxcmVtO1xufVxuXG4uaGVkLWFscGhhIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5LWRpc3BsYXkpO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IHZhcigtLWFscGhhKTtcbiAgY29sb3I6IHZhcigtLWRlZXApO1xufVxuXG4uaGVkLWJldGEge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHktZGlzcGxheSk7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc2l6ZTogdmFyKC0tYmV0YSk7XG4gIGNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcbn1cblxuLmhlZC1nYW1tYSB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseS1kaXNwbGF5KTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zaXplOiB2YXIoLS1nYW1tYSk7XG4gIGNvbG9yOiB2YXIoLS10ZXh0KTtcbn1cblxuLmhlZC1kZWx0YSB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseS1kaXNwbGF5KTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiB2YXIoLS1kZWx0YSk7XG4gIGNvbG9yOiB2YXIoLS10ZXh0KTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuLmhlZC1lcHNpbG9uIHtcbiAgZm9udC1zaXplOiB2YXIoLS1lcHNpbG9uKTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6IHZhcigtLXRleHQpO1xufVxuXG4uaGVkLXpldGEge1xuICBmb250LXNpemU6IHZhcigtLXpldGEpO1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogdmFyKC0tdGV4dCk7XG59XG5cbi50ZXh0LWVwc2lsb24ge1xuICBmb250LXNpemU6IHZhcigtLWVwc2lsb24pO1xufVxuXG4udGV4dC16ZXRhIHtcbiAgZm9udC1zaXplOiB2YXIoLS16ZXRhKTtcbn1cblxuLmlzLXRleHQtY29sb3Ige1xuICBjb2xvcjogdmFyKC0tdGV4dCk7XG59XG5cbi8qXG4gICAgIFBBUkFHUkFQSFNcbiovXG5cbnAge1xuICBtYXJnaW46IDAgMCAxcmVtO1xuICBvcnBoYW5zOiAyO1xuICB3aWRvd3M6IDI7XG59XG5cbnA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi8qXG4gICAgIExJU1RTIEFORCBWQVJJQVRJT05TXG4qL1xuXG51bCB7XG4gIG1hcmdpbjogMXJlbSAwIDFyZW0gMXJlbTtcbiAgcGFkZGluZzogMDtcbiAgb3JwaGFuczogMjtcbiAgd2lkb3dzOiAyO1xufVxuXG51bCB1bCxcbm9sIG9sIHtcbiAgbWFyZ2luLXRvcDogLjVyZW07XG59XG5cbmxpID4gcCArIHVsIHtcbiAgbWFyZ2luLXRvcDogLS41cmVtO1xufVxuXG5vbCB7XG4gIG1hcmdpbjogMXJlbSAwIDFyZW0gMXJlbTtcbiAgcGFkZGluZzogMDtcbiAgb3JwaGFuczogMjtcbiAgd2lkb3dzOiAyO1xufVxuXG5saSB7XG4gIG1hcmdpbi1ib3R0b206IC41cmVtO1xufVxuXG5saTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLyogSGVscGVycyAqL1xuXG4uaC1oaWRlLWNtcy1jb250ZW50LWR1cmluZy1kZXZlbG9wbWVudCB7IC8qIEBUT0RPIGRlbGV0ZSBydWxlIGFmdGVyIGRldmVsb3BtZW50ICovXG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbkBtZWRpYSAoLS1icC1taW4pIHtcbiAgLmgtbm9iciB7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG59XG5cbi5oLXVybC13cmFwIHsgLyogYWxsb3cgVVJMcyBkaXNwbGF5ZWQgaW5saW5lIHRvIHdyYXAgKi9cbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xufVxuXG4uaC1zaG93LWlubGluZS1icC1taW4ge1xuICBkaXNwbGF5OiBub25lO1xuICBAbWVkaWEgKC0tYnAtbWluKSB7XG4gICAgJiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgfVxuICB9XG59XG5cbi5oLWZsdXNoLXRvcCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIHBhZGRpbmctdG9wOiAwO1xufVxuXG4uaC1mbHVzaC1ib3R0b20ge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBCVVRUT05TXG4gKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uYy1idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY2NlbnQpO1xuICBib3JkZXI6IDAuMDYyNXJlbSBzb2xpZCB2YXIoLS1hY2NlbnQpO1xuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtO1xuICBjb2xvcjogdmFyKC0td2hpdGUpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgaGVpZ2h0OiAyLjM3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDIuMzc1cmVtO1xuICBwYWRkaW5nOiAwIDEuODc1cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgbWFyZ2luOiAuMjVyZW0gLjVyZW0gLjI1cmVtIDA7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgQG1lZGlhICgtLWJwLW1pZCkge1xuICAgICYge1xuICAgICAgZm9udC1zaXplOiB2YXIoLS1lcHNpbG9uKTtcbiAgICB9XG4gIH1cbn1cblxuLmMtYnV0dG9uX3NtYWxsIHtcbiAgaGVpZ2h0OiAyLjM3NWVtO1xuICBsaW5lLWhlaWdodDogMi4zNzVlbTtcbiAgcGFkZGluZzogMCAxLjg3NWVtO1xuICBmb250LXNpemU6IHZhcigtLWV0YSk7XG59XG5cbi5jLWJ1dHRvbjpmaXJzdC1vZi10eXBlIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi5jLWJ1dHRvbjpmb2N1cyxcbi5jLWJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFjY2VudC1sYXJnZSk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYWNjZW50LWxhcmdlKTtcbiAgY29sb3I6ICNmZmY7XG4gIG91dGxpbmU6IDA7XG59XG5cbi5jLWJ1dHRvbltkaXNhYmxlZF0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIG9wYWNpdHk6IC40O1xufVxuXG4uYy1idXR0b25bZGlzYWJsZWRdOmZvY3VzLFxuLmMtYnV0dG9uW2Rpc2FibGVkXTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFjY2VudCk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYWNjZW50KTtcbn1cblxuLmMtYnV0dG9uX2JlZWZ5IHtcbiAgcGFkZGluZzogLjEyNXJlbSAyLjVyZW07XG4gIGhlaWdodDogYXV0bztcbn1cblxuLmMtYnV0dG9uX3dvcm1zeSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdvcm1zeS1hYSk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0td29ybXN5LWFhKTtcbn1cblxuLmMtYnV0dG9uX3dvcm1zeTpmb2N1cyxcbi5jLWJ1dHRvbl93b3Jtc3k6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13b3Jtc3ktYWEtbGFyZ2UpO1xuICBib3JkZXItY29sb3I6IHZhcigtLXdvcm1zeS1hYS1sYXJnZSk7XG59XG5cbi5jLWJ1dHRvbl93b3Jtc3ktZ3JhZGUge1xuICBtaW4td2lkdGg6IDdyZW07XG4gIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgcGFkZGluZy1yaWdodDogMXJlbTtcbn1cblxuLmMtYnV0dG9uX3JldmVyc2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13aGl0ZSk7XG4gIGJvcmRlcjogMC4wNjI1cmVtIHNvbGlkIHZhcigtLXdoaXRlKTtcbiAgY29sb3I6IHZhcigtLWFjY2VudCk7XG59XG5cbi5jLWJ1dHRvbl9yZXZlcnNlOmZvY3VzLFxuLmMtYnV0dG9uX3JldmVyc2U6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13aGl0ZSk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0td2hpdGUpO1xuICBjb2xvcjogdmFyKC0tYWNjZW50LWxhcmdlKTtcbn1cblxuLmMtYnV0dG9uX291dGxpbmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLWFjY2VudCk7XG59XG5cbi5jLWJ1dHRvbl9vdXRsaW5lOmZvY3VzLFxuLmMtYnV0dG9uX291dGxpbmU6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1hY2NlbnQtbGFyZ2UpO1xuICBjb2xvcjogdmFyKC0tYWNjZW50LWxhcmdlKTtcbn1cblxuLmMtYnV0dG9uLW91dGxpbmVbZGlzYWJsZWRdOmZvY3VzLFxuLmMtYnV0dG9uLW91dGxpbmVbZGlzYWJsZWRdOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiBpbmhlcml0O1xuICBjb2xvcjogdmFyKC0tYWNjZW50KTtcbn1cblxuLmMtYnV0dG9uX291dGxpbmUtcmV2ZXJzZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItY29sb3I6IHZhcigtLWxpZ2h0LWdyYXkpO1xuICBjb2xvcjogdmFyKC0tbGlnaHQtZ3JheSk7XG59XG5cbi5jLWJ1dHRvbl9vdXRsaW5lLXJldmVyc2U6Zm9jdXMsXG4uYy1idXR0b25fb3V0bGluZS1yZXZlcnNlOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0td2hpdGUpO1xuICBjb2xvcjogdmFyKC0td2hpdGUpO1xufVxuXG4uYy1idXR0b24tb3V0bGluZS1yZXZlcnNlW2Rpc2FibGVkXTpmb2N1cyxcbi5jLWJ1dHRvbi1vdXRsaW5lLXJldmVyc2VbZGlzYWJsZWRdOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiBpbmhlcml0O1xuICBjb2xvcjogdmFyKC0tbGlnaHQtZ3JheSk7XG59XG5cbi5jLWJ1dHRvbl9jbGVhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tYWNjZW50KTtcbn1cblxuLmMtYnV0dG9uX2NsZWFyOmZvY3VzLFxuLmMtYnV0dG9uX2NsZWFyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1hY2NlbnQtbGFyZ2UpO1xufVxuXG4uYy1idXR0b25fY2xlYXJbZGlzYWJsZWRdOmZvY3VzLFxuLmMtYnV0dG9uX2NsZWFyW2Rpc2FibGVkXTpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1hY2NlbnQpO1xufVxuXG4uYy1idXR0b25fY2xlYXItcmV2ZXJzZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tbGlnaHQtZ3JheSk7XG59XG5cbi5jLWJ1dHRvbl9jbGVhci1yZXZlcnNlOmZvY3VzLFxuLmMtYnV0dG9uX2NsZWFyLXJldmVyc2U6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLXdoaXRlKTtcbn1cblxuLmMtYnV0dG9uX2NsZWFyLXJldmVyc2VbZGlzYWJsZWRdOmZvY3VzLFxuLmMtYnV0dG9uX2NsZWFyLXJldmVyc2VbZGlzYWJsZWRdOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLWxpZ2h0LWdyYXkpO1xufVxuXG4uYy1idXR0b24gLmMtaWNvbiB7XG4gIG1hcmdpbi1yaWdodDogLjVjaDtcbiAgZm9udC1zaXplOiAxLjJlbTtcbiAgbWFyZ2luLWxlZnQ6IC0xY2g7XG59XG5cbi5jLWJ1dHRvbi5oYXMtaWNvbi1iZWZvcmU6OmJlZm9yZSxcbi5jLWJ1dHRvbi5oYXMtaWNvbi1hZnRlcjo6YWZ0ZXIge1xuICBmb250LXNpemU6IDEuMWVtO1xuICBsaW5lLWhlaWdodDogMDtcbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIExBWU9VVFxuICpcbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWluLWhlaWdodDogMTAwdmg7XG59XG5cbi5sLWhlYWRlciB7XG5cbn1cblxuLmwtaGVhZGVyX2Jvb2t3b3JtcyB7XG4gIGZsZXg6IDEgMCBhdXRvO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5sLWhlYWRlcl9lbC1rOCB7XG4gIGZsZXg6IDEgMCBhdXRvO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5sLWhlYWRlcl9lbC1rNS0yMDI1IHtcbiAgZmxleDogMSAwIGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmwtaGVhZGVyX2VsLXNraWxscy1ibG9jay0yMDI0IHtcbiAgZmxleDogMSAwIGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmwtYmFubmVyX19pbm5lci1jb2x1bW5zIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBAbWVkaWEgKC0tYnAtbWlkKSB7XG4gICAgJiB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIH1cbiAgfVxufVxuXG4ubC1iYW5uZXJfX2lubmVyLWxlZnQtY29sdW1uIHtcbiAgQG1lZGlhICgtLWJwLW1pZCkge1xuICAgICYge1xuICAgICAgICBmbGV4OiAxIDAgNDUlO1xuICAgICAgICB3aWR0aDogNDUlO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDJyZW07XG4gICAgfVxuICB9XG59XG5cbi5sLWJhbm5lcl9faW5uZXItbGVmdC1jb2x1bW4gcCB7XG4gIG1hcmdpbjogMXJlbSAwO1xuICAmOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG4gIEBtZWRpYSAoLS1icC1taWQpIHtcbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cbn1cblxuLmwtYmFubmVyX19pbm5lci1yaWdodC1jb2x1bW4ge1xuICB3aWR0aDogMTAwJTtcbiAgQG1lZGlhICgtLWJwLW1pZCkge1xuICAgICYge1xuICAgICAgZmxleDogMSAwIDQ1JTtcbiAgICAgIHdpZHRoOiA0NSU7XG4gICAgfVxuICB9XG59XG5cbi5sLW1haW4ge1xuICBwYWRkaW5nOiAxcmVtIDFyZW0gMnJlbTtcbn1cblxuLmwtY29udGVudCB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IHZhcigtLWNvbnRlbnQtd2lkdGgpO1xuICBtYXJnaW46IDFyZW0gYXV0bztcbn1cblxuLmwtY29udGVudF9nb2xkZW4tY29sdW1ucyB7XG4gIEBtZWRpYSAoLS1icC1taW4pIHtcbiAgICAmIHtcbiAgICAgIG1hcmdpbjogMnJlbSBhdXRvO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIH1cbiAgfVxuICBAbWVkaWEgKC0tYnAtbWlkKSB7XG4gICAgJiB7XG4gICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICAgIG1hcmdpbjogM3JlbSBhdXRvO1xuICAgIH1cbiAgfVxufVxuXG4ubC1jb250ZW50X2dvbGRlbi1jb2x1bW5zIC5jLWJ1dHRvbiB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5sLWNvbnRlbnRfX2dvbGRlbi1jb2x1bW4tYSB7XG4gICYgPiAqOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG4gIEBtZWRpYSAoLS1icC1taW4pIHtcbiAgICAmIHtcbiAgICAgIGZsZXg6IDEgMCA0NSU7XG4gICAgICB3aWR0aDogNDUlO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAycmVtO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxuICAgICYgPiAqOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG59XG5cbi5sLWNvbnRlbnRfX2dvbGRlbi1jb2x1bW4tYiB7XG4gIEBtZWRpYSAoLS1icC1taW4pIHtcbiAgICAmIHtcbiAgICAgIGZsZXg6IDEgMCA0NSU7XG4gICAgICB3aWR0aDogNDUlO1xuICAgIH1cbiAgICAmID4gKjpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cbiAgfVxufVxuXG4ubC1mb290ZXIge1xuICBtYXJnaW4tdG9wOiBhdXRvO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1vdXItcHJpbWFyeS1kYXJrLWdyYXkpO1xufVxuXG4ubC1saXN0LW9mLWJ1dHRvbnMge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLmwtbGlzdC1vZi1idXR0b25zIGxpIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmlzLWhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5sLWluZGV4LXdyYXBwZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1hY2NlbnQtbGFyZ2UpO1xuICBiYWNrZ3JvdW5kOlxuICAgIHVybCgnZm9ybXMvdGV4dHVyZS1yZWdmb3JtLXdoaXRlMTUuc3ZnJyksXG4gICAgbGluZWFyLWdyYWRpZW50KHZhcigtLWFjY2VudC1sYXJnZSkgMCUsIHZhcigtLWFjY2VudC1sYXJnZSkgMTguNzVyZW0sIHZhcigtLXdoaXRlKSAxOC43NXJlbSwgIHZhcigtLXdoaXRlKSAxMDAlKTtcbiAgbWluLWhlaWdodDogMjByZW07XG4gIGJhY2tncm91bmQtc2l6ZTpcbiAgICA2N3JlbSxcbiAgICAxMDAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDpcbiAgICByZXBlYXQteCxcbiAgICBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtYmxlbmQtbW9kZTpcbiAgICBvdmVybGF5LFxuICAgIG5vcm1hbDtcbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIEJBTk5FUlxuICpcbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmMtYmFubmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMSwxMSw3MywwLjgxKTsgLyogIzE1MEI0OSAqL1xuICBjb2xvcjogdmFyKC0td2hpdGUpO1xuICBwYWRkaW5nOiA0cmVtIDFyZW07XG59XG5cbi5jLWJhbm5lcl9vZGVsbC1ocy1lbGEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDQ3LDU1LDExOCwwLjgxKTsgLyogIzJmMzc3NiovXG4gIGJhY2tncm91bmQtaW1hZ2U6XG4gICAgbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDQ3LDU1LDExOCwwLjgxKSAwJSwgcmdiYSg0Nyw1NSwxMTgsMC44MSkgMTAwJSksIC8qIFNldCBhcyBhIGZsYXQsIG5vbi1jaGFuZ2luZyBncmFkaWVudCBpbiBvcmRlciB0byBsYXllciB0aGlzIGNvbG9yIGxpa2UgYW4gaW1hZ2UgKi9cbiAgICB1cmwoJ3B1YmxpY2F0aW9ucy9vZGVsbC1ocy1lbGFfYmFja2dyb3VuZDUwUS5qcGcnKTtcbiAgYmFja2dyb3VuZC1zaXplOlxuICAgIGNvdmVyLFxuICAgIGNvdmVyO1xuICBwYWRkaW5nOiA0cmVtIDFyZW0gNnJlbTsgLyogQmVlZnkgcGFkZGluZyBzaW5jZSB0aGVyZSBpcyBzbyBsaXR0bGUgaW4gdGhlIGJhbm5lci4gKi9cbn1cblxuLmMtYmFubmVyX2NhLWs4LW1hdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIxLDExLDczLDAuODEpOyAvKiAjMTUwQjQ5ICovXG4gIGJhY2tncm91bmQtaW1hZ2U6XG4gICAgbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDIxLDExLDczLDAuODEpIDAlLCByZ2JhKDIxLDExLDczLDAuODEpIDEwMCUpLCAvKiBTZXQgYXMgYSBmbGF0LCBub24tY2hhbmdpbmcgZ3JhZGllbnQgaW4gb3JkZXIgdG8gbGF5ZXIgdGhpcyBjb2xvciBsaWtlIGFuIGltYWdlICovXG4gICAgdXJsKCdwdWJsaWNhdGlvbnMvY2EtazgtbWF0aF9iYWNrZ3JvdW5kLmpwZycpO1xuICBiYWNrZ3JvdW5kLXNpemU6XG4gICAgY292ZXIsXG4gICAgY292ZXI7XG59XG4uYy1iYW5uZXJfb3VyNi04bWF0aCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjEsMTEsNzMsMC44MSk7IC8qICMxNTBCNDkgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTpcbiAgICBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMjEsMTEsNzMsMC44MSkgMCUsIHJnYmEoMjEsMTEsNzMsMC44MSkgMTAwJSksIC8qIFNldCBhcyBhIGZsYXQsIG5vbi1jaGFuZ2luZyBncmFkaWVudCBpbiBvcmRlciB0byBsYXllciB0aGlzIGNvbG9yIGxpa2UgYW4gaW1hZ2UgKi9cbiAgICB1cmwoJ3B1YmxpY2F0aW9ucy9vdXI2LThtYXRoX2JhY2tncm91bmQ1MFEuanBnJyk7XG4gIGJhY2tncm91bmQtc2l6ZTpcbiAgICBjb3ZlcixcbiAgICBjb3Zlcjtcbn1cblxuLmMtYmFubmVyX291ci1ocy1tYXRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMSwxMSw3MywwLjgxKTsgLyogIzE1MEI0OSAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOlxuICAgIGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgyMSwxMSw3MywwLjgxKSAwJSwgcmdiYSgyMSwxMSw3MywwLjgxKSAxMDAlKSwgLyogU2V0IGFzIGEgZmxhdCwgbm9uLWNoYW5naW5nIGdyYWRpZW50IGluIG9yZGVyIHRvIGxheWVyIHRoaXMgY29sb3IgbGlrZSBhbiBpbWFnZSAqL1xuICAgIHVybCgncHVibGljYXRpb25zL291ci1ocy1tYXRoLWFnYV9iYWNrZ3JvdW5kMjVRLmpwZycpO1xuICBiYWNrZ3JvdW5kLXNpemU6XG4gICAgY292ZXIsXG4gICAgY292ZXI7XG59XG5cbi5jLWJhbm5lcl9vdXItaHMtbWF0aC1waWxvdC1wbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjEsMTEsNzMsMC44MSk7IC8qICMxNTBCNDkgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTpcbiAgICBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMjEsMTEsNzMsMC44MSkgMCUsIHJnYmEoMjEsMTEsNzMsMC44MSkgMTAwJSksIC8qIFNldCBhcyBhIGZsYXQsIG5vbi1jaGFuZ2luZyBncmFkaWVudCBpbiBvcmRlciB0byBsYXllciB0aGlzIGNvbG9yIGxpa2UgYW4gaW1hZ2UgKi9cbiAgICB1cmwoJ3B1YmxpY2F0aW9ucy9vdXItaHMtbWF0aC1NVlBQaWxvdF9MYW5kaW5nUGFnZV9JbWFnZTUwUS5qcGcnKTtcbiAgYmFja2dyb3VuZC1zaXplOlxuICAgIGNvdmVyLFxuICAgIGNvdmVyO1xufVxuXG4uYy1iYW5uZXJfb3VyLWhzLW1hdGgtbmMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIxLDExLDczLDAuODEpOyAvKiAjMTUwQjQ5ICovXG4gIGJhY2tncm91bmQtaW1hZ2U6XG4gICAgbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDIxLDExLDczLDAuODEpIDAlLCByZ2JhKDIxLDExLDczLDAuODEpIDEwMCUpLCAvKiBTZXQgYXMgYSBmbGF0LCBub24tY2hhbmdpbmcgZ3JhZGllbnQgaW4gb3JkZXIgdG8gbGF5ZXIgdGhpcyBjb2xvciBsaWtlIGFuIGltYWdlICovXG4gICAgdXJsKCdwdWJsaWNhdGlvbnMvb3VyLWhzLW1hdGgtbmNfYmFja2dyb3VuZDI1US5qcGcnKTtcbiAgYmFja2dyb3VuZC1zaXplOlxuICAgIGNvdmVyLFxuICAgIGNvdmVyO1xufVxuXG4uYy1iYW5uZXJfb3VyLWs1LW1hdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIxLDExLDczLDAuODEpOyAvKiAjMTUwQjQ5ICovXG4gIGJhY2tncm91bmQtaW1hZ2U6XG4gICAgbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDIxLDExLDczLDAuODEpIDAlLCByZ2JhKDIxLDExLDczLDAuODEpIDEwMCUpLCAvKiBTZXQgYXMgYSBmbGF0LCBub24tY2hhbmdpbmcgZ3JhZGllbnQgaW4gb3JkZXIgdG8gbGF5ZXIgdGhpcyBjb2xvciBsaWtlIGFuIGltYWdlICovXG4gICAgdXJsKCdwdWJsaWNhdGlvbnMvb3VybWF0aC1rNV9iYWNrZ3JvdW5kX29wdGltaXplZC5zdmcnKTtcbiAgYmFja2dyb3VuZC1zaXplOlxuICAgIGNvdmVyLFxuICAgIGNvdmVyO1xufVxuXG4uYy1iYW5uZXJfb3VyLXBrNS1tYXRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMSwxMSw3MywwLjgxKTsgLyogIzE1MEI0OSAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOlxuICAgIGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgyMSwxMSw3MywwLjgxKSAwJSwgcmdiYSgyMSwxMSw3MywwLjgxKSAxMDAlKSwgLyogU2V0IGFzIGEgZmxhdCwgbm9uLWNoYW5naW5nIGdyYWRpZW50IGluIG9yZGVyIHRvIGxheWVyIHRoaXMgY29sb3IgbGlrZSBhbiBpbWFnZSAqL1xuICAgIHVybCgncHVibGljYXRpb25zL3BrNS1tYXRoLXBpbG90X2JhY2tncm91bmQuanBnJyk7XG4gIGJhY2tncm91bmQtc2l6ZTpcbiAgICBjb3ZlcixcbiAgICBjb3Zlcjtcbn1cblxuLmMtYmFubmVyX2s4LW1hdGgtcGlsb3QtcGwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIxLDExLDczLDAuODEpOyAvKiAjMTUwQjQ5ICovXG4gIGJhY2tncm91bmQtaW1hZ2U6XG4gICAgbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDIxLDExLDczLDAuODEpIDAlLCByZ2JhKDIxLDExLDczLDAuODEpIDEwMCUpLCAvKiBTZXQgYXMgYSBmbGF0LCBub24tY2hhbmdpbmcgZ3JhZGllbnQgaW4gb3JkZXIgdG8gbGF5ZXIgdGhpcyBjb2xvciBsaWtlIGFuIGltYWdlICovXG4gICAgdXJsKCdwdWJsaWNhdGlvbnMvb3VybWF0aC1rNV9iYWNrZ3JvdW5kX29wdGltaXplZC5zdmcnKTtcbiAgYmFja2dyb3VuZC1zaXplOlxuICAgIGNvdmVyLFxuICAgIGNvdmVyO1xufVxuXG4uYy1iYW5uZXJfYm9va3dvcm1zIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxNyw2NSw2NSwwLjgxKTsgLyogIzExNDE0MSAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOlxuICAgIGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgxNyw2NSw2NSwwLjgxKSAwJSwgcmdiYSgxNyw2NSw2NSwwLjgxKSAxMDAlKSwgLyogU2V0IGFzIGEgZmxhdCwgbm9uLWNoYW5naW5nIGdyYWRpZW50IGluIG9yZGVyIHRvIGxheWVyIHRoaXMgY29sb3IgbGlrZSBhbiBpbWFnZSAqL1xuICAgIHVybCgncHVibGljYXRpb25zL2Jvb2t3b3Jtc19iYWNrZ3JvdW5kNTBRXzIwMjIuanBnJyk7XG4gIGJhY2tncm91bmQtc2l6ZTpcbiAgICBjb3ZlcixcbiAgICBjb3Zlcjtcbn1cblxuLmMtYmFubmVyX2Jvb2t3b3Jtcy1waWxvdC1wbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTcsNjUsNjUsMC44MSk7IC8qICMxMTQxNDEgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTpcbiAgICBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMTcsNjUsNjUsMC44MSkgMCUsIHJnYmEoMTcsNjUsNjUsMC44MSkgMTAwJSksIC8qIFNldCBhcyBhIGZsYXQsIG5vbi1jaGFuZ2luZyBncmFkaWVudCBpbiBvcmRlciB0byBsYXllciB0aGlzIGNvbG9yIGxpa2UgYW4gaW1hZ2UgKi9cbiAgICB1cmwoJ3B1YmxpY2F0aW9ucy9ib29rd29ybXMtcGlsb3QtcGwtbGFuZGluZy1wYWdlLWJhY2tncm91bmQ1MFEuanBnJyk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOlxuICAgIGNvdmVyLFxuICAgIGNvdmVyO1xufVxuXG4uYy1iYW5uZXJfYnctZGkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13b3Jtc3kpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ3B1YmxpY2F0aW9ucy9idy1wbF9iYWNrZ3JvdW5kNTBRLmpwZycpO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjb2xvcjogdmFyKC0tdGV4dCk7XG4gIGJveC1zaGFkb3c6XG4gICAgaW5zZXQgMCAuMTI1cmVtIDAgMCB2YXIoLS13b3Jtc3kpLFxuICAgIGluc2V0IDAgLTAuMTI1cmVtIDAgMCB2YXIoLS13b3Jtc3kpO1xufVxuXG4uYy1iYW5uZXJfYnctcGwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13b3Jtc3kpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ3B1YmxpY2F0aW9ucy9idy1wbF9iYWNrZ3JvdW5kNTBRLmpwZycpO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjb2xvcjogdmFyKC0tdGV4dCk7XG4gIGJveC1zaGFkb3c6XG4gICAgaW5zZXQgMCAuMTI1cmVtIDAgMCB2YXIoLS13b3Jtc3kpLFxuICAgIGluc2V0IDAgLTAuMTI1cmVtIDAgMCB2YXIoLS13b3Jtc3kpO1xufVxuXG4uYy1iYW5uZXJfZWwtazgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10ZXh0LCByZ2IoNjksNTMsNTQpKTtcbiAgYmFja2dyb3VuZC1pbWFnZTpcbiAgICBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoNjksNTMsNTQsMC44NSkgMCUsIHJnYmEoNjksNTMsNTQsMC44NSkgMTAwJSksIC8qIFNldCBhcyBhIGZsYXQsIG5vbi1jaGFuZ2luZyBncmFkaWVudCBpbiBvcmRlciB0byBsYXllciB0aGlzIGNvbG9yIGxpa2UgYW4gaW1hZ2UgLSBDb2xvcnMgaW4gZ3JhZGllbnQgYXJlIFJHQkEgZXF1aXZhbGVudHMgb2YgdmFyKC0tdGV4dCkgKyA4NSUgQWxwaGEgKi9cbiAgICB1cmwoJ3B1YmxpY2F0aW9ucy9lbC1rOF9iYWNrZ3JvdW5kNTBRLmpwZycpO1xuICBiYWNrZ3JvdW5kLXNpemU6XG4gICAgY292ZXIsXG4gICAgY292ZXI7XG4gIGJhY2tncm91bmQtYmxlbmQtbW9kZTpcbiAgICBub3JtYWwsXG4gICAgbm9ybWFsO1xufVxuXG4uYy1iYW5uZXJfZWwtazUtMjAyNSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRleHQsIHJnYig2OSw1Myw1NCkpO1xuICBiYWNrZ3JvdW5kLWltYWdlOlxuICAgIGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSg2OSw1Myw1NCwwLjg1KSAwJSwgcmdiYSg2OSw1Myw1NCwwLjg1KSAxMDAlKSwgLyogU2V0IGFzIGEgZmxhdCwgbm9uLWNoYW5naW5nIGdyYWRpZW50IGluIG9yZGVyIHRvIGxheWVyIHRoaXMgY29sb3IgbGlrZSBhbiBpbWFnZSAtIENvbG9ycyBpbiBncmFkaWVudCBhcmUgUkdCQSBlcXVpdmFsZW50cyBvZiB2YXIoLS10ZXh0KSArIDg1JSBBbHBoYSAqL1xuICAgIHVybCgncHVibGljYXRpb25zL2VsLWs1LTIwMjVfYmFja2dyb3VuZC5qcGcnKTtcbiAgYmFja2dyb3VuZC1zaXplOlxuICAgIGNvdmVyLFxuICAgIGNvdmVyO1xuICBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6XG4gICAgbm9ybWFsLFxuICAgIG5vcm1hbDtcbn1cblxuLmMtYmFubmVyX2VsLXBpbG90LXBsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGV4dCwgcmdiKDY5LDUzLDU0KSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6XG4gICAgbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDY5LDUzLDU0LDAuODUpIDAlLCByZ2JhKDY5LDUzLDU0LDAuODUpIDEwMCUpLCAvKiBTZXQgYXMgYSBmbGF0LCBub24tY2hhbmdpbmcgZ3JhZGllbnQgaW4gb3JkZXIgdG8gbGF5ZXIgdGhpcyBjb2xvciBsaWtlIGFuIGltYWdlIC0gQ29sb3JzIGluIGdyYWRpZW50IGFyZSBSR0JBIGVxdWl2YWxlbnRzIG9mIHZhcigtLXRleHQpICsgODUlIEFscGhhICovXG4gICAgdXJsKCdwdWJsaWNhdGlvbnMvZWwtazhfYmFja2dyb3VuZDUwUS5qcGcnKTtcbiAgYmFja2dyb3VuZC1zaXplOlxuICAgIGNvdmVyLFxuICAgIGNvdmVyO1xuICBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6XG4gICAgbm9ybWFsLFxuICAgIG5vcm1hbDtcbn1cblxuLmMtYmFubmVyX2VsLXNraWxscy1ibG9jay0yMDI0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGV4dCwgcmdiKDY5LDUzLDU0KSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6XG4gICAgbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDY5LDUzLDU0LDAuODUpIDAlLCByZ2JhKDY5LDUzLDU0LDAuODUpIDEwMCUpLCAvKiBTZXQgYXMgYSBmbGF0LCBub24tY2hhbmdpbmcgZ3JhZGllbnQgaW4gb3JkZXIgdG8gbGF5ZXIgdGhpcyBjb2xvciBsaWtlIGFuIGltYWdlIC0gQ29sb3JzIGluIGdyYWRpZW50IGFyZSBSR0JBIGVxdWl2YWxlbnRzIG9mIHZhcigtLXRleHQpICsgODUlIEFscGhhICovXG4gICAgdXJsKCdwdWJsaWNhdGlvbnMvZWwtc2tpbGxzLWJsb2NrLTIwMjQtYmFja2dyb3VuZC5qcGcnKTtcbiAgYmFja2dyb3VuZC1zaXplOlxuICAgIGNvdmVyLFxuICAgIGNvdmVyO1xuICBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6XG4gICAgbm9ybWFsLFxuICAgIG5vcm1hbDtcbn1cblxuLmMtYmFubmVyIFtjbGFzc149XCJoZWRcIl0ge1xuICBjb2xvcjogdmFyKC0td2hpdGUpO1xuICBtYXJnaW4tdG9wOiAwO1xufVxuXG4uYy1iYW5uZXJfX2lubmVyIHtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIG1heC13aWR0aDogdmFyKC0tY29udGVudC13aWR0aCk7XG59XG5cbi5jLWJhbm5lcl9fZGVrIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5LWRpc3BsYXkpO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IHZhcigtLWdhbW1hKTtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbn1cblxuLmMtYmFubmVyX19kZWsgYSB7XG4gIGNvbG9yOiB2YXIoLS13aGl0ZSk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWxpZ2h0LWdyYXkpO1xufVxuXG4uYy1iYW5uZXJfX2RlayBhOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS13aGl0ZSk7XG59XG5cbi5jLWJhbm5lcl9faGVkIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5LWRpc3BsYXkpO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IHZhcigtLWFscGhhKTtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbi5jLWJhbm5lcl9idy1wbCAuYy1iYW5uZXJfX2hlZCB7XG4gIGNvbG9yOiB2YXIoLS13b3Jtc3ktYWEpO1xufVxuXG4uYy1iYW5uZXJfX2xlZGUgYSxcbi5jLWJhbm5lcl9fZmluZXByaW50IGEge1xuICBjb2xvcjogdmFyKC0td2hpdGUpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1saWdodC1ncmF5KTtcbn1cblxuLmMtYmFubmVyX19sZWRlIGE6aG92ZXIsXG4uYy1iYW5uZXJfX2ZpbmVwcmludCBhOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS13aGl0ZSk7XG59XG5cbi5jLWJhbm5lcl9fZm9ybSB7XG59XG5cbi5jLWJhbm5lcl9fY2hvb3Nlci1ncm91cDpmaXJzdC1vZi10eXBlIHtcbiAgbWFyZ2luLXRvcDogMy41cmVtO1xufVxuXG4uYy1iYW5uZXJfX2Nob29zZXItZ3JvdXAuaXMtZGlzYWJsZWQsXG4uYy1iYW5uZXJfX2Fja25vd2xlZGdtZW50LmlzLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogLjQ7XG59XG5cbi5jLWJhbm5lcl9fY2hvb3Nlci1ncm91cC5pcy1kaXNhYmxlZCAuYy1idXR0b25fb3V0bGluZS1yZXZlcnNlOmZvY3VzLFxuLmMtYmFubmVyX19jaG9vc2VyLWdyb3VwLmlzLWRpc2FibGVkIC5jLWJ1dHRvbl9vdXRsaW5lLXJldmVyc2U6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1saWdodC1ncmF5KTtcbiAgY29sb3I6IHZhcigtLWxpZ2h0LWdyYXkpO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qIENvbnRhaW5lciBmb3IgYSBjaGVja2JveCArIGxhYmVsIHBhaXIgKi9cbi5jLWJhbm5lcl9fYWNrbm93bGVkZ21lbnQge1xuICBtYXJnaW4tdG9wOiAxcmVtO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICBnYXA6IDAuNWVtO1xufVxuXG4uYy1iYW5uZXJfX2xhYmVsIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogT2ZmLXNjcmVlbiByYWRpbyBidXR0b24gc3R5bGVzIGFuZCBjb250ZXh0cyAqL1xuXG4uYy1iYW5uZXJfX3JhZGlvIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMTByZW07XG59XG5cbi5jLWJhbm5lcl9fcmFkaW86Zm9jdXMtdmlzaWJsZSArIC5jLWJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6XG4gICAgaW5zZXQgMCAwIDAgMC4xNWVtIHZhcigtLWFhLW9yYW5nZSksXG4gICAgaW5zZXQgMCAwIDAgMC4zZW0gI2ZmZjtcbn1cblxuLmMtYmFubmVyX19yYWRpbzpjaGVja2VkICsgLmMtYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdmFyKC0td2hpdGUpO1xuICBjb2xvcjogdmFyKC0tYWNjZW50KTtcbn1cblxuLyogQERlc2lnbmVyczogVGhpcyBpcyBhIHNwZWNpYWwgY2FzZSBmb3IgdGhlIFBLNSBNYXRoIFBpbG90LCB3aGVyZSB3ZSBoYXZlIGdyYWRlIFBLIGRpc2FibGVkIG9uIGluaXRpYWwgbGF1bmNoLiAqL1xuLmMtYmFubmVyX19yYWRpb1tkYXRhLXBlcm1hbmVudGx5LWRpc2FibGVkXSArIC5jLWJ1dHRvbiB7XG4gIGNvbG9yOiB2YXIoLS1saWdodC1ncmF5KTtcbiAgb3BhY2l0eTogMC42NTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgYmFja2dyb3VuZC1pbWFnZTogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICA0NWRlZyxcbiAgICAjZmZmNCxcbiAgICAjZmZmNCAwLjA4ZW0sXG4gICAgdHJhbnNwYXJlbnQgMC4wOGVtLFxuICAgIHRyYW5zcGFyZW50IDAuNWVtXG4gICk7XG59XG5cbi8qIENoZWNrYm94IHN0eWxlcyBhbmQgY29udGV4dHMgKi9cblxuLmMtYmFubmVyX19jaGVja2JveDpmb2N1cy12aXNpYmxlICsgLmMtYmFubmVyX19sYWJlbCB7XG4gIGJveC1zaGFkb3c6XG4gICAgMCAwIDAgMC4xNWVtICNmZmYsXG4gICAgMCAwIDAgMC4zZW0gdmFyKC0tYWEtb3JhbmdlKTtcbn1cblxuLyogU3VibWl0IGJ1dHRvbiBzdHlsZXMgYW5kIGNvbnRleHRzICovXG5cbi5jLWJhbm5lcl9fc3VibWl0IHtcbiAgbWFyZ2luLXRvcDogMnJlbTtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbi5jLWJhbm5lcl9fc3VibWl0ID4gYTpmb2N1cy12aXNpYmxlIHtcbiAgYm94LXNoYWRvdzpcbiAgICBpbnNldCAwIDAgMCAwLjE1ZW0gdmFyKC0tYWEtb3JhbmdlKSxcbiAgICBpbnNldCAwIDAgMCAwLjNlbSAjZmZmO1xufVxuXG4uYy1iYW5uZXJfX2ZpbmVwcmludCB7XG4gIG1hcmdpbi10b3A6IDFyZW07XG4gIGZvbnQtc2l6ZTogLjc1cmVtO1xufVxuXG4vKiBUaGUgZm9sbG93aW5nIGNvbnRhaW5pbmcgZWxlbWVudHMgYXJlIHVzZWQgaW5zdGVhZCBvZiBhIGZvcm0gdG8gY29udGFpbiB0aGUgZ3JhZGUgY2hvaWNlcyB3aGVuIHRoZSBvcHRpb25zIG1heSBzaW1wbHkgYmUgbGlua3MgaW5zdGVhZCBvZiBpbnB1dCBmaWVsZHMuICovXG5cbi5jLWJhbm5lcl9fY291cnNlLWNob2ljZXMgLmMtYnV0dG9uIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBtYXJnaW46IC41cmVtIGF1dG87XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogOXJlbTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLmMtYmFubmVyX19jb3Vyc2UtY2hvaWNlcyAuYy1idXR0b246Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAxLjI1cmVtO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMzc1cHgpIHtcblxuICAuYy1iYW5uZXJfX2NvdXJzZS1jaG9pY2VzIHtcbiAgICAtLW1heC13aWR0aDogMjguNXJlbTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBtYXgtd2lkdGg6IHZhcigtLW1heC13aWR0aCk7IC8qIGNvbnN0cmFpbiB0aGUgd2lkdGggb2YgdGhlIG9wdGlvbiBjb250YWluZXIsIHByZXZlbnRpbmcgYXdrd2FyZCB3cmFwcyAqL1xuICAgICYuYy1iYW5uZXJfX2NvdXJzZS1jaG9pY2VzX2NhLWs4IHtcbiAgICAgIC0tbWF4LXdpZHRoOiAzMHJlbTtcbiAgICB9XG4gIH1cblxuICAuYy1iYW5uZXJfX2NvdXJzZS1jaG9pY2VzIC5jLWJ1dHRvbixcbiAgLmMtYmFubmVyX19jb3Vyc2UtY2hvaWNlcyAuYy1idXR0b246Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IC4yNXJlbTtcbiAgICBmbGV4OiAwIDAgOHJlbTtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IC43NXJlbTtcbiAgfVxuXG59XG5cbi5jLWJhbm5lcl9fY3RhIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5LWRpc3BsYXkpO1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogdmFyKC0td2hpdGUpO1xuICBtYXJnaW4tdG9wOiAycmVtO1xuICBmb250LXNpemU6IHZhcigtLWdhbW1hKTtcbn1cblxuLmMtYmFubmVyX19jdGFfYWx0IHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5LXRleHQpO1xuICBmb250LXNpemU6IHZhcigtLWVwc2lsb24pO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAzNzVweCkge1xuICAuYy1iYW5uZXJfX2N0YSBiciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4uYy1iYW5uZXJfX2ltZyB7XG4gIGRpc3BsYXk6ICBibG9jaztcbiAgbWF4LXdpZHRoOiA4MCU7XG4gIG1hcmdpbi1sZWZ0OiAgYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4uYy1iYW5uZXJfX3ZpZGVvLXdyYXBwZXIge1xuICBwYWRkaW5nOiA1Ni4yNSUgMCAwIDA7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJveC1zaGFkb3c6XG4gICAgLjEyNXJlbSAuMTI1cmVtIC4xMjVyZW0gMCByZ2JhKDAsIDAsIDAsIC4xMjUpLFxuICAgIDFweCAxcHggMCAwIHJnYmEoMCwgMCwgMCwgLjI1KTtcbiAgei1pbmRleDogMTA7XG59XG5cbi5jLWJhbm5lcl9fdmlkZW8tc291cmNlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBBTk5PVU5DRU1FTlRcbiAqXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5jLWFubm91bmNlbWVudCB7XG4gIGJhY2tncm91bmQ6ICMwMDg0NzA7XG4gIGNvbG9yOiB2YXIoLS13aGl0ZSk7XG4gIHBhZGRpbmc6IDAgMnJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBAbWVkaWEgKC0tYnAtbWlkKSB7XG4gICAgJiB7XG4gICAgICBmb250LXNpemU6IHZhcigtLXpldGEpO1xuICAgIH1cbiAgfVxuICBAbWVkaWEgKC0tYnAtbWVnYSkge1xuICAgICYge1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgIGxpbmVhci1ncmFkaWVudCg5MGRlZywgI2ZmZmZmZiAwJSwgI2ZmZmZmZiA0OS45NzUlLCAjMDA4NDcwIDUwJSwgIzAwODQ3MCAxMDAlKTtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICB9XG59XG5cbi5jLWFubm91bmNlbWVudCBbY2xhc3NePVwiaGVkXCJdIHtcbiAgY29sb3I6IHZhcigtLXdoaXRlKTtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxuLmMtYW5ub3VuY2VtZW50IGEge1xuICBjb2xvcjogdmFyKC0tbGlnaHQtZ3JheSk7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5jLWFubm91bmNlbWVudCBhOmhvdmVyLFxuLmMtYW5ub3VuY2VtZW50IGE6YWN0aXZlLFxuLmMtYW5ub3VuY2VtZW50IGE6dmlzaXRlZCB7XG4gIGNvbG9yOiB2YXIoLS13aGl0ZSk7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5jLWFubm91bmNlbWVudF9faW5uZXIge1xuICBtYXJnaW46IDAgYXV0bztcbiAgbWF4LXdpZHRoOiB2YXIoLS1jb250ZW50LXdpZHRoKTtcbiAgYmFja2dyb3VuZDogIzAwODQ3MDtcbiAgcGFkZGluZzogMS41cmVtIDA7XG59XG5cbi5jLWFubm91bmNlbWVudF9faW5uZXIgcCB7XG4gIG1hcmdpbjogMDtcbiAgQG1lZGlhICgtLWJwLW1lZ2EpIHtcbiAgICAmIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMnJlbTtcbiAgICB9XG4gIH1cbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIENUQSBTaWRlYmFyXG4gKiBBcHByb3ByaWF0ZSBmb3IgbXVsdGktY29sdW1uIGxheW91dHMgaW4gdGhlIGxhbmRpbmcgcGFnZSBtYWluIGNvbnRlbnQgYXJlYS5cbiAqXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5jLWN0YS1zaWRlYmFyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYm9yZGVyOiAuMTI1cmVtIHNvbGlkICNlYmViZWI7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1hcmdpbi10b3A6IDJyZW07XG4gICYgPiAqOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG4gICYgPiAqOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuICBAbWVkaWEgKC0tYnAtbWluKSB7XG4gICAgJiB7XG4gICAgICBtYXJnaW4tdG9wOiAtMXJlbTtcbiAgICAgIG1hcmdpbi1ib3R0b206IC0xLjEyNXJlbTtcbiAgICB9XG4gIH1cbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIERJUkVDVE9SWVxuICpcbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmMtZGlyZWN0b3J5IHtcbiAgbWF4LXdpZHRoOiB2YXIoLS1jb250ZW50LXdpZHRoKTtcbiAgbWFyZ2luOiBhdXRvO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4uYy1kaXJlY3RvcnlfX3NlcXVlbmNlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIG1hcmdpbjogMXJlbSBhdXRvO1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gIEBtZWRpYSAoLS1icC1taWQpIHtcbiAgICAmIHtcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgbWFyZ2luOiAycmVtIGF1dG87XG4gICAgfVxuICB9XG59XG5cbi5jLWRpcmVjdG9yeV9faGVkIHtcbiAgZm9udC1zaXplOiB2YXIoLS1nYW1tYSk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseS1kaXNwbGF5KTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luOiAwIDJyZW0gMS41cmVtIDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGZsZXg6IDEgMCAxMDAlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBAbWVkaWEgKC0tYnAtbWlkKSB7XG4gICAgJiB7XG4gICAgICBmbGV4OiAwIDEgYXV0bztcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIG1hcmdpbi1yaWdodDogM3JlbTtcbiAgICAgIGZvbnQtc2l6ZTogdmFyKC0tYmFzZSk7XG4gICAgICBtaW4td2lkdGg6IGF1dG87XG4gICAgfVxuICB9XG59XG5cbi5jLWRpcmVjdG9yeV9fbGlzdGluZyB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMCAycmVtIDFyZW0gMDtcbiAgZmxleDogMCAxIGF1dG87XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIEBtZWRpYSAoLS1icC1taWQpIHtcbiAgICAmIHtcbiAgICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAycmVtO1xuICAgIH1cbiAgfVxufVxuXG4uYy1kaXJlY3RvcnlfX3N1YmhlZCB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tYmFzZSk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseS1kaXNwbGF5KTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbn1cblxuLmMtZGlyZWN0b3J5X19zdWJsaXN0aW5nIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogRklHVVJFXG4gKlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uYy1maWd1cmUge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgQG1lZGlhICgtLWJwLW1pZCkge1xuICAgICYge1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICB9XG4gIH1cbn1cblxuLmMtZmlndXJlX192aWRlbyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWdyYXkpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aWR0aDogMTAwJTtcbiAgQG1lZGlhICgtLWJwLW1pZCkge1xuICAgICYge1xuICAgICAgZmxleDogMSAwIDYzJTtcbiAgICAgIHdpZHRoOiA2MyU7XG4gICAgfVxuICB9XG59XG5cbi5jLWZpZ3VyZV9fdmlkZW8td3JhcHBlciB7XG4gIHBhZGRpbmc6IDU2LjI1JSAwIDAgMDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmMtZmlndXJlX192aWRlby1zb3VyY2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLmMtZmlndXJlX19jYXB0aW9uIHtcbiAgZm9udC1zaXplOiB2YXIoLS1nYW1tYSk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseS1kaXNwbGF5KTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWFyZ2luOiAxcmVtIDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMCAwIDNyZW0gMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXgtd2lkdGg6IDIwZW07XG4gIEBtZWRpYSAoLS1icC1taWQpIHtcbiAgICAmIHtcbiAgICAgICAgcGFkZGluZzogMCAwIDAgM3JlbTtcbiAgICAgICAgZmxleDogMSAxIDM3JTtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG4gIH1cbn1cblxuLmMtZmlndXJlX19jYXB0aW9uOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICB3aWR0aDogMnJlbTtcbiAgaGVpZ2h0OiAycmVtO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW4tbGVmdDogLTFyZW07XG4gIGJvcmRlci10b3A6IDFyZW0gc29saWQgdmFyKC0tZ3JheSk7XG4gIGJvcmRlci1sZWZ0OiAxcmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6IDFyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDFyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gIEBtZWRpYSAoLS1icC1taWQpIHtcbiAgICAmIHtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgbWFyZ2luLXRvcDogLTFyZW07XG4gICAgICBib3JkZXItdG9wOiAxcmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLWxlZnQ6IDFyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItcmlnaHQ6IDFyZW0gc29saWQgdmFyKC0tZ3JheSk7XG4gICAgICBib3JkZXItYm90dG9tOiAxcmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIH1cbiAgfVxufVxuXG4uYy1maWd1cmVfX2xpc3Rpbmcge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDAgMCAxcmVtIDA7XG4gIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gIGZsZXg6IDAgMSAzMyU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIEBtZWRpYSAoLS1icC1taWQpIHtcbiAgICAmIHtcbiAgICAgIGZsZXg6IDEgMSAyNSU7XG4gICAgfVxuICB9XG59XG5cbi5jLWZpZ3VyZV9fc3ViaGVkIHtcbiAgZm9udC1zaXplOiB2YXIoLS1iYXNlKTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5LWRpc3BsYXkpO1xuICBmb250LXdlaWdodDogNzAwO1xuICBtYXJnaW46IDAgMCAxcmVtO1xuICBsaW5lLWhlaWdodDogMS4xO1xufVxuXG4uYy1maWd1cmVfX3N1Ymxpc3Rpbmcge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogQ09NUE9ORU5UOiBDVVJSSUNVTFVNIE5BVlxuICpcbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5jLW5hdi1jdXJyaWN1bHVtIHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHktdGV4dCk7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ1O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4uYy1uYXYtY3VycmljdWx1bV9faXRlbXMge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBoeXBoZW5zOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAgMCAwIDFyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWxpZ2h0LWdyYXkpO1xuICBAbWVkaWEgKC0tYnAtbmFubykge1xuICAgICYge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICB9XG4gIH1cbn1cblxuLmMtbmF2LWN1cnJpY3VsdW1fX2JyYW5kaW5nIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAuNjU2MjVlbSAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW46IDAgMCAwIDA7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgQG1lZGlhICgtLWJwLW1pZCkge1xuICAgICYge1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG4gIH1cbn1cblxuLyogRGVmYXVsdCBzdHlsaW5nIGZvciBhbGwgbG9nbyBlbGVtZW50cywgc2VlIHZhcmlhbnRzIGZvciBndWlkYW5jZSB3aGVuIGN1c3RvbWl6aW5nIGJhY2tncm91bmQgaW1hZ2VzLCB3aWR0aHMsIGV0Yy4gKi9cblxuLmMtbmF2LWN1cnJpY3VsdW1fX2xvZ28ge1xuICBmb250LXNpemU6IDFyZW07XG4gIGhlaWdodDogMi4yNXJlbTtcbiAgcGFkZGluZzogMDtcbiAgdGV4dC1pbmRlbnQ6IDEwMiU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBAbWVkaWEgKC0tYnAtbWlkKSB7XG4gICAgJiB7XG4gICAgICBib3JkZXItcmlnaHQ6IHNvbGlkIC4wNjI1cmVtIHZhcigtLXRleHQpO1xuICAgICAgbWFyZ2luOiAuODEyNXJlbSAwOyAvKiBBdCB0aGlzIGJyZWFrcG9pbnQsIGluY3JlYXNlIG1hcmdpbiBhbmQgZGVjcmVhc2UgaGVpZ2h0IHRvIGVuc3VyZSByaWdodCBib3JkZXIgaXMgcHJvcG9ydGlvbmFsIHRvIHRoYXQgaW4gdGhlIGxvY2t1cCAqL1xuICAgICAgaGVpZ2h0OiAyLjEyNXJlbTsgLyogQXQgdGhpcyBicmVha3BvaW50LCBpbmNyZWFzZSBtYXJnaW4gYW5kIGRlY3JlYXNlIGhlaWdodCB0byBlbnN1cmUgcmlnaHQgYm9yZGVyIGlzIHByb3BvcnRpb25hbCB0byB0aGF0IGluIHRoZSBsb2NrdXAgKi9cbiAgICB9XG4gIH1cbn1cblxuLyogTVMgTWF0aCAqL1xuXG4vKiBSZXBsYWNlIGxpbmsgd2l0aCBjdXJyaWN1bHVtIGxvZ28gYmFja2dyb3VuZC1pbWFnZSB3aGlsZSBrZWVwaW5nIHRoZSBsaW5rIGFuZCBpdHMgdGV4dCBhY2Nlc3NpYmxlICovXG5cbi5jLW5hdi1jdXJyaWN1bHVtX19sb2dvX291cjYtOG1hdGgsXG4uYy1uYXYtY3VycmljdWx1bV9fbG9nb19vdXI2LThtYXRoLW5jLFxuLmMtbmF2LWN1cnJpY3VsdW1fX2xvZ29fb3VyNi04bWF0aC10bixcbi5jLW5hdi1jdXJyaWN1bHVtX19sb2dvX291cjYtOG1hdGgtd3YsXG4uYy1uYXYtY3VycmljdWx1bV9fbG9nb19vdXI2LThtYXRoLXYxLFxuLmMtbmF2LWN1cnJpY3VsdW1fX2xvZ29fb3VyNi04bWF0aC12Myxcbi5jLW5hdi1jdXJyaWN1bHVtX19sb2dvX2NhLWs4LW1hdGgge1xuICB3aWR0aDogM3JlbTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCduYXYtY3VycmljdWx1bS9sb2dvcy9vdXItc3ltYm9sLW1zbWF0aC5zdmcnKTtcbiAgYmFja2dyb3VuZC1zaXplOiAxNC4zMTI1cmVtO1xuICAgIC8qIFNpbmNlIHRoaXMgaXMgYW4gT1VSIGJyYW5kZWQgcHJvZHVjdCwgdGhpcyB3aWR0aCBpcyBjYWxjdWxhdGVkIHRvIG1hdGNoIHRoZSBPVVIgTVMgTWF0aCBsb2NrdXAgdG8gdGhlIE9VUiBsb2dvIGluIHRoZSBnbG9iYWwgbmF2LiBGb3IgcHJvamVjdHMgd2l0aCBub24tT1VSIGJyYW5kZWQgbG9ja3VwcywgdGhpcyB3aWR0aCBtYXRjaCB0aGUgYXNwZWN0IHJhdGlvIG9mIHRoZSBsb2NrdXAgYXQgMi4yNXJlbSB0YWxsLiBTZWUgQm9va3dvcm1zLCBFTCBLLTUuICovXG4gIGJvcmRlci1yaWdodDogc29saWQgLjA2MjVyZW0gYmxhY2s7IC8qIGV4Y2VwdGlvbiBmb3IgTVMgTWF0aCwgc2hvdyByaWdodCBib3JkZXIgaW4gbmFycm93IHZpZXdwb3J0cyAqL1xufVxuXG4vKiBIUyBNYXRoICovXG5cbi8qIFJlcGxhY2UgbGluayB3aXRoIGN1cnJpY3VsdW0gbG9nbyBiYWNrZ3JvdW5kLWltYWdlIHdoaWxlIGtlZXBpbmcgdGhlIGxpbmsgYW5kIGl0cyB0ZXh0IGFjY2Vzc2libGUgKi9cblxuLmMtbmF2LWN1cnJpY3VsdW1fX2xvZ29fb3VyLWhzLW1hdGgsXG4uYy1uYXYtY3VycmljdWx1bV9fbG9nb19vdXItaHMtbWF0aC1uYyxcbi5jLW5hdi1jdXJyaWN1bHVtX19sb2dvX291ci1ocy1tYXRoLXRuLFxuLmMtbmF2LWN1cnJpY3VsdW1fX2xvZ29fb3VyLWhzLW1hdGgtcGlsb3QtcGwge1xuICB3aWR0aDogM3JlbTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCduYXYtY3VycmljdWx1bS9sb2dvcy9vdXItc3ltYm9sLWhzbWF0aC5zdmcnKTtcbiAgYmFja2dyb3VuZC1zaXplOiAxNC4zMTI1cmVtO1xuICAgIC8qIFNpbmNlIHRoaXMgaXMgYW4gT1VSIGJyYW5kZWQgcHJvZHVjdCwgdGhpcyB3aWR0aCBpcyBjYWxjdWxhdGVkIHRvIG1hdGNoIHRoZSBPVVIgSFMgTWF0aCBsb2NrdXAgdG8gdGhlIE9VUiBsb2dvIGluIHRoZSBnbG9iYWwgbmF2LiBGb3IgcHJvamVjdHMgd2l0aCBub24tT1VSIGJyYW5kZWQgbG9ja3VwcywgdGhpcyB3aWR0aCBtYXRjaCB0aGUgYXNwZWN0IHJhdGlvIG9mIHRoZSBsb2NrdXAgYXQgMi4yNXJlbSB0YWxsLiBTZWUgQm9va3dvcm1zLCBFTCBLLTUuICovXG4gIGJvcmRlci1yaWdodDogc29saWQgLjA2MjVyZW0gYmxhY2s7IC8qIGV4Y2VwdGlvbiBmb3IgSFMgTWF0aCwgc2hvdyByaWdodCBib3JkZXIgaW4gbmFycm93IHZpZXdwb3J0cyAqL1xufVxuXG4vKiBLNSBNYXRoICovXG5cbi8qIFJlcGxhY2UgbGluayB3aXRoIGN1cnJpY3VsdW0gbG9nbyBiYWNrZ3JvdW5kLWltYWdlIHdoaWxlIGtlZXBpbmcgdGhlIGxpbmsgYW5kIGl0cyB0ZXh0IGFjY2Vzc2libGUgKi9cblxuLmMtbmF2LWN1cnJpY3VsdW1fX2xvZ29fb3VyLWs1LW1hdGgsXG4uYy1uYXYtY3VycmljdWx1bV9fbG9nb19vdXItazUtbWF0aC10bixcbi5jLW5hdi1jdXJyaWN1bHVtX19sb2dvX2s4LW1hdGgtcGlsb3QtcGwge1xuICB3aWR0aDogM3JlbTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCduYXYtY3VycmljdWx1bS9sb2dvcy9vdXItc3ltYm9sLWs1bWF0aC5zdmcnKTtcbiAgYmFja2dyb3VuZC1zaXplOiAxNC4zMTI1cmVtO1xuICAgIC8qIFNpbmNlIHRoaXMgaXMgYW4gT1VSIGJyYW5kZWQgcHJvZHVjdCwgdGhpcyB3aWR0aCBpcyBjYWxjdWxhdGVkIHRvIG1hdGNoIHRoZSBPVVIgSzUgTWF0aCBsb2NrdXAgdG8gdGhlIE9VUiBsb2dvIGluIHRoZSBnbG9iYWwgbmF2LiBGb3IgcHJvamVjdHMgd2l0aCBub24tT1VSIGJyYW5kZWQgbG9ja3VwcywgdGhpcyB3aWR0aCBtYXRjaCB0aGUgYXNwZWN0IHJhdGlvIG9mIHRoZSBsb2NrdXAgYXQgMi4yNXJlbSB0YWxsLiBTZWUgQm9va3dvcm1zLCBFTCBLLTUuICovXG4gIGJvcmRlci1yaWdodDogc29saWQgLjA2MjVyZW0gYmxhY2s7IC8qIGV4Y2VwdGlvbiBmb3IgSzUgTWF0aCwgc2hvdyByaWdodCBib3JkZXIgaW4gbmFycm93IHZpZXdwb3J0cyAqL1xufVxuXG4vKiBPZGVsbCAqL1xuXG4vKiBTaG91bGQgYmUgdGhlIHNhbWUgYXBwcm9hY2ggYXMgd2UgdXNlZCBmb3IgSFMgTWF0aC4gKi9cblxuLmMtbmF2LWN1cnJpY3VsdW1fX2xvZ29fb2RlbGwtaHMtbGl0ZXJhY3kge1xuICB3aWR0aDogM3JlbTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCduYXYtY3VycmljdWx1bS9sb2dvcy9vdXItc3ltYm9sLW9kZWxsLnN2ZycpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDE0LjMxMjVyZW07XG4gIGJvcmRlci1yaWdodDogc29saWQgLjA2MjVyZW0gYmxhY2s7IC8qIHNob3cgcmlnaHQgYm9yZGVyIGluIG5hcnJvdyB2aWV3cG9ydHMgKi9cbn1cblxuLyogQm9va3dvcm1zICovXG5cbi8qIFJlcGxhY2UgbGluayB3aXRoIGN1cnJpY3VsdW0gbG9nbyBiYWNrZ3JvdW5kLWltYWdlIHdoaWxlIGtlZXBpbmcgdGhlIGxpbmsgYW5kIGl0cyB0ZXh0IGFjY2Vzc2libGUgKi9cblxuLmMtbmF2LWN1cnJpY3VsdW1fX2xvZ29fYm9va3dvcm1zLFxuLmMtbmF2LWN1cnJpY3VsdW1fX2xvZ29fYm9va3dvcm1zLWs1LFxuLmMtbmF2LWN1cnJpY3VsdW1fX2xvZ29fYm9va3dvcm1zLXBsLXZpZGVvcyxcbi5jLW5hdi1jdXJyaWN1bHVtX19sb2dvX2Jvb2t3b3Jtcy1waWxvdC1wbCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnbmF2LWN1cnJpY3VsdW0vbG9nb3MvYm9va3dvcm1zLWxvZ290eXBlLW9ubHkuc3ZnJyk7XG4gIGJhY2tncm91bmQtc2l6ZTogY2FsYygyLjI1cmVtICogOC42Mzg4ODg4ODg5KTsgLyogTWF0Y2ggQm9va3dvcm1zIGxvY2t1cCBhc3BlY3QgcmF0aW8gMzExIHggMzYgKi9cbiAgd2lkdGg6IGNhbGMoMi4yNXJlbSAqIDUuNjY2NjY2NjY2Nyk7IC8qIE1hdGNoIGFzcGVjdCByYXRpbyBvZiBCb29rd29ybXMgbG9nb3R5cGUgdG8gXCJwaXBlXCIgaW4gbG9ja3VwICgyMDQgeCAzNiksIHRoZXJlYnkgaGlkaW5nIHRoZSBwaXBlIGFuZCB0aGUgZGVzY3JpcHRpb24gdGV4dCB0byB0aGUgcmlnaHQgb2YgdGhlIHBpcGUgKi9cbiAgQG1lZGlhICgtLWJwLW1pZCkge1xuICAgICYge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCduYXYtY3VycmljdWx1bS9sb2dvcy9ib29rd29ybXMtbG9ja3VwLnN2ZycpO1xuICAgIH1cbiAgfVxufVxuXG4vKiBFTCBLLTUgKi9cblxuLyogUmVwbGFjZSBsaW5rIHdpdGggY3VycmljdWx1bSBsb2dvIGJhY2tncm91bmQtaW1hZ2Ugd2hpbGUga2VlcGluZyB0aGUgbGluayBhbmQgaXRzIHRleHQgYWNjZXNzaWJsZSAqL1xuXG4uYy1uYXYtY3VycmljdWx1bV9fbG9nb19lbCxcbi5jLW5hdi1jdXJyaWN1bHVtX19sb2dvX2VsLXBpbG90LXBsLFxuLmMtbmF2LWN1cnJpY3VsdW1fX2xvZ29fZWwtazUtMjAxNyxcbi5jLW5hdi1jdXJyaWN1bHVtX19sb2dvX2VsLW1zLTIwMTksXG4uYy1uYXYtY3VycmljdWx1bV9fbG9nb19lbC1za2lsbHMtYmxvY2stMjAyNCxcbi5jLW5hdi1jdXJyaWN1bHVtX19sb2dvX2VsLWs1LTIwMjUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ25hdi1jdXJyaWN1bHVtL2xvZ29zL2VsLWs4LWxvZ290eXBlLW9ubHkuc3ZnJyk7XG4gIGJhY2tncm91bmQtc2l6ZTogY2FsYygyLjI1cmVtICogNy4xOTQ0NDQ0NDQpOyAvKiBNYXRjaCBFTCBLLTUgbG9ja3VwIGFzcGVjdCByYXRpbyAyNTkgeCAzNiAqL1xuICB3aWR0aDogY2FsYygyLjI1cmVtICogNC42OTQ0NDQ0NDQ0KTsgLyogTWF0Y2ggYXNwZWN0IHJhdGlvIG9mIEVMIEstNSBsb2dvdHlwZSB0byBcInBpcGVcIiBpbiBsb2NrdXAgKDE2OSB4IDM2KSwgdGhlcmVieSBoaWRpbmcgdGhlIHBpcGUgYW5kIHRoZSBkZXNjcmlwdGlvbiB0ZXh0IHRvIHRoZSByaWdodCBvZiB0aGUgcGlwZSAqL1xuICBAbWVkaWEgKC0tYnAtbWlkKSB7XG4gICAgJiB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ25hdi1jdXJyaWN1bHVtL2xvZ29zL2VsLWs4LWxvY2t1cC5zdmcnKTtcbiAgICB9XG4gIH1cbn1cblxuLmMtbmF2LWN1cnJpY3VsdW1fX2xvZ29fcGs1LW1hdGgge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ25hdi1jdXJyaWN1bHVtL2xvZ29zL3BrNS1tYXRoLWxvZ28uc3ZnJyk7XG4gIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgd2lkdGg6IDNyZW07XG59XG5cbi8qIERlZmF1bHQgc2VjdGlvbiB0ZXh0IHN0eWxpbmcgKi9cblxuLmMtbmF2LWN1cnJpY3VsdW1fX3NlY3Rpb24tdGV4dCB7XG4gIGZvbnQtc2l6ZTogdmFyKC0temV0YSk7XG4gIGNvbG9yOiB2YXIoLS1vdXItcHJpbWFyeS1kYXJrLWdyYXkpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgQG1lZGlhICgtLWJwLW1pZCkge1xuICAgICYge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwYWRkaW5nOiAxLjM3NXJlbSAxLjVyZW0gMXJlbSAuOTI1cmVtO1xuICAgIH1cbiAgfVxufVxuXG4vKiBFeGNlcHRpb24gZm9yIEJvb2t3b3JtcyBESSAqL1xuXG4uYy1uYXYtY3VycmljdWx1bV9fc2VjdGlvbi10ZXh0X2Jvb2t3b3Jtcy1kaSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiBjYWxjKDEuMzc1cmVtIC0gLjY1NjI1ZW0pIDEuNXJlbSBjYWxjKDFyZW0gLSAuNjU2MjVlbSkgLjkyNXJlbTtcbiAgYm9yZGVyLWxlZnQ6IHNvbGlkIC4wNjI1cmVtIHZhcigtLXRleHQpO1xuICBAbWVkaWEgKC0tYnAtbWlkKSB7XG4gICAgJiB7XG4gICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgIHBhZGRpbmc6IDEuMzc1cmVtIDEuNXJlbSAxcmVtIC45MjVyZW07XG4gICAgfVxuICB9XG59XG5cbi5jLW5hdi1jdXJyaWN1bHVtX19zZWN0aW9uLXRleHRfYm9va3dvcm1zLWRpOjpiZWZvcmUge1xuICBjb250ZW50OiBhdHRyKGRhdGEtdGl0bGUtc2hvcnQpO1xuICBAbWVkaWEgKC0tYnAtbWljcm8pIHtcbiAgICAmIHtcbiAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS10aXRsZS1tZWRpdW0pO1xuICAgIH1cbiAgfVxuICBAbWVkaWEgKC0tYnAtbWlkKSB7XG4gICAgJiB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgIH1cbiAgfVxufVxuXG4uYy1uYXYtY3VycmljdWx1bV9fc2VjdGlvbi10ZXh0LXN3YXAge1xuICBkaXNwbGF5OiBub25lO1xuICBAbWVkaWEgKC0tYnAtbWlkKSB7XG4gICAgJiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgfVxuICB9XG59XG5cbi8qIEV4Y2VwdGlvbiBmb3IgSFMgTWF0aCwgSzUgTWF0aCwgTVMgTWF0aCwgJiBPZGVsbCBIUyBMaXRlcmFjeSAqL1xuXG4uYy1uYXYtY3VycmljdWx1bV9fc2VjdGlvbi10ZXh0X291ci1ocy1tYXRoLFxuLmMtbmF2LWN1cnJpY3VsdW1fX3NlY3Rpb24tdGV4dF9vdXItaHMtbWF0aC10bixcbi5jLW5hdi1jdXJyaWN1bHVtX19zZWN0aW9uLXRleHRfb3VyLWhzLW1hdGgtbmMsXG4uYy1uYXYtY3VycmljdWx1bV9fc2VjdGlvbi10ZXh0X291ci1rNS1tYXRoLFxuLmMtbmF2LWN1cnJpY3VsdW1fX3NlY3Rpb24tdGV4dF9vdXItazUtbWF0aC10bixcbi5jLW5hdi1jdXJyaWN1bHVtX19zZWN0aW9uLXRleHRfazgtbWF0aC1waWxvdC1wbCxcbi5jLW5hdi1jdXJyaWN1bHVtX19zZWN0aW9uLXRleHRfb3VyNi04bWF0aCxcbi5jLW5hdi1jdXJyaWN1bHVtX19zZWN0aW9uLXRleHRfb3VyNi04bWF0aC1uYyxcbi5jLW5hdi1jdXJyaWN1bHVtX19zZWN0aW9uLXRleHRfb3VyNi04bWF0aC10bixcbi5jLW5hdi1jdXJyaWN1bHVtX19zZWN0aW9uLXRleHRfb3VyNi04bWF0aC13dixcbi5jLW5hdi1jdXJyaWN1bHVtX19zZWN0aW9uLXRleHRfb3VyNi04bWF0aC12MSxcbi5jLW5hdi1jdXJyaWN1bHVtX19zZWN0aW9uLXRleHRfb3VyNi04bWF0aC12Myxcbi5jLW5hdi1jdXJyaWN1bHVtX19zZWN0aW9uLXRleHRfb2RlbGwtaHMtbGl0ZXJhY3ksXG4uYy1uYXYtY3VycmljdWx1bV9fc2VjdGlvbi10ZXh0X3BrNS1tYXRoIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IC41cmVtIDFyZW07XG4gIEBtZWRpYSAoLS1icC1taWQpIHtcbiAgICAmIHtcbiAgICAgIHBhZGRpbmc6IDFyZW0gMS41cmVtIDFyZW0gLjkyNXJlbTtcbiAgICB9XG4gIH1cbn1cblxuLmMtbmF2LWN1cnJpY3VsdW1fX3NlY3Rpb24tdGV4dC1zdWZmaXgge1xuICBkaXNwbGF5OiBub25lO1xuICBAbWVkaWEgKC0tYnAtbWljcm8pIHtcbiAgICAmIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG4gIH1cbn1cblxuLmMtbmF2LWN1cnJpY3VsdW1fX2l0ZW0ge1xuICBmb250LXNpemU6IHZhcigtLXpldGEpO1xuICBtYXJnaW46IDAgMCAwIC0xcmVtO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1ncmF5KTtcbiAgQG1lZGlhICgtLWJwLW5hbm8pIHtcbiAgICAmIHtcbiAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWdyYXkpO1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbiAgfVxufVxuXG4uYy1uYXYtY3VycmljdWx1bV9faXRlbS10aXRsZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXdlaWdodDogNTAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IC41cmVtIDFyZW07XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogdmFyKC0tb3VyLXByaW1hcnktZGFyay1ncmF5KTtcbiAgb3V0bGluZTogbm9uZTtcbiAgQG1lZGlhICgtLWJwLW5hbm8pIHtcbiAgICAmIHtcbiAgICAgIHBhZGRpbmc6IC41cmVtIDFyZW07XG4gICAgfVxuICB9XG4gIEBtZWRpYSAoLS1icC1taWQpIHtcbiAgICAmIHtcbiAgICAgIHBhZGRpbmc6IDFyZW0gMS4yNXJlbTtcbiAgICB9XG4gIH1cbn1cblxuLmMtbmF2LWN1cnJpY3VsdW1fX2l0ZW0tdGl0bGUuaXMtY3VycmVudCB7XG4gIGNvbG9yOiB2YXIoLS1vdXItZ2xvYmFsbmF2LW9yYW5nZSk7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiB2YXIoLS1vdXItZ2xvYmFsbmF2LW9yYW5nZSk7XG4gIH1cbn1cblxuLyogRU4vRVMgVG9nZ2xlICovXG5cbi5jLW5hdi1jdXJyaWN1bHVtX19pdGVtX2xvY2FsZSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmctbGVmdDogMi41cmVtO1xuICBiYWNrZ3JvdW5kOiB1cmwoJ25hdi1jdXJyaWN1bHVtL2dsb2JlLXNvbGlkLnN2ZycpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDEuMjVyZW07XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDFyZW0gY2VudGVyO1xuICBib3JkZXI6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuXG4uYy1uYXYtY3VycmljdWx1bV9fbGFiZWxfbG9jYWxlIHtcbiAgYm9yZGVyLXJpZ2h0OiAuMDYyNXJlbSBzb2xpZCB2YXIoLS1ncmF5KTtcbiAgcGFkZGluZzogLjI3NXJlbSAuMzc1cmVtIC4yNzVyZW0gLjQzNzVyZW07XG4gIG1hcmdpbjogLjdyZW0gMDtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IC4wNzVlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLmMtbmF2LWN1cnJpY3VsdW1fX2xhYmVsX2xvY2FsZTpmaXJzdC1jaGlsZCB7XG4gIHBhZGRpbmc6IC4yNzVyZW0gLjM3NXJlbTtcbn1cblxuLmMtbmF2LWN1cnJpY3VsdW1fX2xhYmVsX2xvY2FsZTpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICBwYWRkaW5nOiAuMjc1cmVtIDFyZW0gLjI3NXJlbSAuNDM3NXJlbTtcbn1cblxuLmMtbmF2LWN1cnJpY3VsdW1fX2xhYmVsX2xvY2FsZS5pcy1jdXJyZW50IHtcbiAgY29sb3I6IHZhcigtLW91ci1nbG9iYWxuYXYtb3JhbmdlKTtcbn1cblxuLyogSW5saW5lIE1lbnUgKi9cblxuLmMtbmF2LWN1cnJpY3VsdW1fX2l0ZW0tbWVudSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIEBtZWRpYSAoLS1icC1taWQpIHtcbiAgICAmIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMXJlbTtcbiAgICB9XG4gIH1cbn1cblxuLmMtbmF2LWN1cnJpY3VsdW1fX2l0ZW0tbWVudSA+IGxpIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xufVxuXG4uYy1uYXYtY3VycmljdWx1bV9faXRlbS1tZW51ID4gbGkgPiBhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAuNXJlbTtcbn1cblxuLmMtbmF2LWN1cnJpY3VsdW1fX2l0ZW0tbWVudSA+IGxpID4gYS5pcy1jdXJyZW50IHtcbiAgY29sb3I6IHZhcigtLW91ci1nbG9iYWxuYXYtb3JhbmdlKTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgJjpob3ZlciB7XG4gICAgY29sb3I6IHZhcigtLW91ci1nbG9iYWxuYXYtb3JhbmdlKTtcbiAgfVxufVxuIiwiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIENvbXBvbmVudDogUHVibGljYXRpb25zIEluZGV4IFN0eWxlc1xuICogQ29udGFpbnMvY29uc3RyYWlucy9jZW50ZXJzIHRoZSBjb250ZW50IGZvciBjdXJyaWN1bHVtXG4gKiBzZWxlY3Rpb24gcGFnZS4gTWF0Y2hlcyBSZWdpc3RyYXRpb24gQXBwIHBhZ2VzLlxuICpcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmMtaW5kZXgge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHktdGV4dC1hbHQpO1xuICBtYXJnaW46IGF1dG8gYXV0byA1cmVtO1xuICBwYWRkaW5nOiAyLjYyNXJlbSAxcmVtIDA7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDQyLjhyZW07XG59XG5cbi5jLWluZGV4ICoge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4vKlxuICAtLSBoZWRcbiAgUHJlc3VtYWJseSBhbiBIMS4gQXBwZWFycyBvdmVyIHRoZSB0ZXh0dXJlZFxuICBtb3RpZiB0aGF0IHNpZ25pZmllcyB0aGUgUmVnaXN0cmF0aW9uIEFwcCBzY3JlZW5zLlxuKi9cblxuLmMtaW5kZXhfX2hlZCB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseS1kaXNwbGF5KTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zaXplOiB2YXIoLS1hbHBoYSk7XG4gIG1hcmdpbjogMCBhdXRvIDIuNjI1cmVtO1xuICBsaW5lLWhlaWdodDogMi43NXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogdmFyKC0td2hpdGUpO1xufVxuXG4vKlxuICAtLSBpbm5lclxuICBJbm5lciBjb250YWluZXIgZm9yIHB1YmxpY2F0aW9uIG9wdGlvbnMuXG4gIEFwcGVhcnMgYXMgYSDigJxmbG9hdGluZ+KAnSB3aGl0ZSBib3guXG4qL1xuXG4uYy1pbmRleF9faW5uZXIge1xuICBtYXJnaW46IDIuNXJlbSBhdXRvO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13aGl0ZSk7XG4gIHBhZGRpbmc6IDFyZW0gMS41cmVtIDIuNzVyZW07XG4gIGJveC1zaGFkb3c6IC4yNXJlbSAuM3JlbSAuNXJlbSAwIHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLypcbiAgLS0gU3ViaGVkXG4gIFByZXN1bWFibHkgYW4gSDIuIEludGVudGlvbmFsbHkgaGFzIHRoZSBzYW1lIGFwcGVhcmFuY2UgYXNcbiAgYSBSZWdpc3RyYXRpb24gUGFnZSBMZWdlbmQuXG4qL1xuXG4uYy1pbmRleF9fc3ViaGVkIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5LWRpc3BsYXkpO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IHZhcigtLWdhbW1hKTtcbiAgY29sb3I6IHZhcigtLXRleHQpO1xuICBsaW5lLWhlaWdodDogMS4yO1xufVxuXG4vKlxuICAtLSBJbmZvIGdyb3Vwc1xuICBMYWlkIG91dCBpZGVudGljYWxseSB0byB0aGUgZm9ybSBncm91cHNcbiAgZm91bmQgaW4gdGhlIFJlZ2lzdHJhdGlvbiBBcHAuXG4qL1xuXG4uYy1pbmRleF9faW5mb2dyb3VwIHtcbiAgbWFyZ2luOiAxcmVtIGF1dG87XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDIzLjVyZW07XG4gIGNsZWFyOiBsZWZ0OyAvKiBJIGtub3chIEEgY2xlYXJpbmcgZmxvYXRzIGZsYXNoYmFjayEgQ2xlYXJzIHRoZSBmbG9hdGVkIGxlZ2VuZCBlbGVtZW50IHdoZW4gaXTigJlzIHByZXNlbnQuICovXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuICAmOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiAxLjI1cmVtO1xuICB9XG59XG5cbi8qXG4gIC0tIFN1YmplY3QgZ3JvdXBzXG4gIFN0eWxlcyBmb3Igc3ViamVjdCBncm91cGluZ3Mgb2YgY3VycmljdWx1bSBvcHRpb25zLlxuKi9cblxuLmMtaW5kZXhfX3N1YmplY3Rncm91cCB7XG4gIG1hcmdpbjogMnJlbSBhdXRvIDFyZW07XG4gIGJvcmRlcjogLjEyNXJlbSBzb2xpZCB2YXIoLS1vdXItcHJpbWFyeS15ZWxsb3cpO1xuICBib3JkZXItcmFkaXVzOiAuNHJlbTtcbiAgcGFkZGluZzogLjVyZW0gMXJlbTtcbiAgbWF4LXdpZHRoOiAzMC41cmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5jLWluZGV4X19zdWJqZWN0bGFiZWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDEuMjVyZW07XG4gIHRvcDogLS41NzVlbTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwIC4yNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMXJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0td2hpdGUpO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXNpemU6IHZhcigtLWRlbHRhKTtcbiAgbGV0dGVyLXNwYWNpbmc6IC4wM2VtO1xufVxuXG4vKlxuICAtLSBub3RlIHN0eWxlXG4gIE9uZSBzdGVwIHNtYWxsZXIgdGhhbiBkZWZhdWx0IHRleHQgc2l6ZS5cbiovXG5cbi5jLWluZGV4X19ub3RlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjb2xvcjogdmFyKC0tdGV4dCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZXBzaWxvbik7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG59XG5cbi5jLWluZGV4X19ub3RlIGEge1xuICBjb2xvcjogdmFyKC0tYWNjZW50KTtcbiAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiB2YXIoLS1hY2NlbnQtbGFyZ2UpO1xuICAmOmxpbmssXG4gICY6dmlzaXRlZCB7XG4gICAgY29sb3I6IHZhcigtLWFjY2VudCk7XG4gICAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiB2YXIoLS1hY2NlbnQtbGFyZ2UpO1xuICB9XG4gICY6aG92ZXIsXG4gICY6YWN0aXZlLFxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogdmFyKC0tYWNjZW50LWxhcmdlKTtcbiAgICB0ZXh0LWRlY29yYXRpb24tY29sb3I6IHZhcigtLWFjY2VudC1sYXJnZSk7XG4gIH1cbn1cblxuXG4vKlxuICAtLSBDdXJyaWN1bHVtIENob2ljZVxuICBDb25qb2luZWQgVGV4dCArIFwiR29cIiBDVEFcbiovXG5cbi5jLWluZGV4X19jdXJyaWN1bHVtLWNob2ljZSB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tb3VyLXByaW1hcnkteWVsbG93KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbGlnaHQtZ3JheSk7XG4gIGJvcmRlci1yYWRpdXM6IC40cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dCk7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tdG9wOiAxLjI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtO1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogMS4xO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAwIDAgMCAxcmVtO1xuICBAbWVkaWEgKC0tYnAtbWluLXh4eCkge1xuICAgICYge1xuICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOztcbiAgICB9XG4gIH1cbn1cblxuLmMtaW5kZXhfX2N1cnJpY3VsdW0tY2hvaWNlOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLWFjY2VudCk7XG59XG5cbi5jLWluZGV4X19jdXJyaWN1bHVtLWNob2ljZTo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXItdG9wOiB0cmFuc3BhcmVudCBzb2xpZCAuNXJlbTtcbiAgYm9yZGVyLXJpZ2h0OiB0cmFuc3BhcmVudCBzb2xpZCAuNzVyZW07XG4gIGJvcmRlci1ib3R0b206IHRyYW5zcGFyZW50IHNvbGlkIC41cmVtO1xuICBib3JkZXItbGVmdDogdmFyKC0tdGV4dCkgc29saWQgLjc1cmVtO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xufVxuXG4uYy1pbmRleF9fY3VycmljdWx1bS1jaG9pY2U6aG92ZXI6OmFmdGVyIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWFjY2VudC1sYXJnZSk7XG59XG5cbi5jLWluZGV4X19jdXJyaWN1bHVtLXRpdGxlIHtcbiAgcGFkZGluZzogLjc1cmVtIDA7XG4gIG1hcmdpbi1yaWdodDogLjc1ZW07XG4gIGZsZXg6IDAgMSBhdXRvO1xuICBsaW5lLWhlaWdodDogMS4zcmVtO1xuICBAbWVkaWEgKC0tYnAtbWluLXh4eCkge1xuICAgICYge1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIGZsZXg6IDAgMCAwO1xuICAgIH1cbiAgfVxufVxuXG4uYy1pbmRleF9fY3VycmljdWx1bS1lZGl0aW9uIHtcbiAgZm9udC1zaXplOiB2YXIoLS16ZXRhKTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IC4wMmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBwYWRkaW5nOiAwIDFyZW0gMCAuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuM3JlbTtcbiAgY29sb3I6IHZhcigtLWFjY2VudCk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG4uYy1pbmRleF9fZWRpdGlvbi1zZXBhcmF0b3Ige1xuICBjb2xvcjogdmFyKC0tb3VyLXByaW1hcnkteWVsbG93KTtcbiAgYm9yZGVyLXN0eWxlOiBkYXNoZWQ7XG59XG5cbi5jLWluZGV4X19jdXJyaWN1bHVtLW5ldyB7XG4gIHBhZGRpbmc6IDAgMCAwIDAuMjVyZW07XG4gIGNvbG9yOiB2YXIoLS1hY2NlbnQtYWx0KTtcbn1cblxuLypcbiAgLS0gU3ViamVjdCBncm91cCBoZWxwZXIgY2xhc3NcbiAgICBGb3IgYWxpZ25pbmcgZWxlbWVudHMgb3V0c2lkZSBgLmMtaW5kZXgtc3ViamVjdGdyb3VwJyB3aXRoXG4gICAgdGhhdCBzdWJqZWN0IGdyb3VwLlxuKi9cblxuLmMtaW5kZXggLmZvci1zdWJqZWN0Z3JvdXAge1xuICBtYXgtd2lkdGg6IDMwLjVyZW07XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogQ09NUE9ORU5UOiBPVVIgR0xPQkFMIEZPT1RFUlxuICogSW5jbHVkZWQgaW4gdGhpcyBkb2N1bWVudDogVmFyaWFibGVzLCBCYXNlLCBTdHlsZXNcbiAqXG4gKiBUaGUgaW5zdGFuY2Ugb2YgdGhlIGdsb2JhbCBmb290ZXIgZW1iZWRkZWQgd2l0aGluXG4gKiB0aGUgcmVnIGFwcCBpcyBjb25zaWRlcmVkIGNhbm9uaWNhbC5cbiAqXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qXG4qIENPTVBPTkVOVDogT1VSIEdMT0JBTCBGT09URVIgLS0gUk9CT1RPIEZPTlRTXG4qXG4qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIElmIEdvb2dsZSBGb250cyBhcmUgYWxyZWFkeSBpbXBvcnRlZCBpbnRvIHRoZSBhcHAsIGFwcGVuZCBcIlJvYm90bzo1MDBcIiBpZiBuZWNlc3NhcnkuICovXG4vKiBJZiBHb29nbGUgRm9udHMgYXJlIG5vdCBhbHJlYWR5IGltcG9ydGVkLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBpbXBvcnQgc3RhdGVtZW50IG9yIChiZXR0ZXIpIGFkZCB0aGUgZXF1aXZhbGVudCB0byB0aGUgPGhlYWQ+IG9mIHRoZSBhcHAuICovXG4vKiBAaW1wb3J0IHVybCgnaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVJvYm90bzo1MDAmc3Vic2V0PWxhdGluJyk7ICovXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBDT01QT05FTlQ6IE9VUiBHTE9CQUwgRk9PVEVSIC0tIFZBUklBQkxFU1xuICpcbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIENvbG9yIHBhbGV0dGUgKi9cblxuOnJvb3Qge1xuXG4vKiBDb2xvcnMgd2l0aCBcIi1vdXItXCIgaW4gdGhlaXIgbmFtZSBhcmUgc291cmNlZCBmcm9tIHRoZSBPVVIgYnJhbmQgZ3VpZGVsaW5lcyAqL1xuXG4tLWZvb3Rlci1vdXItcHJpbWFyeS1kYXJrLWdyYXk6ICAgIHJnYig2OSw1Myw1NCk7ICAgIC8qICM0NTM1MzYgKi9cbi0tZm9vdGVyLXdoaXRlOiAgICAgICAgICAgICAgICAgICAgI2ZmZmZmZjtcblxuLypcbiAgVHlwb2dyYXBoaWMgc2l6ZXNcblxuICBGb250IHNpemVzIGJhc2VkIG9uIG1pbm9yIHRoaXJkICgxLjIpIGh0dHA6Ly93d3cubW9kdWxhcnNjYWxlLmNvbS8/MSZlbSYxLjJcblxuKi9cblxuLS1mb290ZXItZm9udC1iYXNlLW1pbjogMTZweDtcbi0tZm9vdGVyLWZvbnQtYmFzZS1tYXg6IDIwcHg7XG4tLWZvb3Rlci1mbHVpZC1lbTogICAgICBjYWxjKDE2cHggKyAoMjAgLSAxNikgKiAoKDEwMHZ3IC0gMzIwcHgpLygxMzIwIC0gMzIwKSkpO1xuLS1mb290ZXItemV0YTogICAgICAgICAgLjgzM2VtO1xuLS1mb290ZXItZXRhOiAgICAgICAgICAgLjc1ZW07XG5cbn1cblxuLyogQ3VzdG9tIE1lZGlhIERlY2xhcmF0aW9ucyBmb3IgQnJlYWtwb2ludHMgKi9cblxuQGN1c3RvbS1tZWRpYSAtLWZvb3Rlci1icC1uYW5vLW1pbnVzIChtYXgtd2lkdGg6IDMxOXB4KTtcbkBjdXN0b20tbWVkaWEgLS1mb290ZXItYnAtbmFubyAobWluLXdpZHRoOiAzMjBweCk7XG5AY3VzdG9tLW1lZGlhIC0tZm9vdGVyLWJwLW1pY3JvLW1pbnVzIChtYXgtd2lkdGg6IDQxMHB4KTtcbkBjdXN0b20tbWVkaWEgLS1mb290ZXItYnAtbWljcm8gKG1pbi13aWR0aDogNDExcHgpO1xuQGN1c3RvbS1tZWRpYSAtLWZvb3Rlci1icC1taW4tbWludXMgKG1heC13aWR0aDogNTM2cHgpO1xuQGN1c3RvbS1tZWRpYSAtLWZvb3Rlci1icC1taW4gKG1pbi13aWR0aDogNTM3cHgpO1xuQGN1c3RvbS1tZWRpYSAtLWZvb3Rlci1icC1taWQtbWludXMgKG1heC13aWR0aDogMTAyM3B4KTtcbkBjdXN0b20tbWVkaWEgLS1mb290ZXItYnAtbWlkIChtaW4td2lkdGg6IDEwMjRweCk7XG5AY3VzdG9tLW1lZGlhIC0tZm9vdGVyLWJwLW1heC1taW51cyAobWF4LXdpZHRoOiAxMzE5cHgpO1xuQGN1c3RvbS1tZWRpYSAtLWZvb3Rlci1icC1tYXggKG1pbi13aWR0aDogMTMyMHB4KTtcblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIENPTVBPTkVOVDogT1VSIEdMT0JBTCBGT09URVIgLS0gQkFTRVxuICpcbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5jLWZvb3RlciB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9vdGVyLWZvbnQtYmFzZS1taW4pO1xuICBmb250LWZhbWlseTogJ1JvYm90bycsICdUcmVidWNoZXQgTVMnLCBUcmVidWNoZXQsIFRhaG9tYSwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplbGVnaWJpbGl0eTsgLyogQ2FuIGNhdXNlIHByb2JsZW1zIGluIHNvbWUgdmVyc2lvbnMgb2YgQW5kcm9pZCAqL1xuICAgdGV4dC1zaXplLWFkanVzdDogbm9uZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIGZvbnQtZGlzcGxheTogc3dhcDsgLyogaHR0cHM6Ly93d3cuemFjaGxlYXQuY29tL3dlYi9jb21wcmVoZW5zaXZlLXdlYmZvbnRzLyNmb250LWRpc3BsYXkgKi9cbiAgbGluZS1oZWlnaHQ6IDEuNDU7XG4gIG1hcmdpbi10b3A6IGF1dG87XG5cbiAgLyogRmx1aWQgZnJvbSAxNnB4IHRvIDIwcHggYmV0d2VlbiBicmVha3BvaW50cyAqL1xuXG4gIEBtZWRpYSAoLS1mb290ZXItYnAtbWluKSB7XG4gICAgJiB7XG4gICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9vdGVyLWZvbnQtYmFzZS1taW4pOyAvKiAxNnB4IGF0IDMyMHB4ICovIC8qIHB4IGZhbGxiYWNrIGZvciBicm93c2VycyB0aGF0IGRvbuKAmXQgZ2V0IGNhbGMgKi9cbiAgICAgZm9udC1zaXplOiBjYWxjKDE2cHggKyAoMjAgLSAxNikgKiAoKDEwMHZ3IC0gMzIwcHgpLygxMzIwIC0gMzIwKSkpO1xuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSAoLS1mb290ZXItYnAtbWF4KSB7XG4gICAgJiB7XG4gICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9vdGVyLWZvbnQtYmFzZS1tYXgpOyAvKiAyMHB4IGF0IDEzMjBweCAqL1xuICAgIH1cbiAgfVxufVxuXG4uYy1mb290ZXIgKiB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICY6OmJlZm9yZSwgJjo6YWZ0ZXIge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKlxuKiBDT01QT05FTlQ6IE9VUiBHTE9CQUwgRk9PVEVSIC0tIE9WRVJSSURFU1xuKiBPdmVycmlkZSBvdmVyYXJjaGluZyBwcm9wZXJ0aWVzIGluIGN1cnJpY3VsdW0gZ2F0ZXdheSB0aGVtZVxuKlxuKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uYy1mb290ZXIgbGkge1xuICBwYWRkaW5nLWxlZnQ6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG4uYy1mb290ZXIgbGk6OmJlZm9yZSxcbi5jLWZvb3RlciBsaTo6YmVmb3JlIHtcbiAgY29udGVudDogbm9ybWFsO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qXG4qIENPTVBPTkVOVDogT1VSIEdMT0JBTCBGT09URVIgLS0gU1RZTEVTXG4qXG4qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5jLWZvb3RlciB7XG4gIHBhZGRpbmc6IC43NWVtIDFlbSA0ZW07IC8qIEZhdCBwYWRkaW5nLWJvdHRvbSBhY2NvbW1vZGF0ZXMgZmVlZGJhY2sgd2lkZ2V0ICovXG4gIGNvbG9yOiByZ2JhKDEwMCUsMTAwJSwxMDAlLC42NSk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWZvb3Rlci1vdXItcHJpbWFyeS1kYXJrLWdyYXkpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIEBtZWRpYSAoLS1mb290ZXItYnAtbWljcm8pIHtcbiAgICAmIHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxuICB9XG59XG5cbi5jLWZvb3RlciBhIHtcbiAgIGNvbG9yOiByZ2JhKDEwMCUsMTAwJSwxMDAlLC44KTtcbiAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4uYy1mb290ZXIgYTpob3ZlciB7XG4gICBjb2xvcjogdmFyKC0tZm9vdGVyLXdoaXRlKTtcbiAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4uYy1mb290ZXJfX25hdnMge1xuICBmb250LXNpemU6IHZhcigtLWZvb3Rlci16ZXRhKTtcbiAgQG1lZGlhICgtLWZvb3Rlci1icC1taWNybykge1xuICAgICYge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuICB9XG59XG5cbi5jLWZvb3Rlcl9fbmF2LWNvcnBvcmF0ZSB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogY2FsYyguNSAqIHZhcigtLWZvb3Rlci1mbHVpZC1lbSkpIDAgMDtcbiAgcGFkZGluZzogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIEBtZWRpYSAoLS1mb290ZXItYnAtbWljcm8pIHtcbiAgICAmIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgfVxuICB9XG59XG5cbi5jLWZvb3Rlcl9fbmF2LXNvY2lhbCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogdmFyKC0tZm9vdGVyLWZsdWlkLWVtKSAwIDA7XG4gIHBhZGRpbmc6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBAbWVkaWEgKC0tZm9vdGVyLWJwLW1pY3JvKSB7XG4gICAgJiB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIH1cbiAgfVxufVxuXG4uYy1mb290ZXJfX291ci1sb2dvIHtcbiAgaGVpZ2h0OiBjYWxjKDIgKiB2YXIoLS1mb290ZXItZmx1aWQtZW0pKTtcbiAgd2lkdGg6IGF1dG87XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IGNhbGMoLjI1ICogdmFyKC0tZm9vdGVyLWZsdWlkLWVtKSkgYXV0byAwO1xuICBAbWVkaWEgKC0tZm9vdGVyLWJwLW1pY3JvKSB7XG4gICAgJiB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0b3A6IGNhbGMoLjEyNSAqIHZhcigtLWZvb3Rlci1mbHVpZC1lbSkpO1xuICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1mb290ZXItZmx1aWQtZW0pO1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG4gIH1cbiAgQG1lZGlhICgtLWZvb3Rlci1icC1tYXgpIHtcbiAgICAmIHtcbiAgICAgIHRvcDogY2FsYyguMTI1ICogdmFyKC0tZm9vdGVyLWZvbnQtYmFzZS1tYXgpKTtcbiAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tZm9vdGVyLWZvbnQtYmFzZS1tYXgpO1xuICAgICAgaGVpZ2h0OiBjYWxjKDIgKiB2YXIoLS1mb290ZXItZm9udC1iYXNlLW1heCkpO1xuICAgIH1cbiAgfVxufVxuXG4uYy1mb290ZXJfX25hdi1jb3Jwb3JhdGUgbGksXG4uYy1mb290ZXJfX25hdi1zb2NpYWwgbGkge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uYy1mb290ZXJfX25hdi1jb3Jwb3JhdGUgbGkgKyBsaSB7XG4gIG1hcmdpbi1sZWZ0OiB2YXIoLS1mb290ZXItZm9udC1iYXNlLW1heCk7XG4gIEBtZWRpYSAoLS1mb290ZXItYnAtbWF4KSB7XG4gICAgJiB7XG4gICAgICBtYXJnaW4tbGVmdDogdmFyKC0tZm9vdGVyLWZvbnQtYmFzZS1tYXgpO1xuICAgIH1cbiAgfVxufVxuXG4uYy1mb290ZXJfX25hdi1zb2NpYWwgbGkgKyBsaSB7XG4gIG1hcmdpbi1sZWZ0OiB2YXIoLS1mb290ZXItZm9udC1iYXNlLW1heCk7XG4gIEBtZWRpYSAoLS1mb290ZXItYnAtbWF4KSB7XG4gICAgJiB7XG4gICAgICBtYXJnaW4tbGVmdDogdmFyKC0tZm9vdGVyLWZvbnQtYmFzZS1tYXgpO1xuICAgIH1cbiAgfVxufVxuXG4uYy1mb290ZXJfX3NvY2lhbC1pY29uIHtcbiAgaGVpZ2h0OiAxZW07XG4gIHdpZHRoOiBhdXRvO1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmMtZm9vdGVyX19jb3B5cmlnaHRzIHtcbiAgZm9udC1zaXplOiB2YXIoLS1mb290ZXItZXRhKTtcbiAgbWFyZ2luLXRvcDogdmFyKC0tZm9vdGVyLWZsdWlkLWVtKTtcbiAgcGFkZGluZy10b3A6IHZhcigtLWZvb3Rlci1mbHVpZC1lbSk7XG4gIGJvcmRlci10b3A6IHNvbGlkIDFweCByZ2JhKDEwMCUsMTAwJSwxMDAlLC4zNSk7XG4gIEBtZWRpYSAoLS1mb290ZXItYnAtbWljcm8pIHtcbiAgICAmIHtcbiAgICAgIG1hcmdpbi10b3A6IGNhbGMoLjc1ICogdmFyKC0tZm9vdGVyLWZsdWlkLWVtKSk7XG4gICAgfVxuICB9XG4gIEBtZWRpYSAoLS1mb290ZXItYnAtbWF4KSB7XG4gICAgJiB7XG4gICAgICBwYWRkaW5nLXRvcDogdmFyKC0tZm9vdGVyLWZvbnQtYmFzZS1tYXgpO1xuICAgICAgbWFyZ2luLXRvcDogY2FsYyguNzUgKiB2YXIoLS1mb290ZXItZm9udC1iYXNlLW1heCkpO1xuICAgIH1cbiAgfVxufVxuXG4uYy1mb290ZXJfX2NvcHlyaWdodHM6b25seS1jaGlsZCxcbi5jLWZvb3Rlcl9fY29weXJpZ2h0czpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIGJvcmRlcjogbm9uZTtcbiAgcGFkZGluZy10b3A6IGNhbGMoLjI1ICogdmFyKC0tZm9vdGVyLWZsdWlkLWVtKSk7XG4gIEBtZWRpYSAoLS1mb290ZXItYnAtbWF4KSB7XG4gICAgJiB7XG4gICAgICBwYWRkaW5nLXRvcDogY2FsYyguMjUgKiB2YXIoLS1mb290ZXItZm9udC1iYXNlLW1heCkpO1xuICAgIH1cbiAgfVxufVxuXG4uYy1mb290ZXJfX2J1aWxkIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogQ09NUE9ORU5UOiBPVVIgTU9EQUwgTUVTU0FHRVxuICogSW50ZW5kZWQgZm9yIG9ubHkgdmVyeSBzaG9ydCBtZXNzYWdlcy4gTWVzc2FnZSBib3ggZ3Jvd3Mgd2l0aCBjb250ZW50LFxuICogc28gdGhpcyBjb21wb25lbnQgaXMgbm90IGFwcHJvcHJpYXRlIGZvciBjb250ZW50IHRoYXQgbWlnaHQgZXhjZWVkXG4gKiB0aGUgaGVpZ2h0IG9mIHRoZSB2aWV3cG9ydCBvbiBhbnkgZGV2aWNlLlxuICpcbiAqIEJvbnVzISBCb2R5IHByb3BlcnRpZXMgdG8gcHJldmVudCBzY3JvbGxpbmcgd2hlbiB0aGUgbW9kYWwgaXMgb3Blbi5cbiAqXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qXG4qIENPTVBPTkVOVDogT1VSIE1PREFMIE1FU1NBR0UgLS0gUk9CT1RPIEZPTlRTXG4qXG4qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIFJvYm90byBhdCA0MDAgd2VpZ2h0IGlzIG5lY2Vzc2FyeSBmb3IgdGhlIHR5cG9ncmFwaHkgaW4gdGhpcyBjb21wb25lbnQuICovXG4vKiBSb2JvdG8gYXQgNTAwIHdlaWdodCBpcyBuZWNlc3NhcnkgZm9yIHRoZSBidXR0b24gaW4gdGhpcyBjb21wb25lbnQuICovXG4vKiBJZiBHb29nbGUgRm9udHMgYXJlIGFscmVhZHkgaW1wb3J0ZWQgaW50byB0aGUgYXBwLCBhcHBlbmQgXCJSb2JvdG86NDAwLDUwMCw3MDBcIiBpZiBuZWNlc3NhcnkuICovXG4vKiBJZiBHb29nbGUgRm9udHMgYXJlIG5vdCBhbHJlYWR5IGltcG9ydGVkLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBpbXBvcnQgc3RhdGVtZW50IG9yIChiZXR0ZXIpIGFkZFxudGhlIGVxdWl2YWxlbnQgdG8gdGhlIDxoZWFkPiBvZiB0aGUgYXBwLiAqL1xuLyogQGltcG9ydCB1cmwoJ2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1Sb2JvdG86NDAwLDUwMCZzdWJzZXQ9bGF0aW4nKTsgKi9cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIENPTVBPTkVOVDogT1VSIE1PREFMIE1FU1NBR0UgLS0gVkFSSUFCTEVTXG4gKlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuOnJvb3Qge1xuXG4gIC8qIENvbG9yIHBhbGV0dGUgKi9cblxuICAtLW1vZGFsLXRlYWw6ICAgICAgICMwMDg0NzA7XG4gIC0tbW9kYWwtbGlnaHQtZ3JheTogI2ViZWJlYjsgLyogOCUgYmxhY2sgKi9cbiAgLS1tb2RhbC13aGl0ZTogICAgICAjZmZmZmZmO1xuXG4gIC8qXG4gICAgVHlwb2dyYXBoaWMgc2l6ZXNcblxuICAqL1xuXG4gIC0tbW9kYWwtZm9udC1iYXNlLW1pbjogMTZweDtcbiAgLS1tb2RhbC1mb250LWJhc2UtbWF4OiAyMHB4O1xuICAtLW1vZGFsLWZsdWlkLWVtOiAgICAgIGNhbGMoMTZweCArICgyMCAtIDE2KSAqICgoMTAwdncgLSAzMjBweCkvKDEzMjAgLSAzMjApKSk7XG4gIC0tbW9kYWwtYmV0YTogICAgICAgICAgMS43ODRlbTtcbiAgLS1tb2RhbC1nYW1tYTogICAgICAgICAxLjJlbTtcbiAgLS1tb2RhbC1kZWx0YTogICAgICAgICAxZW07XG4gIC0tbW9kYWwtemV0YTogICAgICAgICAgLjg3NWVtO1xuICAtLW1vZGFsLWV0YTogICAgICAgICAgIC43NWVtO1xuXG59XG5cbi8qIFZpZXdwb3J0IFdpZHRoIFZhcmlhYmxlcyAqL1xuXG46cm9vdCB7XG5cbiAgLS1tb2RhbC1icC1taW46ICAgICAgICAgIDMyMHB4O1xuICAtLW1vZGFsLWJwLW1lZ2E6ICAgICAgICAgMTAyNHB4O1xuICAtLW1vZGFsLWJwLW1heDogICAgICAgICAgMTMyMHB4O1xuXG59XG5cbi8qIEN1c3RvbSBNZWRpYSBEZWNsYXJhdGlvbnMgZm9yIEJyZWFrcG9pbnRzICovXG5cbkBjdXN0b20tbWVkaWEgLS1tb2RhbC1icC1taW4gKG1pbi13aWR0aDogMzIwcHgpO1xuQGN1c3RvbS1tZWRpYSAtLW1vZGFsLWJwLW1lZ2EgKG1pbi13aWR0aDogMTAyNHB4KTtcbkBjdXN0b20tbWVkaWEgLS1tb2RhbC1icC1tYXggKG1pbi13aWR0aDogMTMyMHB4KTtcblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKlxuKiBDT01QT05FTlQ6IE9VUiBNT0RBTCBNRVNTQUdFIC0tIFRZUE9HUkFQSFlcbipcbiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmMtbW9kYWwge1xuICBmb250LXNpemU6IHZhcigtLW1vZGFsLWZvbnQtYmFzZS1taW4pO1xuICBmb250LWZhbWlseTogJ1JvYm90bycsICdUcmVidWNoZXQgTVMnLCBUcmVidWNoZXQsIFRhaG9tYSwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIGZvbnQtZGlzcGxheTogc3dhcDsgLyogaHR0cHM6Ly93d3cuemFjaGxlYXQuY29tL3dlYi9jb21wcmVoZW5zaXZlLXdlYmZvbnRzLyNmb250LWRpc3BsYXkgKi9cbiAgbGluZS1oZWlnaHQ6IDEuMzU7XG5cbiAgLyogRmx1aWQgZnJvbSAxNnB4IHRvIDIwcHggYmV0d2VlbiBicmVha3BvaW50cyAqL1xuXG4gIC8qIEZsdWlkIHR5cGUgc2l6ZSBmcm9tIDE2cHggdG8gMjBweCBiZXR3ZWVuIC0tbW9kYWwtYnAtbWluIGFuZCAtLW1vZGFsLWJwLW1heCBicmVha3BvaW50cyAqL1xuXG4gIEBtZWRpYSAoLS1tb2RhbC1icC1taW4pIHtcbiAgICAmIHtcbiAgICAgIGZvbnQtc2l6ZTogdmFyKC0tbW9kYWwtZm9udC1iYXNlLW1pbik7IC8qIDE2cHggYXQgMzIwcHggKi9cbiAgICAgIGZvbnQtc2l6ZTogY2FsYygxNnB4ICsgKDIwIC0gMTYpICogKCgxMDB2dyAtIDMyMHB4KS8oMTMyMCAtIDMyMCkpKTtcbiAgICB9XG4gIH1cblxuICBAbWVkaWEgKC0tbW9kYWwtYnAtbWF4KSB7XG4gICAgJiB7XG4gICAgICBmb250LXNpemU6IHZhcigtLW1vZGFsLWZvbnQtYmFzZS1tYXgpOyAvKiAyMHB4IGF0IDEzMjBweCAqL1xuICAgIH1cbiAgfVxuXG4gIC8qIEZsdWlkIGxpbmUtaGVpZ2h0IGZyb20gMS4zNSB0byAxLjQ1IGJldHdlZW4gLS1tb2RhbC1icC1taW4gYW5kIC0tbW9kYWwtYnAtbWF4IGJyZWFrcG9pbnRzICovXG5cbiAgQG1lZGlhICgtLW1vZGFsLWJwLW1pbikge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM1OyAvKiAxLjM1IGF0IDMyMHB4ICovXG4gICAgbGluZS1oZWlnaHQ6IGNhbGMoMS4zNWVtICsgKDEuNDUgLSAxLjM1KSAqICgoMTAwdncgLSAzMjBweCkvKDEzMjAgLSAzMjApKSk7XG4gIH1cblxuICBAbWVkaWEgKC0tbW9kYWwtYnAtbWF4KSB7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDU7IC8qIDEuNDUgYXQgMTMyMHB4ICovXG4gIH1cblxuXG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbipcbiogQ09NUE9ORU5UOiBPVVIgTU9EQUwgTUVTU0FHRSAtLSBTVFlMRVNcbipcbiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuYm9keS5sLWhhcy1tb2RhbCB7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbn1cblxuLmMtbW9kYWwge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uYy1tb2RhbCAqIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuYm9keS5sLWhhcy1tb2RhbCAuYy1tb2RhbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICB6LWluZGV4OiA4Njc1MzEwO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjg1KSAhaW1wb3J0YW50O1xufVxuXG4uYy1tb2RhbF9fY29udGVudCB7XG4gIG1hcmdpbi1sZWZ0OiA1dnc7XG4gIG1hcmdpbi1yaWdodDogNXZ3O1xuICBwYWRkaW5nOiAyZW07XG4gIHotaW5kZXg6IDg2NzUzMTA7XG4gIGJhY2tncm91bmQ6IHZhcigtLW1vZGFsLXRlYWwpO1xuICBjb2xvcjogdmFyKC0tbW9kYWwtd2hpdGUpO1xuICBib3gtc2hhZG93OiAwIDI1cHggMTAwcHggcmdiYSgwLCAwLCAwLCAwLjUpO1xuICBib3JkZXItcmFkaXVzOiAuMjVlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbkBtZWRpYSAoLS1tb2RhbC1icC1tZWdhKSB7XG4gIC5jLW1vZGFsX19jb250ZW50IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDE1dnc7XG4gICAgbWFyZ2luLWxlZnQ6IDE1dnc7XG4gIH1cbn1cblxuLmMtbW9kYWwgcCB7XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuYS5jLW1vZGFsX19jbG9zZSxcbmEuYy1tb2RhbF9fY2xvc2U6bGluayxcbmEuYy1tb2RhbF9fY2xvc2U6dmlzaXRlZFxuYS5jLW1vZGFsX19jbG9zZTphY3RpdmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdG9wOiBjYWxjKC4xMjUgKiB2YXIoLS1tb2RhbC1mbHVpZC1lbSkpO1xuICByaWdodDogY2FsYyguNSAqIHZhcigtLW1vZGFsLWZsdWlkLWVtKSk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tbW9kYWwtYmV0YSk7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBjb2xvcjogdmFyKC0tbW9kYWwtd2hpdGUpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG9wYWNpdHk6IC44O1xuICB0cmFuc2l0aW9uOiBub25lO1xufVxuXG5hLmMtbW9kYWxfX2Nsb3NlOmZvY3VzLFxuYS5jLW1vZGFsX19jbG9zZTpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG4gIGNvbG9yOiB2YXIoLS1tb2RhbC13aGl0ZSk7XG59XG5cbmEuYy1tb2RhbF9fY2FuY2VsLFxuYS5jLW1vZGFsX19jYW5jZWw6bGluayxcbmEuYy1tb2RhbF9fY2FuY2VsOnZpc2l0ZWRcbmEuYy1tb2RhbF9fY2FuY2VsOmFjdGl2ZSB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tbW9kYWwtZXRhKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1tb2RhbC1saWdodC1ncmF5KTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbWluLWhlaWdodDogMi4zNzVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgbWFyZ2luOiBjYWxjKC4yNSAqIHZhcigtLW1vZGFsLWZsdWlkLWVtKSkgMCAwO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIHRyYW5zaXRpb246IG5vbmU7XG59XG5cbmEuYy1tb2RhbF9fY2FuY2VsOmZvY3VzLFxuYS5jLW1vZGFsX19jYW5jZWw6aG92ZXIge1xuICBjb2xvcjogdmFyKC0tbW9kYWwtd2hpdGUpO1xufVxuXG4uYy1tb2RhbF9fY29udGVudCB7XG4gICYgPiBoMSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1tb2RhbC1nYW1tYSk7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgfVxuXG4gICYgPiBhW3JvbGU9XCJidXR0b25cIl0sXG4gICYgPiBhW3JvbGU9XCJidXR0b25cIl06bGluayxcbiAgJiA+IGFbcm9sZT1cImJ1dHRvblwiXTp2aXNpdGVkXG4gICYgPiBhW3JvbGU9XCJidXR0b25cIl06YWN0aXZlIHtcbiAgICBmb250LXNpemU6IHZhcigtLW1vZGFsLWV0YSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiBjYWxjKC4wNjI1ICogdmFyKC0tbW9kYWwtZmx1aWQtZW0pKSBzb2xpZCB2YXIoLS1tb2RhbC1saWdodC1ncmF5KTtcbiAgICBib3JkZXItcmFkaXVzOiBjYWxjKC4yNSAqIHZhcigtLW1vZGFsLWZsdWlkLWVtKSk7XG4gICAgY29sb3I6IHZhcigtLW1vZGFsLWxpZ2h0LWdyYXkpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBtaW4taGVpZ2h0OiAyLjM3NWVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgcGFkZGluZzogLjc1ZW0gMS44NzVlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgbWFyZ2luOiBjYWxjKC4yNSAqIHZhcigtLW1vZGFsLWZsdWlkLWVtKSkgMCAwO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG5cbiAgJiA+IGFbcm9sZT1cImJ1dHRvblwiXTpmb2N1cyxcbiAgJiA+IGFbcm9sZT1cImJ1dHRvblwiXTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1tb2RhbC13aGl0ZSk7XG4gICAgY29sb3I6IHZhcigtLW1vZGFsLXdoaXRlKTtcbiAgfVxuXG4gICYgPiBhW3JlbD1cImFsdGVybmF0ZVwiXSxcbiAgJiA+IGFbcmVsPVwiYWx0ZXJuYXRlXCJdOmxpbmssXG4gICYgPiBhW3JlbD1cImFsdGVybmF0ZVwiXTp2aXNpdGVkXG4gICYgPiBhW3JlbD1cImFsdGVybmF0ZVwiXTphY3RpdmUge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tbW9kYWwtemV0YSk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDIuNWVtO1xuICAgIG1hcmdpbjogY2FsYyguNSAqIHZhcigtLW1vZGFsLWZsdWlkLWVtKSkgMDtcbiAgfVxuXG4gICYgPiBhW3JlbD1cImFsdGVybmF0ZVwiXTo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAtLjVlbTtcbiAgICByaWdodDogLjEyNWVtO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlci10b3A6IHRyYW5zcGFyZW50IHNvbGlkIC41ZW07XG4gICAgYm9yZGVyLXJpZ2h0OiB0cmFuc3BhcmVudCBzb2xpZCAuNzVlbTtcbiAgICBib3JkZXItYm90dG9tOiB0cmFuc3BhcmVudCBzb2xpZCAuNWVtO1xuICAgIGJvcmRlci1sZWZ0OiB2YXIoLS1tb2RhbC1saWdodC1ncmF5KSBzb2xpZCAuNzVlbTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxuXG4gICYgPiBhW3JlbD1cImFsdGVybmF0ZVwiXTpmb2N1czo6YWZ0ZXIsXG4gICYgPiBhW3JlbD1cImFsdGVybmF0ZVwiXTpob3Zlcjo6YWZ0ZXIge1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1tb2RhbC13aGl0ZSk7XG4gIH1cbn1cblxuLmgtbW9kYWwtdXJsLXdyYXAge1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogQ09NUE9ORU5UOiBPVVIgR0xPQkFMIE5BVlxuICogSW5jbHVkZWQgaW4gdGhpcyBkb2N1bWVudDogVmFyaWFibGVzLCBCYXNlLCBTdHlsZXNcbiAqXG4gKiBUaGUgaW5zdGFuY2Ugb2YgdGhlIGdsb2JhbCBuYXYgZW1iZWRkZWQgd2l0aGluXG4gKiB0aGUgcmVnIGFwcCBpcyBjYW5vbmljYWwuXG4gKiAoaHR0cHM6Ly9naXRodWIuY29tL29wZW51cHJlc291cmNlcy9jdXJyaWN1bHVtLWdhdGV3YXkpXG4gKlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIENPTVBPTkVOVDogT1VSIEdMT0JBTCBOQVYgLS0gUk9CT1RPIEZPTlRTXG4gKlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuIC8qIEF2b2lkIGxvYWRpbmcgdW5uZWNlc3NhcnkgZm9udCB3ZWlnaHRzISAqL1xuIC8qIEFsd2F5cyBuZWNlc3Nhcnk6ICovXG4gICAgLyogUm9ib3RvIDUwMCBmb3IgdG9wIGFuZCBzZWNvbmQtbGV2ZWwgbGlzdCBpdGVtcy4gKi9cbiAvKiBTb21ldGltZXMgbmVjZXNzYXJ5OiAqL1xuICAgIC8qIFJvYm90byA0MDAgZm9yIHRoaXJkLWxldmVsIGxpc3QgaXRlbXMgaW4gbmFycm93IHZpZXdwb3J0cyBhbmQgZ2xvYmFsIG5vdGlmaWNhdGlvbnMuICovXG4gLyogT25seSBuZWNlc3NhcnkgaW4gdGhlIEN1cnJpY3VsdW0gR2F0ZXdheS9SZWcgQXBwOiAqL1xuICAgIC8qIFJvYm90byA3MDAgZm9yIOKAnENyZWF0ZSBOZXcgQWNjb3VudOKAnSBvbiBsb2dpbiBwYWdlLiAqL1xuXG4gLyogSWYgR29vZ2xlIEZvbnRzIGFyZSBhbHJlYWR5IGltcG9ydGVkIGludG8gdGhlIGFwcCwgaW5jbHVkZSBcIiZmYW1pbHk9Um9ib3RvOml0YWwsd2dodEAwLDQwMDswLDUwMDsxLDcwMFwiIGFzIG5lY2Vzc2FyeS4gKi9cbiAvKiBJZiBHb29nbGUgRm9udHMgYXJlIG5vdCBhbHJlYWR5IGltcG9ydGVkLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBpbXBvcnQgc3RhdGVtZW50IG9yIChiZXR0ZXIpIGFkZFxuIHRoZSBlcXVpdmFsZW50IHRvIHRoZSA8aGVhZD4gb2YgdGhlIGFwcC4gKi9cbiAvKiBAaW1wb3J0IHVybCgnaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1Sb2JvdG86aXRhbCx3Z2h0QDAsNDAwOzAsNTAwOzEsNzAwJmRpc3BsYXk9c3dhcCcpOyAqL1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogQ09NUE9ORU5UOiBPVVIgR0xPQkFMIE5BViAtLSBWQVJJQUJMRVNcbiAqXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKiBDb2xvciBwYWxldHRlICovXG5cbjpyb290IHtcblxuICAvKiBDb2xvcnMgd2l0aCBcIi1vdXItXCIgaW4gdGhlaXIgbmFtZSBhcmUgc291cmNlZCBmcm9tIHRoZSBPVVIgYnJhbmQgZ3VpZGVsaW5lcyAqL1xuXG4tLW5hdi1nbG9iYWwtb3VyLXByaW1hcnktb3JhbmdlOiAgICAgICByZ2IoMjUyLDc2LDIpOyAgICAvKiAjRkM0QzAyICovXG4tLW5hdi1nbG9iYWwtb3VyLWdsb2JhbG5hdi1vcmFuZ2U6ICAgICByZ2IoMjQxLDg5LDQyKTsgICAvKiAjRjE1OTJBICAtIGEgbGVzcyBicmlnaHQgb3JhbmdlICovXG4tLW5hdi1nbG9iYWwtb3VyLXByaW1hcnkteWVsbG93OiAgICAgICByZ2IoMjU1LDE4NCwyOCk7ICAvKiAjRkZCODFDICovXG4tLW5hdi1nbG9iYWwtb3VyLXByaW1hcnktZ3JheTogICAgICAgICByZ2IoMTEwLDk4LDg5KTsgICAvKiAjNkU2MjU5ICovXG4tLW5hdi1nbG9iYWwtb3VyLXByaW1hcnktZGFyay1ncmF5OiAgICByZ2IoNjksNTMsNTQpOyAgICAvKiAjNDUzNTM2ICovXG4tLW5hdi1nbG9iYWwtd2hpdGU6ICAgICAgICAgICAgICAgICAgICB3aGl0ZTtcbi0tbmF2LWdsb2JhbC1saWdodC1ncmF5OiAgICAgICAgICAgICAgIHJnYigyNDEsMjQxLDI0MSk7XG5cbi8qXG4gIFR5cG9ncmFwaGljIHNpemVzXG5cbiAgRm9udCBzaXplcyBiYXNlZCBvbiBtaW5vciB0aGlyZCAoMS4yKSBodHRwOi8vd3d3Lm1vZHVsYXJzY2FsZS5jb20vPzEmZW0mMS4yXG5cbiovXG5cbi0tbmF2LWdsb2JhbC1mb250LWJhc2UtbWluOiAxNnB4O1xuLS1uYXYtZ2xvYmFsLWZvbnQtYmFzZS1tYXg6IDIwcHg7XG4tLW5hdi1nbG9iYWwtZmx1aWQtZW06ICAgICAgY2FsYygxNnB4ICsgKDIwIC0gMTYpICogKCgxMDB2dyAtIDMyMHB4KS8oMTMyMCAtIDMyMCkpKTtcbi0tbmF2LWdsb2JhbC1kZWx0YTogICAgICAgICAxLjJlbTtcbi0tbmF2LWdsb2JhbC1lcHNpbG9uOiAgICAgICAuODMzZW07XG4tLW5hdi1nbG9iYWwtemV0YTogICAgICAgICAgLjhlbTtcblxufVxuXG4vKiBDdXN0b20gTWVkaWEgRGVjbGFyYXRpb25zIGZvciBCcmVha3BvaW50cyAqL1xuXG5AY3VzdG9tLW1lZGlhIC0tbmF2LWdsb2JhbC1icC1taW4tbWludXMgKG1heC13aWR0aDogNTM2cHgpO1xuQGN1c3RvbS1tZWRpYSAtLW5hdi1nbG9iYWwtYnAtbWluIChtaW4td2lkdGg6IDUzN3B4KTtcbkBjdXN0b20tbWVkaWEgLS1uYXYtZ2xvYmFsLWJwLW1pZC1taW51cyAobWF4LXdpZHRoOiAxMDIzcHgpO1xuQGN1c3RvbS1tZWRpYSAtLW5hdi1nbG9iYWwtYnAtbWlkIChtaW4td2lkdGg6IDEwMjRweCk7XG5AY3VzdG9tLW1lZGlhIC0tbmF2LWdsb2JhbC1icC1tYXgtbWludXMgKG1heC13aWR0aDogMTMxOXB4KTtcbkBjdXN0b20tbWVkaWEgLS1uYXYtZ2xvYmFsLWJwLW1heCAobWluLXdpZHRoOiAxMzIwcHgpO1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogQ09NUE9ORU5UOiBPVVIgR0xPQkFMIE5BViAtLSBCQVNFXG4gKlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmMtbmF2LWdsb2JhbCB7XG4gICBmb250LXNpemU6IHZhcigtLW5hdi1nbG9iYWwtZm9udC1iYXNlLW1pbik7XG4gICBmb250LWZhbWlseTogJ1JvYm90bycsICdUcmVidWNoZXQgTVMnLCBUcmVidWNoZXQsIFRhaG9tYSwgc2Fucy1zZXJpZjtcbiAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVsZWdpYmlsaXR5OyAvKiBDYW4gY2F1c2UgcHJvYmxlbXMgaW4gc29tZSB2ZXJzaW9ucyBvZiBBbmRyb2lkICovXG4gICAgIHRleHQtc2l6ZS1hZGp1c3Q6IG5vbmU7XG4gICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICBmb250LWRpc3BsYXk6IHN3YXA7IC8qIGh0dHBzOi8vd3d3LnphY2hsZWF0LmNvbS93ZWIvY29tcHJlaGVuc2l2ZS13ZWJmb250cy8jZm9udC1kaXNwbGF5ICovXG4gICBsaW5lLWhlaWdodDogMS40NTtcblxuICAgLyogRmx1aWQgZnJvbSAxNnB4IHRvIDIwcHggYmV0d2VlbiBicmVha3BvaW50cyAqL1xuXG4gICBAbWVkaWEgKC0tbmF2LWdsb2JhbC1icC1taW4pIHtcbiAgICAgJiB7XG4gICAgICAgZm9udC1zaXplOiB2YXIoLS1uYXYtZ2xvYmFsLWZvbnQtYmFzZS1taW4pOyAvKiAxNnB4IGF0IDMyMHB4ICovIC8qIHB4IGZhbGxiYWNrIGZvciBicm93c2VycyB0aGF0IGRvbuKAmXQgZ2V0IGNhbGMgKi9cbiAgICAgICBmb250LXNpemU6IGNhbGMoMTZweCArICgyMCAtIDE2KSAqICgoMTAwdncgLSAzMjBweCkvKDEzMjAgLSAzMjApKSk7XG4gICAgIH1cbiAgIH1cblxuICAgQG1lZGlhICgtLW5hdi1nbG9iYWwtYnAtbWF4KSB7XG4gICAgICYge1xuICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tbmF2LWdsb2JhbC1mb250LWJhc2UtbWF4KTsgLyogMjBweCBhdCAxMzIwcHggKi9cbiAgICAgfVxuICAgfVxufVxuXG4uYy1uYXYtZ2xvYmFsICoge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAmOjpiZWZvcmUsICY6OmFmdGVyIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBDT01QT05FTlQ6IE9VUiBHTE9CQUwgTkFWIC0tIFNUWUxFU1xuICpcbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5jLW5hdi1nbG9iYWwge1xuICBAbWVkaWEgKC0tbmF2LWdsb2JhbC1icC1taWQpIHtcbiAgICAmIHtcbiAgICAgIHotaW5kZXg6IDg2NzUzMDk7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cblxuLmMtbmF2LWdsb2JhbF9fd3JhcHBlciB7XG4gIHBhZGRpbmc6IC43NWVtIDFlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tbmF2LWdsb2JhbC1vdXItZ2xvYmFsbmF2LW9yYW5nZSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcG9zaXRpb246cmVsYXRpdmU7XG4gIEBtZWRpYSAoLS1uYXYtZ2xvYmFsLWJwLW1pZCkge1xuICAgICYge1xuICAgICAgcGFkZGluZzogMCAuMjVlbSAwIDFlbTtcbiAgICB9XG4gIH1cbn1cblxuLmMtbmF2LWdsb2JhbF9fbG9nb2xpbmsge1xuICBkaXNwbGF5OiBibG9jaztcbiAgQG1lZGlhICgtLW5hdi1nbG9iYWwtYnAtbWlkKSB7XG4gICAgJiB7XG4gICAgICBwYWRkaW5nOiAwLjgzMTI1ZW0gMDtcbiAgICB9XG4gIH1cbn1cblxuLmMtbmF2LWdsb2JhbF9fbG9nb2ltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDJlbTtcbiAgd2lkdGg6IGF1dG87XG59XG5cbi5jLW5hdi1nbG9iYWxfX21lbnUge1xuICBkaXNwbGF5OmlubGluZS1ibG9jaztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogdmFyKC0tbmF2LWdsb2JhbC13aGl0ZSk7XG4gIGJvcmRlcjogM3B4IHZhcigtLW5hdi1nbG9iYWwtb3VyLXByaW1hcnkteWVsbG93KSBzb2xpZDsgLyogTm9ybWFsbHksIEkgcHJlZmVyIHJlbXMvZW1zIGZvciBhbGwgZGltZW5zaW9ucywgYnV0IGJyb3dzZXIgcm91bmRpbmcgb24gYW4gZWxlbWVudCB0aGlzIHNtYWxsIHJlc3VsdHMgaW4gZGlmZmVyZW50IHBpeGVsIHdpZHRocyBhY3Jvc3MgYWRqYWNlbnQgaW5zdGFuY2VzIG9mIHRoaXMgc2FtZSBlbGVtZW50LiBUaGUgZGlmZmVyZW5jZSBpcyBub3RpY2VhYmxlIGFuZCBhbm5veWluZy4gICovXG4gIGJvcmRlci1yYWRpdXM6IGNhbGMoMS4yNSAqIHZhcigtLW5hdi1nbG9iYWwtZmx1aWQtZW0pKTtcbiAgcGFkZGluZzogY2FsYyguNSAqIHZhcigtLW5hdi1nbG9iYWwtZmx1aWQtZW0pKSBjYWxjKHZhcigtLW5hdi1nbG9iYWwtZmx1aWQtZW0pKTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGluZS1oZWlnaHQ6IGNhbGModmFyKC0tbmF2LWdsb2JhbC1mbHVpZC1lbSkpO1xuICB3aWR0aDogY2FsYyg1ICogdmFyKC0tbmF2LWdsb2JhbC1mbHVpZC1lbSkpO1xuICB0ZXh0LWFsaWduOmNlbnRlcjtcbiAgZm9udC1zaXplOiB2YXIoLS1uYXYtZ2xvYmFsLWVwc2lsb24pO1xuICBmb250LXdlaWdodDogNTAwO1xuICBAbWVkaWEgKC0tbmF2LWdsb2JhbC1icC1taWQpIHtcbiAgICAmIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG4gICY6bGluayxcbiAgJjp2aXNpdGVkLFxuICAmOmhvdmVyLFxuICAmOmFjdGl2ZSB7XG4gICAgY29sb3I6IHZhcigtLW5hdi1nbG9iYWwtd2hpdGUpO1xuICB9XG59XG5cbi5jLW5hdi1nbG9iYWxfX25hdiB7XG4gIEBtZWRpYSAoLS1uYXYtZ2xvYmFsLWJwLW1pZC1taW51cykge1xuICAgICYge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tbmF2LWdsb2JhbC1vdXItZ2xvYmFsbmF2LW9yYW5nZSk7XG4gICAgICBwYWRkaW5nOiAuNzVlbSAxZW07XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICAgIHotaW5kZXg6IDg2NzUzMDk7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzLCB2aXNpYmlsaXR5IDBzIDAuNXM7XG5cbiAgICAgICY6dGFyZ2V0Om5vdChbZGF0YS1za2lwLXRhcmdldGluZ10pLCAmW2RhdGEtdmlzaWJsZV0ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXM7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5jLW5hdi1nbG9iYWxfX2xpc3Qge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDFlbSBhdXRvIDA7XG4gIHBhZGRpbmc6IDJlbSAxZW0gMmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIEBtZWRpYSAoLS1uYXYtZ2xvYmFsLWJwLW1pZCkge1xuICAgICYge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgfVxuICB9XG59XG5cbi5jLW5hdi1nbG9iYWxfX2xpc3Qge1xuICAvKiBBbm5veWluZyBuZWNlc3NpdHkgLSBvdmVycmlkZSBvZiBPVVIgd29yZHByZXNzIHRoZW1lIGRlZmF1bHRzIGZvciB1bCAqL1xuICBwb3NpdGlvbjogc3RhdGljO1xufVxuXG4uYy1uYXYtZ2xvYmFsX19saXN0aXRlbSB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGh5cGhlbnM6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogLjY1NjI1ZW0gMCAwO1xuICBsaW5lLWhlaWdodDogMS4yNTtcbiAgQG1lZGlhICgtLW5hdi1nbG9iYWwtYnAtbWlkKSB7XG4gICAgJiB7XG4gICAgICBwYWRkaW5nOiAxLjE1NjI1ZW0gMDtcbiAgICB9XG4gIH1cbn1cblxuLyogQW5ub3lpbmcgbmVjZXNzaXR5IC0gb3ZlcnJpZGUgb2YgT1VSIHdvcmRwcmVzcyB0aGVtZSBkZWZhdWx0cyBmb3IgdWwgbGkgKi9cbi5jLW5hdi1nbG9iYWxfX2xpc3RpdGVtOjpiZWZvcmUge1xuICBjb250ZW50OiBub3JtYWw7XG59XG5cbi5jLW5hdi1nbG9iYWxfX2xhYmVsIHtcbiAgY29sb3I6IHZhcigtLW5hdi1nbG9iYWwtd2hpdGUpO1xuICBmb250LXNpemU6IHZhcigtLW5hdi1nbG9iYWwtZGVsdGEpO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIEBtZWRpYSAoLS1uYXYtZ2xvYmFsLWJwLW1pZCkge1xuICAgICYge1xuICAgICAgZm9udC1zaXplOiB2YXIoLS1uYXYtZ2xvYmFsLWVwc2lsb24pO1xuICAgIH1cbiAgfVxufVxuXG4uYy1uYXYtZ2xvYmFsX19saW5rLFxuLmMtbmF2LWdsb2JhbF9fbGluazpsaW5rLFxuLmMtbmF2LWdsb2JhbF9fbGluazp2aXNpdGVkLFxuLmMtbmF2LWdsb2JhbF9fbGluazphY3RpdmUge1xuICBmb250LXNpemU6IHZhcigtLW5hdi1nbG9iYWwtZGVsdGEpO1xuICBmb250LXdlaWdodDogNTAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogdmFyKC0tbmF2LWdsb2JhbC13aGl0ZSk7XG4gIHBhZGRpbmc6IGNhbGMoLjUgKiB2YXIoLS1uYXYtZ2xvYmFsLWZsdWlkLWVtKSk7XG4gIHRyYW5zaXRpb246IG5vbmU7XG4gIEBtZWRpYSAoLS1uYXYtZ2xvYmFsLWJwLW1pZCkge1xuICAgICYge1xuICAgICAgZm9udC1zaXplOiB2YXIoLS1uYXYtZ2xvYmFsLWVwc2lsb24pO1xuICAgICAgcGFkZGluZzogMCB2YXIoLS1uYXYtZ2xvYmFsLWZvbnQtYmFzZS1tYXgpO1xuICAgIH1cbiAgfVxuICBAbWVkaWEgKC0tbmF2LWdsb2JhbC1icC1taWQpIHtcbiAgICAmOjpiZWZvcmUsXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDNweDsgLyogTm9ybWFsbHksIEkgcHJlZmVyIHJlbXMvZW1zIGZvciBhbGwgZGltZW5zaW9ucywgYnV0IGJyb3dzZXIgcm91bmRpbmcgb24gYW4gZWxlbWVudCB0aGlzIHNtYWxsIHJlc3VsdHMgaW4gZGlmZmVyZW50IHBpeGVsIHdpZHRocyBhY3Jvc3MgYWRqYWNlbnQgaW5zdGFuY2VzIG9mIHRoaXMgc2FtZSBlbGVtZW50LiBUaGUgZGlmZmVyZW5jZSBpcyBub3RpY2VhYmxlIGFuZCBhbm5veWluZy4gICovXG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0b3A6IDJweDtcbiAgICB9XG4gIH1cbiAgQG1lZGlhICgtLW5hdi1nbG9iYWwtYnAtbWlkLW1pbnVzKSB7XG4gICAgJjo6YmVmb3JlLFxuICAgICY6OmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvdHRvbTogY2FsYyguMjUgKiB2YXIoLS1uYXYtZ2xvYmFsLWZsdWlkLWVtKSk7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG4gIH1cbiAgJjpob3ZlciB7XG4gICAgY29sb3I6IHZhcigtLW5hdi1nbG9iYWwtd2hpdGUpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuICBAbWVkaWEgKC0tbmF2LWdsb2JhbC1icC1taWQpIHtcbiAgICAmOmhvdmVyOjphZnRlcixcbiAgICAmOmZvY3VzOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1uYXYtZ2xvYmFsLW91ci1wcmltYXJ5LXllbGxvdyk7XG4gICAgfVxuICB9XG59XG5cbi8qIDcwMCB3ZWlnaHQgb25seSByZXF1aXJlZCBpbiB0aGUgUmVnIEFwcCBmb3IgZm9ybWF0dGluZyBcIkNyZWF0ZSBOZXcgQWNjb3VudFwiICovXG4uYy1uYXYtZ2xvYmFsX19sYWJlbCArIC5jLW5hdi1nbG9iYWxfX2xpbmssXG4uYy1uYXYtZ2xvYmFsX19sYWJlbCArIC5jLW5hdi1nbG9iYWxfX2xpbms6bGluayxcbi5jLW5hdi1nbG9iYWxfX2xhYmVsICsgLmMtbmF2LWdsb2JhbF9fbGluazp2aXNpdGVkLFxuLmMtbmF2LWdsb2JhbF9fbGFiZWwgKyAuYy1uYXYtZ2xvYmFsX19saW5rOmFjdGl2ZSB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgJjo6YmVmb3JlLFxuICAmOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAzcHg7IC8qIE5vcm1hbGx5LCBJIHByZWZlciByZW1zL2VtcyBmb3IgYWxsIGRpbWVuc2lvbnMsIGJ1dCBicm93c2VyIHJvdW5kaW5nIG9uIGFuIGVsZW1lbnQgdGhpcyBzbWFsbCByZXN1bHRzIGluIGRpZmZlcmVudCBwaXhlbCB3aWR0aHMgYWNyb3NzIGFkamFjZW50IGluc3RhbmNlcyBvZiB0aGlzIHNhbWUgZWxlbWVudC4gVGhlIGRpZmZlcmVuY2UgaXMgbm90aWNlYWJsZSBhbmQgYW5ub3lpbmcuICAqL1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMnB4O1xuICB9XG4gICY6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1uYXYtZ2xvYmFsLW91ci1wcmltYXJ5LXllbGxvdyk7XG4gICAgb3BhY2l0eTogLjc1O1xuICB9XG4gICY6aG92ZXI6OmFmdGVyIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIEBtZWRpYSAoLS1uYXYtZ2xvYmFsLWJwLW1pZCkge1xuICAgICY6OmJlZm9yZSxcbiAgICAmOjphZnRlciB7XG4gICAgICB0b3A6IDA7XG4gICAgfVxuICB9XG59XG5cbi5jLW5hdi1nbG9iYWxfX2xpc3RpdGVtOmxhc3QtY2hpbGQ6bm90KDpvbmx5LWNoaWxkKSB7XG4gICYgLmMtbmF2LWdsb2JhbF9fbGluayxcbiAgJiAuYy1uYXYtZ2xvYmFsX19saW5rOmxpbmssXG4gICYgLmMtbmF2LWdsb2JhbF9fbGluazp2aXNpdGVkLFxuICAmIC5jLW5hdi1nbG9iYWxfX2xpbms6YWN0aXZlIHtcbiAgICBAbWVkaWEgKC0tbmF2LWdsb2JhbC1icC1taWQpIHtcbiAgICAgICYge1xuICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tbmF2LWdsb2JhbC1mb250LWJhc2UtbWF4KTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiBjYWxjKDIgKiB2YXIoLS1uYXYtZ2xvYmFsLWZvbnQtYmFzZS1tYXgpKTtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1uYXYtZ2xvYmFsLXdoaXRlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbi5jLW5hdi1nbG9iYWxfX25vdGlmaWNhdGlvbiB7XG4gIHBhZGRpbmc6IHZhcigtLW5hdi1nbG9iYWwtemV0YSkgM2VtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2U7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmMtbmF2LWdsb2JhbF9fbm90aWZpY2F0aW9uIHAge1xuICBmb250LXNpemU6IHZhcigtLW5hdi1nbG9iYWwtemV0YSk7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIG1hcmdpbjogMDtcbn1cblxuLmMtbmF2LWdsb2JhbF9fbm90aWZpY2F0aW9uIGEge1xuICBjb2xvcjogdmFyKC0tbmF2LWdsb2JhbC1vdXItcHJpbWFyeS1kYXJrLWdyYXkpO1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uYy1uYXYtZ2xvYmFsX19oZWxwZXItbm93cmFwIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbiIsIi8qIE1ha2UgY29udGVudCB2aXNpYmxlIHNjcmVlbiByZWFkZXJzIG9ubHkgd2hlbiBub3QgZm9jdXNlZCBvciBhY3RpdmUgKi9cbi8qIFwic3JcIiBtZWFuaW5nIFwic2NyZWVuLXJlYWRlclwiLiBMZWFybiBtb3JlOiBodHRwczovL2Nzcy10cmlja3MuY29tL2luY2x1c2l2ZWx5LWhpZGRlbi8gKi9cblxuLnNyLW9ubHk6bm90KDpmb2N1cyk6bm90KDphY3RpdmUpIHtcbiAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgLXdlYmtpdC1jbGlwLXBhdGg6IGluc2V0KDUwJSk7XG4gIGNsaXAtcGF0aDogaW5zZXQoNTAlKTtcbiAgaGVpZ2h0OiAxcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgd2lkdGg6IDFweDtcbn1cblxuKjpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbio6Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJveC1zaGFkb3c6XG4gICAgMCAwIDAgMC4xNWVtICNmZmYsXG4gICAgMCAwIDAgMC4zZW0gdmFyKC0tYWEtb3JhbmdlKTtcbn1cblxuQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHtcbiAgKjpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiAwLjJlbSBzb2xpZDtcbiAgfVxufVxuIiwiQGltcG9ydCBcIi4vY29tcG9uZW50cy9fZm9vdGVyLmNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy9fbW9kYWwuY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL19uYXYtZ2xvYmFsLmNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy9fYWNjZXNzaWJpbGl0eS5jc3NcIjtcblxuLyoqIFV0aWxpdHkgQ2xhc3NlcyAqKi9cblxuLypcbiAgVXNlZCB0byBpbmRpY2F0ZSBwcmVmb3JtYXR0ZWQgd2hpdGVzcGFjZS5cbiovXG4udS1wcmVmb3JtYXR0ZWQgeyB3aGl0ZS1zcGFjZTogcHJlIH1cbiJdfQ== */
