/* 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_ca-el-ms {
  -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_ca-el-k5 {
  -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-header_ca-skills-block {
  -webkit-box-flex: 1;
      -ms-flex: 1 0 auto;
          flex: 1 0 auto;
  position: relative;
}
.l-header_el-unlock-phonics {
  -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-hs-precalculus {
  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-precalculus_background-c01f7e80736763e63e98c40be39ccb11e037559ee355bd7df9b7199ff511e60b.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-precalculus_background-c01f7e80736763e63e98c40be39ccb11e037559ee355bd7df9b7199ff511e60b.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_ca-el-ms {
  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/OUR_Banner_EL_CA_6-8-2538884af5c5fdea5470f7993bc8e3c430683a43b650cd499c8dfa04452ff969.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/OUR_Banner_EL_CA_6-8-2538884af5c5fdea5470f7993bc8e3c430683a43b650cd499c8dfa04452ff969.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-9f89c659b810561021f04ae6e486d252a231bd63825cc3057c892d764a41c285.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-9f89c659b810561021f04ae6e486d252a231bd63825cc3057c892d764a41c285.jpg);
  background-size:
    cover,
    cover;
  background-blend-mode:
    normal,
    normal;
}
.c-banner_ca-el-k5 {
  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-9f89c659b810561021f04ae6e486d252a231bd63825cc3057c892d764a41c285.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-9f89c659b810561021f04ae6e486d252a231bd63825cc3057c892d764a41c285.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_ca-skills-block {
  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/ca_sb_banner-12708596b64f6cdbf3741db9901827a3f058e0f389b16cca5c3dc7ba6f84632c.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/ca_sb_banner-12708596b64f6cdbf3741db9901827a3f058e0f389b16cca5c3dc7ba6f84632c.jpg);
  background-size:
    cover,
    cover;
  background-blend-mode:
    normal,
    normal;
}
.c-banner_el-unlock-phonics {
  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-unlock-phonics_background-601f175d08ca9ca39901d6a742bf2a09e8fd1dec1e5b520cb8f4837838640b34.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-unlock-phonics_background-601f175d08ca9ca39901d6a742bf2a09e8fd1dec1e5b520cb8f4837838640b34.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,
.c-nav-curriculum__logo_our-hs-precalculus {
  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_ca-el-ms,
.c-nav-curriculum__logo_el-skills-block-2024,
.c-nav-curriculum__logo_ca-skills-block,
.c-nav-curriculum__logo_el-k5-2025,
.c-nav-curriculum__logo_ca-el-k5,
.c-nav-curriculum__logo_el-unlock-phonics {
  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_ca-el-ms, .c-nav-curriculum__logo_el-skills-block-2024, .c-nav-curriculum__logo_ca-skills-block, .c-nav-curriculum__logo_el-k5-2025, .c-nav-curriculum__logo_ca-el-k5, .c-nav-curriculum__logo_el-unlock-phonics {
      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,
.c-nav-curriculum__section-text_our-hs-precalculus {
  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, .c-nav-curriculum__section-text_our-hs-precalculus {
      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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3N0eWxlc2hlZXRzL3B1YmxpY2F0aW9ucy5jc3MiLCIuLi9zdHlsZXNoZWV0cy9wdWJsaWNhdGlvbnMvdmVuZG9yL25vcm1hbGl6ZS5jc3MiLCIuLi9zdHlsZXNoZWV0cy9wdWJsaWNhdGlvbnMvY29yZS9fY29sb3IuY3NzIiwiLi4vc3R5bGVzaGVldHMvcHVibGljYXRpb25zL2NvcmUvX2ZvbnRzLmNzcyIsIi4uL3N0eWxlc2hlZXRzL3B1YmxpY2F0aW9ucy9jb3JlL19zaXplcy5jc3MiLCIuLi9zdHlsZXNoZWV0cy9wdWJsaWNhdGlvbnMvY29yZS9fdHlwb2dyYXBoeS5jc3MiLCIuLi9zdHlsZXNoZWV0cy9wdWJsaWNhdGlvbnMvY29yZS9fYnV0dG9uLmNzcyIsIi4uL3N0eWxlc2hlZXRzL3B1YmxpY2F0aW9ucy9sYXlvdXQvX2xheW91dC5jc3MiLCIuLi9zdHlsZXNoZWV0cy9wdWJsaWNhdGlvbnMvY29tcG9uZW50cy9fYmFubmVyLmNzcyIsIi4uL3N0eWxlc2hlZXRzL3B1YmxpY2F0aW9ucy9jb21wb25lbnRzL19hbm5vdW5jZW1lbnQuY3NzIiwiLi4vc3R5bGVzaGVldHMvcHVibGljYXRpb25zL2NvbXBvbmVudHMvX2N0YS1zaWRlYmFyLmNzcyIsIi4uL3N0eWxlc2hlZXRzL3B1YmxpY2F0aW9ucy9jb21wb25lbnRzL19kaXJlY3RvcnkuY3NzIiwiLi4vc3R5bGVzaGVldHMvcHVibGljYXRpb25zL2NvbXBvbmVudHMvX2ZpZ3VyZS5jc3MiLCIuLi9zdHlsZXNoZWV0cy9wdWJsaWNhdGlvbnMvY29tcG9uZW50cy9fbmF2LWN1cnJpY3VsdW0uY3NzIiwiLi4vc3R5bGVzaGVldHMvcHVibGljYXRpb25zL2NvbXBvbmVudHMvX2luZGV4LmNzcyIsIi4uL3N0eWxlc2hlZXRzL3NoYXJlZC9jb21wb25lbnRzL19mb290ZXIuY3NzIiwiLi4vc3R5bGVzaGVldHMvc2hhcmVkL2NvbXBvbmVudHMvX21vZGFsLmNzcyIsIi4uL3N0eWxlc2hlZXRzL3NoYXJlZC9jb21wb25lbnRzL19uYXYtZ2xvYmFsLmNzcyIsIi4uL3N0eWxlc2hlZXRzL3NoYXJlZC9jb21wb25lbnRzL19hY2Nlc3NpYmlsaXR5LmNzcyIsIi4uL3N0eWxlc2hlZXRzL3NoYXJlZC9zdHlsZXMuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDZCQUE2QjtBQ0E3QiwyRUFBMkU7QUFFM0U7K0VBQytFO0FBRS9FOzs7RUFHRTtBQUVGO0VBQ0UsaUJBQWlCLEVBQUUsTUFBTTtFQUN6Qiw4QkFBOEIsRUFBRSxNQUFNO0FBQ3hDO0FBRUE7K0VBQytFO0FBRS9FOztFQUVFO0FBRUY7RUFDRSxTQUFTO0FBQ1g7QUFFQTs7RUFFRTtBQUVGO0VBQ0UsY0FBYztBQUNoQjtBQUVBOzs7RUFHRTtBQUVGO0VBQ0UsY0FBYztFQUNkLGdCQUFnQjtBQUNsQjtBQUVBOytFQUMrRTtBQUUvRTs7O0VBR0U7QUFFRjtFQUNFLCtCQUF1QjtVQUF2Qix1QkFBdUIsRUFBRSxNQUFNO0VBQy9CLFNBQVMsRUFBRSxNQUFNO0VBQ2pCLGlCQUFpQixFQUFFLE1BQU07QUFDM0I7QUFFQTs7O0VBR0U7QUFFRjtFQUNFLGlDQUFpQyxFQUFFLE1BQU07RUFDekMsY0FBYyxFQUFFLE1BQU07QUFDeEI7QUFFQTsrRUFDK0U7QUFFL0U7O0VBRUU7QUFFRjtFQUNFLDZCQUE2QjtBQUMvQjtBQUVBOzs7RUFHRTtBQUVGO0VBQ0UsbUJBQW1CLEVBQUUsTUFBTTtFQUMzQiwwQkFBMEIsRUFBRSxNQUFNO0VBQ2xDLDBCQUFpQztFQUFqQyxzREFBaUM7VUFBakMsOENBQWlDLEVBQUUsTUFBTTtBQUMzQztBQUVBOztFQUVFO0FBRUY7O0VBRUUsbUJBQW1CO0FBQ3JCO0FBRUE7OztFQUdFO0FBRUY7OztFQUdFLGlDQUFpQyxFQUFFLE1BQU07RUFDekMsY0FBYyxFQUFFLE1BQU07QUFDeEI7QUFFQTs7RUFFRTtBQUVGO0VBQ0UsY0FBYztBQUNoQjtBQUVBOzs7RUFHRTtBQUVGOztFQUVFLGNBQWM7RUFDZCxjQUFjO0VBQ2Qsa0JBQWtC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IjoicHVibGljYXRpb25zLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIFZlbmRvciBjc3MgYW5kIHZhcmlhYmxlcyAqL1xuQGltcG9ydCAnLi9wdWJsaWNhdGlvbnMvdmVuZG9yL25vcm1hbGl6ZS5jc3MnOyAvKiBDdXN0b21pemVkIGZvciBPVVIgZGVzaWduICovXG5cbi8qIENvcmUgY3NzIGFuZCB2YXJpYWJsZXMgKi9cbkBpbXBvcnQgJy4vcHVibGljYXRpb25zL2NvcmUvX2NvbG9yLmNzcyc7XG5AaW1wb3J0ICcuL3B1YmxpY2F0aW9ucy9jb3JlL19mb250cy5jc3MnO1xuQGltcG9ydCAnLi9wdWJsaWNhdGlvbnMvY29yZS9fc2l6ZXMuY3NzJztcbkBpbXBvcnQgJy4vcHVibGljYXRpb25zL2NvcmUvX3R5cG9ncmFwaHkuY3NzJztcbkBpbXBvcnQgJy4vcHVibGljYXRpb25zL2NvcmUvX2J1dHRvbi5jc3MnO1xuXG4vKiBMYXlvdXQgKi9cbkBpbXBvcnQgJy4vcHVibGljYXRpb25zL2xheW91dC9fbGF5b3V0LmNzcyc7XG5cbi8qIENvbXBvbmVudHMgKi9cbkBpbXBvcnQgJy4vcHVibGljYXRpb25zL2NvbXBvbmVudHMvX2Jhbm5lci5jc3MnO1xuQGltcG9ydCAnLi9wdWJsaWNhdGlvbnMvY29tcG9uZW50cy9fYW5ub3VuY2VtZW50LmNzcyc7XG5AaW1wb3J0ICcuL3B1YmxpY2F0aW9ucy9jb21wb25lbnRzL19jdGEtc2lkZWJhci5jc3MnO1xuQGltcG9ydCAnLi9wdWJsaWNhdGlvbnMvY29tcG9uZW50cy9fZGlyZWN0b3J5LmNzcyc7XG5AaW1wb3J0ICcuL3B1YmxpY2F0aW9ucy9jb21wb25lbnRzL19maWd1cmUuY3NzJztcbkBpbXBvcnQgJy4vcHVibGljYXRpb25zL2NvbXBvbmVudHMvX25hdi1jdXJyaWN1bHVtLmNzcyc7XG5AaW1wb3J0ICcuL3B1YmxpY2F0aW9ucy9jb21wb25lbnRzL19pbmRleC5jc3MnO1xuXG4vKiBTaGFyZWQgU3R5bGVzICovXG5AaW1wb3J0ICcuL3NoYXJlZC9zdHlsZXMuY3NzJztcbiIsIi8qISBub3JtYWxpemUuY3NzIHY4LjAuMSB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cblxuLyogRG9jdW1lbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpbiBpT1MuXG4gKi9cblxuaHRtbCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xufVxuXG4vKiBTZWN0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyoqXG4gKiBSZW5kZXIgdGhlIGBtYWluYCBlbGVtZW50IGNvbnNpc3RlbnRseSBpbiBJRS5cbiAqL1xuXG5tYWluIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAqL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gKiAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cbiAqL1xuXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAxICovXG4gIGhlaWdodDogMDsgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTsgLyogMiAqL1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny1cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gKi9cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lOyAvKiAxICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAvKiAyICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gKiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxMDAlOyAvKiAxICovXG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIG1hcmdpbjogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICogMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCB7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHsgLyogMSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcblt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gKi9cblxuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5sZWdlbmQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIGNvbG9yOiBpbmhlcml0OyAvKiAyICovXG4gIGRpc3BsYXk6IHRhYmxlOyAvKiAxICovXG4gIG1heC13aWR0aDogMTAwJTsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAzICovXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8qIDEgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5cbnByb2dyZXNzIHtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgMTArLlxuICovXG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAuXG4gKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAuXG4gKi9cblxuW3R5cGU9XCJjaGVja2JveFwiXSxcblt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG4gKi9cblxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICovXG5cblt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gKi9cblxuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAqL1xuXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xufVxuXG4vKiBJbnRlcmFjdGl2ZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFIDEwKywgYW5kIEZpcmVmb3guXG4gKi9cblxuZGV0YWlscyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG59XG5cbi8qIE1pc2NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTArLlxuICovXG5cbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC5cbiAqL1xuXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBDb2xvcnNcbiAqXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbjpyb290IHtcblxuICAgIC8qIENvbG9ycyB3aXRoIFwiLW91ci1cIiBpbiB0aGVpciBuYW1lIGFyZSBzb3VyY2VkIGZyb20gdGhlIE9VUiBicmFuZCBndWlkZWxpbmVzLiBQdWxsZWQgZnJvbSBCb29rd29ybXMgd2ViLiAqL1xuXG4gICAgLS1vdXItcHJpbWFyeS1vcmFuZ2U6ICAgICAgIHJnYigyNTIsNzYsMik7ICAgIC8qICNGQzRDMDIgKi9cbiAgICAtLW91ci1nbG9iYWxuYXYtb3JhbmdlOiAgICAgcmdiKDI0MSw4OSw0Mik7ICAgLyogI0YxNTkyQSAgLSBhIGxlc3MgYnJpZ2h0LCBXQ0FHIEFBKyBjb21wbGlhbnQgb3JhbmdlICovXG4gICAgLS1hYS1vcmFuZ2U6ICAgICAgICAgICAgICAgIHJnYigyMTUsNjUsMik7ICAgIC8qICNkNzQxMDIgLSBBQSBvcmFuZ2Ugd2l0aCB3aGl0ZSDigJQgdXNlZCBpbiB0aGUgQ01TLCBza2V3cyByZWRkaXNoICovXG4gICAgLS1vdXItcHJpbWFyeS15ZWxsb3c6ICAgICAgIHJnYigyNTUsMTg0LDI4KTsgIC8qICNGRkI4MUMgKi9cbiAgICAtLW91ci1wcmltYXJ5LWdyYXk6ICAgICAgICAgcmdiKDExMCw5OCw4OSk7ICAgLyogIzZFNjI1OSAqL1xuICAgIC0tb3VyLXByaW1hcnktZGFyay1ncmF5OiAgICByZ2IoNjksNTMsNTQpOyAgICAvKiAjNDUzNTM2ICovXG4gICAgLS1ncmF5OiAgICAgICAgICAgICAgICAgICAgIHJnYigyMDAsMjAwLDIwMCk7XG4gICAgLS1hY2Nlc3NpYmxlLWdyYXk6ICAgICAgICAgIHJnYigxMTksMTE5LDExOSk7IC8qIFRoZSBsaWdodGVzdCBncmF5IHRoYXQgaXMgYWNjZXNzaWJsZSBhdCA8IDE4cHggdGV4dCBvbiB3aGl0ZSAqL1xuICAgIC0tbGlnaHQtZ3JheTogICAgICAgICAgICAgICByZ2IoMjQxLDI0MSwyNDEpO1xuICAgIC0tc3RpY2t5LW5vdGUteWVsbG93OiAgICAgICAjZmRmNGE0OyAvKiBVc2VkIG9ubHkgZm9yIHRoZSBhbm5vdGF0aW9ucyBpbiB0aGUgdGVhY2hlciBtYW51YWwsIG9yIHNpbWlsYXIgZnV0dXJlIGNvbXBvbmVudHMgKi9cbiAgICAtLXRlYWw6ICAgICAgICAgICAgICAgICAgICAgIzAwODQ3MDsgLyogQSBzZWNvbmRhcnkgYWNjZW50IGNvbG9yLCB1c2VkIGZvciBhbm5vdW5jZW1lbnQgYW5kIG1lc3NhZ2UgYmFja2dyb3VuZHMgb24gdGhlIGxhbmRpbmcgcGFnZXMgKi9cblxuICAgIC8qIE5ldXRyYWwgYW5kIGFjY2VudCBjb2xvciB2YXJpYWJsZXMgKi9cblxuICAgIC0tYmxhY2s6ICAgICAgIzAwMDAwMDtcbiAgICAtLXRleHQ6ICAgICAgIHZhcigtLW91ci1wcmltYXJ5LWRhcmstZ3JheSk7XG4gICAgLS1kYXJrLWdyYXk6ICAjNGM0YzRjOyAvKiA3MCUgYmxhY2sgKi9cbiAgICAtLW1lZC1ncmF5OiAgICNiZmJmYmY7IC8qIDI1JSBibGFjayAqL1xuICAgIC0tbGlnaHQtZ3JheTogI2ViZWJlYjsgLyogOCUgYmxhY2sgKi9cbiAgICAtLXdoaXRlOiAgICAgICNmZmZmZmY7XG4gICAgLS1hY2NlbnQ6ICAgICB2YXIoLS1hYS1vcmFuZ2UpO1xuICAgIC0tYWNjZW50LWxhcmdlOiAgICAgdmFyKC0tb3VyLWdsb2JhbG5hdi1vcmFuZ2UpO1xuICAgIC0tYWNjZW50LWFsdDogdmFyKC0tdGVhbCk7XG4gICAgLS13b3Jtc3k6ICAgICAgICAgICAgICAgICAgIHJnYig4MSwgMTg3LCAxMTQpOyAvKiAjNTFCQjcyICovXG4gICAgLS13b3Jtc3ktYWE6ICAgICAgICAgICAgICAgIHJnYig1MiwgMTMzLCA3OCk7ICAvKiAjMzQ4NTRlICovXG4gICAgLS13b3Jtc3ktYWEtbGFyZ2U6ICAgICAgICAgIHJnYig2NiwgMTY4LCA5OCk7ICAvKiAjNDJhODYyICovXG5cbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIEZvbnRzXG4gKlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG46cm9vdCB7XG4gIC0tZm9udC1mYW1pbHktdGV4dDogJ1JvYm90bycsICdUcmVidWNoZXQgTVMnLCBUcmVidWNoZXQsIFRhaG9tYSwgc2Fucy1zZXJpZjsgLyogRGVmYXVsdCB0ZXh0LCBHbG9iYWwgTmF2LCBDdXJyaWN1bHVtIE5hdiwgQnV0dG9uc+KApiA0MDAsNTAwLDcwMCB3ZWlnaHQgKi9cbiAgLS1mb250LWZhbWlseS10ZXh0LWFsdDogJ1NvdXJjZSBTYW5zIFBybycsIHNhbnMtc2VyaWY7IC8qIERlZmF1bHQgdGV4dCBmb3IgaW5kZXguIDQwMCwgNjAwLCA3MDAgd2VpZ2h0ICovXG4gIC0tZm9udC1mYW1pbHktZGlzcGxheTogYWdlbmRhLW9uZSwgc2Fucy1zZXJpZjsgLyogSGVhZGluZ3Mg4oCUIDYwMCwgNzAwICovXG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBTaXplc1xuICpcbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogRm9udCBhbmQgRm91bmRhdGlvbmFsIE1vZHVsYXIgU2l6ZXMgKi9cblxuOnJvb3Qge1xuICAtLWFscGhhOiAgICAgICAgICAgIDIuNHJlbTsgICAgICAgICAgICAgICAgLyogRWcuIEJhbm5lcnMgYW5kIFRleHQgVHJlYXRlZCBMaWtlIExhcmdlIEdyYXBoaWNzICovXG4gIC0tYmV0YTogICAgICAgICAgICAgMS43ODRyZW07ICAgICAgICAgICAgICAvKiBFZy4gSDJpc2ggSGVhZGluZ3MgKi9cbiAgLS1nYW1tYTogICAgICAgICAgICAxLjJyZW07ICAgICAgICAgICAgICAvKiBFZy4gSDNpc2ggSGVhZGluZ3MgKi9cbiAgLS1yZW06ICAgICAgICAgICAgICAxMDAlOyAgICAgICAgICAgICAgICAgIC8qIEVnLiBGb3VuZGF0aW9uIGZvciBhbGwgdHlwZSwgbWFyZ2luLCBhbmQgcGFkZGluZyBzaXplcyAqL1xuICAtLWRlbHRhOiAgICAgICAgICAgIDFyZW07ICAgICAgICAgICAgICAgICAgLyogRWcuIEg0aXNoIEhlYWRpbmdzICovXG4gIC0tYmFzZTogICAgICAgICAgICAgMXJlbTsgICAgICAgICAgICAgICAgICAvKiBFZy4gQm9keSBmb250ICovXG4gIC0tZXBzaWxvbjogICAgICAgICAgLjlyZW07ICAgICAgICAgICAgICAgICAvKiBFZy4gU3RhbmRhcmRzIHRhZ3MgKi9cbiAgLS16ZXRhOiAgICAgICAgICAgICAuODMzcmVtOyAgICAgICAgICAgICAgIC8qIERPIE5PVCBFRElUIOKAlCBVc2VkIGluIGN1cnJpY3VsdW0gbmF2IGFuZCBicmVhZGNydW1iIG5hdiAqL1xuICAtLWV0YTogICAgICAgICAgICAgIC43NXJlbTsgICAgICAgICAgICAgICAgLyogUmVzZXJ2ZWQgZm9yIGZpbmUgcHJpbnQgYW5kIGluZm9ybWF0aW9uYWxseSBkZW5zZSBlbGVtZW50cyBsaWtlIHRhYmxlcyAqL1xuXG59XG5cbi8qIENvbnRlbnQgQXJlYSBSZWxhdGVkIFNpemVzICovXG5cbjpyb290IHtcbiAgLS1tZWFzdXJlOiA0MHJlbTtcbiAgLS1jb250ZW50LXdpZHRoOiA0OHJlbTtcbn1cblxuLyogVmlld3BvcnQgV2lkdGggVmFyaWFibGVzICovXG5cbjpyb290IHtcblxuICAtLWJwLW5hbm8tbWludXM6ICAgMzE5cHg7XG4gIC0tYnAtbmFubzogICAgICAgICAzMjBweDtcbiAgLS1icC1taWNyby1taW51czogIDQxMHB4O1xuICAtLWJwLW1pY3JvOiAgICAgICAgNDExcHg7XG4gIC0tYnAtbWluLW1pbnVzOiAgICA1MzZweDtcbiAgLS1icC1taW46ICAgICAgICAgIDUzN3B4O1xuICAtLWJwLW1pZC1taW51czogICAgNzY3cHg7XG4gIC0tYnAtbWlkOiAgICAgICAgICA3NjhweDtcbiAgLS1icC1tZWdhLW1pbnVzOiAgIDEwMjNweDtcbiAgLS1icC1tZWdhOiAgICAgICAgIDEwMjRweDtcbiAgLS1icC1tYXgtbWludXM6ICAgIDEzMTlweDtcbiAgLS1icC1tYXg6ICAgICAgICAgIDEzMjBweFxuXG59XG5cbi8qIEN1c3RvbSBNZWRpYSBEZWNsYXJhdGlvbnMgZm9yIEJyZWFrcG9pbnRzICovXG5cbkBjdXN0b20tbWVkaWEgLS1icC1uYW5vLW1pbnVzIChtYXgtd2lkdGg6IDMxOXB4KTtcbkBjdXN0b20tbWVkaWEgLS1icC1uYW5vIChtaW4td2lkdGg6IDMyMHB4KTtcbkBjdXN0b20tbWVkaWEgLS1icC1taWNyby1taW51cyAobWF4LXdpZHRoOiA0MTBweCk7XG5AY3VzdG9tLW1lZGlhIC0tYnAtbWljcm8gKG1pbi13aWR0aDogNDExcHgpO1xuQGN1c3RvbS1tZWRpYSAtLWJwLW1pbi1taW51cyAobWF4LXdpZHRoOiA1MzZweCk7XG5AY3VzdG9tLW1lZGlhIC0tYnAtbWluIChtaW4td2lkdGg6IDUzN3B4KTtcbkBjdXN0b20tbWVkaWEgLS1icC1taWQtbWludXMgKG1heC13aWR0aDogNzY3cHgpO1xuQGN1c3RvbS1tZWRpYSAtLWJwLW1pZCAobWluLXdpZHRoOiA3NjhweCk7XG5AY3VzdG9tLW1lZGlhIC0tYnAtbWVnYS1taW51cyAobWF4LXdpZHRoOiAxMDIzcHgpO1xuQGN1c3RvbS1tZWRpYSAtLWJwLW1lZ2EgKG1pbi13aWR0aDogMTAyNHB4KTtcbkBjdXN0b20tbWVkaWEgLS1icC1tYXgtbWludXMgKG1heC13aWR0aDogMTMxOXB4KTtcbkBjdXN0b20tbWVkaWEgLS1icC1tYXggKG1pbi13aWR0aDogMTMyMHB4KTtcbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIFRZUE9HUkFQSFlcbiAqXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmh0bWwge1xuICBmb250LXNpemU6IHZhcigtLXJlbSk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseS10ZXh0KTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICB0ZXh0LXNpemUtYWRqdXN0OiBub25lO1xuXG4gIC8qIEZsdWlkIHR5cGUgc2l6ZSBmcm9tIDE2cHggdG8gMjBweCBiZXR3ZWVuIC0tYnAtbWluIGFuZCAtLWJwLW1heCBicmVha3BvaW50cyAqL1xuXG4gIEBtZWRpYSAoLS1icC1taW4pIHtcbiAgICAmIHtcbiAgICAgIGZvbnQtc2l6ZTogMWVtOyAvKiAxNnB4IGF0IDMyMHB4ICovXG4gICAgICBmb250LXNpemU6IGNhbGMoMWVtICsgKDIwIC0gMTYpICogKCgxMDB2dyAtIDMyMHB4KS8oMTMyMCAtIDMyMCkpKTtcbiAgICB9XG4gIH1cblxuICBAbWVkaWEgKC0tYnAtbWF4KSB7XG4gICAgJiB7XG4gICAgICBmb250LXNpemU6IGNhbGMoMjBlbS8xNik7IC8qIDIwcHggYXQgMTMyMHB4ICovXG4gICAgfVxuICB9XG59XG5cbmJvZHkge1xuICBsaW5lLWhlaWdodDogMS4zNTtcbiAgY29sb3I6IHZhcigtLXRleHQpO1xuXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuXG4gIC8qIEZsdWlkIGxpbmUtaGVpZ2h0IGZyb20gMS4zNSB0byAxLjQ1IGJldHdlZW4gJGJwLW1pbiBhbmQgJGJwLW1heCBicmVha3BvaW50cyAqL1xuXG4gIEBtZWRpYSAoLS1icC1taW4pIHtcbiAgICAmIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjM1OyAvKiAxLjM1IGF0IDMyMHB4ICovXG4gICAgICBsaW5lLWhlaWdodDogY2FsYygxLjM1ZW0gKyAoMS40NSAtIDEuMzUpICogKCgxMDB2dyAtIDMyMHB4KS8oMTMyMCAtIDMyMCkpKTtcbiAgICB9XG4gIH1cblxuICBAbWVkaWEgKC0tYnAtbWF4KSB7XG4gICAgJiB7XG4gICAgICBsaW5lLWhlaWdodDogMS40NTsgLyogMS40NSBhdCAxMzIwcHggKi9cbiAgICB9XG4gIH1cbn1cblxuYSB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0KTtcbiAgJjpob3ZlciB7XG4gICAgIGNvbG9yOiB2YXIoLS1vdXItZ2xvYmFsbmF2LW9yYW5nZSk7XG4gICAgIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogY29sb3IodmFyKC0tb3VyLXByaW1hcnktb3JhbmdlKSBhKDI1JSkpO1xuICB9XG59XG5cbnN0cm9uZywgYiB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi8qXG4gICAgIEhFQURJTkcgYW5kIFRFWFQgU0laRVNcbiovXG5cbmgxLGgyLGgzLGg0LGg1LGg2IHtcbiAgaHlwaGVuczogbm9uZTtcbn1cblxuLmhlZC1hbHBoYSxcbi5oZWQtYmV0YSxcbi5oZWQtZ2FtbWEsXG4uaGVkLWRlbHRhLFxuLmhlZC1lcHNpbG9uLFxuLmhlZC16ZXRhLFxuW2NsYXNzfD1oZWQtc2VxdWVuY2VdIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogLjVlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7XG4gIGh5cGhlbnM6IG5vbmU7XG59XG5cbi5oZWQtYWxwaGEsXG4uaGVkLWJldGEsXG4uaGVkLWdhbW1hLFxuW2NsYXNzfD1oZWQtc2VxdWVuY2VdIHtcbiAgbWFyZ2luLXRvcDogM3JlbTtcbn1cblxuLmhlZC1kZWx0YSxcbi5oZWQtZXBzaWxvbixcbi5oZWQtemV0YSB7XG4gIG1hcmdpbi10b3A6IDJyZW07XG59XG5cbltjbGFzcyo9aGVkLV06bm90KHNwYW4pICsgW2NsYXNzKj1oZWQtXTpub3Qoc3Bhbikge1xuICBtYXJnaW4tdG9wOiAxcmVtO1xufVxuXG4uaGVkLWFscGhhIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5LWRpc3BsYXkpO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IHZhcigtLWFscGhhKTtcbiAgY29sb3I6IHZhcigtLWRlZXApO1xufVxuXG4uaGVkLWJldGEge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHktZGlzcGxheSk7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc2l6ZTogdmFyKC0tYmV0YSk7XG4gIGNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcbn1cblxuLmhlZC1nYW1tYSB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseS1kaXNwbGF5KTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zaXplOiB2YXIoLS1nYW1tYSk7XG4gIGNvbG9yOiB2YXIoLS10ZXh0KTtcbn1cblxuLmhlZC1kZWx0YSB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseS1kaXNwbGF5KTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiB2YXIoLS1kZWx0YSk7XG4gIGNvbG9yOiB2YXIoLS10ZXh0KTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuLmhlZC1lcHNpbG9uIHtcbiAgZm9udC1zaXplOiB2YXIoLS1lcHNpbG9uKTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6IHZhcigtLXRleHQpO1xufVxuXG4uaGVkLXpldGEge1xuICBmb250LXNpemU6IHZhcigtLXpldGEpO1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogdmFyKC0tdGV4dCk7XG59XG5cbi50ZXh0LWVwc2lsb24ge1xuICBmb250LXNpemU6IHZhcigtLWVwc2lsb24pO1xufVxuXG4udGV4dC16ZXRhIHtcbiAgZm9udC1zaXplOiB2YXIoLS16ZXRhKTtcbn1cblxuLmlzLXRleHQtY29sb3Ige1xuICBjb2xvcjogdmFyKC0tdGV4dCk7XG59XG5cbi8qXG4gICAgIFBBUkFHUkFQSFNcbiovXG5cbnAge1xuICBtYXJnaW46IDAgMCAxcmVtO1xuICBvcnBoYW5zOiAyO1xuICB3aWRvd3M6IDI7XG59XG5cbnA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi8qXG4gICAgIExJU1RTIEFORCBWQVJJQVRJT05TXG4qL1xuXG51bCB7XG4gIG1hcmdpbjogMXJlbSAwIDFyZW0gMXJlbTtcbiAgcGFkZGluZzogMDtcbiAgb3JwaGFuczogMjtcbiAgd2lkb3dzOiAyO1xufVxuXG51bCB1bCxcbm9sIG9sIHtcbiAgbWFyZ2luLXRvcDogLjVyZW07XG59XG5cbmxpID4gcCArIHVsIHtcbiAgbWFyZ2luLXRvcDogLS41cmVtO1xufVxuXG5vbCB7XG4gIG1hcmdpbjogMXJlbSAwIDFyZW0gMXJlbTtcbiAgcGFkZGluZzogMDtcbiAgb3JwaGFuczogMjtcbiAgd2lkb3dzOiAyO1xufVxuXG5saSB7XG4gIG1hcmdpbi1ib3R0b206IC41cmVtO1xufVxuXG5saTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLyogSGVscGVycyAqL1xuXG4uaC1oaWRlLWNtcy1jb250ZW50LWR1cmluZy1kZXZlbG9wbWVudCB7IC8qIEBUT0RPIGRlbGV0ZSBydWxlIGFmdGVyIGRldmVsb3BtZW50ICovXG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbkBtZWRpYSAoLS1icC1taW4pIHtcbiAgLmgtbm9iciB7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG59XG5cbi5oLXVybC13cmFwIHsgLyogYWxsb3cgVVJMcyBkaXNwbGF5ZWQgaW5saW5lIHRvIHdyYXAgKi9cbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xufVxuXG4uaC1zaG93LWlubGluZS1icC1taW4ge1xuICBkaXNwbGF5OiBub25lO1xuICBAbWVkaWEgKC0tYnAtbWluKSB7XG4gICAgJiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgfVxuICB9XG59XG5cbi5oLWZsdXNoLXRvcCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIHBhZGRpbmctdG9wOiAwO1xufVxuXG4uaC1mbHVzaC1ib3R0b20ge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBCVVRUT05TXG4gKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uYy1idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY2NlbnQpO1xuICBib3JkZXI6IDAuMDYyNXJlbSBzb2xpZCB2YXIoLS1hY2NlbnQpO1xuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtO1xuICBjb2xvcjogdmFyKC0td2hpdGUpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgaGVpZ2h0OiAyLjM3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDIuMzc1cmVtO1xuICBwYWRkaW5nOiAwIDEuODc1cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgbWFyZ2luOiAuMjVyZW0gLjVyZW0gLjI1cmVtIDA7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgQG1lZGlhICgtLWJwLW1pZCkge1xuICAgICYge1xuICAgICAgZm9udC1zaXplOiB2YXIoLS1lcHNpbG9uKTtcbiAgICB9XG4gIH1cbn1cblxuLmMtYnV0dG9uX3NtYWxsIHtcbiAgaGVpZ2h0OiAyLjM3NWVtO1xuICBsaW5lLWhlaWdodDogMi4zNzVlbTtcbiAgcGFkZGluZzogMCAxLjg3NWVtO1xuICBmb250LXNpemU6IHZhcigtLWV0YSk7XG59XG5cbi5jLWJ1dHRvbjpmaXJzdC1vZi10eXBlIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi5jLWJ1dHRvbjpmb2N1cyxcbi5jLWJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFjY2VudC1sYXJnZSk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYWNjZW50LWxhcmdlKTtcbiAgY29sb3I6ICNmZmY7XG4gIG91dGxpbmU6IDA7XG59XG5cbi5jLWJ1dHRvbltkaXNhYmxlZF0ge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIG9wYWNpdHk6IC40O1xufVxuXG4uYy1idXR0b25bZGlzYWJsZWRdOmZvY3VzLFxuLmMtYnV0dG9uW2Rpc2FibGVkXTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFjY2VudCk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYWNjZW50KTtcbn1cblxuLmMtYnV0dG9uX2JlZWZ5IHtcbiAgcGFkZGluZzogLjEyNXJlbSAyLjVyZW07XG4gIGhlaWdodDogYXV0bztcbn1cblxuLmMtYnV0dG9uX3dvcm1zeSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdvcm1zeS1hYSk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0td29ybXN5LWFhKTtcbn1cblxuLmMtYnV0dG9uX3dvcm1zeTpmb2N1cyxcbi5jLWJ1dHRvbl93b3Jtc3k6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13b3Jtc3ktYWEtbGFyZ2UpO1xuICBib3JkZXItY29sb3I6IHZhcigtLXdvcm1zeS1hYS1sYXJnZSk7XG59XG5cbi5jLWJ1dHRvbl93b3Jtc3ktZ3JhZGUge1xuICBtaW4td2lkdGg6IDdyZW07XG4gIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgcGFkZGluZy1yaWdodDogMXJlbTtcbn1cblxuLmMtYnV0dG9uX3JldmVyc2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13aGl0ZSk7XG4gIGJvcmRlcjogMC4wNjI1cmVtIHNvbGlkIHZhcigtLXdoaXRlKTtcbiAgY29sb3I6IHZhcigtLWFjY2VudCk7XG59XG5cbi5jLWJ1dHRvbl9yZXZlcnNlOmZvY3VzLFxuLmMtYnV0dG9uX3JldmVyc2U6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13aGl0ZSk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0td2hpdGUpO1xuICBjb2xvcjogdmFyKC0tYWNjZW50LWxhcmdlKTtcbn1cblxuLmMtYnV0dG9uX291dGxpbmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLWFjY2VudCk7XG59XG5cbi5jLWJ1dHRvbl9vdXRsaW5lOmZvY3VzLFxuLmMtYnV0dG9uX291dGxpbmU6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1hY2NlbnQtbGFyZ2UpO1xuICBjb2xvcjogdmFyKC0tYWNjZW50LWxhcmdlKTtcbn1cblxuLmMtYnV0dG9uLW91dGxpbmVbZGlzYWJsZWRdOmZvY3VzLFxuLmMtYnV0dG9uLW91dGxpbmVbZGlzYWJsZWRdOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiBpbmhlcml0O1xuICBjb2xvcjogdmFyKC0tYWNjZW50KTtcbn1cblxuLmMtYnV0dG9uX291dGxpbmUtcmV2ZXJzZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItY29sb3I6IHZhcigtLWxpZ2h0LWdyYXkpO1xuICBjb2xvcjogdmFyKC0tbGlnaHQtZ3JheSk7XG59XG5cbi5jLWJ1dHRvbl9vdXRsaW5lLXJldmVyc2U6Zm9jdXMsXG4uYy1idXR0b25fb3V0bGluZS1yZXZlcnNlOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0td2hpdGUpO1xuICBjb2xvcjogdmFyKC0td2hpdGUpO1xufVxuXG4uYy1idXR0b24tb3V0bGluZS1yZXZlcnNlW2Rpc2FibGVkXTpmb2N1cyxcbi5jLWJ1dHRvbi1vdXRsaW5lLXJldmVyc2VbZGlzYWJsZWRdOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiBpbmhlcml0O1xuICBjb2xvcjogdmFyKC0tbGlnaHQtZ3JheSk7XG59XG5cbi5jLWJ1dHRvbl9jbGVhciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tYWNjZW50KTtcbn1cblxuLmMtYnV0dG9uX2NsZWFyOmZvY3VzLFxuLmMtYnV0dG9uX2NsZWFyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1hY2NlbnQtbGFyZ2UpO1xufVxuXG4uYy1idXR0b25fY2xlYXJbZGlzYWJsZWRdOmZvY3VzLFxuLmMtYnV0dG9uX2NsZWFyW2Rpc2FibGVkXTpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1hY2NlbnQpO1xufVxuXG4uYy1idXR0b25fY2xlYXItcmV2ZXJzZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tbGlnaHQtZ3JheSk7XG59XG5cbi5jLWJ1dHRvbl9jbGVhci1yZXZlcnNlOmZvY3VzLFxuLmMtYnV0dG9uX2NsZWFyLXJldmVyc2U6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLXdoaXRlKTtcbn1cblxuLmMtYnV0dG9uX2NsZWFyLXJldmVyc2VbZGlzYWJsZWRdOmZvY3VzLFxuLmMtYnV0dG9uX2NsZWFyLXJldmVyc2VbZGlzYWJsZWRdOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLWxpZ2h0LWdyYXkpO1xufVxuXG4uYy1idXR0b24gLmMtaWNvbiB7XG4gIG1hcmdpbi1yaWdodDogLjVjaDtcbiAgZm9udC1zaXplOiAxLjJlbTtcbiAgbWFyZ2luLWxlZnQ6IC0xY2g7XG59XG5cbi5jLWJ1dHRvbi5oYXMtaWNvbi1iZWZvcmU6OmJlZm9yZSxcbi5jLWJ1dHRvbi5oYXMtaWNvbi1hZnRlcjo6YWZ0ZXIge1xuICBmb250LXNpemU6IDEuMWVtO1xuICBsaW5lLWhlaWdodDogMDtcbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIExBWU9VVFxuICpcbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWluLWhlaWdodDogMTAwdmg7XG59XG5cbi5sLWhlYWRlciB7XG5cbn1cblxuLmwtaGVhZGVyX2Jvb2t3b3JtcyB7XG4gIGZsZXg6IDEgMCBhdXRvO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5sLWhlYWRlcl9lbC1rOCB7XG4gIGZsZXg6IDEgMCBhdXRvO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5sLWhlYWRlcl9jYS1lbC1tcyB7XG4gIGZsZXg6IDEgMCBhdXRvO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5sLWhlYWRlcl9lbC1rNS0yMDI1IHtcbiAgZmxleDogMSAwIGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmwtaGVhZGVyX2NhLWVsLWs1IHtcbiAgZmxleDogMSAwIGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmwtaGVhZGVyX2VsLXNraWxscy1ibG9jay0yMDI0IHtcbiAgZmxleDogMSAwIGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmwtaGVhZGVyX2NhLXNraWxscy1ibG9jayB7XG4gIGZsZXg6IDEgMCBhdXRvO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5sLWhlYWRlcl9lbC11bmxvY2stcGhvbmljcyB7XG4gIGZsZXg6IDEgMCBhdXRvO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5sLWJhbm5lcl9faW5uZXItY29sdW1ucyB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgQG1lZGlhICgtLWJwLW1pZCkge1xuICAgICYge1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICB9XG4gIH1cbn1cblxuLmwtYmFubmVyX19pbm5lci1sZWZ0LWNvbHVtbiB7XG4gIEBtZWRpYSAoLS1icC1taWQpIHtcbiAgICAmIHtcbiAgICAgICAgZmxleDogMSAwIDQ1JTtcbiAgICAgICAgd2lkdGg6IDQ1JTtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAycmVtO1xuICAgIH1cbiAgfVxufVxuXG4ubC1iYW5uZXJfX2lubmVyLWxlZnQtY29sdW1uIHAge1xuICBtYXJnaW46IDFyZW0gMDtcbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxuICBAbWVkaWEgKC0tYnAtbWlkKSB7XG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG59XG5cbi5sLWJhbm5lcl9faW5uZXItcmlnaHQtY29sdW1uIHtcbiAgd2lkdGg6IDEwMCU7XG4gIEBtZWRpYSAoLS1icC1taWQpIHtcbiAgICAmIHtcbiAgICAgIGZsZXg6IDEgMCA0NSU7XG4gICAgICB3aWR0aDogNDUlO1xuICAgIH1cbiAgfVxufVxuXG4ubC1tYWluIHtcbiAgcGFkZGluZzogMXJlbSAxcmVtIDJyZW07XG59XG5cbi5sLWNvbnRlbnQge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiB2YXIoLS1jb250ZW50LXdpZHRoKTtcbiAgbWFyZ2luOiAxcmVtIGF1dG87XG59XG5cbi5sLWNvbnRlbnRfZ29sZGVuLWNvbHVtbnMge1xuICBAbWVkaWEgKC0tYnAtbWluKSB7XG4gICAgJiB7XG4gICAgICBtYXJnaW46IDJyZW0gYXV0bztcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICB9XG4gIH1cbiAgQG1lZGlhICgtLWJwLW1pZCkge1xuICAgICYge1xuICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgICBtYXJnaW46IDNyZW0gYXV0bztcbiAgICB9XG4gIH1cbn1cblxuLmwtY29udGVudF9nb2xkZW4tY29sdW1ucyAuYy1idXR0b24ge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4ubC1jb250ZW50X19nb2xkZW4tY29sdW1uLWEge1xuICAmID4gKjpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxuICBAbWVkaWEgKC0tYnAtbWluKSB7XG4gICAgJiB7XG4gICAgICBmbGV4OiAxIDAgNDUlO1xuICAgICAgd2lkdGg6IDQ1JTtcbiAgICAgIG1hcmdpbi1yaWdodDogMnJlbTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cbiAgICAmID4gKjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxufVxuXG4ubC1jb250ZW50X19nb2xkZW4tY29sdW1uLWIge1xuICBAbWVkaWEgKC0tYnAtbWluKSB7XG4gICAgJiB7XG4gICAgICBmbGV4OiAxIDAgNDUlO1xuICAgICAgd2lkdGg6IDQ1JTtcbiAgICB9XG4gICAgJiA+ICo6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG4gIH1cbn1cblxuLmwtZm9vdGVyIHtcbiAgbWFyZ2luLXRvcDogYXV0bztcbiAgYmFja2dyb3VuZDogdmFyKC0tb3VyLXByaW1hcnktZGFyay1ncmF5KTtcbn1cblxuLmwtbGlzdC1vZi1idXR0b25zIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi5sLWxpc3Qtb2YtYnV0dG9ucyBsaSB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5pcy1oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ubC1pbmRleC13cmFwcGVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYWNjZW50LWxhcmdlKTtcbiAgYmFja2dyb3VuZDpcbiAgICB1cmwoJ2Zvcm1zL3RleHR1cmUtcmVnZm9ybS13aGl0ZTE1LnN2ZycpLFxuICAgIGxpbmVhci1ncmFkaWVudCh2YXIoLS1hY2NlbnQtbGFyZ2UpIDAlLCB2YXIoLS1hY2NlbnQtbGFyZ2UpIDE4Ljc1cmVtLCB2YXIoLS13aGl0ZSkgMTguNzVyZW0sICB2YXIoLS13aGl0ZSkgMTAwJSk7XG4gIG1pbi1oZWlnaHQ6IDIwcmVtO1xuICBiYWNrZ3JvdW5kLXNpemU6XG4gICAgNjdyZW0sXG4gICAgMTAwJTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6XG4gICAgcmVwZWF0LXgsXG4gICAgbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6XG4gICAgb3ZlcmxheSxcbiAgICBub3JtYWw7XG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBCQU5ORVJcbiAqXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5jLWJhbm5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjEsMTEsNzMsMC44MSk7IC8qICMxNTBCNDkgKi9cbiAgY29sb3I6IHZhcigtLXdoaXRlKTtcbiAgcGFkZGluZzogNHJlbSAxcmVtO1xufVxuXG4uYy1iYW5uZXJfb2RlbGwtaHMtZWxhIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg0Nyw1NSwxMTgsMC44MSk7IC8qICMyZjM3NzYqL1xuICBiYWNrZ3JvdW5kLWltYWdlOlxuICAgIGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSg0Nyw1NSwxMTgsMC44MSkgMCUsIHJnYmEoNDcsNTUsMTE4LDAuODEpIDEwMCUpLCAvKiBTZXQgYXMgYSBmbGF0LCBub24tY2hhbmdpbmcgZ3JhZGllbnQgaW4gb3JkZXIgdG8gbGF5ZXIgdGhpcyBjb2xvciBsaWtlIGFuIGltYWdlICovXG4gICAgdXJsKCdwdWJsaWNhdGlvbnMvb2RlbGwtaHMtZWxhX2JhY2tncm91bmQ1MFEuanBnJyk7XG4gIGJhY2tncm91bmQtc2l6ZTpcbiAgICBjb3ZlcixcbiAgICBjb3ZlcjtcbiAgcGFkZGluZzogNHJlbSAxcmVtIDZyZW07IC8qIEJlZWZ5IHBhZGRpbmcgc2luY2UgdGhlcmUgaXMgc28gbGl0dGxlIGluIHRoZSBiYW5uZXIuICovXG59XG5cbi5jLWJhbm5lcl9jYS1rOC1tYXRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMSwxMSw3MywwLjgxKTsgLyogIzE1MEI0OSAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOlxuICAgIGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgyMSwxMSw3MywwLjgxKSAwJSwgcmdiYSgyMSwxMSw3MywwLjgxKSAxMDAlKSwgLyogU2V0IGFzIGEgZmxhdCwgbm9uLWNoYW5naW5nIGdyYWRpZW50IGluIG9yZGVyIHRvIGxheWVyIHRoaXMgY29sb3IgbGlrZSBhbiBpbWFnZSAqL1xuICAgIHVybCgncHVibGljYXRpb25zL2NhLWs4LW1hdGhfYmFja2dyb3VuZC5qcGcnKTtcbiAgYmFja2dyb3VuZC1zaXplOlxuICAgIGNvdmVyLFxuICAgIGNvdmVyO1xufVxuLmMtYmFubmVyX291cjYtOG1hdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIxLDExLDczLDAuODEpOyAvKiAjMTUwQjQ5ICovXG4gIGJhY2tncm91bmQtaW1hZ2U6XG4gICAgbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDIxLDExLDczLDAuODEpIDAlLCByZ2JhKDIxLDExLDczLDAuODEpIDEwMCUpLCAvKiBTZXQgYXMgYSBmbGF0LCBub24tY2hhbmdpbmcgZ3JhZGllbnQgaW4gb3JkZXIgdG8gbGF5ZXIgdGhpcyBjb2xvciBsaWtlIGFuIGltYWdlICovXG4gICAgdXJsKCdwdWJsaWNhdGlvbnMvb3VyNi04bWF0aF9iYWNrZ3JvdW5kNTBRLmpwZycpO1xuICBiYWNrZ3JvdW5kLXNpemU6XG4gICAgY292ZXIsXG4gICAgY292ZXI7XG59XG5cbi5jLWJhbm5lcl9vdXItaHMtbWF0aCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjEsMTEsNzMsMC44MSk7IC8qICMxNTBCNDkgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTpcbiAgICBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMjEsMTEsNzMsMC44MSkgMCUsIHJnYmEoMjEsMTEsNzMsMC44MSkgMTAwJSksIC8qIFNldCBhcyBhIGZsYXQsIG5vbi1jaGFuZ2luZyBncmFkaWVudCBpbiBvcmRlciB0byBsYXllciB0aGlzIGNvbG9yIGxpa2UgYW4gaW1hZ2UgKi9cbiAgICB1cmwoJ3B1YmxpY2F0aW9ucy9vdXItaHMtbWF0aC1hZ2FfYmFja2dyb3VuZDI1US5qcGcnKTtcbiAgYmFja2dyb3VuZC1zaXplOlxuICAgIGNvdmVyLFxuICAgIGNvdmVyO1xufVxuXG4uYy1iYW5uZXJfb3VyLWhzLW1hdGgtcGlsb3QtcGwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIxLDExLDczLDAuODEpOyAvKiAjMTUwQjQ5ICovXG4gIGJhY2tncm91bmQtaW1hZ2U6XG4gICAgbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDIxLDExLDczLDAuODEpIDAlLCByZ2JhKDIxLDExLDczLDAuODEpIDEwMCUpLCAvKiBTZXQgYXMgYSBmbGF0LCBub24tY2hhbmdpbmcgZ3JhZGllbnQgaW4gb3JkZXIgdG8gbGF5ZXIgdGhpcyBjb2xvciBsaWtlIGFuIGltYWdlICovXG4gICAgdXJsKCdwdWJsaWNhdGlvbnMvb3VyLWhzLW1hdGgtTVZQUGlsb3RfTGFuZGluZ1BhZ2VfSW1hZ2U1MFEuanBnJyk7XG4gIGJhY2tncm91bmQtc2l6ZTpcbiAgICBjb3ZlcixcbiAgICBjb3Zlcjtcbn1cblxuLmMtYmFubmVyX291ci1ocy1tYXRoLW5jIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMSwxMSw3MywwLjgxKTsgLyogIzE1MEI0OSAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOlxuICAgIGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgyMSwxMSw3MywwLjgxKSAwJSwgcmdiYSgyMSwxMSw3MywwLjgxKSAxMDAlKSwgLyogU2V0IGFzIGEgZmxhdCwgbm9uLWNoYW5naW5nIGdyYWRpZW50IGluIG9yZGVyIHRvIGxheWVyIHRoaXMgY29sb3IgbGlrZSBhbiBpbWFnZSAqL1xuICAgIHVybCgncHVibGljYXRpb25zL291ci1ocy1tYXRoLW5jX2JhY2tncm91bmQyNVEuanBnJyk7XG4gIGJhY2tncm91bmQtc2l6ZTpcbiAgICBjb3ZlcixcbiAgICBjb3Zlcjtcbn1cblxuLmMtYmFubmVyX291ci1ocy1wcmVjYWxjdWx1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjEsMTEsNzMsMC44MSk7IC8qICMxNTBCNDkgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTpcbiAgICBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMjEsMTEsNzMsMC44MSkgMCUsIHJnYmEoMjEsMTEsNzMsMC44MSkgMTAwJSksIC8qIFNldCBhcyBhIGZsYXQsIG5vbi1jaGFuZ2luZyBncmFkaWVudCBpbiBvcmRlciB0byBsYXllciB0aGlzIGNvbG9yIGxpa2UgYW4gaW1hZ2UgKi9cbiAgICB1cmwoJ3B1YmxpY2F0aW9ucy9vdXItaHMtcHJlY2FsY3VsdXNfYmFja2dyb3VuZC5qcGcnKTtcbiAgYmFja2dyb3VuZC1zaXplOlxuICAgIGNvdmVyLFxuICAgIGNvdmVyO1xufVxuXG4uYy1iYW5uZXJfb3VyLWs1LW1hdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIxLDExLDczLDAuODEpOyAvKiAjMTUwQjQ5ICovXG4gIGJhY2tncm91bmQtaW1hZ2U6XG4gICAgbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDIxLDExLDczLDAuODEpIDAlLCByZ2JhKDIxLDExLDczLDAuODEpIDEwMCUpLCAvKiBTZXQgYXMgYSBmbGF0LCBub24tY2hhbmdpbmcgZ3JhZGllbnQgaW4gb3JkZXIgdG8gbGF5ZXIgdGhpcyBjb2xvciBsaWtlIGFuIGltYWdlICovXG4gICAgdXJsKCdwdWJsaWNhdGlvbnMvb3VybWF0aC1rNV9iYWNrZ3JvdW5kX29wdGltaXplZC5zdmcnKTtcbiAgYmFja2dyb3VuZC1zaXplOlxuICAgIGNvdmVyLFxuICAgIGNvdmVyO1xufVxuXG4uYy1iYW5uZXJfb3VyLXBrNS1tYXRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMSwxMSw3MywwLjgxKTsgLyogIzE1MEI0OSAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOlxuICAgIGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgyMSwxMSw3MywwLjgxKSAwJSwgcmdiYSgyMSwxMSw3MywwLjgxKSAxMDAlKSwgLyogU2V0IGFzIGEgZmxhdCwgbm9uLWNoYW5naW5nIGdyYWRpZW50IGluIG9yZGVyIHRvIGxheWVyIHRoaXMgY29sb3IgbGlrZSBhbiBpbWFnZSAqL1xuICAgIHVybCgncHVibGljYXRpb25zL3BrNS1tYXRoLXBpbG90X2JhY2tncm91bmQuanBnJyk7XG4gIGJhY2tncm91bmQtc2l6ZTpcbiAgICBjb3ZlcixcbiAgICBjb3Zlcjtcbn1cblxuLmMtYmFubmVyX2s4LW1hdGgtcGlsb3QtcGwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIxLDExLDczLDAuODEpOyAvKiAjMTUwQjQ5ICovXG4gIGJhY2tncm91bmQtaW1hZ2U6XG4gICAgbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDIxLDExLDczLDAuODEpIDAlLCByZ2JhKDIxLDExLDczLDAuODEpIDEwMCUpLCAvKiBTZXQgYXMgYSBmbGF0LCBub24tY2hhbmdpbmcgZ3JhZGllbnQgaW4gb3JkZXIgdG8gbGF5ZXIgdGhpcyBjb2xvciBsaWtlIGFuIGltYWdlICovXG4gICAgdXJsKCdwdWJsaWNhdGlvbnMvb3VybWF0aC1rNV9iYWNrZ3JvdW5kX29wdGltaXplZC5zdmcnKTtcbiAgYmFja2dyb3VuZC1zaXplOlxuICAgIGNvdmVyLFxuICAgIGNvdmVyO1xufVxuXG4uYy1iYW5uZXJfYm9va3dvcm1zIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxNyw2NSw2NSwwLjgxKTsgLyogIzExNDE0MSAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOlxuICAgIGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgxNyw2NSw2NSwwLjgxKSAwJSwgcmdiYSgxNyw2NSw2NSwwLjgxKSAxMDAlKSwgLyogU2V0IGFzIGEgZmxhdCwgbm9uLWNoYW5naW5nIGdyYWRpZW50IGluIG9yZGVyIHRvIGxheWVyIHRoaXMgY29sb3IgbGlrZSBhbiBpbWFnZSAqL1xuICAgIHVybCgncHVibGljYXRpb25zL2Jvb2t3b3Jtc19iYWNrZ3JvdW5kNTBRXzIwMjIuanBnJyk7XG4gIGJhY2tncm91bmQtc2l6ZTpcbiAgICBjb3ZlcixcbiAgICBjb3Zlcjtcbn1cblxuLmMtYmFubmVyX2Jvb2t3b3Jtcy1waWxvdC1wbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTcsNjUsNjUsMC44MSk7IC8qICMxMTQxNDEgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTpcbiAgICBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMTcsNjUsNjUsMC44MSkgMCUsIHJnYmEoMTcsNjUsNjUsMC44MSkgMTAwJSksIC8qIFNldCBhcyBhIGZsYXQsIG5vbi1jaGFuZ2luZyBncmFkaWVudCBpbiBvcmRlciB0byBsYXllciB0aGlzIGNvbG9yIGxpa2UgYW4gaW1hZ2UgKi9cbiAgICB1cmwoJ3B1YmxpY2F0aW9ucy9ib29rd29ybXMtcGlsb3QtcGwtbGFuZGluZy1wYWdlLWJhY2tncm91bmQ1MFEuanBnJyk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOlxuICAgIGNvdmVyLFxuICAgIGNvdmVyO1xufVxuXG4uYy1iYW5uZXJfYnctZGkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13b3Jtc3kpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ3B1YmxpY2F0aW9ucy9idy1wbF9iYWNrZ3JvdW5kNTBRLmpwZycpO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjb2xvcjogdmFyKC0tdGV4dCk7XG4gIGJveC1zaGFkb3c6XG4gICAgaW5zZXQgMCAuMTI1cmVtIDAgMCB2YXIoLS13b3Jtc3kpLFxuICAgIGluc2V0IDAgLTAuMTI1cmVtIDAgMCB2YXIoLS13b3Jtc3kpO1xufVxuXG4uYy1iYW5uZXJfYnctcGwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13b3Jtc3kpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ3B1YmxpY2F0aW9ucy9idy1wbF9iYWNrZ3JvdW5kNTBRLmpwZycpO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjb2xvcjogdmFyKC0tdGV4dCk7XG4gIGJveC1zaGFkb3c6XG4gICAgaW5zZXQgMCAuMTI1cmVtIDAgMCB2YXIoLS13b3Jtc3kpLFxuICAgIGluc2V0IDAgLTAuMTI1cmVtIDAgMCB2YXIoLS13b3Jtc3kpO1xufVxuXG4uYy1iYW5uZXJfZWwtazgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10ZXh0LCByZ2IoNjksNTMsNTQpKTtcbiAgYmFja2dyb3VuZC1pbWFnZTpcbiAgICBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoNjksNTMsNTQsMC44NSkgMCUsIHJnYmEoNjksNTMsNTQsMC44NSkgMTAwJSksIC8qIFNldCBhcyBhIGZsYXQsIG5vbi1jaGFuZ2luZyBncmFkaWVudCBpbiBvcmRlciB0byBsYXllciB0aGlzIGNvbG9yIGxpa2UgYW4gaW1hZ2UgLSBDb2xvcnMgaW4gZ3JhZGllbnQgYXJlIFJHQkEgZXF1aXZhbGVudHMgb2YgdmFyKC0tdGV4dCkgKyA4NSUgQWxwaGEgKi9cbiAgICB1cmwoJ3B1YmxpY2F0aW9ucy9lbC1rOF9iYWNrZ3JvdW5kNTBRLmpwZycpO1xuICBiYWNrZ3JvdW5kLXNpemU6XG4gICAgY292ZXIsXG4gICAgY292ZXI7XG4gIGJhY2tncm91bmQtYmxlbmQtbW9kZTpcbiAgICBub3JtYWwsXG4gICAgbm9ybWFsO1xufVxuXG4uYy1iYW5uZXJfY2EtZWwtbXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10ZXh0LCByZ2IoNjksNTMsNTQpKTtcbiAgYmFja2dyb3VuZC1pbWFnZTpcbiAgICBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoNjksNTMsNTQsMC44NSkgMCUsIHJnYmEoNjksNTMsNTQsMC44NSkgMTAwJSksIC8qIFNldCBhcyBhIGZsYXQsIG5vbi1jaGFuZ2luZyBncmFkaWVudCBpbiBvcmRlciB0byBsYXllciB0aGlzIGNvbG9yIGxpa2UgYW4gaW1hZ2UgLSBDb2xvcnMgaW4gZ3JhZGllbnQgYXJlIFJHQkEgZXF1aXZhbGVudHMgb2YgdmFyKC0tdGV4dCkgKyA4NSUgQWxwaGEgKi9cbiAgICB1cmwoJ3B1YmxpY2F0aW9ucy9PVVJfQmFubmVyX0VMX0NBXzYtOC5qcGcnKTtcbiAgYmFja2dyb3VuZC1zaXplOlxuICAgIGNvdmVyLFxuICAgIGNvdmVyO1xuICBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6XG4gICAgbm9ybWFsLFxuICAgIG5vcm1hbDtcbn1cblxuLmMtYmFubmVyX2VsLWs1LTIwMjUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10ZXh0LCByZ2IoNjksNTMsNTQpKTtcbiAgYmFja2dyb3VuZC1pbWFnZTpcbiAgICBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoNjksNTMsNTQsMC44NSkgMCUsIHJnYmEoNjksNTMsNTQsMC44NSkgMTAwJSksIC8qIFNldCBhcyBhIGZsYXQsIG5vbi1jaGFuZ2luZyBncmFkaWVudCBpbiBvcmRlciB0byBsYXllciB0aGlzIGNvbG9yIGxpa2UgYW4gaW1hZ2UgLSBDb2xvcnMgaW4gZ3JhZGllbnQgYXJlIFJHQkEgZXF1aXZhbGVudHMgb2YgdmFyKC0tdGV4dCkgKyA4NSUgQWxwaGEgKi9cbiAgICB1cmwoJ3B1YmxpY2F0aW9ucy9lbC1rNS0yMDI1X2JhY2tncm91bmQuanBnJyk7XG4gIGJhY2tncm91bmQtc2l6ZTpcbiAgICBjb3ZlcixcbiAgICBjb3ZlcjtcbiAgYmFja2dyb3VuZC1ibGVuZC1tb2RlOlxuICAgIG5vcm1hbCxcbiAgICBub3JtYWw7XG59XG5cbi5jLWJhbm5lcl9jYS1lbC1rNSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRleHQsIHJnYig2OSw1Myw1NCkpO1xuICBiYWNrZ3JvdW5kLWltYWdlOlxuICAgIGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSg2OSw1Myw1NCwwLjg1KSAwJSwgcmdiYSg2OSw1Myw1NCwwLjg1KSAxMDAlKSwgLyogU2V0IGFzIGEgZmxhdCwgbm9uLWNoYW5naW5nIGdyYWRpZW50IGluIG9yZGVyIHRvIGxheWVyIHRoaXMgY29sb3IgbGlrZSBhbiBpbWFnZSAtIENvbG9ycyBpbiBncmFkaWVudCBhcmUgUkdCQSBlcXVpdmFsZW50cyBvZiB2YXIoLS10ZXh0KSArIDg1JSBBbHBoYSAqL1xuICAgIHVybCgncHVibGljYXRpb25zL2VsLWs1LTIwMjVfYmFja2dyb3VuZC5qcGcnKTtcbiAgYmFja2dyb3VuZC1zaXplOlxuICAgIGNvdmVyLFxuICAgIGNvdmVyO1xuICBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6XG4gICAgbm9ybWFsLFxuICAgIG5vcm1hbDtcbn1cblxuLmMtYmFubmVyX2VsLXBpbG90LXBsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGV4dCwgcmdiKDY5LDUzLDU0KSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6XG4gICAgbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDY5LDUzLDU0LDAuODUpIDAlLCByZ2JhKDY5LDUzLDU0LDAuODUpIDEwMCUpLCAvKiBTZXQgYXMgYSBmbGF0LCBub24tY2hhbmdpbmcgZ3JhZGllbnQgaW4gb3JkZXIgdG8gbGF5ZXIgdGhpcyBjb2xvciBsaWtlIGFuIGltYWdlIC0gQ29sb3JzIGluIGdyYWRpZW50IGFyZSBSR0JBIGVxdWl2YWxlbnRzIG9mIHZhcigtLXRleHQpICsgODUlIEFscGhhICovXG4gICAgdXJsKCdwdWJsaWNhdGlvbnMvZWwtazhfYmFja2dyb3VuZDUwUS5qcGcnKTtcbiAgYmFja2dyb3VuZC1zaXplOlxuICAgIGNvdmVyLFxuICAgIGNvdmVyO1xuICBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6XG4gICAgbm9ybWFsLFxuICAgIG5vcm1hbDtcbn1cblxuLmMtYmFubmVyX2VsLXNraWxscy1ibG9jay0yMDI0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGV4dCwgcmdiKDY5LDUzLDU0KSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6XG4gICAgbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDY5LDUzLDU0LDAuODUpIDAlLCByZ2JhKDY5LDUzLDU0LDAuODUpIDEwMCUpLCAvKiBTZXQgYXMgYSBmbGF0LCBub24tY2hhbmdpbmcgZ3JhZGllbnQgaW4gb3JkZXIgdG8gbGF5ZXIgdGhpcyBjb2xvciBsaWtlIGFuIGltYWdlIC0gQ29sb3JzIGluIGdyYWRpZW50IGFyZSBSR0JBIGVxdWl2YWxlbnRzIG9mIHZhcigtLXRleHQpICsgODUlIEFscGhhICovXG4gICAgdXJsKCdwdWJsaWNhdGlvbnMvZWwtc2tpbGxzLWJsb2NrLTIwMjQtYmFja2dyb3VuZC5qcGcnKTtcbiAgYmFja2dyb3VuZC1zaXplOlxuICAgIGNvdmVyLFxuICAgIGNvdmVyO1xuICBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6XG4gICAgbm9ybWFsLFxuICAgIG5vcm1hbDtcbn1cblxuLmMtYmFubmVyX2NhLXNraWxscy1ibG9jayB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRleHQsIHJnYig2OSw1Myw1NCkpO1xuICBiYWNrZ3JvdW5kLWltYWdlOlxuICAgIGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSg2OSw1Myw1NCwwLjg1KSAwJSwgcmdiYSg2OSw1Myw1NCwwLjg1KSAxMDAlKSwgLyogU2V0IGFzIGEgZmxhdCwgbm9uLWNoYW5naW5nIGdyYWRpZW50IGluIG9yZGVyIHRvIGxheWVyIHRoaXMgY29sb3IgbGlrZSBhbiBpbWFnZSAtIENvbG9ycyBpbiBncmFkaWVudCBhcmUgUkdCQSBlcXVpdmFsZW50cyBvZiB2YXIoLS10ZXh0KSArIDg1JSBBbHBoYSAqL1xuICAgIHVybCgncHVibGljYXRpb25zL2NhX3NiX2Jhbm5lci5qcGcnKTtcbiAgYmFja2dyb3VuZC1zaXplOlxuICAgIGNvdmVyLFxuICAgIGNvdmVyO1xuICBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6XG4gICAgbm9ybWFsLFxuICAgIG5vcm1hbDtcbn1cblxuLmMtYmFubmVyX2VsLXVubG9jay1waG9uaWNzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGV4dCwgcmdiKDY5LDUzLDU0KSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6XG4gICAgbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDY5LDUzLDU0LDAuODUpIDAlLCByZ2JhKDY5LDUzLDU0LDAuODUpIDEwMCUpLCAvKiBTZXQgYXMgYSBmbGF0LCBub24tY2hhbmdpbmcgZ3JhZGllbnQgaW4gb3JkZXIgdG8gbGF5ZXIgdGhpcyBjb2xvciBsaWtlIGFuIGltYWdlIC0gQ29sb3JzIGluIGdyYWRpZW50IGFyZSBSR0JBIGVxdWl2YWxlbnRzIG9mIHZhcigtLXRleHQpICsgODUlIEFscGhhICovXG4gICAgdXJsKCdwdWJsaWNhdGlvbnMvZWwtdW5sb2NrLXBob25pY3NfYmFja2dyb3VuZC5qcGcnKTtcbiAgYmFja2dyb3VuZC1zaXplOlxuICAgIGNvdmVyLFxuICAgIGNvdmVyO1xuICBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6XG4gICAgbm9ybWFsLFxuICAgIG5vcm1hbDtcbn1cblxuLmMtYmFubmVyIFtjbGFzc149XCJoZWRcIl0ge1xuICBjb2xvcjogdmFyKC0td2hpdGUpO1xuICBtYXJnaW4tdG9wOiAwO1xufVxuXG4uYy1iYW5uZXJfX2lubmVyIHtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIG1heC13aWR0aDogdmFyKC0tY29udGVudC13aWR0aCk7XG59XG5cbi5jLWJhbm5lcl9fZGVrIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5LWRpc3BsYXkpO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IHZhcigtLWdhbW1hKTtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbn1cblxuLmMtYmFubmVyX19kZWsgYSB7XG4gIGNvbG9yOiB2YXIoLS13aGl0ZSk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWxpZ2h0LWdyYXkpO1xufVxuXG4uYy1iYW5uZXJfX2RlayBhOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS13aGl0ZSk7XG59XG5cbi5jLWJhbm5lcl9faGVkIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5LWRpc3BsYXkpO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IHZhcigtLWFscGhhKTtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbi5jLWJhbm5lcl9idy1wbCAuYy1iYW5uZXJfX2hlZCB7XG4gIGNvbG9yOiB2YXIoLS13b3Jtc3ktYWEpO1xufVxuXG4uYy1iYW5uZXJfX2xlZGUgYSxcbi5jLWJhbm5lcl9fZmluZXByaW50IGEge1xuICBjb2xvcjogdmFyKC0td2hpdGUpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1saWdodC1ncmF5KTtcbn1cblxuLmMtYmFubmVyX19sZWRlIGE6aG92ZXIsXG4uYy1iYW5uZXJfX2ZpbmVwcmludCBhOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS13aGl0ZSk7XG59XG5cbi5jLWJhbm5lcl9fZm9ybSB7XG59XG5cbi5jLWJhbm5lcl9fY2hvb3Nlci1ncm91cDpmaXJzdC1vZi10eXBlIHtcbiAgbWFyZ2luLXRvcDogMy41cmVtO1xufVxuXG4uYy1iYW5uZXJfX2Nob29zZXItZ3JvdXAuaXMtZGlzYWJsZWQsXG4uYy1iYW5uZXJfX2Fja25vd2xlZGdtZW50LmlzLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogLjQ7XG59XG5cbi5jLWJhbm5lcl9fY2hvb3Nlci1ncm91cC5pcy1kaXNhYmxlZCAuYy1idXR0b25fb3V0bGluZS1yZXZlcnNlOmZvY3VzLFxuLmMtYmFubmVyX19jaG9vc2VyLWdyb3VwLmlzLWRpc2FibGVkIC5jLWJ1dHRvbl9vdXRsaW5lLXJldmVyc2U6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1saWdodC1ncmF5KTtcbiAgY29sb3I6IHZhcigtLWxpZ2h0LWdyYXkpO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qIENvbnRhaW5lciBmb3IgYSBjaGVja2JveCArIGxhYmVsIHBhaXIgKi9cbi5jLWJhbm5lcl9fYWNrbm93bGVkZ21lbnQge1xuICBtYXJnaW4tdG9wOiAxcmVtO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICBnYXA6IDAuNWVtO1xufVxuXG4uYy1iYW5uZXJfX2xhYmVsIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogT2ZmLXNjcmVlbiByYWRpbyBidXR0b24gc3R5bGVzIGFuZCBjb250ZXh0cyAqL1xuXG4uYy1iYW5uZXJfX3JhZGlvIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMTByZW07XG59XG5cbi5jLWJhbm5lcl9fcmFkaW86Zm9jdXMtdmlzaWJsZSArIC5jLWJ1dHRvbiB7XG4gIGJveC1zaGFkb3c6XG4gICAgaW5zZXQgMCAwIDAgMC4xNWVtIHZhcigtLWFhLW9yYW5nZSksXG4gICAgaW5zZXQgMCAwIDAgMC4zZW0gI2ZmZjtcbn1cblxuLmMtYmFubmVyX19yYWRpbzpjaGVja2VkICsgLmMtYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdmFyKC0td2hpdGUpO1xuICBjb2xvcjogdmFyKC0tYWNjZW50KTtcbn1cblxuLyogQERlc2lnbmVyczogVGhpcyBpcyBhIHNwZWNpYWwgY2FzZSBmb3IgdGhlIFBLNSBNYXRoIFBpbG90LCB3aGVyZSB3ZSBoYXZlIGdyYWRlIFBLIGRpc2FibGVkIG9uIGluaXRpYWwgbGF1bmNoLiAqL1xuLmMtYmFubmVyX19yYWRpb1tkYXRhLXBlcm1hbmVudGx5LWRpc2FibGVkXSArIC5jLWJ1dHRvbiB7XG4gIGNvbG9yOiB2YXIoLS1saWdodC1ncmF5KTtcbiAgb3BhY2l0eTogMC42NTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgYmFja2dyb3VuZC1pbWFnZTogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudChcbiAgICA0NWRlZyxcbiAgICAjZmZmNCxcbiAgICAjZmZmNCAwLjA4ZW0sXG4gICAgdHJhbnNwYXJlbnQgMC4wOGVtLFxuICAgIHRyYW5zcGFyZW50IDAuNWVtXG4gICk7XG59XG5cbi8qIENoZWNrYm94IHN0eWxlcyBhbmQgY29udGV4dHMgKi9cblxuLmMtYmFubmVyX19jaGVja2JveDpmb2N1cy12aXNpYmxlICsgLmMtYmFubmVyX19sYWJlbCB7XG4gIGJveC1zaGFkb3c6XG4gICAgMCAwIDAgMC4xNWVtICNmZmYsXG4gICAgMCAwIDAgMC4zZW0gdmFyKC0tYWEtb3JhbmdlKTtcbn1cblxuLyogU3VibWl0IGJ1dHRvbiBzdHlsZXMgYW5kIGNvbnRleHRzICovXG5cbi5jLWJhbm5lcl9fc3VibWl0IHtcbiAgbWFyZ2luLXRvcDogMnJlbTtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbi5jLWJhbm5lcl9fc3VibWl0ID4gYTpmb2N1cy12aXNpYmxlIHtcbiAgYm94LXNoYWRvdzpcbiAgICBpbnNldCAwIDAgMCAwLjE1ZW0gdmFyKC0tYWEtb3JhbmdlKSxcbiAgICBpbnNldCAwIDAgMCAwLjNlbSAjZmZmO1xufVxuXG4uYy1iYW5uZXJfX2ZpbmVwcmludCB7XG4gIG1hcmdpbi10b3A6IDFyZW07XG4gIGZvbnQtc2l6ZTogLjc1cmVtO1xufVxuXG4vKiBUaGUgZm9sbG93aW5nIGNvbnRhaW5pbmcgZWxlbWVudHMgYXJlIHVzZWQgaW5zdGVhZCBvZiBhIGZvcm0gdG8gY29udGFpbiB0aGUgZ3JhZGUgY2hvaWNlcyB3aGVuIHRoZSBvcHRpb25zIG1heSBzaW1wbHkgYmUgbGlua3MgaW5zdGVhZCBvZiBpbnB1dCBmaWVsZHMuICovXG5cbi5jLWJhbm5lcl9fY291cnNlLWNob2ljZXMgLmMtYnV0dG9uIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBtYXJnaW46IC41cmVtIGF1dG87XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogOXJlbTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLmMtYmFubmVyX19jb3Vyc2UtY2hvaWNlcyAuYy1idXR0b246Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAxLjI1cmVtO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMzc1cHgpIHtcblxuICAuYy1iYW5uZXJfX2NvdXJzZS1jaG9pY2VzIHtcbiAgICAtLW1heC13aWR0aDogMjguNXJlbTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBtYXgtd2lkdGg6IHZhcigtLW1heC13aWR0aCk7IC8qIGNvbnN0cmFpbiB0aGUgd2lkdGggb2YgdGhlIG9wdGlvbiBjb250YWluZXIsIHByZXZlbnRpbmcgYXdrd2FyZCB3cmFwcyAqL1xuICAgICYuYy1iYW5uZXJfX2NvdXJzZS1jaG9pY2VzX2NhLWs4IHtcbiAgICAgIC0tbWF4LXdpZHRoOiAzMHJlbTtcbiAgICB9XG4gIH1cblxuICAuYy1iYW5uZXJfX2NvdXJzZS1jaG9pY2VzIC5jLWJ1dHRvbixcbiAgLmMtYmFubmVyX19jb3Vyc2UtY2hvaWNlcyAuYy1idXR0b246Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IC4yNXJlbTtcbiAgICBmbGV4OiAwIDAgOHJlbTtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IC43NXJlbTtcbiAgfVxuXG59XG5cbi5jLWJhbm5lcl9fY3RhIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5LWRpc3BsYXkpO1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogdmFyKC0td2hpdGUpO1xuICBtYXJnaW4tdG9wOiAycmVtO1xuICBmb250LXNpemU6IHZhcigtLWdhbW1hKTtcbn1cblxuLmMtYmFubmVyX19jdGFfYWx0IHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5LXRleHQpO1xuICBmb250LXNpemU6IHZhcigtLWVwc2lsb24pO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAzNzVweCkge1xuICAuYy1iYW5uZXJfX2N0YSBiciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4uYy1iYW5uZXJfX2ltZyB7XG4gIGRpc3BsYXk6ICBibG9jaztcbiAgbWF4LXdpZHRoOiA4MCU7XG4gIG1hcmdpbi1sZWZ0OiAgYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4uYy1iYW5uZXJfX3ZpZGVvLXdyYXBwZXIge1xuICBwYWRkaW5nOiA1Ni4yNSUgMCAwIDA7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJveC1zaGFkb3c6XG4gICAgLjEyNXJlbSAuMTI1cmVtIC4xMjVyZW0gMCByZ2JhKDAsIDAsIDAsIC4xMjUpLFxuICAgIDFweCAxcHggMCAwIHJnYmEoMCwgMCwgMCwgLjI1KTtcbiAgei1pbmRleDogMTA7XG59XG5cbi5jLWJhbm5lcl9fdmlkZW8tc291cmNlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBBTk5PVU5DRU1FTlRcbiAqXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5jLWFubm91bmNlbWVudCB7XG4gIGJhY2tncm91bmQ6ICMwMDg0NzA7XG4gIGNvbG9yOiB2YXIoLS13aGl0ZSk7XG4gIHBhZGRpbmc6IDAgMnJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBAbWVkaWEgKC0tYnAtbWlkKSB7XG4gICAgJiB7XG4gICAgICBmb250LXNpemU6IHZhcigtLXpldGEpO1xuICAgIH1cbiAgfVxuICBAbWVkaWEgKC0tYnAtbWVnYSkge1xuICAgICYge1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgIGxpbmVhci1ncmFkaWVudCg5MGRlZywgI2ZmZmZmZiAwJSwgI2ZmZmZmZiA0OS45NzUlLCAjMDA4NDcwIDUwJSwgIzAwODQ3MCAxMDAlKTtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICB9XG59XG5cbi5jLWFubm91bmNlbWVudCBbY2xhc3NePVwiaGVkXCJdIHtcbiAgY29sb3I6IHZhcigtLXdoaXRlKTtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxuLmMtYW5ub3VuY2VtZW50IGEge1xuICBjb2xvcjogdmFyKC0tbGlnaHQtZ3JheSk7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5jLWFubm91bmNlbWVudCBhOmhvdmVyLFxuLmMtYW5ub3VuY2VtZW50IGE6YWN0aXZlLFxuLmMtYW5ub3VuY2VtZW50IGE6dmlzaXRlZCB7XG4gIGNvbG9yOiB2YXIoLS13aGl0ZSk7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5jLWFubm91bmNlbWVudF9faW5uZXIge1xuICBtYXJnaW46IDAgYXV0bztcbiAgbWF4LXdpZHRoOiB2YXIoLS1jb250ZW50LXdpZHRoKTtcbiAgYmFja2dyb3VuZDogIzAwODQ3MDtcbiAgcGFkZGluZzogMS41cmVtIDA7XG59XG5cbi5jLWFubm91bmNlbWVudF9faW5uZXIgcCB7XG4gIG1hcmdpbjogMDtcbiAgQG1lZGlhICgtLWJwLW1lZ2EpIHtcbiAgICAmIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMnJlbTtcbiAgICB9XG4gIH1cbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIENUQSBTaWRlYmFyXG4gKiBBcHByb3ByaWF0ZSBmb3IgbXVsdGktY29sdW1uIGxheW91dHMgaW4gdGhlIGxhbmRpbmcgcGFnZSBtYWluIGNvbnRlbnQgYXJlYS5cbiAqXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5jLWN0YS1zaWRlYmFyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYm9yZGVyOiAuMTI1cmVtIHNvbGlkICNlYmViZWI7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1hcmdpbi10b3A6IDJyZW07XG4gICYgPiAqOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG4gICYgPiAqOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuICBAbWVkaWEgKC0tYnAtbWluKSB7XG4gICAgJiB7XG4gICAgICBtYXJnaW4tdG9wOiAtMXJlbTtcbiAgICAgIG1hcmdpbi1ib3R0b206IC0xLjEyNXJlbTtcbiAgICB9XG4gIH1cbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIERJUkVDVE9SWVxuICpcbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmMtZGlyZWN0b3J5IHtcbiAgbWF4LXdpZHRoOiB2YXIoLS1jb250ZW50LXdpZHRoKTtcbiAgbWFyZ2luOiBhdXRvO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4uYy1kaXJlY3RvcnlfX3NlcXVlbmNlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIG1hcmdpbjogMXJlbSBhdXRvO1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gIEBtZWRpYSAoLS1icC1taWQpIHtcbiAgICAmIHtcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgbWFyZ2luOiAycmVtIGF1dG87XG4gICAgfVxuICB9XG59XG5cbi5jLWRpcmVjdG9yeV9faGVkIHtcbiAgZm9udC1zaXplOiB2YXIoLS1nYW1tYSk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseS1kaXNwbGF5KTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luOiAwIDJyZW0gMS41cmVtIDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGZsZXg6IDEgMCAxMDAlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBAbWVkaWEgKC0tYnAtbWlkKSB7XG4gICAgJiB7XG4gICAgICBmbGV4OiAwIDEgYXV0bztcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIG1hcmdpbi1yaWdodDogM3JlbTtcbiAgICAgIGZvbnQtc2l6ZTogdmFyKC0tYmFzZSk7XG4gICAgICBtaW4td2lkdGg6IGF1dG87XG4gICAgfVxuICB9XG59XG5cbi5jLWRpcmVjdG9yeV9fbGlzdGluZyB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMCAycmVtIDFyZW0gMDtcbiAgZmxleDogMCAxIGF1dG87XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIEBtZWRpYSAoLS1icC1taWQpIHtcbiAgICAmIHtcbiAgICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAycmVtO1xuICAgIH1cbiAgfVxufVxuXG4uYy1kaXJlY3RvcnlfX3N1YmhlZCB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tYmFzZSk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseS1kaXNwbGF5KTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbn1cblxuLmMtZGlyZWN0b3J5X19zdWJsaXN0aW5nIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogRklHVVJFXG4gKlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uYy1maWd1cmUge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgQG1lZGlhICgtLWJwLW1pZCkge1xuICAgICYge1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICB9XG4gIH1cbn1cblxuLmMtZmlndXJlX192aWRlbyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWdyYXkpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aWR0aDogMTAwJTtcbiAgQG1lZGlhICgtLWJwLW1pZCkge1xuICAgICYge1xuICAgICAgZmxleDogMSAwIDYzJTtcbiAgICAgIHdpZHRoOiA2MyU7XG4gICAgfVxuICB9XG59XG5cbi5jLWZpZ3VyZV9fdmlkZW8td3JhcHBlciB7XG4gIHBhZGRpbmc6IDU2LjI1JSAwIDAgMDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmMtZmlndXJlX192aWRlby1zb3VyY2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLmMtZmlndXJlX19jYXB0aW9uIHtcbiAgZm9udC1zaXplOiB2YXIoLS1nYW1tYSk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseS1kaXNwbGF5KTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWFyZ2luOiAxcmVtIDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMCAwIDNyZW0gMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXgtd2lkdGg6IDIwZW07XG4gIEBtZWRpYSAoLS1icC1taWQpIHtcbiAgICAmIHtcbiAgICAgICAgcGFkZGluZzogMCAwIDAgM3JlbTtcbiAgICAgICAgZmxleDogMSAxIDM3JTtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG4gIH1cbn1cblxuLmMtZmlndXJlX19jYXB0aW9uOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICB3aWR0aDogMnJlbTtcbiAgaGVpZ2h0OiAycmVtO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW4tbGVmdDogLTFyZW07XG4gIGJvcmRlci10b3A6IDFyZW0gc29saWQgdmFyKC0tZ3JheSk7XG4gIGJvcmRlci1sZWZ0OiAxcmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6IDFyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDFyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gIEBtZWRpYSAoLS1icC1taWQpIHtcbiAgICAmIHtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgbWFyZ2luLXRvcDogLTFyZW07XG4gICAgICBib3JkZXItdG9wOiAxcmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLWxlZnQ6IDFyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItcmlnaHQ6IDFyZW0gc29saWQgdmFyKC0tZ3JheSk7XG4gICAgICBib3JkZXItYm90dG9tOiAxcmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIH1cbiAgfVxufVxuXG4uYy1maWd1cmVfX2xpc3Rpbmcge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDAgMCAxcmVtIDA7XG4gIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gIGZsZXg6IDAgMSAzMyU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIEBtZWRpYSAoLS1icC1taWQpIHtcbiAgICAmIHtcbiAgICAgIGZsZXg6IDEgMSAyNSU7XG4gICAgfVxuICB9XG59XG5cbi5jLWZpZ3VyZV9fc3ViaGVkIHtcbiAgZm9udC1zaXplOiB2YXIoLS1iYXNlKTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5LWRpc3BsYXkpO1xuICBmb250LXdlaWdodDogNzAwO1xuICBtYXJnaW46IDAgMCAxcmVtO1xuICBsaW5lLWhlaWdodDogMS4xO1xufVxuXG4uYy1maWd1cmVfX3N1Ymxpc3Rpbmcge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogQ09NUE9ORU5UOiBDVVJSSUNVTFVNIE5BVlxuICpcbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5jLW5hdi1jdXJyaWN1bHVtIHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHktdGV4dCk7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ1O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4uYy1uYXYtY3VycmljdWx1bV9faXRlbXMge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBoeXBoZW5zOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAgMCAwIDFyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWxpZ2h0LWdyYXkpO1xuICBAbWVkaWEgKC0tYnAtbmFubykge1xuICAgICYge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICB9XG4gIH1cbn1cblxuLmMtbmF2LWN1cnJpY3VsdW1fX2JyYW5kaW5nIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAuNjU2MjVlbSAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW46IDAgMCAwIDA7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgQG1lZGlhICgtLWJwLW1pZCkge1xuICAgICYge1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG4gIH1cbn1cblxuLyogRGVmYXVsdCBzdHlsaW5nIGZvciBhbGwgbG9nbyBlbGVtZW50cywgc2VlIHZhcmlhbnRzIGZvciBndWlkYW5jZSB3aGVuIGN1c3RvbWl6aW5nIGJhY2tncm91bmQgaW1hZ2VzLCB3aWR0aHMsIGV0Yy4gKi9cblxuLmMtbmF2LWN1cnJpY3VsdW1fX2xvZ28ge1xuICBmb250LXNpemU6IDFyZW07XG4gIGhlaWdodDogMi4yNXJlbTtcbiAgcGFkZGluZzogMDtcbiAgdGV4dC1pbmRlbnQ6IDEwMiU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBAbWVkaWEgKC0tYnAtbWlkKSB7XG4gICAgJiB7XG4gICAgICBib3JkZXItcmlnaHQ6IHNvbGlkIC4wNjI1cmVtIHZhcigtLXRleHQpO1xuICAgICAgbWFyZ2luOiAuODEyNXJlbSAwOyAvKiBBdCB0aGlzIGJyZWFrcG9pbnQsIGluY3JlYXNlIG1hcmdpbiBhbmQgZGVjcmVhc2UgaGVpZ2h0IHRvIGVuc3VyZSByaWdodCBib3JkZXIgaXMgcHJvcG9ydGlvbmFsIHRvIHRoYXQgaW4gdGhlIGxvY2t1cCAqL1xuICAgICAgaGVpZ2h0OiAyLjEyNXJlbTsgLyogQXQgdGhpcyBicmVha3BvaW50LCBpbmNyZWFzZSBtYXJnaW4gYW5kIGRlY3JlYXNlIGhlaWdodCB0byBlbnN1cmUgcmlnaHQgYm9yZGVyIGlzIHByb3BvcnRpb25hbCB0byB0aGF0IGluIHRoZSBsb2NrdXAgKi9cbiAgICB9XG4gIH1cbn1cblxuLyogTVMgTWF0aCAqL1xuXG4vKiBSZXBsYWNlIGxpbmsgd2l0aCBjdXJyaWN1bHVtIGxvZ28gYmFja2dyb3VuZC1pbWFnZSB3aGlsZSBrZWVwaW5nIHRoZSBsaW5rIGFuZCBpdHMgdGV4dCBhY2Nlc3NpYmxlICovXG5cbi5jLW5hdi1jdXJyaWN1bHVtX19sb2dvX291cjYtOG1hdGgsXG4uYy1uYXYtY3VycmljdWx1bV9fbG9nb19vdXI2LThtYXRoLW5jLFxuLmMtbmF2LWN1cnJpY3VsdW1fX2xvZ29fb3VyNi04bWF0aC10bixcbi5jLW5hdi1jdXJyaWN1bHVtX19sb2dvX291cjYtOG1hdGgtd3YsXG4uYy1uYXYtY3VycmljdWx1bV9fbG9nb19vdXI2LThtYXRoLXYxLFxuLmMtbmF2LWN1cnJpY3VsdW1fX2xvZ29fb3VyNi04bWF0aC12Myxcbi5jLW5hdi1jdXJyaWN1bHVtX19sb2dvX2NhLWs4LW1hdGgge1xuICB3aWR0aDogM3JlbTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCduYXYtY3VycmljdWx1bS9sb2dvcy9vdXItc3ltYm9sLW1zbWF0aC5zdmcnKTtcbiAgYmFja2dyb3VuZC1zaXplOiAxNC4zMTI1cmVtO1xuICAgIC8qIFNpbmNlIHRoaXMgaXMgYW4gT1VSIGJyYW5kZWQgcHJvZHVjdCwgdGhpcyB3aWR0aCBpcyBjYWxjdWxhdGVkIHRvIG1hdGNoIHRoZSBPVVIgTVMgTWF0aCBsb2NrdXAgdG8gdGhlIE9VUiBsb2dvIGluIHRoZSBnbG9iYWwgbmF2LiBGb3IgcHJvamVjdHMgd2l0aCBub24tT1VSIGJyYW5kZWQgbG9ja3VwcywgdGhpcyB3aWR0aCBtYXRjaCB0aGUgYXNwZWN0IHJhdGlvIG9mIHRoZSBsb2NrdXAgYXQgMi4yNXJlbSB0YWxsLiBTZWUgQm9va3dvcm1zLCBFTCBLLTUuICovXG4gIGJvcmRlci1yaWdodDogc29saWQgLjA2MjVyZW0gYmxhY2s7IC8qIGV4Y2VwdGlvbiBmb3IgTVMgTWF0aCwgc2hvdyByaWdodCBib3JkZXIgaW4gbmFycm93IHZpZXdwb3J0cyAqL1xufVxuXG4vKiBIUyBNYXRoICovXG5cbi8qIFJlcGxhY2UgbGluayB3aXRoIGN1cnJpY3VsdW0gbG9nbyBiYWNrZ3JvdW5kLWltYWdlIHdoaWxlIGtlZXBpbmcgdGhlIGxpbmsgYW5kIGl0cyB0ZXh0IGFjY2Vzc2libGUgKi9cblxuLmMtbmF2LWN1cnJpY3VsdW1fX2xvZ29fb3VyLWhzLW1hdGgsXG4uYy1uYXYtY3VycmljdWx1bV9fbG9nb19vdXItaHMtbWF0aC1uYyxcbi5jLW5hdi1jdXJyaWN1bHVtX19sb2dvX291ci1ocy1tYXRoLXRuLFxuLmMtbmF2LWN1cnJpY3VsdW1fX2xvZ29fb3VyLWhzLW1hdGgtcGlsb3QtcGwsXG4uYy1uYXYtY3VycmljdWx1bV9fbG9nb19vdXItaHMtcHJlY2FsY3VsdXMge1xuICB3aWR0aDogM3JlbTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCduYXYtY3VycmljdWx1bS9sb2dvcy9vdXItc3ltYm9sLWhzbWF0aC5zdmcnKTtcbiAgYmFja2dyb3VuZC1zaXplOiAxNC4zMTI1cmVtO1xuICAgIC8qIFNpbmNlIHRoaXMgaXMgYW4gT1VSIGJyYW5kZWQgcHJvZHVjdCwgdGhpcyB3aWR0aCBpcyBjYWxjdWxhdGVkIHRvIG1hdGNoIHRoZSBPVVIgSFMgTWF0aCBsb2NrdXAgdG8gdGhlIE9VUiBsb2dvIGluIHRoZSBnbG9iYWwgbmF2LiBGb3IgcHJvamVjdHMgd2l0aCBub24tT1VSIGJyYW5kZWQgbG9ja3VwcywgdGhpcyB3aWR0aCBtYXRjaCB0aGUgYXNwZWN0IHJhdGlvIG9mIHRoZSBsb2NrdXAgYXQgMi4yNXJlbSB0YWxsLiBTZWUgQm9va3dvcm1zLCBFTCBLLTUuICovXG4gIGJvcmRlci1yaWdodDogc29saWQgLjA2MjVyZW0gYmxhY2s7IC8qIGV4Y2VwdGlvbiBmb3IgSFMgTWF0aCwgc2hvdyByaWdodCBib3JkZXIgaW4gbmFycm93IHZpZXdwb3J0cyAqL1xufVxuXG4vKiBLNSBNYXRoICovXG5cbi8qIFJlcGxhY2UgbGluayB3aXRoIGN1cnJpY3VsdW0gbG9nbyBiYWNrZ3JvdW5kLWltYWdlIHdoaWxlIGtlZXBpbmcgdGhlIGxpbmsgYW5kIGl0cyB0ZXh0IGFjY2Vzc2libGUgKi9cblxuLmMtbmF2LWN1cnJpY3VsdW1fX2xvZ29fb3VyLWs1LW1hdGgsXG4uYy1uYXYtY3VycmljdWx1bV9fbG9nb19vdXItazUtbWF0aC10bixcbi5jLW5hdi1jdXJyaWN1bHVtX19sb2dvX2s4LW1hdGgtcGlsb3QtcGwge1xuICB3aWR0aDogM3JlbTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCduYXYtY3VycmljdWx1bS9sb2dvcy9vdXItc3ltYm9sLWs1bWF0aC5zdmcnKTtcbiAgYmFja2dyb3VuZC1zaXplOiAxNC4zMTI1cmVtO1xuICAgIC8qIFNpbmNlIHRoaXMgaXMgYW4gT1VSIGJyYW5kZWQgcHJvZHVjdCwgdGhpcyB3aWR0aCBpcyBjYWxjdWxhdGVkIHRvIG1hdGNoIHRoZSBPVVIgSzUgTWF0aCBsb2NrdXAgdG8gdGhlIE9VUiBsb2dvIGluIHRoZSBnbG9iYWwgbmF2LiBGb3IgcHJvamVjdHMgd2l0aCBub24tT1VSIGJyYW5kZWQgbG9ja3VwcywgdGhpcyB3aWR0aCBtYXRjaCB0aGUgYXNwZWN0IHJhdGlvIG9mIHRoZSBsb2NrdXAgYXQgMi4yNXJlbSB0YWxsLiBTZWUgQm9va3dvcm1zLCBFTCBLLTUuICovXG4gIGJvcmRlci1yaWdodDogc29saWQgLjA2MjVyZW0gYmxhY2s7IC8qIGV4Y2VwdGlvbiBmb3IgSzUgTWF0aCwgc2hvdyByaWdodCBib3JkZXIgaW4gbmFycm93IHZpZXdwb3J0cyAqL1xufVxuXG4vKiBPZGVsbCAqL1xuXG4vKiBTaG91bGQgYmUgdGhlIHNhbWUgYXBwcm9hY2ggYXMgd2UgdXNlZCBmb3IgSFMgTWF0aC4gKi9cblxuLmMtbmF2LWN1cnJpY3VsdW1fX2xvZ29fb2RlbGwtaHMtbGl0ZXJhY3kge1xuICB3aWR0aDogM3JlbTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCduYXYtY3VycmljdWx1bS9sb2dvcy9vdXItc3ltYm9sLW9kZWxsLnN2ZycpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDE0LjMxMjVyZW07XG4gIGJvcmRlci1yaWdodDogc29saWQgLjA2MjVyZW0gYmxhY2s7IC8qIHNob3cgcmlnaHQgYm9yZGVyIGluIG5hcnJvdyB2aWV3cG9ydHMgKi9cbn1cblxuLyogQm9va3dvcm1zICovXG5cbi8qIFJlcGxhY2UgbGluayB3aXRoIGN1cnJpY3VsdW0gbG9nbyBiYWNrZ3JvdW5kLWltYWdlIHdoaWxlIGtlZXBpbmcgdGhlIGxpbmsgYW5kIGl0cyB0ZXh0IGFjY2Vzc2libGUgKi9cblxuLmMtbmF2LWN1cnJpY3VsdW1fX2xvZ29fYm9va3dvcm1zLFxuLmMtbmF2LWN1cnJpY3VsdW1fX2xvZ29fYm9va3dvcm1zLWs1LFxuLmMtbmF2LWN1cnJpY3VsdW1fX2xvZ29fYm9va3dvcm1zLXBsLXZpZGVvcyxcbi5jLW5hdi1jdXJyaWN1bHVtX19sb2dvX2Jvb2t3b3Jtcy1waWxvdC1wbCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnbmF2LWN1cnJpY3VsdW0vbG9nb3MvYm9va3dvcm1zLWxvZ290eXBlLW9ubHkuc3ZnJyk7XG4gIGJhY2tncm91bmQtc2l6ZTogY2FsYygyLjI1cmVtICogOC42Mzg4ODg4ODg5KTsgLyogTWF0Y2ggQm9va3dvcm1zIGxvY2t1cCBhc3BlY3QgcmF0aW8gMzExIHggMzYgKi9cbiAgd2lkdGg6IGNhbGMoMi4yNXJlbSAqIDUuNjY2NjY2NjY2Nyk7IC8qIE1hdGNoIGFzcGVjdCByYXRpbyBvZiBCb29rd29ybXMgbG9nb3R5cGUgdG8gXCJwaXBlXCIgaW4gbG9ja3VwICgyMDQgeCAzNiksIHRoZXJlYnkgaGlkaW5nIHRoZSBwaXBlIGFuZCB0aGUgZGVzY3JpcHRpb24gdGV4dCB0byB0aGUgcmlnaHQgb2YgdGhlIHBpcGUgKi9cbiAgQG1lZGlhICgtLWJwLW1pZCkge1xuICAgICYge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCduYXYtY3VycmljdWx1bS9sb2dvcy9ib29rd29ybXMtbG9ja3VwLnN2ZycpO1xuICAgIH1cbiAgfVxufVxuXG4vKiBFTCBLLTUgKi9cblxuLyogUmVwbGFjZSBsaW5rIHdpdGggY3VycmljdWx1bSBsb2dvIGJhY2tncm91bmQtaW1hZ2Ugd2hpbGUga2VlcGluZyB0aGUgbGluayBhbmQgaXRzIHRleHQgYWNjZXNzaWJsZSAqL1xuXG4uYy1uYXYtY3VycmljdWx1bV9fbG9nb19lbCxcbi5jLW5hdi1jdXJyaWN1bHVtX19sb2dvX2VsLXBpbG90LXBsLFxuLmMtbmF2LWN1cnJpY3VsdW1fX2xvZ29fZWwtazUtMjAxNyxcbi5jLW5hdi1jdXJyaWN1bHVtX19sb2dvX2VsLW1zLTIwMTksXG4uYy1uYXYtY3VycmljdWx1bV9fbG9nb19jYS1lbC1tcyxcbi5jLW5hdi1jdXJyaWN1bHVtX19sb2dvX2VsLXNraWxscy1ibG9jay0yMDI0LFxuLmMtbmF2LWN1cnJpY3VsdW1fX2xvZ29fY2Etc2tpbGxzLWJsb2NrLFxuLmMtbmF2LWN1cnJpY3VsdW1fX2xvZ29fZWwtazUtMjAyNSxcbi5jLW5hdi1jdXJyaWN1bHVtX19sb2dvX2NhLWVsLWs1LFxuLmMtbmF2LWN1cnJpY3VsdW1fX2xvZ29fZWwtdW5sb2NrLXBob25pY3Mge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ25hdi1jdXJyaWN1bHVtL2xvZ29zL2VsLWs4LWxvZ290eXBlLW9ubHkuc3ZnJyk7XG4gIGJhY2tncm91bmQtc2l6ZTogY2FsYygyLjI1cmVtICogNy4xOTQ0NDQ0NDQpOyAvKiBNYXRjaCBFTCBLLTUgbG9ja3VwIGFzcGVjdCByYXRpbyAyNTkgeCAzNiAqL1xuICB3aWR0aDogY2FsYygyLjI1cmVtICogNC42OTQ0NDQ0NDQ0KTsgLyogTWF0Y2ggYXNwZWN0IHJhdGlvIG9mIEVMIEstNSBsb2dvdHlwZSB0byBcInBpcGVcIiBpbiBsb2NrdXAgKDE2OSB4IDM2KSwgdGhlcmVieSBoaWRpbmcgdGhlIHBpcGUgYW5kIHRoZSBkZXNjcmlwdGlvbiB0ZXh0IHRvIHRoZSByaWdodCBvZiB0aGUgcGlwZSAqL1xuICBAbWVkaWEgKC0tYnAtbWlkKSB7XG4gICAgJiB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ25hdi1jdXJyaWN1bHVtL2xvZ29zL2VsLWs4LWxvY2t1cC5zdmcnKTtcbiAgICB9XG4gIH1cbn1cblxuLmMtbmF2LWN1cnJpY3VsdW1fX2xvZ29fcGs1LW1hdGgge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ25hdi1jdXJyaWN1bHVtL2xvZ29zL3BrNS1tYXRoLWxvZ28uc3ZnJyk7XG4gIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgd2lkdGg6IDNyZW07XG59XG5cbi8qIERlZmF1bHQgc2VjdGlvbiB0ZXh0IHN0eWxpbmcgKi9cblxuLmMtbmF2LWN1cnJpY3VsdW1fX3NlY3Rpb24tdGV4dCB7XG4gIGZvbnQtc2l6ZTogdmFyKC0temV0YSk7XG4gIGNvbG9yOiB2YXIoLS1vdXItcHJpbWFyeS1kYXJrLWdyYXkpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgQG1lZGlhICgtLWJwLW1pZCkge1xuICAgICYge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwYWRkaW5nOiAxLjM3NXJlbSAxLjVyZW0gMXJlbSAuOTI1cmVtO1xuICAgIH1cbiAgfVxufVxuXG4vKiBFeGNlcHRpb24gZm9yIEJvb2t3b3JtcyBESSAqL1xuXG4uYy1uYXYtY3VycmljdWx1bV9fc2VjdGlvbi10ZXh0X2Jvb2t3b3Jtcy1kaSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiBjYWxjKDEuMzc1cmVtIC0gLjY1NjI1ZW0pIDEuNXJlbSBjYWxjKDFyZW0gLSAuNjU2MjVlbSkgLjkyNXJlbTtcbiAgYm9yZGVyLWxlZnQ6IHNvbGlkIC4wNjI1cmVtIHZhcigtLXRleHQpO1xuICBAbWVkaWEgKC0tYnAtbWlkKSB7XG4gICAgJiB7XG4gICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgIHBhZGRpbmc6IDEuMzc1cmVtIDEuNXJlbSAxcmVtIC45MjVyZW07XG4gICAgfVxuICB9XG59XG5cbi5jLW5hdi1jdXJyaWN1bHVtX19zZWN0aW9uLXRleHRfYm9va3dvcm1zLWRpOjpiZWZvcmUge1xuICBjb250ZW50OiBhdHRyKGRhdGEtdGl0bGUtc2hvcnQpO1xuICBAbWVkaWEgKC0tYnAtbWljcm8pIHtcbiAgICAmIHtcbiAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS10aXRsZS1tZWRpdW0pO1xuICAgIH1cbiAgfVxuICBAbWVkaWEgKC0tYnAtbWlkKSB7XG4gICAgJiB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgIH1cbiAgfVxufVxuXG4uYy1uYXYtY3VycmljdWx1bV9fc2VjdGlvbi10ZXh0LXN3YXAge1xuICBkaXNwbGF5OiBub25lO1xuICBAbWVkaWEgKC0tYnAtbWlkKSB7XG4gICAgJiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgfVxuICB9XG59XG5cbi8qIEV4Y2VwdGlvbiBmb3IgSFMgTWF0aCwgSzUgTWF0aCwgTVMgTWF0aCwgJiBPZGVsbCBIUyBMaXRlcmFjeSAqL1xuXG4uYy1uYXYtY3VycmljdWx1bV9fc2VjdGlvbi10ZXh0X291ci1ocy1tYXRoLFxuLmMtbmF2LWN1cnJpY3VsdW1fX3NlY3Rpb24tdGV4dF9vdXItaHMtbWF0aC10bixcbi5jLW5hdi1jdXJyaWN1bHVtX19zZWN0aW9uLXRleHRfb3VyLWhzLW1hdGgtbmMsXG4uYy1uYXYtY3VycmljdWx1bV9fc2VjdGlvbi10ZXh0X291ci1rNS1tYXRoLFxuLmMtbmF2LWN1cnJpY3VsdW1fX3NlY3Rpb24tdGV4dF9vdXItazUtbWF0aC10bixcbi5jLW5hdi1jdXJyaWN1bHVtX19zZWN0aW9uLXRleHRfazgtbWF0aC1waWxvdC1wbCxcbi5jLW5hdi1jdXJyaWN1bHVtX19zZWN0aW9uLXRleHRfb3VyNi04bWF0aCxcbi5jLW5hdi1jdXJyaWN1bHVtX19zZWN0aW9uLXRleHRfb3VyNi04bWF0aC1uYyxcbi5jLW5hdi1jdXJyaWN1bHVtX19zZWN0aW9uLXRleHRfb3VyNi04bWF0aC10bixcbi5jLW5hdi1jdXJyaWN1bHVtX19zZWN0aW9uLXRleHRfb3VyNi04bWF0aC13dixcbi5jLW5hdi1jdXJyaWN1bHVtX19zZWN0aW9uLXRleHRfb3VyNi04bWF0aC12MSxcbi5jLW5hdi1jdXJyaWN1bHVtX19zZWN0aW9uLXRleHRfb3VyNi04bWF0aC12Myxcbi5jLW5hdi1jdXJyaWN1bHVtX19zZWN0aW9uLXRleHRfb2RlbGwtaHMtbGl0ZXJhY3ksXG4uYy1uYXYtY3VycmljdWx1bV9fc2VjdGlvbi10ZXh0X3BrNS1tYXRoLFxuLmMtbmF2LWN1cnJpY3VsdW1fX3NlY3Rpb24tdGV4dF9vdXItaHMtcHJlY2FsY3VsdXMge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogLjVyZW0gMXJlbTtcbiAgQG1lZGlhICgtLWJwLW1pZCkge1xuICAgICYge1xuICAgICAgcGFkZGluZzogMXJlbSAxLjVyZW0gMXJlbSAuOTI1cmVtO1xuICAgIH1cbiAgfVxufVxuXG4uYy1uYXYtY3VycmljdWx1bV9fc2VjdGlvbi10ZXh0LXN1ZmZpeCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIEBtZWRpYSAoLS1icC1taWNybykge1xuICAgICYge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbiAgfVxufVxuXG4uYy1uYXYtY3VycmljdWx1bV9faXRlbSB7XG4gIGZvbnQtc2l6ZTogdmFyKC0temV0YSk7XG4gIG1hcmdpbjogMCAwIDAgLTFyZW07XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWdyYXkpO1xuICBAbWVkaWEgKC0tYnAtbmFubykge1xuICAgICYge1xuICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tZ3JheSk7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICB9XG59XG5cbi5jLW5hdi1jdXJyaWN1bHVtX19pdGVtLXRpdGxlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogLjVyZW0gMXJlbTtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiB2YXIoLS1vdXItcHJpbWFyeS1kYXJrLWdyYXkpO1xuICBvdXRsaW5lOiBub25lO1xuICBAbWVkaWEgKC0tYnAtbmFubykge1xuICAgICYge1xuICAgICAgcGFkZGluZzogLjVyZW0gMXJlbTtcbiAgICB9XG4gIH1cbiAgQG1lZGlhICgtLWJwLW1pZCkge1xuICAgICYge1xuICAgICAgcGFkZGluZzogMXJlbSAxLjI1cmVtO1xuICAgIH1cbiAgfVxufVxuXG4uYy1uYXYtY3VycmljdWx1bV9faXRlbS10aXRsZS5pcy1jdXJyZW50IHtcbiAgY29sb3I6IHZhcigtLW91ci1nbG9iYWxuYXYtb3JhbmdlKTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgJjpob3ZlciB7XG4gICAgY29sb3I6IHZhcigtLW91ci1nbG9iYWxuYXYtb3JhbmdlKTtcbiAgfVxufVxuXG4vKiBFTi9FUyBUb2dnbGUgKi9cblxuLmMtbmF2LWN1cnJpY3VsdW1fX2l0ZW1fbG9jYWxlIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZy1sZWZ0OiAyLjVyZW07XG4gIGJhY2tncm91bmQ6IHVybCgnbmF2LWN1cnJpY3VsdW0vZ2xvYmUtc29saWQuc3ZnJyk7XG4gIGJhY2tncm91bmQtc2l6ZTogMS4yNXJlbTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMXJlbSBjZW50ZXI7XG4gIGJvcmRlcjogbm9uZTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG59XG5cbi5jLW5hdi1jdXJyaWN1bHVtX19sYWJlbF9sb2NhbGUge1xuICBib3JkZXItcmlnaHQ6IC4wNjI1cmVtIHNvbGlkIHZhcigtLWdyYXkpO1xuICBwYWRkaW5nOiAuMjc1cmVtIC4zNzVyZW0gLjI3NXJlbSAuNDM3NXJlbTtcbiAgbWFyZ2luOiAuN3JlbSAwO1xuICBmb250LXdlaWdodDogOTAwO1xuICBsZXR0ZXItc3BhY2luZzogLjA3NWVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4uYy1uYXYtY3VycmljdWx1bV9fbGFiZWxfbG9jYWxlOmZpcnN0LWNoaWxkIHtcbiAgcGFkZGluZzogLjI3NXJlbSAuMzc1cmVtO1xufVxuXG4uYy1uYXYtY3VycmljdWx1bV9fbGFiZWxfbG9jYWxlOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gIHBhZGRpbmc6IC4yNzVyZW0gMXJlbSAuMjc1cmVtIC40Mzc1cmVtO1xufVxuXG4uYy1uYXYtY3VycmljdWx1bV9fbGFiZWxfbG9jYWxlLmlzLWN1cnJlbnQge1xuICBjb2xvcjogdmFyKC0tb3VyLWdsb2JhbG5hdi1vcmFuZ2UpO1xufVxuXG4vKiBJbmxpbmUgTWVudSAqL1xuXG4uYy1uYXYtY3VycmljdWx1bV9faXRlbS1tZW51IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgQG1lZGlhICgtLWJwLW1pZCkge1xuICAgICYge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuICAgIH1cbiAgfVxufVxuXG4uYy1uYXYtY3VycmljdWx1bV9faXRlbS1tZW51ID4gbGkge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG59XG5cbi5jLW5hdi1jdXJyaWN1bHVtX19pdGVtLW1lbnUgPiBsaSA+IGEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IC41cmVtO1xufVxuXG4uYy1uYXYtY3VycmljdWx1bV9faXRlbS1tZW51ID4gbGkgPiBhLmlzLWN1cnJlbnQge1xuICBjb2xvcjogdmFyKC0tb3VyLWdsb2JhbG5hdi1vcmFuZ2UpO1xuICBmb250LXdlaWdodDogNTAwO1xuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogdmFyKC0tb3VyLWdsb2JhbG5hdi1vcmFuZ2UpO1xuICB9XG59XG4iLCIvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogQ29tcG9uZW50OiBQdWJsaWNhdGlvbnMgSW5kZXggU3R5bGVzXG4gKiBDb250YWlucy9jb25zdHJhaW5zL2NlbnRlcnMgdGhlIGNvbnRlbnQgZm9yIGN1cnJpY3VsdW1cbiAqIHNlbGVjdGlvbiBwYWdlLiBNYXRjaGVzIFJlZ2lzdHJhdGlvbiBBcHAgcGFnZXMuXG4gKlxuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uYy1pbmRleCB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseS10ZXh0LWFsdCk7XG4gIG1hcmdpbjogYXV0byBhdXRvIDVyZW07XG4gIHBhZGRpbmc6IDIuNjI1cmVtIDFyZW0gMDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogNDIuOHJlbTtcbn1cblxuLmMtaW5kZXggKiB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi8qXG4gIC0tIGhlZFxuICBQcmVzdW1hYmx5IGFuIEgxLiBBcHBlYXJzIG92ZXIgdGhlIHRleHR1cmVkXG4gIG1vdGlmIHRoYXQgc2lnbmlmaWVzIHRoZSBSZWdpc3RyYXRpb24gQXBwIHNjcmVlbnMuXG4qL1xuXG4uYy1pbmRleF9faGVkIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5LWRpc3BsYXkpO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IHZhcigtLWFscGhhKTtcbiAgbWFyZ2luOiAwIGF1dG8gMi42MjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAyLjc1cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiB2YXIoLS13aGl0ZSk7XG59XG5cbi8qXG4gIC0tIGlubmVyXG4gIElubmVyIGNvbnRhaW5lciBmb3IgcHVibGljYXRpb24gb3B0aW9ucy5cbiAgQXBwZWFycyBhcyBhIOKAnGZsb2F0aW5n4oCdIHdoaXRlIGJveC5cbiovXG5cbi5jLWluZGV4X19pbm5lciB7XG4gIG1hcmdpbjogMi41cmVtIGF1dG87XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdoaXRlKTtcbiAgcGFkZGluZzogMXJlbSAxLjVyZW0gMi43NXJlbTtcbiAgYm94LXNoYWRvdzogLjI1cmVtIC4zcmVtIC41cmVtIDAgcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vKlxuICAtLSBTdWJoZWRcbiAgUHJlc3VtYWJseSBhbiBIMi4gSW50ZW50aW9uYWxseSBoYXMgdGhlIHNhbWUgYXBwZWFyYW5jZSBhc1xuICBhIFJlZ2lzdHJhdGlvbiBQYWdlIExlZ2VuZC5cbiovXG5cbi5jLWluZGV4X19zdWJoZWQge1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHktZGlzcGxheSk7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZ2FtbWEpO1xuICBjb2xvcjogdmFyKC0tdGV4dCk7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG59XG5cbi8qXG4gIC0tIEluZm8gZ3JvdXBzXG4gIExhaWQgb3V0IGlkZW50aWNhbGx5IHRvIHRoZSBmb3JtIGdyb3Vwc1xuICBmb3VuZCBpbiB0aGUgUmVnaXN0cmF0aW9uIEFwcC5cbiovXG5cbi5jLWluZGV4X19pbmZvZ3JvdXAge1xuICBtYXJnaW46IDFyZW0gYXV0bztcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMjMuNXJlbTtcbiAgY2xlYXI6IGxlZnQ7IC8qIEkga25vdyEgQSBjbGVhcmluZyBmbG9hdHMgZmxhc2hiYWNrISBDbGVhcnMgdGhlIGZsb2F0ZWQgbGVnZW5kIGVsZW1lbnQgd2hlbiBpdOKAmXMgcHJlc2VudC4gKi9cbiAgJjpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG4gICY6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDEuMjVyZW07XG4gIH1cbn1cblxuLypcbiAgLS0gU3ViamVjdCBncm91cHNcbiAgU3R5bGVzIGZvciBzdWJqZWN0IGdyb3VwaW5ncyBvZiBjdXJyaWN1bHVtIG9wdGlvbnMuXG4qL1xuXG4uYy1pbmRleF9fc3ViamVjdGdyb3VwIHtcbiAgbWFyZ2luOiAycmVtIGF1dG8gMXJlbTtcbiAgYm9yZGVyOiAuMTI1cmVtIHNvbGlkIHZhcigtLW91ci1wcmltYXJ5LXllbGxvdyk7XG4gIGJvcmRlci1yYWRpdXM6IC40cmVtO1xuICBwYWRkaW5nOiAuNXJlbSAxcmVtO1xuICBtYXgtd2lkdGg6IDMwLjVyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmMtaW5kZXhfX3N1YmplY3RsYWJlbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMS4yNXJlbTtcbiAgdG9wOiAtLjU3NWVtO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAgLjI1cmVtO1xuICBsaW5lLWhlaWdodDogMS4xcmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS13aGl0ZSk7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZGVsdGEpO1xuICBsZXR0ZXItc3BhY2luZzogLjAzZW07XG59XG5cbi8qXG4gIC0tIG5vdGUgc3R5bGVcbiAgT25lIHN0ZXAgc21hbGxlciB0aGFuIGRlZmF1bHQgdGV4dCBzaXplLlxuKi9cblxuLmMtaW5kZXhfX25vdGUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGNvbG9yOiB2YXIoLS10ZXh0KTtcbiAgZm9udC1zaXplOiB2YXIoLS1lcHNpbG9uKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbn1cblxuLmMtaW5kZXhfX25vdGUgYSB7XG4gIGNvbG9yOiB2YXIoLS1hY2NlbnQpO1xuICB0ZXh0LWRlY29yYXRpb24tY29sb3I6IHZhcigtLWFjY2VudC1sYXJnZSk7XG4gICY6bGluayxcbiAgJjp2aXNpdGVkIHtcbiAgICBjb2xvcjogdmFyKC0tYWNjZW50KTtcbiAgICB0ZXh0LWRlY29yYXRpb24tY29sb3I6IHZhcigtLWFjY2VudC1sYXJnZSk7XG4gIH1cbiAgJjpob3ZlcixcbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiB2YXIoLS1hY2NlbnQtbGFyZ2UpO1xuICAgIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogdmFyKC0tYWNjZW50LWxhcmdlKTtcbiAgfVxufVxuXG5cbi8qXG4gIC0tIEN1cnJpY3VsdW0gQ2hvaWNlXG4gIENvbmpvaW5lZCBUZXh0ICsgXCJHb1wiIENUQVxuKi9cblxuLmMtaW5kZXhfX2N1cnJpY3VsdW0tY2hvaWNlIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1vdXItcHJpbWFyeS15ZWxsb3cpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1saWdodC1ncmF5KTtcbiAgYm9yZGVyLXJhZGl1czogLjRyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0KTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi10b3A6IDEuMjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDEuMjVyZW07XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAgMCAwIDFyZW07XG4gIEBtZWRpYSAoLS1icC1taW4teHh4KSB7XG4gICAgJiB7XG4gICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7O1xuICAgIH1cbiAgfVxufVxuXG4uYy1pbmRleF9fY3VycmljdWx1bS1jaG9pY2U6aG92ZXIge1xuICBjb2xvcjogdmFyKC0tYWNjZW50KTtcbn1cblxuLmMtaW5kZXhfX2N1cnJpY3VsdW0tY2hvaWNlOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlci10b3A6IHRyYW5zcGFyZW50IHNvbGlkIC41cmVtO1xuICBib3JkZXItcmlnaHQ6IHRyYW5zcGFyZW50IHNvbGlkIC43NXJlbTtcbiAgYm9yZGVyLWJvdHRvbTogdHJhbnNwYXJlbnQgc29saWQgLjVyZW07XG4gIGJvcmRlci1sZWZ0OiB2YXIoLS10ZXh0KSBzb2xpZCAuNzVyZW07XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG59XG5cbi5jLWluZGV4X19jdXJyaWN1bHVtLWNob2ljZTpob3Zlcjo6YWZ0ZXIge1xuICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tYWNjZW50LWxhcmdlKTtcbn1cblxuLmMtaW5kZXhfX2N1cnJpY3VsdW0tdGl0bGUge1xuICBwYWRkaW5nOiAuNzVyZW0gMDtcbiAgbWFyZ2luLXJpZ2h0OiAuNzVlbTtcbiAgZmxleDogMCAxIGF1dG87XG4gIGxpbmUtaGVpZ2h0OiAxLjNyZW07XG4gIEBtZWRpYSAoLS1icC1taW4teHh4KSB7XG4gICAgJiB7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgZmxleDogMCAwIDA7XG4gICAgfVxuICB9XG59XG5cbi5jLWluZGV4X19jdXJyaWN1bHVtLWVkaXRpb24ge1xuICBmb250LXNpemU6IHZhcigtLXpldGEpO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogLjAyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHBhZGRpbmc6IDAgMXJlbSAwIC41cmVtO1xuICBsaW5lLWhlaWdodDogMS4zcmVtO1xuICBjb2xvcjogdmFyKC0tYWNjZW50KTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi5jLWluZGV4X19lZGl0aW9uLXNlcGFyYXRvciB7XG4gIGNvbG9yOiB2YXIoLS1vdXItcHJpbWFyeS15ZWxsb3cpO1xuICBib3JkZXItc3R5bGU6IGRhc2hlZDtcbn1cblxuLmMtaW5kZXhfX2N1cnJpY3VsdW0tbmV3IHtcbiAgcGFkZGluZzogMCAwIDAgMC4yNXJlbTtcbiAgY29sb3I6IHZhcigtLWFjY2VudC1hbHQpO1xufVxuXG4vKlxuICAtLSBTdWJqZWN0IGdyb3VwIGhlbHBlciBjbGFzc1xuICAgIEZvciBhbGlnbmluZyBlbGVtZW50cyBvdXRzaWRlIGAuYy1pbmRleC1zdWJqZWN0Z3JvdXAnIHdpdGhcbiAgICB0aGF0IHN1YmplY3QgZ3JvdXAuXG4qL1xuXG4uYy1pbmRleCAuZm9yLXN1YmplY3Rncm91cCB7XG4gIG1heC13aWR0aDogMzAuNXJlbTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBDT01QT05FTlQ6IE9VUiBHTE9CQUwgRk9PVEVSXG4gKiBJbmNsdWRlZCBpbiB0aGlzIGRvY3VtZW50OiBWYXJpYWJsZXMsIEJhc2UsIFN0eWxlc1xuICpcbiAqIFRoZSBpbnN0YW5jZSBvZiB0aGUgZ2xvYmFsIGZvb3RlciBlbWJlZGRlZCB3aXRoaW5cbiAqIHRoZSByZWcgYXBwIGlzIGNvbnNpZGVyZWQgY2Fub25pY2FsLlxuICpcbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbipcbiogQ09NUE9ORU5UOiBPVVIgR0xPQkFMIEZPT1RFUiAtLSBST0JPVE8gRk9OVFNcbipcbiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogSWYgR29vZ2xlIEZvbnRzIGFyZSBhbHJlYWR5IGltcG9ydGVkIGludG8gdGhlIGFwcCwgYXBwZW5kIFwiUm9ib3RvOjUwMFwiIGlmIG5lY2Vzc2FyeS4gKi9cbi8qIElmIEdvb2dsZSBGb250cyBhcmUgbm90IGFscmVhZHkgaW1wb3J0ZWQsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGltcG9ydCBzdGF0ZW1lbnQgb3IgKGJldHRlcikgYWRkIHRoZSBlcXVpdmFsZW50IHRvIHRoZSA8aGVhZD4gb2YgdGhlIGFwcC4gKi9cbi8qIEBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9Um9ib3RvOjUwMCZzdWJzZXQ9bGF0aW4nKTsgKi9cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIENPTVBPTkVOVDogT1VSIEdMT0JBTCBGT09URVIgLS0gVkFSSUFCTEVTXG4gKlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogQ29sb3IgcGFsZXR0ZSAqL1xuXG46cm9vdCB7XG5cbi8qIENvbG9ycyB3aXRoIFwiLW91ci1cIiBpbiB0aGVpciBuYW1lIGFyZSBzb3VyY2VkIGZyb20gdGhlIE9VUiBicmFuZCBndWlkZWxpbmVzICovXG5cbi0tZm9vdGVyLW91ci1wcmltYXJ5LWRhcmstZ3JheTogICAgcmdiKDY5LDUzLDU0KTsgICAgLyogIzQ1MzUzNiAqL1xuLS1mb290ZXItd2hpdGU6ICAgICAgICAgICAgICAgICAgICAjZmZmZmZmO1xuXG4vKlxuICBUeXBvZ3JhcGhpYyBzaXplc1xuXG4gIEZvbnQgc2l6ZXMgYmFzZWQgb24gbWlub3IgdGhpcmQgKDEuMikgaHR0cDovL3d3dy5tb2R1bGFyc2NhbGUuY29tLz8xJmVtJjEuMlxuXG4qL1xuXG4tLWZvb3Rlci1mb250LWJhc2UtbWluOiAxNnB4O1xuLS1mb290ZXItZm9udC1iYXNlLW1heDogMjBweDtcbi0tZm9vdGVyLWZsdWlkLWVtOiAgICAgIGNhbGMoMTZweCArICgyMCAtIDE2KSAqICgoMTAwdncgLSAzMjBweCkvKDEzMjAgLSAzMjApKSk7XG4tLWZvb3Rlci16ZXRhOiAgICAgICAgICAuODMzZW07XG4tLWZvb3Rlci1ldGE6ICAgICAgICAgICAuNzVlbTtcblxufVxuXG4vKiBDdXN0b20gTWVkaWEgRGVjbGFyYXRpb25zIGZvciBCcmVha3BvaW50cyAqL1xuXG5AY3VzdG9tLW1lZGlhIC0tZm9vdGVyLWJwLW5hbm8tbWludXMgKG1heC13aWR0aDogMzE5cHgpO1xuQGN1c3RvbS1tZWRpYSAtLWZvb3Rlci1icC1uYW5vIChtaW4td2lkdGg6IDMyMHB4KTtcbkBjdXN0b20tbWVkaWEgLS1mb290ZXItYnAtbWljcm8tbWludXMgKG1heC13aWR0aDogNDEwcHgpO1xuQGN1c3RvbS1tZWRpYSAtLWZvb3Rlci1icC1taWNybyAobWluLXdpZHRoOiA0MTFweCk7XG5AY3VzdG9tLW1lZGlhIC0tZm9vdGVyLWJwLW1pbi1taW51cyAobWF4LXdpZHRoOiA1MzZweCk7XG5AY3VzdG9tLW1lZGlhIC0tZm9vdGVyLWJwLW1pbiAobWluLXdpZHRoOiA1MzdweCk7XG5AY3VzdG9tLW1lZGlhIC0tZm9vdGVyLWJwLW1pZC1taW51cyAobWF4LXdpZHRoOiAxMDIzcHgpO1xuQGN1c3RvbS1tZWRpYSAtLWZvb3Rlci1icC1taWQgKG1pbi13aWR0aDogMTAyNHB4KTtcbkBjdXN0b20tbWVkaWEgLS1mb290ZXItYnAtbWF4LW1pbnVzIChtYXgtd2lkdGg6IDEzMTlweCk7XG5AY3VzdG9tLW1lZGlhIC0tZm9vdGVyLWJwLW1heCAobWluLXdpZHRoOiAxMzIwcHgpO1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogQ09NUE9ORU5UOiBPVVIgR0xPQkFMIEZPT1RFUiAtLSBCQVNFXG4gKlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmMtZm9vdGVyIHtcbiAgZm9udC1zaXplOiB2YXIoLS1mb290ZXItZm9udC1iYXNlLW1pbik7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJywgJ1RyZWJ1Y2hldCBNUycsIFRyZWJ1Y2hldCwgVGFob21hLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogNTAwO1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVsZWdpYmlsaXR5OyAvKiBDYW4gY2F1c2UgcHJvYmxlbXMgaW4gc29tZSB2ZXJzaW9ucyBvZiBBbmRyb2lkICovXG4gICB0ZXh0LXNpemUtYWRqdXN0OiBub25lO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgZm9udC1kaXNwbGF5OiBzd2FwOyAvKiBodHRwczovL3d3dy56YWNobGVhdC5jb20vd2ViL2NvbXByZWhlbnNpdmUtd2ViZm9udHMvI2ZvbnQtZGlzcGxheSAqL1xuICBsaW5lLWhlaWdodDogMS40NTtcbiAgbWFyZ2luLXRvcDogYXV0bztcblxuICAvKiBGbHVpZCBmcm9tIDE2cHggdG8gMjBweCBiZXR3ZWVuIGJyZWFrcG9pbnRzICovXG5cbiAgQG1lZGlhICgtLWZvb3Rlci1icC1taW4pIHtcbiAgICAmIHtcbiAgICAgZm9udC1zaXplOiB2YXIoLS1mb290ZXItZm9udC1iYXNlLW1pbik7IC8qIDE2cHggYXQgMzIwcHggKi8gLyogcHggZmFsbGJhY2sgZm9yIGJyb3dzZXJzIHRoYXQgZG9u4oCZdCBnZXQgY2FsYyAqL1xuICAgICBmb250LXNpemU6IGNhbGMoMTZweCArICgyMCAtIDE2KSAqICgoMTAwdncgLSAzMjBweCkvKDEzMjAgLSAzMjApKSk7XG4gICAgfVxuICB9XG5cbiAgQG1lZGlhICgtLWZvb3Rlci1icC1tYXgpIHtcbiAgICAmIHtcbiAgICAgZm9udC1zaXplOiB2YXIoLS1mb290ZXItZm9udC1iYXNlLW1heCk7IC8qIDIwcHggYXQgMTMyMHB4ICovXG4gICAgfVxuICB9XG59XG5cbi5jLWZvb3RlciAqIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgJjo6YmVmb3JlLCAmOjphZnRlciB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qXG4qIENPTVBPTkVOVDogT1VSIEdMT0JBTCBGT09URVIgLS0gT1ZFUlJJREVTXG4qIE92ZXJyaWRlIG92ZXJhcmNoaW5nIHByb3BlcnRpZXMgaW4gY3VycmljdWx1bSBnYXRld2F5IHRoZW1lXG4qXG4qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5jLWZvb3RlciBsaSB7XG4gIHBhZGRpbmctbGVmdDogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG59XG5cbi5jLWZvb3RlciBsaTo6YmVmb3JlLFxuLmMtZm9vdGVyIGxpOjpiZWZvcmUge1xuICBjb250ZW50OiBub3JtYWw7XG59XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbipcbiogQ09NUE9ORU5UOiBPVVIgR0xPQkFMIEZPT1RFUiAtLSBTVFlMRVNcbipcbiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmMtZm9vdGVyIHtcbiAgcGFkZGluZzogLjc1ZW0gMWVtIDRlbTsgLyogRmF0IHBhZGRpbmctYm90dG9tIGFjY29tbW9kYXRlcyBmZWVkYmFjayB3aWRnZXQgKi9cbiAgY29sb3I6IHJnYmEoMTAwJSwxMDAlLDEwMCUsLjY1KTtcbiAgYmFja2dyb3VuZDogdmFyKC0tZm9vdGVyLW91ci1wcmltYXJ5LWRhcmstZ3JheSk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgQG1lZGlhICgtLWZvb3Rlci1icC1taWNybykge1xuICAgICYge1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG4gIH1cbn1cblxuLmMtZm9vdGVyIGEge1xuICAgY29sb3I6IHJnYmEoMTAwJSwxMDAlLDEwMCUsLjgpO1xuICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5jLWZvb3RlciBhOmhvdmVyIHtcbiAgIGNvbG9yOiB2YXIoLS1mb290ZXItd2hpdGUpO1xuICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5jLWZvb3Rlcl9fbmF2cyB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9vdGVyLXpldGEpO1xuICBAbWVkaWEgKC0tZm9vdGVyLWJwLW1pY3JvKSB7XG4gICAgJiB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG4gIH1cbn1cblxuLmMtZm9vdGVyX19uYXYtY29ycG9yYXRlIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiBjYWxjKC41ICogdmFyKC0tZm9vdGVyLWZsdWlkLWVtKSkgMCAwO1xuICBwYWRkaW5nOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgQG1lZGlhICgtLWZvb3Rlci1icC1taWNybykge1xuICAgICYge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICB9XG4gIH1cbn1cblxuLmMtZm9vdGVyX19uYXYtc29jaWFsIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiB2YXIoLS1mb290ZXItZmx1aWQtZW0pIDAgMDtcbiAgcGFkZGluZzogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIEBtZWRpYSAoLS1mb290ZXItYnAtbWljcm8pIHtcbiAgICAmIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgfVxuICB9XG59XG5cbi5jLWZvb3Rlcl9fb3VyLWxvZ28ge1xuICBoZWlnaHQ6IGNhbGMoMiAqIHZhcigtLWZvb3Rlci1mbHVpZC1lbSkpO1xuICB3aWR0aDogYXV0bztcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogY2FsYyguMjUgKiB2YXIoLS1mb290ZXItZmx1aWQtZW0pKSBhdXRvIDA7XG4gIEBtZWRpYSAoLS1mb290ZXItYnAtbWljcm8pIHtcbiAgICAmIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogY2FsYyguMTI1ICogdmFyKC0tZm9vdGVyLWZsdWlkLWVtKSk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWZvb3Rlci1mbHVpZC1lbSk7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cbiAgfVxuICBAbWVkaWEgKC0tZm9vdGVyLWJwLW1heCkge1xuICAgICYge1xuICAgICAgdG9wOiBjYWxjKC4xMjUgKiB2YXIoLS1mb290ZXItZm9udC1iYXNlLW1heCkpO1xuICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1mb290ZXItZm9udC1iYXNlLW1heCk7XG4gICAgICBoZWlnaHQ6IGNhbGMoMiAqIHZhcigtLWZvb3Rlci1mb250LWJhc2UtbWF4KSk7XG4gICAgfVxuICB9XG59XG5cbi5jLWZvb3Rlcl9fbmF2LWNvcnBvcmF0ZSBsaSxcbi5jLWZvb3Rlcl9fbmF2LXNvY2lhbCBsaSB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5jLWZvb3Rlcl9fbmF2LWNvcnBvcmF0ZSBsaSArIGxpIHtcbiAgbWFyZ2luLWxlZnQ6IHZhcigtLWZvb3Rlci1mb250LWJhc2UtbWF4KTtcbiAgQG1lZGlhICgtLWZvb3Rlci1icC1tYXgpIHtcbiAgICAmIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1mb290ZXItZm9udC1iYXNlLW1heCk7XG4gICAgfVxuICB9XG59XG5cbi5jLWZvb3Rlcl9fbmF2LXNvY2lhbCBsaSArIGxpIHtcbiAgbWFyZ2luLWxlZnQ6IHZhcigtLWZvb3Rlci1mb250LWJhc2UtbWF4KTtcbiAgQG1lZGlhICgtLWZvb3Rlci1icC1tYXgpIHtcbiAgICAmIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1mb290ZXItZm9udC1iYXNlLW1heCk7XG4gICAgfVxuICB9XG59XG5cbi5jLWZvb3Rlcl9fc29jaWFsLWljb24ge1xuICBoZWlnaHQ6IDFlbTtcbiAgd2lkdGg6IGF1dG87XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uYy1mb290ZXJfX2NvcHlyaWdodHMge1xuICBmb250LXNpemU6IHZhcigtLWZvb3Rlci1ldGEpO1xuICBtYXJnaW4tdG9wOiB2YXIoLS1mb290ZXItZmx1aWQtZW0pO1xuICBwYWRkaW5nLXRvcDogdmFyKC0tZm9vdGVyLWZsdWlkLWVtKTtcbiAgYm9yZGVyLXRvcDogc29saWQgMXB4IHJnYmEoMTAwJSwxMDAlLDEwMCUsLjM1KTtcbiAgQG1lZGlhICgtLWZvb3Rlci1icC1taWNybykge1xuICAgICYge1xuICAgICAgbWFyZ2luLXRvcDogY2FsYyguNzUgKiB2YXIoLS1mb290ZXItZmx1aWQtZW0pKTtcbiAgICB9XG4gIH1cbiAgQG1lZGlhICgtLWZvb3Rlci1icC1tYXgpIHtcbiAgICAmIHtcbiAgICAgIHBhZGRpbmctdG9wOiB2YXIoLS1mb290ZXItZm9udC1iYXNlLW1heCk7XG4gICAgICBtYXJnaW4tdG9wOiBjYWxjKC43NSAqIHZhcigtLWZvb3Rlci1mb250LWJhc2UtbWF4KSk7XG4gICAgfVxuICB9XG59XG5cbi5jLWZvb3Rlcl9fY29weXJpZ2h0czpvbmx5LWNoaWxkLFxuLmMtZm9vdGVyX19jb3B5cmlnaHRzOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nLXRvcDogY2FsYyguMjUgKiB2YXIoLS1mb290ZXItZmx1aWQtZW0pKTtcbiAgQG1lZGlhICgtLWZvb3Rlci1icC1tYXgpIHtcbiAgICAmIHtcbiAgICAgIHBhZGRpbmctdG9wOiBjYWxjKC4yNSAqIHZhcigtLWZvb3Rlci1mb250LWJhc2UtbWF4KSk7XG4gICAgfVxuICB9XG59XG5cbi5jLWZvb3Rlcl9fYnVpbGQge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbiIsIi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBDT01QT05FTlQ6IE9VUiBNT0RBTCBNRVNTQUdFXG4gKiBJbnRlbmRlZCBmb3Igb25seSB2ZXJ5IHNob3J0IG1lc3NhZ2VzLiBNZXNzYWdlIGJveCBncm93cyB3aXRoIGNvbnRlbnQsXG4gKiBzbyB0aGlzIGNvbXBvbmVudCBpcyBub3QgYXBwcm9wcmlhdGUgZm9yIGNvbnRlbnQgdGhhdCBtaWdodCBleGNlZWRcbiAqIHRoZSBoZWlnaHQgb2YgdGhlIHZpZXdwb3J0IG9uIGFueSBkZXZpY2UuXG4gKlxuICogQm9udXMhIEJvZHkgcHJvcGVydGllcyB0byBwcmV2ZW50IHNjcm9sbGluZyB3aGVuIHRoZSBtb2RhbCBpcyBvcGVuLlxuICpcbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbipcbiogQ09NUE9ORU5UOiBPVVIgTU9EQUwgTUVTU0FHRSAtLSBST0JPVE8gRk9OVFNcbipcbiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogUm9ib3RvIGF0IDQwMCB3ZWlnaHQgaXMgbmVjZXNzYXJ5IGZvciB0aGUgdHlwb2dyYXBoeSBpbiB0aGlzIGNvbXBvbmVudC4gKi9cbi8qIFJvYm90byBhdCA1MDAgd2VpZ2h0IGlzIG5lY2Vzc2FyeSBmb3IgdGhlIGJ1dHRvbiBpbiB0aGlzIGNvbXBvbmVudC4gKi9cbi8qIElmIEdvb2dsZSBGb250cyBhcmUgYWxyZWFkeSBpbXBvcnRlZCBpbnRvIHRoZSBhcHAsIGFwcGVuZCBcIlJvYm90bzo0MDAsNTAwLDcwMFwiIGlmIG5lY2Vzc2FyeS4gKi9cbi8qIElmIEdvb2dsZSBGb250cyBhcmUgbm90IGFscmVhZHkgaW1wb3J0ZWQsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGltcG9ydCBzdGF0ZW1lbnQgb3IgKGJldHRlcikgYWRkXG50aGUgZXF1aXZhbGVudCB0byB0aGUgPGhlYWQ+IG9mIHRoZSBhcHAuICovXG4vKiBAaW1wb3J0IHVybCgnaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVJvYm90bzo0MDAsNTAwJnN1YnNldD1sYXRpbicpOyAqL1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogQ09NUE9ORU5UOiBPVVIgTU9EQUwgTUVTU0FHRSAtLSBWQVJJQUJMRVNcbiAqXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG46cm9vdCB7XG5cbiAgLyogQ29sb3IgcGFsZXR0ZSAqL1xuXG4gIC0tbW9kYWwtdGVhbDogICAgICAgIzAwODQ3MDtcbiAgLS1tb2RhbC1saWdodC1ncmF5OiAjZWJlYmViOyAvKiA4JSBibGFjayAqL1xuICAtLW1vZGFsLXdoaXRlOiAgICAgICNmZmZmZmY7XG5cbiAgLypcbiAgICBUeXBvZ3JhcGhpYyBzaXplc1xuXG4gICovXG5cbiAgLS1tb2RhbC1mb250LWJhc2UtbWluOiAxNnB4O1xuICAtLW1vZGFsLWZvbnQtYmFzZS1tYXg6IDIwcHg7XG4gIC0tbW9kYWwtZmx1aWQtZW06ICAgICAgY2FsYygxNnB4ICsgKDIwIC0gMTYpICogKCgxMDB2dyAtIDMyMHB4KS8oMTMyMCAtIDMyMCkpKTtcbiAgLS1tb2RhbC1iZXRhOiAgICAgICAgICAxLjc4NGVtO1xuICAtLW1vZGFsLWdhbW1hOiAgICAgICAgIDEuMmVtO1xuICAtLW1vZGFsLWRlbHRhOiAgICAgICAgIDFlbTtcbiAgLS1tb2RhbC16ZXRhOiAgICAgICAgICAuODc1ZW07XG4gIC0tbW9kYWwtZXRhOiAgICAgICAgICAgLjc1ZW07XG5cbn1cblxuLyogVmlld3BvcnQgV2lkdGggVmFyaWFibGVzICovXG5cbjpyb290IHtcblxuICAtLW1vZGFsLWJwLW1pbjogICAgICAgICAgMzIwcHg7XG4gIC0tbW9kYWwtYnAtbWVnYTogICAgICAgICAxMDI0cHg7XG4gIC0tbW9kYWwtYnAtbWF4OiAgICAgICAgICAxMzIwcHg7XG5cbn1cblxuLyogQ3VzdG9tIE1lZGlhIERlY2xhcmF0aW9ucyBmb3IgQnJlYWtwb2ludHMgKi9cblxuQGN1c3RvbS1tZWRpYSAtLW1vZGFsLWJwLW1pbiAobWluLXdpZHRoOiAzMjBweCk7XG5AY3VzdG9tLW1lZGlhIC0tbW9kYWwtYnAtbWVnYSAobWluLXdpZHRoOiAxMDI0cHgpO1xuQGN1c3RvbS1tZWRpYSAtLW1vZGFsLWJwLW1heCAobWluLXdpZHRoOiAxMzIwcHgpO1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4qXG4qIENPTVBPTkVOVDogT1VSIE1PREFMIE1FU1NBR0UgLS0gVFlQT0dSQVBIWVxuKlxuKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uYy1tb2RhbCB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tbW9kYWwtZm9udC1iYXNlLW1pbik7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJywgJ1RyZWJ1Y2hldCBNUycsIFRyZWJ1Y2hldCwgVGFob21hLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogNTAwO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgZm9udC1kaXNwbGF5OiBzd2FwOyAvKiBodHRwczovL3d3dy56YWNobGVhdC5jb20vd2ViL2NvbXByZWhlbnNpdmUtd2ViZm9udHMvI2ZvbnQtZGlzcGxheSAqL1xuICBsaW5lLWhlaWdodDogMS4zNTtcblxuICAvKiBGbHVpZCBmcm9tIDE2cHggdG8gMjBweCBiZXR3ZWVuIGJyZWFrcG9pbnRzICovXG5cbiAgLyogRmx1aWQgdHlwZSBzaXplIGZyb20gMTZweCB0byAyMHB4IGJldHdlZW4gLS1tb2RhbC1icC1taW4gYW5kIC0tbW9kYWwtYnAtbWF4IGJyZWFrcG9pbnRzICovXG5cbiAgQG1lZGlhICgtLW1vZGFsLWJwLW1pbikge1xuICAgICYge1xuICAgICAgZm9udC1zaXplOiB2YXIoLS1tb2RhbC1mb250LWJhc2UtbWluKTsgLyogMTZweCBhdCAzMjBweCAqL1xuICAgICAgZm9udC1zaXplOiBjYWxjKDE2cHggKyAoMjAgLSAxNikgKiAoKDEwMHZ3IC0gMzIwcHgpLygxMzIwIC0gMzIwKSkpO1xuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSAoLS1tb2RhbC1icC1tYXgpIHtcbiAgICAmIHtcbiAgICAgIGZvbnQtc2l6ZTogdmFyKC0tbW9kYWwtZm9udC1iYXNlLW1heCk7IC8qIDIwcHggYXQgMTMyMHB4ICovXG4gICAgfVxuICB9XG5cbiAgLyogRmx1aWQgbGluZS1oZWlnaHQgZnJvbSAxLjM1IHRvIDEuNDUgYmV0d2VlbiAtLW1vZGFsLWJwLW1pbiBhbmQgLS1tb2RhbC1icC1tYXggYnJlYWtwb2ludHMgKi9cblxuICBAbWVkaWEgKC0tbW9kYWwtYnAtbWluKSB7XG4gICAgbGluZS1oZWlnaHQ6IDEuMzU7IC8qIDEuMzUgYXQgMzIwcHggKi9cbiAgICBsaW5lLWhlaWdodDogY2FsYygxLjM1ZW0gKyAoMS40NSAtIDEuMzUpICogKCgxMDB2dyAtIDMyMHB4KS8oMTMyMCAtIDMyMCkpKTtcbiAgfVxuXG4gIEBtZWRpYSAoLS1tb2RhbC1icC1tYXgpIHtcbiAgICBsaW5lLWhlaWdodDogMS40NTsgLyogMS40NSBhdCAxMzIwcHggKi9cbiAgfVxuXG5cbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuKlxuKiBDT01QT05FTlQ6IE9VUiBNT0RBTCBNRVNTQUdFIC0tIFNUWUxFU1xuKlxuKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5ib2R5LmwtaGFzLW1vZGFsIHtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xufVxuXG4uYy1tb2RhbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5jLW1vZGFsICoge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG5ib2R5LmwtaGFzLW1vZGFsIC5jLW1vZGFsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gIHotaW5kZXg6IDg2NzUzMTA7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuODUpICFpbXBvcnRhbnQ7XG59XG5cbi5jLW1vZGFsX19jb250ZW50IHtcbiAgbWFyZ2luLWxlZnQ6IDV2dztcbiAgbWFyZ2luLXJpZ2h0OiA1dnc7XG4gIHBhZGRpbmc6IDJlbTtcbiAgei1pbmRleDogODY3NTMxMDtcbiAgYmFja2dyb3VuZDogdmFyKC0tbW9kYWwtdGVhbCk7XG4gIGNvbG9yOiB2YXIoLS1tb2RhbC13aGl0ZSk7XG4gIGJveC1zaGFkb3c6IDAgMjVweCAxMDBweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIGJvcmRlci1yYWRpdXM6IC4yNWVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuQG1lZGlhICgtLW1vZGFsLWJwLW1lZ2EpIHtcbiAgLmMtbW9kYWxfX2NvbnRlbnQge1xuICAgIG1hcmdpbi1yaWdodDogMTV2dztcbiAgICBtYXJnaW4tbGVmdDogMTV2dztcbiAgfVxufVxuXG4uYy1tb2RhbCBwIHtcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICBmb250LXdlaWdodDogNDAwO1xufVxuXG5hLmMtbW9kYWxfX2Nsb3NlLFxuYS5jLW1vZGFsX19jbG9zZTpsaW5rLFxuYS5jLW1vZGFsX19jbG9zZTp2aXNpdGVkXG5hLmMtbW9kYWxfX2Nsb3NlOmFjdGl2ZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0b3A6IGNhbGMoLjEyNSAqIHZhcigtLW1vZGFsLWZsdWlkLWVtKSk7XG4gIHJpZ2h0OiBjYWxjKC41ICogdmFyKC0tbW9kYWwtZmx1aWQtZW0pKTtcbiAgZm9udC1zaXplOiB2YXIoLS1tb2RhbC1iZXRhKTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGNvbG9yOiB2YXIoLS1tb2RhbC13aGl0ZSk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3BhY2l0eTogLjg7XG4gIHRyYW5zaXRpb246IG5vbmU7XG59XG5cbmEuYy1tb2RhbF9fY2xvc2U6Zm9jdXMsXG5hLmMtbW9kYWxfX2Nsb3NlOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbiAgY29sb3I6IHZhcigtLW1vZGFsLXdoaXRlKTtcbn1cblxuYS5jLW1vZGFsX19jYW5jZWwsXG5hLmMtbW9kYWxfX2NhbmNlbDpsaW5rLFxuYS5jLW1vZGFsX19jYW5jZWw6dmlzaXRlZFxuYS5jLW1vZGFsX19jYW5jZWw6YWN0aXZlIHtcbiAgZm9udC1zaXplOiB2YXIoLS1tb2RhbC1ldGEpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLW1vZGFsLWxpZ2h0LWdyYXkpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXdlaWdodDogNTAwO1xuICBtaW4taGVpZ2h0OiAyLjM3NWVtO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBtYXJnaW46IGNhbGMoLjI1ICogdmFyKC0tbW9kYWwtZmx1aWQtZW0pKSAwIDA7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbn1cblxuYS5jLW1vZGFsX19jYW5jZWw6Zm9jdXMsXG5hLmMtbW9kYWxfX2NhbmNlbDpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1tb2RhbC13aGl0ZSk7XG59XG5cbi5jLW1vZGFsX19jb250ZW50IHtcbiAgJiA+IGgxIHtcbiAgICBmb250LXNpemU6IHZhcigtLW1vZGFsLWdhbW1hKTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICB9XG5cbiAgJiA+IGFbcm9sZT1cImJ1dHRvblwiXSxcbiAgJiA+IGFbcm9sZT1cImJ1dHRvblwiXTpsaW5rLFxuICAmID4gYVtyb2xlPVwiYnV0dG9uXCJdOnZpc2l0ZWRcbiAgJiA+IGFbcm9sZT1cImJ1dHRvblwiXTphY3RpdmUge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tbW9kYWwtZXRhKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IGNhbGMoLjA2MjUgKiB2YXIoLS1tb2RhbC1mbHVpZC1lbSkpIHNvbGlkIHZhcigtLW1vZGFsLWxpZ2h0LWdyYXkpO1xuICAgIGJvcmRlci1yYWRpdXM6IGNhbGMoLjI1ICogdmFyKC0tbW9kYWwtZmx1aWQtZW0pKTtcbiAgICBjb2xvcjogdmFyKC0tbW9kYWwtbGlnaHQtZ3JheSk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIG1pbi1oZWlnaHQ6IDIuMzc1ZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBwYWRkaW5nOiAuNzVlbSAxLjg3NWVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBtYXJnaW46IGNhbGMoLjI1ICogdmFyKC0tbW9kYWwtZmx1aWQtZW0pKSAwIDA7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gIH1cblxuICAmID4gYVtyb2xlPVwiYnV0dG9uXCJdOmZvY3VzLFxuICAmID4gYVtyb2xlPVwiYnV0dG9uXCJdOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLW1vZGFsLXdoaXRlKTtcbiAgICBjb2xvcjogdmFyKC0tbW9kYWwtd2hpdGUpO1xuICB9XG5cbiAgJiA+IGFbcmVsPVwiYWx0ZXJuYXRlXCJdLFxuICAmID4gYVtyZWw9XCJhbHRlcm5hdGVcIl06bGluayxcbiAgJiA+IGFbcmVsPVwiYWx0ZXJuYXRlXCJdOnZpc2l0ZWRcbiAgJiA+IGFbcmVsPVwiYWx0ZXJuYXRlXCJdOmFjdGl2ZSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1tb2RhbC16ZXRhKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy1yaWdodDogMi41ZW07XG4gICAgbWFyZ2luOiBjYWxjKC41ICogdmFyKC0tbW9kYWwtZmx1aWQtZW0pKSAwO1xuICB9XG5cbiAgJiA+IGFbcmVsPVwiYWx0ZXJuYXRlXCJdOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIG1hcmdpbi10b3A6IC0uNWVtO1xuICAgIHJpZ2h0OiAuMTI1ZW07XG4gICAgY29udGVudDogXCJcIjtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyLXRvcDogdHJhbnNwYXJlbnQgc29saWQgLjVlbTtcbiAgICBib3JkZXItcmlnaHQ6IHRyYW5zcGFyZW50IHNvbGlkIC43NWVtO1xuICAgIGJvcmRlci1ib3R0b206IHRyYW5zcGFyZW50IHNvbGlkIC41ZW07XG4gICAgYm9yZGVyLWxlZnQ6IHZhcigtLW1vZGFsLWxpZ2h0LWdyYXkpIHNvbGlkIC43NWVtO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG5cbiAgJiA+IGFbcmVsPVwiYWx0ZXJuYXRlXCJdOmZvY3VzOjphZnRlcixcbiAgJiA+IGFbcmVsPVwiYWx0ZXJuYXRlXCJdOmhvdmVyOjphZnRlciB7XG4gICAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLW1vZGFsLXdoaXRlKTtcbiAgfVxufVxuXG4uaC1tb2RhbC11cmwtd3JhcCB7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBDT01QT05FTlQ6IE9VUiBHTE9CQUwgTkFWXG4gKiBJbmNsdWRlZCBpbiB0aGlzIGRvY3VtZW50OiBWYXJpYWJsZXMsIEJhc2UsIFN0eWxlc1xuICpcbiAqIFRoZSBpbnN0YW5jZSBvZiB0aGUgZ2xvYmFsIG5hdiBlbWJlZGRlZCB3aXRoaW5cbiAqIHRoZSByZWcgYXBwIGlzIGNhbm9uaWNhbC5cbiAqIChodHRwczovL2dpdGh1Yi5jb20vb3BlbnVwcmVzb3VyY2VzL2N1cnJpY3VsdW0tZ2F0ZXdheSlcbiAqXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogQ09NUE9ORU5UOiBPVVIgR0xPQkFMIE5BViAtLSBST0JPVE8gRk9OVFNcbiAqXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4gLyogQXZvaWQgbG9hZGluZyB1bm5lY2Vzc2FyeSBmb250IHdlaWdodHMhICovXG4gLyogQWx3YXlzIG5lY2Vzc2FyeTogKi9cbiAgICAvKiBSb2JvdG8gNTAwIGZvciB0b3AgYW5kIHNlY29uZC1sZXZlbCBsaXN0IGl0ZW1zLiAqL1xuIC8qIFNvbWV0aW1lcyBuZWNlc3Nhcnk6ICovXG4gICAgLyogUm9ib3RvIDQwMCBmb3IgdGhpcmQtbGV2ZWwgbGlzdCBpdGVtcyBpbiBuYXJyb3cgdmlld3BvcnRzIGFuZCBnbG9iYWwgbm90aWZpY2F0aW9ucy4gKi9cbiAvKiBPbmx5IG5lY2Vzc2FyeSBpbiB0aGUgQ3VycmljdWx1bSBHYXRld2F5L1JlZyBBcHA6ICovXG4gICAgLyogUm9ib3RvIDcwMCBmb3Ig4oCcQ3JlYXRlIE5ldyBBY2NvdW504oCdIG9uIGxvZ2luIHBhZ2UuICovXG5cbiAvKiBJZiBHb29nbGUgRm9udHMgYXJlIGFscmVhZHkgaW1wb3J0ZWQgaW50byB0aGUgYXBwLCBpbmNsdWRlIFwiJmZhbWlseT1Sb2JvdG86aXRhbCx3Z2h0QDAsNDAwOzAsNTAwOzEsNzAwXCIgYXMgbmVjZXNzYXJ5LiAqL1xuIC8qIElmIEdvb2dsZSBGb250cyBhcmUgbm90IGFscmVhZHkgaW1wb3J0ZWQsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGltcG9ydCBzdGF0ZW1lbnQgb3IgKGJldHRlcikgYWRkXG4gdGhlIGVxdWl2YWxlbnQgdG8gdGhlIDxoZWFkPiBvZiB0aGUgYXBwLiAqL1xuIC8qIEBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PVJvYm90bzppdGFsLHdnaHRAMCw0MDA7MCw1MDA7MSw3MDAmZGlzcGxheT1zd2FwJyk7ICovXG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBDT01QT05FTlQ6IE9VUiBHTE9CQUwgTkFWIC0tIFZBUklBQkxFU1xuICpcbiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8qIENvbG9yIHBhbGV0dGUgKi9cblxuOnJvb3Qge1xuXG4gIC8qIENvbG9ycyB3aXRoIFwiLW91ci1cIiBpbiB0aGVpciBuYW1lIGFyZSBzb3VyY2VkIGZyb20gdGhlIE9VUiBicmFuZCBndWlkZWxpbmVzICovXG5cbi0tbmF2LWdsb2JhbC1vdXItcHJpbWFyeS1vcmFuZ2U6ICAgICAgIHJnYigyNTIsNzYsMik7ICAgIC8qICNGQzRDMDIgKi9cbi0tbmF2LWdsb2JhbC1vdXItZ2xvYmFsbmF2LW9yYW5nZTogICAgIHJnYigyNDEsODksNDIpOyAgIC8qICNGMTU5MkEgIC0gYSBsZXNzIGJyaWdodCBvcmFuZ2UgKi9cbi0tbmF2LWdsb2JhbC1vdXItcHJpbWFyeS15ZWxsb3c6ICAgICAgIHJnYigyNTUsMTg0LDI4KTsgIC8qICNGRkI4MUMgKi9cbi0tbmF2LWdsb2JhbC1vdXItcHJpbWFyeS1ncmF5OiAgICAgICAgIHJnYigxMTAsOTgsODkpOyAgIC8qICM2RTYyNTkgKi9cbi0tbmF2LWdsb2JhbC1vdXItcHJpbWFyeS1kYXJrLWdyYXk6ICAgIHJnYig2OSw1Myw1NCk7ICAgIC8qICM0NTM1MzYgKi9cbi0tbmF2LWdsb2JhbC13aGl0ZTogICAgICAgICAgICAgICAgICAgIHdoaXRlO1xuLS1uYXYtZ2xvYmFsLWxpZ2h0LWdyYXk6ICAgICAgICAgICAgICAgcmdiKDI0MSwyNDEsMjQxKTtcblxuLypcbiAgVHlwb2dyYXBoaWMgc2l6ZXNcblxuICBGb250IHNpemVzIGJhc2VkIG9uIG1pbm9yIHRoaXJkICgxLjIpIGh0dHA6Ly93d3cubW9kdWxhcnNjYWxlLmNvbS8/MSZlbSYxLjJcblxuKi9cblxuLS1uYXYtZ2xvYmFsLWZvbnQtYmFzZS1taW46IDE2cHg7XG4tLW5hdi1nbG9iYWwtZm9udC1iYXNlLW1heDogMjBweDtcbi0tbmF2LWdsb2JhbC1mbHVpZC1lbTogICAgICBjYWxjKDE2cHggKyAoMjAgLSAxNikgKiAoKDEwMHZ3IC0gMzIwcHgpLygxMzIwIC0gMzIwKSkpO1xuLS1uYXYtZ2xvYmFsLWRlbHRhOiAgICAgICAgIDEuMmVtO1xuLS1uYXYtZ2xvYmFsLWVwc2lsb246ICAgICAgIC44MzNlbTtcbi0tbmF2LWdsb2JhbC16ZXRhOiAgICAgICAgICAuOGVtO1xuXG59XG5cbi8qIEN1c3RvbSBNZWRpYSBEZWNsYXJhdGlvbnMgZm9yIEJyZWFrcG9pbnRzICovXG5cbkBjdXN0b20tbWVkaWEgLS1uYXYtZ2xvYmFsLWJwLW1pbi1taW51cyAobWF4LXdpZHRoOiA1MzZweCk7XG5AY3VzdG9tLW1lZGlhIC0tbmF2LWdsb2JhbC1icC1taW4gKG1pbi13aWR0aDogNTM3cHgpO1xuQGN1c3RvbS1tZWRpYSAtLW5hdi1nbG9iYWwtYnAtbWlkLW1pbnVzIChtYXgtd2lkdGg6IDEwMjNweCk7XG5AY3VzdG9tLW1lZGlhIC0tbmF2LWdsb2JhbC1icC1taWQgKG1pbi13aWR0aDogMTAyNHB4KTtcbkBjdXN0b20tbWVkaWEgLS1uYXYtZ2xvYmFsLWJwLW1heC1taW51cyAobWF4LXdpZHRoOiAxMzE5cHgpO1xuQGN1c3RvbS1tZWRpYSAtLW5hdi1nbG9iYWwtYnAtbWF4IChtaW4td2lkdGg6IDEzMjBweCk7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBDT01QT05FTlQ6IE9VUiBHTE9CQUwgTkFWIC0tIEJBU0VcbiAqXG4gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uYy1uYXYtZ2xvYmFsIHtcbiAgIGZvbnQtc2l6ZTogdmFyKC0tbmF2LWdsb2JhbC1mb250LWJhc2UtbWluKTtcbiAgIGZvbnQtZmFtaWx5OiAnUm9ib3RvJywgJ1RyZWJ1Y2hldCBNUycsIFRyZWJ1Y2hldCwgVGFob21hLCBzYW5zLXNlcmlmO1xuICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZWxlZ2liaWxpdHk7IC8qIENhbiBjYXVzZSBwcm9ibGVtcyBpbiBzb21lIHZlcnNpb25zIG9mIEFuZHJvaWQgKi9cbiAgICAgdGV4dC1zaXplLWFkanVzdDogbm9uZTtcbiAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgIGZvbnQtZGlzcGxheTogc3dhcDsgLyogaHR0cHM6Ly93d3cuemFjaGxlYXQuY29tL3dlYi9jb21wcmVoZW5zaXZlLXdlYmZvbnRzLyNmb250LWRpc3BsYXkgKi9cbiAgIGxpbmUtaGVpZ2h0OiAxLjQ1O1xuXG4gICAvKiBGbHVpZCBmcm9tIDE2cHggdG8gMjBweCBiZXR3ZWVuIGJyZWFrcG9pbnRzICovXG5cbiAgIEBtZWRpYSAoLS1uYXYtZ2xvYmFsLWJwLW1pbikge1xuICAgICAmIHtcbiAgICAgICBmb250LXNpemU6IHZhcigtLW5hdi1nbG9iYWwtZm9udC1iYXNlLW1pbik7IC8qIDE2cHggYXQgMzIwcHggKi8gLyogcHggZmFsbGJhY2sgZm9yIGJyb3dzZXJzIHRoYXQgZG9u4oCZdCBnZXQgY2FsYyAqL1xuICAgICAgIGZvbnQtc2l6ZTogY2FsYygxNnB4ICsgKDIwIC0gMTYpICogKCgxMDB2dyAtIDMyMHB4KS8oMTMyMCAtIDMyMCkpKTtcbiAgICAgfVxuICAgfVxuXG4gICBAbWVkaWEgKC0tbmF2LWdsb2JhbC1icC1tYXgpIHtcbiAgICAgJiB7XG4gICAgICAgZm9udC1zaXplOiB2YXIoLS1uYXYtZ2xvYmFsLWZvbnQtYmFzZS1tYXgpOyAvKiAyMHB4IGF0IDEzMjBweCAqL1xuICAgICB9XG4gICB9XG59XG5cbi5jLW5hdi1nbG9iYWwgKiB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICY6OmJlZm9yZSwgJjo6YWZ0ZXIge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIENPTVBPTkVOVDogT1VSIEdMT0JBTCBOQVYgLS0gU1RZTEVTXG4gKlxuICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmMtbmF2LWdsb2JhbCB7XG4gIEBtZWRpYSAoLS1uYXYtZ2xvYmFsLWJwLW1pZCkge1xuICAgICYge1xuICAgICAgei1pbmRleDogODY3NTMwOTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxufVxuXG4uYy1uYXYtZ2xvYmFsX193cmFwcGVyIHtcbiAgcGFkZGluZzogLjc1ZW0gMWVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1uYXYtZ2xvYmFsLW91ci1nbG9iYWxuYXYtb3JhbmdlKTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwb3NpdGlvbjpyZWxhdGl2ZTtcbiAgQG1lZGlhICgtLW5hdi1nbG9iYWwtYnAtbWlkKSB7XG4gICAgJiB7XG4gICAgICBwYWRkaW5nOiAwIC4yNWVtIDAgMWVtO1xuICAgIH1cbiAgfVxufVxuXG4uYy1uYXYtZ2xvYmFsX19sb2dvbGluayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBAbWVkaWEgKC0tbmF2LWdsb2JhbC1icC1taWQpIHtcbiAgICAmIHtcbiAgICAgIHBhZGRpbmc6IDAuODMxMjVlbSAwO1xuICAgIH1cbiAgfVxufVxuXG4uYy1uYXYtZ2xvYmFsX19sb2dvaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMmVtO1xuICB3aWR0aDogYXV0bztcbn1cblxuLmMtbmF2LWdsb2JhbF9fbWVudSB7XG4gIGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiB2YXIoLS1uYXYtZ2xvYmFsLXdoaXRlKTtcbiAgYm9yZGVyOiAzcHggdmFyKC0tbmF2LWdsb2JhbC1vdXItcHJpbWFyeS15ZWxsb3cpIHNvbGlkOyAvKiBOb3JtYWxseSwgSSBwcmVmZXIgcmVtcy9lbXMgZm9yIGFsbCBkaW1lbnNpb25zLCBidXQgYnJvd3NlciByb3VuZGluZyBvbiBhbiBlbGVtZW50IHRoaXMgc21hbGwgcmVzdWx0cyBpbiBkaWZmZXJlbnQgcGl4ZWwgd2lkdGhzIGFjcm9zcyBhZGphY2VudCBpbnN0YW5jZXMgb2YgdGhpcyBzYW1lIGVsZW1lbnQuIFRoZSBkaWZmZXJlbmNlIGlzIG5vdGljZWFibGUgYW5kIGFubm95aW5nLiAgKi9cbiAgYm9yZGVyLXJhZGl1czogY2FsYygxLjI1ICogdmFyKC0tbmF2LWdsb2JhbC1mbHVpZC1lbSkpO1xuICBwYWRkaW5nOiBjYWxjKC41ICogdmFyKC0tbmF2LWdsb2JhbC1mbHVpZC1lbSkpIGNhbGModmFyKC0tbmF2LWdsb2JhbC1mbHVpZC1lbSkpO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsaW5lLWhlaWdodDogY2FsYyh2YXIoLS1uYXYtZ2xvYmFsLWZsdWlkLWVtKSk7XG4gIHdpZHRoOiBjYWxjKDUgKiB2YXIoLS1uYXYtZ2xvYmFsLWZsdWlkLWVtKSk7XG4gIHRleHQtYWxpZ246Y2VudGVyO1xuICBmb250LXNpemU6IHZhcigtLW5hdi1nbG9iYWwtZXBzaWxvbik7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIEBtZWRpYSAoLS1uYXYtZ2xvYmFsLWJwLW1pZCkge1xuICAgICYge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbiAgJjpsaW5rLFxuICAmOnZpc2l0ZWQsXG4gICY6aG92ZXIsXG4gICY6YWN0aXZlIHtcbiAgICBjb2xvcjogdmFyKC0tbmF2LWdsb2JhbC13aGl0ZSk7XG4gIH1cbn1cblxuLmMtbmF2LWdsb2JhbF9fbmF2IHtcbiAgQG1lZGlhICgtLW5hdi1nbG9iYWwtYnAtbWlkLW1pbnVzKSB7XG4gICAgJiB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1uYXYtZ2xvYmFsLW91ci1nbG9iYWxuYXYtb3JhbmdlKTtcbiAgICAgIHBhZGRpbmc6IC43NWVtIDFlbTtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICAgICAgei1pbmRleDogODY3NTMwOTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXMsIHZpc2liaWxpdHkgMHMgMC41cztcblxuICAgICAgJjp0YXJnZXQ6bm90KFtkYXRhLXNraXAtdGFyZ2V0aW5nXSksICZbZGF0YS12aXNpYmxlXSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLmMtbmF2LWdsb2JhbF9fbGlzdCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMWVtIGF1dG8gMDtcbiAgcGFkZGluZzogMmVtIDFlbSAyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgQG1lZGlhICgtLW5hdi1nbG9iYWwtYnAtbWlkKSB7XG4gICAgJiB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICB9XG4gIH1cbn1cblxuLmMtbmF2LWdsb2JhbF9fbGlzdCB7XG4gIC8qIEFubm95aW5nIG5lY2Vzc2l0eSAtIG92ZXJyaWRlIG9mIE9VUiB3b3JkcHJlc3MgdGhlbWUgZGVmYXVsdHMgZm9yIHVsICovXG4gIHBvc2l0aW9uOiBzdGF0aWM7XG59XG5cbi5jLW5hdi1nbG9iYWxfX2xpc3RpdGVtIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgaHlwaGVuczogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAuNjU2MjVlbSAwIDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICBAbWVkaWEgKC0tbmF2LWdsb2JhbC1icC1taWQpIHtcbiAgICAmIHtcbiAgICAgIHBhZGRpbmc6IDEuMTU2MjVlbSAwO1xuICAgIH1cbiAgfVxufVxuXG4vKiBBbm5veWluZyBuZWNlc3NpdHkgLSBvdmVycmlkZSBvZiBPVVIgd29yZHByZXNzIHRoZW1lIGRlZmF1bHRzIGZvciB1bCBsaSAqL1xuLmMtbmF2LWdsb2JhbF9fbGlzdGl0ZW06OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IG5vcm1hbDtcbn1cblxuLmMtbmF2LWdsb2JhbF9fbGFiZWwge1xuICBjb2xvcjogdmFyKC0tbmF2LWdsb2JhbC13aGl0ZSk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tbmF2LWdsb2JhbC1kZWx0YSk7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgQG1lZGlhICgtLW5hdi1nbG9iYWwtYnAtbWlkKSB7XG4gICAgJiB7XG4gICAgICBmb250LXNpemU6IHZhcigtLW5hdi1nbG9iYWwtZXBzaWxvbik7XG4gICAgfVxuICB9XG59XG5cbi5jLW5hdi1nbG9iYWxfX2xpbmssXG4uYy1uYXYtZ2xvYmFsX19saW5rOmxpbmssXG4uYy1uYXYtZ2xvYmFsX19saW5rOnZpc2l0ZWQsXG4uYy1uYXYtZ2xvYmFsX19saW5rOmFjdGl2ZSB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tbmF2LWdsb2JhbC1kZWx0YSk7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiB2YXIoLS1uYXYtZ2xvYmFsLXdoaXRlKTtcbiAgcGFkZGluZzogY2FsYyguNSAqIHZhcigtLW5hdi1nbG9iYWwtZmx1aWQtZW0pKTtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbiAgQG1lZGlhICgtLW5hdi1nbG9iYWwtYnAtbWlkKSB7XG4gICAgJiB7XG4gICAgICBmb250LXNpemU6IHZhcigtLW5hdi1nbG9iYWwtZXBzaWxvbik7XG4gICAgICBwYWRkaW5nOiAwIHZhcigtLW5hdi1nbG9iYWwtZm9udC1iYXNlLW1heCk7XG4gICAgfVxuICB9XG4gIEBtZWRpYSAoLS1uYXYtZ2xvYmFsLWJwLW1pZCkge1xuICAgICY6OmJlZm9yZSxcbiAgICAmOjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogM3B4OyAvKiBOb3JtYWxseSwgSSBwcmVmZXIgcmVtcy9lbXMgZm9yIGFsbCBkaW1lbnNpb25zLCBidXQgYnJvd3NlciByb3VuZGluZyBvbiBhbiBlbGVtZW50IHRoaXMgc21hbGwgcmVzdWx0cyBpbiBkaWZmZXJlbnQgcGl4ZWwgd2lkdGhzIGFjcm9zcyBhZGphY2VudCBpbnN0YW5jZXMgb2YgdGhpcyBzYW1lIGVsZW1lbnQuIFRoZSBkaWZmZXJlbmNlIGlzIG5vdGljZWFibGUgYW5kIGFubm95aW5nLiAgKi9cbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogMnB4O1xuICAgIH1cbiAgfVxuICBAbWVkaWEgKC0tbmF2LWdsb2JhbC1icC1taWQtbWludXMpIHtcbiAgICAmOjpiZWZvcmUsXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiBjYWxjKC4yNSAqIHZhcigtLW5hdi1nbG9iYWwtZmx1aWQtZW0pKTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbiAgfVxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogdmFyKC0tbmF2LWdsb2JhbC13aGl0ZSk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG4gIEBtZWRpYSAoLS1uYXYtZ2xvYmFsLWJwLW1pZCkge1xuICAgICY6aG92ZXI6OmFmdGVyLFxuICAgICY6Zm9jdXM6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLW5hdi1nbG9iYWwtb3VyLXByaW1hcnkteWVsbG93KTtcbiAgICB9XG4gIH1cbn1cblxuLyogNzAwIHdlaWdodCBvbmx5IHJlcXVpcmVkIGluIHRoZSBSZWcgQXBwIGZvciBmb3JtYXR0aW5nIFwiQ3JlYXRlIE5ldyBBY2NvdW50XCIgKi9cbi5jLW5hdi1nbG9iYWxfX2xhYmVsICsgLmMtbmF2LWdsb2JhbF9fbGluayxcbi5jLW5hdi1nbG9iYWxfX2xhYmVsICsgLmMtbmF2LWdsb2JhbF9fbGluazpsaW5rLFxuLmMtbmF2LWdsb2JhbF9fbGFiZWwgKyAuYy1uYXYtZ2xvYmFsX19saW5rOnZpc2l0ZWQsXG4uYy1uYXYtZ2xvYmFsX19sYWJlbCArIC5jLW5hdi1nbG9iYWxfX2xpbms6YWN0aXZlIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBmb250LXdlaWdodDogNzAwO1xuICAmOjpiZWZvcmUsXG4gICY6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDNweDsgLyogTm9ybWFsbHksIEkgcHJlZmVyIHJlbXMvZW1zIGZvciBhbGwgZGltZW5zaW9ucywgYnV0IGJyb3dzZXIgcm91bmRpbmcgb24gYW4gZWxlbWVudCB0aGlzIHNtYWxsIHJlc3VsdHMgaW4gZGlmZmVyZW50IHBpeGVsIHdpZHRocyBhY3Jvc3MgYWRqYWNlbnQgaW5zdGFuY2VzIG9mIHRoaXMgc2FtZSBlbGVtZW50LiBUaGUgZGlmZmVyZW5jZSBpcyBub3RpY2VhYmxlIGFuZCBhbm5veWluZy4gICovXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAycHg7XG4gIH1cbiAgJjo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLW5hdi1nbG9iYWwtb3VyLXByaW1hcnkteWVsbG93KTtcbiAgICBvcGFjaXR5OiAuNzU7XG4gIH1cbiAgJjpob3Zlcjo6YWZ0ZXIge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgQG1lZGlhICgtLW5hdi1nbG9iYWwtYnAtbWlkKSB7XG4gICAgJjo6YmVmb3JlLFxuICAgICY6OmFmdGVyIHtcbiAgICAgIHRvcDogMDtcbiAgICB9XG4gIH1cbn1cblxuLmMtbmF2LWdsb2JhbF9fbGlzdGl0ZW06bGFzdC1jaGlsZDpub3QoOm9ubHktY2hpbGQpIHtcbiAgJiAuYy1uYXYtZ2xvYmFsX19saW5rLFxuICAmIC5jLW5hdi1nbG9iYWxfX2xpbms6bGluayxcbiAgJiAuYy1uYXYtZ2xvYmFsX19saW5rOnZpc2l0ZWQsXG4gICYgLmMtbmF2LWdsb2JhbF9fbGluazphY3RpdmUge1xuICAgIEBtZWRpYSAoLS1uYXYtZ2xvYmFsLWJwLW1pZCkge1xuICAgICAgJiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1uYXYtZ2xvYmFsLWZvbnQtYmFzZS1tYXgpO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IGNhbGMoMiAqIHZhcigtLW5hdi1nbG9iYWwtZm9udC1iYXNlLW1heCkpO1xuICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLW5hdi1nbG9iYWwtd2hpdGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuLmMtbmF2LWdsb2JhbF9fbm90aWZpY2F0aW9uIHtcbiAgcGFkZGluZzogdmFyKC0tbmF2LWdsb2JhbC16ZXRhKSAzZW07XG4gIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uYy1uYXYtZ2xvYmFsX19ub3RpZmljYXRpb24gcCB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tbmF2LWdsb2JhbC16ZXRhKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgbWFyZ2luOiAwO1xufVxuXG4uYy1uYXYtZ2xvYmFsX19ub3RpZmljYXRpb24gYSB7XG4gIGNvbG9yOiB2YXIoLS1uYXYtZ2xvYmFsLW91ci1wcmltYXJ5LWRhcmstZ3JheSk7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5jLW5hdi1nbG9iYWxfX2hlbHBlci1ub3dyYXAge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuIiwiLyogTWFrZSBjb250ZW50IHZpc2libGUgc2NyZWVuIHJlYWRlcnMgb25seSB3aGVuIG5vdCBmb2N1c2VkIG9yIGFjdGl2ZSAqL1xuLyogXCJzclwiIG1lYW5pbmcgXCJzY3JlZW4tcmVhZGVyXCIuIExlYXJuIG1vcmU6IGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vaW5jbHVzaXZlbHktaGlkZGVuLyAqL1xuXG4uc3Itb25seTpub3QoOmZvY3VzKTpub3QoOmFjdGl2ZSkge1xuICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAtd2Via2l0LWNsaXAtcGF0aDogaW5zZXQoNTAlKTtcbiAgY2xpcC1wYXRoOiBpbnNldCg1MCUpO1xuICBoZWlnaHQ6IDFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3aWR0aDogMXB4O1xufVxuXG4qOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuKjpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm94LXNoYWRvdzpcbiAgICAwIDAgMCAwLjE1ZW0gI2ZmZixcbiAgICAwIDAgMCAwLjNlbSB2YXIoLS1hYS1vcmFuZ2UpO1xufVxuXG5AbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkge1xuICAqOmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IDAuMmVtIHNvbGlkO1xuICB9XG59XG4iLCJAaW1wb3J0IFwiLi9jb21wb25lbnRzL19mb290ZXIuY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL19tb2RhbC5jc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvX25hdi1nbG9iYWwuY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL19hY2Nlc3NpYmlsaXR5LmNzc1wiO1xuXG4vKiogVXRpbGl0eSBDbGFzc2VzICoqL1xuXG4vKlxuICBVc2VkIHRvIGluZGljYXRlIHByZWZvcm1hdHRlZCB3aGl0ZXNwYWNlLlxuKi9cbi51LXByZWZvcm1hdHRlZCB7IHdoaXRlLXNwYWNlOiBwcmUgfVxuIl19 */
