@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;
  }
}
@font-face {
  font-family: "Kern";
  src: url("/webfonts/Kern-Regular-the1970s.woff2") format("woff2"), url("/webfonts/Kern-Regular-the1970s.woff") format("woff"), url("/webfonts/Kern-Regular-the1970s.otf") format("opentype");
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: "Kerni";
  src: url("/webfonts/kern_italic-webfont.woff2") format("woff2"), url("/webfonts/kern_italic-webfont.woff") format("woff"), url("/webfonts/Kern Italic.ttf") format("truetype"), url("/webfonts/kern_italic-webfont.svg") format("svg");
  font-weight: normal;
  font-style: normal;
}
html {
  -webkit-font-smoothing: antialiased;
}

body {
  font-family: Kern, Helvetica Neue, sans-serif;
  font-size: 1.825rem;
  line-height: 2.15rem;
  font-weight: normal;
}

.small {
  font-size: 1.1rem;
  line-height: 1.2rem;
}

.medium {
  font-size: 1.325rem;
  line-height: 1.575rem;
}

h1, h2, h3, h4 {
  margin: 0;
  padding: 0;
  font-weight: normal;
  font-size: 1.825rem;
  line-height: 2.15rem;
}

h3 {
  text-transform: uppercase;
}

nav, .langswitch {
  text-transform: lowercase;
}

.events .item {
  font-size: 1.5rem;
  line-height: 1.8rem;
}

.event-type {
  line-height: 1.9rem;
}

/* MAIN ELEMENTS */
main.main,
header.header {
  z-index: 1;
}

main.main {
  margin-bottom: 20px;
  display: flex;
  flex-wrap: nowrap;
}

.logo {
  position: fixed;
  max-width: 300px;
  top: 10px;
  left: 10px;
  z-index: 1234;
}

nav {
  position: fixed;
  top: 5px;
  right: 5px;
  z-index: 1;
  z-index: 1235;
}

.home nav {
  width: calc(100% - 5px);
}

.langswitch {
  display: flex;
  justify-content: center;
}

.signup {
  margin-bottom: 140px;
}
.signup #mc_embed_signup_scroll,
.signup form {
  width: 100%;
}
.signup .mc-field-group {
  display: flex;
}
.signup .input-group {
  flex-wrap: wrap;
}
.signup .nl-label {
  margin-right: 20px;
  padding-top: 4px;
}

footer.footer {
  position: fixed;
  bottom: 40px;
  z-index: -1;
}
footer.footer ul {
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
}
footer.footer ul li {
  margin: 5px 10px;
}

