@charset "UTF-8";
/* Put your global styles here */
/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */
/* Document
   ========================================================================== */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in
 *    IE on Windows Phone and in iOS.
 */
html {
  line-height: 1.15;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
}

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

/**
 * Add the correct display in IE 9-.
 */
article,
aside,
footer,
header,
nav,
section {
  display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
   ========================================================================== */
/**
 * Add the correct display in IE 9-.
 * 1. Add the correct display in IE.
 */
figcaption,
figure,
main {
  /* 1 */
  display: block;
}

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

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

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

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

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

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

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

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

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

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

/**
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

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

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

/**
 * Remove the border on images inside links in IE 10-.
 */
img {
  border-style: none;
}

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

/* Forms
   ========================================================================== */
/**
 * 1. Change the font styles in all browsers (opinionated).
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
  font-family: sans-serif;
  /* 1 */
  font-size: 100%;
  /* 1 */
  line-height: 1.15;
  /* 1 */
  margin: 0;
  /* 2 */
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input {
  /* 1 */
  overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select {
  /* 1 */
  text-transform: none;
}

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

/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */
fieldset {
  padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */
legend {
  box-sizing: border-box;
  /* 1 */
  color: inherit;
  /* 2 */
  display: table;
  /* 1 */
  max-width: 100%;
  /* 1 */
  padding: 0;
  /* 3 */
  white-space: normal;
  /* 1 */
}

/**
 * 1. Add the correct display in IE 9-.
 * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  display: inline-block;
  /* 1 */
  vertical-align: baseline;
  /* 2 */
}

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

/**
 * 1. Add the correct box sizing in IE 10-.
 * 2. Remove the padding in IE 10-.
 */
[type="checkbox"],
[type="radio"] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  outline-offset: -2px;
  /* 2 */
}

/**
 * Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
 */
[type="search"]::-webkit-search-cancel-button,
[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
  -webkit-appearance: button;
  /* 1 */
  font: inherit;
  /* 2 */
}

/* Interactive
   ========================================================================== */
/*
 * Add the correct display in IE 9-.
 * 1. Add the correct display in Edge, IE, and Firefox.
 */
details,
menu {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */
summary {
  display: list-item;
}

/* Scripting
   ========================================================================== */
/**
 * Add the correct display in IE 9-.
 */
canvas {
  display: inline-block;
}

/**
 * Add the correct display in IE.
 */
template {
  display: none;
}

/* Hidden
   ========================================================================== */
/**
 * Add the correct display in IE 10-.
 */
[hidden] {
  display: none;
}

/*! HTML5 Boilerplate v6.0.1 | MIT License | https://html5boilerplate.com/ */
/*
 * What follows is the result of much research on cross-browser styling.
 * Credit left inline and big thanks to Nicolas Gallagher, Jonathan Neal,
 * Kroc Camen, and the H5BP dev community and team.
 */
/* ==========================================================================
   Base styles: opinionated defaults
   ========================================================================== */
/*
 * Remove text-shadow in selection highlight:
 * https://twitter.com/miketaylr/status/12228805301
 *
 * Vendor-prefixed and regular ::selection selectors cannot be combined:
 * https://stackoverflow.com/a/16982510/7133471
 *
 * Customize the background color to match your design.
 */
::-moz-selection {
  background: #b3d4fc;
  text-shadow: none;
}

::selection {
  background: #b3d4fc;
  text-shadow: none;
}

/*
 * A better looking default horizontal rule
 */
hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #ccc;
  margin: 1em 0;
  padding: 0;
}

/*
 * Remove the gap between audio, canvas, iframes,
 * images, videos and the bottom of their containers:
 * https://github.com/h5bp/html5-boilerplate/issues/440
 */
audio,
canvas,
iframe,
img,
svg,
video {
  vertical-align: middle;
}

/*
 * Remove default fieldset styles.
 */
fieldset {
  border: 0;
  margin: 0;
  padding: 0;
}

/*
 * Allow only vertical resizing of textareas.
 */
textarea {
  resize: vertical;
}

/* ==========================================================================
   Browser Upgrade Prompt
   ========================================================================== */
.browserupgrade {
  margin: 0.2em 0;
  background: #ccc;
  color: #000;
  padding: 0.2em 0;
  text-align: center;
}

/* ==========================================================================
   Helper classes
   ========================================================================== */
/*
 * Hide visually and from screen readers
 */
.hidden {
  display: none !important;
}

/*
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 */
.visuallyhidden {
  border: 0;
  clip: rect(0 0 0 0);
  -webkit-clip-path: inset(50%);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  /* 1 */
}

/*
 * Extends the .visuallyhidden class to allow the element
 * to be focusable when navigated to via the keyboard:
 * https://www.drupal.org/node/897638
 */
.visuallyhidden.focusable:active,
.visuallyhidden.focusable:focus {
  clip: auto;
  -webkit-clip-path: none;
  clip-path: none;
  height: auto;
  margin: 0;
  overflow: visible;
  position: static;
  width: auto;
  white-space: inherit;
}

/*
 * Hide visually and from screen readers, but maintain layout
 */
.invisible {
  visibility: hidden;
}

/*
 * Clearfix: contain floats
 *
 * For modern browsers
 * 1. The space content is one way to avoid an Opera bug when the
 *    `contenteditable` attribute is included anywhere else in the document.
 *    Otherwise it causes space to appear at the top and bottom of elements
 *    that receive the `clearfix` class.
 * 2. The use of `table` rather than `block` is only necessary if using
 *    `:before` to contain the top-margins of child elements.
 */
.clearfix:before,
.clearfix:after {
  content: " ";
  /* 1 */
  display: table;
  /* 2 */
}

.clearfix:after {
  clear: both;
}

/* ==========================================================================
   Print styles.
   Inlined to avoid the additional HTTP request:
   http://www.phpied.com/delay-loading-your-print-css/
   ========================================================================== */
@media print {
  *,
  *:before,
  *:after {
    background: transparent !important;
    color: #000 !important;
    /* Black prints faster:
                                   http://www.sanbeiji.com/archives/953 */
    box-shadow: none !important;
    text-shadow: none !important;
  }
  a,
  a:visited {
    text-decoration: underline;
  }
  a[href]:after {
    content: " (" attr(href) ")";
  }
  abbr[title]:after {
    content: " (" attr(title) ")";
  }
  /*
     * Don't show links that are fragment identifiers,
     * or use the `javascript:` pseudo protocol
     */
  a[href^="#"]:after,
  a[href^="javascript:"]:after {
    content: "";
  }
  pre {
    white-space: pre-wrap !important;
  }
  pre,
  blockquote {
    border: 1px solid #999;
    page-break-inside: avoid;
  }
  /*
     * Printing Tables:
     * http://css-discuss.incutio.com/wiki/Printing_Tables
     */
  thead {
    display: table-header-group;
  }
  tr,
  img {
    page-break-inside: avoid;
  }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3;
  }
  h2,
  h3 {
    page-break-after: avoid;
  }
}

html {
  -webkit-font-smoothing: antialiased;
}

body {
  font-family: Helvetica, sans-serif;
  font-size: 1rem;
  line-height: 1.25rem;
  font-weight: normal;
}

.f-header {
  font-size: 2rem;
  z-index: 3;
}

.scrolling .f-header {
  font-size: 1rem;
}

.baseline, .tmpline {
  text-transform: uppercase;
}

.tmpline {
  font-size: 0.8rem;
}

.block-title {
  text-transform: uppercase;
  font-weight: normal;
}

.block-title a {
  text-decoration: none;
  position: relative;
}

.block-title a:hover:after {
  position: absolute;
  content: '→';
  right: -20px;
}

.agenda .type {
  text-transform: uppercase;
  font-size: 0.75rem;
}

.agenda h4 {
  margin: 5px 0;
  padding: 0;
  font-weight: normal;
}

.agenda .location {
  font-size: 0.85rem;
  line-height: 1rem;
}

.agenda .date:after {
  content: ' -';
}

.news h4 {
  margin: 10px 0 0 0;
  padding: 10px;
  font-size: 1.25rem;
  font-weight: 400;
}

.news .intro {
  padding: 0 10px;
}

.news .news-item a {
  text-decoration: none;
}

.info {
  font-size: 0.9rem;
  line-height: 1.1rem;
}

.nav {
  font-size: 1.5rem;
}

.nav .menu-header {
  text-transform: uppercase;
  font-size: 1rem;
}

.nav .c1 {
  font-size: 2.5rem;
}

.nav .minor, .nav .minor .c1 {
  font-size: 1rem;
}

.nav .minor a, .nav .minor .c1 a {
  margin-left: 10px;
}

.nav .minor ul, .nav .minor .c1 ul {
  margin-top: -22px;
}

.nav .minor ul li a, .nav .minor .c1 ul li a {
  margin-left: 0;
  margin-right: 10px;
}

.nav .minor ul li a:hover:after, .nav .minor .c1 ul li a:hover:after {
  display: none;
}

.nav ul li ul li {
  line-height: 1.5rem;
}

.page-title {
  font-size: 1.5rem;
  line-height: 1.65rem;
  font-weight: normal;
  text-transform: uppercase;
}

.nat {
  font-size: 0.85rem;
}

.page h1, .page h2, .page-2-col h1, .page-2-col h2 {
  font-weight: 400;
}

.page h4, .page-2-col h4 {
  font-weight: normal;
  text-transform: uppercase;
  margin-bottom: 0;
  padding-bottom: 0;
  margin-top: 40px;
  padding-left: 20px;
}

.page h5, .page-2-col h5 {
  margin-bottom: 0;
  padding-bottom: 0;
  margin-top: 20px;
  font-size: 1rem;
  padding-left: 20px;
}

.page p, .page-2-col p {
  margin-top: 5px;
  padding: auto 20px;
  line-height: 1.45rem;
}

.page .subnav h3 {
  font-weight: normal;
  text-transform: uppercase;
}

.page-2-col .intro {
  text-transform: uppercase;
  font-size: 0.9rem;
}

.tmp h4 {
  padding-left: 0;
  font-weight: bold;
}

.tmp h5 {
  padding-left: 0;
}

.whoiswho h4 {
  font-weight: 400;
}

.credits {
  font-size: 0.8rem;
}

@media only screen and (max-width: 45em) {
  .f-header {
    font-size: 1rem;
  }
}

/* Put your layout here */
html, body {
  height: 100%;
}

body {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
      flex-direction: column;
}

#container {
  -ms-flex: 1 0 auto;
      flex: 1 0 auto;
  margin-bottom: 40px;
}

footer {
  position: relative;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: center;
      justify-content: center;
}

footer .credits {
  position: absolute;
  bottom: 15px;
  right: 20px;
}

footer .credits a {
  text-decoration: none;
  color: #bcbcbc;
}

.switch {
  position: fixed;
  top: 0;
  z-index: 9999;
  background: pink;
  left: 0;
  width: 100%;
}

.header {
  position: fixed;
  width: 100%;
  top: 0;
  height: 75px;
  background: #f9f9f9;
  z-index: 1;
  display: none;
}

.header .baseline {
  margin-top: 25px;
}

.logo {
  position: fixed;
  top: 20px;
  left: 30px;
  z-index: 6;
}

.baseline {
  text-align: center;
}

.tmpline {
  position: fixed;
  background: #333;
  color: white;
  border: 1px solid #333;
  top: 0px;
  height: 48px;
  width: calc(100% - 340px);
  padding: 10px;
  padding-top: 15px;
  margin: 0 auto;
  right: 0;
}

.tmpline a {
  color: white;
}

.langswitch {
  position: fixed;
  top: 25px;
  right: 75px;
  z-index: 2;
}

.langswitch a {
  margin: 0 2px;
  text-decoration: none;
}

footer img {
  margin: 0 auto;
}

.fixed .f-header {
  visibility: hidden;
}

.fixed header {
  display: block;
}

/* HOMEPAGE */
.f-header {
  background: #f9f9f9;
  padding: 20px 0;
  position: fixed;
  width: 100%;
  bottom: 0;
}

.bgimg {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
  top: 0;
  z-index: 0 !important;
  height: calc(100vh - 60px);
  background-repeat: no-repeat;
  background-position: center top;
  background-attachment: fixed;
  background-size: cover;
}

.bgimg:before {
  position: absolute;
  content: '.....';
  top: 50%;
  width: 100%;
  margin: 0 auto;
  text-align: center;
  animation: loader 1s linear infinite;
}

.bgimg.loaded:before {
  display: none;
}

@keyframes loader {
  0% {
    content: ".    ";
  }
  25% {
    content: "..   ";
  }
  50% {
    content: "...  ";
  }
  75% {
    content: ".... ";
  }
  100% {
    content: ".....";
  }
}

.main .content {
  max-width: 1400px;
  margin: 40px auto 0 auto;
}

.block-title {
  text-align: center;
}

.agenda {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: center;
      justify-content: center;
  margin-bottom: 20px;
}

.agenda .agenda-item {
  width: 20%;
  padding: 10px 20px;
  position: relative;
  text-align: center;
}

.agenda .agenda-item a {
  text-decoration: none;
}

.agenda .agenda-item a:hover:after {
  position: absolute;
  content: '→';
  bottom: -10px;
  left: 0;
  right: 0;
}

.agenda .agenda-item:last-child:before, .agenda .agenda-item.a55:before {
  display: none;
}

.agenda .agenda-item:before {
  position: absolute;
  content: '';
  height: 100%;
  background: #333;
  width: 1px;
  top: 0;
  right: 0;
}

.news {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -ms-flex-pack: center;
      justify-content: center;
}

.news .thumb {
  max-height: 300px;
  overflow: hidden;
  text-align: center;
}

.news .thumb:hover img {
  transform: scale(1.25);
}

.news .news-item {
  width: calc(100%/3 - 20px);
  margin: 10px 10px 20px 10px;
}

.news .news-item p {
  padding: 0;
  margin: 0;
}

.news .news-item .read-more {
  margin-top: 10px;
  text-decoration: underline;
}

.home .more {
  text-align: center;
  margin-bottom: 60px;
  display: block;
}

.home .more a {
  padding: 5px 10px;
}

.info {
  border-top: 1px solid #333;
  padding-top: 30px;
  display: -ms-flexbox;
  display: flex;
  margin-top: 60px;
}

.info .block-title {
  text-align: left;
}

.info .block-wrapper {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -ms-flex-pack: center;
      justify-content: center;
}

.info .block {
  width: calc(100%/3 - 40px);
  margin: 10px 10px 20px 10px;
  padding-left: 10px;
  padding-right: 10px;
}

.info .block-social a {
  display: inline-block;
  margin-right: 7px;
}

.info .form {
  margin-top: 53px;
}

.info input[type="email"] {
  border: none;
  border: 1px solid #333;
  background: transparent;
  padding: 10px;
  width: calc(100% - 50px);
  margin-bottom: 10px;
  border-radius: 0;
  -webkit-appearance: none;
}

.info button, .info .button {
  background: transparent;
  border: 1px solid #333;
  padding: 10px;
  display: inline-block;
  text-decoration: none;
}

.info button:hover, .info .button:hover {
  background: #333;
  color: white;
}

.homebig .news .news-item {
  width: calc(100% - 20px);
}

.homebig .news .neh1 {
  width: calc(100%/3*2);
}

.homebig .news .neh1 .news-item .thumb {
  max-height: 600px;
}

.homebig .news .neh2 {
  width: calc(100%/3);
}

.page .header, .page-2-col .header, .agendapage .header, .newspage .header {
  display: block;
}

/* REGULAR PAGE 1 COLUMN */
/*.page {
  .subnav {
    min-width:265px;
    position: fixed;
    z-index: 66;
    top:53px;
    right:100px;
    text-align: center;

    button {
      text-align: center;
      margin: 0 auto;
      position: relative;
    }

    nav {
      margin-top: -22px;
      display: none;
      background: white;
      padding:20px;
      // text-align: left;
    }
  }
}
.sub-menu-open {
  .subnav nav {
    display: block !important;
  }
}*/
.page .container .page-title {
  padding: 0 0 15px 0;
  width: 100%;
  left: 0;
  text-align: center;
}

.page .container .content {
  margin-top: 100px;
  max-width: 900px;
  padding: 0 10px;
  text-align: center;
}

.page .container .content p, .page .container .content h4 {
  max-width: 800px;
}

.page .container .content p {
  margin-left: auto;
  margin-right: auto;
  text-align: left;
}

.page .container .content h4 {
  margin-bottom: 10px;
}

.page .container .content img {
  margin-top: 40px;
  width: 100%;
}

.page .container .content .img img {
  width: auto;
  display: inline-block;
}

.page .container .ti2 {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: end;
      align-items: flex-end;
}

.page .container .ti2 .img {
  max-width: 50%;
}

.page .container .ti2 .i1 {
  margin-right: 20px;
}

.page .container .ti2 .i2 {
  margin-left: 20px;
}

/* REGULAR PAGE - 2 COLUMNS */
.page-2-col .container .banner {
  max-height: 400px;
  overflow: hidden;
}

.page-2-col .container .banner img {
  width: 100%;
}

.page-2-col .container .content {
  padding-left: 30px;
  padding-right: 30px;
}

.page-2-col .container .content .intro {
  max-width: 70%;
  margin-bottom: 40px;
}

.page-2-col .container .content img {
  margin-top: 20px;
}

.page-2-col .container .subnav {
  position: relative;
  background: rgba(229, 140, 114, 0.6);
  width: 100%;
  top: 0;
  left: 0;
  right: 0;
  text-align: center;
  margin: 0 auto;
}

.page-2-col .container .subnav ul {
  max-width: 1440px;
  text-align: left;
  margin: 0 auto;
  padding: 0;
}

.page-2-col .container .subnav li {
  display: inline-block;
  margin: 0 -5px 0 0;
}

.page-2-col .container .subnav li a {
  display: block;
  padding: 20px;
  text-transform: uppercase;
  font-size: 0.9rem;
  font-weight: bold;
}

.page-2-col .container .subnav li a:hover, .page-2-col .container .subnav li a.active {
  background: rgba(229, 140, 114, 0.6);
  color: #333;
}

.page-2-col .container .left, .page-2-col .container .right {
  display: inline-block;
  width: calc(50% - 34px);
  vertical-align: top;
}

.page-2-col .container .left figure, .page-2-col .container .right figure {
  margin: 0;
}

.page-2-col .container .left {
  padding-right: 30px;
}

