@charset "UTF-8";
/*
---
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: inherit;
  color: #000000;
  font-family: Arial, "Helvetica Neue", 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: #007894;
}
/*
---
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,
.button {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-color: #007894;
  padding: 0.5rem 0.75rem;
  color: #FFF;
  border: none;
  font-size: 1.25rem;
  display: inline-block;
  cursor: pointer;
  outline: none;
}
.button-default:focus {
  border: 1px solid #00252e;
  padding: 0.4375rem 0.6875rem;
}
/*
---
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: 58.75rem) {
  .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: 66.25rem;
  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: .button
category: Lernfragen/Button
tag:
 - component
 - button
compile: true
---

Basic styles for button. Extending the default-button of the css-lib

```jade
button.button Action
button.button.-disabled Disabled
```

Can also be used with an a tag

```jade
a.button Action
a.button.-disabled Disabled
```

*/
.button {
  border-radius: 4px;
  font-size: 1rem;
  font-weight: lighter;
  white-space: nowrap;
}
.button:focus {
  border: 1px solid #000000;
  padding: 0.4375rem 0.6875rem;
}
.button:hover {
  background-color: #00a1c7;
}
.button.-disabled {
  background-color: #24383d;
}
/*
---
name: .feedback-panel
category: Lernfragen/FeedbackPanel
tag:
 - component
 - feedback
compile: true
---

This styles a feedback message when the user has answered a question.

```jade
div.feedback Thanks for your answer.
div.feedback.correct Perfect, your answer is correct
div.feedback.wrong Sorry, but your answer is wrong.
```

## Correct 

The `.-correct` modifier styles the feedback message for a correcly answered question

```jade
div.feedback-container.-correct Perfect, your answer is correct
```

## Wrong 

The `.-wrong` modifier styles the feedback message for a wrong answered question

```jade
div.feedback-container.wrong Sorry, but your answer is wrong.
```
*/
.feedback-panel {
  border-radius: 4px;
  padding: 1.25rem 1.25rem;
  background-color: #cedbde;
  margin: 1.25rem 0.3125rem;
}
.feedback-panel.-correct {
  border: 1px solid #47882d;
  background-color: #f1f9ee;
  color: #1f3b14;
}
.feedback-panel.-wrong {
  border: 1px solid #9B2727;
  background-color: #fdf7f7;
  color: #4a1212;
}
/*
---
name: .form
category: Lernfragen
tag:
 - forms
compile: true
---

Styles for all form inputs.
*/
/***
 * Forms:
 */
/**
 * Input:
 * `.input` - A style for an inputfield 
 * 
 * 	@example
 * 	input.input
 */
.input {
  outline: none;
  line-height: 1.467em;
  padding: 8px 12px;
  -webkit-appearance: none;
  border-radius: 4px;
  box-shadow: none;
  border: 2px solid #a0bac0;
  /**
	 * Correct gap input:
	 * `.correct` - Feedback if the input is correct answered
	 * 
	 * 	@example
	 * 	input.input.correct
	 */
  /**
	 * Wrong gap input:
	 * `.wrong` - Feedback if the input is wrong answered
	 * 
	 * 	@example
	 * 	input.input.wrong
	 */
}
.input:focus {
  border: 2px solid #3b5359;
}
.input.-correct {
  border: 2px solid #47882d;
  background-color: #f1f9ee;
}
.input.-wrong {
  border: 2px solid #9B2727;
  background-color: #fdf7f7;
}
/**
 * Dropdown:
 * `select.dropdown` - Styling of a dropdown.
 * 
 * 	@example
 * 	select.dropdown
 * 		option(value="opt1") Option 1
 * 		option(value="opt2") Option 2
 */
select.dropdown {
  font-size: 1em;
  padding: 5px;
  border: 2px solid #a0bac0;
  height: 2.6em;
  border-radius: 4px;
  background-color: #FFF;
  margin: 2px;
  /**
	 * Correct dropdown input:
	 * `.correct` - Feedback if the input is correct answered
	 * 
	 * 	@example
	 * 	select.dropdown.correct
	 * 		option(value="opt1") Option 1
	 * 		option(value="opt2") Option 2
	 */
  /**
	 * Wrong dropdown input:
	 * `.wrong` - Feedback if the input is wrong answered
	 * 
	 * 	@example
	 * 	select.dropdown.wrong
	 * 		option(value="opt1") Option 1
	 * 		option(value="opt2") Option 2
	 */
}
select.dropdown.-correct {
  border: 2px solid #47882d;
  background-color: #f1f9ee;
}
select.dropdown.-wrong {
  border: 2px solid #9B2727;
  background-color: #fdf7f7;
}
/**
 * Freetext textarea:
 * `textarea` - Minimum sized textarea for free text input
 * 
 * 	@example
 * 	textarea.input
 */
textarea {
  min-height: 120px;
  width: 100%;
  box-sizing: border-box;
}
/**
 * Single- & MultipleChoice answer:
 * `.answer-view` - This style is for an answer on a multiple- or singlechoice question. It properly aligns the text and the checkbox.
 * 
 * 	@example
 * 	div.answer-view
 * 		label
 * 			input(type="radio")
 * 			p Pro TypeScript shows you how to write large-scale JavaScript programs that can run in any web browser or on any web server using Microsoft’s TypeScript language.
 * 	div.answer-view
 * 		label
 * 			input(type="checkbox")
 * 			p Pro TypeScript shows you how to write large-scale JavaScript programs that can run in any web browser or on any web server using Microsoft’s TypeScript language.
 */
.answer-view {
  min-height: 20px;
  margin: 5px 0;
  position: relative;
  padding: 5px;
  /**
	 * Correct answered view:
	 * `.answer-view.correct` - Feedback if the answer is correct
	 * 
	 * 	@example
	 * 	div.answer-view.correct
	 * 		label
	 * 			input(type="radio")
	 * 			p Correct
	 */
  /**
	 * Wrong answered view:
	 * `.answer-view.wrong` - Feedback if the answer is wrong
	 * 
	 * 	@example
	 * 	div.answer-view.wrong
	 * 		label
	 * 			input(type="checkbox")
	 * 			p Wrong
	 */
}
.answer-view label {
  display: inline-block;
  padding-left: 20px;
}
.answer-view input {
  position: absolute;
  margin-left: -20px;
  margin-top: 4px;
}
.answer-view p {
  margin: 0;
}
.answer-view.-correct {
  background-color: #f1f9ee;
  color: #47882d;
}
.answer-view.-correct p:after {
  content: ' \02713';
}
.answer-view.-wrong {
  color: #9B2727;
  background-color: #fdf7f7;
}
.answer-view.-wrong p:after {
  content: ' \02717';
}
/**
 * Drag node:
 * `.drag-node` - A node style that shows it can be dragged.
 * 
 * 	@example
 * 	div.drag-node My draggable element
 */
.drag-node {
  display: inline-block;
  cursor: move;
  border-radius: 4px;
  padding: 10px;
  border: 2px solid #a0bac0;
  background-color: #edf2f3;
  /**
	 * Correct placed drag node:
	 * `.drag-node.correct` - Feedback if the drag is correct placed
	 * 
	 * 	@example
	 * 	div.drag-node.correct Correct element
	 */
  /**
	 * Wrong placed drag node:
	 * `.drag-node.wrong` - Style wrong if wrong
	 * 
	 * 	@example
	 * 	div.drag-node.wrong Wrong element
	 */
}
.drag-node:hover {
  border: 2px solid #3b5359;
}
.drag-node.-correct {
  border: 2px solid #47882d;
  background-color: #f1f9ee;
}
.drag-node.-wrong {
  border: 2px solid #9B2727;
  background-color: #fdf7f7;
}
/**
 * Drop node:
 * `.drop-node` - A style for a node where drag elements can be dropped.
 * 
 * 	@example
 * 	div.drop-node
 * 		div.title Drop node
 * 		div.drags
 * 			div.drag-node Drag element
 */
.drop-node {
  border-radius: 4px;
  border: 1px solid #a0bac0;
  background-color: #777;
  margin: 10px 0;
}
.drop-node .title {
  padding: 5px;
  background-color: #FFF;
}
.drop-node .drag-node {
  margin: 5px;
}
.drop-node .drop-target {
  min-height: 52px;
  display: inline-block;
  width: 100%;
  vertical-align: top;
}
/**
 * Drag container:
 * `.drag-container` - A container that stores the drag nodes when they are not on a drop node.
 * 
 * 	@example
 * 	div.drag-container
 * 		div.drag-node Drag element
 */
.drag-container {
  background-color: #507077;
  margin: 10px 0;
}
.drag-container .drag-node {
  margin: 5px;
}
/**
 * Hotspot point:
 * `.hotspot-point` - A point that is shown on the hotspot image when it is clicked.
 * 
 * 	@example
 * 	div.hotspot-point
 */
.hotspot-point {
  height: 20px;
  width: 20px;
  border-radius: 12px;
  border: 2px solid #3b5359;
  background-color: #FFF;
  margin-left: -10px;
  margin-top: -10px;
  /**
	 * Correct hotspot point:
	 * `.hotspot-point.correct` - The style for a correct placed hotspot point
	 * 
	 * 	@example
	 * 	div(style="height:24px")
	 * 		div.hotspot-point.correct
	 */
  /**
	 * Wrong hotspot point:
	 * `.hotspot-point.wrong` - The style for a wrong placed hotspot point
	 * 
	 * 	@example
	 * 	div(style="height:24px")
	 * 		div.hotspot-point.wrong
	 */
}
.hotspot-point.-correct {
  border: 2px solid #47882d;
  background-color: #f1f9ee;
}
.hotspot-point.-wrong {
  border: 2px solid #9B2727;
  background-color: #fdf7f7;
}
/**
 * Hotspot rectangles:
 * `.hotspot-rect` - A visualization of the hotspot rectangles on an area
 * 
 * 	@example
 * 	div.img-area
 * 		div.stretch
 * 			div.hotspot-rect.abs(style="top:40%;left:40%;width:20%;height:20%;z-index: 1;")
 * 		img(src='http://www.byui.edu/images/agriculture-life-sciences/flower.jpg')
 */
.hotspot-rect {
  background-color: rgba(0, 0, 0, 0.2);
  border: 1px solid #FFF;
}
/***
 * Image-Areas (for hotspots / tooltips / ... ):
 */
/**
 * Image-Area:
 * `.img-area` Image area defines an area over the image in which image area elements can be placed
 *
 * 	@example
 * 	div.img-area
 * 		img.responsive-img(src='http://www.byui.edu/images/agriculture-life-sciences/flower.jpg')
 * 		div.abs( style="position: absolute; top: 10%; left: 10%; width: 30%; height: 30%; background-color: #FFF") Example Area
 */