/* PIECES */
.item.in .info,
.item.out .info {
  display: flex;
  justify-content: space-between;
}
.item.in .info .location,
.item.out .info .location {
  text-align: right;
}
.item.in .img-holder,
.item.out .img-holder {
  position: relative;
}
.item.in .info-right,
.item.out .info-right {
  text-align: right;
}
.item.in .svg-holder,
.item.out .svg-holder {
  position: absolute;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
.item.in svg,
.item.out svg {
  width: calc(100% + 2px);
  height: calc(100% + 2px);
  margin-left: -1px;
}
.item.in img,
.item.out img {
  width: 100%;
}

.item.in,
.item.out {
  align-self: flex-start;
}
.item.in.item-v2,
.item.out.item-v2 {
  margin-top: 30px !important;
}
.item.in .img-holder-v2,
.item.out .img-holder-v2 {
  display: flex;
  overflow: hidden;
  position: relative;
  margin: 20px;
}
.item.in .img-holder-v2:hover .img-v2,
.item.out .img-holder-v2:hover .img-v2 {
  clip-path: circle(100%);
}
.item.in .img-v2,
.item.out .img-v2 {
  height: 100%;
  clip-path: url(#cp);
  width: 100%;
}
.item.in.static:hover .img-holder-v2:hover .img-v2,
.item.out.static:hover .img-holder-v2:hover .img-v2 {
  clip-path: url(#cp);
}

.page-artist .img-v2,
.page-event .img-v2,
.page-work .img-v2 {
  max-height: none !important;
  width: 100%;
}

.home .logo {
  display: none;
}

.left,
.right {
  width: calc(50% - 20px);
  padding: 10px;
}

.right {
  margin-top: 60px;
}

.search-input {
  margin: 10px 0 20px 0;
}

.big,
.opening {
  margin-bottom: 20px;
}

.big .info {
  margin-bottom: 10px;
}
.big .event-type {
  margin-bottom: 10px;
}

.publics {
  margin: 50px 0;
  position: relative;
}
.publics h2 {
  position: absolute;
  top: 45%;
  left: 0;
  right: 0;
  margin: 0 auto;
  text-align: center;
  z-index: 12345;
  padding-left: 60px;
  padding-right: 60px;
}

.programme {
  margin-bottom: 20px;
}
.programme h2 {
  margin-bottom: 10px;
}
.programme .events-wrapper {
  width: 100%;
  height: 210px;
  overflow: hidden;
}
.programme .events {
  padding-top: 10px;
  width: 100%;
  height: 100%;
  overflow-y: scroll;
  -webkit-overflow-scrolling: touch;
  padding-right: 17px;
  box-sizing: content-box;
}
.programme .event {
  display: flex;
  flex-direction: column;
  border-top: 2px solid #000000;
  margin-bottom: 5px;
  padding: 10px 0;
}
.programme .event .practical {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin-bottom: 20px;
}
.programme .event .practical:last-child {
  border-bottom: none;
}
.programme .event.t-exhibition .practical .time, .programme .event.t-tentoonstelling .practical .time, .programme .event.t-exposition .practical .time {
  display: none;
}
.programme .event .title {
  margin-bottom: 10px;
}

.single-events {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}
.single-events .panel {
  max-width: calc(50% - 30px);
  margin-bottom: 20px;
  align-self: flex-start;
}
.single-events h4 {
  margin: 10px 0;
}

.media-library a {
  color: #ffffff;
  text-decoration: none;
  display: block;
}
.media-library a:hover {
  color: #ffffff;
}
.media-library a .media-library-front {
  display: flex;
  justify-content: space-between;
}
.media-library a .media-library-front h2 {
  width: 50%;
}
.media-library a h2 {
  margin-top: 20px;
  margin-left: 20px;
}
.media-library a .item {
  max-width: 400px;
  width: 50%;
}

.news {
  position: fixed;
  bottom: 0;
  left: 0;
  background-color: #52FF6A;
  width: 100%;
  height: 40px;
  z-index: 12345;
}
.news .label {
  background-color: #000000;
  color: white;
  padding: 2px 5px 4px 5px;
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: 123;
}
.news .messages {
  height: 40px;
  padding-top: 4px;
}
.news .messages a {
  margin-right: 50px;
}

.page .content,
.page-event .content,
.page-artist .content,
.page-work .content {
  padding: 100px 15px 10px 15px;
  width: calc(100% - 30px);
}
.page .content .panel,
.page-event .content .panel,
.page-artist .content .panel,
.page-work .content .panel {
  position: relative;
  margin-bottom: 20px;
}
.page .content h1,
.page-event .content h1,
.page-artist .content h1,
.page-work .content h1 {
  margin: 20px 20px 0 20px;
  position: absolute;
  top: 0;
  z-index: 123;
}
.page .content h1.no-img,
.page-event .content h1.no-img,
.page-artist .content h1.no-img,
.page-work .content h1.no-img {
  position: relative;
  margin: 20px 0 20px 0;
  text-transform: uppercase;
}
.page .content h3,
.page-event .content h3,
.page-artist .content h3,
.page-work .content h3 {
  margin-top: 20px;
}
.page .content .item,
.page-event .content .item,
.page-artist .content .item,
.page-work .content .item {
  margin-top: 10px;
}
.page .content p.first,
.page-event .content p.first,
.page-artist .content p.first,
.page-work .content p.first {
  margin-top: 5px;
}
.page .content .body-txt figure,
.page-event .content .body-txt figure,
.page-artist .content .body-txt figure,
.page-work .content .body-txt figure {
  margin: 0;
  padding: 0;
}
.page .content .body-txt figure iframe,
.page-event .content .body-txt figure iframe,
.page-artist .content .body-txt figure iframe,
.page-work .content .body-txt figure iframe {
  margin: 0;
}
.page .content .body-txt figure .fluid-width-video-wrapper,
.page-event .content .body-txt figure .fluid-width-video-wrapper,
.page-artist .content .body-txt figure .fluid-width-video-wrapper,
.page-work .content .body-txt figure .fluid-width-video-wrapper {
  margin-bottom: 20px;
}

.small-panel {
  display: inline-block;
  vertical-align: top;
  width: calc(50% - 45px);
  padding: 0 5px;
  margin: 10px 10px 20px 10px;
}
.small-panel .panel-upper p {
  padding: 0;
  margin: 0;
}

.table {
  display: flex;
  flex-direction: row;
  width: 100%;
}
.table .length,
.table .price {
  display: flex;
  justify-content: space-between;
  flex-direction: column;
  border-right: 2px solid #000000;
}
.table .length.price,
.table .price.price {
  border-right: none;
}
.table .length > div,
.table .price > div {
  max-width: 200px;
  padding: 10px;
  width: calc(100% - 20px);
  border-top: 2px solid #000000;
}
.table .length > div.label,
.table .price > div.label {
  width: calc(100% - 20px) !important;
  border-top: none;
}

.column {
  display: inline-block;
  vertical-align: top;
  max-width: calc(50% - 24px);
  width: calc(50% - 34px);
}

iframe,
#map,
.ol-viewport {
  border: none;
  width: 100%;
  border-radius: 25px;
  margin-top: 50px;
}

.fluid-width-video-wrapper {
  margin-bottom: 150px;
}

.link-panels {
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
}
.link-panels .item {
  width: calc(33.3333333333% - 40px);
  margin: 10px;
}

.gallery {
  display: flex;
  flex-wrap: wrap;
}
.gallery .item {
  width: calc(25% - 20px);
}
.gallery .svg-holder {
  top: -1px;
}

.programme-page main.main,
.page-work-overview main.main {
  flex-direction: column;
}

.filters {
  display: flex;
  margin-top: 110px;
  margin-bottom: 30px;
  justify-content: center;
  flex-wrap: wrap;
}
.filters .filter {
  margin: 5px;
}
.filters .has-sub {
  position: relative;
  display: flex;
  flex-direction: column;
}
.filters .has-sub ul {
  position: absolute;
  padding: 50px 0 0 0;
  margin: 0;
  display: none;
}
.filters .has-sub li {
  list-style: none;
  margin: 0 20px 10px -15px;
}
.filters .has-sub:hover ul {
  display: flex;
}

.programme-list {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  padding: 10px;
}
.programme-list .item {
  max-width: calc(50% - 30px);
  width: calc(50% - 30px);
  margin-bottom: 20px;
}
.programme-list .item .info {
  margin-bottom: 10px;
}
.programme-list .item .event-type {
  margin-bottom: 10px;
}

.page-event .event-info {
  width: 100%;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}
.page-search .content {
  padding-bottom: 20px;
}
.page-search .content h1 {
  position: relative;
  margin: 20px 0;
}
.page-search .content ul {
  margin-bottom: 40px;
}

.page-artist-overview .programme-list,
.page-work-overview .programme-list {
  margin-top: 100px;
}
.page-artist-overview .alphabet-filter,
.page-work-overview .alphabet-filter {
  display: none;
}
.page-artist-overview .alphabet,
.page-work-overview .alphabet {
  position: fixed;
  width: calc(100% - 60px);
  padding: 20px;
  left: 0;
  right: 0;
  bottom: 20px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  z-index: 1234;
}
.page-artist-overview .alphabet .number,
.page-work-overview .alphabet .number {
  margin-left: auto !important;
}

.birthyear {
  position: relative;
  padding-left: 15px;
}
.birthyear:before {
  position: absolute;
  content: "°";
  top: 0;
  left: 0;
}

.page-work .programme-list {
  margin-top: 20px;
}
.page-work .technical {
  display: flex;
  justify-content: space-between;
}

.pager {
  display: flex;
  justify-content: space-between;
  padding: 20px 40px;
  margin-bottom: 20px;
}
.pager a {
  text-decoration: none;
}
.pager .inactive {
  opacity: 0.1;
}

@media only screen and (max-width: 70em) {
  .single-events {
    flex-wrap: wrap;
  }
  .single-events .panel {
    max-width: calc(100% - 20px);
    margin-bottom: 20px;
  }
  .link-panels .item {
    width: calc(50% - 40px);
  }
  .column {
    display: block;
    max-width: 100%;
    width: 100%;
  }
}
@media only screen and (max-width: 45em) {
  .home main.main {
    flex-wrap: wrap;
  }
  .home .left,
  .home .right {
    width: calc(100% - 20px);
  }
  .home .right {
    margin-top: 0;
  }
  .signup {
    margin-bottom: 180px;
  }
  .signup .nil {
    display: none;
  }
  .signup [type=email] {
    flex-grow: 1 !important;
    width: 100%;
  }
  .programme-list .item {
    max-width: 100%;
    width: 100%;
  }
  .small-panel {
    display: block;
    width: calc(100% - 20px);
    margin: 20px 0;
  }
  .link-panels .item {
    width: calc(100% - 40px);
  }
  .page .content h1,
  .page-event .content h1 {
    margin: 10px 20px 0 20px;
    position: relative;
  }
  .page .content .item,
  .page-event .content .item {
    margin-top: -10px;
  }
  .table {
    flex-direction: row;
    width: 100%;
  }
  .table .length,
  .table .price {
    justify-content: space-between;
    flex-direction: column;
    border-bottom: none;
    border-right: 2px solid #000000;
  }
  .table .length.price,
  .table .price.price {
    border-right: none;
  }
  .table .length > div,
  .table .price > div {
    width: calc(100% - 20px);
    border-left: none;
    border-top: 2px solid #000000;
  }
  .table .length > div.label,
  .table .price > div.label {
    width: calc(100% - 20px) !important;
    border-top: none;
  }
  .table .length > div:first-child,
  .table .price > div:first-child {
    border-left: none;
  }
  .gallery .item {
    width: calc(50% - 20px);
  }
  .page-artist-overview .alphabet,
  .page-work-overview .alphabet {
    transform: translateY(100%);
  }
  .page-artist-overview .alphabet.filter-active,
  .page-work-overview .alphabet.filter-active {
    transform: translateY(0);
  }
  .page-artist-overview .alphabet-filter,
  .page-work-overview .alphabet-filter {
    display: block;
    position: fixed;
    bottom: 40px;
    left: 20px;
    border-radius: 25px;
    padding: 0 15px 2px 15px;
    background: #000000;
    color: white;
    cursor: pointer;
  }
  .page-artist-overview .alphabet-filter.filter-active,
  .page-work-overview .alphabet-filter.filter-active {
    transform: translateY(0);
  }
}
@media only screen and (max-width: 35em) {
  .gallery .item {
    width: calc(100% - 20px);
  }
}
@media only screen and (max-width: 25em) {
  .signup {
    margin-bottom: 220px;
  }
  .gallery .item {
    width: calc(100% - 20px);
  }
}
.m-menu {
  position: fixed;
  top: 14px;
  right: 25px;
  display: none;
  z-index: 12345678;
}
.m-menu:before {
  position: absolute;
  display: block;
  content: "";
  width: 50px;
  height: 3px;
  left: 0px;
  top: 24px;
  background-color: #000000;
  transition: all 0.15s cubic-bezier(0.445, 0.05, 0.55, 0.95);
}
.m-menu .mm {
  border: none;
  background: transparent;
  cursor: pointer;
  position: relative;
  display: block;
  width: 50px;
  height: 50px;
  outline: none;
  padding: 0;
}
.m-menu .mm:before, .m-menu .mm:after {
  position: absolute;
  display: block;
  content: "";
  width: 50px;
  height: 3px;
  left: 0px;
  top: 12px;
  background-color: #000000;
  transition: all 0.15s cubic-bezier(0.445, 0.05, 0.55, 0.95);
}
.m-menu .mm:after {
  top: 36px;
}

nav ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
}
nav ul li {
  margin: 5px;
  display: block;
}
nav ul li a, nav ul li span.button {
  display: block;
}
nav li ul {
  display: none;
  position: absolute;
  padding-top: 5px;
  right: 0;
}
nav li:hover ul {
  flex-wrap: wrap;
  margin-left: -5px;
}
nav .langswitch {
  display: flex;
}
nav .p40 ul {
  display: none !important;
}

@media only screen and (max-width: 35em) {
  .m-menu {
    display: block;
  }
  .nav {
    display: none;
  }
  .m-menu-open .m-menu:before {
    opacity: 0;
  }
  .m-menu-open .m-menu .mm:before {
    top: 24px;
    transform: rotate(-45deg);
  }
  .m-menu-open .m-menu .mm:after {
    top: 24px;
    transform: rotate(45deg);
  }
  .m-menu-open .nav {
    position: absolute;
    display: block;
    top: 75px;
    width: calc(100% - 10px);
    left: 5px;
  }
  .m-menu-open .nav ul {
    flex-flow: column;
  }
  .m-menu-open .nav ul li {
    text-align: center;
  }
  .m-menu-open .nav ul li a, .m-menu-open .nav ul li .button {
    padding: 10px;
  }
  .m-menu-open .nav ul li ul {
    position: relative;
  }
  .m-menu-open .nav ul li ul li:last-child {
    margin-bottom: 0;
  }
  .m-menu-open .langswitch-holder {
    order: -1;
  }
}
@media not all and (pointer: coarse) {
  nav li:hover ul {
    display: flex;
  }
}
[v-cloak] > * {
  display: none;
}

@keyframes rotatingImage {
  0% {
    -webkit-transform: rotateY(0deg);
    transform: rotateY(0deg);
  }
  25% {
    -webkit-transform: rotateY(-360deg);
    transform: rotateY(-360deg);
  }
  75% {
    -webkit-transform: rotateY(-360deg);
    transform: rotateY(-360deg);
  }
  100% {
    -webkit-transform: rotateY(0deg);
    transform: rotateY(0deg);
  }
}
body {
  background-color: #F0F0F0;
  color: #000000;
}

a {
  color: #000000;
}
a:hover {
  text-shadow: 0 0 0.3em rgba(0, 0, 0, 0.5);
}

.content a {
  text-shadow: 0 0 0.3em rgba(0, 0, 0, 0.5);
  text-decoration: none;
}

.link-panels a {
  text-shadow: none;
}
.link-panels a:hover {
  text-shadow: 0 0 0.3em rgba(0, 0, 0, 0.5);
}

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

ul,
li {
  margin: 0;
  padding: 0;
}

nav li,
.langswitch li,
footer li {
  list-style: none;
}

.button,
nav a,
.langswitch {
  background-color: #ffffff;
  box-shadow: 0 0 0.7em rgba(0, 0, 0, 0.25);
  color: #000000;
  border-radius: 25px;
  padding: 0 15px 2px 15px;
  text-decoration: none;
}
.button:hover,
nav a:hover,
.langswitch:hover {
  color: #000000;
  text-shadow: 0 0 0.3em rgba(0, 0, 0, 0.5);
}

.langswitch {
  padding: 0 10px 2px 10px;
}

.langswitch a {
  background: none;
  box-shadow: none;
  text-decoration: none;
  color: #ffffff;
  text-shadow: 0 0 0.3em rgba(0, 0, 0, 0.5);
  margin: 0;
  padding: 0 5px;
}
.langswitch a.active, .langswitch a:hover {
  color: #000000;
}

.button.active,
nav li.active a {
  background-color: #000000;
  color: #ffffff;
}
.button.active:hover,
nav li.active a:hover {
  text-shadow: 0 0 0.3em rgb(255, 255, 255);
}

main.main {
  background-color: #ffffff;
}

.item {
  padding: 10px;
}
.item.big {
  background-color: #ebebeb;
}
.item a {
  text-decoration: none;
}

.publics {
  perspective: 1000px;
  /* Remove this if you don't want the 3D effect */
}
.publics a {
  color: white;
  display: block;
}
.publics img {
  margin: 0 auto;
  max-width: 75%;
  border-radius: 25px;
  animation: 60s rotatingImage linear infinite;
}

.jobs {
  max-width: 75%;
  margin: 0 auto 40px auto;
}
.jobs a {
  color: white;
  text-decoration: none;
  border-radius: 25px;
  background-color: #0067FF;
  text-align: center;
  display: block;
  padding: 90px;
  word-break: break-word;
}

.location:not(.empty):before {
  content: "@";
}

.opening {
  background-color: #0067FF;
  color: #ffffff;
  border-radius: 25px;
  padding: 7px 7px;
}
.opening span {
  border: 1px solid #ffffff;
  padding: 0 2px;
  margin-right: 3px;
}

.search-input {
  border-radius: 25px;
  border: none;
  box-shadow: 0 0 0.7em rgba(0, 0, 0, 0.15);
  color: #000000;
  padding: 3px 7px;
  width: calc(100% - 14px);
  outline: none;
}

::-webkit-input-placeholder {
  /* Edge */
  color: #000000;
}

:-ms-input-placeholder {
  /* Internet Explorer 10-11 */
  color: #000000;
}

::placeholder {
  color: #000000;
}

.panel,
.small-panel {
  border-radius: 25px;
  padding: 10px;
}
.panel.blue,
.small-panel.blue {
  background-color: #0067FF;
  color: #ffffff;
}
.panel.blue a,
.small-panel.blue a {
  color: #ffffff;
}
.panel.shadow,
.small-panel.shadow {
  box-shadow: 0 0 0.7em rgba(0, 0, 0, 0.2);
  border-radius: 25px;
}

.body-txt ul,
.column ul {
  margin-left: 10%;
  max-width: 80%;
}
.body-txt li,
.column li {
  list-style: none;
  position: relative;
  padding-left: 20px;
  margin-left: 10px;
}
.body-txt li:before,
.column li:before {
  content: "•";
  position: absolute;
  top: 0;
  left: -10px;
}

.programme .events-wrapper {
  position: relative;
}
.programme .events-wrapper .events:after {
  width: 100%;
  height: 50%;
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  background-image: linear-gradient(rgba(255, 255, 255, 0), rgb(255, 255, 255));
  pointer-events: none;
}
.programme .events-wrapper a {
  text-decoration: none;
}

.home .event-type,
.programme-page .event-type {
  text-transform: uppercase;
}

.single-events h4 {
  text-transform: uppercase;
}

.home .media-library {
  color: #ffffff;
  min-height: 100px;
}

.home .media-library {
  background-color: transparent;
  width: 100%;
  height: 250px;
  perspective: 1000px;
  /* Remove this if you don't want the 3D effect */
}
.home .media-library:hover .media-library-inner {
  transform: rotateY(180deg);
}
.home .media-library .item {
  backface-visibility: hidden;
}

/* This container is needed to position the front and back side */
.media-library-inner {
  position: relative;
  width: 100%;
  height: 100%;
  transition: transform 0.8s;
  transform-style: preserve-3d;
}

.media-library-front,
.media-library-back {
  position: absolute;
  width: 100%;
  height: 100%;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

.media-library-front,
.media-library-back {
  background-color: #000000;
  border-radius: 25px;
}

.media-library-back {
  transform: rotateY(180deg);
}
.media-library-back p {
  padding: 0 20px;
}

.news a {
  text-decoration: none;
}

.filter {
  background-color: #dfdfdf;
  cursor: pointer;
  color: white;
  text-transform: lowercase;
  padding: 2px 10px;
  box-shadow: 0 0 0.7em rgba(0, 0, 0, 0.15) !important;
  text-decoration: none;
}
.filter:hover, .filter.active {
  background-color: #000000;
}

.programme-list a {
  text-decoration: none;
}

.no-events {
  padding-bottom: 40px;
  text-align: center;
  width: 100%;
}

footer li a {
  text-decoration: none;
}

.signup {
  background-color: #ffffff;
  display: flex;
  margin-left: 10px;
  margin-right: 10px;
  border-radius: 25px !important;
}
.signup input {
  background: transparent;
  border: none;
  box-shadow: none;
  outline: none;
}
.signup [type=email] {
  flex-grow: 2;
  margin-left: 10px;
}

input[type=checkbox] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

[type=checkbox] + span {
  position: relative;
  padding-left: 28px;
  padding-right: 24px;
  cursor: pointer;
  display: block;
  padding-top: 2px;
  line-height: 1.35;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
[type=checkbox] + span:before {
  content: "";
  position: absolute;
  top: 10px;
  left: 0;
  width: 20px;
  height: 20px;
  z-index: 0;
  border: 1px solid white;
  border-radius: 50%;
  background: white;
  border-radius: 50%;
  box-shadow: 0 0 0.7em rgba(0, 0, 0, 0.5);
}

[type=checkbox]:checked + span:before {
  background: white;
}
[type=checkbox]:checked + span:after {
  content: "";
  position: absolute;
  top: 16px;
  left: 6px;
  width: 10px;
  height: 10px;
  z-index: 0;
  background-color: #000000;
  border-radius: 50%;
}

.dissapear-enter-active,
.dissapear-leave-active {
  transition: all 0.25s;
}

.dissapear-enter,
.dissapear-leave-to {
  opacity: 0;
  transform: scale(0);
}

.fade-enter-active,
.fade-leave-active {
  transition: all 0.25s;
}

.fade-enter,
.fade-leave-to {
  opacity: 0;
}

.fancybox-bg {
  background: #fff;
}

.fancybox-button {
  background: transparent;
  color: #000;
}
.fancybox-button:hover {
  color: #000;
  -webkit-filter: drop-shadow(2px 2px 2px rgba(0, 0, 0, 0.5));
  filter: drop-shadow(2px 2px 2px rgba(0, 0, 0, 0.5));
}

.alphabet {
  background: white;
  border-radius: 25px;
}
.alphabet .letter {
  background: #F0F0F0;
  border-radius: 15px;
  color: #ffffff;
  border: none;
  margin: 10px;
  min-width: 50px;
}
.alphabet .letter:hover, .alphabet .letter.active {
  background-color: #000000;
  color: #ffffff;
}

@media only screen and (max-width: 85em) {
  .jobs a {
    padding-left: 30px;
    padding-right: 30px;
  }
}
@media only screen and (max-width: 65em) {
  .jobs a {
    padding-left: 20px;
    padding-right: 20px;
  }
}
@media only screen and (max-width: 35em) {
  header.header .bg {
    position: fixed;
    top: 0;
    z-index: 1234;
    background-color: #ffffff;
    height: 60px;
    width: calc(100% - 20px);
    margin: 10px;
    box-shadow: 0 0 0.7em rgba(0, 0, 0, 0.25);
    border-radius: 25px;
  }
  .logo {
    z-index: 1234567;
    max-width: 200px;
    top: 20px;
    left: 20px;
  }
  .home .logo {
    display: block;
  }
  .home .logo,
  .home header.header .bg,
  .home .m-menu {
    top: -100px;
    transition: all 150ms cubic-bezier(0.92, 0.06, 0.12, 0.73);
  }
  .home.scrolling header.header .bg {
    top: 0;
  }
  .home.scrolling .logo {
    top: 20px;
  }
  .home.scrolling .m-menu {
    top: 14px;
  }
  .body-txt ul,
  .column ul {
    margin-left: 0;
    max-width: 100%;
  }
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1haW4uc2NzcyIsIm5vcm1hbGl6ZS5zY3NzIiwiX2JvaWxlcnBsYXRlLnNjc3MiLCJfdHlwby5zY3NzIiwiX2xheW91dC5zY3NzIiwiX3ZhcmlhYmxlcy5zY3NzIiwiX25hdi5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTtBQ0VBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFNRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQSxPQUVPO0VBQ0w7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDRTtFQUNBOzs7QUFHRjtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0FBQUE7RUFFRTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7QUFBQTtFQUVFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7QUFBQTtFQUdFO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0VBQ0U7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0VBRUU7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFJQTtBQUFBO0VBRUU7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0VBQ0U7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUtFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUEsUUFDUTtFQUNOOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUEsU0FDUztFQUNQOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7RUFJRTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7RUFJRTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtFQUlFOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFPQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtFQUVFO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0FBQUE7RUFFRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0FBQUE7RUFFRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0FBQUE7RUFFRTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUM3YkY7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBVUE7RUFDSTtFQUNBOzs7QUFHSjtFQUNJO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtBQUlBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBTUk7OztBQUdKO0FBQUE7QUFBQTtBQUlBO0VBQ0k7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFJQTtFQUNJOzs7QUFHSjtBQUFBO0FBQUE7QUFJQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQU1KO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUlBO0VBQ0k7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtBQUFBO0VBRUk7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHSjtBQUFBO0FBQUE7QUFJQTtFQUNJOzs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBWUE7QUFBQTtFQUVJO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUlKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtFQUNJO0FBQUE7QUFBQTtJQUdJO0lBQ0E7QUFBQTtJQUVBO0lBQ0E7O0VBR0o7QUFBQTtJQUVJOztFQUdKO0lBQ0k7O0VBR0o7SUFDSTs7QUFHSjtBQUFBO0FBQUE7QUFBQTtFQUtBO0FBQUE7SUFFSTs7RUFHSjtJQUNJOztFQUVKO0FBQUE7SUFFSTtJQUNBOztBQUdKO0FBQUE7QUFBQTtBQUFBO0VBS0E7SUFDSTs7RUFHSjtBQUFBO0lBRUk7O0VBR0o7QUFBQTtBQUFBO0lBR0k7SUFDQTs7RUFHSjtBQUFBO0lBRUk7OztBQ2pQUjtFQUNFO0VBQ0E7RUFHQTtFQUNBOztBQUVGO0VBQ0U7RUFDQTtFQUlBO0VBQ0E7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFFRjtFQUNDOzs7QUNuRUQ7QUFFQTtBQUFBO0VBRUU7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFOztBQUVBO0FBQUE7RUFFRTs7QUFHRjtFQUNFOztBQUlGO0VBRUU7O0FBUUY7RUFDRTtFQUNBOzs7QUFJSjtFQUNFO0VBQ0E7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7RUFDQTs7QUFFQTtFQUNFOzs7QUFLTjtBQUtFO0FBQUE7RUFDRTtFQUNBOztBQUVBO0FBQUE7RUFDRTs7QUFJSjtBQUFBO0VBQ0U7O0FBR0Y7QUFBQTtFQUNFOztBQUdGO0FBQUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFHRjtBQUFBO0VBQ0U7RUFDQTtFQUNBOztBQUdGO0FBQUE7RUFDRTs7O0FBS0o7QUFBQTtFQUVFOztBQUdBO0FBQUE7RUFDRTs7QUFHRjtBQUFBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBR0Y7QUFBQTtFQUNFOztBQUdGO0FBQUE7RUFDRTtFQUNBO0VBRUE7O0FBSUY7QUFBQTtFQUNFOzs7QUFPRjtBQUFBO0FBQUE7RUFDRTtFQUNBOzs7QUFVRjtFQUNFOzs7QUFJSjtBQUFBO0VBRUU7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTs7O0FBR0Y7QUFBQTtFQUVFOzs7QUFJQTtFQUNFOztBQUdGO0VBQ0U7OztBQUtKO0VBQ0U7RUFFQTs7QUFFQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBSUo7RUFDRTs7QUFFQTtFQUNFOztBQUdGO0VBQ0U7RUFDQTtFQUNBOztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0U7RUFDQTtFQUNBO0VBTUE7O0FBSkE7RUFDRTs7QUFTRjtFQUNFOztBQUlKO0VBQ0U7OztBQVFOO0VBQ0U7RUFDQTtFQUNBOztBQUVBO0VBQ0U7RUFDQTtFQUNBOztBQUdGO0VBQ0U7OztBQUlKO0VBQ0UsT0MzU007RUQ0U047RUFDQTs7QUFFQTtFQUNFLE9DaFRJOztBRG1UTjtFQUNFO0VBQ0E7O0FBRUE7RUFDRTs7QUFJSjtFQUNFO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBOzs7QUFJSjtFQUNFO0VBQ0E7RUFDQTtFQUNBLGtCQ3hVTTtFRHlVTjtFQUNBO0VBQ0E7O0FBRUE7RUFDRSxrQkNsVlE7RURtVlI7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdGO0VBQ0U7RUFDQTs7QUFFQTtFQUNFOzs7QUFTTjtBQUFBO0FBQUE7QUFBQTtFQUlFO0VBQ0E7O0FBRUE7QUFBQTtBQUFBO0FBQUE7RUFDRTtFQUNBOztBQUdGO0FBQUE7QUFBQTtBQUFBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7QUFBQTtBQUFBO0FBQUE7RUFDRTtFQUNBO0VBQ0E7O0FBSUo7QUFBQTtBQUFBO0FBQUE7RUFDRTs7QUFHRjtBQUFBO0FBQUE7QUFBQTtFQUNFOztBQUdGO0FBQUE7QUFBQTtBQUFBO0VBQ0U7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7RUFDRTtFQUNBOztBQUNBO0FBQUE7QUFBQTtBQUFBO0VBQ0U7O0FBRUY7QUFBQTtBQUFBO0FBQUE7RUFDRTs7O0FBTU47RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdFO0VBQ0U7RUFDQTs7O0FBS047RUFDRTtFQUNBO0VBQ0E7O0FBRUE7QUFBQTtFQUVFO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0FBQUE7RUFDRTs7QUFHRjtBQUFBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7QUFBQTtFQUNFO0VBQ0E7OztBQU9SO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUlGO0FBQUE7QUFBQTtFQUdFO0VBQ0E7RUFFQTtFQUNBOzs7QUFLRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7OztBQUlKO0VBQ0U7RUFDQTs7QUFFQTtFQUNFOztBQUdGO0VBQ0U7OztBQU9GO0FBQUE7RUFDRTs7O0FBSUo7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0U7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7O0FBSUE7RUFDRTs7O0FBUVI7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7RUFDQTs7QUFFQTtFQUNFOztBQUdGO0VBQ0U7OztBQU1KO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBUUY7RUFDRTs7QUFFQTtFQUNFO0VBQ0E7O0FBR0Y7RUFDRTs7O0FBUUo7QUFBQTtFQUNFOztBQUdGO0FBQUE7RUFDRTs7QUFHRjtBQUFBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtBQUFBO0VBQ0U7OztBQU1OO0VBQ0U7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFNRjtFQUNFOztBQUVGO0VBQ0U7RUFDQTs7O0FBTUo7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFOztBQUdGO0VBQ0U7OztBQU1KO0VBQ0U7SUFDRTs7RUFFQTtJQUNFO0lBQ0E7O0VBS0Y7SUFDRTs7RUFJSjtJQUNFO0lBQ0E7SUFDQTs7O0FBS0o7RUFHSTtJQUNFOztFQUdGO0FBQUE7SUFFRTs7RUFHRjtJQUNFOztFQUtKO0lBQ0U7O0VBRUE7SUFDRTs7RUFHRjtJQUNFO0lBQ0E7O0VBSUo7SUFDRTtJQUNBOztFQVVGO0lBQ0U7SUFDQTtJQUNBOztFQUlBO0lBQ0U7O0VBTUY7QUFBQTtJQUNFO0lBQ0E7O0VBR0Y7QUFBQTtJQUNFOztFQUtKO0lBQ0U7SUFDQTs7RUFFQTtBQUFBO0lBRUU7SUFDQTtJQUNBO0lBQ0E7O0VBR0E7QUFBQTtJQUNFOztFQUdGO0FBQUE7SUFPRTtJQUNBO0lBQ0E7O0VBUkE7QUFBQTtJQUNFO0lBRUE7O0VBT0Y7QUFBQTtJQUNFOztFQU1SO0lBQ0U7O0VBS0E7QUFBQTtJQUNFOztFQUNBO0FBQUE7SUFDRTs7RUFHSjtBQUFBO0lBQ0U7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0EsWUNqekJNO0lEa3pCTjtJQUNBOztFQUNBO0FBQUE7SUFDRTs7O0FBT1I7RUFDRTtJQUNFOzs7QUFJSjtFQUNFO0lBQ0U7O0VBR0Y7SUFDRTs7O0FFejBCSjtFQUVFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLGtCRGZRO0VDZ0JSOztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxrQkR0Q007RUN1Q047O0FBRUY7RUFDRTs7O0FBVUo7RUFDRTtFQUNBO0VBQ0E7O0FBQ0E7RUFDRTtFQUNBOztBQUNBO0VBQ0U7O0FBSU47RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFHQTtFQUVFO0VBQ0E7O0FBR0o7RUFDRTs7QUFHRjtFQUNFOzs7QUFJSjtFQUNFO0lBQ0U7O0VBR0Y7SUFDRTs7RUFNRTtJQUNFOztFQUlGO0lBQ0U7SUFDQTs7RUFFRjtJQUNFO0lBQ0E7O0VBSUo7SUFDRTtJQUNBO0lBQ0E7SUFDQTtJQUNBOztFQUNBO0lBQ0U7O0VBRUE7SUFFRTs7RUFDQTtJQUNFOztFQUVGO0lBQ0U7O0VBQ0E7SUFDRTs7RUFNVjtJQUNFOzs7QUFPTjtFQUVNO0lBQ0U7OztBTjdJUjtFQUNFOzs7QUFHRjtFQUNFO0lBQ0U7SUFDQTs7RUFHRjtJQUNFO0lBQ0E7O0VBR0Y7SUFDRTtJQUNBOztFQUdGO0lBQ0U7SUFDQTs7O0FBS0o7RUFDRSxrQktwQ1E7RUxxQ1IsT0twQ1U7OztBTHVDWjtFQUNFLE9LeENVOztBTDBDVjtFQUNFOzs7QUFJSjtFQUNFO0VBQ0E7OztBQUlBO0VBQ0U7O0FBRUE7RUFDRTs7O0FBV047RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7RUFFRTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7RUFHRTs7O0FBSUY7QUFBQTtBQUFBO0VBR0Usa0JLekZNO0VMMEZOO0VBQ0EsT0s1RlU7RUw2RlY7RUFDQTtFQUNBOztBQUVBO0FBQUE7QUFBQTtFQUNFLE9LbEdRO0VMbUdSOzs7QUFJSjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBLE9LOUdNO0VMK0dOO0VBQ0E7RUFDQTs7QUFFQTtFQUVFLE9LdEhROzs7QUwwSFo7QUFBQTtFQUVFLGtCSzVIVTtFTDZIVixPSzVITTs7QUw4SE47QUFBQTtFQUNFOzs7QUFLSjtFQUdFLGtCS3ZJTTs7O0FMMElSO0VBRUU7O0FBRUE7RUFDRTs7QUFHRjtFQUNFOzs7QUFJSjtFQUNFO0FBRUE7O0FBQ0E7RUFDRTtFQUNBOztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUtKO0VBQ0U7RUFDQTs7QUFFQTtFQUNFO0VBQ0E7RUFDQTtFQUNBLGtCSy9LRztFTGdMSDtFQUNBO0VBQ0E7RUFDQTs7O0FBTUY7RUFDRTs7O0FBSUo7RUFDRSxrQksvTEs7RUxnTUwsT0tsTU07RUxtTU47RUFDQTs7QUFFQTtFQUNFO0VBQ0E7RUFDQTs7O0FBSUo7RUFDRTtFQUNBO0VBQ0E7RUFDQSxPS2xOVTtFTG1OVjtFQUNBO0VBQ0E7OztBQUdGO0FBQ0U7RUFDQSxPSzFOVTs7O0FMNk5aO0FBQ0U7RUFDQSxPSy9OVTs7O0FMa09aO0VBQ0UsT0tuT1U7OztBTHNPWjtBQUFBO0VBRUU7RUFDQTs7QUFFQTtBQUFBO0VBQ0Usa0JLek9HO0VMME9ILE9LNU9JOztBTDhPSjtBQUFBO0VBQ0UsT0svT0U7O0FMbVBOO0FBQUE7RUFDRTtFQUNBOzs7QUFNRjtBQUFBO0VBQ0U7RUFDQTs7QUFHRjtBQUFBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7QUFBQTtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFPTjtFQUNFOztBQUVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHRjtFQUNFOzs7QUFPRjtBQUFBO0VBQ0U7OztBQUtGO0VBQ0U7OztBQUlKO0VBRUUsT0twVE07RUxzVE47OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7QUFFQTs7QUFFQTtFQUNFOztBQUdGO0VBQ0U7OztBQU1KO0FBQ0E7RUFDRTtFQUNBO0VBQ0E7RUFFQTtFQUNBOzs7QUFJRjtBQUFBO0VBRUU7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtFQUVFLGtCS25XVTtFTG9XVjs7O0FBR0Y7RUFDRTs7QUFFQTtFQUNFOzs7QUFJSjtFQUNFOzs7QUFLRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBRUUsa0JLaFlROzs7QUxxWVo7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUtGO0VBQ0U7OztBQUdGO0VBQ0Usa0JLclpNO0VMc1pOO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7O0FBR0Y7RUFDRTtFQUNBOzs7QUFLSjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFLRjtFQUNFOztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxrQksxZFE7RUwyZFI7OztBQU9KO0FBQUE7RUFFRTs7O0FBR0Y7QUFBQTtFQUVFO0VBRUE7OztBQUlGO0FBQUE7RUFFRTs7O0FBR0Y7QUFBQTtFQUtFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7O0FBRUE7RUFDRTtFQUNBO0VBQ0E7OztBQUtKO0VBQ0U7RUFDQTs7QUFFQTtFQUNFLFlLNWdCRztFTDZnQkg7RUFDQSxPS2xoQkk7RUxtaEJKO0VBQ0E7RUFDQTs7QUFFQTtFQUVFLGtCSzFoQk07RUwyaEJOLE9LMWhCRTs7O0FMaWlCUjtFQUNFO0lBQ0U7SUFDQTs7O0FBSUo7RUFDRTtJQUNFO0lBQ0E7OztBQUlKO0VBQ0U7SUFDRTtJQUNBO0lBQ0E7SUFDQSxrQktwakJJO0lMcWpCSjtJQUNBO0lBQ0E7SUFDQTtJQUNBOztFQUdGO0lBQ0U7SUFDQTtJQUNBO0lBQ0E7O0VBR0Y7SUFDRTs7RUFNQTtBQUFBO0FBQUE7SUFHRTtJQUNBOztFQUtGO0lBQ0U7O0VBR0Y7SUFDRTs7RUFHRjtJQUNFOztFQU1GO0FBQUE7SUFDRTtJQUNBIiwiZmlsZSI6Im1haW4uY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyogUHV0IHlvdXIgZ2xvYmFsIHN0eWxlcyBoZXJlICovXG5AaW1wb3J0ICdub3JtYWxpemUnO1xuQGltcG9ydCAnYm9pbGVycGxhdGUnO1xuQGltcG9ydCAndmFyaWFibGVzJztcbkBpbXBvcnQgJ3R5cG8nO1xuQGltcG9ydCAnbGF5b3V0JztcbkBpbXBvcnQgJ25hdic7XG5cblt2LWNsb2FrXT4qIHtcbiAgZGlzcGxheTogbm9uZVxufVxuXG5Aa2V5ZnJhbWVzIHJvdGF0aW5nSW1hZ2Uge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVkoMGRlZyk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVZKDBkZWcpO1xuICB9XG5cbiAgMjUlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWSgtMzYwZGVnKTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTM2MGRlZyk7XG4gIH1cblxuICA3NSUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVZKC0zNjBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlWSgtMzYwZGVnKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVZKDBkZWcpO1xuICAgIHRyYW5zZm9ybTogcm90YXRlWSgwZGVnKTtcbiAgfVxufVxuXG5cbmJvZHkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmdjb2xvcjtcbiAgY29sb3I6ICRtYWluY29sb3I7XG59XG5cbmEge1xuICBjb2xvcjogJG1haW5jb2xvcjtcblxuICAmOmhvdmVyIHtcbiAgICB0ZXh0LXNoYWRvdzogMCAwIDAuM2VtIHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgfVxufVxuXG4uY29udGVudCBhIHtcbiAgdGV4dC1zaGFkb3c6IDAgMCAwLjNlbSByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLmxpbmstcGFuZWxzIHtcbiAgYSB7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHRleHQtc2hhZG93OiAwIDAgMC4zZW0gcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgIH1cbiAgfVxuXG59XG5cbi5hY3RpdmUsXG5hOmhvdmVyIHtcbiAgLy9jb2xvcjogJGhpZ2hsaWdodGNvbG9yO1xufVxuXG5pbWcge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbnVsLFxubGkge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbm5hdiBsaSxcbi5sYW5nc3dpdGNoIGxpLFxuZm9vdGVyIGxpIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuXG4uYnV0dG9uLFxubmF2IGEsXG4ubGFuZ3N3aXRjaCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgYm94LXNoYWRvdzogMCAwIDAuN2VtIHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gIGNvbG9yOiAkbWFpbmNvbG9yO1xuICBib3JkZXItcmFkaXVzOiAyNXB4O1xuICBwYWRkaW5nOiAwIDE1cHggMnB4IDE1cHg7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogJG1haW5jb2xvcjtcbiAgICB0ZXh0LXNoYWRvdzogMCAwIDAuM2VtIHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgfVxufVxuXG4ubGFuZ3N3aXRjaCB7XG4gIHBhZGRpbmc6IDAgMTBweCAycHggMTBweDtcbn1cblxuLmxhbmdzd2l0Y2ggYSB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6ICR3aGl0ZTtcbiAgdGV4dC1zaGFkb3c6IDAgMCAwLjNlbSByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMCA1cHg7XG5cbiAgJi5hY3RpdmUsXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiAkbWFpbmNvbG9yO1xuICB9XG59XG5cbi5idXR0b24uYWN0aXZlLFxubmF2IGxpLmFjdGl2ZSBhIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJG1haW5jb2xvcjtcbiAgY29sb3I6ICR3aGl0ZTtcblxuICAmOmhvdmVyIHtcbiAgICB0ZXh0LXNoYWRvdzogMCAwIDAuM2VtIHJnYmEoMjU1LCAyNTUsIDI1NSwgMSk7XG4gIH1cbn1cblxuXG5tYWluLm1haW4gLy8gLCBoZWFkZXIuaGVhZGVyXG5cbiAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG59XG5cbi5pdGVtIHtcblxuICBwYWRkaW5nOiAxMHB4O1xuXG4gICYuYmlnIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWJlYmViO1xuICB9XG5cbiAgYSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG59XG5cbi5wdWJsaWNzIHtcbiAgcGVyc3BlY3RpdmU6IDEwMDBweDtcblxuICAvKiBSZW1vdmUgdGhpcyBpZiB5b3UgZG9uJ3Qgd2FudCB0aGUgM0QgZWZmZWN0ICovXG4gIGEge1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIGltZyB7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgbWF4LXdpZHRoOiA3NSU7XG4gICAgYm9yZGVyLXJhZGl1czogMjVweDtcbiAgICBhbmltYXRpb246IDYwcyByb3RhdGluZ0ltYWdlIGxpbmVhciBpbmZpbml0ZTtcbiAgfVxuXG59XG5cbi5qb2JzIHtcbiAgbWF4LXdpZHRoOiA3NSU7XG4gIG1hcmdpbjogMCBhdXRvIDQwcHggYXV0bztcblxuICBhIHtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDI1cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDkwcHg7XG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgfVxuXG59XG5cbi5sb2NhdGlvbjpub3QoLmVtcHR5KSB7XG4gICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnQCc7XG4gIH1cbn1cblxuLm9wZW5pbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcbiAgY29sb3I6ICR3aGl0ZTtcbiAgYm9yZGVyLXJhZGl1czogMjVweDtcbiAgcGFkZGluZzogN3B4IDdweDtcblxuICBzcGFuIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkd2hpdGU7XG4gICAgcGFkZGluZzogMCAycHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAzcHg7XG4gIH1cbn1cblxuLnNlYXJjaC1pbnB1dCB7XG4gIGJvcmRlci1yYWRpdXM6IDI1cHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogMCAwIDAuN2VtIHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIGNvbG9yOiAkbWFpbmNvbG9yO1xuICBwYWRkaW5nOiAzcHggN3B4O1xuICB3aWR0aDogY2FsYygxMDAlIC0gMTRweCk7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIC8qIEVkZ2UgKi9cbiAgY29sb3I6ICRtYWluY29sb3I7XG59XG5cbjotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAvKiBJbnRlcm5ldCBFeHBsb3JlciAxMC0xMSAqL1xuICBjb2xvcjogJG1haW5jb2xvcjtcbn1cblxuOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAkbWFpbmNvbG9yO1xufVxuXG4ucGFuZWwsXG4uc21hbGwtcGFuZWwge1xuICBib3JkZXItcmFkaXVzOiAyNXB4O1xuICBwYWRkaW5nOiAxMHB4O1xuXG4gICYuYmx1ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gICAgY29sb3I6ICR3aGl0ZTtcblxuICAgIGEge1xuICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICB9XG4gIH1cblxuICAmLnNoYWRvdyB7XG4gICAgYm94LXNoYWRvdzogMCAwIDAuN2VtIHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgICBib3JkZXItcmFkaXVzOiAyNXB4O1xuICB9XG59XG5cbi5ib2R5LXR4dCxcbi5jb2x1bW4ge1xuICB1bCB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwJTtcbiAgICBtYXgtd2lkdGg6IDgwJTtcbiAgfVxuXG4gIGxpIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IC0xMHB4O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIEhPTUVQQUdFXG4ucHJvZ3JhbW1lIC5ldmVudHMtd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAuZXZlbnRzOmFmdGVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDUwJTtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHJnYmEoMjU1LCAyNTUsIDI1NSwgMCksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMSkpO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB9XG5cbiAgYSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbn1cblxuLmhvbWUsXG4ucHJvZ3JhbW1lLXBhZ2Uge1xuICAuZXZlbnQtdHlwZSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgfVxufVxuXG4uc2luZ2xlLWV2ZW50cyB7XG4gIGg0IHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9XG59XG5cbi5ob21lIC5tZWRpYS1saWJyYXJ5IHtcbiAgLy8gYmFja2dyb3VuZC1jb2xvcjogJG1haW5jb2xvcjtcbiAgY29sb3I6ICR3aGl0ZTtcbiAgLy8gYm9yZGVyLXJhZGl1czogMTVweDtcbiAgbWluLWhlaWdodDogMTAwcHg7XG59XG5cbi5ob21lIC5tZWRpYS1saWJyYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDI1MHB4O1xuICBwZXJzcGVjdGl2ZTogMTAwMHB4O1xuXG4gIC8qIFJlbW92ZSB0aGlzIGlmIHlvdSBkb24ndCB3YW50IHRoZSAzRCBlZmZlY3QgKi9cbiAgLy8gb3ZlcmZsb3cteDogaGlkZGVuO1xuICAmOmhvdmVyIC5tZWRpYS1saWJyYXJ5LWlubmVyIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoMTgwZGVnKTtcbiAgfVxuXG4gIC5pdGVtIHtcbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IC8vIGNocm9tZSBmaXhcbiAgfVxuXG5cbn1cblxuLyogVGhpcyBjb250YWluZXIgaXMgbmVlZGVkIHRvIHBvc2l0aW9uIHRoZSBmcm9udCBhbmQgYmFjayBzaWRlICovXG4ubWVkaWEtbGlicmFyeS1pbm5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgLy8gdGV4dC1hbGlnbjogY2VudGVyO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC44cztcbiAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcblxufVxuXG4ubWVkaWEtbGlicmFyeS1mcm9udCxcbi5tZWRpYS1saWJyYXJ5LWJhY2sge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IC8vIHNhZmFyaSBmaXhcbn1cblxuLm1lZGlhLWxpYnJhcnktZnJvbnQsXG4ubWVkaWEtbGlicmFyeS1iYWNrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJG1haW5jb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogMjVweDtcbn1cblxuLm1lZGlhLWxpYnJhcnktYmFjayB7XG4gIHRyYW5zZm9ybTogcm90YXRlWSgxODBkZWcpO1xuXG4gIHAge1xuICAgIHBhZGRpbmc6IDAgMjBweDtcbiAgfVxufVxuXG4ubmV3cyBhIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5cbi8vIFBST0dSQU1NRVxuLmZpbHRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkZmRmZGY7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgY29sb3I6IHdoaXRlO1xuICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlO1xuICBwYWRkaW5nOiAycHggMTBweDtcbiAgYm94LXNoYWRvdzogMCAwIDAuN2VtIHJnYmEoMCwgMCwgMCwgMC4xNSkgIWltcG9ydGFudDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICY6aG92ZXIsXG4gICYuYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWFpbmNvbG9yO1xuICB9XG5cbn1cblxuLnByb2dyYW1tZS1saXN0IGEge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5uby1ldmVudHMge1xuICBwYWRkaW5nLWJvdHRvbTogNDBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbn1cblxuXG4vLyBGT09URVJcbmZvb3RlciBsaSBhIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4uc2lnbnVwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW4tbGVmdDogMTBweDtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICBib3JkZXItcmFkaXVzOiAyNXB4ICFpbXBvcnRhbnQ7XG5cbiAgaW5wdXQge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gIH1cblxuICBbdHlwZT1cImVtYWlsXCJdIHtcbiAgICBmbGV4LWdyb3c6IDI7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIH1cbn1cblxuLy8gY2hlY2tib3hlc1xuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBvcGFjaXR5OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuW3R5cGU9XCJjaGVja2JveFwiXStzcGFuIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWxlZnQ6IDI4cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDI0cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmctdG9wOiAycHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjM1O1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMHB4O1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIHotaW5kZXg6IDA7XG4gICAgYm9yZGVyOiAxcHggc29saWQgd2hpdGU7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBib3gtc2hhZG93OiAwIDAgMC43ZW0gcmdiYSgwLCAwLCAwLCAwLjUpO1xuICB9XG59XG5cblt0eXBlPVwiY2hlY2tib3hcIl06Y2hlY2tlZCtzcGFuIHtcbiAgJjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICB9XG5cbiAgJjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTZweDtcbiAgICBsZWZ0OiA2cHg7XG4gICAgd2lkdGg6IDEwcHg7XG4gICAgaGVpZ2h0OiAxMHB4O1xuICAgIHotaW5kZXg6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG1haW5jb2xvcjtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIH1cblxufVxuXG4vLyBlbmQgY2hlY2tib3hlc1xuXG4uZGlzc2FwZWFyLWVudGVyLWFjdGl2ZSxcbi5kaXNzYXBlYXItbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMjVzO1xufVxuXG4uZGlzc2FwZWFyLWVudGVyLFxuLmRpc3NhcGVhci1sZWF2ZS10byB7XG4gIG9wYWNpdHk6IDA7XG4gIC8vIHRyYW5zZm9ybTpzY2FsZSgwKSByb3RhdGVZKDE4MGRlZyk7XG4gIHRyYW5zZm9ybTogc2NhbGUoMCk7XG5cbn1cblxuLmZhZGUtZW50ZXItYWN0aXZlLFxuLmZhZGUtbGVhdmUtYWN0aXZlIHtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMjVzO1xufVxuXG4uZmFkZS1lbnRlcixcbi5mYWRlLWxlYXZlLXRvXG5cbi8qIC5mYWRlLWxlYXZlLWFjdGl2ZSBiZWxvdyB2ZXJzaW9uIDIuMS44ICovXG4gIHtcbiAgb3BhY2l0eTogMDtcbn1cblxuLmZhbmN5Ym94LWJnIHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbn1cblxuLmZhbmN5Ym94LWJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogIzAwMDtcblxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogIzAwMDtcbiAgICAtd2Via2l0LWZpbHRlcjogZHJvcC1zaGFkb3coMnB4IDJweCAycHggcmdiYSgwLCAwLCAwLCAuNSkpO1xuICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMnB4IDJweCAycHggcmdiYSgwLCAwLCAwLCAuNSkpO1xuICB9XG59XG5cbi8vIC5wYWdlLWFydGlzdC1vdmVydmlldyB7XG4uYWxwaGFiZXQge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgYm9yZGVyLXJhZGl1czogMjVweDtcblxuICAubGV0dGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkZ3JleTtcbiAgICBib3JkZXItcmFkaXVzOiAxNXB4O1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIG1hcmdpbjogMTBweDtcbiAgICBtaW4td2lkdGg6IDUwcHg7XG5cbiAgICAmOmhvdmVyLFxuICAgICYuYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtYWluY29sb3I7XG4gICAgICBjb2xvcjogJHdoaXRlO1xuICAgIH1cbiAgfVxufVxuXG4vLyB9XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODVlbSkge1xuICAuam9icyBhIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDMwcHg7XG4gICAgcGFkZGluZy1yaWdodDogMzBweDtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY1ZW0pIHtcbiAgLmpvYnMgYSB7XG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzNWVtKSB7XG4gIGhlYWRlci5oZWFkZXIgLmJnIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIHotaW5kZXg6IDEyMzQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgIGhlaWdodDogNjBweDtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMjBweCk7XG4gICAgbWFyZ2luOiAxMHB4O1xuICAgIGJveC1zaGFkb3c6IDAgMCAwLjdlbSByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDI1cHg7XG4gIH1cblxuICAubG9nbyB7XG4gICAgei1pbmRleDogMTIzNDU2NztcbiAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgIHRvcDogMjBweDtcbiAgICBsZWZ0OiAyMHB4O1xuICB9XG5cbiAgLmhvbWUgLmxvZ28ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLy8gaG9tZSBuYXYgYW5pbWF0aW9uXG4gIC5ob21lIHtcblxuICAgIC5sb2dvLFxuICAgIGhlYWRlci5oZWFkZXIgLmJnLFxuICAgIC5tLW1lbnUge1xuICAgICAgdG9wOiAtMTAwcHg7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMTUwbXMgY3ViaWMtYmV6aWVyKC45MiwgLjA2LCAuMTIsIC43Myk7XG4gICAgfVxuICB9XG5cbiAgLmhvbWUuc2Nyb2xsaW5nIHtcbiAgICBoZWFkZXIuaGVhZGVyIC5iZyB7XG4gICAgICB0b3A6IDA7XG4gICAgfVxuXG4gICAgLmxvZ28ge1xuICAgICAgdG9wOiAyMHB4O1xuICAgIH1cblxuICAgIC5tLW1lbnUge1xuICAgICAgdG9wOiAxNHB4O1xuICAgIH1cbiAgfVxuXG4gIC5ib2R5LXR4dCxcbiAgLmNvbHVtbiB7XG4gICAgdWwge1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG59IiwiLyohIG5vcm1hbGl6ZS5jc3MgdjcuMC4wIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuXG4vKiBEb2N1bWVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluXG4gKiAgICBJRSBvbiBXaW5kb3dzIFBob25lIGFuZCBpbiBpT1MuXG4gKi9cblxuaHRtbCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xufVxuXG4vKiBTZWN0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAqL1xuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICovXG5cbmFydGljbGUsXG5hc2lkZSxcbmZvb3RlcixcbmhlYWRlcixcbm5hdixcbnNlY3Rpb24ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuICovXG5cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAqL1xuXG5maWdjYXB0aW9uLFxuZmlndXJlLFxubWFpbiB7IC8qIDEgKi9cbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IG1hcmdpbiBpbiBJRSA4LlxuICovXG5cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7XG59XG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICovXG5cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDEgKi9cbiAgaGVpZ2h0OiAwOyAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlOyAvKiAyICovXG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5wcmUge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICogMi4gUmVtb3ZlIGdhcHMgaW4gbGlua3MgdW5kZXJsaW5lIGluIGlPUyA4KyBhbmQgU2FmYXJpIDgrLlxuICovXG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgLyogMSAqL1xuICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwOiBvYmplY3RzOyAvKiAyICovXG59XG5cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny0gYW5kIEZpcmVmb3ggMzktLlxuICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7IC8qIDEgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IC8qIDIgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkOyAvKiAyICovXG59XG5cbi8qKlxuICogUHJldmVudCB0aGUgZHVwbGljYXRlIGFwcGxpY2F0aW9uIG9mIGBib2xkZXJgIGJ5IHRoZSBuZXh0IHJ1bGUgaW4gU2FmYXJpIDYuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHN0eWxlIGluIEFuZHJvaWQgNC4zLS5cbiAqL1xuXG5kZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGJhY2tncm91bmQgYW5kIGNvbG9yIGluIElFIDktLlxuICovXG5cbm1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmYwO1xuICBjb2xvcjogIzAwMDtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICogYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKi9cblxuYXVkaW8sXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBpT1MgNC03LlxuICovXG5cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLS5cbiAqL1xuXG5pbWcge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG5cbi8qKlxuICogSGlkZSB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gKi9cblxuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICogMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMTAwJTsgLyogMSAqL1xuICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuICBtYXJnaW46IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAqIDEuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQgeyAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbixcbnNlbGVjdCB7IC8qIDEgKi9cbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKlxuICogMS4gUHJldmVudCBhIFdlYktpdCBidWcgd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gIGFuZCBgdmlkZW9gXG4gKiAgICBjb250cm9scyBpbiBBbmRyb2lkIDQuXG4gKiAyLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcbmh0bWwgW3R5cGU9XCJidXR0b25cIl0sIC8qIDEgKi9cblt0eXBlPVwicmVzZXRcIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gKi9cblxuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5sZWdlbmQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIGNvbG9yOiBpbmhlcml0OyAvKiAyICovXG4gIGRpc3BsYXk6IHRhYmxlOyAvKiAxICovXG4gIG1heC13aWR0aDogMTAwJTsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAzICovXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8qIDEgKi9cbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cblxucHJvZ3Jlc3Mge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRS5cbiAqL1xuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLS5cbiAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC0uXG4gKi9cblxuW3R5cGU9XCJjaGVja2JveFwiXSxcblt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG4gKi9cblxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICovXG5cblt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgYW5kIGNhbmNlbCBidXR0b25zIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuICovXG5cblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAqL1xuXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xufVxuXG4vKiBJbnRlcmFjdGl2ZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUsIGFuZCBGaXJlZm94LlxuICovXG5cbmRldGFpbHMsIC8qIDEgKi9cbm1lbnUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtO1xufVxuXG4vKiBTY3JpcHRpbmdcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKi9cblxuY2FudmFzIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICovXG5cbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogSGlkZGVuXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLS5cbiAqL1xuXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4iLCIvKiEgSFRNTDUgQm9pbGVycGxhdGUgdjYuMC4xIHwgTUlUIExpY2Vuc2UgfCBodHRwczovL2h0bWw1Ym9pbGVycGxhdGUuY29tLyAqL1xuXG4vKlxuICogV2hhdCBmb2xsb3dzIGlzIHRoZSByZXN1bHQgb2YgbXVjaCByZXNlYXJjaCBvbiBjcm9zcy1icm93c2VyIHN0eWxpbmcuXG4gKiBDcmVkaXQgbGVmdCBpbmxpbmUgYW5kIGJpZyB0aGFua3MgdG8gTmljb2xhcyBHYWxsYWdoZXIsIEpvbmF0aGFuIE5lYWwsXG4gKiBLcm9jIENhbWVuLCBhbmQgdGhlIEg1QlAgZGV2IGNvbW11bml0eSBhbmQgdGVhbS5cbiAqL1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQmFzZSBzdHlsZXM6IG9waW5pb25hdGVkIGRlZmF1bHRzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogUmVtb3ZlIHRleHQtc2hhZG93IGluIHNlbGVjdGlvbiBoaWdobGlnaHQ6XG4gKiBodHRwczovL3R3aXR0ZXIuY29tL21pa2V0YXlsci9zdGF0dXMvMTIyMjg4MDUzMDFcbiAqXG4gKiBWZW5kb3ItcHJlZml4ZWQgYW5kIHJlZ3VsYXIgOjpzZWxlY3Rpb24gc2VsZWN0b3JzIGNhbm5vdCBiZSBjb21iaW5lZDpcbiAqIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8xNjk4MjUxMC83MTMzNDcxXG4gKlxuICogQ3VzdG9taXplIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIHRvIG1hdGNoIHlvdXIgZGVzaWduLlxuICovXG5cbjo6LW1vei1zZWxlY3Rpb24ge1xuICAgIGJhY2tncm91bmQ6ICNiM2Q0ZmM7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG5cbjo6c2VsZWN0aW9uIHtcbiAgICBiYWNrZ3JvdW5kOiAjYjNkNGZjO1xuICAgIHRleHQtc2hhZG93OiBub25lO1xufVxuXG4vKlxuICogQSBiZXR0ZXIgbG9va2luZyBkZWZhdWx0IGhvcml6b250YWwgcnVsZVxuICovXG5cbmhyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG4gICAgbWFyZ2luOiAxZW0gMDtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG4vKlxuICogUmVtb3ZlIHRoZSBnYXAgYmV0d2VlbiBhdWRpbywgY2FudmFzLCBpZnJhbWVzLFxuICogaW1hZ2VzLCB2aWRlb3MgYW5kIHRoZSBib3R0b20gb2YgdGhlaXIgY29udGFpbmVyczpcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2lzc3Vlcy80NDBcbiAqL1xuXG5hdWRpbyxcbmNhbnZhcyxcbmlmcmFtZSxcbmltZyxcbnN2ZyxcbnZpZGVvIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4vKlxuICogUmVtb3ZlIGRlZmF1bHQgZmllbGRzZXQgc3R5bGVzLlxuICovXG5cbmZpZWxkc2V0IHtcbiAgICBib3JkZXI6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbi8qXG4gKiBBbGxvdyBvbmx5IHZlcnRpY2FsIHJlc2l6aW5nIG9mIHRleHRhcmVhcy5cbiAqL1xuXG50ZXh0YXJlYSB7XG4gICAgcmVzaXplOiB2ZXJ0aWNhbDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEJyb3dzZXIgVXBncmFkZSBQcm9tcHRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5icm93c2VydXBncmFkZSB7XG4gICAgbWFyZ2luOiAwLjJlbSAwO1xuICAgIGJhY2tncm91bmQ6ICNjY2M7XG4gICAgY29sb3I6ICMwMDA7XG4gICAgcGFkZGluZzogMC4yZW0gMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cblxuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBIZWxwZXIgY2xhc3Nlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIEhpZGUgdmlzdWFsbHkgYW5kIGZyb20gc2NyZWVuIHJlYWRlcnNcbiAqL1xuXG4uaGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8qXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwczovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICpcbiAqIDEuIEZvciBsb25nIGNvbnRlbnQsIGxpbmUgZmVlZHMgYXJlIG5vdCBpbnRlcnByZXRlZCBhcyBzcGFjZXMgYW5kIHNtYWxsIHdpZHRoXG4gKiAgICBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAqICAgIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAqL1xuXG4udmlzdWFsbHloaWRkZW4ge1xuICAgIGJvcmRlcjogMDtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgIC13ZWJraXQtY2xpcC1wYXRoOiBpbnNldCg1MCUpO1xuICAgIGNsaXAtcGF0aDogaW5zZXQoNTAlKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IC8qIDEgKi9cbn1cblxuLypcbiAqIEV4dGVuZHMgdGhlIC52aXN1YWxseWhpZGRlbiBjbGFzcyB0byBhbGxvdyB0aGUgZWxlbWVudFxuICogdG8gYmUgZm9jdXNhYmxlIHdoZW4gbmF2aWdhdGVkIHRvIHZpYSB0aGUga2V5Ym9hcmQ6XG4gKiBodHRwczovL3d3dy5kcnVwYWwub3JnL25vZGUvODk3NjM4XG4gKi9cblxuLnZpc3VhbGx5aGlkZGVuLmZvY3VzYWJsZTphY3RpdmUsXG4udmlzdWFsbHloaWRkZW4uZm9jdXNhYmxlOmZvY3VzIHtcbiAgICBjbGlwOiBhdXRvO1xuICAgIC13ZWJraXQtY2xpcC1wYXRoOiBub25lO1xuICAgIGNsaXAtcGF0aDogbm9uZTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWFyZ2luOiAwO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgd2hpdGUtc3BhY2U6IGluaGVyaXQ7XG59XG5cbi8qXG4gKiBIaWRlIHZpc3VhbGx5IGFuZCBmcm9tIHNjcmVlbiByZWFkZXJzLCBidXQgbWFpbnRhaW4gbGF5b3V0XG4gKi9cblxuLmludmlzaWJsZSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4vKlxuICogQ2xlYXJmaXg6IGNvbnRhaW4gZmxvYXRzXG4gKlxuICogRm9yIG1vZGVybiBicm93c2Vyc1xuICogMS4gVGhlIHNwYWNlIGNvbnRlbnQgaXMgb25lIHdheSB0byBhdm9pZCBhbiBPcGVyYSBidWcgd2hlbiB0aGVcbiAqICAgIGBjb250ZW50ZWRpdGFibGVgIGF0dHJpYnV0ZSBpcyBpbmNsdWRlZCBhbnl3aGVyZSBlbHNlIGluIHRoZSBkb2N1bWVudC5cbiAqICAgIE90aGVyd2lzZSBpdCBjYXVzZXMgc3BhY2UgdG8gYXBwZWFyIGF0IHRoZSB0b3AgYW5kIGJvdHRvbSBvZiBlbGVtZW50c1xuICogICAgdGhhdCByZWNlaXZlIHRoZSBgY2xlYXJmaXhgIGNsYXNzLlxuICogMi4gVGhlIHVzZSBvZiBgdGFibGVgIHJhdGhlciB0aGFuIGBibG9ja2AgaXMgb25seSBuZWNlc3NhcnkgaWYgdXNpbmdcbiAqICAgIGA6YmVmb3JlYCB0byBjb250YWluIHRoZSB0b3AtbWFyZ2lucyBvZiBjaGlsZCBlbGVtZW50cy5cbiAqL1xuXG4uY2xlYXJmaXg6YmVmb3JlLFxuLmNsZWFyZml4OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiBcIjsgLyogMSAqL1xuICAgIGRpc3BsYXk6IHRhYmxlOyAvKiAyICovXG59XG5cbi5jbGVhcmZpeDphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG59XG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFByaW50IHN0eWxlcy5cbiAgIElubGluZWQgdG8gYXZvaWQgdGhlIGFkZGl0aW9uYWwgSFRUUCByZXF1ZXN0OlxuICAgaHR0cDovL3d3dy5waHBpZWQuY29tL2RlbGF5LWxvYWRpbmcteW91ci1wcmludC1jc3MvXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5AbWVkaWEgcHJpbnQge1xuICAgICosXG4gICAgKjpiZWZvcmUsXG4gICAgKjphZnRlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7IC8qIEJsYWNrIHByaW50cyBmYXN0ZXI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0dHA6Ly93d3cuc2FuYmVpamkuY29tL2FyY2hpdmVzLzk1MyAqL1xuICAgICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgYSxcbiAgICBhOnZpc2l0ZWQge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG5cbiAgICBhW2hyZWZdOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCIgKFwiIGF0dHIoaHJlZikgXCIpXCI7XG4gICAgfVxuXG4gICAgYWJiclt0aXRsZV06YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIiAoXCIgYXR0cih0aXRsZSkgXCIpXCI7XG4gICAgfVxuXG4gICAgLypcbiAgICAgKiBEb24ndCBzaG93IGxpbmtzIHRoYXQgYXJlIGZyYWdtZW50IGlkZW50aWZpZXJzLFxuICAgICAqIG9yIHVzZSB0aGUgYGphdmFzY3JpcHQ6YCBwc2V1ZG8gcHJvdG9jb2xcbiAgICAgKi9cblxuICAgIGFbaHJlZl49XCIjXCJdOmFmdGVyLFxuICAgIGFbaHJlZl49XCJqYXZhc2NyaXB0OlwiXTphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgfVxuXG4gICAgcHJlIHtcbiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIHByZSxcbiAgICBibG9ja3F1b3RlIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzk5OTtcbiAgICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgIH1cblxuICAgIC8qXG4gICAgICogUHJpbnRpbmcgVGFibGVzOlxuICAgICAqIGh0dHA6Ly9jc3MtZGlzY3Vzcy5pbmN1dGlvLmNvbS93aWtpL1ByaW50aW5nX1RhYmxlc1xuICAgICAqL1xuXG4gICAgdGhlYWQge1xuICAgICAgICBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7XG4gICAgfVxuXG4gICAgdHIsXG4gICAgaW1nIHtcbiAgICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgIH1cblxuICAgIHAsXG4gICAgaDIsXG4gICAgaDMge1xuICAgICAgICBvcnBoYW5zOiAzO1xuICAgICAgICB3aWRvd3M6IDM7XG4gICAgfVxuXG4gICAgaDIsXG4gICAgaDMge1xuICAgICAgICBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDtcbiAgICB9XG59XG4iLCIvLyBAZm9udC1mYWNlIHtcbi8vICAgZm9udC1mYW1pbHk6ICdLZXJuJztcbi8vICAgc3JjOiB1cmwoJy93ZWJmb250cy9rZXJuX3JlZ3VsYXItd2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbi8vICAgICAgICAgdXJsKCcvd2ViZm9udHMva2Vybl9yZWd1bGFyLXdlYmZvbnQud29mZicpIGZvcm1hdCgnd29mZicpLFxuLy8gICAgICAgICB1cmwoJy93ZWJmb250cy9LZXJuIFJlZ3VsYXIudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLFxuLy8gICAgICAgICB1cmwoJy93ZWJmb250cy9rZXJuX3JlZ3VsYXItd2ViZm9udC5zdmcnKSBmb3JtYXQoJ3N2ZycpO1xuLy8gICBmb250LXdlaWdodDogbm9ybWFsO1xuLy8gICBmb250LXN0eWxlOiBub3JtYWw7XG4vLyB9XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdLZXJuJztcbiAgc3JjOiB1cmwoJy93ZWJmb250cy9LZXJuLVJlZ3VsYXItdGhlMTk3MHMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4gICAgICAgIHVybCgnL3dlYmZvbnRzL0tlcm4tUmVndWxhci10aGUxOTcwcy53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG4gICAgICAgIHVybCgnL3dlYmZvbnRzL0tlcm4tUmVndWxhci10aGUxOTcwcy5vdGYnKSBmb3JtYXQoJ29wZW50eXBlJyk7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0tlcm5pJztcbiAgc3JjOiB1cmwoJy93ZWJmb250cy9rZXJuX2l0YWxpYy13ZWJmb250LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgICAgICB1cmwoJy93ZWJmb250cy9rZXJuX2l0YWxpYy13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgICAgdXJsKCcvd2ViZm9udHMvS2VybiBJdGFsaWMudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgICAgICB1cmwoJy93ZWJmb250cy9rZXJuX2l0YWxpYy13ZWJmb250LnN2ZycpIGZvcm1hdCgnc3ZnJyk7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuaHRtbCB7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xufVxuXG5ib2R5IHtcbiAgZm9udC1mYW1pbHk6IEtlcm4sIEhlbHZldGljYSBOZXVlLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEuODI1cmVtO1xuICBsaW5lLWhlaWdodDogMi4xNXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuLnNtYWxsIHtcbiAgZm9udC1zaXplOiAxLjFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjJyZW07XG59XG4ubWVkaXVtIHtcbiAgZm9udC1zaXplOiAxLjMyNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTc1cmVtO1xufVxuXG5oMSwgaDIsIGgzLCBoNCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAxLjgyNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDIuMTVyZW07XG59XG5oMyB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbm5hdiwgLmxhbmdzd2l0Y2gge1xuICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlO1xufVxuXG4uZXZlbnRzIC5pdGVtIHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjhyZW07XG59XG4uZXZlbnQtdHlwZSB7XG4gbGluZS1oZWlnaHQ6IDEuOXJlbTtcbn0iLCIvKiBNQUlOIEVMRU1FTlRTICovXG5cbm1haW4ubWFpbixcbmhlYWRlci5oZWFkZXIge1xuICB6LWluZGV4OiAxO1xufVxuXG5tYWluLm1haW4ge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbn1cblxuLmxvZ28ge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIG1heC13aWR0aDogMzAwcHg7XG4gIHRvcDogMTBweDtcbiAgbGVmdDogMTBweDtcbiAgei1pbmRleDogMTIzNDtcbn1cblxubmF2IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDVweDtcbiAgcmlnaHQ6IDVweDtcbiAgei1pbmRleDogMTtcbiAgei1pbmRleDogMTIzNTtcbn1cblxuLmhvbWUgbmF2IHtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDVweCk7XG59XG5cbi5sYW5nc3dpdGNoIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5zaWdudXAge1xuICBtYXJnaW4tYm90dG9tOiAxNDBweDtcblxuICAjbWNfZW1iZWRfc2lnbnVwX3Njcm9sbCxcbiAgZm9ybSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAubWMtZmllbGQtZ3JvdXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgfVxuXG4gIC5pbnB1dC1ncm91cCB7XG4gICAgLy8gZGlzcGxheTogbm9uZTtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gIH1cblxuICAvLyAmOmhvdmVyIHtcbiAgLy8gICAuaW5wdXQtZ3JvdXAge1xuICAvLyAgICAgZGlzcGxheTogZmxleDtcbiAgLy8gICB9XG4gIC8vIH1cbiAgLm5sLWxhYmVsIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gICAgcGFkZGluZy10b3A6IDRweDtcbiAgfVxufVxuXG5mb290ZXIuZm9vdGVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBib3R0b206IDQwcHg7XG4gIHotaW5kZXg6IC0xO1xuXG4gIHVsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICBsaSB7XG4gICAgICBtYXJnaW46IDVweCAxMHB4O1xuICAgIH1cbiAgfVxufVxuXG4vKiBQSUVDRVMgKi9cblxuLml0ZW0uaW4sXG4uaXRlbS5vdXQge1xuXG4gIC5pbmZvIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICAgIC5sb2NhdGlvbiB7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG4gIH1cblxuICAuaW1nLWhvbGRlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLmluZm8tcmlnaHQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG5cbiAgLnN2Zy1ob2xkZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cblxuICBzdmcge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAycHgpO1xuICAgIGhlaWdodDogY2FsYygxMDAlICsgMnB4KTtcbiAgICBtYXJnaW4tbGVmdDogLTFweDtcbiAgfVxuXG4gIGltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLy8gbmV3IHN0eWxlIGltYWdlc1xuLml0ZW0uaW4sXG4uaXRlbS5vdXQge1xuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICAvLyB3aWR0aDogNTAlO1xuXG4gICYuaXRlbS12MiB7XG4gICAgbWFyZ2luLXRvcDogMzBweCAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmltZy1ob2xkZXItdjIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luOiAyMHB4O1xuICB9XG5cbiAgLmltZy1ob2xkZXItdjI6aG92ZXIgLmltZy12MiB7XG4gICAgY2xpcC1wYXRoOiBjaXJjbGUoMTAwJSk7XG4gIH1cblxuICAuaW1nLXYyIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgY2xpcC1wYXRoOiB1cmwoI2NwKTtcbiAgICAvLyBtYXgtaGVpZ2h0OiA1MDBweDsgLy8gZG9uJ3QgbWF4IGhlaWdodFxuICAgIHdpZHRoOiAxMDAlOyAvLyBzdHJldGNoIGZvciBzbWFsbCBpbWFnZXNcbiAgfVxuXG4gIC8vIG5vIGFuaW1hdGlvbiBmb3IgdGhlIG1haW4gaW1hZ2VcbiAgJi5zdGF0aWM6aG92ZXIgLmltZy1ob2xkZXItdjI6aG92ZXIgLmltZy12MiB7XG4gICAgY2xpcC1wYXRoOiB1cmwoI2NwKTtcbiAgfVxufVxuXG4ucGFnZS1hcnRpc3QsXG4ucGFnZS1ldmVudCxcbi5wYWdlLXdvcmsge1xuICAuaW1nLXYyIHtcbiAgICBtYXgtaGVpZ2h0OiBub25lICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLy8gZW5kIG5ldyBzdHlsZSBpbWFnZXNcblxuXG4vLyBIT01FUEFHRVxuXG4uaG9tZSB7XG4gIC5sb2dvIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5sZWZ0LFxuLnJpZ2h0IHtcbiAgd2lkdGg6IGNhbGMoNTAlIC0gMjBweCk7XG4gIHBhZGRpbmc6IDEwcHg7XG59XG5cbi5yaWdodCB7XG4gIG1hcmdpbi10b3A6IDYwcHg7XG59XG5cbi5zZWFyY2gtaW5wdXQge1xuICBtYXJnaW46IDEwcHggMCAyMHB4IDA7XG59XG5cbi5iaWcsXG4ub3BlbmluZyB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cbi5iaWcge1xuICAuaW5mbyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgfVxuXG4gIC5ldmVudC10eXBlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICB9XG5cbn1cblxuLnB1YmxpY3Mge1xuICBtYXJnaW46IDUwcHggMDtcblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgaDIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDQ1JTtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB6LWluZGV4OiAxMjM0NTtcbiAgICBwYWRkaW5nLWxlZnQ6IDYwcHg7XG4gICAgcGFkZGluZy1yaWdodDogNjBweDtcbiAgfVxufVxuXG4ucHJvZ3JhbW1lIHtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcblxuICBoMiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgfVxuXG4gIC5ldmVudHMtd3JhcHBlciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAyMTBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgLmV2ZW50cyB7XG4gICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gICAgcGFkZGluZy1yaWdodDogMTdweDtcbiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgfVxuXG4gIC5ldmVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAkbWFpbmNvbG9yO1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICBwYWRkaW5nOiAxMHB4IDA7XG5cbiAgICAucHJhY3RpY2FsIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgfVxuXG4gICAgJi50LWV4aGliaXRpb24gLnByYWN0aWNhbCxcbiAgICAmLnQtdGVudG9vbnN0ZWxsaW5nIC5wcmFjdGljYWwsXG4gICAgJi50LWV4cG9zaXRpb24gLnByYWN0aWNhbCB7XG4gICAgICAudGltZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnRpdGxlIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgfVxuXG5cbiAgfVxuXG59XG5cbi5zaW5nbGUtZXZlbnRzIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgLnBhbmVsIHtcbiAgICBtYXgtd2lkdGg6IGNhbGMoNTAlIC0gMzBweCk7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICB9XG5cbiAgaDQge1xuICAgIG1hcmdpbjogMTBweCAwO1xuICB9XG59XG5cbi5tZWRpYS1saWJyYXJ5IGEge1xuICBjb2xvcjogJHdoaXRlO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gIH1cblxuICAubWVkaWEtbGlicmFyeS1mcm9udCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgICBoMiB7XG4gICAgICB3aWR0aDogNTAlO1xuICAgIH1cbiAgfVxuXG4gIGgyIHtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICB9XG5cbiAgLml0ZW0ge1xuICAgIG1heC13aWR0aDogNDAwcHg7XG4gICAgd2lkdGg6IDUwJTtcbiAgfVxufVxuXG4ubmV3cyB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JlZW47XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDQwcHg7XG4gIHotaW5kZXg6IDEyMzQ1O1xuXG4gIC5sYWJlbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG1haW5jb2xvcjtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgcGFkZGluZzogMnB4IDVweCA0cHggNXB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiAxMjM7XG4gIH1cblxuICAubWVzc2FnZXMge1xuICAgIGhlaWdodDogNDBweDtcbiAgICBwYWRkaW5nLXRvcDogNHB4O1xuXG4gICAgYSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDUwcHggLy8gZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbiAgfVxuXG59XG5cblxuLy8gUkVHVUxBUiBQQUdFXG5cbi5wYWdlIC5jb250ZW50LFxuLnBhZ2UtZXZlbnQgLmNvbnRlbnQsXG4ucGFnZS1hcnRpc3QgLmNvbnRlbnQsXG4ucGFnZS13b3JrIC5jb250ZW50IHtcbiAgcGFkZGluZzogMTAwcHggMTVweCAxMHB4IDE1cHg7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAzMHB4KTtcblxuICAucGFuZWwge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICB9XG5cbiAgaDEge1xuICAgIG1hcmdpbjogMjBweCAyMHB4IDAgMjBweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHotaW5kZXg6IDEyMztcblxuICAgICYubm8taW1nIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG1hcmdpbjogMjBweCAwIDIwcHggMDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuICB9XG5cbiAgaDMge1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gIH1cblxuICAuaXRlbSB7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgfVxuXG4gIHAuZmlyc3Qge1xuICAgIG1hcmdpbi10b3A6IDVweDtcbiAgfVxuXG4gIC5ib2R5LXR4dCBmaWd1cmUge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGlmcmFtZSB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICAgIC5mbHVpZC13aWR0aC12aWRlby13cmFwcGVyIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgfVxuICB9XG5cbn1cblxuLnNtYWxsLXBhbmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB3aWR0aDogY2FsYyg1MCUgLSA0NXB4KTtcbiAgcGFkZGluZzogMCA1cHg7XG4gIG1hcmdpbjogMTBweCAxMHB4IDIwcHggMTBweDtcblxuICAucGFuZWwtdXBwZXIge1xuICAgIHAge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG4gIH1cbn1cblxuLnRhYmxlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgd2lkdGg6IDEwMCU7XG5cbiAgLmxlbmd0aCxcbiAgLnByaWNlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGJvcmRlci1yaWdodDogMnB4IHNvbGlkICRtYWluY29sb3I7XG5cbiAgICAmLnByaWNlIHtcbiAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICB9XG5cbiAgICA+ZGl2IHtcbiAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpO1xuICAgICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICRtYWluY29sb3I7XG5cbiAgICAgICYubGFiZWwge1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMjBweCkgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxufVxuXG4uY29sdW1uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBtYXgtd2lkdGg6IGNhbGMoNTAlIC0gMjRweCk7XG4gIHdpZHRoOiBjYWxjKDUwJSAtIDM0cHgpO1xuICAvLyBtYXJnaW46IDIwcHggMDtcbn1cblxuaWZyYW1lLFxuI21hcCxcbi5vbC12aWV3cG9ydCB7XG4gIGJvcmRlcjogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIC8vIGhlaWdodDogNzAwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDI1cHg7XG4gIG1hcmdpbi10b3A6IDUwcHg7XG59XG4uYm9keS10eHQgaWZyYW1lIHtcbiAgLy8gYm9yZGVyLXJhZGl1czogMHB4O1xufVxuLmZsdWlkLXdpZHRoLXZpZGVvLXdyYXBwZXIge1xuICBtYXJnaW4tYm90dG9tOiAxNTBweDtcbn1cblxuLmxpbmstcGFuZWxzIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgLml0ZW0ge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUvMyAtIDQwcHgpO1xuICAgIG1hcmdpbjogMTBweDtcbiAgfVxufVxuXG4uZ2FsbGVyeSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcblxuICAuaXRlbSB7XG4gICAgd2lkdGg6IGNhbGMoMjUlIC0gMjBweCk7XG4gIH1cblxuICAuc3ZnLWhvbGRlciB7XG4gICAgdG9wOiAtMXB4O1xuICB9XG59XG5cbi8vIFBST0dSQU1NRSBQQUdFXG4ucHJvZ3JhbW1lLXBhZ2UsXG4ucGFnZS13b3JrLW92ZXJ2aWV3IHtcbiAgbWFpbi5tYWluIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG59XG5cbi5maWx0ZXJzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luLXRvcDogMTEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgLmZpbHRlciB7XG4gICAgbWFyZ2luOiA1cHg7XG4gIH1cblxuICAuaGFzLXN1YiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIHVsIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHBhZGRpbmc6IDUwcHggMCAwIDA7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIGxpIHtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICBtYXJnaW46IDAgMjBweCAxMHB4IC0xNXB4O1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgdWwge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG5cbn1cblxuLnByb2dyYW1tZS1saXN0IHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIHBhZGRpbmc6IDEwcHg7XG5cbiAgLml0ZW0ge1xuICAgIG1heC13aWR0aDogY2FsYyg1MCUgLSAzMHB4KTtcbiAgICB3aWR0aDogY2FsYyg1MCUgLSAzMHB4KTtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuXG4gICAgLmluZm8ge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICB9XG5cbiAgICAuZXZlbnQtdHlwZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIH1cbiAgfVxufVxuXG4ucGFnZS1ldmVudCB7XG4gIC5ldmVudC1pbmZvIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgfVxuXG4gIC5wcmFjdGljYWwge31cbn1cblxuLnBhZ2Utc2VhcmNoIHtcbiAgLmNvbnRlbnQge1xuICAgIHBhZGRpbmctYm90dG9tOiAyMHB4O1xuXG4gICAgaDEge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbWFyZ2luOiAyMHB4IDA7XG4gICAgfVxuXG4gICAgdWwge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgICB9XG4gIH1cblxufVxuXG4ucGFnZS1hcnRpc3Qtb3ZlcnZpZXcsXG4ucGFnZS13b3JrLW92ZXJ2aWV3IHtcbiAgLnByb2dyYW1tZS1saXN0IHtcbiAgICBtYXJnaW4tdG9wOiAxMDBweDtcbiAgfVxuXG4gIC5hbHBoYWJldC1maWx0ZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAuYWxwaGFiZXQge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gNjBweCk7XG4gICAgcGFkZGluZzogMjBweDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMjBweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgei1pbmRleDogMTIzNDtcblxuICAgIC5udW1iZXIge1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuLy8gYXJ0aXN0IHBhZ2Vcbi5iaXJ0aHllYXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctbGVmdDogMTVweDtcblxuICAmOmJlZm9yZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGNvbnRlbnQ6ICfCsCc7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gIH1cbn1cblxuLy8gd29yayBwYWdlXG4ucGFnZS13b3JrIHtcbiAgLnByb2dyYW1tZS1saXN0IHtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICB9XG4gIC50ZWNobmljYWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB9XG59XG5cblxuLy8gcGFnZXJcbi5wYWdlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMjBweCA0MHB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuXG4gIGEge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gIC5pbmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMC4xO1xuICB9XG59XG5cblxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDcwZW0pIHtcbiAgLnNpbmdsZS1ldmVudHMge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgIC5wYW5lbCB7XG4gICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICB9XG4gIH1cblxuICAubGluay1wYW5lbHMge1xuICAgIC5pdGVtIHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUvMiAtIDQwcHgpO1xuICAgIH1cbiAgfVxuXG4gIC5jb2x1bW4ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1heC13aWR0aDogY2FsYygxMDAlKTtcbiAgICB3aWR0aDogY2FsYygxMDAlKTtcbiAgfVxuXG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDVlbSkge1xuXG4gIC5ob21lIHtcbiAgICBtYWluLm1haW4ge1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgIH1cblxuICAgIC5sZWZ0LFxuICAgIC5yaWdodCB7XG4gICAgICB3aWR0aDogY2FsYygxMDAlIC0gMjBweCk7XG4gICAgfVxuXG4gICAgLnJpZ2h0IHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICB9XG5cblxuICAuc2lnbnVwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxODBweDtcblxuICAgIC5uaWwge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICBbdHlwZT1cImVtYWlsXCJdIHtcbiAgICAgIGZsZXgtZ3JvdzogMSAhaW1wb3J0YW50O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgLnByb2dyYW1tZS1saXN0IC5pdGVtIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAucHJvZ3JhbW1lIHtcbiAgICAuZXZlbnQtdHlwZSB7XG4gICAgICAvLyBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIC8vIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLnNtYWxsLXBhbmVsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMjBweCk7XG4gICAgbWFyZ2luOiAyMHB4IDA7XG4gIH1cblxuICAubGluay1wYW5lbHMge1xuICAgIC5pdGVtIHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA0MHB4KTtcbiAgICB9XG4gIH1cblxuICAucGFnZSAuY29udGVudCxcbiAgLnBhZ2UtZXZlbnQgLmNvbnRlbnQge1xuICAgIGgxIHtcbiAgICAgIG1hcmdpbjogMTBweCAyMHB4IDAgMjBweDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG5cbiAgICAuaXRlbSB7XG4gICAgICBtYXJnaW4tdG9wOiAtMTBweDtcbiAgICB9XG4gIH1cblxuXG4gIC50YWJsZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC5sZW5ndGgsXG4gICAgLnByaWNlIHtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgJG1haW5jb2xvcjtcblxuICAgICAgLy8gd2lkdGg6IDUwJTtcbiAgICAgICYucHJpY2Uge1xuICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgID5kaXYge1xuICAgICAgICAmLmxhYmVsIHtcbiAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMjBweCkgIWltcG9ydGFudDtcblxuICAgICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMjBweCk7XG4gICAgICAgIGJvcmRlci1sZWZ0Om5vbmU7XG4gICAgICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAkbWFpbmNvbG9yO1xuXG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmdhbGxlcnkgLml0ZW0ge1xuICAgIHdpZHRoOiBjYWxjKDUwJSAtIDIwcHgpO1xuICB9XG5cbiAgLnBhZ2UtYXJ0aXN0LW92ZXJ2aWV3LFxuICAucGFnZS13b3JrLW92ZXJ2aWV3IHtcbiAgICAuYWxwaGFiZXQge1xuICAgICAgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTAwJSk7XG4gICAgICAmLmZpbHRlci1hY3RpdmUge1xuICAgICAgICB0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLmFscGhhYmV0LWZpbHRlciB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgIGJvdHRvbTogNDBweDtcbiAgICAgIGxlZnQ6IDIwcHg7XG4gICAgICBib3JkZXItcmFkaXVzOjI1cHg7XG4gICAgICBwYWRkaW5nOiAwIDE1cHggMnB4IDE1cHg7XG4gICAgICBiYWNrZ3JvdW5kOiRtYWluY29sb3I7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAmLmZpbHRlci1hY3RpdmUge1xuICAgICAgICB0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM1ZW0pIHtcbiAgLmdhbGxlcnkgLml0ZW0ge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAyMHB4KTtcbiAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDI1ZW0pIHtcbiAgLnNpZ251cCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjIwcHg7XG4gIH1cblxuICAuZ2FsbGVyeSAuaXRlbSB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpO1xuICB9XG59IiwiJGJnY29sb3I6ICNGMEYwRjA7XG4kbWFpbmNvbG9yOiAjMDAwMDAwO1xuJHdoaXRlOiAjZmZmZmZmO1xuJGhpZ2hsaWdodGNvbG9yOiAjMTE2N0ZGO1xuJGJsdWU6ICMwMDY3RkYgO1xuJGdyZWVuOiAjNTJGRjZBO1xuJGdyZXk6ICNGMEYwRjA7XG4kZGFya2dyZXk6ICM1YTVhNTk7IiwiLm0tbWVudSB7XG5cbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6MTRweDtcbiAgcmlnaHQ6MjVweDtcbiAgZGlzcGxheTogbm9uZTtcbiAgei1pbmRleDogMTIzNDU2Nzg7XG5cbiAgJjpiZWZvcmUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb250ZW50OicnO1xuICAgIHdpZHRoOjUwcHg7XG4gICAgaGVpZ2h0OiAzcHg7XG4gICAgbGVmdDogMHB4O1xuICAgIHRvcDogMjRweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWFpbmNvbG9yO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyAgY3ViaWMtYmV6aWVyKDAuNDQ1LCAwLjA1MCwgMC41NTAsIDAuOTUwKTtcbiAgfVxuXG4gIC5tbSB7XG4gICAgYm9yZGVyOm5vbmU7XG4gICAgYmFja2dyb3VuZDp0cmFuc3BhcmVudDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOjUwcHg7XG4gICAgaGVpZ2h0OjUwcHg7XG4gICAgb3V0bGluZTpub25lO1xuICAgIHBhZGRpbmc6IDA7IC8vIGlvcyBoYXMgYSBidWcgb3RoZXJ3aXNlXG5cbiAgICAmOmJlZm9yZSwgJjphZnRlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGNvbnRlbnQ6Jyc7XG4gICAgICB3aWR0aDo1MHB4O1xuICAgICAgaGVpZ2h0OiAzcHg7XG4gICAgICBsZWZ0OiAwcHg7XG4gICAgICB0b3A6IDEycHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiRtYWluY29sb3I7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgIGN1YmljLWJlemllcigwLjQ0NSwgMC4wNTAsIDAuNTUwLCAwLjk1MCk7XG4gICAgfVxuICAgICY6YWZ0ZXIge1xuICAgICAgdG9wOiAzNnB4O1xuICAgIH1cblxuICB9XG5cbn1cblxuXG5cbm5hdiB7XG4gIHVsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIGxpIHtcbiAgICAgIG1hcmdpbjogNXB4O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBhLCBzcGFuLmJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBsaSB1bCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcGFkZGluZy10b3A6IDVweDtcbiAgICByaWdodDogMDtcbiAgfVxuICBsaTpob3ZlciB7XG4gICAgdWwge1xuICAgICAgLy8gZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtNXB4O1xuICAgIH1cbiAgfVxuICAubGFuZ3N3aXRjaCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuXG4gIC5wNDAgdWwge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgLy8gZGlydHkgaGFjazogO1xuICB9XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzVlbSkge1xuICAubS1tZW51IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC5uYXYge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAubS1tZW51LW9wZW4ge1xuXG4gICAgLm0tbWVudSB7XG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgfVxuICAgIC5tLW1lbnUgLm1tIHtcbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgdG9wOjI0cHg7XG4gICAgICAgIHRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTtcbiAgICAgIH1cbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICB0b3A6MjRweDtcbiAgICAgICAgdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm5hdiB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHRvcDogNzVweDtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAxMHB4KTtcbiAgICAgIGxlZnQ6IDVweDtcbiAgICAgIHVsIHtcbiAgICAgICAgZmxleC1mbG93OiBjb2x1bW47XG4gICAgICAgIC8vIHdpZHRoOiAxMDAlO1xuICAgICAgICBsaSB7XG4gICAgICAgICAgLy8gd2lkdGg6IDEwMCU7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgIGEsIC5idXR0b24ge1xuICAgICAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgICAgICB9XG4gICAgICAgICAgdWwge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbGk6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC5sYW5nc3dpdGNoLWhvbGRlciB7XG4gICAgICBvcmRlcjotMTtcbiAgICB9XG4gIH1cblxufVxuXG4vLyBhcHBseSBob3ZlciBlZmZlY3Qgb25seSBmb3Igbm9uIHRvdWNoIGRldmljZXMgdG8gcHJldmVudCB0b2dnbGUgYnVnIG9uIG1vYmlsZVxuQG1lZGlhIG5vdCBhbGwgYW5kIChwb2ludGVyOiBjb2Fyc2UpIHtcbiAgbmF2IGxpOmhvdmVyIHtcbiAgICAgIHVsIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIH1cbiAgfVxufSJdfQ== */
