:root {
  --color-primary--lightest: #B2EBC8;
  --color-primary--lighter: #3ECD76;
  --color-primary: #009A3D;
  --color-primary--darker: #00732E;
  --color-primary--darkest: #004D1F;
  --color-secondary: #fff;
  --color-tertiary: rgb(193,0,42);
  --color-text: var(--color-primary);
  --font-primary: Helvetica Neue, Helvetica, Liberation Sans, Arial, sans-serif;
  --general-spacing: 30px;
  --small-spacing: calc(var(--general-spacing) * 0.5);
  --grid-column-gap: 10px;
  --grid-column-max-width: 88px;
  --pagegrid-padding: var(--general-spacing);
  --font-weight--thin: 100;
  --font-weight--hairline: var(--font-weight--thin);
  --font-weight--extra-light: 200;
  --font-weight--ultra-light: var(--font-weight--extra-light);
  --font-weight--light: 300;
  --font-weight--regular: 400;
  --font-weight--normal: var(--font-weight--regular);
  --font-weight--medium: 500;
  --font-weight--semi-bold: 600;
  --font-weight--demi-bold: var(--font-weight--semi-bold);
  --font-weight--bold: 700;
  --font-weight--extra-bold: 800;
  --font-weight--ultra-bold: var(--font-weight--extra-bold);
  --font-weight--heavy: 900;
  --font-weight--black: var(--font-weight--heavy);
  --font-weight--extra-black: 950;
  --font-weight--ultra-black: var(--font-weight--extra-black); }

/*! normalize.css v4.1.1 | MIT License | github.com/necolas/normalize.css */
/**
 * 1. Change the default font family in all browsers (opinionated).
 * 2. Prevent adjustments of font size after orientation changes in IE and iOS.
 */
html {
  font-family: sans-serif;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */ }

/**
 * Remove the margin in all browsers (opinionated).
 */
body {
  margin: 0; }

/* HTML5 display definitions
   ========================================================================== */
/**
 * Add the correct display in IE 9-.
 * 1. Add the correct display in Edge, IE, and Firefox.
 * 2. Add the correct display in IE.
 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
main,
menu,
nav,
section,
summary {
  /* 1 */
  display: block; }

/**
 * Add the correct display in IE 9-.
 */
audio,
canvas,
progress,
video {
  display: inline-block; }

/**
 * Add the correct display in iOS 4-7.
 */
audio:not([controls]) {
  display: none;
  height: 0; }

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  vertical-align: baseline; }

/**
 * Add the correct display in IE 10-.
 * 1. Add the correct display in IE.
 */
template,
[hidden] {
  display: none; }

/* Links
   ========================================================================== */
/**
 * 1. Remove the gray background on active links in IE 10.
 * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
 */
a {
  background-color: transparent;
  /* 1 */
  -webkit-text-decoration-skip: objects;
  /* 2 */ }

/**
 * Remove the outline on focused links when they are also active or hovered
 * in all browsers (opinionated).
 */
a:active,
a:hover {
  outline-width: 0; }

/* Text-level semantics
   ========================================================================== */
/**
 * 1. Remove the bottom border in Firefox 39-.
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  border-bottom: none;
  /* 1 */
  text-decoration: underline;
  /* 2 */
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
  /* 2 */ }

/**
 * Prevent the duplicate application of `bolder` by the next rule in Safari 6.
 */
b,
strong {
  font-weight: inherit; }

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
  font-weight: bolder; }

/**
 * Add the correct font style in Android 4.3-.
 */
dfn {
  font-style: italic; }

/**
 * 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; }

/**
 * Add the correct background and color in IE 9-.
 */
mark {
  background-color: #ff0;
  color: #000; }

/**
 * 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; }

/**
 * Hide the overflow in IE.
 */
svg:not(:root) {
  overflow: hidden; }

/* Grouping content
   ========================================================================== */
/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */ }

/**
 * Add the correct margin in IE 8.
 */
figure {
  margin: 1em 40px; }

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
  box-sizing: content-box;
  /* 1 */
  height: 0;
  /* 1 */
  overflow: visible;
  /* 2 */ }

/* Forms
   ========================================================================== */
/**
 * 1. Change font properties to `inherit` in all browsers (opinionated).
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
select,
textarea {
  font: inherit;
  /* 1 */
  margin: 0;
  /* 2 */ }

/**
 * Restore the font weight unset by the previous rule.
 */
optgroup {
  font-weight: bold; }

/**
 * 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; }

/**
 * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
 *    controls in Android 4.
 * 2. Correct the inability to style clickable types in iOS and Safari.
 */
button,
html [type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
  /* 2 */ }

/**
 * 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; }

/**
 * Change the border, margin, and padding in all browsers (opinionated).
 */
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em; }

/**
 * 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 {
  box-sizing: border-box;
  /* 1 */
  color: inherit;
  /* 2 */
  display: table;
  /* 1 */
  max-width: 100%;
  /* 1 */
  padding: 0;
  /* 3 */
  white-space: normal;
  /* 1 */ }

