@charset "UTF-8";
@font-face {
  font-family: "proxima nova";
  src: url("fonts/proximanova-regular-webfont.eot");
  src: url("fonts/proximanova-regular-webfont.eot?#iefix") format("embedded-opentype"), url("fonts/proximanova-regular-webfont.woff") format("woff"), url("fonts/proximanova-regular-webfont.ttf") format("truetype"), url("fonts/proximanova-regular-webfont.svg#proxima_nova_rgregular") format("svg");
  font-weight: normal;
  font-style: normal; }

@font-face {
  font-family: "proxima nova";
  src: url("fonts/proximanova-bold-webfont.eot");
  src: url("fonts/proximanova-bold-webfont.eot?#iefix") format("embedded-opentype"), url("fonts/proximanova-bold-webfont.woff") format("woff"), url("fonts/proximanova-bold-webfont.ttf") format("truetype"), url("fonts/proximanova-bold-webfont.svg#proxima_nova_rgbold") format("svg");
  font-weight: bold;
  font-style: normal; }

/* http://meyerweb.com/eric/tools/css/reset/
   v2.0 | 20110126
   License: none (public domain)
*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline; }

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block; }

body {
  line-height: 1; }

ol, ul {
  list-style: none; }

blockquote, q {
  quotes: none; }

blockquote:before, blockquote:after,
q:before, q:after {
  content: '';
  content: none; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

@-webkit-keyframes flip-down {
  0% {
    -webkit-transform: rotate(0);
            transform: rotate(0); }
  100% {
    -webkit-transform: rotate(-90deg);
            transform: rotate(-90deg); } }

@keyframes flip-down {
  0% {
    -webkit-transform: rotate(0);
            transform: rotate(0); }
  100% {
    -webkit-transform: rotate(-90deg);
            transform: rotate(-90deg); } }

@-webkit-keyframes flip-up {
  0% {
    -webkit-transform: rotate(-90deg);
            transform: rotate(-90deg); }
  100% {
    -webkit-transform: rotate(0);
            transform: rotate(0); } }

@keyframes flip-up {
  0% {
    -webkit-transform: rotate(-90deg);
            transform: rotate(-90deg); }
  100% {
    -webkit-transform: rotate(0);
            transform: rotate(0); } }

@-webkit-keyframes turn-in {
  0% {
    -webkit-transform: rotate(0);
            transform: rotate(0); }
  100% {
    -webkit-transform: rotate(-180deg);
            transform: rotate(-180deg); } }

@keyframes turn-in {
  0% {
    -webkit-transform: rotate(0);
            transform: rotate(0); }
  100% {
    -webkit-transform: rotate(-180deg);
            transform: rotate(-180deg); } }

@-webkit-keyframes turn-out {
  0% {
    -webkit-transform: rotate(-180deg);
            transform: rotate(-180deg); }
  100% {
    -webkit-transform: rotate(0);
            transform: rotate(0); } }

@keyframes turn-out {
  0% {
    -webkit-transform: rotate(-180deg);
            transform: rotate(-180deg); }
  100% {
    -webkit-transform: rotate(0);
            transform: rotate(0); } }

@-webkit-keyframes show-down {
  0% {
    max-height: 0; }
  100% {
    max-height: 1000px; } }

@keyframes show-down {
  0% {
    max-height: 0; }
  100% {
    max-height: 1000px; } }

@-webkit-keyframes hide-up {
  0% {
    max-height: 1000px; }
  100% {
    max-height: 0; } }

@keyframes hide-up {
  0% {
    max-height: 1000px; }
  100% {
    max-height: 0; } }

* {
  -webkit-box-sizing: border-box;
          box-sizing: border-box; }

html,
body {
  height: 100%;
  width: 100%; }

body {
  font-family: "proxima nova", "Helvetica", "Sans-Serif";
  font-size: 14px;
  -webkit-font-smoothing: antialiased;
  line-height: 1.618;
  overflow-x: hidden; }

h1 {
  font-size: 36px;
  line-height: 1.25; }

h2 {
  font-size: 30px;
  font-weight: normal;
  margin-bottom: 9px; }

h3 {
  font-size: 24px;
  font-weight: normal; }

h4 {
  font-size: 18px;
  font-weight: normal; }

a {
  color: #28ade3;
  text-decoration: none; }
  a:hover {
    color: #136d92; }

strong {
  color: #000;
  font-weight: bold; }

.visually-hidden {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px; }

/*
Layout Rules

Styleguide 2.0
*/
.l-wrappermobile {
  -webkit-overflow-scrolling: touch;
  overflow-x: hidden;
  overflow-y: auto;
  position: absolute;
  width: 100%; }

.l-course {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row; }
  .l-course .requirements-list {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 260px;
            flex: 0 0 260px; }
  .l-course .content {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1; }

/*
Chapters

Layout wrapper for chapter tiles

Markup:
<ul class="l-chapters">
  <li>
    <sg-insert>3.24</sg-insert>
  </li>
  <li>
    <sg-insert>3.24</sg-insert>
  </li>
  <li>
    <sg-insert>3.24</sg-insert>
  </li>
  <li>
    <sg-insert>3.24</sg-insert>
  </li>
  <li>
    <sg-insert>3.24</sg-insert>
  </li>
  <li>
    <sg-insert>3.24</sg-insert>
  </li>
  <li>
    <sg-insert>3.24</sg-insert>
  </li>
</ul>

Styleguide 2.5
*/
.l-chapters {
  margin-top: -9px;
  padding: 0 9px; }
  .l-chapters li {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    padding: 9px; }
  @media (min-width: 400px) {
    .l-chapters {
      -webkit-box-align: stretch;
          -ms-flex-align: stretch;
              align-items: stretch;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap; }
      .l-chapters li {
        -webkit-box-flex: 0;
            -ms-flex: 0 0 50%;
                flex: 0 0 50%; } }
  @media (min-width: 960px) {
    .l-chapters li {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 33.33%;
              flex: 0 0 33.33%; } }

/*
Container

Markup:
<div class="l-container">
</div>

Styleguide 2.7
*/
.l-container {
  padding: 18px; }

/*
Container Horizontal

Default - Sets a max width
.l-containerhorizontal-small - Smaller max width
.l-containerhorizontal-mediuam - Mediaum max width

Markup:
<div class="l-containerhorizontal {$modifiers}">Content</div>

Styleguide 2.1
*/
.l-containerhorizontal {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  margin: 0 auto;
  max-width: 1200px;
  width: 100%; }
  @media (max-width: 959px) {
    .l-containerhorizontal.l-containerhorizontal-is-minpad {
      padding-left: 18px;
      padding-right: 18px; } }

.l-containerhorizontal-small {
  max-width: 100%; }
  @media (min-width: 960px) {
    .l-containerhorizontal-small {
      max-width: 540px; } }

.l-containerhorizontal-medium {
  max-width: 100%; }
  @media (min-width: 960px) {
    .l-containerhorizontal-medium {
      max-width: 700px; } }

/*
Container Vertical

Markup:
<div class="l-containervertical">
Content
</div>

Styleguide 2.6
*/
.l-containervertical {
  padding-bottom: 18px;
  padding-top: 18px; }
  @media (min-width: 960px) {
    .l-containervertical {
      padding-bottom: 36px;
      padding-top: 36px; } }

@media (min-width: 960px) {
  .l-containervertical-small {
    padding-bottom: 18px;
    padding-top: 18px; } }

@media (min-width: 860px) {
  .l-menu {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end; }
    .l-menu > * {
      margin-left: 18px; } }

.l-menu-secondary {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }
  .l-menu-secondary > * {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1; }
  @media (min-width: 860px) {
    .l-menu-secondary > * {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 auto;
              flex: 0 0 auto; } }

/*
Spacing

Sets top and bottom margins

Markup:
<div class="l-spacing">Content</div>

Styleguide 2.3
*/
.l-spacing {
  margin-bottom: 18px;
  margin-top: 18px; }

/*
Children Vertical

Sets bottom margins for each child.

Default - Each child except the last
.l-childrenvertical-all - Every child gets bottom margin

Markup:
<div class="l-childrenvertical">
  <p>Content</p>
  <p>Content</p>
  <p>Content</p>
</div>

Styleguide 2.4
*/
.l-childrenvertical > *:not(:last-child) {
  margin-bottom: 36px; }

.l-childrenvertical .l-childrenvertical-x-exclude {
  margin-bottom: 0; }

.l-verticalchilren-all > * {
  margin-bottom: 36px; }

.l-childrenvertical-small > *:not(:last-child) {
  margin-bottom: 18px; }

/*
Wrap

Auto generates left and right padding based on viewport

Default - The default use case
.l-wrap-spanmobile - No minimum padding for mobile

Markup:
<div class="l-wrap {$modifiers}">Content</div>

Styleguide 2.2
*/
.l-wrap {
  padding-left: 18px;
  padding-right: 18px; }
  @media (min-width: 960px) {
    .l-wrap {
      padding-left: calc(50% - 850px/2);
      padding-right: calc(50% - 850px/2); } }

@media (max-width: 649px) {
  .l-wrap-spanmobile {
    padding: 0; } }

/*
glossary

Layout wrapper glossary

Markup:
<div class="l-glossary">
  <div>glossary terms<div>
  <div>glossary definitions<div>
</div>

Styleguide 2.8
*/
@media (min-width: 650px) {
  .l-glossary {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; } }

.clearfix:after {
  clear: both;
  content: " ";
  display: block;
  font-size: 0;
  height: 0;
  visibility: hidden; }

.clearfix {
  display: inline-block; }

/* start commented backslash hack \*/
* html .clearfix {
  height: 1%; }

.clearfix {
  display: block; }

/* close commented backslash hack */
/*
Module Rules (App)

Styleguide 3.0
*/
/*
Bordered

Markup:
<div class="bordered">
Bordered
</div>

Styleguide 3.34
*/
.bordered {
  border: 1px solid #ccc; }

/*
Button

Default - Standard button styling
.button-footer - Buttons used in the footer element
.button-height-small - shorter button.
.button-marketing - For use on light backgrounds with marketing content
.button-marketing-light - For use on dark backgrounds with marketing content
.button-menu - When a button appears in the navigation
.button-signup - Rounded corners for auth views
.button-white - For use on a dark background.
.button-width-full - stretches the length of the available space.


Markup:
<button class="button {$modifiers}">Button</button>

Styleguide 3.1
*/
.button {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background: #28ade3;
  border: 0;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  color: #fff;
  cursor: pointer;
  display: inline-block;
  font-family: "proxima nova", "Helvetica", "Sans-Serif";
  font-size: 14px;
  font-weight: normal;
  padding: 18px 36px;
  text-align: center; }
  .button:hover {
    background: #198fbf;
    color: #fff; }
  .button.disabled {
    background: #696969; }

.button-white {
  background: #fff;
  color: #28ade3; }

.button-footer {
  background: #F2F2F2;
  color: #28ade3;
  text-transform: none; }
  @media (min-width: 950px) {
    .button-footer {
      border-radius: 3px;
      font-weight: bold;
      padding-bottom: 2.7px;
      padding-top: 2.7px; } }
  .button-footer:hover {
    color: #155a76; }

.button-menu {
  background: #fff;
  border-radius: 10px;
  -webkit-box-shadow: #28ade3 0 0 0 1px inset;
          box-shadow: #28ade3 0 0 0 1px inset;
  color: #28ade3;
  text-transform: none; }

.button-marketing {
  border: 1px solid #fff;
  border-radius: 5px;
  color: #fff;
  text-transform: none; }
  .button-marketing:hover {
    background: #fff;
    color: #28ade3; }

.button-marketing-light {
  background: #fff;
  border: 1px solid #28ade3;
  border-radius: 5px;
  color: #28ade3;
  font-size: 18px;
  text-transform: none; }
  .button-marketing-light:hover {
    background: #28ade3;
    border-color: #28ade3;
    color: #fff; }

.button-ppc {
  border-radius: 5px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  font-size: 18px;
  font-weight: bold;
  padding: 13.5px;
  width: 100%; }
  @media (min-width: 650px) {
    .button-ppc {
      font-size: 24px;
      padding: 18px;
      width: 337px; } }

.button-outline {
  background-color: transparent;
  border: 1px solid #fff;
  font-size: 18px;
  padding: 18px;
  width: auto; }
  .button-outline:hover {
    background-color: transparent; }

.button-signup {
  padding: 18px 54px;
  text-transform: none; }

.button-width-full {
  width: 100%; }

.button-height-small {
  padding: 9px 18px; }

/*
Centered

centers text.

Markup:
<div class="centered">I am centered</div>

Styleguide 3.46
*/
.centered {
  text-align: center; }

/*
Chapter

Default - Standard view
.disabled - No interaction
.locked - Locked out (some requirement not met)
.passed - Passed and complete

Markup:
<article class="chapter {$modifiers}">
    <header class="vid_header">
         <h2><a href="#">Title</a></h2>
    </header>
    <p class="status passed">Status</p>
    <a class="chapter_view chapter-image image" href="#" style="background-image: url('/images/tile-notifications.png');"></a>
</article>

Styleguide 3.24
*/
.chapter {
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  background: #fff;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  min-height: 286px;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  z-index: 20; }
  .chapter:hover {
    -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
            box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25); }
  .chapter header, .chapter .skills {
    padding: 9px; }
  .chapter h1 {
    font-size: 12px;
    line-height: 1em; }
  .chapter h2 {
    font-size: 14px;
    font-weight: bold;
    line-height: 1.2em;
    margin-bottom: 0; }
  .chapter p {
    font-size: 12px;
    line-height: 1.2em; }
  .chapter header {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3; }
  .chapter .status {
    background: #9e9e9e;
    color: #fff;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
    padding: 4.5px 9px;
    z-index: 20; }
    .chapter .status span {
      -webkit-box-ordinal-group: 3;
          -ms-flex-order: 2;
              order: 2; }
    .chapter .status.passed {
      background: #9aba38; }
    .chapter .status.inprogress {
      background: #28ade3; }
    .chapter .status.locked {
      background: #000; }
    .chapter .status.retake {
      background: #e75345; }
  .chapter .image {
    background-position: center center;
    background-size: cover;
    display: block;
    -webkit-filter: grayscale(100%);
            filter: grayscale(100%);
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    height: 0;
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
    height: 70%;
    width: 100%;
    z-index: 10; }
  .chapter .skills {
    background-color: #fff;
    border-top: 1px solid #F2F2F2;
    font-size: 12px;
    line-height: 1.2em;
    -webkit-box-ordinal-group: 5;
        -ms-flex-order: 4;
            order: 4;
    z-index: 20; }
    .chapter .skills a {
      font-weight: normal; }
  .chapter.disabled {
    opacity: .5;
    pointer-events: none; }
  .chapter.locked {
    pointer-events: none; }
  .chapter.passed .image {
    -webkit-filter: grayscale(0%);
            filter: grayscale(0%); }

/*
Choices

Doherty Videos

Markup:
<section class="choices" id="options">
  <h2>Here are four types of attitudes that we have found in our research. Please read all four and then select which one best fits you at this time.</h2>
  <ul class="choice-list">
    <li class="choice-wrapper">
      <div class="choice">
        <p>I'm done with this relationship; it's too late now even if my partner were to make major changes.</p>
        <a class="button" data-option="done" data-type="option">Watch this Video</a>
      </div>
    </li>
    <li class="choice-wrapper">
      <div class="choice">
        <p>I have mixed feelings about the breakup; sometimes I think it's a good idea and sometimes I'm not sure.</p>
        <a class="button" data-option="mixed" data-type="option">Watch this Video</a>
      </div>
    </li>
    <li class="choice-wrapper">
      <div class="choice">
        <p>I would consider reconciling if my partner got serious about making major changes.</p>
        <a class="button" data-option="majorchanges" data-type="option">Watch this Video</a>
      </div>
    </li>
    <li class="choice-wrapper">
      <div class="choice">
        <p>I don't want this breakup, and I would work hard to get us back together.</p>
        <a class="button" data-option="dontwant" data-type="option">Watch this Video</a>
      </div>
    </li>
  </ul>
</section>

Styleguide 3.5
*/
.choices {
  padding: 0 9px; }
  .choices h2 {
    font-size: 14px;
    line-height: 1.5em;
    margin-bottom: 18px;
    padding: 0 9px; }
    @media (min-width: 960px) {
      .choices h2 {
        color: #28ade3;
        font-size: 30px;
        line-height: 1.2em; } }

.choice-wrapper {
  padding: 0.05px; }

.choice {
  background: #F2F2F2;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 18px;
  width: 100%;
  display: block;
  margin: 18px 0; }
  .choice input {
    vertical-align: middle; }

.choices-advance-button {
  text-align: right;
  margin: 18px 0; }

/*
Credits

Markup:
<section class="credits text-container l-containerhorizontal">
  <article>
    <h1>Center for Divorce Education</h1>
    <address>
      1005 E. State St., Suite G
      <br>Athens, OH 45701
    </address>
    <address>
      <br>Toll Free: 877-874-1365
    </address>
    <address>
      Web:
      <br><a href="http://www.divorce-education.com" target="_blank">http://www.divorce-education.com</a>
    </address>
  </article>
  <article>
    <h1>Credits</h1>
    <p>
      The videos shown are a revision of an earlier version, which won the Positive Parenting Award from the Children's Rights Council, the Telly Award, and the Model Program Award from the Substance Abuse and Mental Health Services Administration.
    </p>
    <h3>Executive Producer:</h3>
    <p>Donald Gordon, Ph.D.</p>
    <h3>Web Design and Development:</h3>
    <p>Concentric Sky, Eugene, Oregon</p>
    <h3>Video and Audio Development:</h3>
    <ul>
      <li>Sullivan Recording, Medford, Oregon</li>
      <li>MediaBrite</li>
    </ul>
    <h3>Author &amp; Exec. Producer:</h3>
    <h4>Donald A. Gordon, Ph.D.</h4>
    <p>Dr. Gordon is a child and family psychologist, a researcher and public speaker, and Emeritus Professor of Psychology from Ohio University</p>
    <p>The Center for Divorce Education would like to thank The Honorable Bruce Peterson (District Court Judge in Minnesota) and Dr. William Doherty (Professor in Dept. of Family Social Sciences, University of Minnesota) for their donation of time and contribution to the Introduction/Orientation section of this class and the section speaking to Alternatives to a Divorce also presented in the CIBO class.</p>
    <p>Copyright © 2007</p>
    <p>All rights reserved. No part of this product may be reproduced in any form, electronic or mechanical, including photography, recording, or any information storage or retrieval system, except as specified by the publisher in legal agreement.</p>
  </article>
</section>

Styleguide 3.6
*/
.credits {
  padding-bottom: 18px;
  padding-top: 18px; }
  @media (min-width: 960px) {
    .credits {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex; } }
  @media (min-width: 960px) {
    .credits article {
      -webkit-box-flex: 1;
          -ms-flex: 1;
              flex: 1;
      padding: 18px; }
      .credits article:last-of-type {
        border-left: 1px solid #F2F2F2; } }

/*
Data Table

Markup:
<div class="datatable">
  <table>
    <thead>
      <tr>
        <th scope="row">Case Number</th>
        <th scope="row">Cumulative Score</th>
        <th scope="row">Time on Site</th>
        <th scope="row">Skills Practice</th>
        <th scope="row">State/County Requirements</th>
        <th scope="row">Survey</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>None</td>
        <td>5</td>
        <td>12hr 12min</td>
        <td>Complete</td>
        <td>Incomplete</td>
        <td>Incomplete</td>
      </tr>
    </tbody>
  </table>
</div>

Styleguide 3.25
*/
.datatable {
  margin: 0 18px 18px; }
  .datatable td,
  .datatable th {
    line-height: 1;
    padding-right: 36px;
    text-align: left; }
  .datatable td {
    font-size: 30px;
    padding-top: 9px; }

/*
Dialog

No example available, just placeholder for now.

Styleguide 3.26
*/
.ui-widget-overlay {
  background: rgba(0, 0, 0, 0.35);
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  position: absolute; }

.ui-front {
  z-index: 101; }

.ui-dialog,
#modal {
  border: 10px solid rgba(0, 0, 0, 0.2);
  text-align: center;
  overflow: hidden;
  z-index: 101; }
  .ui-dialog.modal-course,
  #modal.modal-course {
    text-align: left; }
  @media (max-width: 950px) {
    .ui-dialog,
    #modal {
      -webkit-box-sizing: border-box;
              box-sizing: border-box;
      left: 0px !important;
      position: fixed !important;
      top: 0px !important;
      width: 100% !important; } }
  .ui-dialog .ui-dialog-titlebar,
  .ui-dialog #modal_header,
  #modal .ui-dialog-titlebar,
  #modal #modal_header {
    background: #fff;
    padding: 18px 18px 1px; }
    .ui-dialog .ui-dialog-titlebar button.ui-button,
    .ui-dialog #modal_header button.ui-button,
    #modal .ui-dialog-titlebar button.ui-button,
    #modal #modal_header button.ui-button {
      position: absolute;
      background: none;
      border: none;
      color: #28ade3;
      top: 10px;
      right: 10px;
      cursor: pointer; }
  .ui-dialog.modal-course #modal_header,
  #modal.modal-course #modal_header {
    margin-bottom: -1px;
    font-size: 32px; }
  .ui-dialog:not(.modal-course) .ui-dialog-content,
  .ui-dialog:not(.modal-course) #content,
  #modal:not(.modal-course) .ui-dialog-content,
  #modal:not(.modal-course) #content {
    background: #fff;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    padding: 18px; }
    @media (max-width: 950px) {
      .ui-dialog:not(.modal-course) .ui-dialog-content,
      .ui-dialog:not(.modal-course) #content,
      #modal:not(.modal-course) .ui-dialog-content,
      #modal:not(.modal-course) #content {
        overflow-y: auto !important; } }
  .ui-dialog.modal-course #content,
  #modal.modal-course #content {
    background: #fff;
    max-height: calc(100vh - 111px);
    overflow: auto;
    padding: 18px; }
  .ui-dialog #modal_header.reference-modal,
  #modal #modal_header.reference-modal {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    padding-bottom: 17px;
    padding-right: 80px; }
  .ui-dialog #close,
  #modal #close {
    position: absolute;
    background: none;
    border: none;
    color: #28ade3;
    top: 10px;
    right: 10px;
    cursor: pointer; }
  .ui-dialog h2,
  #modal h2 {
    line-height: 1.2em; }
  .ui-dialog p,
  #modal p {
    margin-bottom: 18px; }
  .ui-dialog.modal-course p,
  #modal.modal-course p {
    margin: 0; }
  .ui-dialog .button,
  #modal .button {
    margin-bottom: 9px; }
  .ui-dialog .county_name,
  #modal .county_name {
    font-weight: bold; }

#overlay {
  background: rgba(0, 0, 0, 0.65);
  display: none;
  height: 100vh;
  left: 0;
  position: fixed;
  top: 0;
  width: 100vw;
  z-index: 101; }

#modal {
  display: none;
  left: 50%;
  max-height: 100vh;
  overflow-y: auto;
  position: fixed;
  top: 50%;
  -webkit-transform: translate3d(-50%, -50%, 0);
          transform: translate3d(-50%, -50%, 0);
  width: 40vw;
  z-index: 101; }
  #modal.modal-course {
    overflow-y: inherit; }
  @media (max-width: 950px) {
    #modal {
      -webkit-transform: none;
              transform: none;
      width: 100vw; } }

/*
Errors Global

Markup:
<div class="errors-global">Please correct the errors below.</div>

Styleguide 3.27
*/
.errors-global {
  background: #f26c4f;
  color: #fff;
  font-size: 14px;
  margin: 0 9px 18px;
  padding: 18px; }
  @media (min-width: 950px) {
    .errors-global {
      margin-left: 0;
      margin-right: 0; } }

/*
Error 404

Markup:
<article class="error404">
  <h1>404 Error</h1>
  <h2>It appears there was a breakdown in communication.</h2>
  <p>Either the URL was mistyped, never existed, or once existed but was mysteriously lost.</p>
  <a class="button" href="">Take me home</a>
  <p>Want to communicate better?<br> <a href="">Check out Skills Practice</a></p>
</article>

Styleguide 3.7
*/
.error404 {
  background: #155a76 url("images/error404.png") center center;
  background-size: cover;
  color: #fff;
  padding: 54px 18px;
  text-align: center;
  text-shadow: rgba(0, 0, 0, 0.5) 0 2px 4px; }
  .error404 h1 {
    line-height: 1; }
  .error404 h2 {
    font-size: 24px;
    line-height: 1.16; }
  .error404 p {
    font-size: 18px;
    line-height: 1.3; }
  .error404 > a {
    font-size: 18px;
    width: 100%; }
  .error404 > * {
    margin-bottom: 9px; }
  @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {
    .error404 {
      background-image: url("images/error404-2x.png"); } }
  @media (min-width: 650px) {
    .error404 {
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      background-image: url("images/error404-desktop.png");
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center;
      min-height: calc(100vh - 80px); }
      .error404 h1 {
        font-size: 64px; }
      .error404 h2 {
        font-size: 30px; }
      .error404 > a {
        text-shadow: none;
        width: auto; }
      .error404 > * {
        margin-bottom: 18px;
        max-width: 440px; } }
  @media (min-width: 650px) and (-webkit-min-device-pixel-ratio: 2), (min-width: 650px) and (min-resolution: 2dppx) {
    .error404 {
      background-image: url("images/error404-desktop-2x.png"); } }

/*
FAQ

Markup:
<article class="faqs">
  <header class="page-title page-title-centered">
    <h1>FAQs</h1>
  </header>
  <ol>
    <li><strong>I can’t see any pictures on the screen, just words. What’s wrong?
    </strong>
    <section><p>You are using an incompatible web browser. Install and use <a href="http://www.google.com/chrome/" target="_blank">Google Chrome</a>.</p></section>
    </li>
    <li>
      <strong>When I log into the program, it keeps telling me to update the Adobe Flash
        Player, but I’ve already done this once. What’s wrong?
      </strong>
      <section><p>You are using an incompatible web browser. Install and use <a href="http://www.google.com/chrome/" target="_blank">Google Chrome</a>.</p></section>
    </li>
  </ol>
</article>

Styleguide 3.8
*/
.faqs {
  background: #fff;
  border: 1px solid #ccc;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  font-size: 18px;
  padding: 0 18px; }
  @media (min-width: 960px) {
    .faqs {
      margin-bottom: 36px;
      margin-top: 36px; } }
  .faqs ol {
    padding: 0 18px; }
  .faqs li {
    font-weight: bold;
    list-style: decimal inside;
    margin-bottom: 18px; }
  .faqs section {
    font-size: 14px;
    font-weight: normal; }

/*
Fee Waiver

Place holder

Markup:
  <ol class="feeWaiver">
    <li>
      <h1>Capture document</h1>
      <div class="feeWaiver-x-contentWrapper">
        <div>
          <h2>Take photo</h2>
          Position mobile device over document, take and save photo to device.
        </div>
        <div class="feeWaiver-x-fontsize-large">OR</div>
        <div>
          <h2>Scan document</h2>
          Scan file and save file to device.
        </div>
      </div>
    </li>
    <li>
      <h1>Move document (optional)</h1>
      <div class="feeWaiver-x-contentWrapper">
        <div>
          <h2>Email file</h2>
          Email photo to yourself and download to device.
        </div>
        <div class="feeWaiver-x-fontsize-large">OR</div>
        <div>
          <h2>Transfer file</h2>
            Upload file to device.
        </div>
      </div>
    </li>
    <li>
      <h1>Upload document</h1>
      <div>Select "Choose File" below and find the document file.</div>
    </li>
  </ol>

Styleguide 3.51
*/
#upload-instructions {
  padding-bottom: 9px; }

.feeWaiver {
  border: solid #979797 1px;
  counter-reset: item;
  padding: 18px;
  position: relative; }
  .feeWaiver h1 {
    display: inline-block;
    font-size: 18px;
    line-height: 22px;
    margin-left: 26px;
    margin-bottom: 9px; }
  .feeWaiver li {
    background: url("images/circle_smallGrey.svg");
    background-repeat: no-repeat;
    font-size: 18px;
    line-height: 22px;
    list-style: none !important; }
    .feeWaiver li::before {
      content: counter(item, decimal);
      counter-increment: item;
      position: absolute;
      left: 23px; }
    .feeWaiver li:not(:last-child) {
      margin-bottom: 18px; }
    .feeWaiver li div {
      font-size: 12px;
      line-height: 14px; }
      .feeWaiver li div:not(.feeWaiver-x-contentWrapper) {
        padding-left: 27px; }
      .feeWaiver li div:not(:last-of-type) {
        padding-bottom: 10px; }
      .feeWaiver li div h2 {
        text-transform: uppercase;
        font-size: 12px;
        line-height: 14px;
        padding: 0;
        margin: 0; }
  .feeWaiver .feeWaiver-x-fontsize-large {
    font-size: 18px;
    line-height: 22px; }
  @media (min-width: 860px) {
    .feeWaiver h1 {
      display: block; }
    .feeWaiver li .feeWaiver-x-contentWrapper {
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex; }
      .feeWaiver li .feeWaiver-x-contentWrapper div {
        padding-bottom: 0;
        padding-left: 0;
        padding-right: 18px;
        max-width: 249px; }
        .feeWaiver li .feeWaiver-x-contentWrapper div:first-child {
          padding-left: 27px; } }

/*
Footer

Markup:
<footer class="footer">
  <div class="l-containerhorizontal">
    <a href="http://www.divorce-education.com/" target="_blank" class="logo"><img src="/images/logo-footer.png" alt="alt=" the="" center="" for="" divorce="" education="" logo""=""></a>
    <section>
      <dl>
        <dt>Toll Free</dt>
        <dd>877-874-1365</dd>
        <dt class="visually-hidden">Email</dt>
        <dd><a href="mailto:staff@divorce-education.com">staff@divorce-education.com</a></dd>
      </dl>
      <nav>
        <ul>
          <li><a href="/" class="button button-footer">Home</a></li>
          <li><a href="/course" class="button button-footer">Course</a></li>
          <li><a href="/reference/credits/" class="button button-footer">Credits</a></li>
          <li><a href="/reference/faq/" class="button button-footer">FAQ</a></li>
        </ul>
      </nav>
    </section>
  </div>
</footer>

Styleguide 3.9
*/
.footer {
  -webkit-box-shadow: 0 -1px 0 0 rgba(27, 35, 39, 0.15);
          box-shadow: 0 -1px 0 0 rgba(27, 35, 39, 0.15);
  padding-bottom: 18px; }
  @media (min-width: 950px) {
    .footer {
      padding-bottom: 18px;
      padding-top: 18px; } }
  @media (min-width: 950px) {
    .footer .l-containerhorizontal {
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-pack: justify;
          -ms-flex-pack: justify;
              justify-content: space-between; } }
  .footer .logo {
    display: block;
    margin: 18px;
    opacity: .8; }
    @media (min-width: 950px) {
      .footer .logo {
        margin-bottom: 0;
        margin-top: 0;
        opacity: .3; } }
    .footer .logo img {
      display: block;
      max-width: 100%; }
    .footer .logo:hover {
      opacity: 1; }
      @media (min-width: 950px) {
        .footer .logo:hover {
          opacity: .5; } }
  @media (min-width: 950px) {
    .footer section {
      -webkit-box-align: end;
          -ms-flex-align: end;
              align-items: flex-end;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column; } }
  .footer dl {
    color: #ccc;
    margin: 0 18px 9px; }
    @media (min-width: 950px) {
      .footer dl {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        line-height: 1em;
        white-space: nowrap; } }
    .footer dl a {
      font-weight: normal; }
      @media (min-width: 950px) {
        .footer dl a {
          font-weight: bold; } }
  .footer dt {
    float: left;
    margin-right: 4px; }
    @media (min-width: 950px) {
      .footer dt {
        float: none; } }
  .footer dt:after {
    content: ': '; }
  @media (min-width: 950px) {
    .footer dd {
      -webkit-box-shadow: #f6f3ee -2px 0 0 0 inset;
              box-shadow: #f6f3ee -2px 0 0 0 inset;
      margin-right: 4px;
      padding-right: 6px; } }
  .footer dd:last-of-type {
    -webkit-box-shadow: none;
            box-shadow: none;
    margin-right: 0;
    padding-right: 0; }
  @media (min-width: 950px) {
    .footer ul {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      margin-right: 18px; }
      .footer ul li {
        margin-left: 9px; } }
  .footer .button {
    margin-bottom: 5px;
    width: 100%; }
    @media (min-width: 950px) {
      .footer .button {
        margin-bottom: 0; } }
  .footer.has-requirements {
    padding-bottom: 72px; }

/*
Fork

Markup:
<ul class="fork">
  <li>
    <h1 class="fork-x-complete">You've Watched This</h1>
    <div>
      <img srcset="http://placehold.it/240x284 http://placehold.it/120x142" src="http://placehold.it/120x142" width="120" height="142" alt="{{description}}">
    </div>
    <p>Mom calls Dad and explains why she denied his request for extra time previously. Dad reacts angrily and refuses her request. Mom tells him she will not grant extra time the next time he asks for it. </p>
    <button class="button" disabled>Watch This Video</button>
  </li>
  <li>
    <div>
      <img srcset="http://placehold.it/240x284 http://placehold.it/120x142" src="http://placehold.it/120x142" width="120" height="142" alt="{{description}}">
    </div>
    <p>Mom calls Dad and presents her reasons for wanting Casey home early, as well as for keeping the skates at her house.</p>
    <button class="button">Watch This Video</button>
  </li>
</ul>

Styleguide 3.10
*/
.fork {
  padding: 0 18px 18px; }
  @media (min-width: 960px) {
    .fork {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center; } }
  .fork ::after {
    clear: both;
    content: '';
    display: table; }
  .fork > * {
    background: #fff;
    -webkit-box-sizing: content-box;
            box-sizing: content-box;
    margin-bottom: 18px;
    min-height: 142px;
    padding: 9px;
    position: relative; }
    @media (max-width: 959px) {
      .fork > * {
        margin: 0 auto 18px; } }
    @media (min-width: 960px) {
      .fork > * {
        -webkit-box-flex: 1;
            -ms-flex: 1 1 0px;
                flex: 1 1 0; }
        .fork > *:first-child {
          margin-right: 18px; } }
  .fork div {
    float: left;
    margin-right: 9px;
    z-index: 10; }
    .fork div img {
      display: block; }
  .fork p {
    font-size: 12px; }
  .fork button {
    clear: both;
    margin-top: 9px;
    padding-bottom: 13.5px;
    padding-top: 13.5px;
    width: 100%; }
  .fork .fork-choice {
    max-width: 355px; }
    .fork .fork-choice button {
      font-weight: bold;
      font-size: 18px; }
  .fork .fork-image {
    width: 355px;
    height: 176px; }
    .fork .fork-image img {
      height: 100%;
      width: 100%; }
  .fork .fork-text {
    font-size: 14px;
    margin-top: 9px; }
  .fork .fork-x-complete {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    background: rgba(0, 0, 0, 0.75);
    font-size: 14px;
    line-height: 23px;
    color: #fff;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    height: 176px;
    width: 355px;
    margin: 0;
    position: absolute;
    left: 9px;
    top: 9px;
    right: 9px;
    z-index: 50; }
    .fork .fork-x-complete::before {
      background: url("images/fork-done.png");
      background-size: contain;
      content: '';
      display: block;
      height: 23px;
      margin-right: 9px;
      width: 23px; }

/*
Form

Forms are monolithic and not well modularized at this point. There's a big todo to change them.

Default - This is the standard form styling
.form-inline - This submodule puts inputs and labels side by side

Markup:
<form action="" method="POST" class="form {$modifiers}">
  <fieldset class="user-information">
    <legend>1. Create your Account</legend>
    <div class="form-row ">
      <label for="id_name">Name</label>
      <div class="value">
        <input type="text" placeholder="John Doe" name="name" id="id_name">
        <p>Please enter your name exactly as you want it to appear on your certificate of completion.</p>
      </div>
    </div>
    <div class="form-row ">
      <label for="id_email">
        Email:
      </label>
      <div class="value">
        <input type="text" name="email" id="id_email">
        <p>This is helper text for this input.</p>
      </div>
    </div>
    <div class="form-row success">
      <label for="id_language">
        Language Version
      </label>
      <div class="value">
        <select name="language" id="id_language">
          <option value="en" selected="selected">English</option>
          <option value="es">Spanish</option>
        </select>
      </div>
      <p class="form-x-warningmessage"><em>Please note: Your County requires prior permission from the Court in order to complete an online class. Contact the Clerk of Courts at 123-123-4567.</em></p>
    </div>
    <div class="form-row checkbox">
      <div class="value">
        <input type="checkbox" name="print_version" id="id_print_version">
      </div>
      <label for="id_print_version">
        <p>Yes, for an additional $11.50, please ship me Print Versions of the two Workbooks. Access to digital version already included in purchase price. <strong>(Total price with print versions: $51.45)</strong></p>
      </label>
    </div>
  </fieldset>
  <fieldset>
    <legend>Have a Coupon?</legend>
    <div class="form-row form-row-is-valid">
      <label for="coupon">Coupon Code</label>
      <div class="value">
        <input type="text" name="name" id="coupon" value="WV2017">
        <p class="form-row-x-success">Discount applied.</p>
        <button class="button button-height-small button-marketing-light" type="button">Apply</button>
      </div>
    </div>
  </fieldset>
  <fieldset>
    <legend>Order Summary</legend>
    <div class="form-x-summary">
        <sg-insert>3.53</sg-insert>
        <p class="form-x-warningmessage"><em>Please note: Your County requires prior permission from the Court in order to complete an online class. Contact the Clerk of Courts at 123-123-4567.</em></p>
    </div>
  </fieldset>
  <fieldset>
    <div class="radio-group-payment">
      <ul>
        <li><label for="id_payment_type_0" class="active"><input type="radio" id="id_payment_type_0" value="authnet" name="payment_type"> <p>Pay with major credit cards:</p><img src="/images/cc-icons.png" alt="Pay with major credit cards: Visa, Mastercard, American Express, or Discover"></label></li>
      </ul>
    </div>
  </fieldset>
  <fieldset class="submit">
    <button type="submit" class="button">Finalize Your Purchase</button>
  </fieldset>
  <sg-insert>5.3</sg-insert>
</form>


Styleguide 3.2
*/
.form {
  margin-bottom: 36px; }
  @media (min-width: 950px) {
    .form {
      padding: 0 18px; } }
  .form div label {
    padding-left: 9px; }
  .form div ul {
    margin-bottom: 18px;
    margin-left: 22.5px; }
  .form div li:not(:last-child) {
    padding-bottom: 9px; }
  .form fieldset:not(:last-child) {
    margin-bottom: 18px; }
  .form fieldset > p {
    margin: 0 18px 18px; }
    @media (min-width: 950px) {
      .form fieldset > p {
        margin-left: 0;
        margin-right: 0; } }
  .form .submit-row {
    margin-bottom: 0;
    margin-left: 0; }
  .form legend,
  .form .legend {
    border-bottom: 1px solid #f6f3ee;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    color: #000;
    display: block;
    font-size: 18px;
    line-height: 1.2;
    margin-bottom: 9px;
    padding: 0 18px 9px;
    width: 100%; }
    @media (min-width: 950px) {
      .form legend,
      .form .legend {
        color: #1b2327;
        padding-left: 0;
        padding-right: 0; } }
    .form legend span,
    .form .legend span {
      color: #696969;
      display: block;
      font-size: 14px;
      margin-top: 9px; }
  .form .submit {
    padding: 0 18px; }
    @media (min-width: 950px) {
      .form .submit {
        padding-left: 0;
        padding-right: 0; } }
    .form .submit p {
      color: #696969;
      margin-bottom: 9px; }
  .form .button {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    font-size: 18px;
    margin-bottom: 18px;
    text-transform: none;
    width: 100%; }
  .form .incomplete-form {
    opacity: .5;
    pointer-events: none; }
  .form .form-x-note {
    font-size: 24px;
    margin-bottom: 18px;
    padding: 0 18px 9px; }
  .form .form-x-note-important {
    font-size: 24px;
    margin: 18px 0;
    padding: 0 18px;
    text-align: center; }
  .form .form-x-links {
    padding: 0 18px;
    text-align: center; }
    .form .form-x-links a {
      font-weight: normal; }
  .form .form-x-summary {
    padding-left: 18px;
    padding-right: 18px; }
  .form .form-x-warningmessage {
    color: #f26c4f;
    font-size: 18px;
    line-height: 1.2;
    padding-top: 18px; }
    .form .form-x-warningmessage em {
      font-style: italic;
      font-weight: bold; }
  @media (min-width: 950px) {
    .form .form-x-summary {
      padding-left: 30%; } }

.form-nomargin {
  margin: 0; }

.form-row {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  margin-bottom: 18px;
  padding: 0 18px;
  position: relative;
  /* File inputs are styled as default on page load, and custom classes are added via js. */ }
  @media (min-width: 950px) {
    .form-row {
      padding-left: 0;
      padding-right: 0; } }
  .form-row .button {
    margin-bottom: 0;
    margin-top: 18px;
    width: auto; }
  .form-row .value {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .form-row .value p {
      color: #696969;
      line-height: 1.2;
      margin-top: 4.5px;
      width: 100%; }
    .form-row .value .form-row-x-success {
      color: #9aba38; }
    .form-row .value .form-row-x-error {
      color: #e75345; }
  .form-row label,
  .form-row .label {
    color: #696969;
    display: block;
    font-size: 18px;
    line-height: 1.2;
    margin: 0 0 5px;
    position: relative; }
  .form-row input:focus,
  .form-row select:focus {
    -webkit-box-shadow: 0 0 5px 0 #28ade3;
            box-shadow: 0 0 5px 0 #28ade3;
    outline: none; }
  .form-row [type="text"],
  .form-row [type="email"],
  .form-row [type="password"],
  .form-row [type="tel"],
  .form-row select,
  .form-row textarea {
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    background: #F2F2F2;
    border: 1px solid #ccc;
    border-radius: 5px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    color: #1b2327;
    display: block;
    font-family: "proxima nova", "Helvetica", "Sans-Serif";
    font-size: 18px;
    padding: 9px;
    width: 100%; }
  .form-row :disabled {
    opacity: .5; }
  .form-row select {
    background-image: url("images/form-row-select.svg");
    background-position: calc(100% - 9px) center;
    background-repeat: no-repeat;
    margin-top: 9px;
    padding-right: 27px; }
    @media (min-width: 950px) {
      .form-row select {
        margin-top: 0; } }
  .form-row img {
    display: block;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    height: auto;
    margin-top: 5px;
    position: absolute;
    right: 18px;
    top: -5px; }
  .form-row.form-row-is-valid [type="text"],
  .form-row.form-row-is-valid [type="email"],
  .form-row.form-row-is-valid [type="password"],
  .form-row.form-row-is-valid [type="tel"],
  .form-row.form-row-is-valid select,
  .form-row.form-row-is-valid textarea {
    background-image: url("images/formrow-valid.png");
    background-position: calc(100% - 18px) center;
    background-repeat: no-repeat;
    padding-right: 61px; }
  .form-row.checkbox {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row; }
    .form-row.checkbox .value {
      width: 25px; }
    .form-row.checkbox label {
      -webkit-box-flex: 1;
          -ms-flex: 1;
              flex: 1; }
      .form-row.checkbox label p {
        font-size: 14px;
        line-height: 1.5;
        margin-bottom: 18px; }
        .form-row.checkbox label p:first-child {
          color: #000;
          font-size: 18px;
          line-height: 1.2;
          margin-bottom: 0; }
        .form-row.checkbox label p:last-child {
          margin-bottom: 0; }
  .form-row.radio li {
    margin-bottom: 9px; }
  .form-row.radio label {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    line-height: 1em;
    margin: 0; }
  .form-row.radio input {
    margin: -2px 9px 0 0; }
  .form-row.short {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .form-row.short label {
      width: 100%; }
    .form-row.short [type="text"],
    .form-row.short [type="tel"] {
      margin-right: 9px;
      width: 90px; }
  .form-row.success [type="text"],
  .form-row.success [type="email"],
  .form-row.success [type="tel"] {
    background: white url("images/form-success.png") 95% center no-repeat;
    padding-right: 10%; }
  .form-row.error [type="text"],
  .form-row.error [type="tel"],
  .form-row.error [type="password"] {
    background: rgba(242, 108, 79, 0.1) url("images/form-error.png") 95% center no-repeat;
    border: 1px solid #f26c4f;
    padding-right: 10%; }
    @media (min-width: 950px) {
      .form-row.error [type="text"],
      .form-row.error [type="tel"],
      .form-row.error [type="password"] {
        margin-bottom: 5px; } }
  .form-row.error img {
    display: none; }
  .form-row.form-row-stripe .value {
    background: #F2F2F2;
    border: 1px solid #ccc;
    border-radius: 5px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    color: #1b2327;
    display: block;
    font-family: "proxima nova", "Helvetica", "Sans-Serif";
    font-size: 18px;
    padding: 9px; }
  .form-row.form-row-stripe.success .value {
    background: #f6f3ee url("images/form-success.png") 95% center no-repeat;
    padding-right: 10%; }
  .form-row.form-row-stripe.error .value {
    border: 1px solid #f26c4f; }
  .form-row.form-row-file input {
    width: 0.1px;
    height: 0.1px;
    opacity: 0;
    overflow: hidden;
    position: absolute;
    z-index: -1; }
  .form-row.form-row-file label {
    /* Label contains filename. Don't want to limit its width. */
    width: inherit; }
    .form-row.form-row-file label * {
      /* Pointer events on descendant elements should bubble up to the label. */
      pointer-events: none; }
  .form-row.form-row-file .button-label {
    /* A label styled like a button. */
    cursor: pointer;
    background-color: #fff;
    color: #28ade3;
    border: 1px solid #28ade3;
    border-radius: 8px;
    padding: 9px 18px;
    text-align: center; }
    .form-row.form-row-file .button-label:focus, .form-row.form-row-file .button-label:hover {
      outline: 1px dotted #28ade3;
      /* Intentionally override for webkit browsers. Non-webkit will use line above. */
      outline: -webkit-focus-ring-color auto 5px; }
    @media (min-width: 950px) {
      .form-row.form-row-file .button-label {
        margin: 0; } }
  .form-row.form-row-file.error .button-label {
    border-color: #f26c4f; }

@media (min-width: 950px) {
  .form-inline .form-row {
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .form-inline .form-row img {
      display: none; } }
  @media (min-width: 950px) and (min-width: 950px) {
    .form-inline .form-row.short label {
      width: 28%; } }

@media (min-width: 950px) {
    .form-inline .form-row.form-row-aligncenter {
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column; }
  .form-inline label {
    margin: 10.8px 2% 0 0;
    text-align: right;
    width: 28%; }
  .form-inline .value {
    width: 70%; }
  .form-inline .errorlist {
    margin-left: 30%;
    width: 70%; }
  .form-inline .button {
    border-radius: 5px; }
  .form-inline .checkbox {
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start; }
    .form-inline .checkbox .value {
      -webkit-box-flex: 1;
          -ms-flex: 1;
              flex: 1;
      -webkit-box-pack: end;
          -ms-flex-pack: end;
              justify-content: flex-end;
      margin-right: 9px; }
    .form-inline .checkbox input {
      margin-right: 9px; }
    .form-inline .checkbox label {
      -webkit-box-flex: 2;
          -ms-flex: 2;
              flex: 2;
      margin-right: 0;
      margin-top: 0;
      text-align: left; }
  .form-inline div label {
    padding-left: 9px; }
  .form-inline div ul {
    margin-bottom: 18px;
    margin-left: 126px;
    margin-top: 9px; }
  .form-inline div li:not(:last-child) {
    padding-bottom: 0; }
  .form-x-note {
    text-align: right; } }

.form-row-submit {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row; }
  .form-row-submit .form-row-submit-x-button {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    margin-right: 18px; }
    .form-row-submit .form-row-submit-x-button .button {
      margin: 0 !important; }
  .form-row-submit .form-row-submit-x-message {
    display: none;
    -webkit-box-flex: 1;
        -ms-flex: 1 1 100%;
            flex: 1 1 100%;
    font-size: 18px; }
  .form-row-submit.form-row-submit-is-success .form-row-submit-x-message {
    color: #9aba38;
    display: block; }

.radio-group-payment {
  margin-bottom: 18px;
  overflow: hidden; }
  .radio-group-payment ul {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    width: 100%;
    margin-left: 0 !important; }
    @media (min-width: 950px) {
      .radio-group-payment ul {
        -webkit-box-align: stretch;
            -ms-flex-align: stretch;
                align-items: stretch;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-direction: row;
                flex-direction: row; } }
  .radio-group-payment li {
    margin-bottom: 9px;
    padding: 0 18px; }
    @media (min-width: 950px) {
      .radio-group-payment li {
        -webkit-box-align: stretch;
            -ms-flex-align: stretch;
                align-items: stretch;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
        margin-right: 9px;
        padding-left: 0;
        padding-right: 0; } }
  @media (min-width: 950px) {
    .radio-group-payment li:last-of-type {
      margin-right: 0; } }
  .radio-group-payment label {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    background: #fff;
    border: 1px solid #28ade3;
    border-radius: 10px;
    cursor: pointer;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    list-style: none;
    margin: 0;
    padding: 18px 0;
    position: relative;
    text-align: center; }
    @media (min-width: 950px) {
      .radio-group-payment label {
        min-height: auto; } }
    .radio-group-payment label:hover, .radio-group-payment label:focus, .radio-group-payment label.active {
      background: #28ade3; }
      .radio-group-payment label:hover h1,
      .radio-group-payment label:hover h3,
      .radio-group-payment label:hover p, .radio-group-payment label:focus h1,
      .radio-group-payment label:focus h3,
      .radio-group-payment label:focus p, .radio-group-payment label.active h1,
      .radio-group-payment label.active h3,
      .radio-group-payment label.active p {
        color: #fff; }
  .radio-group-payment h1 {
    color: #28ade3;
    font-weight: bold;
    font-size: 62.4px;
    line-height: 1em; }
    .radio-group-payment h1 span {
      display: block;
      font-weight: normal;
      font-size: 24px;
      line-height: 1em; }
  .radio-group-payment table {
    margin: 0 auto; }
    .radio-group-payment table input {
      display: block; }
  .radio-group-payment p {
    color: #1b2327;
    font-size: 12.6px;
    line-height: 1.5em;
    margin: 5px 0; }
    .radio-group-payment p:last-child {
      margin-bottom: 0; }
    .radio-group-payment p span {
      display: block;
      font-size: 18px;
      line-height: 1em; }
  .radio-group-payment [type="radio"] {
    left: -9999px;
    position: absolute; }

/*
Form Survey

Overrides for the survey form type (has a border and some different layout options based on screen size)
TODO: This needs to become its own module

Markup:
<ul class="survey-progress progressbar">
  <li id="progress-demographics" class="current progressbar-item">1. Demographics</li>
  <li id="progress-case" class="progressbar-item">2. Case Background</li>
  <li id="progress-family" class="progressbar-item">3. Family Dynamics</li>
  <li id="progress-course" class="progressbar-item">4. Course Feedback</li>
</ul>
<form action="" class="form form-survey">
  <fieldset id="demographics">
    <legend>1. Demographics</legend>
    <div class="field date form-row required">
      <label>What year were you born in?</label>
      <div class="value"><input id="id_date_2-answer" type="text" name="date_2-answer" maxlength="4"></div>
      <ul class="errorlist" style="display: none;">
        <li>This field is required</li>
      </ul>
    </div>
    <div class="field multiple-choice form-row required">
      <label>What gender are you?</label>
      <div class="value"><ul>
        <li><label for="id_mc_15-answer_0"><input type="radio" id="id_mc_15-answer_0" value="67" name="mc_15-answer"> Male</label></li>
        <li><label for="id_mc_15-answer_1"><input type="radio" id="id_mc_15-answer_1" value="68" name="mc_15-answer"> Female</label></li>
        <li><label for="id_mc_15-answer_2"><input type="radio" id="id_mc_15-answer_2" value="69" name="mc_15-answer"> Other</label></li>
        <li><label for="id_mc_15-answer_3"><input type="radio" id="id_mc_15-answer_3" value="70" name="mc_15-answer"> Prefer not to answer</label></li>
      </ul></div>
      <ul class="errorlist" style="display: none;">
        <li>This field is required</li>
      </ul>
    </div>
  </fieldset>
  <section class="submit">
    <button class="button" id="next-section">Next Section</button>
    <input class="button" id="submit" type="submit" value="Continue" style="display: none;">
  </section>
</form>

Styleguide 3.2.1
*/
@media (min-width: 950px) {
  .form-survey {
    border: 1px solid #F2F2F2;
    border-bottom: 0;
    padding: 0; }
    .form-survey legend {
      display: none; }
    .form-survey .form-scale, .form-survey .form-row {
      border-bottom: 1px solid #F2F2F2; }
    .form-survey .form-row {
      padding: 18px; }
    .form-survey .submit {
      border-bottom: 1px solid #F2F2F2;
      padding: 0 18px; } }

/*
Form Scale

This is used for a scaling set of radio options built in a table

Markup:
<form action="" class="form form-scale">
  <fieldset>
    <div class="field scalerequired">
      <h2 class="form-scale-heading">The following questions refer to you, your co-parent involved, and your mutual child(ren). Select the option that best describes your situation.</h2>
      <div class="scale_responses">
        <table>
          <thead>
            <tr>
              <th class="label" scope="row"> &nbsp; </th>
              <th scope="col" class="value">Always</th>
              <th scope="col" class="value">Often</th>
              <th scope="col" class="value">Sometimes</th>
              <th scope="col" class="value">Rarely</th>
              <th scope="col" class="value">Never</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <th class="label" scope="row"><label>Do you feel friendly toward your former partner?</label>
              <ul class="errorlist" style="display: none;"><li>This field is required.</li></ul>                    </th>
              <td class="value">
                <label for="id_statement_21-answer_1">
                  <input type="radio" id="id_statement_21-answer_1" name="statement_21-answer" value="27">
                  <span>Always</span>
                </label>
              </td>
              <td class="value">
                <label for="id_statement_21-answer_2">
                  <input type="radio" id="id_statement_21-answer_2" name="statement_21-answer" value="28">
                  <span>Often</span>
                </label>
              </td>
              <td class="value">
                <label for="id_statement_21-answer_3">
                  <input type="radio" id="id_statement_21-answer_3" name="statement_21-answer" value="29">
                  <span>Sometimes</span>
                </label>
              </td>
              <td class="value">
                <label for="id_statement_21-answer_4">
                  <input type="radio" id="id_statement_21-answer_4" name="statement_21-answer" value="30">
                  <span>Rarely</span>
                </label>
              </td>
              <td class="value">
                <label for="id_statement_21-answer_5">
                  <input type="radio" id="id_statement_21-answer_5" name="statement_21-answer" value="31">
                  <span>Never</span>
                </label>
              </td>
            </tr>
            <tr>
              <th class="label" scope="row"><label>Do your children feel friendly toward your former partner?</label>
              <ul class="errorlist" style="display: none;"><li>This field is required.</li></ul>                    </th>
              <td class="value">
                <label for="id_statement_22-answer_1">
                  <input type="radio" id="id_statement_22-answer_1" name="statement_22-answer" value="27">
                  <span>Always</span>
                </label>
              </td>
              <td class="value">
                <label for="id_statement_22-answer_2">
                  <input type="radio" id="id_statement_22-answer_2" name="statement_22-answer" value="28">
                  <span>Often</span>
                </label>
              </td>
              <td class="value">
                <label for="id_statement_22-answer_3">
                  <input type="radio" id="id_statement_22-answer_3" name="statement_22-answer" value="29">
                  <span>Sometimes</span>
                </label>
              </td>
              <td class="value">
                <label for="id_statement_22-answer_4">
                  <input type="radio" id="id_statement_22-answer_4" name="statement_22-answer" value="30">
                  <span>Rarely</span>
                </label>
              </td>
              <td class="value">
                <label for="id_statement_22-answer_5">
                  <input type="radio" id="id_statement_22-answer_5" name="statement_22-answer" value="31">
                  <span>Never</span>
                </label>
              </td>
            </tr>
          </tbody>
        </table>
      </div>
    </div>
  </fieldset>
</form>

Styleguide 3.2.2
*/
.form-scale {
  padding: 0 18px;
  margin-bottom: 18px; }
  @media (min-width: 960px) {
    .form-scale {
      padding-bottom: 18px;
      padding-top: 18px; } }
  .form-scale table {
    width: 100%; }
  .form-scale thead {
    display: none; }
    @media (min-width: 960px) {
      .form-scale thead {
        display: block; }
        .form-scale thead th {
          text-align: center;
          padding: 0; } }
  @media (min-width: 960px) {
    .form-scale tbody .label {
      padding: 18px 0; } }
  .form-scale th {
    text-align: left; }
  .form-scale tr {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    padding-bottom: 18px; }
    @media (min-width: 960px) {
      .form-scale tr {
        border-bottom: 1px solid #f6f3ee;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-direction: row;
                flex-direction: row;
        padding-bottom: 0; }
        .form-scale tr:last-child {
          border-bottom: none; }
        .form-scale tr label {
          width: 100%; }
        .form-scale tr .label {
          -webkit-box-flex: 5;
              -ms-flex: 5 0 40%;
                  flex: 5 0 40%; }
        .form-scale tr .value {
          -webkit-box-flex: 1;
              -ms-flex: 1 0 12%;
                  flex: 1 0 12%;
          padding: 18px 0;
          text-align: center; }
        .form-scale tr span {
          display: none; } }
  .form-scale .label, .form-scale .value {
    color: #696969;
    font-size: 18px; }
    @media (min-width: 960px) {
      .form-scale .label, .form-scale .value {
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        color: #1b2327;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        font-size: 14px;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center; } }
  .form-scale .label {
    margin-bottom: 9px; }
  .form-scale .form-scale-heading {
    color: #696969;
    font-size: 24px;
    line-height: 1.2em; }

.errorlist {
  list-style: none;
  z-index: 10; }
  .errorlist li {
    color: #f26c4f;
    font-size: 14px;
    z-index: 100; }

/*
Form item description

This is an additional description within a form. It provides extra information about
a form item.

Markup:
  <div class="form-row form-itemdescription">
    <h2>Recommend to Co-Parent</h2>
    <p>Enter your Co-Parent’s email below and we’ll send them an email inviting them to sign up for Children in Between on your behalf. </p>
  </div>


Styleguide 3.2.3
*/
.form-itemdescription {
  border-bottom: 1px solid #ccc;
  margin-bottom: 15px;
  padding-bottom: 10px; }
  .form-itemdescription h2 {
    font-size: 18px;
    line-height: 22px;
    margin-bottom: 5px; }
  .form-itemdescription p {
    font-size: 12px;
    line-height: 14px; }

.form-x-Recommend-coparent {
  font-size: 18px;
  line-height: 27px;
  margin-left: auto;
  margin-right: auto; }

.form-rollup {
  border: 0;
  max-height: 0px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  width: 1px;
  -webkit-transition: max-height .5s;
  transition: max-height .5s; }

.form-rollup-display-visible {
  border: 0;
  height: auto;
  margin: 0;
  max-height: 300px;
  overflow: hidden;
  padding: 0;
  width: 100%; }

/*
Form as a button

Markup:
<div class="form form-inline">
  <div class="form-row form-row-aligncenter">
    <button id="buyForCoParent" class="button">Buy Children in Between for your Co-Parent</button>
    <p id="showFormButton" class="form-x-Recommend-coparent">or<a>Recommend to Co-Parent</a></p>
  </div>
</div>

Styleguide 3.2.4
*/
/*
Form Row (Stripe)

Default - Standard input type
.success - Shows the field was filled out correctly
.error - Shows a field error

Markup:
<form class="form">
  <fieldset>
    <legend>4. Secure Payment</legend>
    <div class="form-row form-row-stripe {$modifiers}">
      <label for="formrow">Label:</label>
      <div class="value" id="card-element">
        <span>[stripe code]</span>
      </div>
      <p class="form-row-instructions">These are field-level instructions</p>
    </div>
  </fieldset>
</form>

Styleguide 3.2.5
*/
/*
Global Notification

Markup:
<div class="global-notifications">
  <div class="notification l-containerhorizontal" id="notifications">
    <h4>CDE's Children In Between requires Google Chrome browser. <span class="error"><a href="https://www.google.com/intl/en/chrome/browser/" target="_blank">Download Chrome</a></span></h4>
    <h4>Some none error notification <span><a href="https://www.google.com/intl/en/chrome/browser/" target="_blank">Got It</a></span></h4>
  </div>
</div>

Styleguide 3.14
*/
.global-notifications {
  background: #155a76;
  width: 100%;
  position: relative;
  z-index: 10; }
  .global-notifications .notification {
    padding: 0 18px; }
    .global-notifications .notification strong {
      color: #fff; }
    .global-notifications .notification ul li {
      list-style: none;
      color: #fff;
      padding: 10px 0; }
    .global-notifications .notification h4 {
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      border-top: 1px solid #0f4053;
      color: #fff;
      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: 58px;
      padding: 9px 0; }
      @media (min-width: 960px) {
        .global-notifications .notification h4 {
          -webkit-box-orient: horizontal;
          -webkit-box-direction: normal;
              -ms-flex-direction: row;
                  flex-direction: row;
          -webkit-box-pack: justify;
              -ms-flex-pack: justify;
                  justify-content: space-between; } }
      .global-notifications .notification h4:first-of-type {
        border-top: 0; }
      .global-notifications .notification h4.notification {
        display: block; }
        @media (min-width: 960px) {
          .global-notifications .notification h4.notification {
            line-height: 40px; } }
        .global-notifications .notification h4.notification strong {
          font-weight: bold; }
    .global-notifications .notification span {
      -webkit-box-sizing: border-box;
              box-sizing: border-box;
      background: #9aba38;
      margin-top: 18px;
      padding: 9px 18px;
      text-align: center;
      width: 100%; }
      @media (min-width: 960px) {
        .global-notifications .notification span {
          margin-top: 0;
          width: auto; } }
      .global-notifications .notification span.error {
        background: #e75345; }
      .global-notifications .notification span a {
        color: #fff; }

/*
Glossary

Please note the required javascript at the begining of the CSS bellow.

Markup:
<section class="glossary">
  <div class="glossary-x-header">
    <h1>Glossary</h1>
    <p class="glossary-x-text-lightGrey">Select a term in the list to view its definition.</p>
    <sg-insert>3.52</sg-insert>
  </div>
  <div class="l-glossary">
    <div class="glossary-x-terms">
      <article>
        <input type="radio" name="accordion" value="accordion1" id="accordion1" checked="checked">
        <label for="accordion1"><h1>Sensitivity</h1></label>
        <div>
            <p class="glossary-x-term">Sensitivity</p>
             This involves empathy, where you can see situations through other people’s eyes and feel what they feel. Sensitivity means considering the feelings and welfare of others before you act. It means that you do not always put your needs of the moment first. Sensitivity increases with maturity, wisdom, compassion, and self-control.
        </div>
      </article>
      <article>
        <input type="radio" name="accordion" value="accordion2" id="accordion2">
        <label for="accordion2"><h1>Empathy</h1></label>
        <div>
            <p class="glossary-x-term">Empathy</p>
             When you can feel what another person feels, this is empathy. It involves putting yourself in someone else’s shoes so as to see the situation from their point of view and experience the feelings they do. Empathy is the basis for intimate relationships and builds respect for the other person. People who are high in emotional intelligence have good empathy skills.
        </div>
      </article>
      <article>
        <input type="radio" name="accordion" value="accordion3" id="accordion3">
        <label for="accordion3"><h1>Polite Request</h1></label>
        <div>
            <p class="glossary-x-term">Polite Request</p>
              This is an extension of an “I” message. After stating how you feel about another person’s behavior, you put your request for a change in behavior in a clearly polite form, then ask for their agreement:
        </div>
      </article>
      <article>
        <input type="radio" name="accordion" value="accordion4" id="accordion4">
        <label for="accordion4"><h1>Polite Request 2</h1></label>
        <div>
            <p class="glossary-x-term">Polite Request</p>
             This is an extension of an “I” message. After stating how you feel about another person’s behavior, you put your request for a change in behavior in a clearly polite form, then ask for their agreement:
        </div>
      </article>
    </div>
    <div id="glossary-x-definition">
      This is an extension of an “I” message. After stating how you feel about another person’s behavior, you put your request for a change in behavior in a clearly polite form, then ask for their agreement:
    </div>
  </div>
</section>


Styleguide 3.49
*/
/*
This pattern assumes and requires the following javascript / Jquery snippet:
window.nextTerm = null;
window.muted = false;

function muteAudio() {
    $('#volume_control').find('#volumeDisplay').addClass('audioGlossary-muted');
    window.muted = true;
    if (window.glossary_term_audio) {
        window.glossary_term_audio.pause();
        window.glossary_term_audio.muted = true;
    }
}

function unmuteAudio() {
    $('#volume_control').find('#volumeDisplay').removeClass('audioGlossary-muted');
    window.muted = false;
    if (window.glossary_term_audio) {
        window.glossary_term_audio.play();
        window.glossary_term_audio.muted = false;
    }
}

function toggleMute() {
    if (window.muted) {
        unmuteAudio();
    } else {
        muteAudio();
    }
}


$('#volume_control').click(function(){
    toggleMute();
});


function playDefinitionAudio(audioUrl) {
    if (!window.muted){
        if (window.glossary_term_audio) {
            window.glossary_term_audio.pause();
            window.glossary_term_audio.src = audioUrl;
        }
        else {
            window.glossary_term_audio = new Audio(audioUrl);
        }
        window.glossary_term_audio.play();
    } else if (window.glossary_term_audio) {
        window.glossary_term_audio.src = audioUrl;
    }
}



$(function() {

    var glossary = $('#glossary');
    showDefinition(glossary.find('article:has(input:checked)'));

    glossary.find('input').click(function(event) {
        var target = $(event.currentTarget),
            termElement = target.closest('article'),
            radio = termElement.find('input:checked'),
            audioUrl = radio.data('audioUrl');

        showDefinition(termElement);
        if (audioUrl) {
            playDefinitionAudio(audioUrl);
        }
    });

    function getDefinitionForSelectedTerm(termElement) {
        return termElement.find('.glossary-x-term').parent();
    }

    function showDefinition(termElement) {
        var definition = getDefinitionForSelectedTerm(termElement).clone(),
            displayElement = $("#glossary-x-definition");
        displayElement.html(definition);
    }

});

*/
.glossary .glossary-x-terms > article {
  padding-left: 16px;
  padding-right: 16px; }
  .glossary .glossary-x-terms > article > input {
    display: none; }
    .glossary .glossary-x-terms > article > input + label {
      color: #28ade3;
      cursor: pointer;
      display: block;
      padding-bottom: 16px;
      padding-left: 16px;
      padding-top: 16px;
      border-right: 1px solid #D0D0D0;
      border-top: 1px solid #D0D0D0; }
      .glossary .glossary-x-terms > article > input + label h1 {
        font-size: 14px; }
    .glossary .glossary-x-terms > article > input + label + * {
      color: #696969;
      height: auto;
      opacity: 1;
      padding-left: 18px;
      -webkit-transition: opacity 0.25s ease-in-out;
      transition: opacity 0.25s ease-in-out; }
  .glossary .glossary-x-terms > article > input:not(:checked) + label span {
    -webkit-transform: rotate3d(0, 0, 1, -90deg);
            transform: rotate3d(0, 0, 1, -90deg);
    -webkit-transition: none;
    transition: none; }
  .glossary .glossary-x-terms > article > input:not(:checked) + label + * {
    height: 0;
    margin-bottom: 0;
    margin-top: 0;
    opacity: 0;
    overflow: hidden; }
  .glossary .glossary-x-terms > article > input:checked + label h1 {
    color: #2A5A73;
    font-weight: bold; }
  .glossary .glossary-x-terms > article > input:checked + label + * {
    padding-bottom: 18px;
    padding-right: 18px;
    border-right: 1px solid #D0D0D0; }

.glossary .glossary-x-terms .glossary-x-term {
  display: none; }

.glossary .glossary-x-terms .glossary-x-term-header {
  display: none; }

.glossary .glossary-x-terms .glossary-x-text-lightGrey {
  color: #7C7C7C; }

.glossary #glossary-x-definition {
  display: none; }

.glossary .glossary-x-header {
  padding: 20px 23px;
  margin-bottom: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end; }

@media (min-width: 650px) {
  .glossary {
    padding: 31px 70px; }
    .glossary .glossary-x-terms > article {
      padding-left: 0;
      padding-right: 0;
      width: 290px; }
      .glossary .glossary-x-terms > article > input + label + * {
        display: none; }
      .glossary .glossary-x-terms > article > input:checked + label + * {
        border: 0; }
    .glossary #glossary-x-definition {
      color: #696969;
      display: block;
      padding-left: 30px;
      padding-top: 16px;
      border-top: 1px solid #D0D0D0; }
    .glossary .glossary-x-header {
      padding-left: 0;
      margin-bottom: 0; }
    .glossary .glossary-x-term-header {
      color: black;
      display: block;
      font-size: 32px; }
    .glossary .glossary-x-term {
      display: block;
      color: black;
      font-size: 32px;
      line-height: 38px;
      font-weight: normal; } }

/*
audio glossary

Markup:
<p>
  <a id="volume_control" class="audioGlossary">
    <span class="audioGlossary-x-text">Read Aloud</span>
    <span id="volume_control" class="audioGlossary-icon audioGlossary-icon-muted"></span>
  </a>
</p>

Styleguide 3.52
*/
.audioGlossary {
  color: #000;
  text-align: center; }
  .audioGlossary:hover {
    color: #000; }
  .audioGlossary .audioGlossary-icon {
    outline: none;
    display: inline-block; }
    .audioGlossary .audioGlossary-icon, .audioGlossary .audioGlossary-icon svg {
      height: 30px;
      width: 30px; }
    .audioGlossary .audioGlossary-icon .icon-unmute {
      display: none; }
    .audioGlossary .audioGlossary-icon.audioGlossary-muted .icon-unmute {
      display: block; }
    .audioGlossary .audioGlossary-icon.audioGlossary-muted .icon-mute {
      display: none; }
  .audioGlossary span {
    display: block; }

/*
Guided Question

Markup:
<div class="guided-question" id="course_container">
  <p>Let's consider the following:</p>
  <h1 id="question">What do children need when they make a transition from one parent's home to the other's?</h1><p>They need quiet time and gentle support from each parent. They need time to decompress from the strong feelings of divided loyalties. Children may shut out one or both parents during these times as they struggle with feelings of loyalty to the absent parent. If conflict between parents occurs, it can take the children and parents up to 72 hours to get the adrenaline out of their systems. </p>
  <section class="controls">
    <a id="next_button" class="button" href="#">Next Question</a>
    <aside style="">
      <p class="h2">More information:</p>
      <ul id="footnotes"><li><a href="#" class="footnote" id="5">5</a></li></ul>
    </aside>
  </section>
</div>

Styleguide 3.11
*/
.guided-question {
  padding: 0 18px 18px 18px; }
  .guided-question h1 {
    font-size: 24px;
    margin-bottom: 18px; }
    @media (min-width: 960px) {
      .guided-question h1 {
        font-size: 30px; } }
    .guided-question h1 a {
      color: #136d92; }
  .guided-question h2 {
    font-size: 14px;
    margin-bottom: 0; }
    @media (min-width: 960px) {
      .guided-question h2 {
        font-size: 24px;
        margin-bottom: 9px; } }
  .guided-question p {
    font-size: 18px;
    line-height: 1.5;
    margin-bottom: .5em;
    display: inline; }
  .guided-question .controls {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    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: 960px) {
      .guided-question .controls {
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-direction: row;
                flex-direction: row;
        padding-top: 18px; } }
  .guided-question .button {
    margin: 18px 0;
    width: 100%; }
    @media (min-width: 960px) {
      .guided-question .button {
        font-size: 24px;
        margin: 0 18px 0 0;
        width: auto; } }
  .guided-question aside p {
    float: left;
    display: inline-block;
    margin: 9px;
    line-height: 1em;
    font-size: 14px; }
    @media (min-width: 960px) {
      .guided-question aside p {
        font-size: 18px; } }
  .guided-question aside ul {
    float: left; }
    .guided-question aside ul li {
      list-style: none;
      float: left;
      margin-right: 9px; }
      .guided-question aside ul li a {
        display: block;
        background: #9aba38;
        border-radius: 5px;
        padding: 9px;
        color: #fff;
        font-weight: normal;
        line-height: 1em; }
        @media (min-width: 960px) {
          .guided-question aside ul li a {
            font-size: 18px; } }
        .guided-question aside ul li a:hover {
          background: #7a932c; }

.question-footnotes {
  display: block;
  background: #ebebeb;
  border-radius: 3px;
  padding: 32px;
  color: #696969;
  margin-top: 17px; }
  .question-footnotes .question-footnotes-title {
    font-weight: bold; }
  .question-footnotes p {
    margin-bottom: 17px;
    display: block; }

/*
High Conflict

Markup:
<div class="highconflict">
  <img src="http://placehold.it/56x56" width="56" height="56">
  <div class="highconflict-x-text">
    <h2 id="heading-highconflict">Looking for a High-Conflict Class?</h2>
    <p><a href="#" aria-labelledby="heading-highconflict">Click for more information</a></p>
  </div>
</div>

Styleguide 3.55
*/
.highconflict {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }
  .highconflict a,
  .highconflict h2,
  .highconflict p {
    color: #781012;
    font-size: 14px;
    font-weight: bold;
    line-height: 14px; }
  .highconflict a {
    text-decoration: underline; }
  .highconflict .highconflict-x-text {
    margin-left: 18px; }

/*
Link List

Markup:
<ul class="linklist">
  <li><a href="#">CDE's Children in Between Online 30-day Account</a></li>
  <li><a href="#">Lorem Ipsum Dolor Sit Amet Consectetur Adipiscing Elit</a></li>
  <li><a href="#">Aliquam diam mauris: facilisis nec sollicitudin vitae porta laoreet arcu</a></li>
</ul>

Styleguide 3.57
*/
.linklist a {
  font-size: 18px;
  font-weight: bold; }

.linklist li:not(:last-child) {
  margin-bottom: 18px; }

/*
Loader

Markup:
<!-- Position relative override just for the pattern library, position fixed by default -->
<div id="item-loading" class="loader" style="position: relative;">
    <p>Loading</p>
</div>

Styleguide 3.12
*/
@-webkit-keyframes loader {
  0% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg); }
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg); } }
@keyframes loader {
  0% {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg); }
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg); } }

.loader {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background: rgba(255, 255, 255, 0.9);
  color: #28ade3;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  height: 100%;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  left: 0;
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 1000; }
  .loader i {
    display: block;
    margin-bottom: 18px; }
  .loader p {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    font-weight: bold;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    position: relative;
    text-align: center;
    text-transform: uppercase; }
    .loader p::before {
      -webkit-animation: loader .8s infinite ease-in-out;
              animation: loader .8s infinite ease-in-out;
      border: 4.5px solid #28ade3;
      border-radius: 50%;
      border-right-color: transparent;
      content: '';
      display: block;
      height: 28px;
      margin: 0 0 18px 0;
      width: 28px; }

/*
Logo

Markup:
<a href="/" class="logo"><img src="/images/logo-cib.svg" alt="Children In Between Logo" width="256" height="45"></a>

Styleguide 3.29
*/
.logo {
  display: block; }
  .logo img {
    display: block; }

/*
Management Table

Markup:
<section class="management-table">
  <table>
    <thead>
      <tr>
        <th scope="col">Extra Credit Category</th>
        <th scope="col">Value</th>
        <th scope="col"># Complete</th>
        <th scope="col">Total</th>
        <th scope="col">Applied</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <th scope="row">Posting in the Forum (Maximum 50%)</th>
        <td>2%</td>
        <td>0 of 25</td>
        <td>0%</td>
        <td>-</td>
      </tr>
      <tr>
        <th scope="row">Skills Practices (Maximum 50%)</th>
        <td>2%</td>
        <td>25 of 25</td>
        <td>50%</td>
        <td>-</td>
      </tr>
      <tr>
        <th scope="row">Skills Practices (Maximum 50%)</th>
        <td>2%</td>
        <td>25 of 25</td>
        <td>50%</td>
        <td>-</td>
      </tr>
    </tbody>
    <tfoot>
      <tr>
        <th scope="row">Totals</th>
        <td></td>
        <td>25</td>
        <td>50%</td>
        <td>0%</td>
      </tr>
    </tfoot>
  </table>
</section>

Styleguide 3.13
*/
.management-table {
  overflow-x: auto;
  margin: 0 18px 18px; }
  .management-table table {
    border-collapse: collapse;
    font-size: 18px;
    width: 100%; }
  .management-table td,
  .management-table th {
    padding: 18px;
    text-align: center;
    vertical-align: middle;
    white-space: nowrap; }
    @media (min-width: 960px) {
      .management-table td,
      .management-table th {
        white-space: normal; } }
    .management-table td:last-child,
    .management-table th:last-child {
      text-align: right; }
    .management-table td:first-child,
    .management-table th:first-child {
      text-align: left; }
  .management-table thead th {
    background: #0a3b4e;
    color: #fff;
    font-size: 16px;
    padding-bottom: 9px;
    padding-top: 9px; }
  .management-table thead th:first-child {
    border-top-left-radius: 5px; }
  .management-table thead th:last-child {
    border-top-right-radius: 5px; }
  .management-table tbody td,
  .management-table tbody th {
    -webkit-box-shadow: #ddd 0 -1px 0 0 inset;
            box-shadow: #ddd 0 -1px 0 0 inset; }
    .management-table tbody td:first-child,
    .management-table tbody th:first-child {
      -webkit-box-shadow: #ddd 1px -1px 0 0 inset;
              box-shadow: #ddd 1px -1px 0 0 inset; }
    .management-table tbody td:last-child,
    .management-table tbody th:last-child {
      -webkit-box-shadow: #ddd -1px -1px 0 0 inset;
              box-shadow: #ddd -1px -1px 0 0 inset; }
    .management-table tbody td:only-child,
    .management-table tbody th:only-child {
      -webkit-box-shadow: #ddd 0 0 0 1px inset;
              box-shadow: #ddd 0 0 0 1px inset; }
  .management-table tbody tr:nth-child(even) td,
  .management-table tbody tr:nth-child(even) th {
    background-color: #F2F2F2; }
  .management-table tbody tr:last-of-type td:first-child,
  .management-table tbody tr:last-of-type th:first-child {
    border-bottom-left-radius: 5px; }
  .management-table tbody tr:last-of-type td:last-child,
  .management-table tbody tr:last-of-type th:last-child {
    border-bottom-right-radius: 5px; }
  .management-table tfoot {
    font-weight: bold; }

/*
Menu

This is fragmented, these items should become their own modules.

Default - Used in main navigation
.menu-page - Used inline on pages

Markup:
<ul class="menu {$modifiers}">
  <li class="menu-item"><a class="course" href="/course">Course</a></li>
  <li class="menu-item"><a href="/resources/">Resources</a></li>
  <li class="menu-item menu-dropdown" tabindex="1"><a id="downloads" href="">Downloads</a>
    <ul>
      <li><a href="/lesson/handbooks/what-about-children">What About the Children? 8th Ed</a></li>
      <li><a href="/lesson/handbooks/children-in-between">Children in Between 6th Ed.</a></li>
    </ul>
  </li>
  <li class="menu-item"><a class="glossary" href="/reference/glossary">Glossary</a></li>
</ul>

Styleguide 3.28
*/
.menu {
  max-height: 0;
  overflow: hidden;
  -webkit-transition: all .25s ease-out;
  transition: all .25s ease-out;
  width: 100%; }
  .menu:first-of-type {
    -webkit-box-shadow: #155a76 0 5px 0 0 inset;
            box-shadow: #155a76 0 5px 0 0 inset; }
  @media (min-width: 950px) {
    .menu {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      max-height: inherit;
      overflow: visible;
      width: auto; }
      .menu:first-of-type {
        -webkit-box-shadow: none;
                box-shadow: none;
        padding-top: 0; } }
  @media (max-width: 950px) {
    .menu.is-active {
      max-height: 1000px;
      padding-top: 5px; } }

.menu-page:first-of-type {
  -webkit-box-shadow: #F2F2F2 0 1px 0 0 inset;
          box-shadow: #F2F2F2 0 1px 0 0 inset; }

@media (min-width: 950px) {
  .menu-page {
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    -webkit-box-shadow: none;
            box-shadow: none;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    width: 100%; } }

/*
Menu Item

Default - Used in main navigation
.menu-page-page - Used inline on pages

Markup:
<div class="menu-item {$modifiers}"><a class="course" href="/course">Course</a></div>

Styleguide 3.28.2
*/
.menu-item {
  border-bottom: 1px solid #F2F2F2;
  padding: 0 18px; }
  @media (min-width: 950px) {
    .menu-item {
      border-bottom: 0;
      margin: 0 18px;
      padding: 13.5px 0;
      text-transform: uppercase; }
      .menu-item.has-limit > a {
        max-width: 120px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap; } }
  .menu-item a,
  .menu-item > span {
    display: block;
    color: #28ade3;
    cursor: pointer;
    font-weight: normal;
    line-height: 1;
    padding: 18px 0; }
    @media (min-width: 950px) {
      .menu-item a,
      .menu-item > span {
        color: #000;
        padding: 0; }
        .menu-item a:hover,
        .menu-item > span:hover {
          color: rgba(0, 0, 0, 0.5); } }

@media (min-width: 950px) {
  .menu-item-page {
    margin: 0;
    padding-left: 18px;
    padding-right: 18px;
    text-transform: none;
    width: 100%; }
    .menu-item-page:nth-child(odd) {
      background-color: #F2F2F2; } }

.menu-item-page.active a {
  font-weight: bold; }

/*
Menu Dropdown

Markup:
<div class="menu-item menu-dropdown" tabindex="1"><a id="downloads" href="">Downloads</a>
  <ul>
    <li><a href="/lesson/handbooks/what-about-children">What About the Children? 8th Ed</a></li>
    <li><a href="/lesson/handbooks/children-in-between">Children in Between 6th Ed.</a></li>
  </ul>
</div>

Styleguide 3.28.3
*/
.menu-dropdown {
  outline: none;
  position: relative; }
  .menu-dropdown a {
    padding-left: 1.5em;
    position: relative; }
    @media (min-width: 950px) {
      .menu-dropdown a {
        padding-left: 0; } }
  .menu-dropdown > a {
    pointer-events: none; }
    @media (min-width: 950px) {
      .menu-dropdown > a {
        pointer-events: auto;
        padding-right: 1.5em; } }
    .menu-dropdown > a::before {
      background: url("images/menu-indicator.svg") center center no-repeat;
      background-size: 10px 15px;
      content: '';
      display: block;
      height: 1em;
      left: 0;
      position: absolute;
      top: 18px;
      -webkit-transition: all .1s ease-out;
      transition: all .1s ease-out;
      width: 1em; }
      @media (min-width: 950px) {
        .menu-dropdown > a::before {
          color: #28ade3;
          left: auto;
          right: 0;
          top: -2px;
          -webkit-transform: rotate(90deg);
                  transform: rotate(90deg); } }
  .menu-dropdown ul {
    max-height: 0;
    overflow: hidden;
    -webkit-transition: all .25s ease-out;
    transition: all .25s ease-out; }
    @media (min-width: 950px) {
      .menu-dropdown ul {
        background: rgba(255, 255, 255, 0.95);
        -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.5);
                box-shadow: 0 0 3px rgba(0, 0, 0, 0.5);
        min-width: 200px;
        position: absolute;
        right: 0;
        text-align: right;
        top: 100%;
        -webkit-transition: none;
        transition: none;
        white-space: nowrap;
        z-index: 1000; } }
    .menu-dropdown ul a {
      color: #155a76; }
      @media (min-width: 950px) {
        .menu-dropdown ul a {
          padding: 18px; } }
    .menu-dropdown ul a:hover {
      opacity: .5; }
      @media (min-width: 950px) {
        .menu-dropdown ul a:hover {
          background: rgba(0, 0, 0, 0.05);
          opacity: 1; } }
  @media (min-width: 950px) {
    .menu-dropdown li {
      border-bottom: 1px solid #d9d9d9;
      padding: 0;
      text-transform: none; } }
  .menu-dropdown:hover ul, .menu-dropdown:focus ul {
    max-height: 1000px; }
  .menu-dropdown:hover a::before, .menu-dropdown:focus a::before {
    -webkit-transform: rotate(90deg);
            transform: rotate(90deg); }

/*
Menu Item

Markup:
<li class="menuitem"><a href="">Menu Item</a><li>

Styleguide 3.45
*/
.menuitem {
  border-bottom: 1px solid #f6f3ee;
  line-height: 1;
  outline: none;
  white-space: nowrap; }
  .menuitem > a,
  .menuitem button {
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    background: transparent;
    border: 0;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    color: #28ade3;
    cursor: pointer;
    display: block;
    font-size: 18px;
    font-weight: normal;
    outline: none;
    padding: 18px;
    text-align: left;
    width: 100%; }
  @media (min-width: 860px) {
    .menuitem {
      border-bottom: 0; }
      .menuitem > a,
      .menuitem button {
        padding: 0; } }

.menuitem-dropdown button {
  padding-left: 35px;
  position: relative; }
  .menuitem-dropdown button::before {
    background: url("images/menuitem-dropdown.svg") center center no-repeat;
    content: '';
    display: block;
    height: 8px;
    left: 18px;
    margin-right: 10px;
    position: absolute;
    top: calc(50% - 4px);
    -webkit-transition: -webkit-transform 0.25s ease-in-out;
    transition: -webkit-transform 0.25s ease-in-out;
    transition: transform 0.25s ease-in-out;
    transition: transform 0.25s ease-in-out, -webkit-transform 0.25s ease-in-out;
    width: 8px;
    will-change: transform; }

.menuitem-dropdown ul {
  padding-bottom: 9px;
  white-space: normal; }

.menuitem-dropdown li a {
  color: #155a76;
  display: block;
  padding: 9px 18px 9px 36px; }

.menuitem-dropdown [aria-hidden="true"] {
  display: none; }

.menuitem-dropdown [aria-hidden="false"] {
  display: block; }

.menuitem-dropdown.menuitem-is-active button::before {
  -webkit-transform: rotate(90deg);
          transform: rotate(90deg); }

@media (min-width: 860px) {
  .menuitem-dropdown {
    position: relative; }
    .menuitem-dropdown button {
      padding-left: 0;
      padding-right: 26px; }
      .menuitem-dropdown button::before {
        left: auto;
        right: 0;
        -webkit-transform: rotate(90deg);
                transform: rotate(90deg); }
    .menuitem-dropdown ul {
      background: rgba(255, 255, 255, 0.95);
      -webkit-box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.5);
              box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.5);
      padding: 0;
      position: absolute;
      right: 0;
      top: calc(100% + 9px);
      width: 143px; }
    .menuitem-dropdown li a {
      border-bottom: 1px solid rgba(0, 0, 0, 0.15);
      color: #28ade3;
      padding: 9px; } }

.menuitem-secondary {
  border-bottom: 0;
  border-right: 1px solid #f6f3ee; }
  .menuitem-secondary > a {
    font-size: 14px;
    text-align: center; }
  @media (min-width: 860px) {
    .menuitem-secondary > a {
      border-right: 0;
      color: #155a76;
      padding: 0; } }

@media (min-width: 860px) {
  .menuitem-marketing {
    border: 0; }
    .menuitem-marketing > a {
      border: 1px solid #28ade3;
      border-radius: 8px;
      padding: 9px 18px; } }

/*
Navigation

Markup:
<nav class="navigation" id="navigation">
  <div class="navigation-x-container l-containerhorizontal">
    <header>
      <a href="/" class="navigation-x-logo"><img src="/images/logo-cib.svg" alt="Children In Between Logo" width="256" height="45"></a>
      <button class="navigation-x-toggle"><span class="visually-hidden"> Menu</span></button>
    </header>
    <div class="navigation-x-message">
      <sg-insert>3.55</sg-insert>
    </div>
    <div class="navigation-x-menu">
      <ul class="l-menu l-menu-secondary">
        <li class="menuitem menuitem-secondary"><a href="/set-language/es" class="language"><span>En Español?</span></a></li>
        <li class="menuitem menuitem-secondary"><a href="/contact">Contact</a></li>
      </ul>
      <ul class="l-menu">
        <li class="menuitem menuitem-marketing"><a href="/shopping/purchase/">Sign Up</a></li>
        <li class="menuitem menuitem-marketing"><a href="/user/login">Login</a></li>
      </ul>
    </div>
  </div>
</nav>

Styleguide 3.3
*/
.navigation {
  background: #fff;
  border-bottom: 5px solid #28ade3;
  position: relative; }
  .navigation header {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    padding: 18px;
    width: 100%; }
  .navigation .navigation-x-logo {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    max-width: 70%; }
  .navigation .language-toggle {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    padding: 17px 13px;
    -webkit-box-align: left;
        -ms-flex-align: left;
            align-items: left;
    /* Transition*/ }
    .navigation .language-toggle label {
      padding: 0 5px; }
    .navigation .language-toggle .en-language, .navigation .language-toggle .es-language {
      padding-top: 3px; }
    .navigation .language-toggle .toggle {
      position: relative;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      display: block;
      width: 60px;
      height: 20px;
      padding: 0 3px;
      border-radius: 10px;
      cursor: pointer; }
    .navigation .language-toggle .toggle-input {
      position: absolute;
      top: 0;
      left: 0;
      opacity: 0; }
    .navigation .language-toggle .toggle-label {
      position: relative;
      display: block;
      height: inherit;
      font-size: 12px;
      background: #26ade3;
      border-radius: inherit;
      -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.12), inset 0 0 3px rgba(0, 0, 0, 0.15);
              box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.12), inset 0 0 3px rgba(0, 0, 0, 0.15); }
    .navigation .language-toggle .toggle-label:before,
    .navigation .language-toggle .toggle-label:after {
      position: absolute;
      top: 50%;
      color: black;
      margin-top: -.5em;
      line-height: 1; }
    .navigation .language-toggle .toggle-label:before {
      content: attr(data-off);
      right: 11px;
      color: #fff;
      text-shadow: 0 1px rgba(255, 255, 255, 0.5); }
    .navigation .language-toggle .toggle-label:after {
      content: attr(data-on);
      left: 11px;
      color: #fff;
      text-shadow: 0 1px rgba(0, 0, 0, 0.2);
      opacity: 0; }
    .navigation .language-toggle .toggle-input:checked ~ .toggle-label {
      background: #26ade3; }
    .navigation .language-toggle .toggle-input:checked ~ .toggle-label:before {
      opacity: 0; }
    .navigation .language-toggle .toggle-input:checked ~ .toggle-label:after {
      opacity: 1; }
    .navigation .language-toggle .toggle-handle {
      position: absolute;
      top: 1.5px;
      left: 4px;
      width: 18px;
      height: 18px;
      background: -webkit-gradient(linear, left top, left bottom, color-stop(40%, #FFFFFF), to(#f0f0f0));
      background: linear-gradient(to bottom, #FFFFFF 40%, #f0f0f0);
      border-radius: 50%; }
    .navigation .language-toggle .toggle-handle:before {
      position: absolute;
      top: 50%;
      left: 50%;
      margin: -6px 0 0 -6px;
      width: 16px;
      height: 16px; }
    .navigation .language-toggle .toggle-input:checked ~ .toggle-handle {
      left: 38px;
      -webkit-box-shadow: -1px 1px 5px rgba(0, 0, 0, 0.2);
              box-shadow: -1px 1px 5px rgba(0, 0, 0, 0.2); }
    .navigation .language-toggle .toggle-label,
    .navigation .language-toggle .toggle-handle {
      transition: All 0.3s ease;
      -webkit-transition: All 0.3s ease;
      -moz-transition: All 0.3s ease;
      -o-transition: All 0.3s ease; }
  .navigation #locale-pin-img, .navigation #locale-pin-label {
    cursor: pointer; }
  .navigation .navigation-x-container {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between; }
    .navigation .navigation-x-container .locale-pin {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      padding: 17px 12px; }
  .navigation .navigation-x-toggle {
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    background: url("images/navigation-toggle.svg") center center no-repeat;
    border: 0;
    color: transparent;
    cursor: pointer;
    height: 30px;
    outline: none;
    overflow: hidden;
    -webkit-transition: -webkit-transform 0.25s ease-in-out;
    transition: -webkit-transform 0.25s ease-in-out;
    transition: transform 0.25s ease-in-out;
    transition: transform 0.25s ease-in-out, -webkit-transform 0.25s ease-in-out;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
    width: 30px;
    will-change: transform; }
  .navigation .navigation-x-menu {
    background-color: #fff;
    border-bottom: 5px solid #28ade3;
    border-top: 5px solid #28ade3;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    left: 0;
    pointer-events: none;
    position: absolute;
    top: 100%;
    -webkit-transform: scaleY(0);
            transform: scaleY(0);
    -webkit-transform-origin: top;
            transform-origin: top;
    -webkit-transition: -webkit-transform 0.25s ease-in-out;
    transition: -webkit-transform 0.25s ease-in-out;
    transition: transform 0.25s ease-in-out;
    transition: transform 0.25s ease-in-out, -webkit-transform 0.25s ease-in-out;
    width: 100%;
    will-change: transform;
    z-index: 100; }
    .navigation .navigation-x-menu > :first-child {
      -webkit-box-ordinal-group: 3;
          -ms-flex-order: 2;
              order: 2; }
    .navigation .navigation-x-menu > :last-child {
      -webkit-box-ordinal-group: 2;
          -ms-flex-order: 1;
              order: 1; }
  .navigation .navigation-x-message {
    display: none; }
  .navigation.navigation-is-active .navigation-x-menu {
    pointer-events: auto;
    -webkit-transform: none;
            transform: none; }
  .navigation.navigation-is-active .navigation-x-toggle {
    -webkit-transform: rotate(-90deg);
            transform: rotate(-90deg); }
  @media (min-width: 860px) {
    .navigation {
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex; }
      .navigation header {
        width: auto; }
      .navigation .navigation-x-container .locale-pin {
        padding-left: 0; }
      .navigation .navigation-x-logo {
        max-width: 405px; }
      .navigation .navigation-x-message {
        display: block; }
      .navigation .navigation-x-toggle {
        display: none; }
      .navigation .navigation-x-menu {
        border-bottom: 0;
        border-top: 0;
        padding: 18px 18px 18px 0;
        pointer-events: auto;
        position: relative;
        -webkit-transform: none;
                transform: none;
        width: auto;
        will-change: none; }
        .navigation .navigation-x-menu > :first-child:not(:only-child) {
          margin-bottom: 18px; }
        .navigation .navigation-x-menu > :first-child {
          -webkit-box-ordinal-group: 2;
              -ms-flex-order: 1;
                  order: 1; }
        .navigation .navigation-x-menu > :last-child {
          -webkit-box-ordinal-group: 3;
              -ms-flex-order: 2;
                  order: 2; } }

.modal {
  display: none;
  /* Hidden by default */
  position: fixed;
  /* Stay in place */
  z-index: 999;
  /* Sit on top */
  left: 0;
  top: 0;
  width: 100%;
  /* Full width */
  height: 100%;
  /* Full height */
  overflow: auto;
  /* Enable scroll if needed */
  background-color: black;
  /* Fallback color */
  background-color: rgba(0, 0, 0, 0.4);
  /* Black w/ opacity */ }

/* Modal Content */
.modal-content {
  background-color: #fefefe;
  margin: 15% auto;
  /* 15% from the top and centered */
  padding: 20px;
  border: 1px solid #888;
  width: 90%;
  /* Could be more or less, depending on screen size */
  max-width: 500px;
  -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
          box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
  border-radius: 3px;
  position: relative; }

/* The Close Button */
.close {
  color: #aaa;
  position: absolute;
  right: 4px;
  top: 0;
  font-size: 35px;
  font-weight: bold;
  cursor: pointer;
  width: 35px;
  height: 35px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: right;
      -ms-flex-pack: right;
          justify-content: right;
  -webkit-transition: all 0.3s;
  transition: all 0.3s; }

.close:hover,
.close:focus {
  color: black;
  text-decoration: none;
  cursor: pointer; }

/* Disable scrolling */
body.modal-open {
  overflow: hidden; }

input#confirm_filing_county_button {
  width: 100%;
  font-size: 18px; }

/*
Navigation Page

Markup:
<nav class="navigation navigation-page glossary-navigation" id="page-navigation-pattern">
  <header>
    <h2 class="navigation-title">Glossary Menu</h2>
    <button class="menu-toggle is-inactive" id="menu-toggle"><span class="visually-hidden"> Menu</span></button>
  </header>
  <ul class="menu menu-page">
    <li class="menu-item menu-item-page"><a href="">Active Listening</a href=""></li>
    <li class="menu-item menu-item-page active"><a href="">Empathy</a href=""></li>
    <li class="menu-item menu-item-page"><a href="">I Message</a href=""></li>
    <li class="menu-item menu-item-page"><a href="">Impulse Control</a href=""></li>
  </ul>
</nav>

Styleguide 3.3.1
*/
.navigation-page {
  -webkit-box-shadow: none;
          box-shadow: none;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  z-index: 10; }
  @media (min-width: 950px) {
    .navigation-page {
      -webkit-box-align: start;
          -ms-flex-align: start;
              align-items: flex-start;
      -ms-flex-wrap: nowrap;
          flex-wrap: nowrap;
      height: auto;
      left: auto;
      position: relative;
      top: auto; }
      .navigation-page header {
        display: none; } }
  .navigation-page .navigation-title {
    font-size: 18px;
    line-height: 1em;
    margin: 18px;
    text-transform: uppercase; }

/*
Order Summary

Summary to be placed inside of form module

Markup:
<table class="ordersummary">
  <tfoot>
    <tr>
      <th scope="row">Your Total:</th>
      <td>$59.95</td>
    </tr>
  <tfoot>
  <thead class="visuallyhidden">
    <tr>
      <th scope="col">Item</th>
      <th scope="col">Price</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th scope="row">30-Day Access</th>
      <td>$49.95</td>
    </tr>
    <tr>
      <th scope="row">Workbook</th>
      <td>$20.00</td>
    </tr>
    <tr>
      <th scope="row">Discount</th>
      <td>-$4.00</td>
    </tr>
    <tr>
      <th scope="row">Sales Tax</th>
      <td>$2.00</td>
    </tr>
    <tr>
      <th scope="row">Data Management Fee</th>
      <td>$2.00</td>
    </tr>
  </tbody>
</table>

Styleguide 3.53
*/
.ordersummary {
  table-layout: fixed;
  width: 100%; }
  .ordersummary tbody th,
  .ordersummary tbody td {
    color: #696969;
    font-size: 14px;
    line-height: 22px; }
  .ordersummary td {
    text-align: right; }
  .ordersummary tfoot td,
  .ordersummary tfoot th {
    border-top: 1px solid rgba(0, 0, 0, 0.1);
    color: #000;
    font-size: 24px;
    padding-top: 18px; }
  .ordersummary tfoot td {
    font-weight: bold; }
  .ordersummary th {
    text-align: left; }

/*
Overlay

Markup:
<div class="overlay">
  <a>close</a>
  <h1>Change Email for Co-Parent</h1>
  <p>Enter a new email address to associate with this gift account. An invitation email will be sent to the user at the new email address.</p>
  <hr>
  <a class="button" href="#">Yes, Cancel Gift Invite</a>
</div>

Styleguide 3.48
*/
.overlay {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column; }
  .overlay:not(form) {
    margin-left: 18px;
    margin-right: 18px; }
  .overlay a:first-of-type {
    -ms-flex-item-align: end;
        align-self: flex-end;
    color: #28ade3;
    margin-bottom: 23.4px;
    margin-left: 0;
    margin-right: 0;
    text-decoration: none; }
  .overlay h1 {
    font-size: 18px;
    line-height: 22px; }
  .overlay hr {
    border-color: #ccc;
    border-style: solid;
    border-width: 1px;
    margin-bottom: 20px; }
  .overlay p {
    font-size: 12px;
    line-height: 14px; }

/*
Overlay (with a form element).

Markup:
<div class="overlay">
<a>close</a>
  <h1>Change Email for Co-Parent</h1>
  <p>Enter a new email address to associate with this gift account. An invitation email will be sent to the user at the new email address.</p>
  <hr>
  <form class="form form-inline">
    <div class="form-row ">
      <label for="id_name">New Email:</label>
      <div class="value">
        <input type="text" placeholder="eg. john@example.com" name="name" id="id_name">
        <p>This is helper text for this input.</p>
      </div>
    </div>
    <button type="submit" class="button button-width-full" href="#">Change Email and Send Invite Email</a>
  </form>
</div>

Styleguide 3.48.1
*/
/*
Page Title

Default - Standard page titles
.page-title-large - A larger version
.page-title-centered - When you want the text centered

Markup:
<header class="page-title {$modifiers}">
  <h1>Sign-up for CDE's Children in Between</h1>
  <h2><span>$39.95</span> for 30-days access</h2>
  <p>Sign-up is simple and takes just a few minutes.</p>
</header>

Styleguide 3.4
*/
.page-title {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  margin-bottom: 18px;
  padding: 36px 18px 18px;
  position: relative; }
  .page-title.page-title-flex {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end; }
  .page-title h1 {
    font-size: 30px;
    line-height: 1em; }
  .page-title h2 {
    color: #ccc;
    font-size: 24px;
    line-height: 1em;
    margin-top: 9px; }
    .page-title h2 span {
      color: #28ade3; }
  .page-title p {
    color: #696969;
    font-size: 18px;
    line-height: 1.2em;
    margin-top: 9px; }

.audio {
  color: #000;
  text-align: center;
  font-size: 14px; }
  .audio:hover {
    color: #000; }
  .audio .audio-x-icon {
    outline: none;
    display: inline-block; }
    .audio .audio-x-icon, .audio .audio-x-icon svg {
      height: 30px;
      width: 30px; }
    .audio .audio-x-icon .icon-unmute {
      display: none; }
  .audio.muted .icon-unmute {
    display: block; }
  .audio.muted .icon-mute {
    display: none; }
  .audio .audio-x-text {
    display: block;
    line-height: 14px; }

.page-title-margin-bottom-none {
  margin-bottom: 0; }

.page-title-margin-bottom {
  margin-bottom: 18px; }

.page-title-margin-top {
  margin-top: 18px; }

.page-title-padding-top-none {
  padding-top: 0; }

.page-title-small {
  border-bottom: 1px solid #ccc;
  padding: 0 0 18px; }
  .page-title-small h1 {
    font-size: 18px; }
  .page-title-small p {
    font-size: 14px; }

.page-title-small-x-left-padding {
  padding-left: 18px; }

@media (min-width: 950px) {
  .page-title-large {
    padding-top: 36px; } }

.page-title-large h1 {
  font-size: 36px; }
  @media (min-width: 950px) {
    .page-title-large h1 {
      font-size: 48px;
      margin-bottom: 18px; } }

.page-title-large h2 {
  font-size: 36px; }
  @media (min-width: 950px) {
    .page-title-large h2 {
      font-size: 30px; }
      .page-title-large h2 span {
        font-size: 48px; } }

.page-title-large p {
  font-size: 18px; }

/*
Page Title Course

For use above videos. TODO: This should be its own module.

Markup:
<header class="page-title page-title-course">
  <h1>Chapter 1: Carrying Messages</h1>
  <p class="audio muted" id="volume_control"><a href="#">Read Aloud</a></p>
</header>

Styleguide 3.4.1
*/
.page-title-course {
  border-bottom: 1px solid #ccc;
  padding-right: 58px;
  padding-top: 18px; }
  @media (min-width: 960px) {
    .page-title-course {
      padding: 36px 0 18px;
      margin-left: 18px;
      margin-right: 18px; } }
  .page-title-course h1 {
    font-size: 24px;
    line-height: 1.2em; }
    @media (min-width: 960px) {
      .page-title-course h1 {
        font-size: 30px;
        line-height: 1em; } }

/*
Page Title Controls

A version that has a button. TODO: This should be its own module.

Markup:
<header class="page-title page-title-controls">
  <section>
    <h1>Tiffany Prado</h1>
    <p>tifa.tifa@gmail.com</p>
  </section>
  <section>
    <a class="button" href="/manage/36/license/36/edit/3324/">Edit User</a>
  </section>
</header>

Styleguide 3.4.2
*/
.page-title-controls {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between; }
  @media (min-width: 960px) {
    .page-title-controls {
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
          -ms-flex-direction: row;
              flex-direction: row; } }
  .page-title-controls section {
    margin-bottom: 18px; }
    @media (min-width: 960px) {
      .page-title-controls section {
        margin-bottom: 0; } }

.page-title-centered {
  text-align: center; }

/*
Person

Markup:
<article class="person">
  <section class="image">
    <img src="/images/jamesbillings.jpg" alt="Dr. James Billings, LMFT" width="290">
  </section>
  <section class="text">
    <h2>Dr. James Billings, LMFT</h2>
    <h3>Short Introduction</h3>
    <p>Dr. Billings a licensed Marriage and Family Therapist (LMFT) in the state of California has specialized working with couples and families for the past ten years. He has developed and implemented a county wide divorce parenting programs using both the Children in Between and After the Storm programs, for the family courts in a large Southern California county.</p>
    <h3>Additional Information</h3>
    <p>Dr. Billings has both a Masters Degree and Ph.D. in Marriage and Family Therapy. He is dedicated to helping individual, couples, families create healthier and happier relationships. Dr. Billings is certified in a number of parenting, co-parenting, and marriage enhancement programs (PRICE Parenting, PREP, Couples Communication Inc., Children in Between, and After the Storm). Dr. Billings is also a co-author of the Leaders Guide for the After the Storm program. He developed a divorce parenting program by combining the Children in Between and After the Storm which was presented across a larger county in Southern California. Dr. Billings’s clinical interests are in parenting, divorce parenting, and grief and loss with children. Dr. Billings currently works as a Clinical Director of a non-profit counseling agency that specializes in working with families in distress. He also works part time as an Assistant Professor for a graduate program training Masters and Ph.D. level students for a career in Marriage and Family Therapy.</p>
    <h3>Contact Information:</h3>
    <p>If you are interested in consulting with Dr. Billings please contact him by email at Billingsconsulting@verizon.net with a brief description of your situation and specific questions or concerns that you have. When e-mailing, please include your name, telephone number, and the best time that you may be reached. His consultation fees are $25 for 20 minutes, $35 for 30 minutes and $50 for 45 minutes. Payments from bank accounts, credit or debit cards may be made through the secured site of Paypal (https://www.paypal.com)</p>
  </section>
</article>

Styleguide 3.15
*/
.person {
  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: 650px) {
    .person {
      border-bottom: 1px solid #F2F2F2;
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
          -ms-flex-direction: row;
              flex-direction: row;
      margin-bottom: 18px; }
      .person:last-child {
        border-bottom: 0;
        margin-bottom: 0; } }
  .person img {
    display: block;
    height: auto;
    width: 100%; }
  .person .image {
    margin-bottom: 18px; }
    @media (min-width: 650px) {
      .person .image {
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
        margin-right: 18px; } }
  @media (min-width: 650px) {
    .person .text {
      -webkit-box-flex: 4;
          -ms-flex: 4;
              flex: 4; } }

/*
Progress Bar

Markup:
<ul class="progressbar">
  <sg-insert>3.31-2</sg-insert>
  <sg-insert>3.31-2</sg-insert>
  <sg-insert>3.31-1</sg-insert>
  <sg-insert>3.31-1</sg-insert>
</ul>

Styleguide 3.30
*/
.progressbar {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  padding-top: 22px;
  position: relative; }
  .progressbar::after {
    background-color: #F2F2F2;
    border-radius: 13px;
    content: '';
    display: block;
    height: 13px;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: 10; }
  .progressbar li {
    list-style: none; }

/*
Progress Bar Item

The SC5 demo doesn't quite work here, as first-child comes into play. See 3.30 instead.

Default - Default state
.progressbaritem-is-active - When it's been active/complete

Markup:
<li class="progressbaritem {$modifiers}" style="width:25%">Step</li>

Styleguide 3.31
*/
.progressbaritem {
  color: #696969;
  position: relative;
  z-index: 50; }
  .progressbaritem::after {
    background-color: #F2F2F2;
    border-radius: 20px;
    content: '';
    display: block;
    height: 20px;
    left: -3px;
    position: absolute;
    top: -25.5px;
    width: 20px; }
  .progressbaritem.progressbaritem-is-active::after {
    background-color: #28ade3; }
  .progressbaritem.progressbaritem-is-active:not(:first-child)::before {
    background-color: #28ade3;
    content: '';
    display: block;
    height: 13px;
    position: absolute;
    right: 100%;
    top: -22px;
    width: 100%; }

/*
Quiz

Markup:
<div class="quiz guided-question">
    <h2>Question 1 of 11</h2>
    <h1>Why does conflict over money easily occur after divorce or separation?</h1>
    <form action="#">
        <ol class="answer-list" id="quiz"><li>
    <label for="0">
        <input id="0" type="radio" name="quiz">
        <p>Money usually becomes tighter for both parents.</p>
        <div class="fake-radio"></div>
    </label>
</li><li>
    <label for="1">
        <input id="1" type="radio" name="quiz">
        <p>Many parents who pay support resent having no say in how the money is spent.</p>
        <div class="fake-radio"></div>
    </label>
</li><li>
    <label for="2">
        <input id="2" type="radio" name="quiz">
        <p>The person receiving support often truly believes it is not enough to cover expenses.</p>
        <div class="fake-radio"></div>
    </label>
</li><li>
    <label for="3">
        <input id="3" type="radio" name="quiz">
        <p>The person paying support truly believes they are paying too much, especially if they have other financial obligations.</p>
        <div class="fake-radio selected"></div>
    </label>
</li><li>
    <label for="4">
        <input id="4" type="radio" name="quiz">
        <p>All of the above.</p>
        <div class="fake-radio"></div>
    </label>
</li></ol>
        <section class="controls">
            <div class="feedback" id="check_answer"><h2 class="incorrect">Incorrect.</h2><p>This is true, but they are just looking at it from their own point of view. Other answers are also correct.</p></div>
            <input type="submit" id="submit" class="button next" value="Next">
        </section>
    </form>
    <div class="score" id="correct_incorrect"><p>Correct: 0 / Incorrect: 1</p></div>
</div>

Styleguide 3.16
*/
.quiz form {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column; }

.quiz .controls {
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  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: 960px) {
    .quiz .controls {
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
          -ms-flex-direction: row;
              flex-direction: row;
      -webkit-box-pack: justify;
          -ms-flex-pack: justify;
              justify-content: space-between; } }

.quiz .feedback h2 {
  font-weight: bold;
  font-size: 24px;
  line-height: 1em;
  margin-bottom: 0; }
  .quiz .feedback h2.incorrect {
    color: #e75345; }
  .quiz .feedback h2.correct {
    color: #9aba38; }

.quiz .feedback p {
  margin-bottom: 0; }

.quiz .answer-list {
  font-size: 14px;
  margin-left: 45px; }
  @media (min-width: 960px) {
    .quiz .answer-list {
      font-size: 24px; } }
  .quiz .answer-list li {
    list-style: upper-alpha inside;
    margin-bottom: 9px;
    min-height: 32px;
    padding-top: .25em;
    position: relative; }
    @media (min-width: 960px) {
      .quiz .answer-list li {
        padding-top: 0; } }
    .quiz .answer-list li [type="checkbox"], .quiz .answer-list li [type="radio"] {
      left: -9999px;
      position: absolute; }
    .quiz .answer-list li label {
      cursor: pointer; }
    .quiz .answer-list li p {
      font-size: 14px;
      margin-bottom: 0; }
      @media (min-width: 960px) {
        .quiz .answer-list li p {
          font-size: 24px; } }
    .quiz .answer-list li .fake-radio {
      background: url("images/quiz-unselected.png") center center no-repeat;
      background-size: contain;
      width: 30px;
      height: 32px;
      display: block;
      position: absolute;
      top: 0;
      left: -45px; }
      @media (min-width: 960px) {
        .quiz .answer-list li .fake-radio {
          top: 3px; } }
      .quiz .answer-list li .fake-radio.selected {
        background: url("images/quiz-selected.png") center center no-repeat; }

.quiz .button {
  font-size: 18px;
  margin-right: 0;
  margin-bottom: 0; }
  .quiz .button#submit {
    background-color: #28ade3; }
  .quiz .button.next {
    -ms-flex-item-align: end;
        align-self: flex-end; }
  .quiz .button:hover {
    background: #198fbf; }

.quiz .score {
  border-top: 1px solid #cccccc;
  margin-top: 18px;
  padding: 18px 0; }
  .quiz .score p {
    font-size: 14px; }
    @media (min-width: 960px) {
      .quiz .score p {
        font-size: 18px;
        text-align: right; } }

/*
Receipt

Markup:
<section class="receipt">
  <div>
    <h1>Account Information</h1>
    <p><span>Username: jaasum</p>
    <p><span>Expiration Date:</span> 12/12/18.</p>
  </div>
  <a class="receipt-x-print" href="javascript:if(window.print)window.print()">Print this page for your records</a>
  <a class="button" href="#">Go to course</a>
</section>

Styleguide 3.32
*/
.receipt {
  margin-bottom: 18px;
  padding: 0 18px 18px; }
  .receipt div {
    background: #F2F2F2;
    margin-bottom: 18px;
    padding: 18px; }
    .receipt div h1 {
      line-height: 1.2;
      margin-bottom: 4.5px; }
    .receipt div p {
      color: #28ade3;
      font-size: 18px;
      font-weight: normal;
      margin-bottom: 9px; }
    .receipt div a {
      font-weight: normal; }
    .receipt div span {
      color: #696969; }
  .receipt > a {
    display: block;
    font-size: 18px;
    font-weight: normal;
    text-align: center; }
  .receipt .receipt-x-print {
    margin-bottom: 18px; }

/*
Requirements List

Markup:
<section id="requirements_list" class="requirements-list">
  <section class="controls">
    <button id="requirements-toggle" class="toggle">Toggle Requirements</button>
    <div class="timer">
      <div style="" class="timer-content">
        <section>
          <h1 id="timer_title">Timer Requirement</h1>
          <p class="tooltip"><a href="#whats-this-modal">What's this?</a></p>
        </section>
        <p id="requirements-timer" class="timer-value">2:46</p>
      </div>
    </div>
  </section>
  <ul id="requirements-categories" class="categories">
    <li>
      <h3>Introduction</h3>
      <ul id="introduction-requirements">
        <li class="complete"><a class="state-notifications" href="#">State Notifications</a></li>
        <li class="complete"><a class="intro-video" href="/peterson/">Introductory Video</a></li>
        <li class="state-county-reqs in-progress"><a class="state-county-reqs" href="#">State/County Requirements</a></li>
      </ul>
    </li>
    <li>
      <h3>Course Content</h3>
      <ul id="course-content-requirements">
        <li class="in-progress"><a href="#" class="chapter_view" data-chapterid="3">01: Carrying Messages</a></li>
        <li class="in-progress"><a href="#" class="chapter_view" data-chapterid="4">02: Put Downs</a></li>
        <li class=""><a href="#" class="chapter_view" data-chapterid="5">03: Money Problems</a></li>
        <li class=""><a href="#" class="chapter_view" data-chapterid="6">04: Questioning</a></li>
        <li class=""><a href="#" class="chapter_view" data-chapterid="7">05: Long Distance Parenting</a></li>
        <li class="unavailable "><a href="#" class="chapter_view" data-chapterid="9">06: Conclusion</a></li>
      </ul>
    </li>
  </ul>
</section>

Styleguide 3.17
*/
section.requirements-list {
  background: #155a76;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  color: #fff;
  margin-top: -54px;
  position: fixed;
  top: 100%;
  -webkit-transition: top .5s ease-out;
  transition: top .5s ease-out;
  z-index: 101;
  width: 100%; }
  @media (min-width: 950px) {
    section.requirements-list {
      bottom: auto;
      -ms-flex-preferred-size: 340px;
          flex-basis: 340px;
      height: auto;
      left: auto;
      margin-top: 0;
      position: relative;
      width: auto;
      z-index: 0; } }
  section.requirements-list .toggle {
    background: url("images/requirements-list-toggle.svg") no-repeat 27px 13.5px;
    border: 0;
    border-right: 1px solid #fff;
    display: block;
    height: 54px;
    outline: none;
    padding: 0 18px 0 45px;
    position: relative;
    text-indent: -9999px;
    width: 23px; }
    @media (min-width: 950px) {
      section.requirements-list .toggle {
        display: none; } }
    section.requirements-list .toggle:before {
      background: url("images/requirements-list-toggle-arrow.svg") center center no-repeat;
      background-size: contain;
      content: '';
      display: block;
      height: 7px;
      left: 9px;
      margin-top: -3.5px;
      position: absolute;
      top: 50%;
      width: 10px; }
  section.requirements-list .categories {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    height: 100%;
    list-style: none;
    overflow-y: auto;
    padding: 54px 0 18px; }
    @media (min-width: 950px) {
      section.requirements-list .categories {
        height: auto;
        overflow-y: auto; } }
    section.requirements-list .categories h3 {
      font-weight: bold;
      margin-bottom: 9px; }
    section.requirements-list .categories .instructor_section_view.active {
      color: #28ade3; }
    section.requirements-list .categories > li {
      margin: 36px 0 18px 36px; }
      section.requirements-list .categories > li.current h3 a {
        color: #28ade3; }
      section.requirements-list .categories > li.current ul li.current a {
        color: #28ade3;
        font-weight: bold; }
      section.requirements-list .categories > li ul.default-content > li a {
        background: url("images/requirements-list-not-attempted.png") right center no-repeat; }
      section.requirements-list .categories > li ul.default-content > li.failed a {
        background: url("images/requirements-list-not-failed.png") right center no-repeat; }
      section.requirements-list .categories > li ul.default-content > li.in-progress a {
        background: url("images/requirements-list-inprogress.png") right center no-repeat; }
      section.requirements-list .categories > li ul.default-content > li.complete a {
        background: url("images/requirements-list-complete.png") right center no-repeat; }
      section.requirements-list .categories > li ul.default-content > li.unavailable a {
        opacity: .5;
        pointer-events: none;
        cursor: default; }
      section.requirements-list .categories > li ul.instructor-content > li > a {
        background: url("images/instructor-content-expand.png") right center no-repeat; }
      section.requirements-list .categories > li ul.instructor-content > li.expanded > a {
        background: url("images/instructor-content-collapse.png") right center no-repeat; }
      section.requirements-list .categories > li ul.instructor-content ul.instructor-submenu {
        margin: 0; }
        section.requirements-list .categories > li ul.instructor-content ul.instructor-submenu li {
          display: none;
          border-top: 1px solid rgba(255, 255, 255, 0.1);
          border-bottom: none; }
          section.requirements-list .categories > li ul.instructor-content ul.instructor-submenu li a {
            padding: 5px 20px; }
      section.requirements-list .categories > li ul.instructor-content .expanded ul.instructor-submenu li {
        display: block; }
      section.requirements-list .categories > li ul {
        margin-left: 0;
        padding: 0;
        margin: 0 0 18px; }
        section.requirements-list .categories > li ul li {
          border-bottom: 1px solid rgba(255, 255, 255, 0.1); }
          section.requirements-list .categories > li ul li a {
            font-weight: normal;
            padding: .5em 0;
            margin-right: 1em;
            padding-right: 36px;
            display: block;
            text-overflow: ellipsis; }
      section.requirements-list .categories > li a {
        color: #fff; }
  section.requirements-list .controls {
    background: #013850;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    height: 54px;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: 50; }
  section.requirements-list .timer {
    width: 100%; }
  section.requirements-list .timer-content {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    height: 54px;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    padding: 0 18px; }
    section.requirements-list .timer-content h1 {
      font-size: 14px; }
    section.requirements-list .timer-content .timer-value {
      font-size: 36px;
      font-weight: bold;
      line-height: 1em; }
    section.requirements-list .timer-content p.tooltip {
      color: #28ade3;
      line-height: 1em;
      position: relative; }
      section.requirements-list .timer-content p.tooltip span {
        background: #28ade3;
        bottom: 10px;
        border-radius: 5px;
        color: #fff;
        display: block;
        font-weight: normal;
        font-size: 14px;
        left: -9999px;
        line-height: 1.5em;
        padding: 9px;
        position: absolute;
        white-space: normal;
        width: 1 54px;
        z-index: 1000; }
      section.requirements-list .timer-content p.tooltip:hover span {
        bottom: 105%;
        left: 50%;
        margin-left: -75px; }
    section.requirements-list .timer-content.ticktock h2 {
      background: #28ade3;
      width: 80%;
      color: #fff;
      padding: 3px 1em; }
    section.requirements-list .timer-content.ticktock h1 {
      color: #28ade3; }
  section.requirements-list.done h2 {
    background: #9aba38;
    width: 80%;
    color: #fff;
    padding: 3px 1em; }
  section.requirements-list.done h1 {
    color: #9aba38; }
  section.requirements-list.is-expanded {
    bottom: auto;
    height: 100%;
    margin-top: 0;
    top: 0;
    width: 100%; }
    section.requirements-list.is-expanded .toggle:before {
      -webkit-animation: turn-in .5s ease-out forwards;
              animation: turn-in .5s ease-out forwards; }
  section.requirements-list.is-collapsed .toggle:before {
    -webkit-animation: turn-out .5s ease-out forwards;
            animation: turn-out .5s ease-out forwards; }

/*
Resources

Markup:
<div class="resources-container l-containerhorizontal">
  <header class="page-title page-title-course">
    <h1>Resources</h1>
  </header>
  <div class="resources-l-course">
    <nav class="navigation navigation-page glossary-navigation" id="glossary-navigation">
      <header>
        <h2 class="navigation-title">Glossary Menu</h2>
        <button class="menu-toggle is-inactive" id="menu-toggle"><span class="visually-hidden"> Menu</span></button>
      </header>
      <ul class="menu menu-page is-inactive">
        <li class="menu-item menu-item-page" onclick="show_glossary('Active Listening', '/media/audio/ACTIVE_LISTENING_1.mp3');"><span>Active Listening</span></li>
        <li class="menu-item menu-item-page" onclick="show_glossary('Empathy', '/media/audio/EMPATHY_1.mp3');"><span>Empathy</span></li>
        <li class="menu-item menu-item-page" onclick="show_glossary('I Message', '/media/audio/I_MESSAGES_1.mp3');"><span>I Message</span></li>
        <li class="menu-item menu-item-page" onclick="show_glossary('Impulse Control', '/media/audio/IMPULSE_CONTROL_1_1.mp3');"><span>Impulse Control</span></li>
        <li class="menu-item menu-item-page" onclick="show_glossary('Polite Request', '/media/audio/POLITE_REQUEST_1.mp3');"><span>Polite Request</span></li>
      </ul>
    </nav>
    <section class="resources-content">
      <article class="glossary-definition text-container" style="" term="Active Listening" id="glossary-term-active-listening">
        <h1>Active Listening</h1>
        <p>When we actively listen to someone, we are making a real effort to hear and understand what they are saying.  We are not thinking about our own reaction to what is being said; instead we are listening deeply and with all of our attention. The next step is to let the other person know you have been listening by doing one of three things:<br>
          1) rewording or paraphrasing what they have said and repeating it back to them;<br>
          2) stating the meaning of what they said;<br>
          3) guessing at and stating the underlying feeling of what they said.<br>
          <br>
          Examples of each of these three levels of active listening follow:<br>
          <br>
          1) Rewording  Speaker:  I can’t believe how long it took me to get here. The traffic was pretty bad. Listener:  The traffic was bad and it took you longer than you thought to get here.<br>
          <br>
          2) Meaning  Listener:  You were surprised the trip took so long due to traffic delays.<br>
          <br>
          3) Feeling  Listener:  You sound frustrated that you got here later than you
          expected.<br>
          <br>
          Active listening shows respect for the speaker and encourages more open and pleasant communication. Parents need to use this skill with their children and each other.</p>
      </article>
    </section>
  </div>
</div>

Styleguide 3.18
*/
.resources-container {
  margin-bottom: 18px; }
  .resources-container .page-title {
    margin-bottom: 0; }

@media (min-width: 950px) {
  .resources-l-course {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    padding: 0 18px; }
    .resources-l-course .resources-navigation {
      -ms-flex-preferred-size: 25%;
          flex-basis: 25%; } }

.resources-content {
  padding-top: 18px; }
  @media (min-width: 950px) {
    .resources-content {
      -ms-flex-preferred-size: 75%;
          flex-basis: 75%; } }

/*
Rule

Markup:
<hr class="rule">

Styleguide 3.56
*/
.rule {
  border: 0;
  border-top: 1px solid #F2F2F2;
  margin: 0;
  padding: 0; }

/*
Score

Markup:
<div id="quiz_score">
  <h2>Quiz Results</h2>
  <h3>Your score on the Questioning quiz was:</h3>
  <h1>38%</h1>
  <h3 id="passing_header">Unfortunately, you need at least 70% to pass. Please review the Chapter and attempt the Quiz again.</h3>
  <a class="button" id="repeat_chapter" href="">Try Questioning Again</a>
  <p>or <a id="return_to_dashboard" href="">Return to Gallery</a></p>
</div>

Styleguide 3.20
*/
#quiz_score {
  background: #fff;
  border: 1px solid #cccccc;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  margin: 18px;
  overflow: hidden;
  padding: 36px 18px;
  text-align: center;
  width: auto; }
  @media (min-width: 960px) {
    #quiz_score {
      margin: 36px auto;
      padding: 36px 72px; } }
  #quiz_score h1, #quiz_score h3, #quiz_score .button {
    margin-bottom: 9px; }
  #quiz_score h1 {
    font-size: 64px;
    line-height: 1em; }
    @media (min-width: 960px) {
      #quiz_score h1 {
        font-size: 120px; } }
  #quiz_score h2 {
    font-size: 18px;
    margin-bottom: 0; }
    @media (min-width: 960px) {
      #quiz_score h2 {
        font-size: 24px; } }
  #quiz_score h3 {
    font-size: 14px;
    line-height: 1.5em; }
    @media (min-width: 960px) {
      #quiz_score h3 {
        color: #555555;
        font-size: 18px; } }
  #quiz_score .button {
    width: 100%; }
  #quiz_score div.skills-practice {
    width: 100%;
    float: none;
    padding: 18px 0 0 0;
    border-top: 1px solid #F2F2F2; }
    #quiz_score div.skills-practice ul {
      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: 960px) {
        #quiz_score div.skills-practice ul {
          -webkit-box-orient: horizontal;
          -webkit-box-direction: normal;
              -ms-flex-direction: row;
                  flex-direction: row; } }
      #quiz_score div.skills-practice ul li {
        float: left;
        text-align: left;
        -webkit-box-flex: 1;
            -ms-flex: 1 0 auto;
                flex: 1 0 auto; }
        @media (min-width: 960px) {
          #quiz_score div.skills-practice ul li {
            -webkit-box-flex: 1;
                -ms-flex: 1 1 50%;
                    flex: 1 1 50%; } }
        @media (min-width: 960px) {
          #quiz_score div.skills-practice ul li:nth-child(odd) {
            margin-right: 18px; } }
        #quiz_score div.skills-practice ul li a {
          padding-bottom: .5em; }

/*
Skills Practice

Markup:
<div class="skills-practice " style="">
  <header class="page-title">
    <h1>Skills Practice</h1>
    <p> </p>
  </header>
  <ul>
    <li class="completed" id="skillpractice-1">
      <a class="skillpractice_view" href="#">Active Listening</a>
      <p><a class="skillpractice" href="#"></a></p>
    </li>
    <li class="completed" id="skillpractice-2">
      <a class="skillpractice_view" href="#">I Messages</a>
      <p><a class="skillpractice" href="#"></a></p>
    </li>
    <li class="completed" id="skillpractice-3">
      <a class="skillpractice_view" href="#">Self-Talk</a>
      <p><a class="skillpractice" href="#"></a></p>
    </li>
    <li class="" id="skillpractice-4">
      <a class="skillpractice_view" href="#">Reframing</a>
      <p><a class="skillpractice" href="#"></a></p>
    </li>
  </ul>
</div>

Styleguide 3.21
*/
/*
Skills Practice Resource

Markup:
<div class="quiz_question quiz_question_resource">
  <div class="text">
    <div class="image">
      <img src="/images/download.svg" width="26" height="49">
    </div>
    <div class="description">
      <p class="file_name">Mindfulness_Meditation.mp3</p>
      <p>Meditation MP3 Download</p>
    </div>
  </div>
  <div class="action">
    <a class="button" href="/media/skillpractice/attachment/Mindfulness_Meditation.mp3">Download</a>
  </div>
</div>

Styleguide 3.21.1
*/
/*
Skills Practice Question

Markup:
<section class="quiz_question" id="question_2">
  <ul class="quiz">
    <li>
      <p class="question">Shandra has been putting off doing her homework until late at night when she is tired. She gets poor grades. When Mom asks her to start her homework earlier, Shandra angrily says to get off her case.  Mom says:  </p>
    </li>
    <li class="clearfix">
      <span id="answer_6" class="correct">Correct</span>
      <label for="answer_6">a) You don’t like it when I am the homework reminder machine.</label>
    </li>
    <li class="clearfix">
      <span id="answer_7" class="incorrect">Incorrect</span>
      <label for="answer_7">b) Homework is not a punishment. No one likes to do it, but we all had to. </label>
    </li>
    <li class="clearfix">
      <span class="incorrect">Incorrect answer</span>
      <label for="answer_8">c)  You would be less frustrated if you started earlier.</label>
    </li>
    <li class="clearfix">
      <input type="radio" name="question_9" id="answer_9" value="9">
      <label for="answer_9">d) I'm sorry, I should not have pressured you.</label>
    </li>
  </ul>
  <div id="check_answer" class="clearfix">
    <button class="button red">Check Answer</button>
  </div>
  <p class="feedback"><span class="incorrect">Incorrect:</span> Mom gives advice instead of reflecting.</p>
</section>

Styleguide 3.21.2
*/
.skills-practice ul {
  margin: 0 18px; }
  .skills-practice ul li {
    margin: 0 0 18px;
    background: whitesmoke url("images/skillspractice-incomplete.png") 7px 7px no-repeat; }
    .skills-practice ul li:hover {
      background-color: #ededed; }
    .skills-practice ul li.completed {
      background: rgba(154, 186, 56, 0.2) url("images/skillspractice-complete.png") 7px 7px no-repeat; }
    .skills-practice ul li p {
      padding: 0 2em .5em 3.5em; }
      .skills-practice ul li p a {
        font-size: 14px;
        color: #000;
        padding: 0; }
    .skills-practice ul li a {
      cursor: pointer;
      padding: .5em 1em 0em 2.5em;
      display: block;
      font-size: 18px; }

.quiz_question {
  background: #fff;
  border-radius: 5px;
  border: 1px solid #F2F2F2;
  margin: 18px;
  padding: 18px; }
  .quiz_question .feedback {
    margin-top: 18px; }
  .quiz_question ul.quiz li {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    margin-bottom: 18px;
    margin-bottom: 25px; }
    .quiz_question ul.quiz li:first-child {
      margin-bottom: 0; }
    .quiz_question ul.quiz li h3 {
      margin-bottom: 25px; }
  .quiz_question ul.quiz [type=radio] {
    display: block;
    -webkit-box-flex: 0;
        -ms-flex: 0 0 25px;
            flex: 0 0 25px;
    margin: 9px 9px 0 0;
    cursor: pointer; }
  .quiz_question ul.quiz label {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    line-height: 1.62em;
    display: block;
    font-size: 18px; }
  .quiz_question ul.quiz span {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 25px;
            flex: 0 0 25px;
    margin: 4.5px 9px 0 0; }
    .quiz_question ul.quiz span.correct {
      background: url("images/skillspractice-correct.png") no-repeat;
      width: 25px;
      height: 18px;
      display: inline-block;
      text-indent: -9999px; }
    .quiz_question ul.quiz span.incorrect {
      background: url("images/skillspractice-incorrect.png") no-repeat;
      width: 19px;
      height: 19px;
      text-indent: -9999px; }
  .quiz_question span.incorrect {
    font-weight: bold;
    color: #b20000; }
  .quiz_question span.correct {
    font-weight: bold;
    color: #2d5f00; }
  .quiz_question .question {
    font-size: 18px;
    line-height: 1.2;
    color: #26111a;
    font-weight: bold;
    padding-bottom: 20px; }
  .quiz_question #check_answer {
    padding-top: 18px;
    border-top: 1px solid #F2F2F2; }
    .quiz_question #check_answer .button {
      width: 100%; }
      @media (min-width: 960px) {
        .quiz_question #check_answer .button {
          padding: 9px 18px;
          width: auto; } }

@media (min-width: 400px) {
  .quiz_question_resource {
    display: inline-block; } }

.quiz_question_resource .text {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }

.quiz_question_resource .image {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
  margin-right: 18px; }

.quiz_question_resource .description {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto; }

.quiz_question_resource .file_name {
  font-weight: bold; }

.quiz_question_resource .action {
  border-top: 1px solid #F2F2F2;
  margin-top: 9px;
  padding-top: 18px;
  padding-left: 36px;
  padding-right: 36px; }

.quiz_question_resource .button {
  width: 100%;
  padding-bottom: 9px;
  padding-top: 9px; }

.next_skill {
  display: block;
  margin: 0 auto 18px; }

/*
State Requirements

Markup:
<section class="state-requirements-module">
  <ul>
    <li class="complete">
      <h3>MN Child Custody &amp; Parenting Time (Visitation)</h3>
      <p></p>
      <ul>
        <li class="complete">
          <h4>Read:  Basics on Child Custody &amp; Parenting Time (Visitation)</h4>
          <p>Here you will learn more about (1) Types of Custody in Minnesota; (2) What is "parenting time?"; (3) Going to Court without a lawyer; (4) Fees and Costs; and much more!</p>
          <a href="http://www.mncourts.gov/selfhelp/?page=1810" id="17" target="_blank" class="button">View Resource</a>
        </li>
        <li class="complete">
          <h4>Read:  A Parental Guide to Making Child-Focused Parenting Time Decisions</h4>
          <p>Prepared by the MN Supreme Court Task Force -- provides additional information on age appropriate considerations based on the developmental stages of your child.  </p>
          <a href="http://online.divorce-education.com/media/cms/pdf/Parenting%20%20Time%20Pamphlet%20(MN%20AOC)%20English.pdf" id="19" target="_blank" class="button">View Resource</a>
        </li>
      </ul>
    </li>
    <li class="incomplete">
      <h3>Child Support In Minnesota</h3>
      <p></p>
      <ul>
        <li class="incomplete">
          <h4>Read:  Child Support Basics in Minnesota</h4>
          <p>This booklet provides basic information about how child support is set, collected and changed. It has information on Minnesota’s child support guidelines called “Income Shares.” </p>
          <a href="http://online.divorce-education.com/media/cms/pdf/MN%20Legal%20Aid%20Booklet%20-%20Child%20Support%20Basics%20(rivsed%207th%20edition%2C%202012)%20ENGLISH.pdf" id="26" target="_blank" class="button">View Link and Complete Requirement</a>
        </li>
        <li class="incomplete">
          <h4>Read: Understanding Child Support in Minnesota</h4>
          <p>This handbook gives general information about Minnesota’s child support program. Because parentage and child support are important issues, you may wish to contact an attorney. The Minnesota Department of Human Services (DHS) Child Support Enforcement Division and county child support agencies can help you if you apply for or are referred for child support services, but they cannot give you legal advice about your case.</p>
          <a href="http://online.divorce-education.com/media/cms/pdf/MN%20DHS%20-%20Understanding%20Child%20Support%20(ENGLISH)%202011.pdf" id="28" target="_blank" class="button">View Link and Complete Requirement</a>
        </li>
      </ul>
    </li>
  </ul>
</section>

Styleguide 3.22
*/
.state-requirements-module {
  -webkit-box-sizing: border-box;
          box-sizing: border-box; }
  .state-requirements-module .button {
    display: inline-block;
    padding: 9px 18px; }
  .state-requirements-module h3,
  .state-requirements-module h4 {
    background-repeat: no-repeat;
    line-height: 1.2em;
    min-height: 25px;
    padding-left: 36px; }
  .state-requirements-module h3 {
    background-position: 18px 0;
    margin-bottom: 9px;
    padding: 0 18px 0 54px; }
  .state-requirements-module h4 {
    font-weight: bold;
    margin-bottom: 9px;
    padding-left: 36px;
    padding-top: 3px; }
  .state-requirements-module p {
    margin-bottom: 9px;
    overflow: hidden; }
  .state-requirements-module ul > li {
    margin-bottom: 18px; }
    @media (min-width: 960px) {
      .state-requirements-module ul > li {
        border-top: 1px solid #ccc;
        padding-top: 18px; }
        .state-requirements-module ul > li:first-of-type {
          border-top: 0;
          padding-top: 0; } }
    .state-requirements-module ul > li p {
      margin-left: 18px; }
  .state-requirements-module ul ul {
    border-top: 1px solid #ccc;
    margin-top: 18px; }
    @media (min-width: 960px) {
      .state-requirements-module ul ul {
        border-top: 0;
        margin-left: 36px; } }
  .state-requirements-module li li {
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    margin-bottom: 36px;
    padding-left: 18px;
    padding-right: 18px; }
    @media (min-width: 960px) {
      .state-requirements-module li li {
        display: block; } }
    .state-requirements-module li li p,
    .state-requirements-module li li .button {
      margin-left: 36px; }
    .state-requirements-module li li:first-child {
      margin-top: 36px; }
  .state-requirements-module .requirements-list {
    padding-left: 18px; }
  .state-requirements-module .incomplete > h3,
  .state-requirements-module .incomplete > h4 {
    background-image: url("images/check-incomplete.png"); }
  .state-requirements-module .complete > h3,
  .state-requirements-module .complete > h4 {
    background-image: url("images/check-complete.png"); }

/*
Text Container

Markup:
<article class="text-container l-containerhorizontal l-containerhorizontal-small">
  <h1>HTML Ipsum Presents</h1>
  <p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. <em>Aenean ultricies mi vitae est.</em> Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, <code>commodo vitae</code>, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. <a href="#">Donec non enim</a> in turpis pulvinar facilisis. Ut felis.</p>
  <h2>Header Level 2</h2>
  <ol>
    <li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
    <li>Aliquam tincidunt mauris eu risus.</li>
  </ol>
  <blockquote><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida. Curabitur massa. Donec eleifend, libero at sagittis mollis, tellus est malesuada tellus, at luctus turpis elit sit amet quam. Vivamus pretium ornare est.</p></blockquote>
  <h3>Header Level 3</h3>
  <ul>
    <li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
    <li>Aliquam tincidunt mauris eu risus.</li>
  </ul>
  <pre><code>
    #header h1 a {
    display: block;
    width: 300px;
    height: 80px;
    }
  </code></pre>
</article>

Styleguide 3.23
*/
.text-container {
  padding-left: 18px;
  padding-right: 18px; }
  .text-container h1,
  .text-container h2,
  .text-container h3,
  .text-container h4,
  .text-container h5,
  .text-container h6 {
    line-height: 1.2; }
  .text-container h1,
  .text-container h2,
  .text-container h3,
  .text-container h4,
  .text-container h5,
  .text-container h6,
  .text-container p,
  .text-container ol,
  .text-container ul,
  .text-container blockquote,
  .text-container figure,
  .text-container address {
    margin-bottom: 18px; }
  .text-container li {
    margin-bottom: 9px; }
  .text-container ul li {
    list-style: disc inside; }
  .text-container ol li {
    list-style: decimal inside; }
  .text-container strong {
    font-weight: bold; }
  .text-container em {
    font-style: italic; }

.text-container-padding-none {
  padding-left: 0;
  padding-right: 0; }

/*
text-body-color

Markup:
<div class="tex-body-color">
Body text.
</div>

Styleguide 3.50
*/
.text-body-color {
  color: #696969; }

.video {
  padding: 0 18px;
  margin: 0 0 18px; }
  @media (min-width: 960px) {
    .video {
      margin-bottom: 36px; } }

/*
visuallyhidden

Visualy hides an object

Markup:
  <div>The div bellow me is invisible</div>
  <div class="visuallyhidden">I'm invisible</div>


Styleguide 3.54
*/
.visuallyhidden {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px; }

/*
Utility: Text

Markup:
<p class="u-text-small">Small</small>

Styleguide 3.58
*/
.u-text-small {
  font-size: 12px; }

/*
Unregistered Gift

Markup:
  <div class="page-title unregisteredGift">
      <div>
          <h1>tifa.tifa@gmail.com</h1>
          <a>Change Email</a>
          <p class="unregisteredGift-x-giftAccount">Gift Account</p>
          <p class="unregisteredGift-x-purchase">Purchased 06/12/2016 by parent@example.com</p>
          <p class="unregisteredGift-x-notActivated">Not Activated</p>
      </div>
      <div class="unregisteredGift-x-stackedButton">
          <a class="button" href="#">Resend Invite</a>
          <a class="button" href="#">Cancel Gift Invite</a>
      </div>
  </div>

Styleguide 3.47
*/
.unregisteredGift {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between; }
  .unregisteredGift h1 {
    font-size: 36px;
    line-height: 38px; }
  .unregisteredGift a {
    margin-bottom: 18px;
    display: block; }
  @media (min-width: 960px) {
    .unregisteredGift {
      -webkit-box-align: start;
          -ms-flex-align: start;
              align-items: flex-start;
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
          -ms-flex-direction: row;
              flex-direction: row; } }
  .unregisteredGift section {
    margin-bottom: 18px; }
    @media (min-width: 960px) {
      .unregisteredGift section {
        margin-bottom: 0; } }
  .unregisteredGift p.unregisteredGift-x-purchase,
  .unregisteredGift p.unregisteredGift-x-giftAccount {
    font-size: 18px;
    margin-top: 0;
    margin-bottom: 0; }
  .unregisteredGift p.unregisteredGift-x-notActivated {
    margin-top: 18px; }
  .unregisteredGift .unregisteredGift-x-stackedButton {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column; }
    .unregisteredGift .unregisteredGift-x-stackedButton a:first-of-type {
      margin-bottom: 18px; }

/*
Upsell

Markup:
<article class="upsell">
  <div class="upsell-x-image">
    <img src="http://placehold.it/128x96">
  </div>
  <div class="upsell-x-text">
    <h3><a href="#">Upsell Title</a></h3>
    <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s.</p>
  </div>
</article>

Styleguide 3.59
*/
.upsell h3 {
  font-size: 18px; }

.upsell p {
  font-size: 12px; }

@media (min-width: 400px) {
  .upsell {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; }
    .upsell .upsell-x-image {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 auto;
              flex: 0 0 auto;
      margin-right: 18px; }
    .upsell .upsell-x-text {
      -webkit-box-flex: 1;
          -ms-flex: 1 1 100%;
              flex: 1 1 100%; } }

/*
Wrap

Wrap is used to set the background / text color of an item.

Default - White background
.wrap-branddark - Dark brand color
.wrap-lightgrey - A light grey background
.wrap-course - Wraps the course content (videos, quizes, etc)

Markup:
<div class="wrap {$modifiers}">I am wrapped</div>

Styleguide 3.33
*/
.wrap {
  background-color: #fff; }

.wrap-branddark {
  background-color: #155a76;
  color: #fff; }

.wrap-lightgrey {
  background-color: #F2F2F2; }

.wrap-course {
  background: #f4f4f4; }
  @media (min-width: 950px) {
    .wrap-course {
      -webkit-box-shadow: inset 0px 0px 1px rgba(0, 0, 0, 0.5);
              box-shadow: inset 0px 0px 1px rgba(0, 0, 0, 0.5); } }

/*
Module Rules (Marketing)

Styleguide 4.0
*/
/*
Button Callout

Markup:
<section class="l-wrap wrap buttoncallout">
  <a href="" class="button button-ppc">Sign Up Now</a>
  <p>Guaranteed acceptance in Maricopa County, Arizona!</p>
</section>

Styleguide 4.2
*/
.buttoncallout {
  text-align: center; }
  .buttoncallout p {
    color: #155a76;
    font-weight: bold;
    line-height: 1.2;
    margin-top: 18px; }
    @media (min-width: 650px) {
      .buttoncallout p {
        font-size: 18px;
        margin-left: auto;
        margin-right: auto;
        width: 337px; } }

/*
Course Overview

Markup:
<div class="l-wrap wrap courseoverview">
  <section class="chapters">
    <h2>Covered in the course</h2>
    <ul>
      <li>Money Problems</li>
      <li>Children Carrying Messages</li>
      <li>Putting Down the Other Parent</li>
      <li>Long Distance Parenting</li>
      <li>Quizzing Children About the Other Parent</li>
    </ul>
  </section>
  <section class="praise" id="praise">
    <h2>Praise for Children In Between</h2>
    <div class="slider">
      <div>
        <blockquote>
          <h4>"Children in Between Online made me think very hard about my actions with my soon to be ex-spouse and what is best for our son."</h4>
          <cite>Molly Dever, Shepherdsville, KY</cite>
        </blockquote>
      </div>
      <div>
        <blockquote>
          <h4>"This program was recommended by our co-parenting counselor and I would recommend it to other couples who are thinking about or getting a divorce involving children.  In fact, I have recommended it to one of my co-workers already. What was most useful for me was the different techniques of communication - self talk, "I" statements, etc."</h4>
          <cite>Diane Hodges, Fairbanks, AK</cite>
        </blockquote>
      </div>
      <div>
        <blockquote>
          <h4>"After taking CIBO and putting the skills I learned into practice, my kids are much more at ease and know that they can talk to daddy about anything, and it's OK. I recommend this class to everyone!"</h4>
          <cite>Richard Demarco, Grants Pass, Oregon</cite>
        </blockquote>
      </div>
      <div>
        <blockquote>
          <h4>"We've been using Children In Between program distributed by the Center for Divorce Education for 10 years. It's been life changing for so many families!"</h4>
          <cite>Doak Givan, Executive Director of Family Services Center, Inc.</cite>
        </blockquote>
      </div>
      <div>
        <blockquote>
          <h4>"I highly recommend CIBO to anyone who wants to have a closer, more respectful relationship with the other parent and children."</h4>
          <cite>John Parker, Roseburg, Oregon</cite>
        </blockquote>
      </div>
      <div>
        <blockquote>
          <h4>"Excellent...Superb...I was impressed with the quality."</h4>
          <cite>Hon. Cheryl Karner, Domestic Relations Judge</cite>
        </blockquote>
      </div>
    </div>
  </section>
</div>

Styleguide 4.3
*/
.courseoverview {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column; }
  .courseoverview > * {
    border: 1px solid rgba(40, 173, 227, 0.5);
    padding: 36px 54px; }
    .courseoverview > *:first-child {
      margin-bottom: 18px; }
    .courseoverview > *.chapters ul {
      margin-top: 2em; }
      .courseoverview > *.chapters ul li {
        font-size: 18px;
        padding: .75em 0;
        color: #28ade3; }
    .courseoverview > *.praise h2 {
      font-size: 24px;
      padding: .5em; }
    .courseoverview > *.praise div.slider {
      margin-top: 2em; }
      .courseoverview > *.praise div.slider h4 {
        font-size: 18px; }
    .courseoverview > * h2 {
      font-size: 30px;
      color: #155a76;
      border-bottom: 1px solid rgba(21, 90, 118, 0.25);
      padding: .5em 0; }
  @media (min-width: 650px) {
    .courseoverview {
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
          -ms-flex-direction: row;
              flex-direction: row; }
      .courseoverview > * {
        -webkit-box-flex: 0;
            -ms-flex: 0 0 50%;
                flex: 0 0 50%; }
        .courseoverview > *:first-child {
          margin-bottom: 0;
          margin-right: 18px; }
        .courseoverview > *.praise {
          max-width: 50%; } }

/*
CTA

Markup:
<div class="cta l-wrap">
  <a class="button" href="#">Sign-Up</a>
</div>

Styleguide 4.4
*/
.cta a {
  font-size: 18px;
  width: 100%; }

@media (min-width: 650px) {
  .cta a {
    display: block;
    margin: 0 auto;
    max-width: 290px; } }

/*
CTA Audience

Markup:
<div class="ctaaudience l-wrap l-wrap-spanmobile">
  <a href="#">
    <img src="/images/homepage-audience-attorneys.svg" alt="Scales of justice" width="66" height="52">
    <h1>For Attorneys</h1>
    <p>Children in Between Online offers your clients a fantastic and pro-active way to help their kids throught this tough time. This is a quick win for you.</p>
  </a>
  <a href="#">
    <img src="/images/homepage-audience-courts.svg" alt="Gavel" width="58" height"52">
    <h1>For Courts</h1>
    <p>The best online parenting course makes it easy for residents in your jurisdiction to get quality divorce education even when they can’t make it to an in-person class.</p>
  </a>
</div>

Styleguide 4.5
*/
.ctaaudience {
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  background: #28ade3;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column; }
  .ctaaudience a {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    color: #fff;
    display: block;
    font-weight: normal;
    padding: 36px 18px;
    text-align: center; }
    .ctaaudience a:not(:last-child) {
      border-bottom: 9px solid #fff; }
    .ctaaudience a:hover {
      background-color: #198fbf; }
  .ctaaudience img {
    margin-bottom: 9px; }
  .ctaaudience h1 {
    font-size: 24px;
    margin-bottom: 4.5px; }
  @media (min-width: 650px) {
    .ctaaudience {
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
          -ms-flex-direction: row;
              flex-direction: row; }
      .ctaaudience a {
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
        padding-bottom: 72px;
        padding-top: 54px; }
        .ctaaudience a:not(:first-child) {
          border-left: 2.25px solid #fff; }
        .ctaaudience a:not(:last-child) {
          border-bottom: 0;
          border-right: 2.25px solid #fff; } }

/*
CTA Overview

Markup:
<div class="l-childrenvertical-x-exclude ctaoverview l-wrap l-wrap-spanmobile">
  <section>
    <h1>Children in Between</h1>
    <h2>A Co-Parenting Program for Divorcing and Separating Parents.</h2>
    <ul>
      <li>Instant Printable Certificate upon completion</li>
      <li>No need to take an in-person class</li>
      <li>Complete the course 100% online</li>
      <li>Accessible 24/7</li>
      <li>Only 3-5 hours to complete</li>
      <li>Pay no more than $45.95</li>
    </ul>
    <div>
      <a href="" class="button">Sign-Up Now</a>
      <img srcset="/images/homepage-ctaoverview-courtaccepted-2x.png 2x" src="/images/homepage-ctaoverview-courtaccepted.png" alt="Court Accepted, 100% Guranteed Seal" width="150" height="150">
      <p>Instant Certificate!<br> Guranteed Court Approval</p>
    </div>
  </section>
</div>

Styleguide 4.6
*/
.ctaoverview {
  line-height: 1.16;
  overflow: hidden;
  position: relative; }
  .ctaoverview::before, .ctaoverview::after {
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
    content: '';
    display: block;
    height: 100%;
    position: absolute;
    top: 0; }
  .ctaoverview::before {
    background-image: url("images/Pic3.jpg");
    display: none;
    left: 0; }
  .ctaoverview::after {
    background-image: url("images/Pic4.jpg");
    right: 0;
    width: 100%; }
  .ctaoverview section {
    background-color: rgba(10, 52, 69, 0.85);
    -webkit-box-shadow: rgba(0, 0, 0, 0.5) 0 2px 4px 0;
            box-shadow: rgba(0, 0, 0, 0.5) 0 2px 4px 0;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    color: #fff;
    padding: 36px 18px;
    position: relative;
    text-shadow: rgba(0, 0, 0, 0.5) 0 2px 4px;
    z-index: 50; }
    .ctaoverview section img {
      display: block;
      float: right;
      height: auto;
      margin-bottom: 9px;
      width: 32%; }
  .ctaoverview h1 {
    line-height: 1;
    margin-bottom: 4.5px; }
  .ctaoverview h2 {
    font-size: 18px;
    margin-bottom: 18px; }
  .ctaoverview ul {
    font-size: 18px;
    margin-bottom: 9px;
    padding-left: 27px; }
    .ctaoverview ul li {
      list-style: disc outside;
      margin-bottom: 4.5px; }
  .ctaoverview a {
    float: left;
    font-size: 18px;
    margin-top: 7%;
    text-shadow: none;
    width: 65%; }
  .ctaoverview div {
    text-align: center; }
    .ctaoverview div p {
      clear: both;
      font-size: 18px; }
  @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {
    .ctaoverview::before {
      background-image: url("images/Pic3.jpg"); }
    .ctaoverview::after {
      background-image: url("images/Pic4.jpg"); } }
  @media (min-width: 650px) {
    .ctaoverview {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex; }
      .ctaoverview::before, .ctaoverview::after {
        width: 50%; }
      .ctaoverview::before {
        display: block; }
      .ctaoverview section {
        margin: 0 auto;
        max-width: 415px;
        padding-bottom: 18px;
        padding-left: 27px;
        padding-right: 27px;
        z-index: 50; }
        .ctaoverview section::after {
          clear: both;
          content: '';
          display: block;
          font-size: 0;
          height: 0;
          visibility: hidden; }
        .ctaoverview section img {
          width: 38%; }
      .ctaoverview a {
        width: 58%; }
      .ctaoverview div p {
        clear: none;
        float: left;
        margin-top: 9px;
        text-align: left; } }
  @media (min-width: 960px) {
    .ctaoverview {
      padding-bottom: 36px;
      padding-top: 36px; } }

/*
CTA Photo

Markup:
<article class="l-childrenvertical-x-exclude ctaphoto l-wrap">
  <img src="/images/homepage-courtacceptance.svg" alt="Judge icon" width="108" height="93">
  <h1>Guranteed Court Acceptance</h1>
  <p>Children in Between Online is commonly accepted by court systems across the United States to fulfill requirements regarding divorce education for parents, often replacing inconvenient and expensive in-person classes.</p>
  <a class="button" href="#">Sign-Up Now</a>
</article>

Styleguide 4.7
*/
.ctaphoto {
  background: url("images/ctaphoto.png") center center;
  background-size: cover;
  color: #fff;
  padding-bottom: 36px;
  padding-top: 36px;
  text-align: center;
  text-shadow: rgba(0, 0, 0, 0.5) 0 2px 4px; }
  .ctaphoto img {
    display: block;
    margin: 0 auto 18px; }
  .ctaphoto h1 {
    margin-bottom: 18px; }
  .ctaphoto p {
    font-size: 18px;
    margin-bottom: 18px; }
  .ctaphoto a {
    font-size: 18px;
    text-shadow: none;
    width: 100%; }
  @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {
    .ctaphoto {
      background-image: url("images/ctaphoto-2x.png"); } }
  @media (min-width: 650px) {
    .ctaphoto {
      background-image: url("images/ctaphoto-desktop.png");
      padding-bottom: 54px;
      padding-top: 54px; } }
  @media (min-width: 650px) and (-webkit-min-device-pixel-ratio: 2), (min-width: 650px) and (min-resolution: 2dppx) {
    .ctaphoto {
      background-image: url("images/ctaphoto-desktop-2x.png"); } }
  @media (min-width: 650px) {
      .ctaphoto p {
        margin-left: auto;
        margin-right: auto;
        max-width: 60%; }
      .ctaphoto a {
        display: block;
        margin: 0 auto;
        max-width: 290px; } }

/*

Markup:
<article class="ctaphoto ctaphoto-completecase l-wrap">
  <img src="http://placehold.it/73x73" alt="Complete Case Logo" width="73" height="73">
  <h1>Save thousands of dollars in legal fees without the cost of an attorney.</h1>
  <p>Visit CompleteCase.com and sign up for their services AND the Children in Between Online Program.</p>
  <a class="button button-outline" href="#">CompleteCase.com</a>
</article>

Styleguide 4.7.1
*/
.ctaphoto-completecase {
  background: #155a76;
  text-shadow: none; }
  .ctaphoto-completecase > *:not(:last-child) {
    margin-bottom: 18px; }
  .ctaphoto-completecase h1,
  .ctaphoto-completecase p {
    margin-left: auto;
    margin-right: auto;
    max-width: 654px; }
  .ctaphoto-completecase a {
    width: auto; }
  .ctaphoto-completecase h1 {
    font-size: 30px;
    font-weight: bold; }
  @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {
    .ctaphoto-completecase {
      background: #155a76; } }
  @media (min-width: 650px) {
    .ctaphoto-completecase {
      background: #155a76; } }
  @media (min-width: 650px) and (-webkit-min-device-pixel-ratio: 2), (min-width: 650px) and (min-resolution: 2dppx) {
    .ctaphoto-completecase {
      background: #155a76; } }
  @media (min-width: 650px) {
      .ctaphoto-completecase a {
        display: inline-block;
        max-width: none; } }

/*
CTA Quotes

Markup:
<div class="ctaquotes l-wrap">
  <div class="slider">
    <div>
      <blockquote>
        <p>&ldquo;This program was recommended by our co-parenting counselor and I would recommend it to other couple who are thinking about or getting a divorce involving children. In fact, I have recommended it to one of my co-workers already.&rdquo;</p>
        <cite><strong>Diange Hodges</strong> Fairbanks, AK</cite>
      </blockquote>
    </div>
  </div>
  <div>
    <p>Join more than <strong>50,000 parents</strong> who have completed our award-winning class! <strong>Recommended by 9 out of 10 parents.</strong></p>
    <a class="ctaquotes-x-button button" href="#">Sign-Up Now</a>
  </div>
</div>

Styleguide 4.8
*/
.ctaquotes p,
.ctaquotes cite,
.ctaquotes strong {
  color: #696969;
  font-size: 18px;
  line-height: 1.33; }

.ctaquotes p {
  margin-bottom: 18px; }

.ctaquotes blockquote {
  background: #F2F2F2;
  margin-bottom: 27px;
  padding: 18px;
  position: relative; }
  .ctaquotes blockquote::after {
    border: 36px solid transparent;
    border-left-color: #F2F2F2;
    bottom: -27px;
    content: '';
    display: block;
    height: 0;
    left: 54px;
    position: absolute;
    width: 0;
    z-index: 10; }
  .ctaquotes blockquote p,
  .ctaquotes blockquote cite {
    position: relative;
    z-index: 50; }
  .ctaquotes blockquote cite,
  .ctaquotes blockquote strong {
    display: block; }

.ctaquotes > :first-child {
  margin-bottom: 36px; }

.ctaquotes .ctaquotes-x-button {
  font-size: 18px;
  width: 100%; }

.ctaquotes .slick-next,
.ctaquotes .slick-prev {
  display: none !important; }

.ctaquotes .slick-dots {
  bottom: auto;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin: -9px 0 0;
  padding-left: 18px; }
  .ctaquotes .slick-dots li {
    display: block;
    margin: 0 4.5px 0 0; }
    .ctaquotes .slick-dots li:last-child {
      margin-right: 0; }
  .ctaquotes .slick-dots button {
    border-radius: 100%;
    -webkit-box-shadow: 0 0 0 1px #696969 inset;
            box-shadow: 0 0 0 1px #696969 inset;
    display: block;
    height: 16px;
    margin: 0;
    -webkit-transition: background-color 0.25s ease-in-out;
    transition: background-color 0.25s ease-in-out;
    width: 16px; }
    .ctaquotes .slick-dots button::before {
      display: none; }
  .ctaquotes .slick-dots .slick-active button {
    background-color: #696969; }

@media (min-width: 650px) {
  .ctaquotes {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; }
    .ctaquotes > div {
      width: 50%; }
    .ctaquotes > :first-child {
      margin-bottom: 0;
      padding-right: 18px; }
    .ctaquotes > :last-child {
      padding-left: 18px;
      padding-top: 36px; }
    .ctaquotes .ctaquotes-x-button {
      width: auto; } }

/*
Features

Markup:
<article class="features l-wrap">
  <h1>Course Features</h1>
  <p>Children in Between is a scientifically proven to ensure that you learn the skills necessary to make divorce easier on your children.</p>
  <ul>
      <li>
        <img srcset="/images/feature-videos-2x.png 2x" src="/images/feature-videos.png" alt="TV Screen" width="100" height="100">
        <div>
          <h2>Video Scenarios</h2>
          <p>Watch videos with common co-parenting problems and then see different responses that produce positive and negative results.</p>
        </div>
      </li>
      <li>
        <img srcset="/images/feature-questions-2x.png 2x" src="/images/feature-questions.png" alt="Question mark" width="100" height="100">
        <div>
          <h2>Guided Questions</h2>
          <p>After each video scenario, CIBO presents the user with guided questions to explore how each problem can be addressed, and to increase your understanding of the situation.</p>
        </div>
      </li>
      <li>
        <img srcset="/images/feature-quizes-2x.png 2x" src="/images/feature-quizes.png" alt="Reinforcing Quizzes" width="100" height="100">
        <div>
          <h2>Reinforcing Quizzes</h2>
          <p>At the end of each chapter, you’ll have the opportunity to reinforce what you’ve learned by taking a quiz. Quizzes help ensure that you’ll be ready to handle situations in the future.</p>
        </div>
      </li>
      <li>
        <img srcset="/images/feature-skillspractice-2x.png 2x" src="/images/feature-skillspractice.png" alt="Star" width="100" height="100">
        <div>
          <h2>Skills Practice</h2>
          <p>You can spend time practicing and refining your skills in our Skills Practice section - meant to increase your confidence in the skills taught in CIBO.</p>
        </div>
      </li>
  </ul>
</article>

Styleguide 4.9
*/
.features h1 {
  margin-bottom: 9px;
  text-align: center; }

.features li {
  margin-bottom: 27px; }
  .features li p {
    color: #696969; }

.features h2 {
  font-size: 24px;
  margin-bottom: 0; }

.features img {
  display: block;
  height: auto;
  margin: 0 auto 9px;
  width: 100px; }

.features > p {
  color: #696969;
  margin-bottom: 27px;
  text-align: center; }

@media (min-width: 650px) {
  .features h1 {
    margin-bottom: 18px; }
  .features > p {
    font-size: 18px;
    margin-bottom: 0; }
  .features ul {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
  .features li {
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    margin-bottom: 0;
    padding: 54px 36px 0;
    width: 50%; }
  .features img {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100px;
            flex: 0 0 100px; }
  .features div {
    padding-left: 18px; } }

/*
Photo Callout

Markup:
<section class="l-wrap l-wrap-spanmobile wrap wrap-lightgrey photocallout">
    <div class="text-container">
      <h3>Give your children the best chance.</h3>
      <p>The divorce of one’s parents is a major event in the life of a child. Children in Between Online ensures that the accompaning stress is minimized, the long-term psychological burden is eased, and the whole process is made more understandable and manageable for the parents so that children will benefit.</p>
    </div>
    <div>
      <img src="http://placehold.it/320x349" alt="Picture of women and children">
    </div>
  </section>

Styleguide 4.10
*/
.photocallout {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  padding-bottom: 18px;
  padding-top: 18px; }
  @media (min-width: 650px) {
    .photocallout {
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
          -ms-flex-direction: row;
              flex-direction: row; } }
  @media (min-width: 650px) {
    .photocallout p,
    .photocallout li {
      color: #696969;
      font-size: 18px; } }
  .photocallout img {
    display: block;
    height: auto;
    margin-bottom: 18px;
    width: 100%; }
    @media (min-width: 650px) {
      .photocallout img {
        border: 1px solid #000; } }
  .photocallout > :first-child {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2; }
    @media (min-width: 650px) {
      .photocallout > :first-child {
        margin-right: 54px;
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
        -webkit-box-ordinal-group: 2;
            -ms-flex-order: 1;
                order: 1; } }
  .photocallout > :last-child {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1; }
    @media (min-width: 650px) {
      .photocallout > :last-child {
        -webkit-box-flex: 0;
            -ms-flex: 0 0 268px;
                flex: 0 0 268px;
        -webkit-box-ordinal-group: 3;
            -ms-flex-order: 2;
                order: 2; } }

/*
Proof

Markup:
<article class="proof l-wrap">
  <h1>Proven to Work</h1>
  <p>Children in Between was created by distinguished psychologist Dr. Donald Gordon and proven to work.</p>
  <ul>
    <li><p>22% <span>Less child reported stress</span></p></li>
    <li><p>70% <span>Fewer school absences</span></p></li>
    <li><p>54% <span>Fewer doctor visits</span></p></li>
    <li><p>9/10 <span>Parents recommend</span></p></li>
  </ul>
</article>

Styleguide 4.11
*/
.proof {
  text-align: center; }
  .proof h1 {
    line-height: 1;
    margin-bottom: 9px; }
  .proof > p {
    color: #696969;
    line-height: 1.5;
    margin-bottom: 9px; }
  .proof ul {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center; }
  .proof li {
    padding: 0 4.5px 9px; }
    .proof li p {
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      background: #155a76;
      border-radius: 100%;
      -webkit-box-sizing: border-box;
              box-sizing: border-box;
      color: #fff;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column;
      font-size: 36px;
      height: 138px;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center;
      line-height: 1;
      margin-bottom: 0;
      padding: 9px;
      width: 138px; }
    .proof li span {
      font-size: 14px;
      line-height: 1.618; }
  @media (min-width: 650px) {
    .proof > p {
      font-size: 18px;
      margin-bottom: 18px; }
    .proof li {
      padding: 0 18px; } }

/*
Screens

Markup:
<article class="screens l-wrap">
  <h1>Optimized for all screen sizes:</h1>
  <ul>
    <li>
      <img src="/images/screens-desktop.svg" alt="Desktop screen" width="123" height="100">
      Desktop
    </li>
    <li>
      <img src="/images/screens-laptop.svg" alt="Laptop screen" width="134" height="77">
      Laptop
    </li>
    <li>
      <img src="/images/screens-tablet.svg" alt="Tablet screen" width="50" height="64">
      Tablet
    </li>
    <li>
      <img src="/images/screens-mobile.svg" alt="Mobile screen" width="22" height="43">
      Mobile
    </li>
  </ul>
</article>

Styleguide 4.12
*/
.screens h1 {
  margin-bottom: 9px;
  text-align: center; }

.screens ul {
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center; }

.screens li {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  padding: 4.5px; }
  .screens li:nth-child(1) img {
    max-width: 83px; }
  .screens li:nth-child(2) img {
    max-width: 84px; }
  .screens li:nth-child(3) img {
    max-width: 35px; }
  .screens li:nth-child(4) img {
    max-width: 17px; }

.screens img {
  display: block;
  height: auto;
  margin-bottom: 4.5px; }

@media (min-width: 650px) {
  .screens li {
    padding: 18px; }
    .screens li:nth-child(1) img, .screens li:nth-child(2) img, .screens li:nth-child(3) img, .screens li:nth-child(4) img {
      max-width: none; } }

/*
Topics

Markup:
<article class="topics l-wrap">
  <h1>What's Covered</h1>
  <ul>
    <li>Money Problems</li>
    <li>Long Distance Parenting</li>
    <li>Children Carrying Messages</li>
    <li>Quizzing Children About the Other Parent</li>
    <li>Putting Down the Other Parent</li>
    <li>Never Married Parents</li>
  </ul>
</article>

Styleguide 4.13
*/
.topics {
  background: url("images/topics.png") center center no-repeat;
  background-size: cover;
  color: #fff;
  padding-bottom: 36px;
  padding-top: 36px; }
  .topics h1 {
    font-size: 24px;
    margin-bottom: 36px; }
  .topics li {
    border: 1px solid #fff;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    font-size: 18px;
    padding: 18px;
    text-align: center; }
    .topics li:not(:last-child) {
      margin-bottom: 18px; }
  @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {
    .topics {
      background-image: url("images/topics-2x.png"); } }
  @media (min-width: 960px) {
    .topics {
      background-image: url("images/topics-desktop.png");
      padding-bottom: 72px;
      padding-top: 54px; }
      .topics h1 {
        margin-bottom: 18px; }
      .topics ul {
        -webkit-column-count: 2;
           -moz-column-count: 2;
                column-count: 2;
        -webkit-column-gap: 36px;
           -moz-column-gap: 36px;
                column-gap: 36px; } }
  @media (min-width: 960px) and (-webkit-min-device-pixel-ratio: 2), (min-width: 960px) and (min-resolution: 2dppx) {
    .topics {
      background-image: url("images/topics-desktop-2x.png"); } }

/*
Signup

For use on the PPC landing pages. Best viewed on their own page (outside of SC5's interface.)

Markup:
<section class="l-wrap wrap wrap-branddark signup">
  <div>
    <h1>Children in Between</h1>
    <p>A co-parenting program for divorcing and separating parents</p>
    <div class="cta">
      <a href="" class="button button-ppc">Sign-Up Now</a>
      <p>Guranteed Acceptance in Maricopa County, Arizona!</p>
    </div>
  </div>
  <div>
    <p class="seal">Instant Certificate Upon Completion!</p>
  </div>
</section>

Styleguide 4.1
*/
.signup {
  font-size: 18px;
  line-height: 1.2; }
  @media (min-width: 650px) {
    .signup {
      -webkit-box-align: top;
          -ms-flex-align: top;
              align-items: top;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      padding-bottom: 54px;
      padding-top: 54px; } }
  .signup h1 {
    font-size: 30px;
    font-weight: bold;
    line-height: 1;
    margin-bottom: 0; }
    @media (min-width: 650px) {
      .signup h1 {
        font-size: 48px; } }
  .signup p {
    font-size: 18px; }
    @media (min-width: 650px) {
      .signup p {
        font-size: 24px; } }
  .signup dl {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
  .signup dd,
  .signup dt {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    -webkit-box-flex: 1;
        -ms-flex: 1 1 50%;
            flex: 1 1 50%;
    max-width: 50%; }
  .signup dt {
    padding-right: 4.5px;
    text-align: right; }
  .signup dd {
    font-weight: bold;
    padding-left: 4.5px; }
  @media (min-width: 650px) {
    .signup ul {
      margin-bottom: 36px; } }
  .signup ul li {
    font-size: 14px;
    list-style: disc;
    margin: 0 0 4.5px 1em; }
    @media (min-width: 650px) {
      .signup ul li {
        font-size: 18px; } }
  .signup .cta {
    margin: 18px 0; }
    @media (min-width: 650px) {
      .signup .cta {
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex; }
        .signup .cta > :first-child {
          margin-right: 18px; } }
    .signup .cta p {
      font-size: 12px;
      font-weight: bold;
      padding-top: 4.5px;
      text-align: center; }
      @media (min-width: 650px) {
        .signup .cta p {
          font-size: 18px;
          padding-top: 0;
          text-align: left; } }
  .signup .signup-x-text {
    padding: 0 18px 0 0; }

/*
Signup Secondary

Markup:
<section class="l-wrap wrap signup signup-secondary">
  <div>
    <h1>Why Choose Children in Between Online?</h1>
    <ul>
      <li>It’s not necessary to attend an in-person class</li>
      <li>The lowest cost online class available in Maricopa County</li>
      <li>Takes just 4 hours to complete</li>
      <li>Instant certification upon completion</li>
      <li>Available 24/7 to fit your schedule</li>
    </ul>
    <div class="cta">
      <a href="" class="button button-ppc">Sign-Up Now</a>
      <p><span>$45.95</span> for 30-day access</p>
    </div>
  </div>
  <div>
    <img src="/images/placeholder-landingpage.svg" alt="{county name} image">
    <dl>
      <dt>County: </dt>
      <dd>Maricopa</dd>
      <dt>State: </dt>
      <dd>Arizona</dd>
    </dl>
  </div>
</section>

Styleguide 4.1.1
*/
.signup-secondary {
  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: 650px) {
    .signup-secondary {
      -webkit-box-align: start;
          -ms-flex-align: start;
              align-items: flex-start;
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
          -ms-flex-direction: row;
              flex-direction: row; } }
  .signup-secondary h1 {
    font-size: 24px;
    font-weight: normal;
    margin-bottom: 9px; }
    @media (min-width: 650px) {
      .signup-secondary h1 {
        font-size: 36px;
        margin-bottom: 18px; } }
  .signup-secondary img {
    display: block;
    margin: 0 auto 18px; }
  .signup-secondary > :first-child {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2; }
    @media (min-width: 650px) {
      .signup-secondary > :first-child {
        -webkit-box-flex: 1;
            -ms-flex: 1 1 auto;
                flex: 1 1 auto; } }
  .signup-secondary > :last-child {
    margin-bottom: 18px;
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1; }
    @media (min-width: 650px) {
      .signup-secondary > :last-child {
        -webkit-box-flex: 0;
            -ms-flex: 0 1 164px;
                flex: 0 1 164px;
        margin-bottom: 0;
        margin-right: 36px; } }
  .signup-secondary .cta p {
    font-size: 14px;
    margin-top: 9px;
    text-align: center; }
    @media (min-width: 650px) {
      .signup-secondary .cta p {
        margin-top: 0; } }
  .signup-secondary .cta span {
    color: #155a76;
    display: block;
    font-size: 36px; }
  .signup-secondary .signup-x-text {
    padding: 0; }

.survey .progressbar {
  display: none; }
  @media (min-width: 960px) {
    .survey .progressbar {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex; } }

.onboarding-notifications {
  padding-left: 18px;
  padding-right: 18px; }
  .onboarding-notifications h2 {
    line-height: 1.2em;
    margin-top: 1em; }
  .onboarding-notifications h3 {
    margin-top: .5em; }
  .onboarding-notifications p {
    margin-bottom: 1em;
    font-size: 16px; }

.horizontal-list li {
  float: left;
  list-style-image: none;
  list-style-type: none;
  margin-left: 0;
  white-space: nowrap; }
  .horizontal-list li:first-child {
    padding-left: 0; }
  .horizontal-list li:last-child {
    padding-right: 0; }

.font-size {
  font-size: 18px; }

/*
Demos

Styleguide 5.0
*/
/*
Homepage

Markup:
<div class="l-wrappermobile">
  <sg-insert>3.3</sg-insert>
  <div class="l-childrenvertical">
    <sg-insert>4.6</sg-insert>
    <sg-insert>4.7</sg-insert>
    <sg-insert>4.7.1</sg-insert>
    <sg-insert>4.12</sg-insert>
    <sg-insert>4.9</sg-insert>
    <sg-insert>4.4</sg-insert>
    <sg-insert>4.13</sg-insert>
    <sg-insert>4.11</sg-insert>
    <sg-insert>4.8</sg-insert>
    <sg-insert>4.5</sg-insert>
  </div>
  <sg-insert>3.9</sg-insert>
</div>

Styleguide 5.1
*/
/*
Receipt

Markup:
<div class="l-receipt">
  <div class="receiptheader">
    <div>
      <p class="receiptheader-x-name">John Doe</p>
      <table class="printtable printtable-small">
        <thead class="visuallyhidden">
          <tr>
            <th scope="row">Direction</th>
            <th scope="row">Value</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <th scope="row">Re:</th>
            <td>You’ve completed your purchase!</td>
          </tr>
          <tr>
            <th scope="row">To:</th>
            <td>Namey Namerson</td>
          </tr>
        </tbody>
      </table>
    </div>
    <div class="receiptheader-x-meta">
      <p class="receiptheader-x-time">9:34am</p>
      <div class="receiptheader-x-avatar">AB</div>
    </div>
  </div>
  <div class="l-receipt-x-body">
    <h1 class="receiptheading">Purchase Complete!</h1>
    <h2 class="receiptheading receiptheading-small">Account Information</h2>
    <table class="printtable">
      <thead class="visuallyhidden">
        <tr>
          <th scope="row">Information</th>
          <th scope="row">Value</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <th scope="row">Customer Name</th>
          <td>Namey Namerson</td>
        </tr>
        <tr>
          <th scope="row">Username</th>
          <td>paypal@test.com</td>
        </tr>
        <tr>
          <th scope="row">Expiration Date</th>
          <td>November 20, 2016</td>
        </tr>
      </tbody>
    </table>
    <h2 class="receiptheading receiptheading-small">Purchased Products</h2>
    <table class="printtable printtable-span">
      <thead>
        <tr>
          <th scope="row">Product</th>
          <th scope="row">Amount</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td>CDE's Children in Between Online 30-day Account</td>
          <td>$45.95</td>
        </tr>
      </tbody>
    </table>
  </div>
</div>

Styleguide 5.2
*/
/*
Purchased Items

Markup:
<div class="l-childrenvertical l-childrenvertical-small">
  <sg-insert>3.56</sg-insert>
  <div class="pagetitle">
    <h1>Purchased Items</h1>
  </div>
  <sg-insert>3.57</sg-insert>
</div>

Styleguide 5.3
*/
/*
Results

Markup:
<div class="l-containerhorizontal l-containerhorizontal-small l-containerhorizontal-is-minpad l-containervertical l-childrenvertical l-childrenvertical">
  <div class="bordered">
    <header class="page-title page-title-centered">
      <img src="http://placehold.it/112x86" alt="Results certificate icon">
      <h1>Congratulations John Blimb</h1>
      <p>You have passed all six chapters, and the final exam with a cumulative score of <strong>0%</strong>.</p>
    </header>
    <form class="form form-nomargin">
      <div class="form-row">
        <hr class="rule">
      </div>
      <div class="form-row">
        <h4>Add your Case Number</h4>
        <p class="u-text-small">If you have begun the court process, please enter your case number below. It will be printed on your certificate.</p>
      </div>
      <div class="form-row">
  			<p class="label">Filing County:</p>
  			<p class="value"><input type="text" disabled="disabled" placeholder="California, San Bernardino County"></p>
  		</div>
      <div class="form-row">
  			<p class="label">Case Number:</p>
  			<div class="value"><input type="text" name="case_number" value="Q-4M-4C-05" placeholder="Enter your case number" id="id_case_number" maxlength="200"></div>
  		</div>
      <div class="email-results">
        <div class="submit">
          <input class="button" type="submit" name="downoad" value="Download Certificate">
          <button class="button" onclick="document.querySelector('#email-results-form').style.display = 'block'" type="button">Email Certificate</button>
        </div>
        <div id="email-results-form" style="display: none">
          <div class="form-row">
            <h4>Email a PDF certificate to:</h4>
          </div>
          <div class="form-row">
      			<p class="label">Name:</p>
      			<div class="value">
              <input type="text" name="name" placeholder="Enter name" id="name" maxlength="200">
            </div>
      		</div>
          <div class="form-row">
      			<p class="label">Email:</p>
      			<div class="value">
              <input type="email" name="email" placeholder="Enter email" id="email" maxlength="200">
            </div>
      		</div>
          <div class="form-row checkbox">
            <div class="value">
              <input type="checkbox" name="email_copy" id="email_copy">
            </div>
            <label for="email_copy">
              <p>Email me a copy of my certificate</p>
            </label>
          </div>
          <div class="form-row form-row-submit">
            <div class="form-row-submit-x-button">
              <button class="button" onclick="document.querySelector('.form-row-submit').classList.add('form-row-submit-is-success')" type="button">Send Email</button>
            </div>
            <div class="form-row-submit-x-message">Email Sent!</div>
          </div>
        </div>
      </div>
    </form>
  </div>
  <div>
    <h4>Filing your certificate of completion:</h4>
    <p class="u-text-small">The Maricopa County Court no longer accepts paper certificates. <br>The Center for Divorce Education will eFile your Certificate with the Maricopa Court. <br>Enter your case number in the box above, or the court will not accept your Certificate. <br>You should download and/or email yourself a copy of the certificates for your records.</p>
  </div>
  <div class="l-childrenvertical">
    <h1>You may also like&hellip;<h1>
    <sg-insert>3.59</sg-insert>
    <sg-insert>3.59</sg-insert>
    <sg-insert>3.59</sg-insert>
  </div>
</div>

Styleguide 5.4
*/

/*# sourceMappingURL=data:application/json;base64,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QUFlO0lBQ2YsZUFBZTtJQUNmLGdCQUFnQixFQUFFO0VBQ3BCO0lBQ0UsV0FBVyxFQUFFOztBQUVqQjtFQUNFLGNBQWMsRUFBRTtFQUNoQjtJQUNFO01BQ0UscUJBQWM7TUFBZCxxQkFBYztNQUFkLGNBQWMsRUFBRSxFQUFFOztBQUV4QjtFQUNFLG1CQUFtQjtFQUNuQixvQkFBb0IsRUFBRTtFQUN0QjtJQUNFLG1CQUFtQjtJQUNuQixnQkFBZ0IsRUFBRTtFQUNwQjtJQUNFLGlCQUFpQixFQUFFO0VBQ3JCO0lBQ0UsbUJBQW1CO0lBQ25CLGdCQUFnQixFQUFFOztBQUV0QjtFQUNFLFlBQVk7RUFDWix1QkFBdUI7RUFDdkIsc0JBQXNCO0VBQ3RCLGVBQWU7RUFDZixvQkFBb0IsRUFBRTtFQUN0QjtJQUNFLGdCQUFnQixFQUFFO0VBQ3BCO0lBQ0UsaUJBQWlCLEVBQUU7O0FBRXZCO0VBQ0UsZ0JBQWdCLEVBQUU7O0FBRXBCOzs7O0VBSUU7QUFDRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXNCRTtBQUNGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBNEVFO0FBQ0Y7Ozs7Ozs7Ozs7Ozs7RUFhRTtBQUNGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBK0VFIiwiZmlsZSI6InNjcmVlbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAY2hhcnNldCBcIlVURi04XCI7XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwicHJveGltYSBub3ZhXCI7XG4gIHNyYzogdXJsKFwiZm9udHMvcHJveGltYW5vdmEtcmVndWxhci13ZWJmb250LmVvdFwiKTtcbiAgc3JjOiB1cmwoXCJmb250cy9wcm94aW1hbm92YS1yZWd1bGFyLXdlYmZvbnQuZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSwgdXJsKFwiZm9udHMvcHJveGltYW5vdmEtcmVndWxhci13ZWJmb250LndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiZm9udHMvcHJveGltYW5vdmEtcmVndWxhci13ZWJmb250LnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSwgdXJsKFwiZm9udHMvcHJveGltYW5vdmEtcmVndWxhci13ZWJmb250LnN2ZyNwcm94aW1hX25vdmFfcmdyZWd1bGFyXCIpIGZvcm1hdChcInN2Z1wiKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJwcm94aW1hIG5vdmFcIjtcbiAgc3JjOiB1cmwoXCJmb250cy9wcm94aW1hbm92YS1ib2xkLXdlYmZvbnQuZW90XCIpO1xuICBzcmM6IHVybChcImZvbnRzL3Byb3hpbWFub3ZhLWJvbGQtd2ViZm9udC5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCJmb250cy9wcm94aW1hbm92YS1ib2xkLXdlYmZvbnQud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCJmb250cy9wcm94aW1hbm92YS1ib2xkLXdlYmZvbnQudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLCB1cmwoXCJmb250cy9wcm94aW1hbm92YS1ib2xkLXdlYmZvbnQuc3ZnI3Byb3hpbWFfbm92YV9yZ2JvbGRcIikgZm9ybWF0KFwic3ZnXCIpO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zdHlsZTogbm9ybWFsOyB9XG5cbi8qIGh0dHA6Ly9tZXllcndlYi5jb20vZXJpYy90b29scy9jc3MvcmVzZXQvXHJcbiAgIHYyLjAgfCAyMDExMDEyNlxyXG4gICBMaWNlbnNlOiBub25lIChwdWJsaWMgZG9tYWluKVxyXG4qL1xuaHRtbCwgYm9keSwgZGl2LCBzcGFuLCBhcHBsZXQsIG9iamVjdCwgaWZyYW1lLFxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcCwgYmxvY2txdW90ZSwgcHJlLFxuYSwgYWJiciwgYWNyb255bSwgYWRkcmVzcywgYmlnLCBjaXRlLCBjb2RlLFxuZGVsLCBkZm4sIGVtLCBpbWcsIGlucywga2JkLCBxLCBzLCBzYW1wLFxuc21hbGwsIHN0cmlrZSwgc3Ryb25nLCBzdWIsIHN1cCwgdHQsIHZhcixcbmIsIHUsIGksIGNlbnRlcixcbmRsLCBkdCwgZGQsIG9sLCB1bCwgbGksXG5maWVsZHNldCwgZm9ybSwgbGFiZWwsIGxlZ2VuZCxcbnRhYmxlLCBjYXB0aW9uLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0ciwgdGgsIHRkLFxuYXJ0aWNsZSwgYXNpZGUsIGNhbnZhcywgZGV0YWlscywgZW1iZWQsXG5maWd1cmUsIGZpZ2NhcHRpb24sIGZvb3RlciwgaGVhZGVyLCBoZ3JvdXAsXG5tZW51LCBuYXYsIG91dHB1dCwgcnVieSwgc2VjdGlvbiwgc3VtbWFyeSxcbnRpbWUsIG1hcmssIGF1ZGlvLCB2aWRlbyB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xuICBmb250LXNpemU6IDEwMCU7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxuXG4vKiBIVE1MNSBkaXNwbGF5LXJvbGUgcmVzZXQgZm9yIG9sZGVyIGJyb3dzZXJzICovXG5hcnRpY2xlLCBhc2lkZSwgZGV0YWlscywgZmlnY2FwdGlvbiwgZmlndXJlLFxuZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgbWVudSwgbmF2LCBzZWN0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuYm9keSB7XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG5cbm9sLCB1bCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cblxuYmxvY2txdW90ZSwgcSB7XG4gIHF1b3Rlczogbm9uZTsgfVxuXG5ibG9ja3F1b3RlOmJlZm9yZSwgYmxvY2txdW90ZTphZnRlcixcbnE6YmVmb3JlLCBxOmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIGNvbnRlbnQ6IG5vbmU7IH1cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDsgfVxuXG5Aa2V5ZnJhbWVzIGZsaXAtZG93biB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpOyB9IH1cblxuQGtleWZyYW1lcyBmbGlwLXVwIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7IH0gfVxuXG5Aa2V5ZnJhbWVzIHR1cm4taW4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMCk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTE4MGRlZyk7IH0gfVxuXG5Aa2V5ZnJhbWVzIHR1cm4tb3V0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC0xODBkZWcpOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDApOyB9IH1cblxuQGtleWZyYW1lcyBzaG93LWRvd24ge1xuICAwJSB7XG4gICAgbWF4LWhlaWdodDogMDsgfVxuICAxMDAlIHtcbiAgICBtYXgtaGVpZ2h0OiAxMDAwcHg7IH0gfVxuXG5Aa2V5ZnJhbWVzIGhpZGUtdXAge1xuICAwJSB7XG4gICAgbWF4LWhlaWdodDogMTAwMHB4OyB9XG4gIDEwMCUge1xuICAgIG1heC1oZWlnaHQ6IDA7IH0gfVxuXG4qIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG5odG1sLFxuYm9keSB7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7IH1cblxuYm9keSB7XG4gIGZvbnQtZmFtaWx5OiBcInByb3hpbWEgbm92YVwiLCBcIkhlbHZldGljYVwiLCBcIlNhbnMtU2VyaWZcIjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgbGluZS1oZWlnaHQ6IDEuNjE4O1xuICBvdmVyZmxvdy14OiBoaWRkZW47IH1cblxuaDEge1xuICBmb250LXNpemU6IDM2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjI1OyB9XG5cbmgyIHtcbiAgZm9udC1zaXplOiAzMHB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBtYXJnaW4tYm90dG9tOiA5cHg7IH1cblxuaDMge1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cblxuaDQge1xuICBmb250LXNpemU6IDE4cHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cblxuYSB7XG4gIGNvbG9yOiAjMjhhZGUzO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgYTpob3ZlciB7XG4gICAgY29sb3I6ICMxMzZkOTI7IH1cblxuc3Ryb25nIHtcbiAgY29sb3I6ICMwMDA7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi52aXN1YWxseS1oaWRkZW4ge1xuICBib3JkZXI6IDA7XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDsgfVxuXG4vKlxuTGF5b3V0IFJ1bGVzXG5cblN0eWxlZ3VpZGUgMi4wXG4qL1xuLmwtd3JhcHBlcm1vYmlsZSB7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5sLWNvdXJzZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cbiAgLmwtY291cnNlIC5yZXF1aXJlbWVudHMtbGlzdCB7XG4gICAgZmxleDogMCAwIDI2MHB4OyB9XG4gIC5sLWNvdXJzZSAuY29udGVudCB7XG4gICAgZmxleDogMTsgfVxuXG4vKlxuQ2hhcHRlcnNcblxuTGF5b3V0IHdyYXBwZXIgZm9yIGNoYXB0ZXIgdGlsZXNcblxuTWFya3VwOlxuPHVsIGNsYXNzPVwibC1jaGFwdGVyc1wiPlxuICA8bGk+XG4gICAgPHNnLWluc2VydD4zLjI0PC9zZy1pbnNlcnQ+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8c2ctaW5zZXJ0PjMuMjQ8L3NnLWluc2VydD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxzZy1pbnNlcnQ+My4yNDwvc2ctaW5zZXJ0PlxuICA8L2xpPlxuICA8bGk+XG4gICAgPHNnLWluc2VydD4zLjI0PC9zZy1pbnNlcnQ+XG4gIDwvbGk+XG4gIDxsaT5cbiAgICA8c2ctaW5zZXJ0PjMuMjQ8L3NnLWluc2VydD5cbiAgPC9saT5cbiAgPGxpPlxuICAgIDxzZy1pbnNlcnQ+My4yNDwvc2ctaW5zZXJ0PlxuICA8L2xpPlxuICA8bGk+XG4gICAgPHNnLWluc2VydD4zLjI0PC9zZy1pbnNlcnQ+XG4gIDwvbGk+XG48L3VsPlxuXG5TdHlsZWd1aWRlIDIuNVxuKi9cbi5sLWNoYXB0ZXJzIHtcbiAgbWFyZ2luLXRvcDogLTlweDtcbiAgcGFkZGluZzogMCA5cHg7IH1cbiAgLmwtY2hhcHRlcnMgbGkge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwYWRkaW5nOiA5cHg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQwMHB4KSB7XG4gICAgLmwtY2hhcHRlcnMge1xuICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgICAubC1jaGFwdGVycyBsaSB7XG4gICAgICAgIGZsZXg6IDAgMCA1MCU7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAubC1jaGFwdGVycyBsaSB7XG4gICAgICBmbGV4OiAwIDAgMzMuMzMlOyB9IH1cblxuLypcbkNvbnRhaW5lclxuXG5NYXJrdXA6XG48ZGl2IGNsYXNzPVwibC1jb250YWluZXJcIj5cbjwvZGl2PlxuXG5TdHlsZWd1aWRlIDIuN1xuKi9cbi5sLWNvbnRhaW5lciB7XG4gIHBhZGRpbmc6IDE4cHg7IH1cblxuLypcbkNvbnRhaW5lciBIb3Jpem9udGFsXG5cbkRlZmF1bHQgLSBTZXRzIGEgbWF4IHdpZHRoXG4ubC1jb250YWluZXJob3Jpem9udGFsLXNtYWxsIC0gU21hbGxlciBtYXggd2lkdGhcbi5sLWNvbnRhaW5lcmhvcml6b250YWwtbWVkaXVhbSAtIE1lZGlhdW0gbWF4IHdpZHRoXG5cbk1hcmt1cDpcbjxkaXYgY2xhc3M9XCJsLWNvbnRhaW5lcmhvcml6b250YWwgeyRtb2RpZmllcnN9XCI+Q29udGVudDwvZGl2PlxuXG5TdHlsZWd1aWRlIDIuMVxuKi9cbi5sLWNvbnRhaW5lcmhvcml6b250YWwge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtYXJnaW46IDAgYXV0bztcbiAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA5NTlweCkge1xuICAgIC5sLWNvbnRhaW5lcmhvcml6b250YWwubC1jb250YWluZXJob3Jpem9udGFsLWlzLW1pbnBhZCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDE4cHg7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxOHB4OyB9IH1cblxuLmwtY29udGFpbmVyaG9yaXpvbnRhbC1zbWFsbCB7XG4gIG1heC13aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAubC1jb250YWluZXJob3Jpem9udGFsLXNtYWxsIHtcbiAgICAgIG1heC13aWR0aDogNTQwcHg7IH0gfVxuXG4ubC1jb250YWluZXJob3Jpem9udGFsLW1lZGl1bSB7XG4gIG1heC13aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAubC1jb250YWluZXJob3Jpem9udGFsLW1lZGl1bSB7XG4gICAgICBtYXgtd2lkdGg6IDcwMHB4OyB9IH1cblxuLypcbkNvbnRhaW5lciBWZXJ0aWNhbFxuXG5NYXJrdXA6XG48ZGl2IGNsYXNzPVwibC1jb250YWluZXJ2ZXJ0aWNhbFwiPlxuQ29udGVudFxuPC9kaXY+XG5cblN0eWxlZ3VpZGUgMi42XG4qL1xuLmwtY29udGFpbmVydmVydGljYWwge1xuICBwYWRkaW5nLWJvdHRvbTogMThweDtcbiAgcGFkZGluZy10b3A6IDE4cHg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gICAgLmwtY29udGFpbmVydmVydGljYWwge1xuICAgICAgcGFkZGluZy1ib3R0b206IDM2cHg7XG4gICAgICBwYWRkaW5nLXRvcDogMzZweDsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAubC1jb250YWluZXJ2ZXJ0aWNhbC1zbWFsbCB7XG4gICAgcGFkZGluZy1ib3R0b206IDE4cHg7XG4gICAgcGFkZGluZy10b3A6IDE4cHg7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogODYwcHgpIHtcbiAgLmwtbWVudSB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cbiAgICAubC1tZW51ID4gKiB7XG4gICAgICBtYXJnaW4tbGVmdDogMThweDsgfSB9XG5cbi5sLW1lbnUtc2Vjb25kYXJ5IHtcbiAgZGlzcGxheTogZmxleDsgfVxuICAubC1tZW51LXNlY29uZGFyeSA+ICoge1xuICAgIGZsZXg6IDE7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDg2MHB4KSB7XG4gICAgLmwtbWVudS1zZWNvbmRhcnkgPiAqIHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvOyB9IH1cblxuLypcblNwYWNpbmdcblxuU2V0cyB0b3AgYW5kIGJvdHRvbSBtYXJnaW5zXG5cbk1hcmt1cDpcbjxkaXYgY2xhc3M9XCJsLXNwYWNpbmdcIj5Db250ZW50PC9kaXY+XG5cblN0eWxlZ3VpZGUgMi4zXG4qL1xuLmwtc3BhY2luZyB7XG4gIG1hcmdpbi1ib3R0b206IDE4cHg7XG4gIG1hcmdpbi10b3A6IDE4cHg7IH1cblxuLypcbkNoaWxkcmVuIFZlcnRpY2FsXG5cblNldHMgYm90dG9tIG1hcmdpbnMgZm9yIGVhY2ggY2hpbGQuXG5cbkRlZmF1bHQgLSBFYWNoIGNoaWxkIGV4Y2VwdCB0aGUgbGFzdFxuLmwtY2hpbGRyZW52ZXJ0aWNhbC1hbGwgLSBFdmVyeSBjaGlsZCBnZXRzIGJvdHRvbSBtYXJnaW5cblxuTWFya3VwOlxuPGRpdiBjbGFzcz1cImwtY2hpbGRyZW52ZXJ0aWNhbFwiPlxuICA8cD5Db250ZW50PC9wPlxuICA8cD5Db250ZW50PC9wPlxuICA8cD5Db250ZW50PC9wPlxuPC9kaXY+XG5cblN0eWxlZ3VpZGUgMi40XG4qL1xuLmwtY2hpbGRyZW52ZXJ0aWNhbCA+ICo6bm90KDpsYXN0LWNoaWxkKSB7XG4gIG1hcmdpbi1ib3R0b206IDM2cHg7IH1cblxuLmwtY2hpbGRyZW52ZXJ0aWNhbCAubC1jaGlsZHJlbnZlcnRpY2FsLXgtZXhjbHVkZSB7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLmwtdmVydGljYWxjaGlscmVuLWFsbCA+ICoge1xuICBtYXJnaW4tYm90dG9tOiAzNnB4OyB9XG5cbi5sLWNoaWxkcmVudmVydGljYWwtc21hbGwgPiAqOm5vdCg6bGFzdC1jaGlsZCkge1xuICBtYXJnaW4tYm90dG9tOiAxOHB4OyB9XG5cbi8qXG5XcmFwXG5cbkF1dG8gZ2VuZXJhdGVzIGxlZnQgYW5kIHJpZ2h0IHBhZGRpbmcgYmFzZWQgb24gdmlld3BvcnRcblxuRGVmYXVsdCAtIFRoZSBkZWZhdWx0IHVzZSBjYXNlXG4ubC13cmFwLXNwYW5tb2JpbGUgLSBObyBtaW5pbXVtIHBhZGRpbmcgZm9yIG1vYmlsZVxuXG5NYXJrdXA6XG48ZGl2IGNsYXNzPVwibC13cmFwIHskbW9kaWZpZXJzfVwiPkNvbnRlbnQ8L2Rpdj5cblxuU3R5bGVndWlkZSAyLjJcbiovXG4ubC13cmFwIHtcbiAgcGFkZGluZy1sZWZ0OiAxOHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxOHB4OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgIC5sLXdyYXAge1xuICAgICAgcGFkZGluZy1sZWZ0OiBjYWxjKDUwJSAtIDg1MHB4LzIpO1xuICAgICAgcGFkZGluZy1yaWdodDogY2FsYyg1MCUgLSA4NTBweC8yKTsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA2NDlweCkge1xuICAubC13cmFwLXNwYW5tb2JpbGUge1xuICAgIHBhZGRpbmc6IDA7IH0gfVxuXG4vKlxuZ2xvc3NhcnlcblxuTGF5b3V0IHdyYXBwZXIgZ2xvc3NhcnlcblxuTWFya3VwOlxuPGRpdiBjbGFzcz1cImwtZ2xvc3NhcnlcIj5cbiAgPGRpdj5nbG9zc2FyeSB0ZXJtczxkaXY+XG4gIDxkaXY+Z2xvc3NhcnkgZGVmaW5pdGlvbnM8ZGl2PlxuPC9kaXY+XG5cblN0eWxlZ3VpZGUgMi44XG4qL1xuQG1lZGlhIChtaW4td2lkdGg6IDY1MHB4KSB7XG4gIC5sLWdsb3NzYXJ5IHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9IH1cblxuLmNsZWFyZml4OmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7XG4gIGNvbnRlbnQ6IFwiIFwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAwO1xuICBoZWlnaHQ6IDA7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uY2xlYXJmaXgge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLyogc3RhcnQgY29tbWVudGVkIGJhY2tzbGFzaCBoYWNrIFxcKi9cbiogaHRtbCAuY2xlYXJmaXgge1xuICBoZWlnaHQ6IDElOyB9XG5cbi5jbGVhcmZpeCB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qIGNsb3NlIGNvbW1lbnRlZCBiYWNrc2xhc2ggaGFjayAqL1xuLypcbk1vZHVsZSBSdWxlcyAoQXBwKVxuXG5TdHlsZWd1aWRlIDMuMFxuKi9cbi8qXG5Cb3JkZXJlZFxuXG5NYXJrdXA6XG48ZGl2IGNsYXNzPVwiYm9yZGVyZWRcIj5cbkJvcmRlcmVkXG48L2Rpdj5cblxuU3R5bGVndWlkZSAzLjM0XG4qL1xuLmJvcmRlcmVkIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYzsgfVxuXG4vKlxuQnV0dG9uXG5cbkRlZmF1bHQgLSBTdGFuZGFyZCBidXR0b24gc3R5bGluZ1xuLmJ1dHRvbi1mb290ZXIgLSBCdXR0b25zIHVzZWQgaW4gdGhlIGZvb3RlciBlbGVtZW50XG4uYnV0dG9uLWhlaWdodC1zbWFsbCAtIHNob3J0ZXIgYnV0dG9uLlxuLmJ1dHRvbi1tYXJrZXRpbmcgLSBGb3IgdXNlIG9uIGxpZ2h0IGJhY2tncm91bmRzIHdpdGggbWFya2V0aW5nIGNvbnRlbnRcbi5idXR0b24tbWFya2V0aW5nLWxpZ2h0IC0gRm9yIHVzZSBvbiBkYXJrIGJhY2tncm91bmRzIHdpdGggbWFya2V0aW5nIGNvbnRlbnRcbi5idXR0b24tbWVudSAtIFdoZW4gYSBidXR0b24gYXBwZWFycyBpbiB0aGUgbmF2aWdhdGlvblxuLmJ1dHRvbi1zaWdudXAgLSBSb3VuZGVkIGNvcm5lcnMgZm9yIGF1dGggdmlld3Ncbi5idXR0b24td2hpdGUgLSBGb3IgdXNlIG9uIGEgZGFyayBiYWNrZ3JvdW5kLlxuLmJ1dHRvbi13aWR0aC1mdWxsIC0gc3RyZXRjaGVzIHRoZSBsZW5ndGggb2YgdGhlIGF2YWlsYWJsZSBzcGFjZS5cblxuXG5NYXJrdXA6XG48YnV0dG9uIGNsYXNzPVwiYnV0dG9uIHskbW9kaWZpZXJzfVwiPkJ1dHRvbjwvYnV0dG9uPlxuXG5TdHlsZWd1aWRlIDMuMVxuKi9cbi5idXR0b24ge1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBiYWNrZ3JvdW5kOiAjMjhhZGUzO1xuICBib3JkZXI6IDA7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGNvbG9yOiAjZmZmO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6IFwicHJveGltYSBub3ZhXCIsIFwiSGVsdmV0aWNhXCIsIFwiU2Fucy1TZXJpZlwiO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDE4cHggMzZweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC5idXR0b246aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICMxOThmYmY7XG4gICAgY29sb3I6ICNmZmY7IH1cbiAgLmJ1dHRvbi5kaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZDogIzY5Njk2OTsgfVxuXG4uYnV0dG9uLXdoaXRlIHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgY29sb3I6ICMyOGFkZTM7IH1cblxuLmJ1dHRvbi1mb290ZXIge1xuICBiYWNrZ3JvdW5kOiAjRjJGMkYyO1xuICBjb2xvcjogIzI4YWRlMztcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDk1MHB4KSB7XG4gICAgLmJ1dHRvbi1mb290ZXIge1xuICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMi43cHg7XG4gICAgICBwYWRkaW5nLXRvcDogMi43cHg7IH0gfVxuICAuYnV0dG9uLWZvb3Rlcjpob3ZlciB7XG4gICAgY29sb3I6ICMxNTVhNzY7IH1cblxuLmJ1dHRvbi1tZW51IHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgYm94LXNoYWRvdzogIzI4YWRlMyAwIDAgMCAxcHggaW5zZXQ7XG4gIGNvbG9yOiAjMjhhZGUzO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuXG4uYnV0dG9uLW1hcmtldGluZyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG4gIC5idXR0b24tbWFya2V0aW5nOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGNvbG9yOiAjMjhhZGUzOyB9XG5cbi5idXR0b24tbWFya2V0aW5nLWxpZ2h0IHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgIzI4YWRlMztcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBjb2xvcjogIzI4YWRlMztcbiAgZm9udC1zaXplOiAxOHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuICAuYnV0dG9uLW1hcmtldGluZy1saWdodDpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogIzI4YWRlMztcbiAgICBib3JkZXItY29sb3I6ICMyOGFkZTM7XG4gICAgY29sb3I6ICNmZmY7IH1cblxuLmJ1dHRvbi1wcGMge1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6IDEzLjVweDtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY1MHB4KSB7XG4gICAgLmJ1dHRvbi1wcGMge1xuICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgcGFkZGluZzogMThweDtcbiAgICAgIHdpZHRoOiAzMzdweDsgfSB9XG5cbi5idXR0b24tb3V0bGluZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZmZmO1xuICBmb250LXNpemU6IDE4cHg7XG4gIHBhZGRpbmc6IDE4cHg7XG4gIHdpZHRoOiBhdXRvOyB9XG4gIC5idXR0b24tb3V0bGluZTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLmJ1dHRvbi1zaWdudXAge1xuICBwYWRkaW5nOiAxOHB4IDU0cHg7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG5cbi5idXR0b24td2lkdGgtZnVsbCB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5idXR0b24taGVpZ2h0LXNtYWxsIHtcbiAgcGFkZGluZzogOXB4IDE4cHg7IH1cblxuLypcbkNlbnRlcmVkXG5cbmNlbnRlcnMgdGV4dC5cblxuTWFya3VwOlxuPGRpdiBjbGFzcz1cImNlbnRlcmVkXCI+SSBhbSBjZW50ZXJlZDwvZGl2PlxuXG5TdHlsZWd1aWRlIDMuNDZcbiovXG4uY2VudGVyZWQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLypcbkNoYXB0ZXJcblxuRGVmYXVsdCAtIFN0YW5kYXJkIHZpZXdcbi5kaXNhYmxlZCAtIE5vIGludGVyYWN0aW9uXG4ubG9ja2VkIC0gTG9ja2VkIG91dCAoc29tZSByZXF1aXJlbWVudCBub3QgbWV0KVxuLnBhc3NlZCAtIFBhc3NlZCBhbmQgY29tcGxldGVcblxuTWFya3VwOlxuPGFydGljbGUgY2xhc3M9XCJjaGFwdGVyIHskbW9kaWZpZXJzfVwiPlxuICAgIDxoZWFkZXIgY2xhc3M9XCJ2aWRfaGVhZGVyXCI+XG4gICAgICAgICA8aDI+PGEgaHJlZj1cIiNcIj5UaXRsZTwvYT48L2gyPlxuICAgIDwvaGVhZGVyPlxuICAgIDxwIGNsYXNzPVwic3RhdHVzIHBhc3NlZFwiPlN0YXR1czwvcD5cbiAgICA8YSBjbGFzcz1cImNoYXB0ZXJfdmlldyBjaGFwdGVyLWltYWdlIGltYWdlXCIgaHJlZj1cIiNcIiBzdHlsZT1cImJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2ltYWdlcy90aWxlLW5vdGlmaWNhdGlvbnMucG5nJyk7XCI+PC9hPlxuPC9hcnRpY2xlPlxuXG5TdHlsZWd1aWRlIDMuMjRcbiovXG4uY2hhcHRlciB7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBkaXNwbGF5OiBmbGV4O1xuICBtaW4taGVpZ2h0OiAyODZweDtcbiAgZmxleDogMTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgei1pbmRleDogMjA7IH1cbiAgLmNoYXB0ZXI6aG92ZXIge1xuICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMjUpOyB9XG4gIC5jaGFwdGVyIGhlYWRlciwgLmNoYXB0ZXIgLnNraWxscyB7XG4gICAgcGFkZGluZzogOXB4OyB9XG4gIC5jaGFwdGVyIGgxIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDFlbTsgfVxuICAuY2hhcHRlciBoMiB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5jaGFwdGVyIHAge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsaW5lLWhlaWdodDogMS4yZW07IH1cbiAgLmNoYXB0ZXIgaGVhZGVyIHtcbiAgICBvcmRlcjogMzsgfVxuICAuY2hhcHRlciAuc3RhdHVzIHtcbiAgICBiYWNrZ3JvdW5kOiAjOWU5ZTllO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIG9yZGVyOiAxO1xuICAgIHBhZGRpbmc6IDQuNXB4IDlweDtcbiAgICB6LWluZGV4OiAyMDsgfVxuICAgIC5jaGFwdGVyIC5zdGF0dXMgc3BhbiB7XG4gICAgICBvcmRlcjogMjsgfVxuICAgIC5jaGFwdGVyIC5zdGF0dXMucGFzc2VkIHtcbiAgICAgIGJhY2tncm91bmQ6ICM5YWJhMzg7IH1cbiAgICAuY2hhcHRlciAuc3RhdHVzLmlucHJvZ3Jlc3Mge1xuICAgICAgYmFja2dyb3VuZDogIzI4YWRlMzsgfVxuICAgIC5jaGFwdGVyIC5zdGF0dXMubG9ja2VkIHtcbiAgICAgIGJhY2tncm91bmQ6ICMwMDA7IH1cbiAgICAuY2hhcHRlciAuc3RhdHVzLnJldGFrZSB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZTc1MzQ1OyB9XG4gIC5jaGFwdGVyIC5pbWFnZSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZpbHRlcjogZ3JheXNjYWxlKDEwMCUpO1xuICAgIGZsZXg6IDE7XG4gICAgaGVpZ2h0OiAwO1xuICAgIG9yZGVyOiAyO1xuICAgIGhlaWdodDogNzAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDEwOyB9XG4gIC5jaGFwdGVyIC5za2lsbHMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNGMkYyRjI7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjJlbTtcbiAgICBvcmRlcjogNDtcbiAgICB6LWluZGV4OiAyMDsgfVxuICAgIC5jaGFwdGVyIC5za2lsbHMgYSB7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsOyB9XG4gIC5jaGFwdGVyLmRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAuNTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuICAuY2hhcHRlci5sb2NrZWQge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gIC5jaGFwdGVyLnBhc3NlZCAuaW1hZ2Uge1xuICAgIGZpbHRlcjogZ3JheXNjYWxlKDAlKTsgfVxuXG4vKlxuQ2hvaWNlc1xuXG5Eb2hlcnR5IFZpZGVvc1xuXG5NYXJrdXA6XG48c2VjdGlvbiBjbGFzcz1cImNob2ljZXNcIiBpZD1cIm9wdGlvbnNcIj5cbiAgPGgyPkhlcmUgYXJlIGZvdXIgdHlwZXMgb2YgYXR0aXR1ZGVzIHRoYXQgd2UgaGF2ZSBmb3VuZCBpbiBvdXIgcmVzZWFyY2guIFBsZWFzZSByZWFkIGFsbCBmb3VyIGFuZCB0aGVuIHNlbGVjdCB3aGljaCBvbmUgYmVzdCBmaXRzIHlvdSBhdCB0aGlzIHRpbWUuPC9oMj5cbiAgPHVsIGNsYXNzPVwiY2hvaWNlLWxpc3RcIj5cbiAgICA8bGkgY2xhc3M9XCJjaG9pY2Utd3JhcHBlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNob2ljZVwiPlxuICAgICAgICA8cD5JJ20gZG9uZSB3aXRoIHRoaXMgcmVsYXRpb25zaGlwOyBpdCdzIHRvbyBsYXRlIG5vdyBldmVuIGlmIG15IHBhcnRuZXIgd2VyZSB0byBtYWtlIG1ham9yIGNoYW5nZXMuPC9wPlxuICAgICAgICA8YSBjbGFzcz1cImJ1dHRvblwiIGRhdGEtb3B0aW9uPVwiZG9uZVwiIGRhdGEtdHlwZT1cIm9wdGlvblwiPldhdGNoIHRoaXMgVmlkZW88L2E+XG4gICAgICA8L2Rpdj5cbiAgICA8L2xpPlxuICAgIDxsaSBjbGFzcz1cImNob2ljZS13cmFwcGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2hvaWNlXCI+XG4gICAgICAgIDxwPkkgaGF2ZSBtaXhlZCBmZWVsaW5ncyBhYm91dCB0aGUgYnJlYWt1cDsgc29tZXRpbWVzIEkgdGhpbmsgaXQncyBhIGdvb2QgaWRlYSBhbmQgc29tZXRpbWVzIEknbSBub3Qgc3VyZS48L3A+XG4gICAgICAgIDxhIGNsYXNzPVwiYnV0dG9uXCIgZGF0YS1vcHRpb249XCJtaXhlZFwiIGRhdGEtdHlwZT1cIm9wdGlvblwiPldhdGNoIHRoaXMgVmlkZW88L2E+XG4gICAgICA8L2Rpdj5cbiAgICA8L2xpPlxuICAgIDxsaSBjbGFzcz1cImNob2ljZS13cmFwcGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2hvaWNlXCI+XG4gICAgICAgIDxwPkkgd291bGQgY29uc2lkZXIgcmVjb25jaWxpbmcgaWYgbXkgcGFydG5lciBnb3Qgc2VyaW91cyBhYm91dCBtYWtpbmcgbWFqb3IgY2hhbmdlcy48L3A+XG4gICAgICAgIDxhIGNsYXNzPVwiYnV0dG9uXCIgZGF0YS1vcHRpb249XCJtYWpvcmNoYW5nZXNcIiBkYXRhLXR5cGU9XCJvcHRpb25cIj5XYXRjaCB0aGlzIFZpZGVvPC9hPlxuICAgICAgPC9kaXY+XG4gICAgPC9saT5cbiAgICA8bGkgY2xhc3M9XCJjaG9pY2Utd3JhcHBlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNob2ljZVwiPlxuICAgICAgICA8cD5JIGRvbid0IHdhbnQgdGhpcyBicmVha3VwLCBhbmQgSSB3b3VsZCB3b3JrIGhhcmQgdG8gZ2V0IHVzIGJhY2sgdG9nZXRoZXIuPC9wPlxuICAgICAgICA8YSBjbGFzcz1cImJ1dHRvblwiIGRhdGEtb3B0aW9uPVwiZG9udHdhbnRcIiBkYXRhLXR5cGU9XCJvcHRpb25cIj5XYXRjaCB0aGlzIFZpZGVvPC9hPlxuICAgICAgPC9kaXY+XG4gICAgPC9saT5cbiAgPC91bD5cbjwvc2VjdGlvbj5cblxuU3R5bGVndWlkZSAzLjVcbiovXG4uY2hvaWNlcyB7XG4gIHBhZGRpbmc6IDAgOXB4OyB9XG4gIC5jaG9pY2VzIGgyIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICAgIG1hcmdpbi1ib3R0b206IDE4cHg7XG4gICAgcGFkZGluZzogMCA5cHg7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAgIC5jaG9pY2VzIGgyIHtcbiAgICAgICAgY29sb3I6ICMyOGFkZTM7XG4gICAgICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMmVtOyB9IH1cblxuLmNob2ljZS13cmFwcGVyIHtcbiAgcGFkZGluZzogMC4wNXB4OyB9XG5cbi5jaG9pY2Uge1xuICBiYWNrZ3JvdW5kOiAjRjJGMkYyO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAxOHB4O1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMThweCAwOyB9XG4gIC5jaG9pY2UgaW5wdXQge1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cblxuLmNob2ljZXMtYWR2YW5jZS1idXR0b24ge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgbWFyZ2luOiAxOHB4IDA7IH1cblxuLypcbkNyZWRpdHNcblxuTWFya3VwOlxuPHNlY3Rpb24gY2xhc3M9XCJjcmVkaXRzIHRleHQtY29udGFpbmVyIGwtY29udGFpbmVyaG9yaXpvbnRhbFwiPlxuICA8YXJ0aWNsZT5cbiAgICA8aDE+Q2VudGVyIGZvciBEaXZvcmNlIEVkdWNhdGlvbjwvaDE+XG4gICAgPGFkZHJlc3M+XG4gICAgICAxMDA1IEUuIFN0YXRlIFN0LiwgU3VpdGUgR1xuICAgICAgPGJyPkF0aGVucywgT0ggNDU3MDFcbiAgICA8L2FkZHJlc3M+XG4gICAgPGFkZHJlc3M+XG4gICAgICA8YnI+VG9sbCBGcmVlOiA4NzctODc0LTEzNjVcbiAgICA8L2FkZHJlc3M+XG4gICAgPGFkZHJlc3M+XG4gICAgICBXZWI6XG4gICAgICA8YnI+PGEgaHJlZj1cImh0dHA6Ly93d3cuZGl2b3JjZS1lZHVjYXRpb24uY29tXCIgdGFyZ2V0PVwiX2JsYW5rXCI+aHR0cDovL3d3dy5kaXZvcmNlLWVkdWNhdGlvbi5jb208L2E+XG4gICAgPC9hZGRyZXNzPlxuICA8L2FydGljbGU+XG4gIDxhcnRpY2xlPlxuICAgIDxoMT5DcmVkaXRzPC9oMT5cbiAgICA8cD5cbiAgICAgIFRoZSB2aWRlb3Mgc2hvd24gYXJlIGEgcmV2aXNpb24gb2YgYW4gZWFybGllciB2ZXJzaW9uLCB3aGljaCB3b24gdGhlIFBvc2l0aXZlIFBhcmVudGluZyBBd2FyZCBmcm9tIHRoZSBDaGlsZHJlbidzIFJpZ2h0cyBDb3VuY2lsLCB0aGUgVGVsbHkgQXdhcmQsIGFuZCB0aGUgTW9kZWwgUHJvZ3JhbSBBd2FyZCBmcm9tIHRoZSBTdWJzdGFuY2UgQWJ1c2UgYW5kIE1lbnRhbCBIZWFsdGggU2VydmljZXMgQWRtaW5pc3RyYXRpb24uXG4gICAgPC9wPlxuICAgIDxoMz5FeGVjdXRpdmUgUHJvZHVjZXI6PC9oMz5cbiAgICA8cD5Eb25hbGQgR29yZG9uLCBQaC5ELjwvcD5cbiAgICA8aDM+V2ViIERlc2lnbiBhbmQgRGV2ZWxvcG1lbnQ6PC9oMz5cbiAgICA8cD5Db25jZW50cmljIFNreSwgRXVnZW5lLCBPcmVnb248L3A+XG4gICAgPGgzPlZpZGVvIGFuZCBBdWRpbyBEZXZlbG9wbWVudDo8L2gzPlxuICAgIDx1bD5cbiAgICAgIDxsaT5TdWxsaXZhbiBSZWNvcmRpbmcsIE1lZGZvcmQsIE9yZWdvbjwvbGk+XG4gICAgICA8bGk+TWVkaWFCcml0ZTwvbGk+XG4gICAgPC91bD5cbiAgICA8aDM+QXV0aG9yICZhbXA7IEV4ZWMuIFByb2R1Y2VyOjwvaDM+XG4gICAgPGg0PkRvbmFsZCBBLiBHb3Jkb24sIFBoLkQuPC9oND5cbiAgICA8cD5Eci4gR29yZG9uIGlzIGEgY2hpbGQgYW5kIGZhbWlseSBwc3ljaG9sb2dpc3QsIGEgcmVzZWFyY2hlciBhbmQgcHVibGljIHNwZWFrZXIsIGFuZCBFbWVyaXR1cyBQcm9mZXNzb3Igb2YgUHN5Y2hvbG9neSBmcm9tIE9oaW8gVW5pdmVyc2l0eTwvcD5cbiAgICA8cD5UaGUgQ2VudGVyIGZvciBEaXZvcmNlIEVkdWNhdGlvbiB3b3VsZCBsaWtlIHRvIHRoYW5rIFRoZSBIb25vcmFibGUgQnJ1Y2UgUGV0ZXJzb24gKERpc3RyaWN0IENvdXJ0IEp1ZGdlIGluIE1pbm5lc290YSkgYW5kIERyLiBXaWxsaWFtIERvaGVydHkgKFByb2Zlc3NvciBpbiBEZXB0LiBvZiBGYW1pbHkgU29jaWFsIFNjaWVuY2VzLCBVbml2ZXJzaXR5IG9mIE1pbm5lc290YSkgZm9yIHRoZWlyIGRvbmF0aW9uIG9mIHRpbWUgYW5kIGNvbnRyaWJ1dGlvbiB0byB0aGUgSW50cm9kdWN0aW9uL09yaWVudGF0aW9uIHNlY3Rpb24gb2YgdGhpcyBjbGFzcyBhbmQgdGhlIHNlY3Rpb24gc3BlYWtpbmcgdG8gQWx0ZXJuYXRpdmVzIHRvIGEgRGl2b3JjZSBhbHNvIHByZXNlbnRlZCBpbiB0aGUgQ0lCTyBjbGFzcy48L3A+XG4gICAgPHA+Q29weXJpZ2h0IMKpIDIwMDc8L3A+XG4gICAgPHA+QWxsIHJpZ2h0cyByZXNlcnZlZC4gTm8gcGFydCBvZiB0aGlzIHByb2R1Y3QgbWF5IGJlIHJlcHJvZHVjZWQgaW4gYW55IGZvcm0sIGVsZWN0cm9uaWMgb3IgbWVjaGFuaWNhbCwgaW5jbHVkaW5nIHBob3RvZ3JhcGh5LCByZWNvcmRpbmcsIG9yIGFueSBpbmZvcm1hdGlvbiBzdG9yYWdlIG9yIHJldHJpZXZhbCBzeXN0ZW0sIGV4Y2VwdCBhcyBzcGVjaWZpZWQgYnkgdGhlIHB1Ymxpc2hlciBpbiBsZWdhbCBhZ3JlZW1lbnQuPC9wPlxuICA8L2FydGljbGU+XG48L3NlY3Rpb24+XG5cblN0eWxlZ3VpZGUgMy42XG4qL1xuLmNyZWRpdHMge1xuICBwYWRkaW5nLWJvdHRvbTogMThweDtcbiAgcGFkZGluZy10b3A6IDE4cHg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gICAgLmNyZWRpdHMge1xuICAgICAgZGlzcGxheTogZmxleDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgIC5jcmVkaXRzIGFydGljbGUge1xuICAgICAgZmxleDogMTtcbiAgICAgIHBhZGRpbmc6IDE4cHg7IH1cbiAgICAgIC5jcmVkaXRzIGFydGljbGU6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjRjJGMkYyOyB9IH1cblxuLypcbkRhdGEgVGFibGVcblxuTWFya3VwOlxuPGRpdiBjbGFzcz1cImRhdGF0YWJsZVwiPlxuICA8dGFibGU+XG4gICAgPHRoZWFkPlxuICAgICAgPHRyPlxuICAgICAgICA8dGggc2NvcGU9XCJyb3dcIj5DYXNlIE51bWJlcjwvdGg+XG4gICAgICAgIDx0aCBzY29wZT1cInJvd1wiPkN1bXVsYXRpdmUgU2NvcmU8L3RoPlxuICAgICAgICA8dGggc2NvcGU9XCJyb3dcIj5UaW1lIG9uIFNpdGU8L3RoPlxuICAgICAgICA8dGggc2NvcGU9XCJyb3dcIj5Ta2lsbHMgUHJhY3RpY2U8L3RoPlxuICAgICAgICA8dGggc2NvcGU9XCJyb3dcIj5TdGF0ZS9Db3VudHkgUmVxdWlyZW1lbnRzPC90aD5cbiAgICAgICAgPHRoIHNjb3BlPVwicm93XCI+U3VydmV5PC90aD5cbiAgICAgIDwvdHI+XG4gICAgPC90aGVhZD5cbiAgICA8dGJvZHk+XG4gICAgICA8dHI+XG4gICAgICAgIDx0ZD5Ob25lPC90ZD5cbiAgICAgICAgPHRkPjU8L3RkPlxuICAgICAgICA8dGQ+MTJociAxMm1pbjwvdGQ+XG4gICAgICAgIDx0ZD5Db21wbGV0ZTwvdGQ+XG4gICAgICAgIDx0ZD5JbmNvbXBsZXRlPC90ZD5cbiAgICAgICAgPHRkPkluY29tcGxldGU8L3RkPlxuICAgICAgPC90cj5cbiAgICA8L3Rib2R5PlxuICA8L3RhYmxlPlxuPC9kaXY+XG5cblN0eWxlZ3VpZGUgMy4yNVxuKi9cbi5kYXRhdGFibGUge1xuICBtYXJnaW46IDAgMThweCAxOHB4OyB9XG4gIC5kYXRhdGFibGUgdGQsXG4gIC5kYXRhdGFibGUgdGgge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHBhZGRpbmctcmlnaHQ6IDM2cHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAuZGF0YXRhYmxlIHRkIHtcbiAgICBmb250LXNpemU6IDMwcHg7XG4gICAgcGFkZGluZy10b3A6IDlweDsgfVxuXG4vKlxuRGlhbG9nXG5cbk5vIGV4YW1wbGUgYXZhaWxhYmxlLCBqdXN0IHBsYWNlaG9sZGVyIGZvciBub3cuXG5cblN0eWxlZ3VpZGUgMy4yNlxuKi9cbi51aS13aWRnZXQtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4zNSk7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IGFic29sdXRlOyB9XG5cbi51aS1mcm9udCB7XG4gIHotaW5kZXg6IDEwMTsgfVxuXG4udWktZGlhbG9nLFxuI21vZGFsIHtcbiAgYm9yZGVyOiAxMHB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB6LWluZGV4OiAxMDE7IH1cbiAgLnVpLWRpYWxvZy5tb2RhbC1jb3Vyc2UsXG4gICNtb2RhbC5tb2RhbC1jb3Vyc2Uge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDk1MHB4KSB7XG4gICAgLnVpLWRpYWxvZyxcbiAgICAjbW9kYWwge1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIGxlZnQ6IDBweCAhaW1wb3J0YW50O1xuICAgICAgcG9zaXRpb246IGZpeGVkICFpbXBvcnRhbnQ7XG4gICAgICB0b3A6IDBweCAhaW1wb3J0YW50O1xuICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfSB9XG4gIC51aS1kaWFsb2cgLnVpLWRpYWxvZy10aXRsZWJhcixcbiAgLnVpLWRpYWxvZyAjbW9kYWxfaGVhZGVyLFxuICAjbW9kYWwgLnVpLWRpYWxvZy10aXRsZWJhcixcbiAgI21vZGFsICNtb2RhbF9oZWFkZXIge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgcGFkZGluZzogMThweCAxOHB4IDFweDsgfVxuICAgIC51aS1kaWFsb2cgLnVpLWRpYWxvZy10aXRsZWJhciBidXR0b24udWktYnV0dG9uLFxuICAgIC51aS1kaWFsb2cgI21vZGFsX2hlYWRlciBidXR0b24udWktYnV0dG9uLFxuICAgICNtb2RhbCAudWktZGlhbG9nLXRpdGxlYmFyIGJ1dHRvbi51aS1idXR0b24sXG4gICAgI21vZGFsICNtb2RhbF9oZWFkZXIgYnV0dG9uLnVpLWJ1dHRvbiB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgY29sb3I6ICMyOGFkZTM7XG4gICAgICB0b3A6IDEwcHg7XG4gICAgICByaWdodDogMTBweDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAudWktZGlhbG9nLm1vZGFsLWNvdXJzZSAjbW9kYWxfaGVhZGVyLFxuICAjbW9kYWwubW9kYWwtY291cnNlICNtb2RhbF9oZWFkZXIge1xuICAgIG1hcmdpbi1ib3R0b206IC0xcHg7XG4gICAgZm9udC1zaXplOiAzMnB4OyB9XG4gIC51aS1kaWFsb2c6bm90KC5tb2RhbC1jb3Vyc2UpIC51aS1kaWFsb2ctY29udGVudCxcbiAgLnVpLWRpYWxvZzpub3QoLm1vZGFsLWNvdXJzZSkgI2NvbnRlbnQsXG4gICNtb2RhbDpub3QoLm1vZGFsLWNvdXJzZSkgLnVpLWRpYWxvZy1jb250ZW50LFxuICAjbW9kYWw6bm90KC5tb2RhbC1jb3Vyc2UpICNjb250ZW50IHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAxOHB4OyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDk1MHB4KSB7XG4gICAgICAudWktZGlhbG9nOm5vdCgubW9kYWwtY291cnNlKSAudWktZGlhbG9nLWNvbnRlbnQsXG4gICAgICAudWktZGlhbG9nOm5vdCgubW9kYWwtY291cnNlKSAjY29udGVudCxcbiAgICAgICNtb2RhbDpub3QoLm1vZGFsLWNvdXJzZSkgLnVpLWRpYWxvZy1jb250ZW50LFxuICAgICAgI21vZGFsOm5vdCgubW9kYWwtY291cnNlKSAjY29udGVudCB7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG8gIWltcG9ydGFudDsgfSB9XG4gIC51aS1kaWFsb2cubW9kYWwtY291cnNlICNjb250ZW50LFxuICAjbW9kYWwubW9kYWwtY291cnNlICNjb250ZW50IHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAxMTFweCk7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgcGFkZGluZzogMThweDsgfVxuICAudWktZGlhbG9nICNtb2RhbF9oZWFkZXIucmVmZXJlbmNlLW1vZGFsLFxuICAjbW9kYWwgI21vZGFsX2hlYWRlci5yZWZlcmVuY2UtbW9kYWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIHBhZGRpbmctYm90dG9tOiAxN3B4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDgwcHg7IH1cbiAgLnVpLWRpYWxvZyAjY2xvc2UsXG4gICNtb2RhbCAjY2xvc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBjb2xvcjogIzI4YWRlMztcbiAgICB0b3A6IDEwcHg7XG4gICAgcmlnaHQ6IDEwcHg7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC51aS1kaWFsb2cgaDIsXG4gICNtb2RhbCBoMiB7XG4gICAgbGluZS1oZWlnaHQ6IDEuMmVtOyB9XG4gIC51aS1kaWFsb2cgcCxcbiAgI21vZGFsIHAge1xuICAgIG1hcmdpbi1ib3R0b206IDE4cHg7IH1cbiAgLnVpLWRpYWxvZy5tb2RhbC1jb3Vyc2UgcCxcbiAgI21vZGFsLm1vZGFsLWNvdXJzZSBwIHtcbiAgICBtYXJnaW46IDA7IH1cbiAgLnVpLWRpYWxvZyAuYnV0dG9uLFxuICAjbW9kYWwgLmJ1dHRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogOXB4OyB9XG4gIC51aS1kaWFsb2cgLmNvdW50eV9uYW1lLFxuICAjbW9kYWwgLmNvdW50eV9uYW1lIHtcbiAgICBmb250LXdlaWdodDogYm9sZDsgfVxuXG4jb3ZlcmxheSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42NSk7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMTAwdmg7XG4gIGxlZnQ6IDA7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICB3aWR0aDogMTAwdnc7XG4gIHotaW5kZXg6IDEwMTsgfVxuXG4jbW9kYWwge1xuICBkaXNwbGF5OiBub25lO1xuICBsZWZ0OiA1MCU7XG4gIG1heC1oZWlnaHQ6IDEwMHZoO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApO1xuICB3aWR0aDogNDB2dztcbiAgei1pbmRleDogMTAxOyB9XG4gICNtb2RhbC5tb2RhbC1jb3Vyc2Uge1xuICAgIG92ZXJmbG93LXk6IGluaGVyaXQ7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDk1MHB4KSB7XG4gICAgI21vZGFsIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgIHdpZHRoOiAxMDB2dzsgfSB9XG5cbi8qXG5FcnJvcnMgR2xvYmFsXG5cbk1hcmt1cDpcbjxkaXYgY2xhc3M9XCJlcnJvcnMtZ2xvYmFsXCI+UGxlYXNlIGNvcnJlY3QgdGhlIGVycm9ycyBiZWxvdy48L2Rpdj5cblxuU3R5bGVndWlkZSAzLjI3XG4qL1xuLmVycm9ycy1nbG9iYWwge1xuICBiYWNrZ3JvdW5kOiAjZjI2YzRmO1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBtYXJnaW46IDAgOXB4IDE4cHg7XG4gIHBhZGRpbmc6IDE4cHg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDk1MHB4KSB7XG4gICAgLmVycm9ycy1nbG9iYWwge1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH0gfVxuXG4vKlxuRXJyb3IgNDA0XG5cbk1hcmt1cDpcbjxhcnRpY2xlIGNsYXNzPVwiZXJyb3I0MDRcIj5cbiAgPGgxPjQwNCBFcnJvcjwvaDE+XG4gIDxoMj5JdCBhcHBlYXJzIHRoZXJlIHdhcyBhIGJyZWFrZG93biBpbiBjb21tdW5pY2F0aW9uLjwvaDI+XG4gIDxwPkVpdGhlciB0aGUgVVJMIHdhcyBtaXN0eXBlZCwgbmV2ZXIgZXhpc3RlZCwgb3Igb25jZSBleGlzdGVkIGJ1dCB3YXMgbXlzdGVyaW91c2x5IGxvc3QuPC9wPlxuICA8YSBjbGFzcz1cImJ1dHRvblwiIGhyZWY9XCJcIj5UYWtlIG1lIGhvbWU8L2E+XG4gIDxwPldhbnQgdG8gY29tbXVuaWNhdGUgYmV0dGVyPzxicj4gPGEgaHJlZj1cIlwiPkNoZWNrIG91dCBTa2lsbHMgUHJhY3RpY2U8L2E+PC9wPlxuPC9hcnRpY2xlPlxuXG5TdHlsZWd1aWRlIDMuN1xuKi9cbi5lcnJvcjQwNCB7XG4gIGJhY2tncm91bmQ6ICMxNTVhNzYgdXJsKFwiaW1hZ2VzL2Vycm9yNDA0LnBuZ1wiKSBjZW50ZXIgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBjb2xvcjogI2ZmZjtcbiAgcGFkZGluZzogNTRweCAxOHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtc2hhZG93OiByZ2JhKDAsIDAsIDAsIDAuNSkgMCAycHggNHB4OyB9XG4gIC5lcnJvcjQwNCBoMSB7XG4gICAgbGluZS1oZWlnaHQ6IDE7IH1cbiAgLmVycm9yNDA0IGgyIHtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTY7IH1cbiAgLmVycm9yNDA0IHAge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBsaW5lLWhlaWdodDogMS4zOyB9XG4gIC5lcnJvcjQwNCA+IGEge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuZXJyb3I0MDQgPiAqIHtcbiAgICBtYXJnaW4tYm90dG9tOiA5cHg7IH1cbiAgQG1lZGlhIChtaW4tcmVzb2x1dGlvbjogMmRwcHgpIHtcbiAgICAuZXJyb3I0MDQge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiaW1hZ2VzL2Vycm9yNDA0LTJ4LnBuZ1wiKTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NTBweCkge1xuICAgIC5lcnJvcjQwNCB7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiaW1hZ2VzL2Vycm9yNDA0LWRlc2t0b3AucG5nXCIpO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIG1pbi1oZWlnaHQ6IGNhbGMoMTAwdmggLSA4MHB4KTsgfVxuICAgICAgLmVycm9yNDA0IGgxIHtcbiAgICAgICAgZm9udC1zaXplOiA2NHB4OyB9XG4gICAgICAuZXJyb3I0MDQgaDIge1xuICAgICAgICBmb250LXNpemU6IDMwcHg7IH1cbiAgICAgIC5lcnJvcjQwNCA+IGEge1xuICAgICAgICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgICAgICAgd2lkdGg6IGF1dG87IH1cbiAgICAgIC5lcnJvcjQwNCA+ICoge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxOHB4O1xuICAgICAgICBtYXgtd2lkdGg6IDQ0MHB4OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY1MHB4KSBhbmQgKG1pbi1yZXNvbHV0aW9uOiAyZHBweCkge1xuICAgIC5lcnJvcjQwNCB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJpbWFnZXMvZXJyb3I0MDQtZGVza3RvcC0yeC5wbmdcIik7IH0gfVxuXG4vKlxuRkFRXG5cbk1hcmt1cDpcbjxhcnRpY2xlIGNsYXNzPVwiZmFxc1wiPlxuICA8aGVhZGVyIGNsYXNzPVwicGFnZS10aXRsZSBwYWdlLXRpdGxlLWNlbnRlcmVkXCI+XG4gICAgPGgxPkZBUXM8L2gxPlxuICA8L2hlYWRlcj5cbiAgPG9sPlxuICAgIDxsaT48c3Ryb25nPkkgY2Fu4oCZdCBzZWUgYW55IHBpY3R1cmVzIG9uIHRoZSBzY3JlZW4sIGp1c3Qgd29yZHMuIFdoYXTigJlzIHdyb25nP1xuICAgIDwvc3Ryb25nPlxuICAgIDxzZWN0aW9uPjxwPllvdSBhcmUgdXNpbmcgYW4gaW5jb21wYXRpYmxlIHdlYiBicm93c2VyLiBJbnN0YWxsIGFuZCB1c2UgPGEgaHJlZj1cImh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9jaHJvbWUvXCIgdGFyZ2V0PVwiX2JsYW5rXCI+R29vZ2xlIENocm9tZTwvYT4uPC9wPjwvc2VjdGlvbj5cbiAgICA8L2xpPlxuICAgIDxsaT5cbiAgICAgIDxzdHJvbmc+V2hlbiBJIGxvZyBpbnRvIHRoZSBwcm9ncmFtLCBpdCBrZWVwcyB0ZWxsaW5nIG1lIHRvIHVwZGF0ZSB0aGUgQWRvYmUgRmxhc2hcbiAgICAgICAgUGxheWVyLCBidXQgSeKAmXZlIGFscmVhZHkgZG9uZSB0aGlzIG9uY2UuIFdoYXTigJlzIHdyb25nP1xuICAgICAgPC9zdHJvbmc+XG4gICAgICA8c2VjdGlvbj48cD5Zb3UgYXJlIHVzaW5nIGFuIGluY29tcGF0aWJsZSB3ZWIgYnJvd3Nlci4gSW5zdGFsbCBhbmQgdXNlIDxhIGhyZWY9XCJodHRwOi8vd3d3Lmdvb2dsZS5jb20vY2hyb21lL1wiIHRhcmdldD1cIl9ibGFua1wiPkdvb2dsZSBDaHJvbWU8L2E+LjwvcD48L3NlY3Rpb24+XG4gICAgPC9saT5cbiAgPC9vbD5cbjwvYXJ0aWNsZT5cblxuU3R5bGVndWlkZSAzLjhcbiovXG4uZmFxcyB7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgcGFkZGluZzogMCAxOHB4OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgIC5mYXFzIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDM2cHg7XG4gICAgICBtYXJnaW4tdG9wOiAzNnB4OyB9IH1cbiAgLmZhcXMgb2wge1xuICAgIHBhZGRpbmc6IDAgMThweDsgfVxuICAuZmFxcyBsaSB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGlzdC1zdHlsZTogZGVjaW1hbCBpbnNpZGU7XG4gICAgbWFyZ2luLWJvdHRvbTogMThweDsgfVxuICAuZmFxcyBzZWN0aW9uIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfVxuXG4vKlxuRmVlIFdhaXZlclxuXG5QbGFjZSBob2xkZXJcblxuTWFya3VwOlxuICA8b2wgY2xhc3M9XCJmZWVXYWl2ZXJcIj5cbiAgICA8bGk+XG4gICAgICA8aDE+Q2FwdHVyZSBkb2N1bWVudDwvaDE+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmVlV2FpdmVyLXgtY29udGVudFdyYXBwZXJcIj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8aDI+VGFrZSBwaG90bzwvaDI+XG4gICAgICAgICAgUG9zaXRpb24gbW9iaWxlIGRldmljZSBvdmVyIGRvY3VtZW50LCB0YWtlIGFuZCBzYXZlIHBob3RvIHRvIGRldmljZS5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmZWVXYWl2ZXIteC1mb250c2l6ZS1sYXJnZVwiPk9SPC9kaXY+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGgyPlNjYW4gZG9jdW1lbnQ8L2gyPlxuICAgICAgICAgIFNjYW4gZmlsZSBhbmQgc2F2ZSBmaWxlIHRvIGRldmljZS5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2xpPlxuICAgIDxsaT5cbiAgICAgIDxoMT5Nb3ZlIGRvY3VtZW50IChvcHRpb25hbCk8L2gxPlxuICAgICAgPGRpdiBjbGFzcz1cImZlZVdhaXZlci14LWNvbnRlbnRXcmFwcGVyXCI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGgyPkVtYWlsIGZpbGU8L2gyPlxuICAgICAgICAgIEVtYWlsIHBob3RvIHRvIHlvdXJzZWxmIGFuZCBkb3dubG9hZCB0byBkZXZpY2UuXG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmVlV2FpdmVyLXgtZm9udHNpemUtbGFyZ2VcIj5PUjwvZGl2PlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxoMj5UcmFuc2ZlciBmaWxlPC9oMj5cbiAgICAgICAgICAgIFVwbG9hZCBmaWxlIHRvIGRldmljZS5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2xpPlxuICAgIDxsaT5cbiAgICAgIDxoMT5VcGxvYWQgZG9jdW1lbnQ8L2gxPlxuICAgICAgPGRpdj5TZWxlY3QgXCJDaG9vc2UgRmlsZVwiIGJlbG93IGFuZCBmaW5kIHRoZSBkb2N1bWVudCBmaWxlLjwvZGl2PlxuICAgIDwvbGk+XG4gIDwvb2w+XG5cblN0eWxlZ3VpZGUgMy41MVxuKi9cbiN1cGxvYWQtaW5zdHJ1Y3Rpb25zIHtcbiAgcGFkZGluZy1ib3R0b206IDlweDsgfVxuXG4uZmVlV2FpdmVyIHtcbiAgYm9yZGVyOiBzb2xpZCAjOTc5Nzk3IDFweDtcbiAgY291bnRlci1yZXNldDogaXRlbTtcbiAgcGFkZGluZzogMThweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5mZWVXYWl2ZXIgaDEge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDIycHg7XG4gICAgbWFyZ2luLWxlZnQ6IDI2cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogOXB4OyB9XG4gIC5mZWVXYWl2ZXIgbGkge1xuICAgIGJhY2tncm91bmQ6IHVybChcImltYWdlcy9jaXJjbGVfc21hbGxHcmV5LnN2Z1wiKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBsaW5lLWhlaWdodDogMjJweDtcbiAgICBsaXN0LXN0eWxlOiBub25lICFpbXBvcnRhbnQ7IH1cbiAgICAuZmVlV2FpdmVyIGxpOjpiZWZvcmUge1xuICAgICAgY29udGVudDogY291bnRlcihpdGVtLCBkZWNpbWFsKTtcbiAgICAgIGNvdW50ZXItaW5jcmVtZW50OiBpdGVtO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogMjNweDsgfVxuICAgIC5mZWVXYWl2ZXIgbGk6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxOHB4OyB9XG4gICAgLmZlZVdhaXZlciBsaSBkaXYge1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDE0cHg7IH1cbiAgICAgIC5mZWVXYWl2ZXIgbGkgZGl2Om5vdCguZmVlV2FpdmVyLXgtY29udGVudFdyYXBwZXIpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyN3B4OyB9XG4gICAgICAuZmVlV2FpdmVyIGxpIGRpdjpub3QoOmxhc3Qtb2YtdHlwZSkge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDsgfVxuICAgICAgLmZlZVdhaXZlciBsaSBkaXYgaDIge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxNHB4O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7IH1cbiAgLmZlZVdhaXZlciAuZmVlV2FpdmVyLXgtZm9udHNpemUtbGFyZ2Uge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBsaW5lLWhlaWdodDogMjJweDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogODYwcHgpIHtcbiAgICAuZmVlV2FpdmVyIGgxIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgLmZlZVdhaXZlciBsaSAuZmVlV2FpdmVyLXgtY29udGVudFdyYXBwZXIge1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgICAgIC5mZWVXYWl2ZXIgbGkgLmZlZVdhaXZlci14LWNvbnRlbnRXcmFwcGVyIGRpdiB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDE4cHg7XG4gICAgICAgIG1heC13aWR0aDogMjQ5cHg7IH1cbiAgICAgICAgLmZlZVdhaXZlciBsaSAuZmVlV2FpdmVyLXgtY29udGVudFdyYXBwZXIgZGl2OmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDI3cHg7IH0gfVxuXG4vKlxuRm9vdGVyXG5cbk1hcmt1cDpcbjxmb290ZXIgY2xhc3M9XCJmb290ZXJcIj5cbiAgPGRpdiBjbGFzcz1cImwtY29udGFpbmVyaG9yaXpvbnRhbFwiPlxuICAgIDxhIGhyZWY9XCJodHRwOi8vd3d3LmRpdm9yY2UtZWR1Y2F0aW9uLmNvbS9cIiB0YXJnZXQ9XCJfYmxhbmtcIiBjbGFzcz1cImxvZ29cIj48aW1nIHNyYz1cIi9pbWFnZXMvbG9nby1mb290ZXIucG5nXCIgYWx0PVwiYWx0PVwiIHRoZT1cIlwiIGNlbnRlcj1cIlwiIGZvcj1cIlwiIGRpdm9yY2U9XCJcIiBlZHVjYXRpb249XCJcIiBsb2dvXCJcIj1cIlwiPjwvYT5cbiAgICA8c2VjdGlvbj5cbiAgICAgIDxkbD5cbiAgICAgICAgPGR0PlRvbGwgRnJlZTwvZHQ+XG4gICAgICAgIDxkZD44NzctODc0LTEzNjU8L2RkPlxuICAgICAgICA8ZHQgY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj5FbWFpbDwvZHQ+XG4gICAgICAgIDxkZD48YSBocmVmPVwibWFpbHRvOnN0YWZmQGRpdm9yY2UtZWR1Y2F0aW9uLmNvbVwiPnN0YWZmQGRpdm9yY2UtZWR1Y2F0aW9uLmNvbTwvYT48L2RkPlxuICAgICAgPC9kbD5cbiAgICAgIDxuYXY+XG4gICAgICAgIDx1bD5cbiAgICAgICAgICA8bGk+PGEgaHJlZj1cIi9cIiBjbGFzcz1cImJ1dHRvbiBidXR0b24tZm9vdGVyXCI+SG9tZTwvYT48L2xpPlxuICAgICAgICAgIDxsaT48YSBocmVmPVwiL2NvdXJzZVwiIGNsYXNzPVwiYnV0dG9uIGJ1dHRvbi1mb290ZXJcIj5Db3Vyc2U8L2E+PC9saT5cbiAgICAgICAgICA8bGk+PGEgaHJlZj1cIi9yZWZlcmVuY2UvY3JlZGl0cy9cIiBjbGFzcz1cImJ1dHRvbiBidXR0b24tZm9vdGVyXCI+Q3JlZGl0czwvYT48L2xpPlxuICAgICAgICAgIDxsaT48YSBocmVmPVwiL3JlZmVyZW5jZS9mYXEvXCIgY2xhc3M9XCJidXR0b24gYnV0dG9uLWZvb3RlclwiPkZBUTwvYT48L2xpPlxuICAgICAgICA8L3VsPlxuICAgICAgPC9uYXY+XG4gICAgPC9zZWN0aW9uPlxuICA8L2Rpdj5cbjwvZm9vdGVyPlxuXG5TdHlsZWd1aWRlIDMuOVxuKi9cbi5mb290ZXIge1xuICBib3gtc2hhZG93OiAwIC0xcHggMCAwIHJnYmEoMjcsIDM1LCAzOSwgMC4xNSk7XG4gIHBhZGRpbmctYm90dG9tOiAxOHB4OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5NTBweCkge1xuICAgIC5mb290ZXIge1xuICAgICAgcGFkZGluZy1ib3R0b206IDE4cHg7XG4gICAgICBwYWRkaW5nLXRvcDogMThweDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5NTBweCkge1xuICAgIC5mb290ZXIgLmwtY29udGFpbmVyaG9yaXpvbnRhbCB7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfSB9XG4gIC5mb290ZXIgLmxvZ28ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMThweDtcbiAgICBvcGFjaXR5OiAuODsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NTBweCkge1xuICAgICAgLmZvb3RlciAubG9nbyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIG9wYWNpdHk6IC4zOyB9IH1cbiAgICAuZm9vdGVyIC5sb2dvIGltZyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAgIC5mb290ZXIgLmxvZ286aG92ZXIge1xuICAgICAgb3BhY2l0eTogMTsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDk1MHB4KSB7XG4gICAgICAgIC5mb290ZXIgLmxvZ286aG92ZXIge1xuICAgICAgICAgIG9wYWNpdHk6IC41OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDk1MHB4KSB7XG4gICAgLmZvb3RlciBzZWN0aW9uIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9IH1cbiAgLmZvb3RlciBkbCB7XG4gICAgY29sb3I6ICNjY2M7XG4gICAgbWFyZ2luOiAwIDE4cHggOXB4OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDk1MHB4KSB7XG4gICAgICAuZm9vdGVyIGRsIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfSB9XG4gICAgLmZvb3RlciBkbCBhIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NTBweCkge1xuICAgICAgICAuZm9vdGVyIGRsIGEge1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9IH1cbiAgLmZvb3RlciBkdCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiA0cHg7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogOTUwcHgpIHtcbiAgICAgIC5mb290ZXIgZHQge1xuICAgICAgICBmbG9hdDogbm9uZTsgfSB9XG4gIC5mb290ZXIgZHQ6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICc6ICc7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDk1MHB4KSB7XG4gICAgLmZvb3RlciBkZCB7XG4gICAgICBib3gtc2hhZG93OiAjZjZmM2VlIC0ycHggMCAwIDAgaW5zZXQ7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDRweDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDZweDsgfSB9XG4gIC5mb290ZXIgZGQ6bGFzdC1vZi10eXBlIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5NTBweCkge1xuICAgIC5mb290ZXIgdWwge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIG1hcmdpbi1yaWdodDogMThweDsgfVxuICAgICAgLmZvb3RlciB1bCBsaSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA5cHg7IH0gfVxuICAuZm9vdGVyIC5idXR0b24ge1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NTBweCkge1xuICAgICAgLmZvb3RlciAuYnV0dG9uIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG4gIC5mb290ZXIuaGFzLXJlcXVpcmVtZW50cyB7XG4gICAgcGFkZGluZy1ib3R0b206IDcycHg7IH1cblxuLypcbkZvcmtcblxuTWFya3VwOlxuPHVsIGNsYXNzPVwiZm9ya1wiPlxuICA8bGk+XG4gICAgPGgxIGNsYXNzPVwiZm9yay14LWNvbXBsZXRlXCI+WW91J3ZlIFdhdGNoZWQgVGhpczwvaDE+XG4gICAgPGRpdj5cbiAgICAgIDxpbWcgc3Jjc2V0PVwiaHR0cDovL3BsYWNlaG9sZC5pdC8yNDB4Mjg0IGh0dHA6Ly9wbGFjZWhvbGQuaXQvMTIweDE0MlwiIHNyYz1cImh0dHA6Ly9wbGFjZWhvbGQuaXQvMTIweDE0MlwiIHdpZHRoPVwiMTIwXCIgaGVpZ2h0PVwiMTQyXCIgYWx0PVwie3tkZXNjcmlwdGlvbn19XCI+XG4gICAgPC9kaXY+XG4gICAgPHA+TW9tIGNhbGxzIERhZCBhbmQgZXhwbGFpbnMgd2h5IHNoZSBkZW5pZWQgaGlzIHJlcXVlc3QgZm9yIGV4dHJhIHRpbWUgcHJldmlvdXNseS4gRGFkIHJlYWN0cyBhbmdyaWx5IGFuZCByZWZ1c2VzIGhlciByZXF1ZXN0LiBNb20gdGVsbHMgaGltIHNoZSB3aWxsIG5vdCBncmFudCBleHRyYSB0aW1lIHRoZSBuZXh0IHRpbWUgaGUgYXNrcyBmb3IgaXQuIDwvcD5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uXCIgZGlzYWJsZWQ+V2F0Y2ggVGhpcyBWaWRlbzwvYnV0dG9uPlxuICA8L2xpPlxuICA8bGk+XG4gICAgPGRpdj5cbiAgICAgIDxpbWcgc3Jjc2V0PVwiaHR0cDovL3BsYWNlaG9sZC5pdC8yNDB4Mjg0IGh0dHA6Ly9wbGFjZWhvbGQuaXQvMTIweDE0MlwiIHNyYz1cImh0dHA6Ly9wbGFjZWhvbGQuaXQvMTIweDE0MlwiIHdpZHRoPVwiMTIwXCIgaGVpZ2h0PVwiMTQyXCIgYWx0PVwie3tkZXNjcmlwdGlvbn19XCI+XG4gICAgPC9kaXY+XG4gICAgPHA+TW9tIGNhbGxzIERhZCBhbmQgcHJlc2VudHMgaGVyIHJlYXNvbnMgZm9yIHdhbnRpbmcgQ2FzZXkgaG9tZSBlYXJseSwgYXMgd2VsbCBhcyBmb3Iga2VlcGluZyB0aGUgc2thdGVzIGF0IGhlciBob3VzZS48L3A+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvblwiPldhdGNoIFRoaXMgVmlkZW88L2J1dHRvbj5cbiAgPC9saT5cbjwvdWw+XG5cblN0eWxlZ3VpZGUgMy4xMFxuKi9cbi5mb3JrIHtcbiAgcGFkZGluZzogMCAxOHB4IDE4cHg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gICAgLmZvcmsge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9IH1cbiAgLmZvcmsgOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogdGFibGU7IH1cbiAgLmZvcmsgPiAqIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgIG1hcmdpbi1ib3R0b206IDE4cHg7XG4gICAgbWluLWhlaWdodDogMTQycHg7XG4gICAgcGFkZGluZzogOXB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA5NTlweCkge1xuICAgICAgLmZvcmsgPiAqIHtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG8gMThweDsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gICAgICAuZm9yayA+ICoge1xuICAgICAgICBmbGV4OiAxIDEgMDsgfVxuICAgICAgICAuZm9yayA+ICo6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMThweDsgfSB9XG4gIC5mb3JrIGRpdiB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiA5cHg7XG4gICAgei1pbmRleDogMTA7IH1cbiAgICAuZm9yayBkaXYgaW1nIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5mb3JrIHAge1xuICAgIGZvbnQtc2l6ZTogMTJweDsgfVxuICAuZm9yayBidXR0b24ge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIG1hcmdpbi10b3A6IDlweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTMuNXB4O1xuICAgIHBhZGRpbmctdG9wOiAxMy41cHg7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmZvcmsgLmZvcmstY2hvaWNlIHtcbiAgICBtYXgtd2lkdGg6IDM1NXB4OyB9XG4gICAgLmZvcmsgLmZvcmstY2hvaWNlIGJ1dHRvbiB7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIGZvbnQtc2l6ZTogMThweDsgfVxuICAuZm9yayAuZm9yay1pbWFnZSB7XG4gICAgd2lkdGg6IDM1NXB4O1xuICAgIGhlaWdodDogMTc2cHg7IH1cbiAgICAuZm9yayAuZm9yay1pbWFnZSBpbWcge1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgLmZvcmsgLmZvcmstdGV4dCB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIG1hcmdpbi10b3A6IDlweDsgfVxuICAuZm9yayAuZm9yay14LWNvbXBsZXRlIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC43NSk7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyM3B4O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgaGVpZ2h0OiAxNzZweDtcbiAgICB3aWR0aDogMzU1cHg7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiA5cHg7XG4gICAgdG9wOiA5cHg7XG4gICAgcmlnaHQ6IDlweDtcbiAgICB6LWluZGV4OiA1MDsgfVxuICAgIC5mb3JrIC5mb3JrLXgtY29tcGxldGU6OmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoXCJpbWFnZXMvZm9yay1kb25lLnBuZ1wiKTtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDIzcHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDlweDtcbiAgICAgIHdpZHRoOiAyM3B4OyB9XG5cbi8qXG5Gb3JtXG5cbkZvcm1zIGFyZSBtb25vbGl0aGljIGFuZCBub3Qgd2VsbCBtb2R1bGFyaXplZCBhdCB0aGlzIHBvaW50LiBUaGVyZSdzIGEgYmlnIHRvZG8gdG8gY2hhbmdlIHRoZW0uXG5cbkRlZmF1bHQgLSBUaGlzIGlzIHRoZSBzdGFuZGFyZCBmb3JtIHN0eWxpbmdcbi5mb3JtLWlubGluZSAtIFRoaXMgc3VibW9kdWxlIHB1dHMgaW5wdXRzIGFuZCBsYWJlbHMgc2lkZSBieSBzaWRlXG5cbk1hcmt1cDpcbjxmb3JtIGFjdGlvbj1cIlwiIG1ldGhvZD1cIlBPU1RcIiBjbGFzcz1cImZvcm0geyRtb2RpZmllcnN9XCI+XG4gIDxmaWVsZHNldCBjbGFzcz1cInVzZXItaW5mb3JtYXRpb25cIj5cbiAgICA8bGVnZW5kPjEuIENyZWF0ZSB5b3VyIEFjY291bnQ8L2xlZ2VuZD5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1yb3cgXCI+XG4gICAgICA8bGFiZWwgZm9yPVwiaWRfbmFtZVwiPk5hbWU8L2xhYmVsPlxuICAgICAgPGRpdiBjbGFzcz1cInZhbHVlXCI+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiSm9obiBEb2VcIiBuYW1lPVwibmFtZVwiIGlkPVwiaWRfbmFtZVwiPlxuICAgICAgICA8cD5QbGVhc2UgZW50ZXIgeW91ciBuYW1lIGV4YWN0bHkgYXMgeW91IHdhbnQgaXQgdG8gYXBwZWFyIG9uIHlvdXIgY2VydGlmaWNhdGUgb2YgY29tcGxldGlvbi48L3A+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1yb3cgXCI+XG4gICAgICA8bGFiZWwgZm9yPVwiaWRfZW1haWxcIj5cbiAgICAgICAgRW1haWw6XG4gICAgICA8L2xhYmVsPlxuICAgICAgPGRpdiBjbGFzcz1cInZhbHVlXCI+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIG5hbWU9XCJlbWFpbFwiIGlkPVwiaWRfZW1haWxcIj5cbiAgICAgICAgPHA+VGhpcyBpcyBoZWxwZXIgdGV4dCBmb3IgdGhpcyBpbnB1dC48L3A+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1yb3cgc3VjY2Vzc1wiPlxuICAgICAgPGxhYmVsIGZvcj1cImlkX2xhbmd1YWdlXCI+XG4gICAgICAgIExhbmd1YWdlIFZlcnNpb25cbiAgICAgIDwvbGFiZWw+XG4gICAgICA8ZGl2IGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgPHNlbGVjdCBuYW1lPVwibGFuZ3VhZ2VcIiBpZD1cImlkX2xhbmd1YWdlXCI+XG4gICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImVuXCIgc2VsZWN0ZWQ9XCJzZWxlY3RlZFwiPkVuZ2xpc2g8L29wdGlvbj5cbiAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiZXNcIj5TcGFuaXNoPC9vcHRpb24+XG4gICAgICAgIDwvc2VsZWN0PlxuICAgICAgPC9kaXY+XG4gICAgICA8cCBjbGFzcz1cImZvcm0teC13YXJuaW5nbWVzc2FnZVwiPjxlbT5QbGVhc2Ugbm90ZTogWW91ciBDb3VudHkgcmVxdWlyZXMgcHJpb3IgcGVybWlzc2lvbiBmcm9tIHRoZSBDb3VydCBpbiBvcmRlciB0byBjb21wbGV0ZSBhbiBvbmxpbmUgY2xhc3MuIENvbnRhY3QgdGhlIENsZXJrIG9mIENvdXJ0cyBhdCAxMjMtMTIzLTQ1NjcuPC9lbT48L3A+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImZvcm0tcm93IGNoZWNrYm94XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJwcmludF92ZXJzaW9uXCIgaWQ9XCJpZF9wcmludF92ZXJzaW9uXCI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxsYWJlbCBmb3I9XCJpZF9wcmludF92ZXJzaW9uXCI+XG4gICAgICAgIDxwPlllcywgZm9yIGFuIGFkZGl0aW9uYWwgJDExLjUwLCBwbGVhc2Ugc2hpcCBtZSBQcmludCBWZXJzaW9ucyBvZiB0aGUgdHdvIFdvcmtib29rcy4gQWNjZXNzIHRvIGRpZ2l0YWwgdmVyc2lvbiBhbHJlYWR5IGluY2x1ZGVkIGluIHB1cmNoYXNlIHByaWNlLiA8c3Ryb25nPihUb3RhbCBwcmljZSB3aXRoIHByaW50IHZlcnNpb25zOiAkNTEuNDUpPC9zdHJvbmc+PC9wPlxuICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgPC9maWVsZHNldD5cbiAgPGZpZWxkc2V0PlxuICAgIDxsZWdlbmQ+SGF2ZSBhIENvdXBvbj88L2xlZ2VuZD5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1yb3cgZm9ybS1yb3ctaXMtdmFsaWRcIj5cbiAgICAgIDxsYWJlbCBmb3I9XCJjb3Vwb25cIj5Db3Vwb24gQ29kZTwvbGFiZWw+XG4gICAgICA8ZGl2IGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgbmFtZT1cIm5hbWVcIiBpZD1cImNvdXBvblwiIHZhbHVlPVwiV1YyMDE3XCI+XG4gICAgICAgIDxwIGNsYXNzPVwiZm9ybS1yb3cteC1zdWNjZXNzXCI+RGlzY291bnQgYXBwbGllZC48L3A+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidXR0b24gYnV0dG9uLWhlaWdodC1zbWFsbCBidXR0b24tbWFya2V0aW5nLWxpZ2h0XCIgdHlwZT1cImJ1dHRvblwiPkFwcGx5PC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9maWVsZHNldD5cbiAgPGZpZWxkc2V0PlxuICAgIDxsZWdlbmQ+T3JkZXIgU3VtbWFyeTwvbGVnZW5kPlxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLXgtc3VtbWFyeVwiPlxuICAgICAgICA8c2ctaW5zZXJ0PjMuNTM8L3NnLWluc2VydD5cbiAgICAgICAgPHAgY2xhc3M9XCJmb3JtLXgtd2FybmluZ21lc3NhZ2VcIj48ZW0+UGxlYXNlIG5vdGU6IFlvdXIgQ291bnR5IHJlcXVpcmVzIHByaW9yIHBlcm1pc3Npb24gZnJvbSB0aGUgQ291cnQgaW4gb3JkZXIgdG8gY29tcGxldGUgYW4gb25saW5lIGNsYXNzLiBDb250YWN0IHRoZSBDbGVyayBvZiBDb3VydHMgYXQgMTIzLTEyMy00NTY3LjwvZW0+PC9wPlxuICAgIDwvZGl2PlxuICA8L2ZpZWxkc2V0PlxuICA8ZmllbGRzZXQ+XG4gICAgPGRpdiBjbGFzcz1cInJhZGlvLWdyb3VwLXBheW1lbnRcIj5cbiAgICAgIDx1bD5cbiAgICAgICAgPGxpPjxsYWJlbCBmb3I9XCJpZF9wYXltZW50X3R5cGVfMFwiIGNsYXNzPVwiYWN0aXZlXCI+PGlucHV0IHR5cGU9XCJyYWRpb1wiIGlkPVwiaWRfcGF5bWVudF90eXBlXzBcIiB2YWx1ZT1cImF1dGhuZXRcIiBuYW1lPVwicGF5bWVudF90eXBlXCI+IDxwPlBheSB3aXRoIG1ham9yIGNyZWRpdCBjYXJkczo8L3A+PGltZyBzcmM9XCIvaW1hZ2VzL2NjLWljb25zLnBuZ1wiIGFsdD1cIlBheSB3aXRoIG1ham9yIGNyZWRpdCBjYXJkczogVmlzYSwgTWFzdGVyY2FyZCwgQW1lcmljYW4gRXhwcmVzcywgb3IgRGlzY292ZXJcIj48L2xhYmVsPjwvbGk+XG4gICAgICA8L3VsPlxuICAgIDwvZGl2PlxuICA8L2ZpZWxkc2V0PlxuICA8ZmllbGRzZXQgY2xhc3M9XCJzdWJtaXRcIj5cbiAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ1dHRvblwiPkZpbmFsaXplIFlvdXIgUHVyY2hhc2U8L2J1dHRvbj5cbiAgPC9maWVsZHNldD5cbiAgPHNnLWluc2VydD41LjM8L3NnLWluc2VydD5cbjwvZm9ybT5cblxuXG5TdHlsZWd1aWRlIDMuMlxuKi9cbi5mb3JtIHtcbiAgbWFyZ2luLWJvdHRvbTogMzZweDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTUwcHgpIHtcbiAgICAuZm9ybSB7XG4gICAgICBwYWRkaW5nOiAwIDE4cHg7IH0gfVxuICAuZm9ybSBkaXYgbGFiZWwge1xuICAgIHBhZGRpbmctbGVmdDogOXB4OyB9XG4gIC5mb3JtIGRpdiB1bCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMThweDtcbiAgICBtYXJnaW4tbGVmdDogMjIuNXB4OyB9XG4gIC5mb3JtIGRpdiBsaTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogOXB4OyB9XG4gIC5mb3JtIGZpZWxkc2V0Om5vdCg6bGFzdC1jaGlsZCkge1xuICAgIG1hcmdpbi1ib3R0b206IDE4cHg7IH1cbiAgLmZvcm0gZmllbGRzZXQgPiBwIHtcbiAgICBtYXJnaW46IDAgMThweCAxOHB4OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDk1MHB4KSB7XG4gICAgICAuZm9ybSBmaWVsZHNldCA+IHAge1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9IH1cbiAgLmZvcm0gLnN1Ym1pdC1yb3cge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgLmZvcm0gbGVnZW5kLFxuICAuZm9ybSAubGVnZW5kIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2Y2ZjNlZTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGNvbG9yOiAjMDAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIG1hcmdpbi1ib3R0b206IDlweDtcbiAgICBwYWRkaW5nOiAwIDE4cHggOXB4O1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDk1MHB4KSB7XG4gICAgICAuZm9ybSBsZWdlbmQsXG4gICAgICAuZm9ybSAubGVnZW5kIHtcbiAgICAgICAgY29sb3I6ICMxYjIzMjc7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDsgfSB9XG4gICAgLmZvcm0gbGVnZW5kIHNwYW4sXG4gICAgLmZvcm0gLmxlZ2VuZCBzcGFuIHtcbiAgICAgIGNvbG9yOiAjNjk2OTY5O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBtYXJnaW4tdG9wOiA5cHg7IH1cbiAgLmZvcm0gLnN1Ym1pdCB7XG4gICAgcGFkZGluZzogMCAxOHB4OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDk1MHB4KSB7XG4gICAgICAuZm9ybSAuc3VibWl0IHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9IH1cbiAgICAuZm9ybSAuc3VibWl0IHAge1xuICAgICAgY29sb3I6ICM2OTY5Njk7XG4gICAgICBtYXJnaW4tYm90dG9tOiA5cHg7IH1cbiAgLmZvcm0gLmJ1dHRvbiB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMThweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuZm9ybSAuaW5jb21wbGV0ZS1mb3JtIHtcbiAgICBvcGFjaXR5OiAuNTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuICAuZm9ybSAuZm9ybS14LW5vdGUge1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxOHB4O1xuICAgIHBhZGRpbmc6IDAgMThweCA5cHg7IH1cbiAgLmZvcm0gLmZvcm0teC1ub3RlLWltcG9ydGFudCB7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIG1hcmdpbjogMThweCAwO1xuICAgIHBhZGRpbmc6IDAgMThweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmZvcm0gLmZvcm0teC1saW5rcyB7XG4gICAgcGFkZGluZzogMCAxOHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIC5mb3JtIC5mb3JtLXgtbGlua3MgYSB7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsOyB9XG4gIC5mb3JtIC5mb3JtLXgtc3VtbWFyeSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxOHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDE4cHg7IH1cbiAgLmZvcm0gLmZvcm0teC13YXJuaW5nbWVzc2FnZSB7XG4gICAgY29sb3I6ICNmMjZjNGY7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgcGFkZGluZy10b3A6IDE4cHg7IH1cbiAgICAuZm9ybSAuZm9ybS14LXdhcm5pbmdtZXNzYWdlIGVtIHtcbiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5NTBweCkge1xuICAgIC5mb3JtIC5mb3JtLXgtc3VtbWFyeSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDMwJTsgfSB9XG5cbi5mb3JtLW5vbWFyZ2luIHtcbiAgbWFyZ2luOiAwOyB9XG5cbi5mb3JtLXJvdyB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1hcmdpbi1ib3R0b206IDE4cHg7XG4gIHBhZGRpbmc6IDAgMThweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAvKiBGaWxlIGlucHV0cyBhcmUgc3R5bGVkIGFzIGRlZmF1bHQgb24gcGFnZSBsb2FkLCBhbmQgY3VzdG9tIGNsYXNzZXMgYXJlIGFkZGVkIHZpYSBqcy4gKi8gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTUwcHgpIHtcbiAgICAuZm9ybS1yb3cge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMDsgfSB9XG4gIC5mb3JtLXJvdyAuYnV0dG9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIG1hcmdpbi10b3A6IDE4cHg7XG4gICAgd2lkdGg6IGF1dG87IH1cbiAgLmZvcm0tcm93IC52YWx1ZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAuZm9ybS1yb3cgLnZhbHVlIHAge1xuICAgICAgY29sb3I6ICM2OTY5Njk7XG4gICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgICAgbWFyZ2luLXRvcDogNC41cHg7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5mb3JtLXJvdyAudmFsdWUgLmZvcm0tcm93LXgtc3VjY2VzcyB7XG4gICAgICBjb2xvcjogIzlhYmEzODsgfVxuICAgIC5mb3JtLXJvdyAudmFsdWUgLmZvcm0tcm93LXgtZXJyb3Ige1xuICAgICAgY29sb3I6ICNlNzUzNDU7IH1cbiAgLmZvcm0tcm93IGxhYmVsLFxuICAuZm9ybS1yb3cgLmxhYmVsIHtcbiAgICBjb2xvcjogIzY5Njk2OTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBtYXJnaW46IDAgMCA1cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5mb3JtLXJvdyBpbnB1dDpmb2N1cyxcbiAgLmZvcm0tcm93IHNlbGVjdDpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogMCAwIDVweCAwICMyOGFkZTM7XG4gICAgb3V0bGluZTogbm9uZTsgfVxuICAuZm9ybS1yb3cgW3R5cGU9XCJ0ZXh0XCJdLFxuICAuZm9ybS1yb3cgW3R5cGU9XCJlbWFpbFwiXSxcbiAgLmZvcm0tcm93IFt0eXBlPVwicGFzc3dvcmRcIl0sXG4gIC5mb3JtLXJvdyBbdHlwZT1cInRlbFwiXSxcbiAgLmZvcm0tcm93IHNlbGVjdCxcbiAgLmZvcm0tcm93IHRleHRhcmVhIHtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJhY2tncm91bmQ6ICNGMkYyRjI7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBjb2xvcjogIzFiMjMyNztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LWZhbWlseTogXCJwcm94aW1hIG5vdmFcIiwgXCJIZWx2ZXRpY2FcIiwgXCJTYW5zLVNlcmlmXCI7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIHBhZGRpbmc6IDlweDtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuZm9ybS1yb3cgOmRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAuNTsgfVxuICAuZm9ybS1yb3cgc2VsZWN0IHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJpbWFnZXMvZm9ybS1yb3ctc2VsZWN0LnN2Z1wiKTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSA5cHgpIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIG1hcmdpbi10b3A6IDlweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyN3B4OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDk1MHB4KSB7XG4gICAgICAuZm9ybS1yb3cgc2VsZWN0IHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDsgfSB9XG4gIC5mb3JtLXJvdyBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsZXg6IDE7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDE4cHg7XG4gICAgdG9wOiAtNXB4OyB9XG4gIC5mb3JtLXJvdy5mb3JtLXJvdy1pcy12YWxpZCBbdHlwZT1cInRleHRcIl0sXG4gIC5mb3JtLXJvdy5mb3JtLXJvdy1pcy12YWxpZCBbdHlwZT1cImVtYWlsXCJdLFxuICAuZm9ybS1yb3cuZm9ybS1yb3ctaXMtdmFsaWQgW3R5cGU9XCJwYXNzd29yZFwiXSxcbiAgLmZvcm0tcm93LmZvcm0tcm93LWlzLXZhbGlkIFt0eXBlPVwidGVsXCJdLFxuICAuZm9ybS1yb3cuZm9ybS1yb3ctaXMtdmFsaWQgc2VsZWN0LFxuICAuZm9ybS1yb3cuZm9ybS1yb3ctaXMtdmFsaWQgdGV4dGFyZWEge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImltYWdlcy9mb3Jtcm93LXZhbGlkLnBuZ1wiKTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxOHB4KSBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA2MXB4OyB9XG4gIC5mb3JtLXJvdy5jaGVja2JveCB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuICAgIC5mb3JtLXJvdy5jaGVja2JveCAudmFsdWUge1xuICAgICAgd2lkdGg6IDI1cHg7IH1cbiAgICAuZm9ybS1yb3cuY2hlY2tib3ggbGFiZWwge1xuICAgICAgZmxleDogMTsgfVxuICAgICAgLmZvcm0tcm93LmNoZWNrYm94IGxhYmVsIHAge1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE4cHg7IH1cbiAgICAgICAgLmZvcm0tcm93LmNoZWNrYm94IGxhYmVsIHA6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgIGNvbG9yOiAjMDAwO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICAgICAgLmZvcm0tcm93LmNoZWNrYm94IGxhYmVsIHA6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAuZm9ybS1yb3cucmFkaW8gbGkge1xuICAgIG1hcmdpbi1ib3R0b206IDlweDsgfVxuICAuZm9ybS1yb3cucmFkaW8gbGFiZWwge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBsaW5lLWhlaWdodDogMWVtO1xuICAgIG1hcmdpbjogMDsgfVxuICAuZm9ybS1yb3cucmFkaW8gaW5wdXQge1xuICAgIG1hcmdpbjogLTJweCA5cHggMCAwOyB9XG4gIC5mb3JtLXJvdy5zaG9ydCB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAuZm9ybS1yb3cuc2hvcnQgbGFiZWwge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuZm9ybS1yb3cuc2hvcnQgW3R5cGU9XCJ0ZXh0XCJdLFxuICAgIC5mb3JtLXJvdy5zaG9ydCBbdHlwZT1cInRlbFwiXSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDlweDtcbiAgICAgIHdpZHRoOiA5MHB4OyB9XG4gIC5mb3JtLXJvdy5zdWNjZXNzIFt0eXBlPVwidGV4dFwiXSxcbiAgLmZvcm0tcm93LnN1Y2Nlc3MgW3R5cGU9XCJlbWFpbFwiXSxcbiAgLmZvcm0tcm93LnN1Y2Nlc3MgW3R5cGU9XCJ0ZWxcIl0ge1xuICAgIGJhY2tncm91bmQ6IHdoaXRlIHVybChcImltYWdlcy9mb3JtLXN1Y2Nlc3MucG5nXCIpIDk1JSBjZW50ZXIgbm8tcmVwZWF0O1xuICAgIHBhZGRpbmctcmlnaHQ6IDEwJTsgfVxuICAuZm9ybS1yb3cuZXJyb3IgW3R5cGU9XCJ0ZXh0XCJdLFxuICAuZm9ybS1yb3cuZXJyb3IgW3R5cGU9XCJ0ZWxcIl0sXG4gIC5mb3JtLXJvdy5lcnJvciBbdHlwZT1cInBhc3N3b3JkXCJdIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI0MiwgMTA4LCA3OSwgMC4xKSB1cmwoXCJpbWFnZXMvZm9ybS1lcnJvci5wbmdcIikgOTUlIGNlbnRlciBuby1yZXBlYXQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2YyNmM0ZjtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMCU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogOTUwcHgpIHtcbiAgICAgIC5mb3JtLXJvdy5lcnJvciBbdHlwZT1cInRleHRcIl0sXG4gICAgICAuZm9ybS1yb3cuZXJyb3IgW3R5cGU9XCJ0ZWxcIl0sXG4gICAgICAuZm9ybS1yb3cuZXJyb3IgW3R5cGU9XCJwYXNzd29yZFwiXSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDVweDsgfSB9XG4gIC5mb3JtLXJvdy5lcnJvciBpbWcge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmZvcm0tcm93LmZvcm0tcm93LXN0cmlwZSAudmFsdWUge1xuICAgIGJhY2tncm91bmQ6ICNGMkYyRjI7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBjb2xvcjogIzFiMjMyNztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LWZhbWlseTogXCJwcm94aW1hIG5vdmFcIiwgXCJIZWx2ZXRpY2FcIiwgXCJTYW5zLVNlcmlmXCI7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIHBhZGRpbmc6IDlweDsgfVxuICAuZm9ybS1yb3cuZm9ybS1yb3ctc3RyaXBlLnN1Y2Nlc3MgLnZhbHVlIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjZmM2VlIHVybChcImltYWdlcy9mb3JtLXN1Y2Nlc3MucG5nXCIpIDk1JSBjZW50ZXIgbm8tcmVwZWF0O1xuICAgIHBhZGRpbmctcmlnaHQ6IDEwJTsgfVxuICAuZm9ybS1yb3cuZm9ybS1yb3ctc3RyaXBlLmVycm9yIC52YWx1ZSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2YyNmM0ZjsgfVxuICAuZm9ybS1yb3cuZm9ybS1yb3ctZmlsZSBpbnB1dCB7XG4gICAgd2lkdGg6IDAuMXB4O1xuICAgIGhlaWdodDogMC4xcHg7XG4gICAgb3BhY2l0eTogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAtMTsgfVxuICAuZm9ybS1yb3cuZm9ybS1yb3ctZmlsZSBsYWJlbCB7XG4gICAgLyogTGFiZWwgY29udGFpbnMgZmlsZW5hbWUuIERvbid0IHdhbnQgdG8gbGltaXQgaXRzIHdpZHRoLiAqL1xuICAgIHdpZHRoOiBpbmhlcml0OyB9XG4gICAgLmZvcm0tcm93LmZvcm0tcm93LWZpbGUgbGFiZWwgKiB7XG4gICAgICAvKiBQb2ludGVyIGV2ZW50cyBvbiBkZXNjZW5kYW50IGVsZW1lbnRzIHNob3VsZCBidWJibGUgdXAgdG8gdGhlIGxhYmVsLiAqL1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgLmZvcm0tcm93LmZvcm0tcm93LWZpbGUgLmJ1dHRvbi1sYWJlbCB7XG4gICAgLyogQSBsYWJlbCBzdHlsZWQgbGlrZSBhIGJ1dHRvbi4gKi9cbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBjb2xvcjogIzI4YWRlMztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMjhhZGUzO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBwYWRkaW5nOiA5cHggMThweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAuZm9ybS1yb3cuZm9ybS1yb3ctZmlsZSAuYnV0dG9uLWxhYmVsOmZvY3VzLCAuZm9ybS1yb3cuZm9ybS1yb3ctZmlsZSAuYnV0dG9uLWxhYmVsOmhvdmVyIHtcbiAgICAgIG91dGxpbmU6IDFweCBkb3R0ZWQgIzI4YWRlMztcbiAgICAgIC8qIEludGVudGlvbmFsbHkgb3ZlcnJpZGUgZm9yIHdlYmtpdCBicm93c2Vycy4gTm9uLXdlYmtpdCB3aWxsIHVzZSBsaW5lIGFib3ZlLiAqL1xuICAgICAgb3V0bGluZTogLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yIGF1dG8gNXB4OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDk1MHB4KSB7XG4gICAgICAuZm9ybS1yb3cuZm9ybS1yb3ctZmlsZSAuYnV0dG9uLWxhYmVsIHtcbiAgICAgICAgbWFyZ2luOiAwOyB9IH1cbiAgLmZvcm0tcm93LmZvcm0tcm93LWZpbGUuZXJyb3IgLmJ1dHRvbi1sYWJlbCB7XG4gICAgYm9yZGVyLWNvbG9yOiAjZjI2YzRmOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5NTBweCkge1xuICAuZm9ybS1pbmxpbmUgLmZvcm0tcm93IHtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5mb3JtLWlubGluZSAuZm9ybS1yb3cgaW1nIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTUwcHgpIGFuZCAobWluLXdpZHRoOiA5NTBweCkge1xuICAgIC5mb3JtLWlubGluZSAuZm9ybS1yb3cuc2hvcnQgbGFiZWwge1xuICAgICAgd2lkdGg6IDI4JTsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5NTBweCkge1xuICAgIC5mb3JtLWlubGluZSAuZm9ybS1yb3cuZm9ybS1yb3ctYWxpZ25jZW50ZXIge1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgLmZvcm0taW5saW5lIGxhYmVsIHtcbiAgICBtYXJnaW46IDEwLjhweCAyJSAwIDA7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgd2lkdGg6IDI4JTsgfVxuICAuZm9ybS1pbmxpbmUgLnZhbHVlIHtcbiAgICB3aWR0aDogNzAlOyB9XG4gIC5mb3JtLWlubGluZSAuZXJyb3JsaXN0IHtcbiAgICBtYXJnaW4tbGVmdDogMzAlO1xuICAgIHdpZHRoOiA3MCU7IH1cbiAgLmZvcm0taW5saW5lIC5idXR0b24ge1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDsgfVxuICAuZm9ybS1pbmxpbmUgLmNoZWNrYm94IHtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfVxuICAgIC5mb3JtLWlubGluZSAuY2hlY2tib3ggLnZhbHVlIHtcbiAgICAgIGZsZXg6IDE7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgbWFyZ2luLXJpZ2h0OiA5cHg7IH1cbiAgICAuZm9ybS1pbmxpbmUgLmNoZWNrYm94IGlucHV0IHtcbiAgICAgIG1hcmdpbi1yaWdodDogOXB4OyB9XG4gICAgLmZvcm0taW5saW5lIC5jaGVja2JveCBsYWJlbCB7XG4gICAgICBmbGV4OiAyO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLmZvcm0taW5saW5lIGRpdiBsYWJlbCB7XG4gICAgcGFkZGluZy1sZWZ0OiA5cHg7IH1cbiAgLmZvcm0taW5saW5lIGRpdiB1bCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMThweDtcbiAgICBtYXJnaW4tbGVmdDogMTI2cHg7XG4gICAgbWFyZ2luLXRvcDogOXB4OyB9XG4gIC5mb3JtLWlubGluZSBkaXYgbGk6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgcGFkZGluZy1ib3R0b206IDA7IH1cbiAgLmZvcm0teC1ub3RlIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfSB9XG5cbi5mb3JtLXJvdy1zdWJtaXQge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XG4gIC5mb3JtLXJvdy1zdWJtaXQgLmZvcm0tcm93LXN1Ym1pdC14LWJ1dHRvbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiAxOHB4OyB9XG4gICAgLmZvcm0tcm93LXN1Ym1pdCAuZm9ybS1yb3ctc3VibWl0LXgtYnV0dG9uIC5idXR0b24ge1xuICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7IH1cbiAgLmZvcm0tcm93LXN1Ym1pdCAuZm9ybS1yb3ctc3VibWl0LXgtbWVzc2FnZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBmbGV4OiAxIDEgMTAwJTtcbiAgICBmb250LXNpemU6IDE4cHg7IH1cbiAgLmZvcm0tcm93LXN1Ym1pdC5mb3JtLXJvdy1zdWJtaXQtaXMtc3VjY2VzcyAuZm9ybS1yb3ctc3VibWl0LXgtbWVzc2FnZSB7XG4gICAgY29sb3I6ICM5YWJhMzg7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLnJhZGlvLWdyb3VwLXBheW1lbnQge1xuICBtYXJnaW4tYm90dG9tOiAxOHB4O1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5yYWRpby1ncm91cC1wYXltZW50IHVsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NTBweCkge1xuICAgICAgLnJhZGlvLWdyb3VwLXBheW1lbnQgdWwge1xuICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfSB9XG4gIC5yYWRpby1ncm91cC1wYXltZW50IGxpIHtcbiAgICBtYXJnaW4tYm90dG9tOiA5cHg7XG4gICAgcGFkZGluZzogMCAxOHB4OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDk1MHB4KSB7XG4gICAgICAucmFkaW8tZ3JvdXAtcGF5bWVudCBsaSB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDlweDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDk1MHB4KSB7XG4gICAgLnJhZGlvLWdyb3VwLXBheW1lbnQgbGk6bGFzdC1vZi10eXBlIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfSB9XG4gIC5yYWRpby1ncm91cC1wYXltZW50IGxhYmVsIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzI4YWRlMztcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXg6IDE7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAxOHB4IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NTBweCkge1xuICAgICAgLnJhZGlvLWdyb3VwLXBheW1lbnQgbGFiZWwge1xuICAgICAgICBtaW4taGVpZ2h0OiBhdXRvOyB9IH1cbiAgICAucmFkaW8tZ3JvdXAtcGF5bWVudCBsYWJlbDpob3ZlciwgLnJhZGlvLWdyb3VwLXBheW1lbnQgbGFiZWw6Zm9jdXMsIC5yYWRpby1ncm91cC1wYXltZW50IGxhYmVsLmFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kOiAjMjhhZGUzOyB9XG4gICAgICAucmFkaW8tZ3JvdXAtcGF5bWVudCBsYWJlbDpob3ZlciBoMSxcbiAgICAgIC5yYWRpby1ncm91cC1wYXltZW50IGxhYmVsOmhvdmVyIGgzLFxuICAgICAgLnJhZGlvLWdyb3VwLXBheW1lbnQgbGFiZWw6aG92ZXIgcCwgLnJhZGlvLWdyb3VwLXBheW1lbnQgbGFiZWw6Zm9jdXMgaDEsXG4gICAgICAucmFkaW8tZ3JvdXAtcGF5bWVudCBsYWJlbDpmb2N1cyBoMyxcbiAgICAgIC5yYWRpby1ncm91cC1wYXltZW50IGxhYmVsOmZvY3VzIHAsIC5yYWRpby1ncm91cC1wYXltZW50IGxhYmVsLmFjdGl2ZSBoMSxcbiAgICAgIC5yYWRpby1ncm91cC1wYXltZW50IGxhYmVsLmFjdGl2ZSBoMyxcbiAgICAgIC5yYWRpby1ncm91cC1wYXltZW50IGxhYmVsLmFjdGl2ZSBwIHtcbiAgICAgICAgY29sb3I6ICNmZmY7IH1cbiAgLnJhZGlvLWdyb3VwLXBheW1lbnQgaDEge1xuICAgIGNvbG9yOiAjMjhhZGUzO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGZvbnQtc2l6ZTogNjIuNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxZW07IH1cbiAgICAucmFkaW8tZ3JvdXAtcGF5bWVudCBoMSBzcGFuIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxZW07IH1cbiAgLnJhZGlvLWdyb3VwLXBheW1lbnQgdGFibGUge1xuICAgIG1hcmdpbjogMCBhdXRvOyB9XG4gICAgLnJhZGlvLWdyb3VwLXBheW1lbnQgdGFibGUgaW5wdXQge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLnJhZGlvLWdyb3VwLXBheW1lbnQgcCB7XG4gICAgY29sb3I6ICMxYjIzMjc7XG4gICAgZm9udC1zaXplOiAxMi42cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICAgIG1hcmdpbjogNXB4IDA7IH1cbiAgICAucmFkaW8tZ3JvdXAtcGF5bWVudCBwOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAgIC5yYWRpby1ncm91cC1wYXltZW50IHAgc3BhbiB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxZW07IH1cbiAgLnJhZGlvLWdyb3VwLXBheW1lbnQgW3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgbGVmdDogLTk5OTlweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7IH1cblxuLypcbkZvcm0gU3VydmV5XG5cbk92ZXJyaWRlcyBmb3IgdGhlIHN1cnZleSBmb3JtIHR5cGUgKGhhcyBhIGJvcmRlciBhbmQgc29tZSBkaWZmZXJlbnQgbGF5b3V0IG9wdGlvbnMgYmFzZWQgb24gc2NyZWVuIHNpemUpXG5UT0RPOiBUaGlzIG5lZWRzIHRvIGJlY29tZSBpdHMgb3duIG1vZHVsZVxuXG5NYXJrdXA6XG48dWwgY2xhc3M9XCJzdXJ2ZXktcHJvZ3Jlc3MgcHJvZ3Jlc3NiYXJcIj5cbiAgPGxpIGlkPVwicHJvZ3Jlc3MtZGVtb2dyYXBoaWNzXCIgY2xhc3M9XCJjdXJyZW50IHByb2dyZXNzYmFyLWl0ZW1cIj4xLiBEZW1vZ3JhcGhpY3M8L2xpPlxuICA8bGkgaWQ9XCJwcm9ncmVzcy1jYXNlXCIgY2xhc3M9XCJwcm9ncmVzc2Jhci1pdGVtXCI+Mi4gQ2FzZSBCYWNrZ3JvdW5kPC9saT5cbiAgPGxpIGlkPVwicHJvZ3Jlc3MtZmFtaWx5XCIgY2xhc3M9XCJwcm9ncmVzc2Jhci1pdGVtXCI+My4gRmFtaWx5IER5bmFtaWNzPC9saT5cbiAgPGxpIGlkPVwicHJvZ3Jlc3MtY291cnNlXCIgY2xhc3M9XCJwcm9ncmVzc2Jhci1pdGVtXCI+NC4gQ291cnNlIEZlZWRiYWNrPC9saT5cbjwvdWw+XG48Zm9ybSBhY3Rpb249XCJcIiBjbGFzcz1cImZvcm0gZm9ybS1zdXJ2ZXlcIj5cbiAgPGZpZWxkc2V0IGlkPVwiZGVtb2dyYXBoaWNzXCI+XG4gICAgPGxlZ2VuZD4xLiBEZW1vZ3JhcGhpY3M8L2xlZ2VuZD5cbiAgICA8ZGl2IGNsYXNzPVwiZmllbGQgZGF0ZSBmb3JtLXJvdyByZXF1aXJlZFwiPlxuICAgICAgPGxhYmVsPldoYXQgeWVhciB3ZXJlIHlvdSBib3JuIGluPzwvbGFiZWw+XG4gICAgICA8ZGl2IGNsYXNzPVwidmFsdWVcIj48aW5wdXQgaWQ9XCJpZF9kYXRlXzItYW5zd2VyXCIgdHlwZT1cInRleHRcIiBuYW1lPVwiZGF0ZV8yLWFuc3dlclwiIG1heGxlbmd0aD1cIjRcIj48L2Rpdj5cbiAgICAgIDx1bCBjbGFzcz1cImVycm9ybGlzdFwiIHN0eWxlPVwiZGlzcGxheTogbm9uZTtcIj5cbiAgICAgICAgPGxpPlRoaXMgZmllbGQgaXMgcmVxdWlyZWQ8L2xpPlxuICAgICAgPC91bD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmllbGQgbXVsdGlwbGUtY2hvaWNlIGZvcm0tcm93IHJlcXVpcmVkXCI+XG4gICAgICA8bGFiZWw+V2hhdCBnZW5kZXIgYXJlIHlvdT88L2xhYmVsPlxuICAgICAgPGRpdiBjbGFzcz1cInZhbHVlXCI+PHVsPlxuICAgICAgICA8bGk+PGxhYmVsIGZvcj1cImlkX21jXzE1LWFuc3dlcl8wXCI+PGlucHV0IHR5cGU9XCJyYWRpb1wiIGlkPVwiaWRfbWNfMTUtYW5zd2VyXzBcIiB2YWx1ZT1cIjY3XCIgbmFtZT1cIm1jXzE1LWFuc3dlclwiPiBNYWxlPC9sYWJlbD48L2xpPlxuICAgICAgICA8bGk+PGxhYmVsIGZvcj1cImlkX21jXzE1LWFuc3dlcl8xXCI+PGlucHV0IHR5cGU9XCJyYWRpb1wiIGlkPVwiaWRfbWNfMTUtYW5zd2VyXzFcIiB2YWx1ZT1cIjY4XCIgbmFtZT1cIm1jXzE1LWFuc3dlclwiPiBGZW1hbGU8L2xhYmVsPjwvbGk+XG4gICAgICAgIDxsaT48bGFiZWwgZm9yPVwiaWRfbWNfMTUtYW5zd2VyXzJcIj48aW5wdXQgdHlwZT1cInJhZGlvXCIgaWQ9XCJpZF9tY18xNS1hbnN3ZXJfMlwiIHZhbHVlPVwiNjlcIiBuYW1lPVwibWNfMTUtYW5zd2VyXCI+IE90aGVyPC9sYWJlbD48L2xpPlxuICAgICAgICA8bGk+PGxhYmVsIGZvcj1cImlkX21jXzE1LWFuc3dlcl8zXCI+PGlucHV0IHR5cGU9XCJyYWRpb1wiIGlkPVwiaWRfbWNfMTUtYW5zd2VyXzNcIiB2YWx1ZT1cIjcwXCIgbmFtZT1cIm1jXzE1LWFuc3dlclwiPiBQcmVmZXIgbm90IHRvIGFuc3dlcjwvbGFiZWw+PC9saT5cbiAgICAgIDwvdWw+PC9kaXY+XG4gICAgICA8dWwgY2xhc3M9XCJlcnJvcmxpc3RcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCI+XG4gICAgICAgIDxsaT5UaGlzIGZpZWxkIGlzIHJlcXVpcmVkPC9saT5cbiAgICAgIDwvdWw+XG4gICAgPC9kaXY+XG4gIDwvZmllbGRzZXQ+XG4gIDxzZWN0aW9uIGNsYXNzPVwic3VibWl0XCI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvblwiIGlkPVwibmV4dC1zZWN0aW9uXCI+TmV4dCBTZWN0aW9uPC9idXR0b24+XG4gICAgPGlucHV0IGNsYXNzPVwiYnV0dG9uXCIgaWQ9XCJzdWJtaXRcIiB0eXBlPVwic3VibWl0XCIgdmFsdWU9XCJDb250aW51ZVwiIHN0eWxlPVwiZGlzcGxheTogbm9uZTtcIj5cbiAgPC9zZWN0aW9uPlxuPC9mb3JtPlxuXG5TdHlsZWd1aWRlIDMuMi4xXG4qL1xuQG1lZGlhIChtaW4td2lkdGg6IDk1MHB4KSB7XG4gIC5mb3JtLXN1cnZleSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI0YyRjJGMjtcbiAgICBib3JkZXItYm90dG9tOiAwO1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgICAuZm9ybS1zdXJ2ZXkgbGVnZW5kIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAuZm9ybS1zdXJ2ZXkgLmZvcm0tc2NhbGUsIC5mb3JtLXN1cnZleSAuZm9ybS1yb3cge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNGMkYyRjI7IH1cbiAgICAuZm9ybS1zdXJ2ZXkgLmZvcm0tcm93IHtcbiAgICAgIHBhZGRpbmc6IDE4cHg7IH1cbiAgICAuZm9ybS1zdXJ2ZXkgLnN1Ym1pdCB7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0YyRjJGMjtcbiAgICAgIHBhZGRpbmc6IDAgMThweDsgfSB9XG5cbi8qXG5Gb3JtIFNjYWxlXG5cblRoaXMgaXMgdXNlZCBmb3IgYSBzY2FsaW5nIHNldCBvZiByYWRpbyBvcHRpb25zIGJ1aWx0IGluIGEgdGFibGVcblxuTWFya3VwOlxuPGZvcm0gYWN0aW9uPVwiXCIgY2xhc3M9XCJmb3JtIGZvcm0tc2NhbGVcIj5cbiAgPGZpZWxkc2V0PlxuICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBzY2FsZXJlcXVpcmVkXCI+XG4gICAgICA8aDIgY2xhc3M9XCJmb3JtLXNjYWxlLWhlYWRpbmdcIj5UaGUgZm9sbG93aW5nIHF1ZXN0aW9ucyByZWZlciB0byB5b3UsIHlvdXIgY28tcGFyZW50IGludm9sdmVkLCBhbmQgeW91ciBtdXR1YWwgY2hpbGQocmVuKS4gU2VsZWN0IHRoZSBvcHRpb24gdGhhdCBiZXN0IGRlc2NyaWJlcyB5b3VyIHNpdHVhdGlvbi48L2gyPlxuICAgICAgPGRpdiBjbGFzcz1cInNjYWxlX3Jlc3BvbnNlc1wiPlxuICAgICAgICA8dGFibGU+XG4gICAgICAgICAgPHRoZWFkPlxuICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICA8dGggY2xhc3M9XCJsYWJlbFwiIHNjb3BlPVwicm93XCI+ICZuYnNwOyA8L3RoPlxuICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIiBjbGFzcz1cInZhbHVlXCI+QWx3YXlzPC90aD5cbiAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCIgY2xhc3M9XCJ2YWx1ZVwiPk9mdGVuPC90aD5cbiAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCIgY2xhc3M9XCJ2YWx1ZVwiPlNvbWV0aW1lczwvdGg+XG4gICAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiIGNsYXNzPVwidmFsdWVcIj5SYXJlbHk8L3RoPlxuICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIiBjbGFzcz1cInZhbHVlXCI+TmV2ZXI8L3RoPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICA8L3RoZWFkPlxuICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibGFiZWxcIiBzY29wZT1cInJvd1wiPjxsYWJlbD5EbyB5b3UgZmVlbCBmcmllbmRseSB0b3dhcmQgeW91ciBmb3JtZXIgcGFydG5lcj88L2xhYmVsPlxuICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJlcnJvcmxpc3RcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCI+PGxpPlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuPC9saT48L3VsPiAgICAgICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiaWRfc3RhdGVtZW50XzIxLWFuc3dlcl8xXCI+XG4gICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgaWQ9XCJpZF9zdGF0ZW1lbnRfMjEtYW5zd2VyXzFcIiBuYW1lPVwic3RhdGVtZW50XzIxLWFuc3dlclwiIHZhbHVlPVwiMjdcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuPkFsd2F5czwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJ2YWx1ZVwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJpZF9zdGF0ZW1lbnRfMjEtYW5zd2VyXzJcIj5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBpZD1cImlkX3N0YXRlbWVudF8yMS1hbnN3ZXJfMlwiIG5hbWU9XCJzdGF0ZW1lbnRfMjEtYW5zd2VyXCIgdmFsdWU9XCIyOFwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4+T2Z0ZW48L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiaWRfc3RhdGVtZW50XzIxLWFuc3dlcl8zXCI+XG4gICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgaWQ9XCJpZF9zdGF0ZW1lbnRfMjEtYW5zd2VyXzNcIiBuYW1lPVwic3RhdGVtZW50XzIxLWFuc3dlclwiIHZhbHVlPVwiMjlcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuPlNvbWV0aW1lczwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJ2YWx1ZVwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJpZF9zdGF0ZW1lbnRfMjEtYW5zd2VyXzRcIj5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBpZD1cImlkX3N0YXRlbWVudF8yMS1hbnN3ZXJfNFwiIG5hbWU9XCJzdGF0ZW1lbnRfMjEtYW5zd2VyXCIgdmFsdWU9XCIzMFwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4+UmFyZWx5PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInZhbHVlXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImlkX3N0YXRlbWVudF8yMS1hbnN3ZXJfNVwiPlxuICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIGlkPVwiaWRfc3RhdGVtZW50XzIxLWFuc3dlcl81XCIgbmFtZT1cInN0YXRlbWVudF8yMS1hbnN3ZXJcIiB2YWx1ZT1cIjMxXCI+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj5OZXZlcjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibGFiZWxcIiBzY29wZT1cInJvd1wiPjxsYWJlbD5EbyB5b3VyIGNoaWxkcmVuIGZlZWwgZnJpZW5kbHkgdG93YXJkIHlvdXIgZm9ybWVyIHBhcnRuZXI/PC9sYWJlbD5cbiAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiZXJyb3JsaXN0XCIgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiPjxsaT5UaGlzIGZpZWxkIGlzIHJlcXVpcmVkLjwvbGk+PC91bD4gICAgICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInZhbHVlXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImlkX3N0YXRlbWVudF8yMi1hbnN3ZXJfMVwiPlxuICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIGlkPVwiaWRfc3RhdGVtZW50XzIyLWFuc3dlcl8xXCIgbmFtZT1cInN0YXRlbWVudF8yMi1hbnN3ZXJcIiB2YWx1ZT1cIjI3XCI+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj5BbHdheXM8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiaWRfc3RhdGVtZW50XzIyLWFuc3dlcl8yXCI+XG4gICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgaWQ9XCJpZF9zdGF0ZW1lbnRfMjItYW5zd2VyXzJcIiBuYW1lPVwic3RhdGVtZW50XzIyLWFuc3dlclwiIHZhbHVlPVwiMjhcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuPk9mdGVuPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInZhbHVlXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImlkX3N0YXRlbWVudF8yMi1hbnN3ZXJfM1wiPlxuICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIGlkPVwiaWRfc3RhdGVtZW50XzIyLWFuc3dlcl8zXCIgbmFtZT1cInN0YXRlbWVudF8yMi1hbnN3ZXJcIiB2YWx1ZT1cIjI5XCI+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj5Tb21ldGltZXM8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiaWRfc3RhdGVtZW50XzIyLWFuc3dlcl80XCI+XG4gICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgaWQ9XCJpZF9zdGF0ZW1lbnRfMjItYW5zd2VyXzRcIiBuYW1lPVwic3RhdGVtZW50XzIyLWFuc3dlclwiIHZhbHVlPVwiMzBcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuPlJhcmVseTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJ2YWx1ZVwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJpZF9zdGF0ZW1lbnRfMjItYW5zd2VyXzVcIj5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBpZD1cImlkX3N0YXRlbWVudF8yMi1hbnN3ZXJfNVwiIG5hbWU9XCJzdGF0ZW1lbnRfMjItYW5zd2VyXCIgdmFsdWU9XCIzMVwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4+TmV2ZXI8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgPC90YWJsZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2ZpZWxkc2V0PlxuPC9mb3JtPlxuXG5TdHlsZWd1aWRlIDMuMi4yXG4qL1xuLmZvcm0tc2NhbGUge1xuICBwYWRkaW5nOiAwIDE4cHg7XG4gIG1hcmdpbi1ib3R0b206IDE4cHg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gICAgLmZvcm0tc2NhbGUge1xuICAgICAgcGFkZGluZy1ib3R0b206IDE4cHg7XG4gICAgICBwYWRkaW5nLXRvcDogMThweDsgfSB9XG4gIC5mb3JtLXNjYWxlIHRhYmxlIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuZm9ybS1zY2FsZSB0aGVhZCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgICAgLmZvcm0tc2NhbGUgdGhlYWQge1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgICAuZm9ybS1zY2FsZSB0aGVhZCB0aCB7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgIHBhZGRpbmc6IDA7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAuZm9ybS1zY2FsZSB0Ym9keSAubGFiZWwge1xuICAgICAgcGFkZGluZzogMThweCAwOyB9IH1cbiAgLmZvcm0tc2NhbGUgdGgge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLmZvcm0tc2NhbGUgdHIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBwYWRkaW5nLWJvdHRvbTogMThweDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgICAgLmZvcm0tc2NhbGUgdHIge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2Y2ZjNlZTtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7IH1cbiAgICAgICAgLmZvcm0tc2NhbGUgdHI6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsgfVxuICAgICAgICAuZm9ybS1zY2FsZSB0ciBsYWJlbCB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAgICAgLmZvcm0tc2NhbGUgdHIgLmxhYmVsIHtcbiAgICAgICAgICBmbGV4OiA1IDAgNDAlOyB9XG4gICAgICAgIC5mb3JtLXNjYWxlIHRyIC52YWx1ZSB7XG4gICAgICAgICAgZmxleDogMSAwIDEyJTtcbiAgICAgICAgICBwYWRkaW5nOiAxOHB4IDA7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgICAgIC5mb3JtLXNjYWxlIHRyIHNwYW4ge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAuZm9ybS1zY2FsZSAubGFiZWwsIC5mb3JtLXNjYWxlIC52YWx1ZSB7XG4gICAgY29sb3I6ICM2OTY5Njk7XG4gICAgZm9udC1zaXplOiAxOHB4OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gICAgICAuZm9ybS1zY2FsZSAubGFiZWwsIC5mb3JtLXNjYWxlIC52YWx1ZSB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGNvbG9yOiAjMWIyMzI3O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9IH1cbiAgLmZvcm0tc2NhbGUgLmxhYmVsIHtcbiAgICBtYXJnaW4tYm90dG9tOiA5cHg7IH1cbiAgLmZvcm0tc2NhbGUgLmZvcm0tc2NhbGUtaGVhZGluZyB7XG4gICAgY29sb3I6ICM2OTY5Njk7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjJlbTsgfVxuXG4uZXJyb3JsaXN0IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgei1pbmRleDogMTA7IH1cbiAgLmVycm9ybGlzdCBsaSB7XG4gICAgY29sb3I6ICNmMjZjNGY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIHotaW5kZXg6IDEwMDsgfVxuXG4vKlxuRm9ybSBpdGVtIGRlc2NyaXB0aW9uXG5cblRoaXMgaXMgYW4gYWRkaXRpb25hbCBkZXNjcmlwdGlvbiB3aXRoaW4gYSBmb3JtLiBJdCBwcm92aWRlcyBleHRyYSBpbmZvcm1hdGlvbiBhYm91dFxuYSBmb3JtIGl0ZW0uXG5cbk1hcmt1cDpcbiAgPGRpdiBjbGFzcz1cImZvcm0tcm93IGZvcm0taXRlbWRlc2NyaXB0aW9uXCI+XG4gICAgPGgyPlJlY29tbWVuZCB0byBDby1QYXJlbnQ8L2gyPlxuICAgIDxwPkVudGVyIHlvdXIgQ28tUGFyZW504oCZcyBlbWFpbCBiZWxvdyBhbmQgd2XigJlsbCBzZW5kIHRoZW0gYW4gZW1haWwgaW52aXRpbmcgdGhlbSB0byBzaWduIHVwIGZvciBDaGlsZHJlbiBpbiBCZXR3ZWVuIG9uIHlvdXIgYmVoYWxmLiA8L3A+XG4gIDwvZGl2PlxuXG5cblN0eWxlZ3VpZGUgMy4yLjNcbiovXG4uZm9ybS1pdGVtZGVzY3JpcHRpb24ge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgcGFkZGluZy1ib3R0b206IDEwcHg7IH1cbiAgLmZvcm0taXRlbWRlc2NyaXB0aW9uIGgyIHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDIycHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4OyB9XG4gIC5mb3JtLWl0ZW1kZXNjcmlwdGlvbiBwIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDE0cHg7IH1cblxuLmZvcm0teC1SZWNvbW1lbmQtY29wYXJlbnQge1xuICBmb250LXNpemU6IDE4cHg7XG4gIGxpbmUtaGVpZ2h0OiAyN3B4O1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9XG5cbi5mb3JtLXJvbGx1cCB7XG4gIGJvcmRlcjogMDtcbiAgbWF4LWhlaWdodDogMHB4O1xuICBtYXJnaW46IC0xcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG4gIHdpZHRoOiAxcHg7XG4gIHRyYW5zaXRpb246IG1heC1oZWlnaHQgLjVzOyB9XG5cbi5mb3JtLXJvbGx1cC1kaXNwbGF5LXZpc2libGUge1xuICBib3JkZXI6IDA7XG4gIGhlaWdodDogYXV0bztcbiAgbWFyZ2luOiAwO1xuICBtYXgtaGVpZ2h0OiAzMDBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMDtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLypcbkZvcm0gYXMgYSBidXR0b25cblxuTWFya3VwOlxuPGRpdiBjbGFzcz1cImZvcm0gZm9ybS1pbmxpbmVcIj5cbiAgPGRpdiBjbGFzcz1cImZvcm0tcm93IGZvcm0tcm93LWFsaWduY2VudGVyXCI+XG4gICAgPGJ1dHRvbiBpZD1cImJ1eUZvckNvUGFyZW50XCIgY2xhc3M9XCJidXR0b25cIj5CdXkgQ2hpbGRyZW4gaW4gQmV0d2VlbiBmb3IgeW91ciBDby1QYXJlbnQ8L2J1dHRvbj5cbiAgICA8cCBpZD1cInNob3dGb3JtQnV0dG9uXCIgY2xhc3M9XCJmb3JtLXgtUmVjb21tZW5kLWNvcGFyZW50XCI+b3I8YT5SZWNvbW1lbmQgdG8gQ28tUGFyZW50PC9hPjwvcD5cbiAgPC9kaXY+XG48L2Rpdj5cblxuU3R5bGVndWlkZSAzLjIuNFxuKi9cbi8qXG5Gb3JtIFJvdyAoU3RyaXBlKVxuXG5EZWZhdWx0IC0gU3RhbmRhcmQgaW5wdXQgdHlwZVxuLnN1Y2Nlc3MgLSBTaG93cyB0aGUgZmllbGQgd2FzIGZpbGxlZCBvdXQgY29ycmVjdGx5XG4uZXJyb3IgLSBTaG93cyBhIGZpZWxkIGVycm9yXG5cbk1hcmt1cDpcbjxmb3JtIGNsYXNzPVwiZm9ybVwiPlxuICA8ZmllbGRzZXQ+XG4gICAgPGxlZ2VuZD40LiBTZWN1cmUgUGF5bWVudDwvbGVnZW5kPlxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLXJvdyBmb3JtLXJvdy1zdHJpcGUgeyRtb2RpZmllcnN9XCI+XG4gICAgICA8bGFiZWwgZm9yPVwiZm9ybXJvd1wiPkxhYmVsOjwvbGFiZWw+XG4gICAgICA8ZGl2IGNsYXNzPVwidmFsdWVcIiBpZD1cImNhcmQtZWxlbWVudFwiPlxuICAgICAgICA8c3Bhbj5bc3RyaXBlIGNvZGVdPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8cCBjbGFzcz1cImZvcm0tcm93LWluc3RydWN0aW9uc1wiPlRoZXNlIGFyZSBmaWVsZC1sZXZlbCBpbnN0cnVjdGlvbnM8L3A+XG4gICAgPC9kaXY+XG4gIDwvZmllbGRzZXQ+XG48L2Zvcm0+XG5cblN0eWxlZ3VpZGUgMy4yLjVcbiovXG4vKlxuR2xvYmFsIE5vdGlmaWNhdGlvblxuXG5NYXJrdXA6XG48ZGl2IGNsYXNzPVwiZ2xvYmFsLW5vdGlmaWNhdGlvbnNcIj5cbiAgPGRpdiBjbGFzcz1cIm5vdGlmaWNhdGlvbiBsLWNvbnRhaW5lcmhvcml6b250YWxcIiBpZD1cIm5vdGlmaWNhdGlvbnNcIj5cbiAgICA8aDQ+Q0RFJ3MgQ2hpbGRyZW4gSW4gQmV0d2VlbiByZXF1aXJlcyBHb29nbGUgQ2hyb21lIGJyb3dzZXIuIDxzcGFuIGNsYXNzPVwiZXJyb3JcIj48YSBocmVmPVwiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9pbnRsL2VuL2Nocm9tZS9icm93c2VyL1wiIHRhcmdldD1cIl9ibGFua1wiPkRvd25sb2FkIENocm9tZTwvYT48L3NwYW4+PC9oND5cbiAgICA8aDQ+U29tZSBub25lIGVycm9yIG5vdGlmaWNhdGlvbiA8c3Bhbj48YSBocmVmPVwiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9pbnRsL2VuL2Nocm9tZS9icm93c2VyL1wiIHRhcmdldD1cIl9ibGFua1wiPkdvdCBJdDwvYT48L3NwYW4+PC9oND5cbiAgPC9kaXY+XG48L2Rpdj5cblxuU3R5bGVndWlkZSAzLjE0XG4qL1xuLmdsb2JhbC1ub3RpZmljYXRpb25zIHtcbiAgYmFja2dyb3VuZDogIzE1NWE3NjtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTA7IH1cbiAgLmdsb2JhbC1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24ge1xuICAgIHBhZGRpbmc6IDAgMThweDsgfVxuICAgIC5nbG9iYWwtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIHN0cm9uZyB7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAgIC5nbG9iYWwtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIHVsIGxpIHtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIHBhZGRpbmc6IDEwcHggMDsgfVxuICAgIC5nbG9iYWwtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIGg0IHtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgIzBmNDA1MztcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBtaW4taGVpZ2h0OiA1OHB4O1xuICAgICAgcGFkZGluZzogOXB4IDA7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgICAgICAuZ2xvYmFsLW5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbiBoNCB7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH0gfVxuICAgICAgLmdsb2JhbC1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24gaDQ6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIGJvcmRlci10b3A6IDA7IH1cbiAgICAgIC5nbG9iYWwtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIGg0Lm5vdGlmaWNhdGlvbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgICAgICAgIC5nbG9iYWwtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIGg0Lm5vdGlmaWNhdGlvbiB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogNDBweDsgfSB9XG4gICAgICAgIC5nbG9iYWwtbm90aWZpY2F0aW9ucyAubm90aWZpY2F0aW9uIGg0Lm5vdGlmaWNhdGlvbiBzdHJvbmcge1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gICAgLmdsb2JhbC1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24gc3BhbiB7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgYmFja2dyb3VuZDogIzlhYmEzODtcbiAgICAgIG1hcmdpbi10b3A6IDE4cHg7XG4gICAgICBwYWRkaW5nOiA5cHggMThweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAgICAgLmdsb2JhbC1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24gc3BhbiB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICB3aWR0aDogYXV0bzsgfSB9XG4gICAgICAuZ2xvYmFsLW5vdGlmaWNhdGlvbnMgLm5vdGlmaWNhdGlvbiBzcGFuLmVycm9yIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2U3NTM0NTsgfVxuICAgICAgLmdsb2JhbC1ub3RpZmljYXRpb25zIC5ub3RpZmljYXRpb24gc3BhbiBhIHtcbiAgICAgICAgY29sb3I6ICNmZmY7IH1cblxuLypcbkdsb3NzYXJ5XG5cblBsZWFzZSBub3RlIHRoZSByZXF1aXJlZCBqYXZhc2NyaXB0IGF0IHRoZSBiZWdpbmluZyBvZiB0aGUgQ1NTIGJlbGxvdy5cblxuTWFya3VwOlxuPHNlY3Rpb24gY2xhc3M9XCJnbG9zc2FyeVwiPlxuICA8ZGl2IGNsYXNzPVwiZ2xvc3NhcnkteC1oZWFkZXJcIj5cbiAgICA8aDE+R2xvc3Nhcnk8L2gxPlxuICAgIDxwIGNsYXNzPVwiZ2xvc3NhcnkteC10ZXh0LWxpZ2h0R3JleVwiPlNlbGVjdCBhIHRlcm0gaW4gdGhlIGxpc3QgdG8gdmlldyBpdHMgZGVmaW5pdGlvbi48L3A+XG4gICAgPHNnLWluc2VydD4zLjUyPC9zZy1pbnNlcnQ+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibC1nbG9zc2FyeVwiPlxuICAgIDxkaXYgY2xhc3M9XCJnbG9zc2FyeS14LXRlcm1zXCI+XG4gICAgICA8YXJ0aWNsZT5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJhY2NvcmRpb25cIiB2YWx1ZT1cImFjY29yZGlvbjFcIiBpZD1cImFjY29yZGlvbjFcIiBjaGVja2VkPVwiY2hlY2tlZFwiPlxuICAgICAgICA8bGFiZWwgZm9yPVwiYWNjb3JkaW9uMVwiPjxoMT5TZW5zaXRpdml0eTwvaDE+PC9sYWJlbD5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwiZ2xvc3NhcnkteC10ZXJtXCI+U2Vuc2l0aXZpdHk8L3A+XG4gICAgICAgICAgICAgVGhpcyBpbnZvbHZlcyBlbXBhdGh5LCB3aGVyZSB5b3UgY2FuIHNlZSBzaXR1YXRpb25zIHRocm91Z2ggb3RoZXIgcGVvcGxl4oCZcyBleWVzIGFuZCBmZWVsIHdoYXQgdGhleSBmZWVsLiBTZW5zaXRpdml0eSBtZWFucyBjb25zaWRlcmluZyB0aGUgZmVlbGluZ3MgYW5kIHdlbGZhcmUgb2Ygb3RoZXJzIGJlZm9yZSB5b3UgYWN0LiBJdCBtZWFucyB0aGF0IHlvdSBkbyBub3QgYWx3YXlzIHB1dCB5b3VyIG5lZWRzIG9mIHRoZSBtb21lbnQgZmlyc3QuIFNlbnNpdGl2aXR5IGluY3JlYXNlcyB3aXRoIG1hdHVyaXR5LCB3aXNkb20sIGNvbXBhc3Npb24sIGFuZCBzZWxmLWNvbnRyb2wuXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9hcnRpY2xlPlxuICAgICAgPGFydGljbGU+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBuYW1lPVwiYWNjb3JkaW9uXCIgdmFsdWU9XCJhY2NvcmRpb24yXCIgaWQ9XCJhY2NvcmRpb24yXCI+XG4gICAgICAgIDxsYWJlbCBmb3I9XCJhY2NvcmRpb24yXCI+PGgxPkVtcGF0aHk8L2gxPjwvbGFiZWw+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8cCBjbGFzcz1cImdsb3NzYXJ5LXgtdGVybVwiPkVtcGF0aHk8L3A+XG4gICAgICAgICAgICAgV2hlbiB5b3UgY2FuIGZlZWwgd2hhdCBhbm90aGVyIHBlcnNvbiBmZWVscywgdGhpcyBpcyBlbXBhdGh5LiBJdCBpbnZvbHZlcyBwdXR0aW5nIHlvdXJzZWxmIGluIHNvbWVvbmUgZWxzZeKAmXMgc2hvZXMgc28gYXMgdG8gc2VlIHRoZSBzaXR1YXRpb24gZnJvbSB0aGVpciBwb2ludCBvZiB2aWV3IGFuZCBleHBlcmllbmNlIHRoZSBmZWVsaW5ncyB0aGV5IGRvLiBFbXBhdGh5IGlzIHRoZSBiYXNpcyBmb3IgaW50aW1hdGUgcmVsYXRpb25zaGlwcyBhbmQgYnVpbGRzIHJlc3BlY3QgZm9yIHRoZSBvdGhlciBwZXJzb24uIFBlb3BsZSB3aG8gYXJlIGhpZ2ggaW4gZW1vdGlvbmFsIGludGVsbGlnZW5jZSBoYXZlIGdvb2QgZW1wYXRoeSBza2lsbHMuXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9hcnRpY2xlPlxuICAgICAgPGFydGljbGU+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBuYW1lPVwiYWNjb3JkaW9uXCIgdmFsdWU9XCJhY2NvcmRpb24zXCIgaWQ9XCJhY2NvcmRpb24zXCI+XG4gICAgICAgIDxsYWJlbCBmb3I9XCJhY2NvcmRpb24zXCI+PGgxPlBvbGl0ZSBSZXF1ZXN0PC9oMT48L2xhYmVsPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPHAgY2xhc3M9XCJnbG9zc2FyeS14LXRlcm1cIj5Qb2xpdGUgUmVxdWVzdDwvcD5cbiAgICAgICAgICAgICAgVGhpcyBpcyBhbiBleHRlbnNpb24gb2YgYW4g4oCcSeKAnSBtZXNzYWdlLiBBZnRlciBzdGF0aW5nIGhvdyB5b3UgZmVlbCBhYm91dCBhbm90aGVyIHBlcnNvbuKAmXMgYmVoYXZpb3IsIHlvdSBwdXQgeW91ciByZXF1ZXN0IGZvciBhIGNoYW5nZSBpbiBiZWhhdmlvciBpbiBhIGNsZWFybHkgcG9saXRlIGZvcm0sIHRoZW4gYXNrIGZvciB0aGVpciBhZ3JlZW1lbnQ6XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9hcnRpY2xlPlxuICAgICAgPGFydGljbGU+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBuYW1lPVwiYWNjb3JkaW9uXCIgdmFsdWU9XCJhY2NvcmRpb240XCIgaWQ9XCJhY2NvcmRpb240XCI+XG4gICAgICAgIDxsYWJlbCBmb3I9XCJhY2NvcmRpb240XCI+PGgxPlBvbGl0ZSBSZXF1ZXN0IDI8L2gxPjwvbGFiZWw+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8cCBjbGFzcz1cImdsb3NzYXJ5LXgtdGVybVwiPlBvbGl0ZSBSZXF1ZXN0PC9wPlxuICAgICAgICAgICAgIFRoaXMgaXMgYW4gZXh0ZW5zaW9uIG9mIGFuIOKAnEnigJ0gbWVzc2FnZS4gQWZ0ZXIgc3RhdGluZyBob3cgeW91IGZlZWwgYWJvdXQgYW5vdGhlciBwZXJzb27igJlzIGJlaGF2aW9yLCB5b3UgcHV0IHlvdXIgcmVxdWVzdCBmb3IgYSBjaGFuZ2UgaW4gYmVoYXZpb3IgaW4gYSBjbGVhcmx5IHBvbGl0ZSBmb3JtLCB0aGVuIGFzayBmb3IgdGhlaXIgYWdyZWVtZW50OlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvYXJ0aWNsZT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGlkPVwiZ2xvc3NhcnkteC1kZWZpbml0aW9uXCI+XG4gICAgICBUaGlzIGlzIGFuIGV4dGVuc2lvbiBvZiBhbiDigJxJ4oCdIG1lc3NhZ2UuIEFmdGVyIHN0YXRpbmcgaG93IHlvdSBmZWVsIGFib3V0IGFub3RoZXIgcGVyc29u4oCZcyBiZWhhdmlvciwgeW91IHB1dCB5b3VyIHJlcXVlc3QgZm9yIGEgY2hhbmdlIGluIGJlaGF2aW9yIGluIGEgY2xlYXJseSBwb2xpdGUgZm9ybSwgdGhlbiBhc2sgZm9yIHRoZWlyIGFncmVlbWVudDpcbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L3NlY3Rpb24+XG5cblxuU3R5bGVndWlkZSAzLjQ5XG4qL1xuLypcblRoaXMgcGF0dGVybiBhc3N1bWVzIGFuZCByZXF1aXJlcyB0aGUgZm9sbG93aW5nIGphdmFzY3JpcHQgLyBKcXVlcnkgc25pcHBldDpcbndpbmRvdy5uZXh0VGVybSA9IG51bGw7XG53aW5kb3cubXV0ZWQgPSBmYWxzZTtcblxuZnVuY3Rpb24gbXV0ZUF1ZGlvKCkge1xuICAgICQoJyN2b2x1bWVfY29udHJvbCcpLmZpbmQoJyN2b2x1bWVEaXNwbGF5JykuYWRkQ2xhc3MoJ2F1ZGlvR2xvc3NhcnktbXV0ZWQnKTtcbiAgICB3aW5kb3cubXV0ZWQgPSB0cnVlO1xuICAgIGlmICh3aW5kb3cuZ2xvc3NhcnlfdGVybV9hdWRpbykge1xuICAgICAgICB3aW5kb3cuZ2xvc3NhcnlfdGVybV9hdWRpby5wYXVzZSgpO1xuICAgICAgICB3aW5kb3cuZ2xvc3NhcnlfdGVybV9hdWRpby5tdXRlZCA9IHRydWU7XG4gICAgfVxufVxuXG5mdW5jdGlvbiB1bm11dGVBdWRpbygpIHtcbiAgICAkKCcjdm9sdW1lX2NvbnRyb2wnKS5maW5kKCcjdm9sdW1lRGlzcGxheScpLnJlbW92ZUNsYXNzKCdhdWRpb0dsb3NzYXJ5LW11dGVkJyk7XG4gICAgd2luZG93Lm11dGVkID0gZmFsc2U7XG4gICAgaWYgKHdpbmRvdy5nbG9zc2FyeV90ZXJtX2F1ZGlvKSB7XG4gICAgICAgIHdpbmRvdy5nbG9zc2FyeV90ZXJtX2F1ZGlvLnBsYXkoKTtcbiAgICAgICAgd2luZG93Lmdsb3NzYXJ5X3Rlcm1fYXVkaW8ubXV0ZWQgPSBmYWxzZTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIHRvZ2dsZU11dGUoKSB7XG4gICAgaWYgKHdpbmRvdy5tdXRlZCkge1xuICAgICAgICB1bm11dGVBdWRpbygpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIG11dGVBdWRpbygpO1xuICAgIH1cbn1cblxuXG4kKCcjdm9sdW1lX2NvbnRyb2wnKS5jbGljayhmdW5jdGlvbigpe1xuICAgIHRvZ2dsZU11dGUoKTtcbn0pO1xuXG5cbmZ1bmN0aW9uIHBsYXlEZWZpbml0aW9uQXVkaW8oYXVkaW9VcmwpIHtcbiAgICBpZiAoIXdpbmRvdy5tdXRlZCl7XG4gICAgICAgIGlmICh3aW5kb3cuZ2xvc3NhcnlfdGVybV9hdWRpbykge1xuICAgICAgICAgICAgd2luZG93Lmdsb3NzYXJ5X3Rlcm1fYXVkaW8ucGF1c2UoKTtcbiAgICAgICAgICAgIHdpbmRvdy5nbG9zc2FyeV90ZXJtX2F1ZGlvLnNyYyA9IGF1ZGlvVXJsO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgd2luZG93Lmdsb3NzYXJ5X3Rlcm1fYXVkaW8gPSBuZXcgQXVkaW8oYXVkaW9VcmwpO1xuICAgICAgICB9XG4gICAgICAgIHdpbmRvdy5nbG9zc2FyeV90ZXJtX2F1ZGlvLnBsYXkoKTtcbiAgICB9IGVsc2UgaWYgKHdpbmRvdy5nbG9zc2FyeV90ZXJtX2F1ZGlvKSB7XG4gICAgICAgIHdpbmRvdy5nbG9zc2FyeV90ZXJtX2F1ZGlvLnNyYyA9IGF1ZGlvVXJsO1xuICAgIH1cbn1cblxuXG5cbiQoZnVuY3Rpb24oKSB7XG5cbiAgICB2YXIgZ2xvc3NhcnkgPSAkKCcjZ2xvc3NhcnknKTtcbiAgICBzaG93RGVmaW5pdGlvbihnbG9zc2FyeS5maW5kKCdhcnRpY2xlOmhhcyhpbnB1dDpjaGVja2VkKScpKTtcblxuICAgIGdsb3NzYXJ5LmZpbmQoJ2lucHV0JykuY2xpY2soZnVuY3Rpb24oZXZlbnQpIHtcbiAgICAgICAgdmFyIHRhcmdldCA9ICQoZXZlbnQuY3VycmVudFRhcmdldCksXG4gICAgICAgICAgICB0ZXJtRWxlbWVudCA9IHRhcmdldC5jbG9zZXN0KCdhcnRpY2xlJyksXG4gICAgICAgICAgICByYWRpbyA9IHRlcm1FbGVtZW50LmZpbmQoJ2lucHV0OmNoZWNrZWQnKSxcbiAgICAgICAgICAgIGF1ZGlvVXJsID0gcmFkaW8uZGF0YSgnYXVkaW9VcmwnKTtcblxuICAgICAgICBzaG93RGVmaW5pdGlvbih0ZXJtRWxlbWVudCk7XG4gICAgICAgIGlmIChhdWRpb1VybCkge1xuICAgICAgICAgICAgcGxheURlZmluaXRpb25BdWRpbyhhdWRpb1VybCk7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIGdldERlZmluaXRpb25Gb3JTZWxlY3RlZFRlcm0odGVybUVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIHRlcm1FbGVtZW50LmZpbmQoJy5nbG9zc2FyeS14LXRlcm0nKS5wYXJlbnQoKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzaG93RGVmaW5pdGlvbih0ZXJtRWxlbWVudCkge1xuICAgICAgICB2YXIgZGVmaW5pdGlvbiA9IGdldERlZmluaXRpb25Gb3JTZWxlY3RlZFRlcm0odGVybUVsZW1lbnQpLmNsb25lKCksXG4gICAgICAgICAgICBkaXNwbGF5RWxlbWVudCA9ICQoXCIjZ2xvc3NhcnkteC1kZWZpbml0aW9uXCIpO1xuICAgICAgICBkaXNwbGF5RWxlbWVudC5odG1sKGRlZmluaXRpb24pO1xuICAgIH1cblxufSk7XG5cbiovXG4uZ2xvc3NhcnkgLmdsb3NzYXJ5LXgtdGVybXMgPiBhcnRpY2xlIHtcbiAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxNnB4OyB9XG4gIC5nbG9zc2FyeSAuZ2xvc3NhcnkteC10ZXJtcyA+IGFydGljbGUgPiBpbnB1dCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5nbG9zc2FyeSAuZ2xvc3NhcnkteC10ZXJtcyA+IGFydGljbGUgPiBpbnB1dCArIGxhYmVsIHtcbiAgICAgIGNvbG9yOiAjMjhhZGUzO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMTZweDtcbiAgICAgIHBhZGRpbmctbGVmdDogMTZweDtcbiAgICAgIHBhZGRpbmctdG9wOiAxNnB4O1xuICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI0QwRDBEMDtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjRDBEMEQwOyB9XG4gICAgICAuZ2xvc3NhcnkgLmdsb3NzYXJ5LXgtdGVybXMgPiBhcnRpY2xlID4gaW5wdXQgKyBsYWJlbCBoMSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDsgfVxuICAgIC5nbG9zc2FyeSAuZ2xvc3NhcnkteC10ZXJtcyA+IGFydGljbGUgPiBpbnB1dCArIGxhYmVsICsgKiB7XG4gICAgICBjb2xvcjogIzY5Njk2OTtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDE4cHg7XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzIGVhc2UtaW4tb3V0OyB9XG4gIC5nbG9zc2FyeSAuZ2xvc3NhcnkteC10ZXJtcyA+IGFydGljbGUgPiBpbnB1dDpub3QoOmNoZWNrZWQpICsgbGFiZWwgc3BhbiB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtOTBkZWcpO1xuICAgIHRyYW5zaXRpb246IG5vbmU7IH1cbiAgLmdsb3NzYXJ5IC5nbG9zc2FyeS14LXRlcm1zID4gYXJ0aWNsZSA+IGlucHV0Om5vdCg6Y2hlY2tlZCkgKyBsYWJlbCArICoge1xuICAgIGhlaWdodDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5nbG9zc2FyeSAuZ2xvc3NhcnkteC10ZXJtcyA+IGFydGljbGUgPiBpbnB1dDpjaGVja2VkICsgbGFiZWwgaDEge1xuICAgIGNvbG9yOiAjMkE1QTczO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gIC5nbG9zc2FyeSAuZ2xvc3NhcnkteC10ZXJtcyA+IGFydGljbGUgPiBpbnB1dDpjaGVja2VkICsgbGFiZWwgKyAqIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMThweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxOHB4O1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNEMEQwRDA7IH1cblxuLmdsb3NzYXJ5IC5nbG9zc2FyeS14LXRlcm1zIC5nbG9zc2FyeS14LXRlcm0ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5nbG9zc2FyeSAuZ2xvc3NhcnkteC10ZXJtcyAuZ2xvc3NhcnkteC10ZXJtLWhlYWRlciB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmdsb3NzYXJ5IC5nbG9zc2FyeS14LXRlcm1zIC5nbG9zc2FyeS14LXRleHQtbGlnaHRHcmV5IHtcbiAgY29sb3I6ICM3QzdDN0M7IH1cblxuLmdsb3NzYXJ5ICNnbG9zc2FyeS14LWRlZmluaXRpb24ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5nbG9zc2FyeSAuZ2xvc3NhcnkteC1oZWFkZXIge1xuICBwYWRkaW5nOiAyMHB4IDIzcHg7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2NTBweCkge1xuICAuZ2xvc3Nhcnkge1xuICAgIHBhZGRpbmc6IDMxcHggNzBweDsgfVxuICAgIC5nbG9zc2FyeSAuZ2xvc3NhcnkteC10ZXJtcyA+IGFydGljbGUge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgIHdpZHRoOiAyOTBweDsgfVxuICAgICAgLmdsb3NzYXJ5IC5nbG9zc2FyeS14LXRlcm1zID4gYXJ0aWNsZSA+IGlucHV0ICsgbGFiZWwgKyAqIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgICAgLmdsb3NzYXJ5IC5nbG9zc2FyeS14LXRlcm1zID4gYXJ0aWNsZSA+IGlucHV0OmNoZWNrZWQgKyBsYWJlbCArICoge1xuICAgICAgICBib3JkZXI6IDA7IH1cbiAgICAuZ2xvc3NhcnkgI2dsb3NzYXJ5LXgtZGVmaW5pdGlvbiB7XG4gICAgICBjb2xvcjogIzY5Njk2OTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcGFkZGluZy1sZWZ0OiAzMHB4O1xuICAgICAgcGFkZGluZy10b3A6IDE2cHg7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI0QwRDBEMDsgfVxuICAgIC5nbG9zc2FyeSAuZ2xvc3NhcnkteC1oZWFkZXIge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAgIC5nbG9zc2FyeSAuZ2xvc3NhcnkteC10ZXJtLWhlYWRlciB7XG4gICAgICBjb2xvcjogYmxhY2s7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogMzJweDsgfVxuICAgIC5nbG9zc2FyeSAuZ2xvc3NhcnkteC10ZXJtIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgY29sb3I6IGJsYWNrO1xuICAgICAgZm9udC1zaXplOiAzMnB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDM4cHg7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsOyB9IH1cblxuLypcbmF1ZGlvIGdsb3NzYXJ5XG5cbk1hcmt1cDpcbjxwPlxuICA8YSBpZD1cInZvbHVtZV9jb250cm9sXCIgY2xhc3M9XCJhdWRpb0dsb3NzYXJ5XCI+XG4gICAgPHNwYW4gY2xhc3M9XCJhdWRpb0dsb3NzYXJ5LXgtdGV4dFwiPlJlYWQgQWxvdWQ8L3NwYW4+XG4gICAgPHNwYW4gaWQ9XCJ2b2x1bWVfY29udHJvbFwiIGNsYXNzPVwiYXVkaW9HbG9zc2FyeS1pY29uIGF1ZGlvR2xvc3NhcnktaWNvbi1tdXRlZFwiPjwvc3Bhbj5cbiAgPC9hPlxuPC9wPlxuXG5TdHlsZWd1aWRlIDMuNTJcbiovXG4uYXVkaW9HbG9zc2FyeSB7XG4gIGNvbG9yOiAjMDAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmF1ZGlvR2xvc3Nhcnk6aG92ZXIge1xuICAgIGNvbG9yOiAjMDAwOyB9XG4gIC5hdWRpb0dsb3NzYXJ5IC5hdWRpb0dsb3NzYXJ5LWljb24ge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gICAgLmF1ZGlvR2xvc3NhcnkgLmF1ZGlvR2xvc3NhcnktaWNvbiwgLmF1ZGlvR2xvc3NhcnkgLmF1ZGlvR2xvc3NhcnktaWNvbiBzdmcge1xuICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgd2lkdGg6IDMwcHg7IH1cbiAgICAuYXVkaW9HbG9zc2FyeSAuYXVkaW9HbG9zc2FyeS1pY29uIC5pY29uLXVubXV0ZSB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLmF1ZGlvR2xvc3NhcnkgLmF1ZGlvR2xvc3NhcnktaWNvbi5hdWRpb0dsb3NzYXJ5LW11dGVkIC5pY29uLXVubXV0ZSB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC5hdWRpb0dsb3NzYXJ5IC5hdWRpb0dsb3NzYXJ5LWljb24uYXVkaW9HbG9zc2FyeS1tdXRlZCAuaWNvbi1tdXRlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmF1ZGlvR2xvc3Nhcnkgc3BhbiB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLypcbkd1aWRlZCBRdWVzdGlvblxuXG5NYXJrdXA6XG48ZGl2IGNsYXNzPVwiZ3VpZGVkLXF1ZXN0aW9uXCIgaWQ9XCJjb3Vyc2VfY29udGFpbmVyXCI+XG4gIDxwPkxldCdzIGNvbnNpZGVyIHRoZSBmb2xsb3dpbmc6PC9wPlxuICA8aDEgaWQ9XCJxdWVzdGlvblwiPldoYXQgZG8gY2hpbGRyZW4gbmVlZCB3aGVuIHRoZXkgbWFrZSBhIHRyYW5zaXRpb24gZnJvbSBvbmUgcGFyZW50J3MgaG9tZSB0byB0aGUgb3RoZXIncz88L2gxPjxwPlRoZXkgbmVlZCBxdWlldCB0aW1lIGFuZCBnZW50bGUgc3VwcG9ydCBmcm9tIGVhY2ggcGFyZW50LiBUaGV5IG5lZWQgdGltZSB0byBkZWNvbXByZXNzIGZyb20gdGhlIHN0cm9uZyBmZWVsaW5ncyBvZiBkaXZpZGVkIGxveWFsdGllcy4gQ2hpbGRyZW4gbWF5IHNodXQgb3V0IG9uZSBvciBib3RoIHBhcmVudHMgZHVyaW5nIHRoZXNlIHRpbWVzIGFzIHRoZXkgc3RydWdnbGUgd2l0aCBmZWVsaW5ncyBvZiBsb3lhbHR5IHRvIHRoZSBhYnNlbnQgcGFyZW50LiBJZiBjb25mbGljdCBiZXR3ZWVuIHBhcmVudHMgb2NjdXJzLCBpdCBjYW4gdGFrZSB0aGUgY2hpbGRyZW4gYW5kIHBhcmVudHMgdXAgdG8gNzIgaG91cnMgdG8gZ2V0IHRoZSBhZHJlbmFsaW5lIG91dCBvZiB0aGVpciBzeXN0ZW1zLiA8L3A+XG4gIDxzZWN0aW9uIGNsYXNzPVwiY29udHJvbHNcIj5cbiAgICA8YSBpZD1cIm5leHRfYnV0dG9uXCIgY2xhc3M9XCJidXR0b25cIiBocmVmPVwiI1wiPk5leHQgUXVlc3Rpb248L2E+XG4gICAgPGFzaWRlIHN0eWxlPVwiXCI+XG4gICAgICA8cCBjbGFzcz1cImgyXCI+TW9yZSBpbmZvcm1hdGlvbjo8L3A+XG4gICAgICA8dWwgaWQ9XCJmb290bm90ZXNcIj48bGk+PGEgaHJlZj1cIiNcIiBjbGFzcz1cImZvb3Rub3RlXCIgaWQ9XCI1XCI+NTwvYT48L2xpPjwvdWw+XG4gICAgPC9hc2lkZT5cbiAgPC9zZWN0aW9uPlxuPC9kaXY+XG5cblN0eWxlZ3VpZGUgMy4xMVxuKi9cbi5ndWlkZWQtcXVlc3Rpb24ge1xuICBwYWRkaW5nOiAwIDE4cHggMThweCAxOHB4OyB9XG4gIC5ndWlkZWQtcXVlc3Rpb24gaDEge1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxOHB4OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gICAgICAuZ3VpZGVkLXF1ZXN0aW9uIGgxIHtcbiAgICAgICAgZm9udC1zaXplOiAzMHB4OyB9IH1cbiAgICAuZ3VpZGVkLXF1ZXN0aW9uIGgxIGEge1xuICAgICAgY29sb3I6ICMxMzZkOTI7IH1cbiAgLmd1aWRlZC1xdWVzdGlvbiBoMiB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAgIC5ndWlkZWQtcXVlc3Rpb24gaDIge1xuICAgICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDlweDsgfSB9XG4gIC5ndWlkZWQtcXVlc3Rpb24gcCB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgbWFyZ2luLWJvdHRvbTogLjVlbTtcbiAgICBkaXNwbGF5OiBpbmxpbmU7IH1cbiAgLmd1aWRlZC1xdWVzdGlvbiAuY29udHJvbHMge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gICAgICAuZ3VpZGVkLXF1ZXN0aW9uIC5jb250cm9scyB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxOHB4OyB9IH1cbiAgLmd1aWRlZC1xdWVzdGlvbiAuYnV0dG9uIHtcbiAgICBtYXJnaW46IDE4cHggMDtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgICAgLmd1aWRlZC1xdWVzdGlvbiAuYnV0dG9uIHtcbiAgICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgICBtYXJnaW46IDAgMThweCAwIDA7XG4gICAgICAgIHdpZHRoOiBhdXRvOyB9IH1cbiAgLmd1aWRlZC1xdWVzdGlvbiBhc2lkZSBwIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiA5cHg7XG4gICAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgICBmb250LXNpemU6IDE0cHg7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAgIC5ndWlkZWQtcXVlc3Rpb24gYXNpZGUgcCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDsgfSB9XG4gIC5ndWlkZWQtcXVlc3Rpb24gYXNpZGUgdWwge1xuICAgIGZsb2F0OiBsZWZ0OyB9XG4gICAgLmd1aWRlZC1xdWVzdGlvbiBhc2lkZSB1bCBsaSB7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDlweDsgfVxuICAgICAgLmd1aWRlZC1xdWVzdGlvbiBhc2lkZSB1bCBsaSBhIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGJhY2tncm91bmQ6ICM5YWJhMzg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgcGFkZGluZzogOXB4O1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDFlbTsgfVxuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAgICAgICAuZ3VpZGVkLXF1ZXN0aW9uIGFzaWRlIHVsIGxpIGEge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4OyB9IH1cbiAgICAgICAgLmd1aWRlZC1xdWVzdGlvbiBhc2lkZSB1bCBsaSBhOmhvdmVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAjN2E5MzJjOyB9XG5cbi5xdWVzdGlvbi1mb290bm90ZXMge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYmFja2dyb3VuZDogI2ViZWJlYjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBwYWRkaW5nOiAzMnB4O1xuICBjb2xvcjogIzY5Njk2OTtcbiAgbWFyZ2luLXRvcDogMTdweDsgfVxuICAucXVlc3Rpb24tZm9vdG5vdGVzIC5xdWVzdGlvbi1mb290bm90ZXMtdGl0bGUge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gIC5xdWVzdGlvbi1mb290bm90ZXMgcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTdweDtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKlxuSGlnaCBDb25mbGljdFxuXG5NYXJrdXA6XG48ZGl2IGNsYXNzPVwiaGlnaGNvbmZsaWN0XCI+XG4gIDxpbWcgc3JjPVwiaHR0cDovL3BsYWNlaG9sZC5pdC81Nng1NlwiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiPlxuICA8ZGl2IGNsYXNzPVwiaGlnaGNvbmZsaWN0LXgtdGV4dFwiPlxuICAgIDxoMiBpZD1cImhlYWRpbmctaGlnaGNvbmZsaWN0XCI+TG9va2luZyBmb3IgYSBIaWdoLUNvbmZsaWN0IENsYXNzPzwvaDI+XG4gICAgPHA+PGEgaHJlZj1cIiNcIiBhcmlhLWxhYmVsbGVkYnk9XCJoZWFkaW5nLWhpZ2hjb25mbGljdFwiPkNsaWNrIGZvciBtb3JlIGluZm9ybWF0aW9uPC9hPjwvcD5cbiAgPC9kaXY+XG48L2Rpdj5cblxuU3R5bGVndWlkZSAzLjU1XG4qL1xuLmhpZ2hjb25mbGljdCB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7IH1cbiAgLmhpZ2hjb25mbGljdCBhLFxuICAuaGlnaGNvbmZsaWN0IGgyLFxuICAuaGlnaGNvbmZsaWN0IHAge1xuICAgIGNvbG9yOiAjNzgxMDEyO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBsaW5lLWhlaWdodDogMTRweDsgfVxuICAuaGlnaGNvbmZsaWN0IGEge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gIC5oaWdoY29uZmxpY3QgLmhpZ2hjb25mbGljdC14LXRleHQge1xuICAgIG1hcmdpbi1sZWZ0OiAxOHB4OyB9XG5cbi8qXG5MaW5rIExpc3RcblxuTWFya3VwOlxuPHVsIGNsYXNzPVwibGlua2xpc3RcIj5cbiAgPGxpPjxhIGhyZWY9XCIjXCI+Q0RFJ3MgQ2hpbGRyZW4gaW4gQmV0d2VlbiBPbmxpbmUgMzAtZGF5IEFjY291bnQ8L2E+PC9saT5cbiAgPGxpPjxhIGhyZWY9XCIjXCI+TG9yZW0gSXBzdW0gRG9sb3IgU2l0IEFtZXQgQ29uc2VjdGV0dXIgQWRpcGlzY2luZyBFbGl0PC9hPjwvbGk+XG4gIDxsaT48YSBocmVmPVwiI1wiPkFsaXF1YW0gZGlhbSBtYXVyaXM6IGZhY2lsaXNpcyBuZWMgc29sbGljaXR1ZGluIHZpdGFlIHBvcnRhIGxhb3JlZXQgYXJjdTwvYT48L2xpPlxuPC91bD5cblxuU3R5bGVndWlkZSAzLjU3XG4qL1xuLmxpbmtsaXN0IGEge1xuICBmb250LXNpemU6IDE4cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi5saW5rbGlzdCBsaTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWJvdHRvbTogMThweDsgfVxuXG4vKlxuTG9hZGVyXG5cbk1hcmt1cDpcbjwhLS0gUG9zaXRpb24gcmVsYXRpdmUgb3ZlcnJpZGUganVzdCBmb3IgdGhlIHBhdHRlcm4gbGlicmFyeSwgcG9zaXRpb24gZml4ZWQgYnkgZGVmYXVsdCAtLT5cbjxkaXYgaWQ9XCJpdGVtLWxvYWRpbmdcIiBjbGFzcz1cImxvYWRlclwiIHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlO1wiPlxuICAgIDxwPkxvYWRpbmc8L3A+XG48L2Rpdj5cblxuU3R5bGVndWlkZSAzLjEyXG4qL1xuQGtleWZyYW1lcyBsb2FkZXIge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfSB9XG5cbi5sb2FkZXIge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG4gIGNvbG9yOiAjMjhhZGUzO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBsZWZ0OiAwO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDEwMDA7IH1cbiAgLmxvYWRlciBpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAxOHB4OyB9XG4gIC5sb2FkZXIgcCB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gICAgLmxvYWRlciBwOjpiZWZvcmUge1xuICAgICAgYW5pbWF0aW9uOiBsb2FkZXIgLjhzIGluZmluaXRlIGVhc2UtaW4tb3V0O1xuICAgICAgYm9yZGVyOiA0LjVweCBzb2xpZCAjMjhhZGUzO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICBtYXJnaW46IDAgMCAxOHB4IDA7XG4gICAgICB3aWR0aDogMjhweDsgfVxuXG4vKlxuTG9nb1xuXG5NYXJrdXA6XG48YSBocmVmPVwiL1wiIGNsYXNzPVwibG9nb1wiPjxpbWcgc3JjPVwiL2ltYWdlcy9sb2dvLWNpYi5zdmdcIiBhbHQ9XCJDaGlsZHJlbiBJbiBCZXR3ZWVuIExvZ29cIiB3aWR0aD1cIjI1NlwiIGhlaWdodD1cIjQ1XCI+PC9hPlxuXG5TdHlsZWd1aWRlIDMuMjlcbiovXG4ubG9nbyB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5sb2dvIGltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLypcbk1hbmFnZW1lbnQgVGFibGVcblxuTWFya3VwOlxuPHNlY3Rpb24gY2xhc3M9XCJtYW5hZ2VtZW50LXRhYmxlXCI+XG4gIDx0YWJsZT5cbiAgICA8dGhlYWQ+XG4gICAgICA8dHI+XG4gICAgICAgIDx0aCBzY29wZT1cImNvbFwiPkV4dHJhIENyZWRpdCBDYXRlZ29yeTwvdGg+XG4gICAgICAgIDx0aCBzY29wZT1cImNvbFwiPlZhbHVlPC90aD5cbiAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+IyBDb21wbGV0ZTwvdGg+XG4gICAgICAgIDx0aCBzY29wZT1cImNvbFwiPlRvdGFsPC90aD5cbiAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+QXBwbGllZDwvdGg+XG4gICAgICA8L3RyPlxuICAgIDwvdGhlYWQ+XG4gICAgPHRib2R5PlxuICAgICAgPHRyPlxuICAgICAgICA8dGggc2NvcGU9XCJyb3dcIj5Qb3N0aW5nIGluIHRoZSBGb3J1bSAoTWF4aW11bSA1MCUpPC90aD5cbiAgICAgICAgPHRkPjIlPC90ZD5cbiAgICAgICAgPHRkPjAgb2YgMjU8L3RkPlxuICAgICAgICA8dGQ+MCU8L3RkPlxuICAgICAgICA8dGQ+LTwvdGQ+XG4gICAgICA8L3RyPlxuICAgICAgPHRyPlxuICAgICAgICA8dGggc2NvcGU9XCJyb3dcIj5Ta2lsbHMgUHJhY3RpY2VzIChNYXhpbXVtIDUwJSk8L3RoPlxuICAgICAgICA8dGQ+MiU8L3RkPlxuICAgICAgICA8dGQ+MjUgb2YgMjU8L3RkPlxuICAgICAgICA8dGQ+NTAlPC90ZD5cbiAgICAgICAgPHRkPi08L3RkPlxuICAgICAgPC90cj5cbiAgICAgIDx0cj5cbiAgICAgICAgPHRoIHNjb3BlPVwicm93XCI+U2tpbGxzIFByYWN0aWNlcyAoTWF4aW11bSA1MCUpPC90aD5cbiAgICAgICAgPHRkPjIlPC90ZD5cbiAgICAgICAgPHRkPjI1IG9mIDI1PC90ZD5cbiAgICAgICAgPHRkPjUwJTwvdGQ+XG4gICAgICAgIDx0ZD4tPC90ZD5cbiAgICAgIDwvdHI+XG4gICAgPC90Ym9keT5cbiAgICA8dGZvb3Q+XG4gICAgICA8dHI+XG4gICAgICAgIDx0aCBzY29wZT1cInJvd1wiPlRvdGFsczwvdGg+XG4gICAgICAgIDx0ZD48L3RkPlxuICAgICAgICA8dGQ+MjU8L3RkPlxuICAgICAgICA8dGQ+NTAlPC90ZD5cbiAgICAgICAgPHRkPjAlPC90ZD5cbiAgICAgIDwvdHI+XG4gICAgPC90Zm9vdD5cbiAgPC90YWJsZT5cbjwvc2VjdGlvbj5cblxuU3R5bGVndWlkZSAzLjEzXG4qL1xuLm1hbmFnZW1lbnQtdGFibGUge1xuICBvdmVyZmxvdy14OiBhdXRvO1xuICBtYXJnaW46IDAgMThweCAxOHB4OyB9XG4gIC5tYW5hZ2VtZW50LXRhYmxlIHRhYmxlIHtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAubWFuYWdlbWVudC10YWJsZSB0ZCxcbiAgLm1hbmFnZW1lbnQtdGFibGUgdGgge1xuICAgIHBhZGRpbmc6IDE4cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgICAgLm1hbmFnZW1lbnQtdGFibGUgdGQsXG4gICAgICAubWFuYWdlbWVudC10YWJsZSB0aCB7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7IH0gfVxuICAgIC5tYW5hZ2VtZW50LXRhYmxlIHRkOmxhc3QtY2hpbGQsXG4gICAgLm1hbmFnZW1lbnQtdGFibGUgdGg6bGFzdC1jaGlsZCB7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAgIC5tYW5hZ2VtZW50LXRhYmxlIHRkOmZpcnN0LWNoaWxkLFxuICAgIC5tYW5hZ2VtZW50LXRhYmxlIHRoOmZpcnN0LWNoaWxkIHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLm1hbmFnZW1lbnQtdGFibGUgdGhlYWQgdGgge1xuICAgIGJhY2tncm91bmQ6ICMwYTNiNGU7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA5cHg7XG4gICAgcGFkZGluZy10b3A6IDlweDsgfVxuICAubWFuYWdlbWVudC10YWJsZSB0aGVhZCB0aDpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNXB4OyB9XG4gIC5tYW5hZ2VtZW50LXRhYmxlIHRoZWFkIHRoOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA1cHg7IH1cbiAgLm1hbmFnZW1lbnQtdGFibGUgdGJvZHkgdGQsXG4gIC5tYW5hZ2VtZW50LXRhYmxlIHRib2R5IHRoIHtcbiAgICBib3gtc2hhZG93OiAjZGRkIDAgLTFweCAwIDAgaW5zZXQ7IH1cbiAgICAubWFuYWdlbWVudC10YWJsZSB0Ym9keSB0ZDpmaXJzdC1jaGlsZCxcbiAgICAubWFuYWdlbWVudC10YWJsZSB0Ym9keSB0aDpmaXJzdC1jaGlsZCB7XG4gICAgICBib3gtc2hhZG93OiAjZGRkIDFweCAtMXB4IDAgMCBpbnNldDsgfVxuICAgIC5tYW5hZ2VtZW50LXRhYmxlIHRib2R5IHRkOmxhc3QtY2hpbGQsXG4gICAgLm1hbmFnZW1lbnQtdGFibGUgdGJvZHkgdGg6bGFzdC1jaGlsZCB7XG4gICAgICBib3gtc2hhZG93OiAjZGRkIC0xcHggLTFweCAwIDAgaW5zZXQ7IH1cbiAgICAubWFuYWdlbWVudC10YWJsZSB0Ym9keSB0ZDpvbmx5LWNoaWxkLFxuICAgIC5tYW5hZ2VtZW50LXRhYmxlIHRib2R5IHRoOm9ubHktY2hpbGQge1xuICAgICAgYm94LXNoYWRvdzogI2RkZCAwIDAgMCAxcHggaW5zZXQ7IH1cbiAgLm1hbmFnZW1lbnQtdGFibGUgdGJvZHkgdHI6bnRoLWNoaWxkKGV2ZW4pIHRkLFxuICAubWFuYWdlbWVudC10YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQoZXZlbikgdGgge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNGMkYyRjI7IH1cbiAgLm1hbmFnZW1lbnQtdGFibGUgdGJvZHkgdHI6bGFzdC1vZi10eXBlIHRkOmZpcnN0LWNoaWxkLFxuICAubWFuYWdlbWVudC10YWJsZSB0Ym9keSB0cjpsYXN0LW9mLXR5cGUgdGg6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDVweDsgfVxuICAubWFuYWdlbWVudC10YWJsZSB0Ym9keSB0cjpsYXN0LW9mLXR5cGUgdGQ6bGFzdC1jaGlsZCxcbiAgLm1hbmFnZW1lbnQtdGFibGUgdGJvZHkgdHI6bGFzdC1vZi10eXBlIHRoOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA1cHg7IH1cbiAgLm1hbmFnZW1lbnQtdGFibGUgdGZvb3Qge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi8qXG5NZW51XG5cblRoaXMgaXMgZnJhZ21lbnRlZCwgdGhlc2UgaXRlbXMgc2hvdWxkIGJlY29tZSB0aGVpciBvd24gbW9kdWxlcy5cblxuRGVmYXVsdCAtIFVzZWQgaW4gbWFpbiBuYXZpZ2F0aW9uXG4ubWVudS1wYWdlIC0gVXNlZCBpbmxpbmUgb24gcGFnZXNcblxuTWFya3VwOlxuPHVsIGNsYXNzPVwibWVudSB7JG1vZGlmaWVyc31cIj5cbiAgPGxpIGNsYXNzPVwibWVudS1pdGVtXCI+PGEgY2xhc3M9XCJjb3Vyc2VcIiBocmVmPVwiL2NvdXJzZVwiPkNvdXJzZTwvYT48L2xpPlxuICA8bGkgY2xhc3M9XCJtZW51LWl0ZW1cIj48YSBocmVmPVwiL3Jlc291cmNlcy9cIj5SZXNvdXJjZXM8L2E+PC9saT5cbiAgPGxpIGNsYXNzPVwibWVudS1pdGVtIG1lbnUtZHJvcGRvd25cIiB0YWJpbmRleD1cIjFcIj48YSBpZD1cImRvd25sb2Fkc1wiIGhyZWY9XCJcIj5Eb3dubG9hZHM8L2E+XG4gICAgPHVsPlxuICAgICAgPGxpPjxhIGhyZWY9XCIvbGVzc29uL2hhbmRib29rcy93aGF0LWFib3V0LWNoaWxkcmVuXCI+V2hhdCBBYm91dCB0aGUgQ2hpbGRyZW4/IDh0aCBFZDwvYT48L2xpPlxuICAgICAgPGxpPjxhIGhyZWY9XCIvbGVzc29uL2hhbmRib29rcy9jaGlsZHJlbi1pbi1iZXR3ZWVuXCI+Q2hpbGRyZW4gaW4gQmV0d2VlbiA2dGggRWQuPC9hPjwvbGk+XG4gICAgPC91bD5cbiAgPC9saT5cbiAgPGxpIGNsYXNzPVwibWVudS1pdGVtXCI+PGEgY2xhc3M9XCJnbG9zc2FyeVwiIGhyZWY9XCIvcmVmZXJlbmNlL2dsb3NzYXJ5XCI+R2xvc3Nhcnk8L2E+PC9saT5cbjwvdWw+XG5cblN0eWxlZ3VpZGUgMy4yOFxuKi9cbi5tZW51IHtcbiAgbWF4LWhlaWdodDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogYWxsIC4yNXMgZWFzZS1vdXQ7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC5tZW51OmZpcnN0LW9mLXR5cGUge1xuICAgIGJveC1zaGFkb3c6ICMxNTVhNzYgMCA1cHggMCAwIGluc2V0OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5NTBweCkge1xuICAgIC5tZW51IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBtYXgtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICB3aWR0aDogYXV0bzsgfVxuICAgICAgLm1lbnU6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwOyB9IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDk1MHB4KSB7XG4gICAgLm1lbnUuaXMtYWN0aXZlIHtcbiAgICAgIG1heC1oZWlnaHQ6IDEwMDBweDtcbiAgICAgIHBhZGRpbmctdG9wOiA1cHg7IH0gfVxuXG4ubWVudS1wYWdlOmZpcnN0LW9mLXR5cGUge1xuICBib3gtc2hhZG93OiAjRjJGMkYyIDAgMXB4IDAgMCBpbnNldDsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTUwcHgpIHtcbiAgLm1lbnUtcGFnZSB7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuLypcbk1lbnUgSXRlbVxuXG5EZWZhdWx0IC0gVXNlZCBpbiBtYWluIG5hdmlnYXRpb25cbi5tZW51LXBhZ2UtcGFnZSAtIFVzZWQgaW5saW5lIG9uIHBhZ2VzXG5cbk1hcmt1cDpcbjxkaXYgY2xhc3M9XCJtZW51LWl0ZW0geyRtb2RpZmllcnN9XCI+PGEgY2xhc3M9XCJjb3Vyc2VcIiBocmVmPVwiL2NvdXJzZVwiPkNvdXJzZTwvYT48L2Rpdj5cblxuU3R5bGVndWlkZSAzLjI4LjJcbiovXG4ubWVudS1pdGVtIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNGMkYyRjI7XG4gIHBhZGRpbmc6IDAgMThweDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTUwcHgpIHtcbiAgICAubWVudS1pdGVtIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICBtYXJnaW46IDAgMThweDtcbiAgICAgIHBhZGRpbmc6IDEzLjVweCAwO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAgICAgLm1lbnUtaXRlbS5oYXMtbGltaXQgPiBhIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMjBweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IH0gfVxuICAubWVudS1pdGVtIGEsXG4gIC5tZW51LWl0ZW0gPiBzcGFuIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb2xvcjogIzI4YWRlMztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBwYWRkaW5nOiAxOHB4IDA7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogOTUwcHgpIHtcbiAgICAgIC5tZW51LWl0ZW0gYSxcbiAgICAgIC5tZW51LWl0ZW0gPiBzcGFuIHtcbiAgICAgICAgY29sb3I6ICMwMDA7XG4gICAgICAgIHBhZGRpbmc6IDA7IH1cbiAgICAgICAgLm1lbnUtaXRlbSBhOmhvdmVyLFxuICAgICAgICAubWVudS1pdGVtID4gc3Bhbjpob3ZlciB7XG4gICAgICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5NTBweCkge1xuICAubWVudS1pdGVtLXBhZ2Uge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDE4cHg7XG4gICAgcGFkZGluZy1yaWdodDogMThweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5tZW51LWl0ZW0tcGFnZTpudGgtY2hpbGQob2RkKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjJGMkYyOyB9IH1cblxuLm1lbnUtaXRlbS1wYWdlLmFjdGl2ZSBhIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLypcbk1lbnUgRHJvcGRvd25cblxuTWFya3VwOlxuPGRpdiBjbGFzcz1cIm1lbnUtaXRlbSBtZW51LWRyb3Bkb3duXCIgdGFiaW5kZXg9XCIxXCI+PGEgaWQ9XCJkb3dubG9hZHNcIiBocmVmPVwiXCI+RG93bmxvYWRzPC9hPlxuICA8dWw+XG4gICAgPGxpPjxhIGhyZWY9XCIvbGVzc29uL2hhbmRib29rcy93aGF0LWFib3V0LWNoaWxkcmVuXCI+V2hhdCBBYm91dCB0aGUgQ2hpbGRyZW4/IDh0aCBFZDwvYT48L2xpPlxuICAgIDxsaT48YSBocmVmPVwiL2xlc3Nvbi9oYW5kYm9va3MvY2hpbGRyZW4taW4tYmV0d2VlblwiPkNoaWxkcmVuIGluIEJldHdlZW4gNnRoIEVkLjwvYT48L2xpPlxuICA8L3VsPlxuPC9kaXY+XG5cblN0eWxlZ3VpZGUgMy4yOC4zXG4qL1xuLm1lbnUtZHJvcGRvd24ge1xuICBvdXRsaW5lOiBub25lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLm1lbnUtZHJvcGRvd24gYSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxLjVlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogOTUwcHgpIHtcbiAgICAgIC5tZW51LWRyb3Bkb3duIGEge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7IH0gfVxuICAubWVudS1kcm9wZG93biA+IGEge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDk1MHB4KSB7XG4gICAgICAubWVudS1kcm9wZG93biA+IGEge1xuICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICAgICAgcGFkZGluZy1yaWdodDogMS41ZW07IH0gfVxuICAgIC5tZW51LWRyb3Bkb3duID4gYTo6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQ6IHVybChcImltYWdlcy9tZW51LWluZGljYXRvci5zdmdcIikgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDEwcHggMTVweDtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDFlbTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDE4cHg7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgLjFzIGVhc2Utb3V0O1xuICAgICAgd2lkdGg6IDFlbTsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDk1MHB4KSB7XG4gICAgICAgIC5tZW51LWRyb3Bkb3duID4gYTo6YmVmb3JlIHtcbiAgICAgICAgICBjb2xvcjogIzI4YWRlMztcbiAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgIHRvcDogLTJweDtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7IH0gfVxuICAubWVudS1kcm9wZG93biB1bCB7XG4gICAgbWF4LWhlaWdodDogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRyYW5zaXRpb246IGFsbCAuMjVzIGVhc2Utb3V0OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDk1MHB4KSB7XG4gICAgICAubWVudS1kcm9wZG93biB1bCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAzcHggcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgICAgICBtaW4td2lkdGg6IDIwMHB4O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB6LWluZGV4OiAxMDAwOyB9IH1cbiAgICAubWVudS1kcm9wZG93biB1bCBhIHtcbiAgICAgIGNvbG9yOiAjMTU1YTc2OyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogOTUwcHgpIHtcbiAgICAgICAgLm1lbnUtZHJvcGRvd24gdWwgYSB7XG4gICAgICAgICAgcGFkZGluZzogMThweDsgfSB9XG4gICAgLm1lbnUtZHJvcGRvd24gdWwgYTpob3ZlciB7XG4gICAgICBvcGFjaXR5OiAuNTsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDk1MHB4KSB7XG4gICAgICAgIC5tZW51LWRyb3Bkb3duIHVsIGE6aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gICAgICAgICAgb3BhY2l0eTogMTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5NTBweCkge1xuICAgIC5tZW51LWRyb3Bkb3duIGxpIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZDlkOWQ5O1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lOyB9IH1cbiAgLm1lbnUtZHJvcGRvd246aG92ZXIgdWwsIC5tZW51LWRyb3Bkb3duOmZvY3VzIHVsIHtcbiAgICBtYXgtaGVpZ2h0OiAxMDAwcHg7IH1cbiAgLm1lbnUtZHJvcGRvd246aG92ZXIgYTo6YmVmb3JlLCAubWVudS1kcm9wZG93bjpmb2N1cyBhOjpiZWZvcmUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsgfVxuXG4vKlxuTWVudSBJdGVtXG5cbk1hcmt1cDpcbjxsaSBjbGFzcz1cIm1lbnVpdGVtXCI+PGEgaHJlZj1cIlwiPk1lbnUgSXRlbTwvYT48bGk+XG5cblN0eWxlZ3VpZGUgMy40NVxuKi9cbi5tZW51aXRlbSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZjZmM2VlO1xuICBsaW5lLWhlaWdodDogMTtcbiAgb3V0bGluZTogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuICAubWVudWl0ZW0gPiBhLFxuICAubWVudWl0ZW0gYnV0dG9uIHtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogMDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGNvbG9yOiAjMjhhZGUzO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHBhZGRpbmc6IDE4cHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB3aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogODYwcHgpIHtcbiAgICAubWVudWl0ZW0ge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMDsgfVxuICAgICAgLm1lbnVpdGVtID4gYSxcbiAgICAgIC5tZW51aXRlbSBidXR0b24ge1xuICAgICAgICBwYWRkaW5nOiAwOyB9IH1cblxuLm1lbnVpdGVtLWRyb3Bkb3duIGJ1dHRvbiB7XG4gIHBhZGRpbmctbGVmdDogMzVweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5tZW51aXRlbS1kcm9wZG93biBidXR0b246OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogdXJsKFwiaW1hZ2VzL21lbnVpdGVtLWRyb3Bkb3duLnN2Z1wiKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDhweDtcbiAgICBsZWZ0OiAxOHB4O1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiBjYWxjKDUwJSAtIDRweCk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjVzIGVhc2UtaW4tb3V0O1xuICAgIHdpZHRoOiA4cHg7XG4gICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsgfVxuXG4ubWVudWl0ZW0tZHJvcGRvd24gdWwge1xuICBwYWRkaW5nLWJvdHRvbTogOXB4O1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsOyB9XG5cbi5tZW51aXRlbS1kcm9wZG93biBsaSBhIHtcbiAgY29sb3I6ICMxNTVhNzY7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiA5cHggMThweCA5cHggMzZweDsgfVxuXG4ubWVudWl0ZW0tZHJvcGRvd24gW2FyaWEtaGlkZGVuPVwidHJ1ZVwiXSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLm1lbnVpdGVtLWRyb3Bkb3duIFthcmlhLWhpZGRlbj1cImZhbHNlXCJdIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLm1lbnVpdGVtLWRyb3Bkb3duLm1lbnVpdGVtLWlzLWFjdGl2ZSBidXR0b246OmJlZm9yZSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogODYwcHgpIHtcbiAgLm1lbnVpdGVtLWRyb3Bkb3duIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAubWVudWl0ZW0tZHJvcGRvd24gYnV0dG9uIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDI2cHg7IH1cbiAgICAgIC5tZW51aXRlbS1kcm9wZG93biBidXR0b246OmJlZm9yZSB7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7IH1cbiAgICAubWVudWl0ZW0tZHJvcGRvd24gdWwge1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KTtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAzcHggMCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICB0b3A6IGNhbGMoMTAwJSArIDlweCk7XG4gICAgICB3aWR0aDogMTQzcHg7IH1cbiAgICAubWVudWl0ZW0tZHJvcGRvd24gbGkgYSB7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgICAgIGNvbG9yOiAjMjhhZGUzO1xuICAgICAgcGFkZGluZzogOXB4OyB9IH1cblxuLm1lbnVpdGVtLXNlY29uZGFyeSB7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNmNmYzZWU7IH1cbiAgLm1lbnVpdGVtLXNlY29uZGFyeSA+IGEge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDg2MHB4KSB7XG4gICAgLm1lbnVpdGVtLXNlY29uZGFyeSA+IGEge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgICAgY29sb3I6ICMxNTVhNzY7XG4gICAgICBwYWRkaW5nOiAwOyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDg2MHB4KSB7XG4gIC5tZW51aXRlbS1tYXJrZXRpbmcge1xuICAgIGJvcmRlcjogMDsgfVxuICAgIC5tZW51aXRlbS1tYXJrZXRpbmcgPiBhIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMyOGFkZTM7XG4gICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICBwYWRkaW5nOiA5cHggMThweDsgfSB9XG5cbi8qXG5OYXZpZ2F0aW9uXG5cbk1hcmt1cDpcbjxuYXYgY2xhc3M9XCJuYXZpZ2F0aW9uXCIgaWQ9XCJuYXZpZ2F0aW9uXCI+XG4gIDxkaXYgY2xhc3M9XCJuYXZpZ2F0aW9uLXgtY29udGFpbmVyIGwtY29udGFpbmVyaG9yaXpvbnRhbFwiPlxuICAgIDxoZWFkZXI+XG4gICAgICA8YSBocmVmPVwiL1wiIGNsYXNzPVwibmF2aWdhdGlvbi14LWxvZ29cIj48aW1nIHNyYz1cIi9pbWFnZXMvbG9nby1jaWIuc3ZnXCIgYWx0PVwiQ2hpbGRyZW4gSW4gQmV0d2VlbiBMb2dvXCIgd2lkdGg9XCIyNTZcIiBoZWlnaHQ9XCI0NVwiPjwvYT5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJuYXZpZ2F0aW9uLXgtdG9nZ2xlXCI+PHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj4gTWVudTwvc3Bhbj48L2J1dHRvbj5cbiAgICA8L2hlYWRlcj5cbiAgICA8ZGl2IGNsYXNzPVwibmF2aWdhdGlvbi14LW1lc3NhZ2VcIj5cbiAgICAgIDxzZy1pbnNlcnQ+My41NTwvc2ctaW5zZXJ0PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJuYXZpZ2F0aW9uLXgtbWVudVwiPlxuICAgICAgPHVsIGNsYXNzPVwibC1tZW51IGwtbWVudS1zZWNvbmRhcnlcIj5cbiAgICAgICAgPGxpIGNsYXNzPVwibWVudWl0ZW0gbWVudWl0ZW0tc2Vjb25kYXJ5XCI+PGEgaHJlZj1cIi9zZXQtbGFuZ3VhZ2UvZXNcIiBjbGFzcz1cImxhbmd1YWdlXCI+PHNwYW4+RW4gRXNwYcOxb2w/PC9zcGFuPjwvYT48L2xpPlxuICAgICAgICA8bGkgY2xhc3M9XCJtZW51aXRlbSBtZW51aXRlbS1zZWNvbmRhcnlcIj48YSBocmVmPVwiL2NvbnRhY3RcIj5Db250YWN0PC9hPjwvbGk+XG4gICAgICA8L3VsPlxuICAgICAgPHVsIGNsYXNzPVwibC1tZW51XCI+XG4gICAgICAgIDxsaSBjbGFzcz1cIm1lbnVpdGVtIG1lbnVpdGVtLW1hcmtldGluZ1wiPjxhIGhyZWY9XCIvc2hvcHBpbmcvcHVyY2hhc2UvXCI+U2lnbiBVcDwvYT48L2xpPlxuICAgICAgICA8bGkgY2xhc3M9XCJtZW51aXRlbSBtZW51aXRlbS1tYXJrZXRpbmdcIj48YSBocmVmPVwiL3VzZXIvbG9naW5cIj5Mb2dpbjwvYT48L2xpPlxuICAgICAgPC91bD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25hdj5cblxuU3R5bGVndWlkZSAzLjNcbiovXG4ubmF2aWdhdGlvbiB7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJvcmRlci1ib3R0b206IDVweCBzb2xpZCAjMjhhZGUzO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLm5hdmlnYXRpb24gaGVhZGVyIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgcGFkZGluZzogMThweDtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAubmF2aWdhdGlvbiAubmF2aWdhdGlvbi14LWxvZ28ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtYXgtd2lkdGg6IDcwJTsgfVxuICAubmF2aWdhdGlvbiAubGFuZ3VhZ2UtdG9nZ2xlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBhZGRpbmc6IDE3cHggMTNweDtcbiAgICBhbGlnbi1pdGVtczogbGVmdDtcbiAgICAvKiBUcmFuc2l0aW9uKi8gfVxuICAgIC5uYXZpZ2F0aW9uIC5sYW5ndWFnZS10b2dnbGUgbGFiZWwge1xuICAgICAgcGFkZGluZzogMCA1cHg7IH1cbiAgICAubmF2aWdhdGlvbiAubGFuZ3VhZ2UtdG9nZ2xlIC5lbi1sYW5ndWFnZSwgLm5hdmlnYXRpb24gLmxhbmd1YWdlLXRvZ2dsZSAuZXMtbGFuZ3VhZ2Uge1xuICAgICAgcGFkZGluZy10b3A6IDNweDsgfVxuICAgIC5uYXZpZ2F0aW9uIC5sYW5ndWFnZS10b2dnbGUgLnRvZ2dsZSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogNjBweDtcbiAgICAgIGhlaWdodDogMjBweDtcbiAgICAgIHBhZGRpbmc6IDAgM3B4O1xuICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAgIC5uYXZpZ2F0aW9uIC5sYW5ndWFnZS10b2dnbGUgLnRvZ2dsZS1pbnB1dCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgb3BhY2l0eTogMDsgfVxuICAgIC5uYXZpZ2F0aW9uIC5sYW5ndWFnZS10b2dnbGUgLnRvZ2dsZS1sYWJlbCB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIGJhY2tncm91bmQ6ICMyNmFkZTM7XG4gICAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xuICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMiksIGluc2V0IDAgMCAzcHggcmdiYSgwLCAwLCAwLCAwLjE1KTsgfVxuICAgIC5uYXZpZ2F0aW9uIC5sYW5ndWFnZS10b2dnbGUgLnRvZ2dsZS1sYWJlbDpiZWZvcmUsXG4gICAgLm5hdmlnYXRpb24gLmxhbmd1YWdlLXRvZ2dsZSAudG9nZ2xlLWxhYmVsOmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgY29sb3I6IGJsYWNrO1xuICAgICAgbWFyZ2luLXRvcDogLS41ZW07XG4gICAgICBsaW5lLWhlaWdodDogMTsgfVxuICAgIC5uYXZpZ2F0aW9uIC5sYW5ndWFnZS10b2dnbGUgLnRvZ2dsZS1sYWJlbDpiZWZvcmUge1xuICAgICAgY29udGVudDogYXR0cihkYXRhLW9mZik7XG4gICAgICByaWdodDogMTFweDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTsgfVxuICAgIC5uYXZpZ2F0aW9uIC5sYW5ndWFnZS10b2dnbGUgLnRvZ2dsZS1sYWJlbDphZnRlciB7XG4gICAgICBjb250ZW50OiBhdHRyKGRhdGEtb24pO1xuICAgICAgbGVmdDogMTFweDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgICAgIG9wYWNpdHk6IDA7IH1cbiAgICAubmF2aWdhdGlvbiAubGFuZ3VhZ2UtdG9nZ2xlIC50b2dnbGUtaW5wdXQ6Y2hlY2tlZCB+IC50b2dnbGUtbGFiZWwge1xuICAgICAgYmFja2dyb3VuZDogIzI2YWRlMzsgfVxuICAgIC5uYXZpZ2F0aW9uIC5sYW5ndWFnZS10b2dnbGUgLnRvZ2dsZS1pbnB1dDpjaGVja2VkIH4gLnRvZ2dsZS1sYWJlbDpiZWZvcmUge1xuICAgICAgb3BhY2l0eTogMDsgfVxuICAgIC5uYXZpZ2F0aW9uIC5sYW5ndWFnZS10b2dnbGUgLnRvZ2dsZS1pbnB1dDpjaGVja2VkIH4gLnRvZ2dsZS1sYWJlbDphZnRlciB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gICAgLm5hdmlnYXRpb24gLmxhbmd1YWdlLXRvZ2dsZSAudG9nZ2xlLWhhbmRsZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDEuNXB4O1xuICAgICAgbGVmdDogNHB4O1xuICAgICAgd2lkdGg6IDE4cHg7XG4gICAgICBoZWlnaHQ6IDE4cHg7XG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjRkZGRkZGIDQwJSwgI2YwZjBmMCk7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7IH1cbiAgICAubmF2aWdhdGlvbiAubGFuZ3VhZ2UtdG9nZ2xlIC50b2dnbGUtaGFuZGxlOmJlZm9yZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIG1hcmdpbjogLTZweCAwIDAgLTZweDtcbiAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgaGVpZ2h0OiAxNnB4OyB9XG4gICAgLm5hdmlnYXRpb24gLmxhbmd1YWdlLXRvZ2dsZSAudG9nZ2xlLWlucHV0OmNoZWNrZWQgfiAudG9nZ2xlLWhhbmRsZSB7XG4gICAgICBsZWZ0OiAzOHB4O1xuICAgICAgYm94LXNoYWRvdzogLTFweCAxcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4yKTsgfVxuICAgIC5uYXZpZ2F0aW9uIC5sYW5ndWFnZS10b2dnbGUgLnRvZ2dsZS1sYWJlbCxcbiAgICAubmF2aWdhdGlvbiAubGFuZ3VhZ2UtdG9nZ2xlIC50b2dnbGUtaGFuZGxlIHtcbiAgICAgIHRyYW5zaXRpb246IEFsbCAwLjNzIGVhc2U7XG4gICAgICAtd2Via2l0LXRyYW5zaXRpb246IEFsbCAwLjNzIGVhc2U7XG4gICAgICAtbW96LXRyYW5zaXRpb246IEFsbCAwLjNzIGVhc2U7XG4gICAgICAtby10cmFuc2l0aW9uOiBBbGwgMC4zcyBlYXNlOyB9XG4gIC5uYXZpZ2F0aW9uICNsb2NhbGUtcGluLWltZywgLm5hdmlnYXRpb24gI2xvY2FsZS1waW4tbGFiZWwge1xuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAubmF2aWdhdGlvbiAubmF2aWdhdGlvbi14LWNvbnRhaW5lciB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuICAgIC5uYXZpZ2F0aW9uIC5uYXZpZ2F0aW9uLXgtY29udGFpbmVyIC5sb2NhbGUtcGluIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgcGFkZGluZzogMTdweCAxMnB4OyB9XG4gIC5uYXZpZ2F0aW9uIC5uYXZpZ2F0aW9uLXgtdG9nZ2xlIHtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHVybChcImltYWdlcy9uYXZpZ2F0aW9uLXRvZ2dsZS5zdmdcIikgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yNXMgZWFzZS1pbi1vdXQ7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgd2lkdGg6IDMwcHg7XG4gICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsgfVxuICAubmF2aWdhdGlvbiAubmF2aWdhdGlvbi14LW1lbnUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgYm9yZGVyLWJvdHRvbTogNXB4IHNvbGlkICMyOGFkZTM7XG4gICAgYm9yZGVyLXRvcDogNXB4IHNvbGlkICMyOGFkZTM7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGxlZnQ6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTAwJTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWSgwKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3A7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjVzIGVhc2UtaW4tb3V0O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gICAgei1pbmRleDogMTAwOyB9XG4gICAgLm5hdmlnYXRpb24gLm5hdmlnYXRpb24teC1tZW51ID4gOmZpcnN0LWNoaWxkIHtcbiAgICAgIG9yZGVyOiAyOyB9XG4gICAgLm5hdmlnYXRpb24gLm5hdmlnYXRpb24teC1tZW51ID4gOmxhc3QtY2hpbGQge1xuICAgICAgb3JkZXI6IDE7IH1cbiAgLm5hdmlnYXRpb24gLm5hdmlnYXRpb24teC1tZXNzYWdlIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5uYXZpZ2F0aW9uLm5hdmlnYXRpb24taXMtYWN0aXZlIC5uYXZpZ2F0aW9uLXgtbWVudSB7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgdHJhbnNmb3JtOiBub25lOyB9XG4gIC5uYXZpZ2F0aW9uLm5hdmlnYXRpb24taXMtYWN0aXZlIC5uYXZpZ2F0aW9uLXgtdG9nZ2xlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA4NjBweCkge1xuICAgIC5uYXZpZ2F0aW9uIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBkaXNwbGF5OiBmbGV4OyB9XG4gICAgICAubmF2aWdhdGlvbiBoZWFkZXIge1xuICAgICAgICB3aWR0aDogYXV0bzsgfVxuICAgICAgLm5hdmlnYXRpb24gLm5hdmlnYXRpb24teC1jb250YWluZXIgLmxvY2FsZS1waW4ge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgICAgIC5uYXZpZ2F0aW9uIC5uYXZpZ2F0aW9uLXgtbG9nbyB7XG4gICAgICAgIG1heC13aWR0aDogNDA1cHg7IH1cbiAgICAgIC5uYXZpZ2F0aW9uIC5uYXZpZ2F0aW9uLXgtbWVzc2FnZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAubmF2aWdhdGlvbiAubmF2aWdhdGlvbi14LXRvZ2dsZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgIC5uYXZpZ2F0aW9uIC5uYXZpZ2F0aW9uLXgtbWVudSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgICAgIHBhZGRpbmc6IDE4cHggMThweCAxOHB4IDA7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIHdpbGwtY2hhbmdlOiBub25lOyB9XG4gICAgICAgIC5uYXZpZ2F0aW9uIC5uYXZpZ2F0aW9uLXgtbWVudSA+IDpmaXJzdC1jaGlsZDpub3QoOm9ubHktY2hpbGQpIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxOHB4OyB9XG4gICAgICAgIC5uYXZpZ2F0aW9uIC5uYXZpZ2F0aW9uLXgtbWVudSA+IDpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgb3JkZXI6IDE7IH1cbiAgICAgICAgLm5hdmlnYXRpb24gLm5hdmlnYXRpb24teC1tZW51ID4gOmxhc3QtY2hpbGQge1xuICAgICAgICAgIG9yZGVyOiAyOyB9IH1cblxuLm1vZGFsIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgLyogSGlkZGVuIGJ5IGRlZmF1bHQgKi9cbiAgcG9zaXRpb246IGZpeGVkO1xuICAvKiBTdGF5IGluIHBsYWNlICovXG4gIHotaW5kZXg6IDk5OTtcbiAgLyogU2l0IG9uIHRvcCAqL1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICAvKiBGdWxsIHdpZHRoICovXG4gIGhlaWdodDogMTAwJTtcbiAgLyogRnVsbCBoZWlnaHQgKi9cbiAgb3ZlcmZsb3c6IGF1dG87XG4gIC8qIEVuYWJsZSBzY3JvbGwgaWYgbmVlZGVkICovXG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICAvKiBGYWxsYmFjayBjb2xvciAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gIC8qIEJsYWNrIHcvIG9wYWNpdHkgKi8gfVxuXG4vKiBNb2RhbCBDb250ZW50ICovXG4ubW9kYWwtY29udGVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gIG1hcmdpbjogMTUlIGF1dG87XG4gIC8qIDE1JSBmcm9tIHRoZSB0b3AgYW5kIGNlbnRlcmVkICovXG4gIHBhZGRpbmc6IDIwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM4ODg7XG4gIHdpZHRoOiA5MCU7XG4gIC8qIENvdWxkIGJlIG1vcmUgb3IgbGVzcywgZGVwZW5kaW5nIG9uIHNjcmVlbiBzaXplICovXG4gIG1heC13aWR0aDogNTAwcHg7XG4gIGJveC1zaGFkb3c6IDAgNXB4IDE1cHggcmdiYSgwLCAwLCAwLCAwLjMpO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4vKiBUaGUgQ2xvc2UgQnV0dG9uICovXG4uY2xvc2Uge1xuICBjb2xvcjogI2FhYTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogNHB4O1xuICB0b3A6IDA7XG4gIGZvbnQtc2l6ZTogMzVweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2lkdGg6IDM1cHg7XG4gIGhlaWdodDogMzVweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiByaWdodDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3M7IH1cblxuLmNsb3NlOmhvdmVyLFxuLmNsb3NlOmZvY3VzIHtcbiAgY29sb3I6IGJsYWNrO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuXG4vKiBEaXNhYmxlIHNjcm9sbGluZyAqL1xuYm9keS5tb2RhbC1vcGVuIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG5pbnB1dCNjb25maXJtX2ZpbGluZ19jb3VudHlfYnV0dG9uIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMThweDsgfVxuXG4vKlxuTmF2aWdhdGlvbiBQYWdlXG5cbk1hcmt1cDpcbjxuYXYgY2xhc3M9XCJuYXZpZ2F0aW9uIG5hdmlnYXRpb24tcGFnZSBnbG9zc2FyeS1uYXZpZ2F0aW9uXCIgaWQ9XCJwYWdlLW5hdmlnYXRpb24tcGF0dGVyblwiPlxuICA8aGVhZGVyPlxuICAgIDxoMiBjbGFzcz1cIm5hdmlnYXRpb24tdGl0bGVcIj5HbG9zc2FyeSBNZW51PC9oMj5cbiAgICA8YnV0dG9uIGNsYXNzPVwibWVudS10b2dnbGUgaXMtaW5hY3RpdmVcIiBpZD1cIm1lbnUtdG9nZ2xlXCI+PHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj4gTWVudTwvc3Bhbj48L2J1dHRvbj5cbiAgPC9oZWFkZXI+XG4gIDx1bCBjbGFzcz1cIm1lbnUgbWVudS1wYWdlXCI+XG4gICAgPGxpIGNsYXNzPVwibWVudS1pdGVtIG1lbnUtaXRlbS1wYWdlXCI+PGEgaHJlZj1cIlwiPkFjdGl2ZSBMaXN0ZW5pbmc8L2EgaHJlZj1cIlwiPjwvbGk+XG4gICAgPGxpIGNsYXNzPVwibWVudS1pdGVtIG1lbnUtaXRlbS1wYWdlIGFjdGl2ZVwiPjxhIGhyZWY9XCJcIj5FbXBhdGh5PC9hIGhyZWY9XCJcIj48L2xpPlxuICAgIDxsaSBjbGFzcz1cIm1lbnUtaXRlbSBtZW51LWl0ZW0tcGFnZVwiPjxhIGhyZWY9XCJcIj5JIE1lc3NhZ2U8L2EgaHJlZj1cIlwiPjwvbGk+XG4gICAgPGxpIGNsYXNzPVwibWVudS1pdGVtIG1lbnUtaXRlbS1wYWdlXCI+PGEgaHJlZj1cIlwiPkltcHVsc2UgQ29udHJvbDwvYSBocmVmPVwiXCI+PC9saT5cbiAgPC91bD5cbjwvbmF2PlxuXG5TdHlsZWd1aWRlIDMuMy4xXG4qL1xuLm5hdmlnYXRpb24tcGFnZSB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB6LWluZGV4OiAxMDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTUwcHgpIHtcbiAgICAubmF2aWdhdGlvbi1wYWdlIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdG9wOiBhdXRvOyB9XG4gICAgICAubmF2aWdhdGlvbi1wYWdlIGhlYWRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAubmF2aWdhdGlvbi1wYWdlIC5uYXZpZ2F0aW9uLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgICBtYXJnaW46IDE4cHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG4vKlxuT3JkZXIgU3VtbWFyeVxuXG5TdW1tYXJ5IHRvIGJlIHBsYWNlZCBpbnNpZGUgb2YgZm9ybSBtb2R1bGVcblxuTWFya3VwOlxuPHRhYmxlIGNsYXNzPVwib3JkZXJzdW1tYXJ5XCI+XG4gIDx0Zm9vdD5cbiAgICA8dHI+XG4gICAgICA8dGggc2NvcGU9XCJyb3dcIj5Zb3VyIFRvdGFsOjwvdGg+XG4gICAgICA8dGQ+JDU5Ljk1PC90ZD5cbiAgICA8L3RyPlxuICA8dGZvb3Q+XG4gIDx0aGVhZCBjbGFzcz1cInZpc3VhbGx5aGlkZGVuXCI+XG4gICAgPHRyPlxuICAgICAgPHRoIHNjb3BlPVwiY29sXCI+SXRlbTwvdGg+XG4gICAgICA8dGggc2NvcGU9XCJjb2xcIj5QcmljZTwvdGg+XG4gICAgPC90cj5cbiAgPC90aGVhZD5cbiAgPHRib2R5PlxuICAgIDx0cj5cbiAgICAgIDx0aCBzY29wZT1cInJvd1wiPjMwLURheSBBY2Nlc3M8L3RoPlxuICAgICAgPHRkPiQ0OS45NTwvdGQ+XG4gICAgPC90cj5cbiAgICA8dHI+XG4gICAgICA8dGggc2NvcGU9XCJyb3dcIj5Xb3JrYm9vazwvdGg+XG4gICAgICA8dGQ+JDIwLjAwPC90ZD5cbiAgICA8L3RyPlxuICAgIDx0cj5cbiAgICAgIDx0aCBzY29wZT1cInJvd1wiPkRpc2NvdW50PC90aD5cbiAgICAgIDx0ZD4tJDQuMDA8L3RkPlxuICAgIDwvdHI+XG4gICAgPHRyPlxuICAgICAgPHRoIHNjb3BlPVwicm93XCI+U2FsZXMgVGF4PC90aD5cbiAgICAgIDx0ZD4kMi4wMDwvdGQ+XG4gICAgPC90cj5cbiAgICA8dHI+XG4gICAgICA8dGggc2NvcGU9XCJyb3dcIj5EYXRhIE1hbmFnZW1lbnQgRmVlPC90aD5cbiAgICAgIDx0ZD4kMi4wMDwvdGQ+XG4gICAgPC90cj5cbiAgPC90Ym9keT5cbjwvdGFibGU+XG5cblN0eWxlZ3VpZGUgMy41M1xuKi9cbi5vcmRlcnN1bW1hcnkge1xuICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICB3aWR0aDogMTAwJTsgfVxuICAub3JkZXJzdW1tYXJ5IHRib2R5IHRoLFxuICAub3JkZXJzdW1tYXJ5IHRib2R5IHRkIHtcbiAgICBjb2xvcjogIzY5Njk2OTtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDIycHg7IH1cbiAgLm9yZGVyc3VtbWFyeSB0ZCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLm9yZGVyc3VtbWFyeSB0Zm9vdCB0ZCxcbiAgLm9yZGVyc3VtbWFyeSB0Zm9vdCB0aCB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICBjb2xvcjogIzAwMDtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgcGFkZGluZy10b3A6IDE4cHg7IH1cbiAgLm9yZGVyc3VtbWFyeSB0Zm9vdCB0ZCB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgLm9yZGVyc3VtbWFyeSB0aCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuXG4vKlxuT3ZlcmxheVxuXG5NYXJrdXA6XG48ZGl2IGNsYXNzPVwib3ZlcmxheVwiPlxuICA8YT5jbG9zZTwvYT5cbiAgPGgxPkNoYW5nZSBFbWFpbCBmb3IgQ28tUGFyZW50PC9oMT5cbiAgPHA+RW50ZXIgYSBuZXcgZW1haWwgYWRkcmVzcyB0byBhc3NvY2lhdGUgd2l0aCB0aGlzIGdpZnQgYWNjb3VudC4gQW4gaW52aXRhdGlvbiBlbWFpbCB3aWxsIGJlIHNlbnQgdG8gdGhlIHVzZXIgYXQgdGhlIG5ldyBlbWFpbCBhZGRyZXNzLjwvcD5cbiAgPGhyPlxuICA8YSBjbGFzcz1cImJ1dHRvblwiIGhyZWY9XCIjXCI+WWVzLCBDYW5jZWwgR2lmdCBJbnZpdGU8L2E+XG48L2Rpdj5cblxuU3R5bGVndWlkZSAzLjQ4XG4qL1xuLm92ZXJsYXkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gIC5vdmVybGF5Om5vdChmb3JtKSB7XG4gICAgbWFyZ2luLWxlZnQ6IDE4cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAxOHB4OyB9XG4gIC5vdmVybGF5IGE6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gICAgY29sb3I6ICMyOGFkZTM7XG4gICAgbWFyZ2luLWJvdHRvbTogMjMuNHB4O1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgLm92ZXJsYXkgaDEge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBsaW5lLWhlaWdodDogMjJweDsgfVxuICAub3ZlcmxheSBociB7XG4gICAgYm9yZGVyLWNvbG9yOiAjY2NjO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuICAub3ZlcmxheSBwIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDE0cHg7IH1cblxuLypcbk92ZXJsYXkgKHdpdGggYSBmb3JtIGVsZW1lbnQpLlxuXG5NYXJrdXA6XG48ZGl2IGNsYXNzPVwib3ZlcmxheVwiPlxuPGE+Y2xvc2U8L2E+XG4gIDxoMT5DaGFuZ2UgRW1haWwgZm9yIENvLVBhcmVudDwvaDE+XG4gIDxwPkVudGVyIGEgbmV3IGVtYWlsIGFkZHJlc3MgdG8gYXNzb2NpYXRlIHdpdGggdGhpcyBnaWZ0IGFjY291bnQuIEFuIGludml0YXRpb24gZW1haWwgd2lsbCBiZSBzZW50IHRvIHRoZSB1c2VyIGF0IHRoZSBuZXcgZW1haWwgYWRkcmVzcy48L3A+XG4gIDxocj5cbiAgPGZvcm0gY2xhc3M9XCJmb3JtIGZvcm0taW5saW5lXCI+XG4gICAgPGRpdiBjbGFzcz1cImZvcm0tcm93IFwiPlxuICAgICAgPGxhYmVsIGZvcj1cImlkX25hbWVcIj5OZXcgRW1haWw6PC9sYWJlbD5cbiAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZVwiPlxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cImVnLiBqb2huQGV4YW1wbGUuY29tXCIgbmFtZT1cIm5hbWVcIiBpZD1cImlkX25hbWVcIj5cbiAgICAgICAgPHA+VGhpcyBpcyBoZWxwZXIgdGV4dCBmb3IgdGhpcyBpbnB1dC48L3A+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ1dHRvbiBidXR0b24td2lkdGgtZnVsbFwiIGhyZWY9XCIjXCI+Q2hhbmdlIEVtYWlsIGFuZCBTZW5kIEludml0ZSBFbWFpbDwvYT5cbiAgPC9mb3JtPlxuPC9kaXY+XG5cblN0eWxlZ3VpZGUgMy40OC4xXG4qL1xuLypcblBhZ2UgVGl0bGVcblxuRGVmYXVsdCAtIFN0YW5kYXJkIHBhZ2UgdGl0bGVzXG4ucGFnZS10aXRsZS1sYXJnZSAtIEEgbGFyZ2VyIHZlcnNpb25cbi5wYWdlLXRpdGxlLWNlbnRlcmVkIC0gV2hlbiB5b3Ugd2FudCB0aGUgdGV4dCBjZW50ZXJlZFxuXG5NYXJrdXA6XG48aGVhZGVyIGNsYXNzPVwicGFnZS10aXRsZSB7JG1vZGlmaWVyc31cIj5cbiAgPGgxPlNpZ24tdXAgZm9yIENERSdzIENoaWxkcmVuIGluIEJldHdlZW48L2gxPlxuICA8aDI+PHNwYW4+JDM5Ljk1PC9zcGFuPiBmb3IgMzAtZGF5cyBhY2Nlc3M8L2gyPlxuICA8cD5TaWduLXVwIGlzIHNpbXBsZSBhbmQgdGFrZXMganVzdCBhIGZldyBtaW51dGVzLjwvcD5cbjwvaGVhZGVyPlxuXG5TdHlsZWd1aWRlIDMuNFxuKi9cbi5wYWdlLXRpdGxlIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWFyZ2luLWJvdHRvbTogMThweDtcbiAgcGFkZGluZzogMzZweCAxOHB4IDE4cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAucGFnZS10aXRsZS5wYWdlLXRpdGxlLWZsZXgge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgfVxuICAucGFnZS10aXRsZSBoMSB7XG4gICAgZm9udC1zaXplOiAzMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxZW07IH1cbiAgLnBhZ2UtdGl0bGUgaDIge1xuICAgIGNvbG9yOiAjY2NjO1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBsaW5lLWhlaWdodDogMWVtO1xuICAgIG1hcmdpbi10b3A6IDlweDsgfVxuICAgIC5wYWdlLXRpdGxlIGgyIHNwYW4ge1xuICAgICAgY29sb3I6ICMyOGFkZTM7IH1cbiAgLnBhZ2UtdGl0bGUgcCB7XG4gICAgY29sb3I6ICM2OTY5Njk7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjJlbTtcbiAgICBtYXJnaW4tdG9wOiA5cHg7IH1cblxuLmF1ZGlvIHtcbiAgY29sb3I6ICMwMDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxNHB4OyB9XG4gIC5hdWRpbzpob3ZlciB7XG4gICAgY29sb3I6ICMwMDA7IH1cbiAgLmF1ZGlvIC5hdWRpby14LWljb24ge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gICAgLmF1ZGlvIC5hdWRpby14LWljb24sIC5hdWRpbyAuYXVkaW8teC1pY29uIHN2ZyB7XG4gICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICB3aWR0aDogMzBweDsgfVxuICAgIC5hdWRpbyAuYXVkaW8teC1pY29uIC5pY29uLXVubXV0ZSB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5hdWRpby5tdXRlZCAuaWNvbi11bm11dGUge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5hdWRpby5tdXRlZCAuaWNvbi1tdXRlIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5hdWRpbyAuYXVkaW8teC10ZXh0IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBsaW5lLWhlaWdodDogMTRweDsgfVxuXG4ucGFnZS10aXRsZS1tYXJnaW4tYm90dG9tLW5vbmUge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5wYWdlLXRpdGxlLW1hcmdpbi1ib3R0b20ge1xuICBtYXJnaW4tYm90dG9tOiAxOHB4OyB9XG5cbi5wYWdlLXRpdGxlLW1hcmdpbi10b3Age1xuICBtYXJnaW4tdG9wOiAxOHB4OyB9XG5cbi5wYWdlLXRpdGxlLXBhZGRpbmctdG9wLW5vbmUge1xuICBwYWRkaW5nLXRvcDogMDsgfVxuXG4ucGFnZS10aXRsZS1zbWFsbCB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xuICBwYWRkaW5nOiAwIDAgMThweDsgfVxuICAucGFnZS10aXRsZS1zbWFsbCBoMSB7XG4gICAgZm9udC1zaXplOiAxOHB4OyB9XG4gIC5wYWdlLXRpdGxlLXNtYWxsIHAge1xuICAgIGZvbnQtc2l6ZTogMTRweDsgfVxuXG4ucGFnZS10aXRsZS1zbWFsbC14LWxlZnQtcGFkZGluZyB7XG4gIHBhZGRpbmctbGVmdDogMThweDsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTUwcHgpIHtcbiAgLnBhZ2UtdGl0bGUtbGFyZ2Uge1xuICAgIHBhZGRpbmctdG9wOiAzNnB4OyB9IH1cblxuLnBhZ2UtdGl0bGUtbGFyZ2UgaDEge1xuICBmb250LXNpemU6IDM2cHg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDk1MHB4KSB7XG4gICAgLnBhZ2UtdGl0bGUtbGFyZ2UgaDEge1xuICAgICAgZm9udC1zaXplOiA0OHB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMThweDsgfSB9XG5cbi5wYWdlLXRpdGxlLWxhcmdlIGgyIHtcbiAgZm9udC1zaXplOiAzNnB4OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5NTBweCkge1xuICAgIC5wYWdlLXRpdGxlLWxhcmdlIGgyIHtcbiAgICAgIGZvbnQtc2l6ZTogMzBweDsgfVxuICAgICAgLnBhZ2UtdGl0bGUtbGFyZ2UgaDIgc3BhbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogNDhweDsgfSB9XG5cbi5wYWdlLXRpdGxlLWxhcmdlIHAge1xuICBmb250LXNpemU6IDE4cHg7IH1cblxuLypcblBhZ2UgVGl0bGUgQ291cnNlXG5cbkZvciB1c2UgYWJvdmUgdmlkZW9zLiBUT0RPOiBUaGlzIHNob3VsZCBiZSBpdHMgb3duIG1vZHVsZS5cblxuTWFya3VwOlxuPGhlYWRlciBjbGFzcz1cInBhZ2UtdGl0bGUgcGFnZS10aXRsZS1jb3Vyc2VcIj5cbiAgPGgxPkNoYXB0ZXIgMTogQ2FycnlpbmcgTWVzc2FnZXM8L2gxPlxuICA8cCBjbGFzcz1cImF1ZGlvIG11dGVkXCIgaWQ9XCJ2b2x1bWVfY29udHJvbFwiPjxhIGhyZWY9XCIjXCI+UmVhZCBBbG91ZDwvYT48L3A+XG48L2hlYWRlcj5cblxuU3R5bGVndWlkZSAzLjQuMVxuKi9cbi5wYWdlLXRpdGxlLWNvdXJzZSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xuICBwYWRkaW5nLXJpZ2h0OiA1OHB4O1xuICBwYWRkaW5nLXRvcDogMThweDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAucGFnZS10aXRsZS1jb3Vyc2Uge1xuICAgICAgcGFkZGluZzogMzZweCAwIDE4cHg7XG4gICAgICBtYXJnaW4tbGVmdDogMThweDtcbiAgICAgIG1hcmdpbi1yaWdodDogMThweDsgfSB9XG4gIC5wYWdlLXRpdGxlLWNvdXJzZSBoMSB7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjJlbTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgICAgLnBhZ2UtdGl0bGUtY291cnNlIGgxIHtcbiAgICAgICAgZm9udC1zaXplOiAzMHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMWVtOyB9IH1cblxuLypcblBhZ2UgVGl0bGUgQ29udHJvbHNcblxuQSB2ZXJzaW9uIHRoYXQgaGFzIGEgYnV0dG9uLiBUT0RPOiBUaGlzIHNob3VsZCBiZSBpdHMgb3duIG1vZHVsZS5cblxuTWFya3VwOlxuPGhlYWRlciBjbGFzcz1cInBhZ2UtdGl0bGUgcGFnZS10aXRsZS1jb250cm9sc1wiPlxuICA8c2VjdGlvbj5cbiAgICA8aDE+VGlmZmFueSBQcmFkbzwvaDE+XG4gICAgPHA+dGlmYS50aWZhQGdtYWlsLmNvbTwvcD5cbiAgPC9zZWN0aW9uPlxuICA8c2VjdGlvbj5cbiAgICA8YSBjbGFzcz1cImJ1dHRvblwiIGhyZWY9XCIvbWFuYWdlLzM2L2xpY2Vuc2UvMzYvZWRpdC8zMzI0L1wiPkVkaXQgVXNlcjwvYT5cbiAgPC9zZWN0aW9uPlxuPC9oZWFkZXI+XG5cblN0eWxlZ3VpZGUgMy40LjJcbiovXG4ucGFnZS10aXRsZS1jb250cm9scyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAucGFnZS10aXRsZS1jb250cm9scyB7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfSB9XG4gIC5wYWdlLXRpdGxlLWNvbnRyb2xzIHNlY3Rpb24ge1xuICAgIG1hcmdpbi1ib3R0b206IDE4cHg7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAgIC5wYWdlLXRpdGxlLWNvbnRyb2xzIHNlY3Rpb24ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyB9IH1cblxuLnBhZ2UtdGl0bGUtY2VudGVyZWQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLypcblBlcnNvblxuXG5NYXJrdXA6XG48YXJ0aWNsZSBjbGFzcz1cInBlcnNvblwiPlxuICA8c2VjdGlvbiBjbGFzcz1cImltYWdlXCI+XG4gICAgPGltZyBzcmM9XCIvaW1hZ2VzL2phbWVzYmlsbGluZ3MuanBnXCIgYWx0PVwiRHIuIEphbWVzIEJpbGxpbmdzLCBMTUZUXCIgd2lkdGg9XCIyOTBcIj5cbiAgPC9zZWN0aW9uPlxuICA8c2VjdGlvbiBjbGFzcz1cInRleHRcIj5cbiAgICA8aDI+RHIuIEphbWVzIEJpbGxpbmdzLCBMTUZUPC9oMj5cbiAgICA8aDM+U2hvcnQgSW50cm9kdWN0aW9uPC9oMz5cbiAgICA8cD5Eci4gQmlsbGluZ3MgYSBsaWNlbnNlZCBNYXJyaWFnZSBhbmQgRmFtaWx5IFRoZXJhcGlzdCAoTE1GVCkgaW4gdGhlIHN0YXRlIG9mIENhbGlmb3JuaWEgaGFzIHNwZWNpYWxpemVkIHdvcmtpbmcgd2l0aCBjb3VwbGVzIGFuZCBmYW1pbGllcyBmb3IgdGhlIHBhc3QgdGVuIHllYXJzLiBIZSBoYXMgZGV2ZWxvcGVkIGFuZCBpbXBsZW1lbnRlZCBhIGNvdW50eSB3aWRlIGRpdm9yY2UgcGFyZW50aW5nIHByb2dyYW1zIHVzaW5nIGJvdGggdGhlIENoaWxkcmVuIGluIEJldHdlZW4gYW5kIEFmdGVyIHRoZSBTdG9ybSBwcm9ncmFtcywgZm9yIHRoZSBmYW1pbHkgY291cnRzIGluIGEgbGFyZ2UgU291dGhlcm4gQ2FsaWZvcm5pYSBjb3VudHkuPC9wPlxuICAgIDxoMz5BZGRpdGlvbmFsIEluZm9ybWF0aW9uPC9oMz5cbiAgICA8cD5Eci4gQmlsbGluZ3MgaGFzIGJvdGggYSBNYXN0ZXJzIERlZ3JlZSBhbmQgUGguRC4gaW4gTWFycmlhZ2UgYW5kIEZhbWlseSBUaGVyYXB5LiBIZSBpcyBkZWRpY2F0ZWQgdG8gaGVscGluZyBpbmRpdmlkdWFsLCBjb3VwbGVzLCBmYW1pbGllcyBjcmVhdGUgaGVhbHRoaWVyIGFuZCBoYXBwaWVyIHJlbGF0aW9uc2hpcHMuIERyLiBCaWxsaW5ncyBpcyBjZXJ0aWZpZWQgaW4gYSBudW1iZXIgb2YgcGFyZW50aW5nLCBjby1wYXJlbnRpbmcsIGFuZCBtYXJyaWFnZSBlbmhhbmNlbWVudCBwcm9ncmFtcyAoUFJJQ0UgUGFyZW50aW5nLCBQUkVQLCBDb3VwbGVzIENvbW11bmljYXRpb24gSW5jLiwgQ2hpbGRyZW4gaW4gQmV0d2VlbiwgYW5kIEFmdGVyIHRoZSBTdG9ybSkuIERyLiBCaWxsaW5ncyBpcyBhbHNvIGEgY28tYXV0aG9yIG9mIHRoZSBMZWFkZXJzIEd1aWRlIGZvciB0aGUgQWZ0ZXIgdGhlIFN0b3JtIHByb2dyYW0uIEhlIGRldmVsb3BlZCBhIGRpdm9yY2UgcGFyZW50aW5nIHByb2dyYW0gYnkgY29tYmluaW5nIHRoZSBDaGlsZHJlbiBpbiBCZXR3ZWVuIGFuZCBBZnRlciB0aGUgU3Rvcm0gd2hpY2ggd2FzIHByZXNlbnRlZCBhY3Jvc3MgYSBsYXJnZXIgY291bnR5IGluIFNvdXRoZXJuIENhbGlmb3JuaWEuIERyLiBCaWxsaW5nc+KAmXMgY2xpbmljYWwgaW50ZXJlc3RzIGFyZSBpbiBwYXJlbnRpbmcsIGRpdm9yY2UgcGFyZW50aW5nLCBhbmQgZ3JpZWYgYW5kIGxvc3Mgd2l0aCBjaGlsZHJlbi4gRHIuIEJpbGxpbmdzIGN1cnJlbnRseSB3b3JrcyBhcyBhIENsaW5pY2FsIERpcmVjdG9yIG9mIGEgbm9uLXByb2ZpdCBjb3Vuc2VsaW5nIGFnZW5jeSB0aGF0IHNwZWNpYWxpemVzIGluIHdvcmtpbmcgd2l0aCBmYW1pbGllcyBpbiBkaXN0cmVzcy4gSGUgYWxzbyB3b3JrcyBwYXJ0IHRpbWUgYXMgYW4gQXNzaXN0YW50IFByb2Zlc3NvciBmb3IgYSBncmFkdWF0ZSBwcm9ncmFtIHRyYWluaW5nIE1hc3RlcnMgYW5kIFBoLkQuIGxldmVsIHN0dWRlbnRzIGZvciBhIGNhcmVlciBpbiBNYXJyaWFnZSBhbmQgRmFtaWx5IFRoZXJhcHkuPC9wPlxuICAgIDxoMz5Db250YWN0IEluZm9ybWF0aW9uOjwvaDM+XG4gICAgPHA+SWYgeW91IGFyZSBpbnRlcmVzdGVkIGluIGNvbnN1bHRpbmcgd2l0aCBEci4gQmlsbGluZ3MgcGxlYXNlIGNvbnRhY3QgaGltIGJ5IGVtYWlsIGF0IEJpbGxpbmdzY29uc3VsdGluZ0B2ZXJpem9uLm5ldCB3aXRoIGEgYnJpZWYgZGVzY3JpcHRpb24gb2YgeW91ciBzaXR1YXRpb24gYW5kIHNwZWNpZmljIHF1ZXN0aW9ucyBvciBjb25jZXJucyB0aGF0IHlvdSBoYXZlLiBXaGVuIGUtbWFpbGluZywgcGxlYXNlIGluY2x1ZGUgeW91ciBuYW1lLCB0ZWxlcGhvbmUgbnVtYmVyLCBhbmQgdGhlIGJlc3QgdGltZSB0aGF0IHlvdSBtYXkgYmUgcmVhY2hlZC4gSGlzIGNvbnN1bHRhdGlvbiBmZWVzIGFyZSAkMjUgZm9yIDIwIG1pbnV0ZXMsICQzNSBmb3IgMzAgbWludXRlcyBhbmQgJDUwIGZvciA0NSBtaW51dGVzLiBQYXltZW50cyBmcm9tIGJhbmsgYWNjb3VudHMsIGNyZWRpdCBvciBkZWJpdCBjYXJkcyBtYXkgYmUgbWFkZSB0aHJvdWdoIHRoZSBzZWN1cmVkIHNpdGUgb2YgUGF5cGFsIChodHRwczovL3d3dy5wYXlwYWwuY29tKTwvcD5cbiAgPC9zZWN0aW9uPlxuPC9hcnRpY2xlPlxuXG5TdHlsZWd1aWRlIDMuMTVcbiovXG4ucGVyc29uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjUwcHgpIHtcbiAgICAucGVyc29uIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRjJGMkYyO1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgIG1hcmdpbi1ib3R0b206IDE4cHg7IH1cbiAgICAgIC5wZXJzb246bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfVxuICAucGVyc29uIGltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5wZXJzb24gLmltYWdlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxOHB4OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY1MHB4KSB7XG4gICAgICAucGVyc29uIC5pbWFnZSB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMThweDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NTBweCkge1xuICAgIC5wZXJzb24gLnRleHQge1xuICAgICAgZmxleDogNDsgfSB9XG5cbi8qXG5Qcm9ncmVzcyBCYXJcblxuTWFya3VwOlxuPHVsIGNsYXNzPVwicHJvZ3Jlc3NiYXJcIj5cbiAgPHNnLWluc2VydD4zLjMxLTI8L3NnLWluc2VydD5cbiAgPHNnLWluc2VydD4zLjMxLTI8L3NnLWluc2VydD5cbiAgPHNnLWluc2VydD4zLjMxLTE8L3NnLWluc2VydD5cbiAgPHNnLWluc2VydD4zLjMxLTE8L3NnLWluc2VydD5cbjwvdWw+XG5cblN0eWxlZ3VpZGUgMy4zMFxuKi9cbi5wcm9ncmVzc2JhciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBhZGRpbmctdG9wOiAyMnB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLnByb2dyZXNzYmFyOjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0YyRjJGMjtcbiAgICBib3JkZXItcmFkaXVzOiAxM3B4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMTNweDtcbiAgICBsZWZ0OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogMTA7IH1cbiAgLnByb2dyZXNzYmFyIGxpIHtcbiAgICBsaXN0LXN0eWxlOiBub25lOyB9XG5cbi8qXG5Qcm9ncmVzcyBCYXIgSXRlbVxuXG5UaGUgU0M1IGRlbW8gZG9lc24ndCBxdWl0ZSB3b3JrIGhlcmUsIGFzIGZpcnN0LWNoaWxkIGNvbWVzIGludG8gcGxheS4gU2VlIDMuMzAgaW5zdGVhZC5cblxuRGVmYXVsdCAtIERlZmF1bHQgc3RhdGVcbi5wcm9ncmVzc2Jhcml0ZW0taXMtYWN0aXZlIC0gV2hlbiBpdCdzIGJlZW4gYWN0aXZlL2NvbXBsZXRlXG5cbk1hcmt1cDpcbjxsaSBjbGFzcz1cInByb2dyZXNzYmFyaXRlbSB7JG1vZGlmaWVyc31cIiBzdHlsZT1cIndpZHRoOjI1JVwiPlN0ZXA8L2xpPlxuXG5TdHlsZWd1aWRlIDMuMzFcbiovXG4ucHJvZ3Jlc3NiYXJpdGVtIHtcbiAgY29sb3I6ICM2OTY5Njk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogNTA7IH1cbiAgLnByb2dyZXNzYmFyaXRlbTo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNGMkYyRjI7XG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgbGVmdDogLTNweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtMjUuNXB4O1xuICAgIHdpZHRoOiAyMHB4OyB9XG4gIC5wcm9ncmVzc2Jhcml0ZW0ucHJvZ3Jlc3NiYXJpdGVtLWlzLWFjdGl2ZTo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyOGFkZTM7IH1cbiAgLnByb2dyZXNzYmFyaXRlbS5wcm9ncmVzc2Jhcml0ZW0taXMtYWN0aXZlOm5vdCg6Zmlyc3QtY2hpbGQpOjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyOGFkZTM7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAxM3B4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMTAwJTtcbiAgICB0b3A6IC0yMnB4O1xuICAgIHdpZHRoOiAxMDAlOyB9XG5cbi8qXG5RdWl6XG5cbk1hcmt1cDpcbjxkaXYgY2xhc3M9XCJxdWl6IGd1aWRlZC1xdWVzdGlvblwiPlxuICAgIDxoMj5RdWVzdGlvbiAxIG9mIDExPC9oMj5cbiAgICA8aDE+V2h5IGRvZXMgY29uZmxpY3Qgb3ZlciBtb25leSBlYXNpbHkgb2NjdXIgYWZ0ZXIgZGl2b3JjZSBvciBzZXBhcmF0aW9uPzwvaDE+XG4gICAgPGZvcm0gYWN0aW9uPVwiI1wiPlxuICAgICAgICA8b2wgY2xhc3M9XCJhbnN3ZXItbGlzdFwiIGlkPVwicXVpelwiPjxsaT5cbiAgICA8bGFiZWwgZm9yPVwiMFwiPlxuICAgICAgICA8aW5wdXQgaWQ9XCIwXCIgdHlwZT1cInJhZGlvXCIgbmFtZT1cInF1aXpcIj5cbiAgICAgICAgPHA+TW9uZXkgdXN1YWxseSBiZWNvbWVzIHRpZ2h0ZXIgZm9yIGJvdGggcGFyZW50cy48L3A+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmYWtlLXJhZGlvXCI+PC9kaXY+XG4gICAgPC9sYWJlbD5cbjwvbGk+PGxpPlxuICAgIDxsYWJlbCBmb3I9XCIxXCI+XG4gICAgICAgIDxpbnB1dCBpZD1cIjFcIiB0eXBlPVwicmFkaW9cIiBuYW1lPVwicXVpelwiPlxuICAgICAgICA8cD5NYW55IHBhcmVudHMgd2hvIHBheSBzdXBwb3J0IHJlc2VudCBoYXZpbmcgbm8gc2F5IGluIGhvdyB0aGUgbW9uZXkgaXMgc3BlbnQuPC9wPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmFrZS1yYWRpb1wiPjwvZGl2PlxuICAgIDwvbGFiZWw+XG48L2xpPjxsaT5cbiAgICA8bGFiZWwgZm9yPVwiMlwiPlxuICAgICAgICA8aW5wdXQgaWQ9XCIyXCIgdHlwZT1cInJhZGlvXCIgbmFtZT1cInF1aXpcIj5cbiAgICAgICAgPHA+VGhlIHBlcnNvbiByZWNlaXZpbmcgc3VwcG9ydCBvZnRlbiB0cnVseSBiZWxpZXZlcyBpdCBpcyBub3QgZW5vdWdoIHRvIGNvdmVyIGV4cGVuc2VzLjwvcD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZha2UtcmFkaW9cIj48L2Rpdj5cbiAgICA8L2xhYmVsPlxuPC9saT48bGk+XG4gICAgPGxhYmVsIGZvcj1cIjNcIj5cbiAgICAgICAgPGlucHV0IGlkPVwiM1wiIHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJxdWl6XCI+XG4gICAgICAgIDxwPlRoZSBwZXJzb24gcGF5aW5nIHN1cHBvcnQgdHJ1bHkgYmVsaWV2ZXMgdGhleSBhcmUgcGF5aW5nIHRvbyBtdWNoLCBlc3BlY2lhbGx5IGlmIHRoZXkgaGF2ZSBvdGhlciBmaW5hbmNpYWwgb2JsaWdhdGlvbnMuPC9wPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmFrZS1yYWRpbyBzZWxlY3RlZFwiPjwvZGl2PlxuICAgIDwvbGFiZWw+XG48L2xpPjxsaT5cbiAgICA8bGFiZWwgZm9yPVwiNFwiPlxuICAgICAgICA8aW5wdXQgaWQ9XCI0XCIgdHlwZT1cInJhZGlvXCIgbmFtZT1cInF1aXpcIj5cbiAgICAgICAgPHA+QWxsIG9mIHRoZSBhYm92ZS48L3A+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmYWtlLXJhZGlvXCI+PC9kaXY+XG4gICAgPC9sYWJlbD5cbjwvbGk+PC9vbD5cbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjb250cm9sc1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZlZWRiYWNrXCIgaWQ9XCJjaGVja19hbnN3ZXJcIj48aDIgY2xhc3M9XCJpbmNvcnJlY3RcIj5JbmNvcnJlY3QuPC9oMj48cD5UaGlzIGlzIHRydWUsIGJ1dCB0aGV5IGFyZSBqdXN0IGxvb2tpbmcgYXQgaXQgZnJvbSB0aGVpciBvd24gcG9pbnQgb2Ygdmlldy4gT3RoZXIgYW5zd2VycyBhcmUgYWxzbyBjb3JyZWN0LjwvcD48L2Rpdj5cbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwic3VibWl0XCIgaWQ9XCJzdWJtaXRcIiBjbGFzcz1cImJ1dHRvbiBuZXh0XCIgdmFsdWU9XCJOZXh0XCI+XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICA8L2Zvcm0+XG4gICAgPGRpdiBjbGFzcz1cInNjb3JlXCIgaWQ9XCJjb3JyZWN0X2luY29ycmVjdFwiPjxwPkNvcnJlY3Q6IDAgLyBJbmNvcnJlY3Q6IDE8L3A+PC9kaXY+XG48L2Rpdj5cblxuU3R5bGVndWlkZSAzLjE2XG4qL1xuLnF1aXogZm9ybSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cblxuLnF1aXogLmNvbnRyb2xzIHtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gICAgLnF1aXogLmNvbnRyb2xzIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH0gfVxuXG4ucXVpeiAuZmVlZGJhY2sgaDIge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBsaW5lLWhlaWdodDogMWVtO1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5xdWl6IC5mZWVkYmFjayBoMi5pbmNvcnJlY3Qge1xuICAgIGNvbG9yOiAjZTc1MzQ1OyB9XG4gIC5xdWl6IC5mZWVkYmFjayBoMi5jb3JyZWN0IHtcbiAgICBjb2xvcjogIzlhYmEzODsgfVxuXG4ucXVpeiAuZmVlZGJhY2sgcCB7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLnF1aXogLmFuc3dlci1saXN0IHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBtYXJnaW4tbGVmdDogNDVweDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAucXVpeiAuYW5zd2VyLWxpc3Qge1xuICAgICAgZm9udC1zaXplOiAyNHB4OyB9IH1cbiAgLnF1aXogLmFuc3dlci1saXN0IGxpIHtcbiAgICBsaXN0LXN0eWxlOiB1cHBlci1hbHBoYSBpbnNpZGU7XG4gICAgbWFyZ2luLWJvdHRvbTogOXB4O1xuICAgIG1pbi1oZWlnaHQ6IDMycHg7XG4gICAgcGFkZGluZy10b3A6IC4yNWVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgICAgLnF1aXogLmFuc3dlci1saXN0IGxpIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7IH0gfVxuICAgIC5xdWl6IC5hbnN3ZXItbGlzdCBsaSBbdHlwZT1cImNoZWNrYm94XCJdLCAucXVpeiAuYW5zd2VyLWxpc3QgbGkgW3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgICBsZWZ0OiAtOTk5OXB4O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlOyB9XG4gICAgLnF1aXogLmFuc3dlci1saXN0IGxpIGxhYmVsIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAgIC5xdWl6IC5hbnN3ZXItbGlzdCBsaSBwIHtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgICAgICAucXVpeiAuYW5zd2VyLWxpc3QgbGkgcCB7XG4gICAgICAgICAgZm9udC1zaXplOiAyNHB4OyB9IH1cbiAgICAucXVpeiAuYW5zd2VyLWxpc3QgbGkgLmZha2UtcmFkaW8ge1xuICAgICAgYmFja2dyb3VuZDogdXJsKFwiaW1hZ2VzL3F1aXotdW5zZWxlY3RlZC5wbmdcIikgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgICB3aWR0aDogMzBweDtcbiAgICAgIGhlaWdodDogMzJweDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogLTQ1cHg7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgICAgICAucXVpeiAuYW5zd2VyLWxpc3QgbGkgLmZha2UtcmFkaW8ge1xuICAgICAgICAgIHRvcDogM3B4OyB9IH1cbiAgICAgIC5xdWl6IC5hbnN3ZXItbGlzdCBsaSAuZmFrZS1yYWRpby5zZWxlY3RlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHVybChcImltYWdlcy9xdWl6LXNlbGVjdGVkLnBuZ1wiKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDsgfVxuXG4ucXVpeiAuYnV0dG9uIHtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLnF1aXogLmJ1dHRvbiNzdWJtaXQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyOGFkZTM7IH1cbiAgLnF1aXogLmJ1dHRvbi5uZXh0IHtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDsgfVxuICAucXVpeiAuYnV0dG9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjMTk4ZmJmOyB9XG5cbi5xdWl6IC5zY29yZSB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjY2NjO1xuICBtYXJnaW4tdG9wOiAxOHB4O1xuICBwYWRkaW5nOiAxOHB4IDA7IH1cbiAgLnF1aXogLnNjb3JlIHAge1xuICAgIGZvbnQtc2l6ZTogMTRweDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgICAgLnF1aXogLnNjb3JlIHAge1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9IH1cblxuLypcblJlY2VpcHRcblxuTWFya3VwOlxuPHNlY3Rpb24gY2xhc3M9XCJyZWNlaXB0XCI+XG4gIDxkaXY+XG4gICAgPGgxPkFjY291bnQgSW5mb3JtYXRpb248L2gxPlxuICAgIDxwPjxzcGFuPlVzZXJuYW1lOiBqYWFzdW08L3A+XG4gICAgPHA+PHNwYW4+RXhwaXJhdGlvbiBEYXRlOjwvc3Bhbj4gMTIvMTIvMTguPC9wPlxuICA8L2Rpdj5cbiAgPGEgY2xhc3M9XCJyZWNlaXB0LXgtcHJpbnRcIiBocmVmPVwiamF2YXNjcmlwdDppZih3aW5kb3cucHJpbnQpd2luZG93LnByaW50KClcIj5QcmludCB0aGlzIHBhZ2UgZm9yIHlvdXIgcmVjb3JkczwvYT5cbiAgPGEgY2xhc3M9XCJidXR0b25cIiBocmVmPVwiI1wiPkdvIHRvIGNvdXJzZTwvYT5cbjwvc2VjdGlvbj5cblxuU3R5bGVndWlkZSAzLjMyXG4qL1xuLnJlY2VpcHQge1xuICBtYXJnaW4tYm90dG9tOiAxOHB4O1xuICBwYWRkaW5nOiAwIDE4cHggMThweDsgfVxuICAucmVjZWlwdCBkaXYge1xuICAgIGJhY2tncm91bmQ6ICNGMkYyRjI7XG4gICAgbWFyZ2luLWJvdHRvbTogMThweDtcbiAgICBwYWRkaW5nOiAxOHB4OyB9XG4gICAgLnJlY2VpcHQgZGl2IGgxIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgICBtYXJnaW4tYm90dG9tOiA0LjVweDsgfVxuICAgIC5yZWNlaXB0IGRpdiBwIHtcbiAgICAgIGNvbG9yOiAjMjhhZGUzO1xuICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDlweDsgfVxuICAgIC5yZWNlaXB0IGRpdiBhIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cbiAgICAucmVjZWlwdCBkaXYgc3BhbiB7XG4gICAgICBjb2xvcjogIzY5Njk2OTsgfVxuICAucmVjZWlwdCA+IGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAucmVjZWlwdCAucmVjZWlwdC14LXByaW50IHtcbiAgICBtYXJnaW4tYm90dG9tOiAxOHB4OyB9XG5cbi8qXG5SZXF1aXJlbWVudHMgTGlzdFxuXG5NYXJrdXA6XG48c2VjdGlvbiBpZD1cInJlcXVpcmVtZW50c19saXN0XCIgY2xhc3M9XCJyZXF1aXJlbWVudHMtbGlzdFwiPlxuICA8c2VjdGlvbiBjbGFzcz1cImNvbnRyb2xzXCI+XG4gICAgPGJ1dHRvbiBpZD1cInJlcXVpcmVtZW50cy10b2dnbGVcIiBjbGFzcz1cInRvZ2dsZVwiPlRvZ2dsZSBSZXF1aXJlbWVudHM8L2J1dHRvbj5cbiAgICA8ZGl2IGNsYXNzPVwidGltZXJcIj5cbiAgICAgIDxkaXYgc3R5bGU9XCJcIiBjbGFzcz1cInRpbWVyLWNvbnRlbnRcIj5cbiAgICAgICAgPHNlY3Rpb24+XG4gICAgICAgICAgPGgxIGlkPVwidGltZXJfdGl0bGVcIj5UaW1lciBSZXF1aXJlbWVudDwvaDE+XG4gICAgICAgICAgPHAgY2xhc3M9XCJ0b29sdGlwXCI+PGEgaHJlZj1cIiN3aGF0cy10aGlzLW1vZGFsXCI+V2hhdCdzIHRoaXM/PC9hPjwvcD5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICA8cCBpZD1cInJlcXVpcmVtZW50cy10aW1lclwiIGNsYXNzPVwidGltZXItdmFsdWVcIj4yOjQ2PC9wPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvc2VjdGlvbj5cbiAgPHVsIGlkPVwicmVxdWlyZW1lbnRzLWNhdGVnb3JpZXNcIiBjbGFzcz1cImNhdGVnb3JpZXNcIj5cbiAgICA8bGk+XG4gICAgICA8aDM+SW50cm9kdWN0aW9uPC9oMz5cbiAgICAgIDx1bCBpZD1cImludHJvZHVjdGlvbi1yZXF1aXJlbWVudHNcIj5cbiAgICAgICAgPGxpIGNsYXNzPVwiY29tcGxldGVcIj48YSBjbGFzcz1cInN0YXRlLW5vdGlmaWNhdGlvbnNcIiBocmVmPVwiI1wiPlN0YXRlIE5vdGlmaWNhdGlvbnM8L2E+PC9saT5cbiAgICAgICAgPGxpIGNsYXNzPVwiY29tcGxldGVcIj48YSBjbGFzcz1cImludHJvLXZpZGVvXCIgaHJlZj1cIi9wZXRlcnNvbi9cIj5JbnRyb2R1Y3RvcnkgVmlkZW88L2E+PC9saT5cbiAgICAgICAgPGxpIGNsYXNzPVwic3RhdGUtY291bnR5LXJlcXMgaW4tcHJvZ3Jlc3NcIj48YSBjbGFzcz1cInN0YXRlLWNvdW50eS1yZXFzXCIgaHJlZj1cIiNcIj5TdGF0ZS9Db3VudHkgUmVxdWlyZW1lbnRzPC9hPjwvbGk+XG4gICAgICA8L3VsPlxuICAgIDwvbGk+XG4gICAgPGxpPlxuICAgICAgPGgzPkNvdXJzZSBDb250ZW50PC9oMz5cbiAgICAgIDx1bCBpZD1cImNvdXJzZS1jb250ZW50LXJlcXVpcmVtZW50c1wiPlxuICAgICAgICA8bGkgY2xhc3M9XCJpbi1wcm9ncmVzc1wiPjxhIGhyZWY9XCIjXCIgY2xhc3M9XCJjaGFwdGVyX3ZpZXdcIiBkYXRhLWNoYXB0ZXJpZD1cIjNcIj4wMTogQ2FycnlpbmcgTWVzc2FnZXM8L2E+PC9saT5cbiAgICAgICAgPGxpIGNsYXNzPVwiaW4tcHJvZ3Jlc3NcIj48YSBocmVmPVwiI1wiIGNsYXNzPVwiY2hhcHRlcl92aWV3XCIgZGF0YS1jaGFwdGVyaWQ9XCI0XCI+MDI6IFB1dCBEb3duczwvYT48L2xpPlxuICAgICAgICA8bGkgY2xhc3M9XCJcIj48YSBocmVmPVwiI1wiIGNsYXNzPVwiY2hhcHRlcl92aWV3XCIgZGF0YS1jaGFwdGVyaWQ9XCI1XCI+MDM6IE1vbmV5IFByb2JsZW1zPC9hPjwvbGk+XG4gICAgICAgIDxsaSBjbGFzcz1cIlwiPjxhIGhyZWY9XCIjXCIgY2xhc3M9XCJjaGFwdGVyX3ZpZXdcIiBkYXRhLWNoYXB0ZXJpZD1cIjZcIj4wNDogUXVlc3Rpb25pbmc8L2E+PC9saT5cbiAgICAgICAgPGxpIGNsYXNzPVwiXCI+PGEgaHJlZj1cIiNcIiBjbGFzcz1cImNoYXB0ZXJfdmlld1wiIGRhdGEtY2hhcHRlcmlkPVwiN1wiPjA1OiBMb25nIERpc3RhbmNlIFBhcmVudGluZzwvYT48L2xpPlxuICAgICAgICA8bGkgY2xhc3M9XCJ1bmF2YWlsYWJsZSBcIj48YSBocmVmPVwiI1wiIGNsYXNzPVwiY2hhcHRlcl92aWV3XCIgZGF0YS1jaGFwdGVyaWQ9XCI5XCI+MDY6IENvbmNsdXNpb248L2E+PC9saT5cbiAgICAgIDwvdWw+XG4gICAgPC9saT5cbiAgPC91bD5cbjwvc2VjdGlvbj5cblxuU3R5bGVndWlkZSAzLjE3XG4qL1xuc2VjdGlvbi5yZXF1aXJlbWVudHMtbGlzdCB7XG4gIGJhY2tncm91bmQ6ICMxNTVhNzY7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGNvbG9yOiAjZmZmO1xuICBtYXJnaW4tdG9wOiAtNTRweDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDEwMCU7XG4gIHRyYW5zaXRpb246IHRvcCAuNXMgZWFzZS1vdXQ7XG4gIHotaW5kZXg6IDEwMTtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDk1MHB4KSB7XG4gICAgc2VjdGlvbi5yZXF1aXJlbWVudHMtbGlzdCB7XG4gICAgICBib3R0b206IGF1dG87XG4gICAgICBmbGV4LWJhc2lzOiAzNDBweDtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICB6LWluZGV4OiAwOyB9IH1cbiAgc2VjdGlvbi5yZXF1aXJlbWVudHMtbGlzdCAudG9nZ2xlIHtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCJpbWFnZXMvcmVxdWlyZW1lbnRzLWxpc3QtdG9nZ2xlLnN2Z1wiKSBuby1yZXBlYXQgMjdweCAxMy41cHg7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNmZmY7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiA1NHB4O1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgcGFkZGluZzogMCAxOHB4IDAgNDVweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7XG4gICAgd2lkdGg6IDIzcHg7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogOTUwcHgpIHtcbiAgICAgIHNlY3Rpb24ucmVxdWlyZW1lbnRzLWxpc3QgLnRvZ2dsZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAgIHNlY3Rpb24ucmVxdWlyZW1lbnRzLWxpc3QgLnRvZ2dsZTpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZDogdXJsKFwiaW1hZ2VzL3JlcXVpcmVtZW50cy1saXN0LXRvZ2dsZS1hcnJvdy5zdmdcIikgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiA3cHg7XG4gICAgICBsZWZ0OiA5cHg7XG4gICAgICBtYXJnaW4tdG9wOiAtMy41cHg7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHdpZHRoOiAxMHB4OyB9XG4gIHNlY3Rpb24ucmVxdWlyZW1lbnRzLWxpc3QgLmNhdGVnb3JpZXMge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBwYWRkaW5nOiA1NHB4IDAgMThweDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NTBweCkge1xuICAgICAgc2VjdGlvbi5yZXF1aXJlbWVudHMtbGlzdCAuY2F0ZWdvcmllcyB7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsgfSB9XG4gICAgc2VjdGlvbi5yZXF1aXJlbWVudHMtbGlzdCAuY2F0ZWdvcmllcyBoMyB7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDlweDsgfVxuICAgIHNlY3Rpb24ucmVxdWlyZW1lbnRzLWxpc3QgLmNhdGVnb3JpZXMgLmluc3RydWN0b3Jfc2VjdGlvbl92aWV3LmFjdGl2ZSB7XG4gICAgICBjb2xvcjogIzI4YWRlMzsgfVxuICAgIHNlY3Rpb24ucmVxdWlyZW1lbnRzLWxpc3QgLmNhdGVnb3JpZXMgPiBsaSB7XG4gICAgICBtYXJnaW46IDM2cHggMCAxOHB4IDM2cHg7IH1cbiAgICAgIHNlY3Rpb24ucmVxdWlyZW1lbnRzLWxpc3QgLmNhdGVnb3JpZXMgPiBsaS5jdXJyZW50IGgzIGEge1xuICAgICAgICBjb2xvcjogIzI4YWRlMzsgfVxuICAgICAgc2VjdGlvbi5yZXF1aXJlbWVudHMtbGlzdCAuY2F0ZWdvcmllcyA+IGxpLmN1cnJlbnQgdWwgbGkuY3VycmVudCBhIHtcbiAgICAgICAgY29sb3I6ICMyOGFkZTM7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gICAgICBzZWN0aW9uLnJlcXVpcmVtZW50cy1saXN0IC5jYXRlZ29yaWVzID4gbGkgdWwuZGVmYXVsdC1jb250ZW50ID4gbGkgYSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHVybChcImltYWdlcy9yZXF1aXJlbWVudHMtbGlzdC1ub3QtYXR0ZW1wdGVkLnBuZ1wiKSByaWdodCBjZW50ZXIgbm8tcmVwZWF0OyB9XG4gICAgICBzZWN0aW9uLnJlcXVpcmVtZW50cy1saXN0IC5jYXRlZ29yaWVzID4gbGkgdWwuZGVmYXVsdC1jb250ZW50ID4gbGkuZmFpbGVkIGEge1xuICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoXCJpbWFnZXMvcmVxdWlyZW1lbnRzLWxpc3Qtbm90LWZhaWxlZC5wbmdcIikgcmlnaHQgY2VudGVyIG5vLXJlcGVhdDsgfVxuICAgICAgc2VjdGlvbi5yZXF1aXJlbWVudHMtbGlzdCAuY2F0ZWdvcmllcyA+IGxpIHVsLmRlZmF1bHQtY29udGVudCA+IGxpLmluLXByb2dyZXNzIGEge1xuICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoXCJpbWFnZXMvcmVxdWlyZW1lbnRzLWxpc3QtaW5wcm9ncmVzcy5wbmdcIikgcmlnaHQgY2VudGVyIG5vLXJlcGVhdDsgfVxuICAgICAgc2VjdGlvbi5yZXF1aXJlbWVudHMtbGlzdCAuY2F0ZWdvcmllcyA+IGxpIHVsLmRlZmF1bHQtY29udGVudCA+IGxpLmNvbXBsZXRlIGEge1xuICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoXCJpbWFnZXMvcmVxdWlyZW1lbnRzLWxpc3QtY29tcGxldGUucG5nXCIpIHJpZ2h0IGNlbnRlciBuby1yZXBlYXQ7IH1cbiAgICAgIHNlY3Rpb24ucmVxdWlyZW1lbnRzLWxpc3QgLmNhdGVnb3JpZXMgPiBsaSB1bC5kZWZhdWx0LWNvbnRlbnQgPiBsaS51bmF2YWlsYWJsZSBhIHtcbiAgICAgICAgb3BhY2l0eTogLjU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7IH1cbiAgICAgIHNlY3Rpb24ucmVxdWlyZW1lbnRzLWxpc3QgLmNhdGVnb3JpZXMgPiBsaSB1bC5pbnN0cnVjdG9yLWNvbnRlbnQgPiBsaSA+IGEge1xuICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoXCJpbWFnZXMvaW5zdHJ1Y3Rvci1jb250ZW50LWV4cGFuZC5wbmdcIikgcmlnaHQgY2VudGVyIG5vLXJlcGVhdDsgfVxuICAgICAgc2VjdGlvbi5yZXF1aXJlbWVudHMtbGlzdCAuY2F0ZWdvcmllcyA+IGxpIHVsLmluc3RydWN0b3ItY29udGVudCA+IGxpLmV4cGFuZGVkID4gYSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHVybChcImltYWdlcy9pbnN0cnVjdG9yLWNvbnRlbnQtY29sbGFwc2UucG5nXCIpIHJpZ2h0IGNlbnRlciBuby1yZXBlYXQ7IH1cbiAgICAgIHNlY3Rpb24ucmVxdWlyZW1lbnRzLWxpc3QgLmNhdGVnb3JpZXMgPiBsaSB1bC5pbnN0cnVjdG9yLWNvbnRlbnQgdWwuaW5zdHJ1Y3Rvci1zdWJtZW51IHtcbiAgICAgICAgbWFyZ2luOiAwOyB9XG4gICAgICAgIHNlY3Rpb24ucmVxdWlyZW1lbnRzLWxpc3QgLmNhdGVnb3JpZXMgPiBsaSB1bC5pbnN0cnVjdG9yLWNvbnRlbnQgdWwuaW5zdHJ1Y3Rvci1zdWJtZW51IGxpIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsgfVxuICAgICAgICAgIHNlY3Rpb24ucmVxdWlyZW1lbnRzLWxpc3QgLmNhdGVnb3JpZXMgPiBsaSB1bC5pbnN0cnVjdG9yLWNvbnRlbnQgdWwuaW5zdHJ1Y3Rvci1zdWJtZW51IGxpIGEge1xuICAgICAgICAgICAgcGFkZGluZzogNXB4IDIwcHg7IH1cbiAgICAgIHNlY3Rpb24ucmVxdWlyZW1lbnRzLWxpc3QgLmNhdGVnb3JpZXMgPiBsaSB1bC5pbnN0cnVjdG9yLWNvbnRlbnQgLmV4cGFuZGVkIHVsLmluc3RydWN0b3Itc3VibWVudSBsaSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICBzZWN0aW9uLnJlcXVpcmVtZW50cy1saXN0IC5jYXRlZ29yaWVzID4gbGkgdWwge1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwIDAgMThweDsgfVxuICAgICAgICBzZWN0aW9uLnJlcXVpcmVtZW50cy1saXN0IC5jYXRlZ29yaWVzID4gbGkgdWwgbGkge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7IH1cbiAgICAgICAgICBzZWN0aW9uLnJlcXVpcmVtZW50cy1saXN0IC5jYXRlZ29yaWVzID4gbGkgdWwgbGkgYSB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgcGFkZGluZzogLjVlbSAwO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxZW07XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAzNnB4O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsgfVxuICAgICAgc2VjdGlvbi5yZXF1aXJlbWVudHMtbGlzdCAuY2F0ZWdvcmllcyA+IGxpIGEge1xuICAgICAgICBjb2xvcjogI2ZmZjsgfVxuICBzZWN0aW9uLnJlcXVpcmVtZW50cy1saXN0IC5jb250cm9scyB7XG4gICAgYmFja2dyb3VuZDogIzAxMzg1MDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGhlaWdodDogNTRweDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiA1MDsgfVxuICBzZWN0aW9uLnJlcXVpcmVtZW50cy1saXN0IC50aW1lciB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgc2VjdGlvbi5yZXF1aXJlbWVudHMtbGlzdCAudGltZXItY29udGVudCB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGhlaWdodDogNTRweDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgcGFkZGluZzogMCAxOHB4OyB9XG4gICAgc2VjdGlvbi5yZXF1aXJlbWVudHMtbGlzdCAudGltZXItY29udGVudCBoMSB7XG4gICAgICBmb250LXNpemU6IDE0cHg7IH1cbiAgICBzZWN0aW9uLnJlcXVpcmVtZW50cy1saXN0IC50aW1lci1jb250ZW50IC50aW1lci12YWx1ZSB7XG4gICAgICBmb250LXNpemU6IDM2cHg7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxZW07IH1cbiAgICBzZWN0aW9uLnJlcXVpcmVtZW50cy1saXN0IC50aW1lci1jb250ZW50IHAudG9vbHRpcCB7XG4gICAgICBjb2xvcjogIzI4YWRlMztcbiAgICAgIGxpbmUtaGVpZ2h0OiAxZW07XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAgIHNlY3Rpb24ucmVxdWlyZW1lbnRzLWxpc3QgLnRpbWVyLWNvbnRlbnQgcC50b29sdGlwIHNwYW4ge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMjhhZGUzO1xuICAgICAgICBib3R0b206IDEwcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGxlZnQ6IC05OTk5cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgICAgICAgcGFkZGluZzogOXB4O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgICAgIHdpZHRoOiAxIDU0cHg7XG4gICAgICAgIHotaW5kZXg6IDEwMDA7IH1cbiAgICAgIHNlY3Rpb24ucmVxdWlyZW1lbnRzLWxpc3QgLnRpbWVyLWNvbnRlbnQgcC50b29sdGlwOmhvdmVyIHNwYW4ge1xuICAgICAgICBib3R0b206IDEwNSU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC03NXB4OyB9XG4gICAgc2VjdGlvbi5yZXF1aXJlbWVudHMtbGlzdCAudGltZXItY29udGVudC50aWNrdG9jayBoMiB7XG4gICAgICBiYWNrZ3JvdW5kOiAjMjhhZGUzO1xuICAgICAgd2lkdGg6IDgwJTtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgcGFkZGluZzogM3B4IDFlbTsgfVxuICAgIHNlY3Rpb24ucmVxdWlyZW1lbnRzLWxpc3QgLnRpbWVyLWNvbnRlbnQudGlja3RvY2sgaDEge1xuICAgICAgY29sb3I6ICMyOGFkZTM7IH1cbiAgc2VjdGlvbi5yZXF1aXJlbWVudHMtbGlzdC5kb25lIGgyIHtcbiAgICBiYWNrZ3JvdW5kOiAjOWFiYTM4O1xuICAgIHdpZHRoOiA4MCU7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgcGFkZGluZzogM3B4IDFlbTsgfVxuICBzZWN0aW9uLnJlcXVpcmVtZW50cy1saXN0LmRvbmUgaDEge1xuICAgIGNvbG9yOiAjOWFiYTM4OyB9XG4gIHNlY3Rpb24ucmVxdWlyZW1lbnRzLWxpc3QuaXMtZXhwYW5kZWQge1xuICAgIGJvdHRvbTogYXV0bztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICBzZWN0aW9uLnJlcXVpcmVtZW50cy1saXN0LmlzLWV4cGFuZGVkIC50b2dnbGU6YmVmb3JlIHtcbiAgICAgIGFuaW1hdGlvbjogdHVybi1pbiAuNXMgZWFzZS1vdXQgZm9yd2FyZHM7IH1cbiAgc2VjdGlvbi5yZXF1aXJlbWVudHMtbGlzdC5pcy1jb2xsYXBzZWQgLnRvZ2dsZTpiZWZvcmUge1xuICAgIGFuaW1hdGlvbjogdHVybi1vdXQgLjVzIGVhc2Utb3V0IGZvcndhcmRzOyB9XG5cbi8qXG5SZXNvdXJjZXNcblxuTWFya3VwOlxuPGRpdiBjbGFzcz1cInJlc291cmNlcy1jb250YWluZXIgbC1jb250YWluZXJob3Jpem9udGFsXCI+XG4gIDxoZWFkZXIgY2xhc3M9XCJwYWdlLXRpdGxlIHBhZ2UtdGl0bGUtY291cnNlXCI+XG4gICAgPGgxPlJlc291cmNlczwvaDE+XG4gIDwvaGVhZGVyPlxuICA8ZGl2IGNsYXNzPVwicmVzb3VyY2VzLWwtY291cnNlXCI+XG4gICAgPG5hdiBjbGFzcz1cIm5hdmlnYXRpb24gbmF2aWdhdGlvbi1wYWdlIGdsb3NzYXJ5LW5hdmlnYXRpb25cIiBpZD1cImdsb3NzYXJ5LW5hdmlnYXRpb25cIj5cbiAgICAgIDxoZWFkZXI+XG4gICAgICAgIDxoMiBjbGFzcz1cIm5hdmlnYXRpb24tdGl0bGVcIj5HbG9zc2FyeSBNZW51PC9oMj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1lbnUtdG9nZ2xlIGlzLWluYWN0aXZlXCIgaWQ9XCJtZW51LXRvZ2dsZVwiPjxzcGFuIGNsYXNzPVwidmlzdWFsbHktaGlkZGVuXCI+IE1lbnU8L3NwYW4+PC9idXR0b24+XG4gICAgICA8L2hlYWRlcj5cbiAgICAgIDx1bCBjbGFzcz1cIm1lbnUgbWVudS1wYWdlIGlzLWluYWN0aXZlXCI+XG4gICAgICAgIDxsaSBjbGFzcz1cIm1lbnUtaXRlbSBtZW51LWl0ZW0tcGFnZVwiIG9uY2xpY2s9XCJzaG93X2dsb3NzYXJ5KCdBY3RpdmUgTGlzdGVuaW5nJywgJy9tZWRpYS9hdWRpby9BQ1RJVkVfTElTVEVOSU5HXzEubXAzJyk7XCI+PHNwYW4+QWN0aXZlIExpc3RlbmluZzwvc3Bhbj48L2xpPlxuICAgICAgICA8bGkgY2xhc3M9XCJtZW51LWl0ZW0gbWVudS1pdGVtLXBhZ2VcIiBvbmNsaWNrPVwic2hvd19nbG9zc2FyeSgnRW1wYXRoeScsICcvbWVkaWEvYXVkaW8vRU1QQVRIWV8xLm1wMycpO1wiPjxzcGFuPkVtcGF0aHk8L3NwYW4+PC9saT5cbiAgICAgICAgPGxpIGNsYXNzPVwibWVudS1pdGVtIG1lbnUtaXRlbS1wYWdlXCIgb25jbGljaz1cInNob3dfZ2xvc3NhcnkoJ0kgTWVzc2FnZScsICcvbWVkaWEvYXVkaW8vSV9NRVNTQUdFU18xLm1wMycpO1wiPjxzcGFuPkkgTWVzc2FnZTwvc3Bhbj48L2xpPlxuICAgICAgICA8bGkgY2xhc3M9XCJtZW51LWl0ZW0gbWVudS1pdGVtLXBhZ2VcIiBvbmNsaWNrPVwic2hvd19nbG9zc2FyeSgnSW1wdWxzZSBDb250cm9sJywgJy9tZWRpYS9hdWRpby9JTVBVTFNFX0NPTlRST0xfMV8xLm1wMycpO1wiPjxzcGFuPkltcHVsc2UgQ29udHJvbDwvc3Bhbj48L2xpPlxuICAgICAgICA8bGkgY2xhc3M9XCJtZW51LWl0ZW0gbWVudS1pdGVtLXBhZ2VcIiBvbmNsaWNrPVwic2hvd19nbG9zc2FyeSgnUG9saXRlIFJlcXVlc3QnLCAnL21lZGlhL2F1ZGlvL1BPTElURV9SRVFVRVNUXzEubXAzJyk7XCI+PHNwYW4+UG9saXRlIFJlcXVlc3Q8L3NwYW4+PC9saT5cbiAgICAgIDwvdWw+XG4gICAgPC9uYXY+XG4gICAgPHNlY3Rpb24gY2xhc3M9XCJyZXNvdXJjZXMtY29udGVudFwiPlxuICAgICAgPGFydGljbGUgY2xhc3M9XCJnbG9zc2FyeS1kZWZpbml0aW9uIHRleHQtY29udGFpbmVyXCIgc3R5bGU9XCJcIiB0ZXJtPVwiQWN0aXZlIExpc3RlbmluZ1wiIGlkPVwiZ2xvc3NhcnktdGVybS1hY3RpdmUtbGlzdGVuaW5nXCI+XG4gICAgICAgIDxoMT5BY3RpdmUgTGlzdGVuaW5nPC9oMT5cbiAgICAgICAgPHA+V2hlbiB3ZSBhY3RpdmVseSBsaXN0ZW4gdG8gc29tZW9uZSwgd2UgYXJlIG1ha2luZyBhIHJlYWwgZWZmb3J0IHRvIGhlYXIgYW5kIHVuZGVyc3RhbmQgd2hhdCB0aGV5IGFyZSBzYXlpbmcuICBXZSBhcmUgbm90IHRoaW5raW5nIGFib3V0IG91ciBvd24gcmVhY3Rpb24gdG8gd2hhdCBpcyBiZWluZyBzYWlkOyBpbnN0ZWFkIHdlIGFyZSBsaXN0ZW5pbmcgZGVlcGx5IGFuZCB3aXRoIGFsbCBvZiBvdXIgYXR0ZW50aW9uLiBUaGUgbmV4dCBzdGVwIGlzIHRvIGxldCB0aGUgb3RoZXIgcGVyc29uIGtub3cgeW91IGhhdmUgYmVlbiBsaXN0ZW5pbmcgYnkgZG9pbmcgb25lIG9mIHRocmVlIHRoaW5nczo8YnI+XG4gICAgICAgICAgMSkgcmV3b3JkaW5nIG9yIHBhcmFwaHJhc2luZyB3aGF0IHRoZXkgaGF2ZSBzYWlkIGFuZCByZXBlYXRpbmcgaXQgYmFjayB0byB0aGVtOzxicj5cbiAgICAgICAgICAyKSBzdGF0aW5nIHRoZSBtZWFuaW5nIG9mIHdoYXQgdGhleSBzYWlkOzxicj5cbiAgICAgICAgICAzKSBndWVzc2luZyBhdCBhbmQgc3RhdGluZyB0aGUgdW5kZXJseWluZyBmZWVsaW5nIG9mIHdoYXQgdGhleSBzYWlkLjxicj5cbiAgICAgICAgICA8YnI+XG4gICAgICAgICAgRXhhbXBsZXMgb2YgZWFjaCBvZiB0aGVzZSB0aHJlZSBsZXZlbHMgb2YgYWN0aXZlIGxpc3RlbmluZyBmb2xsb3c6PGJyPlxuICAgICAgICAgIDxicj5cbiAgICAgICAgICAxKSBSZXdvcmRpbmcgIFNwZWFrZXI6ICBJIGNhbuKAmXQgYmVsaWV2ZSBob3cgbG9uZyBpdCB0b29rIG1lIHRvIGdldCBoZXJlLiBUaGUgdHJhZmZpYyB3YXMgcHJldHR5IGJhZC4gTGlzdGVuZXI6ICBUaGUgdHJhZmZpYyB3YXMgYmFkIGFuZCBpdCB0b29rIHlvdSBsb25nZXIgdGhhbiB5b3UgdGhvdWdodCB0byBnZXQgaGVyZS48YnI+XG4gICAgICAgICAgPGJyPlxuICAgICAgICAgIDIpIE1lYW5pbmcgIExpc3RlbmVyOiAgWW91IHdlcmUgc3VycHJpc2VkIHRoZSB0cmlwIHRvb2sgc28gbG9uZyBkdWUgdG8gdHJhZmZpYyBkZWxheXMuPGJyPlxuICAgICAgICAgIDxicj5cbiAgICAgICAgICAzKSBGZWVsaW5nICBMaXN0ZW5lcjogIFlvdSBzb3VuZCBmcnVzdHJhdGVkIHRoYXQgeW91IGdvdCBoZXJlIGxhdGVyIHRoYW4geW91XG4gICAgICAgICAgZXhwZWN0ZWQuPGJyPlxuICAgICAgICAgIDxicj5cbiAgICAgICAgICBBY3RpdmUgbGlzdGVuaW5nIHNob3dzIHJlc3BlY3QgZm9yIHRoZSBzcGVha2VyIGFuZCBlbmNvdXJhZ2VzIG1vcmUgb3BlbiBhbmQgcGxlYXNhbnQgY29tbXVuaWNhdGlvbi4gUGFyZW50cyBuZWVkIHRvIHVzZSB0aGlzIHNraWxsIHdpdGggdGhlaXIgY2hpbGRyZW4gYW5kIGVhY2ggb3RoZXIuPC9wPlxuICAgICAgPC9hcnRpY2xlPlxuICAgIDwvc2VjdGlvbj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuU3R5bGVndWlkZSAzLjE4XG4qL1xuLnJlc291cmNlcy1jb250YWluZXIge1xuICBtYXJnaW4tYm90dG9tOiAxOHB4OyB9XG4gIC5yZXNvdXJjZXMtY29udGFpbmVyIC5wYWdlLXRpdGxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5NTBweCkge1xuICAucmVzb3VyY2VzLWwtY291cnNlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgcGFkZGluZzogMCAxOHB4OyB9XG4gICAgLnJlc291cmNlcy1sLWNvdXJzZSAucmVzb3VyY2VzLW5hdmlnYXRpb24ge1xuICAgICAgZmxleC1iYXNpczogMjUlOyB9IH1cblxuLnJlc291cmNlcy1jb250ZW50IHtcbiAgcGFkZGluZy10b3A6IDE4cHg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDk1MHB4KSB7XG4gICAgLnJlc291cmNlcy1jb250ZW50IHtcbiAgICAgIGZsZXgtYmFzaXM6IDc1JTsgfSB9XG5cbi8qXG5SdWxlXG5cbk1hcmt1cDpcbjxociBjbGFzcz1cInJ1bGVcIj5cblxuU3R5bGVndWlkZSAzLjU2XG4qL1xuLnJ1bGUge1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjRjJGMkYyO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7IH1cblxuLypcblNjb3JlXG5cbk1hcmt1cDpcbjxkaXYgaWQ9XCJxdWl6X3Njb3JlXCI+XG4gIDxoMj5RdWl6IFJlc3VsdHM8L2gyPlxuICA8aDM+WW91ciBzY29yZSBvbiB0aGUgUXVlc3Rpb25pbmcgcXVpeiB3YXM6PC9oMz5cbiAgPGgxPjM4JTwvaDE+XG4gIDxoMyBpZD1cInBhc3NpbmdfaGVhZGVyXCI+VW5mb3J0dW5hdGVseSwgeW91IG5lZWQgYXQgbGVhc3QgNzAlIHRvIHBhc3MuIFBsZWFzZSByZXZpZXcgdGhlIENoYXB0ZXIgYW5kIGF0dGVtcHQgdGhlIFF1aXogYWdhaW4uPC9oMz5cbiAgPGEgY2xhc3M9XCJidXR0b25cIiBpZD1cInJlcGVhdF9jaGFwdGVyXCIgaHJlZj1cIlwiPlRyeSBRdWVzdGlvbmluZyBBZ2FpbjwvYT5cbiAgPHA+b3IgPGEgaWQ9XCJyZXR1cm5fdG9fZGFzaGJvYXJkXCIgaHJlZj1cIlwiPlJldHVybiB0byBHYWxsZXJ5PC9hPjwvcD5cbjwvZGl2PlxuXG5TdHlsZWd1aWRlIDMuMjBcbiovXG4jcXVpel9zY29yZSB7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2NjY2M7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1hcmdpbjogMThweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMzZweCAxOHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdpZHRoOiBhdXRvOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgICNxdWl6X3Njb3JlIHtcbiAgICAgIG1hcmdpbjogMzZweCBhdXRvO1xuICAgICAgcGFkZGluZzogMzZweCA3MnB4OyB9IH1cbiAgI3F1aXpfc2NvcmUgaDEsICNxdWl6X3Njb3JlIGgzLCAjcXVpel9zY29yZSAuYnV0dG9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiA5cHg7IH1cbiAgI3F1aXpfc2NvcmUgaDEge1xuICAgIGZvbnQtc2l6ZTogNjRweDtcbiAgICBsaW5lLWhlaWdodDogMWVtOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gICAgICAjcXVpel9zY29yZSBoMSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTIwcHg7IH0gfVxuICAjcXVpel9zY29yZSBoMiB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAgICNxdWl6X3Njb3JlIGgyIHtcbiAgICAgICAgZm9udC1zaXplOiAyNHB4OyB9IH1cbiAgI3F1aXpfc2NvcmUgaDMge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBsaW5lLWhlaWdodDogMS41ZW07IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAgICNxdWl6X3Njb3JlIGgzIHtcbiAgICAgICAgY29sb3I6ICM1NTU1NTU7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDsgfSB9XG4gICNxdWl6X3Njb3JlIC5idXR0b24ge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICNxdWl6X3Njb3JlIGRpdi5za2lsbHMtcHJhY3RpY2Uge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZsb2F0OiBub25lO1xuICAgIHBhZGRpbmc6IDE4cHggMCAwIDA7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNGMkYyRjI7IH1cbiAgICAjcXVpel9zY29yZSBkaXYuc2tpbGxzLXByYWN0aWNlIHVsIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAgICAgI3F1aXpfc2NvcmUgZGl2LnNraWxscy1wcmFjdGljZSB1bCB7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfSB9XG4gICAgICAjcXVpel9zY29yZSBkaXYuc2tpbGxzLXByYWN0aWNlIHVsIGxpIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIGZsZXg6IDEgMCBhdXRvOyB9XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgICAgICAgICNxdWl6X3Njb3JlIGRpdi5za2lsbHMtcHJhY3RpY2UgdWwgbGkge1xuICAgICAgICAgICAgZmxleDogMSAxIDUwJTsgfSB9XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgICAgICAgICNxdWl6X3Njb3JlIGRpdi5za2lsbHMtcHJhY3RpY2UgdWwgbGk6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxOHB4OyB9IH1cbiAgICAgICAgI3F1aXpfc2NvcmUgZGl2LnNraWxscy1wcmFjdGljZSB1bCBsaSBhIHtcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogLjVlbTsgfVxuXG4vKlxuU2tpbGxzIFByYWN0aWNlXG5cbk1hcmt1cDpcbjxkaXYgY2xhc3M9XCJza2lsbHMtcHJhY3RpY2UgXCIgc3R5bGU9XCJcIj5cbiAgPGhlYWRlciBjbGFzcz1cInBhZ2UtdGl0bGVcIj5cbiAgICA8aDE+U2tpbGxzIFByYWN0aWNlPC9oMT5cbiAgICA8cD4gPC9wPlxuICA8L2hlYWRlcj5cbiAgPHVsPlxuICAgIDxsaSBjbGFzcz1cImNvbXBsZXRlZFwiIGlkPVwic2tpbGxwcmFjdGljZS0xXCI+XG4gICAgICA8YSBjbGFzcz1cInNraWxscHJhY3RpY2Vfdmlld1wiIGhyZWY9XCIjXCI+QWN0aXZlIExpc3RlbmluZzwvYT5cbiAgICAgIDxwPjxhIGNsYXNzPVwic2tpbGxwcmFjdGljZVwiIGhyZWY9XCIjXCI+PC9hPjwvcD5cbiAgICA8L2xpPlxuICAgIDxsaSBjbGFzcz1cImNvbXBsZXRlZFwiIGlkPVwic2tpbGxwcmFjdGljZS0yXCI+XG4gICAgICA8YSBjbGFzcz1cInNraWxscHJhY3RpY2Vfdmlld1wiIGhyZWY9XCIjXCI+SSBNZXNzYWdlczwvYT5cbiAgICAgIDxwPjxhIGNsYXNzPVwic2tpbGxwcmFjdGljZVwiIGhyZWY9XCIjXCI+PC9hPjwvcD5cbiAgICA8L2xpPlxuICAgIDxsaSBjbGFzcz1cImNvbXBsZXRlZFwiIGlkPVwic2tpbGxwcmFjdGljZS0zXCI+XG4gICAgICA8YSBjbGFzcz1cInNraWxscHJhY3RpY2Vfdmlld1wiIGhyZWY9XCIjXCI+U2VsZi1UYWxrPC9hPlxuICAgICAgPHA+PGEgY2xhc3M9XCJza2lsbHByYWN0aWNlXCIgaHJlZj1cIiNcIj48L2E+PC9wPlxuICAgIDwvbGk+XG4gICAgPGxpIGNsYXNzPVwiXCIgaWQ9XCJza2lsbHByYWN0aWNlLTRcIj5cbiAgICAgIDxhIGNsYXNzPVwic2tpbGxwcmFjdGljZV92aWV3XCIgaHJlZj1cIiNcIj5SZWZyYW1pbmc8L2E+XG4gICAgICA8cD48YSBjbGFzcz1cInNraWxscHJhY3RpY2VcIiBocmVmPVwiI1wiPjwvYT48L3A+XG4gICAgPC9saT5cbiAgPC91bD5cbjwvZGl2PlxuXG5TdHlsZWd1aWRlIDMuMjFcbiovXG4vKlxuU2tpbGxzIFByYWN0aWNlIFJlc291cmNlXG5cbk1hcmt1cDpcbjxkaXYgY2xhc3M9XCJxdWl6X3F1ZXN0aW9uIHF1aXpfcXVlc3Rpb25fcmVzb3VyY2VcIj5cbiAgPGRpdiBjbGFzcz1cInRleHRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaW1hZ2VcIj5cbiAgICAgIDxpbWcgc3JjPVwiL2ltYWdlcy9kb3dubG9hZC5zdmdcIiB3aWR0aD1cIjI2XCIgaGVpZ2h0PVwiNDlcIj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgIDxwIGNsYXNzPVwiZmlsZV9uYW1lXCI+TWluZGZ1bG5lc3NfTWVkaXRhdGlvbi5tcDM8L3A+XG4gICAgICA8cD5NZWRpdGF0aW9uIE1QMyBEb3dubG9hZDwvcD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJhY3Rpb25cIj5cbiAgICA8YSBjbGFzcz1cImJ1dHRvblwiIGhyZWY9XCIvbWVkaWEvc2tpbGxwcmFjdGljZS9hdHRhY2htZW50L01pbmRmdWxuZXNzX01lZGl0YXRpb24ubXAzXCI+RG93bmxvYWQ8L2E+XG4gIDwvZGl2PlxuPC9kaXY+XG5cblN0eWxlZ3VpZGUgMy4yMS4xXG4qL1xuLypcblNraWxscyBQcmFjdGljZSBRdWVzdGlvblxuXG5NYXJrdXA6XG48c2VjdGlvbiBjbGFzcz1cInF1aXpfcXVlc3Rpb25cIiBpZD1cInF1ZXN0aW9uXzJcIj5cbiAgPHVsIGNsYXNzPVwicXVpelwiPlxuICAgIDxsaT5cbiAgICAgIDxwIGNsYXNzPVwicXVlc3Rpb25cIj5TaGFuZHJhIGhhcyBiZWVuIHB1dHRpbmcgb2ZmIGRvaW5nIGhlciBob21ld29yayB1bnRpbCBsYXRlIGF0IG5pZ2h0IHdoZW4gc2hlIGlzIHRpcmVkLiBTaGUgZ2V0cyBwb29yIGdyYWRlcy4gV2hlbiBNb20gYXNrcyBoZXIgdG8gc3RhcnQgaGVyIGhvbWV3b3JrIGVhcmxpZXIsIFNoYW5kcmEgYW5ncmlseSBzYXlzIHRvIGdldCBvZmYgaGVyIGNhc2UuICBNb20gc2F5czogIDwvcD5cbiAgICA8L2xpPlxuICAgIDxsaSBjbGFzcz1cImNsZWFyZml4XCI+XG4gICAgICA8c3BhbiBpZD1cImFuc3dlcl82XCIgY2xhc3M9XCJjb3JyZWN0XCI+Q29ycmVjdDwvc3Bhbj5cbiAgICAgIDxsYWJlbCBmb3I9XCJhbnN3ZXJfNlwiPmEpIFlvdSBkb27igJl0IGxpa2UgaXQgd2hlbiBJIGFtIHRoZSBob21ld29yayByZW1pbmRlciBtYWNoaW5lLjwvbGFiZWw+XG4gICAgPC9saT5cbiAgICA8bGkgY2xhc3M9XCJjbGVhcmZpeFwiPlxuICAgICAgPHNwYW4gaWQ9XCJhbnN3ZXJfN1wiIGNsYXNzPVwiaW5jb3JyZWN0XCI+SW5jb3JyZWN0PC9zcGFuPlxuICAgICAgPGxhYmVsIGZvcj1cImFuc3dlcl83XCI+YikgSG9tZXdvcmsgaXMgbm90IGEgcHVuaXNobWVudC4gTm8gb25lIGxpa2VzIHRvIGRvIGl0LCBidXQgd2UgYWxsIGhhZCB0by4gPC9sYWJlbD5cbiAgICA8L2xpPlxuICAgIDxsaSBjbGFzcz1cImNsZWFyZml4XCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImluY29ycmVjdFwiPkluY29ycmVjdCBhbnN3ZXI8L3NwYW4+XG4gICAgICA8bGFiZWwgZm9yPVwiYW5zd2VyXzhcIj5jKSAgWW91IHdvdWxkIGJlIGxlc3MgZnJ1c3RyYXRlZCBpZiB5b3Ugc3RhcnRlZCBlYXJsaWVyLjwvbGFiZWw+XG4gICAgPC9saT5cbiAgICA8bGkgY2xhc3M9XCJjbGVhcmZpeFwiPlxuICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJxdWVzdGlvbl85XCIgaWQ9XCJhbnN3ZXJfOVwiIHZhbHVlPVwiOVwiPlxuICAgICAgPGxhYmVsIGZvcj1cImFuc3dlcl85XCI+ZCkgSSdtIHNvcnJ5LCBJIHNob3VsZCBub3QgaGF2ZSBwcmVzc3VyZWQgeW91LjwvbGFiZWw+XG4gICAgPC9saT5cbiAgPC91bD5cbiAgPGRpdiBpZD1cImNoZWNrX2Fuc3dlclwiIGNsYXNzPVwiY2xlYXJmaXhcIj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uIHJlZFwiPkNoZWNrIEFuc3dlcjwvYnV0dG9uPlxuICA8L2Rpdj5cbiAgPHAgY2xhc3M9XCJmZWVkYmFja1wiPjxzcGFuIGNsYXNzPVwiaW5jb3JyZWN0XCI+SW5jb3JyZWN0Ojwvc3Bhbj4gTW9tIGdpdmVzIGFkdmljZSBpbnN0ZWFkIG9mIHJlZmxlY3RpbmcuPC9wPlxuPC9zZWN0aW9uPlxuXG5TdHlsZWd1aWRlIDMuMjEuMlxuKi9cbi5za2lsbHMtcHJhY3RpY2UgdWwge1xuICBtYXJnaW46IDAgMThweDsgfVxuICAuc2tpbGxzLXByYWN0aWNlIHVsIGxpIHtcbiAgICBtYXJnaW46IDAgMCAxOHB4O1xuICAgIGJhY2tncm91bmQ6IHdoaXRlc21va2UgdXJsKFwiaW1hZ2VzL3NraWxsc3ByYWN0aWNlLWluY29tcGxldGUucG5nXCIpIDdweCA3cHggbm8tcmVwZWF0OyB9XG4gICAgLnNraWxscy1wcmFjdGljZSB1bCBsaTpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWRlZGVkOyB9XG4gICAgLnNraWxscy1wcmFjdGljZSB1bCBsaS5jb21wbGV0ZWQge1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgxNTQsIDE4NiwgNTYsIDAuMikgdXJsKFwiaW1hZ2VzL3NraWxsc3ByYWN0aWNlLWNvbXBsZXRlLnBuZ1wiKSA3cHggN3B4IG5vLXJlcGVhdDsgfVxuICAgIC5za2lsbHMtcHJhY3RpY2UgdWwgbGkgcCB7XG4gICAgICBwYWRkaW5nOiAwIDJlbSAuNWVtIDMuNWVtOyB9XG4gICAgICAuc2tpbGxzLXByYWN0aWNlIHVsIGxpIHAgYSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgY29sb3I6ICMwMDA7XG4gICAgICAgIHBhZGRpbmc6IDA7IH1cbiAgICAuc2tpbGxzLXByYWN0aWNlIHVsIGxpIGEge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgcGFkZGluZzogLjVlbSAxZW0gMGVtIDIuNWVtO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmb250LXNpemU6IDE4cHg7IH1cblxuLnF1aXpfcXVlc3Rpb24ge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNGMkYyRjI7XG4gIG1hcmdpbjogMThweDtcbiAgcGFkZGluZzogMThweDsgfVxuICAucXVpel9xdWVzdGlvbiAuZmVlZGJhY2sge1xuICAgIG1hcmdpbi10b3A6IDE4cHg7IH1cbiAgLnF1aXpfcXVlc3Rpb24gdWwucXVpeiBsaSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW4tYm90dG9tOiAxOHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDI1cHg7IH1cbiAgICAucXVpel9xdWVzdGlvbiB1bC5xdWl6IGxpOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICAucXVpel9xdWVzdGlvbiB1bC5xdWl6IGxpIGgzIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDI1cHg7IH1cbiAgLnF1aXpfcXVlc3Rpb24gdWwucXVpeiBbdHlwZT1yYWRpb10ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsZXg6IDAgMCAyNXB4O1xuICAgIG1hcmdpbjogOXB4IDlweCAwIDA7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5xdWl6X3F1ZXN0aW9uIHVsLnF1aXogbGFiZWwge1xuICAgIGZsZXg6IDE7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjJlbTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDE4cHg7IH1cbiAgLnF1aXpfcXVlc3Rpb24gdWwucXVpeiBzcGFuIHtcbiAgICBmbGV4OiAwIDAgMjVweDtcbiAgICBtYXJnaW46IDQuNXB4IDlweCAwIDA7IH1cbiAgICAucXVpel9xdWVzdGlvbiB1bC5xdWl6IHNwYW4uY29ycmVjdCB7XG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoXCJpbWFnZXMvc2tpbGxzcHJhY3RpY2UtY29ycmVjdC5wbmdcIikgbm8tcmVwZWF0O1xuICAgICAgd2lkdGg6IDI1cHg7XG4gICAgICBoZWlnaHQ6IDE4cHg7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB0ZXh0LWluZGVudDogLTk5OTlweDsgfVxuICAgIC5xdWl6X3F1ZXN0aW9uIHVsLnF1aXogc3Bhbi5pbmNvcnJlY3Qge1xuICAgICAgYmFja2dyb3VuZDogdXJsKFwiaW1hZ2VzL3NraWxsc3ByYWN0aWNlLWluY29ycmVjdC5wbmdcIikgbm8tcmVwZWF0O1xuICAgICAgd2lkdGg6IDE5cHg7XG4gICAgICBoZWlnaHQ6IDE5cHg7XG4gICAgICB0ZXh0LWluZGVudDogLTk5OTlweDsgfVxuICAucXVpel9xdWVzdGlvbiBzcGFuLmluY29ycmVjdCB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgY29sb3I6ICNiMjAwMDA7IH1cbiAgLnF1aXpfcXVlc3Rpb24gc3Bhbi5jb3JyZWN0IHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBjb2xvcjogIzJkNWYwMDsgfVxuICAucXVpel9xdWVzdGlvbiAucXVlc3Rpb24ge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIGNvbG9yOiAjMjYxMTFhO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHBhZGRpbmctYm90dG9tOiAyMHB4OyB9XG4gIC5xdWl6X3F1ZXN0aW9uICNjaGVja19hbnN3ZXIge1xuICAgIHBhZGRpbmctdG9wOiAxOHB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjRjJGMkYyOyB9XG4gICAgLnF1aXpfcXVlc3Rpb24gI2NoZWNrX2Fuc3dlciAuYnV0dG9uIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAgICAgLnF1aXpfcXVlc3Rpb24gI2NoZWNrX2Fuc3dlciAuYnV0dG9uIHtcbiAgICAgICAgICBwYWRkaW5nOiA5cHggMThweDtcbiAgICAgICAgICB3aWR0aDogYXV0bzsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0MDBweCkge1xuICAucXVpel9xdWVzdGlvbl9yZXNvdXJjZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9IH1cblxuLnF1aXpfcXVlc3Rpb25fcmVzb3VyY2UgLnRleHQge1xuICBkaXNwbGF5OiBmbGV4OyB9XG5cbi5xdWl6X3F1ZXN0aW9uX3Jlc291cmNlIC5pbWFnZSB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IDE4cHg7IH1cblxuLnF1aXpfcXVlc3Rpb25fcmVzb3VyY2UgLmRlc2NyaXB0aW9uIHtcbiAgZmxleDogMSAxIGF1dG87IH1cblxuLnF1aXpfcXVlc3Rpb25fcmVzb3VyY2UgLmZpbGVfbmFtZSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbi5xdWl6X3F1ZXN0aW9uX3Jlc291cmNlIC5hY3Rpb24ge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI0YyRjJGMjtcbiAgbWFyZ2luLXRvcDogOXB4O1xuICBwYWRkaW5nLXRvcDogMThweDtcbiAgcGFkZGluZy1sZWZ0OiAzNnB4O1xuICBwYWRkaW5nLXJpZ2h0OiAzNnB4OyB9XG5cbi5xdWl6X3F1ZXN0aW9uX3Jlc291cmNlIC5idXR0b24ge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy1ib3R0b206IDlweDtcbiAgcGFkZGluZy10b3A6IDlweDsgfVxuXG4ubmV4dF9za2lsbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDAgYXV0byAxOHB4OyB9XG5cbi8qXG5TdGF0ZSBSZXF1aXJlbWVudHNcblxuTWFya3VwOlxuPHNlY3Rpb24gY2xhc3M9XCJzdGF0ZS1yZXF1aXJlbWVudHMtbW9kdWxlXCI+XG4gIDx1bD5cbiAgICA8bGkgY2xhc3M9XCJjb21wbGV0ZVwiPlxuICAgICAgPGgzPk1OIENoaWxkIEN1c3RvZHkgJmFtcDsgUGFyZW50aW5nIFRpbWUgKFZpc2l0YXRpb24pPC9oMz5cbiAgICAgIDxwPjwvcD5cbiAgICAgIDx1bD5cbiAgICAgICAgPGxpIGNsYXNzPVwiY29tcGxldGVcIj5cbiAgICAgICAgICA8aDQ+UmVhZDogIEJhc2ljcyBvbiBDaGlsZCBDdXN0b2R5ICZhbXA7IFBhcmVudGluZyBUaW1lIChWaXNpdGF0aW9uKTwvaDQ+XG4gICAgICAgICAgPHA+SGVyZSB5b3Ugd2lsbCBsZWFybiBtb3JlIGFib3V0ICgxKSBUeXBlcyBvZiBDdXN0b2R5IGluIE1pbm5lc290YTsgKDIpIFdoYXQgaXMgXCJwYXJlbnRpbmcgdGltZT9cIjsgKDMpIEdvaW5nIHRvIENvdXJ0IHdpdGhvdXQgYSBsYXd5ZXI7ICg0KSBGZWVzIGFuZCBDb3N0czsgYW5kIG11Y2ggbW9yZSE8L3A+XG4gICAgICAgICAgPGEgaHJlZj1cImh0dHA6Ly93d3cubW5jb3VydHMuZ292L3NlbGZoZWxwLz9wYWdlPTE4MTBcIiBpZD1cIjE3XCIgdGFyZ2V0PVwiX2JsYW5rXCIgY2xhc3M9XCJidXR0b25cIj5WaWV3IFJlc291cmNlPC9hPlxuICAgICAgICA8L2xpPlxuICAgICAgICA8bGkgY2xhc3M9XCJjb21wbGV0ZVwiPlxuICAgICAgICAgIDxoND5SZWFkOiAgQSBQYXJlbnRhbCBHdWlkZSB0byBNYWtpbmcgQ2hpbGQtRm9jdXNlZCBQYXJlbnRpbmcgVGltZSBEZWNpc2lvbnM8L2g0PlxuICAgICAgICAgIDxwPlByZXBhcmVkIGJ5IHRoZSBNTiBTdXByZW1lIENvdXJ0IFRhc2sgRm9yY2UgLS0gcHJvdmlkZXMgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBvbiBhZ2UgYXBwcm9wcmlhdGUgY29uc2lkZXJhdGlvbnMgYmFzZWQgb24gdGhlIGRldmVsb3BtZW50YWwgc3RhZ2VzIG9mIHlvdXIgY2hpbGQuICA8L3A+XG4gICAgICAgICAgPGEgaHJlZj1cImh0dHA6Ly9vbmxpbmUuZGl2b3JjZS1lZHVjYXRpb24uY29tL21lZGlhL2Ntcy9wZGYvUGFyZW50aW5nJTIwJTIwVGltZSUyMFBhbXBobGV0JTIwKE1OJTIwQU9DKSUyMEVuZ2xpc2gucGRmXCIgaWQ9XCIxOVwiIHRhcmdldD1cIl9ibGFua1wiIGNsYXNzPVwiYnV0dG9uXCI+VmlldyBSZXNvdXJjZTwvYT5cbiAgICAgICAgPC9saT5cbiAgICAgIDwvdWw+XG4gICAgPC9saT5cbiAgICA8bGkgY2xhc3M9XCJpbmNvbXBsZXRlXCI+XG4gICAgICA8aDM+Q2hpbGQgU3VwcG9ydCBJbiBNaW5uZXNvdGE8L2gzPlxuICAgICAgPHA+PC9wPlxuICAgICAgPHVsPlxuICAgICAgICA8bGkgY2xhc3M9XCJpbmNvbXBsZXRlXCI+XG4gICAgICAgICAgPGg0PlJlYWQ6ICBDaGlsZCBTdXBwb3J0IEJhc2ljcyBpbiBNaW5uZXNvdGE8L2g0PlxuICAgICAgICAgIDxwPlRoaXMgYm9va2xldCBwcm92aWRlcyBiYXNpYyBpbmZvcm1hdGlvbiBhYm91dCBob3cgY2hpbGQgc3VwcG9ydCBpcyBzZXQsIGNvbGxlY3RlZCBhbmQgY2hhbmdlZC4gSXQgaGFzIGluZm9ybWF0aW9uIG9uIE1pbm5lc290YeKAmXMgY2hpbGQgc3VwcG9ydCBndWlkZWxpbmVzIGNhbGxlZCDigJxJbmNvbWUgU2hhcmVzLuKAnSA8L3A+XG4gICAgICAgICAgPGEgaHJlZj1cImh0dHA6Ly9vbmxpbmUuZGl2b3JjZS1lZHVjYXRpb24uY29tL21lZGlhL2Ntcy9wZGYvTU4lMjBMZWdhbCUyMEFpZCUyMEJvb2tsZXQlMjAtJTIwQ2hpbGQlMjBTdXBwb3J0JTIwQmFzaWNzJTIwKHJpdnNlZCUyMDd0aCUyMGVkaXRpb24lMkMlMjAyMDEyKSUyMEVOR0xJU0gucGRmXCIgaWQ9XCIyNlwiIHRhcmdldD1cIl9ibGFua1wiIGNsYXNzPVwiYnV0dG9uXCI+VmlldyBMaW5rIGFuZCBDb21wbGV0ZSBSZXF1aXJlbWVudDwvYT5cbiAgICAgICAgPC9saT5cbiAgICAgICAgPGxpIGNsYXNzPVwiaW5jb21wbGV0ZVwiPlxuICAgICAgICAgIDxoND5SZWFkOiBVbmRlcnN0YW5kaW5nIENoaWxkIFN1cHBvcnQgaW4gTWlubmVzb3RhPC9oND5cbiAgICAgICAgICA8cD5UaGlzIGhhbmRib29rIGdpdmVzIGdlbmVyYWwgaW5mb3JtYXRpb24gYWJvdXQgTWlubmVzb3Rh4oCZcyBjaGlsZCBzdXBwb3J0IHByb2dyYW0uIEJlY2F1c2UgcGFyZW50YWdlIGFuZCBjaGlsZCBzdXBwb3J0IGFyZSBpbXBvcnRhbnQgaXNzdWVzLCB5b3UgbWF5IHdpc2ggdG8gY29udGFjdCBhbiBhdHRvcm5leS4gVGhlIE1pbm5lc290YSBEZXBhcnRtZW50IG9mIEh1bWFuIFNlcnZpY2VzIChESFMpIENoaWxkIFN1cHBvcnQgRW5mb3JjZW1lbnQgRGl2aXNpb24gYW5kIGNvdW50eSBjaGlsZCBzdXBwb3J0IGFnZW5jaWVzIGNhbiBoZWxwIHlvdSBpZiB5b3UgYXBwbHkgZm9yIG9yIGFyZSByZWZlcnJlZCBmb3IgY2hpbGQgc3VwcG9ydCBzZXJ2aWNlcywgYnV0IHRoZXkgY2Fubm90IGdpdmUgeW91IGxlZ2FsIGFkdmljZSBhYm91dCB5b3VyIGNhc2UuPC9wPlxuICAgICAgICAgIDxhIGhyZWY9XCJodHRwOi8vb25saW5lLmRpdm9yY2UtZWR1Y2F0aW9uLmNvbS9tZWRpYS9jbXMvcGRmL01OJTIwREhTJTIwLSUyMFVuZGVyc3RhbmRpbmclMjBDaGlsZCUyMFN1cHBvcnQlMjAoRU5HTElTSCklMjAyMDExLnBkZlwiIGlkPVwiMjhcIiB0YXJnZXQ9XCJfYmxhbmtcIiBjbGFzcz1cImJ1dHRvblwiPlZpZXcgTGluayBhbmQgQ29tcGxldGUgUmVxdWlyZW1lbnQ8L2E+XG4gICAgICAgIDwvbGk+XG4gICAgICA8L3VsPlxuICAgIDwvbGk+XG4gIDwvdWw+XG48L3NlY3Rpb24+XG5cblN0eWxlZ3VpZGUgMy4yMlxuKi9cbi5zdGF0ZS1yZXF1aXJlbWVudHMtbW9kdWxlIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICAuc3RhdGUtcmVxdWlyZW1lbnRzLW1vZHVsZSAuYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZzogOXB4IDE4cHg7IH1cbiAgLnN0YXRlLXJlcXVpcmVtZW50cy1tb2R1bGUgaDMsXG4gIC5zdGF0ZS1yZXF1aXJlbWVudHMtbW9kdWxlIGg0IHtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjJlbTtcbiAgICBtaW4taGVpZ2h0OiAyNXB4O1xuICAgIHBhZGRpbmctbGVmdDogMzZweDsgfVxuICAuc3RhdGUtcmVxdWlyZW1lbnRzLW1vZHVsZSBoMyB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMThweCAwO1xuICAgIG1hcmdpbi1ib3R0b206IDlweDtcbiAgICBwYWRkaW5nOiAwIDE4cHggMCA1NHB4OyB9XG4gIC5zdGF0ZS1yZXF1aXJlbWVudHMtbW9kdWxlIGg0IHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBtYXJnaW4tYm90dG9tOiA5cHg7XG4gICAgcGFkZGluZy1sZWZ0OiAzNnB4O1xuICAgIHBhZGRpbmctdG9wOiAzcHg7IH1cbiAgLnN0YXRlLXJlcXVpcmVtZW50cy1tb2R1bGUgcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogOXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLnN0YXRlLXJlcXVpcmVtZW50cy1tb2R1bGUgdWwgPiBsaSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMThweDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgICAgLnN0YXRlLXJlcXVpcmVtZW50cy1tb2R1bGUgdWwgPiBsaSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjO1xuICAgICAgICBwYWRkaW5nLXRvcDogMThweDsgfVxuICAgICAgICAuc3RhdGUtcmVxdWlyZW1lbnRzLW1vZHVsZSB1bCA+IGxpOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDA7IH0gfVxuICAgIC5zdGF0ZS1yZXF1aXJlbWVudHMtbW9kdWxlIHVsID4gbGkgcCB7XG4gICAgICBtYXJnaW4tbGVmdDogMThweDsgfVxuICAuc3RhdGUtcmVxdWlyZW1lbnRzLW1vZHVsZSB1bCB1bCB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG4gICAgbWFyZ2luLXRvcDogMThweDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgICAgLnN0YXRlLXJlcXVpcmVtZW50cy1tb2R1bGUgdWwgdWwge1xuICAgICAgICBib3JkZXItdG9wOiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogMzZweDsgfSB9XG4gIC5zdGF0ZS1yZXF1aXJlbWVudHMtbW9kdWxlIGxpIGxpIHtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbWFyZ2luLWJvdHRvbTogMzZweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDE4cHg7XG4gICAgcGFkZGluZy1yaWdodDogMThweDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5NjBweCkge1xuICAgICAgLnN0YXRlLXJlcXVpcmVtZW50cy1tb2R1bGUgbGkgbGkge1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4gICAgLnN0YXRlLXJlcXVpcmVtZW50cy1tb2R1bGUgbGkgbGkgcCxcbiAgICAuc3RhdGUtcmVxdWlyZW1lbnRzLW1vZHVsZSBsaSBsaSAuYnV0dG9uIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAzNnB4OyB9XG4gICAgLnN0YXRlLXJlcXVpcmVtZW50cy1tb2R1bGUgbGkgbGk6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXRvcDogMzZweDsgfVxuICAuc3RhdGUtcmVxdWlyZW1lbnRzLW1vZHVsZSAucmVxdWlyZW1lbnRzLWxpc3Qge1xuICAgIHBhZGRpbmctbGVmdDogMThweDsgfVxuICAuc3RhdGUtcmVxdWlyZW1lbnRzLW1vZHVsZSAuaW5jb21wbGV0ZSA+IGgzLFxuICAuc3RhdGUtcmVxdWlyZW1lbnRzLW1vZHVsZSAuaW5jb21wbGV0ZSA+IGg0IHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJpbWFnZXMvY2hlY2staW5jb21wbGV0ZS5wbmdcIik7IH1cbiAgLnN0YXRlLXJlcXVpcmVtZW50cy1tb2R1bGUgLmNvbXBsZXRlID4gaDMsXG4gIC5zdGF0ZS1yZXF1aXJlbWVudHMtbW9kdWxlIC5jb21wbGV0ZSA+IGg0IHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJpbWFnZXMvY2hlY2stY29tcGxldGUucG5nXCIpOyB9XG5cbi8qXG5UZXh0IENvbnRhaW5lclxuXG5NYXJrdXA6XG48YXJ0aWNsZSBjbGFzcz1cInRleHQtY29udGFpbmVyIGwtY29udGFpbmVyaG9yaXpvbnRhbCBsLWNvbnRhaW5lcmhvcml6b250YWwtc21hbGxcIj5cbiAgPGgxPkhUTUwgSXBzdW0gUHJlc2VudHM8L2gxPlxuICA8cD48c3Ryb25nPlBlbGxlbnRlc3F1ZSBoYWJpdGFudCBtb3JiaSB0cmlzdGlxdWU8L3N0cm9uZz4gc2VuZWN0dXMgZXQgbmV0dXMgZXQgbWFsZXN1YWRhIGZhbWVzIGFjIHR1cnBpcyBlZ2VzdGFzLiBWZXN0aWJ1bHVtIHRvcnRvciBxdWFtLCBmZXVnaWF0IHZpdGFlLCB1bHRyaWNpZXMgZWdldCwgdGVtcG9yIHNpdCBhbWV0LCBhbnRlLiBEb25lYyBldSBsaWJlcm8gc2l0IGFtZXQgcXVhbSBlZ2VzdGFzIHNlbXBlci4gPGVtPkFlbmVhbiB1bHRyaWNpZXMgbWkgdml0YWUgZXN0LjwvZW0+IE1hdXJpcyBwbGFjZXJhdCBlbGVpZmVuZCBsZW8uIFF1aXNxdWUgc2l0IGFtZXQgZXN0IGV0IHNhcGllbiB1bGxhbWNvcnBlciBwaGFyZXRyYS4gVmVzdGlidWx1bSBlcmF0IHdpc2ksIGNvbmRpbWVudHVtIHNlZCwgPGNvZGU+Y29tbW9kbyB2aXRhZTwvY29kZT4sIG9ybmFyZSBzaXQgYW1ldCwgd2lzaS4gQWVuZWFuIGZlcm1lbnR1bSwgZWxpdCBlZ2V0IHRpbmNpZHVudCBjb25kaW1lbnR1bSwgZXJvcyBpcHN1bSBydXRydW0gb3JjaSwgc2FnaXR0aXMgdGVtcHVzIGxhY3VzIGVuaW0gYWMgZHVpLiA8YSBocmVmPVwiI1wiPkRvbmVjIG5vbiBlbmltPC9hPiBpbiB0dXJwaXMgcHVsdmluYXIgZmFjaWxpc2lzLiBVdCBmZWxpcy48L3A+XG4gIDxoMj5IZWFkZXIgTGV2ZWwgMjwvaDI+XG4gIDxvbD5cbiAgICA8bGk+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVlciBhZGlwaXNjaW5nIGVsaXQuPC9saT5cbiAgICA8bGk+QWxpcXVhbSB0aW5jaWR1bnQgbWF1cmlzIGV1IHJpc3VzLjwvbGk+XG4gIDwvb2w+XG4gIDxibG9ja3F1b3RlPjxwPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNjaW5nIGVsaXQuIFZpdmFtdXMgbWFnbmEuIENyYXMgaW4gbWkgYXQgZmVsaXMgYWxpcXVldCBjb25ndWUuIFV0IGEgZXN0IGVnZXQgbGlndWxhIG1vbGVzdGllIGdyYXZpZGEuIEN1cmFiaXR1ciBtYXNzYS4gRG9uZWMgZWxlaWZlbmQsIGxpYmVybyBhdCBzYWdpdHRpcyBtb2xsaXMsIHRlbGx1cyBlc3QgbWFsZXN1YWRhIHRlbGx1cywgYXQgbHVjdHVzIHR1cnBpcyBlbGl0IHNpdCBhbWV0IHF1YW0uIFZpdmFtdXMgcHJldGl1bSBvcm5hcmUgZXN0LjwvcD48L2Jsb2NrcXVvdGU+XG4gIDxoMz5IZWFkZXIgTGV2ZWwgMzwvaDM+XG4gIDx1bD5cbiAgICA8bGk+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVlciBhZGlwaXNjaW5nIGVsaXQuPC9saT5cbiAgICA8bGk+QWxpcXVhbSB0aW5jaWR1bnQgbWF1cmlzIGV1IHJpc3VzLjwvbGk+XG4gIDwvdWw+XG4gIDxwcmU+PGNvZGU+XG4gICAgI2hlYWRlciBoMSBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMzAwcHg7XG4gICAgaGVpZ2h0OiA4MHB4O1xuICAgIH1cbiAgPC9jb2RlPjwvcHJlPlxuPC9hcnRpY2xlPlxuXG5TdHlsZWd1aWRlIDMuMjNcbiovXG4udGV4dC1jb250YWluZXIge1xuICBwYWRkaW5nLWxlZnQ6IDE4cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDE4cHg7IH1cbiAgLnRleHQtY29udGFpbmVyIGgxLFxuICAudGV4dC1jb250YWluZXIgaDIsXG4gIC50ZXh0LWNvbnRhaW5lciBoMyxcbiAgLnRleHQtY29udGFpbmVyIGg0LFxuICAudGV4dC1jb250YWluZXIgaDUsXG4gIC50ZXh0LWNvbnRhaW5lciBoNiB7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjsgfVxuICAudGV4dC1jb250YWluZXIgaDEsXG4gIC50ZXh0LWNvbnRhaW5lciBoMixcbiAgLnRleHQtY29udGFpbmVyIGgzLFxuICAudGV4dC1jb250YWluZXIgaDQsXG4gIC50ZXh0LWNvbnRhaW5lciBoNSxcbiAgLnRleHQtY29udGFpbmVyIGg2LFxuICAudGV4dC1jb250YWluZXIgcCxcbiAgLnRleHQtY29udGFpbmVyIG9sLFxuICAudGV4dC1jb250YWluZXIgdWwsXG4gIC50ZXh0LWNvbnRhaW5lciBibG9ja3F1b3RlLFxuICAudGV4dC1jb250YWluZXIgZmlndXJlLFxuICAudGV4dC1jb250YWluZXIgYWRkcmVzcyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMThweDsgfVxuICAudGV4dC1jb250YWluZXIgbGkge1xuICAgIG1hcmdpbi1ib3R0b206IDlweDsgfVxuICAudGV4dC1jb250YWluZXIgdWwgbGkge1xuICAgIGxpc3Qtc3R5bGU6IGRpc2MgaW5zaWRlOyB9XG4gIC50ZXh0LWNvbnRhaW5lciBvbCBsaSB7XG4gICAgbGlzdC1zdHlsZTogZGVjaW1hbCBpbnNpZGU7IH1cbiAgLnRleHQtY29udGFpbmVyIHN0cm9uZyB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgLnRleHQtY29udGFpbmVyIGVtIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7IH1cblxuLnRleHQtY29udGFpbmVyLXBhZGRpbmctbm9uZSB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgcGFkZGluZy1yaWdodDogMDsgfVxuXG4vKlxudGV4dC1ib2R5LWNvbG9yXG5cbk1hcmt1cDpcbjxkaXYgY2xhc3M9XCJ0ZXgtYm9keS1jb2xvclwiPlxuQm9keSB0ZXh0LlxuPC9kaXY+XG5cblN0eWxlZ3VpZGUgMy41MFxuKi9cbi50ZXh0LWJvZHktY29sb3Ige1xuICBjb2xvcjogIzY5Njk2OTsgfVxuXG4udmlkZW8ge1xuICBwYWRkaW5nOiAwIDE4cHg7XG4gIG1hcmdpbjogMCAwIDE4cHg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gICAgLnZpZGVvIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDM2cHg7IH0gfVxuXG4vKlxudmlzdWFsbHloaWRkZW5cblxuVmlzdWFseSBoaWRlcyBhbiBvYmplY3RcblxuTWFya3VwOlxuICA8ZGl2PlRoZSBkaXYgYmVsbG93IG1lIGlzIGludmlzaWJsZTwvZGl2PlxuICA8ZGl2IGNsYXNzPVwidmlzdWFsbHloaWRkZW5cIj5JJ20gaW52aXNpYmxlPC9kaXY+XG5cblxuU3R5bGVndWlkZSAzLjU0XG4qL1xuLnZpc3VhbGx5aGlkZGVuIHtcbiAgYm9yZGVyOiAwO1xuICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAtMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7IH1cblxuLypcblV0aWxpdHk6IFRleHRcblxuTWFya3VwOlxuPHAgY2xhc3M9XCJ1LXRleHQtc21hbGxcIj5TbWFsbDwvc21hbGw+XG5cblN0eWxlZ3VpZGUgMy41OFxuKi9cbi51LXRleHQtc21hbGwge1xuICBmb250LXNpemU6IDEycHg7IH1cblxuLypcblVucmVnaXN0ZXJlZCBHaWZ0XG5cbk1hcmt1cDpcbiAgPGRpdiBjbGFzcz1cInBhZ2UtdGl0bGUgdW5yZWdpc3RlcmVkR2lmdFwiPlxuICAgICAgPGRpdj5cbiAgICAgICAgICA8aDE+dGlmYS50aWZhQGdtYWlsLmNvbTwvaDE+XG4gICAgICAgICAgPGE+Q2hhbmdlIEVtYWlsPC9hPlxuICAgICAgICAgIDxwIGNsYXNzPVwidW5yZWdpc3RlcmVkR2lmdC14LWdpZnRBY2NvdW50XCI+R2lmdCBBY2NvdW50PC9wPlxuICAgICAgICAgIDxwIGNsYXNzPVwidW5yZWdpc3RlcmVkR2lmdC14LXB1cmNoYXNlXCI+UHVyY2hhc2VkIDA2LzEyLzIwMTYgYnkgcGFyZW50QGV4YW1wbGUuY29tPC9wPlxuICAgICAgICAgIDxwIGNsYXNzPVwidW5yZWdpc3RlcmVkR2lmdC14LW5vdEFjdGl2YXRlZFwiPk5vdCBBY3RpdmF0ZWQ8L3A+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ1bnJlZ2lzdGVyZWRHaWZ0LXgtc3RhY2tlZEJ1dHRvblwiPlxuICAgICAgICAgIDxhIGNsYXNzPVwiYnV0dG9uXCIgaHJlZj1cIiNcIj5SZXNlbmQgSW52aXRlPC9hPlxuICAgICAgICAgIDxhIGNsYXNzPVwiYnV0dG9uXCIgaHJlZj1cIiNcIj5DYW5jZWwgR2lmdCBJbnZpdGU8L2E+XG4gICAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cblN0eWxlZ3VpZGUgMy40N1xuKi9cbi51bnJlZ2lzdGVyZWRHaWZ0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4gIC51bnJlZ2lzdGVyZWRHaWZ0IGgxIHtcbiAgICBmb250LXNpemU6IDM2cHg7XG4gICAgbGluZS1oZWlnaHQ6IDM4cHg7IH1cbiAgLnVucmVnaXN0ZXJlZEdpZnQgYSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMThweDtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICAudW5yZWdpc3RlcmVkR2lmdCB7XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7IH0gfVxuICAudW5yZWdpc3RlcmVkR2lmdCBzZWN0aW9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxOHB4OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gICAgICAudW5yZWdpc3RlcmVkR2lmdCBzZWN0aW9uIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG4gIC51bnJlZ2lzdGVyZWRHaWZ0IHAudW5yZWdpc3RlcmVkR2lmdC14LXB1cmNoYXNlLFxuICAudW5yZWdpc3RlcmVkR2lmdCBwLnVucmVnaXN0ZXJlZEdpZnQteC1naWZ0QWNjb3VudCB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAudW5yZWdpc3RlcmVkR2lmdCBwLnVucmVnaXN0ZXJlZEdpZnQteC1ub3RBY3RpdmF0ZWQge1xuICAgIG1hcmdpbi10b3A6IDE4cHg7IH1cbiAgLnVucmVnaXN0ZXJlZEdpZnQgLnVucmVnaXN0ZXJlZEdpZnQteC1zdGFja2VkQnV0dG9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgICAudW5yZWdpc3RlcmVkR2lmdCAudW5yZWdpc3RlcmVkR2lmdC14LXN0YWNrZWRCdXR0b24gYTpmaXJzdC1vZi10eXBlIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDE4cHg7IH1cblxuLypcblVwc2VsbFxuXG5NYXJrdXA6XG48YXJ0aWNsZSBjbGFzcz1cInVwc2VsbFwiPlxuICA8ZGl2IGNsYXNzPVwidXBzZWxsLXgtaW1hZ2VcIj5cbiAgICA8aW1nIHNyYz1cImh0dHA6Ly9wbGFjZWhvbGQuaXQvMTI4eDk2XCI+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwidXBzZWxsLXgtdGV4dFwiPlxuICAgIDxoMz48YSBocmVmPVwiI1wiPlVwc2VsbCBUaXRsZTwvYT48L2gzPlxuICAgIDxwPkxvcmVtIElwc3VtIGlzIHNpbXBseSBkdW1teSB0ZXh0IG9mIHRoZSBwcmludGluZyBhbmQgdHlwZXNldHRpbmcgaW5kdXN0cnkuIExvcmVtIElwc3VtIGhhcyBiZWVuIHRoZSBpbmR1c3RyeSdzIHN0YW5kYXJkIGR1bW15IHRleHQgZXZlciBzaW5jZSB0aGUgMTUwMHMuPC9wPlxuICA8L2Rpdj5cbjwvYXJ0aWNsZT5cblxuU3R5bGVndWlkZSAzLjU5XG4qL1xuLnVwc2VsbCBoMyB7XG4gIGZvbnQtc2l6ZTogMThweDsgfVxuXG4udXBzZWxsIHAge1xuICBmb250LXNpemU6IDEycHg7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQwMHB4KSB7XG4gIC51cHNlbGwge1xuICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgICAudXBzZWxsIC51cHNlbGwteC1pbWFnZSB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIG1hcmdpbi1yaWdodDogMThweDsgfVxuICAgIC51cHNlbGwgLnVwc2VsbC14LXRleHQge1xuICAgICAgZmxleDogMSAxIDEwMCU7IH0gfVxuXG4vKlxuV3JhcFxuXG5XcmFwIGlzIHVzZWQgdG8gc2V0IHRoZSBiYWNrZ3JvdW5kIC8gdGV4dCBjb2xvciBvZiBhbiBpdGVtLlxuXG5EZWZhdWx0IC0gV2hpdGUgYmFja2dyb3VuZFxuLndyYXAtYnJhbmRkYXJrIC0gRGFyayBicmFuZCBjb2xvclxuLndyYXAtbGlnaHRncmV5IC0gQSBsaWdodCBncmV5IGJhY2tncm91bmRcbi53cmFwLWNvdXJzZSAtIFdyYXBzIHRoZSBjb3Vyc2UgY29udGVudCAodmlkZW9zLCBxdWl6ZXMsIGV0YylcblxuTWFya3VwOlxuPGRpdiBjbGFzcz1cIndyYXAgeyRtb2RpZmllcnN9XCI+SSBhbSB3cmFwcGVkPC9kaXY+XG5cblN0eWxlZ3VpZGUgMy4zM1xuKi9cbi53cmFwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuXG4ud3JhcC1icmFuZGRhcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTU1YTc2O1xuICBjb2xvcjogI2ZmZjsgfVxuXG4ud3JhcC1saWdodGdyZXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjJGMkYyOyB9XG5cbi53cmFwLWNvdXJzZSB7XG4gIGJhY2tncm91bmQ6ICNmNGY0ZjQ7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDk1MHB4KSB7XG4gICAgLndyYXAtY291cnNlIHtcbiAgICAgIGJveC1zaGFkb3c6IGluc2V0IDBweCAwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC41KTsgfSB9XG5cbi8qXG5Nb2R1bGUgUnVsZXMgKE1hcmtldGluZylcblxuU3R5bGVndWlkZSA0LjBcbiovXG4vKlxuQnV0dG9uIENhbGxvdXRcblxuTWFya3VwOlxuPHNlY3Rpb24gY2xhc3M9XCJsLXdyYXAgd3JhcCBidXR0b25jYWxsb3V0XCI+XG4gIDxhIGhyZWY9XCJcIiBjbGFzcz1cImJ1dHRvbiBidXR0b24tcHBjXCI+U2lnbiBVcCBOb3c8L2E+XG4gIDxwPkd1YXJhbnRlZWQgYWNjZXB0YW5jZeKAqGluIE1hcmljb3BhIENvdW50eSwgQXJpem9uYSE8L3A+XG48L3NlY3Rpb24+XG5cblN0eWxlZ3VpZGUgNC4yXG4qL1xuLmJ1dHRvbmNhbGxvdXQge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmJ1dHRvbmNhbGxvdXQgcCB7XG4gICAgY29sb3I6ICMxNTVhNzY7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBtYXJnaW4tdG9wOiAxOHB4OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY1MHB4KSB7XG4gICAgICAuYnV0dG9uY2FsbG91dCBwIHtcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICB3aWR0aDogMzM3cHg7IH0gfVxuXG4vKlxuQ291cnNlIE92ZXJ2aWV3XG5cbk1hcmt1cDpcbjxkaXYgY2xhc3M9XCJsLXdyYXAgd3JhcCBjb3Vyc2VvdmVydmlld1wiPlxuICA8c2VjdGlvbiBjbGFzcz1cImNoYXB0ZXJzXCI+XG4gICAgPGgyPkNvdmVyZWQgaW4gdGhlIGNvdXJzZTwvaDI+XG4gICAgPHVsPlxuICAgICAgPGxpPk1vbmV5IFByb2JsZW1zPC9saT5cbiAgICAgIDxsaT5DaGlsZHJlbiBDYXJyeWluZyBNZXNzYWdlczwvbGk+XG4gICAgICA8bGk+UHV0dGluZyBEb3duIHRoZSBPdGhlciBQYXJlbnQ8L2xpPlxuICAgICAgPGxpPkxvbmcgRGlzdGFuY2UgUGFyZW50aW5nPC9saT5cbiAgICAgIDxsaT5RdWl6emluZyBDaGlsZHJlbiBBYm91dCB0aGUgT3RoZXIgUGFyZW50PC9saT5cbiAgICA8L3VsPlxuICA8L3NlY3Rpb24+XG4gIDxzZWN0aW9uIGNsYXNzPVwicHJhaXNlXCIgaWQ9XCJwcmFpc2VcIj5cbiAgICA8aDI+UHJhaXNlIGZvciBDaGlsZHJlbiBJbiBCZXR3ZWVuPC9oMj5cbiAgICA8ZGl2IGNsYXNzPVwic2xpZGVyXCI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8YmxvY2txdW90ZT5cbiAgICAgICAgICA8aDQ+XCJDaGlsZHJlbiBpbiBCZXR3ZWVuIE9ubGluZSBtYWRlIG1lIHRoaW5rIHZlcnkgaGFyZCBhYm91dCBteSBhY3Rpb25zIHdpdGggbXkgc29vbiB0byBiZSBleC1zcG91c2UgYW5kIHdoYXQgaXMgYmVzdCBmb3Igb3VyIHNvbi5cIjwvaDQ+XG4gICAgICAgICAgPGNpdGU+TW9sbHkgRGV2ZXIsIFNoZXBoZXJkc3ZpbGxlLCBLWTwvY2l0ZT5cbiAgICAgICAgPC9ibG9ja3F1b3RlPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2PlxuICAgICAgICA8YmxvY2txdW90ZT5cbiAgICAgICAgICA8aDQ+XCJUaGlzIHByb2dyYW0gd2FzIHJlY29tbWVuZGVkIGJ5IG91ciBjby1wYXJlbnRpbmcgY291bnNlbG9yIGFuZCBJIHdvdWxkIHJlY29tbWVuZCBpdCB0byBvdGhlciBjb3VwbGVzIHdobyBhcmUgdGhpbmtpbmcgYWJvdXQgb3IgZ2V0dGluZyBhIGRpdm9yY2UgaW52b2x2aW5nIGNoaWxkcmVuLiAgSW4gZmFjdCwgSSBoYXZlIHJlY29tbWVuZGVkIGl0IHRvIG9uZSBvZiBteSBjby13b3JrZXJzIGFscmVhZHkuIFdoYXQgd2FzIG1vc3QgdXNlZnVsIGZvciBtZSB3YXMgdGhlIGRpZmZlcmVudCB0ZWNobmlxdWVzIG9mIGNvbW11bmljYXRpb24gLSBzZWxmIHRhbGssIFwiSVwiIHN0YXRlbWVudHMsIGV0Yy5cIjwvaDQ+XG4gICAgICAgICAgPGNpdGU+RGlhbmUgSG9kZ2VzLCBGYWlyYmFua3MsIEFLPC9jaXRlPlxuICAgICAgICA8L2Jsb2NrcXVvdGU+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxibG9ja3F1b3RlPlxuICAgICAgICAgIDxoND5cIkFmdGVyIHRha2luZyBDSUJPIGFuZCBwdXR0aW5nIHRoZSBza2lsbHMgSSBsZWFybmVkIGludG8gcHJhY3RpY2UsIG15IGtpZHMgYXJlIG11Y2ggbW9yZSBhdCBlYXNlIGFuZCBrbm93IHRoYXQgdGhleSBjYW4gdGFsayB0byBkYWRkeSBhYm91dCBhbnl0aGluZywgYW5kIGl0J3MgT0suIEkgcmVjb21tZW5kIHRoaXMgY2xhc3MgdG8gZXZlcnlvbmUhXCI8L2g0PlxuICAgICAgICAgIDxjaXRlPlJpY2hhcmQgRGVtYXJjbywgR3JhbnRzIFBhc3MsIE9yZWdvbjwvY2l0ZT5cbiAgICAgICAgPC9ibG9ja3F1b3RlPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2PlxuICAgICAgICA8YmxvY2txdW90ZT5cbiAgICAgICAgICA8aDQ+XCJXZSd2ZSBiZWVuIHVzaW5nIENoaWxkcmVuIEluIEJldHdlZW4gcHJvZ3JhbSBkaXN0cmlidXRlZCBieSB0aGUgQ2VudGVyIGZvciBEaXZvcmNlIEVkdWNhdGlvbiBmb3IgMTAgeWVhcnMuIEl0J3MgYmVlbiBsaWZlIGNoYW5naW5nIGZvciBzbyBtYW55IGZhbWlsaWVzIVwiPC9oND5cbiAgICAgICAgICA8Y2l0ZT5Eb2FrIEdpdmFuLCBFeGVjdXRpdmUgRGlyZWN0b3Igb2YgRmFtaWx5IFNlcnZpY2VzIENlbnRlciwgSW5jLjwvY2l0ZT5cbiAgICAgICAgPC9ibG9ja3F1b3RlPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2PlxuICAgICAgICA8YmxvY2txdW90ZT5cbiAgICAgICAgICA8aDQ+XCJJIGhpZ2hseSByZWNvbW1lbmQgQ0lCTyB0byBhbnlvbmUgd2hvIHdhbnRzIHRvIGhhdmUgYSBjbG9zZXIsIG1vcmUgcmVzcGVjdGZ1bCByZWxhdGlvbnNoaXAgd2l0aCB0aGUgb3RoZXIgcGFyZW50IGFuZCBjaGlsZHJlbi5cIjwvaDQ+XG4gICAgICAgICAgPGNpdGU+Sm9obiBQYXJrZXIsIFJvc2VidXJnLCBPcmVnb248L2NpdGU+XG4gICAgICAgIDwvYmxvY2txdW90ZT5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdj5cbiAgICAgICAgPGJsb2NrcXVvdGU+XG4gICAgICAgICAgPGg0PlwiRXhjZWxsZW50Li4uU3VwZXJiLi4uSSB3YXMgaW1wcmVzc2VkIHdpdGggdGhlIHF1YWxpdHkuXCI8L2g0PlxuICAgICAgICAgIDxjaXRlPkhvbi4gQ2hlcnlsIEthcm5lciwgRG9tZXN0aWMgUmVsYXRpb25zIEp1ZGdlPC9jaXRlPlxuICAgICAgICA8L2Jsb2NrcXVvdGU+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9zZWN0aW9uPlxuPC9kaXY+XG5cblN0eWxlZ3VpZGUgNC4zXG4qL1xuLmNvdXJzZW92ZXJ2aWV3IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAuY291cnNlb3ZlcnZpZXcgPiAqIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDQwLCAxNzMsIDIyNywgMC41KTtcbiAgICBwYWRkaW5nOiAzNnB4IDU0cHg7IH1cbiAgICAuY291cnNlb3ZlcnZpZXcgPiAqOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDE4cHg7IH1cbiAgICAuY291cnNlb3ZlcnZpZXcgPiAqLmNoYXB0ZXJzIHVsIHtcbiAgICAgIG1hcmdpbi10b3A6IDJlbTsgfVxuICAgICAgLmNvdXJzZW92ZXJ2aWV3ID4gKi5jaGFwdGVycyB1bCBsaSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgcGFkZGluZzogLjc1ZW0gMDtcbiAgICAgICAgY29sb3I6ICMyOGFkZTM7IH1cbiAgICAuY291cnNlb3ZlcnZpZXcgPiAqLnByYWlzZSBoMiB7XG4gICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICBwYWRkaW5nOiAuNWVtOyB9XG4gICAgLmNvdXJzZW92ZXJ2aWV3ID4gKi5wcmFpc2UgZGl2LnNsaWRlciB7XG4gICAgICBtYXJnaW4tdG9wOiAyZW07IH1cbiAgICAgIC5jb3Vyc2VvdmVydmlldyA+ICoucHJhaXNlIGRpdi5zbGlkZXIgaDQge1xuICAgICAgICBmb250LXNpemU6IDE4cHg7IH1cbiAgICAuY291cnNlb3ZlcnZpZXcgPiAqIGgyIHtcbiAgICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICAgIGNvbG9yOiAjMTU1YTc2O1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjEsIDkwLCAxMTgsIDAuMjUpO1xuICAgICAgcGFkZGluZzogLjVlbSAwOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NTBweCkge1xuICAgIC5jb3Vyc2VvdmVydmlldyB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XG4gICAgICAuY291cnNlb3ZlcnZpZXcgPiAqIHtcbiAgICAgICAgZmxleDogMCAwIDUwJTsgfVxuICAgICAgICAuY291cnNlb3ZlcnZpZXcgPiAqOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogMThweDsgfVxuICAgICAgICAuY291cnNlb3ZlcnZpZXcgPiAqLnByYWlzZSB7XG4gICAgICAgICAgbWF4LXdpZHRoOiA1MCU7IH0gfVxuXG4vKlxuQ1RBXG5cbk1hcmt1cDpcbjxkaXYgY2xhc3M9XCJjdGEgbC13cmFwXCI+XG4gIDxhIGNsYXNzPVwiYnV0dG9uXCIgaHJlZj1cIiNcIj5TaWduLVVwPC9hPlxuPC9kaXY+XG5cblN0eWxlZ3VpZGUgNC40XG4qL1xuLmN0YSBhIHtcbiAgZm9udC1zaXplOiAxOHB4O1xuICB3aWR0aDogMTAwJTsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNjUwcHgpIHtcbiAgLmN0YSBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBtYXgtd2lkdGg6IDI5MHB4OyB9IH1cblxuLypcbkNUQSBBdWRpZW5jZVxuXG5NYXJrdXA6XG48ZGl2IGNsYXNzPVwiY3RhYXVkaWVuY2UgbC13cmFwIGwtd3JhcC1zcGFubW9iaWxlXCI+XG4gIDxhIGhyZWY9XCIjXCI+XG4gICAgPGltZyBzcmM9XCIvaW1hZ2VzL2hvbWVwYWdlLWF1ZGllbmNlLWF0dG9ybmV5cy5zdmdcIiBhbHQ9XCJTY2FsZXMgb2YganVzdGljZVwiIHdpZHRoPVwiNjZcIiBoZWlnaHQ9XCI1MlwiPlxuICAgIDxoMT5Gb3IgQXR0b3JuZXlzPC9oMT5cbiAgICA8cD5DaGlsZHJlbiBpbiBCZXR3ZWVuIE9ubGluZSBvZmZlcnMgeW91ciBjbGllbnRzIGEgZmFudGFzdGljIGFuZCBwcm8tYWN0aXZlIHdheSB0byBoZWxwIHRoZWlyIGtpZHMgdGhyb3VnaHQgdGhpcyB0b3VnaCB0aW1lLiBUaGlzIGlzIGEgcXVpY2sgd2luIGZvciB5b3UuPC9wPlxuICA8L2E+XG4gIDxhIGhyZWY9XCIjXCI+XG4gICAgPGltZyBzcmM9XCIvaW1hZ2VzL2hvbWVwYWdlLWF1ZGllbmNlLWNvdXJ0cy5zdmdcIiBhbHQ9XCJHYXZlbFwiIHdpZHRoPVwiNThcIiBoZWlnaHRcIjUyXCI+XG4gICAgPGgxPkZvciBDb3VydHM8L2gxPlxuICAgIDxwPlRoZSBiZXN0IG9ubGluZSBwYXJlbnRpbmcgY291cnNlIG1ha2VzIGl0IGVhc3kgZm9yIHJlc2lkZW50cyBpbiB5b3VyIGp1cmlzZGljdGlvbiB0byBnZXQgcXVhbGl0eSBkaXZvcmNlIGVkdWNhdGlvbiBldmVuIHdoZW4gdGhleSBjYW7igJl0IG1ha2UgaXQgdG8gYW4gaW4tcGVyc29uIGNsYXNzLjwvcD5cbiAgPC9hPlxuPC9kaXY+XG5cblN0eWxlZ3VpZGUgNC41XG4qL1xuLmN0YWF1ZGllbmNlIHtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIGJhY2tncm91bmQ6ICMyOGFkZTM7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgLmN0YWF1ZGllbmNlIGEge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBwYWRkaW5nOiAzNnB4IDE4cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgLmN0YWF1ZGllbmNlIGE6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICBib3JkZXItYm90dG9tOiA5cHggc29saWQgI2ZmZjsgfVxuICAgIC5jdGFhdWRpZW5jZSBhOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxOThmYmY7IH1cbiAgLmN0YWF1ZGllbmNlIGltZyB7XG4gICAgbWFyZ2luLWJvdHRvbTogOXB4OyB9XG4gIC5jdGFhdWRpZW5jZSBoMSB7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDQuNXB4OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NTBweCkge1xuICAgIC5jdGFhdWRpZW5jZSB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XG4gICAgICAuY3RhYXVkaWVuY2UgYSB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA3MnB4O1xuICAgICAgICBwYWRkaW5nLXRvcDogNTRweDsgfVxuICAgICAgICAuY3RhYXVkaWVuY2UgYTpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgYm9yZGVyLWxlZnQ6IDIuMjVweCBzb2xpZCAjZmZmOyB9XG4gICAgICAgIC5jdGFhdWRpZW5jZSBhOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgICAgYm9yZGVyLXJpZ2h0OiAyLjI1cHggc29saWQgI2ZmZjsgfSB9XG5cbi8qXG5DVEEgT3ZlcnZpZXdcblxuTWFya3VwOlxuPGRpdiBjbGFzcz1cImwtY2hpbGRyZW52ZXJ0aWNhbC14LWV4Y2x1ZGUgY3Rhb3ZlcnZpZXcgbC13cmFwIGwtd3JhcC1zcGFubW9iaWxlXCI+XG4gIDxzZWN0aW9uPlxuICAgIDxoMT5DaGlsZHJlbiBpbiBCZXR3ZWVuPC9oMT5cbiAgICA8aDI+QSBDby1QYXJlbnRpbmcgUHJvZ3JhbSBmb3IgRGl2b3JjaW5nIGFuZCBTZXBhcmF0aW5nIFBhcmVudHMuPC9oMj5cbiAgICA8dWw+XG4gICAgICA8bGk+SW5zdGFudCBQcmludGFibGUgQ2VydGlmaWNhdGUgdXBvbiBjb21wbGV0aW9uPC9saT5cbiAgICAgIDxsaT5ObyBuZWVkIHRvIHRha2UgYW4gaW4tcGVyc29uIGNsYXNzPC9saT5cbiAgICAgIDxsaT5Db21wbGV0ZSB0aGUgY291cnNlIDEwMCUgb25saW5lPC9saT5cbiAgICAgIDxsaT5BY2Nlc3NpYmxlIDI0Lzc8L2xpPlxuICAgICAgPGxpPk9ubHkgMy01IGhvdXJzIHRvIGNvbXBsZXRlPC9saT5cbiAgICAgIDxsaT5QYXkgbm8gbW9yZSB0aGFuICQ0NS45NTwvbGk+XG4gICAgPC91bD5cbiAgICA8ZGl2PlxuICAgICAgPGEgaHJlZj1cIlwiIGNsYXNzPVwiYnV0dG9uXCI+U2lnbi1VcCBOb3c8L2E+XG4gICAgICA8aW1nIHNyY3NldD1cIi9pbWFnZXMvaG9tZXBhZ2UtY3Rhb3ZlcnZpZXctY291cnRhY2NlcHRlZC0yeC5wbmcgMnhcIiBzcmM9XCIvaW1hZ2VzL2hvbWVwYWdlLWN0YW92ZXJ2aWV3LWNvdXJ0YWNjZXB0ZWQucG5nXCIgYWx0PVwiQ291cnQgQWNjZXB0ZWQsIDEwMCUgR3VyYW50ZWVkIFNlYWxcIiB3aWR0aD1cIjE1MFwiIGhlaWdodD1cIjE1MFwiPlxuICAgICAgPHA+SW5zdGFudCBDZXJ0aWZpY2F0ZSE8YnI+IEd1cmFudGVlZCBDb3VydCBBcHByb3ZhbDwvcD5cbiAgICA8L2Rpdj5cbiAgPC9zZWN0aW9uPlxuPC9kaXY+XG5cblN0eWxlZ3VpZGUgNC42XG4qL1xuLmN0YW92ZXJ2aWV3IHtcbiAgbGluZS1oZWlnaHQ6IDEuMTY7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuY3Rhb3ZlcnZpZXc6OmJlZm9yZSwgLmN0YW92ZXJ2aWV3OjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7IH1cbiAgLmN0YW92ZXJ2aWV3OjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImltYWdlcy9QaWMzLmpwZ1wiKTtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGxlZnQ6IDA7IH1cbiAgLmN0YW92ZXJ2aWV3OjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiaW1hZ2VzL1BpYzQuanBnXCIpO1xuICAgIHJpZ2h0OiAwO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5jdGFvdmVydmlldyBzZWN0aW9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwLCA1MiwgNjksIDAuODUpO1xuICAgIGJveC1zaGFkb3c6IHJnYmEoMCwgMCwgMCwgMC41KSAwIDJweCA0cHggMDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHBhZGRpbmc6IDM2cHggMThweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdGV4dC1zaGFkb3c6IHJnYmEoMCwgMCwgMCwgMC41KSAwIDJweCA0cHg7XG4gICAgei1pbmRleDogNTA7IH1cbiAgICAuY3Rhb3ZlcnZpZXcgc2VjdGlvbiBpbWcge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtYXJnaW4tYm90dG9tOiA5cHg7XG4gICAgICB3aWR0aDogMzIlOyB9XG4gIC5jdGFvdmVydmlldyBoMSB7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgbWFyZ2luLWJvdHRvbTogNC41cHg7IH1cbiAgLmN0YW92ZXJ2aWV3IGgyIHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMThweDsgfVxuICAuY3Rhb3ZlcnZpZXcgdWwge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBtYXJnaW4tYm90dG9tOiA5cHg7XG4gICAgcGFkZGluZy1sZWZ0OiAyN3B4OyB9XG4gICAgLmN0YW92ZXJ2aWV3IHVsIGxpIHtcbiAgICAgIGxpc3Qtc3R5bGU6IGRpc2Mgb3V0c2lkZTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDQuNXB4OyB9XG4gIC5jdGFvdmVydmlldyBhIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbWFyZ2luLXRvcDogNyU7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gICAgd2lkdGg6IDY1JTsgfVxuICAuY3Rhb3ZlcnZpZXcgZGl2IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAuY3Rhb3ZlcnZpZXcgZGl2IHAge1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICBmb250LXNpemU6IDE4cHg7IH1cbiAgQG1lZGlhIChtaW4tcmVzb2x1dGlvbjogMmRwcHgpIHtcbiAgICAuY3Rhb3ZlcnZpZXc6OmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJpbWFnZXMvUGljMy5qcGdcIik7IH1cbiAgICAuY3Rhb3ZlcnZpZXc6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImltYWdlcy9QaWM0LmpwZ1wiKTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NTBweCkge1xuICAgIC5jdGFvdmVydmlldyB7XG4gICAgICBkaXNwbGF5OiBmbGV4OyB9XG4gICAgICAuY3Rhb3ZlcnZpZXc6OmJlZm9yZSwgLmN0YW92ZXJ2aWV3OjphZnRlciB7XG4gICAgICAgIHdpZHRoOiA1MCU7IH1cbiAgICAgIC5jdGFvdmVydmlldzo6YmVmb3JlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgIC5jdGFvdmVydmlldyBzZWN0aW9uIHtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIG1heC13aWR0aDogNDE1cHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxOHB4O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDI3cHg7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDI3cHg7XG4gICAgICAgIHotaW5kZXg6IDUwOyB9XG4gICAgICAgIC5jdGFvdmVydmlldyBzZWN0aW9uOjphZnRlciB7XG4gICAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgZm9udC1zaXplOiAwO1xuICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgICAgICAgLmN0YW92ZXJ2aWV3IHNlY3Rpb24gaW1nIHtcbiAgICAgICAgICB3aWR0aDogMzglOyB9XG4gICAgICAuY3Rhb3ZlcnZpZXcgYSB7XG4gICAgICAgIHdpZHRoOiA1OCU7IH1cbiAgICAgIC5jdGFvdmVydmlldyBkaXYgcCB7XG4gICAgICAgIGNsZWFyOiBub25lO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgbWFyZ2luLXRvcDogOXB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gICAgLmN0YW92ZXJ2aWV3IHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAzNnB4O1xuICAgICAgcGFkZGluZy10b3A6IDM2cHg7IH0gfVxuXG4vKlxuQ1RBIFBob3RvXG5cbk1hcmt1cDpcbjxhcnRpY2xlIGNsYXNzPVwibC1jaGlsZHJlbnZlcnRpY2FsLXgtZXhjbHVkZSBjdGFwaG90byBsLXdyYXBcIj5cbiAgPGltZyBzcmM9XCIvaW1hZ2VzL2hvbWVwYWdlLWNvdXJ0YWNjZXB0YW5jZS5zdmdcIiBhbHQ9XCJKdWRnZSBpY29uXCIgd2lkdGg9XCIxMDhcIiBoZWlnaHQ9XCI5M1wiPlxuICA8aDE+R3VyYW50ZWVkIENvdXJ0IEFjY2VwdGFuY2U8L2gxPlxuICA8cD5DaGlsZHJlbiBpbiBCZXR3ZWVuIE9ubGluZSBpcyBjb21tb25seSBhY2NlcHRlZCBieSBjb3VydCBzeXN0ZW1zIGFjcm9zcyB0aGUgVW5pdGVkIFN0YXRlcyB0byBmdWxmaWxsIHJlcXVpcmVtZW50cyByZWdhcmRpbmcgZGl2b3JjZSBlZHVjYXRpb24gZm9yIHBhcmVudHMsIG9mdGVuIHJlcGxhY2luZyBpbmNvbnZlbmllbnQgYW5kIGV4cGVuc2l2ZSBpbi1wZXJzb24gY2xhc3Nlcy48L3A+XG4gIDxhIGNsYXNzPVwiYnV0dG9uXCIgaHJlZj1cIiNcIj5TaWduLVVwIE5vdzwvYT5cbjwvYXJ0aWNsZT5cblxuU3R5bGVndWlkZSA0LjdcbiovXG4uY3RhcGhvdG8ge1xuICBiYWNrZ3JvdW5kOiB1cmwoXCJpbWFnZXMvY3RhcGhvdG8ucG5nXCIpIGNlbnRlciBjZW50ZXI7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGNvbG9yOiAjZmZmO1xuICBwYWRkaW5nLWJvdHRvbTogMzZweDtcbiAgcGFkZGluZy10b3A6IDM2cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1zaGFkb3c6IHJnYmEoMCwgMCwgMCwgMC41KSAwIDJweCA0cHg7IH1cbiAgLmN0YXBob3RvIGltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwIGF1dG8gMThweDsgfVxuICAuY3RhcGhvdG8gaDEge1xuICAgIG1hcmdpbi1ib3R0b206IDE4cHg7IH1cbiAgLmN0YXBob3RvIHAge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxOHB4OyB9XG4gIC5jdGFwaG90byBhIHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgQG1lZGlhIChtaW4tcmVzb2x1dGlvbjogMmRwcHgpIHtcbiAgICAuY3RhcGhvdG8ge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiaW1hZ2VzL2N0YXBob3RvLTJ4LnBuZ1wiKTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NTBweCkge1xuICAgIC5jdGFwaG90byB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJpbWFnZXMvY3RhcGhvdG8tZGVza3RvcC5wbmdcIik7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNTRweDtcbiAgICAgIHBhZGRpbmctdG9wOiA1NHB4OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY1MHB4KSBhbmQgKG1pbi1yZXNvbHV0aW9uOiAyZHBweCkge1xuICAgIC5jdGFwaG90byB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJpbWFnZXMvY3RhcGhvdG8tZGVza3RvcC0yeC5wbmdcIik7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjUwcHgpIHtcbiAgICAgIC5jdGFwaG90byBwIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgbWF4LXdpZHRoOiA2MCU7IH1cbiAgICAgIC5jdGFwaG90byBhIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICBtYXgtd2lkdGg6IDI5MHB4OyB9IH1cblxuLypcblxuTWFya3VwOlxuPGFydGljbGUgY2xhc3M9XCJjdGFwaG90byBjdGFwaG90by1jb21wbGV0ZWNhc2UgbC13cmFwXCI+XG4gIDxpbWcgc3JjPVwiaHR0cDovL3BsYWNlaG9sZC5pdC83M3g3M1wiIGFsdD1cIkNvbXBsZXRlIENhc2UgTG9nb1wiIHdpZHRoPVwiNzNcIiBoZWlnaHQ9XCI3M1wiPlxuICA8aDE+U2F2ZSB0aG91c2FuZHMgb2YgZG9sbGFycyBpbiBsZWdhbCBmZWVzIHdpdGhvdXQgdGhlIGNvc3Qgb2YgYW4gYXR0b3JuZXkuPC9oMT5cbiAgPHA+VmlzaXQgQ29tcGxldGVDYXNlLmNvbSBhbmQgc2lnbiB1cCBmb3IgdGhlaXIgc2VydmljZXMgQU5EIHRoZSBDaGlsZHJlbiBpbiBCZXR3ZWVuIE9ubGluZSBQcm9ncmFtLjwvcD5cbiAgPGEgY2xhc3M9XCJidXR0b24gYnV0dG9uLW91dGxpbmVcIiBocmVmPVwiI1wiPkNvbXBsZXRlQ2FzZS5jb208L2E+XG48L2FydGljbGU+XG5cblN0eWxlZ3VpZGUgNC43LjFcbiovXG4uY3RhcGhvdG8tY29tcGxldGVjYXNlIHtcbiAgYmFja2dyb3VuZDogIzE1NWE3NjtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7IH1cbiAgLmN0YXBob3RvLWNvbXBsZXRlY2FzZSA+ICo6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMThweDsgfVxuICAuY3RhcGhvdG8tY29tcGxldGVjYXNlIGgxLFxuICAuY3RhcGhvdG8tY29tcGxldGVjYXNlIHAge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXgtd2lkdGg6IDY1NHB4OyB9XG4gIC5jdGFwaG90by1jb21wbGV0ZWNhc2UgYSB7XG4gICAgd2lkdGg6IGF1dG87IH1cbiAgLmN0YXBob3RvLWNvbXBsZXRlY2FzZSBoMSB7XG4gICAgZm9udC1zaXplOiAzMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gIEBtZWRpYSAobWluLXJlc29sdXRpb246IDJkcHB4KSB7XG4gICAgLmN0YXBob3RvLWNvbXBsZXRlY2FzZSB7XG4gICAgICBiYWNrZ3JvdW5kOiAjMTU1YTc2OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY1MHB4KSB7XG4gICAgLmN0YXBob3RvLWNvbXBsZXRlY2FzZSB7XG4gICAgICBiYWNrZ3JvdW5kOiAjMTU1YTc2OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY1MHB4KSBhbmQgKG1pbi1yZXNvbHV0aW9uOiAyZHBweCkge1xuICAgIC5jdGFwaG90by1jb21wbGV0ZWNhc2Uge1xuICAgICAgYmFja2dyb3VuZDogIzE1NWE3NjsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NTBweCkge1xuICAgICAgLmN0YXBob3RvLWNvbXBsZXRlY2FzZSBhIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7IH0gfVxuXG4vKlxuQ1RBIFF1b3Rlc1xuXG5NYXJrdXA6XG48ZGl2IGNsYXNzPVwiY3RhcXVvdGVzIGwtd3JhcFwiPlxuICA8ZGl2IGNsYXNzPVwic2xpZGVyXCI+XG4gICAgPGRpdj5cbiAgICAgIDxibG9ja3F1b3RlPlxuICAgICAgICA8cD4mbGRxdW87VGhpcyBwcm9ncmFtIHdhcyByZWNvbW1lbmRlZCBieSBvdXIgY28tcGFyZW50aW5nIGNvdW5zZWxvciBhbmQgSSB3b3VsZCByZWNvbW1lbmQgaXQgdG8gb3RoZXIgY291cGxlIHdobyBhcmUgdGhpbmtpbmcgYWJvdXQgb3IgZ2V0dGluZyBhIGRpdm9yY2UgaW52b2x2aW5nIGNoaWxkcmVuLiBJbiBmYWN0LCBJIGhhdmUgcmVjb21tZW5kZWQgaXQgdG8gb25lIG9mIG15IGNvLXdvcmtlcnMgYWxyZWFkeS4mcmRxdW87PC9wPlxuICAgICAgICA8Y2l0ZT48c3Ryb25nPkRpYW5nZSBIb2RnZXM8L3N0cm9uZz4gRmFpcmJhbmtzLCBBSzwvY2l0ZT5cbiAgICAgIDwvYmxvY2txdW90ZT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXY+XG4gICAgPHA+Sm9pbiBtb3JlIHRoYW4gPHN0cm9uZz41MCwwMDAgcGFyZW50czwvc3Ryb25nPiB3aG8gaGF2ZSBjb21wbGV0ZWQgb3VyIGF3YXJkLXdpbm5pbmcgY2xhc3MhIDxzdHJvbmc+UmVjb21tZW5kZWQgYnkgOSBvdXQgb2YgMTAgcGFyZW50cy48L3N0cm9uZz48L3A+XG4gICAgPGEgY2xhc3M9XCJjdGFxdW90ZXMteC1idXR0b24gYnV0dG9uXCIgaHJlZj1cIiNcIj5TaWduLVVwIE5vdzwvYT5cbiAgPC9kaXY+XG48L2Rpdj5cblxuU3R5bGVndWlkZSA0LjhcbiovXG4uY3RhcXVvdGVzIHAsXG4uY3RhcXVvdGVzIGNpdGUsXG4uY3RhcXVvdGVzIHN0cm9uZyB7XG4gIGNvbG9yOiAjNjk2OTY5O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjMzOyB9XG5cbi5jdGFxdW90ZXMgcCB7XG4gIG1hcmdpbi1ib3R0b206IDE4cHg7IH1cblxuLmN0YXF1b3RlcyBibG9ja3F1b3RlIHtcbiAgYmFja2dyb3VuZDogI0YyRjJGMjtcbiAgbWFyZ2luLWJvdHRvbTogMjdweDtcbiAgcGFkZGluZzogMThweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5jdGFxdW90ZXMgYmxvY2txdW90ZTo6YWZ0ZXIge1xuICAgIGJvcmRlcjogMzZweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItbGVmdC1jb2xvcjogI0YyRjJGMjtcbiAgICBib3R0b206IC0yN3B4O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMDtcbiAgICBsZWZ0OiA1NHB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMDtcbiAgICB6LWluZGV4OiAxMDsgfVxuICAuY3RhcXVvdGVzIGJsb2NrcXVvdGUgcCxcbiAgLmN0YXF1b3RlcyBibG9ja3F1b3RlIGNpdGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiA1MDsgfVxuICAuY3RhcXVvdGVzIGJsb2NrcXVvdGUgY2l0ZSxcbiAgLmN0YXF1b3RlcyBibG9ja3F1b3RlIHN0cm9uZyB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLmN0YXF1b3RlcyA+IDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDM2cHg7IH1cblxuLmN0YXF1b3RlcyAuY3RhcXVvdGVzLXgtYnV0dG9uIHtcbiAgZm9udC1zaXplOiAxOHB4O1xuICB3aWR0aDogMTAwJTsgfVxuXG4uY3RhcXVvdGVzIC5zbGljay1uZXh0LFxuLmN0YXF1b3RlcyAuc2xpY2stcHJldiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4uY3RhcXVvdGVzIC5zbGljay1kb3RzIHtcbiAgYm90dG9tOiBhdXRvO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWFyZ2luOiAtOXB4IDAgMDtcbiAgcGFkZGluZy1sZWZ0OiAxOHB4OyB9XG4gIC5jdGFxdW90ZXMgLnNsaWNrLWRvdHMgbGkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMCA0LjVweCAwIDA7IH1cbiAgICAuY3RhcXVvdGVzIC5zbGljay1kb3RzIGxpOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC5jdGFxdW90ZXMgLnNsaWNrLWRvdHMgYnV0dG9uIHtcbiAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAjNjk2OTY5IGluc2V0O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMTZweDtcbiAgICBtYXJnaW46IDA7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlLWluLW91dDtcbiAgICB3aWR0aDogMTZweDsgfVxuICAgIC5jdGFxdW90ZXMgLnNsaWNrLWRvdHMgYnV0dG9uOjpiZWZvcmUge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3RhcXVvdGVzIC5zbGljay1kb3RzIC5zbGljay1hY3RpdmUgYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjk2OTY5OyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2NTBweCkge1xuICAuY3RhcXVvdGVzIHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gICAgLmN0YXF1b3RlcyA+IGRpdiB7XG4gICAgICB3aWR0aDogNTAlOyB9XG4gICAgLmN0YXF1b3RlcyA+IDpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMThweDsgfVxuICAgIC5jdGFxdW90ZXMgPiA6bGFzdC1jaGlsZCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDE4cHg7XG4gICAgICBwYWRkaW5nLXRvcDogMzZweDsgfVxuICAgIC5jdGFxdW90ZXMgLmN0YXF1b3Rlcy14LWJ1dHRvbiB7XG4gICAgICB3aWR0aDogYXV0bzsgfSB9XG5cbi8qXG5GZWF0dXJlc1xuXG5NYXJrdXA6XG48YXJ0aWNsZSBjbGFzcz1cImZlYXR1cmVzIGwtd3JhcFwiPlxuICA8aDE+Q291cnNlIEZlYXR1cmVzPC9oMT5cbiAgPHA+Q2hpbGRyZW4gaW4gQmV0d2VlbiBpcyBhIHNjaWVudGlmaWNhbGx5IHByb3ZlbiB0byBlbnN1cmUgdGhhdCB5b3UgbGVhcm4gdGhlIHNraWxscyBuZWNlc3NhcnkgdG8gbWFrZSBkaXZvcmNlIGVhc2llciBvbiB5b3VyIGNoaWxkcmVuLjwvcD5cbiAgPHVsPlxuICAgICAgPGxpPlxuICAgICAgICA8aW1nIHNyY3NldD1cIi9pbWFnZXMvZmVhdHVyZS12aWRlb3MtMngucG5nIDJ4XCIgc3JjPVwiL2ltYWdlcy9mZWF0dXJlLXZpZGVvcy5wbmdcIiBhbHQ9XCJUViBTY3JlZW5cIiB3aWR0aD1cIjEwMFwiIGhlaWdodD1cIjEwMFwiPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxoMj5WaWRlbyBTY2VuYXJpb3M8L2gyPlxuICAgICAgICAgIDxwPldhdGNoIHZpZGVvcyB3aXRoIGNvbW1vbiBjby1wYXJlbnRpbmcgcHJvYmxlbXMgYW5kIHRoZW4gc2VlIGRpZmZlcmVudCByZXNwb25zZXMgdGhhdCBwcm9kdWNlIHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSByZXN1bHRzLjwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2xpPlxuICAgICAgPGxpPlxuICAgICAgICA8aW1nIHNyY3NldD1cIi9pbWFnZXMvZmVhdHVyZS1xdWVzdGlvbnMtMngucG5nIDJ4XCIgc3JjPVwiL2ltYWdlcy9mZWF0dXJlLXF1ZXN0aW9ucy5wbmdcIiBhbHQ9XCJRdWVzdGlvbiBtYXJrXCIgd2lkdGg9XCIxMDBcIiBoZWlnaHQ9XCIxMDBcIj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8aDI+R3VpZGVkIFF1ZXN0aW9uczwvaDI+XG4gICAgICAgICAgPHA+QWZ0ZXIgZWFjaCB2aWRlbyBzY2VuYXJpbywgQ0lCTyBwcmVzZW50cyB0aGUgdXNlciB3aXRoIGd1aWRlZCBxdWVzdGlvbnMgdG8gZXhwbG9yZSBob3cgZWFjaCBwcm9ibGVtIGNhbiBiZSBhZGRyZXNzZWQsIGFuZCB0byBpbmNyZWFzZSB5b3VyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIHNpdHVhdGlvbi48L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9saT5cbiAgICAgIDxsaT5cbiAgICAgICAgPGltZyBzcmNzZXQ9XCIvaW1hZ2VzL2ZlYXR1cmUtcXVpemVzLTJ4LnBuZyAyeFwiIHNyYz1cIi9pbWFnZXMvZmVhdHVyZS1xdWl6ZXMucG5nXCIgYWx0PVwiUmVpbmZvcmNpbmcgUXVpenplc1wiIHdpZHRoPVwiMTAwXCIgaGVpZ2h0PVwiMTAwXCI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGgyPlJlaW5mb3JjaW5nIFF1aXp6ZXM8L2gyPlxuICAgICAgICAgIDxwPkF0IHRoZSBlbmQgb2YgZWFjaCBjaGFwdGVyLCB5b3XigJlsbCBoYXZlIHRoZSBvcHBvcnR1bml0eSB0byByZWluZm9yY2Ugd2hhdCB5b3XigJl2ZSBsZWFybmVkIGJ5IHRha2luZyBhIHF1aXouIFF1aXp6ZXMgaGVscCBlbnN1cmUgdGhhdCB5b3XigJlsbCBiZSByZWFkeSB0byBoYW5kbGUgc2l0dWF0aW9ucyBpbiB0aGUgZnV0dXJlLjwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2xpPlxuICAgICAgPGxpPlxuICAgICAgICA8aW1nIHNyY3NldD1cIi9pbWFnZXMvZmVhdHVyZS1za2lsbHNwcmFjdGljZS0yeC5wbmcgMnhcIiBzcmM9XCIvaW1hZ2VzL2ZlYXR1cmUtc2tpbGxzcHJhY3RpY2UucG5nXCIgYWx0PVwiU3RhclwiIHdpZHRoPVwiMTAwXCIgaGVpZ2h0PVwiMTAwXCI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGgyPlNraWxscyBQcmFjdGljZTwvaDI+XG4gICAgICAgICAgPHA+WW91IGNhbiBzcGVuZCB0aW1lIHByYWN0aWNpbmcgYW5kIHJlZmluaW5nIHlvdXIgc2tpbGxzIGluIG91ciBTa2lsbHMgUHJhY3RpY2Ugc2VjdGlvbiAtIG1lYW50IHRvIGluY3JlYXNlIHlvdXIgY29uZmlkZW5jZSBpbiB0aGUgc2tpbGxzIHRhdWdodCBpbiBDSUJPLjwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2xpPlxuICA8L3VsPlxuPC9hcnRpY2xlPlxuXG5TdHlsZWd1aWRlIDQuOVxuKi9cbi5mZWF0dXJlcyBoMSB7XG4gIG1hcmdpbi1ib3R0b206IDlweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5mZWF0dXJlcyBsaSB7XG4gIG1hcmdpbi1ib3R0b206IDI3cHg7IH1cbiAgLmZlYXR1cmVzIGxpIHAge1xuICAgIGNvbG9yOiAjNjk2OTY5OyB9XG5cbi5mZWF0dXJlcyBoMiB7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4uZmVhdHVyZXMgaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogYXV0bztcbiAgbWFyZ2luOiAwIGF1dG8gOXB4O1xuICB3aWR0aDogMTAwcHg7IH1cblxuLmZlYXR1cmVzID4gcCB7XG4gIGNvbG9yOiAjNjk2OTY5O1xuICBtYXJnaW4tYm90dG9tOiAyN3B4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDY1MHB4KSB7XG4gIC5mZWF0dXJlcyBoMSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMThweDsgfVxuICAuZmVhdHVyZXMgPiBwIHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAuZmVhdHVyZXMgdWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gIC5mZWF0dXJlcyBsaSB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgcGFkZGluZzogNTRweCAzNnB4IDA7XG4gICAgd2lkdGg6IDUwJTsgfVxuICAuZmVhdHVyZXMgaW1nIHtcbiAgICBmbGV4OiAwIDAgMTAwcHg7IH1cbiAgLmZlYXR1cmVzIGRpdiB7XG4gICAgcGFkZGluZy1sZWZ0OiAxOHB4OyB9IH1cblxuLypcblBob3RvIENhbGxvdXRcblxuTWFya3VwOlxuPHNlY3Rpb24gY2xhc3M9XCJsLXdyYXAgbC13cmFwLXNwYW5tb2JpbGUgd3JhcCB3cmFwLWxpZ2h0Z3JleSBwaG90b2NhbGxvdXRcIj5cbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1jb250YWluZXJcIj5cbiAgICAgIDxoMz5HaXZlIHlvdXIgY2hpbGRyZW4gdGhlIGJlc3QgY2hhbmNlLjwvaDM+XG4gICAgICA8cD5UaGUgZGl2b3JjZSBvZiBvbmXigJlzIHBhcmVudHMgaXMgYSBtYWpvciBldmVudCBpbiB0aGUgbGlmZSBvZiBhIGNoaWxkLiBDaGlsZHJlbiBpbiBCZXR3ZWVuIE9ubGluZSBlbnN1cmVzIHRoYXQgdGhlIGFjY29tcGFuaW5nIHN0cmVzcyBpcyBtaW5pbWl6ZWQsIHRoZSBsb25nLXRlcm0gcHN5Y2hvbG9naWNhbCBidXJkZW4gaXMgZWFzZWQsIGFuZCB0aGUgd2hvbGUgcHJvY2VzcyBpcyBtYWRlIG1vcmUgdW5kZXJzdGFuZGFibGUgYW5kIG1hbmFnZWFibGUgZm9yIHRoZSBwYXJlbnRzIHNvIHRoYXQgY2hpbGRyZW4gd2lsbCBiZW5lZml0LjwvcD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgPGltZyBzcmM9XCJodHRwOi8vcGxhY2Vob2xkLml0LzMyMHgzNDlcIiBhbHQ9XCJQaWN0dXJlIG9mIHdvbWVuIGFuZCBjaGlsZHJlblwiPlxuICAgIDwvZGl2PlxuICA8L3NlY3Rpb24+XG5cblN0eWxlZ3VpZGUgNC4xMFxuKi9cbi5waG90b2NhbGxvdXQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBwYWRkaW5nLWJvdHRvbTogMThweDtcbiAgcGFkZGluZy10b3A6IDE4cHg7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY1MHB4KSB7XG4gICAgLnBob3RvY2FsbG91dCB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY1MHB4KSB7XG4gICAgLnBob3RvY2FsbG91dCBwLFxuICAgIC5waG90b2NhbGxvdXQgbGkge1xuICAgICAgY29sb3I6ICM2OTY5Njk7XG4gICAgICBmb250LXNpemU6IDE4cHg7IH0gfVxuICAucGhvdG9jYWxsb3V0IGltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1ib3R0b206IDE4cHg7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjUwcHgpIHtcbiAgICAgIC5waG90b2NhbGxvdXQgaW1nIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzAwMDsgfSB9XG4gIC5waG90b2NhbGxvdXQgPiA6Zmlyc3QtY2hpbGQge1xuICAgIG9yZGVyOiAyOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY1MHB4KSB7XG4gICAgICAucGhvdG9jYWxsb3V0ID4gOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1NHB4O1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBvcmRlcjogMTsgfSB9XG4gIC5waG90b2NhbGxvdXQgPiA6bGFzdC1jaGlsZCB7XG4gICAgb3JkZXI6IDE7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjUwcHgpIHtcbiAgICAgIC5waG90b2NhbGxvdXQgPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgIGZsZXg6IDAgMCAyNjhweDtcbiAgICAgICAgb3JkZXI6IDI7IH0gfVxuXG4vKlxuUHJvb2ZcblxuTWFya3VwOlxuPGFydGljbGUgY2xhc3M9XCJwcm9vZiBsLXdyYXBcIj5cbiAgPGgxPlByb3ZlbiB0byBXb3JrPC9oMT5cbiAgPHA+Q2hpbGRyZW4gaW4gQmV0d2VlbiB3YXMgY3JlYXRlZCBieSBkaXN0aW5ndWlzaGVkIHBzeWNob2xvZ2lzdCBEci4gRG9uYWxkIEdvcmRvbiBhbmQgcHJvdmVuIHRvIHdvcmsuPC9wPlxuICA8dWw+XG4gICAgPGxpPjxwPjIyJSA8c3Bhbj5MZXNzIGNoaWxkIHJlcG9ydGVkIHN0cmVzczwvc3Bhbj48L3A+PC9saT5cbiAgICA8bGk+PHA+NzAlIDxzcGFuPkZld2VyIHNjaG9vbCBhYnNlbmNlczwvc3Bhbj48L3A+PC9saT5cbiAgICA8bGk+PHA+NTQlIDxzcGFuPkZld2VyIGRvY3RvciB2aXNpdHM8L3NwYW4+PC9wPjwvbGk+XG4gICAgPGxpPjxwPjkvMTAgPHNwYW4+UGFyZW50cyByZWNvbW1lbmQ8L3NwYW4+PC9wPjwvbGk+XG4gIDwvdWw+XG48L2FydGljbGU+XG5cblN0eWxlZ3VpZGUgNC4xMVxuKi9cbi5wcm9vZiB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAucHJvb2YgaDEge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIG1hcmdpbi1ib3R0b206IDlweDsgfVxuICAucHJvb2YgPiBwIHtcbiAgICBjb2xvcjogIzY5Njk2OTtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIG1hcmdpbi1ib3R0b206IDlweDsgfVxuICAucHJvb2YgdWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gIC5wcm9vZiBsaSB7XG4gICAgcGFkZGluZzogMCA0LjVweCA5cHg7IH1cbiAgICAucHJvb2YgbGkgcCB7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgYmFja2dyb3VuZDogIzE1NWE3NjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGZvbnQtc2l6ZTogMzZweDtcbiAgICAgIGhlaWdodDogMTM4cHg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIHBhZGRpbmc6IDlweDtcbiAgICAgIHdpZHRoOiAxMzhweDsgfVxuICAgIC5wcm9vZiBsaSBzcGFuIHtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjYxODsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjUwcHgpIHtcbiAgICAucHJvb2YgPiBwIHtcbiAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDE4cHg7IH1cbiAgICAucHJvb2YgbGkge1xuICAgICAgcGFkZGluZzogMCAxOHB4OyB9IH1cblxuLypcblNjcmVlbnNcblxuTWFya3VwOlxuPGFydGljbGUgY2xhc3M9XCJzY3JlZW5zIGwtd3JhcFwiPlxuICA8aDE+T3B0aW1pemVkIGZvciBhbGwgc2NyZWVuIHNpemVzOjwvaDE+XG4gIDx1bD5cbiAgICA8bGk+XG4gICAgICA8aW1nIHNyYz1cIi9pbWFnZXMvc2NyZWVucy1kZXNrdG9wLnN2Z1wiIGFsdD1cIkRlc2t0b3Agc2NyZWVuXCIgd2lkdGg9XCIxMjNcIiBoZWlnaHQ9XCIxMDBcIj5cbiAgICAgIERlc2t0b3BcbiAgICA8L2xpPlxuICAgIDxsaT5cbiAgICAgIDxpbWcgc3JjPVwiL2ltYWdlcy9zY3JlZW5zLWxhcHRvcC5zdmdcIiBhbHQ9XCJMYXB0b3Agc2NyZWVuXCIgd2lkdGg9XCIxMzRcIiBoZWlnaHQ9XCI3N1wiPlxuICAgICAgTGFwdG9wXG4gICAgPC9saT5cbiAgICA8bGk+XG4gICAgICA8aW1nIHNyYz1cIi9pbWFnZXMvc2NyZWVucy10YWJsZXQuc3ZnXCIgYWx0PVwiVGFibGV0IHNjcmVlblwiIHdpZHRoPVwiNTBcIiBoZWlnaHQ9XCI2NFwiPlxuICAgICAgVGFibGV0XG4gICAgPC9saT5cbiAgICA8bGk+XG4gICAgICA8aW1nIHNyYz1cIi9pbWFnZXMvc2NyZWVucy1tb2JpbGUuc3ZnXCIgYWx0PVwiTW9iaWxlIHNjcmVlblwiIHdpZHRoPVwiMjJcIiBoZWlnaHQ9XCI0M1wiPlxuICAgICAgTW9iaWxlXG4gICAgPC9saT5cbiAgPC91bD5cbjwvYXJ0aWNsZT5cblxuU3R5bGVndWlkZSA0LjEyXG4qL1xuLnNjcmVlbnMgaDEge1xuICBtYXJnaW4tYm90dG9tOiA5cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4uc2NyZWVucyB1bCB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cblxuLnNjcmVlbnMgbGkge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBwYWRkaW5nOiA0LjVweDsgfVxuICAuc2NyZWVucyBsaTpudGgtY2hpbGQoMSkgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDgzcHg7IH1cbiAgLnNjcmVlbnMgbGk6bnRoLWNoaWxkKDIpIGltZyB7XG4gICAgbWF4LXdpZHRoOiA4NHB4OyB9XG4gIC5zY3JlZW5zIGxpOm50aC1jaGlsZCgzKSBpbWcge1xuICAgIG1heC13aWR0aDogMzVweDsgfVxuICAuc2NyZWVucyBsaTpudGgtY2hpbGQoNCkgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDE3cHg7IH1cblxuLnNjcmVlbnMgaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogYXV0bztcbiAgbWFyZ2luLWJvdHRvbTogNC41cHg7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDY1MHB4KSB7XG4gIC5zY3JlZW5zIGxpIHtcbiAgICBwYWRkaW5nOiAxOHB4OyB9XG4gICAgLnNjcmVlbnMgbGk6bnRoLWNoaWxkKDEpIGltZywgLnNjcmVlbnMgbGk6bnRoLWNoaWxkKDIpIGltZywgLnNjcmVlbnMgbGk6bnRoLWNoaWxkKDMpIGltZywgLnNjcmVlbnMgbGk6bnRoLWNoaWxkKDQpIGltZyB7XG4gICAgICBtYXgtd2lkdGg6IG5vbmU7IH0gfVxuXG4vKlxuVG9waWNzXG5cbk1hcmt1cDpcbjxhcnRpY2xlIGNsYXNzPVwidG9waWNzIGwtd3JhcFwiPlxuICA8aDE+V2hhdCdzIENvdmVyZWQ8L2gxPlxuICA8dWw+XG4gICAgPGxpPk1vbmV5IFByb2JsZW1zPC9saT5cbiAgICA8bGk+TG9uZyBEaXN0YW5jZSBQYXJlbnRpbmc8L2xpPlxuICAgIDxsaT5DaGlsZHJlbiBDYXJyeWluZyBNZXNzYWdlczwvbGk+XG4gICAgPGxpPlF1aXp6aW5nIENoaWxkcmVuIEFib3V0IHRoZSBPdGhlciBQYXJlbnQ8L2xpPlxuICAgIDxsaT5QdXR0aW5nIERvd24gdGhlIE90aGVyIFBhcmVudDwvbGk+XG4gICAgPGxpPk5ldmVyIE1hcnJpZWQgUGFyZW50czwvbGk+XG4gIDwvdWw+XG48L2FydGljbGU+XG5cblN0eWxlZ3VpZGUgNC4xM1xuKi9cbi50b3BpY3Mge1xuICBiYWNrZ3JvdW5kOiB1cmwoXCJpbWFnZXMvdG9waWNzLnBuZ1wiKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgY29sb3I6ICNmZmY7XG4gIHBhZGRpbmctYm90dG9tOiAzNnB4O1xuICBwYWRkaW5nLXRvcDogMzZweDsgfVxuICAudG9waWNzIGgxIHtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMzZweDsgfVxuICAudG9waWNzIGxpIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZmZmO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIHBhZGRpbmc6IDE4cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgLnRvcGljcyBsaTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDE4cHg7IH1cbiAgQG1lZGlhIChtaW4tcmVzb2x1dGlvbjogMmRwcHgpIHtcbiAgICAudG9waWNzIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImltYWdlcy90b3BpY3MtMngucG5nXCIpOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gICAgLnRvcGljcyB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJpbWFnZXMvdG9waWNzLWRlc2t0b3AucG5nXCIpO1xuICAgICAgcGFkZGluZy1ib3R0b206IDcycHg7XG4gICAgICBwYWRkaW5nLXRvcDogNTRweDsgfVxuICAgICAgLnRvcGljcyBoMSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE4cHg7IH1cbiAgICAgIC50b3BpY3MgdWwge1xuICAgICAgICBjb2x1bW4tY291bnQ6IDI7XG4gICAgICAgIGNvbHVtbi1nYXA6IDM2cHg7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTYwcHgpIGFuZCAobWluLXJlc29sdXRpb246IDJkcHB4KSB7XG4gICAgLnRvcGljcyB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJpbWFnZXMvdG9waWNzLWRlc2t0b3AtMngucG5nXCIpOyB9IH1cblxuLypcblNpZ251cFxuXG5Gb3IgdXNlIG9uIHRoZSBQUEMgbGFuZGluZyBwYWdlcy4gQmVzdCB2aWV3ZWQgb24gdGhlaXIgb3duIHBhZ2UgKG91dHNpZGUgb2YgU0M1J3MgaW50ZXJmYWNlLilcblxuTWFya3VwOlxuPHNlY3Rpb24gY2xhc3M9XCJsLXdyYXAgd3JhcCB3cmFwLWJyYW5kZGFyayBzaWdudXBcIj5cbiAgPGRpdj5cbiAgICA8aDE+Q2hpbGRyZW4gaW4gQmV0d2VlbjwvaDE+XG4gICAgPHA+QSBjby1wYXJlbnRpbmcgcHJvZ3JhbSBmb3IgZGl2b3JjaW5nIGFuZCBzZXBhcmF0aW5nIHBhcmVudHM8L3A+XG4gICAgPGRpdiBjbGFzcz1cImN0YVwiPlxuICAgICAgPGEgaHJlZj1cIlwiIGNsYXNzPVwiYnV0dG9uIGJ1dHRvbi1wcGNcIj5TaWduLVVwIE5vdzwvYT5cbiAgICAgIDxwPkd1cmFudGVlZCBBY2NlcHRhbmNlIGluIE1hcmljb3BhIENvdW50eSwgQXJpem9uYSE8L3A+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2PlxuICAgIDxwIGNsYXNzPVwic2VhbFwiPkluc3RhbnQgQ2VydGlmaWNhdGUgVXBvbiBDb21wbGV0aW9uITwvcD5cbiAgPC9kaXY+XG48L3NlY3Rpb24+XG5cblN0eWxlZ3VpZGUgNC4xXG4qL1xuLnNpZ251cCB7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbGluZS1oZWlnaHQ6IDEuMjsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjUwcHgpIHtcbiAgICAuc2lnbnVwIHtcbiAgICAgIGFsaWduLWl0ZW1zOiB0b3A7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgcGFkZGluZy1ib3R0b206IDU0cHg7XG4gICAgICBwYWRkaW5nLXRvcDogNTRweDsgfSB9XG4gIC5zaWdudXAgaDEge1xuICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY1MHB4KSB7XG4gICAgICAuc2lnbnVwIGgxIHtcbiAgICAgICAgZm9udC1zaXplOiA0OHB4OyB9IH1cbiAgLnNpZ251cCBwIHtcbiAgICBmb250LXNpemU6IDE4cHg7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjUwcHgpIHtcbiAgICAgIC5zaWdudXAgcCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjRweDsgfSB9XG4gIC5zaWdudXAgZGwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gIC5zaWdudXAgZGQsXG4gIC5zaWdudXAgZHQge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZmxleDogMSAxIDUwJTtcbiAgICBtYXgtd2lkdGg6IDUwJTsgfVxuICAuc2lnbnVwIGR0IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0LjVweDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAuc2lnbnVwIGRkIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBwYWRkaW5nLWxlZnQ6IDQuNXB4OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NTBweCkge1xuICAgIC5zaWdudXAgdWwge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMzZweDsgfSB9XG4gIC5zaWdudXAgdWwgbGkge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBsaXN0LXN0eWxlOiBkaXNjO1xuICAgIG1hcmdpbjogMCAwIDQuNXB4IDFlbTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NTBweCkge1xuICAgICAgLnNpZ251cCB1bCBsaSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDsgfSB9XG4gIC5zaWdudXAgLmN0YSB7XG4gICAgbWFyZ2luOiAxOHB4IDA7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjUwcHgpIHtcbiAgICAgIC5zaWdudXAgLmN0YSB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgICAgICAgLnNpZ251cCAuY3RhID4gOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDE4cHg7IH0gfVxuICAgIC5zaWdudXAgLmN0YSBwIHtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgcGFkZGluZy10b3A6IDQuNXB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjUwcHgpIHtcbiAgICAgICAgLnNpZ251cCAuY3RhIHAge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9IH1cbiAgLnNpZ251cCAuc2lnbnVwLXgtdGV4dCB7XG4gICAgcGFkZGluZzogMCAxOHB4IDAgMDsgfVxuXG4vKlxuU2lnbnVwIFNlY29uZGFyeVxuXG5NYXJrdXA6XG48c2VjdGlvbiBjbGFzcz1cImwtd3JhcCB3cmFwIHNpZ251cCBzaWdudXAtc2Vjb25kYXJ5XCI+XG4gIDxkaXY+XG4gICAgPGgxPldoeSBDaG9vc2UgQ2hpbGRyZW4gaW4gQmV0d2VlbiBPbmxpbmU/PC9oMT5cbiAgICA8dWw+XG4gICAgICA8bGk+SXTigJlzIG5vdCBuZWNlc3NhcnkgdG8gYXR0ZW5kIGFuIGluLXBlcnNvbiBjbGFzczwvbGk+XG4gICAgICA8bGk+VGhlIGxvd2VzdCBjb3N0IG9ubGluZSBjbGFzcyBhdmFpbGFibGUgaW4gTWFyaWNvcGEgQ291bnR5PC9saT5cbiAgICAgIDxsaT5UYWtlcyBqdXN0IDQgaG91cnMgdG8gY29tcGxldGU8L2xpPlxuICAgICAgPGxpPkluc3RhbnQgY2VydGlmaWNhdGlvbiB1cG9uIGNvbXBsZXRpb248L2xpPlxuICAgICAgPGxpPkF2YWlsYWJsZSAyNC83IHRvIGZpdCB5b3VyIHNjaGVkdWxlPC9saT5cbiAgICA8L3VsPlxuICAgIDxkaXYgY2xhc3M9XCJjdGFcIj5cbiAgICAgIDxhIGhyZWY9XCJcIiBjbGFzcz1cImJ1dHRvbiBidXR0b24tcHBjXCI+U2lnbi1VcCBOb3c8L2E+XG4gICAgICA8cD48c3Bhbj4kNDUuOTU8L3NwYW4+IGZvciAzMC1kYXkgYWNjZXNzPC9wPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdj5cbiAgICA8aW1nIHNyYz1cIi9pbWFnZXMvcGxhY2Vob2xkZXItbGFuZGluZ3BhZ2Uuc3ZnXCIgYWx0PVwie2NvdW50eSBuYW1lfSBpbWFnZVwiPlxuICAgIDxkbD5cbiAgICAgIDxkdD5Db3VudHk6IDwvZHQ+XG4gICAgICA8ZGQ+TWFyaWNvcGE8L2RkPlxuICAgICAgPGR0PlN0YXRlOiA8L2R0PlxuICAgICAgPGRkPkFyaXpvbmE8L2RkPlxuICAgIDwvZGw+XG4gIDwvZGl2PlxuPC9zZWN0aW9uPlxuXG5TdHlsZWd1aWRlIDQuMS4xXG4qL1xuLnNpZ251cC1zZWNvbmRhcnkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NTBweCkge1xuICAgIC5zaWdudXAtc2Vjb25kYXJ5IHtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfSB9XG4gIC5zaWdudXAtc2Vjb25kYXJ5IGgxIHtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBtYXJnaW4tYm90dG9tOiA5cHg7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjUwcHgpIHtcbiAgICAgIC5zaWdudXAtc2Vjb25kYXJ5IGgxIHtcbiAgICAgICAgZm9udC1zaXplOiAzNnB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxOHB4OyB9IH1cbiAgLnNpZ251cC1zZWNvbmRhcnkgaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDAgYXV0byAxOHB4OyB9XG4gIC5zaWdudXAtc2Vjb25kYXJ5ID4gOmZpcnN0LWNoaWxkIHtcbiAgICBvcmRlcjogMjsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NTBweCkge1xuICAgICAgLnNpZ251cC1zZWNvbmRhcnkgPiA6Zmlyc3QtY2hpbGQge1xuICAgICAgICBmbGV4OiAxIDEgYXV0bzsgfSB9XG4gIC5zaWdudXAtc2Vjb25kYXJ5ID4gOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDE4cHg7XG4gICAgb3JkZXI6IDE7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjUwcHgpIHtcbiAgICAgIC5zaWdudXAtc2Vjb25kYXJ5ID4gOmxhc3QtY2hpbGQge1xuICAgICAgICBmbGV4OiAwIDEgMTY0cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMzZweDsgfSB9XG4gIC5zaWdudXAtc2Vjb25kYXJ5IC5jdGEgcCB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIG1hcmdpbi10b3A6IDlweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjUwcHgpIHtcbiAgICAgIC5zaWdudXAtc2Vjb25kYXJ5IC5jdGEgcCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7IH0gfVxuICAuc2lnbnVwLXNlY29uZGFyeSAuY3RhIHNwYW4ge1xuICAgIGNvbG9yOiAjMTU1YTc2O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMzZweDsgfVxuICAuc2lnbnVwLXNlY29uZGFyeSAuc2lnbnVwLXgtdGV4dCB7XG4gICAgcGFkZGluZzogMDsgfVxuXG4uc3VydmV5IC5wcm9ncmVzc2JhciB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gICAgLnN1cnZleSAucHJvZ3Jlc3NiYXIge1xuICAgICAgZGlzcGxheTogZmxleDsgfSB9XG5cbi5vbmJvYXJkaW5nLW5vdGlmaWNhdGlvbnMge1xuICBwYWRkaW5nLWxlZnQ6IDE4cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDE4cHg7IH1cbiAgLm9uYm9hcmRpbmctbm90aWZpY2F0aW9ucyBoMiB7XG4gICAgbGluZS1oZWlnaHQ6IDEuMmVtO1xuICAgIG1hcmdpbi10b3A6IDFlbTsgfVxuICAub25ib2FyZGluZy1ub3RpZmljYXRpb25zIGgzIHtcbiAgICBtYXJnaW4tdG9wOiAuNWVtOyB9XG4gIC5vbmJvYXJkaW5nLW5vdGlmaWNhdGlvbnMgcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICAgIGZvbnQtc2l6ZTogMTZweDsgfVxuXG4uaG9yaXpvbnRhbC1saXN0IGxpIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIGxpc3Qtc3R5bGUtaW1hZ2U6IG5vbmU7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cbiAgLmhvcml6b250YWwtbGlzdCBsaTpmaXJzdC1jaGlsZCB7XG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gIC5ob3Jpem9udGFsLWxpc3QgbGk6bGFzdC1jaGlsZCB7XG4gICAgcGFkZGluZy1yaWdodDogMDsgfVxuXG4uZm9udC1zaXplIHtcbiAgZm9udC1zaXplOiAxOHB4OyB9XG5cbi8qXG5EZW1vc1xuXG5TdHlsZWd1aWRlIDUuMFxuKi9cbi8qXG5Ib21lcGFnZVxuXG5NYXJrdXA6XG48ZGl2IGNsYXNzPVwibC13cmFwcGVybW9iaWxlXCI+XG4gIDxzZy1pbnNlcnQ+My4zPC9zZy1pbnNlcnQ+XG4gIDxkaXYgY2xhc3M9XCJsLWNoaWxkcmVudmVydGljYWxcIj5cbiAgICA8c2ctaW5zZXJ0PjQuNjwvc2ctaW5zZXJ0PlxuICAgIDxzZy1pbnNlcnQ+NC43PC9zZy1pbnNlcnQ+XG4gICAgPHNnLWluc2VydD40LjcuMTwvc2ctaW5zZXJ0PlxuICAgIDxzZy1pbnNlcnQ+NC4xMjwvc2ctaW5zZXJ0PlxuICAgIDxzZy1pbnNlcnQ+NC45PC9zZy1pbnNlcnQ+XG4gICAgPHNnLWluc2VydD40LjQ8L3NnLWluc2VydD5cbiAgICA8c2ctaW5zZXJ0PjQuMTM8L3NnLWluc2VydD5cbiAgICA8c2ctaW5zZXJ0PjQuMTE8L3NnLWluc2VydD5cbiAgICA8c2ctaW5zZXJ0PjQuODwvc2ctaW5zZXJ0PlxuICAgIDxzZy1pbnNlcnQ+NC41PC9zZy1pbnNlcnQ+XG4gIDwvZGl2PlxuICA8c2ctaW5zZXJ0PjMuOTwvc2ctaW5zZXJ0PlxuPC9kaXY+XG5cblN0eWxlZ3VpZGUgNS4xXG4qL1xuLypcblJlY2VpcHRcblxuTWFya3VwOlxuPGRpdiBjbGFzcz1cImwtcmVjZWlwdFwiPlxuICA8ZGl2IGNsYXNzPVwicmVjZWlwdGhlYWRlclwiPlxuICAgIDxkaXY+XG4gICAgICA8cCBjbGFzcz1cInJlY2VpcHRoZWFkZXIteC1uYW1lXCI+Sm9obiBEb2U8L3A+XG4gICAgICA8dGFibGUgY2xhc3M9XCJwcmludHRhYmxlIHByaW50dGFibGUtc21hbGxcIj5cbiAgICAgICAgPHRoZWFkIGNsYXNzPVwidmlzdWFsbHloaWRkZW5cIj5cbiAgICAgICAgICA8dHI+XG4gICAgICAgICAgICA8dGggc2NvcGU9XCJyb3dcIj5EaXJlY3Rpb248L3RoPlxuICAgICAgICAgICAgPHRoIHNjb3BlPVwicm93XCI+VmFsdWU8L3RoPlxuICAgICAgICAgIDwvdHI+XG4gICAgICAgIDwvdGhlYWQ+XG4gICAgICAgIDx0Ym9keT5cbiAgICAgICAgICA8dHI+XG4gICAgICAgICAgICA8dGggc2NvcGU9XCJyb3dcIj5SZTo8L3RoPlxuICAgICAgICAgICAgPHRkPllvdeKAmXZlIGNvbXBsZXRlZCB5b3VyIHB1cmNoYXNlITwvdGQ+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgICA8dHI+XG4gICAgICAgICAgICA8dGggc2NvcGU9XCJyb3dcIj5Ubzo8L3RoPlxuICAgICAgICAgICAgPHRkPk5hbWV5IE5hbWVyc29uPC90ZD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3Rib2R5PlxuICAgICAgPC90YWJsZT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicmVjZWlwdGhlYWRlci14LW1ldGFcIj5cbiAgICAgIDxwIGNsYXNzPVwicmVjZWlwdGhlYWRlci14LXRpbWVcIj45OjM0YW08L3A+XG4gICAgICA8ZGl2IGNsYXNzPVwicmVjZWlwdGhlYWRlci14LWF2YXRhclwiPkFCPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibC1yZWNlaXB0LXgtYm9keVwiPlxuICAgIDxoMSBjbGFzcz1cInJlY2VpcHRoZWFkaW5nXCI+UHVyY2hhc2UgQ29tcGxldGUhPC9oMT5cbiAgICA8aDIgY2xhc3M9XCJyZWNlaXB0aGVhZGluZyByZWNlaXB0aGVhZGluZy1zbWFsbFwiPkFjY291bnQgSW5mb3JtYXRpb248L2gyPlxuICAgIDx0YWJsZSBjbGFzcz1cInByaW50dGFibGVcIj5cbiAgICAgIDx0aGVhZCBjbGFzcz1cInZpc3VhbGx5aGlkZGVuXCI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGggc2NvcGU9XCJyb3dcIj5JbmZvcm1hdGlvbjwvdGg+XG4gICAgICAgICAgPHRoIHNjb3BlPVwicm93XCI+VmFsdWU8L3RoPlxuICAgICAgICA8L3RyPlxuICAgICAgPC90aGVhZD5cbiAgICAgIDx0Ym9keT5cbiAgICAgICAgPHRyPlxuICAgICAgICAgIDx0aCBzY29wZT1cInJvd1wiPkN1c3RvbWVyIE5hbWU8L3RoPlxuICAgICAgICAgIDx0ZD5OYW1leSBOYW1lcnNvbjwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGggc2NvcGU9XCJyb3dcIj5Vc2VybmFtZTwvdGg+XG4gICAgICAgICAgPHRkPnBheXBhbEB0ZXN0LmNvbTwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGggc2NvcGU9XCJyb3dcIj5FeHBpcmF0aW9uIERhdGU8L3RoPlxuICAgICAgICAgIDx0ZD5Ob3ZlbWJlciAyMCwgMjAxNjwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L3Rib2R5PlxuICAgIDwvdGFibGU+XG4gICAgPGgyIGNsYXNzPVwicmVjZWlwdGhlYWRpbmcgcmVjZWlwdGhlYWRpbmctc21hbGxcIj5QdXJjaGFzZWQgUHJvZHVjdHM8L2gyPlxuICAgIDx0YWJsZSBjbGFzcz1cInByaW50dGFibGUgcHJpbnR0YWJsZS1zcGFuXCI+XG4gICAgICA8dGhlYWQ+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGggc2NvcGU9XCJyb3dcIj5Qcm9kdWN0PC90aD5cbiAgICAgICAgICA8dGggc2NvcGU9XCJyb3dcIj5BbW91bnQ8L3RoPlxuICAgICAgICA8L3RyPlxuICAgICAgPC90aGVhZD5cbiAgICAgIDx0Ym9keT5cbiAgICAgICAgPHRyPlxuICAgICAgICAgIDx0ZD5DREUncyBDaGlsZHJlbiBpbiBCZXR3ZWVuIE9ubGluZSAzMC1kYXkgQWNjb3VudDwvdGQ+XG4gICAgICAgICAgPHRkPiQ0NS45NTwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L3Rib2R5PlxuICAgIDwvdGFibGU+XG4gIDwvZGl2PlxuPC9kaXY+XG5cblN0eWxlZ3VpZGUgNS4yXG4qL1xuLypcblB1cmNoYXNlZCBJdGVtc1xuXG5NYXJrdXA6XG48ZGl2IGNsYXNzPVwibC1jaGlsZHJlbnZlcnRpY2FsIGwtY2hpbGRyZW52ZXJ0aWNhbC1zbWFsbFwiPlxuICA8c2ctaW5zZXJ0PjMuNTY8L3NnLWluc2VydD5cbiAgPGRpdiBjbGFzcz1cInBhZ2V0aXRsZVwiPlxuICAgIDxoMT5QdXJjaGFzZWQgSXRlbXM8L2gxPlxuICA8L2Rpdj5cbiAgPHNnLWluc2VydD4zLjU3PC9zZy1pbnNlcnQ+XG48L2Rpdj5cblxuU3R5bGVndWlkZSA1LjNcbiovXG4vKlxuUmVzdWx0c1xuXG5NYXJrdXA6XG48ZGl2IGNsYXNzPVwibC1jb250YWluZXJob3Jpem9udGFsIGwtY29udGFpbmVyaG9yaXpvbnRhbC1zbWFsbCBsLWNvbnRhaW5lcmhvcml6b250YWwtaXMtbWlucGFkIGwtY29udGFpbmVydmVydGljYWwgbC1jaGlsZHJlbnZlcnRpY2FsIGwtY2hpbGRyZW52ZXJ0aWNhbFwiPlxuICA8ZGl2IGNsYXNzPVwiYm9yZGVyZWRcIj5cbiAgICA8aGVhZGVyIGNsYXNzPVwicGFnZS10aXRsZSBwYWdlLXRpdGxlLWNlbnRlcmVkXCI+XG4gICAgICA8aW1nIHNyYz1cImh0dHA6Ly9wbGFjZWhvbGQuaXQvMTEyeDg2XCIgYWx0PVwiUmVzdWx0cyBjZXJ0aWZpY2F0ZSBpY29uXCI+XG4gICAgICA8aDE+Q29uZ3JhdHVsYXRpb25zIEpvaG4gQmxpbWI8L2gxPlxuICAgICAgPHA+WW91IGhhdmUgcGFzc2VkIGFsbCBzaXggY2hhcHRlcnMsIGFuZCB0aGUgZmluYWwgZXhhbSB3aXRoIGEgY3VtdWxhdGl2ZSBzY29yZSBvZiA8c3Ryb25nPjAlPC9zdHJvbmc+LjwvcD5cbiAgICA8L2hlYWRlcj5cbiAgICA8Zm9ybSBjbGFzcz1cImZvcm0gZm9ybS1ub21hcmdpblwiPlxuICAgICAgPGRpdiBjbGFzcz1cImZvcm0tcm93XCI+XG4gICAgICAgIDxociBjbGFzcz1cInJ1bGVcIj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImZvcm0tcm93XCI+XG4gICAgICAgIDxoND5BZGQgeW91ciBDYXNlIE51bWJlcjwvaDQ+XG4gICAgICAgIDxwIGNsYXNzPVwidS10ZXh0LXNtYWxsXCI+SWYgeW91IGhhdmUgYmVndW4gdGhlIGNvdXJ0IHByb2Nlc3MsIHBsZWFzZSBlbnRlciB5b3VyIGNhc2UgbnVtYmVyIGJlbG93LiBJdCB3aWxsIGJlIHByaW50ZWQgb24geW91ciBjZXJ0aWZpY2F0ZS48L3A+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLXJvd1wiPlxuICBcdFx0XHQ8cCBjbGFzcz1cImxhYmVsXCI+RmlsaW5nIENvdW50eTo8L3A+XG4gIFx0XHRcdDxwIGNsYXNzPVwidmFsdWVcIj48aW5wdXQgdHlwZT1cInRleHRcIiBkaXNhYmxlZD1cImRpc2FibGVkXCIgcGxhY2Vob2xkZXI9XCJDYWxpZm9ybmlhLCBTYW4gQmVybmFyZGlubyBDb3VudHlcIj48L3A+XG4gIFx0XHQ8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLXJvd1wiPlxuICBcdFx0XHQ8cCBjbGFzcz1cImxhYmVsXCI+Q2FzZSBOdW1iZXI6PC9wPlxuICBcdFx0XHQ8ZGl2IGNsYXNzPVwidmFsdWVcIj48aW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwiY2FzZV9udW1iZXJcIiB2YWx1ZT1cIlEtNE0tNEMtMDVcIiBwbGFjZWhvbGRlcj1cIkVudGVyIHlvdXIgY2FzZSBudW1iZXJcIiBpZD1cImlkX2Nhc2VfbnVtYmVyXCIgbWF4bGVuZ3RoPVwiMjAwXCI+PC9kaXY+XG4gIFx0XHQ8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJlbWFpbC1yZXN1bHRzXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdWJtaXRcIj5cbiAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJidXR0b25cIiB0eXBlPVwic3VibWl0XCIgbmFtZT1cImRvd25vYWRcIiB2YWx1ZT1cIkRvd25sb2FkIENlcnRpZmljYXRlXCI+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvblwiIG9uY2xpY2s9XCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjZW1haWwtcmVzdWx0cy1mb3JtJykuc3R5bGUuZGlzcGxheSA9ICdibG9jaydcIiB0eXBlPVwiYnV0dG9uXCI+RW1haWwgQ2VydGlmaWNhdGU8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgaWQ9XCJlbWFpbC1yZXN1bHRzLWZvcm1cIiBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1yb3dcIj5cbiAgICAgICAgICAgIDxoND5FbWFpbCBhIFBERiBjZXJ0aWZpY2F0ZSB0bzo8L2g0PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLXJvd1wiPlxuICAgICAgXHRcdFx0PHAgY2xhc3M9XCJsYWJlbFwiPk5hbWU6PC9wPlxuICAgICAgXHRcdFx0PGRpdiBjbGFzcz1cInZhbHVlXCI+XG4gICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIG5hbWU9XCJuYW1lXCIgcGxhY2Vob2xkZXI9XCJFbnRlciBuYW1lXCIgaWQ9XCJuYW1lXCIgbWF4bGVuZ3RoPVwiMjAwXCI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgIFx0XHQ8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1yb3dcIj5cbiAgICAgIFx0XHRcdDxwIGNsYXNzPVwibGFiZWxcIj5FbWFpbDo8L3A+XG4gICAgICBcdFx0XHQ8ZGl2IGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJlbWFpbFwiIG5hbWU9XCJlbWFpbFwiIHBsYWNlaG9sZGVyPVwiRW50ZXIgZW1haWxcIiBpZD1cImVtYWlsXCIgbWF4bGVuZ3RoPVwiMjAwXCI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgIFx0XHQ8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1yb3cgY2hlY2tib3hcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZVwiPlxuICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cImVtYWlsX2NvcHlcIiBpZD1cImVtYWlsX2NvcHlcIj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cImVtYWlsX2NvcHlcIj5cbiAgICAgICAgICAgICAgPHA+RW1haWwgbWUgYSBjb3B5IG9mIG15IGNlcnRpZmljYXRlPC9wPlxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1yb3cgZm9ybS1yb3ctc3VibWl0XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1yb3ctc3VibWl0LXgtYnV0dG9uXCI+XG4gICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidXR0b25cIiBvbmNsaWNrPVwiZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmZvcm0tcm93LXN1Ym1pdCcpLmNsYXNzTGlzdC5hZGQoJ2Zvcm0tcm93LXN1Ym1pdC1pcy1zdWNjZXNzJylcIiB0eXBlPVwiYnV0dG9uXCI+U2VuZCBFbWFpbDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1yb3ctc3VibWl0LXgtbWVzc2FnZVwiPkVtYWlsIFNlbnQhPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9mb3JtPlxuICA8L2Rpdj5cbiAgPGRpdj5cbiAgICA8aDQ+RmlsaW5nIHlvdXIgY2VydGlmaWNhdGUgb2YgY29tcGxldGlvbjo8L2g0PlxuICAgIDxwIGNsYXNzPVwidS10ZXh0LXNtYWxsXCI+VGhlIE1hcmljb3BhIENvdW50eSBDb3VydCBubyBsb25nZXIgYWNjZXB0cyBwYXBlciBjZXJ0aWZpY2F0ZXMuIDxicj5UaGUgQ2VudGVyIGZvciBEaXZvcmNlIEVkdWNhdGlvbiB3aWxsIGVGaWxlIHlvdXIgQ2VydGlmaWNhdGUgd2l0aCB0aGUgTWFyaWNvcGEgQ291cnQuIDxicj5FbnRlciB5b3VyIGNhc2UgbnVtYmVyIGluIHRoZSBib3ggYWJvdmUsIG9yIHRoZSBjb3VydCB3aWxsIG5vdCBhY2NlcHQgeW91ciBDZXJ0aWZpY2F0ZS4gPGJyPllvdSBzaG91bGQgZG93bmxvYWQgYW5kL29yIGVtYWlsIHlvdXJzZWxmIGEgY29weSBvZiB0aGUgY2VydGlmaWNhdGVzIGZvciB5b3VyIHJlY29yZHMuPC9wPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImwtY2hpbGRyZW52ZXJ0aWNhbFwiPlxuICAgIDxoMT5Zb3UgbWF5IGFsc28gbGlrZSZoZWxsaXA7PGgxPlxuICAgIDxzZy1pbnNlcnQ+My41OTwvc2ctaW5zZXJ0PlxuICAgIDxzZy1pbnNlcnQ+My41OTwvc2ctaW5zZXJ0PlxuICAgIDxzZy1pbnNlcnQ+My41OTwvc2ctaW5zZXJ0PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG5TdHlsZWd1aWRlIDUuNFxuKi9cbiJdfQ== */