.page-2-col .container .right {
  padding-left: 30px;
}

.agendapage .agenda {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.agendapage .agenda .agenda-item {
  margin-bottom: 40px;
  width: calc(20% - 41px);
  text-align: center;
  padding-top: 20px;
  padding-bottom: 20px;
  border-right: none;
}

.agendapage .agenda .agenda-item:after {
  position: absolute;
  content: '';
  height: 1px;
  background: #333;
  width: 100%;
  bottom: -20px;
  left: 0;
}

.agendapage .agenda .agenda-item:nth-child(5n):before, .agendapage .agenda .agenda-item.last:before {
  display: none;
}

.agendapage .content {
  margin-top: 75px;
}

.agendapage .filters {
  text-align: center;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: center;
      justify-content: center;
  margin-bottom: 30px;
}

.agendapage .filters .filter {
  position: relative;
  margin: 20px;
  cursor: pointer;
}

.agendapage .filters .filter:before {
  content: '';
  width: 10px;
  height: 10px;
  border: 1px solid #333;
  display: block;
  position: absolute;
  left: -20px;
  top: 3px;
}

.agendapage .filters .filter.active:before, .agendapage .filters .filter:hover:before {
  background: #333;
}

/* news page */
.newspage .content {
  margin-top: 75px;
}

.newspage .news-item {
  margin-bottom: 40px;
}

/* who is who page */
.whoiswho .container .subnav, .page-2-col .container .subnav {
  background: none;
  text-align: center;
  margin: 0 auto;
  max-width: 1360px;
}

.whoiswho .container .subnav ul, .page-2-col .container .subnav ul {
  width: auto;
  text-align: center;
}

.whoiswho .container .subnav ul a, .page-2-col .container .subnav ul a {
  text-transform: none;
  font-weight: normal;
  font-size: 1.2rem;
  position: relative;
}

.whoiswho .container .subnav ul a:after, .page-2-col .container .subnav ul a:after {
  position: absolute;
  content: '';
  width: 100%;
  left: 0;
  bottom: 0;
  transform: scaleX(0);
  height: 1px;
  display: block;
  background: #333;
  transition: all 0.05s cubic-bezier(0.445, 0.05, 0.55, 0.95);
}

.whoiswho .container .subnav ul a:hover, .whoiswho .container .subnav ul a.active, .page-2-col .container .subnav ul a:hover, .page-2-col .container .subnav ul a.active {
  background: none;
}

.whoiswho .container .subnav ul a:hover:after, .whoiswho .container .subnav ul a.active:after, .page-2-col .container .subnav ul a:hover:after, .page-2-col .container .subnav ul a.active:after {
  transform: scaleX(1);
}

.whoiswho h1, .page-2-col h1 {
  text-transform: none;
  text-align: center;
  margin-bottom: 40px;
}

.whoiswho .intro, .page-2-col .intro {
  max-width: 100%;
  text-align: center;
  margin: 0 auto;
}

.whoiswho .item a, .page-2-col .item a {
  text-decoration: none;
}

.whoiswho .teacher h4, .page-2-col .teacher h4 {
  position: relative;
  display: inline-block;
}

.whoiswho .teacher a:hover h4:after, .page-2-col .teacher a:hover h4:after {
  position: absolute;
  content: '→';
  right: -20px;
}

.whoiswho .student, .page-2-col .student {
  margin-bottom: 10px;
}

.whoiswho .student a, .page-2-col .student a {
  display: inline-block;
  position: relative;
}

.whoiswho .student a:hover:after, .page-2-col .student a:hover:after {
  position: absolute;
  content: '→';
  top: 0;
  right: -20px;
}

.whoiswho .student .track, .page-2-col .student .track {
  margin-top: 5px;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: center;
      justify-content: center;
}

.whoiswho .student .trackyear, .page-2-col .student .trackyear {
  width: 10px;
  height: 10px;
  border: 1px solid #333;
  margin-right: 2px;
}

.whoiswho .student .trackyear.active, .page-2-col .student .trackyear.active {
  background: #333;
}

.staff .container .left {
  width: calc(100% - 34px);
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: distribute;
      justify-content: space-around;
}

.staff .container .left .item h4 {
  margin-top: 30px;
}

.students .container .left {
  width: calc(100% - 34px);
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.students .container .left .generation, .students .container .left .block {
  width: calc(100%/5 - 20px);
  margin: 10px;
  text-align: center;
}

.students .container .left .generation h4, .students .container .left .block h4 {
  margin-bottom: 20px;
}

.students .container .left .item h4 {
  margin-top: 30px;
}

@media only screen and (max-width: 70em) {
  .logo {
    left: 10px;
  }
  .logo img {
    max-width: 200px;
  }
  .tmpline {
    width: calc(100% - 250px);
    padding-top: 5px;
    padding-bottom: 5px;
    height: 63px;
  }
  .page-2-col .container .content {
    padding-left: 20px;
    padding-right: 20px;
  }
  .page-2-col .container .content .intro {
    max-width: 100%;
  }
  .agenda .agenda-item, .agendapage .agenda .agenda-item {
    width: calc(100%/3 - 41px);
  }
  .agenda .agenda-item:nth-child(5n):before, .agendapage .agenda .agenda-item:nth-child(5n):before {
    display: block;
  }
  .agenda .agenda-item:nth-child(3n):before, .agendapage .agenda .agenda-item:nth-child(3n):before {
    display: none;
  }
  .agenda .agenda-item:nth-child(3n):before, .agendapage .agenda .agenda-item:nth-child(3n):before {
    display: none;
  }
  .gallerypage .ti2 {
    display: block;
  }
  .gallerypage .ti2 .img {
    max-width: 100%;
  }
  .gallerypage .ti2 .i1 {
    margin-right: 0;
  }
  .gallerypage .ti2 .i2 {
    margin-left: 0;
  }
}

@media only screen and (max-width: 45em) {
  .logo img {
    max-width: 200px;
  }
  .tmpline {
    top: 60px;
    padding-left: 20px;
    text-align: center;
    width: calc(100% - 20px);
    height: auto;
  }
  .header {
    height: 95px;
  }
  .header .baseline {
    margin-top: 60px;
  }
  .info {
    -ms-flex-direction: column;
        flex-direction: column;
  }
  .info .block-wrapper {
    width: 100%;
    padding: 0;
    margin-bottom: 30px;
  }
  .info .form input {
    width: calc(100% - 20px);
  }
  .main .content {
    margin: 0 10px;
  }
  .agenda, .agendapage .agenda {
    display: block;
  }
  .agenda .agenda-item, .agendapage .agenda .agenda-item {
    padding: 10px 0 20px 0;
    width: 100%;
  }
  .agenda .agenda-item:after, .agendapage .agenda .agenda-item:after {
    display: block;
  }
  .agenda .agenda-item:before, .agendapage .agenda .agenda-item:before {
    display: none !important;
  }
  .agenda .agenda-item:last-child:after, .agendapage .agenda .agenda-item:last-child:after {
    display: none;
  }
  .home .agenda {
    margin-bottom: 10px;
  }
  .home .agenda .agenda-item:after {
    position: absolute;
    content: '';
    height: 1px;
    background: #333;
    width: 100%;
    bottom: 0;
    left: 0;
  }
  .agendapage .content {
    margin-top: 75px;
  }
  .agendapage .filters {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .agendapage .filters .filter {
    margin-bottom: 0;
  }
  .news {
    display: block;
  }
  .news .news-item {
    margin: 0 0 40px 0;
    width: 100%;
    max-width: 100%;
  }
  .news .news-item .thumb {
    max-height: none;
  }
  .homebig .news .neh1, .homebig .news .neh2 {
    width: 100%;
  }
  .homebig .news .news-item {
    width: 100%;
  }
  .page p {
    padding-left: 0;
    padding-right: 0;
  }
  .page .container .content {
    padding: 0;
    text-align: left;
  }
  .page .container .page-title {
    text-align: left;
  }
  .page-2-col .container .content {
    padding-left: 0;
    padding-right: 0;
  }
  .page-2-col .container .content .left, .page-2-col .container .content .right {
    display: block;
    width: 100%;
    max-width: none;
    padding: 0;
  }
  .page-2-col .container .intro {
    margin-top: 20px;
    text-align: left;
  }
  footer .credits {
    bottom: 50px;
  }
}

@supports (-webkit-overflow-scrolling: touch) { {
    /* CSS specific to iOS devices */
  }
  .bgimg {
    background-attachment: scroll !important;
    height: calc(100vh - 95px);
  }
}

@media only screen and (max-width: 30em) {
  .langswitch {
    top: 15px;
  }
  .header {
    height: 65px;
  }
  .header .baseline {
    display: none;
  }
  .info .block-wrapper {
    -ms-flex-direction: column;
        flex-direction: column;
  }
  .info .block-wrapper .block {
    width: 100%;
    padding: 0;
    margin-left: 0;
    margin-right: 0;
  }
  .info .form {
    margin-top: 0;
  }
  footer .credits {
    bottom: 35px;
  }
}

.nav {
  position: fixed;
  display: none;
  top: 0;
  left: 0;
  z-index: 4;
  text-align: center;
  overflow: hidden;
  overflow-y: scroll;
  transition: all 0.15s cubic-bezier(0.445, 0.05, 0.55, 0.95);
}

.nav .menu-header {
  margin-top: 20px;
  position: fixed;
  left: -14px;
  right: 0;
}

.nav ul {
  padding: 120px 0 40px 0;
}

.nav ul .c1 {
  display: block;
  width: calc(50% - 40px);
  text-align: right;
}

.nav ul li {
  display: block;
}

.nav ul li a {
  text-decoration: none;
}

.nav ul li ul {
  padding-top: 0;
  width: calc(50% - 80px);
  margin-left: calc(50% + 40px);
  text-align: left;
}

.nav ul li ul li {
  margin-bottom: 10px;
}

.nav ul li ul li a {
  position: relative;
}

.nav ul li ul li a:hover:after {
  position: absolute;
  content: '→';
  right: -40px;
}

.nav ul li ul li a.active:after {
  position: absolute;
  content: '←';
  right: -40px;
}

.nav:before {
  position: fixed;
  content: '';
  height: calc(100% - 80px);
  width: 1px;
  background: #333;
  left: -14px;
  right: 0;
  margin: 0 auto;
  top: 80px;
  text-align: center;
}

.minor {
  margin-top: 30px;
}

.m-menu {
  position: fixed;
  top: 25px;
  right: 20px;
  z-index: 5;
}

.m-menu .mm {
  border: none;
  background: none;
  cursor: pointer;
  position: relative;
  display: block;
  width: 26px;
  height: 26px;
  outline: none;
}

.m-menu .mm:before, .m-menu .mm:after {
  position: absolute;
  display: block;
  content: '';
  width: 14px;
  height: 2px;
  background-color: #333;
  transition: all 0.15s cubic-bezier(0.445, 0.05, 0.55, 0.95);
}

.m-menu .mm:after {
  top: 7px;
}

.m-menu-open {
  overflow: hidden;
}

.m-menu-open .m-menu {
  right: 35px;
}

.m-menu-open .m-menu .mm:before {
  top: 10px;
  transform: rotate(-45deg);
}

.m-menu-open .m-menu .mm:after {
  top: 10px;
  transform: rotate(45deg);
}

.m-menu-open .nav {
  display: block !important;
  background: #f9f9f9;
  width: 100%;
  height: 100%;
}

.m-menu-open .subnav {
  display: none;
}

.subnav li {
  display: block;
}

.subnav li ul {
  margin-left: 20px;
  display: none;
}

.subnav li ul li {
  font-weight: normal;
}

.subnav li a {
  text-decoration: none;
}

.subnav li a:hover, .subnav li a.active {
  color: blue;
}

.subnav button {
  transition: all 0.15s cubic-bezier(0.445, 0.05, 0.55, 0.95);
  background: #7DECC9;
  border-radius: 50%;
  font-size: 2rem;
  border: none;
  cursor: pointer;
  width: 40px;
  height: 40px;
  outline: none;
}

.subnav button:before, .subnav button:after {
  top: 19px;
  left: 12px;
  position: absolute;
  display: block;
  content: '';
  width: 16px;
  height: 2px;
  background-color: #333;
  transition: all 0.15s cubic-bezier(0.445, 0.05, 0.55, 0.95);
}

.subnav button:after {
  transform: rotate(90deg);
}

.sub-menu-open .subnav button {
  transform: rotate(45deg);
}

@media only screen and (max-width: 70em) {
  .page .subnav {
    top: 70px;
    right: 10px;
    text-align: right;
  }
  .page .subnav button {
    margin-right: 2px;
  }
  .page .subnav nav {
    text-align: right;
  }
}

@media only screen and (max-width: 30em) {
  .m-menu {
    top: 15px;
  }
  .nav .menu-header {
    display: none;
  }
  .nav:after, .nav:before {
    display: none;
  }
  .nav ul {
    padding-left: 10px;
    padding-right: 10px;
  }
  .nav ul .c1 {
    width: 100%;
    text-align: center;
  }
  .nav ul li ul {
    width: 100%;
    margin: 20px 0 40px 0;
    padding: 0;
    text-align: center;
  }
  .nav ul .minor ul {
    margin-top: 0;
  }
  .page-2-col .container .subnav li {
    display: block;
  }
  .page-2-col .container .subnav li a {
    display: none;
  }
  .page-2-col .container .subnav li a.active {
    display: block;
    position: relative;
  }
  .page-2-col .container .subnav li a.active:before {
    position: absolute;
    content: '...';
    right: 40px;
    display: block;
    top: 15px;
  }
  .page-2-col .container .subnav ul.subnavopen li a {
    display: block;
  }
  .page-2-col .container .subnav ul.subnavopen li a.active:after {
    display: none;
  }
}

body {
  background-color: #f9f9f9;
  color: #333;
}

a {
  color: #333;
}

ul,
li {
  list-style: none;
  margin: 0;
  padding: 0;
}

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

.btn {
  background: transparent;
  border: 1px solid #333;
  padding: 10px;
  text-decoration: none;
  margin: 20px 0;
  display: inline-block;
  text-align: center;
}

.btn:hover {
  background: #333;
  color: white;
}

footer {
  background: #F6F6F6;
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1haW4uY3NzIiwibWFpbi5zY3NzIiwibm9ybWFsaXplLnNjc3MiLCJfYm9pbGVycGxhdGUuc2NzcyIsIl90eXBvLnNjc3MiLCJfbGF5b3V0LnNjc3MiLCJfdmFyaWFibGVzLnNjc3MiLCJfbmF2LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FDQWpCLGlDQUFpQztBQ0FqQyw0RUFBNEU7QUFFNUU7Z0ZBQ2dGO0FBRWhGOzs7O0dBSUc7QUFFSDtFQUNFLGtCQUFrQjtFQUFFLE9BQU87RUFDM0IsMkJBQTJCO0VBQUUsT0FBTztFQUNwQywrQkFBK0I7RUFBRSxPQUFPO0NBQ3pDOztBQUVEO2dGQUNnRjtBQUVoRjs7R0FFRztBQUVIO0VBQ0UsVUFBVTtDQUNYOztBQUVEOztHQUVHO0FBRUg7Ozs7OztFQU1FLGVBQWU7Q0FDaEI7O0FBRUQ7OztHQUdHO0FBRUg7RUFDRSxlQUFlO0VBQ2YsaUJBQWlCO0NBQ2xCOztBQUVEO2dGQUNnRjtBQUVoRjs7O0dBR0c7QUFFSDs7O0VBRU8sT0FBTztFQUNaLGVBQWU7Q0FDaEI7O0FBRUQ7O0dBRUc7QUFFSDtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDs7O0dBR0c7QUFFSDtFQUNFLHdCQUF3QjtFQUFFLE9BQU87RUFDakMsVUFBVTtFQUFFLE9BQU87RUFDbkIsa0JBQWtCO0VBQUUsT0FBTztDQUM1Qjs7QUFFRDs7O0dBR0c7QUFFSDtFQUNFLGtDQUFrQztFQUFFLE9BQU87RUFDM0MsZUFBZTtFQUFFLE9BQU87Q0FDekI7O0FBRUQ7Z0ZBQ2dGO0FBRWhGOzs7R0FHRztBQUVIO0VBQ0UsOEJBQThCO0VBQUUsT0FBTztFQUN2QyxzQ0FBc0M7RUFBRSxPQUFPO0NBQ2hEOztBQUVEOzs7R0FHRztBQUVIO0VBQ0Usb0JBQW9CO0VBQUUsT0FBTztFQUM3QiwyQkFBMkI7RUFBRSxPQUFPO0VBQ3BDLGtDQUFrQztFQUFFLE9BQU87Q0FDNUM7O0FBRUQ7O0dBRUc7QUFFSDs7RUFFRSxxQkFBcUI7Q0FDdEI7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YmM7Q0xjZjs7QUFFRDs7RUFFRSxpQkFBaUI7RUFDakIsVUFBUztFQUNULFdBQVU7Q0FDWDs7QUFFRDtFQUNFLGdCQUFnQjtFQUNoQixhQUFhO0VBQ2IsZUFBZTtDQUNoQjs7QUFNRDtFQUNFLHdCQUF1QjtFQUN2Qix1QktuQ2M7RUxvQ2QsY0FBYztFQUNkLHNCQUFzQjtFQUN0QixlQUFlO0VBQ2Ysc0JBQXNCO0VBQ3RCLG1CQUFtQjtDQUtwQjs7QUFaRDtFQVNJLGlCSzFDWTtFTDJDWixhQUFZO0NBQ2I7O0FBR0g7RUFDRSxvQkFBbUI7Q0FDcEIiLCJmaWxlIjoibWFpbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAY2hhcnNldCBcIlVURi04XCI7XG4vKiBQdXQgeW91ciBnbG9iYWwgc3R5bGVzIGhlcmUgKi9cbi8qISBub3JtYWxpemUuY3NzIHY3LjAuMCB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cbi8qIERvY3VtZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluXG4gKiAgICBJRSBvbiBXaW5kb3dzIFBob25lIGFuZCBpbiBpT1MuXG4gKi9cbmh0bWwge1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgLyogMSAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMiAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDIgKi9cbn1cblxuLyogU2VjdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICovXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICovXG5hcnRpY2xlLFxuYXNpZGUsXG5mb290ZXIsXG5oZWFkZXIsXG5uYXYsXG5zZWN0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAqL1xuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAqL1xuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbm1haW4ge1xuICAvKiAxICovXG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBtYXJnaW4gaW4gSUUgOC5cbiAqL1xuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDtcbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gKi9cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC8qIDEgKi9cbiAgaGVpZ2h0OiAwO1xuICAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICAvKiAyICovXG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtO1xuICAvKiAyICovXG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKiAyLiBSZW1vdmUgZ2FwcyBpbiBsaW5rcyB1bmRlcmxpbmUgaW4gaU9TIDgrIGFuZCBTYWZhcmkgOCsuXG4gKi9cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLyogMSAqL1xuICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwOiBvYmplY3RzO1xuICAvKiAyICovXG59XG5cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny0gYW5kIEZpcmVmb3ggMzktLlxuICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAqL1xuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICAvKiAxICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAvKiAyICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcbiAgLyogMiAqL1xufVxuXG4vKipcbiAqIFByZXZlbnQgdGhlIGR1cGxpY2F0ZSBhcHBsaWNhdGlvbiBvZiBgYm9sZGVyYCBieSB0aGUgbmV4dCBydWxlIGluIFNhZmFyaSA2LlxuICovXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuY29kZSxcbmtiZCxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07XG4gIC8qIDIgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzdHlsZSBpbiBBbmRyb2lkIDQuMy0uXG4gKi9cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgYmFja2dyb3VuZCBhbmQgY29sb3IgaW4gSUUgOS0uXG4gKi9cbm1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmYwO1xuICBjb2xvcjogIzAwMDtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbiAqIGFsbCBicm93c2Vycy5cbiAqL1xuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKi9cbmF1ZGlvLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gaU9TIDQtNy5cbiAqL1xuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAtLlxuICovXG5pbWcge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG5cbi8qKlxuICogSGlkZSB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gKi9cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gKi9cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgLyogMSAqL1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgLyogMSAqL1xuICBtYXJnaW46IDA7XG4gIC8qIDIgKi9cbn1cblxuLyoqXG4gKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAqIDEuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gKi9cbmJ1dHRvbixcbmlucHV0IHtcbiAgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAqL1xuYnV0dG9uLFxuc2VsZWN0IHtcbiAgLyogMSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBQcmV2ZW50IGEgV2ViS2l0IGJ1ZyB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2AgYW5kIGB2aWRlb2BcbiAqICAgIGNvbnRyb2xzIGluIEFuZHJvaWQgNC5cbiAqIDIuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKi9cbmJ1dHRvbixcbmh0bWwgW3R5cGU9XCJidXR0b25cIl0sXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAqL1xuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5maWVsZHNldCB7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjc1ZW0gMC42MjVlbTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICogMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICogMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbmxlZ2VuZCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIDEgKi9cbiAgY29sb3I6IGluaGVyaXQ7XG4gIC8qIDIgKi9cbiAgZGlzcGxheTogdGFibGU7XG4gIC8qIDEgKi9cbiAgbWF4LXdpZHRoOiAxMDAlO1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDMgKi9cbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgLyogMSAqL1xufVxuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICogMi4gQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xucHJvZ3Jlc3Mge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRS5cbiAqL1xudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC0uXG4gKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAtLlxuICovXG5bdHlwZT1cImNoZWNrYm94XCJdLFxuW3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMiAqL1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICovXG5bdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICAvKiAxICovXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGFuZCBjYW5jZWwgYnV0dG9ucyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAqL1xuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuICovXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDtcbiAgLyogMiAqL1xufVxuXG4vKiBJbnRlcmFjdGl2ZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFLCBhbmQgRmlyZWZveC5cbiAqL1xuZGV0YWlscyxcbm1lbnUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAqL1xuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbn1cblxuLyogU2NyaXB0aW5nXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqL1xuY2FudmFzIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICovXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIEhpZGRlblxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAtLlxuICovXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qISBIVE1MNSBCb2lsZXJwbGF0ZSB2Ni4wLjEgfCBNSVQgTGljZW5zZSB8IGh0dHBzOi8vaHRtbDVib2lsZXJwbGF0ZS5jb20vICovXG4vKlxuICogV2hhdCBmb2xsb3dzIGlzIHRoZSByZXN1bHQgb2YgbXVjaCByZXNlYXJjaCBvbiBjcm9zcy1icm93c2VyIHN0eWxpbmcuXG4gKiBDcmVkaXQgbGVmdCBpbmxpbmUgYW5kIGJpZyB0aGFua3MgdG8gTmljb2xhcyBHYWxsYWdoZXIsIEpvbmF0aGFuIE5lYWwsXG4gKiBLcm9jIENhbWVuLCBhbmQgdGhlIEg1QlAgZGV2IGNvbW11bml0eSBhbmQgdGVhbS5cbiAqL1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEJhc2Ugc3R5bGVzOiBvcGluaW9uYXRlZCBkZWZhdWx0c1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBSZW1vdmUgdGV4dC1zaGFkb3cgaW4gc2VsZWN0aW9uIGhpZ2hsaWdodDpcbiAqIGh0dHBzOi8vdHdpdHRlci5jb20vbWlrZXRheWxyL3N0YXR1cy8xMjIyODgwNTMwMVxuICpcbiAqIFZlbmRvci1wcmVmaXhlZCBhbmQgcmVndWxhciA6OnNlbGVjdGlvbiBzZWxlY3RvcnMgY2Fubm90IGJlIGNvbWJpbmVkOlxuICogaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzE2OTgyNTEwLzcxMzM0NzFcbiAqXG4gKiBDdXN0b21pemUgdGhlIGJhY2tncm91bmQgY29sb3IgdG8gbWF0Y2ggeW91ciBkZXNpZ24uXG4gKi9cbjo6LW1vei1zZWxlY3Rpb24ge1xuICBiYWNrZ3JvdW5kOiAjYjNkNGZjO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cblxuOjpzZWxlY3Rpb24ge1xuICBiYWNrZ3JvdW5kOiAjYjNkNGZjO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cblxuLypcbiAqIEEgYmV0dGVyIGxvb2tpbmcgZGVmYXVsdCBob3Jpem9udGFsIHJ1bGVcbiAqL1xuaHIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAxcHg7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG4gIG1hcmdpbjogMWVtIDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qXG4gKiBSZW1vdmUgdGhlIGdhcCBiZXR3ZWVuIGF1ZGlvLCBjYW52YXMsIGlmcmFtZXMsXG4gKiBpbWFnZXMsIHZpZGVvcyBhbmQgdGhlIGJvdHRvbSBvZiB0aGVpciBjb250YWluZXJzOlxuICogaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvaXNzdWVzLzQ0MFxuICovXG5hdWRpbyxcbmNhbnZhcyxcbmlmcmFtZSxcbmltZyxcbnN2ZyxcbnZpZGVvIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLypcbiAqIFJlbW92ZSBkZWZhdWx0IGZpZWxkc2V0IHN0eWxlcy5cbiAqL1xuZmllbGRzZXQge1xuICBib3JkZXI6IDA7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLypcbiAqIEFsbG93IG9ubHkgdmVydGljYWwgcmVzaXppbmcgb2YgdGV4dGFyZWFzLlxuICovXG50ZXh0YXJlYSB7XG4gIHJlc2l6ZTogdmVydGljYWw7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBCcm93c2VyIFVwZ3JhZGUgUHJvbXB0XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmJyb3dzZXJ1cGdyYWRlIHtcbiAgbWFyZ2luOiAwLjJlbSAwO1xuICBiYWNrZ3JvdW5kOiAjY2NjO1xuICBjb2xvcjogIzAwMDtcbiAgcGFkZGluZzogMC4yZW0gMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgSGVscGVyIGNsYXNzZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogSGlkZSB2aXN1YWxseSBhbmQgZnJvbSBzY3JlZW4gcmVhZGVyc1xuICovXG4uaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKlxuICogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzOlxuICogaHR0cHM6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbiAqXG4gKiAxLiBGb3IgbG9uZyBjb250ZW50LCBsaW5lIGZlZWRzIGFyZSBub3QgaW50ZXJwcmV0ZWQgYXMgc3BhY2VzIGFuZCBzbWFsbCB3aWR0aFxuICogICAgY2F1c2VzIGNvbnRlbnQgdG8gd3JhcCAxIHdvcmQgcGVyIGxpbmU6XG4gKiAgICBodHRwczovL21lZGl1bS5jb20vQGplc3NlYmVhY2gvYmV3YXJlLXNtdXNoZWQtb2ZmLXNjcmVlbi1hY2Nlc3NpYmxlLXRleHQtNTk1MmE0YzJjYmZlXG4gKi9cbi52aXN1YWxseWhpZGRlbiB7XG4gIGJvcmRlcjogMDtcbiAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgLXdlYmtpdC1jbGlwLXBhdGg6IGluc2V0KDUwJSk7XG4gIGNsaXAtcGF0aDogaW5zZXQoNTAlKTtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogLTFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAvKiAxICovXG59XG5cbi8qXG4gKiBFeHRlbmRzIHRoZSAudmlzdWFsbHloaWRkZW4gY2xhc3MgdG8gYWxsb3cgdGhlIGVsZW1lbnRcbiAqIHRvIGJlIGZvY3VzYWJsZSB3aGVuIG5hdmlnYXRlZCB0byB2aWEgdGhlIGtleWJvYXJkOlxuICogaHR0cHM6Ly93d3cuZHJ1cGFsLm9yZy9ub2RlLzg5NzYzOFxuICovXG4udmlzdWFsbHloaWRkZW4uZm9jdXNhYmxlOmFjdGl2ZSxcbi52aXN1YWxseWhpZGRlbi5mb2N1c2FibGU6Zm9jdXMge1xuICBjbGlwOiBhdXRvO1xuICAtd2Via2l0LWNsaXAtcGF0aDogbm9uZTtcbiAgY2xpcC1wYXRoOiBub25lO1xuICBoZWlnaHQ6IGF1dG87XG4gIG1hcmdpbjogMDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIHdpZHRoOiBhdXRvO1xuICB3aGl0ZS1zcGFjZTogaW5oZXJpdDtcbn1cblxuLypcbiAqIEhpZGUgdmlzdWFsbHkgYW5kIGZyb20gc2NyZWVuIHJlYWRlcnMsIGJ1dCBtYWludGFpbiBsYXlvdXRcbiAqL1xuLmludmlzaWJsZSB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLypcbiAqIENsZWFyZml4OiBjb250YWluIGZsb2F0c1xuICpcbiAqIEZvciBtb2Rlcm4gYnJvd3NlcnNcbiAqIDEuIFRoZSBzcGFjZSBjb250ZW50IGlzIG9uZSB3YXkgdG8gYXZvaWQgYW4gT3BlcmEgYnVnIHdoZW4gdGhlXG4gKiAgICBgY29udGVudGVkaXRhYmxlYCBhdHRyaWJ1dGUgaXMgaW5jbHVkZWQgYW55d2hlcmUgZWxzZSBpbiB0aGUgZG9jdW1lbnQuXG4gKiAgICBPdGhlcndpc2UgaXQgY2F1c2VzIHNwYWNlIHRvIGFwcGVhciBhdCB0aGUgdG9wIGFuZCBib3R0b20gb2YgZWxlbWVudHNcbiAqICAgIHRoYXQgcmVjZWl2ZSB0aGUgYGNsZWFyZml4YCBjbGFzcy5cbiAqIDIuIFRoZSB1c2Ugb2YgYHRhYmxlYCByYXRoZXIgdGhhbiBgYmxvY2tgIGlzIG9ubHkgbmVjZXNzYXJ5IGlmIHVzaW5nXG4gKiAgICBgOmJlZm9yZWAgdG8gY29udGFpbiB0aGUgdG9wLW1hcmdpbnMgb2YgY2hpbGQgZWxlbWVudHMuXG4gKi9cbi5jbGVhcmZpeDpiZWZvcmUsXG4uY2xlYXJmaXg6YWZ0ZXIge1xuICBjb250ZW50OiBcIiBcIjtcbiAgLyogMSAqL1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgLyogMiAqL1xufVxuXG4uY2xlYXJmaXg6YWZ0ZXIge1xuICBjbGVhcjogYm90aDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFByaW50IHN0eWxlcy5cbiAgIElubGluZWQgdG8gYXZvaWQgdGhlIGFkZGl0aW9uYWwgSFRUUCByZXF1ZXN0OlxuICAgaHR0cDovL3d3dy5waHBpZWQuY29tL2RlbGF5LWxvYWRpbmcteW91ci1wcmludC1jc3MvXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuQG1lZGlhIHByaW50IHtcbiAgKixcbiAgKjpiZWZvcmUsXG4gICo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDtcbiAgICAvKiBCbGFjayBwcmludHMgZmFzdGVyOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBodHRwOi8vd3d3LnNhbmJlaWppLmNvbS9hcmNoaXZlcy85NTMgKi9cbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICBhLFxuICBhOnZpc2l0ZWQge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG4gIGFbaHJlZl06YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIChcIiBhdHRyKGhyZWYpIFwiKVwiO1xuICB9XG4gIGFiYnJbdGl0bGVdOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiAoXCIgYXR0cih0aXRsZSkgXCIpXCI7XG4gIH1cbiAgLypcbiAgICAgKiBEb24ndCBzaG93IGxpbmtzIHRoYXQgYXJlIGZyYWdtZW50IGlkZW50aWZpZXJzLFxuICAgICAqIG9yIHVzZSB0aGUgYGphdmFzY3JpcHQ6YCBwc2V1ZG8gcHJvdG9jb2xcbiAgICAgKi9cbiAgYVtocmVmXj1cIiNcIl06YWZ0ZXIsXG4gIGFbaHJlZl49XCJqYXZhc2NyaXB0OlwiXTphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgfVxuICBwcmUge1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcCAhaW1wb3J0YW50O1xuICB9XG4gIHByZSxcbiAgYmxvY2txdW90ZSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzk5OTtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIH1cbiAgLypcbiAgICAgKiBQcmludGluZyBUYWJsZXM6XG4gICAgICogaHR0cDovL2Nzcy1kaXNjdXNzLmluY3V0aW8uY29tL3dpa2kvUHJpbnRpbmdfVGFibGVzXG4gICAgICovXG4gIHRoZWFkIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7XG4gIH1cbiAgdHIsXG4gIGltZyB7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICB9XG4gIHAsXG4gIGgyLFxuICBoMyB7XG4gICAgb3JwaGFuczogMztcbiAgICB3aWRvd3M6IDM7XG4gIH1cbiAgaDIsXG4gIGgzIHtcbiAgICBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDtcbiAgfVxufVxuXG5odG1sIHtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG59XG5cbmJvZHkge1xuICBmb250LWZhbWlseTogSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI1cmVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG4uZi1oZWFkZXIge1xuICBmb250LXNpemU6IDJyZW07XG4gIHotaW5kZXg6IDM7XG59XG5cbi5zY3JvbGxpbmcgLmYtaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuXG4uYmFzZWxpbmUsIC50bXBsaW5lIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLnRtcGxpbmUge1xuICBmb250LXNpemU6IDAuOHJlbTtcbn1cblxuLmJsb2NrLXRpdGxlIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuLmJsb2NrLXRpdGxlIGEge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmJsb2NrLXRpdGxlIGE6aG92ZXI6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICfihpInO1xuICByaWdodDogLTIwcHg7XG59XG5cbi5hZ2VuZGEgLnR5cGUge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXNpemU6IDAuNzVyZW07XG59XG5cbi5hZ2VuZGEgaDQge1xuICBtYXJnaW46IDVweCAwO1xuICBwYWRkaW5nOiAwO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG4uYWdlbmRhIC5sb2NhdGlvbiB7XG4gIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDFyZW07XG59XG5cbi5hZ2VuZGEgLmRhdGU6YWZ0ZXIge1xuICBjb250ZW50OiAnIC0nO1xufVxuXG4ubmV3cyBoNCB7XG4gIG1hcmdpbjogMTBweCAwIDAgMDtcbiAgcGFkZGluZzogMTBweDtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBmb250LXdlaWdodDogNDAwO1xufVxuXG4ubmV3cyAuaW50cm8ge1xuICBwYWRkaW5nOiAwIDEwcHg7XG59XG5cbi5uZXdzIC5uZXdzLWl0ZW0gYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLmluZm8ge1xuICBmb250LXNpemU6IDAuOXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMXJlbTtcbn1cblxuLm5hdiB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xufVxuXG4ubmF2IC5tZW51LWhlYWRlciB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cblxuLm5hdiAuYzEge1xuICBmb250LXNpemU6IDIuNXJlbTtcbn1cblxuLm5hdiAubWlub3IsIC5uYXYgLm1pbm9yIC5jMSB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cblxuLm5hdiAubWlub3IgYSwgLm5hdiAubWlub3IgLmMxIGEge1xuICBtYXJnaW4tbGVmdDogMTBweDtcbn1cblxuLm5hdiAubWlub3IgdWwsIC5uYXYgLm1pbm9yIC5jMSB1bCB7XG4gIG1hcmdpbi10b3A6IC0yMnB4O1xufVxuXG4ubmF2IC5taW5vciB1bCBsaSBhLCAubmF2IC5taW5vciAuYzEgdWwgbGkgYSB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG59XG5cbi5uYXYgLm1pbm9yIHVsIGxpIGE6aG92ZXI6YWZ0ZXIsIC5uYXYgLm1pbm9yIC5jMSB1bCBsaSBhOmhvdmVyOmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLm5hdiB1bCBsaSB1bCBsaSB7XG4gIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG59XG5cbi5wYWdlLXRpdGxlIHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY1cmVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4ubmF0IHtcbiAgZm9udC1zaXplOiAwLjg1cmVtO1xufVxuXG4ucGFnZSBoMSwgLnBhZ2UgaDIsIC5wYWdlLTItY29sIGgxLCAucGFnZS0yLWNvbCBoMiB7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi5wYWdlIGg0LCAucGFnZS0yLWNvbCBoNCB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICBtYXJnaW4tdG9wOiA0MHB4O1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG59XG5cbi5wYWdlIGg1LCAucGFnZS0yLWNvbCBoNSB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICBtYXJnaW4tdG9wOiAyMHB4O1xuICBmb250LXNpemU6IDFyZW07XG4gIHBhZGRpbmctbGVmdDogMjBweDtcbn1cblxuLnBhZ2UgcCwgLnBhZ2UtMi1jb2wgcCB7XG4gIG1hcmdpbi10b3A6IDVweDtcbiAgcGFkZGluZzogYXV0byAyMHB4O1xuICBsaW5lLWhlaWdodDogMS40NXJlbTtcbn1cblxuLnBhZ2UgLnN1Ym5hdiBoMyB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi5wYWdlLTItY29sIC5pbnRybyB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xufVxuXG4udG1wIGg0IHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLnRtcCBoNSB7XG4gIHBhZGRpbmctbGVmdDogMDtcbn1cblxuLndob2lzd2hvIGg0IHtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuLmNyZWRpdHMge1xuICBmb250LXNpemU6IDAuOHJlbTtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NWVtKSB7XG4gIC5mLWhlYWRlciB7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICB9XG59XG5cbi8qIFB1dCB5b3VyIGxheW91dCBoZXJlICovXG5odG1sLCBib2R5IHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG5ib2R5IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuI2NvbnRhaW5lciB7XG4gIGZsZXg6IDEgMCBhdXRvO1xuICBtYXJnaW4tYm90dG9tOiA0MHB4O1xufVxuXG5mb290ZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuZm9vdGVyIC5jcmVkaXRzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDE1cHg7XG4gIHJpZ2h0OiAyMHB4O1xufVxuXG5mb290ZXIgLmNyZWRpdHMgYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6ICNiY2JjYmM7XG59XG5cbi5zd2l0Y2gge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgei1pbmRleDogOTk5OTtcbiAgYmFja2dyb3VuZDogcGluaztcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5oZWFkZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHdpZHRoOiAxMDAlO1xuICB0b3A6IDA7XG4gIGhlaWdodDogNzVweDtcbiAgYmFja2dyb3VuZDogI2Y5ZjlmOTtcbiAgei1pbmRleDogMTtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmhlYWRlciAuYmFzZWxpbmUge1xuICBtYXJnaW4tdG9wOiAyNXB4O1xufVxuXG4ubG9nbyB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAyMHB4O1xuICBsZWZ0OiAzMHB4O1xuICB6LWluZGV4OiA2O1xufVxuXG4uYmFzZWxpbmUge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi50bXBsaW5lIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBiYWNrZ3JvdW5kOiAjMzMzO1xuICBjb2xvcjogd2hpdGU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMzMzM7XG4gIHRvcDogMHB4O1xuICBoZWlnaHQ6IDQ4cHg7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAzNDBweCk7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIHBhZGRpbmctdG9wOiAxNXB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgcmlnaHQ6IDA7XG59XG5cbi50bXBsaW5lIGEge1xuICBjb2xvcjogd2hpdGU7XG59XG5cbi5sYW5nc3dpdGNoIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDI1cHg7XG4gIHJpZ2h0OiA3NXB4O1xuICB6LWluZGV4OiAyO1xufVxuXG4ubGFuZ3N3aXRjaCBhIHtcbiAgbWFyZ2luOiAwIDJweDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5mb290ZXIgaW1nIHtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi5maXhlZCAuZi1oZWFkZXIge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5maXhlZCBoZWFkZXIge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyogSE9NRVBBR0UgKi9cbi5mLWhlYWRlciB7XG4gIGJhY2tncm91bmQ6ICNmOWY5Zjk7XG4gIHBhZGRpbmc6IDIwcHggMDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB3aWR0aDogMTAwJTtcbiAgYm90dG9tOiAwO1xufVxuXG4uYmdpbWcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHRvcDogMDtcbiAgei1pbmRleDogMCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA2MHB4KTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIHRvcDtcbiAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBmaXhlZDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcbn1cblxuLmJnaW1nOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJy4uLi4uJztcbiAgdG9wOiA1MCU7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDAgYXV0bztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBhbmltYXRpb246IGxvYWRlciAxcyBsaW5lYXIgaW5maW5pdGU7XG59XG5cbi5iZ2ltZy5sb2FkZWQ6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuQGtleWZyYW1lcyBsb2FkZXIge1xuICAwJSB7XG4gICAgY29udGVudDogXCIuICAgIFwiO1xuICB9XG4gIDI1JSB7XG4gICAgY29udGVudDogXCIuLiAgIFwiO1xuICB9XG4gIDUwJSB7XG4gICAgY29udGVudDogXCIuLi4gIFwiO1xuICB9XG4gIDc1JSB7XG4gICAgY29udGVudDogXCIuLi4uIFwiO1xuICB9XG4gIDEwMCUge1xuICAgIGNvbnRlbnQ6IFwiLi4uLi5cIjtcbiAgfVxufVxuXG4ubWFpbiAuY29udGVudCB7XG4gIG1heC13aWR0aDogMTQwMHB4O1xuICBtYXJnaW46IDQwcHggYXV0byAwIGF1dG87XG59XG5cbi5ibG9jay10aXRsZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmFnZW5kYSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuXG4uYWdlbmRhIC5hZ2VuZGEtaXRlbSB7XG4gIHdpZHRoOiAyMCU7XG4gIHBhZGRpbmc6IDEwcHggMjBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5hZ2VuZGEgLmFnZW5kYS1pdGVtIGEge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5hZ2VuZGEgLmFnZW5kYS1pdGVtIGE6aG92ZXI6YWZ0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICfihpInO1xuICBib3R0b206IC0xMHB4O1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbn1cblxuLmFnZW5kYSAuYWdlbmRhLWl0ZW06bGFzdC1jaGlsZDpiZWZvcmUsIC5hZ2VuZGEgLmFnZW5kYS1pdGVtLmE1NTpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uYWdlbmRhIC5hZ2VuZGEtaXRlbTpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6ICcnO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICMzMzM7XG4gIHdpZHRoOiAxcHg7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG59XG5cbi5uZXdzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLm5ld3MgLnRodW1iIHtcbiAgbWF4LWhlaWdodDogMzAwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm5ld3MgLnRodW1iOmhvdmVyIGltZyB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4yNSk7XG59XG5cbi5uZXdzIC5uZXdzLWl0ZW0ge1xuICB3aWR0aDogY2FsYygxMDAlLzMgLSAyMHB4KTtcbiAgbWFyZ2luOiAxMHB4IDEwcHggMjBweCAxMHB4O1xufVxuXG4ubmV3cyAubmV3cy1pdGVtIHAge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG59XG5cbi5uZXdzIC5uZXdzLWl0ZW0gLnJlYWQtbW9yZSB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4uaG9tZSAubW9yZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogNjBweDtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5ob21lIC5tb3JlIGEge1xuICBwYWRkaW5nOiA1cHggMTBweDtcbn1cblxuLmluZm8ge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgIzMzMztcbiAgcGFkZGluZy10b3A6IDMwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbi10b3A6IDYwcHg7XG59XG5cbi5pbmZvIC5ibG9jay10aXRsZSB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5pbmZvIC5ibG9jay13cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLmluZm8gLmJsb2NrIHtcbiAgd2lkdGg6IGNhbGMoMTAwJS8zIC0gNDBweCk7XG4gIG1hcmdpbjogMTBweCAxMHB4IDIwcHggMTBweDtcbiAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xufVxuXG4uaW5mbyAuYmxvY2stc29jaWFsIGEge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1yaWdodDogN3B4O1xufVxuXG4uaW5mbyAuZm9ybSB7XG4gIG1hcmdpbi10b3A6IDUzcHg7XG59XG5cbi5pbmZvIGlucHV0W3R5cGU9XCJlbWFpbFwiXSB7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgIzMzMztcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSA1MHB4KTtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4uaW5mbyBidXR0b24sIC5pbmZvIC5idXR0b24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAxcHggc29saWQgIzMzMztcbiAgcGFkZGluZzogMTBweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5pbmZvIGJ1dHRvbjpob3ZlciwgLmluZm8gLmJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICMzMzM7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLmhvbWViaWcgLm5ld3MgLm5ld3MtaXRlbSB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAyMHB4KTtcbn1cblxuLmhvbWViaWcgLm5ld3MgLm5laDEge1xuICB3aWR0aDogY2FsYygxMDAlLzMqMik7XG59XG5cbi5ob21lYmlnIC5uZXdzIC5uZWgxIC5uZXdzLWl0ZW0gLnRodW1iIHtcbiAgbWF4LWhlaWdodDogNjAwcHg7XG59XG5cbi5ob21lYmlnIC5uZXdzIC5uZWgyIHtcbiAgd2lkdGg6IGNhbGMoMTAwJS8zKTtcbn1cblxuLnBhZ2UgLmhlYWRlciwgLnBhZ2UtMi1jb2wgLmhlYWRlciwgLmFnZW5kYXBhZ2UgLmhlYWRlciwgLm5ld3NwYWdlIC5oZWFkZXIge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyogUkVHVUxBUiBQQUdFIDEgQ09MVU1OICovXG4vKi5wYWdlIHtcbiAgLnN1Ym5hdiB7XG4gICAgbWluLXdpZHRoOjI2NXB4O1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiA2NjtcbiAgICB0b3A6NTNweDtcbiAgICByaWdodDoxMDBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBidXR0b24ge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgbmF2IHtcbiAgICAgIG1hcmdpbi10b3A6IC0yMnB4O1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgcGFkZGluZzoyMHB4O1xuICAgICAgLy8gdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG4gIH1cbn1cbi5zdWItbWVudS1vcGVuIHtcbiAgLnN1Ym5hdiBuYXYge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn0qL1xuLnBhZ2UgLmNvbnRhaW5lciAucGFnZS10aXRsZSB7XG4gIHBhZGRpbmc6IDAgMCAxNXB4IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBsZWZ0OiAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5wYWdlIC5jb250YWluZXIgLmNvbnRlbnQge1xuICBtYXJnaW4tdG9wOiAxMDBweDtcbiAgbWF4LXdpZHRoOiA5MDBweDtcbiAgcGFkZGluZzogMCAxMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5wYWdlIC5jb250YWluZXIgLmNvbnRlbnQgcCwgLnBhZ2UgLmNvbnRhaW5lciAuY29udGVudCBoNCB7XG4gIG1heC13aWR0aDogODAwcHg7XG59XG5cbi5wYWdlIC5jb250YWluZXIgLmNvbnRlbnQgcCB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5wYWdlIC5jb250YWluZXIgLmNvbnRlbnQgaDQge1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4ucGFnZSAuY29udGFpbmVyIC5jb250ZW50IGltZyB7XG4gIG1hcmdpbi10b3A6IDQwcHg7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ucGFnZSAuY29udGFpbmVyIC5jb250ZW50IC5pbWcgaW1nIHtcbiAgd2lkdGg6IGF1dG87XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLnBhZ2UgLmNvbnRhaW5lciAudGkyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xufVxuXG4ucGFnZSAuY29udGFpbmVyIC50aTIgLmltZyB7XG4gIG1heC13aWR0aDogNTAlO1xufVxuXG4ucGFnZSAuY29udGFpbmVyIC50aTIgLmkxIHtcbiAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xufVxuXG4ucGFnZSAuY29udGFpbmVyIC50aTIgLmkyIHtcbiAgbWFyZ2luLWxlZnQ6IDIwcHg7XG59XG5cbi8qIFJFR1VMQVIgUEFHRSAtIDIgQ09MVU1OUyAqL1xuLnBhZ2UtMi1jb2wgLmNvbnRhaW5lciAuYmFubmVyIHtcbiAgbWF4LWhlaWdodDogNDAwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5wYWdlLTItY29sIC5jb250YWluZXIgLmJhbm5lciBpbWcge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLnBhZ2UtMi1jb2wgLmNvbnRhaW5lciAuY29udGVudCB7XG4gIHBhZGRpbmctbGVmdDogMzBweDtcbiAgcGFkZGluZy1yaWdodDogMzBweDtcbn1cblxuLnBhZ2UtMi1jb2wgLmNvbnRhaW5lciAuY29udGVudCAuaW50cm8ge1xuICBtYXgtd2lkdGg6IDcwJTtcbiAgbWFyZ2luLWJvdHRvbTogNDBweDtcbn1cblxuLnBhZ2UtMi1jb2wgLmNvbnRhaW5lciAuY29udGVudCBpbWcge1xuICBtYXJnaW4tdG9wOiAyMHB4O1xufVxuXG4ucGFnZS0yLWNvbCAuY29udGFpbmVyIC5zdWJuYXYge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjI5LCAxNDAsIDExNCwgMC42KTtcbiAgd2lkdGg6IDEwMCU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi5wYWdlLTItY29sIC5jb250YWluZXIgLnN1Ym5hdiB1bCB7XG4gIG1heC13aWR0aDogMTQ0MHB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogMDtcbn1cblxuLnBhZ2UtMi1jb2wgLmNvbnRhaW5lciAuc3VibmF2IGxpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDAgLTVweCAwIDA7XG59XG5cbi5wYWdlLTItY29sIC5jb250YWluZXIgLnN1Ym5hdiBsaSBhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLnBhZ2UtMi1jb2wgLmNvbnRhaW5lciAuc3VibmF2IGxpIGE6aG92ZXIsIC5wYWdlLTItY29sIC5jb250YWluZXIgLnN1Ym5hdiBsaSBhLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjI5LCAxNDAsIDExNCwgMC42KTtcbiAgY29sb3I6ICMzMzM7XG59XG5cbi5wYWdlLTItY29sIC5jb250YWluZXIgLmxlZnQsIC5wYWdlLTItY29sIC5jb250YWluZXIgLnJpZ2h0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogY2FsYyg1MCUgLSAzNHB4KTtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cblxuLnBhZ2UtMi1jb2wgLmNvbnRhaW5lciAubGVmdCBmaWd1cmUsIC5wYWdlLTItY29sIC5jb250YWluZXIgLnJpZ2h0IGZpZ3VyZSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLnBhZ2UtMi1jb2wgLmNvbnRhaW5lciAubGVmdCB7XG4gIHBhZGRpbmctcmlnaHQ6IDMwcHg7XG59XG5cbi5wYWdlLTItY29sIC5jb250YWluZXIgLnJpZ2h0IHtcbiAgcGFkZGluZy1sZWZ0OiAzMHB4O1xufVxuXG4uYWdlbmRhcGFnZSAuYWdlbmRhIHtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4uYWdlbmRhcGFnZSAuYWdlbmRhIC5hZ2VuZGEtaXRlbSB7XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gIHdpZHRoOiBjYWxjKDIwJSAtIDQxcHgpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmctdG9wOiAyMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xufVxuXG4uYWdlbmRhcGFnZSAuYWdlbmRhIC5hZ2VuZGEtaXRlbTphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJyc7XG4gIGhlaWdodDogMXB4O1xuICBiYWNrZ3JvdW5kOiAjMzMzO1xuICB3aWR0aDogMTAwJTtcbiAgYm90dG9tOiAtMjBweDtcbiAgbGVmdDogMDtcbn1cblxuLmFnZW5kYXBhZ2UgLmFnZW5kYSAuYWdlbmRhLWl0ZW06bnRoLWNoaWxkKDVuKTpiZWZvcmUsIC5hZ2VuZGFwYWdlIC5hZ2VuZGEgLmFnZW5kYS1pdGVtLmxhc3Q6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmFnZW5kYXBhZ2UgLmNvbnRlbnQge1xuICBtYXJnaW4tdG9wOiA3NXB4O1xufVxuXG4uYWdlbmRhcGFnZSAuZmlsdGVycyB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDMwcHg7XG59XG5cbi5hZ2VuZGFwYWdlIC5maWx0ZXJzIC5maWx0ZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogMjBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uYWdlbmRhcGFnZSAuZmlsdGVycyAuZmlsdGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAxMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjMzMzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAtMjBweDtcbiAgdG9wOiAzcHg7XG59XG5cbi5hZ2VuZGFwYWdlIC5maWx0ZXJzIC5maWx0ZXIuYWN0aXZlOmJlZm9yZSwgLmFnZW5kYXBhZ2UgLmZpbHRlcnMgLmZpbHRlcjpob3ZlcjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiAjMzMzO1xufVxuXG4vKiBuZXdzIHBhZ2UgKi9cbi5uZXdzcGFnZSAuY29udGVudCB7XG4gIG1hcmdpbi10b3A6IDc1cHg7XG59XG5cbi5uZXdzcGFnZSAubmV3cy1pdGVtIHtcbiAgbWFyZ2luLWJvdHRvbTogNDBweDtcbn1cblxuLyogd2hvIGlzIHdobyBwYWdlICovXG4ud2hvaXN3aG8gLmNvbnRhaW5lciAuc3VibmF2LCAucGFnZS0yLWNvbCAuY29udGFpbmVyIC5zdWJuYXYge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBtYXgtd2lkdGg6IDEzNjBweDtcbn1cblxuLndob2lzd2hvIC5jb250YWluZXIgLnN1Ym5hdiB1bCwgLnBhZ2UtMi1jb2wgLmNvbnRhaW5lciAuc3VibmF2IHVsIHtcbiAgd2lkdGg6IGF1dG87XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLndob2lzd2hvIC5jb250YWluZXIgLnN1Ym5hdiB1bCBhLCAucGFnZS0yLWNvbCAuY29udGFpbmVyIC5zdWJuYXYgdWwgYSB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXNpemU6IDEuMnJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ud2hvaXN3aG8gLmNvbnRhaW5lciAuc3VibmF2IHVsIGE6YWZ0ZXIsIC5wYWdlLTItY29sIC5jb250YWluZXIgLnN1Ym5hdiB1bCBhOmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAnJztcbiAgd2lkdGg6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgdHJhbnNmb3JtOiBzY2FsZVgoMCk7XG4gIGhlaWdodDogMXB4O1xuICBkaXNwbGF5OiBibG9jaztcbiAgYmFja2dyb3VuZDogIzMzMztcbiAgdHJhbnNpdGlvbjogYWxsIDAuMDVzIGN1YmljLWJlemllcigwLjQ0NSwgMC4wNSwgMC41NSwgMC45NSk7XG59XG5cbi53aG9pc3dobyAuY29udGFpbmVyIC5zdWJuYXYgdWwgYTpob3ZlciwgLndob2lzd2hvIC5jb250YWluZXIgLnN1Ym5hdiB1bCBhLmFjdGl2ZSwgLnBhZ2UtMi1jb2wgLmNvbnRhaW5lciAuc3VibmF2IHVsIGE6aG92ZXIsIC5wYWdlLTItY29sIC5jb250YWluZXIgLnN1Ym5hdiB1bCBhLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG59XG5cbi53aG9pc3dobyAuY29udGFpbmVyIC5zdWJuYXYgdWwgYTpob3ZlcjphZnRlciwgLndob2lzd2hvIC5jb250YWluZXIgLnN1Ym5hdiB1bCBhLmFjdGl2ZTphZnRlciwgLnBhZ2UtMi1jb2wgLmNvbnRhaW5lciAuc3VibmF2IHVsIGE6aG92ZXI6YWZ0ZXIsIC5wYWdlLTItY29sIC5jb250YWluZXIgLnN1Ym5hdiB1bCBhLmFjdGl2ZTphZnRlciB7XG4gIHRyYW5zZm9ybTogc2NhbGVYKDEpO1xufVxuXG4ud2hvaXN3aG8gaDEsIC5wYWdlLTItY29sIGgxIHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogNDBweDtcbn1cblxuLndob2lzd2hvIC5pbnRybywgLnBhZ2UtMi1jb2wgLmludHJvIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG4ud2hvaXN3aG8gLml0ZW0gYSwgLnBhZ2UtMi1jb2wgLml0ZW0gYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLndob2lzd2hvIC50ZWFjaGVyIGg0LCAucGFnZS0yLWNvbCAudGVhY2hlciBoNCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4ud2hvaXN3aG8gLnRlYWNoZXIgYTpob3ZlciBoNDphZnRlciwgLnBhZ2UtMi1jb2wgLnRlYWNoZXIgYTpob3ZlciBoNDphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJ+KGkic7XG4gIHJpZ2h0OiAtMjBweDtcbn1cblxuLndob2lzd2hvIC5zdHVkZW50LCAucGFnZS0yLWNvbCAuc3R1ZGVudCB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi53aG9pc3dobyAuc3R1ZGVudCBhLCAucGFnZS0yLWNvbCAuc3R1ZGVudCBhIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi53aG9pc3dobyAuc3R1ZGVudCBhOmhvdmVyOmFmdGVyLCAucGFnZS0yLWNvbCAuc3R1ZGVudCBhOmhvdmVyOmFmdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjb250ZW50OiAn4oaSJztcbiAgdG9wOiAwO1xuICByaWdodDogLTIwcHg7XG59XG5cbi53aG9pc3dobyAuc3R1ZGVudCAudHJhY2ssIC5wYWdlLTItY29sIC5zdHVkZW50IC50cmFjayB7XG4gIG1hcmdpbi10b3A6IDVweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi53aG9pc3dobyAuc3R1ZGVudCAudHJhY2t5ZWFyLCAucGFnZS0yLWNvbCAuc3R1ZGVudCAudHJhY2t5ZWFyIHtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogMTBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgIzMzMztcbiAgbWFyZ2luLXJpZ2h0OiAycHg7XG59XG5cbi53aG9pc3dobyAuc3R1ZGVudCAudHJhY2t5ZWFyLmFjdGl2ZSwgLnBhZ2UtMi1jb2wgLnN0dWRlbnQgLnRyYWNreWVhci5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiAjMzMzO1xufVxuXG4uc3RhZmYgLmNvbnRhaW5lciAubGVmdCB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAzNHB4KTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG59XG5cbi5zdGFmZiAuY29udGFpbmVyIC5sZWZ0IC5pdGVtIGg0IHtcbiAgbWFyZ2luLXRvcDogMzBweDtcbn1cblxuLnN0dWRlbnRzIC5jb250YWluZXIgLmxlZnQge1xuICB3aWR0aDogY2FsYygxMDAlIC0gMzRweCk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLnN0dWRlbnRzIC5jb250YWluZXIgLmxlZnQgLmdlbmVyYXRpb24sIC5zdHVkZW50cyAuY29udGFpbmVyIC5sZWZ0IC5ibG9jayB7XG4gIHdpZHRoOiBjYWxjKDEwMCUvNSAtIDIwcHgpO1xuICBtYXJnaW46IDEwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnN0dWRlbnRzIC5jb250YWluZXIgLmxlZnQgLmdlbmVyYXRpb24gaDQsIC5zdHVkZW50cyAuY29udGFpbmVyIC5sZWZ0IC5ibG9jayBoNCB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cbi5zdHVkZW50cyAuY29udGFpbmVyIC5sZWZ0IC5pdGVtIGg0IHtcbiAgbWFyZ2luLXRvcDogMzBweDtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MGVtKSB7XG4gIC5sb2dvIHtcbiAgICBsZWZ0OiAxMHB4O1xuICB9XG4gIC5sb2dvIGltZyB7XG4gICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgfVxuICAudG1wbGluZSB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDI1MHB4KTtcbiAgICBwYWRkaW5nLXRvcDogNXB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XG4gICAgaGVpZ2h0OiA2M3B4O1xuICB9XG4gIC5wYWdlLTItY29sIC5jb250YWluZXIgLmNvbnRlbnQge1xuICAgIHBhZGRpbmctbGVmdDogMjBweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICB9XG4gIC5wYWdlLTItY29sIC5jb250YWluZXIgLmNvbnRlbnQgLmludHJvIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbiAgLmFnZW5kYSAuYWdlbmRhLWl0ZW0sIC5hZ2VuZGFwYWdlIC5hZ2VuZGEgLmFnZW5kYS1pdGVtIHtcbiAgICB3aWR0aDogY2FsYygxMDAlLzMgLSA0MXB4KTtcbiAgfVxuICAuYWdlbmRhIC5hZ2VuZGEtaXRlbTpudGgtY2hpbGQoNW4pOmJlZm9yZSwgLmFnZW5kYXBhZ2UgLmFnZW5kYSAuYWdlbmRhLWl0ZW06bnRoLWNoaWxkKDVuKTpiZWZvcmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIC5hZ2VuZGEgLmFnZW5kYS1pdGVtOm50aC1jaGlsZCgzbik6YmVmb3JlLCAuYWdlbmRhcGFnZSAuYWdlbmRhIC5hZ2VuZGEtaXRlbTpudGgtY2hpbGQoM24pOmJlZm9yZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAuYWdlbmRhIC5hZ2VuZGEtaXRlbTpudGgtY2hpbGQoM24pOmJlZm9yZSwgLmFnZW5kYXBhZ2UgLmFnZW5kYSAuYWdlbmRhLWl0ZW06bnRoLWNoaWxkKDNuKTpiZWZvcmUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLmdhbGxlcnlwYWdlIC50aTIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIC5nYWxsZXJ5cGFnZSAudGkyIC5pbWcge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuICAuZ2FsbGVyeXBhZ2UgLnRpMiAuaTEge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgfVxuICAuZ2FsbGVyeXBhZ2UgLnRpMiAuaTIge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDVlbSkge1xuICAubG9nbyBpbWcge1xuICAgIG1heC13aWR0aDogMjAwcHg7XG4gIH1cbiAgLnRtcGxpbmUge1xuICAgIHRvcDogNjBweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAyMHB4KTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbiAgLmhlYWRlciB7XG4gICAgaGVpZ2h0OiA5NXB4O1xuICB9XG4gIC5oZWFkZXIgLmJhc2VsaW5lIHtcbiAgICBtYXJnaW4tdG9wOiA2MHB4O1xuICB9XG4gIC5pbmZvIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG4gIC5pbmZvIC5ibG9jay13cmFwcGVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gIH1cbiAgLmluZm8gLmZvcm0gaW5wdXQge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAyMHB4KTtcbiAgfVxuICAubWFpbiAuY29udGVudCB7XG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gIH1cbiAgLmFnZW5kYSwgLmFnZW5kYXBhZ2UgLmFnZW5kYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgLmFnZW5kYSAuYWdlbmRhLWl0ZW0sIC5hZ2VuZGFwYWdlIC5hZ2VuZGEgLmFnZW5kYS1pdGVtIHtcbiAgICBwYWRkaW5nOiAxMHB4IDAgMjBweCAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC5hZ2VuZGEgLmFnZW5kYS1pdGVtOmFmdGVyLCAuYWdlbmRhcGFnZSAuYWdlbmRhIC5hZ2VuZGEtaXRlbTphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgLmFnZW5kYSAuYWdlbmRhLWl0ZW06YmVmb3JlLCAuYWdlbmRhcGFnZSAuYWdlbmRhIC5hZ2VuZGEtaXRlbTpiZWZvcmUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAuYWdlbmRhIC5hZ2VuZGEtaXRlbTpsYXN0LWNoaWxkOmFmdGVyLCAuYWdlbmRhcGFnZSAuYWdlbmRhIC5hZ2VuZGEtaXRlbTpsYXN0LWNoaWxkOmFmdGVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5ob21lIC5hZ2VuZGEge1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIH1cbiAgLmhvbWUgLmFnZW5kYSAuYWdlbmRhLWl0ZW06YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBjb250ZW50OiAnJztcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBiYWNrZ3JvdW5kOiAjMzMzO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICB9XG4gIC5hZ2VuZGFwYWdlIC5jb250ZW50IHtcbiAgICBtYXJnaW4tdG9wOiA3NXB4O1xuICB9XG4gIC5hZ2VuZGFwYWdlIC5maWx0ZXJzIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cbiAgLmFnZW5kYXBhZ2UgLmZpbHRlcnMgLmZpbHRlciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuICAubmV3cyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgLm5ld3MgLm5ld3MtaXRlbSB7XG4gICAgbWFyZ2luOiAwIDAgNDBweCAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuICAubmV3cyAubmV3cy1pdGVtIC50aHVtYiB7XG4gICAgbWF4LWhlaWdodDogbm9uZTtcbiAgfVxuICAuaG9tZWJpZyAubmV3cyAubmVoMSwgLmhvbWViaWcgLm5ld3MgLm5laDIge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC5ob21lYmlnIC5uZXdzIC5uZXdzLWl0ZW0ge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC5wYWdlIHAge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG4gIC5wYWdlIC5jb250YWluZXIgLmNvbnRlbnQge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxuICAucGFnZSAuY29udGFpbmVyIC5wYWdlLXRpdGxlIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG4gIC5wYWdlLTItY29sIC5jb250YWluZXIgLmNvbnRlbnQge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG4gIC5wYWdlLTItY29sIC5jb250YWluZXIgLmNvbnRlbnQgLmxlZnQsIC5wYWdlLTItY29sIC5jb250YWluZXIgLmNvbnRlbnQgLnJpZ2h0IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuICAucGFnZS0yLWNvbCAuY29udGFpbmVyIC5pbnRybyB7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG4gIGZvb3RlciAuY3JlZGl0cyB7XG4gICAgYm90dG9tOiA1MHB4O1xuICB9XG59XG5cbkBzdXBwb3J0cyAoLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoKSB7IHtcbiAgICAvKiBDU1Mgc3BlY2lmaWMgdG8gaU9TIGRldmljZXMgKi9cbiAgfVxuICAuYmdpbWcge1xuICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogc2Nyb2xsICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gOTVweCk7XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzMGVtKSB7XG4gIC5sYW5nc3dpdGNoIHtcbiAgICB0b3A6IDE1cHg7XG4gIH1cbiAgLmhlYWRlciB7XG4gICAgaGVpZ2h0OiA2NXB4O1xuICB9XG4gIC5oZWFkZXIgLmJhc2VsaW5lIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5pbmZvIC5ibG9jay13cmFwcGVyIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG4gIC5pbmZvIC5ibG9jay13cmFwcGVyIC5ibG9jayB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gIH1cbiAgLmluZm8gLmZvcm0ge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gIH1cbiAgZm9vdGVyIC5jcmVkaXRzIHtcbiAgICBib3R0b206IDM1cHg7XG4gIH1cbn1cblxuLm5hdiB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgZGlzcGxheTogbm9uZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiA0O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGN1YmljLWJlemllcigwLjQ0NSwgMC4wNSwgMC41NSwgMC45NSk7XG59XG5cbi5uYXYgLm1lbnUtaGVhZGVyIHtcbiAgbWFyZ2luLXRvcDogMjBweDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBsZWZ0OiAtMTRweDtcbiAgcmlnaHQ6IDA7XG59XG5cbi5uYXYgdWwge1xuICBwYWRkaW5nOiAxMjBweCAwIDQwcHggMDtcbn1cblxuLm5hdiB1bCAuYzEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IGNhbGMoNTAlIC0gNDBweCk7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4ubmF2IHVsIGxpIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5uYXYgdWwgbGkgYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLm5hdiB1bCBsaSB1bCB7XG4gIHBhZGRpbmctdG9wOiAwO1xuICB3aWR0aDogY2FsYyg1MCUgLSA4MHB4KTtcbiAgbWFyZ2luLWxlZnQ6IGNhbGMoNTAlICsgNDBweCk7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5uYXYgdWwgbGkgdWwgbGkge1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4ubmF2IHVsIGxpIHVsIGxpIGEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5uYXYgdWwgbGkgdWwgbGkgYTpob3ZlcjphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJ+KGkic7XG4gIHJpZ2h0OiAtNDBweDtcbn1cblxuLm5hdiB1bCBsaSB1bCBsaSBhLmFjdGl2ZTphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29udGVudDogJ+KGkCc7XG4gIHJpZ2h0OiAtNDBweDtcbn1cblxuLm5hdjpiZWZvcmUge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGNvbnRlbnQ6ICcnO1xuICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDgwcHgpO1xuICB3aWR0aDogMXB4O1xuICBiYWNrZ3JvdW5kOiAjMzMzO1xuICBsZWZ0OiAtMTRweDtcbiAgcmlnaHQ6IDA7XG4gIG1hcmdpbjogMCBhdXRvO1xuICB0b3A6IDgwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm1pbm9yIHtcbiAgbWFyZ2luLXRvcDogMzBweDtcbn1cblxuLm0tbWVudSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAyNXB4O1xuICByaWdodDogMjBweDtcbiAgei1pbmRleDogNTtcbn1cblxuLm0tbWVudSAubW0ge1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDI2cHg7XG4gIGhlaWdodDogMjZweDtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLm0tbWVudSAubW06YmVmb3JlLCAubS1tZW51IC5tbTphZnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbnRlbnQ6ICcnO1xuICB3aWR0aDogMTRweDtcbiAgaGVpZ2h0OiAycHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMzM7XG4gIHRyYW5zaXRpb246IGFsbCAwLjE1cyBjdWJpYy1iZXppZXIoMC40NDUsIDAuMDUsIDAuNTUsIDAuOTUpO1xufVxuXG4ubS1tZW51IC5tbTphZnRlciB7XG4gIHRvcDogN3B4O1xufVxuXG4ubS1tZW51LW9wZW4ge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ubS1tZW51LW9wZW4gLm0tbWVudSB7XG4gIHJpZ2h0OiAzNXB4O1xufVxuXG4ubS1tZW51LW9wZW4gLm0tbWVudSAubW06YmVmb3JlIHtcbiAgdG9wOiAxMHB4O1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xufVxuXG4ubS1tZW51LW9wZW4gLm0tbWVudSAubW06YWZ0ZXIge1xuICB0b3A6IDEwcHg7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbn1cblxuLm0tbWVudS1vcGVuIC5uYXYge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kOiAjZjlmOWY5O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4ubS1tZW51LW9wZW4gLnN1Ym5hdiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5zdWJuYXYgbGkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLnN1Ym5hdiBsaSB1bCB7XG4gIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uc3VibmF2IGxpIHVsIGxpIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuLnN1Ym5hdiBsaSBhIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4uc3VibmF2IGxpIGE6aG92ZXIsIC5zdWJuYXYgbGkgYS5hY3RpdmUge1xuICBjb2xvcjogYmx1ZTtcbn1cblxuLnN1Ym5hdiBidXR0b24ge1xuICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgY3ViaWMtYmV6aWVyKDAuNDQ1LCAwLjA1LCAwLjU1LCAwLjk1KTtcbiAgYmFja2dyb3VuZDogIzdERUNDOTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBmb250LXNpemU6IDJyZW07XG4gIGJvcmRlcjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4uc3VibmF2IGJ1dHRvbjpiZWZvcmUsIC5zdWJuYXYgYnV0dG9uOmFmdGVyIHtcbiAgdG9wOiAxOXB4O1xuICBsZWZ0OiAxMnB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb250ZW50OiAnJztcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgY3ViaWMtYmV6aWVyKDAuNDQ1LCAwLjA1LCAwLjU1LCAwLjk1KTtcbn1cblxuLnN1Ym5hdiBidXR0b246YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG59XG5cbi5zdWItbWVudS1vcGVuIC5zdWJuYXYgYnV0dG9uIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcwZW0pIHtcbiAgLnBhZ2UgLnN1Ym5hdiB7XG4gICAgdG9wOiA3MHB4O1xuICAgIHJpZ2h0OiAxMHB4O1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG4gIC5wYWdlIC5zdWJuYXYgYnV0dG9uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDJweDtcbiAgfVxuICAucGFnZSAuc3VibmF2IG5hdiB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzMGVtKSB7XG4gIC5tLW1lbnUge1xuICAgIHRvcDogMTVweDtcbiAgfVxuICAubmF2IC5tZW51LWhlYWRlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAubmF2OmFmdGVyLCAubmF2OmJlZm9yZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAubmF2IHVsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgfVxuICAubmF2IHVsIC5jMSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC5uYXYgdWwgbGkgdWwge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMjBweCAwIDQwcHggMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAubmF2IHVsIC5taW5vciB1bCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxuICAucGFnZS0yLWNvbCAuY29udGFpbmVyIC5zdWJuYXYgbGkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIC5wYWdlLTItY29sIC5jb250YWluZXIgLnN1Ym5hdiBsaSBhIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5wYWdlLTItY29sIC5jb250YWluZXIgLnN1Ym5hdiBsaSBhLmFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG4gIC5wYWdlLTItY29sIC5jb250YWluZXIgLnN1Ym5hdiBsaSBhLmFjdGl2ZTpiZWZvcmUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBjb250ZW50OiAnLi4uJztcbiAgICByaWdodDogNDBweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0b3A6IDE1cHg7XG4gIH1cbiAgLnBhZ2UtMi1jb2wgLmNvbnRhaW5lciAuc3VibmF2IHVsLnN1Ym5hdm9wZW4gbGkgYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgLnBhZ2UtMi1jb2wgLmNvbnRhaW5lciAuc3VibmF2IHVsLnN1Ym5hdm9wZW4gbGkgYS5hY3RpdmU6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuYm9keSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XG4gIGNvbG9yOiAjMzMzO1xufVxuXG5hIHtcbiAgY29sb3I6ICMzMzM7XG59XG5cbnVsLFxubGkge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbmltZyB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmJ0biB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDFweCBzb2xpZCAjMzMzO1xuICBwYWRkaW5nOiAxMHB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIG1hcmdpbjogMjBweCAwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmJ0bjpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICMzMzM7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuZm9vdGVyIHtcbiAgYmFja2dyb3VuZDogI0Y2RjZGNjtcbn1cbiIsIi8qIFB1dCB5b3VyIGdsb2JhbCBzdHlsZXMgaGVyZSAqL1xuQGltcG9ydCAnbm9ybWFsaXplJztcbkBpbXBvcnQgJ2JvaWxlcnBsYXRlJztcbkBpbXBvcnQgJ3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd0eXBvJztcbkBpbXBvcnQgJ2xheW91dCc7XG5AaW1wb3J0ICduYXYnO1xuXG5ib2R5IHsgIFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmdjb2xvcjtcbiAgY29sb3I6ICRtYWluY29sb3I7XG59XG5cbmEge1xuICBjb2xvcjogJG1haW5jb2xvcjtcbn1cblxudWwsXG5saSB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjowO1xuICBwYWRkaW5nOjA7XG59XG5cbmltZyB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBkaXNwbGF5OiBibG9jaztcbn1cbiBcbi5hY3RpdmUsIGE6aG92ZXJ7XG4gIC8vY29sb3I6ICRoaWdobGlnaHRjb2xvcjtcbn1cblxuLmJ0biB7XG4gIGJhY2tncm91bmQ6dHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjoxcHggc29saWQgJG1haW5jb2xvcjtcbiAgcGFkZGluZzogMTBweDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBtYXJnaW46IDIwcHggMDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6JG1haW5jb2xvcjtcbiAgICBjb2xvcjp3aGl0ZTtcbiAgfVxufVxuXG5mb290ZXIge1xuICBiYWNrZ3JvdW5kOiNGNkY2RjY7ICBcbn0iLCIvKiEgbm9ybWFsaXplLmNzcyB2Ny4wLjAgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG5cbi8qIERvY3VtZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW5cbiAqICAgIElFIG9uIFdpbmRvd3MgUGhvbmUgYW5kIGluIGlPUy5cbiAqL1xuXG5odG1sIHtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qIFNlY3Rpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICovXG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKi9cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZm9vdGVyLFxuaGVhZGVyLFxubmF2LFxuc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAqIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG4gKi9cblxuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICovXG5cbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5tYWluIHsgLyogMSAqL1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgbWFyZ2luIGluIElFIDguXG4gKi9cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDtcbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gKi9cblxuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMSAqL1xuICBoZWlnaHQ6IDA7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnByZSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKiAyLiBSZW1vdmUgZ2FwcyBpbiBsaW5rcyB1bmRlcmxpbmUgaW4gaU9TIDgrIGFuZCBTYWZhcmkgOCsuXG4gKi9cblxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyAvKiAxICovXG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXA6IG9iamVjdHM7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gQ2hyb21lIDU3LSBhbmQgRmlyZWZveCAzOS0uXG4gKiAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxuICovXG5cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTsgLyogMSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgLyogMiAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBQcmV2ZW50IHRoZSBkdXBsaWNhdGUgYXBwbGljYXRpb24gb2YgYGJvbGRlcmAgYnkgdGhlIG5leHQgcnVsZSBpbiBTYWZhcmkgNi5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc3R5bGUgaW4gQW5kcm9pZCA0LjMtLlxuICovXG5cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgYmFja2dyb3VuZCBhbmQgY29sb3IgaW4gSUUgOS0uXG4gKi9cblxubWFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjA7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gKiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqL1xuXG5hdWRpbyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGlPUyA0LTcuXG4gKi9cblxuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAtLlxuICovXG5cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbn1cblxuLyoqXG4gKiBIaWRlIHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAqL1xuXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxMDAlOyAvKiAxICovXG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIG1hcmdpbjogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICogMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCB7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHsgLyogMSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBQcmV2ZW50IGEgV2ViS2l0IGJ1ZyB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2AgYW5kIGB2aWRlb2BcbiAqICAgIGNvbnRyb2xzIGluIEFuZHJvaWQgNC5cbiAqIDIuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKi9cblxuYnV0dG9uLFxuaHRtbCBbdHlwZT1cImJ1dHRvblwiXSwgLyogMSAqL1xuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAqL1xuXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cblxuZmllbGRzZXQge1xuICBwYWRkaW5nOiAwLjM1ZW0gMC43NWVtIDAuNjI1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAqICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmxlZ2VuZCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cbiAgZGlzcGxheTogdGFibGU7IC8qIDEgKi9cbiAgbWF4LXdpZHRoOiAxMDAlOyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDMgKi9cbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgLyogMSAqL1xufVxuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICogMi4gQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuXG5wcm9ncmVzcyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgLyogMSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFLlxuICovXG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAtLlxuICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLS5cbiAqL1xuXG5bdHlwZT1cImNoZWNrYm94XCJdLFxuW3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gKi9cblxuW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICBvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBhbmQgY2FuY2VsIGJ1dHRvbnMgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gKi9cblxuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuICovXG5cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMSAqL1xuICBmb250OiBpbmhlcml0OyAvKiAyICovXG59XG5cbi8qIEludGVyYWN0aXZlXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSwgYW5kIEZpcmVmb3guXG4gKi9cblxuZGV0YWlscywgLyogMSAqL1xubWVudSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG59XG5cbi8qIFNjcmlwdGluZ1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqL1xuXG5jYW52YXMge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUuXG4gKi9cblxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBIaWRkZW5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAtLlxuICovXG5cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiIsIi8qISBIVE1MNSBCb2lsZXJwbGF0ZSB2Ni4wLjEgfCBNSVQgTGljZW5zZSB8IGh0dHBzOi8vaHRtbDVib2lsZXJwbGF0ZS5jb20vICovXG5cbi8qXG4gKiBXaGF0IGZvbGxvd3MgaXMgdGhlIHJlc3VsdCBvZiBtdWNoIHJlc2VhcmNoIG9uIGNyb3NzLWJyb3dzZXIgc3R5bGluZy5cbiAqIENyZWRpdCBsZWZ0IGlubGluZSBhbmQgYmlnIHRoYW5rcyB0byBOaWNvbGFzIEdhbGxhZ2hlciwgSm9uYXRoYW4gTmVhbCxcbiAqIEtyb2MgQ2FtZW4sIGFuZCB0aGUgSDVCUCBkZXYgY29tbXVuaXR5IGFuZCB0ZWFtLlxuICovXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBCYXNlIHN0eWxlczogb3BpbmlvbmF0ZWQgZGVmYXVsdHNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBSZW1vdmUgdGV4dC1zaGFkb3cgaW4gc2VsZWN0aW9uIGhpZ2hsaWdodDpcbiAqIGh0dHBzOi8vdHdpdHRlci5jb20vbWlrZXRheWxyL3N0YXR1cy8xMjIyODgwNTMwMVxuICpcbiAqIFZlbmRvci1wcmVmaXhlZCBhbmQgcmVndWxhciA6OnNlbGVjdGlvbiBzZWxlY3RvcnMgY2Fubm90IGJlIGNvbWJpbmVkOlxuICogaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzE2OTgyNTEwLzcxMzM0NzFcbiAqXG4gKiBDdXN0b21pemUgdGhlIGJhY2tncm91bmQgY29sb3IgdG8gbWF0Y2ggeW91ciBkZXNpZ24uXG4gKi9cblxuOjotbW96LXNlbGVjdGlvbiB7XG4gICAgYmFja2dyb3VuZDogI2IzZDRmYztcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cblxuOjpzZWxlY3Rpb24ge1xuICAgIGJhY2tncm91bmQ6ICNiM2Q0ZmM7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG5cbi8qXG4gKiBBIGJldHRlciBsb29raW5nIGRlZmF1bHQgaG9yaXpvbnRhbCBydWxlXG4gKi9cblxuaHIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMXB4O1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2NjYztcbiAgICBtYXJnaW46IDFlbSAwO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbi8qXG4gKiBSZW1vdmUgdGhlIGdhcCBiZXR3ZWVuIGF1ZGlvLCBjYW52YXMsIGlmcmFtZXMsXG4gKiBpbWFnZXMsIHZpZGVvcyBhbmQgdGhlIGJvdHRvbSBvZiB0aGVpciBjb250YWluZXJzOlxuICogaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvaXNzdWVzLzQ0MFxuICovXG5cbmF1ZGlvLFxuY2FudmFzLFxuaWZyYW1lLFxuaW1nLFxuc3ZnLFxudmlkZW8ge1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi8qXG4gKiBSZW1vdmUgZGVmYXVsdCBmaWVsZHNldCBzdHlsZXMuXG4gKi9cblxuZmllbGRzZXQge1xuICAgIGJvcmRlcjogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbn1cblxuLypcbiAqIEFsbG93IG9ubHkgdmVydGljYWwgcmVzaXppbmcgb2YgdGV4dGFyZWFzLlxuICovXG5cbnRleHRhcmVhIHtcbiAgICByZXNpemU6IHZlcnRpY2FsO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQnJvd3NlciBVcGdyYWRlIFByb21wdFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmJyb3dzZXJ1cGdyYWRlIHtcbiAgICBtYXJnaW46IDAuMmVtIDA7XG4gICAgYmFja2dyb3VuZDogI2NjYztcbiAgICBjb2xvcjogIzAwMDtcbiAgICBwYWRkaW5nOiAwLjJlbSAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuXG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEhlbHBlciBjbGFzc2VzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogSGlkZSB2aXN1YWxseSBhbmQgZnJvbSBzY3JlZW4gcmVhZGVyc1xuICovXG5cbi5oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLypcbiAqIEhpZGUgb25seSB2aXN1YWxseSwgYnV0IGhhdmUgaXQgYXZhaWxhYmxlIGZvciBzY3JlZW4gcmVhZGVyczpcbiAqIGh0dHBzOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5XG4gKlxuICogMS4gRm9yIGxvbmcgY29udGVudCwgbGluZSBmZWVkcyBhcmUgbm90IGludGVycHJldGVkIGFzIHNwYWNlcyBhbmQgc21hbGwgd2lkdGhcbiAqICAgIGNhdXNlcyBjb250ZW50IHRvIHdyYXAgMSB3b3JkIHBlciBsaW5lOlxuICogICAgaHR0cHM6Ly9tZWRpdW0uY29tL0BqZXNzZWJlYWNoL2Jld2FyZS1zbXVzaGVkLW9mZi1zY3JlZW4tYWNjZXNzaWJsZS10ZXh0LTU5NTJhNGMyY2JmZVxuICovXG5cbi52aXN1YWxseWhpZGRlbiB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgLXdlYmtpdC1jbGlwLXBhdGg6IGluc2V0KDUwJSk7XG4gICAgY2xpcC1wYXRoOiBpbnNldCg1MCUpO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgLyogMSAqL1xufVxuXG4vKlxuICogRXh0ZW5kcyB0aGUgLnZpc3VhbGx5aGlkZGVuIGNsYXNzIHRvIGFsbG93IHRoZSBlbGVtZW50XG4gKiB0byBiZSBmb2N1c2FibGUgd2hlbiBuYXZpZ2F0ZWQgdG8gdmlhIHRoZSBrZXlib2FyZDpcbiAqIGh0dHBzOi8vd3d3LmRydXBhbC5vcmcvbm9kZS84OTc2MzhcbiAqL1xuXG4udmlzdWFsbHloaWRkZW4uZm9jdXNhYmxlOmFjdGl2ZSxcbi52aXN1YWxseWhpZGRlbi5mb2N1c2FibGU6Zm9jdXMge1xuICAgIGNsaXA6IGF1dG87XG4gICAgLXdlYmtpdC1jbGlwLXBhdGg6IG5vbmU7XG4gICAgY2xpcC1wYXRoOiBub25lO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXJnaW46IDA7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICB3aWR0aDogYXV0bztcbiAgICB3aGl0ZS1zcGFjZTogaW5oZXJpdDtcbn1cblxuLypcbiAqIEhpZGUgdmlzdWFsbHkgYW5kIGZyb20gc2NyZWVuIHJlYWRlcnMsIGJ1dCBtYWludGFpbiBsYXlvdXRcbiAqL1xuXG4uaW52aXNpYmxlIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi8qXG4gKiBDbGVhcmZpeDogY29udGFpbiBmbG9hdHNcbiAqXG4gKiBGb3IgbW9kZXJuIGJyb3dzZXJzXG4gKiAxLiBUaGUgc3BhY2UgY29udGVudCBpcyBvbmUgd2F5IHRvIGF2b2lkIGFuIE9wZXJhIGJ1ZyB3aGVuIHRoZVxuICogICAgYGNvbnRlbnRlZGl0YWJsZWAgYXR0cmlidXRlIGlzIGluY2x1ZGVkIGFueXdoZXJlIGVsc2UgaW4gdGhlIGRvY3VtZW50LlxuICogICAgT3RoZXJ3aXNlIGl0IGNhdXNlcyBzcGFjZSB0byBhcHBlYXIgYXQgdGhlIHRvcCBhbmQgYm90dG9tIG9mIGVsZW1lbnRzXG4gKiAgICB0aGF0IHJlY2VpdmUgdGhlIGBjbGVhcmZpeGAgY2xhc3MuXG4gKiAyLiBUaGUgdXNlIG9mIGB0YWJsZWAgcmF0aGVyIHRoYW4gYGJsb2NrYCBpcyBvbmx5IG5lY2Vzc2FyeSBpZiB1c2luZ1xuICogICAgYDpiZWZvcmVgIHRvIGNvbnRhaW4gdGhlIHRvcC1tYXJnaW5zIG9mIGNoaWxkIGVsZW1lbnRzLlxuICovXG5cbi5jbGVhcmZpeDpiZWZvcmUsXG4uY2xlYXJmaXg6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIFwiOyAvKiAxICovXG4gICAgZGlzcGxheTogdGFibGU7IC8qIDIgKi9cbn1cblxuLmNsZWFyZml4OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbn1cblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUHJpbnQgc3R5bGVzLlxuICAgSW5saW5lZCB0byBhdm9pZCB0aGUgYWRkaXRpb25hbCBIVFRQIHJlcXVlc3Q6XG4gICBodHRwOi8vd3d3LnBocGllZC5jb20vZGVsYXktbG9hZGluZy15b3VyLXByaW50LWNzcy9cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbkBtZWRpYSBwcmludCB7XG4gICAgKixcbiAgICAqOmJlZm9yZSxcbiAgICAqOmFmdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDsgLyogQmxhY2sgcHJpbnRzIGZhc3RlcjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHR0cDovL3d3dy5zYW5iZWlqaS5jb20vYXJjaGl2ZXMvOTUzICovXG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBhLFxuICAgIGE6dmlzaXRlZCB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cblxuICAgIGFbaHJlZl06YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIiAoXCIgYXR0cihocmVmKSBcIilcIjtcbiAgICB9XG5cbiAgICBhYmJyW3RpdGxlXTphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiIChcIiBhdHRyKHRpdGxlKSBcIilcIjtcbiAgICB9XG5cbiAgICAvKlxuICAgICAqIERvbid0IHNob3cgbGlua3MgdGhhdCBhcmUgZnJhZ21lbnQgaWRlbnRpZmllcnMsXG4gICAgICogb3IgdXNlIHRoZSBgamF2YXNjcmlwdDpgIHBzZXVkbyBwcm90b2NvbFxuICAgICAqL1xuXG4gICAgYVtocmVmXj1cIiNcIl06YWZ0ZXIsXG4gICAgYVtocmVmXj1cImphdmFzY3JpcHQ6XCJdOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICB9XG5cbiAgICBwcmUge1xuICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgcHJlLFxuICAgIGJsb2NrcXVvdGUge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xuICAgICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgfVxuXG4gICAgLypcbiAgICAgKiBQcmludGluZyBUYWJsZXM6XG4gICAgICogaHR0cDovL2Nzcy1kaXNjdXNzLmluY3V0aW8uY29tL3dpa2kvUHJpbnRpbmdfVGFibGVzXG4gICAgICovXG5cbiAgICB0aGVhZCB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDtcbiAgICB9XG5cbiAgICB0cixcbiAgICBpbWcge1xuICAgICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgfVxuXG4gICAgcCxcbiAgICBoMixcbiAgICBoMyB7XG4gICAgICAgIG9ycGhhbnM6IDM7XG4gICAgICAgIHdpZG93czogMztcbiAgICB9XG5cbiAgICBoMixcbiAgICBoMyB7XG4gICAgICAgIHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkO1xuICAgIH1cbn1cbiIsIlxuaHRtbCB7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xufVxuXG5ib2R5IHsgIFxuICBmb250LWZhbWlseTogSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDFyZW07IC8vMS4xMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI1cmVtO1xuICBmb250LXdlaWdodDogbm9ybWFsOyAgXG59XG5cbi5mLWhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbiAgei1pbmRleDogMztcbn1cbi5zY3JvbGxpbmcgLmYtaGVhZGVyIHtcbiBmb250LXNpemU6IDFyZW07IFxufVxuXG4uYmFzZWxpbmUsIC50bXBsaW5lIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbi50bXBsaW5lIHtcbiAgZm9udC1zaXplOiAwLjhyZW07XG59XG5cbi5ibG9jay10aXRsZSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cbiAgYSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAmOmhvdmVyIHtcbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGNvbnRlbnQ6J+KGkic7XG4gICAgICAgIHJpZ2h0Oi0yMHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uYWdlbmRhIHtcbiAgXG4gIC50eXBlIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgfVxuXG4gIGg0IHtcbiAgICBtYXJnaW46IDVweCAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgfVxuXG4gIC5sb2NhdGlvbiB7XG4gICAgZm9udC1zaXplOiAwLjg1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxcmVtO1xuICB9XG4gIC5kYXRlIHsgICAgICAgIFxuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDonIC0nXG4gICAgfVxuICB9XG4gIFxufVxuXG4ubmV3cyB7XG4gIGg0IHtcbiAgICBtYXJnaW46IDEwcHggMCAwIDA7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgfVxuICAuaW50cm8ge1xuICAgIHBhZGRpbmc6MCAxMHB4O1xuICB9XG4gIC5uZXdzLWl0ZW0gYSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG59XG5cblxuLy8gaG9tZSBmb290ZXJcbi5pbmZvIHtcbiAgZm9udC1zaXplOiAwLjlyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjFyZW07XG59XG5cbi5uYXYge1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgXG4gIC5tZW51LWhlYWRlciB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXNpemU6IDFyZW07XG4gIH1cblxuICAuYzEge1xuICAgIGZvbnQtc2l6ZTogMi41cmVtO1xuICB9XG5cbiAgLm1pbm9yLCAubWlub3IgLmMxe1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgXG4gICAgYSB7XG4gICAgICBtYXJnaW4tbGVmdDoxMHB4O1xuICAgIH1cbiAgICB1bCB7XG4gICAgICBtYXJnaW4tdG9wOiAtMjJweDtcbiAgICB9XG4gICAgIHVsIGxpIGEge1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHVsIGxpIHVsIGxpIHtcbiAgICBsaW5lLWhlaWdodDogMS41cmVtO1xuICB9XG59XG5cblxuLnBhZ2UtdGl0bGUge1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6MS42NXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLm5hdCB7XG4gIGZvbnQtc2l6ZTogMC44NXJlbTsgICBcbn1cblxuXG4ucGFnZSwgLnBhZ2UtMi1jb2wge1xuICBoMSwgaDIge1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIH1cbiAgaDQge1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIG1hcmdpbi10b3A6IDQwcHg7XG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICB9XG4gIGg1IHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIHBhZGRpbmctbGVmdDogMjBweDtcbiAgfVxuXG4gIHAge1xuICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICBwYWRkaW5nOiBhdXRvIDIwcHg7XG4gICAgbGluZS1oZWlnaHQ6MS40NXJlbTtcbiAgfVxuXG59XG5cbi5wYWdlICB7XG4gICAgXG4gIC5zdWJuYXYge1xuICAgIGgzIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgLy8gbGluZS1oZWlnaHQ6MS41cmVtO1xuICAgIH1cbiAgfVxufVxuXG4ucGFnZS0yLWNvbCB7XG4gIC5pbnRybyB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXNpemU6IDAuOXJlbTsgICAgXG4gIH1cbn1cblxuLnRtcCBoNCB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4udG1wIGg1IHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuXG4ud2hvaXN3aG8gaDQge1xuICBmb250LXdlaWdodDogNDAwO1xufVxuXG4uY3JlZGl0cyB7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ1ZW0pIHtcbiAgLmYtaGVhZGVyIHtcbiAgICBmb250LXNpemU6IDFyZW07XG4gIH1cblxuICBcbn0iLCIvKiBQdXQgeW91ciBsYXlvdXQgaGVyZSAqL1xuXG5odG1sLCBib2R5IHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG5ib2R5IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuI2NvbnRhaW5lciB7XG4gIGZsZXg6IDEgMCBhdXRvO1xuICBtYXJnaW4tYm90dG9tOiA0MHB4O1xufVxuXG5mb290ZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBkaXNwbGF5OmZsZXg7XG4gIGp1c3RpZnktY29udGVudDpjZW50ZXI7XG4gIGEge1xuICAgIC8vIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxuXG4gIC5jcmVkaXRze1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206MTVweDtcbiAgICByaWdodDoyMHB4O1xuXG4gICAgYSB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBjb2xvcjojYmNiY2JjO1xuICAgIH1cbiAgfVxufVxuXG4uc3dpdGNoIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHotaW5kZXg6IDk5OTk7XG4gIGJhY2tncm91bmQ6IHBpbms7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uaGVhZGVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB3aWR0aDogMTAwJTtcbiAgdG9wOiAwO1xuICBoZWlnaHQ6IDc1cHg7XG4gIGJhY2tncm91bmQ6ICRiZ2NvbG9yO1xuICB6LWluZGV4OiAxO1xuICBkaXNwbGF5OiBub25lO1xuXG4gIC5iYXNlbGluZSB7XG4gICAgbWFyZ2luLXRvcDogMjVweDtcbiAgfVxufVxuXG4ubG9nbyB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAyMHB4O1xuICBsZWZ0OiAzMHB4O1xuICB6LWluZGV4OiA2O1xufVxuXG4uYmFzZWxpbmUge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi50bXBsaW5lIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBiYWNrZ3JvdW5kOiAkbWFpbmNvbG9yOy8vJGJnY29sb3I7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyOiAxcHggc29saWQgJG1haW5jb2xvcjtcbiAgdG9wOiAwcHg7XG4gIGhlaWdodDogNDhweDtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDM0MHB4KTtcbiAgcGFkZGluZzogMTBweDtcbiAgcGFkZGluZy10b3A6IDE1cHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICByaWdodDogMDtcbiAgYSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgfVxufVxuXG4ubGFuZ3N3aXRjaCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAyNXB4O1xuICByaWdodDogNzVweDtcbiAgei1pbmRleDogMjtcbiAgYSB7XG4gICAgbWFyZ2luOiAwIDJweDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cbn1cblxuZm9vdGVyIHtcbiAgaW1nIHtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgfVxufVxuXG4uZml4ZWQge1xuICAuZi1oZWFkZXIge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuICBoZWFkZXJ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuXG5cbi8qIEhPTUVQQUdFICovXG5cbi5mLWhlYWRlciB7XG4gIGJhY2tncm91bmQ6ICRiZ2NvbG9yO1xuICBwYWRkaW5nOiAyMHB4IDA7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvdHRvbTowO1xufVxuXG4uYmdpbWcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHRvcDogMDtcbiAgei1pbmRleDogMCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA2MHB4KTtcbiAgLy8gYmFja2dyb3VuZDogdXJsKC9pbWcvd29yay5qcGcpIG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyIGZpeGVkO1xuICAvL2JhY2tncm91bmQ6IHVybCgvaW1nL2F1ZGl0aW9ucy5qcGcpIG5vLXJlcGVhdCBjZW50ZXIgdG9wIGZpeGVkO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgdG9wO1xuICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xufVxuXG4uYmdpbWcge1xuICAmOmJlZm9yZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGNvbnRlbnQ6Jy4uLi4uJztcbiAgICB0b3A6IDUwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYW5pbWF0aW9uOiBsb2FkZXIgMXMgbGluZWFyIGluZmluaXRlO1xuICB9XG4gICYubG9hZGVkIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuQGtleWZyYW1lcyBsb2FkZXIge1xuICAwJSB7XG4gICAgY29udGVudDogXCIuICAgIFwiO1xuICB9XG4gIDI1JSB7XG4gICAgY29udGVudDogXCIuLiAgIFwiO1xuICB9XG4gIDUwJSB7XG4gICAgY29udGVudDogXCIuLi4gIFwiO1xuICB9XG4gIDc1JSB7XG4gICAgY29udGVudDogXCIuLi4uIFwiO1xuICB9XG4gIDEwMCUge1xuICAgIGNvbnRlbnQ6IFwiLi4uLi5cIjtcbiAgfVxufVxuXG5cbi5tYWluIHtcbiAgLmNvbnRlbnQge1xuICAgIG1heC13aWR0aDogMTQwMHB4O1xuICAgIG1hcmdpbjogNDBweCBhdXRvIDAgYXV0bztcbiAgfVxufVxuXG4uYmxvY2stdGl0bGUge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5hZ2VuZGEge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcblxuICAuYWdlbmRhLWl0ZW0ge1xuICAgIHdpZHRoOiAyMCU7XG4gICAgcGFkZGluZzogMTBweCAyMHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBhIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgY29udGVudDon4oaSJztcbiAgICAgICAgICBib3R0b206LTEwcHg7XG4gICAgICAgICAgbGVmdDowO1xuICAgICAgICAgIHJpZ2h0OjA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQsICYuYTU1e1xuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6YmVmb3JlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgYmFja2dyb3VuZDogJG1haW5jb2xvcjtcbiAgICAgIHdpZHRoOiAxcHg7XG4gICAgICB0b3A6IDA7XG4gICAgICByaWdodDogMDtcbiAgICB9XG5cbiAgfVxufVxuXG4ubmV3cyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgLnRodW1iIHtcbiAgICBtYXgtaGVpZ2h0OjMwMHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBpbWcge1xuICAgICAgICB0cmFuc2Zvcm06c2NhbGUoMS4yNSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm5ld3MtaXRlbSB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJS8zIC0gMjBweCk7XG4gICAgbWFyZ2luOjEwcHggMTBweCAyMHB4IDEwcHg7XG4gICAgcCB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIC5yZWFkLW1vcmUge1xuICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cbiAgfVxufVxuXG4uaG9tZSAubW9yZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogNjBweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGEge1xuICAgIC8vIGJvcmRlcjoxcHggc29saWQgJG1haW5jb2xvcjtcbiAgICAvLyB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICBwYWRkaW5nOjVweCAxMHB4O1xuICAgICY6aG92ZXIge1xuICAgICAgLy8gYmFja2dyb3VuZDogJG1haW5jb2xvcjtcbiAgICAgIC8vIGNvbG9yOiB3aGl0ZTtcbiAgICB9XG4gIH1cbn1cblxuLmluZm8ge1xuICBib3JkZXItdG9wOjFweCBzb2xpZCAkbWFpbmNvbG9yO1xuICBwYWRkaW5nLXRvcDogMzBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luLXRvcDogNjBweDtcblxuICAuYmxvY2stdGl0bGUge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cblxuICAuYmxvY2std3JhcHBlciB7XG4gICAgLy8gd2lkdGg6IGNhbGMoMTAwJSAtIDQwcHgpO1xuICAgIC8vIHBhZGRpbmc6MCAyMHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG5cbiAgLmJsb2NrIHtcbiAgICAvLyB3aWR0aDogY2FsYygxMDAlLzMgLSAxMHB4KTtcbiAgICAvLyBwYWRkaW5nOiAwIDEwcHggMCAwO1xuICAgIHdpZHRoOiBjYWxjKDEwMCUvMyAtIDQwcHgpO1xuICAgIG1hcmdpbjogMTBweCAxMHB4IDIwcHggMTBweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgcGFkZGluZy1yaWdodDogMTBweDtcblxuICAgIC8vICYuYjEge1xuICAgIC8vICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICAvLyB9XG4gICAgLy8gJi5iMiB7XG4gICAgLy8gICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgLy8gICBhIHtcbiAgICAvLyAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIC8vICAgICBtYXJnaW4tcmlnaHQ6N3B4O1xuICAgIC8vICAgfVxuICAgIC8vIH1cblxuICB9XG4gIC5ibG9jay1zb2NpYWwge1xuICAgICAgYSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OjdweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgLmZvcm0ge1xuICAgIG1hcmdpbi10b3A6IDUzcHg7XG4gIH1cblxuICBpbnB1dFt0eXBlPVwiZW1haWxcIl0ge1xuICAgIGJvcmRlcjpub25lO1xuICAgIGJvcmRlcjoxcHggc29saWQgJG1haW5jb2xvcjtcbiAgICBiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O1xuICAgIHBhZGRpbmc6MTBweDtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gNTBweCk7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICBib3JkZXItcmFkaXVzOjA7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB9XG5cbiAgYnV0dG9uLCAuYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjoxcHggc29saWQgJG1haW5jb2xvcjtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIC8vIG1hcmdpbi10b3A6IDE0MHB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiRtYWluY29sb3I7XG4gICAgICBjb2xvcjp3aGl0ZTtcbiAgICB9XG4gIH1cbn1cblxuLmhvbWViaWcge1xuICAubmV3cyB7XG4gICAgLm5ld3MtaXRlbSB7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gMjBweCk7XG4gICAgfVxuICAgIC5uZWgxe1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJS8zKjIpO1xuICAgICAgLm5ld3MtaXRlbSB7XG4gICAgICAgIC50aHVtYiB7XG4gICAgICAgICAgbWF4LWhlaWdodDogNjAwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLm5laDIge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJS8zKTtcbiAgICB9XG4gIH1cbn1cblxuLnBhZ2UsIC5wYWdlLTItY29sLCAuYWdlbmRhcGFnZSwgLm5ld3NwYWdlIHtcblxuICAuaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG59XG5cbi8qIFJFR1VMQVIgUEFHRSAxIENPTFVNTiAqL1xuXG4vKi5wYWdlIHtcbiAgLnN1Ym5hdiB7XG4gICAgbWluLXdpZHRoOjI2NXB4O1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiA2NjtcbiAgICB0b3A6NTNweDtcbiAgICByaWdodDoxMDBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBidXR0b24ge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgbmF2IHtcbiAgICAgIG1hcmdpbi10b3A6IC0yMnB4O1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgcGFkZGluZzoyMHB4O1xuICAgICAgLy8gdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG4gIH1cbn1cbi5zdWItbWVudS1vcGVuIHtcbiAgLnN1Ym5hdiBuYXYge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn0qL1xuXG4ucGFnZSAuY29udGFpbmVyIHtcblxuICAucGFnZS10aXRsZSB7XG4gICAgcGFkZGluZzowIDAgMTVweCAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGxlZnQ6MDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAuY29udGVudCB7XG4gICAgbWFyZ2luLXRvcDogMTAwcHg7XG4gICAgbWF4LXdpZHRoOiA5MDBweDtcbiAgICBwYWRkaW5nOjAgMTBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblxuICAgIHAsIGg0IHtcbiAgICAgIG1heC13aWR0aDogODAwcHg7XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxuXG4gICAgaDQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgbWFyZ2luLXRvcDogNDBweDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5pbWcgaW1nIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbiAgfVxuXG4gIC50aTIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6ZmxleC1lbmQ7Ly9iYXNlbGluZTtcbiAgICAuaW1nIHtcbiAgICAgIG1heC13aWR0aDogNTAlO1xuICAgIH1cbiAgICAuaTEge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgIH1cbiAgICAuaTIge1xuICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gICAgfVxuICB9XG5cbn1cblxuXG4vKiBSRUdVTEFSIFBBR0UgLSAyIENPTFVNTlMgKi9cbi5wYWdlLTItY29sIC5jb250YWluZXIge1xuICAuYmFubmVyIHtcbiAgICBtYXgtaGVpZ2h0OjQwMHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgaW1nIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gIC5jb250ZW50IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDMwcHg7XG4gICAgcGFkZGluZy1yaWdodDogMzBweDtcblxuICAgIC5pbnRybyB7XG4gICAgICBtYXgtd2lkdGg6IDcwJTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gICAgfVxuXG4gICAgaW1nIHtcbiAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgfVxuICB9XG5cbiAgLnN1Ym5hdiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjI5LDE0MCwxMTQsMC42KTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0b3A6MDtcbiAgICBsZWZ0OjA7XG4gICAgcmlnaHQ6MDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgLy9oZWlnaHQ6NjVweDtcbiAgICB1bCB7XG4gICAgICBtYXgtd2lkdGg6IDE0NDBweDtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAvLyBiYWNrZ3JvdW5kOnBpbms7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIC8vaGVpZ2h0OjY1cHg7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbiAgICBsaSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW46MCAtNXB4IDAgMDtcblxuICAgICAgYSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwYWRkaW5nOjIwcHg7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgJjpob3ZlciwgJi5hY3RpdmUge1xuICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjI5LDE0MCwxMTQsMC42KTtcbiAgICAgICAgICBjb2xvcjogJG1haW5jb2xvcjtcblxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmxlZnQsIC5yaWdodCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiBjYWxjKDUwJSAtIDM0cHgpO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cbiAgICBmaWd1cmUge1xuICAgICAgbWFyZ2luOjA7XG4gICAgfVxuICB9XG5cbiAgLmxlZnQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDMwcHg7XG4gIH1cbiAgLnJpZ2h0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDMwcHg7XG4gIH1cblxufVxuXG5cbi8vIGFnZW5kYSBwYWdlXG5cbi5hZ2VuZGFwYWdlIHtcbiAgLmFnZW5kYSB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgLmFnZW5kYS1pdGVtIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gICAgICB3aWR0aDpjYWxjKDIwJSAtIDQxcHgpO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgcGFkZGluZy10b3A6MjBweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAyMHB4O1xuICAgICAgYm9yZGVyLXJpZ2h0Om5vbmU7XG5cbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgYmFja2dyb3VuZDokbWFpbmNvbG9yO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYm90dG9tOi0yMHB4O1xuICAgICAgICBsZWZ0OjA7XG4gICAgICB9XG5cbiAgICAgICY6bnRoLWNoaWxkKDVuKSwgJi5sYXN0e1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICB9XG5cbiAgLmNvbnRlbnQge1xuICAgIG1hcmdpbi10b3A6IDc1cHg7XG4gIH1cblxuICAuZmlsdGVycyB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICAuZmlsdGVyIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG1hcmdpbjoyMHB4O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgd2lkdGg6IDEwcHg7XG4gICAgICAgIGhlaWdodDogMTBweDtcbiAgICAgICAgYm9yZGVyOjFweCBzb2xpZCAkbWFpbmNvbG9yO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0Oi0yMHB4O1xuICAgICAgICB0b3A6M3B4O1xuICAgICAgfVxuXG4gICAgICAmLmFjdGl2ZSwgJjpob3ZlciB7XG4gICAgICAgICY6YmVmb3Jle1xuICAgICAgICAgIGJhY2tncm91bmQ6ICRtYWluY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyogbmV3cyBwYWdlICovXG4ubmV3c3BhZ2Uge1xuICAuY29udGVudCB7XG4gICAgbWFyZ2luLXRvcDogNzVweDtcbiAgfVxuXG4gIC5uZXdzLWl0ZW0ge1xuICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gIH1cbn1cblxuLyogd2hvIGlzIHdobyBwYWdlICovXG4ud2hvaXN3aG8sIC5wYWdlLTItY29sIHtcblxuICAuY29udGFpbmVyIC5zdWJuYXYge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgLy8gYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRtYWluY29sb3I7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIG1heC13aWR0aDogMTM2MHB4O1xuICAgIHVsIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgYSB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgbGVmdDowO1xuICAgICAgICAgIGJvdHRvbTowO1xuICAgICAgICAgIC8vIHBhZGRpbmc6IDAgMjBweDtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgwKTtcbiAgICAgICAgICBoZWlnaHQ6MXB4O1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIGJhY2tncm91bmQ6JG1haW5jb2xvcjtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4wNXMgIGN1YmljLWJlemllcigwLjQ0NSwgMC4wNTAsIDAuNTUwLCAwLjk1MCk7XG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlciwmLmFjdGl2ZSB7XG4gICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBoMXtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgfVxuICAuaW50cm8ge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgLy8gbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICAvLyBib3JkZXItYm90dG9tOiAxcHggc29saWQgJG1haW5jb2xvcjtcbiAgICAvLyBwYWRkaW5nLWJvdHRvbTogMTVweDtcbiAgfVxuICAuaXRlbSB7XG4gICAgYSB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLnRlYWNoZXIge1xuICAgIGg0IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG4gICAgYTpob3ZlcntcbiAgICAgIGg0OmFmdGVye1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBjb250ZW50OifihpInO1xuICAgICAgICAgIHJpZ2h0Oi0yMHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAuc3R1ZGVudCB7XG5cbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuXG4gICAgYSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuICAgIGE6aG92ZXI6YWZ0ZXJ7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGNvbnRlbnQ6J+KGkic7XG4gICAgICAgICAgdG9wOjA7XG4gICAgICAgICAgcmlnaHQ6LTIwcHg7XG4gICAgfVxuICAgIC50cmFjayB7XG4gICAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OmNlbnRlcjtcbiAgICB9XG4gICAgLnRyYWNreWVhciB7XG4gICAgICB3aWR0aDogMTBweDtcbiAgICAgIGhlaWdodDogMTBweDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRtYWluY29sb3I7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDJweDtcbiAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogJG1haW5jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLnN0YWZmIC5jb250YWluZXIgLmxlZnQge1xuICB3aWR0aDogY2FsYygxMDAlIC0gMzRweCk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICAuaXRlbSB7XG4gICAgaDQge1xuICAgICAgbWFyZ2luLXRvcDogMzBweDtcbiAgICB9XG4gIH1cbn1cblxuLnN0dWRlbnRzIC5jb250YWluZXIgLmxlZnQge1xuICB3aWR0aDogY2FsYygxMDAlIC0gMzRweCk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIC8vIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICBmbGV4LXdyYXA6d3JhcDtcbiAgLmdlbmVyYXRpb24sIC5ibG9jayB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJS81IC0gMjBweCk7XG4gICAgbWFyZ2luOiAxMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBoNCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIH1cbiAgfVxuICAuaXRlbSB7XG4gICAgaDQge1xuICAgICAgbWFyZ2luLXRvcDogMzBweDtcbiAgICB9XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MGVtKSB7XG5cbiAgLmxvZ28ge1xuICAgIGxlZnQ6MTBweDtcbiAgICBpbWcge1xuICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICB9XG4gIH1cblxuICAudG1wbGluZSB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDI1MHB4KTtcbiAgICBwYWRkaW5nLXRvcDogNXB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XG4gICAgaGVpZ2h0OjYzcHg7XG4gIH1cblxuICAucGFnZS0yLWNvbCAuY29udGFpbmVyIHtcbiAgICAuY29udGVudCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICAgICAgLmludHJvIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5hZ2VuZGEsIC5hZ2VuZGFwYWdlIC5hZ2VuZGEge1xuICAgIC5hZ2VuZGEtaXRlbSB7XG4gICAgICB3aWR0aDpjYWxjKDEwMCUvMyAtIDQxcHgpO1xuXG4gICAgICAmOm50aC1jaGlsZCg1bil7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOm50aC1jaGlsZCgzbil7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICY6bnRoLWNoaWxkKDNuKXtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gJi5hMjpudGgtbGFzdC1jaGlsZCgtbis1KSwgJi5hMTpudGgtbGFzdC1jaGlsZCgtbis1KSB7XG4gICAgICAvLyAgICY6YWZ0ZXIge1xuICAgICAgLy8gICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgLy8gICB9XG4gICAgICAvLyB9XG4gICAgICAvLyAmLmEyOm50aC1sYXN0LWNoaWxkKC1uKzMpLCAmLmExOm50aC1sYXN0LWNoaWxkKC1uKzMpIHtcbiAgICAgIC8vICAgJjphZnRlciB7XG4gICAgICAvLyAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIC8vICAgfVxuICAgICAgLy8gfVxuXG4gICAgICAvLyAmLmE1OmJlZm9yZSxcbiAgICAgIC8vICYubGFzdDpiZWZvcmUge1xuICAgICAgLy8gICBkaXNwbGF5OiBibG9jaztcbiAgICAgIC8vIH1cblxuICAgIH1cbiAgfVxuXG4gIC5hZ2VuZGFwYWdlIC5hZ2VuZGEge1xuXG4gICAgLmFnZW5kYS1pdGVtIHtcbiAgICAgIC8vYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCAkbWFpbmNvbG9yO1xuICAgICAgLy9ib3JkZXItYm90dG9tOjFweCBzb2xpZCAkbWFpbmNvbG9yICFpbXBvcnRhbnQ7XG4gICAgICAmOm50aC1jaGlsZCgzbiArIDApIHtcbiAgICAgICAgLy9ib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIH1cblxuICAgICAgJjpudGgtbGFzdC1jaGlsZCgtbiszKSB7XG4gICAgICAgIC8vIGJvcmRlci1ib3R0b206MXB4IHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICB9XG4gIH1cblxuICAuZ2FsbGVyeXBhZ2Uge1xuICAgIC50aTIge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgIC5pbWcge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgICAuaTEge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgICAuaTIge1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ1ZW0pIHtcblxuICAubG9nbyBpbWcge1xuICAgIG1heC13aWR0aDogMjAwcHg7XG4gIH1cblxuICAudG1wbGluZSB7XG4gICAgdG9wOjYwcHg7XG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMjBweCk7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG5cbiAgLmhlYWRlciB7XG4gICAgaGVpZ2h0Ojk1cHg7XG4gICAgLmJhc2VsaW5lIHtcbiAgICAgIG1hcmdpbi10b3A6IDYwcHg7XG4gICAgfVxuICB9XG5cbiAgLmluZm8ge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgLmJsb2NrLXdyYXBwZXIge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICB9XG5cbiAgICAuZm9ybSBpbnB1dCB7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gMjBweCk7XG4gICAgfVxuICB9XG5cbiAgLm1haW4gLmNvbnRlbnQge1xuICAgIG1hcmdpbjogMCAxMHB4O1xuICB9XG5cbiAgLmFnZW5kYSwgLmFnZW5kYXBhZ2UgLmFnZW5kYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgLmFnZW5kYS1pdGVtIHtcbiAgICAgIHBhZGRpbmc6IDEwcHggMCAyMHB4IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgICAmOmxhc3QtY2hpbGQ6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICB9XG5cbiAgLmhvbWUgLmFnZW5kYSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAuYWdlbmRhLWl0ZW06YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBoZWlnaHQ6IDFweDtcbiAgICAgIGJhY2tncm91bmQ6JG1haW5jb2xvcjtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgYm90dG9tOjA7XG4gICAgICBsZWZ0OjA7XG4gICAgfVxuICB9XG5cbiAgLmFnZW5kYXBhZ2Uge1xuICAgIC5jb250ZW50IHtcbiAgICAgIG1hcmdpbi10b3A6IDc1cHg7XG4gICAgfVxuICAgIC5maWx0ZXJzIHtcbiAgICAgIC8vbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIGZsZXgtd3JhcDp3cmFwO1xuXG4gICAgICAuZmlsdGVyIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubmV3cyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgLm5ld3MtaXRlbSB7XG4gICAgICBtYXJnaW46IDAgMCA0MHB4IDA7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgLnRodW1iIHtcbiAgICAgICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaG9tZWJpZyAubmV3c3tcbiAgICAubmVoMSwubmVoMiB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gICAgLm5ld3MtaXRlbSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cblxuICAucGFnZSB7XG4gICAgcCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIH1cbiAgICAuY29udGFpbmVyIC5jb250ZW50IHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cbiAgICAuY29udGFpbmVyIC5wYWdlLXRpdGxlIHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxuICB9XG5cbiAgLnBhZ2UtMi1jb2wgLmNvbnRhaW5lciB7XG4gICAgLmNvbnRlbnQge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcblxuICAgICAgLmxlZnQsIC5yaWdodCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgfVxuICAgIH1cbiAgICAuaW50cm8ge1xuICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxuICB9XG4gIGZvb3RlciAuY3JlZGl0c3tcbiAgICBib3R0b206NTBweDtcbiAgfVxuXG59XG5cbkBzdXBwb3J0cyAoLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoKSB7XG4gIC8qIENTUyBzcGVjaWZpYyB0byBpT1MgZGV2aWNlcyAqL1xuICAuYmdpbWcge1xuICAgIC8vIHRlc3QgdG8gc29sdmUgaW9zIGJ1Z1xuICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogc2Nyb2xsICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OmNhbGMoMTAwdmggLSA5NXB4KTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzMGVtKSB7XG5cblxuXG4gIC5sYW5nc3dpdGNoIHtcbiAgICB0b3A6IDE1cHg7XG4gIH1cblxuICAuaGVhZGVyIHtcbiAgICBoZWlnaHQ6NjVweDtcbiAgICAuYmFzZWxpbmUge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAuaW5mbyB7XG4gICAgLmJsb2NrLXdyYXBwZXIge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIC5ibG9jayB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgICAuZm9ybXtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICB9XG4gIGZvb3RlciAuY3JlZGl0c3tcbiAgICBib3R0b206MzVweDtcbiAgfVxuXG59XG5cbiIsIiRiZ2NvbG9yOiAjZjlmOWY5O1xuJG1haW5jb2xvcjogIzMzMztcbiRoaWdobGlnaHRjb2xvcjogI0ZGMDAwMDsiLCIubmF2IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBkaXNwbGF5OiBub25lO1xuICB0b3A6MDtcbiAgbGVmdDowO1xuICB6LWluZGV4OiA0O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMTVzICBjdWJpYy1iZXppZXIoMC40NDUsIDAuMDUwLCAwLjU1MCwgMC45NTApO1xuICBcbiAgLm1lbnUtaGVhZGVyIHtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBsZWZ0Oi0xNHB4O1xuICAgIHJpZ2h0OjA7ICAgIFxuICB9XG5cbiAgdWwge1xuICAgIFxuICAgIHBhZGRpbmc6IDEyMHB4IDAgNDBweCAwO1xuICAgICAgXG4gICAgLmMxIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6Y2FsYyg1MCUgLSA0MHB4KTtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cblxuICAgIGxpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICBhIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgfVxuXG4gICAgICB1bCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICB3aWR0aDogY2FsYyg1MCUgLSA4MHB4KTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGNhbGMoNTAlICsgNDBweCk7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAgICAgbGkge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG5cbiAgICAgICAgICBhIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBjb250ZW50OifihpInO1xuICAgICAgICAgICAgICAgIHJpZ2h0Oi00MHB4O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuYWN0aXZle1xuICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgY29udGVudDon4oaQJztcbiAgICAgICAgICAgICAgICByaWdodDotNDBweDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBcbiAgICB9XG4gIH1cblxuICAvLyAmOmFmdGVyIHtcbiAgLy8gICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIC8vICAgY29udGVudDogJyc7XG4gIC8vICAgaGVpZ2h0OmNhbGMoMTAwJSAtIDEyMHB4KTsgICAgXG4gIC8vICAgd2lkdGg6MXB4O1xuICAvLyAgIGJhY2tncm91bmQ6YmxhY2s7XG4gIC8vICAgbGVmdDowO1xuICAvLyAgIHJpZ2h0OjA7XG4gIC8vICAgbWFyZ2luOjAgYXV0bztcbiAgLy8gICB0b3A6ODBweDtcbiAgLy8gICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIC8vIH1cblxuICAmOmJlZm9yZSB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGhlaWdodDpjYWxjKDEwMCUgLSA4MHB4KTsgICAgXG4gICAgd2lkdGg6MXB4O1xuICAgIGJhY2tncm91bmQ6JG1haW5jb2xvcjtcbiAgICBsZWZ0Oi0xNHB4O1xuICAgIHJpZ2h0OjA7XG4gICAgbWFyZ2luOjAgYXV0bztcbiAgICB0b3A6ODBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgXG59XG5cbi5taW5vciB7XG4gIG1hcmdpbi10b3A6IDMwcHg7XG59XG5cbi8vIC5zb2NpYWwge1xuLy8gICBwb3NpdGlvbjogZml4ZWQ7XG4vLyAgIGxlZnQ6MDtcbi8vICAgcmlnaHQ6MDtcbi8vICAgYm90dG9tOjMwcHg7ICBcblxuLy8gICBhIHtcbi8vICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4vLyAgICAgbWFyZ2luOjIwcHg7XG4vLyAgIH1cbi8vIH1cblxuXG4ubS1tZW51IHtcblxuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDoyNXB4O1xuICByaWdodDoyMHB4O1xuICAvL2Rpc3BsYXk6IG5vbmU7XG4gIHotaW5kZXg6IDU7XG5cbiAgLm1tIHtcbiAgICBib3JkZXI6bm9uZTtcbiAgICBiYWNrZ3JvdW5kOm5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDoyNnB4O1xuICAgIGhlaWdodDoyNnB4O1xuICAgIG91dGxpbmU6bm9uZTtcblxuICAgICY6YmVmb3JlLCAmOmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgY29udGVudDonJztcbiAgICAgIHdpZHRoOjE0cHg7XG4gICAgICBoZWlnaHQ6IDJweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6JG1haW5jb2xvcjtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyAgY3ViaWMtYmV6aWVyKDAuNDQ1LCAwLjA1MCwgMC41NTAsIDAuOTUwKTtcbiAgICB9XG4gICAgJjphZnRlciB7XG4gICAgICB0b3A6IDdweDtcbiAgICB9XG5cbiAgfSAgXG4gIFxufVxuXG4ubS1tZW51LW9wZW4ge1xuXG4gIG92ZXJmbG93OiBoaWRkZW47IFxuXG4gIC5tLW1lbnUge1xuICAgIHJpZ2h0OjM1cHg7XG4gIH0gXG4gIFxuICAubS1tZW51IC5tbSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgdG9wOjEwcHg7XG4gICAgICB0cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7XG4gICAgfVxuICAgICY6YWZ0ZXIge1xuICAgICAgdG9wOjEwcHg7XG4gICAgICB0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTtcbiAgICB9XG4gIH1cbiAgLm5hdiB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiRiZ2NvbG9yO1xuICAgIHdpZHRoOjEwMCU7XG4gICAgaGVpZ2h0OjEwMCU7ICAgIFxuICB9XG5cbiAgLnN1Ym5hdiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4uc3VibmF2IGxpIHsgLy8gbm90IHVzZWQgYW55bW9yZT9cbiAgZGlzcGxheTogYmxvY2s7XG4gIC8vIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB1bCB7XG4gICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBsaXtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgfVxuICB9XG4gIGEge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAmOmhvdmVyLCAmLmFjdGl2ZSB7XG4gICAgICBjb2xvcjpibHVlOyAgICAgIFxuICAgIH1cbiAgfVxufVxuXG4uc3VibmF2IGJ1dHRvbiB7IC8vIG5vdCB1c2VkIGFueW1vcmU/XG4gIHRyYW5zaXRpb246IGFsbCAwLjE1cyAgY3ViaWMtYmV6aWVyKDAuNDQ1LCAwLjA1MCwgMC41NTAsIDAuOTUwKTtcbiAgYmFja2dyb3VuZDojN0RFQ0M5O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGZvbnQtc2l6ZTogMnJlbTsgIFxuICBib3JkZXI6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2lkdGg6NDBweDtcbiAgaGVpZ2h0OjQwcHg7XG4gIG91dGxpbmU6bm9uZTtcblxuICAmOmJlZm9yZSwgJjphZnRlciB7XG4gICAgdG9wOiAxOXB4O1xuICAgIGxlZnQ6MTJweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY29udGVudDonJztcbiAgICB3aWR0aDoxNnB4O1xuICAgIGhlaWdodDogMnB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6JG1haW5jb2xvcjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgIGN1YmljLWJlemllcigwLjQ0NSwgMC4wNTAsIDAuNTUwLCAwLjk1MCk7XG4gIH1cbiAgJjphZnRlciB7ICAgICAgXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICB9XG59XG5cbi5zdWItbWVudS1vcGVuIHtcbiAgLnN1Ym5hdiBidXR0b24geyAvLyBub3QgdXNlZCBhbnltb3JlP1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgfVxufVxuXG5cblxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcwZW0pIHtcbiAgXG4gIC5wYWdlIC5zdWJuYXYgeyAvLyBub3QgdXNlZCBhbnltb3JlP1xuICAgIHRvcDo3MHB4O1xuICAgIHJpZ2h0OjEwcHg7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgXG4gICAgYnV0dG9uIHtcbiAgICAgIG1hcmdpbi1yaWdodDoycHg7XG4gICAgfVxuICAgIG5hdiB7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9ICAgICAgXG4gIH1cblxuICBcbiAgXG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzBlbSkge1xuXG4gIC5tLW1lbnUge1xuICAgIHRvcDoxNXB4O1xuICB9XG5cbiAgLm5hdiAubWVudS1oZWFkZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLm5hdjphZnRlciwgLm5hdjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLm5hdiB1bCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgICBcbiAgICAuYzEge1xuICAgICAgd2lkdGg6MTAwJTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICB1bCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW46MjBweCAwIDQwcHggMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfSAgICAgIFxuICAgIH1cblxuICAgIC5taW5vciB1bCB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5wYWdlLTItY29sIC5jb250YWluZXIgLnN1Ym5hdiBsaSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgJi5hY3RpdmUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgY29udGVudDogJy4uLic7XG4gICAgICAgICAgcmlnaHQ6NDBweDtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICB0b3A6MTVweDtcbiAgICAgICAgfVxuICAgICAgfSAgICAgIFxuICAgIH1cbiAgfVxuXG4gIC5wYWdlLTItY29sIC5jb250YWluZXIgLnN1Ym5hdiB1bC5zdWJuYXZvcGVuIGxpIGF7XG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAmLmFjdGl2ZTphZnRlciB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufSJdfQ== */