/**
 * Remove the default vertical scrollbar in IE.
 */
textarea {
  overflow: auto; }

/**
 * 1. Add the correct box sizing in IE 10-.
 * 2. Remove the padding in IE 10-.
 */
[type="checkbox"],
[type="radio"] {
  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 and cancel buttons in Chrome and Safari on OS X.
 */
[type="search"]::-webkit-search-cancel-button,
[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

/**
 * Correct the text style of placeholders in Chrome, Edge, and Safari.
 */
::-webkit-input-placeholder {
  color: inherit;
  opacity: 0.54; }

/**
 * 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 */ }

*,
*:before,
*:after {
  box-sizing: inherit; }

html,
body {
  width: 100%;
  height: 100%;
  font-family: var(--font-primary);
  font-size: 14px;
  line-height: 22px;
  font-weight: var(--font-weight--normal);
  color: var(--color-primary--darkest);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-smoothing: antialiased; }

html {
  box-sizing: border-box;
  scroll-behavior: smooth; }

img {
  max-width: 100%;
  height: auto; }

.section ul {
  list-style-type: disc;
  list-style-position: outside;
  padding-left: 15px; }

.section ol {
  list-style-type: decimal;
  list-style-position: outside;
  padding-left: 15px; }

.section ul ul, .section ol ul {
  list-style-type: circle;
  list-style-position: outside;
  margin-left: 15px;
  padding-left: 0;
  margin-bottom: 0; }

.section ol ol, .section ul ol {
  list-style-type: lower-latin;
  list-style-position: outside;
  margin-left: 15px; }

.section em {
  font-style: italic; }

.section strong {
  font-weight: bold; }

.section img.alignleft {
  float: left;
  margin-right: var(--small-spacing); }

.section img.alignright {
  float: right;
  margin-left: var(--small-spacing); }

.section img.aligncenter {
  margin: 0 auto;
  display: block; }

.section h1, .section h2, .section h3, .section h4, .section h5, .section h6 {
  clear: both;
  margin-bottom: var(--small-spacing)/4; }

.section .gallery-item {
  padding: var(--small-spacing)/2; }
  @media (max-width: 768px) {
    .section .gallery-item {
      width: 100% !important;
      clear: both; } }

.section a {
  color: var(--color-primary--darker); }

p, ul, ol {
  margin: 0 0 var(--small-spacing) 0; }

a:focus {
  outline: 3px solid var(--color-tertiary);
  isolation: isolate; }

.sticky.sticky {
  opacity: 0;
  position: -webkit-sticky;
  position: sticky;
  bottom: 10px;
  margin-left: auto;
  margin-right: -30px;
  margin-top: 30px;
  width: 70px;
  height: 70px;
  background-color: rgba(193, 0, 42, 0.8);
  border-radius: 35px;
  color: var(--color-secondary);
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  font-size: 18px;
  font-weight: var(--font-weight--bold);
  line-height: 22px;
  transition: opacity 0.3s ease-in-out; }
  .sticky.sticky.visible {
    opacity: 1; }
  .sticky.sticky::before {
    content: '';
    width: 35px;
    height: 25px;
    background-image: url("../img/top.png");
    background-position: 50% 50%;
    background-size: contain;
    background-repeat: no-repeat;
    display: block;
    margin: 10px auto 5px auto; }

.header, .section--intro, .section, .footer {
  display: grid;
  grid-column-gap: var(--grid-column-gap);
  grid-template-columns: repeat(12, minmax(0, var(--grid-column-max-width))); }
  .header > *, .section--intro > *, .section > *, .footer > * {
    grid-column: 1/13; }

.header, .section--intro, .section, .footer {
  grid-template-columns: [full-start] minmax(var(--pagegrid-padding), 1fr) [main-start] repeat(12, minmax(0, var(--grid-column-max-width))) [main-end] minmax(var(--pagegrid-padding), 1fr) [full-end]; }
  .header > *, .section--intro > *, .section > *, .footer > * {
    grid-column: main; }

.header__wrapper {
  display: flex;
  justify-content: space-between; }

.sitelogo__wrapper {
  width: 115px;
  height: 80px;
  position: relative;
  flex-shrink: 0; }
  @media (min-width: 1100px) {
    .sitelogo__wrapper {
      width: 240px;
      height: 120px; } }

.sitelogo {
  position: absolute;
  width: 115px;
  height: 115px;
  display: inline-block;
  text-indent: -9999px;
  background-image: url("../img/logo-integrated-pest-management-2023.png");
  background-size: contain;
  background-position: 50% 50%;
  background-repeat: no-repeat;
  z-index: 10; }
  @media (min-width: 1100px) {
    .sitelogo {
      width: 240px;
      height: 240px; } }

.sitedescription {
  padding: 15px 0;
  margin: 0;
  color: var(--color-primary);
  font-size: 16px;
  line-height: 19px;
  font-weight: var(--font-weight--heavy);
  text-transform: uppercase;
  text-align: right;
  display: flex;
  align-items: flex-end; }

.section--intro {
  padding: 45px 0 30px 0;
  background-color: var(--color-primary);
  position: relative;
  overflow-x: hidden; }
  .section--intro::after {
    position: absolute;
    content: "";
    display: block;
    width: 700px;
    height: 450px;
    background-image: url("../img/rat-min.jpg");
    background-repeat: no-repeat;
    background-size: contain;
    background-blend-mode: multiply;
    background-color: var(--color-primary);
    background-position: -250px 100%;
    opacity: 0.3;
    left: 0;
    bottom: 0; }

.intro {
  font-weight: var(--font-weight--normal);
  font-size: 16px;
  line-height: 26px;
  color: var(--color-secondary);
  width: 580px;
  max-width: 100%;
  margin-bottom: 30px; }
  .intro a {
    color: var(--color-secondary); }
  @media (min-width: 1100px) {
    .intro {
      margin-left: auto;
      font-size: 20px;
      text-align: right; } }

.nav--main {
  position: relative;
  z-index: 25; }
  .nav--main .menu {
    list-style: none;
    margin: 0;
    padding: 0; }
    @media (min-width: 1100px) {
      .nav--main .menu {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr; } }
  .nav--main .menu__item {
    display: block; }
  .nav--main .menu__link {
    display: block;
    background-color: var(--color-secondary);
    color: var(--color-primary);
    text-decoration: none;
    padding: 25px;
    text-align: center;
    font-size: 18px;
    line-height: 22px;
    font-weight: var(--font-weight--bold); }
    @media (min-width: 1100px) {
      .nav--main .menu__link {
        font-size: 36px;
        line-height: 43px;
        min-height: 240px;
        display: grid;
        justify-content: center;
        align-items: center; } }
  .nav--main .menu__item:nth-child(2) .menu__link {
    background-color: var(--color-primary--lighter);
    color: var(--color-secondary); }
  .nav--main .menu__item:nth-child(3) .menu__link {
    background-color: var(--color-primary--darker);
    color: var(--color-secondary); }
  .nav--main .menu__item:nth-child(4) .menu__link {
    background-color: var(--color-primary--darkest);
    color: var(--color-secondary); }
  .nav--main .menu__item:nth-child(6) .menu__link {
    background-color: var(--color-primary--lightest);
    color: var(--color-primary); }
  .nav--main .menu__item:first-child .menu__link {
    border-radius: 12px 12px 0 0; }
    @media (min-width: 1100px) {
      .nav--main .menu__item:first-child .menu__link {
        border-radius: 12px 0 0 0; } }
  @media (min-width: 1100px) {
    .nav--main .menu__item:nth-child(3) .menu__link {
      border-radius: 0 12px 0 0; } }
  @media (min-width: 1100px) {
    .nav--main .menu__item:nth-child(4) .menu__link {
      border-radius: 0 0 0 12px; } }
  .nav--main .menu__item:last-child .menu__link {
    border-radius: 0 0 12px 12px; }
    @media (min-width: 1100px) {
      .nav--main .menu__item:last-child .menu__link {
        border-radius: 0 0 12px 0; } }

.section--content {
  padding-top: 40px; }

.contentsection {
  padding: 48px 0 0 0; }
  .contentsection p:last-child {
    margin-bottom: 0; }

.contentsection__title {
  font-size: 18px;
  line-height: 22px;
  font-weight: var(--font-weight--bold);
  margin: 0 0 10px 0;
  padding: 0; }
  @media (min-width: 1100px) {
    .contentsection__title {
      font-size: 36px;
      line-height: 43px; } }

.contentsection:nth-child(odd) .contentsection__title {
  color: var(--color-primary); }

.contentsection:nth-child(even) .contentsection__title {
  color: var(--color-primary--lighter); }

.contentsection > * {
  width: 750px;
  max-width: 100%;
  margin: 0 auto; }

.faq {
  --faq-spacing: 20px; }
  .faq:first-of-type {
    margin-top: var(--faq-spacing); }

.faq__question {
  font-size: 18px;
  font-weight: normal;
  line-height: 22px;
  margin: var(--faq-spacing) 0 0 0;
  padding: 0;
  cursor: pointer; }
  @media (min-width: 1100px) {
    .faq__question {
      font-weight: bold; } }

.faq__answer--hidden {
  height: 0;
  overflow: hidden; }

.contentsection:nth-child(odd) .faq__question {
  color: var(--color-primary); }

.contentsection:nth-child(even) .faq__question {
  color: var(--color-primary--lighter); }

.footer {
  background-color: var(--color-primary--darkest);
  color: var(--color-secondary);
  padding: 30px 0;
  margin-top: 50px; }
  .footer a {
    color: var(--color-secondary);
    text-decoration: none; }

/*# sourceMappingURL=data:application/json;base64,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QUNFLGlCQUFpQixFQUFFOztBQUVyQjtFQUNFLG1CQUFtQixFQUFFO0VBQ3JCO0lBQ0UsZ0JBQWdCLEVBQUU7O0FBRXRCO0VBQ0UsZUFBZTtFQUNmLGlCQUFpQjtFQUNqQixxQ0FBcUM7RUFDckMsa0JBQWtCO0VBQ2xCLFVBQVUsRUFBRTtFQUNaO0lBQ0U7TUFDRSxlQUFlO01BQ2YsaUJBQWlCLEVBQUUsRUFBRTs7QUFFM0I7RUFDRSwyQkFBMkIsRUFBRTs7QUFFL0I7RUFDRSxvQ0FBb0MsRUFBRTs7QUFFeEM7RUFDRSxZQUFZO0VBQ1osZUFBZTtFQUNmLGNBQWMsRUFBRTs7QUFFbEI7RUFDRSxtQkFBbUIsRUFBRTtFQUNyQjtJQUNFLDhCQUE4QixFQUFFOztBQUVwQztFQUNFLGVBQWU7RUFDZixtQkFBbUI7RUFDbkIsaUJBQWlCO0VBQ2pCLGdDQUFnQztFQUNoQyxVQUFVO0VBQ1YsZUFBZSxFQUFFO0VBQ2pCO0lBQ0U7TUFDRSxpQkFBaUIsRUFBRSxFQUFFOztBQUUzQjtFQUNFLFNBQVM7RUFDVCxnQkFBZ0IsRUFBRTs7QUFFcEI7RUFDRSwyQkFBMkIsRUFBRTs7QUFFL0I7RUFDRSxvQ0FBb0MsRUFBRTs7QUFFeEM7RUFDRSwrQ0FBK0M7RUFDL0MsNkJBQTZCO0VBQzdCLGVBQWU7RUFDZixnQkFBZ0IsRUFBRTtFQUNsQjtJQUNFLDZCQUE2QjtJQUM3QixxQkFBcUIsRUFBRSIsImZpbGUiOiJzY3JlZW4uY3NzIiwic291cmNlc0NvbnRlbnQiOlsiOnJvb3Qge1xuICAtLWNvbG9yLXByaW1hcnktLWxpZ2h0ZXN0OiAjQjJFQkM4O1xuICAtLWNvbG9yLXByaW1hcnktLWxpZ2h0ZXI6ICMzRUNENzY7XG4gIC0tY29sb3ItcHJpbWFyeTogIzAwOUEzRDtcbiAgLS1jb2xvci1wcmltYXJ5LS1kYXJrZXI6ICMwMDczMkU7XG4gIC0tY29sb3ItcHJpbWFyeS0tZGFya2VzdDogIzAwNEQxRjtcbiAgLS1jb2xvci1zZWNvbmRhcnk6ICNmZmY7XG4gIC0tY29sb3ItdGVydGlhcnk6IHJnYigxOTMsMCw0Mik7XG4gIC0tY29sb3ItdGV4dDogdmFyKC0tY29sb3ItcHJpbWFyeSk7XG4gIC0tZm9udC1wcmltYXJ5OiBIZWx2ZXRpY2EgTmV1ZSwgSGVsdmV0aWNhLCBMaWJlcmF0aW9uIFNhbnMsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAtLWdlbmVyYWwtc3BhY2luZzogMzBweDtcbiAgLS1zbWFsbC1zcGFjaW5nOiBjYWxjKHZhcigtLWdlbmVyYWwtc3BhY2luZykgKiAwLjUpO1xuICAtLWdyaWQtY29sdW1uLWdhcDogMTBweDtcbiAgLS1ncmlkLWNvbHVtbi1tYXgtd2lkdGg6IDg4cHg7XG4gIC0tcGFnZWdyaWQtcGFkZGluZzogdmFyKC0tZ2VuZXJhbC1zcGFjaW5nKTtcbiAgLS1mb250LXdlaWdodC0tdGhpbjogMTAwO1xuICAtLWZvbnQtd2VpZ2h0LS1oYWlybGluZTogdmFyKC0tZm9udC13ZWlnaHQtLXRoaW4pO1xuICAtLWZvbnQtd2VpZ2h0LS1leHRyYS1saWdodDogMjAwO1xuICAtLWZvbnQtd2VpZ2h0LS11bHRyYS1saWdodDogdmFyKC0tZm9udC13ZWlnaHQtLWV4dHJhLWxpZ2h0KTtcbiAgLS1mb250LXdlaWdodC0tbGlnaHQ6IDMwMDtcbiAgLS1mb250LXdlaWdodC0tcmVndWxhcjogNDAwO1xuICAtLWZvbnQtd2VpZ2h0LS1ub3JtYWw6IHZhcigtLWZvbnQtd2VpZ2h0LS1yZWd1bGFyKTtcbiAgLS1mb250LXdlaWdodC0tbWVkaXVtOiA1MDA7XG4gIC0tZm9udC13ZWlnaHQtLXNlbWktYm9sZDogNjAwO1xuICAtLWZvbnQtd2VpZ2h0LS1kZW1pLWJvbGQ6IHZhcigtLWZvbnQtd2VpZ2h0LS1zZW1pLWJvbGQpO1xuICAtLWZvbnQtd2VpZ2h0LS1ib2xkOiA3MDA7XG4gIC0tZm9udC13ZWlnaHQtLWV4dHJhLWJvbGQ6IDgwMDtcbiAgLS1mb250LXdlaWdodC0tdWx0cmEtYm9sZDogdmFyKC0tZm9udC13ZWlnaHQtLWV4dHJhLWJvbGQpO1xuICAtLWZvbnQtd2VpZ2h0LS1oZWF2eTogOTAwO1xuICAtLWZvbnQtd2VpZ2h0LS1ibGFjazogdmFyKC0tZm9udC13ZWlnaHQtLWhlYXZ5KTtcbiAgLS1mb250LXdlaWdodC0tZXh0cmEtYmxhY2s6IDk1MDtcbiAgLS1mb250LXdlaWdodC0tdWx0cmEtYmxhY2s6IHZhcigtLWZvbnQtd2VpZ2h0LS1leHRyYS1ibGFjayk7IH1cblxuLyohIG5vcm1hbGl6ZS5jc3MgdjQuMS4xIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuLyoqXG4gKiAxLiBDaGFuZ2UgdGhlIGRlZmF1bHQgZm9udCBmYW1pbHkgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIElFIGFuZCBpT1MuXG4gKi9cbmh0bWwge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgLyogMSAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMiAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICovXG5ib2R5IHtcbiAgbWFyZ2luOiAwOyB9XG5cbi8qIEhUTUw1IGRpc3BsYXkgZGVmaW5pdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUsIGFuZCBGaXJlZm94LlxuICogMi4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gKi9cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxubWFpbixcbm1lbnUsXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7XG4gIC8qIDEgKi9cbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqL1xuYXVkaW8sXG5jYW52YXMsXG5wcm9ncmVzcyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gaU9TIDQtNy5cbiAqL1xuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwOyB9XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xucHJvZ3Jlc3Mge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC0uXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAqL1xudGVtcGxhdGUsXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLyogTGlua3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqIDIuIFJlbW92ZSBnYXBzIGluIGxpbmtzIHVuZGVybGluZSBpbiBpT1MgOCsgYW5kIFNhZmFyaSA4Ky5cbiAqL1xuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAvKiAxICovXG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXA6IG9iamVjdHM7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgb3V0bGluZSBvbiBmb2N1c2VkIGxpbmtzIHdoZW4gdGhleSBhcmUgYWxzbyBhY3RpdmUgb3IgaG92ZXJlZFxuICogaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKi9cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gIG91dGxpbmUtd2lkdGg6IDA7IH1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBGaXJlZm94IDM5LS5cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gKi9cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgLyogMSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgLyogMiAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIFByZXZlbnQgdGhlIGR1cGxpY2F0ZSBhcHBsaWNhdGlvbiBvZiBgYm9sZGVyYCBieSB0aGUgbmV4dCBydWxlIGluIFNhZmFyaSA2LlxuICovXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7IH1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICovXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjsgfVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHN0eWxlIGluIEFuZHJvaWQgNC4zLS5cbiAqL1xuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAqL1xuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDsgfVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBiYWNrZ3JvdW5kIGFuZCBjb2xvciBpbiBJRSA5LS5cbiAqL1xubWFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjA7XG4gIGNvbG9yOiAjMDAwOyB9XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7IH1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbiAqIGFsbCBicm93c2Vycy5cbiAqL1xuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07IH1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07IH1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC0uXG4gKi9cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTsgfVxuXG4vKipcbiAqIEhpZGUgdGhlIG92ZXJmbG93IGluIElFLlxuICovXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBtYXJnaW4gaW4gSUUgOC5cbiAqL1xuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDsgfVxuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gKiAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cbiAqL1xuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgLyogMSAqL1xuICBoZWlnaHQ6IDA7XG4gIC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIC8qIDIgKi8gfVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gKi9cbmJ1dHRvbixcbmlucHV0LFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250OiBpbmhlcml0O1xuICAvKiAxICovXG4gIG1hcmdpbjogMDtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICogUmVzdG9yZSB0aGUgZm9udCB3ZWlnaHQgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gKi9cbm9wdGdyb3VwIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLyoqXG4gKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAqIDEuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gKi9cbmJ1dHRvbixcbmlucHV0IHtcbiAgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTsgfVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICovXG5idXR0b24sXG5zZWxlY3Qge1xuICAvKiAxICovXG4gIHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG5cbi8qKlxuICogMS4gUHJldmVudCBhIFdlYktpdCBidWcgd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gIGFuZCBgdmlkZW9gXG4gKiAgICBjb250cm9scyBpbiBBbmRyb2lkIDQuXG4gKiAyLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICovXG5idXR0b24sXG5odG1sIFt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwOyB9XG5cbi8qKlxuICogUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuICovXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDsgfVxuXG4vKipcbiAqIENoYW5nZSB0aGUgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICovXG5maWVsZHNldCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gIG1hcmdpbjogMCAycHg7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTsgfVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAqL1xubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBjb2xvcjogaW5oZXJpdDtcbiAgLyogMiAqL1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMyAqL1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAvKiAxICovIH1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFLlxuICovXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvOyB9XG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAtLlxuICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLS5cbiAqL1xuW3R5cGU9XCJjaGVja2JveFwiXSxcblt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bzsgfVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gKi9cblt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIC8qIDEgKi9cbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBhbmQgY2FuY2VsIGJ1dHRvbnMgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWC5cbiAqL1xuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgfVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIHRleHQgc3R5bGUgb2YgcGxhY2Vob2xkZXJzIGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIG9wYWNpdHk6IDAuNTQ7IH1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuICovXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDtcbiAgLyogMiAqLyB9XG5cbiosXG4qOmJlZm9yZSxcbio6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBpbmhlcml0OyB9XG5cbmh0bWwsXG5ib2R5IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtcHJpbWFyeSk7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDIycHg7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC0tbm9ybWFsKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktLWRhcmtlc3QpO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOyB9XG5cbmh0bWwge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsgfVxuXG5pbWcge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bzsgfVxuXG4uc2VjdGlvbiB1bCB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcbiAgbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTtcbiAgcGFkZGluZy1sZWZ0OiAxNXB4OyB9XG5cbi5zZWN0aW9uIG9sIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBkZWNpbWFsO1xuICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlO1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7IH1cblxuLnNlY3Rpb24gdWwgdWwsIC5zZWN0aW9uIG9sIHVsIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBjaXJjbGU7XG4gIGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGU7XG4gIG1hcmdpbi1sZWZ0OiAxNXB4O1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLnNlY3Rpb24gb2wgb2wsIC5zZWN0aW9uIHVsIG9sIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBsb3dlci1sYXRpbjtcbiAgbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTtcbiAgbWFyZ2luLWxlZnQ6IDE1cHg7IH1cblxuLnNlY3Rpb24gZW0ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7IH1cblxuLnNlY3Rpb24gc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLnNlY3Rpb24gaW1nLmFsaWdubGVmdCB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW4tcmlnaHQ6IHZhcigtLXNtYWxsLXNwYWNpbmcpOyB9XG5cbi5zZWN0aW9uIGltZy5hbGlnbnJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tbGVmdDogdmFyKC0tc21hbGwtc3BhY2luZyk7IH1cblxuLnNlY3Rpb24gaW1nLmFsaWduY2VudGVyIHtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5zZWN0aW9uIGgxLCAuc2VjdGlvbiBoMiwgLnNlY3Rpb24gaDMsIC5zZWN0aW9uIGg0LCAuc2VjdGlvbiBoNSwgLnNlY3Rpb24gaDYge1xuICBjbGVhcjogYm90aDtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc21hbGwtc3BhY2luZykvNDsgfVxuXG4uc2VjdGlvbiAuZ2FsbGVyeS1pdGVtIHtcbiAgcGFkZGluZzogdmFyKC0tc21hbGwtc3BhY2luZykvMjsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAuc2VjdGlvbiAuZ2FsbGVyeS1pdGVtIHtcbiAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICBjbGVhcjogYm90aDsgfSB9XG5cbi5zZWN0aW9uIGEge1xuICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS0tZGFya2VyKTsgfVxuXG5wLCB1bCwgb2wge1xuICBtYXJnaW46IDAgMCB2YXIoLS1zbWFsbC1zcGFjaW5nKSAwOyB9XG5cbmE6Zm9jdXMge1xuICBvdXRsaW5lOiAzcHggc29saWQgdmFyKC0tY29sb3ItdGVydGlhcnkpO1xuICBpc29sYXRpb246IGlzb2xhdGU7IH1cblxuLnN0aWNreS5zdGlja3kge1xuICBvcGFjaXR5OiAwO1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICBib3R0b206IDEwcHg7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IC0zMHB4O1xuICBtYXJnaW4tdG9wOiAzMHB4O1xuICB3aWR0aDogNzBweDtcbiAgaGVpZ2h0OiA3MHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE5MywgMCwgNDIsIDAuOCk7XG4gIGJvcmRlci1yYWRpdXM6IDM1cHg7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1zZWNvbmRhcnkpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtLWJvbGQpO1xuICBsaW5lLWhlaWdodDogMjJweDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2UtaW4tb3V0OyB9XG4gIC5zdGlja3kuc3RpY2t5LnZpc2libGUge1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgLnN0aWNreS5zdGlja3k6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgd2lkdGg6IDM1cHg7XG4gICAgaGVpZ2h0OiAyNXB4O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy90b3AucG5nXCIpO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAxMHB4IGF1dG8gNXB4IGF1dG87IH1cblxuLmhlYWRlciwgLnNlY3Rpb24tLWludHJvLCAuc2VjdGlvbiwgLmZvb3RlciB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtY29sdW1uLWdhcDogdmFyKC0tZ3JpZC1jb2x1bW4tZ2FwKTtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMTIsIG1pbm1heCgwLCB2YXIoLS1ncmlkLWNvbHVtbi1tYXgtd2lkdGgpKSk7IH1cbiAgLmhlYWRlciA+ICosIC5zZWN0aW9uLS1pbnRybyA+ICosIC5zZWN0aW9uID4gKiwgLmZvb3RlciA+ICoge1xuICAgIGdyaWQtY29sdW1uOiAxLzEzOyB9XG5cbi5oZWFkZXIsIC5zZWN0aW9uLS1pbnRybywgLnNlY3Rpb24sIC5mb290ZXIge1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IFtmdWxsLXN0YXJ0XSBtaW5tYXgodmFyKC0tcGFnZWdyaWQtcGFkZGluZyksIDFmcikgW21haW4tc3RhcnRdIHJlcGVhdCgxMiwgbWlubWF4KDAsIHZhcigtLWdyaWQtY29sdW1uLW1heC13aWR0aCkpKSBbbWFpbi1lbmRdIG1pbm1heCh2YXIoLS1wYWdlZ3JpZC1wYWRkaW5nKSwgMWZyKSBbZnVsbC1lbmRdOyB9XG4gIC5oZWFkZXIgPiAqLCAuc2VjdGlvbi0taW50cm8gPiAqLCAuc2VjdGlvbiA+ICosIC5mb290ZXIgPiAqIHtcbiAgICBncmlkLWNvbHVtbjogbWFpbjsgfVxuXG4uaGVhZGVyX193cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG5cbi5zaXRlbG9nb19fd3JhcHBlciB7XG4gIHdpZHRoOiAxMTVweDtcbiAgaGVpZ2h0OiA4MHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXgtc2hyaW5rOiAwOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMTAwcHgpIHtcbiAgICAuc2l0ZWxvZ29fX3dyYXBwZXIge1xuICAgICAgd2lkdGg6IDI0MHB4O1xuICAgICAgaGVpZ2h0OiAxMjBweDsgfSB9XG5cbi5zaXRlbG9nbyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDExNXB4O1xuICBoZWlnaHQ6IDExNXB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRleHQtaW5kZW50OiAtOTk5OXB4O1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvbG9nby1pbnRlZ3JhdGVkLXBlc3QtbWFuYWdlbWVudC0yMDIzLnBuZ1wiKTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICB6LWluZGV4OiAxMDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTEwMHB4KSB7XG4gICAgLnNpdGVsb2dvIHtcbiAgICAgIHdpZHRoOiAyNDBweDtcbiAgICAgIGhlaWdodDogMjQwcHg7IH0gfVxuXG4uc2l0ZWRlc2NyaXB0aW9uIHtcbiAgcGFkZGluZzogMTVweCAwO1xuICBtYXJnaW46IDA7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMTlweDtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LS1oZWF2eSk7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7IH1cblxuLnNlY3Rpb24tLWludHJvIHtcbiAgcGFkZGluZzogNDVweCAwIDMwcHggMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3cteDogaGlkZGVuOyB9XG4gIC5zZWN0aW9uLS1pbnRybzo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiA3MDBweDtcbiAgICBoZWlnaHQ6IDQ1MHB4O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltZy9yYXQtbWluLmpwZ1wiKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6IG11bHRpcGx5O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0yNTBweCAxMDAlO1xuICAgIG9wYWNpdHk6IDAuMztcbiAgICBsZWZ0OiAwO1xuICAgIGJvdHRvbTogMDsgfVxuXG4uaW50cm8ge1xuICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtLW5vcm1hbCk7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDI2cHg7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1zZWNvbmRhcnkpO1xuICB3aWR0aDogNTgwcHg7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDsgfVxuICAuaW50cm8gYSB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXNlY29uZGFyeSk7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDExMDBweCkge1xuICAgIC5pbnRybyB7XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9IH1cblxuLm5hdi0tbWFpbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMjU7IH1cbiAgLm5hdi0tbWFpbiAubWVudSB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMTAwcHgpIHtcbiAgICAgIC5uYXYtLW1haW4gLm1lbnUge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnIgMWZyOyB9IH1cbiAgLm5hdi0tbWFpbiAubWVudV9faXRlbSB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLm5hdi0tbWFpbiAubWVudV9fbGluayB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHBhZGRpbmc6IDI1cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBsaW5lLWhlaWdodDogMjJweDtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtLWJvbGQpOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDExMDBweCkge1xuICAgICAgLm5hdi0tbWFpbiAubWVudV9fbGluayB7XG4gICAgICAgIGZvbnQtc2l6ZTogMzZweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDQzcHg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDI0MHB4O1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfSB9XG4gIC5uYXYtLW1haW4gLm1lbnVfX2l0ZW06bnRoLWNoaWxkKDIpIC5tZW51X19saW5rIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LS1saWdodGVyKTtcbiAgICBjb2xvcjogdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTsgfVxuICAubmF2LS1tYWluIC5tZW51X19pdGVtOm50aC1jaGlsZCgzKSAubWVudV9fbGluayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS0tZGFya2VyKTtcbiAgICBjb2xvcjogdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTsgfVxuICAubmF2LS1tYWluIC5tZW51X19pdGVtOm50aC1jaGlsZCg0KSAubWVudV9fbGluayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS0tZGFya2VzdCk7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXNlY29uZGFyeSk7IH1cbiAgLm5hdi0tbWFpbiAubWVudV9faXRlbTpudGgtY2hpbGQoNikgLm1lbnVfX2xpbmsge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktLWxpZ2h0ZXN0KTtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7IH1cbiAgLm5hdi0tbWFpbiAubWVudV9faXRlbTpmaXJzdC1jaGlsZCAubWVudV9fbGluayB7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweCAxMnB4IDAgMDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMTAwcHgpIHtcbiAgICAgIC5uYXYtLW1haW4gLm1lbnVfX2l0ZW06Zmlyc3QtY2hpbGQgLm1lbnVfX2xpbmsge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4IDAgMCAwOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDExMDBweCkge1xuICAgIC5uYXYtLW1haW4gLm1lbnVfX2l0ZW06bnRoLWNoaWxkKDMpIC5tZW51X19saW5rIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDAgMTJweCAwIDA7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTEwMHB4KSB7XG4gICAgLm5hdi0tbWFpbiAubWVudV9faXRlbTpudGgtY2hpbGQoNCkgLm1lbnVfX2xpbmsge1xuICAgICAgYm9yZGVyLXJhZGl1czogMCAwIDAgMTJweDsgfSB9XG4gIC5uYXYtLW1haW4gLm1lbnVfX2l0ZW06bGFzdC1jaGlsZCAubWVudV9fbGluayB7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwIDEycHggMTJweDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMTAwcHgpIHtcbiAgICAgIC5uYXYtLW1haW4gLm1lbnVfX2l0ZW06bGFzdC1jaGlsZCAubWVudV9fbGluayB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMCAxMnB4IDA7IH0gfVxuXG4uc2VjdGlvbi0tY29udGVudCB7XG4gIHBhZGRpbmctdG9wOiA0MHB4OyB9XG5cbi5jb250ZW50c2VjdGlvbiB7XG4gIHBhZGRpbmc6IDQ4cHggMCAwIDA7IH1cbiAgLmNvbnRlbnRzZWN0aW9uIHA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4uY29udGVudHNlY3Rpb25fX3RpdGxlIHtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBsaW5lLWhlaWdodDogMjJweDtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LS1ib2xkKTtcbiAgbWFyZ2luOiAwIDAgMTBweCAwO1xuICBwYWRkaW5nOiAwOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMTAwcHgpIHtcbiAgICAuY29udGVudHNlY3Rpb25fX3RpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMzZweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiA0M3B4OyB9IH1cblxuLmNvbnRlbnRzZWN0aW9uOm50aC1jaGlsZChvZGQpIC5jb250ZW50c2VjdGlvbl9fdGl0bGUge1xuICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7IH1cblxuLmNvbnRlbnRzZWN0aW9uOm50aC1jaGlsZChldmVuKSAuY29udGVudHNlY3Rpb25fX3RpdGxlIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktLWxpZ2h0ZXIpOyB9XG5cbi5jb250ZW50c2VjdGlvbiA+ICoge1xuICB3aWR0aDogNzUwcHg7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwIGF1dG87IH1cblxuLmZhcSB7XG4gIC0tZmFxLXNwYWNpbmc6IDIwcHg7IH1cbiAgLmZhcTpmaXJzdC1vZi10eXBlIHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1mYXEtc3BhY2luZyk7IH1cblxuLmZhcV9fcXVlc3Rpb24ge1xuICBmb250LXNpemU6IDE4cHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAyMnB4O1xuICBtYXJnaW46IHZhcigtLWZhcS1zcGFjaW5nKSAwIDAgMDtcbiAgcGFkZGluZzogMDtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxMTAwcHgpIHtcbiAgICAuZmFxX19xdWVzdGlvbiB7XG4gICAgICBmb250LXdlaWdodDogYm9sZDsgfSB9XG5cbi5mYXFfX2Fuc3dlci0taGlkZGVuIHtcbiAgaGVpZ2h0OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi5jb250ZW50c2VjdGlvbjpudGgtY2hpbGQob2RkKSAuZmFxX19xdWVzdGlvbiB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTsgfVxuXG4uY29udGVudHNlY3Rpb246bnRoLWNoaWxkKGV2ZW4pIC5mYXFfX3F1ZXN0aW9uIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktLWxpZ2h0ZXIpOyB9XG5cbi5mb290ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LS1kYXJrZXN0KTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXNlY29uZGFyeSk7XG4gIHBhZGRpbmc6IDMwcHggMDtcbiAgbWFyZ2luLXRvcDogNTBweDsgfVxuICAuZm9vdGVyIGEge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1zZWNvbmRhcnkpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuIl19 */