/*
---
name: .stretch
category: Shared/Helpers
tag:
 - helpers
---

`.stretch` Define an element which stretches to the size of its parent

```html
<div class="rel" style="height: 55px;">
   <div class="stretch styleguide-grid-unit"> I'm stretched to the size of my parent</div>
</div>
```
*/
.stretch {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
/*
---
name: .abs
category: Shared/Helpers
tag:
 - helpers
---

`.abs` Set the element position to absolute
*/
.abs {
  position: absolute;
}
/*
---
name: .rel
category: Shared/Helpers
tag:
 - helpers
---

`.rel` Set the element position to relative
*/
.rel {
  position: relative;
}
/*
---
name: .vcenter
category: Shared/Helpers
tag:
 - helpers
---

`.vcenter` Sets vertical-align to middle
*/
.vcenter {
  vertical-align: middle;
}
/*
---
name: .hcenter
category: Shared/Helpers
tag:
 - helpers
---

`.hcenter` Sets text-align to center
*/
.hcenter {
  text-align: center;
}
/*
---
name: .floatleft
category: Shared/Helpers
tag:
 - helpers
---

`.floatleft` Sets float to left
*/
.floatleft {
  float: left;
}
/*
---
name: .floatright
category: Shared/Helpers
tag:
 - helpers
---

`.floatright` Sets float to right
*/
.floatright {
  float: right;
}
/*
---
name: .hidden
category: Shared/Helpers
tag:
 - helpers
---

`.hidden` Sets display to none.
*/
.hidden {
  display: none;
}
/*
---
name: rem( pixels )
category: Shared/Mixins
template: mixin
tag:
 - mixin
parameters:
 - name: pixels
   description: The pixel value to convert into rem based on the 16px root font-size
   optional: false
---

This less function turns a pixel value into a rem value based on the root font-size set to 16px.

An example usage looks like this:

```less
.example {
	padding: rem( 15px ) rem( 12px )
}
```
*/
/*
---
name: .for( @array, @code )
category: Shared/Mixins
template: mixin
tag:
 - mixin
parameters:
 - name: array
   description: The array of values to loop over
   optional: false
 - name: code
   description: The code that is executed on every value. You can access the index with `@i` and the value with `@value`
   optional: false
---

This mixin allows to execute code over an array

An example usage looks like this:
```less
@colors: #1abc9c, #2ecc71, #3498db, #9b59b6;

.for(@colors, {
    .color-@{i} {
        color: @value;
    }
});
```

This generates:
```css
.color-1 {
  color: #1abc9c;
}
.color-2 {
  color: #2ecc71;
}
.color-3 {
  color: #3498db;
}
.color-4 {
  color: #9b59b6;
}
```
*/
/*
---
name: Global Reset
category: Shared
---

The lernetz css library has a set of reset style to have the same behaviour on every browser.
Furthermore this reset sets some global variables like:
 * body font-families
 * body line-height
 * body text-rendering
 * :root font-size for proper rem conversion
*/
html,
body,
div,
span,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
abbr,
address,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
samp,
small,
strong,
sub,
sup,
var,
b,
i,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
summary,
time,
mark,
audio,
video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: inherit;
  vertical-align: baseline;
}
:root {
  font-size: 16px;
}
html {
  font-size: 100%;
}
body {
  line-height: 1.5rem;
  color: #000000;
  font-family: 'Helvetica', sans-serif;
  text-rendering: optimizeLegibility;
  background-color: #FFF;
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
  display: block;
}
select {
  vertical-align: middle;
}
textarea {
  width: 100%;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
button,
input,
optgroup,
select,
textarea {
  color: inherit;
  font: inherit;
  margin: 0;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0;
}
/*
 * Normalize the behaviour of all browsers
 *
 * Instead of setting box-sizing fix on all elements we only set it on the root element
 * and tell all elements to inherit it's property from the parent
 * That way it's possible to overwrite the box-sizing anywhere while keeping proper inheritance
 */
html {
  box-sizing: border-box;
}
*,
*:before,
*:after {
  box-sizing: inherit;
}
a {
  text-decoration: none;
  color: #CB3FB2;
}
a > img {
  display: block;
}
/*
---
name: Colors
category: Shared/Variables
template: colors
tag:
 - variables
 - colors
colors:
 - variable: "@text-color"
   description: "The default text color on the body"
   value: "#3F3F40"
 - variable: "@text-inverted-color"
   description: "The default inverted text color on the body"
   value: "#FFF"
 - variable: "@action-color"
   description: "The main action color used for links and buttons"
   value: "#EC6449"
 - variable: "@body-color"
   description: "The main background color"
   value: "#FFF"
---

The color variables that are used throughout the library. 
*/
/*
---
name: Global settings
category: Shared/Variables
template: variables
tag:
 - variables
variables:
 - name: "@text-line-height"
   description: "The line height of the body"
   default: "1.5rem"
 - name: "@font-family"
   description: "The font-family of the body"
   default: "'Helvetica', sans-serif"
 - name: "@text-rendering"
   description: "The text-rendering of the body"
   default: "optimizeLegibility"
 - name: "@transition-duration"
   description: "The duration of the slide transitions"
   default: "0.4s"
---

These variables setups some global text formatting and styling.
*/
/*
---
name: Size settings
category: Shared/Variables
template: variables
tag:
 - variables
 - grid
variables:
 - name: "@grid-gutter"
   description: "The space between the grid children"
   default: "rem( 30px )"
 - name: "@grid-break-points"
   description: "The screensize when the grid should break."
   default: "rem(600px), rem(1024px)"
 - name: "@grid-break-labels"
   description: "The breakpoint label corresponding to the entie in the `@grid-break-points` list"
   default: "medium, large"
 - name: "@page-padding"
   description: "The padding for the .page-fluid component"
   default: "rem( 60px )"
---

These variables setups some global sizes mainly for the grid.
*/
/*
---
name: .button-default
category: Buttons/Default
tag:
 - component
 - button
---

The default button sets some basic properties so it is working as a `button` or `a` tag.

An example for a button:
```jade
button.button-default My Button
```

An example for a link:
```jade
a.button-default My Link
```
*/
.button-default {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background: transparent;
  border: none;
  display: inline-block;
  cursor: pointer;
  outline: none;
}
/*
---
name: .grid
category: Layout/Grid
tag:
 - component
 - responsive
compile: true
---

A simple grid system that wraps children nodes based on the viewport width.

## Simple side by side rendering

The easiest use case is to use simple `.col-1`, `.col-1-2`, `.col-1-3`, `.col-1-4` for a side-by-side rendering.
The default value for all child elements of a `.grid` is equivalent to `.col-1`, so for only one child it will span the full width.

```jade
div.grid
	div.col-1-2 
		div.aigis-debug col-1-2
	div.col-1-2
		div.aigis-debug col-1-2
```
```jade
div.grid
	div.col-1-4 
		div.aigis-debug col-1-4
	div.col-3-4
		div.aigis-debug col-3-4
```

## Layouts on different devices

The breakpoints for different screen sizes are specified in the `@grid-break-points`, `@grid-break-labels` variables.
The default values define two breakpoints with labels: `.medium-X-X` and `.large-X-X`.
So an example grid with two breakpoints looks like this:

```jade
div.grid
	div.medium-1-2.large-1-4.xlarge-1-2
		div.aigis-debug col-1 medium-1-2 large-1-4
	div.medium-1-2.large-1-4.xlarge-1-2
		div.aigis-debug col-1 medium-1-2 large-1-4
	div.col-1-2.medium-1-2.large-1-4.xlarge-1-2
		div.aigis-debug col-1-2 medium-1-2 large-1-4
	div.col-1-2.medium-1-2.large-1-4.xlarge-1-2
		div.aigis-debug col-1-2 medium-1-2 large-1-4
```

**Note:** The `col-1` classes are not present on the first two nodes, since this is the default behaviour.


## Reverse order

To reverse the order in which the columns are displayed, you can add the modifier class `.-reverse` to your grid.
The columns will be in DOM order when viewport switches to small layout.

```jade
div.grid.-reverse
	div.col-1-4
		div.aigis-debug First column in DOM
	div.col-1-4
		div.aigis-debug Second column in DOM
	div.col-1-4
		div.aigis-debug Third column in DOM
	div.col-1-4
		div.aigis-debug Fourth column in DOM
```
## No gutter

If you dont need a spacing/gutter between the grid columns you can use the modifier `.-nogutter`.

```jade
div.grid.-nogutter
	div.col-1-4
		div.aigis-debug First column in DOM
	div.col-1-4
		div.aigis-debug Second column in DOM
	div.col-1-4
		div.aigis-debug Third column in DOM
	div.col-1-4
		div.aigis-debug Fourth column in DOM
```
*/
.grid {
  margin: 0 -0.9375rem;
  /**
	 * Generate all media breakpoints based on the @grid-break-points, @grid-break-labels variables.
	 */
}
.grid:after {
  content: "";
  display: table;
  clear: both;
}
.grid > * {
  float: left;
  position: relative;
  width: 100%;
  padding: 0 0.9375rem;
}
.grid.-reverse > * {
  float: right;
}
.grid.-nogutter {
  margin: 0;
}
.grid.-nogutter > * {
  padding: 0;
}
.grid .col-1 {
  width: 100%;
}
.grid .col-1-2 {
  width: 50%;
}
.grid .col-1-3 {
  width: 33.33333333%;
}
.grid .col-2-3 {
  width: 66.66666667%;
}
.grid .col-1-4 {
  width: 25%;
}
.grid .col-3-4 {
  width: 75%;
}
@media all and (min-width: 37.5rem) {
  .grid > .medium-1 {
    width: 100%;
  }
  .grid > .medium-1-2 {
    width: 50%;
  }
  .grid > .medium-1-3 {
    width: 33.33333333%;
  }
  .grid > .medium-2-3 {
    width: 66.66666667%;
  }
  .grid > .medium-1-4 {
    width: 25%;
  }
  .grid > .medium-3-4 {
    width: 75%;
  }
}
@media all and (min-width: 64rem) {
  .grid > .large-1 {
    width: 100%;
  }
  .grid > .large-1-2 {
    width: 50%;
  }
  .grid > .large-1-3 {
    width: 33.33333333%;
  }
  .grid > .large-2-3 {
    width: 66.66666667%;
  }
  .grid > .large-1-4 {
    width: 25%;
  }
  .grid > .large-3-4 {
    width: 75%;
  }
}
/*
---
name: img.responsive
category: Layout/Image
tag:
 - responsive
compile: true
---

This class makes the image scaling to its max width.

```jade
img.responsive(src='http://www.byui.edu/images/agriculture-life-sciences/flower.jpg')
```
*/
img.responsive {
  max-width: 100%;
  height: auto;
}
/*
---
name: .media-responsive
category: Layout/Media
tag:
 - responsive
compile: true
---

`.media-responsive` - This makes a the `.media-responsive` div a container for any media element (iframe, video, ... ) that responsive scales with a fix ratio.
The media element ( child ) needs the class `.stretch` to fully fill out the parents size.

The `.media-responsive` component has to predefined modifiers: `.-media-4-3`, `.-media-16-9` that define a fix ratio.

```jade
div.media-responsive.-media-16-9
	iframe.stretch(src="https://www.youtube.com/watch?v=TCd6PfxOy0Y")
```
*/
.media-responsive {
  width: 100%;
  position: relative;
  padding-bottom: 50%;
}
.media-responsive.-media-4-3 {
  padding-bottom: 75%;
}
.media-responsive.-media-16-9 {
  padding-bottom: 56.26%;
}
/*
---
name: .page-fluid
category: Page/Fluid
tag:
 - responsive
compile: true
---

`.page-fluid` centers the page content and adds a padding so the page sticks not to the browser viewport.
Furthermore it has a max-width based on the last `@grid-break-points` value.

```jade
div.page-fluid
	div.aigis-debug Some page content
```

## Max-width page

To broaden the width of the page you can add the modifier `.-unlimited`. Thsi will span the page to the full width.

```jade
div.page-fluid.-unlimited
	div.aigis-debug Some page content
```
*/
.page-fluid {
  max-width: 71.5rem;
  margin: auto;
  padding: 0 3.75rem;
}
.page-fluid.-unlimited {
  max-width: none;
}
/*
---
name: .row
category: Layout/Row
tag:
 - component
compile: true
---

This styling allow to place containers in a row. They will **not** break as the `.grid` but resize them accordingly.
Some benefits of the `.row` approach is the easy vertical centering and the usage of the `.col-auto` class.

## Basic row with vertical centering

You can use the sizing classes `.col-X-X` to define the width of a column as the following example shows. 

```jade
div.row
	div.col-1-4.aigis-debug col-1-4 with a lot of text that spans the column.
	div.col-3-4.aigis-debug col-3-4 content.
```

## Fixed row

There is a `.-fixed` modifier where each column has the same width.

```jade
div.row.-fixed
	div.aigis-debug evenly spreadout column
	div.aigis-debug evenly spreadout column with more content
	div.aigis-debug evenly spreadout column
	div.aigis-debug evenly spreadout column with much more content than the other
	div.aigis-debug.vcenter evenly spreadout column with .vcenter
```


## Auto sized column width and vcenter

There is a special `.col-auto` class that resizes the column to the size of its content.
This is usefull for example if you have a fixed size logo and the rest of the header has to resize.

```jade
div.row.-center
	div.col-auto.aigis-debug
		img(src="http://placehold.it/100x100")
	div.col-1.aigis-debug The rest
	div.col-auto.aigis-debug
		img(src="http://placehold.it/200x100")
```
*/
.row {
  display: table;
  width: 100%;
}
.row.-fixed {
  table-layout: fixed;
}
.row.-center > * {
  vertical-align: middle;
}
.row.-bottom > * {
  vertical-align: bottom;
}
.row.-padded > * + * {
  padding-left: 1.875rem;
}
.row > * {
  display: table-cell;
}
.row > *.col-1 {
  width: 100%;
}
.row > *.col-1-2,
.row > *.col-2-4 {
  width: 50%;
}
.row > *.col-1-3 {
  width: 33.33333333%;
}
.row > *.col-2-3 {
  width: 66.66666667%;
}
.row > *.col-1-4 {
  width: 25%;
}
.row > *.col-3-4 {
  width: 75%;
}
.row > *.col-auto {
  width: auto;
  white-space: nowrap;
}
/*
---
name: Colors
category: Shared/Variables
template: colors
tag:
 - variables
 - colors
colors:
 - variable: "@text-color"
   description: "The default text color on the body"
   value: "#3F3F40"
 - variable: "@text-inverted-color"
   description: "The default inverted text color on the body"
   value: "#FFF"
 - variable: "@action-color"
   description: "The main action color used for links and buttons"
   value: "#EC6449"
 - variable: "@body-color"
   description: "The main background color"
   value: "#FFF"
---

The color variables that are used throughout the library. 
*/
/*
---
name: Global settings
category: Shared/Variables
template: variables
tag:
 - variables
variables:
 - name: "@text-line-height"
   description: "The line height of the body"
   default: "1.5rem"
 - name: "@font-family"
   description: "The font-family of the body"
   default: "'Helvetica', sans-serif"
 - name: "@text-rendering"
   description: "The text-rendering of the body"
   default: "optimizeLegibility"
 - name: "@transition-duration"
   description: "The duration of the slide transitions"
   default: "0.4s"
---

These variables setups some global text formatting and styling.
*/
/*
---
name: Size settings
category: Shared/Variables
template: variables
tag:
 - variables
 - grid
variables:
 - name: "@grid-gutter"
   description: "The space between the grid children"
   default: "rem( 30px )"
 - name: "@grid-break-points"
   description: "The screensize when the grid should break."
   default: "rem(600px), rem(1024px)"
 - name: "@grid-break-labels"
   description: "The breakpoint label corresponding to the entie in the `@grid-break-points` list"
   default: "medium, large"
 - name: "@page-padding"
   description: "The padding for the .page-fluid component"
   default: "rem( 60px )"
---

These variables setups some global sizes mainly for the grid.
*/
.answer-view.-wrong {
  color: red;
}
.answer-view .label {
  margin-left: 0.9375rem;
  padding-left: 0.625rem;
  position: relative;
  display: block;
}
.answer-view .label > .input {
  top: 0.6875rem;
  position: absolute;
  left: -0.9375rem;
  margin: 0;
}
.audio-element > .audio {
  width: 100%;
}
.audio-element > .caption-element {
  text-align: center;
}
.box-chapter {
  margin-bottom: 90px;
}
.box-chapter .mandatory {
  min-height: 34px;
}
.box-chapter .image {
  padding-bottom: 13px;
  border-bottom: 3px solid #CB3FB2;
  max-height: 203px;
}
.box-chapter .title {
  margin: 14px 0;
  color: #000000;
  height: 80px;
  overflow: hidden;
}
.box-chapter .title:before {
  content: '\00ab';
}
.box-chapter .title:after {
  content: "\00bb";
}
.box-chapter .link-container:hover .image {
  opacity: 0.8;
}
.box-chapter .link-container:hover .title {
  color: #CB3FB2;
}
.box-chapter .class > svg,
.box-chapter .duration > svg,
.box-chapter .label > svg {
  margin-right: 9px;
  color: #CB3FB2;
}
.box-chapter .class,
.box-chapter .duration {
  display: inline-block;
  width: 50%;
}
.box-chapter .label {
  margin-top: 12px;
  margin-bottom: 32px;
}
.box-chapter .export > .button-export {
  margin-right: 10px;
}
.box-chapter .export > .button-export:last-child {
  margin-right: 0px;
}
@media only screen and (max-width: 1024px) {
  .box-chapter .image {
    max-height: 307px;
  }
}
@media only screen and (max-width: 600px) {
  .box-chapter {
    margin-bottom: 60px;
  }
  .box-chapter .image {
    max-height: 380px;
  }
  .box-chapter > .title {
    height: 60px;
  }
}
.button-export {
  height: 32px;
  width: 98px;
  color: #CB3FB2;
  display: inline-block;
  border-radius: 16px;
  border: 2px solid #CB3FB2;
  font-size: 0.875rem;
  text-align: center;
  line-height: 1.75rem;
  transition: all 0.1s;
}
.button-export:hover {
  border-color: #A52E90;
  background-color: #A52E90;
  color: #fff;
}
.button-export:active {
  border-color: #CB3FB2;
  background-color: #CB3FB2;
  color: #ffffff;
}
.button-filter {
  position: relative;
  color: #000;
  background-color: #F6F6F6;
  cursor: pointer;
  padding: 1rem;
  border-bottom: 1px solid #fff;
}
.button-filter:last-child {
  border: none;
}
.button-filter.-active {
  color: #CB3FB2;
}
.button-filter.-active > .icon-checked {
  display: inline-block;
  color: #CB3FB2;
  position: absolute;
  right: 1rem;
  top: 23px;
}
.button-filter:hover {
  color: #A52E90;
}
.button-filter.-hidden {
  display: none;
}
.button-filter > .icon-filter,
.button-filter > .icon-checked {
  display: none;
}
.button-filter.-toggle {
  color: #fff;
  background-color: #CB3FB2;
}
.button-filter.-toggle > .icon-checked {
  display: none;
}
.button-filter.-toggle > .icon-filter {
  display: inline-block;
  margin-right: 1rem;
}
/*
.button-filter {
    
    margin-bottom: 20px;
    padding: 10px;
    width: 132px;
    height: 44px;
    border-radius: 22px;
    background-color: @brand-color;
    box-shadow: 0 2px 6px 0 rgba(0,0,0,0.3);
    color: white;
    font-size: rem(16px);
    letter-spacing: rem(0.48px);
    text-align: center;
    cursor: pointer;
    overflow: hidden;
    white-space: nowrap;
    transition: all 0.2s;

    &:hover {
        background-color: @hover-color;
    }

    &.-active{
        background-color: @dark-hover-color;
        box-shadow: 0 6px 6px 0 rgba(0,0,0,0.3);
    }
    &.-hidden {
        display:none;
    }
}

*/
.button-teacher {
  cursor: pointer;
  font-size: 18px;
  text-transform: uppercase;
  width: 400px;
  text-align: right;
  display: block;
  font-weight: bold;
}
.button-teacher:hover {
  color: #A52E90;
}
.button-teacher .icon {
  color: #CB3FB2;
  height: 26px;
  width: 26px;
  vertical-align: text-top;
}
.button-teacher.-close {
  text-align: left;
  color: #000;
}
.button-teacher.-close .icon {
  -webkit-transform: rotate(-180deg);
          transform: rotate(-180deg);
}
.button-teacher.-close:hover {
  color: #A52E90;
}
.caption-element > p {
  color: #6a6a6a;
  font-size: 0.875rem;
  line-height: 1.3125rem;
  font-weight: 300;
}
.carousel-element {
  position: relative;
}
.carousel-element.-lightbox {
  position: fixed;
  background-color: rgba(0, 0, 0, 0.6);
  overflow-y: scroll;
  top: 0px;
  left: 0px;
  max-width: 100%;
  height: 100%;
  z-index: 20;
}
.carousel-element.-lightbox .close {
  display: block;
  position: fixed;
  height: 100%;
  right: 32px;
  top: 32px;
  width: 32px;
  height: 32px;
  z-index: 10;
  cursor: pointer;
}
.carousel-element.-lightbox .navi-left,
.carousel-element.-lightbox .navi-right {
  width: 48px;
  height: 48px;
}
.carousel-element.-lightbox .navi-right {
  right: 0px;
  -webkit-transform: rotate(180deg) translateY(0%);
          transform: rotate(180deg) translateY(0%);
}
.carousel-element.-lightbox .navi-left {
  left: 0px;
  -webkit-transform: translateY(0%);
          transform: translateY(0%);
}
.carousel-element.-lightbox .outer-stage {
  height: 100%;
  overflow-y: auto;
}
.carousel-element.-lightbox .outer-stage .inner-stage {
  height: 100%;
}
.carousel-element.-lightbox .outer-stage .inner-stage .lightbox {
  min-width: 100%;
  width: 100%;
  text-align: center;
}
.carousel-element.-lightbox .outer-stage .inner-stage .lightbox .container {
  width: 80%;
  margin: 0 auto;
  background-color: transparent;
}
.carousel-element.-lightbox .outer-stage .inner-stage .lightbox .container .inner .image-container {
  position: relative;
  height: 100%;
  max-height: 100vh;
  margin-top: 100px;
  display: inline-block;
}
.carousel-element.-lightbox .outer-stage .inner-stage .lightbox .container .inner .image {
  margin: 0 auto;
  display: block;
  height: auto;
  max-width: 100%;
  max-height: 100%;
}
.carousel-element.-lightbox .outer-stage .inner-stage .lightbox .open {
  display: none;
}
.carousel-element.-lightbox .outer-stage .inner-stage .lightbox .caption-element {
  display: none;
}
.carousel-element .close {
  display: none;
}
.carousel-element .navi-left,
.carousel-element .navi-right {
  position: absolute;
  top: 50%;
  cursor: pointer;
  z-index: 5;
  background-color: #CB3FB2;
  width: 44px;
  height: 44px;
}
.carousel-element .navi-left svg,
.carousel-element .navi-right svg {
  width: 44px;
  height: 44px;
}
.carousel-element .navi-left {
  left: 0px;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
.carousel-element .navi-right {
  right: 0px;
  -webkit-transform: rotate(180deg) translateY(50%);
          transform: rotate(180deg) translateY(50%);
}
.carousel-element .outer-stage {
  overflow: hidden;
}
.carousel-element .outer-stage .inner-stage {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: left;
      -ms-flex-pack: left;
          justify-content: left;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  transition: left 0.4s ease-out;
  left: 0px;
  position: relative;
}
.carousel-element .outer-stage .inner-stage .lightbox {
  height: 485px;
}
.carousel-element .outer-stage .inner-stage .lightbox .container {
  background-color: #6A6A6A;
  height: 450px;
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.carousel-element .outer-stage .inner-stage .lightbox .container .image {
  width: auto;
  max-height: 450px;
  margin: 0 auto;
  display: block;
}
.carousel-element .outer-stage .inner-stage .lightbox .caption-element {
  display: block;
  width: 100%;
  margin-top: 16px;
}
.chapter-cover {
  height: 450px;
  margin-bottom: 85px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.chapter-cover > .title {
  text-transform: uppercase;
  width: 940px;
  color: #ffffff;
  font-size: 4rem;
  font-weight: demi;
  line-height: 4.625rem;
  text-align: center;
  letter-spacing: 0.11875rem;
  text-shadow: 0.1px 0.1px 16px #6a6a6a73;
}
@media only screen and (max-width: 600px) {
  .chapter-cover {
    margin-bottom: 3.0625rem;
    height: 340px;
  }
  .chapter-cover > .title {
    font-size: 1.875rem;
    line-height: 2.5rem;
  }
}
.common-page {
  margin-top: 5.3125rem;
}
.common-page h1,
.common-page h2,
.common-page h3 {
  font-weight: bold;
  color: black;
  font-size: 3rem;
  line-height: 3.625rem;
  text-align: center;
  margin-bottom: 3.75rem;
}
.common-page > .paragraph-element {
  margin-bottom: 1.5625rem;
}
.common-page > .image-element {
  margin-bottom: 1.5625rem;
}
.common-page > .delimiter-line {
  margin: 3.125rem 0;
}
@media only screen and (max-width: 600px) {
  .common-page {
    margin-top: 0rem;
  }
  .common-page.-nocover {
    margin-top: 11.25rem;
  }
  .common-page h1,
  .common-page h2,
  .common-page h3 {
    font-size: 1.625rem;
    line-height: 2.125rem;
  }
  .common-page > .title-element {
    margin-bottom: 2.5rem;
  }
  .common-page > .paragraph-element {
    margin-bottom: 0.9375rem;
  }
  .common-page > .image-element {
    margin-bottom: 0.9375rem;
  }
  .common-page > .delimiter-line {
    margin: 1.875rem 0;
  }
}
.container-questions {
  margin-bottom: 5.625rem;
}
.container-questions .main-title {
  margin-bottom: 3.75rem;
  text-align: center;
  font-weight: bold;
  color: black;
}
.container-questions .number {
  margin-bottom: 2.875rem;
  color: #CB3FB2;
  width: 100%;
  text-align: center;
  border-bottom: 6px solid #CB3FB2;
  line-height: 0.05em;
  font-size: 3rem;
}
.container-questions .number span {
  padding: 0 20px;
  background-color: #fff;
  font-weight: bold;
}
@media only screen and (max-width: 600px) {
  .container-questions {
    margin-bottom: 2rem;
  }
  .container-questions > .number {
    margin-bottom: 1.25rem;
    font-size: 1.625rem;
  }
}
.container-teacher {
  border-bottom: 2px solid #CB3FB2;
}
.container-teacher.sidebar-login {
  border-bottom: 0px;
}
.container-teacher:last-child {
  border-bottom: none;
}
.container-teacher .module-title {
  padding-top: 20px;
  margin-bottom: 30px;
}
.container-teacher .title.title-download {
  border-bottom: 2px solid #CB3FB2;
  cursor: auto;
  margin: 0px;
  padding: 10px 0px;
}
.container-teacher .title {
  margin: 0px -18px 0px -27px;
  padding: 10px 0px 10px 27px;
  position: relative;
  cursor: pointer;
}
.container-teacher .title.-chapter.-current {
  border-left: 3px solid #CB3FB2;
  background-color: #E9E9E9;
}
.container-teacher .title.-chapter:hover {
  background-color: #E9E9E9;
}
.container-teacher .title.-background:hover {
  background-color: #E9E9E9;
}
.container-teacher .title .title-content {
  display: inline-block;
  margin-right: 34px;
}
.container-teacher .title .icon {
  color: #CB3FB2;
  position: absolute;
  top: 14px;
  right: 17px;
}
.container-teacher .content {
  padding-bottom: 30px;
}
.container-teacher .content .content-section {
  margin-bottom: 20px;
}
.container-teacher .content .content-section.-inline .section-title {
  display: inline;
  margin-right: 5px;
}
.container-teacher .content .content-section .section-title {
  font-size: 18px;
  font-weight: bold;
  line-height: 23px;
  margin-bottom: 5px;
}
.container-teacher .content .content-section p {
  margin-bottom: 10px;
}
.container-teacher .content .content-section ul,
.container-teacher .content .content-section ol {
  margin-left: 30px;
}
.container-teacher .content .content-section ul li,
.container-teacher .content .content-section ol li {
  margin-bottom: 10px;
}
.container-teacher .content.-close {
  display: none;
}
.container-teacher .export {
  margin-top: 32px;
}
.container-teacher .export > .button-export {
  margin-right: 29px;
}
.container-teacher .export .download {
  display: block;
  color: #000;
  margin: 11px 0px;
}
.container-teacher .export .download:hover {
  color: #CB3FB2;
  cursor: pointer;
}
.container-teacher .export p {
  font-size: 18px;
  font-weight: bold;
  line-height: 23px;
  margin-bottom: 35px;
}
@media only screen and (max-width: 600px) {
  .container-teacher .module-title {
    margin-bottom: 20px;
  }
  .container-teacher .export {
    margin-top: 20px;
  }
  .container-teacher .export p {
    margin-bottom: 20px;
  }
}
.delimiter-line {
  width: 100%;
  border-bottom: 6px solid #CB3FB2;
}
@media only screen and (max-width: 600px) {
  .delimiter-line {
    border-bottom: 4px solid #CB3FB2;
  }
}
.feedback-container {
  text-align: right;
  margin-bottom: 20px;
}
.feedback-container .button {
  padding: 0;
  cursor: pointer;
}
.feedback-container .button:focus {
  outline: none;
}
.feedback-panel {
  padding: .75rem 1.25rem;
  background-color: #b4b4b4;
  border-radius: 10px;
  border: 1px solid transparent;
  margin-bottom: 1.875rem;
}
.feedback-panel.-correct {
  color: #155724;
  background-color: #d4edda;
  border-color: #c3e6cb;
}
.feedback-panel.-wrong {
  color: #721c24;
  background-color: #f8d7da;
  border-color: #f5c6cb;
}
.filter-container {
  position: fixed;
  right: 40px;
  bottom: 0px;
  z-index: 10;
  box-shadow: 0.1px 0.1px 16px #6a6a6a54;
}
@media only screen and (max-width: 600px) {
  .filter-container {
    right: 16px;
  }
}
[class^="icon-"],
[class*=" icon-"] {
  height: 32px;
  width: 32px;
  display: inline-block;
  fill: currentColor;
  transition: -webkit-transform 0.5s;
  transition: transform 0.5s;
  transition: transform 0.5s, -webkit-transform 0.5s;
}
[class^="icon-"].-small,
[class*=" icon-"].-small {
  height: 20px;
  width: 20px;
}
[class^="icon-"].-sub,
[class*=" icon-"].-sub {
  vertical-align: sub;
}
[class^="icon-"].-inverted,
[class*=" icon-"].-inverted {
  -webkit-transform: rotate(-180deg);
          transform: rotate(-180deg);
}
[class^="icon-"].-brand,
[class*=" icon-"].-brand {
  color: #CB3FB2;
}
[class^="icon-"].-rspacer,
[class*=" icon-"].-rspacer {
  margin-right: 10px;
}
.iconcontainer.-inverted > [class^="icon-"],
.iconcontainer.-inverted > [class*=" icon-"] {
  -webkit-transform: rotate(-180deg);
          transform: rotate(-180deg);
}
.image-element.-small {
  max-width: 50%;
}
@media only screen and (max-width: 600px) {
  .image-element.-small {
    max-width: 100%;
  }
}
.lightbox {
  min-width: 100%;
}
.lightbox .container {
  position: relative;
  display: inline-block;
}
.lightbox .container .open {
  position: absolute;
  bottom: 8px;
  right: 0px;
  width: 32px;
  height: 32px;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}
.lightbox .open,
.lightbox .close {
  cursor: pointer;
}
.lightbox .open {
  display: block;
}
.lightbox .close {
  display: none;
}
.lightbox.-open {
  position: fixed;
  height: 100%;
  z-index: 100;
  top: 0px;
  left: 0px;
  background-color: rgba(0, 0, 0, 0.8);
  overflow-y: scroll;
}
.lightbox.-open .caption-element {
  display: none;
}
.lightbox.-open .container {
  text-align: center;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  width: 80%;
  max-height: 100%;
}
.lightbox.-open .container .inner {
  display: inline-block;
  position: relative;
  margin: 20px 0px;
}
.lightbox.-open .close {
  display: block;
  position: absolute;
  right: 16px;
  top: 16px;
  width: 32px;
  height: 32px;
}
.lightbox.-open .open {
  display: none;
}
.lightbox.-open .caption {
  text-align: center;
  margin-bottom: 16px;
}
.main-navigation {
  position: absolute;
  top: 0;
  z-index: 100;
  color: #CB3FB2;
  line-height: 21px;
}
.main-navigation .hamburger:hover {
  cursor: pointer;
}
.main-navigation ul {
  background-color: #fff;
  font-size: 1.125rem;
  line-height: 1.875rem;
  color: #000;
}
.main-navigation li {
  list-style-type: none;
  line-height: 1.875rem;
  cursor: pointer;
  display: block;
  padding: 8px 0 8px 20px;
}
.main-navigation li a {
  color: #000;
}
.main-navigation .level1 {
  width: 23.75rem;
  box-shadow: 1px 1px rgba(0, 0, 0, 0.25);
}
.main-navigation .level1:hover {
  color: #A52E90;
}
.main-navigation .level1 .book,
.main-navigation .level1 .impressum {
  padding-left: 20px;
}
.main-navigation .level1 .impressum:hover {
  color: #A52E90;
}
.main-navigation .level1 .icon {
  width: 36px;
  height: 18px;
  color: #CB3FB2;
  position: absolute;
  right: 20px;
}
.main-navigation .level1.-active .book:first-child {
  margin-left: -20px;
  padding: 6px 0 6px 37px;
  border-left: 3px solid #CB3FB2;
  color: #CB3FB2;
}
.main-navigation .level1.-active .icon {
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
}
.main-navigation .level1.-active .level2 {
  background-color: #f6f6f6;
  padding-left: 27px;
  margin-left: -20px;
}
.main-navigation .level1.-active .level2 li a {
  display: block;
}
.main-navigation .level1.-active .level2 li:hover a {
  color: #A52E90;
}
.main-navigation .level1:first-child:hover {
  color: #A52E90;
}
.main-navigation .-close {
  display: none;
}
@media only screen and (max-width: 600px) {
  .main-navigation .level1 {
    width: 21.25rem;
  }
}
.module-label {
  color: #6a6a6a;
  margin-bottom: 10px;
  font-size: 16px;
}
.module-label.-half {
  width: 50%;
  display: inline-block;
}
.module-label .icon {
  color: #CB3FB2;
  margin-right: 9px;
}
.page-fluid {
  padding: 0 1rem;
  max-width: 40.125rem;
}
@media only screen and (max-width: 600px) {
  .content  .page-fluid {
    padding: 0 0;
  }
}
.page-footer {
  width: 100%;
  background-color: #CB3FB2;
  margin-top: 200px;
  height: 80px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.page-footer .text {
  color: #fff;
  margin-left: 32px;
}
.page-footer .text .impressum {
  color: #fff;
}
@media only screen and (max-width: 600px) {
  .page-footer {
    margin-top: 160px;
  }
}
.page-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 10;
  background-color: #fff;
}
.page-header .border-bottom {
  padding-bottom: 11px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.25);
  margin-left: 16px;
  margin-right: 16px;
}
.page-header .logo-section {
  width: 100%;
  height: 80px;
  background-color: #CB3FB2;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-bottom: 16px;
  line-height: 0px;
}
.page-header .logo-section .title {
  font-size: 2.0625rem;
  line-height: 3.125rem;
  letter-spacing: 0.053125rem;
  font-weight: bold;
  color: #fff;
}
.page-header .logo-section .logo {
  width: 96px;
  height: 25px;
  margin-left: 11px;
  margin-right: 50px;
  margin-top: 24px;
  margin-bottom: 24px;
  visibility: visible;
  opacity: 1;
}
.page-header .main-navigation {
  display: inline-block;
}
.page-header .button-login {
  display: inline-block;
  margin-left: 52px;
  vertical-align: text-top;
}
.page-header .button-login a {
  font-size: 1.125rem;
  line-height: 1.625rem;
  color: #000000;
  text-transform: uppercase;
  font-weight: bold;
}
.page-header .button-login a .navi-text {
  vertical-align: text-bottom;
}
.page-header .button-login a svg {
  vertical-align: text-top;
  color: #CB3FB2;
}
.page-header .button-login:hover a {
  color: #A52E90;
}
.page-header .button-login:active a {
  color: #A52E90;
}
.page-header .sidebar-teacher {
  right: 0;
}
.page-header .site-title {
  display: none;
}
.page-header .home-button {
  display: none;
}
.page-header.-collabse {
  padding-top: 0px;
}
.page-header.-collabse .logo-section {
  visibility: hidden;
  height: 0px;
  transition: height 0.5s;
}
.page-header.-collabse .title {
  display: none;
}
.page-header.-collabse .site-title {
  position: relative;
  left: 75px;
  width: 100%;
  white-space: nowrap;
  display: table-cell;
  font-size: 18px;
  vertical-align: middle;
}
.page-header.-collabse .home-button {
  display: table-cell;
  padding-left: 50px;
}
.page-header.-collabse .home-button .icon {
  display: inline-block;
  height: 26px;
  width: 26px;
  vertical-align: top;
}
@media only screen and (max-width: 1024px) {
  .page-header.-collabse .site-title {
    display: none;
  }
}
@media only screen and (max-width: 600px) {
  .page-header.-collabse .site-title {
    display: none;
  }
  .page-header .logo-section {
    display: block;
  }
  .page-header .logo-section .logo {
    margin-top: 14px;
    margin-bottom: 9px;
    margin-left: 8px;
  }
  .page-header .logo-section .title {
    font-size: 18px;
    line-height: 1.8125rem;
    font-weight: bold;
    margin-left: 16px;
  }
  .page-header .button-login .navi-text {
    display: none;
  }
  .page-header .button-teacher {
    width: 30px;
  }
  .page-header .button-teacher .navi-text {
    display: none;
  }
}
.page-layout {
  max-width: 100%;
  margin: auto;
}
.page-layout > .content {
  padding-top: 162px;
}
.page-layout > .content.-sidebar {
  padding-right: 400px;
}
@media only screen and (max-width: 600px) {
  .page-layout > .content {
    padding-top: 0;
    margin-top: 152px;
  }
  .page-layout > .content.-sidebar {
    padding-right: 0px;
    padding-top: 0px;
  }
}
.page-overview {
  max-width: 58.75rem;
}
.page-overview .introduction {
  margin-bottom: 5rem;
  color: #000000;
  font-size: 2.375rem;
  font-weight: 500;
  line-height: 50px;
}
@media only screen and (max-width: 600px) {
  .page-overview > .introduction {
    font-size: 1.625rem;
    line-height: 2.125rem;
  }
}
.paragraph-element {
  color: #000000;
}
.paragraph-element.-introduction {
  font-size: 1.625rem;
  line-height: 2.375rem;
  font-weight: 500;
}
.paragraph-element.-default {
  font-size: 1.375rem;
  line-height: 2.1875rem;
  font-weight: 300;
}
.paragraph-element strong,
.paragraph-element b {
  font-weight: bold;
}
.paragraph-element ul,
.paragraph-element ol {
  margin-left: 60px;
  margin-bottom: 30px;
}
.paragraph-element ul li {
  margin-bottom: 10px;
}
.paragraph-element .abbreviation {
  position: relative;
  text-decoration: none;
  border-bottom: 3px dotted black;
  line-height: 20px;
  cursor: help;
}
.paragraph-element .abbreviation .tooltip {
  display: none;
}
.paragraph-element .abbreviation.-right .tooltip {
  left: 0px;
}
.paragraph-element .abbreviation.-left .tooltip {
  right: 0px;
}
.paragraph-element .abbreviation.-top .tooltip {
  bottom: 30px;
}
.paragraph-element .abbreviation.-bottom .tooltip {
  top: 30px;
}
.paragraph-element .abbreviation.-big.-open .tooltip,
.paragraph-element .abbreviation.-big:hover .tooltip {
  width: auto;
  width: 50vw;
  white-space: normal;
}
.paragraph-element .abbreviation.-sidebar.-open .tooltip,
.paragraph-element .abbreviation.-sidebar:hover .tooltip {
  width: auto;
  width: 200px;
  white-space: normal;
}
.paragraph-element .abbreviation.-open .tooltip,
.paragraph-element .abbreviation:hover .tooltip {
  display: block;
  position: absolute;
  z-index: 10;
  white-space: nowrap;
  background-color: #1e1e1e;
  color: #fff;
  border-radius: 3px;
  box-shadow: 1px 1px 5px 0 rgba(0, 0, 0, 0.4);
  font-size: 14px;
  padding: 3px 5px;
}
@media only screen and (max-width: 600px) {
  .paragraph-element.-introduction {
    font-size: 1.375rem;
    line-height: 2rem;
  }
  .paragraph-element.-default {
    font-size: 1.125rem;
    line-height: 1.75rem;
  }
  .paragraph-element ul,
  .paragraph-element ol {
    margin-bottom: 15px;
  }
}
.question-item {
  margin-bottom: 3.75rem;
}
.question-item > .icon {
  display: inline-block;
  color: #CB3FB2;
  height: 30px;
  width: 30px;
  vertical-align: text-bottom;
  margin-right: 5px;
}
.question-item .title {
  color: #CB3FB2;
  text-transform: uppercase;
  margin-bottom: 0.9375rem;
  font-size: 1.625rem;
  font-weight: bold;
  display: inline-block;
}
.question-item .paragraph-element,
.question-item .image-element,
.question-item ul,
.question-item ol,
.question-item .iframe-element,
.question-item .video-element,
.question-item .audio-element,
.question-item .corousel-element {
  margin-bottom: 30px;
}
.question-item .paragraph-element.-nomargin,
.question-item .image-element.-nomargin,
.question-item ul.-nomargin,
.question-item ol.-nomargin,
.question-item .iframe-element.-nomargin,
.question-item .video-element.-nomargin,
.question-item .audio-element.-nomargin,
.question-item .corousel-element.-nomargin {
  margin-bottom: 0;
}
.question-item ul,
.question-item ol {
  margin-left: 60px;
}
.question-item ul li,
.question-item ol li {
  margin-bottom: 10px;
}
@media only screen and (max-width: 600px) {
  .question-item .title {
    font-size: 1.375rem;
    line-height: 2rem;
    font-weight: demi;
  }
  .question-item .paragraph-element,
  .question-item .image-element,
  .question-item ul,
  .question-item ol,
  .question-item .iframe-element,
  .question-item .video-element,
  .question-item .audio-element,
  .question-item .carousel-element {
    margin-bottom: 15px;
  }
}
.question-text > .dropdown.-wrong {
  background-color: #f8d7da;
}
.question-text > .dropdown.-correct {
  background-color: #d4edda;
}
.sidebar-login {
  background-color: #CB3FB2;
  margin-left: -27px;
  margin-right: -18px;
  padding-left: 27px;
  padding-right: 18px;
}
.sidebar-login a {
  color: #fff;
  padding: 10px 0;
  display: inline-block;
}
.sidebar-login .icon {
  width: 22px;
  height: 22px;
  margin-right: 16px;
  vertical-align: sub;
}
.sidebar-login .icon.icon-arrow-down {
  color: inherit;
  -webkit-transform: rotate(-90deg);
          transform: rotate(-90deg);
  position: relative;
  top: 0;
  right: -40px;
}
.sidebar-login .title {
  display: inline-block;
}
.sidebar-login:hover {
  background-color: #A52E90;
  cursor: pointer;
}
@media only screen and (max-width: 600px) {
  .sidebar-login .icon.icon-arrow-down {
    right: -20px;
  }
}
.sidebar-teacher {
  font-size: 18px;
  background-color: #F6F6F6;
  box-shadow: -1px 1px 0 0 rgba(0, 0, 0, 0.25);
  padding-left: 27px;
  padding-right: 34px;
  width: 416px;
  position: fixed;
  right: 0px;
  top: 133px;
  bottom: 0px;
  display: block;
  overflow-y: auto;
  z-index: 10;
}
.sidebar-teacher.-teacher .container-teacher.sort-0 .title {
  border-top: 5px solid #CB3FB2;
}
.sidebar-teacher .label {
  font-size: 14px;
  display: inline-block;
}
.sidebar-teacher .meta-space {
  margin-bottom: 64px;
}
.sidebar-teacher.-close {
  display: none;
}
.sidebar-teacher.-collabse {
  top: 55px;
  transition-timing-function: linear;
  transition: top 0.5s;
}
@media only screen and (max-width: 600px) {
  .sidebar-teacher {
    top: 133px;
    padding-right: 20px;
    width: 343px;
  }
}
h1 {
  font-size: 4rem;
  letter-spacing: 0.11875rem;
  line-height: 4.375rem;
  font-weight: normal;
}
h2 {
  font-size: 3rem;
  line-height: 3.625rem;
  font-weight: normal;
}
h3 {
  line-height: 1.6875rem;
  font-size: 1.25rem;
  font-weight: bold;
}
@media only screen and (max-width: 600px) {
  h2 {
    font-size: 1.625rem;
    line-height: 2.125rem;
  }
  h3 {
    line-height: 1.5625rem;
    font-size: 1.125rem;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImhlaW1hdGt1bmRlLmNzcyIsImxpYi9sZXNzL3NoYXJlZC9oZWxwZXJzLmxlc3MiLCJsaWIvbGVzcy9zaGFyZWQvcmVzZXQubGVzcyIsImxpYi9sZXNzL2NvbXBvbmVudHMvY29yZS9idXR0b24ubGVzcyIsImxpYi9sZXNzL2NvbXBvbmVudHMvY29yZS9yZXNwb25zaXZlL2dyaWQubGVzcyIsImxpYi9sZXNzL2NvbXBvbmVudHMvY29yZS9yZXNwb25zaXZlL2ltYWdlLmxlc3MiLCJsaWIvbGVzcy9jb21wb25lbnRzL2NvcmUvcmVzcG9uc2l2ZS9tZWRpYS5sZXNzIiwibGliL2xlc3MvY29tcG9uZW50cy9jb3JlL3Jlc3BvbnNpdmUvcGFnZS5sZXNzIiwibGliL2xlc3MvY29tcG9uZW50cy9jb3JlL3Jvdy5sZXNzIiwiY29tcG9uZW50cy9hbnN3ZXItdmlldy5sZXNzIiwiY29tcG9uZW50cy9hdWRpby1lbGVtZW50Lmxlc3MiLCJjb21wb25lbnRzL2JveC1jaGFwdGVyLmxlc3MiLCJjb21wb25lbnRzL2J1dHRvbi1leHBvcnQubGVzcyIsImNvbXBvbmVudHMvYnV0dG9uLWZpbHRlci5sZXNzIiwiY29tcG9uZW50cy9idXR0b24tdGVhY2hlci5sZXNzIiwiY29tcG9uZW50cy9jYXB0aW9uLWVsZW1lbnQubGVzcyIsImNvbXBvbmVudHMvY2Fyb3VzZWwtZWxlbWVudC5sZXNzIiwiY29tcG9uZW50cy9jaGFwdGVyLWNvdmVyLmxlc3MiLCJjb21wb25lbnRzL2NvbW1vbi1wYWdlLmxlc3MiLCJjb21wb25lbnRzL2NvbnRhaW5lci1xdWVzdGlvbnMubGVzcyIsImNvbXBvbmVudHMvY29udGFpbmVyLXRlYWNoZXIubGVzcyIsImNvbXBvbmVudHMvZGVsaW1pdGVyLWxpbmUubGVzcyIsImNvbXBvbmVudHMvZmVlZGJhY2stY29udGFpbmVyLmxlc3MiLCJjb21wb25lbnRzL2ZlZWRiYWNrLXBhbmVsLmxlc3MiLCJjb21wb25lbnRzL2ZpbHRlci1jb250YWluZXIubGVzcyIsImNvbXBvbmVudHMvZm9udGFzdGljLWljb25zLmxlc3MiLCJjb21wb25lbnRzL2ltYWdlLWVsZW1lbnQubGVzcyIsImNvbXBvbmVudHMvbGlnaHRib3gubGVzcyIsImNvbXBvbmVudHMvbWFpbi1uYXZpZ2F0aW9uLmxlc3MiLCJjb21wb25lbnRzL21vZHVsZS1sYWJlbC5sZXNzIiwiY29tcG9uZW50cy9wYWdlLWZsdWlkLmxlc3MiLCJjb21wb25lbnRzL3BhZ2UtZm9vdGVyLmxlc3MiLCJjb21wb25lbnRzL3BhZ2UtaGVhZGVyLmxlc3MiLCJjb21wb25lbnRzL3BhZ2UtbGF5b3V0Lmxlc3MiLCJjb21wb25lbnRzL3BhZ2Utb3ZlcnZpZXcubGVzcyIsImNvbXBvbmVudHMvcGFyYWdyYXBoLWVsZW1lbnQubGVzcyIsImNvbXBvbmVudHMvcXVlc3Rpb24taXRlbS5sZXNzIiwiY29tcG9uZW50cy9xdWVzdGlvbi10ZXh0Lmxlc3MiLCJjb21wb25lbnRzL3NpZGViYXItbG9naW4ubGVzcyIsImNvbXBvbmVudHMvc2lkZWJhci10ZWFjaGVyLmxlc3MiLCJjb21wb25lbnRzL3RleHQubGVzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0VBZUU7QUNDRjtFQUNDLG1CQUFBO0VBQ0EsT0FBQTtFQUNBLFFBQUE7RUFDQSxZQUFBO0VBQ0EsYUFBQTtDRENBO0FBQ0Q7Ozs7Ozs7OztFQVNFO0FDR0Y7RUFDQyxtQkFBQTtDRERBO0FBQ0Q7Ozs7Ozs7OztFQVNFO0FDS0Y7RUFDQyxtQkFBQTtDREhBO0FBQ0Q7Ozs7Ozs7OztFQVNFO0FDT0Y7RUFDQyx1QkFBQTtDRExBO0FBQ0Q7Ozs7Ozs7OztFQVNFO0FDU0Y7RUFDQyxtQkFBQTtDRFBBO0FBQ0Q7Ozs7Ozs7OztFQVNFO0FDV0Y7RUFDQyxZQUFBO0NEVEE7QUFDRDs7Ozs7Ozs7O0VBU0U7QUNZRjtFQUNDLGFBQUE7Q0RWQTtBQUNEOzs7Ozs7Ozs7RUFTRTtBQ2FGO0VBQ0MsY0FBQTtDRFhBO0FBQ0Q7Ozs7Ozs7Ozs7Ozs7Ozs7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b0JBLDBCQUFBO0VBQ0EsNkNBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0VBRUEsYUFBQTtFQUVBLGdCQUFBO0VBQ0EsV0FBQTtFQUVBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsZUFBQTtFQUNBLGlCQUFBO0VBQ0EsWUFBQTtDdkNzZ0VIO0F1Q3RpRUc7RUFHWSw4QkFBQTtDdkNzaUVmO0F1QzdpRUQ7RUFhUSxnQkFBQTtFQUNBLHNCQUFBO0N2Q21pRVA7QXVDampFRDtFQWtCUSxvQkFBQTtDdkNraUVQO0F1QzlnRUc7RUFDSSxjQUFBO0N2Q2doRVA7QXVDN2dFRztFQUNJLFVBQUE7RUFDQSxtQ0FBQTtFQUNBLHFCQUFBO0N2QytnRVA7QXVDMWdFRDtFQUNJO0lBQ0ksV0FBQTtJQUdBLG9CQUFBO0lBQ0EsYUFBQTtHdkMwZ0VMO0NBQ0Y7QXdDbmtFRDtFQUNJLGdCQUFBO0VBQ0EsMkJBQUE7RUFDQSxzQkFBQTtFQUNBLG9CQUFBO0N4Q3FrRUg7QXdDbGtFRDtFQUNJLGdCQUFBO0VBQ0Esc0JBQUE7RUFDQSxvQkFBQTtDeENva0VIO0F3Q2prRUQ7RUFDSSx1QkFBQTtFQUNBLG1CQUFBO0VBQ0Esa0JBQUE7Q3hDbWtFSDtBd0MvakVEO0VBRUk7SUFDSSxvQkFBQTtJQUNBLHNCQUFBO0d4Q2drRUw7RXdDNWpFQztJQUNJLHVCQUFBO0lBQ0Esb0JBQUE7R3hDOGpFTDtDQUNGIiwiZmlsZSI6ImhlaW1hdGt1bmRlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4tLS1cbm5hbWU6IC5zdHJldGNoXG5jYXRlZ29yeTogU2hhcmVkL0hlbHBlcnNcbnRhZzpcbiAtIGhlbHBlcnNcbi0tLVxuXG5gLnN0cmV0Y2hgIERlZmluZSBhbiBlbGVtZW50IHdoaWNoIHN0cmV0Y2hlcyB0byB0aGUgc2l6ZSBvZiBpdHMgcGFyZW50XG5cbmBgYGh0bWxcbjxkaXYgY2xhc3M9XCJyZWxcIiBzdHlsZT1cImhlaWdodDogNTVweDtcIj5cbiAgIDxkaXYgY2xhc3M9XCJzdHJldGNoIHN0eWxlZ3VpZGUtZ3JpZC11bml0XCI+IEknbSBzdHJldGNoZWQgdG8gdGhlIHNpemUgb2YgbXkgcGFyZW50PC9kaXY+XG48L2Rpdj5cbmBgYFxuKi9cbi5zdHJldGNoIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4vKlxuLS0tXG5uYW1lOiAuYWJzXG5jYXRlZ29yeTogU2hhcmVkL0hlbHBlcnNcbnRhZzpcbiAtIGhlbHBlcnNcbi0tLVxuXG5gLmFic2AgU2V0IHRoZSBlbGVtZW50IHBvc2l0aW9uIHRvIGFic29sdXRlXG4qL1xuLmFicyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi8qXG4tLS1cbm5hbWU6IC5yZWxcbmNhdGVnb3J5OiBTaGFyZWQvSGVscGVyc1xudGFnOlxuIC0gaGVscGVyc1xuLS0tXG5cbmAucmVsYCBTZXQgdGhlIGVsZW1lbnQgcG9zaXRpb24gdG8gcmVsYXRpdmVcbiovXG4ucmVsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLypcbi0tLVxubmFtZTogLnZjZW50ZXJcbmNhdGVnb3J5OiBTaGFyZWQvSGVscGVyc1xudGFnOlxuIC0gaGVscGVyc1xuLS0tXG5cbmAudmNlbnRlcmAgU2V0cyB2ZXJ0aWNhbC1hbGlnbiB0byBtaWRkbGVcbiovXG4udmNlbnRlciB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4vKlxuLS0tXG5uYW1lOiAuaGNlbnRlclxuY2F0ZWdvcnk6IFNoYXJlZC9IZWxwZXJzXG50YWc6XG4gLSBoZWxwZXJzXG4tLS1cblxuYC5oY2VudGVyYCBTZXRzIHRleHQtYWxpZ24gdG8gY2VudGVyXG4qL1xuLmhjZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4vKlxuLS0tXG5uYW1lOiAuZmxvYXRsZWZ0XG5jYXRlZ29yeTogU2hhcmVkL0hlbHBlcnNcbnRhZzpcbiAtIGhlbHBlcnNcbi0tLVxuXG5gLmZsb2F0bGVmdGAgU2V0cyBmbG9hdCB0byBsZWZ0XG4qL1xuLmZsb2F0bGVmdCB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuLypcbi0tLVxubmFtZTogLmZsb2F0cmlnaHRcbmNhdGVnb3J5OiBTaGFyZWQvSGVscGVyc1xudGFnOlxuIC0gaGVscGVyc1xuLS0tXG5cbmAuZmxvYXRyaWdodGAgU2V0cyBmbG9hdCB0byByaWdodFxuKi9cbi5mbG9hdHJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuLypcbi0tLVxubmFtZTogLmhpZGRlblxuY2F0ZWdvcnk6IFNoYXJlZC9IZWxwZXJzXG50YWc6XG4gLSBoZWxwZXJzXG4tLS1cblxuYC5oaWRkZW5gIFNldHMgZGlzcGxheSB0byBub25lLlxuKi9cbi5oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lO1xufVxuLypcbi0tLVxubmFtZTogcmVtKCBwaXhlbHMgKVxuY2F0ZWdvcnk6IFNoYXJlZC9NaXhpbnNcbnRlbXBsYXRlOiBtaXhpblxudGFnOlxuIC0gbWl4aW5cbnBhcmFtZXRlcnM6XG4gLSBuYW1lOiBwaXhlbHNcbiAgIGRlc2NyaXB0aW9uOiBUaGUgcGl4ZWwgdmFsdWUgdG8gY29udmVydCBpbnRvIHJlbSBiYXNlZCBvbiB0aGUgMTZweCByb290IGZvbnQtc2l6ZVxuICAgb3B0aW9uYWw6IGZhbHNlXG4tLS1cblxuVGhpcyBsZXNzIGZ1bmN0aW9uIHR1cm5zIGEgcGl4ZWwgdmFsdWUgaW50byBhIHJlbSB2YWx1ZSBiYXNlZCBvbiB0aGUgcm9vdCBmb250LXNpemUgc2V0IHRvIDE2cHguXG5cbkFuIGV4YW1wbGUgdXNhZ2UgbG9va3MgbGlrZSB0aGlzOlxuXG5gYGBsZXNzXG4uZXhhbXBsZSB7XG5cdHBhZGRpbmc6IHJlbSggMTVweCApIHJlbSggMTJweCApXG59XG5gYGBcbiovXG4vKlxuLS0tXG5uYW1lOiAuZm9yKCBAYXJyYXksIEBjb2RlIClcbmNhdGVnb3J5OiBTaGFyZWQvTWl4aW5zXG50ZW1wbGF0ZTogbWl4aW5cbnRhZzpcbiAtIG1peGluXG5wYXJhbWV0ZXJzOlxuIC0gbmFtZTogYXJyYXlcbiAgIGRlc2NyaXB0aW9uOiBUaGUgYXJyYXkgb2YgdmFsdWVzIHRvIGxvb3Agb3ZlclxuICAgb3B0aW9uYWw6IGZhbHNlXG4gLSBuYW1lOiBjb2RlXG4gICBkZXNjcmlwdGlvbjogVGhlIGNvZGUgdGhhdCBpcyBleGVjdXRlZCBvbiBldmVyeSB2YWx1ZS4gWW91IGNhbiBhY2Nlc3MgdGhlIGluZGV4IHdpdGggYEBpYCBhbmQgdGhlIHZhbHVlIHdpdGggYEB2YWx1ZWBcbiAgIG9wdGlvbmFsOiBmYWxzZVxuLS0tXG5cblRoaXMgbWl4aW4gYWxsb3dzIHRvIGV4ZWN1dGUgY29kZSBvdmVyIGFuIGFycmF5XG5cbkFuIGV4YW1wbGUgdXNhZ2UgbG9va3MgbGlrZSB0aGlzOlxuYGBgbGVzc1xuQGNvbG9yczogIzFhYmM5YywgIzJlY2M3MSwgIzM0OThkYiwgIzliNTliNjtcblxuLmZvcihAY29sb3JzLCB7XG4gICAgLmNvbG9yLUB7aX0ge1xuICAgICAgICBjb2xvcjogQHZhbHVlO1xuICAgIH1cbn0pO1xuYGBgXG5cblRoaXMgZ2VuZXJhdGVzOlxuYGBgY3NzXG4uY29sb3ItMSB7XG4gIGNvbG9yOiAjMWFiYzljO1xufVxuLmNvbG9yLTIge1xuICBjb2xvcjogIzJlY2M3MTtcbn1cbi5jb2xvci0zIHtcbiAgY29sb3I6ICMzNDk4ZGI7XG59XG4uY29sb3ItNCB7XG4gIGNvbG9yOiAjOWI1OWI2O1xufVxuYGBgXG4qL1xuLypcbi0tLVxubmFtZTogR2xvYmFsIFJlc2V0XG5jYXRlZ29yeTogU2hhcmVkXG4tLS1cblxuVGhlIGxlcm5ldHogY3NzIGxpYnJhcnkgaGFzIGEgc2V0IG9mIHJlc2V0IHN0eWxlIHRvIGhhdmUgdGhlIHNhbWUgYmVoYXZpb3VyIG9uIGV2ZXJ5IGJyb3dzZXIuXG5GdXJ0aGVybW9yZSB0aGlzIHJlc2V0IHNldHMgc29tZSBnbG9iYWwgdmFyaWFibGVzIGxpa2U6XG4gKiBib2R5IGZvbnQtZmFtaWxpZXNcbiAqIGJvZHkgbGluZS1oZWlnaHRcbiAqIGJvZHkgdGV4dC1yZW5kZXJpbmdcbiAqIDpyb290IGZvbnQtc2l6ZSBmb3IgcHJvcGVyIHJlbSBjb252ZXJzaW9uXG4qL1xuaHRtbCxcbmJvZHksXG5kaXYsXG5zcGFuLFxub2JqZWN0LFxuaWZyYW1lLFxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2LFxucCxcbmJsb2NrcXVvdGUsXG5wcmUsXG5hYmJyLFxuYWRkcmVzcyxcbmNpdGUsXG5jb2RlLFxuZGVsLFxuZGZuLFxuZW0sXG5pbWcsXG5pbnMsXG5rYmQsXG5xLFxuc2FtcCxcbnNtYWxsLFxuc3Ryb25nLFxuc3ViLFxuc3VwLFxudmFyLFxuYixcbmksXG5kbCxcbmR0LFxuZGQsXG5vbCxcbnVsLFxubGksXG5maWVsZHNldCxcbmZvcm0sXG5sYWJlbCxcbmxlZ2VuZCxcbnRhYmxlLFxuY2FwdGlvbixcbnRib2R5LFxudGZvb3QsXG50aGVhZCxcbnRyLFxudGgsXG50ZCxcbmFydGljbGUsXG5hc2lkZSxcbmNhbnZhcyxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxuaGdyb3VwLFxubWVudSxcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5LFxudGltZSxcbm1hcmssXG5hdWRpbyxcbnZpZGVvIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG4gIG91dGxpbmU6IDA7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuOnJvb3Qge1xuICBmb250LXNpemU6IDE2cHg7XG59XG5odG1sIHtcbiAgZm9udC1zaXplOiAxMDAlO1xufVxuYm9keSB7XG4gIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBmb250LWZhbWlseTogJ0hlbHZldGljYScsIHNhbnMtc2VyaWY7XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkY7XG59XG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbmhncm91cCxcbm1lbnUsXG5uYXYsXG5zZWN0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5zZWxlY3Qge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxudGV4dGFyZWEge1xuICB3aWR0aDogMTAwJTtcbn1cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgZm9udDogaW5oZXJpdDtcbiAgbWFyZ2luOiAwO1xufVxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG59XG4vKlxuICogTm9ybWFsaXplIHRoZSBiZWhhdmlvdXIgb2YgYWxsIGJyb3dzZXJzXG4gKlxuICogSW5zdGVhZCBvZiBzZXR0aW5nIGJveC1zaXppbmcgZml4IG9uIGFsbCBlbGVtZW50cyB3ZSBvbmx5IHNldCBpdCBvbiB0aGUgcm9vdCBlbGVtZW50XG4gKiBhbmQgdGVsbCBhbGwgZWxlbWVudHMgdG8gaW5oZXJpdCBpdCdzIHByb3BlcnR5IGZyb20gdGhlIHBhcmVudFxuICogVGhhdCB3YXkgaXQncyBwb3NzaWJsZSB0byBvdmVyd3JpdGUgdGhlIGJveC1zaXppbmcgYW55d2hlcmUgd2hpbGUga2VlcGluZyBwcm9wZXIgaW5oZXJpdGFuY2VcbiAqL1xuaHRtbCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4qLFxuKjpiZWZvcmUsXG4qOmFmdGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDtcbn1cbmEge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiAjQ0IzRkIyO1xufVxuYSA+IGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLypcbi0tLVxubmFtZTogQ29sb3JzXG5jYXRlZ29yeTogU2hhcmVkL1ZhcmlhYmxlc1xudGVtcGxhdGU6IGNvbG9yc1xudGFnOlxuIC0gdmFyaWFibGVzXG4gLSBjb2xvcnNcbmNvbG9yczpcbiAtIHZhcmlhYmxlOiBcIkB0ZXh0LWNvbG9yXCJcbiAgIGRlc2NyaXB0aW9uOiBcIlRoZSBkZWZhdWx0IHRleHQgY29sb3Igb24gdGhlIGJvZHlcIlxuICAgdmFsdWU6IFwiIzNGM0Y0MFwiXG4gLSB2YXJpYWJsZTogXCJAdGV4dC1pbnZlcnRlZC1jb2xvclwiXG4gICBkZXNjcmlwdGlvbjogXCJUaGUgZGVmYXVsdCBpbnZlcnRlZCB0ZXh0IGNvbG9yIG9uIHRoZSBib2R5XCJcbiAgIHZhbHVlOiBcIiNGRkZcIlxuIC0gdmFyaWFibGU6IFwiQGFjdGlvbi1jb2xvclwiXG4gICBkZXNjcmlwdGlvbjogXCJUaGUgbWFpbiBhY3Rpb24gY29sb3IgdXNlZCBmb3IgbGlua3MgYW5kIGJ1dHRvbnNcIlxuICAgdmFsdWU6IFwiI0VDNjQ0OVwiXG4gLSB2YXJpYWJsZTogXCJAYm9keS1jb2xvclwiXG4gICBkZXNjcmlwdGlvbjogXCJUaGUgbWFpbiBiYWNrZ3JvdW5kIGNvbG9yXCJcbiAgIHZhbHVlOiBcIiNGRkZcIlxuLS0tXG5cblRoZSBjb2xvciB2YXJpYWJsZXMgdGhhdCBhcmUgdXNlZCB0aHJvdWdob3V0IHRoZSBsaWJyYXJ5LiBcbiovXG4vKlxuLS0tXG5uYW1lOiBHbG9iYWwgc2V0dGluZ3NcbmNhdGVnb3J5OiBTaGFyZWQvVmFyaWFibGVzXG50ZW1wbGF0ZTogdmFyaWFibGVzXG50YWc6XG4gLSB2YXJpYWJsZXNcbnZhcmlhYmxlczpcbiAtIG5hbWU6IFwiQHRleHQtbGluZS1oZWlnaHRcIlxuICAgZGVzY3JpcHRpb246IFwiVGhlIGxpbmUgaGVpZ2h0IG9mIHRoZSBib2R5XCJcbiAgIGRlZmF1bHQ6IFwiMS41cmVtXCJcbiAtIG5hbWU6IFwiQGZvbnQtZmFtaWx5XCJcbiAgIGRlc2NyaXB0aW9uOiBcIlRoZSBmb250LWZhbWlseSBvZiB0aGUgYm9keVwiXG4gICBkZWZhdWx0OiBcIidIZWx2ZXRpY2EnLCBzYW5zLXNlcmlmXCJcbiAtIG5hbWU6IFwiQHRleHQtcmVuZGVyaW5nXCJcbiAgIGRlc2NyaXB0aW9uOiBcIlRoZSB0ZXh0LXJlbmRlcmluZyBvZiB0aGUgYm9keVwiXG4gICBkZWZhdWx0OiBcIm9wdGltaXplTGVnaWJpbGl0eVwiXG4gLSBuYW1lOiBcIkB0cmFuc2l0aW9uLWR1cmF0aW9uXCJcbiAgIGRlc2NyaXB0aW9uOiBcIlRoZSBkdXJhdGlvbiBvZiB0aGUgc2xpZGUgdHJhbnNpdGlvbnNcIlxuICAgZGVmYXVsdDogXCIwLjRzXCJcbi0tLVxuXG5UaGVzZSB2YXJpYWJsZXMgc2V0dXBzIHNvbWUgZ2xvYmFsIHRleHQgZm9ybWF0dGluZyBhbmQgc3R5bGluZy5cbiovXG4vKlxuLS0tXG5uYW1lOiBTaXplIHNldHRpbmdzXG5jYXRlZ29yeTogU2hhcmVkL1ZhcmlhYmxlc1xudGVtcGxhdGU6IHZhcmlhYmxlc1xudGFnOlxuIC0gdmFyaWFibGVzXG4gLSBncmlkXG52YXJpYWJsZXM6XG4gLSBuYW1lOiBcIkBncmlkLWd1dHRlclwiXG4gICBkZXNjcmlwdGlvbjogXCJUaGUgc3BhY2UgYmV0d2VlbiB0aGUgZ3JpZCBjaGlsZHJlblwiXG4gICBkZWZhdWx0OiBcInJlbSggMzBweCApXCJcbiAtIG5hbWU6IFwiQGdyaWQtYnJlYWstcG9pbnRzXCJcbiAgIGRlc2NyaXB0aW9uOiBcIlRoZSBzY3JlZW5zaXplIHdoZW4gdGhlIGdyaWQgc2hvdWxkIGJyZWFrLlwiXG4gICBkZWZhdWx0OiBcInJlbSg2MDBweCksIHJlbSgxMDI0cHgpXCJcbiAtIG5hbWU6IFwiQGdyaWQtYnJlYWstbGFiZWxzXCJcbiAgIGRlc2NyaXB0aW9uOiBcIlRoZSBicmVha3BvaW50IGxhYmVsIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGVudGllIGluIHRoZSBgQGdyaWQtYnJlYWstcG9pbnRzYCBsaXN0XCJcbiAgIGRlZmF1bHQ6IFwibWVkaXVtLCBsYXJnZVwiXG4gLSBuYW1lOiBcIkBwYWdlLXBhZGRpbmdcIlxuICAgZGVzY3JpcHRpb246IFwiVGhlIHBhZGRpbmcgZm9yIHRoZSAucGFnZS1mbHVpZCBjb21wb25lbnRcIlxuICAgZGVmYXVsdDogXCJyZW0oIDYwcHggKVwiXG4tLS1cblxuVGhlc2UgdmFyaWFibGVzIHNldHVwcyBzb21lIGdsb2JhbCBzaXplcyBtYWlubHkgZm9yIHRoZSBncmlkLlxuKi9cbi8qXG4tLS1cbm5hbWU6IC5idXR0b24tZGVmYXVsdFxuY2F0ZWdvcnk6IEJ1dHRvbnMvRGVmYXVsdFxudGFnOlxuIC0gY29tcG9uZW50XG4gLSBidXR0b25cbi0tLVxuXG5UaGUgZGVmYXVsdCBidXR0b24gc2V0cyBzb21lIGJhc2ljIHByb3BlcnRpZXMgc28gaXQgaXMgd29ya2luZyBhcyBhIGBidXR0b25gIG9yIGBhYCB0YWcuXG5cbkFuIGV4YW1wbGUgZm9yIGEgYnV0dG9uOlxuYGBgamFkZVxuYnV0dG9uLmJ1dHRvbi1kZWZhdWx0IE15IEJ1dHRvblxuYGBgXG5cbkFuIGV4YW1wbGUgZm9yIGEgbGluazpcbmBgYGphZGVcbmEuYnV0dG9uLWRlZmF1bHQgTXkgTGlua1xuYGBgXG4qL1xuLmJ1dHRvbi1kZWZhdWx0IHtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4vKlxuLS0tXG5uYW1lOiAuZ3JpZFxuY2F0ZWdvcnk6IExheW91dC9HcmlkXG50YWc6XG4gLSBjb21wb25lbnRcbiAtIHJlc3BvbnNpdmVcbmNvbXBpbGU6IHRydWVcbi0tLVxuXG5BIHNpbXBsZSBncmlkIHN5c3RlbSB0aGF0IHdyYXBzIGNoaWxkcmVuIG5vZGVzIGJhc2VkIG9uIHRoZSB2aWV3cG9ydCB3aWR0aC5cblxuIyMgU2ltcGxlIHNpZGUgYnkgc2lkZSByZW5kZXJpbmdcblxuVGhlIGVhc2llc3QgdXNlIGNhc2UgaXMgdG8gdXNlIHNpbXBsZSBgLmNvbC0xYCwgYC5jb2wtMS0yYCwgYC5jb2wtMS0zYCwgYC5jb2wtMS00YCBmb3IgYSBzaWRlLWJ5LXNpZGUgcmVuZGVyaW5nLlxuVGhlIGRlZmF1bHQgdmFsdWUgZm9yIGFsbCBjaGlsZCBlbGVtZW50cyBvZiBhIGAuZ3JpZGAgaXMgZXF1aXZhbGVudCB0byBgLmNvbC0xYCwgc28gZm9yIG9ubHkgb25lIGNoaWxkIGl0IHdpbGwgc3BhbiB0aGUgZnVsbCB3aWR0aC5cblxuYGBgamFkZVxuZGl2LmdyaWRcblx0ZGl2LmNvbC0xLTIgXG5cdFx0ZGl2LmFpZ2lzLWRlYnVnIGNvbC0xLTJcblx0ZGl2LmNvbC0xLTJcblx0XHRkaXYuYWlnaXMtZGVidWcgY29sLTEtMlxuYGBgXG5gYGBqYWRlXG5kaXYuZ3JpZFxuXHRkaXYuY29sLTEtNCBcblx0XHRkaXYuYWlnaXMtZGVidWcgY29sLTEtNFxuXHRkaXYuY29sLTMtNFxuXHRcdGRpdi5haWdpcy1kZWJ1ZyBjb2wtMy00XG5gYGBcblxuIyMgTGF5b3V0cyBvbiBkaWZmZXJlbnQgZGV2aWNlc1xuXG5UaGUgYnJlYWtwb2ludHMgZm9yIGRpZmZlcmVudCBzY3JlZW4gc2l6ZXMgYXJlIHNwZWNpZmllZCBpbiB0aGUgYEBncmlkLWJyZWFrLXBvaW50c2AsIGBAZ3JpZC1icmVhay1sYWJlbHNgIHZhcmlhYmxlcy5cblRoZSBkZWZhdWx0IHZhbHVlcyBkZWZpbmUgdHdvIGJyZWFrcG9pbnRzIHdpdGggbGFiZWxzOiBgLm1lZGl1bS1YLVhgIGFuZCBgLmxhcmdlLVgtWGAuXG5TbyBhbiBleGFtcGxlIGdyaWQgd2l0aCB0d28gYnJlYWtwb2ludHMgbG9va3MgbGlrZSB0aGlzOlxuXG5gYGBqYWRlXG5kaXYuZ3JpZFxuXHRkaXYubWVkaXVtLTEtMi5sYXJnZS0xLTQueGxhcmdlLTEtMlxuXHRcdGRpdi5haWdpcy1kZWJ1ZyBjb2wtMSBtZWRpdW0tMS0yIGxhcmdlLTEtNFxuXHRkaXYubWVkaXVtLTEtMi5sYXJnZS0xLTQueGxhcmdlLTEtMlxuXHRcdGRpdi5haWdpcy1kZWJ1ZyBjb2wtMSBtZWRpdW0tMS0yIGxhcmdlLTEtNFxuXHRkaXYuY29sLTEtMi5tZWRpdW0tMS0yLmxhcmdlLTEtNC54bGFyZ2UtMS0yXG5cdFx0ZGl2LmFpZ2lzLWRlYnVnIGNvbC0xLTIgbWVkaXVtLTEtMiBsYXJnZS0xLTRcblx0ZGl2LmNvbC0xLTIubWVkaXVtLTEtMi5sYXJnZS0xLTQueGxhcmdlLTEtMlxuXHRcdGRpdi5haWdpcy1kZWJ1ZyBjb2wtMS0yIG1lZGl1bS0xLTIgbGFyZ2UtMS00XG5gYGBcblxuKipOb3RlOioqIFRoZSBgY29sLTFgIGNsYXNzZXMgYXJlIG5vdCBwcmVzZW50IG9uIHRoZSBmaXJzdCB0d28gbm9kZXMsIHNpbmNlIHRoaXMgaXMgdGhlIGRlZmF1bHQgYmVoYXZpb3VyLlxuXG5cbiMjIFJldmVyc2Ugb3JkZXJcblxuVG8gcmV2ZXJzZSB0aGUgb3JkZXIgaW4gd2hpY2ggdGhlIGNvbHVtbnMgYXJlIGRpc3BsYXllZCwgeW91IGNhbiBhZGQgdGhlIG1vZGlmaWVyIGNsYXNzIGAuLXJldmVyc2VgIHRvIHlvdXIgZ3JpZC5cblRoZSBjb2x1bW5zIHdpbGwgYmUgaW4gRE9NIG9yZGVyIHdoZW4gdmlld3BvcnQgc3dpdGNoZXMgdG8gc21hbGwgbGF5b3V0LlxuXG5gYGBqYWRlXG5kaXYuZ3JpZC4tcmV2ZXJzZVxuXHRkaXYuY29sLTEtNFxuXHRcdGRpdi5haWdpcy1kZWJ1ZyBGaXJzdCBjb2x1bW4gaW4gRE9NXG5cdGRpdi5jb2wtMS00XG5cdFx0ZGl2LmFpZ2lzLWRlYnVnIFNlY29uZCBjb2x1bW4gaW4gRE9NXG5cdGRpdi5jb2wtMS00XG5cdFx0ZGl2LmFpZ2lzLWRlYnVnIFRoaXJkIGNvbHVtbiBpbiBET01cblx0ZGl2LmNvbC0xLTRcblx0XHRkaXYuYWlnaXMtZGVidWcgRm91cnRoIGNvbHVtbiBpbiBET01cbmBgYFxuIyMgTm8gZ3V0dGVyXG5cbklmIHlvdSBkb250IG5lZWQgYSBzcGFjaW5nL2d1dHRlciBiZXR3ZWVuIHRoZSBncmlkIGNvbHVtbnMgeW91IGNhbiB1c2UgdGhlIG1vZGlmaWVyIGAuLW5vZ3V0dGVyYC5cblxuYGBgamFkZVxuZGl2LmdyaWQuLW5vZ3V0dGVyXG5cdGRpdi5jb2wtMS00XG5cdFx0ZGl2LmFpZ2lzLWRlYnVnIEZpcnN0IGNvbHVtbiBpbiBET01cblx0ZGl2LmNvbC0xLTRcblx0XHRkaXYuYWlnaXMtZGVidWcgU2Vjb25kIGNvbHVtbiBpbiBET01cblx0ZGl2LmNvbC0xLTRcblx0XHRkaXYuYWlnaXMtZGVidWcgVGhpcmQgY29sdW1uIGluIERPTVxuXHRkaXYuY29sLTEtNFxuXHRcdGRpdi5haWdpcy1kZWJ1ZyBGb3VydGggY29sdW1uIGluIERPTVxuYGBgXG4qL1xuLmdyaWQge1xuICBtYXJnaW46IDAgLTAuOTM3NXJlbTtcbiAgLyoqXG5cdCAqIEdlbmVyYXRlIGFsbCBtZWRpYSBicmVha3BvaW50cyBiYXNlZCBvbiB0aGUgQGdyaWQtYnJlYWstcG9pbnRzLCBAZ3JpZC1icmVhay1sYWJlbHMgdmFyaWFibGVzLlxuXHQgKi9cbn1cbi5ncmlkOmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogdGFibGU7XG4gIGNsZWFyOiBib3RoO1xufVxuLmdyaWQgPiAqIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDAgMC45Mzc1cmVtO1xufVxuLmdyaWQuLXJldmVyc2UgPiAqIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuLmdyaWQuLW5vZ3V0dGVyIHtcbiAgbWFyZ2luOiAwO1xufVxuLmdyaWQuLW5vZ3V0dGVyID4gKiB7XG4gIHBhZGRpbmc6IDA7XG59XG4uZ3JpZCAuY29sLTEge1xuICB3aWR0aDogMTAwJTtcbn1cbi5ncmlkIC5jb2wtMS0yIHtcbiAgd2lkdGg6IDUwJTtcbn1cbi5ncmlkIC5jb2wtMS0zIHtcbiAgd2lkdGg6IDMzLjMzMzMzMzMzJTtcbn1cbi5ncmlkIC5jb2wtMi0zIHtcbiAgd2lkdGg6IDY2LjY2NjY2NjY3JTtcbn1cbi5ncmlkIC5jb2wtMS00IHtcbiAgd2lkdGg6IDI1JTtcbn1cbi5ncmlkIC5jb2wtMy00IHtcbiAgd2lkdGg6IDc1JTtcbn1cbkBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6IDM3LjVyZW0pIHtcbiAgLmdyaWQgPiAubWVkaXVtLTEge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC5ncmlkID4gLm1lZGl1bS0xLTIge1xuICAgIHdpZHRoOiA1MCU7XG4gIH1cbiAgLmdyaWQgPiAubWVkaXVtLTEtMyB7XG4gICAgd2lkdGg6IDMzLjMzMzMzMzMzJTtcbiAgfVxuICAuZ3JpZCA+IC5tZWRpdW0tMi0zIHtcbiAgICB3aWR0aDogNjYuNjY2NjY2NjclO1xuICB9XG4gIC5ncmlkID4gLm1lZGl1bS0xLTQge1xuICAgIHdpZHRoOiAyNSU7XG4gIH1cbiAgLmdyaWQgPiAubWVkaXVtLTMtNCB7XG4gICAgd2lkdGg6IDc1JTtcbiAgfVxufVxuQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogNjRyZW0pIHtcbiAgLmdyaWQgPiAubGFyZ2UtMSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLmdyaWQgPiAubGFyZ2UtMS0yIHtcbiAgICB3aWR0aDogNTAlO1xuICB9XG4gIC5ncmlkID4gLmxhcmdlLTEtMyB7XG4gICAgd2lkdGg6IDMzLjMzMzMzMzMzJTtcbiAgfVxuICAuZ3JpZCA+IC5sYXJnZS0yLTMge1xuICAgIHdpZHRoOiA2Ni42NjY2NjY2NyU7XG4gIH1cbiAgLmdyaWQgPiAubGFyZ2UtMS00IHtcbiAgICB3aWR0aDogMjUlO1xuICB9XG4gIC5ncmlkID4gLmxhcmdlLTMtNCB7XG4gICAgd2lkdGg6IDc1JTtcbiAgfVxufVxuLypcbi0tLVxubmFtZTogaW1nLnJlc3BvbnNpdmVcbmNhdGVnb3J5OiBMYXlvdXQvSW1hZ2VcbnRhZzpcbiAtIHJlc3BvbnNpdmVcbmNvbXBpbGU6IHRydWVcbi0tLVxuXG5UaGlzIGNsYXNzIG1ha2VzIHRoZSBpbWFnZSBzY2FsaW5nIHRvIGl0cyBtYXggd2lkdGguXG5cbmBgYGphZGVcbmltZy5yZXNwb25zaXZlKHNyYz0naHR0cDovL3d3dy5ieXVpLmVkdS9pbWFnZXMvYWdyaWN1bHR1cmUtbGlmZS1zY2llbmNlcy9mbG93ZXIuanBnJylcbmBgYFxuKi9cbmltZy5yZXNwb25zaXZlIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG4vKlxuLS0tXG5uYW1lOiAubWVkaWEtcmVzcG9uc2l2ZVxuY2F0ZWdvcnk6IExheW91dC9NZWRpYVxudGFnOlxuIC0gcmVzcG9uc2l2ZVxuY29tcGlsZTogdHJ1ZVxuLS0tXG5cbmAubWVkaWEtcmVzcG9uc2l2ZWAgLSBUaGlzIG1ha2VzIGEgdGhlIGAubWVkaWEtcmVzcG9uc2l2ZWAgZGl2IGEgY29udGFpbmVyIGZvciBhbnkgbWVkaWEgZWxlbWVudCAoaWZyYW1lLCB2aWRlbywgLi4uICkgdGhhdCByZXNwb25zaXZlIHNjYWxlcyB3aXRoIGEgZml4IHJhdGlvLlxuVGhlIG1lZGlhIGVsZW1lbnQgKCBjaGlsZCApIG5lZWRzIHRoZSBjbGFzcyBgLnN0cmV0Y2hgIHRvIGZ1bGx5IGZpbGwgb3V0IHRoZSBwYXJlbnRzIHNpemUuXG5cblRoZSBgLm1lZGlhLXJlc3BvbnNpdmVgIGNvbXBvbmVudCBoYXMgdG8gcHJlZGVmaW5lZCBtb2RpZmllcnM6IGAuLW1lZGlhLTQtM2AsIGAuLW1lZGlhLTE2LTlgIHRoYXQgZGVmaW5lIGEgZml4IHJhdGlvLlxuXG5gYGBqYWRlXG5kaXYubWVkaWEtcmVzcG9uc2l2ZS4tbWVkaWEtMTYtOVxuXHRpZnJhbWUuc3RyZXRjaChzcmM9XCJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PVRDZDZQZnhPeTBZXCIpXG5gYGBcbiovXG4ubWVkaWEtcmVzcG9uc2l2ZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctYm90dG9tOiA1MCU7XG59XG4ubWVkaWEtcmVzcG9uc2l2ZS4tbWVkaWEtNC0zIHtcbiAgcGFkZGluZy1ib3R0b206IDc1JTtcbn1cbi5tZWRpYS1yZXNwb25zaXZlLi1tZWRpYS0xNi05IHtcbiAgcGFkZGluZy1ib3R0b206IDU2LjI2JTtcbn1cbi8qXG4tLS1cbm5hbWU6IC5wYWdlLWZsdWlkXG5jYXRlZ29yeTogUGFnZS9GbHVpZFxudGFnOlxuIC0gcmVzcG9uc2l2ZVxuY29tcGlsZTogdHJ1ZVxuLS0tXG5cbmAucGFnZS1mbHVpZGAgY2VudGVycyB0aGUgcGFnZSBjb250ZW50IGFuZCBhZGRzIGEgcGFkZGluZyBzbyB0aGUgcGFnZSBzdGlja3Mgbm90IHRvIHRoZSBicm93c2VyIHZpZXdwb3J0LlxuRnVydGhlcm1vcmUgaXQgaGFzIGEgbWF4LXdpZHRoIGJhc2VkIG9uIHRoZSBsYXN0IGBAZ3JpZC1icmVhay1wb2ludHNgIHZhbHVlLlxuXG5gYGBqYWRlXG5kaXYucGFnZS1mbHVpZFxuXHRkaXYuYWlnaXMtZGVidWcgU29tZSBwYWdlIGNvbnRlbnRcbmBgYFxuXG4jIyBNYXgtd2lkdGggcGFnZVxuXG5UbyBicm9hZGVuIHRoZSB3aWR0aCBvZiB0aGUgcGFnZSB5b3UgY2FuIGFkZCB0aGUgbW9kaWZpZXIgYC4tdW5saW1pdGVkYC4gVGhzaSB3aWxsIHNwYW4gdGhlIHBhZ2UgdG8gdGhlIGZ1bGwgd2lkdGguXG5cbmBgYGphZGVcbmRpdi5wYWdlLWZsdWlkLi11bmxpbWl0ZWRcblx0ZGl2LmFpZ2lzLWRlYnVnIFNvbWUgcGFnZSBjb250ZW50XG5gYGBcbiovXG4ucGFnZS1mbHVpZCB7XG4gIG1heC13aWR0aDogNzEuNXJlbTtcbiAgbWFyZ2luOiBhdXRvO1xuICBwYWRkaW5nOiAwIDMuNzVyZW07XG59XG4ucGFnZS1mbHVpZC4tdW5saW1pdGVkIHtcbiAgbWF4LXdpZHRoOiBub25lO1xufVxuLypcbi0tLVxubmFtZTogLnJvd1xuY2F0ZWdvcnk6IExheW91dC9Sb3dcbnRhZzpcbiAtIGNvbXBvbmVudFxuY29tcGlsZTogdHJ1ZVxuLS0tXG5cblRoaXMgc3R5bGluZyBhbGxvdyB0byBwbGFjZSBjb250YWluZXJzIGluIGEgcm93LiBUaGV5IHdpbGwgKipub3QqKiBicmVhayBhcyB0aGUgYC5ncmlkYCBidXQgcmVzaXplIHRoZW0gYWNjb3JkaW5nbHkuXG5Tb21lIGJlbmVmaXRzIG9mIHRoZSBgLnJvd2AgYXBwcm9hY2ggaXMgdGhlIGVhc3kgdmVydGljYWwgY2VudGVyaW5nIGFuZCB0aGUgdXNhZ2Ugb2YgdGhlIGAuY29sLWF1dG9gIGNsYXNzLlxuXG4jIyBCYXNpYyByb3cgd2l0aCB2ZXJ0aWNhbCBjZW50ZXJpbmdcblxuWW91IGNhbiB1c2UgdGhlIHNpemluZyBjbGFzc2VzIGAuY29sLVgtWGAgdG8gZGVmaW5lIHRoZSB3aWR0aCBvZiBhIGNvbHVtbiBhcyB0aGUgZm9sbG93aW5nIGV4YW1wbGUgc2hvd3MuIFxuXG5gYGBqYWRlXG5kaXYucm93XG5cdGRpdi5jb2wtMS00LmFpZ2lzLWRlYnVnIGNvbC0xLTQgd2l0aCBhIGxvdCBvZiB0ZXh0IHRoYXQgc3BhbnMgdGhlIGNvbHVtbi5cblx0ZGl2LmNvbC0zLTQuYWlnaXMtZGVidWcgY29sLTMtNCBjb250ZW50LlxuYGBgXG5cbiMjIEZpeGVkIHJvd1xuXG5UaGVyZSBpcyBhIGAuLWZpeGVkYCBtb2RpZmllciB3aGVyZSBlYWNoIGNvbHVtbiBoYXMgdGhlIHNhbWUgd2lkdGguXG5cbmBgYGphZGVcbmRpdi5yb3cuLWZpeGVkXG5cdGRpdi5haWdpcy1kZWJ1ZyBldmVubHkgc3ByZWFkb3V0IGNvbHVtblxuXHRkaXYuYWlnaXMtZGVidWcgZXZlbmx5IHNwcmVhZG91dCBjb2x1bW4gd2l0aCBtb3JlIGNvbnRlbnRcblx0ZGl2LmFpZ2lzLWRlYnVnIGV2ZW5seSBzcHJlYWRvdXQgY29sdW1uXG5cdGRpdi5haWdpcy1kZWJ1ZyBldmVubHkgc3ByZWFkb3V0IGNvbHVtbiB3aXRoIG11Y2ggbW9yZSBjb250ZW50IHRoYW4gdGhlIG90aGVyXG5cdGRpdi5haWdpcy1kZWJ1Zy52Y2VudGVyIGV2ZW5seSBzcHJlYWRvdXQgY29sdW1uIHdpdGggLnZjZW50ZXJcbmBgYFxuXG5cbiMjIEF1dG8gc2l6ZWQgY29sdW1uIHdpZHRoIGFuZCB2Y2VudGVyXG5cblRoZXJlIGlzIGEgc3BlY2lhbCBgLmNvbC1hdXRvYCBjbGFzcyB0aGF0IHJlc2l6ZXMgdGhlIGNvbHVtbiB0byB0aGUgc2l6ZSBvZiBpdHMgY29udGVudC5cblRoaXMgaXMgdXNlZnVsbCBmb3IgZXhhbXBsZSBpZiB5b3UgaGF2ZSBhIGZpeGVkIHNpemUgbG9nbyBhbmQgdGhlIHJlc3Qgb2YgdGhlIGhlYWRlciBoYXMgdG8gcmVzaXplLlxuXG5gYGBqYWRlXG5kaXYucm93Li1jZW50ZXJcblx0ZGl2LmNvbC1hdXRvLmFpZ2lzLWRlYnVnXG5cdFx0aW1nKHNyYz1cImh0dHA6Ly9wbGFjZWhvbGQuaXQvMTAweDEwMFwiKVxuXHRkaXYuY29sLTEuYWlnaXMtZGVidWcgVGhlIHJlc3Rcblx0ZGl2LmNvbC1hdXRvLmFpZ2lzLWRlYnVnXG5cdFx0aW1nKHNyYz1cImh0dHA6Ly9wbGFjZWhvbGQuaXQvMjAweDEwMFwiKVxuYGBgXG4qL1xuLnJvdyB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICB3aWR0aDogMTAwJTtcbn1cbi5yb3cuLWZpeGVkIHtcbiAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbn1cbi5yb3cuLWNlbnRlciA+ICoge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLnJvdy4tYm90dG9tID4gKiB7XG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG59XG4ucm93Li1wYWRkZWQgPiAqICsgKiB7XG4gIHBhZGRpbmctbGVmdDogMS44NzVyZW07XG59XG4ucm93ID4gKiB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG59XG4ucm93ID4gKi5jb2wtMSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnJvdyA+ICouY29sLTEtMixcbi5yb3cgPiAqLmNvbC0yLTQge1xuICB3aWR0aDogNTAlO1xufVxuLnJvdyA+ICouY29sLTEtMyB7XG4gIHdpZHRoOiAzMy4zMzMzMzMzMyU7XG59XG4ucm93ID4gKi5jb2wtMi0zIHtcbiAgd2lkdGg6IDY2LjY2NjY2NjY3JTtcbn1cbi5yb3cgPiAqLmNvbC0xLTQge1xuICB3aWR0aDogMjUlO1xufVxuLnJvdyA+ICouY29sLTMtNCB7XG4gIHdpZHRoOiA3NSU7XG59XG4ucm93ID4gKi5jb2wtYXV0byB7XG4gIHdpZHRoOiBhdXRvO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLypcbi0tLVxubmFtZTogQ29sb3JzXG5jYXRlZ29yeTogU2hhcmVkL1ZhcmlhYmxlc1xudGVtcGxhdGU6IGNvbG9yc1xudGFnOlxuIC0gdmFyaWFibGVzXG4gLSBjb2xvcnNcbmNvbG9yczpcbiAtIHZhcmlhYmxlOiBcIkB0ZXh0LWNvbG9yXCJcbiAgIGRlc2NyaXB0aW9uOiBcIlRoZSBkZWZhdWx0IHRleHQgY29sb3Igb24gdGhlIGJvZHlcIlxuICAgdmFsdWU6IFwiIzNGM0Y0MFwiXG4gLSB2YXJpYWJsZTogXCJAdGV4dC1pbnZlcnRlZC1jb2xvclwiXG4gICBkZXNjcmlwdGlvbjogXCJUaGUgZGVmYXVsdCBpbnZlcnRlZCB0ZXh0IGNvbG9yIG9uIHRoZSBib2R5XCJcbiAgIHZhbHVlOiBcIiNGRkZcIlxuIC0gdmFyaWFibGU6IFwiQGFjdGlvbi1jb2xvclwiXG4gICBkZXNjcmlwdGlvbjogXCJUaGUgbWFpbiBhY3Rpb24gY29sb3IgdXNlZCBmb3IgbGlua3MgYW5kIGJ1dHRvbnNcIlxuICAgdmFsdWU6IFwiI0VDNjQ0OVwiXG4gLSB2YXJpYWJsZTogXCJAYm9keS1jb2xvclwiXG4gICBkZXNjcmlwdGlvbjogXCJUaGUgbWFpbiBiYWNrZ3JvdW5kIGNvbG9yXCJcbiAgIHZhbHVlOiBcIiNGRkZcIlxuLS0tXG5cblRoZSBjb2xvciB2YXJpYWJsZXMgdGhhdCBhcmUgdXNlZCB0aHJvdWdob3V0IHRoZSBsaWJyYXJ5LiBcbiovXG4vKlxuLS0tXG5uYW1lOiBHbG9iYWwgc2V0dGluZ3NcbmNhdGVnb3J5OiBTaGFyZWQvVmFyaWFibGVzXG50ZW1wbGF0ZTogdmFyaWFibGVzXG50YWc6XG4gLSB2YXJpYWJsZXNcbnZhcmlhYmxlczpcbiAtIG5hbWU6IFwiQHRleHQtbGluZS1oZWlnaHRcIlxuICAgZGVzY3JpcHRpb246IFwiVGhlIGxpbmUgaGVpZ2h0IG9mIHRoZSBib2R5XCJcbiAgIGRlZmF1bHQ6IFwiMS41cmVtXCJcbiAtIG5hbWU6IFwiQGZvbnQtZmFtaWx5XCJcbiAgIGRlc2NyaXB0aW9uOiBcIlRoZSBmb250LWZhbWlseSBvZiB0aGUgYm9keVwiXG4gICBkZWZhdWx0OiBcIidIZWx2ZXRpY2EnLCBzYW5zLXNlcmlmXCJcbiAtIG5hbWU6IFwiQHRleHQtcmVuZGVyaW5nXCJcbiAgIGRlc2NyaXB0aW9uOiBcIlRoZSB0ZXh0LXJlbmRlcmluZyBvZiB0aGUgYm9keVwiXG4gICBkZWZhdWx0OiBcIm9wdGltaXplTGVnaWJpbGl0eVwiXG4gLSBuYW1lOiBcIkB0cmFuc2l0aW9uLWR1cmF0aW9uXCJcbiAgIGRlc2NyaXB0aW9uOiBcIlRoZSBkdXJhdGlvbiBvZiB0aGUgc2xpZGUgdHJhbnNpdGlvbnNcIlxuICAgZGVmYXVsdDogXCIwLjRzXCJcbi0tLVxuXG5UaGVzZSB2YXJpYWJsZXMgc2V0dXBzIHNvbWUgZ2xvYmFsIHRleHQgZm9ybWF0dGluZyBhbmQgc3R5bGluZy5cbiovXG4vKlxuLS0tXG5uYW1lOiBTaXplIHNldHRpbmdzXG5jYXRlZ29yeTogU2hhcmVkL1ZhcmlhYmxlc1xudGVtcGxhdGU6IHZhcmlhYmxlc1xudGFnOlxuIC0gdmFyaWFibGVzXG4gLSBncmlkXG52YXJpYWJsZXM6XG4gLSBuYW1lOiBcIkBncmlkLWd1dHRlclwiXG4gICBkZXNjcmlwdGlvbjogXCJUaGUgc3BhY2UgYmV0d2VlbiB0aGUgZ3JpZCBjaGlsZHJlblwiXG4gICBkZWZhdWx0OiBcInJlbSggMzBweCApXCJcbiAtIG5hbWU6IFwiQGdyaWQtYnJlYWstcG9pbnRzXCJcbiAgIGRlc2NyaXB0aW9uOiBcIlRoZSBzY3JlZW5zaXplIHdoZW4gdGhlIGdyaWQgc2hvdWxkIGJyZWFrLlwiXG4gICBkZWZhdWx0OiBcInJlbSg2MDBweCksIHJlbSgxMDI0cHgpXCJcbiAtIG5hbWU6IFwiQGdyaWQtYnJlYWstbGFiZWxzXCJcbiAgIGRlc2NyaXB0aW9uOiBcIlRoZSBicmVha3BvaW50IGxhYmVsIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGVudGllIGluIHRoZSBgQGdyaWQtYnJlYWstcG9pbnRzYCBsaXN0XCJcbiAgIGRlZmF1bHQ6IFwibWVkaXVtLCBsYXJnZVwiXG4gLSBuYW1lOiBcIkBwYWdlLXBhZGRpbmdcIlxuICAgZGVzY3JpcHRpb246IFwiVGhlIHBhZGRpbmcgZm9yIHRoZSAucGFnZS1mbHVpZCBjb21wb25lbnRcIlxuICAgZGVmYXVsdDogXCJyZW0oIDYwcHggKVwiXG4tLS1cblxuVGhlc2UgdmFyaWFibGVzIHNldHVwcyBzb21lIGdsb2JhbCBzaXplcyBtYWlubHkgZm9yIHRoZSBncmlkLlxuKi9cbi5hbnN3ZXItdmlldy4td3Jvbmcge1xuICBjb2xvcjogcmVkO1xufVxuLmFuc3dlci12aWV3IC5sYWJlbCB7XG4gIG1hcmdpbi1sZWZ0OiAwLjkzNzVyZW07XG4gIHBhZGRpbmctbGVmdDogMC42MjVyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uYW5zd2VyLXZpZXcgLmxhYmVsID4gLmlucHV0IHtcbiAgdG9wOiAwLjY4NzVyZW07XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogLTAuOTM3NXJlbTtcbiAgbWFyZ2luOiAwO1xufVxuLmF1ZGlvLWVsZW1lbnQgPiAuYXVkaW8ge1xuICB3aWR0aDogMTAwJTtcbn1cbi5hdWRpby1lbGVtZW50ID4gLmNhcHRpb24tZWxlbWVudCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5ib3gtY2hhcHRlciB7XG4gIG1hcmdpbi1ib3R0b206IDkwcHg7XG59XG4uYm94LWNoYXB0ZXIgLm1hbmRhdG9yeSB7XG4gIG1pbi1oZWlnaHQ6IDM0cHg7XG59XG4uYm94LWNoYXB0ZXIgLmltYWdlIHtcbiAgcGFkZGluZy1ib3R0b206IDEzcHg7XG4gIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCAjQ0IzRkIyO1xuICBtYXgtaGVpZ2h0OiAyMDNweDtcbn1cbi5ib3gtY2hhcHRlciAudGl0bGUge1xuICBtYXJnaW46IDE0cHggMDtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGhlaWdodDogODBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5ib3gtY2hhcHRlciAudGl0bGU6YmVmb3JlIHtcbiAgY29udGVudDogJ1xcMDBhYic7XG59XG4uYm94LWNoYXB0ZXIgLnRpdGxlOmFmdGVyIHtcbiAgY29udGVudDogXCJcXDAwYmJcIjtcbn1cbi5ib3gtY2hhcHRlciAubGluay1jb250YWluZXI6aG92ZXIgLmltYWdlIHtcbiAgb3BhY2l0eTogMC44O1xufVxuLmJveC1jaGFwdGVyIC5saW5rLWNvbnRhaW5lcjpob3ZlciAudGl0bGUge1xuICBjb2xvcjogI0NCM0ZCMjtcbn1cbi5ib3gtY2hhcHRlciAuY2xhc3MgPiBzdmcsXG4uYm94LWNoYXB0ZXIgLmR1cmF0aW9uID4gc3ZnLFxuLmJveC1jaGFwdGVyIC5sYWJlbCA+IHN2ZyB7XG4gIG1hcmdpbi1yaWdodDogOXB4O1xuICBjb2xvcjogI0NCM0ZCMjtcbn1cbi5ib3gtY2hhcHRlciAuY2xhc3MsXG4uYm94LWNoYXB0ZXIgLmR1cmF0aW9uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogNTAlO1xufVxuLmJveC1jaGFwdGVyIC5sYWJlbCB7XG4gIG1hcmdpbi10b3A6IDEycHg7XG4gIG1hcmdpbi1ib3R0b206IDMycHg7XG59XG4uYm94LWNoYXB0ZXIgLmV4cG9ydCA+IC5idXR0b24tZXhwb3J0IHtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xufVxuLmJveC1jaGFwdGVyIC5leHBvcnQgPiAuYnV0dG9uLWV4cG9ydDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLXJpZ2h0OiAwcHg7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAuYm94LWNoYXB0ZXIgLmltYWdlIHtcbiAgICBtYXgtaGVpZ2h0OiAzMDdweDtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICAuYm94LWNoYXB0ZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDYwcHg7XG4gIH1cbiAgLmJveC1jaGFwdGVyIC5pbWFnZSB7XG4gICAgbWF4LWhlaWdodDogMzgwcHg7XG4gIH1cbiAgLmJveC1jaGFwdGVyID4gLnRpdGxlIHtcbiAgICBoZWlnaHQ6IDYwcHg7XG4gIH1cbn1cbi5idXR0b24tZXhwb3J0IHtcbiAgaGVpZ2h0OiAzMnB4O1xuICB3aWR0aDogOThweDtcbiAgY29sb3I6ICNDQjNGQjI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgYm9yZGVyOiAycHggc29saWQgI0NCM0ZCMjtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBsaW5lLWhlaWdodDogMS43NXJlbTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMXM7XG59XG4uYnV0dG9uLWV4cG9ydDpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogI0E1MkU5MDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0E1MkU5MDtcbiAgY29sb3I6ICNmZmY7XG59XG4uYnV0dG9uLWV4cG9ydDphY3RpdmUge1xuICBib3JkZXItY29sb3I6ICNDQjNGQjI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNDQjNGQjI7XG4gIGNvbG9yOiAjZmZmZmZmO1xufVxuLmJ1dHRvbi1maWx0ZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGNvbG9yOiAjMDAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjZGNkY2O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZmZmO1xufVxuLmJ1dHRvbi1maWx0ZXI6bGFzdC1jaGlsZCB7XG4gIGJvcmRlcjogbm9uZTtcbn1cbi5idXR0b24tZmlsdGVyLi1hY3RpdmUge1xuICBjb2xvcjogI0NCM0ZCMjtcbn1cbi5idXR0b24tZmlsdGVyLi1hY3RpdmUgPiAuaWNvbi1jaGVja2VkIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjb2xvcjogI0NCM0ZCMjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMXJlbTtcbiAgdG9wOiAyM3B4O1xufVxuLmJ1dHRvbi1maWx0ZXI6aG92ZXIge1xuICBjb2xvcjogI0E1MkU5MDtcbn1cbi5idXR0b24tZmlsdGVyLi1oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmJ1dHRvbi1maWx0ZXIgPiAuaWNvbi1maWx0ZXIsXG4uYnV0dG9uLWZpbHRlciA+IC5pY29uLWNoZWNrZWQge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmJ1dHRvbi1maWx0ZXIuLXRvZ2dsZSB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQ0IzRkIyO1xufVxuLmJ1dHRvbi1maWx0ZXIuLXRvZ2dsZSA+IC5pY29uLWNoZWNrZWQge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmJ1dHRvbi1maWx0ZXIuLXRvZ2dsZSA+IC5pY29uLWZpbHRlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xufVxuLypcbi5idXR0b24tZmlsdGVyIHtcbiAgICBcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgd2lkdGg6IDEzMnB4O1xuICAgIGhlaWdodDogNDRweDtcbiAgICBib3JkZXItcmFkaXVzOiAyMnB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBicmFuZC1jb2xvcjtcbiAgICBib3gtc2hhZG93OiAwIDJweCA2cHggMCByZ2JhKDAsMCwwLDAuMyk7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGZvbnQtc2l6ZTogcmVtKDE2cHgpO1xuICAgIGxldHRlci1zcGFjaW5nOiByZW0oMC40OHB4KTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcblxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaG92ZXItY29sb3I7XG4gICAgfVxuXG4gICAgJi4tYWN0aXZle1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAZGFyay1ob3Zlci1jb2xvcjtcbiAgICAgICAgYm94LXNoYWRvdzogMCA2cHggNnB4IDAgcmdiYSgwLDAsMCwwLjMpO1xuICAgIH1cbiAgICAmLi1oaWRkZW4ge1xuICAgICAgICBkaXNwbGF5Om5vbmU7XG4gICAgfVxufVxuXG4qL1xuLmJ1dHRvbi10ZWFjaGVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDE4cHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHdpZHRoOiA0MDBweDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi5idXR0b24tdGVhY2hlcjpob3ZlciB7XG4gIGNvbG9yOiAjQTUyRTkwO1xufVxuLmJ1dHRvbi10ZWFjaGVyIC5pY29uIHtcbiAgY29sb3I6ICNDQjNGQjI7XG4gIGhlaWdodDogMjZweDtcbiAgd2lkdGg6IDI2cHg7XG4gIHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDtcbn1cbi5idXR0b24tdGVhY2hlci4tY2xvc2Uge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjb2xvcjogIzAwMDtcbn1cbi5idXR0b24tdGVhY2hlci4tY2xvc2UgLmljb24ge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTgwZGVnKTtcbn1cbi5idXR0b24tdGVhY2hlci4tY2xvc2U6aG92ZXIge1xuICBjb2xvcjogI0E1MkU5MDtcbn1cbi5jYXB0aW9uLWVsZW1lbnQgPiBwIHtcbiAgY29sb3I6ICM2YTZhNmE7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjMxMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG4uY2Fyb3VzZWwtZWxlbWVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5jYXJvdXNlbC1lbGVtZW50Li1saWdodGJveCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIHRvcDogMHB4O1xuICBsZWZ0OiAwcHg7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB6LWluZGV4OiAyMDtcbn1cbi5jYXJvdXNlbC1lbGVtZW50Li1saWdodGJveCAuY2xvc2Uge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGZpeGVkO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHJpZ2h0OiAzMnB4O1xuICB0b3A6IDMycHg7XG4gIHdpZHRoOiAzMnB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIHotaW5kZXg6IDEwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uY2Fyb3VzZWwtZWxlbWVudC4tbGlnaHRib3ggLm5hdmktbGVmdCxcbi5jYXJvdXNlbC1lbGVtZW50Li1saWdodGJveCAubmF2aS1yaWdodCB7XG4gIHdpZHRoOiA0OHB4O1xuICBoZWlnaHQ6IDQ4cHg7XG59XG4uY2Fyb3VzZWwtZWxlbWVudC4tbGlnaHRib3ggLm5hdmktcmlnaHQge1xuICByaWdodDogMHB4O1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpIHRyYW5zbGF0ZVkoMCUpO1xufVxuLmNhcm91c2VsLWVsZW1lbnQuLWxpZ2h0Ym94IC5uYXZpLWxlZnQge1xuICBsZWZ0OiAwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XG59XG4uY2Fyb3VzZWwtZWxlbWVudC4tbGlnaHRib3ggLm91dGVyLXN0YWdlIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuLmNhcm91c2VsLWVsZW1lbnQuLWxpZ2h0Ym94IC5vdXRlci1zdGFnZSAuaW5uZXItc3RhZ2Uge1xuICBoZWlnaHQ6IDEwMCU7XG59XG4uY2Fyb3VzZWwtZWxlbWVudC4tbGlnaHRib3ggLm91dGVyLXN0YWdlIC5pbm5lci1zdGFnZSAubGlnaHRib3gge1xuICBtaW4td2lkdGg6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uY2Fyb3VzZWwtZWxlbWVudC4tbGlnaHRib3ggLm91dGVyLXN0YWdlIC5pbm5lci1zdGFnZSAubGlnaHRib3ggLmNvbnRhaW5lciB7XG4gIHdpZHRoOiA4MCU7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5jYXJvdXNlbC1lbGVtZW50Li1saWdodGJveCAub3V0ZXItc3RhZ2UgLmlubmVyLXN0YWdlIC5saWdodGJveCAuY29udGFpbmVyIC5pbm5lciAuaW1hZ2UtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1heC1oZWlnaHQ6IDEwMHZoO1xuICBtYXJnaW4tdG9wOiAxMDBweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLmNhcm91c2VsLWVsZW1lbnQuLWxpZ2h0Ym94IC5vdXRlci1zdGFnZSAuaW5uZXItc3RhZ2UgLmxpZ2h0Ym94IC5jb250YWluZXIgLmlubmVyIC5pbWFnZSB7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiBhdXRvO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG59XG4uY2Fyb3VzZWwtZWxlbWVudC4tbGlnaHRib3ggLm91dGVyLXN0YWdlIC5pbm5lci1zdGFnZSAubGlnaHRib3ggLm9wZW4ge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmNhcm91c2VsLWVsZW1lbnQuLWxpZ2h0Ym94IC5vdXRlci1zdGFnZSAuaW5uZXItc3RhZ2UgLmxpZ2h0Ym94IC5jYXB0aW9uLWVsZW1lbnQge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmNhcm91c2VsLWVsZW1lbnQgLmNsb3NlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5jYXJvdXNlbC1lbGVtZW50IC5uYXZpLWxlZnQsXG4uY2Fyb3VzZWwtZWxlbWVudCAubmF2aS1yaWdodCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgei1pbmRleDogNTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0NCM0ZCMjtcbiAgd2lkdGg6IDQ0cHg7XG4gIGhlaWdodDogNDRweDtcbn1cbi5jYXJvdXNlbC1lbGVtZW50IC5uYXZpLWxlZnQgc3ZnLFxuLmNhcm91c2VsLWVsZW1lbnQgLm5hdmktcmlnaHQgc3ZnIHtcbiAgd2lkdGg6IDQ0cHg7XG4gIGhlaWdodDogNDRweDtcbn1cbi5jYXJvdXNlbC1lbGVtZW50IC5uYXZpLWxlZnQge1xuICBsZWZ0OiAwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cbi5jYXJvdXNlbC1lbGVtZW50IC5uYXZpLXJpZ2h0IHtcbiAgcmlnaHQ6IDBweDtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKSB0cmFuc2xhdGVZKDUwJSk7XG59XG4uY2Fyb3VzZWwtZWxlbWVudCAub3V0ZXItc3RhZ2Uge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmNhcm91c2VsLWVsZW1lbnQgLm91dGVyLXN0YWdlIC5pbm5lci1zdGFnZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogbGVmdDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIHRyYW5zaXRpb246IGxlZnQgMC40cyBlYXNlLW91dDtcbiAgbGVmdDogMHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uY2Fyb3VzZWwtZWxlbWVudCAub3V0ZXItc3RhZ2UgLmlubmVyLXN0YWdlIC5saWdodGJveCB7XG4gIGhlaWdodDogNDg1cHg7XG59XG4uY2Fyb3VzZWwtZWxlbWVudCAub3V0ZXItc3RhZ2UgLmlubmVyLXN0YWdlIC5saWdodGJveCAuY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzZBNkE2QTtcbiAgaGVpZ2h0OiA0NTBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLmNhcm91c2VsLWVsZW1lbnQgLm91dGVyLXN0YWdlIC5pbm5lci1zdGFnZSAubGlnaHRib3ggLmNvbnRhaW5lciAuaW1hZ2Uge1xuICB3aWR0aDogYXV0bztcbiAgbWF4LWhlaWdodDogNDUwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5jYXJvdXNlbC1lbGVtZW50IC5vdXRlci1zdGFnZSAuaW5uZXItc3RhZ2UgLmxpZ2h0Ym94IC5jYXB0aW9uLWVsZW1lbnQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi10b3A6IDE2cHg7XG59XG4uY2hhcHRlci1jb3ZlciB7XG4gIGhlaWdodDogNDUwcHg7XG4gIG1hcmdpbi1ib3R0b206IDg1cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLmNoYXB0ZXItY292ZXIgPiAudGl0bGUge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB3aWR0aDogOTQwcHg7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBmb250LXNpemU6IDRyZW07XG4gIGZvbnQtd2VpZ2h0OiBkZW1pO1xuICBsaW5lLWhlaWdodDogNC42MjVyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMTE4NzVyZW07XG4gIHRleHQtc2hhZG93OiAwLjFweCAwLjFweCAxNnB4ICM2YTZhNmE3Mztcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgLmNoYXB0ZXItY292ZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDMuMDYyNXJlbTtcbiAgICBoZWlnaHQ6IDM0MHB4O1xuICB9XG4gIC5jaGFwdGVyLWNvdmVyID4gLnRpdGxlIHtcbiAgICBmb250LXNpemU6IDEuODc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAyLjVyZW07XG4gIH1cbn1cbi5jb21tb24tcGFnZSB7XG4gIG1hcmdpbi10b3A6IDUuMzEyNXJlbTtcbn1cbi5jb21tb24tcGFnZSBoMSxcbi5jb21tb24tcGFnZSBoMixcbi5jb21tb24tcGFnZSBoMyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogYmxhY2s7XG4gIGZvbnQtc2l6ZTogM3JlbTtcbiAgbGluZS1oZWlnaHQ6IDMuNjI1cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDMuNzVyZW07XG59XG4uY29tbW9uLXBhZ2UgPiAucGFyYWdyYXBoLWVsZW1lbnQge1xuICBtYXJnaW4tYm90dG9tOiAxLjU2MjVyZW07XG59XG4uY29tbW9uLXBhZ2UgPiAuaW1hZ2UtZWxlbWVudCB7XG4gIG1hcmdpbi1ib3R0b206IDEuNTYyNXJlbTtcbn1cbi5jb21tb24tcGFnZSA+IC5kZWxpbWl0ZXItbGluZSB7XG4gIG1hcmdpbjogMy4xMjVyZW0gMDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgLmNvbW1vbi1wYWdlIHtcbiAgICBtYXJnaW4tdG9wOiAwcmVtO1xuICB9XG4gIC5jb21tb24tcGFnZS4tbm9jb3ZlciB7XG4gICAgbWFyZ2luLXRvcDogMTEuMjVyZW07XG4gIH1cbiAgLmNvbW1vbi1wYWdlIGgxLFxuICAuY29tbW9uLXBhZ2UgaDIsXG4gIC5jb21tb24tcGFnZSBoMyB7XG4gICAgZm9udC1zaXplOiAxLjYyNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMi4xMjVyZW07XG4gIH1cbiAgLmNvbW1vbi1wYWdlID4gLnRpdGxlLWVsZW1lbnQge1xuICAgIG1hcmdpbi1ib3R0b206IDIuNXJlbTtcbiAgfVxuICAuY29tbW9uLXBhZ2UgPiAucGFyYWdyYXBoLWVsZW1lbnQge1xuICAgIG1hcmdpbi1ib3R0b206IDAuOTM3NXJlbTtcbiAgfVxuICAuY29tbW9uLXBhZ2UgPiAuaW1hZ2UtZWxlbWVudCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC45Mzc1cmVtO1xuICB9XG4gIC5jb21tb24tcGFnZSA+IC5kZWxpbWl0ZXItbGluZSB7XG4gICAgbWFyZ2luOiAxLjg3NXJlbSAwO1xuICB9XG59XG4uY29udGFpbmVyLXF1ZXN0aW9ucyB7XG4gIG1hcmdpbi1ib3R0b206IDUuNjI1cmVtO1xufVxuLmNvbnRhaW5lci1xdWVzdGlvbnMgLm1haW4tdGl0bGUge1xuICBtYXJnaW4tYm90dG9tOiAzLjc1cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogYmxhY2s7XG59XG4uY29udGFpbmVyLXF1ZXN0aW9ucyAubnVtYmVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMi44NzVyZW07XG4gIGNvbG9yOiAjQ0IzRkIyO1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXItYm90dG9tOiA2cHggc29saWQgI0NCM0ZCMjtcbiAgbGluZS1oZWlnaHQ6IDAuMDVlbTtcbiAgZm9udC1zaXplOiAzcmVtO1xufVxuLmNvbnRhaW5lci1xdWVzdGlvbnMgLm51bWJlciBzcGFuIHtcbiAgcGFkZGluZzogMCAyMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgLmNvbnRhaW5lci1xdWVzdGlvbnMge1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gIH1cbiAgLmNvbnRhaW5lci1xdWVzdGlvbnMgPiAubnVtYmVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtO1xuICAgIGZvbnQtc2l6ZTogMS42MjVyZW07XG4gIH1cbn1cbi5jb250YWluZXItdGVhY2hlciB7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjQ0IzRkIyO1xufVxuLmNvbnRhaW5lci10ZWFjaGVyLnNpZGViYXItbG9naW4ge1xuICBib3JkZXItYm90dG9tOiAwcHg7XG59XG4uY29udGFpbmVyLXRlYWNoZXI6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG4uY29udGFpbmVyLXRlYWNoZXIgLm1vZHVsZS10aXRsZSB7XG4gIHBhZGRpbmctdG9wOiAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiAzMHB4O1xufVxuLmNvbnRhaW5lci10ZWFjaGVyIC50aXRsZS50aXRsZS1kb3dubG9hZCB7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjQ0IzRkIyO1xuICBjdXJzb3I6IGF1dG87XG4gIG1hcmdpbjogMHB4O1xuICBwYWRkaW5nOiAxMHB4IDBweDtcbn1cbi5jb250YWluZXItdGVhY2hlciAudGl0bGUge1xuICBtYXJnaW46IDBweCAtMThweCAwcHggLTI3cHg7XG4gIHBhZGRpbmc6IDEwcHggMHB4IDEwcHggMjdweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uY29udGFpbmVyLXRlYWNoZXIgLnRpdGxlLi1jaGFwdGVyLi1jdXJyZW50IHtcbiAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCAjQ0IzRkIyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTlFOUU5O1xufVxuLmNvbnRhaW5lci10ZWFjaGVyIC50aXRsZS4tY2hhcHRlcjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFOUU5RTk7XG59XG4uY29udGFpbmVyLXRlYWNoZXIgLnRpdGxlLi1iYWNrZ3JvdW5kOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0U5RTlFOTtcbn1cbi5jb250YWluZXItdGVhY2hlciAudGl0bGUgLnRpdGxlLWNvbnRlbnQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1yaWdodDogMzRweDtcbn1cbi5jb250YWluZXItdGVhY2hlciAudGl0bGUgLmljb24ge1xuICBjb2xvcjogI0NCM0ZCMjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDE0cHg7XG4gIHJpZ2h0OiAxN3B4O1xufVxuLmNvbnRhaW5lci10ZWFjaGVyIC5jb250ZW50IHtcbiAgcGFkZGluZy1ib3R0b206IDMwcHg7XG59XG4uY29udGFpbmVyLXRlYWNoZXIgLmNvbnRlbnQgLmNvbnRlbnQtc2VjdGlvbiB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG4uY29udGFpbmVyLXRlYWNoZXIgLmNvbnRlbnQgLmNvbnRlbnQtc2VjdGlvbi4taW5saW5lIC5zZWN0aW9uLXRpdGxlIHtcbiAgZGlzcGxheTogaW5saW5lO1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cbi5jb250YWluZXItdGVhY2hlciAuY29udGVudCAuY29udGVudC1zZWN0aW9uIC5zZWN0aW9uLXRpdGxlIHtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDIzcHg7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbn1cbi5jb250YWluZXItdGVhY2hlciAuY29udGVudCAuY29udGVudC1zZWN0aW9uIHAge1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuLmNvbnRhaW5lci10ZWFjaGVyIC5jb250ZW50IC5jb250ZW50LXNlY3Rpb24gdWwsXG4uY29udGFpbmVyLXRlYWNoZXIgLmNvbnRlbnQgLmNvbnRlbnQtc2VjdGlvbiBvbCB7XG4gIG1hcmdpbi1sZWZ0OiAzMHB4O1xufVxuLmNvbnRhaW5lci10ZWFjaGVyIC5jb250ZW50IC5jb250ZW50LXNlY3Rpb24gdWwgbGksXG4uY29udGFpbmVyLXRlYWNoZXIgLmNvbnRlbnQgLmNvbnRlbnQtc2VjdGlvbiBvbCBsaSB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG4uY29udGFpbmVyLXRlYWNoZXIgLmNvbnRlbnQuLWNsb3NlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5jb250YWluZXItdGVhY2hlciAuZXhwb3J0IHtcbiAgbWFyZ2luLXRvcDogMzJweDtcbn1cbi5jb250YWluZXItdGVhY2hlciAuZXhwb3J0ID4gLmJ1dHRvbi1leHBvcnQge1xuICBtYXJnaW4tcmlnaHQ6IDI5cHg7XG59XG4uY29udGFpbmVyLXRlYWNoZXIgLmV4cG9ydCAuZG93bmxvYWQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29sb3I6ICMwMDA7XG4gIG1hcmdpbjogMTFweCAwcHg7XG59XG4uY29udGFpbmVyLXRlYWNoZXIgLmV4cG9ydCAuZG93bmxvYWQ6aG92ZXIge1xuICBjb2xvcjogI0NCM0ZCMjtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmNvbnRhaW5lci10ZWFjaGVyIC5leHBvcnQgcCB7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiAyM3B4O1xuICBtYXJnaW4tYm90dG9tOiAzNXB4O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICAuY29udGFpbmVyLXRlYWNoZXIgLm1vZHVsZS10aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgfVxuICAuY29udGFpbmVyLXRlYWNoZXIgLmV4cG9ydCB7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgfVxuICAuY29udGFpbmVyLXRlYWNoZXIgLmV4cG9ydCBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICB9XG59XG4uZGVsaW1pdGVyLWxpbmUge1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLWJvdHRvbTogNnB4IHNvbGlkICNDQjNGQjI7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gIC5kZWxpbWl0ZXItbGluZSB7XG4gICAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkICNDQjNGQjI7XG4gIH1cbn1cbi5mZWVkYmFjay1jb250YWluZXIge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbn1cbi5mZWVkYmFjay1jb250YWluZXIgLmJ1dHRvbiB7XG4gIHBhZGRpbmc6IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5mZWVkYmFjay1jb250YWluZXIgLmJ1dHRvbjpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4uZmVlZGJhY2stcGFuZWwge1xuICBwYWRkaW5nOiAuNzVyZW0gMS4yNXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2I0YjRiNDtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIG1hcmdpbi1ib3R0b206IDEuODc1cmVtO1xufVxuLmZlZWRiYWNrLXBhbmVsLi1jb3JyZWN0IHtcbiAgY29sb3I6ICMxNTU3MjQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkNGVkZGE7XG4gIGJvcmRlci1jb2xvcjogI2MzZTZjYjtcbn1cbi5mZWVkYmFjay1wYW5lbC4td3Jvbmcge1xuICBjb2xvcjogIzcyMWMyNDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZDdkYTtcbiAgYm9yZGVyLWNvbG9yOiAjZjVjNmNiO1xufVxuLmZpbHRlci1jb250YWluZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHJpZ2h0OiA0MHB4O1xuICBib3R0b206IDBweDtcbiAgei1pbmRleDogMTA7XG4gIGJveC1zaGFkb3c6IDAuMXB4IDAuMXB4IDE2cHggIzZhNmE2YTU0O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICAuZmlsdGVyLWNvbnRhaW5lciB7XG4gICAgcmlnaHQ6IDE2cHg7XG4gIH1cbn1cbltjbGFzc149XCJpY29uLVwiXSxcbltjbGFzcyo9XCIgaWNvbi1cIl0ge1xuICBoZWlnaHQ6IDMycHg7XG4gIHdpZHRoOiAzMnB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXM7XG59XG5bY2xhc3NePVwiaWNvbi1cIl0uLXNtYWxsLFxuW2NsYXNzKj1cIiBpY29uLVwiXS4tc21hbGwge1xuICBoZWlnaHQ6IDIwcHg7XG4gIHdpZHRoOiAyMHB4O1xufVxuW2NsYXNzXj1cImljb24tXCJdLi1zdWIsXG5bY2xhc3MqPVwiIGljb24tXCJdLi1zdWIge1xuICB2ZXJ0aWNhbC1hbGlnbjogc3ViO1xufVxuW2NsYXNzXj1cImljb24tXCJdLi1pbnZlcnRlZCxcbltjbGFzcyo9XCIgaWNvbi1cIl0uLWludmVydGVkIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTE4MGRlZyk7XG59XG5bY2xhc3NePVwiaWNvbi1cIl0uLWJyYW5kLFxuW2NsYXNzKj1cIiBpY29uLVwiXS4tYnJhbmQge1xuICBjb2xvcjogI0NCM0ZCMjtcbn1cbltjbGFzc149XCJpY29uLVwiXS4tcnNwYWNlcixcbltjbGFzcyo9XCIgaWNvbi1cIl0uLXJzcGFjZXIge1xuICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG59XG4uaWNvbmNvbnRhaW5lci4taW52ZXJ0ZWQgPiBbY2xhc3NePVwiaWNvbi1cIl0sXG4uaWNvbmNvbnRhaW5lci4taW52ZXJ0ZWQgPiBbY2xhc3MqPVwiIGljb24tXCJdIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTE4MGRlZyk7XG59XG4uaW1hZ2UtZWxlbWVudC4tc21hbGwge1xuICBtYXgtd2lkdGg6IDUwJTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgLmltYWdlLWVsZW1lbnQuLXNtYWxsIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbn1cbi5saWdodGJveCB7XG4gIG1pbi13aWR0aDogMTAwJTtcbn1cbi5saWdodGJveCAuY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4ubGlnaHRib3ggLmNvbnRhaW5lciAub3BlbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiA4cHg7XG4gIHJpZ2h0OiAwcHg7XG4gIHdpZHRoOiAzMnB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xufVxuLmxpZ2h0Ym94IC5vcGVuLFxuLmxpZ2h0Ym94IC5jbG9zZSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5saWdodGJveCAub3BlbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLmxpZ2h0Ym94IC5jbG9zZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4ubGlnaHRib3guLW9wZW4ge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGhlaWdodDogMTAwJTtcbiAgei1pbmRleDogMTAwO1xuICB0b3A6IDBweDtcbiAgbGVmdDogMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbn1cbi5saWdodGJveC4tb3BlbiAuY2FwdGlvbi1lbGVtZW50IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5saWdodGJveC4tb3BlbiAuY29udGFpbmVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgd2lkdGg6IDgwJTtcbiAgbWF4LWhlaWdodDogMTAwJTtcbn1cbi5saWdodGJveC4tb3BlbiAuY29udGFpbmVyIC5pbm5lciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDIwcHggMHB4O1xufVxuLmxpZ2h0Ym94Li1vcGVuIC5jbG9zZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAxNnB4O1xuICB0b3A6IDE2cHg7XG4gIHdpZHRoOiAzMnB4O1xuICBoZWlnaHQ6IDMycHg7XG59XG4ubGlnaHRib3guLW9wZW4gLm9wZW4ge1xuICBkaXNwbGF5OiBub25lO1xufVxuLmxpZ2h0Ym94Li1vcGVuIC5jYXB0aW9uIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xufVxuLm1haW4tbmF2aWdhdGlvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiAxMDA7XG4gIGNvbG9yOiAjQ0IzRkIyO1xuICBsaW5lLWhlaWdodDogMjFweDtcbn1cbi5tYWluLW5hdmlnYXRpb24gLmhhbWJ1cmdlcjpob3ZlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5tYWluLW5hdmlnYXRpb24gdWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xuICBsaW5lLWhlaWdodDogMS44NzVyZW07XG4gIGNvbG9yOiAjMDAwO1xufVxuLm1haW4tbmF2aWdhdGlvbiBsaSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgbGluZS1oZWlnaHQ6IDEuODc1cmVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiA4cHggMCA4cHggMjBweDtcbn1cbi5tYWluLW5hdmlnYXRpb24gbGkgYSB7XG4gIGNvbG9yOiAjMDAwO1xufVxuLm1haW4tbmF2aWdhdGlvbiAubGV2ZWwxIHtcbiAgd2lkdGg6IDIzLjc1cmVtO1xuICBib3gtc2hhZG93OiAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG59XG4ubWFpbi1uYXZpZ2F0aW9uIC5sZXZlbDE6aG92ZXIge1xuICBjb2xvcjogI0E1MkU5MDtcbn1cbi5tYWluLW5hdmlnYXRpb24gLmxldmVsMSAuYm9vayxcbi5tYWluLW5hdmlnYXRpb24gLmxldmVsMSAuaW1wcmVzc3VtIHtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xufVxuLm1haW4tbmF2aWdhdGlvbiAubGV2ZWwxIC5pbXByZXNzdW06aG92ZXIge1xuICBjb2xvcjogI0E1MkU5MDtcbn1cbi5tYWluLW5hdmlnYXRpb24gLmxldmVsMSAuaWNvbiB7XG4gIHdpZHRoOiAzNnB4O1xuICBoZWlnaHQ6IDE4cHg7XG4gIGNvbG9yOiAjQ0IzRkIyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAyMHB4O1xufVxuLm1haW4tbmF2aWdhdGlvbiAubGV2ZWwxLi1hY3RpdmUgLmJvb2s6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tbGVmdDogLTIwcHg7XG4gIHBhZGRpbmc6IDZweCAwIDZweCAzN3B4O1xuICBib3JkZXItbGVmdDogM3B4IHNvbGlkICNDQjNGQjI7XG4gIGNvbG9yOiAjQ0IzRkIyO1xufVxuLm1haW4tbmF2aWdhdGlvbiAubGV2ZWwxLi1hY3RpdmUgLmljb24ge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xufVxuLm1haW4tbmF2aWdhdGlvbiAubGV2ZWwxLi1hY3RpdmUgLmxldmVsMiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNmY2ZjY7XG4gIHBhZGRpbmctbGVmdDogMjdweDtcbiAgbWFyZ2luLWxlZnQ6IC0yMHB4O1xufVxuLm1haW4tbmF2aWdhdGlvbiAubGV2ZWwxLi1hY3RpdmUgLmxldmVsMiBsaSBhIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4ubWFpbi1uYXZpZ2F0aW9uIC5sZXZlbDEuLWFjdGl2ZSAubGV2ZWwyIGxpOmhvdmVyIGEge1xuICBjb2xvcjogI0E1MkU5MDtcbn1cbi5tYWluLW5hdmlnYXRpb24gLmxldmVsMTpmaXJzdC1jaGlsZDpob3ZlciB7XG4gIGNvbG9yOiAjQTUyRTkwO1xufVxuLm1haW4tbmF2aWdhdGlvbiAuLWNsb3NlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgLm1haW4tbmF2aWdhdGlvbiAubGV2ZWwxIHtcbiAgICB3aWR0aDogMjEuMjVyZW07XG4gIH1cbn1cbi5tb2R1bGUtbGFiZWwge1xuICBjb2xvcjogIzZhNmE2YTtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuLm1vZHVsZS1sYWJlbC4taGFsZiB7XG4gIHdpZHRoOiA1MCU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5tb2R1bGUtbGFiZWwgLmljb24ge1xuICBjb2xvcjogI0NCM0ZCMjtcbiAgbWFyZ2luLXJpZ2h0OiA5cHg7XG59XG4ucGFnZS1mbHVpZCB7XG4gIHBhZGRpbmc6IDAgMXJlbTtcbiAgbWF4LXdpZHRoOiA0MC4xMjVyZW07XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gIC5jb250ZW50ICAucGFnZS1mbHVpZCB7XG4gICAgcGFkZGluZzogMCAwO1xuICB9XG59XG4ucGFnZS1mb290ZXIge1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0NCM0ZCMjtcbiAgbWFyZ2luLXRvcDogMjAwcHg7XG4gIGhlaWdodDogODBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5wYWdlLWZvb3RlciAudGV4dCB7XG4gIGNvbG9yOiAjZmZmO1xuICBtYXJnaW4tbGVmdDogMzJweDtcbn1cbi5wYWdlLWZvb3RlciAudGV4dCAuaW1wcmVzc3VtIHtcbiAgY29sb3I6ICNmZmY7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gIC5wYWdlLWZvb3RlciB7XG4gICAgbWFyZ2luLXRvcDogMTYwcHg7XG4gIH1cbn1cbi5wYWdlLWhlYWRlciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgei1pbmRleDogMTA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG4ucGFnZS1oZWFkZXIgLmJvcmRlci1ib3R0b20ge1xuICBwYWRkaW5nLWJvdHRvbTogMTFweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gIG1hcmdpbi1sZWZ0OiAxNnB4O1xuICBtYXJnaW4tcmlnaHQ6IDE2cHg7XG59XG4ucGFnZS1oZWFkZXIgLmxvZ28tc2VjdGlvbiB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDgwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNDQjNGQjI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAwcHg7XG59XG4ucGFnZS1oZWFkZXIgLmxvZ28tc2VjdGlvbiAudGl0bGUge1xuICBmb250LXNpemU6IDIuMDYyNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDMuMTI1cmVtO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNTMxMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogI2ZmZjtcbn1cbi5wYWdlLWhlYWRlciAubG9nby1zZWN0aW9uIC5sb2dvIHtcbiAgd2lkdGg6IDk2cHg7XG4gIGhlaWdodDogMjVweDtcbiAgbWFyZ2luLWxlZnQ6IDExcHg7XG4gIG1hcmdpbi1yaWdodDogNTBweDtcbiAgbWFyZ2luLXRvcDogMjRweDtcbiAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgb3BhY2l0eTogMTtcbn1cbi5wYWdlLWhlYWRlciAubWFpbi1uYXZpZ2F0aW9uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLnBhZ2UtaGVhZGVyIC5idXR0b24tbG9naW4ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiA1MnB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC10b3A7XG59XG4ucGFnZS1oZWFkZXIgLmJ1dHRvbi1sb2dpbiBhIHtcbiAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjI1cmVtO1xuICBjb2xvcjogIzAwMDAwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4ucGFnZS1oZWFkZXIgLmJ1dHRvbi1sb2dpbiBhIC5uYXZpLXRleHQge1xuICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC1ib3R0b207XG59XG4ucGFnZS1oZWFkZXIgLmJ1dHRvbi1sb2dpbiBhIHN2ZyB7XG4gIHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDtcbiAgY29sb3I6ICNDQjNGQjI7XG59XG4ucGFnZS1oZWFkZXIgLmJ1dHRvbi1sb2dpbjpob3ZlciBhIHtcbiAgY29sb3I6ICNBNTJFOTA7XG59XG4ucGFnZS1oZWFkZXIgLmJ1dHRvbi1sb2dpbjphY3RpdmUgYSB7XG4gIGNvbG9yOiAjQTUyRTkwO1xufVxuLnBhZ2UtaGVhZGVyIC5zaWRlYmFyLXRlYWNoZXIge1xuICByaWdodDogMDtcbn1cbi5wYWdlLWhlYWRlciAuc2l0ZS10aXRsZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4ucGFnZS1oZWFkZXIgLmhvbWUtYnV0dG9uIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5wYWdlLWhlYWRlci4tY29sbGFic2Uge1xuICBwYWRkaW5nLXRvcDogMHB4O1xufVxuLnBhZ2UtaGVhZGVyLi1jb2xsYWJzZSAubG9nby1zZWN0aW9uIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBoZWlnaHQ6IDBweDtcbiAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuNXM7XG59XG4ucGFnZS1oZWFkZXIuLWNvbGxhYnNlIC50aXRsZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4ucGFnZS1oZWFkZXIuLWNvbGxhYnNlIC5zaXRlLXRpdGxlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiA3NXB4O1xuICB3aWR0aDogMTAwJTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLnBhZ2UtaGVhZGVyLi1jb2xsYWJzZSAuaG9tZS1idXR0b24ge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICBwYWRkaW5nLWxlZnQ6IDUwcHg7XG59XG4ucGFnZS1oZWFkZXIuLWNvbGxhYnNlIC5ob21lLWJ1dHRvbiAuaWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgaGVpZ2h0OiAyNnB4O1xuICB3aWR0aDogMjZweDtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gIC5wYWdlLWhlYWRlci4tY29sbGFic2UgLnNpdGUtdGl0bGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgLnBhZ2UtaGVhZGVyLi1jb2xsYWJzZSAuc2l0ZS10aXRsZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAucGFnZS1oZWFkZXIgLmxvZ28tc2VjdGlvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgLnBhZ2UtaGVhZGVyIC5sb2dvLXNlY3Rpb24gLmxvZ28ge1xuICAgIG1hcmdpbi10b3A6IDE0cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogOXB4O1xuICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gIH1cbiAgLnBhZ2UtaGVhZGVyIC5sb2dvLXNlY3Rpb24gLnRpdGxlIHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuODEyNXJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBtYXJnaW4tbGVmdDogMTZweDtcbiAgfVxuICAucGFnZS1oZWFkZXIgLmJ1dHRvbi1sb2dpbiAubmF2aS10ZXh0IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5wYWdlLWhlYWRlciAuYnV0dG9uLXRlYWNoZXIge1xuICAgIHdpZHRoOiAzMHB4O1xuICB9XG4gIC5wYWdlLWhlYWRlciAuYnV0dG9uLXRlYWNoZXIgLm5hdmktdGV4dCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLnBhZ2UtbGF5b3V0IHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW46IGF1dG87XG59XG4ucGFnZS1sYXlvdXQgPiAuY29udGVudCB7XG4gIHBhZGRpbmctdG9wOiAxNjJweDtcbn1cbi5wYWdlLWxheW91dCA+IC5jb250ZW50Li1zaWRlYmFyIHtcbiAgcGFkZGluZy1yaWdodDogNDAwcHg7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gIC5wYWdlLWxheW91dCA+IC5jb250ZW50IHtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBtYXJnaW4tdG9wOiAxNTJweDtcbiAgfVxuICAucGFnZS1sYXlvdXQgPiAuY29udGVudC4tc2lkZWJhciB7XG4gICAgcGFkZGluZy1yaWdodDogMHB4O1xuICAgIHBhZGRpbmctdG9wOiAwcHg7XG4gIH1cbn1cbi5wYWdlLW92ZXJ2aWV3IHtcbiAgbWF4LXdpZHRoOiA1OC43NXJlbTtcbn1cbi5wYWdlLW92ZXJ2aWV3IC5pbnRyb2R1Y3Rpb24ge1xuICBtYXJnaW4tYm90dG9tOiA1cmVtO1xuICBjb2xvcjogIzAwMDAwMDtcbiAgZm9udC1zaXplOiAyLjM3NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDUwcHg7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gIC5wYWdlLW92ZXJ2aWV3ID4gLmludHJvZHVjdGlvbiB7XG4gICAgZm9udC1zaXplOiAxLjYyNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMi4xMjVyZW07XG4gIH1cbn1cbi5wYXJhZ3JhcGgtZWxlbWVudCB7XG4gIGNvbG9yOiAjMDAwMDAwO1xufVxuLnBhcmFncmFwaC1lbGVtZW50Li1pbnRyb2R1Y3Rpb24ge1xuICBmb250LXNpemU6IDEuNjI1cmVtO1xuICBsaW5lLWhlaWdodDogMi4zNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG4ucGFyYWdyYXBoLWVsZW1lbnQuLWRlZmF1bHQge1xuICBmb250LXNpemU6IDEuMzc1cmVtO1xuICBsaW5lLWhlaWdodDogMi4xODc1cmVtO1xuICBmb250LXdlaWdodDogMzAwO1xufVxuLnBhcmFncmFwaC1lbGVtZW50IHN0cm9uZyxcbi5wYXJhZ3JhcGgtZWxlbWVudCBiIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4ucGFyYWdyYXBoLWVsZW1lbnQgdWwsXG4ucGFyYWdyYXBoLWVsZW1lbnQgb2wge1xuICBtYXJnaW4tbGVmdDogNjBweDtcbiAgbWFyZ2luLWJvdHRvbTogMzBweDtcbn1cbi5wYXJhZ3JhcGgtZWxlbWVudCB1bCBsaSB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG4ucGFyYWdyYXBoLWVsZW1lbnQgLmFiYnJldmlhdGlvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBib3JkZXItYm90dG9tOiAzcHggZG90dGVkIGJsYWNrO1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgY3Vyc29yOiBoZWxwO1xufVxuLnBhcmFncmFwaC1lbGVtZW50IC5hYmJyZXZpYXRpb24gLnRvb2x0aXAge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnBhcmFncmFwaC1lbGVtZW50IC5hYmJyZXZpYXRpb24uLXJpZ2h0IC50b29sdGlwIHtcbiAgbGVmdDogMHB4O1xufVxuLnBhcmFncmFwaC1lbGVtZW50IC5hYmJyZXZpYXRpb24uLWxlZnQgLnRvb2x0aXAge1xuICByaWdodDogMHB4O1xufVxuLnBhcmFncmFwaC1lbGVtZW50IC5hYmJyZXZpYXRpb24uLXRvcCAudG9vbHRpcCB7XG4gIGJvdHRvbTogMzBweDtcbn1cbi5wYXJhZ3JhcGgtZWxlbWVudCAuYWJicmV2aWF0aW9uLi1ib3R0b20gLnRvb2x0aXAge1xuICB0b3A6IDMwcHg7XG59XG4ucGFyYWdyYXBoLWVsZW1lbnQgLmFiYnJldmlhdGlvbi4tYmlnLi1vcGVuIC50b29sdGlwLFxuLnBhcmFncmFwaC1lbGVtZW50IC5hYmJyZXZpYXRpb24uLWJpZzpob3ZlciAudG9vbHRpcCB7XG4gIHdpZHRoOiBhdXRvO1xuICB3aWR0aDogNTB2dztcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbn1cbi5wYXJhZ3JhcGgtZWxlbWVudCAuYWJicmV2aWF0aW9uLi1zaWRlYmFyLi1vcGVuIC50b29sdGlwLFxuLnBhcmFncmFwaC1lbGVtZW50IC5hYmJyZXZpYXRpb24uLXNpZGViYXI6aG92ZXIgLnRvb2x0aXAge1xuICB3aWR0aDogYXV0bztcbiAgd2lkdGg6IDIwMHB4O1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xufVxuLnBhcmFncmFwaC1lbGVtZW50IC5hYmJyZXZpYXRpb24uLW9wZW4gLnRvb2x0aXAsXG4ucGFyYWdyYXBoLWVsZW1lbnQgLmFiYnJldmlhdGlvbjpob3ZlciAudG9vbHRpcCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWUxZTFlO1xuICBjb2xvcjogI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3gtc2hhZG93OiAxcHggMXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBwYWRkaW5nOiAzcHggNXB4O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICAucGFyYWdyYXBoLWVsZW1lbnQuLWludHJvZHVjdGlvbiB7XG4gICAgZm9udC1zaXplOiAxLjM3NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMnJlbTtcbiAgfVxuICAucGFyYWdyYXBoLWVsZW1lbnQuLWRlZmF1bHQge1xuICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNzVyZW07XG4gIH1cbiAgLnBhcmFncmFwaC1lbGVtZW50IHVsLFxuICAucGFyYWdyYXBoLWVsZW1lbnQgb2wge1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gIH1cbn1cbi5xdWVzdGlvbi1pdGVtIHtcbiAgbWFyZ2luLWJvdHRvbTogMy43NXJlbTtcbn1cbi5xdWVzdGlvbi1pdGVtID4gLmljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGNvbG9yOiAjQ0IzRkIyO1xuICBoZWlnaHQ6IDMwcHg7XG4gIHdpZHRoOiAzMHB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC1ib3R0b207XG4gIG1hcmdpbi1yaWdodDogNXB4O1xufVxuLnF1ZXN0aW9uLWl0ZW0gLnRpdGxlIHtcbiAgY29sb3I6ICNDQjNGQjI7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIG1hcmdpbi1ib3R0b206IDAuOTM3NXJlbTtcbiAgZm9udC1zaXplOiAxLjYyNXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5xdWVzdGlvbi1pdGVtIC5wYXJhZ3JhcGgtZWxlbWVudCxcbi5xdWVzdGlvbi1pdGVtIC5pbWFnZS1lbGVtZW50LFxuLnF1ZXN0aW9uLWl0ZW0gdWwsXG4ucXVlc3Rpb24taXRlbSBvbCxcbi5xdWVzdGlvbi1pdGVtIC5pZnJhbWUtZWxlbWVudCxcbi5xdWVzdGlvbi1pdGVtIC52aWRlby1lbGVtZW50LFxuLnF1ZXN0aW9uLWl0ZW0gLmF1ZGlvLWVsZW1lbnQsXG4ucXVlc3Rpb24taXRlbSAuY29yb3VzZWwtZWxlbWVudCB7XG4gIG1hcmdpbi1ib3R0b206IDMwcHg7XG59XG4ucXVlc3Rpb24taXRlbSAucGFyYWdyYXBoLWVsZW1lbnQuLW5vbWFyZ2luLFxuLnF1ZXN0aW9uLWl0ZW0gLmltYWdlLWVsZW1lbnQuLW5vbWFyZ2luLFxuLnF1ZXN0aW9uLWl0ZW0gdWwuLW5vbWFyZ2luLFxuLnF1ZXN0aW9uLWl0ZW0gb2wuLW5vbWFyZ2luLFxuLnF1ZXN0aW9uLWl0ZW0gLmlmcmFtZS1lbGVtZW50Li1ub21hcmdpbixcbi5xdWVzdGlvbi1pdGVtIC52aWRlby1lbGVtZW50Li1ub21hcmdpbixcbi5xdWVzdGlvbi1pdGVtIC5hdWRpby1lbGVtZW50Li1ub21hcmdpbixcbi5xdWVzdGlvbi1pdGVtIC5jb3JvdXNlbC1lbGVtZW50Li1ub21hcmdpbiB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG4ucXVlc3Rpb24taXRlbSB1bCxcbi5xdWVzdGlvbi1pdGVtIG9sIHtcbiAgbWFyZ2luLWxlZnQ6IDYwcHg7XG59XG4ucXVlc3Rpb24taXRlbSB1bCBsaSxcbi5xdWVzdGlvbi1pdGVtIG9sIGxpIHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgLnF1ZXN0aW9uLWl0ZW0gLnRpdGxlIHtcbiAgICBmb250LXNpemU6IDEuMzc1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAycmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBkZW1pO1xuICB9XG4gIC5xdWVzdGlvbi1pdGVtIC5wYXJhZ3JhcGgtZWxlbWVudCxcbiAgLnF1ZXN0aW9uLWl0ZW0gLmltYWdlLWVsZW1lbnQsXG4gIC5xdWVzdGlvbi1pdGVtIHVsLFxuICAucXVlc3Rpb24taXRlbSBvbCxcbiAgLnF1ZXN0aW9uLWl0ZW0gLmlmcmFtZS1lbGVtZW50LFxuICAucXVlc3Rpb24taXRlbSAudmlkZW8tZWxlbWVudCxcbiAgLnF1ZXN0aW9uLWl0ZW0gLmF1ZGlvLWVsZW1lbnQsXG4gIC5xdWVzdGlvbi1pdGVtIC5jYXJvdXNlbC1lbGVtZW50IHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICB9XG59XG4ucXVlc3Rpb24tdGV4dCA+IC5kcm9wZG93bi4td3Jvbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhkN2RhO1xufVxuLnF1ZXN0aW9uLXRleHQgPiAuZHJvcGRvd24uLWNvcnJlY3Qge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDRlZGRhO1xufVxuLnNpZGViYXItbG9naW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQ0IzRkIyO1xuICBtYXJnaW4tbGVmdDogLTI3cHg7XG4gIG1hcmdpbi1yaWdodDogLTE4cHg7XG4gIHBhZGRpbmctbGVmdDogMjdweDtcbiAgcGFkZGluZy1yaWdodDogMThweDtcbn1cbi5zaWRlYmFyLWxvZ2luIGEge1xuICBjb2xvcjogI2ZmZjtcbiAgcGFkZGluZzogMTBweCAwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4uc2lkZWJhci1sb2dpbiAuaWNvbiB7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDIycHg7XG4gIG1hcmdpbi1yaWdodDogMTZweDtcbiAgdmVydGljYWwtYWxpZ246IHN1Yjtcbn1cbi5zaWRlYmFyLWxvZ2luIC5pY29uLmljb24tYXJyb3ctZG93biB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IC00MHB4O1xufVxuLnNpZGViYXItbG9naW4gLnRpdGxlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLnNpZGViYXItbG9naW46aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQTUyRTkwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gIC5zaWRlYmFyLWxvZ2luIC5pY29uLmljb24tYXJyb3ctZG93biB7XG4gICAgcmlnaHQ6IC0yMHB4O1xuICB9XG59XG4uc2lkZWJhci10ZWFjaGVyIHtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjZGNkY2O1xuICBib3gtc2hhZG93OiAtMXB4IDFweCAwIDAgcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgcGFkZGluZy1sZWZ0OiAyN3B4O1xuICBwYWRkaW5nLXJpZ2h0OiAzNHB4O1xuICB3aWR0aDogNDE2cHg7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgcmlnaHQ6IDBweDtcbiAgdG9wOiAxMzNweDtcbiAgYm90dG9tOiAwcHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICB6LWluZGV4OiAxMDtcbn1cbi5zaWRlYmFyLXRlYWNoZXIuLXRlYWNoZXIgLmNvbnRhaW5lci10ZWFjaGVyLnNvcnQtMCAudGl0bGUge1xuICBib3JkZXItdG9wOiA1cHggc29saWQgI0NCM0ZCMjtcbn1cbi5zaWRlYmFyLXRlYWNoZXIgLmxhYmVsIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4uc2lkZWJhci10ZWFjaGVyIC5tZXRhLXNwYWNlIHtcbiAgbWFyZ2luLWJvdHRvbTogNjRweDtcbn1cbi5zaWRlYmFyLXRlYWNoZXIuLWNsb3NlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5zaWRlYmFyLXRlYWNoZXIuLWNvbGxhYnNlIHtcbiAgdG9wOiA1NXB4O1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyO1xuICB0cmFuc2l0aW9uOiB0b3AgMC41cztcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgLnNpZGViYXItdGVhY2hlciB7XG4gICAgdG9wOiAxMzNweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICAgIHdpZHRoOiAzNDNweDtcbiAgfVxufVxuaDEge1xuICBmb250LXNpemU6IDRyZW07XG4gIGxldHRlci1zcGFjaW5nOiAwLjExODc1cmVtO1xuICBsaW5lLWhlaWdodDogNC4zNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5oMiB7XG4gIGZvbnQtc2l6ZTogM3JlbTtcbiAgbGluZS1oZWlnaHQ6IDMuNjI1cmVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuaDMge1xuICBsaW5lLWhlaWdodDogMS42ODc1cmVtO1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICBoMiB7XG4gICAgZm9udC1zaXplOiAxLjYyNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMi4xMjVyZW07XG4gIH1cbiAgaDMge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU2MjVyZW07XG4gICAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgfVxufVxuIiwiLypcbi0tLVxubmFtZTogLnN0cmV0Y2hcbmNhdGVnb3J5OiBTaGFyZWQvSGVscGVyc1xudGFnOlxuIC0gaGVscGVyc1xuLS0tXG5cbmAuc3RyZXRjaGAgRGVmaW5lIGFuIGVsZW1lbnQgd2hpY2ggc3RyZXRjaGVzIHRvIHRoZSBzaXplIG9mIGl0cyBwYXJlbnRcblxuYGBgaHRtbFxuPGRpdiBjbGFzcz1cInJlbFwiIHN0eWxlPVwiaGVpZ2h0OiA1NXB4O1wiPlxuICAgPGRpdiBjbGFzcz1cInN0cmV0Y2ggc3R5bGVndWlkZS1ncmlkLXVuaXRcIj4gSSdtIHN0cmV0Y2hlZCB0byB0aGUgc2l6ZSBvZiBteSBwYXJlbnQ8L2Rpdj5cbjwvZGl2PlxuYGBgXG4qL1xuLnN0cmV0Y2gge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcbn1cblxuXG4vKlxuLS0tXG5uYW1lOiAuYWJzXG5jYXRlZ29yeTogU2hhcmVkL0hlbHBlcnNcbnRhZzpcbiAtIGhlbHBlcnNcbi0tLVxuXG5gLmFic2AgU2V0IHRoZSBlbGVtZW50IHBvc2l0aW9uIHRvIGFic29sdXRlXG4qL1xuLmFicyB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuXG4vKlxuLS0tXG5uYW1lOiAucmVsXG5jYXRlZ29yeTogU2hhcmVkL0hlbHBlcnNcbnRhZzpcbiAtIGhlbHBlcnNcbi0tLVxuXG5gLnJlbGAgU2V0IHRoZSBlbGVtZW50IHBvc2l0aW9uIHRvIHJlbGF0aXZlXG4qL1xuLnJlbCB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuXG4vKlxuLS0tXG5uYW1lOiAudmNlbnRlclxuY2F0ZWdvcnk6IFNoYXJlZC9IZWxwZXJzXG50YWc6XG4gLSBoZWxwZXJzXG4tLS1cblxuYC52Y2VudGVyYCBTZXRzIHZlcnRpY2FsLWFsaWduIHRvIG1pZGRsZVxuKi9cbi52Y2VudGVyIHtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuXG4vKlxuLS0tXG5uYW1lOiAuaGNlbnRlclxuY2F0ZWdvcnk6IFNoYXJlZC9IZWxwZXJzXG50YWc6XG4gLSBoZWxwZXJzXG4tLS1cblxuYC5oY2VudGVyYCBTZXRzIHRleHQtYWxpZ24gdG8gY2VudGVyXG4qL1xuLmhjZW50ZXIge1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cblxuLypcbi0tLVxubmFtZTogLmZsb2F0bGVmdFxuY2F0ZWdvcnk6IFNoYXJlZC9IZWxwZXJzXG50YWc6XG4gLSBoZWxwZXJzXG4tLS1cblxuYC5mbG9hdGxlZnRgIFNldHMgZmxvYXQgdG8gbGVmdFxuKi9cbi5mbG9hdGxlZnQge1xuXHRmbG9hdDogbGVmdDtcbn1cblxuLypcbi0tLVxubmFtZTogLmZsb2F0cmlnaHRcbmNhdGVnb3J5OiBTaGFyZWQvSGVscGVyc1xudGFnOlxuIC0gaGVscGVyc1xuLS0tXG5cbmAuZmxvYXRyaWdodGAgU2V0cyBmbG9hdCB0byByaWdodFxuKi9cbi5mbG9hdHJpZ2h0IHtcblx0ZmxvYXQ6IHJpZ2h0O1xufVxuXG4vKlxuLS0tXG5uYW1lOiAuaGlkZGVuXG5jYXRlZ29yeTogU2hhcmVkL0hlbHBlcnNcbnRhZzpcbiAtIGhlbHBlcnNcbi0tLVxuXG5gLmhpZGRlbmAgU2V0cyBkaXNwbGF5IHRvIG5vbmUuXG4qL1xuLmhpZGRlbiB7XG5cdGRpc3BsYXk6IG5vbmU7XG59IiwiLypcbi0tLVxubmFtZTogR2xvYmFsIFJlc2V0XG5jYXRlZ29yeTogU2hhcmVkXG4tLS1cblxuVGhlIGxlcm5ldHogY3NzIGxpYnJhcnkgaGFzIGEgc2V0IG9mIHJlc2V0IHN0eWxlIHRvIGhhdmUgdGhlIHNhbWUgYmVoYXZpb3VyIG9uIGV2ZXJ5IGJyb3dzZXIuXG5GdXJ0aGVybW9yZSB0aGlzIHJlc2V0IHNldHMgc29tZSBnbG9iYWwgdmFyaWFibGVzIGxpa2U6XG4gKiBib2R5IGZvbnQtZmFtaWxpZXNcbiAqIGJvZHkgbGluZS1oZWlnaHRcbiAqIGJvZHkgdGV4dC1yZW5kZXJpbmdcbiAqIDpyb290IGZvbnQtc2l6ZSBmb3IgcHJvcGVyIHJlbSBjb252ZXJzaW9uXG4qL1xuXG5cblxuaHRtbCwgYm9keSwgZGl2LCBzcGFuLCBvYmplY3QsIGlmcmFtZSxcbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHAsIGJsb2NrcXVvdGUsIHByZSxcbmFiYnIsIGFkZHJlc3MsIGNpdGUsIGNvZGUsXG5kZWwsIGRmbiwgZW0sIGltZywgaW5zLCBrYmQsIHEsIHNhbXAsXG5zbWFsbCwgc3Ryb25nLCBzdWIsIHN1cCwgdmFyLFxuYiwgaSxcbmRsLCBkdCwgZGQsIG9sLCB1bCwgbGksXG5maWVsZHNldCwgZm9ybSwgbGFiZWwsIGxlZ2VuZCxcbnRhYmxlLCBjYXB0aW9uLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0ciwgdGgsIHRkLFxuYXJ0aWNsZSwgYXNpZGUsIGNhbnZhcywgZGV0YWlscywgZmlnY2FwdGlvbiwgZmlndXJlLFxuZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgbWVudSwgbmF2LCBzZWN0aW9uLCBzdW1tYXJ5LFxudGltZSwgbWFyaywgYXVkaW8sIHZpZGVvIHtcblx0bWFyZ2luOjA7XG5cdHBhZGRpbmc6MDtcblx0Ym9yZGVyOjA7XG5cdG91dGxpbmU6MDtcblx0Zm9udC1zaXplOmluaGVyaXQ7XG5cdHZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO1xufVxuXG46cm9vdCB7XG5cdGZvbnQtc2l6ZTogMTZweDtcbn1cblxuaHRtbCB7XG5cdGZvbnQtc2l6ZTogMTAwJTtcbn1cblxuYm9keSB7XG5cdGxpbmUtaGVpZ2h0OiBAdGV4dC1saW5lLWhlaWdodDtcblx0Y29sb3I6IEB0ZXh0LWNvbG9yO1xuXHRmb250LWZhbWlseTogQGZvbnQtZmFtaWx5O1xuXHR0ZXh0LXJlbmRlcmluZzogQHRleHQtcmVuZGVyaW5nO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiBAYm9keS1jb2xvcjtcbn1cblxuYXJ0aWNsZSxhc2lkZSxkZXRhaWxzLGZpZ2NhcHRpb24sZmlndXJlLFxuZm9vdGVyLGhlYWRlcixoZ3JvdXAsbWVudSxuYXYsc2VjdGlvbiB7XG5cdGRpc3BsYXk6YmxvY2s7XG59XG5cblxuc2VsZWN0IHtcblx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xufVxuXG50ZXh0YXJlYSB7XG5cdHdpZHRoOjEwMCU7XG59XG5cbnRhYmxlIHtcblx0Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO1xuXHRib3JkZXItc3BhY2luZzowO1xufVxuXG4vL1xuLy8gMS4gQ29ycmVjdCBjb2xvciBub3QgYmVpbmcgaW5oZXJpdGVkLlxuLy8gICAgS25vd24gaXNzdWU6IGFmZmVjdHMgY29sb3Igb2YgZGlzYWJsZWQgZWxlbWVudHMuXG4vLyAyLiBDb3JyZWN0IGZvbnQgcHJvcGVydGllcyBub3QgYmVpbmcgaW5oZXJpdGVkLlxuLy8gMy4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4vL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBjb2xvcjogaW5oZXJpdDsgLy8gMVxuICBmb250OiBpbmhlcml0OyAvLyAyXG4gIG1hcmdpbjogMDsgLy8gM1xufVxuXG5cbi8vXG4vLyBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsuXG4vL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuXG5cbi8qXG4gKiBOb3JtYWxpemUgdGhlIGJlaGF2aW91ciBvZiBhbGwgYnJvd3NlcnNcbiAqXG4gKiBJbnN0ZWFkIG9mIHNldHRpbmcgYm94LXNpemluZyBmaXggb24gYWxsIGVsZW1lbnRzIHdlIG9ubHkgc2V0IGl0IG9uIHRoZSByb290IGVsZW1lbnRcbiAqIGFuZCB0ZWxsIGFsbCBlbGVtZW50cyB0byBpbmhlcml0IGl0J3MgcHJvcGVydHkgZnJvbSB0aGUgcGFyZW50XG4gKiBUaGF0IHdheSBpdCdzIHBvc3NpYmxlIHRvIG92ZXJ3cml0ZSB0aGUgYm94LXNpemluZyBhbnl3aGVyZSB3aGlsZSBrZWVwaW5nIHByb3BlciBpbmhlcml0YW5jZVxuICovXG5odG1sIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbiosICo6YmVmb3JlLCAqOmFmdGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDtcbn1cblxuYSB7XG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0Y29sb3I6IEBhY3Rpb24tY29sb3I7XG5cblx0PiBpbWcge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG59XG4iLCIvKlxuLS0tXG5uYW1lOiAuYnV0dG9uLWRlZmF1bHRcbmNhdGVnb3J5OiBCdXR0b25zL0RlZmF1bHRcbnRhZzpcbiAtIGNvbXBvbmVudFxuIC0gYnV0dG9uXG4tLS1cblxuVGhlIGRlZmF1bHQgYnV0dG9uIHNldHMgc29tZSBiYXNpYyBwcm9wZXJ0aWVzIHNvIGl0IGlzIHdvcmtpbmcgYXMgYSBgYnV0dG9uYCBvciBgYWAgdGFnLlxuXG5BbiBleGFtcGxlIGZvciBhIGJ1dHRvbjpcbmBgYGphZGVcbmJ1dHRvbi5idXR0b24tZGVmYXVsdCBNeSBCdXR0b25cbmBgYFxuXG5BbiBleGFtcGxlIGZvciBhIGxpbms6XG5gYGBqYWRlXG5hLmJ1dHRvbi1kZWZhdWx0IE15IExpbmtcbmBgYFxuKi9cbi5idXR0b24tZGVmYXVsdCB7XG5cdGFwcGVhcmFuY2U6IG5vbmU7XG5cdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRib3JkZXI6IG5vbmU7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRvdXRsaW5lOiBub25lO1xufSIsIi8qXG4tLS1cbm5hbWU6IC5ncmlkXG5jYXRlZ29yeTogTGF5b3V0L0dyaWRcbnRhZzpcbiAtIGNvbXBvbmVudFxuIC0gcmVzcG9uc2l2ZVxuY29tcGlsZTogdHJ1ZVxuLS0tXG5cbkEgc2ltcGxlIGdyaWQgc3lzdGVtIHRoYXQgd3JhcHMgY2hpbGRyZW4gbm9kZXMgYmFzZWQgb24gdGhlIHZpZXdwb3J0IHdpZHRoLlxuXG4jIyBTaW1wbGUgc2lkZSBieSBzaWRlIHJlbmRlcmluZ1xuXG5UaGUgZWFzaWVzdCB1c2UgY2FzZSBpcyB0byB1c2Ugc2ltcGxlIGAuY29sLTFgLCBgLmNvbC0xLTJgLCBgLmNvbC0xLTNgLCBgLmNvbC0xLTRgIGZvciBhIHNpZGUtYnktc2lkZSByZW5kZXJpbmcuXG5UaGUgZGVmYXVsdCB2YWx1ZSBmb3IgYWxsIGNoaWxkIGVsZW1lbnRzIG9mIGEgYC5ncmlkYCBpcyBlcXVpdmFsZW50IHRvIGAuY29sLTFgLCBzbyBmb3Igb25seSBvbmUgY2hpbGQgaXQgd2lsbCBzcGFuIHRoZSBmdWxsIHdpZHRoLlxuXG5gYGBqYWRlXG5kaXYuZ3JpZFxuXHRkaXYuY29sLTEtMiBcblx0XHRkaXYuYWlnaXMtZGVidWcgY29sLTEtMlxuXHRkaXYuY29sLTEtMlxuXHRcdGRpdi5haWdpcy1kZWJ1ZyBjb2wtMS0yXG5gYGBcbmBgYGphZGVcbmRpdi5ncmlkXG5cdGRpdi5jb2wtMS00IFxuXHRcdGRpdi5haWdpcy1kZWJ1ZyBjb2wtMS00XG5cdGRpdi5jb2wtMy00XG5cdFx0ZGl2LmFpZ2lzLWRlYnVnIGNvbC0zLTRcbmBgYFxuXG4jIyBMYXlvdXRzIG9uIGRpZmZlcmVudCBkZXZpY2VzXG5cblRoZSBicmVha3BvaW50cyBmb3IgZGlmZmVyZW50IHNjcmVlbiBzaXplcyBhcmUgc3BlY2lmaWVkIGluIHRoZSBgQGdyaWQtYnJlYWstcG9pbnRzYCwgYEBncmlkLWJyZWFrLWxhYmVsc2AgdmFyaWFibGVzLlxuVGhlIGRlZmF1bHQgdmFsdWVzIGRlZmluZSB0d28gYnJlYWtwb2ludHMgd2l0aCBsYWJlbHM6IGAubWVkaXVtLVgtWGAgYW5kIGAubGFyZ2UtWC1YYC5cblNvIGFuIGV4YW1wbGUgZ3JpZCB3aXRoIHR3byBicmVha3BvaW50cyBsb29rcyBsaWtlIHRoaXM6XG5cbmBgYGphZGVcbmRpdi5ncmlkXG5cdGRpdi5tZWRpdW0tMS0yLmxhcmdlLTEtNC54bGFyZ2UtMS0yXG5cdFx0ZGl2LmFpZ2lzLWRlYnVnIGNvbC0xIG1lZGl1bS0xLTIgbGFyZ2UtMS00XG5cdGRpdi5tZWRpdW0tMS0yLmxhcmdlLTEtNC54bGFyZ2UtMS0yXG5cdFx0ZGl2LmFpZ2lzLWRlYnVnIGNvbC0xIG1lZGl1bS0xLTIgbGFyZ2UtMS00XG5cdGRpdi5jb2wtMS0yLm1lZGl1bS0xLTIubGFyZ2UtMS00LnhsYXJnZS0xLTJcblx0XHRkaXYuYWlnaXMtZGVidWcgY29sLTEtMiBtZWRpdW0tMS0yIGxhcmdlLTEtNFxuXHRkaXYuY29sLTEtMi5tZWRpdW0tMS0yLmxhcmdlLTEtNC54bGFyZ2UtMS0yXG5cdFx0ZGl2LmFpZ2lzLWRlYnVnIGNvbC0xLTIgbWVkaXVtLTEtMiBsYXJnZS0xLTRcbmBgYFxuXG4qKk5vdGU6KiogVGhlIGBjb2wtMWAgY2xhc3NlcyBhcmUgbm90IHByZXNlbnQgb24gdGhlIGZpcnN0IHR3byBub2Rlcywgc2luY2UgdGhpcyBpcyB0aGUgZGVmYXVsdCBiZWhhdmlvdXIuXG5cblxuIyMgUmV2ZXJzZSBvcmRlclxuXG5UbyByZXZlcnNlIHRoZSBvcmRlciBpbiB3aGljaCB0aGUgY29sdW1ucyBhcmUgZGlzcGxheWVkLCB5b3UgY2FuIGFkZCB0aGUgbW9kaWZpZXIgY2xhc3MgYC4tcmV2ZXJzZWAgdG8geW91ciBncmlkLlxuVGhlIGNvbHVtbnMgd2lsbCBiZSBpbiBET00gb3JkZXIgd2hlbiB2aWV3cG9ydCBzd2l0Y2hlcyB0byBzbWFsbCBsYXlvdXQuXG5cbmBgYGphZGVcbmRpdi5ncmlkLi1yZXZlcnNlXG5cdGRpdi5jb2wtMS00XG5cdFx0ZGl2LmFpZ2lzLWRlYnVnIEZpcnN0IGNvbHVtbiBpbiBET01cblx0ZGl2LmNvbC0xLTRcblx0XHRkaXYuYWlnaXMtZGVidWcgU2Vjb25kIGNvbHVtbiBpbiBET01cblx0ZGl2LmNvbC0xLTRcblx0XHRkaXYuYWlnaXMtZGVidWcgVGhpcmQgY29sdW1uIGluIERPTVxuXHRkaXYuY29sLTEtNFxuXHRcdGRpdi5haWdpcy1kZWJ1ZyBGb3VydGggY29sdW1uIGluIERPTVxuYGBgXG4jIyBObyBndXR0ZXJcblxuSWYgeW91IGRvbnQgbmVlZCBhIHNwYWNpbmcvZ3V0dGVyIGJldHdlZW4gdGhlIGdyaWQgY29sdW1ucyB5b3UgY2FuIHVzZSB0aGUgbW9kaWZpZXIgYC4tbm9ndXR0ZXJgLlxuXG5gYGBqYWRlXG5kaXYuZ3JpZC4tbm9ndXR0ZXJcblx0ZGl2LmNvbC0xLTRcblx0XHRkaXYuYWlnaXMtZGVidWcgRmlyc3QgY29sdW1uIGluIERPTVxuXHRkaXYuY29sLTEtNFxuXHRcdGRpdi5haWdpcy1kZWJ1ZyBTZWNvbmQgY29sdW1uIGluIERPTVxuXHRkaXYuY29sLTEtNFxuXHRcdGRpdi5haWdpcy1kZWJ1ZyBUaGlyZCBjb2x1bW4gaW4gRE9NXG5cdGRpdi5jb2wtMS00XG5cdFx0ZGl2LmFpZ2lzLWRlYnVnIEZvdXJ0aCBjb2x1bW4gaW4gRE9NXG5gYGBcbiovXG5cbi5ncmlkIHtcblxuXHRtYXJnaW46IDAgLUBncmlkLWd1dHRlci8yO1xuXG5cdCY6YWZ0ZXIge1xuXHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0ZGlzcGxheTogdGFibGU7XG5cdFx0Y2xlYXI6IGJvdGg7XG5cdH1cblxuXHQ+ICoge1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR3aWR0aDoxMDAlO1xuXHRcdHBhZGRpbmc6IDAgQGdyaWQtZ3V0dGVyLzI7XG5cdH1cblxuXHQmLi1yZXZlcnNlID4gKiB7XG5cdFx0ZmxvYXQ6cmlnaHQ7XG5cdH1cblxuXG5cdCYuLW5vZ3V0dGVyIHtcblx0XHRtYXJnaW46IDA7XG5cblx0XHQ+ICoge1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHR9XG5cdH1cblxuXG5cdC5jb2wtMSB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cblx0LmNvbC0xLTIge1xuXHRcdHdpZHRoOiAxMDAlLzI7XG5cdH1cblx0LmNvbC0xLTMge1xuXHRcdHdpZHRoOiAxMDAlLzMqMTtcblx0fVxuXHQuY29sLTItMyB7XG5cdFx0d2lkdGg6IDEwMCUvMyoyO1xuXHR9XG5cdC5jb2wtMS00IHtcblx0XHR3aWR0aDogMTAwJS80KjE7XG5cdH1cblx0LmNvbC0zLTQge1xuXHRcdHdpZHRoOiAxMDAlLzQqMztcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZSBhbGwgbWVkaWEgYnJlYWtwb2ludHMgYmFzZWQgb24gdGhlIEBncmlkLWJyZWFrLXBvaW50cywgQGdyaWQtYnJlYWstbGFiZWxzIHZhcmlhYmxlcy5cblx0ICovXG5cdC5mb3IoIEBncmlkLWJyZWFrLXBvaW50cywge1xuXG5cdFx0QGxhYmVsOiBleHRyYWN0KCBAZ3JpZC1icmVhay1sYWJlbHMsIEBpICk7XG5cblx0XHRAbWVkaWEgYWxsIGFuZCAoIG1pbi13aWR0aDogQHZhbHVlICkge1xuXG5cdFx0XHQ+IC5Ae2xhYmVsfS0xIHtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHR9XG5cblx0XHRcdD4gLkB7bGFiZWx9LTEtMiB7XG5cdFx0XHRcdHdpZHRoOiAxMDAlLzI7XG5cdFx0XHR9XG5cblx0XHRcdD4gLkB7bGFiZWx9LTEtMyB7XG5cdFx0XHRcdHdpZHRoOiAxMDAlLzMqMTtcblx0XHRcdH1cblxuXHRcdFx0PiAuQHtsYWJlbH0tMi0zIHtcblx0XHRcdFx0d2lkdGg6IDEwMCUvMyoyO1xuXHRcdFx0fVxuXG5cdFx0XHQ+IC5Ae2xhYmVsfS0xLTQge1xuXHRcdFx0XHR3aWR0aDogMTAwJS80KjE7XG5cdFx0XHR9XG5cblx0XHRcdD4gLkB7bGFiZWx9LTMtNCB7XG5cdFx0XHRcdHdpZHRoOiAxMDAlLzQqMztcblx0XHRcdH1cblx0XHR9XG5cdH0pO1xufSIsIi8qXG4tLS1cbm5hbWU6IGltZy5yZXNwb25zaXZlXG5jYXRlZ29yeTogTGF5b3V0L0ltYWdlXG50YWc6XG4gLSByZXNwb25zaXZlXG5jb21waWxlOiB0cnVlXG4tLS1cblxuVGhpcyBjbGFzcyBtYWtlcyB0aGUgaW1hZ2Ugc2NhbGluZyB0byBpdHMgbWF4IHdpZHRoLlxuXG5gYGBqYWRlXG5pbWcucmVzcG9uc2l2ZShzcmM9J2h0dHA6Ly93d3cuYnl1aS5lZHUvaW1hZ2VzL2FncmljdWx0dXJlLWxpZmUtc2NpZW5jZXMvZmxvd2VyLmpwZycpXG5gYGBcbiovXG5pbWcucmVzcG9uc2l2ZSB7XG5cdG1heC13aWR0aDogMTAwJTtcblx0aGVpZ2h0OiBhdXRvO1xufVxuIiwiLypcbi0tLVxubmFtZTogLm1lZGlhLXJlc3BvbnNpdmVcbmNhdGVnb3J5OiBMYXlvdXQvTWVkaWFcbnRhZzpcbiAtIHJlc3BvbnNpdmVcbmNvbXBpbGU6IHRydWVcbi0tLVxuXG5gLm1lZGlhLXJlc3BvbnNpdmVgIC0gVGhpcyBtYWtlcyBhIHRoZSBgLm1lZGlhLXJlc3BvbnNpdmVgIGRpdiBhIGNvbnRhaW5lciBmb3IgYW55IG1lZGlhIGVsZW1lbnQgKGlmcmFtZSwgdmlkZW8sIC4uLiApIHRoYXQgcmVzcG9uc2l2ZSBzY2FsZXMgd2l0aCBhIGZpeCByYXRpby5cblRoZSBtZWRpYSBlbGVtZW50ICggY2hpbGQgKSBuZWVkcyB0aGUgY2xhc3MgYC5zdHJldGNoYCB0byBmdWxseSBmaWxsIG91dCB0aGUgcGFyZW50cyBzaXplLlxuXG5UaGUgYC5tZWRpYS1yZXNwb25zaXZlYCBjb21wb25lbnQgaGFzIHRvIHByZWRlZmluZWQgbW9kaWZpZXJzOiBgLi1tZWRpYS00LTNgLCBgLi1tZWRpYS0xNi05YCB0aGF0IGRlZmluZSBhIGZpeCByYXRpby5cblxuYGBgamFkZVxuZGl2Lm1lZGlhLXJlc3BvbnNpdmUuLW1lZGlhLTE2LTlcblx0aWZyYW1lLnN0cmV0Y2goc3JjPVwiaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1UQ2Q2UGZ4T3kwWVwiKVxuYGBgXG4qL1xuLm1lZGlhLXJlc3BvbnNpdmUge1xuXHR3aWR0aDogMTAwJTtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRwYWRkaW5nLWJvdHRvbTogNTAlO1xuXG5cdCYuLW1lZGlhLTQtMyB7XG5cdFx0cGFkZGluZy1ib3R0b206IDc1JTtcblx0fVxuXG5cdCYuLW1lZGlhLTE2LTkge1xuXHRcdHBhZGRpbmctYm90dG9tOiA1Ni4yNiVcblx0fVxufVxuIiwiLypcbi0tLVxubmFtZTogLnBhZ2UtZmx1aWRcbmNhdGVnb3J5OiBQYWdlL0ZsdWlkXG50YWc6XG4gLSByZXNwb25zaXZlXG5jb21waWxlOiB0cnVlXG4tLS1cblxuYC5wYWdlLWZsdWlkYCBjZW50ZXJzIHRoZSBwYWdlIGNvbnRlbnQgYW5kIGFkZHMgYSBwYWRkaW5nIHNvIHRoZSBwYWdlIHN0aWNrcyBub3QgdG8gdGhlIGJyb3dzZXIgdmlld3BvcnQuXG5GdXJ0aGVybW9yZSBpdCBoYXMgYSBtYXgtd2lkdGggYmFzZWQgb24gdGhlIGxhc3QgYEBncmlkLWJyZWFrLXBvaW50c2AgdmFsdWUuXG5cbmBgYGphZGVcbmRpdi5wYWdlLWZsdWlkXG5cdGRpdi5haWdpcy1kZWJ1ZyBTb21lIHBhZ2UgY29udGVudFxuYGBgXG5cbiMjIE1heC13aWR0aCBwYWdlXG5cblRvIGJyb2FkZW4gdGhlIHdpZHRoIG9mIHRoZSBwYWdlIHlvdSBjYW4gYWRkIHRoZSBtb2RpZmllciBgLi11bmxpbWl0ZWRgLiBUaHNpIHdpbGwgc3BhbiB0aGUgcGFnZSB0byB0aGUgZnVsbCB3aWR0aC5cblxuYGBgamFkZVxuZGl2LnBhZ2UtZmx1aWQuLXVubGltaXRlZFxuXHRkaXYuYWlnaXMtZGVidWcgU29tZSBwYWdlIGNvbnRlbnRcbmBgYFxuKi9cbi5wYWdlLWZsdWlkIHtcblxuXHRAbWF4LXdpZHRoLXBvaW50OiBleHRyYWN0KCBAZ3JpZC1icmVhay1wb2ludHMsIGxlbmd0aCggQGdyaWQtYnJlYWstcG9pbnRzICkgKTtcblx0XG5cdG1heC13aWR0aDogQG1heC13aWR0aC1wb2ludCArIDIgKiBleHRyYWN0KCBAcGFnZS1wYWRkaW5nLCAyICk7XG5cdG1hcmdpbjogYXV0bztcblx0cGFkZGluZzogQHBhZ2UtcGFkZGluZztcblxuXHQmLi11bmxpbWl0ZWQge1xuXHRcdG1heC13aWR0aDogbm9uZTtcblx0fVxufVxuIiwiLypcbi0tLVxubmFtZTogLnJvd1xuY2F0ZWdvcnk6IExheW91dC9Sb3dcbnRhZzpcbiAtIGNvbXBvbmVudFxuY29tcGlsZTogdHJ1ZVxuLS0tXG5cblRoaXMgc3R5bGluZyBhbGxvdyB0byBwbGFjZSBjb250YWluZXJzIGluIGEgcm93LiBUaGV5IHdpbGwgKipub3QqKiBicmVhayBhcyB0aGUgYC5ncmlkYCBidXQgcmVzaXplIHRoZW0gYWNjb3JkaW5nbHkuXG5Tb21lIGJlbmVmaXRzIG9mIHRoZSBgLnJvd2AgYXBwcm9hY2ggaXMgdGhlIGVhc3kgdmVydGljYWwgY2VudGVyaW5nIGFuZCB0aGUgdXNhZ2Ugb2YgdGhlIGAuY29sLWF1dG9gIGNsYXNzLlxuXG4jIyBCYXNpYyByb3cgd2l0aCB2ZXJ0aWNhbCBjZW50ZXJpbmdcblxuWW91IGNhbiB1c2UgdGhlIHNpemluZyBjbGFzc2VzIGAuY29sLVgtWGAgdG8gZGVmaW5lIHRoZSB3aWR0aCBvZiBhIGNvbHVtbiBhcyB0aGUgZm9sbG93aW5nIGV4YW1wbGUgc2hvd3MuIFxuXG5gYGBqYWRlXG5kaXYucm93XG5cdGRpdi5jb2wtMS00LmFpZ2lzLWRlYnVnIGNvbC0xLTQgd2l0aCBhIGxvdCBvZiB0ZXh0IHRoYXQgc3BhbnMgdGhlIGNvbHVtbi5cblx0ZGl2LmNvbC0zLTQuYWlnaXMtZGVidWcgY29sLTMtNCBjb250ZW50LlxuYGBgXG5cbiMjIEZpeGVkIHJvd1xuXG5UaGVyZSBpcyBhIGAuLWZpeGVkYCBtb2RpZmllciB3aGVyZSBlYWNoIGNvbHVtbiBoYXMgdGhlIHNhbWUgd2lkdGguXG5cbmBgYGphZGVcbmRpdi5yb3cuLWZpeGVkXG5cdGRpdi5haWdpcy1kZWJ1ZyBldmVubHkgc3ByZWFkb3V0IGNvbHVtblxuXHRkaXYuYWlnaXMtZGVidWcgZXZlbmx5IHNwcmVhZG91dCBjb2x1bW4gd2l0aCBtb3JlIGNvbnRlbnRcblx0ZGl2LmFpZ2lzLWRlYnVnIGV2ZW5seSBzcHJlYWRvdXQgY29sdW1uXG5cdGRpdi5haWdpcy1kZWJ1ZyBldmVubHkgc3ByZWFkb3V0IGNvbHVtbiB3aXRoIG11Y2ggbW9yZSBjb250ZW50IHRoYW4gdGhlIG90aGVyXG5cdGRpdi5haWdpcy1kZWJ1Zy52Y2VudGVyIGV2ZW5seSBzcHJlYWRvdXQgY29sdW1uIHdpdGggLnZjZW50ZXJcbmBgYFxuXG5cbiMjIEF1dG8gc2l6ZWQgY29sdW1uIHdpZHRoIGFuZCB2Y2VudGVyXG5cblRoZXJlIGlzIGEgc3BlY2lhbCBgLmNvbC1hdXRvYCBjbGFzcyB0aGF0IHJlc2l6ZXMgdGhlIGNvbHVtbiB0byB0aGUgc2l6ZSBvZiBpdHMgY29udGVudC5cblRoaXMgaXMgdXNlZnVsbCBmb3IgZXhhbXBsZSBpZiB5b3UgaGF2ZSBhIGZpeGVkIHNpemUgbG9nbyBhbmQgdGhlIHJlc3Qgb2YgdGhlIGhlYWRlciBoYXMgdG8gcmVzaXplLlxuXG5gYGBqYWRlXG5kaXYucm93Li1jZW50ZXJcblx0ZGl2LmNvbC1hdXRvLmFpZ2lzLWRlYnVnXG5cdFx0aW1nKHNyYz1cImh0dHA6Ly9wbGFjZWhvbGQuaXQvMTAweDEwMFwiKVxuXHRkaXYuY29sLTEuYWlnaXMtZGVidWcgVGhlIHJlc3Rcblx0ZGl2LmNvbC1hdXRvLmFpZ2lzLWRlYnVnXG5cdFx0aW1nKHNyYz1cImh0dHA6Ly9wbGFjZWhvbGQuaXQvMjAweDEwMFwiKVxuYGBgXG4qL1xuLnJvdyB7XG5cdGRpc3BsYXk6IHRhYmxlO1xuXHR3aWR0aDogMTAwJTtcblxuXHQmLi1maXhlZCB7XG4gICAgXHR0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuXHR9XG5cblx0Ji4tY2VudGVyIHtcblx0XHQ+ICoge1xuXHRcdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHR9XG5cdH1cblxuXHQmLi1ib3R0b20ge1xuXHRcdD4gKiB7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuXHRcdH1cblx0fVxuXG5cdCYuLXBhZGRlZCB7XG5cdFx0PiAqICsgKiB7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IEByb3ctZ3V0dGVyO1xuXHRcdH1cblx0fVxuXHRcblx0PiAqIHtcblx0XHRkaXNwbGF5OiB0YWJsZS1jZWxsO1xuXHRcdFxuXHRcdCYuY29sLTEge1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0fVxuXHRcdCYuY29sLTEtMixcblx0XHQmLmNvbC0yLTQge1xuXHRcdFx0d2lkdGg6IDEwMCUvMjtcblx0XHR9XG5cdFx0Ji5jb2wtMS0zIHtcblx0XHRcdHdpZHRoOiAxMDAlLzMqMTtcblx0XHR9XG5cdFx0Ji5jb2wtMi0zIHtcblx0XHRcdHdpZHRoOiAxMDAlLzMqMjtcblx0XHR9XG5cdFx0Ji5jb2wtMS00IHtcblx0XHRcdHdpZHRoOiAxMDAlLzQqMTtcblx0XHR9XG5cdFx0Ji5jb2wtMy00IHtcblx0XHRcdHdpZHRoOiAxMDAlLzQqMztcblx0XHR9XG5cdFx0XG5cdFx0Ji5jb2wtYXV0byB7XG5cdFx0XHR3aWR0aDphdXRvO1xuXHRcdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0XHR9XG5cdH1cbn1cblxuXG4iLCIuYW5zd2VyLXZpZXcge1xuXG4gICAgJi4td3Jvbmcge1xuICAgICAgICBjb2xvcjogcmVkO1xuICAgIH1cbiAgICAubGFiZWwge1xuICAgICAgICBtYXJnaW4tbGVmdDogcmVtKDE1cHgpO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IHJlbSgxMHB4KTtcbiAgICAgICAgcG9zaXRpb246cmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6YmxvY2s7XG4gICAgICAgID4uaW5wdXQge1xuICAgICAgICAgICAgdG9wOiByZW0oMTFweCk7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiByZW0oLTE1cHgpO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cblxuICAgIH1cblxuICAgIC5hbnN3ZXJ0ZXh0IHtcbiAgICAgICAgLy8gZGlzcGxheTogaW5saW5lO1xuICAgICAgICAvLyBtYXJnaW4tbGVmdDogcmVtKDE1cHgpO1xuICAgIH1cbn0iLCIuYXVkaW8tZWxlbWVudCB7XG5cbiAgICA+LmF1ZGlvIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICAgID4uY2FwdGlvbi1lbGVtZW50IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbn0iLCIuYm94LWNoYXB0ZXIge1xuICAgIC8vd2lkdGg6IDI5M3B4O1xuICAgIC8vaGVpZ2h0OiA0MjBweDtcbiAgICBtYXJnaW4tYm90dG9tOiA5MHB4O1xuICAgIFxuICAgIC5tYW5kYXRvcnkge1xuICAgICAgICBtaW4taGVpZ2h0OiAzNHB4O1xuICAgIH1cblxuICAgIC5pbWFnZSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxM3B4O1xuICAgICAgICBib3JkZXItYm90dG9tOiAzcHggc29saWQgQGJyYW5kLWNvbG9yO1xuICAgICAgICBtYXgtaGVpZ2h0OiAyMDNweDtcbiAgICAgICAgLy93aWR0aDogMjkycHg7XG4gICAgICAgIC8vaGVpZ2h0OiAxODBweDtcblxuICAgIH1cbiAgICAudGl0bGUge1xuICAgICAgICBtYXJnaW46IDE0cHggMDtcbiAgICAgICAgY29sb3I6IEB0ZXh0LWRhcmstY29sb3I7XG4gICAgICAgIGhlaWdodDogODBweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogJ1xcMDBhYidcbiAgICAgICAgfVxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFwwMGJiXCJcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5saW5rLWNvbnRhaW5lcjpob3ZlciB7XG4gICAgICAgIC5pbWFnZSB7XG4gICAgICAgICAgICBvcGFjaXR5OjAuODtcbiAgICAgICAgfVxuICAgICAgICAudGl0bGUge1xuICAgICAgICAgICAgY29sb3I6IEBicmFuZC1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jbGFzcyA+IHN2ZywgLmR1cmF0aW9uID4gc3ZnLCAubGFiZWwgPiBzdmcge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDlweDtcbiAgICAgICAgY29sb3I6IEBicmFuZC1jb2xvcjtcbiAgICB9XG5cbiAgICAuY2xhc3MsIC5kdXJhdGlvbiB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICB9XG5cbiAgICAubGFiZWwge1xuICAgICAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAzMnB4O1xuICAgIH1cbiAgICBcbiAgICAuZXhwb3J0IHtcbiAgICAgICAgLy90ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgPi5idXR0b24tZXhwb3J0IHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgICAgfVxuICAgICAgICA+LmJ1dHRvbi1leHBvcnQ6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDBweDtcbiAgICAgICAgfVxuXG4gICAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IEBsYXJnZS1icmVhay1wb2ludCkgeyBcbiAgICAuYm94LWNoYXB0ZXIge1xuICAgICAgICAuaW1hZ2Uge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzA3cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IEBzbWFsbC1icmVhay1wb2ludCkgeyBcbiAgICAuYm94LWNoYXB0ZXIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA2MHB4O1xuXG4gICAgICAgIC5pbWFnZSB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzODBweDtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgPi50aXRsZSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDYwcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuIiwiLmJ1dHRvbi1leHBvcnQge1xuICAgIGhlaWdodDogMzJweDtcbiAgICB3aWR0aDogOThweDtcblxuICAgIGNvbG9yOiBAYnJhbmQtY29sb3I7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgYm9yZGVyOiAycHggc29saWQgQGJyYW5kLWNvbG9yO1xuXG4gICAgZm9udC1zaXplOiByZW0oMTRweCk7XG4gICAgdGV4dC1hbGlnbjpjZW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IHJlbSgyOHB4KTtcblxuICAgIHRyYW5zaXRpb246IGFsbCAwLjFzO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogQGhvdmVyLWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaG92ZXItY29sb3I7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgIH1cblxuICAgICY6YWN0aXZlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiBAYnJhbmQtY29sb3I7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBicmFuZC1jb2xvcjtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgfVxufSIsIi5idXR0b24tZmlsdGVye1xuICAgIFxuICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuICAgIGNvbG9yOiAjMDAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNGNkY2RjY7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHBhZGRpbmc6IHJlbSgxNnB4KTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2ZmZjtcblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICB9XG5cbiAgICAmLi1hY3RpdmUge1xuICAgICAgICBjb2xvcjogQGJyYW5kLWNvbG9yO1xuICAgICAgICA+Lmljb24tY2hlY2tlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogQGJyYW5kLWNvbG9yO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcmlnaHQ6IHJlbSgxNnB4KTtcbiAgICAgICAgICAgIHRvcDogMjNweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogQGhvdmVyLWNvbG9yO1xuICAgIH1cblxuICAgICYuLWhpZGRlbiB7XG4gICAgICAgIGRpc3BsYXk6bm9uZTtcbiAgICB9XG4gICAgPi5pY29uLWZpbHRlciwgPi5pY29uLWNoZWNrZWQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgICYuLXRvZ2dsZSB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAYnJhbmQtY29sb3I7XG4gICAgICAgIFxuICAgICAgICA+Lmljb24tY2hlY2tlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgPi5pY29uLWZpbHRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbSgxNnB4KTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4vKlxuLmJ1dHRvbi1maWx0ZXIge1xuICAgIFxuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICB3aWR0aDogMTMycHg7XG4gICAgaGVpZ2h0OiA0NHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDIycHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogQGJyYW5kLWNvbG9yO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDZweCAwIHJnYmEoMCwwLDAsMC4zKTtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgZm9udC1zaXplOiByZW0oMTZweCk7XG4gICAgbGV0dGVyLXNwYWNpbmc6IHJlbSgwLjQ4cHgpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBob3Zlci1jb2xvcjtcbiAgICB9XG5cbiAgICAmLi1hY3RpdmV7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBkYXJrLWhvdmVyLWNvbG9yO1xuICAgICAgICBib3gtc2hhZG93OiAwIDZweCA2cHggMCByZ2JhKDAsMCwwLDAuMyk7XG4gICAgfVxuICAgICYuLWhpZGRlbiB7XG4gICAgICAgIGRpc3BsYXk6bm9uZTtcbiAgICB9XG59XG5cbiovIiwiLmJ1dHRvbi10ZWFjaGVyIHtcbiAgICBcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgd2lkdGg6IDQwMHB4O1xuICAgIHRleHQtYWxpZ246cmlnaHQ7XG4gICAgZGlzcGxheTpibG9jaztcbiAgICAvLyBkaXNwbGF5OiBmbGV4O1xuICAgIC8vIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgLy8gYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmb250LXdlaWdodDpib2xkO1xuICAgIFxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiBAaG92ZXItY29sb3I7XG4gICAgICAgIFxuICAgIH1cbiAgICBcbiAgICAuaWNvbiB7XG4gICAgICAgIGNvbG9yOiBAYnJhbmQtY29sb3I7XG4gICAgICAgIGhlaWdodDogMjZweDtcbiAgICAgICAgd2lkdGg6IDI2cHg7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDtcbiAgICAgICAgXG4gICAgICAgIC8vIG1hcmdpbi1yaWdodDo1cHg7XG4gICAgICAgIC8vIHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDtcbiAgICAgICAgLy8gJjpob3ZlciB7XG4gICAgICAgICAgICAvL2NvbG9yOiBAaG92ZXItY29sb3I7XG4gICAgICAgIC8vIH1cbiAgICB9XG5cbiAgICAmLi1jbG9zZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIGNvbG9yOiAjMDAwO1xuICAgICAgICAvLyBqdXN0aWZ5LWNvbnRlbnQ6c3RhcnQ7XG4gICAgICAgIC5pY29uIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xODBkZWcpO1xuICAgICAgICB9XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6IEBob3Zlci1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cbn0iLCIuY2FwdGlvbi1lbGVtZW50IHtcbiAgICA+IHB7XG4gICAgICAgIGNvbG9yOiBAdGV4dC1saWdodC1jb2xvcjtcbiAgICAgICAgZm9udC1zaXplOiByZW0oMTRweCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMjFweCk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgfVxufSIsIi5jYXJvdXNlbC1lbGVtZW50IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgXG4gICAgJi4tbGlnaHRib3gge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICAgICAgICB0b3A6IDBweDtcbiAgICAgICAgbGVmdDowcHg7XG4gICAgICAgIG1heC13aWR0aDoxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHotaW5kZXg6IDIwO1xuXG4gICAgICAgIC5jbG9zZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAzMnB4O1xuICAgICAgICAgICAgdG9wOiAzMnB4O1xuICAgICAgICAgICAgd2lkdGg6IDMycHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICAgICAgICB6LWluZGV4OiAxMDtcbiAgICAgICAgICAgIGN1cnNvcjpwb2ludGVyO1xuICAgICAgICB9XG5cblxuICAgICAgICAubmF2aS1sZWZ0LCAubmF2aS1yaWdodCB7XG4gICAgICAgICAgICB3aWR0aDogNDhweDtcbiAgICAgICAgICAgIGhlaWdodDogNDhweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5uYXZpLXJpZ2h0IHtcbiAgICAgICAgICAgIHJpZ2h0OiAwcHg7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpIHRyYW5zbGF0ZVkoMCUpO1xuXG4gICAgICAgIH1cbiAgICAgICAgLm5hdmktbGVmdCB7XG4gICAgICAgICAgICBsZWZ0OiAwcHg7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCUpO1xuICAgICAgICB9XG4gICAgICAgIC5vdXRlci1zdGFnZSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAgICAgLmlubmVyLXN0YWdlIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgLmxpZ2h0Ym94IHtcbiAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICAuY29udGFpbmVye1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDgwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC5pbm5lciB7XG4gXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaW1hZ2UtY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMHZoO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAxMDBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTppbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmltYWdlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAub3BlbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC5jYXB0aW9uLWVsZW1lbnQge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgLmNsb3NlIHtcbiAgICAgICAgZGlzcGxheTpub25lO1xuICAgIH1cblxuICAgIC5uYXZpLWxlZnQsIC5uYXZpLXJpZ2h0IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB6LWluZGV4OiA1O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAYnJhbmQtY29sb3I7XG4gICAgICAgIHdpZHRoOjQ0cHg7XG4gICAgICAgIGhlaWdodDogNDRweDtcbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIHdpZHRoOiA0NHB4O1xuICAgICAgICAgICAgaGVpZ2h0OjQ0cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubmF2aS1sZWZ0IHtcbiAgICAgICAgbGVmdDogMHB4O1xuICAgICAgICB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKVxuICAgIH1cblxuICAgIC5uYXZpLXJpZ2h0IHtcbiAgICAgICAgcmlnaHQ6IDBweDtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKSB0cmFuc2xhdGVZKDUwJSk7XG4gICAgfVxuXG4gICAgLm91dGVyLXN0YWdlIHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgLmlubmVyLXN0YWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBsZWZ0O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogbGVmdCAuNHMgZWFzZS1vdXQ7XG4gICAgICAgICAgICBsZWZ0OiAwcHg7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgIC5saWdodGJveCB7XG4gICAgICAgICAgICAgICAgLy9wb3NpdGlvbjpyZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDQ4NXB4OyAvL2lua2wgY2FwdGlvblxuICAgICAgICAgICAgICAgIC5jb250YWluZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNkE2QTZBO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDQ1MHB4O1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDoxMDAlO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIC5pbWFnZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDQ1MHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jazsgICBcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuY2FwdGlvbi1lbGVtZW50IHtcbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG59XG4iLCIuY2hhcHRlci1jb3ZlciB7XG4gICAgaGVpZ2h0OiA0NTBweDtcbiAgICAvL21hcmdpbi10b3A6IDEwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogODVweDtcbiAgICBcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICA+LnRpdGxlIHtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgd2lkdGg6IDk0MHB4O1xuICAgICAgICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwxKTtcbiAgICAgICAgZm9udC1zaXplOiByZW0oNjRweCk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBkZW1pO1xuICAgICAgICBsaW5lLWhlaWdodDogcmVtKDc0cHgpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiByZW0oMS45cHgpO1xuICAgICAgICB0ZXh0LXNoYWRvdzogMC4xcHggMC4xcHggMTZweCAjNmE2YTZhNzM7XG4gICAgfVxufVxuXG4vL3Rlc3RcbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogQHNtYWxsLWJyZWFrLXBvaW50KSB7IFxuICAgIC5jaGFwdGVyLWNvdmVyIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDQ5cHgpO1xuICAgICAgICBoZWlnaHQ6IDM0MHB4O1xuICAgICAgICA+LnRpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDMwcHgpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSg0MHB4KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5jb21tb24tcGFnZSB7XG4gICAgbWFyZ2luLXRvcDogcmVtKDg1cHgpO1xuXG4gICAgaDEsIGgyLCBoMyB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBjb2xvcjogYmxhY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDQ4cHgpOyAgICBcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSg1OHB4KTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oNjBweCk7XG4gICAgfVxuXG4gICAgPi5wYXJhZ3JhcGgtZWxlbWVudCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgyNXB4KTtcbiAgICB9XG4gICAgPi5pbWFnZS1lbGVtZW50IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDI1cHgpO1xuICAgIH1cbiAgICA+LmRlbGltaXRlci1saW5lIHtcbiAgICAgICAgbWFyZ2luOiByZW0oNTBweCkgMDtcbiAgICB9XG59XG5cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiBAc21hbGwtYnJlYWstcG9pbnQpIHtcbiAgICBcbiAgICAuY29tbW9uLXBhZ2Uge1xuICAgICAgICBtYXJnaW4tdG9wOiByZW0oMHB4KTtcbiAgICAgICAgJi4tbm9jb3ZlciB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0oMTgwcHgpO1xuICAgICAgICB9XG4gICAgICAgIGgxLCBoMiwgaDMge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMjZweCk7ICAgIFxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgzNHB4KTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgPi50aXRsZS1lbGVtZW50IHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSg0MHB4KTtcbiAgICAgICAgfVxuICAgICAgICA+LnBhcmFncmFwaC1lbGVtZW50IHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgxNXB4KTtcbiAgICAgICAgfVxuICAgICAgICA+LmltYWdlLWVsZW1lbnQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtKDE1cHgpO1xuICAgICAgICB9XG5cbiAgICAgICAgPi5kZWxpbWl0ZXItbGluZSB7XG4gICAgICAgICAgICBtYXJnaW46ICByZW0oMzBweCkgMDtcbiAgICAgICAgfVxuICAgIH1cblxufSIsIi5jb250YWluZXItcXVlc3Rpb25zIHtcbiAgICBtYXJnaW4tYm90dG9tOiByZW0oOTBweCk7XG4gICAgXG4gICAgLm1haW4tdGl0bGUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oNjBweCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIGNvbG9yOiBibGFjaztcbiAgICB9XG4gICAgLm51bWJlciB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSg0NnB4KTtcbiAgICAgICAgY29sb3I6IEBicmFuZC1jb2xvcjtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogNnB4IHNvbGlkIEBicmFuZC1jb2xvcjtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDAuMDVlbTtcbiAgICAgICAgZm9udC1zaXplOiByZW0oNDhweCk7XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBwYWRkaW5nOjAgMjBweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiBAc21hbGwtYnJlYWstcG9pbnQpIHsgXG4gICAgLmNvbnRhaW5lci1xdWVzdGlvbnMge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0oMzJweCk7XG4gICAgICAgID4ubnVtYmVyIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgyMHB4KTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDI2cHgpO1xuICAgICAgICAgICAgLy9saW5lLWhlaWdodDogcmVtKDM0cHgpO1xuICAgICAgICAgICAgLy9saW5lLWhlaWdodDogMC4wNWVtO1xuICAgICAgICB9XG4gICAgfVxuXG59XG4iLCIuY29udGFpbmVyLXRlYWNoZXIge1xuICAgIFxuXG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIEBicmFuZC1jb2xvcjtcbiAgICBcbiAgICAmLnNpZGViYXItbG9naW4ge1xuICAgICAgICBib3JkZXItYm90dG9tOiAwcHg7XG4gICAgfVxuXG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItYm90dG9tOm5vbmU7XG4gICAgfVxuICAgIFxuICAgIFxuICAgIC5tb2R1bGUtdGl0bGUge1xuICAgICAgICBwYWRkaW5nLXRvcDogMjBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICB9XG5cbiAgICAudGl0bGUudGl0bGUtZG93bmxvYWQge1xuICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgQGJyYW5kLWNvbG9yO1xuICAgICAgICBjdXJzb3I6IGF1dG87XG4gICAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDBweDtcbiAgICB9XG5cbiAgICAudGl0bGUge1xuICAgICAgICBtYXJnaW46IDBweCAtMThweCAwcHggLTI3cHg7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMHB4IDEwcHggMjdweDtcbiAgICAgICAgcG9zaXRpb246cmVsYXRpdmU7XG4gICAgICAgIGN1cnNvcjpwb2ludGVyO1xuXG4gICAgICAgICYuLWNoYXB0ZXIge1xuICAgICAgICAgICAgJi4tY3VycmVudCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCBAYnJhbmQtY29sb3I7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0U5RTlFOTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNFOUU5RTk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLi1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNFOUU5RTk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuXG4gICAgICAgIC50aXRsZS1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAzNHB4O1xuICAgICAgICB9XG4gICAgICAgIC5pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiBAYnJhbmQtY29sb3I7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDE0cHg7XG4gICAgICAgICAgICByaWdodDogMTdweDtcblxuICAgICAgICB9XG4gICAgfVxuICAgIC5jb250ZW50IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDMwcHg7XG5cbiAgICAgICAgLmNvbnRlbnQtc2VjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuXG4gICAgICAgICAgICAmLi1pbmxpbmUge1xuICAgICAgICAgICAgICAgIC5zZWN0aW9uLXRpdGxlIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTppbmxpbmU7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnNlY3Rpb24tdGl0bGUge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMjNweDtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdWwsIG9sIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMzBweDtcblxuICAgICAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG5cbiAgICAgICAgJi4tY2xvc2Uge1xuICAgICAgICAgICAgZGlzcGxheTpub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmV4cG9ydCB7XG4gICAgICAgID4uYnV0dG9uLWV4cG9ydCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDI5cHg7XG4gICAgICAgIH1cbiAgICAgICAgbWFyZ2luLXRvcDogMzJweDtcblxuICAgICAgICAuZG93bmxvYWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogIzAwMDtcbiAgICAgICAgICAgIG1hcmdpbjogMTFweCAwcHg7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogQGJyYW5kLWNvbG9yO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBwIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIzcHg7XG5cbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDM1cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IEBzbWFsbC1icmVhay1wb2ludCkgeyBcbiAgICAuY29udGFpbmVyLXRlYWNoZXIge1xuICAgICAgICAubW9kdWxlLXRpdGxlIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAuZXhwb3J0IHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG5cbn1cbiIsIi5kZWxpbWl0ZXItbGluZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLWJvdHRvbTogNnB4IHNvbGlkIEBicmFuZC1jb2xvcjtcbn1cblxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IEBzbWFsbC1icmVhay1wb2ludCkge1xuXG4gICAgLmRlbGltaXRlci1saW5lIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkIEBicmFuZC1jb2xvcjtcbiAgICAgICAgXG4gICAgfVxufSIsIi5mZWVkYmFjay1jb250YWluZXIge1xuICAgdGV4dC1hbGlnbjpyaWdodDtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgLmJ1dHRvbiB7XG4gICAgICAgcGFkZGluZzowO1xuICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgb3V0bGluZTpub25lO1xuICAgICAgIH1cbiAgIH1cbn0iLCIuZmVlZGJhY2stcGFuZWwge1xuICAgIHBhZGRpbmc6IC43NXJlbSAxLjI1cmVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigxODAsIDE4MCwgMTgwKTtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIG1hcmdpbi1ib3R0b206IHJlbSgzMHB4KTtcbiAgICBcbiAgICBcbiAgICAmLi1jb3JyZWN0IHtcbiAgICAgICAgY29sb3I6QHN1Y2Nlc3MtY29sb3I7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBzdWNjZXNzLWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgIGJvcmRlci1jb2xvcjogQHN1Y2Nlc3MtYm9yZGVyLWNvbG9yO1xuICAgICAgICBcbiAgICB9XG4gICAgJi4td3Jvbmcge1xuICAgICAgICBjb2xvcjpAYWxlcnQtY29sb3I7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBhbGVydC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgICBib3JkZXItY29sb3I6IEBhbGVydC1ib3JkZXItY29sb3I7XG4gICAgfVxufSIsIi5maWx0ZXItY29udGFpbmVyIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgcmlnaHQ6IDQwcHg7XG4gICAgYm90dG9tOiAwcHg7XG4gICAgei1pbmRleDoxMDtcbiAgICBib3gtc2hhZG93OiAwLjFweCAwLjFweCAxNnB4ICM2YTZhNmE1NDtcbn1cblxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IEBzbWFsbC1icmVhay1wb2ludCkge1xuICAgIC5maWx0ZXItY29udGFpbmVyIHtcbiAgICAgICAgcmlnaHQ6IDE2cHg7XG4gICAgfVxufSIsIltjbGFzc149XCJpY29uLVwiXSwgW2NsYXNzKj1cIiBpY29uLVwiXSB7XG4gICAgaGVpZ2h0OiAzMnB4O1xuICAgIHdpZHRoOiAzMnB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXM7XG5cbiAgICAmLi1zbWFsbCB7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgfVxuXG4gICAgJi4tc3ViIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHN1YjtcbiAgICB9XG5cbiAgICAmLi1pbnZlcnRlZCB7XG4gICAgICAgIHRyYW5zZm9ybTpyb3RhdGUoLTE4MGRlZyk7XG4gICAgfVxuXG4gICAgJi4tYnJhbmQge1xuICAgICAgICBjb2xvcjogQGJyYW5kLWNvbG9yO1xuICAgIH1cblxuICAgICYuLXJzcGFjZXIge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgfVxufVxuXG4uaWNvbmNvbnRhaW5lci4taW52ZXJ0ZWQgPiBbY2xhc3NePVwiaWNvbi1cIl0sXG4uaWNvbmNvbnRhaW5lci4taW52ZXJ0ZWQgPiBbY2xhc3MqPVwiIGljb24tXCJdIHtcbiAgICB0cmFuc2Zvcm06cm90YXRlKC0xODBkZWcpO1xufSIsIi5pbWFnZS1lbGVtZW50IHtcblxuICAgICYuLXNtYWxsIHtcbiAgICAgICAgbWF4LXdpZHRoOiA1MCU7XG4gICAgfVxufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IEBzbWFsbC1icmVhay1wb2ludCkge1xuICAgIC5pbWFnZS1lbGVtZW50IHtcbiAgICAgICAgJi4tc21hbGwge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5cbiIsIi5saWdodGJveCB7XG4gICAgLmNvbnRhaW5lciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgIC8vIC5pbWFnZSB7XG4gICAgICAgIC8vICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgLy8gICAgIG1heC1oZWlnaHQ6IDMwMHB4O1xuICAgICAgICAvLyAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIC8vICAgICBkaXNwbGF5OiBibG9jazsgICBcbiAgICAgICAgLy8gfVxuXG4gICAgICAgIC8vIC5jYXB0aW9uLWVsZW1lbnQge1xuICAgICAgICAvLyAgICAgdGV4dC1hbGlnbjpjZW50ZXI7XG4gICAgICAgIC8vIH1cbiAgICAgICAgXG4gICAgICAgIC5vcGVuIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgXG4gICAgICAgICAgICBib3R0b206IDhweDtcbiAgICAgICAgICAgIHJpZ2h0OjBweDtcbiAgICAgICAgICAgIHdpZHRoOiAzMnB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBtaW4td2lkdGg6MTAwJTtcbiAgICAub3BlbiwgLmNsb3NlIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIC5vcGVuIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICAgIC5jbG9zZSB7XG4gICAgICAgIGRpc3BsYXk6bm9uZTtcbiAgICB9XG5cbiAgICBcbiAgICAmLi1vcGVuIHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHotaW5kZXg6IDEwMDtcbiAgICAgICAgdG9wOiAwcHg7XG4gICAgICAgIGxlZnQ6MHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG4gICAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcblxuICAgICAgICAuY2FwdGlvbi1lbGVtZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgLmNvbnRhaW5lciB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICAgICAgd2lkdGg6IDgwJTtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAuaW5uZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAyMHB4IDBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgXG5cbiAgICAgICAgLmNsb3NlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcmlnaHQ6IDE2cHg7XG4gICAgICAgICAgICB0b3A6IDE2cHg7XG4gICAgICAgICAgICB3aWR0aDogMzJweDtcbiAgICAgICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgICAgfVxuICAgICAgICAub3BlbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNhcHRpb24ge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICAgICAgfVxuICAgIH1cbn0iLCIubWFpbi1uYXZpZ2F0aW9uIHtcbiAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICB0b3A6MDtcbiAgICB6LWluZGV4OjEwMDtcbiAgICBjb2xvcjogQGJyYW5kLWNvbG9yO1xuICAgIGxpbmUtaGVpZ2h0OiAyMXB4O1xuXG4gICAgLmhhbWJ1cmdlcjpob3ZlciB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICB1bCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6I2ZmZjtcbiAgICAgICAgZm9udC1zaXplOiByZW0oMThweCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMzBweCk7XG4gICAgICAgIFxuICAgICAgICBjb2xvcjojMDAwO1xuICAgIH1cbiAgICBsaSB7XG4gICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgzMHB4KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBkaXNwbGF5OmJsb2NrO1xuICAgICAgICBwYWRkaW5nOiA4cHggMCA4cHggMjBweDtcbiAgICAgICAgYSB7XG4gICAgICAgICAgICBjb2xvcjogIzAwMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5sZXZlbDEge1xuICAgICAgICB3aWR0aDogcmVtKDM4MHB4KTtcbiAgICAgICAgLy9UT0RPOlxuICAgICAgICBib3gtc2hhZG93OiAxcHggMXB4ICBoc2xhKDAsIDAlLCAwJSwgMC4yNSk7XG4gICAgICAgIFxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOkBkYXJrLWhvdmVyLWNvbG9yO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAuYm9vaywgLmltcHJlc3N1bSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6MjBweDtcbiAgICAgICAgfVxuICAgICAgICAuaW1wcmVzc3VtOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiBAZGFyay1ob3Zlci1jb2xvcjtcbiAgICAgICAgfVxuICAgICAgICAuaWNvbiB7XG4gICAgICAgICAgICB3aWR0aDogMzZweDtcbiAgICAgICAgICAgIGhlaWdodDogMThweDtcbiAgICAgICAgICAgIGNvbG9yOiBAYnJhbmQtY29sb3I7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICByaWdodDogMjBweDtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgJi4tYWN0aXZlIHtcbiAgICAgICAgICAgIC5ib29rOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTIwcHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogNnB4IDAgNnB4IDM3cHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCBAYnJhbmQtY29sb3I7XG4gICAgICAgICAgICAgICAgY29sb3I6IEBicmFuZC1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5pY29uIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmxldmVsMiB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjojZjZmNmY2O1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMjdweDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTIwcHg7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgbGkgYXtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTpibG9jaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbGk6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBAZGFyay1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfSAgICBcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmxldmVsMTpmaXJzdC1jaGlsZDpob3ZlciB7XG4gICAgICAgIGNvbG9yOiBAaG92ZXItY29sb3I7XG4gICAgfVxuICAgIC4tY2xvc2Uge1xuICAgICAgICBkaXNwbGF5Om5vbmU7XG4gICAgfVxufVxuXG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogQHNtYWxsLWJyZWFrLXBvaW50KSB7XG4gICAgLm1haW4tbmF2aWdhdGlvbiB7XG4gICAgICAgIC5sZXZlbDEge1xuICAgICAgICAgICAgd2lkdGg6IHJlbSgzNDBweCk7XG4gICAgICAgIH1cbiAgICB9XG59IiwiLm1vZHVsZS1sYWJlbCB7XG4gICAgY29sb3I6IEB0ZXh0LWxpZ2h0LWNvbG9yO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuXG4gICAgJi4taGFsZiB7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG4gICAgXG4gICAgLmljb24ge1xuICAgICAgICBjb2xvcjogQGJyYW5kLWNvbG9yO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDlweDtcbiAgICB9XG4gICAgXG59IiwiLnBhZ2UtZmx1aWQge1xuICAgIHBhZGRpbmc6IDAgcmVtKDE2cHgpO1xuICAgIG1heC13aWR0aDogcmVtKDYxMHB4KzE2cHgrMTZweCk7XG59XG5cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiBAc21hbGwtYnJlYWstcG9pbnQpIHsgXG4gICAgLmNvbnRlbnQgJiAucGFnZS1mbHVpZCB7XG4gICAgICAgIHBhZGRpbmc6IDAgMDtcbiAgICB9XG59IiwiLnBhZ2UtZm9vdGVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAgQGJyYW5kLWNvbG9yO1xuICAgIG1hcmdpbi10b3A6IDIwMHB4O1xuICAgIGhlaWdodDogODBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAudGV4dCB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBtYXJnaW4tbGVmdDogMzJweDtcbiAgICAgICAgLmltcHJlc3N1bSB7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgfVxuICAgIH1cblxufVxuXG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogQHNtYWxsLWJyZWFrLXBvaW50KSB7IFxuICAgIC5wYWdlLWZvb3RlciB7XG4gICAgICAgIG1hcmdpbi10b3A6IDE2MHB4O1xuICAgIH1cbn1cblxuXG4iLCIucGFnZS1oZWFkZXIge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6MDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHotaW5kZXg6IDEwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgXG4gICAgLmJvcmRlci1ib3R0b20ge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTFweDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDE2cHg7XG4gICAgfVxuXG4gICAgLmxvZ28tc2VjdGlvbiB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDgwcHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IEBicmFuZC1jb2xvcjtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDBweDtcbiAgICAgICAgXG4gICAgICAgIC50aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgzM3B4KTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oNTBweCk7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogcmVtKDAuODVweCk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICB9XG5cbiAgICAgICAgLmxvZ297XG4gICAgICAgICAgICB3aWR0aDogOTZweDtcbiAgICAgICAgICAgIGhlaWdodDogMjVweDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMXB4O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA1MHB4O1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMjRweDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG5cbiAgICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiBcbiAgICBcblxuICAgIC5tYWluLW5hdmlnYXRpb24ge1xuICAgICAgICBkaXNwbGF5OmlubGluZS1ibG9jaztcbiAgICB9XG4gICAgLmJ1dHRvbi1sb2dpbiB7XG4gICAgICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tbGVmdDogMzJweCsyMHB4O1xuICAgICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDtcbiAgICAgICAgXG4gICAgICAgIGEge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMThweCk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDI2cHgpO1xuICAgICAgICAgICAgY29sb3I6IEB0ZXh0LWRhcmstY29sb3I7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG5cbiAgICAgICAgICAgIC5uYXZpLXRleHQge1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LWJvdHRvbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRleHQtdG9wO1xuICAgICAgICAgICAgICAgIGNvbG9yOiBAYnJhbmQtY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYnV0dG9uLWxvZ2luOmhvdmVyIGEge1xuICAgICAgICBjb2xvcjpAaG92ZXItY29sb3I7XG4gICAgfVxuICAgIC5idXR0b24tbG9naW46YWN0aXZlIGEge1xuICAgICAgICBjb2xvcjogQGRhcmstaG92ZXItY29sb3I7XG4gICAgfVxuXG4gICAgLnNpZGViYXItdGVhY2hlciB7XG4gICAgICAgIHJpZ2h0OjA7XG4gICAgfVxuXG4gICAgLnNpdGUtdGl0bGUge1xuICAgICAgICBkaXNwbGF5Om5vbmU7XG4gICAgfVxuICAgIC5ob21lLWJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6bm9uZTtcbiAgICB9XG5cbiAgICAvLyAmLi1jb2xsYWJzZS1vdXQge1xuICAgIC8vICAgICAubWFpbi1sb2dvIHtcbiAgICAvLyAgICAgICAgIGhlaWdodDogNDBweDtcbiAgICAvLyAgICAgICAgIHRyYW5zaXRpb246IGhlaWdodCAwLjVzO1xuICAgIC8vICAgICAgICAgLy9tYXJnaW4tdG9wOiAwcHg7XG4gICAgLy8gICAgIH1cbiAgICAvLyB9XG5cblxuICAgICYuLWNvbGxhYnNlIHtcbiAgICAgICAgXG4gICAgICAgIHBhZGRpbmctdG9wOiAwcHg7XG5cbiAgICAgICAgLmxvZ28tc2VjdGlvbiB7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICBoZWlnaHQ6IDBweDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGhlaWdodCAwLjVzO1xuICAgICAgICB9XG5cbiAgICAgICAudGl0bGUge1xuICAgICAgICAgICBkaXNwbGF5Om5vbmU7XG4gICAgICAgfVxuXG5cbiAgICAgICAuc2l0ZS10aXRsZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjpyZWxhdGl2ZTtcbiAgICAgICAgICAgIGxlZnQ6IDc1cHg7XG4gICAgICAgICAgICB3aWR0aDoxMDAlO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIGRpc3BsYXk6dGFibGUtY2VsbDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcbiAgICAgICB9XG4gICAgICAgLmhvbWUtYnV0dG9uIHtcblxuICAgICAgICAgICAgZGlzcGxheTp0YWJsZS1jZWxsO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDUwcHg7XG4gICAgICAgICAgICAuaWNvbntcbiAgICAgICAgICAgICAgICBkaXNwbGF5OmlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBoZWlnaHQ6MjZweDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjZweDtcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjp0b3A7XG4gICAgICAgICAgICB9XG5cbiAgICAgICB9XG4gICAgfVxufVxuXG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogQGxhcmdlLWJyZWFrLXBvaW50KSB7IFxuICAgIC5wYWdlLWhlYWRlciB7XG4gICAgICAgICYuLWNvbGxhYnNlIHtcbiAgICAgICAgICAgIC5zaXRlLXRpdGxlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5Om5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiBAc21hbGwtYnJlYWstcG9pbnQpIHsgXG4gICAgLnBhZ2UtaGVhZGVyIHtcblxuICAgICAgICAmLi1jb2xsYWJzZSB7XG4gICAgICAgICAgICAuc2l0ZS10aXRsZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTpub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmxvZ28tc2VjdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OmJsb2NrO1xuICAgICAgICAgICAubG9nb3tcbiAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDE0cHg7XG4gICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA5cHg7XG4gICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgICAgICAgICAgICAgXG4gICAgICAgICAgIH1cbiAgICAgICAgICAgLnRpdGxlIHtcbiAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDI5cHgpO1xuICAgICAgICAgICAgICAgLy9sZXR0ZXItc3BhY2luZzogcmVtKDAuNTdweCk7XG4gICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xuICAgICAgICAgICB9XG4gICAgICAgfVxuXG4gICAgICAgIC5idXR0b24tbG9naW4ge1xuICAgICAgICAgICAgLm5hdmktdGV4dCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTpub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5idXR0b24tdGVhY2hlciB7XG4gICAgICAgICAgICB3aWR0aDogMzBweDtcbiAgICAgICAgICAgIC5uYXZpLXRleHQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6bm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiB9XG4iLCIucGFnZS1sYXlvdXQge1xuXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjphdXRvO1xuXG5cbiAgICAmID4gLmNvbnRlbnQge1xuICAgICAgICBwYWRkaW5nLXRvcDogMTYycHg7XG5cbiAgICAgICAgJi4tc2lkZWJhciB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0MDBweDtcbiAgICAgICAgfVxuXG5cbiAgICB9XG5cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiBAc21hbGwtYnJlYWstcG9pbnQpIHsgXG4gICAgLnBhZ2UtbGF5b3V0IHtcbiAgICBcbiAgICAgICAgJiA+IC5jb250ZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMTUycHg7XG4gICAgXG4gICAgICAgICAgICAmLi1zaWRlYmFyIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwcHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6MHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG59IiwiLnBhZ2Utb3ZlcnZpZXcge1xuXG4gICAgbWF4LXdpZHRoOiByZW0oOTQwcHgpO1xuXG4gICAgLmludHJvZHVjdGlvbiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSg4MHB4KTtcbiAgICAgICAgLy93aWR0aDogOTQwcHg7XG4gICAgICAgIGNvbG9yOiAjMDAwMDAwO1xuICAgICAgICBmb250LXNpemU6IHJlbSgzOHB4KTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDUwcHg7XG4gICAgfVxufVxuXG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogQHNtYWxsLWJyZWFrLXBvaW50KSB7IFxuICAgIC5wYWdlLW92ZXJ2aWV3IHtcbiAgICAgICAgPi5pbnRyb2R1Y3Rpb24ge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMjZweCk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtKDM0cHgpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4iLCIucGFyYWdyYXBoLWVsZW1lbnQge1xuICAgIFxuICAgIGNvbG9yOiAjMDAwMDAwO1xuICAgICYuLWludHJvZHVjdGlvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtKDI2cHgpO1xuICAgICAgICBsaW5lLWhlaWdodDogcmVtKDM4cHgpO1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgIH1cbiAgICBcbiAgICAmLi1kZWZhdWx0IHtcbiAgICAgICAgZm9udC1zaXplOiByZW0oMjJweCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMzVweCk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgfVxuXG4gICAgc3Ryb25nLCBiIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgfVxuXG4gICAgdWwsIG9sIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDYwcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gICAgfVxuICAgIHVsIGxpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICB9XG5cbiAgICAuYWJicmV2aWF0aW9uIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDNweCBkb3R0ZWQgYmxhY2s7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuXG4gICAgICAgIGN1cnNvcjpoZWxwO1xuICAgICAgICAudG9vbHRpcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi4tcmlnaHQge1xuICAgICAgICAgICAgLnRvb2x0aXAge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLi1sZWZ0IHtcbiAgICAgICAgICAgIC50b29sdGlwIHtcbiAgICAgICAgICAgICAgICByaWdodDogMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYuLXRvcCB7XG4gICAgICAgICAgICAudG9vbHRpcCB7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAzMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYuLWJvdHRvbSB7XG4gICAgICAgICAgICAudG9vbHRpcCB7XG4gICAgICAgICAgICAgICAgdG9wOiAzMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYuLWJpZyB7XG4gICAgICAgICAgICAmLi1vcGVuLCAmOmhvdmVyIHsgXG4gICAgICAgICAgICAgICAgLnRvb2x0aXAge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDUwdnc7XG4gICAgICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi4tc2lkZWJhciB7XG4gICAgICAgICAgICAmLi1vcGVuLCAmOmhvdmVyIHsgXG4gICAgICAgICAgICAgICAgLnRvb2x0aXAge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIwMHB4O1xuICAgICAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgICAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG5cbiAgICAgICAgXG4gICAgICAgICYuLW9wZW4sICY6aG92ZXIge1xuICAgICAgICAgICAgLnRvb2x0aXAge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OjEwO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzFlMWUxZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMXB4IDFweCA1cHggMCByZ2JhKDAsMCwwLDAuNCk7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDNweCA1cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogQHNtYWxsLWJyZWFrLXBvaW50KSB7IFxuICAgIC5wYXJhZ3JhcGgtZWxlbWVudCB7XG4gICAgICAgICYuLWludHJvZHVjdGlvbiB7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgyMnB4KTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMzJweCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLi1kZWZhdWx0IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtKDE4cHgpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbSgyOHB4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHVsLCBvbCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgICAgICB9XG5cbiAgICB9XG59XG4iLCIucXVlc3Rpb24taXRlbSB7XG4gICAgbWFyZ2luLWJvdHRvbTogcmVtKDYwcHgpO1xuXG4gICAgPi5pY29uIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBjb2xvcjogQGJyYW5kLWNvbG9yO1xuICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgIHdpZHRoOiAzMHB4O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC1ib3R0b207XG4gICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIH1cblxuICAgIC50aXRsZSB7XG4gICAgICAgIGNvbG9yOiBAYnJhbmQtY29sb3I7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgxNXB4KTtcbiAgICAgICAgZm9udC1zaXplOiByZW0oMjZweCk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OmJvbGQ7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgIH1cblxuXG5cbiAgICAucGFyYWdyYXBoLWVsZW1lbnQsIC5pbWFnZS1lbGVtZW50LCB1bCwgb2wsIC5pZnJhbWUtZWxlbWVudCwgLnZpZGVvLWVsZW1lbnQsIC5hdWRpby1lbGVtZW50LCAuY29yb3VzZWwtZWxlbWVudCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG5cblxuICAgICAgICAmLi1ub21hcmdpbiB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICB1bCwgb2wge1xuICAgICAgICBtYXJnaW4tbGVmdDogNjBweDtcblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogQHNtYWxsLWJyZWFrLXBvaW50KSB7IFxuICAgIC5xdWVzdGlvbi1pdGVtIHtcbiAgICAgICAgLnRpdGxlIHsgXG4gICAgICAgICAgICBmb250LXNpemU6IHJlbSgyMnB4KTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMzJweCk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogZGVtaTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wYXJhZ3JhcGgtZWxlbWVudCwgLmltYWdlLWVsZW1lbnQsIHVsLCBvbCwgLmlmcmFtZS1lbGVtZW50LCAudmlkZW8tZWxlbWVudCwgLmF1ZGlvLWVsZW1lbnQsIC5jYXJvdXNlbC1lbGVtZW50IHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgICAgIH1cbiAgICB9XG4gfSIsIi5xdWVzdGlvbi10ZXh0IHtcbiAgICA+LmRyb3Bkb3duIHtcbiAgICAgICAgJi4td3Jvbmcge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGFsZXJ0LWJhY2tncm91bmQtY29sb3JcbiAgICAgICAgfVxuICAgICAgICAmLi1jb3JyZWN0e1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQHN1Y2Nlc3MtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cbn0iLCIuc2lkZWJhci1sb2dpbiB7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOkBicmFuZC1jb2xvcjtcbiAgICBtYXJnaW4tbGVmdDogLTI3cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMThweDtcbiAgICAvLyBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIFxuICAgIC8vcGFkZGluZy10b3A6IDEwcHg7XG4gICAgcGFkZGluZy1sZWZ0OiAyN3B4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDE4cHg7XG4gICAgXG4gICAgIGEge1xuICAgICAgICBjb2xvcjojZmZmO1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDA7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICAuaWNvbiB7XG4gICAgICAgIHdpZHRoOiAyMnB4O1xuICAgICAgICBoZWlnaHQ6IDIycHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTZweDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHN1YjtcbiAgICAgICAgXG5cbiAgICAgICAgJi5pY29uLWFycm93LWRvd24ge1xuICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06cm90YXRlKC05MGRlZyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB0b3A6MDtcbiAgICAgICAgICAgIHJpZ2h0Oi00MHB4O1xuICAgICAgICB9XG4gICAgfVxuICAgIC50aXRsZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGhvdmVyLWNvbG9yO1xuICAgICAgICBjdXJzb3I6cG9pbnRlcjtcbiAgICB9XG5cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiBAc21hbGwtYnJlYWstcG9pbnQpIHsgXG4gICAgLnNpZGViYXItbG9naW4ge1xuICAgICAgICAuaWNvbiB7XG4gICAgICAgICAgICAmLmljb24tYXJyb3ctZG93biB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IC0yMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLnNpZGViYXItdGVhY2hlciB7XG4gICAgXG4gICAgZm9udC1zaXplOiAxOHB4O1xuXG4gICAgJi4tdGVhY2hlciB7XG4gICAgICAgIC5jb250YWluZXItdGVhY2hlci5zb3J0LTAge1xuICAgICAgICAgICAgLnRpdGxlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiA1cHggc29saWQgQGJyYW5kLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgXG4gICAgICAgIH1cbiAgICB9XG4gICAgLmxhYmVsIHtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuXG4gICAgLm1ldGEtc3BhY2Uge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA2NHB4O1xuICAgIH1cblxuICAgIFxuICAgIGJhY2tncm91bmQtY29sb3I6I0Y2RjZGNjtcbiAgICBib3gtc2hhZG93OiAtMXB4IDFweCAwIDAgaHNsYSgwLCAwJSwgMCUsIDAuMjUpO1xuICAgIHBhZGRpbmctbGVmdDogMjdweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzNHB4O1xuXG4gICAgd2lkdGg6IDQxNnB4O1xuICAgIC8vcGFkZGluZy10b3A6IDEwcHg7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHJpZ2h0OiAwcHg7XG4gICAgLy90b3A6IDE3NHB4O1xuICAgIHRvcDogMTMzcHg7XG4gICAgYm90dG9tOiAwcHg7XG4gICAgZGlzcGxheTpibG9jaztcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIHotaW5kZXg6MTA7XG5cbiAgICAmLi1jbG9zZSB7XG4gICAgICAgIGRpc3BsYXk6bm9uZTtcbiAgICB9XG5cbiAgICAmLi1jb2xsYWJzZSB7XG4gICAgICAgIHRvcDogNTVweDtcbiAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgICAgICAgdHJhbnNpdGlvbjogdG9wIDAuNXM7XG4gICAgfVxuXG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogQHNtYWxsLWJyZWFrLXBvaW50KSB7IFxuICAgIC5zaWRlYmFyLXRlYWNoZXIge1xuICAgICAgICB0b3A6IDEzM3B4O1xuICAgICAgICAvL3JpZ2h0OiByZW0oMjVweCk7XG4gICAgICAgIC8vcmlnaHQ6NThweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDoyMHB4O1xuICAgICAgICB3aWR0aDozNDNweDtcbiAgICB9XG59IiwiaDEge1xuICAgIGZvbnQtc2l6ZTogcmVtKDY0cHgpO1xuICAgIGxldHRlci1zcGFjaW5nOiByZW0oMS45cHgpO1xuICAgIGxpbmUtaGVpZ2h0OiByZW0oNzBweCk7XG4gICAgZm9udC13ZWlnaHQ6bm9ybWFsO1xufVxuXG5oMiB7XG4gICAgZm9udC1zaXplOiByZW0oNDhweCk7ICAgIFxuICAgIGxpbmUtaGVpZ2h0OiByZW0oNThweCk7XG4gICAgZm9udC13ZWlnaHQ6bm9ybWFsO1xufVxuXG5oMyB7XG4gICAgbGluZS1oZWlnaHQ6IHJlbSgyN3B4KTtcbiAgICBmb250LXNpemU6IHJlbSgyMHB4KTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLy90ZXN0XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IEBzbWFsbC1icmVhay1wb2ludCkgeyBcbiAgICAgXG4gICAgaDIge1xuICAgICAgICBmb250LXNpemU6IHJlbSgyNnB4KTsgICAgXG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0oMzRweCk7XG4gICAgfVxuXG4gICAgXG4gICAgaDMge1xuICAgICAgICBsaW5lLWhlaWdodDogcmVtKDI1cHgpO1xuICAgICAgICBmb250LXNpemU6IHJlbSgxOHB4KTtcbiAgICAgfVxuIH0iXX0= */