.img-area {
  position: relative;
  display: inline-block;
  max-width: 100%;
}
.navigation-bar {
  padding-top: 10px;
  padding-bottom: 10px;
}
/*
---
name: .nextsolution-navigation,
category: Lernfragen/Navigation/NextPrev
tag:
 - component
 - navigation
 - nextprev
compile: true
---

A forward backward navigation.

```jade
.nextsolution-navigation
	button.button.prev Previous
	button.button.next Next
	button.button.solution Solution
	
```

*/
.nextsolution-navigation > .next:after,
.nextprev-navigation > .next:after {
  content: ' >';
}
.nextsolution-navigation > .prev,
.nextprev-navigation > .prev {
  margin-right: 0.625rem;
}
.nextsolution-navigation > .prev:before,
.nextprev-navigation > .prev:before {
  content: '< ';
}
.nextsolution-navigation > .solution:after,
.nextprev-navigation > .solution:after {
  content: ' ?';
}
/*
---
name: .points-navigation
category: Lernfragen/Navigation/Points
tag:
 - component
compile: true
---

A style for a points navigation

```jade
div.points-navigation
	div.point
	div.point.-active
	div.point.-hasinput
	div.point.-small
```
*/
.points-navigation {
  text-align: center;
}
.points-navigation .point {
  cursor: pointer;
  width: 0.9375rem;
  height: 0.9375rem;
  border-radius: 50%;
  border: 2px solid #999;
  display: inline-block;
}
.points-navigation .point:hover {
  border: 2px solid #777;
  background-color: #eee;
}
.points-navigation .point.-small {
  width: 0.625rem;
  height: 0.625rem;
}
.points-navigation .point.-hasinput {
  background-color: #eee;
}
.points-navigation .point.-active {
  border: 2px solid #666;
}
.points-navigation .point + .point {
  margin-left: 0.3125rem;
}
/*
---
name: .slide-container
category: Lernfragen
tag:
 - component
compile: true
---

A default container for a slide, defining some typography

```jade
div.slide-container
	h2.title A title
	h3.subtitle A subtitle
	p.text Some Text
```
*/
.slide-container {
  padding-bottom: 0.625rem;
}
.slide-container .title {
  font-weight: 100;
  font-size: 2rem;
  padding: 1.875rem 0;
}
.slide-container .subtitle {
  font-weight: 700;
  font-size: 1.2rem;
  padding: 0.625rem 0;
}
.slide-container .text {
  font-size: 1rem;
}
/*
---
name: .status-contaier
category: Lernfragen
tag:
 - component
compile: true
---

Syles for the status display

```jade
div.status-container 1 of 12
```
*/
.status-container {
  text-align: right;
}
/*
---
name: .tooltip-slide
category: Lernfragen/Slide Components/Tooltip
tag:
 - component
compile: true
---

A container for displying tooltips

```jade
div.tooltip-container A tooltip text
```
*/
.tooltip-container {
  background-color: #fff;
  padding: 5px;
  display: inline-block;
  border-radius: 4px;
  border: 1px solid #BBBBBB;
  position: fixed;
}
/*
---
name: .transition
category: Lernfragen/Transition
tag:
 - helper
compile: true
---

Some helper classes for transition animation
---

Move from the screen to the right border and fade out
```jade
div.-moveToRight Slide Content
```

Move from the right border to the screen and fade in
```jade
div.-moveFromRight Slide Content
```

Move from the screen to the left border and fade out
```jade
div.-moveToLeft Slide Content
```

Move from the left border to the screen and fade in
```jade
div.-moveFromLeft Slide Content
```

Fade in
```jade
div.-fadeIn Slide Content
```

Fade out
```jade
div.-fadeOut Slide Content
```

*/
.-moveToRight {
  position: absolute;
  width: 100%;
  animation: moveToRight 0.4s ease both;
}
@keyframes moveToRight {
  to {
    transform: translateX(100%);
    opacity: 0;
  }
}
.-moveFromRight {
  animation: moveFromRight 0.4s ease both;
}
@keyframes moveFromRight {
  from {
    transform: translateX(100%);
    opacity: 0;
  }
}
.-moveToLeft {
  position: absolute;
  width: 100%;
  animation: moveToLeft 0.4s ease both;
}
@keyframes moveToLeft {
  to {
    transform: translateX(-100%);
    opacity: 0;
  }
}
.-moveFromLeft {
  animation: moveFromLeft 0.4s ease both;
}
@keyframes moveFromLeft {
  from {
    transform: translateX(-100%);
    opacity: 0;
  }
}
.-fadeIn {
  animation: fadeIn 0.4s ease both;
}
@keyframes fadeIn {
  from {
    opacity: 0;
  }
}
.-fadeOut {
  animation: fadeOut 0.4s ease both;
  position: absolute;
  width: 100%;
}
@keyframes fadeOut {
  to {
    opacity: 0;
  }
}
/*
---
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.
*/
.casestudy-card {
  color: #000000;
  padding: 1.125rem;
  margin-bottom: 1.25rem;
  cursor: pointer;
  /* .z-depth( 2 ); */
  border-radius: 8px;
  border-style: solid;
  border-color: rgba(34, 34, 34, 0.2);
  border-width: 1px;
  transition: all .2s ease;
}
.casestudy-card:hover {
  box-shadow: 0px 1px 4px 0px rgba(0, 0, 0, 0.16), 0px 2px 24px 0px rgba(0, 0, 0, 0.08);
  border-color: #fff;
}
.casestudy-card:hover > .title > .emph {
  color: #007894;
}
.casestudy-card:focus {
  box-shadow: 0px 1px 4px 0px rgba(0, 0, 0, 0.16), 0px 2px 24px 0px rgba(0, 0, 0, 0.08);
  border-color: #fff;
}
.casestudy-card:focus > .title > .emph {
  color: #007894;
}
.casestudy-card > .title {
  font-size: 1.125rem;
  font-weight: normal;
  line-height: 140%;
  padding-top: 0.625rem;
  margin-bottom: 0.625rem;
  color: #007894;
  font-size: 12px;
  line-height: 1.5;
  width: 223px;
  overflow: hidden;
}
.casestudy-card > .title > .emph {
  padding-top: 0.625rem;
  font-weight: bold;
  color: #000000;
  font-size: 20px;
  overflow-wrap: break-word;
}
.casestudy-card > .chapters {
  padding-top: 0.9375rem;
}
.casestudy-card > .chapters > .chapter {
  font-size: 18px;
  line-height: 150%;
  color: #000000;
  overflow-wrap: break-word;
}
.casestudy-card > .chapters > .chapter:hover {
  color: #007894;
}
.casestudy-card > .footer {
  padding-top: 1.875rem;
}
.casestudy-card > .footer > .duration {
  color: #6F6F6F;
  font-size: 14px;
}
.casestudy-container {
  padding-bottom: 5.625rem;
}
.casestudy-container > .image {
  position: absolute;
  width: 100%;
  height: 21.625rem;
  top: 0;
  left: 0;
  z-index: -1;
  background-size: cover!important;
  background-position: center center;
  background-repeat: no-repeat;
}
.casestudy-container > .image:before {
  position: absolute;
  z-index: 2;
  display: block;
  content: "";
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: rgba(0, 0, 0, 0.4);
}
.casestudy-container > .title {
  padding-top: 0.6875rem;
  font-size: 2.25rem;
  font-weight: bold;
  color: #FFF;
  z-index: 5;
}
.casestudy-container > .subtitle {
  padding-top: 9.1875rem;
  font-size: 1.875rem;
  font-weight: normal;
  color: #FFF;
  z-index: 5;
}
.casestudy-container > .quiz {
  padding-top: 10.9375rem;
}
.feedback-button {
  margin-top: 1.25rem;
  background-color: #007894;
  color: #fff;
  border-radius: 2px;
  font-size: 16px;
  padding-left: 32px;
  padding-right: 32px;
  padding-top: 15px;
  padding-bottom: 15px;
  border: none;
  font-weight: 700;
  cursor: pointer;
}
.feedback-button:hover {
  background-color: #00596D;
}
.feedback-button:focus {
  background-color: #00596D;
}
.footer-bar {
  width: 100%;
  z-index: 10;
  background-color: #222222;
  color: #FFF;
}
.footer-bar > div > .link {
  font-size: 0.875rem;
  padding: 1.75rem 3.4375rem;
  text-align: right;
  font-weight: normal;
}
.footer-bar > div > .logo {
  padding: 1.625rem 3.4375rem;
}
.footer-bar > div > .logo > img {
  height: 1.0625rem;
}
.footer-bar > div > .logo > a {
  font-size: 14px;
  color: white;
}
.goodpractice-card {
  color: #000000;
  padding: 1.125rem;
  margin-bottom: 1.25rem;
  transition: all .2s ease;
  cursor: pointer;
  border-radius: 8px;
  border-style: solid;
  border-color: rgba(34, 34, 34, 0.2);
  border-width: 1px;
}
.goodpractice-card:hover {
  box-shadow: 0px 1px 4px 0px rgba(0, 0, 0, 0.16), 0px 2px 24px 0px rgba(0, 0, 0, 0.08);
  border-color: #fff;
}
.goodpractice-card:hover > .name {
  color: #007894;
}
.goodpractice-card:focus {
  box-shadow: 0px 1px 4px 0px rgba(0, 0, 0, 0.16), 0px 2px 24px 0px rgba(0, 0, 0, 0.08);
  border-color: #fff;
}
.goodpractice-card:focus > .name {
  color: #007894;
}
.goodpractice-card > .image {
  padding: 1.25rem 0;
}
.goodpractice-card > .name {
  font-size: 20px;
  font-weight: bold;
  overflow-wrap: break-word;
}
.goodpractice-card > .function {
  font-size: 18px;
  margin-top: 0.625rem;
  overflow-wrap: break-word;
}
.goodpractice-card > .description {
  font-size: 18px;
  margin-top: 1.125rem;
  overflow-wrap: break-word;
}
.goodpractice-container {
  padding-top: 9.375rem;
  padding-bottom: 3.125rem;
}
.goodpractice-container > .name {
  padding-top: 1.25rem;
  font-size: 1.3125rem;
  font-weight: bold;
}
.goodpractice-container > .function {
  padding-top: 0.625rem;
  font-size: 1.3125rem;
}
.goodpractice-container > .transcript {
  padding-top: 2.1875rem;
  font-size: 50px;
}
.header-bar {
  position: fixed;
  width: 100%;
  top: 0;
  left: 0;
  z-index: 10;
  background-color: #ffffff;
  box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.3);
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
      align-items: center;
}
.header-bar > .link,
.header-bar > div > a {
  cursor: pointer;
  color: black;
}
.header-bar > .link:hover,
.header-bar > div > a:hover {
  color: #007894;
  fill: #007894;
}
.header-bar > .link:focus,
.header-bar > div > a:focus {
  color: #007894;
  fill: #007894;
}
.header-bar > .burger:focus,
.header-bar .info:focus,
.header-bar .back:focus {
  border-style: solid;
  border-width: 2px;
  border-radius: 5px;
  border-color: #000000;
}
.header-bar > .logo {
  -ms-flex-positive: 1;
      flex-grow: 1;
  margin-left: 40px;
  margin-bottom: 5px;
  margin-top: 3px;
}
.header-bar > .logo > .logo-text {
  font-size: 23px;
}
.header-bar > .logo > a > img {
  width: 199px;
}
.header-bar > .burger,
.header-bar > .back,
.header-bar > .info,
.header-bar > .overview,
.header-bar > .language {
  font-size: 1.125rem;
}
.header-bar > .burger > .active,
.header-bar > .back > .active,
.header-bar > .info > .active,
.header-bar > .overview > .active,
.header-bar > .language > .active {
  text-decoration: underline;
  color: #000;
}
.header-bar > .burger.hidden,
.header-bar > .back.hidden,
.header-bar > .info.hidden,
.header-bar > .overview.hidden,
.header-bar > .language.hidden {
  display: none;
}
.header-bar > .burger {
  margin-right: 40px;
}
.header-bar > .burger > .caption {
  font-size: 12px;
  padding: 0 4px;
}
.header-bar > .language {
  White-space: nowrap;
  font-size: 16px;
}
.header-bar > .language > a {
  color: #666666;
}
.header-bar > .language > a:hover {
  color: #000000;
  text-decoration: underline;
}
@media screen and (min-width: 1235px) {
  .header-bar {
    height: 112px;
  }
  .header-bar > .desktop {
    display: block;
  }
  .header-bar > .tablet {
    display: none;
  }
  .header-bar > .mobile {
    display: none;
  }
  .header-bar > .logo {
    margin-top: -2px;
  }
  .header-bar > .logo > .logo-text {
    margin-left: 283px;
    margin-top: -37px;
    text-align: top;
  }
  .header-bar > .burger,
  .header-bar > .back,
  .header-bar > .info,
  .header-bar > .overview,
  .header-bar > .language {
    margin-left: 40px;
  }
}
@media screen and (min-width: 767px) and (max-width: 1235px) {
  .header-bar {
    height: 133px;
  }
  .header-bar > .desktop {
    display: none;
  }
  .header-bar > .tablet {
    display: block;
  }
  .header-bar > .mobile {
    display: none;
  }
  .header-bar > .burger,
  .header-bar > .back,
  .header-bar > .info,
  .header-bar > .overview,
  .header-bar > .language {
    margin-left: 40px;
  }
  .header-bar > .logo {
    margin-top: 6px;
    margin-bottom: 5px;
  }
  .header-bar > .logo > .logo-text {
    margin-top: 15px;
    font-size: 20px;
  }
  .header-bar > .logo > a > img {
    width: 186px;
  }
}
@media screen and (max-width: 767px) {
  .header-bar {
    height: 105px;
  }
  .header-bar > .desktop {
    display: none;
  }
  .header-bar > .tablet {
    display: none;
  }
  .header-bar > .mobile {
    display: block;
  }
  .header-bar > .burger,
  .header-bar > .back,
  .header-bar > .info,
  .header-bar > .overview,
  .header-bar > .language {
    margin-left: 10px;
  }
  .header-bar > .logo {
    margin-top: 6px;
    margin-bottom: 5px;
  }
  .header-bar > .logo > .logo-text {
    margin-top: 8px;
    font-size: 20px;
  }
  .header-bar > .logo > a > img {
    width: 145px;
  }
}
.hotspotZones {
  /* background-color: rgba(0,255,0,0.5); */
  position: absolute;
  width: 100%;
  height: 100%;
}
.hotspotZones > .zone {
  float: left;
}
.hotspotZones > .zone:focus {
  /* box-shadow: 0px 1px 4px 0px rgba(0,0,0, 0.16), 0px 2px 24px 0px rgba(0, 0, 0, 0.08);
			border-color: #fff; */
  border-style: solid;
  border-width: 2px;
  border-radius: 5px;
  border-color: #000000;
}
.hotspotZones > .newLine {
  float: none;
  display: -ms-flexbox;
  display: flex;
}
.html-box ul,
.html-box ol {
  margin-left: 1.5625rem;
}
.html-box > p,
.html-box > ul,
.html-box > ol {
  padding-bottom: 0.5rem;
}
@font-face {
  font-family: "eth-compliance";
  src: url("fonts/eth-compliance.eot");
  src: url("fonts/eth-compliance.eot?#iefix") format("embedded-opentype"), url("fonts/eth-compliance.woff") format("woff"), url("fonts/eth-compliance.ttf") format("truetype"), url("fonts/eth-compliance.svg#eth-compliance") format("svg");
  font-weight: normal;
  font-style: normal;
}
[data-icon]:before {
  font-family: "eth-compliance" !important;
  content: attr(data-icon);
  font-style: normal !important;
  font-weight: normal !important;
  font-variant: normal !important;
  text-transform: none !important;
  speak: none;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
[class^="icon-"]:before,
[class*=" icon-"]:before {
  font-family: "eth-compliance" !important;
  font-style: normal !important;
  font-weight: normal !important;
  font-variant: normal !important;
  text-transform: none !important;
  speak: none;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.icon-back:before {
  content: "\68";
}
.icon-forward:before {
  content: "\69";
}
.icon-menu:before {
  content: "\6a";
}
.icon-top:before {
  content: "\6b";
}
.icon-bottom:before {
  content: "\6c";
}
.icon-arrow-right:before {
  content: "\6d";
}
.icon-close:before {
  content: "\6e";
}
.icon-info:before {
  content: "\61";
}
.icon-header-overview:before {
  content: "\61";
}
.icon-header-info:before {
  content: "\61";
}
.infotool-button {
  background-color: #007894;
  height: 6.25rem;
  width: 6.25rem;
  border-radius: 50%;
  cursor: pointer;
  position: fixed;
  top: 16.0625rem;
  right: 3.75rem;
  z-index: 5;
  box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12), 0 3px 5px -1px rgba(0, 0, 0, 0.3);
  transition: all .2s ease;
}
.infotool-button:hover {
  background-color: #e7f4f7;
}
.infotool-button:hover > .caption {
  color: #007894;
}
.infotool-button:focus {
  background-color: #e7f4f7;
}
.infotool-button:focus > .caption {
  color: #007894;
}
.infotool-button > .caption {
  color: #FFF;
  font-size: 1.375rem;
  padding: 1.5625rem;
  font-weight: bold;
}
.infotool-buttonwrapper {
  position: fixed;
  top: 10.625rem;
  width: 100%;
}
.infotool-chapter {
  border-top: 1px solid #000000;
}
.infotool-chapter > .mark {
  background-color: #f1f1f1;
}
.infotool-chapter > .bar {
  padding: 1.5rem 2rem;
  cursor: pointer;
}
.infotool-chapter > .bar:hover {
  background-color: #007894;
  color: #FFF;
}
.infotool-chapter > .bar:focus {
  background-color: #007894;
  color: #FFF;
}
.infotool-chapter > .bar > .title {
  font-size: 1.25rem;
  font-weight: bold;
}
.infotool-chapter > .bar > .arrow {
  font-size: 1.875rem;
  transition: transform 0.2s ease;
}
.infotool-chapter > .bar > .arrow.expand {
  transform: rotate(-90deg);
}
.infotool-chapter > .texts {
  max-height: 0px;
  overflow: hidden;
  transition: max-height 0.2s ease-out;
}
.infotool-chapter > .texts:first-child {
  border-top: 1px solid #000000;
}
.infotool-chooser {
  right: 30px;
  position: relative;
  float: right;
  top: 21px;
  font-size: 20px;
}
.infotool-panel {
  position: fixed;
  top: 0;
  right: 0;
  width: 31.25rem;
  max-width: 100%;
  background-color: white;
  border-bottom: 1px solid #dcdcdc;
  border-left: 1px solid #dcdcdc;
  z-index: 20;
  max-height: 100%;
  overflow-y: auto;
  box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.3);
}
.infotool-panel > .header {
  height: 5.25rem;
  padding: 1.1875rem 2rem;
  background-color: white;
}
.infotool-panel > .header > .title {
  font-size: 2rem;
  color: #000000;
  font-weight: bold;
}
.infotool-panel > .header > .close {
  font-size: 2.1875rem;
  cursor: pointer;
  float: right;
}
.infotool-panel > .header > .close:hover {
  color: #007894;
}
.infotool-panel > .header > .close:focus {
  color: #007894;
  border-style: solid;
  border-width: 2px;
  border-radius: 5px;
  border-color: #000000;
}
.infotool-panel > .search {
  padding: 1.1875rem 2rem;
}
.infotool-panel > .search > input {
  width: 100%;
  height: 3.75rem;
}
.infotool-panel .-moveToRight {
  position: absolute;
  width: 100%;
  animation: moveToRight 0.4s ease both;
}
@keyframes moveToRight {
  to {
    transform: translateX(100%);
  }
}
.infotool-panel .-moveFromRight {
  animation: moveFromRight 0.4s ease both;
}
@keyframes moveFromRight {
  from {
    transform: translateX(100%);
  }
}
.infotool-standalone {
  background-color: white;
}
.infotool-standalone > .header {
  height: 5.25rem;
  padding: 1.1875rem 2rem;
  background-color: white;
}
.infotool-standalone > .header > .title {
  font-size: 2rem;
  color: #000000;
  font-weight: bold;
}
.infotool-standalone > .search {
  padding: 1.1875rem 2rem;
}
.infotool-standalone > .search > input {
  width: 100%;
  height: 3.75rem;
}
.infotool-standalonewrapper {
  padding: 0;
  background-color: darkslategrey;
  box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.3);
}
.infotool-text > .mark {
  background-color: #f1f1f1;
}
.infotool-text:first-child {
  border-top: 1px solid #000000;
}
.infotool-text > .bar {
  padding: 1.5rem 2rem;
  cursor: pointer;
}
.infotool-text > .bar:hover {
  background-color: #007894;
  color: #FFF;
}
.infotool-text > .bar:focus {
  background-color: #007894;
  color: #FFF;
}
.infotool-text > .bar > .title {
  font-size: 1.25rem;
  font-weight: normal;
}
.infotool-text > .bar > .arrow {
  font-size: 1.875rem;
  transition: transform 0.2s ease;
}
.infotool-text > .bar > .arrow.expand {
  transform: rotate(-90deg);
}
.infotool-text > .text {
  font-size: 1rem !important;
  padding: 0 2rem;
  line-height: 150%;
  max-height: 0px;
  overflow: hidden;
  transition: max-height 0.2s ease-out;
}
.infotool-text > .text > p {
  font-size: 1rem;
}
.infotool-text > .text ul,
.infotool-text > .text ol {
  padding: 1rem;
}
.infotool-text > .text ul > li,
.infotool-text > .text ol > li {
  padding-top: 6px;
}
.infotool-text > .text ul > li > p,
.infotool-text > .text ol > li > p {
  font-size: 1rem;
}
.keycloakImg {
  width: 199px;
}
h2 {
  font-size: 32px;
  font-weight: 400;
  text-decoration: none;
  line-height: 1.2;
  margin-right: auto;
  margin-left: auto;
}
p {
  font-size: 18px;
}
.shibbolethLogin {
  background-color: #E7F4F7;
  width: 800px;
  margin-top: 30px;
  margin-bottom: 60px;
  padding-top: 30px;
  padding-left: 30px;
  padding-bottom: 50px;
}
.shibbolethLogin > p {
  margin-top: 20px;
  margin-bottom: 60px;
}
.control-label {
  font-size: 12px;
  color: rgba(0, 0, 0, 0.6);
}
.login-button {
  margin-top: 10px;
  background-color: #fff;
  color: #000;
  border-radius: 2px;
  font-size: 16px;
  padding-left: 32px;
  padding-right: 32px;
  padding-top: 15px;
  padding-bottom: 15px;
  border: none;
  font-weight: 700;
  cursor: pointer;
  border-style: solid;
  border-width: 1px;
  border-color: #dbd9d9;
}
.login-button:hover {
  background-color: #007894;
  color: #fff;
}
.card-pf > header > p {
  margin-bottom: 20px;
}
.card-pf > header > p > label {
  cursor: pointer;
}
.form-control {
  width: 300px;
  height: 30px;
  display: inline-block;
  border: 1px solid #ccc;
  border-radius: 4px;
  box-sizing: border-box;
  margin-top: 2px;
  margin-bottom: 15px;
}
.center {
  width: 800px;
  margin: auto;
  margin-top: 30px;
}
.keycloakAdminLogin {
  display: none;
}
#trigger:checked + .keycloakAdminLogin {
  display: block !important;
}
#trigger {
  display: none;
}
.keycloakArrow {
  width: 25px;
  margin-top: -4px;
  margin-left: -1px;
  position: absolute;
}
.kc-dropdown {
  float: right;
  margin-top: -30px;
  color: rgba(0, 0, 0, 0.6);
}
.kc-dropdown > p > a {
  color: rgba(0, 0, 0, 0.6);
}
.kc-dropdown > p > a.active {
  color: #000;
  text-decoration: underline;
}
.kc-dropdown > p > a:hover {
  color: #000;
  text-decoration: underline;
}
.keycloakfooter {
  background-color: black;
  color: white;
  padding: 20px 35px;
  bottom: 0px;
  position: fixed;
  width: 100%;
}
.keycloakfooter > a {
  color: white;
}
.slide-container > .slide {
  padding: 1rem 0 2rem 0;
}
.slide-container > .chapter {
  padding: 1rem 0;
}
.slide-container > .chapter > .title {
  font-size: 2rem;
  padding-bottom: 0;
  padding-top: 5.625rem;
  color: #000000;
}
.slide-container .text,
.slide-container .answertext,
.slide-container .dragtext {
  font-size: 1.125rem;
}
.slide-container .text {
  padding-bottom: 1.25rem;
}
.slide-container .title {
  color: #000000;
  font-size: 1.5rem;
  font-weight: bold;
}
.feedback-panel {
  margin: -1.25rem 0 0 0;
  padding: 3.125rem;
}
.feedback-panel.-wrong {
  border: none;
  background-color: rgba(163, 66, 66, 0.1);
}
.feedback-panel.-correct {
  border: none;
  background-color: rgba(60, 89, 15, 0.1);
}
.answer-view input {
  margin-left: -23px;
  margin-top: 0px;
}
.drop-node {
  background-color: #F6F6F6;
  border-radius: 0px;
  border: none;
}
.drop-node p {
  padding: 0.3125rem;
}
.drag-node {
  border-radius: 0px;
}
.drag-container {
  background-color: #0069b4;
}
.button {
  font-size: 1.125rem;
}
.menu-content > .title {
  font-size: 2rem;
  padding: 3.875rem 0 1.875rem 0;
  color: #000000;
}
.menu-entry .casestudy {
  padding: 1.5625rem 0 0.6875rem 0;
  font-size: 1.125rem;
  font-weight: bold;
  cursor: pointer;
}
.menu-entry .casestudy:hover {
  color: #007894;
}
.menu-header > .close {
  font-size: 1.875rem;
  padding: 1rem 3.4375rem;
  cursor: pointer;
  float: right;
}
.menu-header > .close:hover {
  color: #007894;
}
.menu-header > .close:focus {
  border-style: solid;
  border-width: 2px;
  border-radius: 5px;
  border-color: #000000;
  color: #007894;
}
.menu-panel {
  position: fixed;
  top: 0;
  right: 0;
  width: 32.5rem;
  max-width: 100%;
  background-color: white;
  z-index: 20;
  box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.3);
  transition: opacity 0.2s ease;
  opacity: 0;
}
.menu-panel.show {
  opacity: 1;
}
.menu-panel > .header {
  height: 4.375rem;
  border-bottom: 1px solid #dcdcdc;
  background-color: white;
}
.menu-panel > .content {
  padding: 0 3.4375rem 3.4375rem 3.4375rem;
}
.menu-panel > .footer {
  padding: 0 3.4375rem 3.4375rem 3.4375rem;
}
.menu-panel > .footer:hover {
  color: #007894;
  cursor: pointer;
}
.menu-subentry {
  padding: 0.3125rem 0;
  cursor: pointer;
}
.menu-subentry:hover {
  color: #007894;
}
.menu-subentry:focus {
  color: #007894;
  border-style: solid;
  border-width: 2px;
  border-radius: 5px;
  border-color: #000000;
}
.module-overview {
  padding-bottom: 5.625rem;
}
.module-overview > .image {
  position: absolute;
  width: 100%;
  height: 46.875rem;
  top: 0;
  left: 0;
  z-index: -1;
  background-size: cover!important;
  background-position: center center;
  background-repeat: no-repeat;
}
.module-overview > .image:before {
  position: absolute;
  z-index: 2;
  display: block;
  content: "";
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: rgba(0, 0, 0, 0.4);
}
.module-overview > .sublogo {
  padding-top: 110px;
  position: absolute;
}
.module-overview > .sublogo > a > img {
  height: 1.5625rem;
}
.module-overview > .title {
  padding-top: 18.75rem;
  padding-bottom: 0.3125rem;
  font-size: 2.6875rem;
  font-weight: bold;
  color: #FFF;
  z-index: 5;
}
.module-overview > .subtitle {
  padding: 0.3125rem 0;
  font-size: 2.6875rem;
  font-weight: normal;
  color: #FFF;
  z-index: 5;
}
.module-overview > .video {
  width: 100%;
  padding-top: 6.25rem;
}
.module-overview > .transcript {
  padding-top: 2.1875rem;
}
.module-overview > .transcript:focus > .header > .icon {
  border-style: solid;
  border-width: 1px;
  border-color: black;
}
.module-overview > .sectiontitle {
  font-size: 2.5rem;
  padding-top: 7.5rem;
  padding-bottom: 3.75rem;
  color: #000000;
  font-weight: bold;
  line-height: 1.2;
  font-weight: 400;
}
.panel-foldable > .header {
  font-size: 1.125rem;
  cursor: pointer;
  color: #6F6F6E;
}
.panel-foldable > .header:hover {
  color: #007894;
}
.panel-foldable > .header > .title {
  display: inline-block;
  margin-bottom: 1.875rem;
}
.panel-foldable > .header > .icon {
  display: inline-block;
  margin-left: 0.3125rem;
  transition: transform ease .2s;
}
.panel-foldable > .header > .icon.expand {
  transform: rotate(180deg);
}
.panel-foldable > .header.-slide {
  font-size: 1rem;
}
.panel-foldable > .header.-slide > .title {
  font-weight: normal;
  font-size: 1rem;
  margin-bottom: 0;
  padding: 1rem 0 0 0;
  color: #6F6F6E;
}
.panel-foldable > .header.-slide > .title:hover {
  color: #007894;
}
.panel-foldable > .body {
  font-size: 1.125rem;
  line-height: 140%;
  color: #6F6F6E;
  max-height: 0px;
  overflow: hidden;
  transition: max-height 0.2s ease-out;
}
.panel-foldable > .body.-slide {
  font-size: 1rem;
  margin: 1rem 0;
}
.panel-foldable:focus > .header > .icon {
  border-style: solid;
  border-width: 1px;
  border-color: black;
}
.progress-bar {
  width: 3.5rem;
  height: 0.5625rem;
  border-radius: 0.5rem;
  border: 1px solid #000000;
  background-color: rgba(34, 34, 34, 0.2);
  margin: 0.25rem 0;
}
.progress-bar.-overview {
  border: 1px solid #FFF;
}
.progress-bar > .progress {
  background-color: #007894;
  border-radius: 0.5rem;
  height: 100%;
  width: 0%;
  transition: all .2s ease;
}
.textcontent-container {
  padding-top: 9.375rem;
  padding-bottom: 3.125rem;
}
.textcontent-container > .title {
  font-size: 1.75rem;
  padding-bottom: 2.1875rem;
  color: #1F407A;
  font-weight: bold;
}
.textcontent-container > h2 {
  color: #1F407A;
  font-weight: bold;
  padding: 1.6875rem 0;
  font-size: 1.3125rem;
}
.textcontent-container ul {
  padding: 1.25rem;
}
.textcontent-container li {
  font-size: 1.125rem;
  line-height: 140%;
}
:root {
  font-size: 14px;
  letter-spacing: 0.08rem;
}
.scorm-link {
  position: absolute;
  top: 80px;
  right: 15px;
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImljb25zLmxlc3MiLCJtYWluLmNzcyIsImxpYi9sZXNzL3NoYXJlZC9oZWxwZXJzLmxlc3MiLCJsaWIvbGVzcy9zaGFyZWQvcmVzZXQubGVzcyIsImxpYi9sZXNzL2NvbXBvbmVudHMvY29yZS9idXR0b24ubGVzcyIsImxpYi9sZXNzL2NvbXBvbmVudHMvY29yZS9yZXNwb25zaXZlL2dyaWQubGVzcyIsImxpYi9sZXNzL2NvbXBvbmVudHMvY29yZS9yZXNwb25zaXZlL2ltYWdlLmxlc3MiLCJsaWIvbGVzcy9jb21wb25lbnRzL2NvcmUvcmVzcG9uc2l2ZS9tZWRpYS5sZXNzIiwibGliL2xlc3MvY29tcG9uZW50cy9jb3JlL3Jlc3BvbnNpdmUvcGFnZS5sZXNzIiwibGliL2xlc3MvY29tcG9uZW50cy9jb3JlL3Jvdy5sZXNzIiwibGliL2xlc3MvY29tcG9uZW50cy9sZXJuZnJhZ2VuL2J1dHRvbi5sZXNzIiwibGliL2xlc3MvY29tcG9uZW50cy9sZXJuZnJhZ2VuL2ZlZWRiYWNrLXBhbmVsLmxlc3MiLCJsaWIvbGVzcy9jb21wb25lbnRzL2xlcm5mcmFnZW4vZm9ybS5sZXNzIiwibGliL2xlc3MvY29tcG9uZW50cy9sZXJuZnJhZ2VuL2ltZy1hcmVhLmxlc3MiLCJsaWIvbGVzcy9jb21wb25lbnRzL2xlcm5mcmFnZW4vbmF2aWdhdGlvbi1iYXIubGVzcyIsImxpYi9sZXNzL2NvbXBvbmVudHMvbGVybmZyYWdlbi9uZXh0cHJldi1uYXZpZ2F0aW9uLmxlc3MiLCJsaWIvbGVzcy9jb21wb25lbnRzL2xlcm5mcmFnZW4vcG9pbnRzLW5hdmlnYXRpb24ubGVzcyIsImxpYi9sZXNzL2NvbXBvbmVudHMvbGVybmZyYWdlbi9zbGlkZS1jb250YWluZXIubGVzcyIsImxpYi9sZXNzL2NvbXBvbmVudHMvbGVybmZyYWdlbi9zdGF0dXMtY29udGFpbmVyLmxlc3MiLCJsaWIvbGVzcy9jb21wb25lbnRzL2xlcm5mcmFnZW4vdG9vbHRpcC1jb250YWluZXIubGVzcyIsImxpYi9sZXNzL2NvbXBvbmVudHMvbGVybmZyYWdlbi90cmFuc2l0aW9uLmxlc3MiLCJjYXNlc3R1ZHktY2FyZC5sZXNzIiwiY2FzZXN0dWR5LWNvbnRhaW5lci5sZXNzIiwiZmVlZGJhY2stYnV0dG9uLmxlc3MiLCJmb290ZXItYmFyLmxlc3MiLCJnb29kcHJhY3RpY2UtY2FyZC5sZXNzIiwiZ29vZHByYWN0aWNlLWNvbnRhaW5lci5sZXNzIiwiaGVhZGVyLWJhci5sZXNzIiwiei1kZXB0aC5sZXNzIiwiaG90c3BvdC5sZXNzIiwiaHRtbC1ib3gubGVzcyIsImluZm90b29sLWJ1dHRvbi5sZXNzIiwiaW5mb3Rvb2wtYnV0dG9ud3JhcHBlci5sZXNzIiwiaW5mb3Rvb2wtY2hhcHRlci5sZXNzIiwiaW5mb3Rvb2wtY2hvb3Nlci5sZXNzIiwiaW5mb3Rvb2wtcGFuZWwubGVzcyIsImluZm90b29sLXN0YW5kYWxvbmUubGVzcyIsImluZm90b29sLXN0YW5kYWxvbmV3cmFwcGVyLmxlc3MiLCJpbmZvdG9vbC10ZXh0Lmxlc3MiLCJrZXljbG9hay5sZXNzIiwibGVybmZyYWdlbi1vdmVycmlkZS5sZXNzIiwibWVudS1jb250ZW50Lmxlc3MiLCJtZW51LWVudHJ5Lmxlc3MiLCJtZW51LWhlYWRlci5sZXNzIiwibWVudS1wYW5lbC5sZXNzIiwibWVudS1zdWJlbnRyeS5sZXNzIiwibW9kdWxlLW92ZXJ2aWV3Lmxlc3MiLCJwYW5lbC1mb2xkYWJsZS5sZXNzIiwicHJvZ3Jlc3MtYmFyLmxlc3MiLCJ0ZXh0Y29udGVudC1jb250YWluZXIubGVzcyIsIm1haW4ubGVzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBUztBQ0NUOzs7Ozs7Ozs7Ozs7Ozs7RUFlRTtBQ0FGO0VBQ0MsbUJBQUE7RUFDQSxPQUFBO0VBQ0EsUUFBQTtFQUNBLFlBQUE7RUFDQSxhQUFBO0NERUE7QUFDRDs7Ozs7Ozs7O0VBU0U7QUNFRjtFQUNDLG1CQUFBO0NEQUE7QUFDRDs7Ozs7Ozs7O0VBU0U7QUNJRjtFQUNDLG1CQUFBO0NE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RDtBZ0QxbEZEO0VBYUUsZUFBQTtFQUNBLGtCQUFBO0VBQ0EscUJBQUE7RUFDQSxxQkFBQTtDaERnbEZEO0FnRGhtRkQ7RUFxQkUsaUJBQUE7Q2hEOGtGRDtBZ0RubUZEO0VBeUJFLG9CQUFBO0VBQ0Esa0JBQUE7Q2hENmtGRDtBaURqbUZEO0VBQ0MsZ0JBQUE7RUFDQSx3QkFBQTtDakRtbUZBO0FpRGhtRkQ7RUFDQyxtQkFBQTtFQUNBLFVBQUE7RUFDQSxZQUFBO0NqRGttRkEiLCJmaWxlIjoiY3BsLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcImV0aC1jb21wbGlhbmNlXCI7XG4gIHNyYzp1cmwoXCJmb250cy9ldGgtY29tcGxpYW5jZS5lb3RcIik7XG4gIHNyYzp1cmwoXCJmb250cy9ldGgtY29tcGxpYW5jZS5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLFxuICAgIHVybChcImZvbnRzL2V0aC1jb21wbGlhbmNlLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSxcbiAgICB1cmwoXCJmb250cy9ldGgtY29tcGxpYW5jZS50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksXG4gICAgdXJsKFwiZm9udHMvZXRoLWNvbXBsaWFuY2Uuc3ZnI2V0aC1jb21wbGlhbmNlXCIpIGZvcm1hdChcInN2Z1wiKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuXG59XG5cbltkYXRhLWljb25dOmJlZm9yZSB7XG4gIGZvbnQtZmFtaWx5OiBcImV0aC1jb21wbGlhbmNlXCIgIWltcG9ydGFudDtcbiAgY29udGVudDogYXR0cihkYXRhLWljb24pO1xuICBmb250LXN0eWxlOiBub3JtYWwgIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbCAhaW1wb3J0YW50O1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbCAhaW1wb3J0YW50O1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xuICBzcGVhazogbm9uZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG5bY2xhc3NePVwiaWNvbi1cIl06YmVmb3JlLFxuW2NsYXNzKj1cIiBpY29uLVwiXTpiZWZvcmUge1xuICBmb250LWZhbWlseTogXCJldGgtY29tcGxpYW5jZVwiICFpbXBvcnRhbnQ7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbCAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogbm9ybWFsICFpbXBvcnRhbnQ7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsICFpbXBvcnRhbnQ7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG4gIHNwZWFrOiBub25lO1xuICBsaW5lLWhlaWdodDogMTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbi5pY29uLWJhY2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDY4XCI7XG59XG4uaWNvbi1mb3J3YXJkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFw2OVwiO1xufVxuLmljb24tbWVudTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcNmFcIjtcbn1cbi5pY29uLXRvcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcNmJcIjtcbn1cbi5pY29uLWJvdHRvbTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcNmNcIjtcbn1cbi5pY29uLWFycm93LXJpZ2h0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFw2ZFwiO1xufVxuLmljb24tY2xvc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDZlXCI7XG59XG4uaWNvbi1pbmZvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFw2MVwiO1xufVxuLmljb24taGVhZGVyLW92ZXJ2aWV3OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFw2MVwiO1xufVxuLmljb24taGVhZGVyLWluZm86YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDYxXCI7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG4vKlxuLS0tXG5uYW1lOiAuc3RyZXRjaFxuY2F0ZWdvcnk6IFNoYXJlZC9IZWxwZXJzXG50YWc6XG4gLSBoZWxwZXJzXG4tLS1cblxuYC5zdHJldGNoYCBEZWZpbmUgYW4gZWxlbWVudCB3aGljaCBzdHJldGNoZXMgdG8gdGhlIHNpemUgb2YgaXRzIHBhcmVudFxuXG5gYGBodG1sXG48ZGl2IGNsYXNzPVwicmVsXCIgc3R5bGU9XCJoZWlnaHQ6IDU1cHg7XCI+XG4gICA8ZGl2IGNsYXNzPVwic3RyZXRjaCBzdHlsZWd1aWRlLWdyaWQtdW5pdFwiPiBJJ20gc3RyZXRjaGVkIHRvIHRoZSBzaXplIG9mIG15IHBhcmVudDwvZGl2PlxuPC9kaXY+XG5gYGBcbiovXG4uc3RyZXRjaCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLypcbi0tLVxubmFtZTogLmFic1xuY2F0ZWdvcnk6IFNoYXJlZC9IZWxwZXJzXG50YWc6XG4gLSBoZWxwZXJzXG4tLS1cblxuYC5hYnNgIFNldCB0aGUgZWxlbWVudCBwb3NpdGlvbiB0byBhYnNvbHV0ZVxuKi9cbi5hYnMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG4vKlxuLS0tXG5uYW1lOiAucmVsXG5jYXRlZ29yeTogU2hhcmVkL0hlbHBlcnNcbnRhZzpcbiAtIGhlbHBlcnNcbi0tLVxuXG5gLnJlbGAgU2V0IHRoZSBlbGVtZW50IHBvc2l0aW9uIHRvIHJlbGF0aXZlXG4qL1xuLnJlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi8qXG4tLS1cbm5hbWU6IC52Y2VudGVyXG5jYXRlZ29yeTogU2hhcmVkL0hlbHBlcnNcbnRhZzpcbiAtIGhlbHBlcnNcbi0tLVxuXG5gLnZjZW50ZXJgIFNldHMgdmVydGljYWwtYWxpZ24gdG8gbWlkZGxlXG4qL1xuLnZjZW50ZXIge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLypcbi0tLVxubmFtZTogLmhjZW50ZXJcbmNhdGVnb3J5OiBTaGFyZWQvSGVscGVyc1xudGFnOlxuIC0gaGVscGVyc1xuLS0tXG5cbmAuaGNlbnRlcmAgU2V0cyB0ZXh0LWFsaWduIHRvIGNlbnRlclxuKi9cbi5oY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLypcbi0tLVxubmFtZTogLmZsb2F0bGVmdFxuY2F0ZWdvcnk6IFNoYXJlZC9IZWxwZXJzXG50YWc6XG4gLSBoZWxwZXJzXG4tLS1cblxuYC5mbG9hdGxlZnRgIFNldHMgZmxvYXQgdG8gbGVmdFxuKi9cbi5mbG9hdGxlZnQge1xuICBmbG9hdDogbGVmdDtcbn1cbi8qXG4tLS1cbm5hbWU6IC5mbG9hdHJpZ2h0XG5jYXRlZ29yeTogU2hhcmVkL0hlbHBlcnNcbnRhZzpcbiAtIGhlbHBlcnNcbi0tLVxuXG5gLmZsb2F0cmlnaHRgIFNldHMgZmxvYXQgdG8gcmlnaHRcbiovXG4uZmxvYXRyaWdodCB7XG4gIGZsb2F0OiByaWdodDtcbn1cbi8qXG4tLS1cbm5hbWU6IC5oaWRkZW5cbmNhdGVnb3J5OiBTaGFyZWQvSGVscGVyc1xudGFnOlxuIC0gaGVscGVyc1xuLS0tXG5cbmAuaGlkZGVuYCBTZXRzIGRpc3BsYXkgdG8gbm9uZS5cbiovXG4uaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi8qXG4tLS1cbm5hbWU6IHJlbSggcGl4ZWxzIClcbmNhdGVnb3J5OiBTaGFyZWQvTWl4aW5zXG50ZW1wbGF0ZTogbWl4aW5cbnRhZzpcbiAtIG1peGluXG5wYXJhbWV0ZXJzOlxuIC0gbmFtZTogcGl4ZWxzXG4gICBkZXNjcmlwdGlvbjogVGhlIHBpeGVsIHZhbHVlIHRvIGNvbnZlcnQgaW50byByZW0gYmFzZWQgb24gdGhlIDE2cHggcm9vdCBmb250LXNpemVcbiAgIG9wdGlvbmFsOiBmYWxzZVxuLS0tXG5cblRoaXMgbGVzcyBmdW5jdGlvbiB0dXJucyBhIHBpeGVsIHZhbHVlIGludG8gYSByZW0gdmFsdWUgYmFzZWQgb24gdGhlIHJvb3QgZm9udC1zaXplIHNldCB0byAxNnB4LlxuXG5BbiBleGFtcGxlIHVzYWdlIGxvb2tzIGxpa2UgdGhpczpcblxuYGBgbGVzc1xuLmV4YW1wbGUge1xuXHRwYWRkaW5nOiByZW0oIDE1cHggKSByZW0oIDEycHggKVxufVxuYGBgXG4qL1xuLypcbi0tLVxubmFtZTogLmZvciggQGFycmF5LCBAY29kZSApXG5jYXRlZ29yeTogU2hhcmVkL01peGluc1xudGVtcGxhdGU6IG1peGluXG50YWc6XG4gLSBtaXhpblxucGFyYW1ldGVyczpcbiAtIG5hbWU6IGFycmF5XG4gICBkZXNjcmlwdGlvbjogVGhlIGFycmF5IG9mIHZhbHVlcyB0byBsb29wIG92ZXJcbiAgIG9wdGlvbmFsOiBmYWxzZVxuIC0gbmFtZTogY29kZVxuICAgZGVzY3JpcHRpb246IFRoZSBjb2RlIHRoYXQgaXMgZXhlY3V0ZWQgb24gZXZlcnkgdmFsdWUuIFlvdSBjYW4gYWNjZXNzIHRoZSBpbmRleCB3aXRoIGBAaWAgYW5kIHRoZSB2YWx1ZSB3aXRoIGBAdmFsdWVgXG4gICBvcHRpb25hbDogZmFsc2Vcbi0tLVxuXG5UaGlzIG1peGluIGFsbG93cyB0byBleGVjdXRlIGNvZGUgb3ZlciBhbiBhcnJheVxuXG5BbiBleGFtcGxlIHVzYWdlIGxvb2tzIGxpa2UgdGhpczpcbmBgYGxlc3NcbkBjb2xvcnM6ICMxYWJjOWMsICMyZWNjNzEsICMzNDk4ZGIsICM5YjU5YjY7XG5cbi5mb3IoQGNvbG9ycywge1xuICAgIC5jb2xvci1Ae2l9IHtcbiAgICAgICAgY29sb3I6IEB2YWx1ZTtcbiAgICB9XG59KTtcbmBgYFxuXG5UaGlzIGdlbmVyYXRlczpcbmBgYGNzc1xuLmNvbG9yLTEge1xuICBjb2xvcjogIzFhYmM5Yztcbn1cbi5jb2xvci0yIHtcbiAgY29sb3I6ICMyZWNjNzE7XG59XG4uY29sb3ItMyB7XG4gIGNvbG9yOiAjMzQ5OGRiO1xufVxuLmNvbG9yLTQge1xuICBjb2xvcjogIzliNTliNjtcbn1cbmBgYFxuKi9cbi8qXG4tLS1cbm5hbWU6IEdsb2JhbCBSZXNldFxuY2F0ZWdvcnk6IFNoYXJlZFxuLS0tXG5cblRoZSBsZXJuZXR6IGNzcyBsaWJyYXJ5IGhhcyBhIHNldCBvZiByZXNldCBzdHlsZSB0byBoYXZlIHRoZSBzYW1lIGJlaGF2aW91ciBvbiBldmVyeSBicm93c2VyLlxuRnVydGhlcm1vcmUgdGhpcyByZXNldCBzZXRzIHNvbWUgZ2xvYmFsIHZhcmlhYmxlcyBsaWtlOlxuICogYm9keSBmb250LWZhbWlsaWVzXG4gKiBib2R5IGxpbmUtaGVpZ2h0XG4gKiBib2R5IHRleHQtcmVuZGVyaW5nXG4gKiA6cm9vdCBmb250LXNpemUgZm9yIHByb3BlciByZW0gY29udmVyc2lvblxuKi9cbmh0bWwsXG5ib2R5LFxuZGl2LFxuc3Bhbixcbm9iamVjdCxcbmlmcmFtZSxcbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNixcbnAsXG5ibG9ja3F1b3RlLFxucHJlLFxuYWJicixcbmFkZHJlc3MsXG5jaXRlLFxuY29kZSxcbmRlbCxcbmRmbixcbmVtLFxuaW1nLFxuaW5zLFxua2JkLFxucSxcbnNhbXAsXG5zbWFsbCxcbnN0cm9uZyxcbnN1YixcbnN1cCxcbnZhcixcbmIsXG5pLFxuZGwsXG5kdCxcbmRkLFxub2wsXG51bCxcbmxpLFxuZmllbGRzZXQsXG5mb3JtLFxubGFiZWwsXG5sZWdlbmQsXG50YWJsZSxcbmNhcHRpb24sXG50Ym9keSxcbnRmb290LFxudGhlYWQsXG50cixcbnRoLFxudGQsXG5hcnRpY2xlLFxuYXNpZGUsXG5jYW52YXMsXG5kZXRhaWxzLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbmhncm91cCxcbm1lbnUsXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSxcbnRpbWUsXG5tYXJrLFxuYXVkaW8sXG52aWRlbyB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xuICBvdXRsaW5lOiAwO1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cbjpyb290IHtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuaHRtbCB7XG4gIGZvbnQtc2l6ZTogMTAwJTtcbn1cbmJvZHkge1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGZvbnQtZmFtaWx5OiBBcmlhbCwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkY7XG59XG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbmhncm91cCxcbm1lbnUsXG5uYXYsXG5zZWN0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5zZWxlY3Qge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxudGV4dGFyZWEge1xuICB3aWR0aDogMTAwJTtcbn1cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgZm9udDogaW5oZXJpdDtcbiAgbWFyZ2luOiAwO1xufVxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG59XG4vKlxuICogTm9ybWFsaXplIHRoZSBiZWhhdmlvdXIgb2YgYWxsIGJyb3dzZXJzXG4gKlxuICogSW5zdGVhZCBvZiBzZXR0aW5nIGJveC1zaXppbmcgZml4IG9uIGFsbCBlbGVtZW50cyB3ZSBvbmx5IHNldCBpdCBvbiB0aGUgcm9vdCBlbGVtZW50XG4gKiBhbmQgdGVsbCBhbGwgZWxlbWVudHMgdG8gaW5oZXJpdCBpdCdzIHByb3BlcnR5IGZyb20gdGhlIHBhcmVudFxuICogVGhhdCB3YXkgaXQncyBwb3NzaWJsZSB0byBvdmVyd3JpdGUgdGhlIGJveC1zaXppbmcgYW55d2hlcmUgd2hpbGUga2VlcGluZyBwcm9wZXIgaW5oZXJpdGFuY2VcbiAqL1xuaHRtbCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4qLFxuKjpiZWZvcmUsXG4qOmFmdGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDtcbn1cbmEge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiAjMDA3ODk0O1xufVxuLypcbi0tLVxubmFtZTogQ29sb3JzXG5jYXRlZ29yeTogU2hhcmVkL1ZhcmlhYmxlc1xudGVtcGxhdGU6IGNvbG9yc1xudGFnOlxuIC0gdmFyaWFibGVzXG4gLSBjb2xvcnNcbmNvbG9yczpcbiAtIHZhcmlhYmxlOiBcIkB0ZXh0LWNvbG9yXCJcbiAgIGRlc2NyaXB0aW9uOiBcIlRoZSBkZWZhdWx0IHRleHQgY29sb3Igb24gdGhlIGJvZHlcIlxuICAgdmFsdWU6IFwiIzNGM0Y0MFwiXG4gLSB2YXJpYWJsZTogXCJAdGV4dC1pbnZlcnRlZC1jb2xvclwiXG4gICBkZXNjcmlwdGlvbjogXCJUaGUgZGVmYXVsdCBpbnZlcnRlZCB0ZXh0IGNvbG9yIG9uIHRoZSBib2R5XCJcbiAgIHZhbHVlOiBcIiNGRkZcIlxuIC0gdmFyaWFibGU6IFwiQGFjdGlvbi1jb2xvclwiXG4gICBkZXNjcmlwdGlvbjogXCJUaGUgbWFpbiBhY3Rpb24gY29sb3IgdXNlZCBmb3IgbGlua3MgYW5kIGJ1dHRvbnNcIlxuICAgdmFsdWU6IFwiI0VDNjQ0OVwiXG4gLSB2YXJpYWJsZTogXCJAYm9keS1jb2xvclwiXG4gICBkZXNjcmlwdGlvbjogXCJUaGUgbWFpbiBiYWNrZ3JvdW5kIGNvbG9yXCJcbiAgIHZhbHVlOiBcIiNGRkZcIlxuLS0tXG5cblRoZSBjb2xvciB2YXJpYWJsZXMgdGhhdCBhcmUgdXNlZCB0aHJvdWdob3V0IHRoZSBsaWJyYXJ5LiBcbiovXG4vKlxuLS0tXG5uYW1lOiBHbG9iYWwgc2V0dGluZ3NcbmNhdGVnb3J5OiBTaGFyZWQvVmFyaWFibGVzXG50ZW1wbGF0ZTogdmFyaWFibGVzXG50YWc6XG4gLSB2YXJpYWJsZXNcbnZhcmlhYmxlczpcbiAtIG5hbWU6IFwiQHRleHQtbGluZS1oZWlnaHRcIlxuICAgZGVzY3JpcHRpb246IFwiVGhlIGxpbmUgaGVpZ2h0IG9mIHRoZSBib2R5XCJcbiAgIGRlZmF1bHQ6IFwiMS41cmVtXCJcbiAtIG5hbWU6IFwiQGZvbnQtZmFtaWx5XCJcbiAgIGRlc2NyaXB0aW9uOiBcIlRoZSBmb250LWZhbWlseSBvZiB0aGUgYm9keVwiXG4gICBkZWZhdWx0OiBcIidIZWx2ZXRpY2EnLCBzYW5zLXNlcmlmXCJcbiAtIG5hbWU6IFwiQHRleHQtcmVuZGVyaW5nXCJcbiAgIGRlc2NyaXB0aW9uOiBcIlRoZSB0ZXh0LXJlbmRlcmluZyBvZiB0aGUgYm9keVwiXG4gICBkZWZhdWx0OiBcIm9wdGltaXplTGVnaWJpbGl0eVwiXG4gLSBuYW1lOiBcIkB0cmFuc2l0aW9uLWR1cmF0aW9uXCJcbiAgIGRlc2NyaXB0aW9uOiBcIlRoZSBkdXJhdGlvbiBvZiB0aGUgc2xpZGUgdHJhbnNpdGlvbnNcIlxuICAgZGVmYXVsdDogXCIwLjRzXCJcbi0tLVxuXG5UaGVzZSB2YXJpYWJsZXMgc2V0dXBzIHNvbWUgZ2xvYmFsIHRleHQgZm9ybWF0dGluZyBhbmQgc3R5bGluZy5cbiovXG4vKlxuLS0tXG5uYW1lOiBTaXplIHNldHRpbmdzXG5jYXRlZ29yeTogU2hhcmVkL1ZhcmlhYmxlc1xudGVtcGxhdGU6IHZhcmlhYmxlc1xudGFnOlxuIC0gdmFyaWFibGVzXG4gLSBncmlkXG52YXJpYWJsZXM6XG4gLSBuYW1lOiBcIkBncmlkLWd1dHRlclwiXG4gICBkZXNjcmlwdGlvbjogXCJUaGUgc3BhY2UgYmV0d2VlbiB0aGUgZ3JpZCBjaGlsZHJlblwiXG4gICBkZWZhdWx0OiBcInJlbSggMzBweCApXCJcbiAtIG5hbWU6IFwiQGdyaWQtYnJlYWstcG9pbnRzXCJcbiAgIGRlc2NyaXB0aW9uOiBcIlRoZSBzY3JlZW5zaXplIHdoZW4gdGhlIGdyaWQgc2hvdWxkIGJyZWFrLlwiXG4gICBkZWZhdWx0OiBcInJlbSg2MDBweCksIHJlbSgxMDI0cHgpXCJcbiAtIG5hbWU6IFwiQGdyaWQtYnJlYWstbGFiZWxzXCJcbiAgIGRlc2NyaXB0aW9uOiBcIlRoZSBicmVha3BvaW50IGxhYmVsIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGVudGllIGluIHRoZSBgQGdyaWQtYnJlYWstcG9pbnRzYCBsaXN0XCJcbiAgIGRlZmF1bHQ6IFwibWVkaXVtLCBsYXJnZVwiXG4gLSBuYW1lOiBcIkBwYWdlLXBhZGRpbmdcIlxuICAgZGVzY3JpcHRpb246IFwiVGhlIHBhZGRpbmcgZm9yIHRoZSAucGFnZS1mbHVpZCBjb21wb25lbnRcIlxuICAgZGVmYXVsdDogXCJyZW0oIDYwcHggKVwiXG4tLS1cblxuVGhlc2UgdmFyaWFibGVzIHNldHVwcyBzb21lIGdsb2JhbCBzaXplcyBtYWlubHkgZm9yIHRoZSBncmlkLlxuKi9cbi8qXG4tLS1cbm5hbWU6IC5idXR0b24tZGVmYXVsdFxuY2F0ZWdvcnk6IEJ1dHRvbnMvRGVmYXVsdFxudGFnOlxuIC0gY29tcG9uZW50XG4gLSBidXR0b25cbi0tLVxuXG5UaGUgZGVmYXVsdCBidXR0b24gc2V0cyBzb21lIGJhc2ljIHByb3BlcnRpZXMgc28gaXQgaXMgd29ya2luZyBhcyBhIGBidXR0b25gIG9yIGBhYCB0YWcuXG5cbkFuIGV4YW1wbGUgZm9yIGEgYnV0dG9uOlxuYGBgamFkZVxuYnV0dG9uLmJ1dHRvbi1kZWZhdWx0IE15IEJ1dHRvblxuYGBgXG5cbkFuIGV4YW1wbGUgZm9yIGEgbGluazpcbmBgYGphZGVcbmEuYnV0dG9uLWRlZmF1bHQgTXkgTGlua1xuYGBgXG4qL1xuLmJ1dHRvbi1kZWZhdWx0LFxuLmJ1dHRvbiB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDc4OTQ7XG4gIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICBjb2xvcjogI0ZGRjtcbiAgYm9yZGVyOiBub25lO1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvdXRsaW5lOiBub25lO1xufVxuLmJ1dHRvbi1kZWZhdWx0OmZvY3VzIHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzAwMjUyZTtcbiAgcGFkZGluZzogMC40Mzc1cmVtIDAuNjg3NXJlbTtcbn1cbi8qXG4tLS1cbm5hbWU6IC5ncmlkXG5jYXRlZ29yeTogTGF5b3V0L0dyaWRcbnRhZzpcbiAtIGNvbXBvbmVudFxuIC0gcmVzcG9uc2l2ZVxuY29tcGlsZTogdHJ1ZVxuLS0tXG5cbkEgc2ltcGxlIGdyaWQgc3lzdGVtIHRoYXQgd3JhcHMgY2hpbGRyZW4gbm9kZXMgYmFzZWQgb24gdGhlIHZpZXdwb3J0IHdpZHRoLlxuXG4jIyBTaW1wbGUgc2lkZSBieSBzaWRlIHJlbmRlcmluZ1xuXG5UaGUgZWFzaWVzdCB1c2UgY2FzZSBpcyB0byB1c2Ugc2ltcGxlIGAuY29sLTFgLCBgLmNvbC0xLTJgLCBgLmNvbC0xLTNgLCBgLmNvbC0xLTRgIGZvciBhIHNpZGUtYnktc2lkZSByZW5kZXJpbmcuXG5UaGUgZGVmYXVsdCB2YWx1ZSBmb3IgYWxsIGNoaWxkIGVsZW1lbnRzIG9mIGEgYC5ncmlkYCBpcyBlcXVpdmFsZW50IHRvIGAuY29sLTFgLCBzbyBmb3Igb25seSBvbmUgY2hpbGQgaXQgd2lsbCBzcGFuIHRoZSBmdWxsIHdpZHRoLlxuXG5gYGBqYWRlXG5kaXYuZ3JpZFxuXHRkaXYuY29sLTEtMiBcblx0XHRkaXYuYWlnaXMtZGVidWcgY29sLTEtMlxuXHRkaXYuY29sLTEtMlxuXHRcdGRpdi5haWdpcy1kZWJ1ZyBjb2wtMS0yXG5gYGBcbmBgYGphZGVcbmRpdi5ncmlkXG5cdGRpdi5jb2wtMS00IFxuXHRcdGRpdi5haWdpcy1kZWJ1ZyBjb2wtMS00XG5cdGRpdi5jb2wtMy00XG5cdFx0ZGl2LmFpZ2lzLWRlYnVnIGNvbC0zLTRcbmBgYFxuXG4jIyBMYXlvdXRzIG9uIGRpZmZlcmVudCBkZXZpY2VzXG5cblRoZSBicmVha3BvaW50cyBmb3IgZGlmZmVyZW50IHNjcmVlbiBzaXplcyBhcmUgc3BlY2lmaWVkIGluIHRoZSBgQGdyaWQtYnJlYWstcG9pbnRzYCwgYEBncmlkLWJyZWFrLWxhYmVsc2AgdmFyaWFibGVzLlxuVGhlIGRlZmF1bHQgdmFsdWVzIGRlZmluZSB0d28gYnJlYWtwb2ludHMgd2l0aCBsYWJlbHM6IGAubWVkaXVtLVgtWGAgYW5kIGAubGFyZ2UtWC1YYC5cblNvIGFuIGV4YW1wbGUgZ3JpZCB3aXRoIHR3byBicmVha3BvaW50cyBsb29rcyBsaWtlIHRoaXM6XG5cbmBgYGphZGVcbmRpdi5ncmlkXG5cdGRpdi5tZWRpdW0tMS0yLmxhcmdlLTEtNC54bGFyZ2UtMS0yXG5cdFx0ZGl2LmFpZ2lzLWRlYnVnIGNvbC0xIG1lZGl1bS0xLTIgbGFyZ2UtMS00XG5cdGRpdi5tZWRpdW0tMS0yLmxhcmdlLTEtNC54bGFyZ2UtMS0yXG5cdFx0ZGl2LmFpZ2lzLWRlYnVnIGNvbC0xIG1lZGl1bS0xLTIgbGFyZ2UtMS00XG5cdGRpdi5jb2wtMS0yLm1lZGl1bS0xLTIubGFyZ2UtMS00LnhsYXJnZS0xLTJcblx0XHRkaXYuYWlnaXMtZGVidWcgY29sLTEtMiBtZWRpdW0tMS0yIGxhcmdlLTEtNFxuXHRkaXYuY29sLTEtMi5tZWRpdW0tMS0yLmxhcmdlLTEtNC54bGFyZ2UtMS0yXG5cdFx0ZGl2LmFpZ2lzLWRlYnVnIGNvbC0xLTIgbWVkaXVtLTEtMiBsYXJnZS0xLTRcbmBgYFxuXG4qKk5vdGU6KiogVGhlIGBjb2wtMWAgY2xhc3NlcyBhcmUgbm90IHByZXNlbnQgb24gdGhlIGZpcnN0IHR3byBub2Rlcywgc2luY2UgdGhpcyBpcyB0aGUgZGVmYXVsdCBiZWhhdmlvdXIuXG5cblxuIyMgUmV2ZXJzZSBvcmRlclxuXG5UbyByZXZlcnNlIHRoZSBvcmRlciBpbiB3aGljaCB0aGUgY29sdW1ucyBhcmUgZGlzcGxheWVkLCB5b3UgY2FuIGFkZCB0aGUgbW9kaWZpZXIgY2xhc3MgYC4tcmV2ZXJzZWAgdG8geW91ciBncmlkLlxuVGhlIGNvbHVtbnMgd2lsbCBiZSBpbiBET00gb3JkZXIgd2hlbiB2aWV3cG9ydCBzd2l0Y2hlcyB0byBzbWFsbCBsYXlvdXQuXG5cbmBgYGphZGVcbmRpdi5ncmlkLi1yZXZlcnNlXG5cdGRpdi5jb2wtMS00XG5cdFx0ZGl2LmFpZ2lzLWRlYnVnIEZpcnN0IGNvbHVtbiBpbiBET01cblx0ZGl2LmNvbC0xLTRcblx0XHRkaXYuYWlnaXMtZGVidWcgU2Vjb25kIGNvbHVtbiBpbiBET01cblx0ZGl2LmNvbC0xLTRcblx0XHRkaXYuYWlnaXMtZGVidWcgVGhpcmQgY29sdW1uIGluIERPTVxuXHRkaXYuY29sLTEtNFxuXHRcdGRpdi5haWdpcy1kZWJ1ZyBGb3VydGggY29sdW1uIGluIERPTVxuYGBgXG4jIyBObyBndXR0ZXJcblxuSWYgeW91IGRvbnQgbmVlZCBhIHNwYWNpbmcvZ3V0dGVyIGJldHdlZW4gdGhlIGdyaWQgY29sdW1ucyB5b3UgY2FuIHVzZSB0aGUgbW9kaWZpZXIgYC4tbm9ndXR0ZXJgLlxuXG5gYGBqYWRlXG5kaXYuZ3JpZC4tbm9ndXR0ZXJcblx0ZGl2LmNvbC0xLTRcblx0XHRkaXYuYWlnaXMtZGVidWcgRmlyc3QgY29sdW1uIGluIERPTVxuXHRkaXYuY29sLTEtNFxuXHRcdGRpdi5haWdpcy1kZWJ1ZyBTZWNvbmQgY29sdW1uIGluIERPTVxuXHRkaXYuY29sLTEtNFxuXHRcdGRpdi5haWdpcy1kZWJ1ZyBUaGlyZCBjb2x1bW4gaW4gRE9NXG5cdGRpdi5jb2wtMS00XG5cdFx0ZGl2LmFpZ2lzLWRlYnVnIEZvdXJ0aCBjb2x1bW4gaW4gRE9NXG5gYGBcbiovXG4uZ3JpZCB7XG4gIG1hcmdpbjogMCAtMC45Mzc1cmVtO1xuICAvKipcblx0ICogR2VuZXJhdGUgYWxsIG1lZGlhIGJyZWFrcG9pbnRzIGJhc2VkIG9uIHRoZSBAZ3JpZC1icmVhay1wb2ludHMsIEBncmlkLWJyZWFrLWxhYmVscyB2YXJpYWJsZXMuXG5cdCAqL1xufVxuLmdyaWQ6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY2xlYXI6IGJvdGg7XG59XG4uZ3JpZCA+ICoge1xuICBmbG9hdDogbGVmdDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMCAwLjkzNzVyZW07XG59XG4uZ3JpZC4tcmV2ZXJzZSA+ICoge1xuICBmbG9hdDogcmlnaHQ7XG59XG4uZ3JpZC4tbm9ndXR0ZXIge1xuICBtYXJnaW46IDA7XG59XG4uZ3JpZC4tbm9ndXR0ZXIgPiAqIHtcbiAgcGFkZGluZzogMDtcbn1cbi5ncmlkIC5jb2wtMSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmdyaWQgLmNvbC0xLTIge1xuICB3aWR0aDogNTAlO1xufVxuLmdyaWQgLmNvbC0xLTMge1xuICB3aWR0aDogMzMuMzMzMzMzMzMlO1xufVxuLmdyaWQgLmNvbC0yLTMge1xuICB3aWR0aDogNjYuNjY2NjY2NjclO1xufVxuLmdyaWQgLmNvbC0xLTQge1xuICB3aWR0aDogMjUlO1xufVxuLmdyaWQgLmNvbC0zLTQge1xuICB3aWR0aDogNzUlO1xufVxuQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogMzcuNXJlbSkge1xuICAuZ3JpZCA+IC5tZWRpdW0tMSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLmdyaWQgPiAubWVkaXVtLTEtMiB7XG4gICAgd2lkdGg6IDUwJTtcbiAgfVxuICAuZ3JpZCA+IC5tZWRpdW0tMS0zIHtcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMlO1xuICB9XG4gIC5ncmlkID4gLm1lZGl1bS0yLTMge1xuICAgIHdpZHRoOiA2Ni42NjY2NjY2NyU7XG4gIH1cbiAgLmdyaWQgPiAubWVkaXVtLTEtNCB7XG4gICAgd2lkdGg6IDI1JTtcbiAgfVxuICAuZ3JpZCA+IC5tZWRpdW0tMy00IHtcbiAgICB3aWR0aDogNzUlO1xuICB9XG59XG5AbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiA1OC43NXJlbSkge1xuICAuZ3JpZCA+IC5sYXJnZS0xIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAuZ3JpZCA+IC5sYXJnZS0xLTIge1xuICAgIHdpZHRoOiA1MCU7XG4gIH1cbiAgLmdyaWQgPiAubGFyZ2UtMS0zIHtcbiAgICB3aWR0aDogMzMuMzMzMzMzMzMlO1xuICB9XG4gIC5ncmlkID4gLmxhcmdlLTItMyB7XG4gICAgd2lkdGg6IDY2LjY2NjY2NjY3JTtcbiAgfVxuICAuZ3JpZCA+IC5sYXJnZS0xLTQge1xuICAgIHdpZHRoOiAyNSU7XG4gIH1cbiAgLmdyaWQgPiAubGFyZ2UtMy00IHtcbiAgICB3aWR0aDogNzUlO1xuICB9XG59XG4vKlxuLS0tXG5uYW1lOiBpbWcucmVzcG9uc2l2ZVxuY2F0ZWdvcnk6IExheW91dC9JbWFnZVxudGFnOlxuIC0gcmVzcG9uc2l2ZVxuY29tcGlsZTogdHJ1ZVxuLS0tXG5cblRoaXMgY2xhc3MgbWFrZXMgdGhlIGltYWdlIHNjYWxpbmcgdG8gaXRzIG1heCB3aWR0aC5cblxuYGBgamFkZVxuaW1nLnJlc3BvbnNpdmUoc3JjPSdodHRwOi8vd3d3LmJ5dWkuZWR1L2ltYWdlcy9hZ3JpY3VsdHVyZS1saWZlLXNjaWVuY2VzL2Zsb3dlci5qcGcnKVxuYGBgXG4qL1xuaW1nLnJlc3BvbnNpdmUge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbn1cbi8qXG4tLS1cbm5hbWU6IC5tZWRpYS1yZXNwb25zaXZlXG5jYXRlZ29yeTogTGF5b3V0L01lZGlhXG50YWc6XG4gLSByZXNwb25zaXZlXG5jb21waWxlOiB0cnVlXG4tLS1cblxuYC5tZWRpYS1yZXNwb25zaXZlYCAtIFRoaXMgbWFrZXMgYSB0aGUgYC5tZWRpYS1yZXNwb25zaXZlYCBkaXYgYSBjb250YWluZXIgZm9yIGFueSBtZWRpYSBlbGVtZW50IChpZnJhbWUsIHZpZGVvLCAuLi4gKSB0aGF0IHJlc3BvbnNpdmUgc2NhbGVzIHdpdGggYSBmaXggcmF0aW8uXG5UaGUgbWVkaWEgZWxlbWVudCAoIGNoaWxkICkgbmVlZHMgdGhlIGNsYXNzIGAuc3RyZXRjaGAgdG8gZnVsbHkgZmlsbCBvdXQgdGhlIHBhcmVudHMgc2l6ZS5cblxuVGhlIGAubWVkaWEtcmVzcG9uc2l2ZWAgY29tcG9uZW50IGhhcyB0byBwcmVkZWZpbmVkIG1vZGlmaWVyczogYC4tbWVkaWEtNC0zYCwgYC4tbWVkaWEtMTYtOWAgdGhhdCBkZWZpbmUgYSBmaXggcmF0aW8uXG5cbmBgYGphZGVcbmRpdi5tZWRpYS1yZXNwb25zaXZlLi1tZWRpYS0xNi05XG5cdGlmcmFtZS5zdHJldGNoKHNyYz1cImh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9VENkNlBmeE95MFlcIilcbmBgYFxuKi9cbi5tZWRpYS1yZXNwb25zaXZlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1ib3R0b206IDUwJTtcbn1cbi5tZWRpYS1yZXNwb25zaXZlLi1tZWRpYS00LTMge1xuICBwYWRkaW5nLWJvdHRvbTogNzUlO1xufVxuLm1lZGlhLXJlc3BvbnNpdmUuLW1lZGlhLTE2LTkge1xuICBwYWRkaW5nLWJvdHRvbTogNTYuMjYlO1xufVxuLypcbi0tLVxubmFtZTogLnBhZ2UtZmx1aWRcbmNhdGVnb3J5OiBQYWdlL0ZsdWlkXG50YWc6XG4gLSByZXNwb25zaXZlXG5jb21waWxlOiB0cnVlXG4tLS1cblxuYC5wYWdlLWZsdWlkYCBjZW50ZXJzIHRoZSBwYWdlIGNvbnRlbnQgYW5kIGFkZHMgYSBwYWRkaW5nIHNvIHRoZSBwYWdlIHN0aWNrcyBub3QgdG8gdGhlIGJyb3dzZXIgdmlld3BvcnQuXG5GdXJ0aGVybW9yZSBpdCBoYXMgYSBtYXgtd2lkdGggYmFzZWQgb24gdGhlIGxhc3QgYEBncmlkLWJyZWFrLXBvaW50c2AgdmFsdWUuXG5cbmBgYGphZGVcbmRpdi5wYWdlLWZsdWlkXG5cdGRpdi5haWdpcy1kZWJ1ZyBTb21lIHBhZ2UgY29udGVudFxuYGBgXG5cbiMjIE1heC13aWR0aCBwYWdlXG5cblRvIGJyb2FkZW4gdGhlIHdpZHRoIG9mIHRoZSBwYWdlIHlvdSBjYW4gYWRkIHRoZSBtb2RpZmllciBgLi11bmxpbWl0ZWRgLiBUaHNpIHdpbGwgc3BhbiB0aGUgcGFnZSB0byB0aGUgZnVsbCB3aWR0aC5cblxuYGBgamFkZVxuZGl2LnBhZ2UtZmx1aWQuLXVubGltaXRlZFxuXHRkaXYuYWlnaXMtZGVidWcgU29tZSBwYWdlIGNvbnRlbnRcbmBgYFxuKi9cbi5wYWdlLWZsdWlkIHtcbiAgbWF4LXdpZHRoOiA2Ni4yNXJlbTtcbiAgbWFyZ2luOiBhdXRvO1xuICBwYWRkaW5nOiAwIDMuNzVyZW07XG59XG4ucGFnZS1mbHVpZC4tdW5saW1pdGVkIHtcbiAgbWF4LXdpZHRoOiBub25lO1xufVxuLypcbi0tLVxubmFtZTogLnJvd1xuY2F0ZWdvcnk6IExheW91dC9Sb3dcbnRhZzpcbiAtIGNvbXBvbmVudFxuY29tcGlsZTogdHJ1ZVxuLS0tXG5cblRoaXMgc3R5bGluZyBhbGxvdyB0byBwbGFjZSBjb250YWluZXJzIGluIGEgcm93LiBUaGV5IHdpbGwgKipub3QqKiBicmVhayBhcyB0aGUgYC5ncmlkYCBidXQgcmVzaXplIHRoZW0gYWNjb3JkaW5nbHkuXG5Tb21lIGJlbmVmaXRzIG9mIHRoZSBgLnJvd2AgYXBwcm9hY2ggaXMgdGhlIGVhc3kgdmVydGljYWwgY2VudGVyaW5nIGFuZCB0aGUgdXNhZ2Ugb2YgdGhlIGAuY29sLWF1dG9gIGNsYXNzLlxuXG4jIyBCYXNpYyByb3cgd2l0aCB2ZXJ0aWNhbCBjZW50ZXJpbmdcblxuWW91IGNhbiB1c2UgdGhlIHNpemluZyBjbGFzc2VzIGAuY29sLVgtWGAgdG8gZGVmaW5lIHRoZSB3aWR0aCBvZiBhIGNvbHVtbiBhcyB0aGUgZm9sbG93aW5nIGV4YW1wbGUgc2hvd3MuIFxuXG5gYGBqYWRlXG5kaXYucm93XG5cdGRpdi5jb2wtMS00LmFpZ2lzLWRlYnVnIGNvbC0xLTQgd2l0aCBhIGxvdCBvZiB0ZXh0IHRoYXQgc3BhbnMgdGhlIGNvbHVtbi5cblx0ZGl2LmNvbC0zLTQuYWlnaXMtZGVidWcgY29sLTMtNCBjb250ZW50LlxuYGBgXG5cbiMjIEZpeGVkIHJvd1xuXG5UaGVyZSBpcyBhIGAuLWZpeGVkYCBtb2RpZmllciB3aGVyZSBlYWNoIGNvbHVtbiBoYXMgdGhlIHNhbWUgd2lkdGguXG5cbmBgYGphZGVcbmRpdi5yb3cuLWZpeGVkXG5cdGRpdi5haWdpcy1kZWJ1ZyBldmVubHkgc3ByZWFkb3V0IGNvbHVtblxuXHRkaXYuYWlnaXMtZGVidWcgZXZlbmx5IHNwcmVhZG91dCBjb2x1bW4gd2l0aCBtb3JlIGNvbnRlbnRcblx0ZGl2LmFpZ2lzLWRlYnVnIGV2ZW5seSBzcHJlYWRvdXQgY29sdW1uXG5cdGRpdi5haWdpcy1kZWJ1ZyBldmVubHkgc3ByZWFkb3V0IGNvbHVtbiB3aXRoIG11Y2ggbW9yZSBjb250ZW50IHRoYW4gdGhlIG90aGVyXG5cdGRpdi5haWdpcy1kZWJ1Zy52Y2VudGVyIGV2ZW5seSBzcHJlYWRvdXQgY29sdW1uIHdpdGggLnZjZW50ZXJcbmBgYFxuXG5cbiMjIEF1dG8gc2l6ZWQgY29sdW1uIHdpZHRoIGFuZCB2Y2VudGVyXG5cblRoZXJlIGlzIGEgc3BlY2lhbCBgLmNvbC1hdXRvYCBjbGFzcyB0aGF0IHJlc2l6ZXMgdGhlIGNvbHVtbiB0byB0aGUgc2l6ZSBvZiBpdHMgY29udGVudC5cblRoaXMgaXMgdXNlZnVsbCBmb3IgZXhhbXBsZSBpZiB5b3UgaGF2ZSBhIGZpeGVkIHNpemUgbG9nbyBhbmQgdGhlIHJlc3Qgb2YgdGhlIGhlYWRlciBoYXMgdG8gcmVzaXplLlxuXG5gYGBqYWRlXG5kaXYucm93Li1jZW50ZXJcblx0ZGl2LmNvbC1hdXRvLmFpZ2lzLWRlYnVnXG5cdFx0aW1nKHNyYz1cImh0dHA6Ly9wbGFjZWhvbGQuaXQvMTAweDEwMFwiKVxuXHRkaXYuY29sLTEuYWlnaXMtZGVidWcgVGhlIHJlc3Rcblx0ZGl2LmNvbC1hdXRvLmFpZ2lzLWRlYnVnXG5cdFx0aW1nKHNyYz1cImh0dHA6Ly9wbGFjZWhvbGQuaXQvMjAweDEwMFwiKVxuYGBgXG4qL1xuLnJvdyB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICB3aWR0aDogMTAwJTtcbn1cbi5yb3cuLWZpeGVkIHtcbiAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbn1cbi5yb3cuLWNlbnRlciA+ICoge1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLnJvdy4tYm90dG9tID4gKiB7XG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG59XG4ucm93Li1wYWRkZWQgPiAqICsgKiB7XG4gIHBhZGRpbmctbGVmdDogMS44NzVyZW07XG59XG4ucm93ID4gKiB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG59XG4ucm93ID4gKi5jb2wtMSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnJvdyA+ICouY29sLTEtMixcbi5yb3cgPiAqLmNvbC0yLTQge1xuICB3aWR0aDogNTAlO1xufVxuLnJvdyA+ICouY29sLTEtMyB7XG4gIHdpZHRoOiAzMy4zMzMzMzMzMyU7XG59XG4ucm93ID4gKi5jb2wtMi0zIHtcbiAgd2lkdGg6IDY2LjY2NjY2NjY3JTtcbn1cbi5yb3cgPiAqLmNvbC0xLTQge1xuICB3aWR0aDogMjUlO1xufVxuLnJvdyA+ICouY29sLTMtNCB7XG4gIHdpZHRoOiA3NSU7XG59XG4ucm93ID4gKi5jb2wtYXV0byB7XG4gIHdpZHRoOiBhdXRvO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLypcbi0tLVxubmFtZTogLmJ1dHRvblxuY2F0ZWdvcnk6IExlcm5mcmFnZW4vQnV0dG9uXG50YWc6XG4gLSBjb21wb25lbnRcbiAtIGJ1dHRvblxuY29tcGlsZTogdHJ1ZVxuLS0tXG5cbkJhc2ljIHN0eWxlcyBmb3IgYnV0dG9uLiBFeHRlbmRpbmcgdGhlIGRlZmF1bHQtYnV0dG9uIG9mIHRoZSBjc3MtbGliXG5cbmBgYGphZGVcbmJ1dHRvbi5idXR0b24gQWN0aW9uXG5idXR0b24uYnV0dG9uLi1kaXNhYmxlZCBEaXNhYmxlZFxuYGBgXG5cbkNhbiBhbHNvIGJlIHVzZWQgd2l0aCBhbiBhIHRhZ1xuXG5gYGBqYWRlXG5hLmJ1dHRvbiBBY3Rpb25cbmEuYnV0dG9uLi1kaXNhYmxlZCBEaXNhYmxlZFxuYGBgXG5cbiovXG4uYnV0dG9uIHtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiBsaWdodGVyO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLmJ1dHRvbjpmb2N1cyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMwMDAwMDA7XG4gIHBhZGRpbmc6IDAuNDM3NXJlbSAwLjY4NzVyZW07XG59XG4uYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYTFjNztcbn1cbi5idXR0b24uLWRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzI0MzgzZDtcbn1cbi8qXG4tLS1cbm5hbWU6IC5mZWVkYmFjay1wYW5lbFxuY2F0ZWdvcnk6IExlcm5mcmFnZW4vRmVlZGJhY2tQYW5lbFxudGFnOlxuIC0gY29tcG9uZW50XG4gLSBmZWVkYmFja1xuY29tcGlsZTogdHJ1ZVxuLS0tXG5cblRoaXMgc3R5bGVzIGEgZmVlZGJhY2sgbWVzc2FnZSB3aGVuIHRoZSB1c2VyIGhhcyBhbnN3ZXJlZCBhIHF1ZXN0aW9uLlxuXG5gYGBqYWRlXG5kaXYuZmVlZGJhY2sgVGhhbmtzIGZvciB5b3VyIGFuc3dlci5cbmRpdi5mZWVkYmFjay5jb3JyZWN0IFBlcmZlY3QsIHlvdXIgYW5zd2VyIGlzIGNvcnJlY3RcbmRpdi5mZWVkYmFjay53cm9uZyBTb3JyeSwgYnV0IHlvdXIgYW5zd2VyIGlzIHdyb25nLlxuYGBgXG5cbiMjIENvcnJlY3QgXG5cblRoZSBgLi1jb3JyZWN0YCBtb2RpZmllciBzdHlsZXMgdGhlIGZlZWRiYWNrIG1lc3NhZ2UgZm9yIGEgY29ycmVjbHkgYW5zd2VyZWQgcXVlc3Rpb25cblxuYGBgamFkZVxuZGl2LmZlZWRiYWNrLWNvbnRhaW5lci4tY29ycmVjdCBQZXJmZWN0LCB5b3VyIGFuc3dlciBpcyBjb3JyZWN0XG5gYGBcblxuIyMgV3JvbmcgXG5cblRoZSBgLi13cm9uZ2AgbW9kaWZpZXIgc3R5bGVzIHRoZSBmZWVkYmFjayBtZXNzYWdlIGZvciBhIHdyb25nIGFuc3dlcmVkIHF1ZXN0aW9uXG5cbmBgYGphZGVcbmRpdi5mZWVkYmFjay1jb250YWluZXIud3JvbmcgU29ycnksIGJ1dCB5b3VyIGFuc3dlciBpcyB3cm9uZy5cbmBgYFxuKi9cbi5mZWVkYmFjay1wYW5lbCB7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgcGFkZGluZzogMS4yNXJlbSAxLjI1cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2VkYmRlO1xuICBtYXJnaW46IDEuMjVyZW0gMC4zMTI1cmVtO1xufVxuLmZlZWRiYWNrLXBhbmVsLi1jb3JyZWN0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzQ3ODgyZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjllZTtcbiAgY29sb3I6ICMxZjNiMTQ7XG59XG4uZmVlZGJhY2stcGFuZWwuLXdyb25nIHtcbiAgYm9yZGVyOiAxcHggc29saWQgIzlCMjcyNztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZkZjdmNztcbiAgY29sb3I6ICM0YTEyMTI7XG59XG4vKlxuLS0tXG5uYW1lOiAuZm9ybVxuY2F0ZWdvcnk6IExlcm5mcmFnZW5cbnRhZzpcbiAtIGZvcm1zXG5jb21waWxlOiB0cnVlXG4tLS1cblxuU3R5bGVzIGZvciBhbGwgZm9ybSBpbnB1dHMuXG4qL1xuLyoqKlxuICogRm9ybXM6XG4gKi9cbi8qKlxuICogSW5wdXQ6XG4gKiBgLmlucHV0YCAtIEEgc3R5bGUgZm9yIGFuIGlucHV0ZmllbGQgXG4gKiBcbiAqIFx0QGV4YW1wbGVcbiAqIFx0aW5wdXQuaW5wdXRcbiAqL1xuLmlucHV0IHtcbiAgb3V0bGluZTogbm9uZTtcbiAgbGluZS1oZWlnaHQ6IDEuNDY3ZW07XG4gIHBhZGRpbmc6IDhweCAxMnB4O1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXI6IDJweCBzb2xpZCAjYTBiYWMwO1xuICAvKipcblx0ICogQ29ycmVjdCBnYXAgaW5wdXQ6XG5cdCAqIGAuY29ycmVjdGAgLSBGZWVkYmFjayBpZiB0aGUgaW5wdXQgaXMgY29ycmVjdCBhbnN3ZXJlZFxuXHQgKiBcblx0ICogXHRAZXhhbXBsZVxuXHQgKiBcdGlucHV0LmlucHV0LmNvcnJlY3Rcblx0ICovXG4gIC8qKlxuXHQgKiBXcm9uZyBnYXAgaW5wdXQ6XG5cdCAqIGAud3JvbmdgIC0gRmVlZGJhY2sgaWYgdGhlIGlucHV0IGlzIHdyb25nIGFuc3dlcmVkXG5cdCAqIFxuXHQgKiBcdEBleGFtcGxlXG5cdCAqIFx0aW5wdXQuaW5wdXQud3Jvbmdcblx0ICovXG59XG4uaW5wdXQ6Zm9jdXMge1xuICBib3JkZXI6IDJweCBzb2xpZCAjM2I1MzU5O1xufVxuLmlucHV0Li1jb3JyZWN0IHtcbiAgYm9yZGVyOiAycHggc29saWQgIzQ3ODgyZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjllZTtcbn1cbi5pbnB1dC4td3Jvbmcge1xuICBib3JkZXI6IDJweCBzb2xpZCAjOUIyNzI3O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmRmN2Y3O1xufVxuLyoqXG4gKiBEcm9wZG93bjpcbiAqIGBzZWxlY3QuZHJvcGRvd25gIC0gU3R5bGluZyBvZiBhIGRyb3Bkb3duLlxuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdHNlbGVjdC5kcm9wZG93blxuICogXHRcdG9wdGlvbih2YWx1ZT1cIm9wdDFcIikgT3B0aW9uIDFcbiAqIFx0XHRvcHRpb24odmFsdWU9XCJvcHQyXCIpIE9wdGlvbiAyXG4gKi9cbnNlbGVjdC5kcm9wZG93biB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBwYWRkaW5nOiA1cHg7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNhMGJhYzA7XG4gIGhlaWdodDogMi42ZW07XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRjtcbiAgbWFyZ2luOiAycHg7XG4gIC8qKlxuXHQgKiBDb3JyZWN0IGRyb3Bkb3duIGlucHV0OlxuXHQgKiBgLmNvcnJlY3RgIC0gRmVlZGJhY2sgaWYgdGhlIGlucHV0IGlzIGNvcnJlY3QgYW5zd2VyZWRcblx0ICogXG5cdCAqIFx0QGV4YW1wbGVcblx0ICogXHRzZWxlY3QuZHJvcGRvd24uY29ycmVjdFxuXHQgKiBcdFx0b3B0aW9uKHZhbHVlPVwib3B0MVwiKSBPcHRpb24gMVxuXHQgKiBcdFx0b3B0aW9uKHZhbHVlPVwib3B0MlwiKSBPcHRpb24gMlxuXHQgKi9cbiAgLyoqXG5cdCAqIFdyb25nIGRyb3Bkb3duIGlucHV0OlxuXHQgKiBgLndyb25nYCAtIEZlZWRiYWNrIGlmIHRoZSBpbnB1dCBpcyB3cm9uZyBhbnN3ZXJlZFxuXHQgKiBcblx0ICogXHRAZXhhbXBsZVxuXHQgKiBcdHNlbGVjdC5kcm9wZG93bi53cm9uZ1xuXHQgKiBcdFx0b3B0aW9uKHZhbHVlPVwib3B0MVwiKSBPcHRpb24gMVxuXHQgKiBcdFx0b3B0aW9uKHZhbHVlPVwib3B0MlwiKSBPcHRpb24gMlxuXHQgKi9cbn1cbnNlbGVjdC5kcm9wZG93bi4tY29ycmVjdCB7XG4gIGJvcmRlcjogMnB4IHNvbGlkICM0Nzg4MmQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMWY5ZWU7XG59XG5zZWxlY3QuZHJvcGRvd24uLXdyb25nIHtcbiAgYm9yZGVyOiAycHggc29saWQgIzlCMjcyNztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZkZjdmNztcbn1cbi8qKlxuICogRnJlZXRleHQgdGV4dGFyZWE6XG4gKiBgdGV4dGFyZWFgIC0gTWluaW11bSBzaXplZCB0ZXh0YXJlYSBmb3IgZnJlZSB0ZXh0IGlucHV0XG4gKiBcbiAqIFx0QGV4YW1wbGVcbiAqIFx0dGV4dGFyZWEuaW5wdXRcbiAqL1xudGV4dGFyZWEge1xuICBtaW4taGVpZ2h0OiAxMjBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4vKipcbiAqIFNpbmdsZS0gJiBNdWx0aXBsZUNob2ljZSBhbnN3ZXI6XG4gKiBgLmFuc3dlci12aWV3YCAtIFRoaXMgc3R5bGUgaXMgZm9yIGFuIGFuc3dlciBvbiBhIG11bHRpcGxlLSBvciBzaW5nbGVjaG9pY2UgcXVlc3Rpb24uIEl0IHByb3Blcmx5IGFsaWducyB0aGUgdGV4dCBhbmQgdGhlIGNoZWNrYm94LlxuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdGRpdi5hbnN3ZXItdmlld1xuICogXHRcdGxhYmVsXG4gKiBcdFx0XHRpbnB1dCh0eXBlPVwicmFkaW9cIilcbiAqIFx0XHRcdHAgUHJvIFR5cGVTY3JpcHQgc2hvd3MgeW91IGhvdyB0byB3cml0ZSBsYXJnZS1zY2FsZSBKYXZhU2NyaXB0IHByb2dyYW1zIHRoYXQgY2FuIHJ1biBpbiBhbnkgd2ViIGJyb3dzZXIgb3Igb24gYW55IHdlYiBzZXJ2ZXIgdXNpbmcgTWljcm9zb2Z04oCZcyBUeXBlU2NyaXB0IGxhbmd1YWdlLlxuICogXHRkaXYuYW5zd2VyLXZpZXdcbiAqIFx0XHRsYWJlbFxuICogXHRcdFx0aW5wdXQodHlwZT1cImNoZWNrYm94XCIpXG4gKiBcdFx0XHRwIFBybyBUeXBlU2NyaXB0IHNob3dzIHlvdSBob3cgdG8gd3JpdGUgbGFyZ2Utc2NhbGUgSmF2YVNjcmlwdCBwcm9ncmFtcyB0aGF0IGNhbiBydW4gaW4gYW55IHdlYiBicm93c2VyIG9yIG9uIGFueSB3ZWIgc2VydmVyIHVzaW5nIE1pY3Jvc29mdOKAmXMgVHlwZVNjcmlwdCBsYW5ndWFnZS5cbiAqL1xuLmFuc3dlci12aWV3IHtcbiAgbWluLWhlaWdodDogMjBweDtcbiAgbWFyZ2luOiA1cHggMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiA1cHg7XG4gIC8qKlxuXHQgKiBDb3JyZWN0IGFuc3dlcmVkIHZpZXc6XG5cdCAqIGAuYW5zd2VyLXZpZXcuY29ycmVjdGAgLSBGZWVkYmFjayBpZiB0aGUgYW5zd2VyIGlzIGNvcnJlY3Rcblx0ICogXG5cdCAqIFx0QGV4YW1wbGVcblx0ICogXHRkaXYuYW5zd2VyLXZpZXcuY29ycmVjdFxuXHQgKiBcdFx0bGFiZWxcblx0ICogXHRcdFx0aW5wdXQodHlwZT1cInJhZGlvXCIpXG5cdCAqIFx0XHRcdHAgQ29ycmVjdFxuXHQgKi9cbiAgLyoqXG5cdCAqIFdyb25nIGFuc3dlcmVkIHZpZXc6XG5cdCAqIGAuYW5zd2VyLXZpZXcud3JvbmdgIC0gRmVlZGJhY2sgaWYgdGhlIGFuc3dlciBpcyB3cm9uZ1xuXHQgKiBcblx0ICogXHRAZXhhbXBsZVxuXHQgKiBcdGRpdi5hbnN3ZXItdmlldy53cm9uZ1xuXHQgKiBcdFx0bGFiZWxcblx0ICogXHRcdFx0aW5wdXQodHlwZT1cImNoZWNrYm94XCIpXG5cdCAqIFx0XHRcdHAgV3Jvbmdcblx0ICovXG59XG4uYW5zd2VyLXZpZXcgbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctbGVmdDogMjBweDtcbn1cbi5hbnN3ZXItdmlldyBpbnB1dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luLWxlZnQ6IC0yMHB4O1xuICBtYXJnaW4tdG9wOiA0cHg7XG59XG4uYW5zd2VyLXZpZXcgcCB7XG4gIG1hcmdpbjogMDtcbn1cbi5hbnN3ZXItdmlldy4tY29ycmVjdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMWY5ZWU7XG4gIGNvbG9yOiAjNDc4ODJkO1xufVxuLmFuc3dlci12aWV3Li1jb3JyZWN0IHA6YWZ0ZXIge1xuICBjb250ZW50OiAnIFxcMDI3MTMnO1xufVxuLmFuc3dlci12aWV3Li13cm9uZyB7XG4gIGNvbG9yOiAjOUIyNzI3O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmRmN2Y3O1xufVxuLmFuc3dlci12aWV3Li13cm9uZyBwOmFmdGVyIHtcbiAgY29udGVudDogJyBcXDAyNzE3Jztcbn1cbi8qKlxuICogRHJhZyBub2RlOlxuICogYC5kcmFnLW5vZGVgIC0gQSBub2RlIHN0eWxlIHRoYXQgc2hvd3MgaXQgY2FuIGJlIGRyYWdnZWQuXG4gKiBcbiAqIFx0QGV4YW1wbGVcbiAqIFx0ZGl2LmRyYWctbm9kZSBNeSBkcmFnZ2FibGUgZWxlbWVudFxuICovXG4uZHJhZy1ub2RlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjdXJzb3I6IG1vdmU7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgcGFkZGluZzogMTBweDtcbiAgYm9yZGVyOiAycHggc29saWQgI2EwYmFjMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VkZjJmMztcbiAgLyoqXG5cdCAqIENvcnJlY3QgcGxhY2VkIGRyYWcgbm9kZTpcblx0ICogYC5kcmFnLW5vZGUuY29ycmVjdGAgLSBGZWVkYmFjayBpZiB0aGUgZHJhZyBpcyBjb3JyZWN0IHBsYWNlZFxuXHQgKiBcblx0ICogXHRAZXhhbXBsZVxuXHQgKiBcdGRpdi5kcmFnLW5vZGUuY29ycmVjdCBDb3JyZWN0IGVsZW1lbnRcblx0ICovXG4gIC8qKlxuXHQgKiBXcm9uZyBwbGFjZWQgZHJhZyBub2RlOlxuXHQgKiBgLmRyYWctbm9kZS53cm9uZ2AgLSBTdHlsZSB3cm9uZyBpZiB3cm9uZ1xuXHQgKiBcblx0ICogXHRAZXhhbXBsZVxuXHQgKiBcdGRpdi5kcmFnLW5vZGUud3JvbmcgV3JvbmcgZWxlbWVudFxuXHQgKi9cbn1cbi5kcmFnLW5vZGU6aG92ZXIge1xuICBib3JkZXI6IDJweCBzb2xpZCAjM2I1MzU5O1xufVxuLmRyYWctbm9kZS4tY29ycmVjdCB7XG4gIGJvcmRlcjogMnB4IHNvbGlkICM0Nzg4MmQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMWY5ZWU7XG59XG4uZHJhZy1ub2RlLi13cm9uZyB7XG4gIGJvcmRlcjogMnB4IHNvbGlkICM5QjI3Mjc7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZGY3Zjc7XG59XG4vKipcbiAqIERyb3Agbm9kZTpcbiAqIGAuZHJvcC1ub2RlYCAtIEEgc3R5bGUgZm9yIGEgbm9kZSB3aGVyZSBkcmFnIGVsZW1lbnRzIGNhbiBiZSBkcm9wcGVkLlxuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdGRpdi5kcm9wLW5vZGVcbiAqIFx0XHRkaXYudGl0bGUgRHJvcCBub2RlXG4gKiBcdFx0ZGl2LmRyYWdzXG4gKiBcdFx0XHRkaXYuZHJhZy1ub2RlIERyYWcgZWxlbWVudFxuICovXG4uZHJvcC1ub2RlIHtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjYTBiYWMwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzc3O1xuICBtYXJnaW46IDEwcHggMDtcbn1cbi5kcm9wLW5vZGUgLnRpdGxlIHtcbiAgcGFkZGluZzogNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGO1xufVxuLmRyb3Atbm9kZSAuZHJhZy1ub2RlIHtcbiAgbWFyZ2luOiA1cHg7XG59XG4uZHJvcC1ub2RlIC5kcm9wLXRhcmdldCB7XG4gIG1pbi1oZWlnaHQ6IDUycHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4vKipcbiAqIERyYWcgY29udGFpbmVyOlxuICogYC5kcmFnLWNvbnRhaW5lcmAgLSBBIGNvbnRhaW5lciB0aGF0IHN0b3JlcyB0aGUgZHJhZyBub2RlcyB3aGVuIHRoZXkgYXJlIG5vdCBvbiBhIGRyb3Agbm9kZS5cbiAqIFxuICogXHRAZXhhbXBsZVxuICogXHRkaXYuZHJhZy1jb250YWluZXJcbiAqIFx0XHRkaXYuZHJhZy1ub2RlIERyYWcgZWxlbWVudFxuICovXG4uZHJhZy1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTA3MDc3O1xuICBtYXJnaW46IDEwcHggMDtcbn1cbi5kcmFnLWNvbnRhaW5lciAuZHJhZy1ub2RlIHtcbiAgbWFyZ2luOiA1cHg7XG59XG4vKipcbiAqIEhvdHNwb3QgcG9pbnQ6XG4gKiBgLmhvdHNwb3QtcG9pbnRgIC0gQSBwb2ludCB0aGF0IGlzIHNob3duIG9uIHRoZSBob3RzcG90IGltYWdlIHdoZW4gaXQgaXMgY2xpY2tlZC5cbiAqIFxuICogXHRAZXhhbXBsZVxuICogXHRkaXYuaG90c3BvdC1wb2ludFxuICovXG4uaG90c3BvdC1wb2ludCB7XG4gIGhlaWdodDogMjBweDtcbiAgd2lkdGg6IDIwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGJvcmRlcjogMnB4IHNvbGlkICMzYjUzNTk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkY7XG4gIG1hcmdpbi1sZWZ0OiAtMTBweDtcbiAgbWFyZ2luLXRvcDogLTEwcHg7XG4gIC8qKlxuXHQgKiBDb3JyZWN0IGhvdHNwb3QgcG9pbnQ6XG5cdCAqIGAuaG90c3BvdC1wb2ludC5jb3JyZWN0YCAtIFRoZSBzdHlsZSBmb3IgYSBjb3JyZWN0IHBsYWNlZCBob3RzcG90IHBvaW50XG5cdCAqIFxuXHQgKiBcdEBleGFtcGxlXG5cdCAqIFx0ZGl2KHN0eWxlPVwiaGVpZ2h0OjI0cHhcIilcblx0ICogXHRcdGRpdi5ob3RzcG90LXBvaW50LmNvcnJlY3Rcblx0ICovXG4gIC8qKlxuXHQgKiBXcm9uZyBob3RzcG90IHBvaW50OlxuXHQgKiBgLmhvdHNwb3QtcG9pbnQud3JvbmdgIC0gVGhlIHN0eWxlIGZvciBhIHdyb25nIHBsYWNlZCBob3RzcG90IHBvaW50XG5cdCAqIFxuXHQgKiBcdEBleGFtcGxlXG5cdCAqIFx0ZGl2KHN0eWxlPVwiaGVpZ2h0OjI0cHhcIilcblx0ICogXHRcdGRpdi5ob3RzcG90LXBvaW50Lndyb25nXG5cdCAqL1xufVxuLmhvdHNwb3QtcG9pbnQuLWNvcnJlY3Qge1xuICBib3JkZXI6IDJweCBzb2xpZCAjNDc4ODJkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmOWVlO1xufVxuLmhvdHNwb3QtcG9pbnQuLXdyb25nIHtcbiAgYm9yZGVyOiAycHggc29saWQgIzlCMjcyNztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZkZjdmNztcbn1cbi8qKlxuICogSG90c3BvdCByZWN0YW5nbGVzOlxuICogYC5ob3RzcG90LXJlY3RgIC0gQSB2aXN1YWxpemF0aW9uIG9mIHRoZSBob3RzcG90IHJlY3RhbmdsZXMgb24gYW4gYXJlYVxuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdGRpdi5pbWctYXJlYVxuICogXHRcdGRpdi5zdHJldGNoXG4gKiBcdFx0XHRkaXYuaG90c3BvdC1yZWN0LmFicyhzdHlsZT1cInRvcDo0MCU7bGVmdDo0MCU7d2lkdGg6MjAlO2hlaWdodDoyMCU7ei1pbmRleDogMTtcIilcbiAqIFx0XHRpbWcoc3JjPSdodHRwOi8vd3d3LmJ5dWkuZWR1L2ltYWdlcy9hZ3JpY3VsdHVyZS1saWZlLXNjaWVuY2VzL2Zsb3dlci5qcGcnKVxuICovXG4uaG90c3BvdC1yZWN0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjIpO1xuICBib3JkZXI6IDFweCBzb2xpZCAjRkZGO1xufVxuLyoqKlxuICogSW1hZ2UtQXJlYXMgKGZvciBob3RzcG90cyAvIHRvb2x0aXBzIC8gLi4uICk6XG4gKi9cbi8qKlxuICogSW1hZ2UtQXJlYTpcbiAqIGAuaW1nLWFyZWFgIEltYWdlIGFyZWEgZGVmaW5lcyBhbiBhcmVhIG92ZXIgdGhlIGltYWdlIGluIHdoaWNoIGltYWdlIGFyZWEgZWxlbWVudHMgY2FuIGJlIHBsYWNlZFxuICpcbiAqIFx0QGV4YW1wbGVcbiAqIFx0ZGl2LmltZy1hcmVhXG4gKiBcdFx0aW1nLnJlc3BvbnNpdmUtaW1nKHNyYz0naHR0cDovL3d3dy5ieXVpLmVkdS9pbWFnZXMvYWdyaWN1bHR1cmUtbGlmZS1zY2llbmNlcy9mbG93ZXIuanBnJylcbiAqIFx0XHRkaXYuYWJzKCBzdHlsZT1cInBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAxMCU7IGxlZnQ6IDEwJTsgd2lkdGg6IDMwJTsgaGVpZ2h0OiAzMCU7IGJhY2tncm91bmQtY29sb3I6ICNGRkZcIikgRXhhbXBsZSBBcmVhXG4gKi9cbi5pbWctYXJlYSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG4ubmF2aWdhdGlvbi1iYXIge1xuICBwYWRkaW5nLXRvcDogMTBweDtcbiAgcGFkZGluZy1ib3R0b206IDEwcHg7XG59XG4vKlxuLS0tXG5uYW1lOiAubmV4dHNvbHV0aW9uLW5hdmlnYXRpb24sXG5jYXRlZ29yeTogTGVybmZyYWdlbi9OYXZpZ2F0aW9uL05leHRQcmV2XG50YWc6XG4gLSBjb21wb25lbnRcbiAtIG5hdmlnYXRpb25cbiAtIG5leHRwcmV2XG5jb21waWxlOiB0cnVlXG4tLS1cblxuQSBmb3J3YXJkIGJhY2t3YXJkIG5hdmlnYXRpb24uXG5cbmBgYGphZGVcbi5uZXh0c29sdXRpb24tbmF2aWdhdGlvblxuXHRidXR0b24uYnV0dG9uLnByZXYgUHJldmlvdXNcblx0YnV0dG9uLmJ1dHRvbi5uZXh0IE5leHRcblx0YnV0dG9uLmJ1dHRvbi5zb2x1dGlvbiBTb2x1dGlvblxuXHRcbmBgYFxuXG4qL1xuLm5leHRzb2x1dGlvbi1uYXZpZ2F0aW9uID4gLm5leHQ6YWZ0ZXIsXG4ubmV4dHByZXYtbmF2aWdhdGlvbiA+IC5uZXh0OmFmdGVyIHtcbiAgY29udGVudDogJyA+Jztcbn1cbi5uZXh0c29sdXRpb24tbmF2aWdhdGlvbiA+IC5wcmV2LFxuLm5leHRwcmV2LW5hdmlnYXRpb24gPiAucHJldiB7XG4gIG1hcmdpbi1yaWdodDogMC42MjVyZW07XG59XG4ubmV4dHNvbHV0aW9uLW5hdmlnYXRpb24gPiAucHJldjpiZWZvcmUsXG4ubmV4dHByZXYtbmF2aWdhdGlvbiA+IC5wcmV2OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICc8ICc7XG59XG4ubmV4dHNvbHV0aW9uLW5hdmlnYXRpb24gPiAuc29sdXRpb246YWZ0ZXIsXG4ubmV4dHByZXYtbmF2aWdhdGlvbiA+IC5zb2x1dGlvbjphZnRlciB7XG4gIGNvbnRlbnQ6ICcgPyc7XG59XG4vKlxuLS0tXG5uYW1lOiAucG9pbnRzLW5hdmlnYXRpb25cbmNhdGVnb3J5OiBMZXJuZnJhZ2VuL05hdmlnYXRpb24vUG9pbnRzXG50YWc6XG4gLSBjb21wb25lbnRcbmNvbXBpbGU6IHRydWVcbi0tLVxuXG5BIHN0eWxlIGZvciBhIHBvaW50cyBuYXZpZ2F0aW9uXG5cbmBgYGphZGVcbmRpdi5wb2ludHMtbmF2aWdhdGlvblxuXHRkaXYucG9pbnRcblx0ZGl2LnBvaW50Li1hY3RpdmVcblx0ZGl2LnBvaW50Li1oYXNpbnB1dFxuXHRkaXYucG9pbnQuLXNtYWxsXG5gYGBcbiovXG4ucG9pbnRzLW5hdmlnYXRpb24ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4ucG9pbnRzLW5hdmlnYXRpb24gLnBvaW50IHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB3aWR0aDogMC45Mzc1cmVtO1xuICBoZWlnaHQ6IDAuOTM3NXJlbTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBib3JkZXI6IDJweCBzb2xpZCAjOTk5O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4ucG9pbnRzLW5hdmlnYXRpb24gLnBvaW50OmhvdmVyIHtcbiAgYm9yZGVyOiAycHggc29saWQgIzc3NztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTtcbn1cbi5wb2ludHMtbmF2aWdhdGlvbiAucG9pbnQuLXNtYWxsIHtcbiAgd2lkdGg6IDAuNjI1cmVtO1xuICBoZWlnaHQ6IDAuNjI1cmVtO1xufVxuLnBvaW50cy1uYXZpZ2F0aW9uIC5wb2ludC4taGFzaW5wdXQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xufVxuLnBvaW50cy1uYXZpZ2F0aW9uIC5wb2ludC4tYWN0aXZlIHtcbiAgYm9yZGVyOiAycHggc29saWQgIzY2Njtcbn1cbi5wb2ludHMtbmF2aWdhdGlvbiAucG9pbnQgKyAucG9pbnQge1xuICBtYXJnaW4tbGVmdDogMC4zMTI1cmVtO1xufVxuLypcbi0tLVxubmFtZTogLnNsaWRlLWNvbnRhaW5lclxuY2F0ZWdvcnk6IExlcm5mcmFnZW5cbnRhZzpcbiAtIGNvbXBvbmVudFxuY29tcGlsZTogdHJ1ZVxuLS0tXG5cbkEgZGVmYXVsdCBjb250YWluZXIgZm9yIGEgc2xpZGUsIGRlZmluaW5nIHNvbWUgdHlwb2dyYXBoeVxuXG5gYGBqYWRlXG5kaXYuc2xpZGUtY29udGFpbmVyXG5cdGgyLnRpdGxlIEEgdGl0bGVcblx0aDMuc3VidGl0bGUgQSBzdWJ0aXRsZVxuXHRwLnRleHQgU29tZSBUZXh0XG5gYGBcbiovXG4uc2xpZGUtY29udGFpbmVyIHtcbiAgcGFkZGluZy1ib3R0b206IDAuNjI1cmVtO1xufVxuLnNsaWRlLWNvbnRhaW5lciAudGl0bGUge1xuICBmb250LXdlaWdodDogMTAwO1xuICBmb250LXNpemU6IDJyZW07XG4gIHBhZGRpbmc6IDEuODc1cmVtIDA7XG59XG4uc2xpZGUtY29udGFpbmVyIC5zdWJ0aXRsZSB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xuICBwYWRkaW5nOiAwLjYyNXJlbSAwO1xufVxuLnNsaWRlLWNvbnRhaW5lciAudGV4dCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi8qXG4tLS1cbm5hbWU6IC5zdGF0dXMtY29udGFpZXJcbmNhdGVnb3J5OiBMZXJuZnJhZ2VuXG50YWc6XG4gLSBjb21wb25lbnRcbmNvbXBpbGU6IHRydWVcbi0tLVxuXG5TeWxlcyBmb3IgdGhlIHN0YXR1cyBkaXNwbGF5XG5cbmBgYGphZGVcbmRpdi5zdGF0dXMtY29udGFpbmVyIDEgb2YgMTJcbmBgYFxuKi9cbi5zdGF0dXMtY29udGFpbmVyIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4vKlxuLS0tXG5uYW1lOiAudG9vbHRpcC1zbGlkZVxuY2F0ZWdvcnk6IExlcm5mcmFnZW4vU2xpZGUgQ29tcG9uZW50cy9Ub29sdGlwXG50YWc6XG4gLSBjb21wb25lbnRcbmNvbXBpbGU6IHRydWVcbi0tLVxuXG5BIGNvbnRhaW5lciBmb3IgZGlzcGx5aW5nIHRvb2x0aXBzXG5cbmBgYGphZGVcbmRpdi50b29sdGlwLWNvbnRhaW5lciBBIHRvb2x0aXAgdGV4dFxuYGBgXG4qL1xuLnRvb2x0aXAtY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgcGFkZGluZzogNXB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI0JCQkJCQjtcbiAgcG9zaXRpb246IGZpeGVkO1xufVxuLypcbi0tLVxubmFtZTogLnRyYW5zaXRpb25cbmNhdGVnb3J5OiBMZXJuZnJhZ2VuL1RyYW5zaXRpb25cbnRhZzpcbiAtIGhlbHBlclxuY29tcGlsZTogdHJ1ZVxuLS0tXG5cblNvbWUgaGVscGVyIGNsYXNzZXMgZm9yIHRyYW5zaXRpb24gYW5pbWF0aW9uXG4tLS1cblxuTW92ZSBmcm9tIHRoZSBzY3JlZW4gdG8gdGhlIHJpZ2h0IGJvcmRlciBhbmQgZmFkZSBvdXRcbmBgYGphZGVcbmRpdi4tbW92ZVRvUmlnaHQgU2xpZGUgQ29udGVudFxuYGBgXG5cbk1vdmUgZnJvbSB0aGUgcmlnaHQgYm9yZGVyIHRvIHRoZSBzY3JlZW4gYW5kIGZhZGUgaW5cbmBgYGphZGVcbmRpdi4tbW92ZUZyb21SaWdodCBTbGlkZSBDb250ZW50XG5gYGBcblxuTW92ZSBmcm9tIHRoZSBzY3JlZW4gdG8gdGhlIGxlZnQgYm9yZGVyIGFuZCBmYWRlIG91dFxuYGBgamFkZVxuZGl2Li1tb3ZlVG9MZWZ0IFNsaWRlIENvbnRlbnRcbmBgYFxuXG5Nb3ZlIGZyb20gdGhlIGxlZnQgYm9yZGVyIHRvIHRoZSBzY3JlZW4gYW5kIGZhZGUgaW5cbmBgYGphZGVcbmRpdi4tbW92ZUZyb21MZWZ0IFNsaWRlIENvbnRlbnRcbmBgYFxuXG5GYWRlIGluXG5gYGBqYWRlXG5kaXYuLWZhZGVJbiBTbGlkZSBDb250ZW50XG5gYGBcblxuRmFkZSBvdXRcbmBgYGphZGVcbmRpdi4tZmFkZU91dCBTbGlkZSBDb250ZW50XG5gYGBcblxuKi9cbi4tbW92ZVRvUmlnaHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBhbmltYXRpb246IG1vdmVUb1JpZ2h0IDAuNHMgZWFzZSBib3RoO1xufVxuQGtleWZyYW1lcyBtb3ZlVG9SaWdodCB7XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuLi1tb3ZlRnJvbVJpZ2h0IHtcbiAgYW5pbWF0aW9uOiBtb3ZlRnJvbVJpZ2h0IDAuNHMgZWFzZSBib3RoO1xufVxuQGtleWZyYW1lcyBtb3ZlRnJvbVJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cbi4tbW92ZVRvTGVmdCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGFuaW1hdGlvbjogbW92ZVRvTGVmdCAwLjRzIGVhc2UgYm90aDtcbn1cbkBrZXlmcmFtZXMgbW92ZVRvTGVmdCB7XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cbi4tbW92ZUZyb21MZWZ0IHtcbiAgYW5pbWF0aW9uOiBtb3ZlRnJvbUxlZnQgMC40cyBlYXNlIGJvdGg7XG59XG5Aa2V5ZnJhbWVzIG1vdmVGcm9tTGVmdCB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuLi1mYWRlSW4ge1xuICBhbmltYXRpb246IGZhZGVJbiAwLjRzIGVhc2UgYm90aDtcbn1cbkBrZXlmcmFtZXMgZmFkZUluIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuLi1mYWRlT3V0IHtcbiAgYW5pbWF0aW9uOiBmYWRlT3V0IDAuNHMgZWFzZSBib3RoO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xufVxuQGtleWZyYW1lcyBmYWRlT3V0IHtcbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cbi8qXG4tLS1cbm5hbWU6IENvbG9yc1xuY2F0ZWdvcnk6IFNoYXJlZC9WYXJpYWJsZXNcbnRlbXBsYXRlOiBjb2xvcnNcbnRhZzpcbiAtIHZhcmlhYmxlc1xuIC0gY29sb3JzXG5jb2xvcnM6XG4gLSB2YXJpYWJsZTogXCJAdGV4dC1jb2xvclwiXG4gICBkZXNjcmlwdGlvbjogXCJUaGUgZGVmYXVsdCB0ZXh0IGNvbG9yIG9uIHRoZSBib2R5XCJcbiAgIHZhbHVlOiBcIiMzRjNGNDBcIlxuIC0gdmFyaWFibGU6IFwiQHRleHQtaW52ZXJ0ZWQtY29sb3JcIlxuICAgZGVzY3JpcHRpb246IFwiVGhlIGRlZmF1bHQgaW52ZXJ0ZWQgdGV4dCBjb2xvciBvbiB0aGUgYm9keVwiXG4gICB2YWx1ZTogXCIjRkZGXCJcbiAtIHZhcmlhYmxlOiBcIkBhY3Rpb24tY29sb3JcIlxuICAgZGVzY3JpcHRpb246IFwiVGhlIG1haW4gYWN0aW9uIGNvbG9yIHVzZWQgZm9yIGxpbmtzIGFuZCBidXR0b25zXCJcbiAgIHZhbHVlOiBcIiNFQzY0NDlcIlxuIC0gdmFyaWFibGU6IFwiQGJvZHktY29sb3JcIlxuICAgZGVzY3JpcHRpb246IFwiVGhlIG1haW4gYmFja2dyb3VuZCBjb2xvclwiXG4gICB2YWx1ZTogXCIjRkZGXCJcbi0tLVxuXG5UaGUgY29sb3IgdmFyaWFibGVzIHRoYXQgYXJlIHVzZWQgdGhyb3VnaG91dCB0aGUgbGlicmFyeS4gXG4qL1xuLypcbi0tLVxubmFtZTogR2xvYmFsIHNldHRpbmdzXG5jYXRlZ29yeTogU2hhcmVkL1ZhcmlhYmxlc1xudGVtcGxhdGU6IHZhcmlhYmxlc1xudGFnOlxuIC0gdmFyaWFibGVzXG52YXJpYWJsZXM6XG4gLSBuYW1lOiBcIkB0ZXh0LWxpbmUtaGVpZ2h0XCJcbiAgIGRlc2NyaXB0aW9uOiBcIlRoZSBsaW5lIGhlaWdodCBvZiB0aGUgYm9keVwiXG4gICBkZWZhdWx0OiBcIjEuNXJlbVwiXG4gLSBuYW1lOiBcIkBmb250LWZhbWlseVwiXG4gICBkZXNjcmlwdGlvbjogXCJUaGUgZm9udC1mYW1pbHkgb2YgdGhlIGJvZHlcIlxuICAgZGVmYXVsdDogXCInSGVsdmV0aWNhJywgc2Fucy1zZXJpZlwiXG4gLSBuYW1lOiBcIkB0ZXh0LXJlbmRlcmluZ1wiXG4gICBkZXNjcmlwdGlvbjogXCJUaGUgdGV4dC1yZW5kZXJpbmcgb2YgdGhlIGJvZHlcIlxuICAgZGVmYXVsdDogXCJvcHRpbWl6ZUxlZ2liaWxpdHlcIlxuIC0gbmFtZTogXCJAdHJhbnNpdGlvbi1kdXJhdGlvblwiXG4gICBkZXNjcmlwdGlvbjogXCJUaGUgZHVyYXRpb24gb2YgdGhlIHNsaWRlIHRyYW5zaXRpb25zXCJcbiAgIGRlZmF1bHQ6IFwiMC40c1wiXG4tLS1cblxuVGhlc2UgdmFyaWFibGVzIHNldHVwcyBzb21lIGdsb2JhbCB0ZXh0IGZvcm1hdHRpbmcgYW5kIHN0eWxpbmcuXG4qL1xuLypcbi0tLVxubmFtZTogU2l6ZSBzZXR0aW5nc1xuY2F0ZWdvcnk6IFNoYXJlZC9WYXJpYWJsZXNcbnRlbXBsYXRlOiB2YXJpYWJsZXNcbnRhZzpcbiAtIHZhcmlhYmxlc1xuIC0gZ3JpZFxudmFyaWFibGVzOlxuIC0gbmFtZTogXCJAZ3JpZC1ndXR0ZXJcIlxuICAgZGVzY3JpcHRpb246IFwiVGhlIHNwYWNlIGJldHdlZW4gdGhlIGdyaWQgY2hpbGRyZW5cIlxuICAgZGVmYXVsdDogXCJyZW0oIDMwcHggKVwiXG4gLSBuYW1lOiBcIkBncmlkLWJyZWFrLXBvaW50c1wiXG4gICBkZXNjcmlwdGlvbjogXCJUaGUgc2NyZWVuc2l6ZSB3aGVuIHRoZSBncmlkIHNob3VsZCBicmVhay5cIlxuICAgZGVmYXVsdDogXCJyZW0oNjAwcHgpLCByZW0oMTAyNHB4KVwiXG4gLSBuYW1lOiBcIkBncmlkLWJyZWFrLWxhYmVsc1wiXG4gICBkZXNjcmlwdGlvbjogXCJUaGUgYnJlYWtwb2ludCBsYWJlbCBjb3JyZXNwb25kaW5nIHRvIHRoZSBlbnRpZSBpbiB0aGUgYEBncmlkLWJyZWFrLXBvaW50c2AgbGlzdFwiXG4gICBkZWZhdWx0OiBcIm1lZGl1bSwgbGFyZ2VcIlxuIC0gbmFtZTogXCJAcGFnZS1wYWRkaW5nXCJcbiAgIGRlc2NyaXB0aW9uOiBcIlRoZSBwYWRkaW5nIGZvciB0aGUgLnBhZ2UtZmx1aWQgY29tcG9uZW50XCJcbiAgIGRlZmF1bHQ6IFwicmVtKCA2MHB4IClcIlxuLS0tXG5cblRoZXNlIHZhcmlhYmxlcyBzZXR1cHMgc29tZSBnbG9iYWwgc2l6ZXMgbWFpbmx5IGZvciB0aGUgZ3JpZC5cbiovXG4uY2FzZXN0dWR5LWNhcmQge1xuICBjb2xvcjogIzAwMDAwMDtcbiAgcGFkZGluZzogMS4xMjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDEuMjVyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLyogLnotZGVwdGgoIDIgKTsgKi9cbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6IHJnYmEoMzQsIDM0LCAzNCwgMC4yKTtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIHRyYW5zaXRpb246IGFsbCAuMnMgZWFzZTtcbn1cbi5jYXNlc3R1ZHktY2FyZDpob3ZlciB7XG4gIGJveC1zaGFkb3c6IDBweCAxcHggNHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTYpLCAwcHggMnB4IDI0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG4gIGJvcmRlci1jb2xvcjogI2ZmZjtcbn1cbi5jYXNlc3R1ZHktY2FyZDpob3ZlciA+IC50aXRsZSA+IC5lbXBoIHtcbiAgY29sb3I6ICMwMDc4OTQ7XG59XG4uY2FzZXN0dWR5LWNhcmQ6Zm9jdXMge1xuICBib3gtc2hhZG93OiAwcHggMXB4IDRweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE2KSwgMHB4IDJweCAyNHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMDgpO1xuICBib3JkZXItY29sb3I6ICNmZmY7XG59XG4uY2FzZXN0dWR5LWNhcmQ6Zm9jdXMgPiAudGl0bGUgPiAuZW1waCB7XG4gIGNvbG9yOiAjMDA3ODk0O1xufVxuLmNhc2VzdHVkeS1jYXJkID4gLnRpdGxlIHtcbiAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDE0MCU7XG4gIHBhZGRpbmctdG9wOiAwLjYyNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC42MjVyZW07XG4gIGNvbG9yOiAjMDA3ODk0O1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIHdpZHRoOiAyMjNweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5jYXNlc3R1ZHktY2FyZCA+IC50aXRsZSA+IC5lbXBoIHtcbiAgcGFkZGluZy10b3A6IDAuNjI1cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbn1cbi5jYXNlc3R1ZHktY2FyZCA+IC5jaGFwdGVycyB7XG4gIHBhZGRpbmctdG9wOiAwLjkzNzVyZW07XG59XG4uY2FzZXN0dWR5LWNhcmQgPiAuY2hhcHRlcnMgPiAuY2hhcHRlciB7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbGluZS1oZWlnaHQ6IDE1MCU7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xufVxuLmNhc2VzdHVkeS1jYXJkID4gLmNoYXB0ZXJzID4gLmNoYXB0ZXI6aG92ZXIge1xuICBjb2xvcjogIzAwNzg5NDtcbn1cbi5jYXNlc3R1ZHktY2FyZCA+IC5mb290ZXIge1xuICBwYWRkaW5nLXRvcDogMS44NzVyZW07XG59XG4uY2FzZXN0dWR5LWNhcmQgPiAuZm9vdGVyID4gLmR1cmF0aW9uIHtcbiAgY29sb3I6ICM2RjZGNkY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi5jYXNlc3R1ZHktY29udGFpbmVyIHtcbiAgcGFkZGluZy1ib3R0b206IDUuNjI1cmVtO1xufVxuLmNhc2VzdHVkeS1jb250YWluZXIgPiAuaW1hZ2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDIxLjYyNXJlbTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAtMTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlciFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG4uY2FzZXN0dWR5LWNvbnRhaW5lciA+IC5pbWFnZTpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb250ZW50OiBcIlwiO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC40KTtcbn1cbi5jYXNlc3R1ZHktY29udGFpbmVyID4gLnRpdGxlIHtcbiAgcGFkZGluZy10b3A6IDAuNjg3NXJlbTtcbiAgZm9udC1zaXplOiAyLjI1cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICNGRkY7XG4gIHotaW5kZXg6IDU7XG59XG4uY2FzZXN0dWR5LWNvbnRhaW5lciA+IC5zdWJ0aXRsZSB7XG4gIHBhZGRpbmctdG9wOiA5LjE4NzVyZW07XG4gIGZvbnQtc2l6ZTogMS44NzVyZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiAjRkZGO1xuICB6LWluZGV4OiA1O1xufVxuLmNhc2VzdHVkeS1jb250YWluZXIgPiAucXVpeiB7XG4gIHBhZGRpbmctdG9wOiAxMC45Mzc1cmVtO1xufVxuLmZlZWRiYWNrLWJ1dHRvbiB7XG4gIG1hcmdpbi10b3A6IDEuMjVyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDc4OTQ7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgcGFkZGluZy1sZWZ0OiAzMnB4O1xuICBwYWRkaW5nLXJpZ2h0OiAzMnB4O1xuICBwYWRkaW5nLXRvcDogMTVweDtcbiAgcGFkZGluZy1ib3R0b206IDE1cHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmZlZWRiYWNrLWJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDU5NkQ7XG59XG4uZmVlZGJhY2stYnV0dG9uOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNTk2RDtcbn1cbi5mb290ZXItYmFyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDEwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyMjIyO1xuICBjb2xvcjogI0ZGRjtcbn1cbi5mb290ZXItYmFyID4gZGl2ID4gLmxpbmsge1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBwYWRkaW5nOiAxLjc1cmVtIDMuNDM3NXJlbTtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG4uZm9vdGVyLWJhciA+IGRpdiA+IC5sb2dvIHtcbiAgcGFkZGluZzogMS42MjVyZW0gMy40Mzc1cmVtO1xufVxuLmZvb3Rlci1iYXIgPiBkaXYgPiAubG9nbyA+IGltZyB7XG4gIGhlaWdodDogMS4wNjI1cmVtO1xufVxuLmZvb3Rlci1iYXIgPiBkaXYgPiAubG9nbyA+IGEge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5nb29kcHJhY3RpY2UtY2FyZCB7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBwYWRkaW5nOiAxLjEyNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMS4yNXJlbTtcbiAgdHJhbnNpdGlvbjogYWxsIC4ycyBlYXNlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDM0LCAzNCwgMzQsIDAuMik7XG4gIGJvcmRlci13aWR0aDogMXB4O1xufVxuLmdvb2RwcmFjdGljZS1jYXJkOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMHB4IDFweCA0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNiksIDBweCAycHggMjRweCAwcHggcmdiYSgwLCAwLCAwLCAwLjA4KTtcbiAgYm9yZGVyLWNvbG9yOiAjZmZmO1xufVxuLmdvb2RwcmFjdGljZS1jYXJkOmhvdmVyID4gLm5hbWUge1xuICBjb2xvcjogIzAwNzg5NDtcbn1cbi5nb29kcHJhY3RpY2UtY2FyZDpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDBweCAxcHggNHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTYpLCAwcHggMnB4IDI0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG4gIGJvcmRlci1jb2xvcjogI2ZmZjtcbn1cbi5nb29kcHJhY3RpY2UtY2FyZDpmb2N1cyA+IC5uYW1lIHtcbiAgY29sb3I6ICMwMDc4OTQ7XG59XG4uZ29vZHByYWN0aWNlLWNhcmQgPiAuaW1hZ2Uge1xuICBwYWRkaW5nOiAxLjI1cmVtIDA7XG59XG4uZ29vZHByYWN0aWNlLWNhcmQgPiAubmFtZSB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG59XG4uZ29vZHByYWN0aWNlLWNhcmQgPiAuZnVuY3Rpb24ge1xuICBmb250LXNpemU6IDE4cHg7XG4gIG1hcmdpbi10b3A6IDAuNjI1cmVtO1xuICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xufVxuLmdvb2RwcmFjdGljZS1jYXJkID4gLmRlc2NyaXB0aW9uIHtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBtYXJnaW4tdG9wOiAxLjEyNXJlbTtcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbn1cbi5nb29kcHJhY3RpY2UtY29udGFpbmVyIHtcbiAgcGFkZGluZy10b3A6IDkuMzc1cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMy4xMjVyZW07XG59XG4uZ29vZHByYWN0aWNlLWNvbnRhaW5lciA+IC5uYW1lIHtcbiAgcGFkZGluZy10b3A6IDEuMjVyZW07XG4gIGZvbnQtc2l6ZTogMS4zMTI1cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi5nb29kcHJhY3RpY2UtY29udGFpbmVyID4gLmZ1bmN0aW9uIHtcbiAgcGFkZGluZy10b3A6IDAuNjI1cmVtO1xuICBmb250LXNpemU6IDEuMzEyNXJlbTtcbn1cbi5nb29kcHJhY3RpY2UtY29udGFpbmVyID4gLnRyYW5zY3JpcHQge1xuICBwYWRkaW5nLXRvcDogMi4xODc1cmVtO1xuICBmb250LXNpemU6IDUwcHg7XG59XG4uaGVhZGVyLWJhciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgd2lkdGg6IDEwMCU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgMXB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4uaGVhZGVyLWJhciA+IC5saW5rLFxuLmhlYWRlci1iYXIgPiBkaXYgPiBhIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogYmxhY2s7XG59XG4uaGVhZGVyLWJhciA+IC5saW5rOmhvdmVyLFxuLmhlYWRlci1iYXIgPiBkaXYgPiBhOmhvdmVyIHtcbiAgY29sb3I6ICMwMDc4OTQ7XG4gIGZpbGw6ICMwMDc4OTQ7XG59XG4uaGVhZGVyLWJhciA+IC5saW5rOmZvY3VzLFxuLmhlYWRlci1iYXIgPiBkaXYgPiBhOmZvY3VzIHtcbiAgY29sb3I6ICMwMDc4OTQ7XG4gIGZpbGw6ICMwMDc4OTQ7XG59XG4uaGVhZGVyLWJhciA+IC5idXJnZXI6Zm9jdXMsXG4uaGVhZGVyLWJhciAuaW5mbzpmb2N1cyxcbi5oZWFkZXItYmFyIC5iYWNrOmZvY3VzIHtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAycHg7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYm9yZGVyLWNvbG9yOiAjMDAwMDAwO1xufVxuLmhlYWRlci1iYXIgPiAubG9nbyB7XG4gIGZsZXgtZ3JvdzogMTtcbiAgbWFyZ2luLWxlZnQ6IDQwcHg7XG4gIG1hcmdpbi1ib3R0b206IDVweDtcbiAgbWFyZ2luLXRvcDogM3B4O1xufVxuLmhlYWRlci1iYXIgPiAubG9nbyA+IC5sb2dvLXRleHQge1xuICBmb250LXNpemU6IDIzcHg7XG59XG4uaGVhZGVyLWJhciA+IC5sb2dvID4gYSA+IGltZyB7XG4gIHdpZHRoOiAxOTlweDtcbn1cbi5oZWFkZXItYmFyID4gLmJ1cmdlcixcbi5oZWFkZXItYmFyID4gLmJhY2ssXG4uaGVhZGVyLWJhciA+IC5pbmZvLFxuLmhlYWRlci1iYXIgPiAub3ZlcnZpZXcsXG4uaGVhZGVyLWJhciA+IC5sYW5ndWFnZSB7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07XG59XG4uaGVhZGVyLWJhciA+IC5idXJnZXIgPiAuYWN0aXZlLFxuLmhlYWRlci1iYXIgPiAuYmFjayA+IC5hY3RpdmUsXG4uaGVhZGVyLWJhciA+IC5pbmZvID4gLmFjdGl2ZSxcbi5oZWFkZXItYmFyID4gLm92ZXJ2aWV3ID4gLmFjdGl2ZSxcbi5oZWFkZXItYmFyID4gLmxhbmd1YWdlID4gLmFjdGl2ZSB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICBjb2xvcjogIzAwMDtcbn1cbi5oZWFkZXItYmFyID4gLmJ1cmdlci5oaWRkZW4sXG4uaGVhZGVyLWJhciA+IC5iYWNrLmhpZGRlbixcbi5oZWFkZXItYmFyID4gLmluZm8uaGlkZGVuLFxuLmhlYWRlci1iYXIgPiAub3ZlcnZpZXcuaGlkZGVuLFxuLmhlYWRlci1iYXIgPiAubGFuZ3VhZ2UuaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5oZWFkZXItYmFyID4gLmJ1cmdlciB7XG4gIG1hcmdpbi1yaWdodDogNDBweDtcbn1cbi5oZWFkZXItYmFyID4gLmJ1cmdlciA+IC5jYXB0aW9uIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBwYWRkaW5nOiAwIDRweDtcbn1cbi5oZWFkZXItYmFyID4gLmxhbmd1YWdlIHtcbiAgV2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuLmhlYWRlci1iYXIgPiAubGFuZ3VhZ2UgPiBhIHtcbiAgY29sb3I6ICM2NjY2NjY7XG59XG4uaGVhZGVyLWJhciA+IC5sYW5ndWFnZSA+IGE6aG92ZXIge1xuICBjb2xvcjogIzAwMDAwMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjM1cHgpIHtcbiAgLmhlYWRlci1iYXIge1xuICAgIGhlaWdodDogMTEycHg7XG4gIH1cbiAgLmhlYWRlci1iYXIgPiAuZGVza3RvcCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgLmhlYWRlci1iYXIgPiAudGFibGV0IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5oZWFkZXItYmFyID4gLm1vYmlsZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAuaGVhZGVyLWJhciA+IC5sb2dvIHtcbiAgICBtYXJnaW4tdG9wOiAtMnB4O1xuICB9XG4gIC5oZWFkZXItYmFyID4gLmxvZ28gPiAubG9nby10ZXh0IHtcbiAgICBtYXJnaW4tbGVmdDogMjgzcHg7XG4gICAgbWFyZ2luLXRvcDogLTM3cHg7XG4gICAgdGV4dC1hbGlnbjogdG9wO1xuICB9XG4gIC5oZWFkZXItYmFyID4gLmJ1cmdlcixcbiAgLmhlYWRlci1iYXIgPiAuYmFjayxcbiAgLmhlYWRlci1iYXIgPiAuaW5mbyxcbiAgLmhlYWRlci1iYXIgPiAub3ZlcnZpZXcsXG4gIC5oZWFkZXItYmFyID4gLmxhbmd1YWdlIHtcbiAgICBtYXJnaW4tbGVmdDogNDBweDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY3cHgpIGFuZCAobWF4LXdpZHRoOiAxMjM1cHgpIHtcbiAgLmhlYWRlci1iYXIge1xuICAgIGhlaWdodDogMTMzcHg7XG4gIH1cbiAgLmhlYWRlci1iYXIgPiAuZGVza3RvcCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAuaGVhZGVyLWJhciA+IC50YWJsZXQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIC5oZWFkZXItYmFyID4gLm1vYmlsZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAuaGVhZGVyLWJhciA+IC5idXJnZXIsXG4gIC5oZWFkZXItYmFyID4gLmJhY2ssXG4gIC5oZWFkZXItYmFyID4gLmluZm8sXG4gIC5oZWFkZXItYmFyID4gLm92ZXJ2aWV3LFxuICAuaGVhZGVyLWJhciA+IC5sYW5ndWFnZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQwcHg7XG4gIH1cbiAgLmhlYWRlci1iYXIgPiAubG9nbyB7XG4gICAgbWFyZ2luLXRvcDogNnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgfVxuICAuaGVhZGVyLWJhciA+IC5sb2dvID4gLmxvZ28tdGV4dCB7XG4gICAgbWFyZ2luLXRvcDogMTVweDtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gIH1cbiAgLmhlYWRlci1iYXIgPiAubG9nbyA+IGEgPiBpbWcge1xuICAgIHdpZHRoOiAxODZweDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmhlYWRlci1iYXIge1xuICAgIGhlaWdodDogMTA1cHg7XG4gIH1cbiAgLmhlYWRlci1iYXIgPiAuZGVza3RvcCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAuaGVhZGVyLWJhciA+IC50YWJsZXQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLmhlYWRlci1iYXIgPiAubW9iaWxlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICAuaGVhZGVyLWJhciA+IC5idXJnZXIsXG4gIC5oZWFkZXItYmFyID4gLmJhY2ssXG4gIC5oZWFkZXItYmFyID4gLmluZm8sXG4gIC5oZWFkZXItYmFyID4gLm92ZXJ2aWV3LFxuICAuaGVhZGVyLWJhciA+IC5sYW5ndWFnZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gIH1cbiAgLmhlYWRlci1iYXIgPiAubG9nbyB7XG4gICAgbWFyZ2luLXRvcDogNnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgfVxuICAuaGVhZGVyLWJhciA+IC5sb2dvID4gLmxvZ28tdGV4dCB7XG4gICAgbWFyZ2luLXRvcDogOHB4O1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgfVxuICAuaGVhZGVyLWJhciA+IC5sb2dvID4gYSA+IGltZyB7XG4gICAgd2lkdGg6IDE0NXB4O1xuICB9XG59XG4uaG90c3BvdFpvbmVzIHtcbiAgLyogYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDI1NSwwLDAuNSk7ICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cbi5ob3RzcG90Wm9uZXMgPiAuem9uZSB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuLmhvdHNwb3Rab25lcyA+IC56b25lOmZvY3VzIHtcbiAgLyogYm94LXNoYWRvdzogMHB4IDFweCA0cHggMHB4IHJnYmEoMCwwLDAsIDAuMTYpLCAwcHggMnB4IDI0cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG5cdFx0XHRib3JkZXItY29sb3I6ICNmZmY7ICovXG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogMnB4O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJvcmRlci1jb2xvcjogIzAwMDAwMDtcbn1cbi5ob3RzcG90Wm9uZXMgPiAubmV3TGluZSB7XG4gIGZsb2F0OiBub25lO1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLmh0bWwtYm94IHVsLFxuLmh0bWwtYm94IG9sIHtcbiAgbWFyZ2luLWxlZnQ6IDEuNTYyNXJlbTtcbn1cbi5odG1sLWJveCA+IHAsXG4uaHRtbC1ib3ggPiB1bCxcbi5odG1sLWJveCA+IG9sIHtcbiAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJldGgtY29tcGxpYW5jZVwiO1xuICBzcmM6IHVybChcImZvbnRzL2V0aC1jb21wbGlhbmNlLmVvdFwiKTtcbiAgc3JjOiB1cmwoXCJmb250cy9ldGgtY29tcGxpYW5jZS5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCJmb250cy9ldGgtY29tcGxpYW5jZS53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksIHVybChcImZvbnRzL2V0aC1jb21wbGlhbmNlLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSwgdXJsKFwiZm9udHMvZXRoLWNvbXBsaWFuY2Uuc3ZnI2V0aC1jb21wbGlhbmNlXCIpIGZvcm1hdChcInN2Z1wiKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuW2RhdGEtaWNvbl06YmVmb3JlIHtcbiAgZm9udC1mYW1pbHk6IFwiZXRoLWNvbXBsaWFuY2VcIiAhaW1wb3J0YW50O1xuICBjb250ZW50OiBhdHRyKGRhdGEtaWNvbik7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbCAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogbm9ybWFsICFpbXBvcnRhbnQ7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsICFpbXBvcnRhbnQ7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG4gIHNwZWFrOiBub25lO1xuICBsaW5lLWhlaWdodDogMTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5bY2xhc3NePVwiaWNvbi1cIl06YmVmb3JlLFxuW2NsYXNzKj1cIiBpY29uLVwiXTpiZWZvcmUge1xuICBmb250LWZhbWlseTogXCJldGgtY29tcGxpYW5jZVwiICFpbXBvcnRhbnQ7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbCAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogbm9ybWFsICFpbXBvcnRhbnQ7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsICFpbXBvcnRhbnQ7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG4gIHNwZWFrOiBub25lO1xuICBsaW5lLWhlaWdodDogMTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG4uaWNvbi1iYWNrOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFw2OFwiO1xufVxuLmljb24tZm9yd2FyZDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcNjlcIjtcbn1cbi5pY29uLW1lbnU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDZhXCI7XG59XG4uaWNvbi10b3A6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDZiXCI7XG59XG4uaWNvbi1ib3R0b206YmVmb3JlIHtcbiAgY29udGVudDogXCJcXDZjXCI7XG59XG4uaWNvbi1hcnJvdy1yaWdodDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcNmRcIjtcbn1cbi5pY29uLWNsb3NlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFw2ZVwiO1xufVxuLmljb24taW5mbzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcNjFcIjtcbn1cbi5pY29uLWhlYWRlci1vdmVydmlldzpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcNjFcIjtcbn1cbi5pY29uLWhlYWRlci1pbmZvOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFw2MVwiO1xufVxuLmluZm90b29sLWJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDc4OTQ7XG4gIGhlaWdodDogNi4yNXJlbTtcbiAgd2lkdGg6IDYuMjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMTYuMDYyNXJlbTtcbiAgcmlnaHQ6IDMuNzVyZW07XG4gIHotaW5kZXg6IDU7XG4gIGJveC1zaGFkb3c6IDAgNnB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDFweCAxOHB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKSwgMCAzcHggNXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjMpO1xuICB0cmFuc2l0aW9uOiBhbGwgLjJzIGVhc2U7XG59XG4uaW5mb3Rvb2wtYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U3ZjRmNztcbn1cbi5pbmZvdG9vbC1idXR0b246aG92ZXIgPiAuY2FwdGlvbiB7XG4gIGNvbG9yOiAjMDA3ODk0O1xufVxuLmluZm90b29sLWJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlN2Y0Zjc7XG59XG4uaW5mb3Rvb2wtYnV0dG9uOmZvY3VzID4gLmNhcHRpb24ge1xuICBjb2xvcjogIzAwNzg5NDtcbn1cbi5pbmZvdG9vbC1idXR0b24gPiAuY2FwdGlvbiB7XG4gIGNvbG9yOiAjRkZGO1xuICBmb250LXNpemU6IDEuMzc1cmVtO1xuICBwYWRkaW5nOiAxLjU2MjVyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmluZm90b29sLWJ1dHRvbndyYXBwZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMTAuNjI1cmVtO1xuICB3aWR0aDogMTAwJTtcbn1cbi5pbmZvdG9vbC1jaGFwdGVyIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICMwMDAwMDA7XG59XG4uaW5mb3Rvb2wtY2hhcHRlciA+IC5tYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjFmMTtcbn1cbi5pbmZvdG9vbC1jaGFwdGVyID4gLmJhciB7XG4gIHBhZGRpbmc6IDEuNXJlbSAycmVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uaW5mb3Rvb2wtY2hhcHRlciA+IC5iYXI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3ODk0O1xuICBjb2xvcjogI0ZGRjtcbn1cbi5pbmZvdG9vbC1jaGFwdGVyID4gLmJhcjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDc4OTQ7XG4gIGNvbG9yOiAjRkZGO1xufVxuLmluZm90b29sLWNoYXB0ZXIgPiAuYmFyID4gLnRpdGxlIHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi5pbmZvdG9vbC1jaGFwdGVyID4gLmJhciA+IC5hcnJvdyB7XG4gIGZvbnQtc2l6ZTogMS44NzVyZW07XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7XG59XG4uaW5mb3Rvb2wtY2hhcHRlciA+IC5iYXIgPiAuYXJyb3cuZXhwYW5kIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbn1cbi5pbmZvdG9vbC1jaGFwdGVyID4gLnRleHRzIHtcbiAgbWF4LWhlaWdodDogMHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuMnMgZWFzZS1vdXQ7XG59XG4uaW5mb3Rvb2wtY2hhcHRlciA+IC50ZXh0czpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjMDAwMDAwO1xufVxuLmluZm90b29sLWNob29zZXIge1xuICByaWdodDogMzBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbG9hdDogcmlnaHQ7XG4gIHRvcDogMjFweDtcbiAgZm9udC1zaXplOiAyMHB4O1xufVxuLmluZm90b29sLXBhbmVsIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogMzEuMjVyZW07XG4gIG1heC13aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGNkY2RjO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNkY2RjZGM7XG4gIHotaW5kZXg6IDIwO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBib3gtc2hhZG93OiAwIDhweCAxMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDNweCAxNHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDVweCA1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG59XG4uaW5mb3Rvb2wtcGFuZWwgPiAuaGVhZGVyIHtcbiAgaGVpZ2h0OiA1LjI1cmVtO1xuICBwYWRkaW5nOiAxLjE4NzVyZW0gMnJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uaW5mb3Rvb2wtcGFuZWwgPiAuaGVhZGVyID4gLnRpdGxlIHtcbiAgZm9udC1zaXplOiAycmVtO1xuICBjb2xvcjogIzAwMDAwMDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4uaW5mb3Rvb2wtcGFuZWwgPiAuaGVhZGVyID4gLmNsb3NlIHtcbiAgZm9udC1zaXplOiAyLjE4NzVyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuLmluZm90b29sLXBhbmVsID4gLmhlYWRlciA+IC5jbG9zZTpob3ZlciB7XG4gIGNvbG9yOiAjMDA3ODk0O1xufVxuLmluZm90b29sLXBhbmVsID4gLmhlYWRlciA+IC5jbG9zZTpmb2N1cyB7XG4gIGNvbG9yOiAjMDA3ODk0O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDJweDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBib3JkZXItY29sb3I6ICMwMDAwMDA7XG59XG4uaW5mb3Rvb2wtcGFuZWwgPiAuc2VhcmNoIHtcbiAgcGFkZGluZzogMS4xODc1cmVtIDJyZW07XG59XG4uaW5mb3Rvb2wtcGFuZWwgPiAuc2VhcmNoID4gaW5wdXQge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAzLjc1cmVtO1xufVxuLmluZm90b29sLXBhbmVsIC4tbW92ZVRvUmlnaHQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBhbmltYXRpb246IG1vdmVUb1JpZ2h0IDAuNHMgZWFzZSBib3RoO1xufVxuQGtleWZyYW1lcyBtb3ZlVG9SaWdodCB7XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG4gIH1cbn1cbi5pbmZvdG9vbC1wYW5lbCAuLW1vdmVGcm9tUmlnaHQge1xuICBhbmltYXRpb246IG1vdmVGcm9tUmlnaHQgMC40cyBlYXNlIGJvdGg7XG59XG5Aa2V5ZnJhbWVzIG1vdmVGcm9tUmlnaHQge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG4gIH1cbn1cbi5pbmZvdG9vbC1zdGFuZGFsb25lIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG59XG4uaW5mb3Rvb2wtc3RhbmRhbG9uZSA+IC5oZWFkZXIge1xuICBoZWlnaHQ6IDUuMjVyZW07XG4gIHBhZGRpbmc6IDEuMTg3NXJlbSAycmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5pbmZvdG9vbC1zdGFuZGFsb25lID4gLmhlYWRlciA+IC50aXRsZSB7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmluZm90b29sLXN0YW5kYWxvbmUgPiAuc2VhcmNoIHtcbiAgcGFkZGluZzogMS4xODc1cmVtIDJyZW07XG59XG4uaW5mb3Rvb2wtc3RhbmRhbG9uZSA+IC5zZWFyY2ggPiBpbnB1dCB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDMuNzVyZW07XG59XG4uaW5mb3Rvb2wtc3RhbmRhbG9uZXdyYXBwZXIge1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrc2xhdGVncmV5O1xuICBib3gtc2hhZG93OiAwIDRweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDFweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKSwgMCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjMpO1xufVxuLmluZm90b29sLXRleHQgPiAubWFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMWYxZjE7XG59XG4uaW5mb3Rvb2wtdGV4dDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjMDAwMDAwO1xufVxuLmluZm90b29sLXRleHQgPiAuYmFyIHtcbiAgcGFkZGluZzogMS41cmVtIDJyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5pbmZvdG9vbC10ZXh0ID4gLmJhcjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDc4OTQ7XG4gIGNvbG9yOiAjRkZGO1xufVxuLmluZm90b29sLXRleHQgPiAuYmFyOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNzg5NDtcbiAgY29sb3I6ICNGRkY7XG59XG4uaW5mb3Rvb2wtdGV4dCA+IC5iYXIgPiAudGl0bGUge1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG4uaW5mb3Rvb2wtdGV4dCA+IC5iYXIgPiAuYXJyb3cge1xuICBmb250LXNpemU6IDEuODc1cmVtO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xufVxuLmluZm90b29sLXRleHQgPiAuYmFyID4gLmFycm93LmV4cGFuZCB7XG4gIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG59XG4uaW5mb3Rvb2wtdGV4dCA+IC50ZXh0IHtcbiAgZm9udC1zaXplOiAxcmVtICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAgMnJlbTtcbiAgbGluZS1oZWlnaHQ6IDE1MCU7XG4gIG1heC1oZWlnaHQ6IDBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjJzIGVhc2Utb3V0O1xufVxuLmluZm90b29sLXRleHQgPiAudGV4dCA+IHAge1xuICBmb250LXNpemU6IDFyZW07XG59XG4uaW5mb3Rvb2wtdGV4dCA+IC50ZXh0IHVsLFxuLmluZm90b29sLXRleHQgPiAudGV4dCBvbCB7XG4gIHBhZGRpbmc6IDFyZW07XG59XG4uaW5mb3Rvb2wtdGV4dCA+IC50ZXh0IHVsID4gbGksXG4uaW5mb3Rvb2wtdGV4dCA+IC50ZXh0IG9sID4gbGkge1xuICBwYWRkaW5nLXRvcDogNnB4O1xufVxuLmluZm90b29sLXRleHQgPiAudGV4dCB1bCA+IGxpID4gcCxcbi5pbmZvdG9vbC10ZXh0ID4gLnRleHQgb2wgPiBsaSA+IHAge1xuICBmb250LXNpemU6IDFyZW07XG59XG4ua2V5Y2xvYWtJbWcge1xuICB3aWR0aDogMTk5cHg7XG59XG5oMiB7XG4gIGZvbnQtc2l6ZTogMzJweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxucCB7XG4gIGZvbnQtc2l6ZTogMThweDtcbn1cbi5zaGliYm9sZXRoTG9naW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTdGNEY3O1xuICB3aWR0aDogODAwcHg7XG4gIG1hcmdpbi10b3A6IDMwcHg7XG4gIG1hcmdpbi1ib3R0b206IDYwcHg7XG4gIHBhZGRpbmctdG9wOiAzMHB4O1xuICBwYWRkaW5nLWxlZnQ6IDMwcHg7XG4gIHBhZGRpbmctYm90dG9tOiA1MHB4O1xufVxuLnNoaWJib2xldGhMb2dpbiA+IHAge1xuICBtYXJnaW4tdG9wOiAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiA2MHB4O1xufVxuLmNvbnRyb2wtbGFiZWwge1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG59XG4ubG9naW4tYnV0dG9uIHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgY29sb3I6ICMwMDA7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBwYWRkaW5nLWxlZnQ6IDMycHg7XG4gIHBhZGRpbmctcmlnaHQ6IDMycHg7XG4gIHBhZGRpbmctdG9wOiAxNXB4O1xuICBwYWRkaW5nLWJvdHRvbTogMTVweDtcbiAgYm9yZGVyOiBub25lO1xuICBmb250LXdlaWdodDogNzAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItY29sb3I6ICNkYmQ5ZDk7XG59XG4ubG9naW4tYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNzg5NDtcbiAgY29sb3I6ICNmZmY7XG59XG4uY2FyZC1wZiA+IGhlYWRlciA+IHAge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuLmNhcmQtcGYgPiBoZWFkZXIgPiBwID4gbGFiZWwge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uZm9ybS1jb250cm9sIHtcbiAgd2lkdGg6IDMwMHB4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtYXJnaW4tdG9wOiAycHg7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XG59XG4uY2VudGVyIHtcbiAgd2lkdGg6IDgwMHB4O1xuICBtYXJnaW46IGF1dG87XG4gIG1hcmdpbi10b3A6IDMwcHg7XG59XG4ua2V5Y2xvYWtBZG1pbkxvZ2luIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiN0cmlnZ2VyOmNoZWNrZWQgKyAua2V5Y2xvYWtBZG1pbkxvZ2luIHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbn1cbiN0cmlnZ2VyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5rZXljbG9ha0Fycm93IHtcbiAgd2lkdGg6IDI1cHg7XG4gIG1hcmdpbi10b3A6IC00cHg7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG4ua2MtZHJvcGRvd24ge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi10b3A6IC0zMHB4O1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuLmtjLWRyb3Bkb3duID4gcCA+IGEge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xufVxuLmtjLWRyb3Bkb3duID4gcCA+IGEuYWN0aXZlIHtcbiAgY29sb3I6ICMwMDA7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuLmtjLWRyb3Bkb3duID4gcCA+IGE6aG92ZXIge1xuICBjb2xvcjogIzAwMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4ua2V5Y2xvYWtmb290ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjaztcbiAgY29sb3I6IHdoaXRlO1xuICBwYWRkaW5nOiAyMHB4IDM1cHg7XG4gIGJvdHRvbTogMHB4O1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmtleWNsb2FrZm9vdGVyID4gYSB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5zbGlkZS1jb250YWluZXIgPiAuc2xpZGUge1xuICBwYWRkaW5nOiAxcmVtIDAgMnJlbSAwO1xufVxuLnNsaWRlLWNvbnRhaW5lciA+IC5jaGFwdGVyIHtcbiAgcGFkZGluZzogMXJlbSAwO1xufVxuLnNsaWRlLWNvbnRhaW5lciA+IC5jaGFwdGVyID4gLnRpdGxlIHtcbiAgZm9udC1zaXplOiAycmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgcGFkZGluZy10b3A6IDUuNjI1cmVtO1xuICBjb2xvcjogIzAwMDAwMDtcbn1cbi5zbGlkZS1jb250YWluZXIgLnRleHQsXG4uc2xpZGUtY29udGFpbmVyIC5hbnN3ZXJ0ZXh0LFxuLnNsaWRlLWNvbnRhaW5lciAuZHJhZ3RleHQge1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xufVxuLnNsaWRlLWNvbnRhaW5lciAudGV4dCB7XG4gIHBhZGRpbmctYm90dG9tOiAxLjI1cmVtO1xufVxuLnNsaWRlLWNvbnRhaW5lciAudGl0bGUge1xuICBjb2xvcjogIzAwMDAwMDtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmZlZWRiYWNrLXBhbmVsIHtcbiAgbWFyZ2luOiAtMS4yNXJlbSAwIDAgMDtcbiAgcGFkZGluZzogMy4xMjVyZW07XG59XG4uZmVlZGJhY2stcGFuZWwuLXdyb25nIHtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE2MywgNjYsIDY2LCAwLjEpO1xufVxuLmZlZWRiYWNrLXBhbmVsLi1jb3JyZWN0IHtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDYwLCA4OSwgMTUsIDAuMSk7XG59XG4uYW5zd2VyLXZpZXcgaW5wdXQge1xuICBtYXJnaW4tbGVmdDogLTIzcHg7XG4gIG1hcmdpbi10b3A6IDBweDtcbn1cbi5kcm9wLW5vZGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjZGNkY2O1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG4gIGJvcmRlcjogbm9uZTtcbn1cbi5kcm9wLW5vZGUgcCB7XG4gIHBhZGRpbmc6IDAuMzEyNXJlbTtcbn1cbi5kcmFnLW5vZGUge1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG59XG4uZHJhZy1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA2OWI0O1xufVxuLmJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07XG59XG4ubWVudS1jb250ZW50ID4gLnRpdGxlIHtcbiAgZm9udC1zaXplOiAycmVtO1xuICBwYWRkaW5nOiAzLjg3NXJlbSAwIDEuODc1cmVtIDA7XG4gIGNvbG9yOiAjMDAwMDAwO1xufVxuLm1lbnUtZW50cnkgLmNhc2VzdHVkeSB7XG4gIHBhZGRpbmc6IDEuNTYyNXJlbSAwIDAuNjg3NXJlbSAwO1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLm1lbnUtZW50cnkgLmNhc2VzdHVkeTpob3ZlciB7XG4gIGNvbG9yOiAjMDA3ODk0O1xufVxuLm1lbnUtaGVhZGVyID4gLmNsb3NlIHtcbiAgZm9udC1zaXplOiAxLjg3NXJlbTtcbiAgcGFkZGluZzogMXJlbSAzLjQzNzVyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuLm1lbnUtaGVhZGVyID4gLmNsb3NlOmhvdmVyIHtcbiAgY29sb3I6ICMwMDc4OTQ7XG59XG4ubWVudS1oZWFkZXIgPiAuY2xvc2U6Zm9jdXMge1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDJweDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBib3JkZXItY29sb3I6ICMwMDAwMDA7XG4gIGNvbG9yOiAjMDA3ODk0O1xufVxuLm1lbnUtcGFuZWwge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIHdpZHRoOiAzMi41cmVtO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICB6LWluZGV4OiAyMDtcbiAgYm94LXNoYWRvdzogMCA0cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAxcHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xMiksIDAgMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7XG4gIG9wYWNpdHk6IDA7XG59XG4ubWVudS1wYW5lbC5zaG93IHtcbiAgb3BhY2l0eTogMTtcbn1cbi5tZW51LXBhbmVsID4gLmhlYWRlciB7XG4gIGhlaWdodDogNC4zNzVyZW07XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGNkY2RjO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cbi5tZW51LXBhbmVsID4gLmNvbnRlbnQge1xuICBwYWRkaW5nOiAwIDMuNDM3NXJlbSAzLjQzNzVyZW0gMy40Mzc1cmVtO1xufVxuLm1lbnUtcGFuZWwgPiAuZm9vdGVyIHtcbiAgcGFkZGluZzogMCAzLjQzNzVyZW0gMy40Mzc1cmVtIDMuNDM3NXJlbTtcbn1cbi5tZW51LXBhbmVsID4gLmZvb3Rlcjpob3ZlciB7XG4gIGNvbG9yOiAjMDA3ODk0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubWVudS1zdWJlbnRyeSB7XG4gIHBhZGRpbmc6IDAuMzEyNXJlbSAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ubWVudS1zdWJlbnRyeTpob3ZlciB7XG4gIGNvbG9yOiAjMDA3ODk0O1xufVxuLm1lbnUtc3ViZW50cnk6Zm9jdXMge1xuICBjb2xvcjogIzAwNzg5NDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAycHg7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYm9yZGVyLWNvbG9yOiAjMDAwMDAwO1xufVxuLm1vZHVsZS1vdmVydmlldyB7XG4gIHBhZGRpbmctYm90dG9tOiA1LjYyNXJlbTtcbn1cbi5tb2R1bGUtb3ZlcnZpZXcgPiAuaW1hZ2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDQ2Ljg3NXJlbTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAtMTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlciFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG4ubW9kdWxlLW92ZXJ2aWV3ID4gLmltYWdlOmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjQpO1xufVxuLm1vZHVsZS1vdmVydmlldyA+IC5zdWJsb2dvIHtcbiAgcGFkZGluZy10b3A6IDExMHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG4ubW9kdWxlLW92ZXJ2aWV3ID4gLnN1YmxvZ28gPiBhID4gaW1nIHtcbiAgaGVpZ2h0OiAxLjU2MjVyZW07XG59XG4ubW9kdWxlLW92ZXJ2aWV3ID4gLnRpdGxlIHtcbiAgcGFkZGluZy10b3A6IDE4Ljc1cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMC4zMTI1cmVtO1xuICBmb250LXNpemU6IDIuNjg3NXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjRkZGO1xuICB6LWluZGV4OiA1O1xufVxuLm1vZHVsZS1vdmVydmlldyA+IC5zdWJ0aXRsZSB7XG4gIHBhZGRpbmc6IDAuMzEyNXJlbSAwO1xuICBmb250LXNpemU6IDIuNjg3NXJlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgY29sb3I6ICNGRkY7XG4gIHotaW5kZXg6IDU7XG59XG4ubW9kdWxlLW92ZXJ2aWV3ID4gLnZpZGVvIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctdG9wOiA2LjI1cmVtO1xufVxuLm1vZHVsZS1vdmVydmlldyA+IC50cmFuc2NyaXB0IHtcbiAgcGFkZGluZy10b3A6IDIuMTg3NXJlbTtcbn1cbi5tb2R1bGUtb3ZlcnZpZXcgPiAudHJhbnNjcmlwdDpmb2N1cyA+IC5oZWFkZXIgPiAuaWNvbiB7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItY29sb3I6IGJsYWNrO1xufVxuLm1vZHVsZS1vdmVydmlldyA+IC5zZWN0aW9udGl0bGUge1xuICBmb250LXNpemU6IDIuNXJlbTtcbiAgcGFkZGluZy10b3A6IDcuNXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDMuNzVyZW07XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cbi5wYW5lbC1mb2xkYWJsZSA+IC5oZWFkZXIge1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAjNkY2RjZFO1xufVxuLnBhbmVsLWZvbGRhYmxlID4gLmhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiAjMDA3ODk0O1xufVxuLnBhbmVsLWZvbGRhYmxlID4gLmhlYWRlciA+IC50aXRsZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogMS44NzVyZW07XG59XG4ucGFuZWwtZm9sZGFibGUgPiAuaGVhZGVyID4gLmljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiAwLjMxMjVyZW07XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSBlYXNlIC4ycztcbn1cbi5wYW5lbC1mb2xkYWJsZSA+IC5oZWFkZXIgPiAuaWNvbi5leHBhbmQge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xufVxuLnBhbmVsLWZvbGRhYmxlID4gLmhlYWRlci4tc2xpZGUge1xuICBmb250LXNpemU6IDFyZW07XG59XG4ucGFuZWwtZm9sZGFibGUgPiAuaGVhZGVyLi1zbGlkZSA+IC50aXRsZSB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcGFkZGluZzogMXJlbSAwIDAgMDtcbiAgY29sb3I6ICM2RjZGNkU7XG59XG4ucGFuZWwtZm9sZGFibGUgPiAuaGVhZGVyLi1zbGlkZSA+IC50aXRsZTpob3ZlciB7XG4gIGNvbG9yOiAjMDA3ODk0O1xufVxuLnBhbmVsLWZvbGRhYmxlID4gLmJvZHkge1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xuICBsaW5lLWhlaWdodDogMTQwJTtcbiAgY29sb3I6ICM2RjZGNkU7XG4gIG1heC1oZWlnaHQ6IDBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjJzIGVhc2Utb3V0O1xufVxuLnBhbmVsLWZvbGRhYmxlID4gLmJvZHkuLXNsaWRlIHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBtYXJnaW46IDFyZW0gMDtcbn1cbi5wYW5lbC1mb2xkYWJsZTpmb2N1cyA+IC5oZWFkZXIgPiAuaWNvbiB7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItY29sb3I6IGJsYWNrO1xufVxuLnByb2dyZXNzLWJhciB7XG4gIHdpZHRoOiAzLjVyZW07XG4gIGhlaWdodDogMC41NjI1cmVtO1xuICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICMwMDAwMDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzQsIDM0LCAzNCwgMC4yKTtcbiAgbWFyZ2luOiAwLjI1cmVtIDA7XG59XG4ucHJvZ3Jlc3MtYmFyLi1vdmVydmlldyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNGRkY7XG59XG4ucHJvZ3Jlc3MtYmFyID4gLnByb2dyZXNzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNzg5NDtcbiAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAwJTtcbiAgdHJhbnNpdGlvbjogYWxsIC4ycyBlYXNlO1xufVxuLnRleHRjb250ZW50LWNvbnRhaW5lciB7XG4gIHBhZGRpbmctdG9wOiA5LjM3NXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDMuMTI1cmVtO1xufVxuLnRleHRjb250ZW50LWNvbnRhaW5lciA+IC50aXRsZSB7XG4gIGZvbnQtc2l6ZTogMS43NXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDIuMTg3NXJlbTtcbiAgY29sb3I6ICMxRjQwN0E7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLnRleHRjb250ZW50LWNvbnRhaW5lciA+IGgyIHtcbiAgY29sb3I6ICMxRjQwN0E7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nOiAxLjY4NzVyZW0gMDtcbiAgZm9udC1zaXplOiAxLjMxMjVyZW07XG59XG4udGV4dGNvbnRlbnQtY29udGFpbmVyIHVsIHtcbiAgcGFkZGluZzogMS4yNXJlbTtcbn1cbi50ZXh0Y29udGVudC1jb250YWluZXIgbGkge1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xuICBsaW5lLWhlaWdodDogMTQwJTtcbn1cbjpyb290IHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsZXR0ZXItc3BhY2luZzogMC4wOHJlbTtcbn1cbi5zY29ybS1saW5rIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDgwcHg7XG4gIHJpZ2h0OiAxNXB4O1xufVxuIiwiLypcbi0tLVxubmFtZTogLnN0cmV0Y2hcbmNhdGVnb3J5OiBTaGFyZWQvSGVscGVyc1xudGFnOlxuIC0gaGVscGVyc1xuLS0tXG5cbmAuc3RyZXRjaGAgRGVmaW5lIGFuIGVsZW1lbnQgd2hpY2ggc3RyZXRjaGVzIHRvIHRoZSBzaXplIG9mIGl0cyBwYXJlbnRcblxuYGBgaHRtbFxuPGRpdiBjbGFzcz1cInJlbFwiIHN0eWxlPVwiaGVpZ2h0OiA1NXB4O1wiPlxuICAgPGRpdiBjbGFzcz1cInN0cmV0Y2ggc3R5bGVndWlkZS1ncmlkLXVuaXRcIj4gSSdtIHN0cmV0Y2hlZCB0byB0aGUgc2l6ZSBvZiBteSBwYXJlbnQ8L2Rpdj5cbjwvZGl2PlxuYGBgXG4qL1xuLnN0cmV0Y2gge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcbn1cblxuXG4vKlxuLS0tXG5uYW1lOiAuYWJzXG5jYXRlZ29yeTogU2hhcmVkL0hlbHBlcnNcbnRhZzpcbiAtIGhlbHBlcnNcbi0tLVxuXG5gLmFic2AgU2V0IHRoZSBlbGVtZW50IHBvc2l0aW9uIHRvIGFic29sdXRlXG4qL1xuLmFicyB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuXG4vKlxuLS0tXG5uYW1lOiAucmVsXG5jYXRlZ29yeTogU2hhcmVkL0hlbHBlcnNcbnRhZzpcbiAtIGhlbHBlcnNcbi0tLVxuXG5gLnJlbGAgU2V0IHRoZSBlbGVtZW50IHBvc2l0aW9uIHRvIHJlbGF0aXZlXG4qL1xuLnJlbCB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuXG4vKlxuLS0tXG5uYW1lOiAudmNlbnRlclxuY2F0ZWdvcnk6IFNoYXJlZC9IZWxwZXJzXG50YWc6XG4gLSBoZWxwZXJzXG4tLS1cblxuYC52Y2VudGVyYCBTZXRzIHZlcnRpY2FsLWFsaWduIHRvIG1pZGRsZVxuKi9cbi52Y2VudGVyIHtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuXG4vKlxuLS0tXG5uYW1lOiAuaGNlbnRlclxuY2F0ZWdvcnk6IFNoYXJlZC9IZWxwZXJzXG50YWc6XG4gLSBoZWxwZXJzXG4tLS1cblxuYC5oY2VudGVyYCBTZXRzIHRleHQtYWxpZ24gdG8gY2VudGVyXG4qL1xuLmhjZW50ZXIge1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cblxuLypcbi0tLVxubmFtZTogLmZsb2F0bGVmdFxuY2F0ZWdvcnk6IFNoYXJlZC9IZWxwZXJzXG50YWc6XG4gLSBoZWxwZXJzXG4tLS1cblxuYC5mbG9hdGxlZnRgIFNldHMgZmxvYXQgdG8gbGVmdFxuKi9cbi5mbG9hdGxlZnQge1xuXHRmbG9hdDogbGVmdDtcbn1cblxuLypcbi0tLVxubmFtZTogLmZsb2F0cmlnaHRcbmNhdGVnb3J5OiBTaGFyZWQvSGVscGVyc1xudGFnOlxuIC0gaGVscGVyc1xuLS0tXG5cbmAuZmxvYXRyaWdodGAgU2V0cyBmbG9hdCB0byByaWdodFxuKi9cbi5mbG9hdHJpZ2h0IHtcblx0ZmxvYXQ6IHJpZ2h0O1xufVxuXG4vKlxuLS0tXG5uYW1lOiAuaGlkZGVuXG5jYXRlZ29yeTogU2hhcmVkL0hlbHBlcnNcbnRhZzpcbiAtIGhlbHBlcnNcbi0tLVxuXG5gLmhpZGRlbmAgU2V0cyBkaXNwbGF5IHRvIG5vbmUuXG4qL1xuLmhpZGRlbiB7XG5cdGRpc3BsYXk6IG5vbmU7XG59IiwiLypcbi0tLVxubmFtZTogR2xvYmFsIFJlc2V0XG5jYXRlZ29yeTogU2hhcmVkXG4tLS1cblxuVGhlIGxlcm5ldHogY3NzIGxpYnJhcnkgaGFzIGEgc2V0IG9mIHJlc2V0IHN0eWxlIHRvIGhhdmUgdGhlIHNhbWUgYmVoYXZpb3VyIG9uIGV2ZXJ5IGJyb3dzZXIuXG5GdXJ0aGVybW9yZSB0aGlzIHJlc2V0IHNldHMgc29tZSBnbG9iYWwgdmFyaWFibGVzIGxpa2U6XG4gKiBib2R5IGZvbnQtZmFtaWxpZXNcbiAqIGJvZHkgbGluZS1oZWlnaHRcbiAqIGJvZHkgdGV4dC1yZW5kZXJpbmdcbiAqIDpyb290IGZvbnQtc2l6ZSBmb3IgcHJvcGVyIHJlbSBjb252ZXJzaW9uXG4qL1xuXG5cblxuaHRtbCwgYm9keSwgZGl2LCBzcGFuLCBvYmplY3QsIGlmcmFtZSxcbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHAsIGJsb2NrcXVvdGUsIHByZSxcbmFiYnIsIGFkZHJlc3MsIGNpdGUsIGNvZGUsXG5kZWwsIGRmbiwgZW0sIGltZywgaW5zLCBrYmQsIHEsIHNhbXAsXG5zbWFsbCwgc3Ryb25nLCBzdWIsIHN1cCwgdmFyLFxuYiwgaSxcbmRsLCBkdCwgZGQsIG9sLCB1bCwgbGksXG5maWVsZHNldCwgZm9ybSwgbGFiZWwsIGxlZ2VuZCxcbnRhYmxlLCBjYXB0aW9uLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0ciwgdGgsIHRkLFxuYXJ0aWNsZSwgYXNpZGUsIGNhbnZhcywgZGV0YWlscywgZmlnY2FwdGlvbiwgZmlndXJlLFxuZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgbWVudSwgbmF2LCBzZWN0aW9uLCBzdW1tYXJ5LFxudGltZSwgbWFyaywgYXVkaW8sIHZpZGVvIHtcblx0bWFyZ2luOjA7XG5cdHBhZGRpbmc6MDtcblx0Ym9yZGVyOjA7XG5cdG91dGxpbmU6MDtcblx0Zm9udC1zaXplOmluaGVyaXQ7XG5cdHZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO1xufVxuXG46cm9vdCB7XG5cdGZvbnQtc2l6ZTogMTZweDtcbn1cblxuaHRtbCB7XG5cdGZvbnQtc2l6ZTogMTAwJTtcbn1cblxuYm9keSB7XG5cdGxpbmUtaGVpZ2h0OiBAdGV4dC1saW5lLWhlaWdodDtcblx0Y29sb3I6IEB0ZXh0LWNvbG9yO1xuXHRmb250LWZhbWlseTogQGZvbnQtZmFtaWx5O1xuXHR0ZXh0LXJlbmRlcmluZzogQHRleHQtcmVuZGVyaW5nO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiBAYm9keS1jb2xvcjtcbn1cblxuYXJ0aWNsZSxhc2lkZSxkZXRhaWxzLGZpZ2NhcHRpb24sZmlndXJlLFxuZm9vdGVyLGhlYWRlcixoZ3JvdXAsbWVudSxuYXYsc2VjdGlvbiB7XG5cdGRpc3BsYXk6YmxvY2s7XG59XG5cblxuc2VsZWN0IHtcblx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xufVxuXG50ZXh0YXJlYSB7XG5cdHdpZHRoOjEwMCU7XG59XG5cbnRhYmxlIHtcblx0Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO1xuXHRib3JkZXItc3BhY2luZzowO1xufVxuXG4vL1xuLy8gMS4gQ29ycmVjdCBjb2xvciBub3QgYmVpbmcgaW5oZXJpdGVkLlxuLy8gICAgS25vd24gaXNzdWU6IGFmZmVjdHMgY29sb3Igb2YgZGlzYWJsZWQgZWxlbWVudHMuXG4vLyAyLiBDb3JyZWN0IGZvbnQgcHJvcGVydGllcyBub3QgYmVpbmcgaW5oZXJpdGVkLlxuLy8gMy4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4vL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBjb2xvcjogaW5oZXJpdDsgLy8gMVxuICBmb250OiBpbmhlcml0OyAvLyAyXG4gIG1hcmdpbjogMDsgLy8gM1xufVxuXG5cbi8vXG4vLyBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsuXG4vL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuXG5cbi8qXG4gKiBOb3JtYWxpemUgdGhlIGJlaGF2aW91ciBvZiBhbGwgYnJvd3NlcnNcbiAqXG4gKiBJbnN0ZWFkIG9mIHNldHRpbmcgYm94LXNpemluZyBmaXggb24gYWxsIGVsZW1lbnRzIHdlIG9ubHkgc2V0IGl0IG9uIHRoZSByb290IGVsZW1lbnRcbiAqIGFuZCB0ZWxsIGFsbCBlbGVtZW50cyB0byBpbmhlcml0IGl0J3MgcHJvcGVydHkgZnJvbSB0aGUgcGFyZW50XG4gKiBUaGF0IHdheSBpdCdzIHBvc3NpYmxlIHRvIG92ZXJ3cml0ZSB0aGUgYm94LXNpemluZyBhbnl3aGVyZSB3aGlsZSBrZWVwaW5nIHByb3BlciBpbmhlcml0YW5jZVxuICovXG5odG1sIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbiosICo6YmVmb3JlLCAqOmFmdGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDtcbn1cblxuYSB7XG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0Y29sb3I6IEBhY3Rpb24tY29sb3I7XG59XG4iLCIvKlxuLS0tXG5uYW1lOiAuYnV0dG9uLWRlZmF1bHRcbmNhdGVnb3J5OiBCdXR0b25zL0RlZmF1bHRcbnRhZzpcbiAtIGNvbXBvbmVudFxuIC0gYnV0dG9uXG4tLS1cblxuVGhlIGRlZmF1bHQgYnV0dG9uIHNldHMgc29tZSBiYXNpYyBwcm9wZXJ0aWVzIHNvIGl0IGlzIHdvcmtpbmcgYXMgYSBgYnV0dG9uYCBvciBgYWAgdGFnLlxuXG5BbiBleGFtcGxlIGZvciBhIGJ1dHRvbjpcbmBgYGphZGVcbmJ1dHRvbi5idXR0b24tZGVmYXVsdCBNeSBCdXR0b25cbmBgYFxuXG5BbiBleGFtcGxlIGZvciBhIGxpbms6XG5gYGBqYWRlXG5hLmJ1dHRvbi1kZWZhdWx0IE15IExpbmtcbmBgYFxuKi9cbi5idXR0b24tZGVmYXVsdCB7XG5cdGFwcGVhcmFuY2U6IG5vbmU7XG5cdGJhY2tncm91bmQtY29sb3I6IEBhY3Rpb24tY29sb3I7XG5cdHBhZGRpbmc6IHJlbSggOHB4ICkgcmVtKCAxMnB4ICk7XG5cdGNvbG9yOiBAdGV4dC1pbnZlcnRlZC1jb2xvcjtcblx0Ym9yZGVyOiBub25lO1xuXHRmb250LXNpemU6IHJlbSggMjBweCApO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0b3V0bGluZTogbm9uZTtcblxuXHQmOmZvY3VzIHtcblx0XHRib3JkZXI6IDFweCBzb2xpZCBkYXJrZW4oIEBhY3Rpb24tY29sb3IsIDIwJSApO1xuXHRcdHBhZGRpbmc6IHJlbSggN3B4ICkgcmVtKCAxMXB4ICk7XG5cdH1cbn0iLCIvKlxuLS0tXG5uYW1lOiAuZ3JpZFxuY2F0ZWdvcnk6IExheW91dC9HcmlkXG50YWc6XG4gLSBjb21wb25lbnRcbiAtIHJlc3BvbnNpdmVcbmNvbXBpbGU6IHRydWVcbi0tLVxuXG5BIHNpbXBsZSBncmlkIHN5c3RlbSB0aGF0IHdyYXBzIGNoaWxkcmVuIG5vZGVzIGJhc2VkIG9uIHRoZSB2aWV3cG9ydCB3aWR0aC5cblxuIyMgU2ltcGxlIHNpZGUgYnkgc2lkZSByZW5kZXJpbmdcblxuVGhlIGVhc2llc3QgdXNlIGNhc2UgaXMgdG8gdXNlIHNpbXBsZSBgLmNvbC0xYCwgYC5jb2wtMS0yYCwgYC5jb2wtMS0zYCwgYC5jb2wtMS00YCBmb3IgYSBzaWRlLWJ5LXNpZGUgcmVuZGVyaW5nLlxuVGhlIGRlZmF1bHQgdmFsdWUgZm9yIGFsbCBjaGlsZCBlbGVtZW50cyBvZiBhIGAuZ3JpZGAgaXMgZXF1aXZhbGVudCB0byBgLmNvbC0xYCwgc28gZm9yIG9ubHkgb25lIGNoaWxkIGl0IHdpbGwgc3BhbiB0aGUgZnVsbCB3aWR0aC5cblxuYGBgamFkZVxuZGl2LmdyaWRcblx0ZGl2LmNvbC0xLTIgXG5cdFx0ZGl2LmFpZ2lzLWRlYnVnIGNvbC0xLTJcblx0ZGl2LmNvbC0xLTJcblx0XHRkaXYuYWlnaXMtZGVidWcgY29sLTEtMlxuYGBgXG5gYGBqYWRlXG5kaXYuZ3JpZFxuXHRkaXYuY29sLTEtNCBcblx0XHRkaXYuYWlnaXMtZGVidWcgY29sLTEtNFxuXHRkaXYuY29sLTMtNFxuXHRcdGRpdi5haWdpcy1kZWJ1ZyBjb2wtMy00XG5gYGBcblxuIyMgTGF5b3V0cyBvbiBkaWZmZXJlbnQgZGV2aWNlc1xuXG5UaGUgYnJlYWtwb2ludHMgZm9yIGRpZmZlcmVudCBzY3JlZW4gc2l6ZXMgYXJlIHNwZWNpZmllZCBpbiB0aGUgYEBncmlkLWJyZWFrLXBvaW50c2AsIGBAZ3JpZC1icmVhay1sYWJlbHNgIHZhcmlhYmxlcy5cblRoZSBkZWZhdWx0IHZhbHVlcyBkZWZpbmUgdHdvIGJyZWFrcG9pbnRzIHdpdGggbGFiZWxzOiBgLm1lZGl1bS1YLVhgIGFuZCBgLmxhcmdlLVgtWGAuXG5TbyBhbiBleGFtcGxlIGdyaWQgd2l0aCB0d28gYnJlYWtwb2ludHMgbG9va3MgbGlrZSB0aGlzOlxuXG5gYGBqYWRlXG5kaXYuZ3JpZFxuXHRkaXYubWVkaXVtLTEtMi5sYXJnZS0xLTQueGxhcmdlLTEtMlxuXHRcdGRpdi5haWdpcy1kZWJ1ZyBjb2wtMSBtZWRpdW0tMS0yIGxhcmdlLTEtNFxuXHRkaXYubWVkaXVtLTEtMi5sYXJnZS0xLTQueGxhcmdlLTEtMlxuXHRcdGRpdi5haWdpcy1kZWJ1ZyBjb2wtMSBtZWRpdW0tMS0yIGxhcmdlLTEtNFxuXHRkaXYuY29sLTEtMi5tZWRpdW0tMS0yLmxhcmdlLTEtNC54bGFyZ2UtMS0yXG5cdFx0ZGl2LmFpZ2lzLWRlYnVnIGNvbC0xLTIgbWVkaXVtLTEtMiBsYXJnZS0xLTRcblx0ZGl2LmNvbC0xLTIubWVkaXVtLTEtMi5sYXJnZS0xLTQueGxhcmdlLTEtMlxuXHRcdGRpdi5haWdpcy1kZWJ1ZyBjb2wtMS0yIG1lZGl1bS0xLTIgbGFyZ2UtMS00XG5gYGBcblxuKipOb3RlOioqIFRoZSBgY29sLTFgIGNsYXNzZXMgYXJlIG5vdCBwcmVzZW50IG9uIHRoZSBmaXJzdCB0d28gbm9kZXMsIHNpbmNlIHRoaXMgaXMgdGhlIGRlZmF1bHQgYmVoYXZpb3VyLlxuXG5cbiMjIFJldmVyc2Ugb3JkZXJcblxuVG8gcmV2ZXJzZSB0aGUgb3JkZXIgaW4gd2hpY2ggdGhlIGNvbHVtbnMgYXJlIGRpc3BsYXllZCwgeW91IGNhbiBhZGQgdGhlIG1vZGlmaWVyIGNsYXNzIGAuLXJldmVyc2VgIHRvIHlvdXIgZ3JpZC5cblRoZSBjb2x1bW5zIHdpbGwgYmUgaW4gRE9NIG9yZGVyIHdoZW4gdmlld3BvcnQgc3dpdGNoZXMgdG8gc21hbGwgbGF5b3V0LlxuXG5gYGBqYWRlXG5kaXYuZ3JpZC4tcmV2ZXJzZVxuXHRkaXYuY29sLTEtNFxuXHRcdGRpdi5haWdpcy1kZWJ1ZyBGaXJzdCBjb2x1bW4gaW4gRE9NXG5cdGRpdi5jb2wtMS00XG5cdFx0ZGl2LmFpZ2lzLWRlYnVnIFNlY29uZCBjb2x1bW4gaW4gRE9NXG5cdGRpdi5jb2wtMS00XG5cdFx0ZGl2LmFpZ2lzLWRlYnVnIFRoaXJkIGNvbHVtbiBpbiBET01cblx0ZGl2LmNvbC0xLTRcblx0XHRkaXYuYWlnaXMtZGVidWcgRm91cnRoIGNvbHVtbiBpbiBET01cbmBgYFxuIyMgTm8gZ3V0dGVyXG5cbklmIHlvdSBkb250IG5lZWQgYSBzcGFjaW5nL2d1dHRlciBiZXR3ZWVuIHRoZSBncmlkIGNvbHVtbnMgeW91IGNhbiB1c2UgdGhlIG1vZGlmaWVyIGAuLW5vZ3V0dGVyYC5cblxuYGBgamFkZVxuZGl2LmdyaWQuLW5vZ3V0dGVyXG5cdGRpdi5jb2wtMS00XG5cdFx0ZGl2LmFpZ2lzLWRlYnVnIEZpcnN0IGNvbHVtbiBpbiBET01cblx0ZGl2LmNvbC0xLTRcblx0XHRkaXYuYWlnaXMtZGVidWcgU2Vjb25kIGNvbHVtbiBpbiBET01cblx0ZGl2LmNvbC0xLTRcblx0XHRkaXYuYWlnaXMtZGVidWcgVGhpcmQgY29sdW1uIGluIERPTVxuXHRkaXYuY29sLTEtNFxuXHRcdGRpdi5haWdpcy1kZWJ1ZyBGb3VydGggY29sdW1uIGluIERPTVxuYGBgXG4qL1xuXG4uZ3JpZCB7XG5cblx0bWFyZ2luOiAwIC1AZ3JpZC1ndXR0ZXIvMjtcblxuXHQmOmFmdGVyIHtcblx0XHRjb250ZW50OiBcIlwiO1xuXHRcdGRpc3BsYXk6IHRhYmxlO1xuXHRcdGNsZWFyOiBib3RoO1xuXHR9XG5cblx0PiAqIHtcblx0XHRmbG9hdDogbGVmdDtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0d2lkdGg6MTAwJTtcblx0XHRwYWRkaW5nOiAwIEBncmlkLWd1dHRlci8yO1xuXHR9XG5cblx0Ji4tcmV2ZXJzZSA+ICoge1xuXHRcdGZsb2F0OnJpZ2h0O1xuXHR9XG5cblxuXHQmLi1ub2d1dHRlciB7XG5cdFx0bWFyZ2luOiAwO1xuXG5cdFx0PiAqIHtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0fVxuXHR9XG5cblxuXHQuY29sLTEge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG5cdC5jb2wtMS0yIHtcblx0XHR3aWR0aDogMTAwJS8yO1xuXHR9XG5cdC5jb2wtMS0zIHtcblx0XHR3aWR0aDogMTAwJS8zKjE7XG5cdH1cblx0LmNvbC0yLTMge1xuXHRcdHdpZHRoOiAxMDAlLzMqMjtcblx0fVxuXHQuY29sLTEtNCB7XG5cdFx0d2lkdGg6IDEwMCUvNCoxO1xuXHR9XG5cdC5jb2wtMy00IHtcblx0XHR3aWR0aDogMTAwJS80KjM7XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGUgYWxsIG1lZGlhIGJyZWFrcG9pbnRzIGJhc2VkIG9uIHRoZSBAZ3JpZC1icmVhay1wb2ludHMsIEBncmlkLWJyZWFrLWxhYmVscyB2YXJpYWJsZXMuXG5cdCAqL1xuXHQuZm9yKCBAZ3JpZC1icmVhay1wb2ludHMsIHtcblxuXHRcdEBsYWJlbDogZXh0cmFjdCggQGdyaWQtYnJlYWstbGFiZWxzLCBAaSApO1xuXG5cdFx0QG1lZGlhIGFsbCBhbmQgKCBtaW4td2lkdGg6IEB2YWx1ZSApIHtcblxuXHRcdFx0PiAuQHtsYWJlbH0tMSB7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0fVxuXG5cdFx0XHQ+IC5Ae2xhYmVsfS0xLTIge1xuXHRcdFx0XHR3aWR0aDogMTAwJS8yO1xuXHRcdFx0fVxuXG5cdFx0XHQ+IC5Ae2xhYmVsfS0xLTMge1xuXHRcdFx0XHR3aWR0aDogMTAwJS8zKjE7XG5cdFx0XHR9XG5cblx0XHRcdD4gLkB7bGFiZWx9LTItMyB7XG5cdFx0XHRcdHdpZHRoOiAxMDAlLzMqMjtcblx0XHRcdH1cblxuXHRcdFx0PiAuQHtsYWJlbH0tMS00IHtcblx0XHRcdFx0d2lkdGg6IDEwMCUvNCoxO1xuXHRcdFx0fVxuXG5cdFx0XHQ+IC5Ae2xhYmVsfS0zLTQge1xuXHRcdFx0XHR3aWR0aDogMTAwJS80KjM7XG5cdFx0XHR9XG5cdFx0fVxuXHR9KTtcbn0iLCIvKlxuLS0tXG5uYW1lOiBpbWcucmVzcG9uc2l2ZVxuY2F0ZWdvcnk6IExheW91dC9JbWFnZVxudGFnOlxuIC0gcmVzcG9uc2l2ZVxuY29tcGlsZTogdHJ1ZVxuLS0tXG5cblRoaXMgY2xhc3MgbWFrZXMgdGhlIGltYWdlIHNjYWxpbmcgdG8gaXRzIG1heCB3aWR0aC5cblxuYGBgamFkZVxuaW1nLnJlc3BvbnNpdmUoc3JjPSdodHRwOi8vd3d3LmJ5dWkuZWR1L2ltYWdlcy9hZ3JpY3VsdHVyZS1saWZlLXNjaWVuY2VzL2Zsb3dlci5qcGcnKVxuYGBgXG4qL1xuaW1nLnJlc3BvbnNpdmUge1xuXHRtYXgtd2lkdGg6IDEwMCU7XG5cdGhlaWdodDogYXV0bztcbn1cbiIsIi8qXG4tLS1cbm5hbWU6IC5tZWRpYS1yZXNwb25zaXZlXG5jYXRlZ29yeTogTGF5b3V0L01lZGlhXG50YWc6XG4gLSByZXNwb25zaXZlXG5jb21waWxlOiB0cnVlXG4tLS1cblxuYC5tZWRpYS1yZXNwb25zaXZlYCAtIFRoaXMgbWFrZXMgYSB0aGUgYC5tZWRpYS1yZXNwb25zaXZlYCBkaXYgYSBjb250YWluZXIgZm9yIGFueSBtZWRpYSBlbGVtZW50IChpZnJhbWUsIHZpZGVvLCAuLi4gKSB0aGF0IHJlc3BvbnNpdmUgc2NhbGVzIHdpdGggYSBmaXggcmF0aW8uXG5UaGUgbWVkaWEgZWxlbWVudCAoIGNoaWxkICkgbmVlZHMgdGhlIGNsYXNzIGAuc3RyZXRjaGAgdG8gZnVsbHkgZmlsbCBvdXQgdGhlIHBhcmVudHMgc2l6ZS5cblxuVGhlIGAubWVkaWEtcmVzcG9uc2l2ZWAgY29tcG9uZW50IGhhcyB0byBwcmVkZWZpbmVkIG1vZGlmaWVyczogYC4tbWVkaWEtNC0zYCwgYC4tbWVkaWEtMTYtOWAgdGhhdCBkZWZpbmUgYSBmaXggcmF0aW8uXG5cbmBgYGphZGVcbmRpdi5tZWRpYS1yZXNwb25zaXZlLi1tZWRpYS0xNi05XG5cdGlmcmFtZS5zdHJldGNoKHNyYz1cImh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9VENkNlBmeE95MFlcIilcbmBgYFxuKi9cbi5tZWRpYS1yZXNwb25zaXZlIHtcblx0d2lkdGg6IDEwMCU7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0cGFkZGluZy1ib3R0b206IDUwJTtcblxuXHQmLi1tZWRpYS00LTMge1xuXHRcdHBhZGRpbmctYm90dG9tOiA3NSU7XG5cdH1cblxuXHQmLi1tZWRpYS0xNi05IHtcblx0XHRwYWRkaW5nLWJvdHRvbTogNTYuMjYlXG5cdH1cbn1cbiIsIi8qXG4tLS1cbm5hbWU6IC5wYWdlLWZsdWlkXG5jYXRlZ29yeTogUGFnZS9GbHVpZFxudGFnOlxuIC0gcmVzcG9uc2l2ZVxuY29tcGlsZTogdHJ1ZVxuLS0tXG5cbmAucGFnZS1mbHVpZGAgY2VudGVycyB0aGUgcGFnZSBjb250ZW50IGFuZCBhZGRzIGEgcGFkZGluZyBzbyB0aGUgcGFnZSBzdGlja3Mgbm90IHRvIHRoZSBicm93c2VyIHZpZXdwb3J0LlxuRnVydGhlcm1vcmUgaXQgaGFzIGEgbWF4LXdpZHRoIGJhc2VkIG9uIHRoZSBsYXN0IGBAZ3JpZC1icmVhay1wb2ludHNgIHZhbHVlLlxuXG5gYGBqYWRlXG5kaXYucGFnZS1mbHVpZFxuXHRkaXYuYWlnaXMtZGVidWcgU29tZSBwYWdlIGNvbnRlbnRcbmBgYFxuXG4jIyBNYXgtd2lkdGggcGFnZVxuXG5UbyBicm9hZGVuIHRoZSB3aWR0aCBvZiB0aGUgcGFnZSB5b3UgY2FuIGFkZCB0aGUgbW9kaWZpZXIgYC4tdW5saW1pdGVkYC4gVGhzaSB3aWxsIHNwYW4gdGhlIHBhZ2UgdG8gdGhlIGZ1bGwgd2lkdGguXG5cbmBgYGphZGVcbmRpdi5wYWdlLWZsdWlkLi11bmxpbWl0ZWRcblx0ZGl2LmFpZ2lzLWRlYnVnIFNvbWUgcGFnZSBjb250ZW50XG5gYGBcbiovXG4ucGFnZS1mbHVpZCB7XG5cblx0QG1heC13aWR0aC1wb2ludDogZXh0cmFjdCggQGdyaWQtYnJlYWstcG9pbnRzLCBsZW5ndGgoIEBncmlkLWJyZWFrLXBvaW50cyApICk7XG5cdFxuXHRtYXgtd2lkdGg6IEBtYXgtd2lkdGgtcG9pbnQgKyAyICogZXh0cmFjdCggQHBhZ2UtcGFkZGluZywgMiApO1xuXHRtYXJnaW46IGF1dG87XG5cdHBhZGRpbmc6IEBwYWdlLXBhZGRpbmc7XG5cblx0Ji4tdW5saW1pdGVkIHtcblx0XHRtYXgtd2lkdGg6IG5vbmU7XG5cdH1cbn1cbiIsIi8qXG4tLS1cbm5hbWU6IC5yb3dcbmNhdGVnb3J5OiBMYXlvdXQvUm93XG50YWc6XG4gLSBjb21wb25lbnRcbmNvbXBpbGU6IHRydWVcbi0tLVxuXG5UaGlzIHN0eWxpbmcgYWxsb3cgdG8gcGxhY2UgY29udGFpbmVycyBpbiBhIHJvdy4gVGhleSB3aWxsICoqbm90KiogYnJlYWsgYXMgdGhlIGAuZ3JpZGAgYnV0IHJlc2l6ZSB0aGVtIGFjY29yZGluZ2x5LlxuU29tZSBiZW5lZml0cyBvZiB0aGUgYC5yb3dgIGFwcHJvYWNoIGlzIHRoZSBlYXN5IHZlcnRpY2FsIGNlbnRlcmluZyBhbmQgdGhlIHVzYWdlIG9mIHRoZSBgLmNvbC1hdXRvYCBjbGFzcy5cblxuIyMgQmFzaWMgcm93IHdpdGggdmVydGljYWwgY2VudGVyaW5nXG5cbllvdSBjYW4gdXNlIHRoZSBzaXppbmcgY2xhc3NlcyBgLmNvbC1YLVhgIHRvIGRlZmluZSB0aGUgd2lkdGggb2YgYSBjb2x1bW4gYXMgdGhlIGZvbGxvd2luZyBleGFtcGxlIHNob3dzLiBcblxuYGBgamFkZVxuZGl2LnJvd1xuXHRkaXYuY29sLTEtNC5haWdpcy1kZWJ1ZyBjb2wtMS00IHdpdGggYSBsb3Qgb2YgdGV4dCB0aGF0IHNwYW5zIHRoZSBjb2x1bW4uXG5cdGRpdi5jb2wtMy00LmFpZ2lzLWRlYnVnIGNvbC0zLTQgY29udGVudC5cbmBgYFxuXG4jIyBGaXhlZCByb3dcblxuVGhlcmUgaXMgYSBgLi1maXhlZGAgbW9kaWZpZXIgd2hlcmUgZWFjaCBjb2x1bW4gaGFzIHRoZSBzYW1lIHdpZHRoLlxuXG5gYGBqYWRlXG5kaXYucm93Li1maXhlZFxuXHRkaXYuYWlnaXMtZGVidWcgZXZlbmx5IHNwcmVhZG91dCBjb2x1bW5cblx0ZGl2LmFpZ2lzLWRlYnVnIGV2ZW5seSBzcHJlYWRvdXQgY29sdW1uIHdpdGggbW9yZSBjb250ZW50XG5cdGRpdi5haWdpcy1kZWJ1ZyBldmVubHkgc3ByZWFkb3V0IGNvbHVtblxuXHRkaXYuYWlnaXMtZGVidWcgZXZlbmx5IHNwcmVhZG91dCBjb2x1bW4gd2l0aCBtdWNoIG1vcmUgY29udGVudCB0aGFuIHRoZSBvdGhlclxuXHRkaXYuYWlnaXMtZGVidWcudmNlbnRlciBldmVubHkgc3ByZWFkb3V0IGNvbHVtbiB3aXRoIC52Y2VudGVyXG5gYGBcblxuXG4jIyBBdXRvIHNpemVkIGNvbHVtbiB3aWR0aCBhbmQgdmNlbnRlclxuXG5UaGVyZSBpcyBhIHNwZWNpYWwgYC5jb2wtYXV0b2AgY2xhc3MgdGhhdCByZXNpemVzIHRoZSBjb2x1bW4gdG8gdGhlIHNpemUgb2YgaXRzIGNvbnRlbnQuXG5UaGlzIGlzIHVzZWZ1bGwgZm9yIGV4YW1wbGUgaWYgeW91IGhhdmUgYSBmaXhlZCBzaXplIGxvZ28gYW5kIHRoZSByZXN0IG9mIHRoZSBoZWFkZXIgaGFzIHRvIHJlc2l6ZS5cblxuYGBgamFkZVxuZGl2LnJvdy4tY2VudGVyXG5cdGRpdi5jb2wtYXV0by5haWdpcy1kZWJ1Z1xuXHRcdGltZyhzcmM9XCJodHRwOi8vcGxhY2Vob2xkLml0LzEwMHgxMDBcIilcblx0ZGl2LmNvbC0xLmFpZ2lzLWRlYnVnIFRoZSByZXN0XG5cdGRpdi5jb2wtYXV0by5haWdpcy1kZWJ1Z1xuXHRcdGltZyhzcmM9XCJodHRwOi8vcGxhY2Vob2xkLml0LzIwMHgxMDBcIilcbmBgYFxuKi9cbi5yb3cge1xuXHRkaXNwbGF5OiB0YWJsZTtcblx0d2lkdGg6IDEwMCU7XG5cblx0Ji4tZml4ZWQge1xuICAgIFx0dGFibGUtbGF5b3V0OiBmaXhlZDtcblx0fVxuXG5cdCYuLWNlbnRlciB7XG5cdFx0PiAqIHtcblx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0fVxuXHR9XG5cblx0Ji4tYm90dG9tIHtcblx0XHQ+ICoge1xuXHRcdFx0dmVydGljYWwtYWxpZ246IGJvdHRvbTtcblx0XHR9XG5cdH1cblxuXHQmLi1wYWRkZWQge1xuXHRcdD4gKiArICoge1xuXHRcdFx0cGFkZGluZy1sZWZ0OiBAcm93LWd1dHRlcjtcblx0XHR9XG5cdH1cblx0XG5cdD4gKiB7XG5cdFx0ZGlzcGxheTogdGFibGUtY2VsbDtcblx0XHRcblx0XHQmLmNvbC0xIHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdH1cblx0XHQmLmNvbC0xLTIsXG5cdFx0Ji5jb2wtMi00IHtcblx0XHRcdHdpZHRoOiAxMDAlLzI7XG5cdFx0fVxuXHRcdCYuY29sLTEtMyB7XG5cdFx0XHR3aWR0aDogMTAwJS8zKjE7XG5cdFx0fVxuXHRcdCYuY29sLTItMyB7XG5cdFx0XHR3aWR0aDogMTAwJS8zKjI7XG5cdFx0fVxuXHRcdCYuY29sLTEtNCB7XG5cdFx0XHR3aWR0aDogMTAwJS80KjE7XG5cdFx0fVxuXHRcdCYuY29sLTMtNCB7XG5cdFx0XHR3aWR0aDogMTAwJS80KjM7XG5cdFx0fVxuXHRcdFxuXHRcdCYuY29sLWF1dG8ge1xuXHRcdFx0d2lkdGg6YXV0bztcblx0XHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdFx0fVxuXHR9XG59XG5cblxuIiwiLypcbi0tLVxubmFtZTogLmJ1dHRvblxuY2F0ZWdvcnk6IExlcm5mcmFnZW4vQnV0dG9uXG50YWc6XG4gLSBjb21wb25lbnRcbiAtIGJ1dHRvblxuY29tcGlsZTogdHJ1ZVxuLS0tXG5cbkJhc2ljIHN0eWxlcyBmb3IgYnV0dG9uLiBFeHRlbmRpbmcgdGhlIGRlZmF1bHQtYnV0dG9uIG9mIHRoZSBjc3MtbGliXG5cbmBgYGphZGVcbmJ1dHRvbi5idXR0b24gQWN0aW9uXG5idXR0b24uYnV0dG9uLi1kaXNhYmxlZCBEaXNhYmxlZFxuYGBgXG5cbkNhbiBhbHNvIGJlIHVzZWQgd2l0aCBhbiBhIHRhZ1xuXG5gYGBqYWRlXG5hLmJ1dHRvbiBBY3Rpb25cbmEuYnV0dG9uLi1kaXNhYmxlZCBEaXNhYmxlZFxuYGBgXG5cbiovXG5cbi5idXR0b24ge1xuXG5cdCY6ZXh0ZW5kKCAuYnV0dG9uLWRlZmF1bHQgKTtcblx0Ym9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXM7XG5cdGZvbnQtc2l6ZTogcmVtKCAxNnB4ICk7XG5cdGZvbnQtd2VpZ2h0OiBsaWdodGVyO1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG5cdCY6Zm9jdXMge1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkIEB0ZXh0LWNvbG9yO1xuXHRcdHBhZGRpbmc6IHJlbSggN3B4ICkgcmVtKCAxMXB4ICk7XG5cdH1cblxuXHQmOmhvdmVyIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCBAYWN0aW9uLWNvbG9yLCAxMCUgKTsgXG5cdH1cblxuXHQmLi1kaXNhYmxlZCB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCBkZXNhdHVyYXRlKCBAYWN0aW9uLWNvbG9yLCA3NSUpICwgMTAlICk7IFxuXHR9XG5cblxuXHRcbn0iLCIvKlxuLS0tXG5uYW1lOiAuZmVlZGJhY2stcGFuZWxcbmNhdGVnb3J5OiBMZXJuZnJhZ2VuL0ZlZWRiYWNrUGFuZWxcbnRhZzpcbiAtIGNvbXBvbmVudFxuIC0gZmVlZGJhY2tcbmNvbXBpbGU6IHRydWVcbi0tLVxuXG5UaGlzIHN0eWxlcyBhIGZlZWRiYWNrIG1lc3NhZ2Ugd2hlbiB0aGUgdXNlciBoYXMgYW5zd2VyZWQgYSBxdWVzdGlvbi5cblxuYGBgamFkZVxuZGl2LmZlZWRiYWNrIFRoYW5rcyBmb3IgeW91ciBhbnN3ZXIuXG5kaXYuZmVlZGJhY2suY29ycmVjdCBQZXJmZWN0LCB5b3VyIGFuc3dlciBpcyBjb3JyZWN0XG5kaXYuZmVlZGJhY2sud3JvbmcgU29ycnksIGJ1dCB5b3VyIGFuc3dlciBpcyB3cm9uZy5cbmBgYFxuXG4jIyBDb3JyZWN0IFxuXG5UaGUgYC4tY29ycmVjdGAgbW9kaWZpZXIgc3R5bGVzIHRoZSBmZWVkYmFjayBtZXNzYWdlIGZvciBhIGNvcnJlY2x5IGFuc3dlcmVkIHF1ZXN0aW9uXG5cbmBgYGphZGVcbmRpdi5mZWVkYmFjay1jb250YWluZXIuLWNvcnJlY3QgUGVyZmVjdCwgeW91ciBhbnN3ZXIgaXMgY29ycmVjdFxuYGBgXG5cbiMjIFdyb25nIFxuXG5UaGUgYC4td3JvbmdgIG1vZGlmaWVyIHN0eWxlcyB0aGUgZmVlZGJhY2sgbWVzc2FnZSBmb3IgYSB3cm9uZyBhbnN3ZXJlZCBxdWVzdGlvblxuXG5gYGBqYWRlXG5kaXYuZmVlZGJhY2stY29udGFpbmVyLndyb25nIFNvcnJ5LCBidXQgeW91ciBhbnN3ZXIgaXMgd3JvbmcuXG5gYGBcbiovXG5cbi5mZWVkYmFjay1wYW5lbCB7XG5cdGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzO1xuXHRwYWRkaW5nOiByZW0oIDIwcHggKSByZW0oIDIwcHggKTtcblx0YmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbiggZGVzYXR1cmF0ZSggQGFjdGlvbi1jb2xvciwgODAlICksIDU1JSApO1xuXHRtYXJnaW46IHJlbSggMjBweCApIHJlbSggNXB4ICk7XG5cblx0Ji4tY29ycmVjdCB7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgQGNvcnJlY3QtYW5zd2VyLWNvbG9yO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oIEBjb3JyZWN0LWFuc3dlci1jb2xvciwgNjAlICk7XG5cdFx0Y29sb3I6IGRhcmtlbiggQGNvcnJlY3QtYW5zd2VyLWNvbG9yLCAyMCUgKTtcblx0fVxuXHRcblx0Ji4td3Jvbmcge1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkIEB3cm9uZy1hbnN3ZXItY29sb3I7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbiggQHdyb25nLWFuc3dlci1jb2xvciwgNjAlICk7XG5cdFx0Y29sb3I6IGRhcmtlbiggQHdyb25nLWFuc3dlci1jb2xvciwgMjAlICk7XG5cdH1cblxufSIsIi8qXG4tLS1cbm5hbWU6IC5mb3JtXG5jYXRlZ29yeTogTGVybmZyYWdlblxudGFnOlxuIC0gZm9ybXNcbmNvbXBpbGU6IHRydWVcbi0tLVxuXG5TdHlsZXMgZm9yIGFsbCBmb3JtIGlucHV0cy5cbiovXG5cblxuLyoqKlxuICogRm9ybXM6XG4gKi9cblxuLyoqXG4gKiBJbnB1dDpcbiAqIGAuaW5wdXRgIC0gQSBzdHlsZSBmb3IgYW4gaW5wdXRmaWVsZCBcbiAqIFxuICogXHRAZXhhbXBsZVxuICogXHRpbnB1dC5pbnB1dFxuICovXG4uaW5wdXR7XG5cdFxuXHRvdXRsaW5lOm5vbmU7XG5cdGxpbmUtaGVpZ2h0OiAxLjQ2N2VtO1xuXHRwYWRkaW5nOiA4cHggMTJweDtcblx0LXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuXHRib3JkZXItcmFkaXVzOiBAYm9yZGVyLXJhZGl1cztcblx0LXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xuXHRib3gtc2hhZG93OiBub25lO1xuXHRib3JkZXI6IDJweCBzb2xpZCBsaWdodGVuKCBkZXNhdHVyYXRlKCBAYWN0aW9uLWNvbG9yLCA4MCUgKSwgNDAlICk7XG5cdFxuXHQmOmZvY3VzIHtcblx0XHRib3JkZXI6IDJweCBzb2xpZCBkZXNhdHVyYXRlKCBAYWN0aW9uLWNvbG9yLCA4MCUgKTtcblx0fVxuXHRcblx0LyoqXG5cdCAqIENvcnJlY3QgZ2FwIGlucHV0OlxuXHQgKiBgLmNvcnJlY3RgIC0gRmVlZGJhY2sgaWYgdGhlIGlucHV0IGlzIGNvcnJlY3QgYW5zd2VyZWRcblx0ICogXG5cdCAqIFx0QGV4YW1wbGVcblx0ICogXHRpbnB1dC5pbnB1dC5jb3JyZWN0XG5cdCAqL1xuXHQmLi1jb3JyZWN0IHtcblx0XHRib3JkZXI6IDJweCBzb2xpZCBAY29ycmVjdC1hbnN3ZXItY29sb3I7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbiggQGNvcnJlY3QtYW5zd2VyLWNvbG9yLCA2MCUgKTtcblx0fVxuXHRcblx0LyoqXG5cdCAqIFdyb25nIGdhcCBpbnB1dDpcblx0ICogYC53cm9uZ2AgLSBGZWVkYmFjayBpZiB0aGUgaW5wdXQgaXMgd3JvbmcgYW5zd2VyZWRcblx0ICogXG5cdCAqIFx0QGV4YW1wbGVcblx0ICogXHRpbnB1dC5pbnB1dC53cm9uZ1xuXHQgKi9cblx0Ji4td3Jvbmcge1xuXHRcdGJvcmRlcjogMnB4IHNvbGlkIEB3cm9uZy1hbnN3ZXItY29sb3I7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbiggQHdyb25nLWFuc3dlci1jb2xvciwgNjAlICk7XG5cdH1cbn1cblxuLyoqXG4gKiBEcm9wZG93bjpcbiAqIGBzZWxlY3QuZHJvcGRvd25gIC0gU3R5bGluZyBvZiBhIGRyb3Bkb3duLlxuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdHNlbGVjdC5kcm9wZG93blxuICogXHRcdG9wdGlvbih2YWx1ZT1cIm9wdDFcIikgT3B0aW9uIDFcbiAqIFx0XHRvcHRpb24odmFsdWU9XCJvcHQyXCIpIE9wdGlvbiAyXG4gKi9cbnNlbGVjdC5kcm9wZG93biB7XG5cdFxuXHRmb250LXNpemU6IDFlbTtcblx0cGFkZGluZzogNXB4O1xuXHRib3JkZXI6IDJweCBzb2xpZCBsaWdodGVuKCBkZXNhdHVyYXRlKCBAYWN0aW9uLWNvbG9yLCA4MCUgKSwgNDAlICk7XG5cdGhlaWdodDogMi42ZW07XG5cdGJvcmRlci1yYWRpdXM6IEBib3JkZXItcmFkaXVzO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGO1xuXHRtYXJnaW46IDJweDtcblx0XG5cdC8qKlxuXHQgKiBDb3JyZWN0IGRyb3Bkb3duIGlucHV0OlxuXHQgKiBgLmNvcnJlY3RgIC0gRmVlZGJhY2sgaWYgdGhlIGlucHV0IGlzIGNvcnJlY3QgYW5zd2VyZWRcblx0ICogXG5cdCAqIFx0QGV4YW1wbGVcblx0ICogXHRzZWxlY3QuZHJvcGRvd24uY29ycmVjdFxuXHQgKiBcdFx0b3B0aW9uKHZhbHVlPVwib3B0MVwiKSBPcHRpb24gMVxuXHQgKiBcdFx0b3B0aW9uKHZhbHVlPVwib3B0MlwiKSBPcHRpb24gMlxuXHQgKi9cblx0Ji4tY29ycmVjdCB7XG5cdFx0Ym9yZGVyOiAycHggc29saWQgQGNvcnJlY3QtYW5zd2VyLWNvbG9yO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oIEBjb3JyZWN0LWFuc3dlci1jb2xvciwgNjAlICk7XG5cdH1cblx0XG5cdC8qKlxuXHQgKiBXcm9uZyBkcm9wZG93biBpbnB1dDpcblx0ICogYC53cm9uZ2AgLSBGZWVkYmFjayBpZiB0aGUgaW5wdXQgaXMgd3JvbmcgYW5zd2VyZWRcblx0ICogXG5cdCAqIFx0QGV4YW1wbGVcblx0ICogXHRzZWxlY3QuZHJvcGRvd24ud3Jvbmdcblx0ICogXHRcdG9wdGlvbih2YWx1ZT1cIm9wdDFcIikgT3B0aW9uIDFcblx0ICogXHRcdG9wdGlvbih2YWx1ZT1cIm9wdDJcIikgT3B0aW9uIDJcblx0ICovXG5cdCYuLXdyb25nIHtcblx0XHRib3JkZXI6IDJweCBzb2xpZCBAd3JvbmctYW5zd2VyLWNvbG9yO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oIEB3cm9uZy1hbnN3ZXItY29sb3IsIDYwJSApO1xuXHR9XG5cdFxufVxuXG4vKipcbiAqIEZyZWV0ZXh0IHRleHRhcmVhOlxuICogYHRleHRhcmVhYCAtIE1pbmltdW0gc2l6ZWQgdGV4dGFyZWEgZm9yIGZyZWUgdGV4dCBpbnB1dFxuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdHRleHRhcmVhLmlucHV0XG4gKi9cbnRleHRhcmVhIHtcblx0bWluLWhlaWdodDogMTIwcHg7XG5cdHdpZHRoOiAxMDAlO1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG5cbi8qKlxuICogU2luZ2xlLSAmIE11bHRpcGxlQ2hvaWNlIGFuc3dlcjpcbiAqIGAuYW5zd2VyLXZpZXdgIC0gVGhpcyBzdHlsZSBpcyBmb3IgYW4gYW5zd2VyIG9uIGEgbXVsdGlwbGUtIG9yIHNpbmdsZWNob2ljZSBxdWVzdGlvbi4gSXQgcHJvcGVybHkgYWxpZ25zIHRoZSB0ZXh0IGFuZCB0aGUgY2hlY2tib3guXG4gKiBcbiAqIFx0QGV4YW1wbGVcbiAqIFx0ZGl2LmFuc3dlci12aWV3XG4gKiBcdFx0bGFiZWxcbiAqIFx0XHRcdGlucHV0KHR5cGU9XCJyYWRpb1wiKVxuICogXHRcdFx0cCBQcm8gVHlwZVNjcmlwdCBzaG93cyB5b3UgaG93IHRvIHdyaXRlIGxhcmdlLXNjYWxlIEphdmFTY3JpcHQgcHJvZ3JhbXMgdGhhdCBjYW4gcnVuIGluIGFueSB3ZWIgYnJvd3NlciBvciBvbiBhbnkgd2ViIHNlcnZlciB1c2luZyBNaWNyb3NvZnTigJlzIFR5cGVTY3JpcHQgbGFuZ3VhZ2UuXG4gKiBcdGRpdi5hbnN3ZXItdmlld1xuICogXHRcdGxhYmVsXG4gKiBcdFx0XHRpbnB1dCh0eXBlPVwiY2hlY2tib3hcIilcbiAqIFx0XHRcdHAgUHJvIFR5cGVTY3JpcHQgc2hvd3MgeW91IGhvdyB0byB3cml0ZSBsYXJnZS1zY2FsZSBKYXZhU2NyaXB0IHByb2dyYW1zIHRoYXQgY2FuIHJ1biBpbiBhbnkgd2ViIGJyb3dzZXIgb3Igb24gYW55IHdlYiBzZXJ2ZXIgdXNpbmcgTWljcm9zb2Z04oCZcyBUeXBlU2NyaXB0IGxhbmd1YWdlLlxuICovXG4uYW5zd2VyLXZpZXcge1xuXHRcblx0bWluLWhlaWdodDogMjBweDtcblx0bWFyZ2luOiA1cHggMDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRwYWRkaW5nOiA1cHg7XG5cblx0bGFiZWwge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRwYWRkaW5nLWxlZnQ6IDIwcHg7XG5cdH1cblx0XG5cdGlucHV0IHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0bWFyZ2luLWxlZnQ6IC0yMHB4O1xuXHRcdG1hcmdpbi10b3A6IDRweDtcblx0fVxuXHRcblx0cCB7XG5cdFx0bWFyZ2luOiAwO1xuXHR9XG5cdFxuXHQvKipcblx0ICogQ29ycmVjdCBhbnN3ZXJlZCB2aWV3OlxuXHQgKiBgLmFuc3dlci12aWV3LmNvcnJlY3RgIC0gRmVlZGJhY2sgaWYgdGhlIGFuc3dlciBpcyBjb3JyZWN0XG5cdCAqIFxuXHQgKiBcdEBleGFtcGxlXG5cdCAqIFx0ZGl2LmFuc3dlci12aWV3LmNvcnJlY3Rcblx0ICogXHRcdGxhYmVsXG5cdCAqIFx0XHRcdGlucHV0KHR5cGU9XCJyYWRpb1wiKVxuXHQgKiBcdFx0XHRwIENvcnJlY3Rcblx0ICovXG5cdCYuLWNvcnJlY3Qge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oIEBjb3JyZWN0LWFuc3dlci1jb2xvciwgNjAlICk7XG5cdFx0Y29sb3I6IEBjb3JyZWN0LWFuc3dlci1jb2xvcjtcblx0XHRcblx0XHRwOmFmdGVyIHtcblx0XHRcdGNvbnRlbnQ6ICcgXFwwMjcxMyc7XG5cdFx0fVxuXHR9XG5cdFxuXHQvKipcblx0ICogV3JvbmcgYW5zd2VyZWQgdmlldzpcblx0ICogYC5hbnN3ZXItdmlldy53cm9uZ2AgLSBGZWVkYmFjayBpZiB0aGUgYW5zd2VyIGlzIHdyb25nXG5cdCAqIFxuXHQgKiBcdEBleGFtcGxlXG5cdCAqIFx0ZGl2LmFuc3dlci12aWV3Lndyb25nXG5cdCAqIFx0XHRsYWJlbFxuXHQgKiBcdFx0XHRpbnB1dCh0eXBlPVwiY2hlY2tib3hcIilcblx0ICogXHRcdFx0cCBXcm9uZ1xuXHQgKi9cblx0Ji4td3Jvbmcge1xuXHRcdGNvbG9yOiBAd3JvbmctYW5zd2VyLWNvbG9yO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oIEB3cm9uZy1hbnN3ZXItY29sb3IsIDYwJSApO1xuXHRcdFxuXHRcdHA6YWZ0ZXIge1xuXHRcdFx0Y29udGVudDogJyBcXDAyNzE3Jztcblx0XHR9XG5cdH1cbn1cblxuLyoqXG4gKiBEcmFnIG5vZGU6XG4gKiBgLmRyYWctbm9kZWAgLSBBIG5vZGUgc3R5bGUgdGhhdCBzaG93cyBpdCBjYW4gYmUgZHJhZ2dlZC5cbiAqIFxuICogXHRAZXhhbXBsZVxuICogXHRkaXYuZHJhZy1ub2RlIE15IGRyYWdnYWJsZSBlbGVtZW50XG4gKi9cbi5kcmFnLW5vZGUge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGN1cnNvcjogbW92ZTtcblx0Ym9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXM7XG5cdHBhZGRpbmc6IDEwcHg7XG5cdGJvcmRlcjogMnB4IHNvbGlkIGxpZ2h0ZW4oIGRlc2F0dXJhdGUoIEBhY3Rpb24tY29sb3IsIDgwJSApLCA0MCUgKTtcblx0YmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbiggZGVzYXR1cmF0ZSggQGFjdGlvbi1jb2xvciwgODAlICksIDY1JSApO1xuXHRcblx0Jjpob3ZlciB7XG5cdFx0Ym9yZGVyOiAycHggc29saWQgZGVzYXR1cmF0ZSggQGFjdGlvbi1jb2xvciwgODAlICk7XG5cdH1cblx0XG5cdC8qKlxuXHQgKiBDb3JyZWN0IHBsYWNlZCBkcmFnIG5vZGU6XG5cdCAqIGAuZHJhZy1ub2RlLmNvcnJlY3RgIC0gRmVlZGJhY2sgaWYgdGhlIGRyYWcgaXMgY29ycmVjdCBwbGFjZWRcblx0ICogXG5cdCAqIFx0QGV4YW1wbGVcblx0ICogXHRkaXYuZHJhZy1ub2RlLmNvcnJlY3QgQ29ycmVjdCBlbGVtZW50XG5cdCAqL1xuXHQmLi1jb3JyZWN0IHtcblx0XHRib3JkZXI6IDJweCBzb2xpZCBAY29ycmVjdC1hbnN3ZXItY29sb3I7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbiggQGNvcnJlY3QtYW5zd2VyLWNvbG9yLCA2MCUgKTtcblx0fVxuXHRcblx0LyoqXG5cdCAqIFdyb25nIHBsYWNlZCBkcmFnIG5vZGU6XG5cdCAqIGAuZHJhZy1ub2RlLndyb25nYCAtIFN0eWxlIHdyb25nIGlmIHdyb25nXG5cdCAqIFxuXHQgKiBcdEBleGFtcGxlXG5cdCAqIFx0ZGl2LmRyYWctbm9kZS53cm9uZyBXcm9uZyBlbGVtZW50XG5cdCAqL1xuXHQmLi13cm9uZyB7XG5cdFx0Ym9yZGVyOiAycHggc29saWQgQHdyb25nLWFuc3dlci1jb2xvcjtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCBAd3JvbmctYW5zd2VyLWNvbG9yLCA2MCUgKTtcblx0fVxufVxuXG4vKipcbiAqIERyb3Agbm9kZTpcbiAqIGAuZHJvcC1ub2RlYCAtIEEgc3R5bGUgZm9yIGEgbm9kZSB3aGVyZSBkcmFnIGVsZW1lbnRzIGNhbiBiZSBkcm9wcGVkLlxuICogXG4gKiBcdEBleGFtcGxlXG4gKiBcdGRpdi5kcm9wLW5vZGVcbiAqIFx0XHRkaXYudGl0bGUgRHJvcCBub2RlXG4gKiBcdFx0ZGl2LmRyYWdzXG4gKiBcdFx0XHRkaXYuZHJhZy1ub2RlIERyYWcgZWxlbWVudFxuICovXG4uZHJvcC1ub2RlIHtcblx0Ym9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXM7XG5cdGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0ZW4oIGRlc2F0dXJhdGUoIEBhY3Rpb24tY29sb3IsIDgwJSApLCA0MCUgKTtcblx0YmFja2dyb3VuZC1jb2xvcjogIzc3Nztcblx0bWFyZ2luOiAxMHB4IDA7XG5cdC50aXRsZSB7XG5cdFx0cGFkZGluZzogNXB4O1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNGRkY7XG5cdH1cblx0XG5cdC5kcmFnLW5vZGUge1xuXHRcdG1hcmdpbjogNXB4O1xuXHR9XG5cdFxuXHQuZHJvcC10YXJnZXQge1xuXHRcdG1pbi1oZWlnaHQ6IDUycHg7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cdH1cbn1cblxuLyoqXG4gKiBEcmFnIGNvbnRhaW5lcjpcbiAqIGAuZHJhZy1jb250YWluZXJgIC0gQSBjb250YWluZXIgdGhhdCBzdG9yZXMgdGhlIGRyYWcgbm9kZXMgd2hlbiB0aGV5IGFyZSBub3Qgb24gYSBkcm9wIG5vZGUuXG4gKiBcbiAqIFx0QGV4YW1wbGVcbiAqIFx0ZGl2LmRyYWctY29udGFpbmVyXG4gKiBcdFx0ZGl2LmRyYWctbm9kZSBEcmFnIGVsZW1lbnRcbiAqL1xuLmRyYWctY29udGFpbmVyIHtcblx0YmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbiggZGVzYXR1cmF0ZSggQGFjdGlvbi1jb2xvciwgODAlICksIDEwJSApO1xuXHRcblx0LmRyYWctbm9kZSB7XG5cdFx0bWFyZ2luOiA1cHg7XG5cdH1cblx0XG5cdG1hcmdpbjogMTBweCAwO1xufVxuXG4vKipcbiAqIEhvdHNwb3QgcG9pbnQ6XG4gKiBgLmhvdHNwb3QtcG9pbnRgIC0gQSBwb2ludCB0aGF0IGlzIHNob3duIG9uIHRoZSBob3RzcG90IGltYWdlIHdoZW4gaXQgaXMgY2xpY2tlZC5cbiAqIFxuICogXHRAZXhhbXBsZVxuICogXHRkaXYuaG90c3BvdC1wb2ludFxuICovXG4uaG90c3BvdC1wb2ludCB7XG5cdGhlaWdodDogMjBweDtcblx0d2lkdGg6IDIwcHg7XG5cdGJvcmRlci1yYWRpdXM6IDEycHg7XG5cdGJvcmRlcjogMnB4IHNvbGlkIGRlc2F0dXJhdGUoIEBhY3Rpb24tY29sb3IsIDgwJSApO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGO1xuXHRtYXJnaW4tbGVmdDogLTEwcHg7XG5cdG1hcmdpbi10b3A6IC0xMHB4O1xuXHRcblx0LyoqXG5cdCAqIENvcnJlY3QgaG90c3BvdCBwb2ludDpcblx0ICogYC5ob3RzcG90LXBvaW50LmNvcnJlY3RgIC0gVGhlIHN0eWxlIGZvciBhIGNvcnJlY3QgcGxhY2VkIGhvdHNwb3QgcG9pbnRcblx0ICogXG5cdCAqIFx0QGV4YW1wbGVcblx0ICogXHRkaXYoc3R5bGU9XCJoZWlnaHQ6MjRweFwiKVxuXHQgKiBcdFx0ZGl2LmhvdHNwb3QtcG9pbnQuY29ycmVjdFxuXHQgKi9cblx0Ji4tY29ycmVjdCB7XG5cdFx0Ym9yZGVyOiAycHggc29saWQgQGNvcnJlY3QtYW5zd2VyLWNvbG9yO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oIEBjb3JyZWN0LWFuc3dlci1jb2xvciwgNjAlICk7XG5cdH1cblx0XG5cdC8qKlxuXHQgKiBXcm9uZyBob3RzcG90IHBvaW50OlxuXHQgKiBgLmhvdHNwb3QtcG9pbnQud3JvbmdgIC0gVGhlIHN0eWxlIGZvciBhIHdyb25nIHBsYWNlZCBob3RzcG90IHBvaW50XG5cdCAqIFxuXHQgKiBcdEBleGFtcGxlXG5cdCAqIFx0ZGl2KHN0eWxlPVwiaGVpZ2h0OjI0cHhcIilcblx0ICogXHRcdGRpdi5ob3RzcG90LXBvaW50Lndyb25nXG5cdCAqL1xuXHQmLi13cm9uZyB7XG5cdFx0Ym9yZGVyOiAycHggc29saWQgQHdyb25nLWFuc3dlci1jb2xvcjtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCBAd3JvbmctYW5zd2VyLWNvbG9yLCA2MCUgKTtcblx0fVxufVxuXG4vKipcbiAqIEhvdHNwb3QgcmVjdGFuZ2xlczpcbiAqIGAuaG90c3BvdC1yZWN0YCAtIEEgdmlzdWFsaXphdGlvbiBvZiB0aGUgaG90c3BvdCByZWN0YW5nbGVzIG9uIGFuIGFyZWFcbiAqIFxuICogXHRAZXhhbXBsZVxuICogXHRkaXYuaW1nLWFyZWFcbiAqIFx0XHRkaXYuc3RyZXRjaFxuICogXHRcdFx0ZGl2LmhvdHNwb3QtcmVjdC5hYnMoc3R5bGU9XCJ0b3A6NDAlO2xlZnQ6NDAlO3dpZHRoOjIwJTtoZWlnaHQ6MjAlO3otaW5kZXg6IDE7XCIpXG4gKiBcdFx0aW1nKHNyYz0naHR0cDovL3d3dy5ieXVpLmVkdS9pbWFnZXMvYWdyaWN1bHR1cmUtbGlmZS1zY2llbmNlcy9mbG93ZXIuanBnJylcbiAqL1xuXG4uaG90c3BvdC1yZWN0IHtcblx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSggMCwgMCwgMCwgMC4yICk7XG5cdGJvcmRlcjogMXB4IHNvbGlkICNGRkY7XG59XG4iLCIvKioqXG4gKiBJbWFnZS1BcmVhcyAoZm9yIGhvdHNwb3RzIC8gdG9vbHRpcHMgLyAuLi4gKTpcbiAqL1xuIFxuLyoqXG4gKiBJbWFnZS1BcmVhOlxuICogYC5pbWctYXJlYWAgSW1hZ2UgYXJlYSBkZWZpbmVzIGFuIGFyZWEgb3ZlciB0aGUgaW1hZ2UgaW4gd2hpY2ggaW1hZ2UgYXJlYSBlbGVtZW50cyBjYW4gYmUgcGxhY2VkXG4gKlxuICogXHRAZXhhbXBsZVxuICogXHRkaXYuaW1nLWFyZWFcbiAqIFx0XHRpbWcucmVzcG9uc2l2ZS1pbWcoc3JjPSdodHRwOi8vd3d3LmJ5dWkuZWR1L2ltYWdlcy9hZ3JpY3VsdHVyZS1saWZlLXNjaWVuY2VzL2Zsb3dlci5qcGcnKVxuICogXHRcdGRpdi5hYnMoIHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlOyB0b3A6IDEwJTsgbGVmdDogMTAlOyB3aWR0aDogMzAlOyBoZWlnaHQ6IDMwJTsgYmFja2dyb3VuZC1jb2xvcjogI0ZGRlwiKSBFeGFtcGxlIEFyZWFcbiAqL1xuIFxuLmltZy1hcmVhe1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0bWF4LXdpZHRoOiAxMDAlO1xufSIsIlxuLm5hdmlnYXRpb24tYmFyIHtcblx0cGFkZGluZy10b3A6IDEwcHg7XG5cdHBhZGRpbmctYm90dG9tOiAxMHB4O1xufSIsIi8qXG4tLS1cbm5hbWU6IC5uZXh0c29sdXRpb24tbmF2aWdhdGlvbixcbmNhdGVnb3J5OiBMZXJuZnJhZ2VuL05hdmlnYXRpb24vTmV4dFByZXZcbnRhZzpcbiAtIGNvbXBvbmVudFxuIC0gbmF2aWdhdGlvblxuIC0gbmV4dHByZXZcbmNvbXBpbGU6IHRydWVcbi0tLVxuXG5BIGZvcndhcmQgYmFja3dhcmQgbmF2aWdhdGlvbi5cblxuYGBgamFkZVxuLm5leHRzb2x1dGlvbi1uYXZpZ2F0aW9uXG5cdGJ1dHRvbi5idXR0b24ucHJldiBQcmV2aW91c1xuXHRidXR0b24uYnV0dG9uLm5leHQgTmV4dFxuXHRidXR0b24uYnV0dG9uLnNvbHV0aW9uIFNvbHV0aW9uXG5cdFxuYGBgXG5cbiovXG5cbi5uZXh0c29sdXRpb24tbmF2aWdhdGlvbiwgLm5leHRwcmV2LW5hdmlnYXRpb24ge1xuXG5cdD4gLm5leHQge1xuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0Y29udGVudDogJyA+Jztcblx0XHR9XG5cdH1cblxuXHQ+IC5wcmV2IHtcblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRjb250ZW50OiAnPCAnO1xuXHRcdH1cblx0XHRtYXJnaW4tcmlnaHQ6IHJlbSggMTBweCApOyAgIFxuXHR9XG5cblx0PiAuc29sdXRpb24ge1xuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0Y29udGVudDogJyA/Jztcblx0XHR9XG5cdH1cblxufSIsIi8qXG4tLS1cbm5hbWU6IC5wb2ludHMtbmF2aWdhdGlvblxuY2F0ZWdvcnk6IExlcm5mcmFnZW4vTmF2aWdhdGlvbi9Qb2ludHNcbnRhZzpcbiAtIGNvbXBvbmVudFxuY29tcGlsZTogdHJ1ZVxuLS0tXG5cbkEgc3R5bGUgZm9yIGEgcG9pbnRzIG5hdmlnYXRpb25cblxuYGBgamFkZVxuZGl2LnBvaW50cy1uYXZpZ2F0aW9uXG5cdGRpdi5wb2ludFxuXHRkaXYucG9pbnQuLWFjdGl2ZVxuXHRkaXYucG9pbnQuLWhhc2lucHV0XG5cdGRpdi5wb2ludC4tc21hbGxcbmBgYFxuKi9cblxuLnBvaW50cy1uYXZpZ2F0aW9uIHtcblx0XG5cdC5wb2ludCB7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdHdpZHRoOiByZW0oIDE1cHggKTtcblx0XHRoZWlnaHQ6IHJlbSggMTVweCApO1xuXHRcdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0XHRib3JkZXI6IDJweCBzb2xpZCAjOTk5O1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcblx0XHQmOmhvdmVyIHtcblx0XHQgIGJvcmRlcjogMnB4IHNvbGlkICM3Nzc7XG5cdFx0ICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xuXHRcdH1cblx0XHRcblx0XHQmLi1zbWFsbCB7XG5cdFx0IFx0d2lkdGg6IHJlbSggMTBweCApO1xuXHRcdCBcdGhlaWdodDogcmVtKCAxMHB4ICk7XG5cdFx0IH1cblx0XHQgXG5cdFx0Ji4taGFzaW5wdXQge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2VlZTtcblx0XHR9XG5cdFxuXHRcdCYuLWFjdGl2ZSB7XG5cdFx0ICBib3JkZXI6IDJweCBzb2xpZCAjNjY2O1xuXHRcdH1cblx0fVxuXHRcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcblx0LnBvaW50ICsgLnBvaW50IHtcblx0XHRtYXJnaW4tbGVmdDogcmVtKCA1cHggKTtcblx0fVxufVxuIiwiLypcbi0tLVxubmFtZTogLnNsaWRlLWNvbnRhaW5lclxuY2F0ZWdvcnk6IExlcm5mcmFnZW5cbnRhZzpcbiAtIGNvbXBvbmVudFxuY29tcGlsZTogdHJ1ZVxuLS0tXG5cbkEgZGVmYXVsdCBjb250YWluZXIgZm9yIGEgc2xpZGUsIGRlZmluaW5nIHNvbWUgdHlwb2dyYXBoeVxuXG5gYGBqYWRlXG5kaXYuc2xpZGUtY29udGFpbmVyXG5cdGgyLnRpdGxlIEEgdGl0bGVcblx0aDMuc3VidGl0bGUgQSBzdWJ0aXRsZVxuXHRwLnRleHQgU29tZSBUZXh0XG5gYGBcbiovXG5cbi5zbGlkZS1jb250YWluZXIge1xuXG5cdHBhZGRpbmctYm90dG9tOiByZW0oIDEwcHggKTtcblxuXG5cdCYgLnRpdGxlIHtcblx0XHRmb250LXdlaWdodDogMTAwO1xuXHRcdGZvbnQtc2l6ZTogMnJlbTtcblx0XHRwYWRkaW5nOiByZW0oIDMwcHggKSAwO1xuXHR9XG5cblx0JiAuc3VidGl0bGUge1xuXHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0Zm9udC1zaXplOiAxLjJyZW07XG5cdFx0cGFkZGluZzogcmVtKCAxMHB4ICkgMDtcblx0fVxuXG5cdCYgLnRleHQge1xuXHRcdGZvbnQtc2l6ZTogMXJlbTtcblx0fVxuXG59IiwiLypcbi0tLVxubmFtZTogLnN0YXR1cy1jb250YWllclxuY2F0ZWdvcnk6IExlcm5mcmFnZW5cbnRhZzpcbiAtIGNvbXBvbmVudFxuY29tcGlsZTogdHJ1ZVxuLS0tXG5cblN5bGVzIGZvciB0aGUgc3RhdHVzIGRpc3BsYXlcblxuYGBgamFkZVxuZGl2LnN0YXR1cy1jb250YWluZXIgMSBvZiAxMlxuYGBgXG4qL1xuXG5cbi5zdGF0dXMtY29udGFpbmVyIHtcblx0dGV4dC1hbGlnbjogcmlnaHQ7XG59XHRcblxuIiwiLypcbi0tLVxubmFtZTogLnRvb2x0aXAtc2xpZGVcbmNhdGVnb3J5OiBMZXJuZnJhZ2VuL1NsaWRlIENvbXBvbmVudHMvVG9vbHRpcFxudGFnOlxuIC0gY29tcG9uZW50XG5jb21waWxlOiB0cnVlXG4tLS1cblxuQSBjb250YWluZXIgZm9yIGRpc3BseWluZyB0b29sdGlwc1xuXG5gYGBqYWRlXG5kaXYudG9vbHRpcC1jb250YWluZXIgQSB0b29sdGlwIHRleHRcbmBgYFxuKi9cblxuXG4udG9vbHRpcC1jb250YWluZXIge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRwYWRkaW5nOiA1cHg7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0Ym9yZGVyLXJhZGl1czogQGJvcmRlci1yYWRpdXM7XG5cdGJvcmRlcjogMXB4IHNvbGlkICNCQkJCQkI7XG5cdHBvc2l0aW9uOiBmaXhlZDtcbn1cblxuIiwiLypcbi0tLVxubmFtZTogLnRyYW5zaXRpb25cbmNhdGVnb3J5OiBMZXJuZnJhZ2VuL1RyYW5zaXRpb25cbnRhZzpcbiAtIGhlbHBlclxuY29tcGlsZTogdHJ1ZVxuLS0tXG5cblNvbWUgaGVscGVyIGNsYXNzZXMgZm9yIHRyYW5zaXRpb24gYW5pbWF0aW9uXG4tLS1cblxuTW92ZSBmcm9tIHRoZSBzY3JlZW4gdG8gdGhlIHJpZ2h0IGJvcmRlciBhbmQgZmFkZSBvdXRcbmBgYGphZGVcbmRpdi4tbW92ZVRvUmlnaHQgU2xpZGUgQ29udGVudFxuYGBgXG5cbk1vdmUgZnJvbSB0aGUgcmlnaHQgYm9yZGVyIHRvIHRoZSBzY3JlZW4gYW5kIGZhZGUgaW5cbmBgYGphZGVcbmRpdi4tbW92ZUZyb21SaWdodCBTbGlkZSBDb250ZW50XG5gYGBcblxuTW92ZSBmcm9tIHRoZSBzY3JlZW4gdG8gdGhlIGxlZnQgYm9yZGVyIGFuZCBmYWRlIG91dFxuYGBgamFkZVxuZGl2Li1tb3ZlVG9MZWZ0IFNsaWRlIENvbnRlbnRcbmBgYFxuXG5Nb3ZlIGZyb20gdGhlIGxlZnQgYm9yZGVyIHRvIHRoZSBzY3JlZW4gYW5kIGZhZGUgaW5cbmBgYGphZGVcbmRpdi4tbW92ZUZyb21MZWZ0IFNsaWRlIENvbnRlbnRcbmBgYFxuXG5GYWRlIGluXG5gYGBqYWRlXG5kaXYuLWZhZGVJbiBTbGlkZSBDb250ZW50XG5gYGBcblxuRmFkZSBvdXRcbmBgYGphZGVcbmRpdi4tZmFkZU91dCBTbGlkZSBDb250ZW50XG5gYGBcblxuKi9cblxuXG5cbi4tbW92ZVRvUmlnaHQge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHdpZHRoOiAxMDAlO1xuXHRhbmltYXRpb246IG1vdmVUb1JpZ2h0IEB0cmFuc2l0aW9uLWR1cmF0aW9uIGVhc2UgYm90aDtcbn1cbkBrZXlmcmFtZXMgbW92ZVRvUmlnaHQgeyBcblx0ZnJvbSB7IH1cblx0dG8geyBcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG5cdFx0b3BhY2l0eTogMDtcblx0fVxufVxuXG4uLW1vdmVGcm9tUmlnaHQge1xuXHRhbmltYXRpb246IG1vdmVGcm9tUmlnaHQgQHRyYW5zaXRpb24tZHVyYXRpb24gZWFzZSBib3RoO1xufVxuQGtleWZyYW1lcyBtb3ZlRnJvbVJpZ2h0IHtcblx0ZnJvbSB7IFxuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcblx0XHRvcGFjaXR5OiAwO1xuXHR9XG59XG5cbi4tbW92ZVRvTGVmdCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0d2lkdGg6IDEwMCU7XG5cdGFuaW1hdGlvbjogbW92ZVRvTGVmdCBAdHJhbnNpdGlvbi1kdXJhdGlvbiBlYXNlIGJvdGg7XG59XG5Aa2V5ZnJhbWVzIG1vdmVUb0xlZnQge1xuXHRmcm9tIHsgfVxuXHR0byB7IFxuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG5cdFx0b3BhY2l0eTogMDtcblx0fVxufVxuXG4uLW1vdmVGcm9tTGVmdCB7XG5cdGFuaW1hdGlvbjogbW92ZUZyb21MZWZ0IEB0cmFuc2l0aW9uLWR1cmF0aW9uIGVhc2UgYm90aDtcbn1cbkBrZXlmcmFtZXMgbW92ZUZyb21MZWZ0IHtcblx0ZnJvbSB7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcblx0XHRvcGFjaXR5OiAwO1x0XG5cdH1cbn1cblxuLi1mYWRlSW4ge1xuXHRhbmltYXRpb246IGZhZGVJbiBAdHJhbnNpdGlvbi1kdXJhdGlvbiBlYXNlIGJvdGg7XG59XG5Aa2V5ZnJhbWVzIGZhZGVJbiB7XG5cdGZyb20ge1xuXHRcdG9wYWNpdHk6IDA7XHRcblx0fVxufVxuLi1mYWRlT3V0IHtcblx0YW5pbWF0aW9uOiBmYWRlT3V0IEB0cmFuc2l0aW9uLWR1cmF0aW9uIGVhc2UgYm90aDtcblx0cG9zaXRpb246YWJzb2x1dGU7XG5cdHdpZHRoOiAxMDAlO1xufVxuQGtleWZyYW1lcyBmYWRlT3V0IHtcblx0dG8ge1xuXHRcdG9wYWNpdHk6IDA7XHRcblx0fVxufVxuXG5cbiIsIlxuLmNhc2VzdHVkeS1jYXJkIHtcblx0Y29sb3I6ICMwMDAwMDA7XG5cdHBhZGRpbmc6IHJlbSggMThweCApO1xuXHRtYXJnaW4tYm90dG9tOiByZW0oIDIwcHggKTtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHQvKiAuei1kZXB0aCggMiApOyAqL1xuXHRib3JkZXItcmFkaXVzOiA4cHg7XG5cdGJvcmRlci1zdHlsZTogIHNvbGlkO1xuXHRib3JkZXItY29sb3I6IHJnYmEoMzQsIDM0LCAzNCwgMC4yKTtcblx0Ym9yZGVyLXdpZHRoOiAxcHg7XG5cblx0dHJhbnNpdGlvbjogYWxsIC4ycyBlYXNlO1xuXHQmOmhvdmVyIHtcblx0XHRib3gtc2hhZG93OiAwcHggMXB4IDRweCAwcHggcmdiYSgwLDAsMCwgMC4xNiksIDBweCAycHggMjRweCAwcHggcmdiYSgwLCAwLCAwLCAwLjA4KTtcblx0XHRib3JkZXItY29sb3I6ICNmZmY7IFxuXG5cdFx0PiAudGl0bGUgPiAuZW1waCB7XG5cdFx0XHRjb2xvcjogIzAwNzg5NDtcblx0XHR9XG5cdH1cblxuXHQmOmZvY3VzIHtcblx0XHRib3gtc2hhZG93OiAwcHggMXB4IDRweCAwcHggcmdiYSgwLDAsMCwgMC4xNiksIDBweCAycHggMjRweCAwcHggcmdiYSgwLCAwLCAwLCAwLjA4KTtcblx0XHRib3JkZXItY29sb3I6ICNmZmY7XG5cblx0XHQ+IC50aXRsZSA+IC5lbXBoIHtcblx0XHRcdGNvbG9yOiAjMDA3ODk0O1xuXHRcdH1cblx0fVxuXG5cdD4gLnRpdGxlIHtcblx0XHRmb250LXNpemU6IHJlbSggMThweCApO1xuXHRcdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdFx0bGluZS1oZWlnaHQ6IDE0MCU7XG5cdFx0cGFkZGluZy10b3A6IHJlbSggMTBweCApO1xuXHRcdG1hcmdpbi1ib3R0b206IHJlbSggMTBweCApO1xuXHRcdGNvbG9yOiAjMDA3ODk0O1xuXHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHRsaW5lLWhlaWdodDogMS41O1xuXHRcdHdpZHRoOiAyMjNweDtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdD4gLmVtcGgge1xuXHRcdFx0cGFkZGluZy10b3A6IHJlbSggMTBweCApO1xuXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHRjb2xvcjogIzAwMDAwMDtcblx0XHRcdGZvbnQtc2l6ZTogMjBweDtcblx0XHRcdG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG5cdFx0fVxuXHR9XG5cblx0PiAuY2hhcHRlcnMge1xuXHRcdFxuXHRcdHBhZGRpbmctdG9wOiByZW0oIDE1cHggKTtcblx0XHRcblx0XHQ+IC5jaGFwdGVyIHtcblx0XHRcdGZvbnQtc2l6ZTogMThweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxNTAlO1xuXHRcdFx0Y29sb3I6ICMwMDAwMDA7XG5cdFx0XHRvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuXG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0Y29sb3I6IEBhY3Rpb24tY29sb3I7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0PiAuZm9vdGVyIHtcblx0XHRwYWRkaW5nLXRvcDogcmVtKCAzMHB4ICk7XG5cblx0XHQ+IC5kdXJhdGlvbiB7XG5cdFx0XHRjb2xvcjogIzZGNkY2Rjtcblx0XHRcdGZvbnQtc2l6ZTogMTRweDtcblx0XHR9XG5cblxuXHR9XG5cbn0iLCJcbi5jYXNlc3R1ZHktY29udGFpbmVyIHtcblxuXHRwYWRkaW5nLWJvdHRvbTogcmVtKCA5MHB4ICk7XG5cblx0PiAuaW1hZ2Uge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IHJlbSggMzQ2cHggKTtcblx0XHR0b3A6IDA7XG5cdFx0bGVmdDogMDtcblx0XHR6LWluZGV4OiAtMTtcdFx0XG5cdFx0YmFja2dyb3VuZC1zaXplOiBjb3ZlciFpbXBvcnRhbnQ7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlOyBcblx0XHRcdHotaW5kZXg6IDI7XG5cdFx0XHRkaXNwbGF5OiBibG9jazsgXG5cdFx0XHRjb250ZW50OiBcIlwiO1xuXHRcdFx0dG9wOiAwOyByaWdodDogMDsgYm90dG9tOiAwOyBsZWZ0OiAwOyAgXG5cdFx0XHRiYWNrZ3JvdW5kOiBoc2xhKDAsMCUsMCUsMC40KTtcdFx0XHRcblx0XHR9XG5cdH1cblxuXHQ+IC50aXRsZSB7XG5cdFx0cGFkZGluZy10b3A6IHJlbSggMTFweCApO1xuXHRcdGZvbnQtc2l6ZTogcmVtKCAzNnB4ICk7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0Y29sb3I6IEB0ZXh0LWludmVydGVkLWNvbG9yO1xuXHRcdHotaW5kZXg6IDU7XG5cdH1cblxuXHQ+IC5zdWJ0aXRsZSB7XG5cdFx0cGFkZGluZy10b3A6IHJlbSggMTQ3cHggKTtcblx0XHRmb250LXNpemU6IHJlbSggMzBweCApO1xuXHRcdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdFx0Y29sb3I6IEB0ZXh0LWludmVydGVkLWNvbG9yO1xuXHRcdHotaW5kZXg6IDU7XG5cblx0fVxuXG5cdD4gLnF1aXoge1xuXHRcdHBhZGRpbmctdG9wOiByZW0oIDE3NSApO1xuXHR9XG5cblxufSIsIi5mZWVkYmFjay1idXR0b24ge1xuXHRtYXJnaW4tdG9wOiByZW0oIDIwcHggKTtcblx0YmFja2dyb3VuZC1jb2xvcjogQGFjdGlvbi1jb2xvcjtcblx0Y29sb3I6ICNmZmY7XG5cdGJvcmRlci1yYWRpdXM6IDJweDtcblx0Zm9udC1zaXplOiAxNnB4O1xuXHRwYWRkaW5nLWxlZnQ6IDMycHg7XG5cdHBhZGRpbmctcmlnaHQ6IDMycHg7XG5cdHBhZGRpbmctdG9wOiAxNXB4O1xuXHRwYWRkaW5nLWJvdHRvbTogMTVweDtcblx0Ym9yZGVyOiBub25lO1xuXHRmb250LXdlaWdodDogNzAwO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5mZWVkYmFjay1idXR0b246aG92ZXIge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjMDA1OTZEO1xufVxuXG4uZmVlZGJhY2stYnV0dG9uOmZvY3VzIHtcblx0YmFja2dyb3VuZC1jb2xvcjogIzAwNTk2RDtcbn0iLCJcbi5mb290ZXItYmFyIHtcblx0d2lkdGg6IDEwMCU7XG5cdHotaW5kZXg6IDEwO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyMjIyO1xuXHRjb2xvcjogQHRleHQtaW52ZXJ0ZWQtY29sb3I7XG5cblx0PiBkaXYgPiAubGluayB7XG5cdFx0Zm9udC1zaXplOiByZW0oIDE0cHggKTtcblx0XHRwYWRkaW5nOiByZW0oIDI4cHggKSByZW0oIDU1cHggKTtcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXHR9XG5cblx0PiBkaXYgPiAubG9nbyB7XG5cdFx0cGFkZGluZzogcmVtKCAyNnB4ICkgcmVtKCA1NXB4ICk7XG5cdFx0PiBpbWcge1xuXHRcdFx0aGVpZ2h0OiByZW0oIDE3cHggKTtcblx0XHR9XG5cdH1cblxuXHQ+IGRpdiA+IC5sb2dvID4gYSB7XG5cdFx0Zm9udC1zaXplOiAxNHB4O1xuXHRcdGNvbG9yOiB3aGl0ZTtcblx0fVxuXG59IiwiLmdvb2RwcmFjdGljZS1jYXJkIHtcblx0Y29sb3I6ICMwMDAwMDA7XG5cdHBhZGRpbmc6IHJlbSggMThweCApO1xuXHRtYXJnaW4tYm90dG9tOiByZW0oIDIwcHggKTtcblx0dHJhbnNpdGlvbjogYWxsIC4ycyBlYXNlO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdGJvcmRlci1yYWRpdXM6IDhweDtcblx0Ym9yZGVyLXN0eWxlOiAgc29saWQ7XG5cdGJvcmRlci1jb2xvcjogcmdiYSgzNCwgMzQsIDM0LCAwLjIpO1xuXHRib3JkZXItd2lkdGg6IDFweDtcblxuXHQmOmhvdmVyIHtcblx0XHRib3gtc2hhZG93OiAwcHggMXB4IDRweCAwcHggcmdiYSgwLDAsMCwgMC4xNiksIDBweCAycHggMjRweCAwcHggcmdiYSgwLCAwLCAwLCAwLjA4KTtcblx0XHRib3JkZXItY29sb3I6ICNmZmY7XG5cblx0XHQ+IC5uYW1lIHtcblx0XHRcdGNvbG9yOiAjMDA3ODk0O1xuXHRcdH1cblx0fVxuXG5cdCY6Zm9jdXMge1xuXHRcdGJveC1zaGFkb3c6IDBweCAxcHggNHB4IDBweCByZ2JhKDAsMCwwLCAwLjE2KSwgMHB4IDJweCAyNHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMDgpO1xuXHRcdGJvcmRlci1jb2xvcjogI2ZmZjtcblx0XHRcblx0XHQ+IC5uYW1lIHtcblx0XHRcdGNvbG9yOiAjMDA3ODk0O1xuXHRcdH1cblx0fVxuXG5cdD4gLmltYWdlIHtcblx0XHRwYWRkaW5nOiByZW0oIDIwcHggKSAwO1xuXHR9XG5cblx0PiAubmFtZSB7XG5cdFx0Zm9udC1zaXplOiAyMHB4O1xuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG5cdH1cblxuXHQ+IC5mdW5jdGlvbiB7XG5cdFx0Zm9udC1zaXplOiAxOHB4O1xuXHRcdG1hcmdpbi10b3A6IHJlbSggMTBweCApO1xuXHRcdG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG5cdH1cblxuXHQ+IC5kZXNjcmlwdGlvbiB7XG5cdFx0Zm9udC1zaXplOiAxOHB4O1xuXHRcdG1hcmdpbi10b3A6IHJlbSggMThweCApO1xuXHRcdG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG5cdH1cbn0iLCIuZ29vZHByYWN0aWNlLWNvbnRhaW5lciB7XG5cblx0cGFkZGluZy10b3A6IHJlbSggMTUwcHggKTtcblx0cGFkZGluZy1ib3R0b206IHJlbSggNTBweCApO1xuXG5cblx0PiAubmFtZSB7XG5cdFx0cGFkZGluZy10b3A6IHJlbSggMjBweCApO1xuXHRcdGZvbnQtc2l6ZTogcmVtKCAyMXB4ICk7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdH1cblxuXHQ+IC5mdW5jdGlvbiB7XG5cdFx0cGFkZGluZy10b3A6IHJlbSggMTBweCApO1xuXHRcdGZvbnQtc2l6ZTogcmVtKCAyMXB4ICk7XG5cdH1cblxuXHQ+IC50cmFuc2NyaXB0IHtcblx0XHRwYWRkaW5nLXRvcDogMi4xODc1cmVtO1xuXHRcdGZvbnQtc2l6ZTogNTBweDtcblx0fVxuXG59IiwiXG5cbi5oZWFkZXItYmFyIHtcblx0cG9zaXRpb246IGZpeGVkO1xuXHR3aWR0aDogMTAwJTtcblx0dG9wOiAwO1xuXHRsZWZ0OiAwO1xuXHR6LWluZGV4OiAxMDtcblx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTtcblx0Ly9ib3gtc2hhZG93OiAwIDJweCA0cHggMCByZ2JhKDAsMCwwLDAuMzApO1xuXHQuei1kZXB0aCggMiApO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXG5cdD4gLmxpbmssID4gZGl2ID4gYSB7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdGNvbG9yOiBibGFjaztcblx0XHQmOmhvdmVyIHtcblx0XHRcdGNvbG9yOiBAYWN0aW9uLWhvdmVyLWNvbG9yO1xuXHRcdFx0ZmlsbDogQGFjdGlvbi1ob3Zlci1jb2xvcjtcblx0XHR9XG5cblx0XHQmOmZvY3VzIHtcblx0XHRcdGNvbG9yOiBAYWN0aW9uLWhvdmVyLWNvbG9yO1xuXHRcdFx0ZmlsbDogQGFjdGlvbi1ob3Zlci1jb2xvcjtcblx0XHR9XG5cdH1cblxuXHQ+IC5idXJnZXI6Zm9jdXMsIC5pbmZvOmZvY3VzLCAuYmFjazpmb2N1cyB7XG5cdFx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblx0XHRib3JkZXItd2lkdGg6IDJweDtcblx0XHRib3JkZXItcmFkaXVzOiA1cHg7XG5cdFx0Ym9yZGVyLWNvbG9yOiAjMDAwMDAwO1xuXHR9XG5cblx0PiAubG9nbyB7XG5cdFx0ZmxleC1ncm93OiAxO1xuXHRcdG1hcmdpbi1sZWZ0OiA0MHB4O1xuXHRcdG1hcmdpbi1ib3R0b206IDVweDtcblx0XHRtYXJnaW4tdG9wOiAzcHg7XG5cblx0XHQ+IC5sb2dvLXRleHQge1xuXHRcdFx0Zm9udC1zaXplOiAyM3B4O1xuXHRcdH1cblxuXHRcdD4gYSA+IGltZyB7XG5cdFx0XHR3aWR0aDogMTk5cHg7XG5cblx0XHR9XG5cdH1cblxuXHQ+IC5idXJnZXIsID4gLmJhY2ssID4gLmluZm8sID4gLm92ZXJ2aWV3LCA+IC5sYW5ndWFnZSB7XG5cdFx0Zm9udC1zaXplOiByZW0oIDE4cHggKTtcblx0XHQ+IC5hY3RpdmUge1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0XHRjb2xvcjogIzAwMDtcblx0XHR9XG5cdFx0Ji5oaWRkZW4ge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdH1cblxuXHQ+IC5idXJnZXIge1xuXHRcdG1hcmdpbi1yaWdodDogNDBweDtcblxuXHRcdD4gLmNhcHRpb24ge1xuXHRcdFx0Zm9udC1zaXplOiAxMnB4O1xuXHRcdFx0cGFkZGluZzogMCA0cHg7XG5cdFx0fVxuXHR9XG5cblx0PiAubGFuZ3VhZ2Uge1xuXHRcdFdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdD4gYSB7XG5cdFx0XHRjb2xvcjogIzY2NjY2Njtcblx0XHR9XG5cblx0XHQ+IGE6aG92ZXIge1xuXHRcdFx0Y29sb3I6ICMwMDAwMDA7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblx0XHR9XG5cdH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTIzNXB4KSB7XG5cdC5oZWFkZXItYmFyIHtcblx0XHRoZWlnaHQ6IDExMnB4O1xuXG5cdFx0PiAuZGVza3RvcCB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR9XG5cblx0XHQ+IC50YWJsZXQge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cblx0XHQ+IC5tb2JpbGUge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cblx0XHQ+IC5sb2dvIHtcblx0XHRcdG1hcmdpbi10b3A6IC0ycHg7XG5cblx0XHRcdD4gLmxvZ28tdGV4dCB7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiAyODNweDtcblx0XHRcdFx0bWFyZ2luLXRvcDogLTM3cHg7XG5cdFx0XHRcdHRleHQtYWxpZ246IHRvcDtcblx0XHRcdH1cblx0XHR9XG5cdFx0PiAuYnVyZ2VyLCA+IC5iYWNrLCA+IC5pbmZvLCA+IC5vdmVydmlldywgPiAubGFuZ3VhZ2Uge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDQwcHg7XG5cdFx0fVxuXHR9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2N3B4KSBhbmQgKG1heC13aWR0aDogMTIzNXB4KSB7XG5cdC5oZWFkZXItYmFyIHtcblx0XHRoZWlnaHQ6IDEzM3B4O1xuXG5cdFx0PiAuZGVza3RvcCB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblxuXHRcdD4gLnRhYmxldCB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR9XG5cblx0XHQ+IC5tb2JpbGUge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdFx0PiAuYnVyZ2VyLCA+IC5iYWNrLCA+IC5pbmZvLCA+IC5vdmVydmlldywgPiAubGFuZ3VhZ2Uge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDQwcHg7XG5cdFx0fVxuXHRcdD4gLmxvZ28ge1xuXHRcdFx0bWFyZ2luLXRvcDogNnB4O1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogNXB4O1xuXG5cdFx0XHQ+IC5sb2dvLXRleHQge1xuXHRcdFx0XHRtYXJnaW4tdG9wOiAxNXB4O1xuXHRcdFx0XHRmb250LXNpemU6IDIwcHg7XG5cdFx0XHR9XG5cblx0XHRcdD4gYSA+IGltZyB7XG5cdFx0XHRcdHdpZHRoOiAxODZweDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcblx0LmhlYWRlci1iYXIge1xuXHRcdGhlaWdodDogMTA1cHg7XG5cblx0XHQ+IC5kZXNrdG9wIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXG5cdFx0PiAudGFibGV0IHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXG5cdFx0PiAubW9iaWxlIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdH1cblxuXHRcdD4gLmJ1cmdlciwgPiAuYmFjaywgPiAuaW5mbywgPiAub3ZlcnZpZXcsID4gLmxhbmd1YWdlIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiAxMHB4O1xuXHRcdH1cblx0XHQ+IC5sb2dvIHtcblx0XHRcdG1hcmdpbi10b3A6IDZweDtcblx0XHRcdG1hcmdpbi1ib3R0b206IDVweDtcblxuXHRcdFx0PiAubG9nby10ZXh0IHtcblx0XHRcdFx0bWFyZ2luLXRvcDogOHB4O1xuXHRcdFx0XHRmb250LXNpemU6IDIwcHg7XG5cdFx0XHR9XG5cblx0XHRcdD4gYSA+IGltZyB7XG5cdFx0XHRcdHdpZHRoOiAxNDVweDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn0iLCJcblxuLnotZGVwdGgoQGxldmVsOiAxKXtcbiAgICAmIHdoZW4gKEBsZXZlbCA9IDEpIHtcbiAgICAgICAgLy9ib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLDAsMCwwLjEyKSwgMCAxcHggMnB4IHJnYmEoMCwwLDAsMC4yNCk7XG5cdFx0Ym94LXNoYWRvdzogMCAzcHggM3B4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAxcHggN3B4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKSwgMCAzcHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuICAgIH1cbiAgICAmIHdoZW4gKEBsZXZlbCA9IDIpIHtcbiAgICAgICAgLy9ib3gtc2hhZG93OiAwIDNweCA2cHggcmdiYSgwLDAsMCwwLjE2KSwgMCAzcHggNnB4IHJnYmEoMCwwLDAsMC4yMyk7XG5cdFx0Ym94LXNoYWRvdzogMCA0cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAxcHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xMiksIDAgMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgICB9XG4gICAgJiB3aGVuIChAbGV2ZWwgPSAzKSB7XG4gICAgICAgIC8vYm94LXNoYWRvdzogMCAxMHB4IDIwcHggcmdiYSgwLDAsMCwwLjE5KSwgMCA2cHggNnB4IHJnYmEoMCwwLDAsMC4yMyk7XG5cdFx0Ym94LXNoYWRvdzogMCA2cHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgMXB4IDE4cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDNweCA1cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gICAgfVxuICAgICYgd2hlbiAoQGxldmVsID0gNCkge1xuXHRcdGJveC1zaGFkb3c6IDAgOHB4IDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgM3B4IDE0cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xMiksIDAgNXB4IDVweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgICB9XG4gICAgJiB3aGVuIChAbGV2ZWwgPSA1KSB7XG4gICAgICAgIC8vYm94LXNoYWRvdzogMCAxOXB4IDM4cHggcmdiYSgwLDAsMCwwLjMwKSwgMCAxNXB4IDEycHggcmdiYSgwLDAsMCwwLjIyKTtcblx0XHRib3gtc2hhZG93OiAwIDE2cHggMjRweCAycHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCA2cHggMzBweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEyKSwgMCA4cHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcblxuICAgIH1cbn1cbiIsIi5ob3RzcG90Wm9uZXMge1xuXHQvKiBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMjU1LDAsMC41KTsgKi9cblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXG5cdD4gLnpvbmUge1xuXHRcdGZsb2F0OiBsZWZ0O1xuXG5cdFx0Jjpmb2N1cyB7XG5cdFx0XHQvKiBib3gtc2hhZG93OiAwcHggMXB4IDRweCAwcHggcmdiYSgwLDAsMCwgMC4xNiksIDBweCAycHggMjRweCAwcHggcmdiYSgwLCAwLCAwLCAwLjA4KTtcblx0XHRcdGJvcmRlci1jb2xvcjogI2ZmZjsgKi9cblx0XHRcdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdFx0XHRib3JkZXItd2lkdGg6IDJweDtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDVweDtcblx0XHRcdGJvcmRlci1jb2xvcjogIzAwMDAwMDtcblx0XHR9XG5cdFx0XG5cdH1cblx0PiAubmV3TGluZSB7XG5cdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0fVxuXHRcbn0iLCIuaHRtbC1ib3gge1xuXG5cdCYgdWwsICYgb2wge1xuXHRcdG1hcmdpbi1sZWZ0OiByZW0oIDI1cHggKTtcblx0fVxuXG5cdCYgPiBwLCAmID4gdWwsICYgPiBvbCB7XG5cdFx0cGFkZGluZy1ib3R0b206IHJlbSggOHB4ICk7XG5cdH1cblxufSIsIlxuLmluZm90b29sLWJ1dHRvbiB7XG5cblx0YmFja2dyb3VuZC1jb2xvcjogQGFjdGlvbi1jb2xvcjtcblx0aGVpZ2h0OiByZW0oIDEwMHB4ICk7XG5cdHdpZHRoOiByZW0oIDEwMHB4ICk7XG5cdC8vYm94LXNoYWRvdzogMCA0cHggMTRweCAwIHJnYmEoMCwwLDAsMC4yNSk7XG5cdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRwb3NpdGlvbjogZml4ZWQ7XG5cdHRvcDogcmVtKCAyNTdweCApO1xuXHRyaWdodDogcmVtKCA2MHB4ICk7IFxuXG5cdHotaW5kZXg6IDU7XG5cdC56LWRlcHRoKCAzICk7XG5cblxuXG5cdHRyYW5zaXRpb246IGFsbCAuMnMgZWFzZTtcblx0Jjpob3ZlciB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogQGluZm8taG92ZXItY29sb3I7XG5cdFx0PiAuY2FwdGlvbiB7XG5cdFx0XHRjb2xvcjogIzAwNzg5NDtcblx0XHR9XG5cdH1cblxuXHQmOmZvY3VzIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBAaW5mby1ob3Zlci1jb2xvcjtcblx0XHQ+IC5jYXB0aW9uIHtcblx0XHRcdGNvbG9yOiAjMDA3ODk0O1xuXHRcdH1cblx0fVxuXG5cdD4gLmNhcHRpb24ge1xuXHRcdGNvbG9yOiBAdGV4dC1pbnZlcnRlZC1jb2xvcjtcblx0XHRmb250LXNpemU6IHJlbSggMjJweCApO1xuXHRcdHBhZGRpbmc6IHJlbSggMjVweCk7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdH1cblxufVxuXG4iLCIuaW5mb3Rvb2wtYnV0dG9ud3JhcHBlciB7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0dG9wOiByZW0oIDE3MHB4ICk7XG5cdHdpZHRoOiAxMDAlO1xufSIsIi5pbmZvdG9vbC1jaGFwdGVyIHtcblxuXHRib3JkZXItdG9wOiAxcHggc29saWQgQHRleHQtY29sb3I7XG5cblx0PiAubWFyayB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2YxZjFmMTtcblx0fVxuXG5cdD4gLmJhciB7XG5cdFx0cGFkZGluZzogcmVtKCAyNHB4ICkgcmVtKCAzMnB4ICk7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBAYWN0aW9uLWhvdmVyLWNvbG9yO1xuXHRcdFx0Y29sb3I6IEB0ZXh0LWludmVydGVkLWNvbG9yO1xuXHRcdH1cblxuXHRcdCY6Zm9jdXMge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogQGFjdGlvbi1ob3Zlci1jb2xvcjtcblx0XHRcdGNvbG9yOiBAdGV4dC1pbnZlcnRlZC1jb2xvcjtcblx0XHR9XG5cblx0XHQ+IC50aXRsZSB7XG5cdFx0XHRmb250LXNpemU6IHJlbSggMjBweCApO1xuXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0fVxuXG5cdFx0PiAuYXJyb3cge1xuXHRcdFx0Zm9udC1zaXplOiByZW0oIDMwcHggKTtcblx0XHRcdHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7XG5cblx0XHRcdCYuZXhwYW5kIHtcblx0XHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoIC05MGRlZyApO1xuXHRcdFx0fVxuXHRcdH1cblxuXHR9XG5cblx0PiAudGV4dHMge1xuXHRcdG1heC1oZWlnaHQ6IDBweDtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdHRyYW5zaXRpb246IG1heC1oZWlnaHQgMC4ycyBlYXNlLW91dDtcblx0XHRcblx0XHQmOmZpcnN0LWNoaWxkIHtcblx0XHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCBAdGV4dC1jb2xvcjtcblx0XHR9XG5cblxuXHR9XG59IiwiLmluZm90b29sLWNob29zZXIge1xuXHRyaWdodDogMzBweDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRmbG9hdDogcmlnaHQ7XG5cdHRvcDogMjFweDtcblx0Zm9udC1zaXplOiAyMHB4O1xufSIsIlxuLmluZm90b29sLXBhbmVsIHtcblx0cG9zaXRpb246IGZpeGVkO1xuXHR0b3A6IDA7XG5cdHJpZ2h0OiAwO1xuXHR3aWR0aDogcmVtKCA1MDBweCApO1xuXHRtYXgtd2lkdGg6IDEwMCU7XG5cdGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuXHRib3JkZXItYm90dG9tOiAxcHggc29saWQgQGJvcmRlci1jb2xvcjtcblx0Ym9yZGVyLWxlZnQ6IDFweCBzb2xpZCBAYm9yZGVyLWNvbG9yO1xuXHR6LWluZGV4OiAyMDtcblxuXHRtYXgtaGVpZ2h0OiAxMDAlO1xuXHRvdmVyZmxvdy15OiBhdXRvO1xuXG5cdC56LWRlcHRoKCA0ICk7XG5cblx0PiAuaGVhZGVyIHtcblx0XHRoZWlnaHQ6IHJlbSggODRweCApO1xuXHRcdHBhZGRpbmc6IHJlbSggMTlweCApIHJlbSggMzJweCApO1xuXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG5cblx0XHQ+IC50aXRsZSB7XG5cdFx0XHRmb250LXNpemU6IHJlbSggMzJweCApO1xuXHRcdFx0Y29sb3I6ICMwMDAwMDA7XG5cdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHR9XG5cblx0XHQ+IC5jbG9zZSB7XG5cdFx0XHRmb250LXNpemU6IHJlbSggMzVweCApO1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0Y29sb3I6IEBhY3Rpb24taG92ZXItY29sb3I7XG5cdFx0XHR9XG5cblx0XHRcdCY6Zm9jdXMge1xuXHRcdFx0XHRjb2xvcjogQGFjdGlvbi1ob3Zlci1jb2xvcjtcblx0XHRcdFx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblx0XHRcdFx0Ym9yZGVyLXdpZHRoOiAycHg7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDVweDtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiAjMDAwMDAwO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdD4gLnNlYXJjaCB7XG5cdFx0cGFkZGluZzogcmVtKCAxOXB4ICkgcmVtKCAzMnB4ICk7XG5cblx0XHQ+IGlucHV0IHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0aGVpZ2h0OiByZW0oIDYwcHggKTtcblx0XHR9XG5cdH1cblxuXHQuLW1vdmVUb1JpZ2h0IHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0YW5pbWF0aW9uOiBtb3ZlVG9SaWdodCBAdHJhbnNpdGlvbi1kdXJhdGlvbiBlYXNlIGJvdGg7XG5cdH1cblx0QGtleWZyYW1lcyBtb3ZlVG9SaWdodCB7IFxuXHRcdGZyb20geyB9XG5cdFx0dG8geyBcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcblxuXHRcdH1cblx0fVxuXG5cdC4tbW92ZUZyb21SaWdodCB7XG5cdFx0YW5pbWF0aW9uOiBtb3ZlRnJvbVJpZ2h0IEB0cmFuc2l0aW9uLWR1cmF0aW9uIGVhc2UgYm90aDtcblx0fVxuXHRAa2V5ZnJhbWVzIG1vdmVGcm9tUmlnaHQge1xuXHRcdGZyb20geyBcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcblx0XHR9XG5cdH1cblxufSIsIlxuLmluZm90b29sLXN0YW5kYWxvbmUge1xuXG5cdGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuXG5cdD4gLmhlYWRlciB7XG5cdFx0aGVpZ2h0OiByZW0oIDg0cHggKTtcblx0XHRwYWRkaW5nOiByZW0oIDE5cHggKSByZW0oIDMycHggKTtcblxuXHRcdGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuXG5cdFx0PiAudGl0bGUge1xuXHRcdFx0Zm9udC1zaXplOiByZW0oIDMycHggKTtcblx0XHRcdGNvbG9yOiAjMDAwMDAwO1xuXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0fVxuXG5cdH1cblxuXHQ+IC5zZWFyY2gge1xuXHRcdHBhZGRpbmc6IHJlbSggMTlweCApIHJlbSggMzJweCApO1xuXG5cdFx0PiBpbnB1dCB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGhlaWdodDogcmVtKCA2MHB4ICk7XG5cdFx0fVxuXHR9XG5cblxufSIsIi5pbmZvdG9vbC1zdGFuZGFsb25ld3JhcHBlciB7XG5cdHBhZGRpbmc6IDA7XG5cdGJhY2tncm91bmQtY29sb3I6IGRhcmtzbGF0ZWdyZXk7XG5cdC56LWRlcHRoKCAyICk7IFxufSIsIi5pbmZvdG9vbC10ZXh0IHtcblxuXHQ+Lm1hcmsge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmMWYxZjE7XG5cdH1cblxuXHQmOmZpcnN0LWNoaWxkIHtcblx0XHRib3JkZXItdG9wOiAxcHggc29saWQgQHRleHQtY29sb3I7XG5cdH1cblxuXHQ+LmJhciB7XG5cdFx0cGFkZGluZzogcmVtKDI0cHgpIHJlbSgzMnB4KTtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IEBhY3Rpb24taG92ZXItY29sb3I7XG5cdFx0XHRjb2xvcjogQHRleHQtaW52ZXJ0ZWQtY29sb3I7XG5cdFx0fVxuXG5cdFx0Jjpmb2N1cyB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBAYWN0aW9uLWhvdmVyLWNvbG9yO1xuXHRcdFx0Y29sb3I6IEB0ZXh0LWludmVydGVkLWNvbG9yO1xuXHRcdH1cblxuXHRcdD4udGl0bGUge1xuXHRcdFx0Zm9udC1zaXplOiByZW0oMjBweCk7XG5cdFx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRcdH1cblxuXHRcdD4uYXJyb3cge1xuXHRcdFx0Zm9udC1zaXplOiByZW0oMzBweCk7XG5cdFx0XHR0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xuXG5cdFx0XHQmLmV4cGFuZCB7XG5cdFx0XHRcdHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdH1cblxuXHQ+LnRleHQge1xuXHRcdGZvbnQtc2l6ZTogcmVtKDE2cHgpICFpbXBvcnRhbnQ7XG5cdFx0cGFkZGluZzogMCByZW0oMzJweCk7XG5cdFx0bGluZS1oZWlnaHQ6IDE1MCU7XG5cblx0XHQ+IHAge1xuXHRcdFx0XG5cdFx0XHRmb250LXNpemU6IHJlbSgxNnB4KTtcblx0XHR9XG5cblx0XHR1bCxcblx0XHRvbCB7XG5cdFx0XHRwYWRkaW5nOiByZW0oMTZweCk7XG5cblx0XHRcdD4gbGkge1xuXG5cdFx0XHRwYWRkaW5nLXRvcDogNnB4O1xuXG5cdFx0XHRcdD4gcCB7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiByZW0oMTZweCk7XG5cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXG5cdFx0bWF4LWhlaWdodDogMHB4O1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0dHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjJzIGVhc2Utb3V0O1xuXHR9XG59IiwiLmtleWNsb2FrSW1nIHtcblx0d2lkdGg6IDE5OXB4O1xufVxuXG5oMiB7XG5cdGZvbnQtc2l6ZTogMzJweDtcblx0Zm9udC13ZWlnaHQ6IDQwMDtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRsaW5lLWhlaWdodDogMS4yO1xuXHRtYXJnaW4tcmlnaHQ6IGF1dG87XG5cdG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuXG5wIHtcblx0Zm9udC1zaXplOiAxOHB4O1xufVxuXG4uc2hpYmJvbGV0aExvZ2luIHtcblx0YmFja2dyb3VuZC1jb2xvcjogI0U3RjRGNztcblx0d2lkdGg6IDgwMHB4O1xuXHRtYXJnaW4tdG9wOiAzMHB4O1xuXHRtYXJnaW4tYm90dG9tOiA2MHB4O1xuXHRwYWRkaW5nLXRvcDogMzBweDtcblx0cGFkZGluZy1sZWZ0OiAzMHB4O1xuXHRwYWRkaW5nLWJvdHRvbTogNTBweDtcblxuXHQ+IHAge1xuXHRcdG1hcmdpbi10b3A6IDIwcHg7XG5cdFx0bWFyZ2luLWJvdHRvbTogNjBweDtcblx0fVxufVxuXG4uY29udHJvbC1sYWJlbCB7XG5cdGZvbnQtc2l6ZTogMTJweDtcblx0Y29sb3I6IHJnYmEoMCwwLDAsMC42KTtcbn1cblxuLmxvZ2luLWJ1dHRvbiB7XG5cdG1hcmdpbi10b3A6IDEwcHg7XG5cdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cdGNvbG9yOiAjMDAwO1xuXHRib3JkZXItcmFkaXVzOiAycHg7XG5cdGZvbnQtc2l6ZTogMTZweDtcblx0cGFkZGluZy1sZWZ0OiAzMnB4O1xuXHRwYWRkaW5nLXJpZ2h0OiAzMnB4O1xuXHRwYWRkaW5nLXRvcDogMTVweDtcblx0cGFkZGluZy1ib3R0b206IDE1cHg7XG5cdGJvcmRlcjogbm9uZTtcblx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRib3JkZXItd2lkdGg6IDFweDtcblx0Ym9yZGVyLWNvbG9yOiAjZGJkOWQ5O1xufVxuXG4ubG9naW4tYnV0dG9uOmhvdmVyIHtcblx0YmFja2dyb3VuZC1jb2xvcjogIzAwNzg5NDtcblx0Y29sb3I6ICNmZmY7XG59XG5cbi5jYXJkLXBmIHtcblx0PiBoZWFkZXIgPiBwIHtcblx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXHR9XG5cdD4gaGVhZGVyID4gcCAgPiBsYWJlbHtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdH1cbn1cblxuLmZvcm0tY29udHJvbCB7XG5cdHdpZHRoOiAzMDBweDtcblx0aGVpZ2h0OiAzMHB4O1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG5cdGJvcmRlci1yYWRpdXM6IDRweDtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0bWFyZ2luLXRvcDogMnB4O1xuXHRtYXJnaW4tYm90dG9tOiAxNXB4O1xufVxuXG4uY2VudGVyIHtcblx0d2lkdGg6IDgwMHB4O1xuXHRtYXJnaW46IGF1dG87XG5cdG1hcmdpbi10b3A6IDMwcHg7XG59XG5cbi5rZXljbG9ha0FkbWluTG9naW4ge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4jdHJpZ2dlcjpjaGVja2VkICsgLmtleWNsb2FrQWRtaW5Mb2dpbiB7XG5cdGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG59XG5cbiN0cmlnZ2VyIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuLmtleWNsb2FrQXJyb3cge1xuXHR3aWR0aDogMjVweDtcblx0bWFyZ2luLXRvcDogLTRweDtcblx0bWFyZ2luLWxlZnQ6IC0xcHg7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLmtjLWRyb3Bkb3duIHtcblx0ZmxvYXQ6IHJpZ2h0O1xuXHRtYXJnaW4tdG9wOiAtMzBweDtcblx0Y29sb3I6IHJnYmEoMCwwLDAsMC42KTtcblx0PiBwID4gYSB7XG5cdFx0Y29sb3I6IHJnYmEoMCwwLDAsMC42KTtcblxuXHRcdCYuYWN0aXZlIHtcblx0XHRcdGNvbG9yOiAjMDAwO1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0fVxuXHR9XG5cdD4gcCA+IGE6aG92ZXIge1xuXHRcdGNvbG9yOiAjMDAwO1xuXHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHR9XG59XG5cbi5rZXljbG9ha2Zvb3RlciB7XG5cdGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuXHRjb2xvcjogd2hpdGU7XG5cdHBhZGRpbmc6IDIwcHggMzVweDtcblx0Ym90dG9tOiAwcHg7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0d2lkdGg6IDEwMCU7XG59XG5cbi5rZXljbG9ha2Zvb3RlciA+IGEge1xuXHRjb2xvcjogd2hpdGU7XG59IiwiXG5cblxuLnNsaWRlLWNvbnRhaW5lciB7XG5cblx0PiAuc2xpZGUge1xuXHRcdHBhZGRpbmc6IHJlbSggMTZweCApIDAgcmVtKCAzMnB4ICkgMDtcblx0fVxuXG5cdD4gLmNoYXB0ZXIge1xuXHRcdHBhZGRpbmc6IHJlbSggMTZweCApIDA7XG5cblxuXHRcdD4gLnRpdGxlIHtcblx0XHRcdGZvbnQtc2l6ZTogcmVtKCAzMnB4ICk7XG5cdFx0XHRwYWRkaW5nLWJvdHRvbTogMDtcblx0XHRcdHBhZGRpbmctdG9wOiByZW0oIDkwcHggKTtcblx0XHRcdGNvbG9yOiAjMDAwMDAwO1xuXHRcdH1cblxuXHR9XG5cblx0LnRleHQsIC5hbnN3ZXJ0ZXh0LCAuZHJhZ3RleHQge1xuXHRcdGZvbnQtc2l6ZTogcmVtKCAxOHB4ICk7XG5cdH1cblxuXHQudGV4dCB7XG5cdFx0cGFkZGluZy1ib3R0b206IHJlbSggMjBweCApO1xuXHR9XG5cblx0LnRpdGxlIHtcblx0XHRjb2xvcjogQHRleHQtY29sb3I7XG5cdFx0Zm9udC1zaXplOiByZW0oIDI0cHggKTtcblx0XHRmb250LXdlaWdodDogYm9sZDtcblx0fVxufVxuXG4uZmVlZGJhY2stcGFuZWwge1xuXHRtYXJnaW46IHJlbSggLTIwcHggKSAwIDAgMDsgXG5cdHBhZGRpbmc6IHJlbSggNTBweCApO1xuXG5cdCYuLXdyb25nIHtcblx0XHRib3JkZXI6IG5vbmU7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSgxNjMsNjYsNjYsMC4xMCk7XG5cdH1cblxuXHQmLi1jb3JyZWN0IHtcblx0XHRib3JkZXI6IG5vbmU7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSg2MCw4OSwxNSwwLjEwKTtcblx0fVxufVxuXG5cbi5hbnN3ZXItdmlldyBpbnB1dCB7XG5cdG1hcmdpbi1sZWZ0OiAtMjNweDtcblx0bWFyZ2luLXRvcDogMHB4O1xufVxuXG4uZHJvcC1ub2RlIHtcblx0YmFja2dyb3VuZC1jb2xvcjogI0Y2RjZGNjtcblx0Ym9yZGVyLXJhZGl1czogMHB4O1xuXHRib3JkZXI6IG5vbmU7XG5cblx0cCB7XG5cdFx0cGFkZGluZzogcmVtKCA1cHggKTtcblx0fVxufVxuXG4uZHJhZy1ub2RlIHtcblx0Ym9yZGVyLXJhZGl1czogMHB4O1xufVxuXG4uZHJhZy1jb250YWluZXIge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjMDA2OWI0O1xufVxuXG4uYnV0dG9uIHtcblx0Zm9udC1zaXplOiAxLjEyNXJlbTtcbn0iLCIubWVudS1jb250ZW50IHtcblxuXHQ+IC50aXRsZSB7XG5cdFx0Zm9udC1zaXplOiByZW0oIDMycHggKTtcblx0XHRwYWRkaW5nOiAgcmVtKCA2MnB4ICkgMCByZW0oIDMwcHggKSAwO1xuXHRcdGNvbG9yOiAjMDAwMDAwO1xuXHR9XG5cbn0iLCIubWVudS1lbnRyeSB7XG5cblx0LmNhc2VzdHVkeSB7XG5cdFx0cGFkZGluZzogcmVtKCAyNXB4ICkgMCByZW0oIDExcHggKSAwO1xuXHRcdGZvbnQtc2l6ZTogcmVtKCAxOHB4ICk7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRjb2xvcjogQGFjdGlvbi1ob3Zlci1jb2xvcjtcblx0XHR9XG5cdH1cblxufSIsIi5tZW51LWhlYWRlciB7XG5cdD4gLmNsb3NlIHtcblx0XHRmb250LXNpemU6IHJlbSggMzBweCApO1xuXHRcdHBhZGRpbmc6IHJlbSggMTZweCApIHJlbSggNTVweCApO1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRmbG9hdDogcmlnaHQ7XHRcblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0Y29sb3I6IEBhY3Rpb24taG92ZXItY29sb3I7XG5cdFx0fVxuXHRcdCY6Zm9jdXMge1xuXHRcdFx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblx0XHRcdGJvcmRlci13aWR0aDogMnB4O1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogNXB4O1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiAjMDAwMDAwO1xuXHRcdFx0Y29sb3I6IEBhY3Rpb24taG92ZXItY29sb3I7XG5cdFx0fVx0XG5cdH1cbn0iLCJcbi5tZW51LXBhbmVsIHtcblx0cG9zaXRpb246IGZpeGVkO1xuXHR0b3A6IDA7XG5cdHJpZ2h0OiAwO1xuXHR3aWR0aDogcmVtKCA1MjAgKTtcblx0bWF4LXdpZHRoOiAxMDAlO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcblx0ei1pbmRleDogMjA7XG5cdC56LWRlcHRoKCAyICk7XG5cdHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlO1xuXHRvcGFjaXR5OiAwO1xuXHQmLnNob3cge1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cblxuXHQ+IC5oZWFkZXIge1xuXHRcdGhlaWdodDogcmVtKCA3MHB4ICk7XG5cdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIEBib3JkZXItY29sb3I7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG5cdH1cblxuXHQ+IC5jb250ZW50IHtcblx0XHRwYWRkaW5nOiAwIHJlbSggNTVweCApIHJlbSggNTVweCApIHJlbSggNTVweCApO1xuXHR9XG5cblx0PiAuZm9vdGVyIHtcblx0XHRwYWRkaW5nOiAwIHJlbSggNTVweCApIHJlbSggNTVweCApIHJlbSggNTVweCApO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRjb2xvcjogQGFjdGlvbi1ob3Zlci1jb2xvcjtcdFx0XHRcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHR9XG5cdH1cblxuXG59IiwiLm1lbnUtc3ViZW50cnkge1xuXG5cdHBhZGRpbmc6IHJlbSggNXB4ICkgMDtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdCY6aG92ZXIge1xuXHRcdGNvbG9yOiBAYWN0aW9uLWhvdmVyLWNvbG9yO1xuXHR9XG5cdCY6Zm9jdXMge1xuXHRcdGNvbG9yOiBAYWN0aW9uLWhvdmVyLWNvbG9yO1xuXHRcdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdFx0Ym9yZGVyLXdpZHRoOiAycHg7XG5cdFx0Ym9yZGVyLXJhZGl1czogNXB4O1xuXHRcdGJvcmRlci1jb2xvcjogIzAwMDAwMDtcblx0fVxufSIsIlxuLm1vZHVsZS1vdmVydmlldyB7XG5cblx0cGFkZGluZy1ib3R0b206IHJlbSggOTBweCApO1xuXG5cdD4gLmltYWdlIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiByZW0oIDc1MHB4ICk7XG5cdFx0dG9wOiAwO1xuXHRcdGxlZnQ6IDA7XG5cdFx0ei1pbmRleDogLTE7XHRcdFxuXHRcdGJhY2tncm91bmQtc2l6ZTogY292ZXIhaW1wb3J0YW50O1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblxuXHRcdCY6YmVmb3JlIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTsgXG5cdFx0XHR6LWluZGV4OiAyO1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7IFxuXHRcdFx0Y29udGVudDogXCJcIjtcblx0XHRcdHRvcDogMDsgcmlnaHQ6IDA7IGJvdHRvbTogMDsgbGVmdDogMDsgIFxuXHRcdFx0YmFja2dyb3VuZDogaHNsYSgwLDAlLDAlLDAuNCk7XHRcdFx0XG5cdFx0fVxuXHR9XG5cblx0PiAuc3VibG9nbyB7XG5cdFx0cGFkZGluZy10b3A6IDExMHB4O1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHQ+IGEgPiBpbWcge1xuXHRcdFx0aGVpZ2h0OiByZW0oIDI1cHggKTtcblx0XHR9XG5cdH1cblxuXHQ+IC50aXRsZSB7XG5cdFx0cGFkZGluZy10b3A6IHJlbSggMzAwcHggKTtcblx0XHRwYWRkaW5nLWJvdHRvbTogcmVtKCA1cHggKTtcblx0XHRmb250LXNpemU6IHJlbSggNDNweCApO1xuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdGNvbG9yOiBAdGV4dC1pbnZlcnRlZC1jb2xvcjtcblx0XHR6LWluZGV4OiA1O1xuXHR9XG5cblx0PiAuc3VidGl0bGUge1xuXHRcdHBhZGRpbmc6IHJlbSggNXB4ICkgMDtcblx0XHRmb250LXNpemU6IHJlbSggNDNweCApO1xuXHRcdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdFx0Y29sb3I6IEB0ZXh0LWludmVydGVkLWNvbG9yO1xuXHRcdHotaW5kZXg6IDU7XHRcdFxuXHR9XG5cblx0PiAudmlkZW8ge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdHBhZGRpbmctdG9wOiByZW0oIDEwMHB4ICk7XG5cdH1cblxuXHQ+IC50cmFuc2NyaXB0IHtcblx0XHRwYWRkaW5nLXRvcDogcmVtKCAzNXB4ICk7XG5cdH1cblx0PiAudHJhbnNjcmlwdDpmb2N1cyB7XG5cdFx0PiAuaGVhZGVyIHtcblx0XHRcdD4gLmljb24ge1xuXHRcdFx0XHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRcdFx0XHRib3JkZXItd2lkdGg6IDFweDtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiBibGFjaztcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQ+IC5zZWN0aW9udGl0bGUge1xuXHRcdGZvbnQtc2l6ZTogcmVtKCA0MHB4ICk7XG5cdFx0cGFkZGluZy10b3A6IHJlbSggMTIwcHggKTtcblx0XHRwYWRkaW5nLWJvdHRvbTogcmVtKCA2MHB4ICk7XG5cdFx0Y29sb3I6ICMwMDAwMDA7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0bGluZS1oZWlnaHQ6IDEuMjtcblx0XHRmb250LXdlaWdodDogNDAwO1xuXHR9XG5cbn0iLCIucGFuZWwtZm9sZGFibGUge1xuXHRcblxuXHQ+IC5oZWFkZXIge1xuXG5cdFx0Zm9udC1zaXplOiByZW0oIDE4cHggKTtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0Y29sb3I6IEB0ZXh0LWNvbG9yLWxpZ2h0O1xuXHRcdCY6aG92ZXIge1xuXHRcdFx0Y29sb3I6IEBhY3Rpb24taG92ZXItY29sb3I7XG5cdFx0fVxuXG5cblx0XHQ+IC50aXRsZSB7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiByZW0oIDMwcHggKTtcblx0XHR9XG5cblx0XHQ+IC5pY29uIHtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdG1hcmdpbi1sZWZ0OiByZW0oIDVweCApO1xuXG5cdFx0XHR0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gZWFzZSAuMnM7XG5cblx0XHRcdCYuZXhwYW5kIHtcblx0XHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQ+IC5oZWFkZXIuLXNsaWRlIHtcblx0XHRmb250LXNpemU6IHJlbSggMTZweCApO1xuXHRcblx0XHQ+IC50aXRsZSB7XG5cdFx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRcdFx0Zm9udC1zaXplOiByZW0oIDE2cHggKTtcblx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0XHRwYWRkaW5nOiByZW0oIDE2cHggKSAwIDAgMDtcblx0XHRcdGNvbG9yOiBAdGV4dC1jb2xvci1saWdodDtcblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRjb2xvcjogQGFjdGlvbi1ob3Zlci1jb2xvcjtcblx0XHRcdH1cblxuXHRcdH1cblx0fVxuXG5cdD4gLmJvZHkge1xuXHRcdGZvbnQtc2l6ZTogcmVtKCAxOHB4ICk7XG5cdFx0bGluZS1oZWlnaHQ6IDE0MCU7XG5cdFx0Y29sb3I6IEB0ZXh0LWNvbG9yLWxpZ2h0O1xuXG5cdFx0bWF4LWhlaWdodDogMHB4O1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0dHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjJzIGVhc2Utb3V0O1x0XHRcblx0fVxuXG5cdD4gLmJvZHkuLXNsaWRlIHtcblx0XHRmb250LXNpemU6IHJlbSggMTZweCApO1xuXHRcdG1hcmdpbjogcmVtKCAxNnB4ICkgMDtcblx0fVxuXG5cbn1cblxuLnBhbmVsLWZvbGRhYmxlOmZvY3VzIHtcblx0PiAuaGVhZGVyIHtcblx0XHQ+IC5pY29uIHtcblx0XHRcdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdFx0XHRib3JkZXItd2lkdGg6IDFweDtcblx0XHRcdGJvcmRlci1jb2xvcjogYmxhY2s7XG5cdFx0fVxuXHR9XG59IiwiXG4ucHJvZ3Jlc3MtYmFyIHtcblx0d2lkdGg6IHJlbSggNTZweCApO1xuXHRoZWlnaHQ6IHJlbSggOXB4ICk7XG5cdGJvcmRlci1yYWRpdXM6IHJlbSggOHB4ICk7XG5cdGJvcmRlcjogMXB4IHNvbGlkIEB0ZXh0LWNvbG9yO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDM0LCAzNCwgMzQsIDAuMik7XG5cdG1hcmdpbjogcmVtKCA0cHggKSAwO1xuXG5cdCYuLW92ZXJ2aWV3IHtcblx0XHRib3JkZXI6IDFweCBzb2xpZCBAdGV4dC1pbnZlcnRlZC1jb2xvcjtcblx0fVxuXG5cdD4gLnByb2dyZXNzIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBAYWN0aW9uLWNvbG9yO1xuXHRcdGJvcmRlci1yYWRpdXM6IHJlbSggOHB4ICk7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdHdpZHRoOiAwJTtcblx0XHR0cmFuc2l0aW9uOiBhbGwgLjJzIGVhc2U7XG5cdH1cblxufSIsIi50ZXh0Y29udGVudC1jb250YWluZXIge1xuXG5cdHBhZGRpbmctdG9wOiByZW0oIDE1MHB4ICk7XG5cdHBhZGRpbmctYm90dG9tOiByZW0oIDUwcHggKTtcblxuXHQ+IC50aXRsZSB7XG5cdFx0Zm9udC1zaXplOiByZW0oIDI4cHggKTtcblx0XHRwYWRkaW5nLWJvdHRvbTogcmVtKCAzNXB4ICk7XG5cdFx0Y29sb3I6ICMxRjQwN0E7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdH1cblxuXHQ+IGgyIHtcblx0XHRjb2xvcjogIzFGNDA3QTtcblx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRwYWRkaW5nOiByZW0oIDI3cHggKSAwO1xuXHRcdGZvbnQtc2l6ZTogcmVtKCAyMXB4ICk7XG5cdFx0XG5cdH1cblxuXHR1bCB7XG5cdFx0cGFkZGluZzogcmVtKCAyMHB4ICk7XG5cdH1cblxuXHRsaSB7XG5cdFx0Zm9udC1zaXplOiByZW0oIDE4cHggKTtcblx0XHRsaW5lLWhlaWdodDogMTQwJTtcblx0fVxuXG59IiwiQGltcG9ydCBcImxpYi9sZXNzL2NvcmUubGVzc1wiO1xuQGltcG9ydCBcImxpYi9sZXNzL2NvbXBvbmVudHMvbGVybmZyYWdlbi8qKi8qLmxlc3NcIjtcbkBpbXBvcnQgXCJzaGFyZWQvdmFyaWFibGVzLyoubGVzc1wiO1xuXG5AaW1wb3J0IFwiKi5sZXNzXCI7XG5cbjpyb290IHtcblx0Zm9udC1zaXplOiAxNHB4O1xuXHRsZXR0ZXItc3BhY2luZzogMC4wOHJlbTtcbn1cblxuLnNjb3JtLWxpbmsge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogODBweDtcblx0cmlnaHQ6IDE1cHg7XG59Il19 */
