/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
/* Document
   ========================================================================== */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
}

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

/**
 * Render the `main` element consistently in IE.
 */
main {
  display: block;
}

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

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

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

/* Text-level semantics
   ========================================================================== */
/**
 * Remove the gray background on active links in IE 10.
 */
a {
  background-color: transparent;
}

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

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

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

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

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

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

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

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

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

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

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
button,
[type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button;
}

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

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

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

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

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  vertical-align: baseline;
}

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

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

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

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

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

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

/* Interactive
   ========================================================================== */
/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
  display: block;
}

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

/* Misc
   ========================================================================== */
/**
 * Add the correct display in IE 10+.
 */
template {
  display: none;
}

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

/*********************
COLORS
*********************/
/*
some nice typographical defaults
more here: http://www.newnet-soft.com/blog/csstypography
*/
p {
  /*-ms-word-wrap: break-word;
  word-break: break-word; //non-standart css for webkit
  word-wrap: break-word;
  // cleaning up the ragged lines and breaks
  -webkit-hyphens: auto;
     -moz-hyphens: auto;
          hyphens: auto;
  // sets a minimum number of characters before and after the break
  -webkit-hyphenate-before: 2;
   -webkit-hyphenate-after: 3;
           hyphenate-lines: 3;
  // enabling fancy ligatures when available
  -webkit-font-feature-settings: "liga", "dlig";
   -moz-font-feature-settings: "liga=1, dlig=1";
      -ms-font-feature-settings: "liga", "dlig";
       -o-font-feature-settings: "liga", "dlig";
          font-feature-settings: "liga", "dlig";*/
}

/*********************
COLOR FUNCTIONS
These are helpful when you're working
with shadows and such things. It's essentially
a quicker way to write RGBA.

Example:
box-shadow: 0 0 4px black(0.3);
compiles to:
box-shadow: 0 0 4px rgba(0,0,0,0.3);
*********************/
/*********************
RESPONSIVE HELPER FUNCTION
If you're creating a responsive site, then
you've probably already read
Responsive Web Design: http://www.abookapart.com/products/responsive-web-design

Here's a nice little helper function for calculating
target / context
as mentioned in that book.

Example:
width: cp(650px, 1000px);
or
width: calc-percent(650px, 1000px);
both compile to:
width: 65%;
*********************/
/* Default*/
.flex {
  display: -webkit-box;
  display: -moz-flex;
  display: -ms-flexbox;
  display: flex;
}

[class*=flex] {
  width: 100%;
}

[class*=flex].flex--wrap {
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}

[class*=flex].flex--content-vertical-center {
  -webkit-box-align: center;
  -ms-flex-align: center;
  -moz-align-items: center;
  align-items: center;
}

[class*=flex].flex--content-center {
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  -moz-justify-content: center;
  justify-content: center;
}

[class*=flex].flex--content-space-between {
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  -moz-justify-content: space-between;
  justify-content: space-between;
}

.medium {
  font-weight: 500;
}

.semi {
  font-weight: 600;
}

.burg-bg {
  background-color: #9d162e;
  color: #fff;
}
.burg-bg a:not(.btn) {
  color: #fff;
}

.gray-bg {
  background-color: #fbfbfa;
}

.circle {
  border-radius: 50%;
}

a.circle {
  overflow: hidden;
  display: block;
  margin-left: auto;
  margin-right: auto;
}
a.circle img {
  display: block;
}
a.circle.small {
  width: 150px;
  height: 150px;
}

.padded-tb40 {
  padding-top: 20px;
  padding-bottom: 20px;
}

*[class*=padded-t] > .wrapper > *:first-child {
  margin-top: 0;
  padding-top: 0;
}

*[class*=padded-b] > .wrapper > *:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
}

.max-540 {
  max-width: 540px;
}

hr.divider {
  margin: 0;
  height: 8px;
  background-color: #9d162e;
  border: none;
}

@media only screen and (min-width: 481px) {
  .flex-481 {
    display: -webkit-box;
    display: -moz-flex;
    display: -ms-flexbox;
    display: flex;
  }
}
@media only screen and (min-width: 768px) {
  .flex-768 {
    display: -webkit-box;
    display: -moz-flex;
    display: -ms-flexbox;
    display: flex;
  }
}
@media only screen and (min-width: 1024px) {
  .flex-1024 {
    display: -webkit-box;
    display: -moz-flex;
    display: -ms-flexbox;
    display: flex;
  }
  .padded-tb40 {
    padding-top: 40px;
    padding-bottom: 40px;
  }
}
/*********************
BUTTON DEFAULTS
We're gonna use a placeholder selector here
so we can use common styles. We then use this
to load up the defaults in all our buttons.

Here's a quick video to show how it works:
http://www.youtube.com/watch?v=hwdVpKiJzac

*********************/
.btn.burg, .btn {
  display: inline-block;
  position: relative;
  font-family: inherit;
  text-decoration: none;
  font-size: inherit;
  line-height: 40px;
  font-weight: normal;
  padding: 0 24px;
  border-radius: 10px;
  border: 0;
  cursor: pointer;
  -webkit-transition: color 0.3s ease-in-out;
  -o-transition: color 0.3s ease-in-out;
  transition: color 0.3s ease-in-out;
  min-width: 147px;
  text-align: center;
}
.btn:hover, .btn:focus {
  text-decoration: none;
  outline: none;
}
.btn:active {
  top: 1px;
}

/*
An example button.
You can use this example if you want. Just replace all the variables
and it will create a button dependant on those variables.
*/
.btn {
  background-color: #fff;
  color: #000;
  border: 2px solid transparent;
  -webkit-transition: 0.2s;
  -o-transition: 0.2s;
  transition: 0.2s;
}
.btn:hover, .btn:focus {
  color: #fff;
  background: #9D162E;
  border: 2px solid #fff;
}
.btn.burg {
  background-color: #9d162e;
  color: #fff;
  line-height: 30px;
}
/*********************
INPUTS
*********************/
input[type=text],
input[type=password],
input[type=datetime],
input[type=datetime-local],
input[type=date],
input[type=month],
input[type=time],
input[type=week],
input[type=number],
input[type=email],
input[type=url],
input[type=search],
input[type=tel],
input[type=color],
select,
textarea {
  display: block;
  height: 40px;
  line-height: 1em;
  padding: 0 10px;
  margin-bottom: 1em;
  font-size: inherit;
  color: #000;
  border-radius: 8px;
  vertical-align: middle;
  -webkit-box-shadow: none;
  box-shadow: none;
  border: 1px solid #9D162E;
  width: 100%;
  font-family: inherit;
  background-color: #fbfbfa;
  -webkit-transition: background-color 0.3s ease-in-out;
  -o-transition: background-color 0.3s ease-in-out;
  transition: background-color 0.3s ease-in-out;
}
input[type=text]:focus, input[type=text]:active,
input[type=password]:focus,
input[type=password]:active,
input[type=datetime]:focus,
input[type=datetime]:active,
input[type=datetime-local]:focus,
input[type=datetime-local]:active,
input[type=date]:focus,
input[type=date]:active,
input[type=month]:focus,
input[type=month]:active,
input[type=time]:focus,
input[type=time]:active,
input[type=week]:focus,
input[type=week]:active,
input[type=number]:focus,
input[type=number]:active,
input[type=email]:focus,
input[type=email]:active,
input[type=url]:focus,
input[type=url]:active,
input[type=search]:focus,
input[type=search]:active,
input[type=tel]:focus,
input[type=tel]:active,
input[type=color]:focus,
input[type=color]:active,
select:focus,
select:active,
textarea:focus,
textarea:active {
  background-color: white;
  outline: none;
}
input[type=text].placeholder,
input[type=password].placeholder,
input[type=datetime].placeholder,
input[type=datetime-local].placeholder,
input[type=date].placeholder,
input[type=month].placeholder,
input[type=time].placeholder,
input[type=week].placeholder,
input[type=number].placeholder,
input[type=email].placeholder,
input[type=url].placeholder,
input[type=search].placeholder,
input[type=tel].placeholder,
input[type=color].placeholder,
select.placeholder,
textarea.placeholder {
  color: #000;
}
input[type=text]:-moz-placeholder,
input[type=password]:-moz-placeholder,
input[type=datetime]:-moz-placeholder,
input[type=datetime-local]:-moz-placeholder,
input[type=date]:-moz-placeholder,
input[type=month]:-moz-placeholder,
input[type=time]:-moz-placeholder,
input[type=week]:-moz-placeholder,
input[type=number]:-moz-placeholder,
input[type=email]:-moz-placeholder,
input[type=url]:-moz-placeholder,
input[type=search]:-moz-placeholder,
input[type=tel]:-moz-placeholder,
input[type=color]:-moz-placeholder,
select:-moz-placeholder,
textarea:-moz-placeholder {
  color: #000;
}
input[type=text]::-moz-placeholder,
input[type=password]::-moz-placeholder,
input[type=datetime]::-moz-placeholder,
input[type=datetime-local]::-moz-placeholder,
input[type=date]::-moz-placeholder,
input[type=month]::-moz-placeholder,
input[type=time]::-moz-placeholder,
input[type=week]::-moz-placeholder,
input[type=number]::-moz-placeholder,
input[type=email]::-moz-placeholder,
input[type=url]::-moz-placeholder,
input[type=search]::-moz-placeholder,
input[type=tel]::-moz-placeholder,
input[type=color]::-moz-placeholder,
select::-moz-placeholder,
textarea::-moz-placeholder {
  color: #000;
}
input[type=text]:-ms-input-placeholder,
input[type=password]:-ms-input-placeholder,
input[type=datetime]:-ms-input-placeholder,
input[type=datetime-local]:-ms-input-placeholder,
input[type=date]:-ms-input-placeholder,
input[type=month]:-ms-input-placeholder,
input[type=time]:-ms-input-placeholder,
input[type=week]:-ms-input-placeholder,
input[type=number]:-ms-input-placeholder,
input[type=email]:-ms-input-placeholder,
input[type=url]:-ms-input-placeholder,
input[type=search]:-ms-input-placeholder,
input[type=tel]:-ms-input-placeholder,
input[type=color]:-ms-input-placeholder,
select:-ms-input-placeholder,
textarea:-ms-input-placeholder {
  color: #000;
}
input[type=text]::-webkit-input-placeholder,
input[type=password]::-webkit-input-placeholder,
input[type=datetime]::-webkit-input-placeholder,
input[type=datetime-local]::-webkit-input-placeholder,
input[type=date]::-webkit-input-placeholder,
input[type=month]::-webkit-input-placeholder,
input[type=time]::-webkit-input-placeholder,
input[type=week]::-webkit-input-placeholder,
input[type=number]::-webkit-input-placeholder,
input[type=email]::-webkit-input-placeholder,
input[type=url]::-webkit-input-placeholder,
input[type=search]::-webkit-input-placeholder,
input[type=tel]::-webkit-input-placeholder,
input[type=color]::-webkit-input-placeholder,
select::-webkit-input-placeholder,
textarea::-webkit-input-placeholder {
  color: #000;
}
input[type=text],
input[type=password],
input[type=datetime],
input[type=datetime-local],
input[type=date],
input[type=month],
input[type=time],
input[type=week],
input[type=number],
input[type=email],
input[type=url],
input[type=search],
input[type=tel],
input[type=color],
select,
textarea {
  /*
    &.error,
    &.is-invalid {
      color: $alert-red;
      border-color: $alert-red;
      background-color: $white;
      background-position: 99% center;
      background-repeat: no-repeat;
      background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2NDM0NDREQkYwNEIxMUUyOTI4REZGQTEzMzA2MDcyNiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2NDM0NDREQ0YwNEIxMUUyOTI4REZGQTEzMzA2MDcyNiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjQ3ODRGRkE2RjA0QTExRTI5MjhERkZBMTMzMDYwNzI2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjY0MzQ0NERBRjA0QjExRTI5MjhERkZBMTMzMDYwNzI2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+U8iT5wAAAedJREFUeNqk1U9I02Ecx/HtV3aIFAc1hcRDUoGXRAq0oNLA2CrsEFmHbikZu0iQYIFGYAiegkCpLipBxPpDEBMUzB0EhSG2LhG7hMR2GviPgUTvB57Bw8P3+U23B16HPX8+e/b8nt93wezZSMCnhXETF3AcB5BDCnH8Dq98ExcGHcFn8Ah3cdDni+fxnPDv9oAnTB7CKu6VCFXtChZy56LxUjt+jfuB8toSOth9wd7xWAWhqrUjYR/FRTwWJm+iIPT/w7bQf5ljiZnBg45dtKFX6H+LU8gIY8OEV6vgTkStwXWE8BPTGDHGPqNPz2mCfSOOYkA99TvCt1bhGPL68zMcwmncMuape10jrI+q4BbHi/FLn31S9z2x5tRhTc+1W506ipM+T3oRD4X+8+qtc4SqFvL0z/Fr14S+Szjis8bz9Lvvaq8cwS/wwGfdlqfPSWqTiFlX77o13u9Ym1PBs8JAytpRoy44X9Ft9E/gvbA+rYKn8NcaaMVc8UHgBw4b9/iqUQZ6hOAJFbyDcUflmsEX4a6+wTtHGfhAIUqa1U29Zc2BytouThD8x6xuN5CtMPi2CrXLZkZf/HyZoRFCP7n+QVR4PV7uI/AjGghN7OU/r1ilnqILtfpNC+o6vIFljBKYlhb/F2AAgaBsWR5wRiIAAAAASUVORK5CYII=);
      outline-color: $alert-red;
    } // end invalid input

    // success notification
    &.success,
    &.is-valid {
      color: $alert-green;
      border-color: $alert-green;
      background-color: $white;
      background-position: 99% center;
      background-repeat: no-repeat;
      background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2NDM0NDRERkYwNEIxMUUyOTI4REZGQTEzMzA2MDcyNiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2NDM0NDRFMEYwNEIxMUUyOTI4REZGQTEzMzA2MDcyNiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjY0MzQ0NERERjA0QjExRTI5MjhERkZBMTMzMDYwNzI2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjY0MzQ0NERFRjA0QjExRTI5MjhERkZBMTMzMDYwNzI2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+7olkTQAAAfhJREFUeNqklU9oE0EUhzdroWjw0tBeWlDxkEaIp55TsCU9VKIgCrHBelA8CQ1Kr1WPbZrQ3gqtQqvGqxpQc2jBk6BIIaAGD4qNCKURpDSKiPi98gLDsJt//uBjsztvfnk7895sIPAw6/joGMThFJyAXn2+A+9gA57/TaY/eU0OeBgfhGm4DiGnsb7DAszxBz/NAdcKjMJLuNWCqagHbsscN5+L+hmH4QkMOe1L5jzFfNA2PgT34ajTuY7AGuZB0/hmh5m+gS0r8xv1zRvg+gGCHZiOwnF4DP3iB3sQkYxPd2C6CWfhB9Xwlus5+K1j4jXuaq3a+gM1H9OPcAa+7q9lPidZJqHbiIm7Wg22rsEI7FrPSzAMX/T+ADyAKSsu7Fr1KplehLvwCs5DvfBf65p+MypqRbO1FXK9utH4/QKuaqYTsG3E3INJv00Q46px3+XxanJ/Ute2/vqP4FKDza2KcdljIKdnhS0xXYULTaqmLMZFn8FFSFtvt6x70ExFCS5oUXspq2ssa7oEl1swFa+CGFdgtkHgPDyDKy02zyxNU6lXRUZb1EuHYayNNs+Yh5B0WQo+/8fpJnNTZFuzz2OpjoQ2QruSOQlMy35fEGmEGMxY9e1brxobw7TkWA1h6xfckUPb+JhGoE/Hpfvew7qUld/H9J8AAwDpw3WYrxcZ3QAAAABJRU5ErkJggg==);
      outline-color: $alert-green;
    } // end valid input
  */
}
input[type=text][disabled], input[type=text].is-disabled,
input[type=password][disabled],
input[type=password].is-disabled,
input[type=datetime][disabled],
input[type=datetime].is-disabled,
input[type=datetime-local][disabled],
input[type=datetime-local].is-disabled,
input[type=date][disabled],
input[type=date].is-disabled,
input[type=month][disabled],
input[type=month].is-disabled,
input[type=time][disabled],
input[type=time].is-disabled,
input[type=week][disabled],
input[type=week].is-disabled,
input[type=number][disabled],
input[type=number].is-disabled,
input[type=email][disabled],
input[type=email].is-disabled,
input[type=url][disabled],
input[type=url].is-disabled,
input[type=search][disabled],
input[type=search].is-disabled,
input[type=tel][disabled],
input[type=tel].is-disabled,
input[type=color][disabled],
input[type=color].is-disabled,
select[disabled],
select.is-disabled,
textarea[disabled],
textarea.is-disabled {
  cursor: not-allowed;
  border-color: #000;
  opacity: 0.6;
}
input[type=text][disabled]:focus, input[type=text][disabled]:active, input[type=text].is-disabled:focus, input[type=text].is-disabled:active,
input[type=password][disabled]:focus,
input[type=password][disabled]:active,
input[type=password].is-disabled:focus,
input[type=password].is-disabled:active,
input[type=datetime][disabled]:focus,
input[type=datetime][disabled]:active,
input[type=datetime].is-disabled:focus,
input[type=datetime].is-disabled:active,
input[type=datetime-local][disabled]:focus,
input[type=datetime-local][disabled]:active,
input[type=datetime-local].is-disabled:focus,
input[type=datetime-local].is-disabled:active,
input[type=date][disabled]:focus,
input[type=date][disabled]:active,
input[type=date].is-disabled:focus,
input[type=date].is-disabled:active,
input[type=month][disabled]:focus,
input[type=month][disabled]:active,
input[type=month].is-disabled:focus,
input[type=month].is-disabled:active,
input[type=time][disabled]:focus,
input[type=time][disabled]:active,
input[type=time].is-disabled:focus,
input[type=time].is-disabled:active,
input[type=week][disabled]:focus,
input[type=week][disabled]:active,
input[type=week].is-disabled:focus,
input[type=week].is-disabled:active,
input[type=number][disabled]:focus,
input[type=number][disabled]:active,
input[type=number].is-disabled:focus,
input[type=number].is-disabled:active,
input[type=email][disabled]:focus,
input[type=email][disabled]:active,
input[type=email].is-disabled:focus,
input[type=email].is-disabled:active,
input[type=url][disabled]:focus,
input[type=url][disabled]:active,
input[type=url].is-disabled:focus,
input[type=url].is-disabled:active,
input[type=search][disabled]:focus,
input[type=search][disabled]:active,
input[type=search].is-disabled:focus,
input[type=search].is-disabled:active,
input[type=tel][disabled]:focus,
input[type=tel][disabled]:active,
input[type=tel].is-disabled:focus,
input[type=tel].is-disabled:active,
input[type=color][disabled]:focus,
input[type=color][disabled]:active,
input[type=color].is-disabled:focus,
input[type=color].is-disabled:active,
select[disabled]:focus,
select[disabled]:active,
select.is-disabled:focus,
select.is-disabled:active,
textarea[disabled]:focus,
textarea[disabled]:active,
textarea.is-disabled:focus,
textarea.is-disabled:active {
  background-color: #d5edf8;
}

input[type=submit] {
  border: none;
  background: #9D162E;
  border-radius: 8px;
  color: white;
  height: 35px;
  text-align: center;
  width: 150px;
  margin: 10px 0;
  margin-top: 20px;
  cursor: pointer;
  -webkit-transition: 0.6s;
  -o-transition: 0.6s;
  transition: 0.6s;
}

input[type=submit]:hover {
  background: rgb(67.5363128492, 9.4636871508, 19.7877094972);
}

input[type=file] {
  width: 300px;
  border: 1px solid #9D162E;
  background: #FFF;
  border-radius: 8px;
  outline: none;
  text-decoration: none;
  padding: 10px 15px;
  font-weight: normal;
  cursor: pointer;
  margin: -10px 0 -10px 0;
}

.upload-field-margin-top {
  margin-top: 25px;
  margin-bottom: 25px;
}
.upload-field-margin-top .middleColumn {
  margin-top: 12px;
}

.half-phone-field {
  width: 200px;
  display: inline-block;
}
@media (max-width: 1850px) {
  .half-phone-field {
    width: 100% !important;
  }
}

.half-email-field {
  width: 215px !important;
  display: inline-block;
  margin-left: 18.5px;
}
.half-email-field > label {
  width: 215px !important;
  margin-left: 18.5px;
}
@media (min-width: 0px) and (max-width: 1850px) {
  .half-email-field {
    margin-left: 0;
  }
  .half-email-field > label {
    margin-left: 0;
  }
}
@media (max-width: 1850px) {
  .half-email-field {
    width: 100% !important;
  }
}

textarea {
  margin-bottom: 20px;
}

input.small {
  max-width: 120px;
}

input[type=password] {
  letter-spacing: 0.3em;
}

textarea {
  max-width: 100%;
  min-height: 120px;
  line-height: 1.5em;
  padding: 10px;
}

select {
  -webkit-appearance: none; /* 1 */
  -moz-appearance: none;
  appearance: none;
  -o-text-overflow: "";
  text-overflow: "";
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAHCAYAAADXhRcnAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpEOEZCMjYxMEYwNUUxMUUyOTI4REZGQTEzMzA2MDcyNiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpEOEZCMjYxMUYwNUUxMUUyOTI4REZGQTEzMzA2MDcyNiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkQ4RkIyNjBFRjA1RTExRTI5MjhERkZBMTMzMDYwNzI2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkQ4RkIyNjBGRjA1RTExRTI5MjhERkZBMTMzMDYwNzI2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Vxkp9gAAAI9JREFUeNpidHFxucHAwKAOxE+AmJmBMPgLxDJAfJMFSKwD4kqoAClgA+P///8ZXF1dPaCGcBKh6QcQB+3evXs7WDMIAA2QB1I7gFgDj0aQFz2BGh+AOEwwUaDAQyBlCMR7cGjcC5KHaQQBuM3IAOiKTiBVhiTUDdRUhq4Oq2aoAelAahIQ5wM1zsCmBiDAADhYMJXVZ9u9AAAAAElFTkSuQmCC);
  background-repeat: no-repeat;
  background-position: 97.5% center;
}

select::-ms-expand {
  display: none;
}

.userform-fields label {
  display: none;
}

.verplicht-veld {
  color: #9D162E;
}

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

hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #ccc;
  margin: 1em 0;
  padding: 0;
}

audio, canvas, iframe, img, svg, video {
  vertical-align: middle;
}

fieldset {
  border: 0;
  margin: 0;
  padding: 0;
}

textarea {
  resize: vertical;
}

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

svg {
  max-width: 100%;
}

button {
  padding: 0;
  margin: 0;
  border: none;
  background-color: transparent;
}

body {
  font-family: "Barlow", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 100%;
  line-height: 1.33;
  color: #000;
  background-color: #fff;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/*********************
LAYOUT & GRID STYLES
*********************/
.wrapper {
  padding-left: 20px;
  padding-right: 20px;
}

/*********************
LINK STYLES
*********************/
a {
  color: #9d162e;
  text-decoration: none;
  /* on hover */
}
a:hover, a:focus {
  color: rgb(116.7413407821, 16.3586592179, 34.2044692737);
}
a {
  /* on click */
}
a {
  /* mobile tap color */
}
a:link {
  /*
  this highlights links on iPhones/iPads.
  so it basically works like the :hover selector
  for mobile devices.
  */
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0.3);
}

/******************************************************************
H1, H2, H3, H4, H5 STYLES
******************************************************************/
h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5 {
  text-rendering: optimizelegibility;
  /*
  if you're going to use webfonts, be sure to check your weights
  http://css-tricks.com/watch-your-font-weight/
  */
  /* removing text decoration from all headline links */
}
h1 a, .h1 a, h2 a, .h2 a, h3 a, .h3 a, h4 a, .h4 a, h5 a, .h5 a {
  color: #000;
}
h1 a:hover, .h1 a:hover, h2 a:hover, .h2 a:hover, h3 a:hover, .h3 a:hover, h4 a:hover, .h4 a:hover, h5 a:hover, .h5 a:hover {
  color: #9d162e;
}

.message {
  color: red;
  font-weight: 600;
}

h1, .h1 {
  font-size: 1.3125em;
}

h2, .h2 {
  font-size: 1.125em;
  font-weight: 600;
}

h3, .h3, h4, .h4 {
  font-size: 1em;
  font-weight: 600;
}

h5, .h5 {
  font-size: 0.846em;
  font-weight: 600;
}

/*********************
HEADER STYLES
*********************/
.sticky-navbar {
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  z-index: 114;
  background: white;
  -webkit-box-shadow: 0 2px 2px -2px black;
  box-shadow: 0 2px 2px -2px black;
}

.top-bar {
  height: 35px;
  padding-top: 7px;
  color: #fff;
  background-color: #9d162e;
}
.top-bar a {
  color: #fff;
}
.top-bar svg {
  fill: #fff;
  margin-right: 3px;
}

.header {
  padding-top: 15px;
  padding-bottom: 15px;
  position: relative;
}
.header .toggle {
  height: 24px;
  width: 43px;
  border-top: 4px solid #9d162e;
  border-bottom: 4px solid #9d162e;
  position: absolute;
  right: 20px;
  top: 25px;
  outline: none;
}
.header .toggle span {
  height: 0;
  display: block;
  border-top: 4px solid #9d162e;
}

.main-nav, .main-nav ul {
  padding: 0;
  margin: 0;
  list-style: none;
}

.main-nav li a {
  color: #000;
  display: block;
  padding: 5px 0;
}
.main-nav li a:hover {
  color: #9d162e;
}
.main-nav li a.active {
  color: #9d162e;
  text-decoration: underline;
}

/*********************
CONTENT STYLES
*********************/
.UDF-flex {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
@media (max-width: 440px) {
  .UDF-flex {
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
}

article ul {
  padding: 0;
  list-style: none;
}
article ul li {
  position: relative;
}

article ul:not([class]) li {
  padding-left: 20px;
}
article ul:not([class]) li::before {
  content: "-";
  position: absolute;
  left: 10px;
}

.in-content-icons li + li {
  margin-top: 15px;
}
.in-content-icons .icon {
  display: inline-block;
  width: 50px;
  line-height: 45px;
  height: 50px;
  border-radius: 50%;
  background-color: #9d162e;
  margin-right: 15px;
  vertical-align: middle;
  text-align: center;
}
.in-content-icons .icon svg {
  fill: #fff;
}

.services-wrapper {
  text-align: center;
  padding-top: 20px;
}

.service > a:first-child {
  border-radius: 50%;
  overflow: hidden;
  display: block;
  margin-left: auto;
  margin-right: auto;
  border: 3px solid #fff;
  -webkit-transition: border-color 0.3s ease-in-out;
  -o-transition: border-color 0.3s ease-in-out;
  transition: border-color 0.3s ease-in-out;
}
.service > a:first-child:hover {
  border-color: #9d162e;
}
.service > a:first-child img {
  display: block;
}

.activeborder {
  border-radius: 50%;
  overflow: hidden;
  display: block;
  margin-left: auto;
  margin-right: auto;
  border: 5px solid #9d162e;
  -webkit-transition: border-color 0.3s ease-in-out;
  -o-transition: border-color 0.3s ease-in-out;
  transition: border-color 0.3s ease-in-out;
}
.activeborder img {
  display: block;
}

.hero.image {
  background-position: 100% 100%;
  background-size: cover;
  background-repeat: no-repeat;
  position: relative;
  height: 35vh;
  min-height: 240px;
}

.quote {
  padding: 20px 0;
}

.projects-list a.circle {
  width: 150px;
  height: 150px;
}
.projects-list li + li {
  margin-top: 20px;
}

.page-service .service > a:first-child {
  position: relative;
}
.page-service .service > a:first-child::before {
  content: "";
  display: block;
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  -webkit-transition: background-color 0.3s ease-in-out;
  -o-transition: background-color 0.3s ease-in-out;
  transition: background-color 0.3s ease-in-out;
}
.page-service .service > a:first-child:hover::before {
  background-color: rgba(157, 22, 46, 0.6);
}

.address {
  max-width: 470px;
}
.address .contact-bottom li + li {
  margin-top: 20px;
}

.contact-form form {
  max-width: 360px;
}
.contact-form .rec-wrapper {
  margin-bottom: 1em;
  display: inline-block;
}

.current {
  color: #9d162e !important;
  font-weight: bold;
}

.logo-page {
  width: 60vw;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}
.logo-page img {
  padding: 20px;
}

/*********************
SIDEBARS & ASIDES
*********************/
/*********************
FOOTER STYLES
*********************/
.footer {
  padding-top: 20px;
  padding-bottom: 20px;
}
.footer .widget > :first-child {
  margin-top: 0;
}
.footer .widget > :last-child {
  margin-bottom: 0;
}
.footer h4 {
  margin-bottom: 10px;
}
.footer h4 + p, .footer h4 + ul {
  margin-top: 0;
}
.footer ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.footer a {
  color: #000;
}
.footer a:hover {
  color: #9d162e;
}

.contact-bottom li {
  position: relative;
  padding-left: 35px;
}
.contact-bottom li + li {
  margin-top: 10px;
}
.contact-bottom svg {
  position: absolute;
  left: 0;
  top: 6px;
}
.contact-bottom .fill {
  fill: #9d162e;
}
.contact-bottom .footer-flex {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: start;
  -ms-flex-pack: start;
  justify-content: flex-start;
}
.contact-bottom .footer-flex .image-flex {
  width: 30px;
}
.contact-bottom .footer-flex .content-flex p {
  margin: 0;
}

.bottom-bar {
  padding: 10px 0;
}

.clearfix:before,
.clearfix:after {
  content: " ";
  display: table;
}

.clearfix:after {
  clear: both;
}

.clearfix {
  *zoom: 1;
}

@media only screen and (max-width: 480px) {
  .contacts-top {
    display: -webkit-box;
    display: -moz-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    -moz-justify-content: space-between;
    justify-content: space-between;
  }
  .top-bar .lang {
    display: none;
  }
}
@media only screen and (min-width: 481px) {
  .top-bar .mail {
    margin-left: 20px;
  }
  .top-bar .lang {
    position: relative;
    cursor: pointer;
    z-index: 99;
  }
  .top-bar .lang svg {
    margin-left: 5px;
  }
  .top-bar .lang a {
    display: block;
    position: absolute;
    left: 0;
    top: 100%;
    max-height: 0;
    background-color: rgba(157, 22, 46, 0.9);
    overflow: hidden;
    -webkit-transition: all 0.2s ease-in-out;
    -o-transition: all 0.2s ease-in-out;
    transition: all 0.2s ease-in-out;
    padding: 0 10px;
    width: 100%;
  }
  .top-bar .lang:hover a {
    max-height: 32px;
    padding: 5px 10px;
  }
}
@media only screen and (max-width: 767px) {
  .hero.image .content {
    display: none;
  }
  a.circle {
    width: 175px;
    height: 175px;
  }
  .page-service .hero .content {
    display: block;
    color: #fff;
    padding: 11px 32px 12px;
    position: absolute;
    width: 100%;
    left: 0;
    text-align: center;
    background-color: rgba(157, 22, 46, 0.9);
    bottom: 0;
  }
  .page-service .hero h1 {
    margin: 0;
  }
  .page-service .hero s h4, .page-service .hero p {
    display: none;
  }
  .footer .widget + .widget {
    margin-top: 20px;
  }
  .service + .service {
    margin-top: 35px;
  }
  #map {
    height: 330px;
  }
  .quote {
    text-align: center;
  }
  .quote .h2 {
    margin-bottom: 10px;
  }
  .contact-form form {
    text-align: right;
  }
}
@media only screen and (min-width: 768px) {
  .hero.image {
    position: relative;
    height: 360px;
  }
  .hero.image::before {
    content: "";
    position: absolute;
    width: 50%;
    height: 100%;
    left: 0;
    top: 0;
    background-color: rgba(157, 22, 46, 0.9);
  }
  .hero.image .content {
    color: #fff;
    padding: 11px 32px 12px;
    position: absolute;
    width: 100%;
    left: 0;
    text-align: center;
    width: 50%;
    top: 50%;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
    text-align: left;
  }
  .hero.image .content h1, .hero.image .content p {
    margin: 0;
  }
  .hero.image .content h4 {
    margin: 10px 0;
    font-weight: 500;
  }
  .footer .widget:not(:nth-child(2)) {
    width: 33.33%;
  }
  .footer .widget:nth-child(2) {
    width: 28.6%;
  }
  .footer .widget:not(:last-child) {
    padding-right: 20px;
  }
  .hp-intro {
    width: 64%;
  }
  .hp-intro + div {
    width: 30%;
  }
  .service {
    width: calc(50% - 10px);
    margin-bottom: 30px;
  }
  .service p {
    margin-bottom: 0;
  }
  .map-wrapper .img-wrapper {
    width: 39%;
  }
  .map-wrapper #map {
    -ms-flex: 1 0 auto;
    -webkit-box-flex: 1;
    flex: 1 0 auto;
  }
  .quote .wrapper > :first-child {
    width: 61.6%;
    padding-right: 30px;
  }
  .service-intro .info h2 {
    margin-top: 0;
  }
  .flex-768 .col {
    width: calc(50% - 20px);
  }
  .flex-768 .col > :first-child {
    margin-top: 0;
  }
  .margin-right-class {
    margin-right: 200px;
  }
  .projects-list .h3 {
    margin-top: 0;
  }
  .project .content {
    width: calc(100% - 150px);
    padding-left: 20px;
  }
  .project .content h2 {
    margin-top: 0;
  }
  .mobile-only {
    display: none;
  }
}
@media only screen and (max-width: 1023px) {
  #logo {
    display: inline-block;
    width: 178px;
  }
  .header nav {
    position: absolute;
    width: 100%;
    max-height: 0;
    overflow: hidden;
    left: 0;
    top: 100%;
    -webkit-transition: all 0.3s ease-in-out;
    -o-transition: all 0.3s ease-in-out;
    transition: all 0.3s ease-in-out;
    background-color: #fff;
    padding: 0 20px;
    z-index: 99;
  }
  .header nav.active {
    padding: 10px 20px 0;
    max-height: 600px;
    border-bottom: 5px solid #9d162e;
  }
  .main-nav {
    padding-bottom: 20px;
  }
  .main-nav li li {
    padding-left: 15px;
  }
  .service > a:first-child {
    width: 175px;
    height: 175px;
  }
  .project:not(:last-child) {
    margin-bottom: 30px;
  }
}
@media only screen and (min-width: 1024px) {
  h1, .h1 {
    font-size: 34px;
  }
  h2, .h2 {
    font-size: 30px;
  }
  h3, .h3 {
    font-size: 21px;
  }
  h4, .h4 {
    font-size: 18px;
  }
  h5, .h5 {
    font-size: 16px;
  }
  article, .footer {
    font-size: 15px;
  }
  .top-bar {
    height: 30px;
    font-size: 14px;
    padding-top: 5px;
  }
  #logo {
    width: 216px;
  }
  .header .toggle {
    display: none;
  }
  .main-nav > li {
    display: inline-block;
    position: relative;
  }
  .main-nav > li + li {
    margin-left: 25px;
  }
  .main-nav ul {
    position: absolute;
    min-width: 320px;
    left: -20px;
    top: 100%;
    padding: 0 20px;
    background-color: #fff;
    width: 100%;
    max-height: 0;
    overflow: hidden;
    -webkit-transition: all 0.3s ease-in-out;
    -o-transition: all 0.3s ease-in-out;
    transition: all 0.3s ease-in-out;
    z-index: 99;
  }
  .main-nav li:hover ul {
    max-height: 700px;
    padding: 20px;
  }
  .hero.image {
    height: 485px;
  }
  .hp-intro > h2, .hp-intro + div > h3 {
    margin-top: 0;
  }
  .hp-intro {
    width: 570px;
  }
  .hp-intro + div {
    padding-top: 56px;
    width: 360px;
  }
  article ul:not([class]) li {
    padding-left: 45px;
  }
  article ul:not([class]) li::before {
    left: 35px;
  }
  .in-content-icons li + li {
    margin-top: 45px;
  }
  .in-content-icons .icon {
    width: 90px;
    height: 90px;
    line-height: 85px;
    margin-right: 30px;
  }
  .in-content-icons .icon svg {
    width: 40px;
    height: auto;
  }
  .services-wrapper {
    padding-top: 30px;
  }
  .service {
    width: calc((100% - 60px) / 3);
    margin-bottom: 45px;
    margin-right: 19px;
  }
  .service:nth-last-child(-n+3) {
    margin-bottom: 0;
  }
  .service > a:first-child {
    width: 300px;
    height: 300px;
  }
  .footer {
    padding-top: 45px;
    padding-bottom: 45px;
  }
  .quote {
    padding: 30px 0;
  }
  .flex-768 .col {
    width: calc(50% - 20px);
  }
  .projects-list li + li {
    margin-top: 40px;
  }
  .projects-list .content {
    padding-left: 20px;
    width: calc(100% - 150px);
  }
  .ServicePage .service > a:first-child {
    width: 150px;
    height: 150px;
  }
  .ServicePage .service h2 {
    font-size: 16px;
  }
  .contact-form .flex-1024 input {
    width: calc(50% - 12px);
  }
  .project {
    width: calc(50% - 20px);
  }
  .project:not(:nth-child(-n+2)) {
    margin-top: 40px;
  }
}
@media only screen and (min-width: 1170px) {
  .wrapper {
    padding-left: 0;
    padding-right: 0;
    max-width: 1140px;
    margin-left: auto;
    margin-right: auto;
  }
  .hero.image .content {
    width: 1140px;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    padding: 0 590px 0 0;
  }
  .footer .widget:nth-child(1) {
    width: 390px;
    padding-right: 30px;
  }
  .footer .widget:nth-child(2) {
    width: auto;
  }
  .footer .widget:nth-child(3) {
    margin-left: auto;
    width: 38.5%;
  }
  .ServicePage .service {
    width: 16.65%;
    padding-left: 5px;
    padding-right: 5px;
  }
}
@media only screen and (min-width: 1240px) {
  .footer .widget:nth-child(3) {
    width: 38%;
  }
  .quote .wrapper > :first-child {
    width: 62%;
  }
}
@media only screen and (min-width: 1366px) {
  .footer .widget:nth-child(3) {
    width: 36.5%;
  }
  .quote .wrapper > :first-child {
    width: 63.5%;
  }
}
@media only screen and (min-width: 1600px) {
  .footer .widget:nth-child(3) {
    width: 34%;
  }
  .quote .wrapper > :first-child {
    width: 66%;
  }
}
@media only screen and (min-width: 1920px) {
  .footer .widget:nth-child(3) {
    width: 31.2%;
  }
  .quote .wrapper > :first-child {
    width: 68.8%;
  }
}
@media print {
  /******************************************************************
  Site Name:
  Author:

  Stylesheet: Print Stylesheet

  This is the print stylesheet. There's probably not a lot
  of reasons to edit this stylesheet. If you want to
  though, go for it.

  ******************************************************************/
  * {
    background: transparent !important;
    color: black !important;
    text-shadow: none !important;
    -webkit-filter: none !important;
    filter: none !important;
    -ms-filter: none !important;
  }
  a, a:visited {
    color: #444 !important;
    text-decoration: underline;
  }
  a:after, a:visited:after {
    content: " (" attr(href) ")";
  }
  a abbr[title]:after, a:visited abbr[title]:after {
    content: " (" attr(title) ")";
  }
  .ir a:after,
  a[href^="javascript:"]:after,
  a[href^="#"]:after {
    content: "";
  }
  pre, blockquote {
    border: 1px solid #999;
    page-break-inside: avoid;
  }
  thead {
    display: table-header-group;
  }
  tr, img {
    page-break-inside: avoid;
  }
  img {
    max-width: 100% !important;
  }
  @page {
    margin: 0.5cm;
  }
  p, h2, h3 {
    orphans: 3;
    widows: 3;
  }
  h2,
  h3 {
    page-break-after: avoid;
  }
  .sidebar,
  .page-navigation,
  .wp-prev-next,
  .respond-form,
  nav {
    display: none;
  }
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhcnRpYWxzL19ub3JtYWxpemUuc2NzcyIsInBhcnRpYWxzL192YXJpYWJsZXMuc2NzcyIsInBhcnRpYWxzL190eXBvZ3JhcGh5LnNjc3MiLCJwYXJ0aWFscy9fZnVuY3Rpb25zLnNjc3MiLCJwYXJ0aWFscy9fbWl4aW5zLnNjc3MiLCJwYXJ0aWFscy9fZ2xvYmFsLWNsYXNzZXMuc2NzcyIsInBhcnRpYWxzL19mbGV4LnNjc3MiLCJtb2R1bGVzL19idXR0b25zLnNjc3MiLCJtb2R1bGVzL19mb3Jtcy5zY3NzIiwiYnJlYWtwb2ludHMvX2Jhc2Uuc2NzcyIsImNvbWJpbmVkLXRoZW1lLWtsYW50LnNjc3MiLCJicmVha3BvaW50cy9fNDgwLnNjc3MiLCJicmVha3BvaW50cy9fNDgxLnNjc3MiLCJicmVha3BvaW50cy9fNzY3LnNjc3MiLCJicmVha3BvaW50cy9fNzY4LnNjc3MiLCJicmVha3BvaW50cy9fMTAyMy5zY3NzIiwiYnJlYWtwb2ludHMvXzEwMjQuc2NzcyIsImJyZWFrcG9pbnRzL18xMTcwdXAuc2NzcyIsImJyZWFrcG9pbnRzL290aGVyLnNjc3MiLCJwYXJ0aWFscy9fcHJpbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUVBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0U7RUFDQTs7O0FBR0Y7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDRTtFQUNBOzs7QUFHRjtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUFHRjtBQUFBO0FBQUE7QUFBQTtBQUtBO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFJQTtBQUFBO0VBRUU7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0VBR0U7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0VBRUU7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7OztBQUdGO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFJQTtFQUNFOzs7QUFHRjtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBS0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQSxRQUNRO0VBQ047OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQSxTQUNTO0VBQ1A7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0VBSUU7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0FBQUE7QUFBQTtBQUFBO0VBSUU7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7QUFBQTtBQUFBO0FBQUE7RUFJRTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtFQUVFO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0FBQUE7RUFFRTs7O0FBR0Y7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUFBO0FBS0E7RUFDRTtFQUNBOzs7QUFHRjtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUFBO0FBSUE7RUFDRTs7O0FBR0Y7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUlBO0VBQ0U7OztBQ3pWRjtBQUFBO0FBQUE7QUNRQTtBQUFBO0FBQUE7QUFBQTtBQUlBO0FBQ0U7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7O0FDYkY7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBdUJBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FDdUJzQjtBQy9DdEI7RUM2REM7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FEN0REO0VBQ0U7OztBQUdGO0VDNEhDLG1CRDNIb0I7RUM0SHBCLGdCRDVIb0I7RUNnSW5CLGVEaEltQjtFQ2tJcEIsV0RsSW9COzs7QUFHckI7RUNxVUUsbUJEcFVxQjtFQ3FVckIsZ0JEclVxQjtFQ3VVdEIscUJEdlVzQjtFQ3dVdEIsa0JEeFVzQjtFQ3lVdEIsYUR6VXNCOzs7QUFHdkI7RUM4UkUsa0JEN1J5QjtFQzhSekIsZUQ5UnlCO0VDZ1MxQix5QkRoUzBCO0VDaVMxQixzQkRqUzBCO0VDa1MxQixpQkRsUzBCOzs7QUFHM0I7RUNxUkU7RUFDQTtFQU9ELHlCRDVSMEI7RUM2UjFCLHNCRDdSMEI7RUM4UjFCLGlCRDlSMEI7OztBQUczQjtFQUNFOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFLGtCSnZCa0I7RUl3QmxCOztBQUVBO0VBQ0U7OztBQUlKO0VBQ0Usa0JKN0JrQjs7O0FJZ0NwQjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0U7O0FBR0Y7RUFDRTtFQUNBOzs7QUFLSjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQSxrQko5RWtCO0VJK0VsQjs7O0FBR0Y7RUFDRTtJQ2hDRDtJQUNBO0lBQ0E7SUFDQTtJQUNBOzs7QURpQ0Q7RUFDRTtJQ3RDRDtJQUNBO0lBQ0E7SUFDQTtJQUNBOzs7QUR1Q0Q7RUFDRTtJQzVDRDtJQUNBO0lBQ0E7SUFDQTtJQUNBOztFRDJDQztJQUNFO0lBQ0E7OztBRTdHSjtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7O0FBQUE7QUFXQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBSUE7RUFFRTtFQUNBOztBQUlGO0VBQ0U7OztBQUtKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQTtFQUVFO0VBQ0EsT041Q2tCO0VNOENsQjtFQUNBOztBQUVBO0VBRUU7RUFDQTtFQUNBOztBQVNKO0VBRUUsa0JOL0RrQjtFTWdFbEI7RUFDQTs7QUM1RUY7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFnQkU7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsT1BqQmtCO0VPa0JsQjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxrQlBwQmtCO0VPcUJsQjs7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUVFO0VBQ0E7O0FKekJBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VJK0JBLE9QckNnQjs7QUdPaEI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUk4QkEsT1ByQ2dCOztBR1FoQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtFSTZCQSxPUHJDZ0I7O0FHU2hCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0VJNEJBLE9QckNnQjs7QUdVaEI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUkyQkEsT1ByQ2dCOztBT0xwQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQThDRTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUEwQkE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFFRTtFQUNBLGNQdEVnQjtFT3VFaEI7O0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtB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LjAuMSB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cclxuXHJcbi8qIERvY3VtZW50XHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogMS4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxyXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cclxuICovXHJcblxyXG5odG1sIHtcclxuICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xyXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xyXG59XHJcblxyXG4vKiBTZWN0aW9uc1xyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2Vycy5cclxuICovXHJcblxyXG5ib2R5IHtcclxuICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZW5kZXIgdGhlIGBtYWluYCBlbGVtZW50IGNvbnNpc3RlbnRseSBpbiBJRS5cclxuICovXHJcblxyXG5tYWluIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxuLyoqXHJcbiAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcclxuICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cclxuICovXHJcblxyXG5oMSB7XHJcbiAgZm9udC1zaXplOiAyZW07XHJcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcclxufVxyXG5cclxuLyogR3JvdXBpbmcgY29udGVudFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXHJcbiAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxyXG4gKi9cclxuXHJcbmhyIHtcclxuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMSAqL1xyXG4gIGhlaWdodDogMDsgLyogMSAqL1xyXG4gIG92ZXJmbG93OiB2aXNpYmxlOyAvKiAyICovXHJcbn1cclxuXHJcbi8qKlxyXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxyXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXHJcbiAqL1xyXG5cclxucHJlIHtcclxuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cclxuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xyXG59XHJcblxyXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cclxuICovXHJcblxyXG5hIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxufVxyXG5cclxuLyoqXHJcbiAqIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBDaHJvbWUgNTctXHJcbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXHJcbiAqL1xyXG5cclxuYWJiclt0aXRsZV0ge1xyXG4gIGJvcmRlci1ib3R0b206IG5vbmU7IC8qIDEgKi9cclxuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgLyogMiAqL1xyXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLyogMiAqL1xyXG59XHJcblxyXG4vKipcclxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cclxuICovXHJcblxyXG5iLFxyXG5zdHJvbmcge1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxyXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXHJcbiAqL1xyXG5cclxuY29kZSxcclxua2JkLFxyXG5zYW1wIHtcclxuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cclxuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xyXG59XHJcblxyXG4vKipcclxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXHJcbiAqL1xyXG5cclxuc21hbGwge1xyXG4gIGZvbnQtc2l6ZTogODAlO1xyXG59XHJcblxyXG4vKipcclxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXHJcbiAqIGFsbCBicm93c2Vycy5cclxuICovXHJcblxyXG5zdWIsXHJcbnN1cCB7XHJcbiAgZm9udC1zaXplOiA3NSU7XHJcbiAgbGluZS1oZWlnaHQ6IDA7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcclxufVxyXG5cclxuc3ViIHtcclxuICBib3R0b206IC0wLjI1ZW07XHJcbn1cclxuXHJcbnN1cCB7XHJcbiAgdG9wOiAtMC41ZW07XHJcbn1cclxuXHJcbi8qIEVtYmVkZGVkIGNvbnRlbnRcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLlxyXG4gKi9cclxuXHJcbmltZyB7XHJcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xyXG59XHJcblxyXG4vKiBGb3Jtc1xyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIDEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzLlxyXG4gKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXHJcbiAqL1xyXG5cclxuYnV0dG9uLFxyXG5pbnB1dCxcclxub3B0Z3JvdXAsXHJcbnNlbGVjdCxcclxudGV4dGFyZWEge1xyXG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0OyAvKiAxICovXHJcbiAgZm9udC1zaXplOiAxMDAlOyAvKiAxICovXHJcbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cclxuICBtYXJnaW46IDA7IC8qIDIgKi9cclxufVxyXG5cclxuLyoqXHJcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxyXG4gKiAxLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxyXG4gKi9cclxuXHJcbmJ1dHRvbixcclxuaW5wdXQgeyAvKiAxICovXHJcbiAgb3ZlcmZsb3c6IHZpc2libGU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cclxuICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxyXG4gKi9cclxuXHJcbmJ1dHRvbixcclxuc2VsZWN0IHsgLyogMSAqL1xyXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xyXG59XHJcblxyXG4vKipcclxuICogQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cclxuICovXHJcblxyXG5idXR0b24sXHJcblt0eXBlPVwiYnV0dG9uXCJdLFxyXG5bdHlwZT1cInJlc2V0XCJdLFxyXG5bdHlwZT1cInN1Ym1pdFwiXSB7XHJcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxyXG4gKi9cclxuXHJcbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcclxuW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXHJcblt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXHJcblt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcclxuICBib3JkZXItc3R5bGU6IG5vbmU7XHJcbiAgcGFkZGluZzogMDtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cclxuICovXHJcblxyXG5idXR0b246LW1vei1mb2N1c3JpbmcsXHJcblt0eXBlPVwiYnV0dG9uXCJdOi1tb3otZm9jdXNyaW5nLFxyXG5bdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxyXG5bdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XHJcbiAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xyXG59XHJcblxyXG4vKipcclxuICogQ29ycmVjdCB0aGUgcGFkZGluZyBpbiBGaXJlZm94LlxyXG4gKi9cclxuXHJcbmZpZWxkc2V0IHtcclxuICBwYWRkaW5nOiAwLjM1ZW0gMC43NWVtIDAuNjI1ZW07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxyXG4gKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXHJcbiAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcclxuICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXHJcbiAqL1xyXG5cclxubGVnZW5kIHtcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXHJcbiAgY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cclxuICBkaXNwbGF5OiB0YWJsZTsgLyogMSAqL1xyXG4gIG1heC13aWR0aDogMTAwJTsgLyogMSAqL1xyXG4gIHBhZGRpbmc6IDA7IC8qIDMgKi9cclxuICB3aGl0ZS1zcGFjZTogbm9ybWFsOyAvKiAxICovXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxyXG4gKi9cclxuXHJcbnByb2dyZXNzIHtcclxuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDEwKy5cclxuICovXHJcblxyXG50ZXh0YXJlYSB7XHJcbiAgb3ZlcmZsb3c6IGF1dG87XHJcbn1cclxuXHJcbi8qKlxyXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC5cclxuICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLlxyXG4gKi9cclxuXHJcblt0eXBlPVwiY2hlY2tib3hcIl0sXHJcblt0eXBlPVwicmFkaW9cIl0ge1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cclxuICBwYWRkaW5nOiAwOyAvKiAyICovXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXHJcbiAqL1xyXG5cclxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXHJcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcclxuICBoZWlnaHQ6IGF1dG87XHJcbn1cclxuXHJcbi8qKlxyXG4gKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cclxuICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXHJcbiAqL1xyXG5cclxuW3R5cGU9XCJzZWFyY2hcIl0ge1xyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXHJcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IC8qIDIgKi9cclxufVxyXG5cclxuLyoqXHJcbiAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cclxuICovXHJcblxyXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XHJcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG59XHJcblxyXG4vKipcclxuICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cclxuICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxyXG4gKi9cclxuXHJcbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAxICovXHJcbiAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xyXG59XHJcblxyXG4vKiBJbnRlcmFjdGl2ZVxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLypcclxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUgMTArLCBhbmQgRmlyZWZveC5cclxuICovXHJcblxyXG5kZXRhaWxzIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxuLypcclxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxyXG4gKi9cclxuXHJcbnN1bW1hcnkge1xyXG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcclxufVxyXG5cclxuLyogTWlzY1xyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwKy5cclxuICovXHJcblxyXG50ZW1wbGF0ZSB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLlxyXG4gKi9cclxuXHJcbltoaWRkZW5dIHtcclxuICBkaXNwbGF5OiBub25lO1xyXG59XHJcbiIsIlxyXG5cclxuLyoqKioqKioqKioqKioqKioqKioqKlxyXG5DT0xPUlNcclxuKioqKioqKioqKioqKioqKioqKioqL1xyXG5cclxuXHJcblxyXG4kYmxhY2s6ICAgICAgICAgICAgICMwMDA7XHJcbiR3aGl0ZTogICAgICAgICAgICAgI2ZmZjtcclxuJHRleHQtY29sb3I6ICAgICAgICAjMDAwO1xyXG4kYnVyZzogICAgICAgICAgICAgICM5ZDE2MmU7XHJcbiRsaW5rLWNvbG9yOiAgICAgICAgJGJ1cmc7XHJcbiRsaW5rLWhvdmVyOiAgICAgICAgZGFya2VuKCRsaW5rLWNvbG9yLCA5JSk7XHJcbiRsLWdyYXk6ICAgICAgICAgICAgI2ZiZmJmYTtcclxuXHJcblxyXG5cclxuXHJcblxyXG4kYWxlcnQteWVsbG93OiAgICAgICNlYmUxNmY7XHJcbiRhbGVydC1yZWQ6ICAgICAgICAgI2ZiZTNlNDtcclxuJGFsZXJ0LWdyZWVuOiAgICAgICAjZTZlZmMyO1xyXG4kYWxlcnQtYmx1ZTogICAgICAgICNkNWVkZjg7IiwiXHJcblxyXG4vLyBmb250IHN0YWNrc1xyXG4kc2Fucy1zZXJpZjogICAgICAgICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XHJcbi8vJHNlcmlmOiAgICAgICAgICAgICBcIkdlb3JnaWFcIiwgQ2FtYnJpYSwgVGltZXMgTmV3IFJvbWFuLCBUaW1lcywgc2VyaWY7XHJcblxyXG5cclxuJG1haW4tZm9udDogICAgICAgICAgICAgICdCYXJsb3cnLCAkc2Fucy1zZXJpZjtcclxuXHJcblxyXG4vKlxyXG5zb21lIG5pY2UgdHlwb2dyYXBoaWNhbCBkZWZhdWx0c1xyXG5tb3JlIGhlcmU6IGh0dHA6Ly93d3cubmV3bmV0LXNvZnQuY29tL2Jsb2cvY3NzdHlwb2dyYXBoeVxyXG4qL1xyXG5wIHtcclxuICAvKi1tcy13b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XHJcbiAgd29yZC1icmVhazogYnJlYWstd29yZDsgLy9ub24tc3RhbmRhcnQgY3NzIGZvciB3ZWJraXRcclxuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XHJcbiAgLy8gY2xlYW5pbmcgdXAgdGhlIHJhZ2dlZCBsaW5lcyBhbmQgYnJlYWtzXHJcbiAgLXdlYmtpdC1oeXBoZW5zOiBhdXRvO1xyXG4gICAgIC1tb3otaHlwaGVuczogYXV0bztcclxuICAgICAgICAgIGh5cGhlbnM6IGF1dG87XHJcbiAgLy8gc2V0cyBhIG1pbmltdW0gbnVtYmVyIG9mIGNoYXJhY3RlcnMgYmVmb3JlIGFuZCBhZnRlciB0aGUgYnJlYWtcclxuICAtd2Via2l0LWh5cGhlbmF0ZS1iZWZvcmU6IDI7XHJcbiAgIC13ZWJraXQtaHlwaGVuYXRlLWFmdGVyOiAzO1xyXG4gICAgICAgICAgIGh5cGhlbmF0ZS1saW5lczogMztcclxuICAvLyBlbmFibGluZyBmYW5jeSBsaWdhdHVyZXMgd2hlbiBhdmFpbGFibGVcclxuICAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogXCJsaWdhXCIsIFwiZGxpZ1wiO1xyXG4gICAtbW96LWZvbnQtZmVhdHVyZS1zZXR0aW5nczogXCJsaWdhPTEsIGRsaWc9MVwiO1xyXG4gICAgICAtbXMtZm9udC1mZWF0dXJlLXNldHRpbmdzOiBcImxpZ2FcIiwgXCJkbGlnXCI7XHJcbiAgICAgICAtby1mb250LWZlYXR1cmUtc2V0dGluZ3M6IFwibGlnYVwiLCBcImRsaWdcIjtcclxuICAgICAgICAgIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogXCJsaWdhXCIsIFwiZGxpZ1wiOyovXHJcbn1cclxuXHJcbiIsIlxyXG5cclxuLyoqKioqKioqKioqKioqKioqKioqKlxyXG5DT0xPUiBGVU5DVElPTlNcclxuVGhlc2UgYXJlIGhlbHBmdWwgd2hlbiB5b3UncmUgd29ya2luZ1xyXG53aXRoIHNoYWRvd3MgYW5kIHN1Y2ggdGhpbmdzLiBJdCdzIGVzc2VudGlhbGx5XHJcbmEgcXVpY2tlciB3YXkgdG8gd3JpdGUgUkdCQS5cclxuXHJcbkV4YW1wbGU6XHJcbmJveC1zaGFkb3c6IDAgMCA0cHggYmxhY2soMC4zKTtcclxuY29tcGlsZXMgdG86XHJcbmJveC1zaGFkb3c6IDAgMCA0cHggcmdiYSgwLDAsMCwwLjMpO1xyXG4qKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG4vLyBibGFja1xyXG5AZnVuY3Rpb24gYmxhY2soJG9wYWNpdHkpIHtcclxuICAgIEByZXR1cm4gcmdiYSgwLDAsMCwkb3BhY2l0eSk7XHJcbn1cclxuXHJcbi8vIHdoaXRlXHJcbkBmdW5jdGlvbiB3aGl0ZSgkb3BhY2l0eSkge1xyXG4gICAgQHJldHVybiByZ2JhKDI1NSwyNTUsMjU1LCRvcGFjaXR5KTtcclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKioqKipcclxuUkVTUE9OU0lWRSBIRUxQRVIgRlVOQ1RJT05cclxuSWYgeW91J3JlIGNyZWF0aW5nIGEgcmVzcG9uc2l2ZSBzaXRlLCB0aGVuXHJcbnlvdSd2ZSBwcm9iYWJseSBhbHJlYWR5IHJlYWRcclxuUmVzcG9uc2l2ZSBXZWIgRGVzaWduOiBodHRwOi8vd3d3LmFib29rYXBhcnQuY29tL3Byb2R1Y3RzL3Jlc3BvbnNpdmUtd2ViLWRlc2lnblxyXG5cclxuSGVyZSdzIGEgbmljZSBsaXR0bGUgaGVscGVyIGZ1bmN0aW9uIGZvciBjYWxjdWxhdGluZ1xyXG50YXJnZXQgLyBjb250ZXh0XHJcbmFzIG1lbnRpb25lZCBpbiB0aGF0IGJvb2suXHJcblxyXG5FeGFtcGxlOlxyXG53aWR0aDogY3AoNjUwcHgsIDEwMDBweCk7XHJcbm9yXHJcbndpZHRoOiBjYWxjLXBlcmNlbnQoNjUwcHgsIDEwMDBweCk7XHJcbmJvdGggY29tcGlsZSB0bzpcclxud2lkdGg6IDY1JTtcclxuKioqKioqKioqKioqKioqKioqKioqL1xyXG5cclxuQGZ1bmN0aW9uIGNhbGMtcGVyY2VudCgkdGFyZ2V0LCAkY29udGFpbmVyKSB7XHJcbiAgQHJldHVybiAoJHRhcmdldCAvICRjb250YWluZXIpICogMTAwJTtcclxufVxyXG5AZnVuY3Rpb24gY3AoJHRhcmdldCwgJGNvbnRhaW5lcikge1xyXG4gIEByZXR1cm4gY2FsYy1wZXJjZW50KCR0YXJnZXQsICRjb250YWluZXIpO1xyXG59XHJcbiIsIlxyXG5cclxuXHJcblxyXG4vL1BzZXVkb1xyXG5cclxuQG1peGluIHBzZXVkbygkZGlzcGxheTogYmxvY2ssICRwb3M6IGFic29sdXRlLCAkY29udGVudDogJycpe1xyXG4gICAgY29udGVudDogJGNvbnRlbnQ7XHJcbiAgICBkaXNwbGF5OiAkZGlzcGxheTtcclxuICAgIHBvc2l0aW9uOiAkcG9zO1xyXG59XHJcblxyXG5cclxuLy9QbGFjZWhvbGRlcnNcclxuXHJcbkBtaXhpbiBpbnB1dC1wbGFjZWhvbGRlciB7XHJcbiAgICAmLnBsYWNlaG9sZGVyIHsgQGNvbnRlbnQ7IH1cclxuICAgICY6LW1vei1wbGFjZWhvbGRlciB7IEBjb250ZW50OyB9XHJcbiAgICAmOjotbW96LXBsYWNlaG9sZGVyIHsgQGNvbnRlbnQ7IH1cclxuICAgICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHsgQGNvbnRlbnQ7IH1cclxuICAgICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIgeyBAY29udGVudDsgfVxyXG59XHJcbi8vQGluY2x1ZGUgaW5wdXQtcGxhY2Vob2xkZXIge2NvbG9yOiAkZ3JleTt9XHJcblxyXG5cclxuLy9Cb3JkZXIgcmFkaXVzXHJcbkBtaXhpbiBib3JkZXItcmFkaXVzKCRyYWRpdXMpIHtcclxuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XHJcbiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xyXG4gICAgICAtbXMtYm9yZGVyLXJhZGl1czogJHJhZGl1cztcclxuICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XHJcbn1cclxuLy9AaW5jbHVkZSBib3JkZXItcmFkaXVzKDNweCk7XHJcblxyXG5cclxuXHJcblxyXG4vL1Jlc2V0IHVsL29sXHJcbkBtaXhpbiBsaXN0LW51bGwge1xyXG4gIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgcGFkZGluZzogMDtcclxuICBtYXJnaW46IDA7XHJcbn1cclxuXHJcblxyXG5cclxuXHJcbi8vRm9udCBzaXplXHJcbiRicm93c2VyLWNvbnRleHQ6IDE2OyAvKiBEZWZhdWx0Ki9cclxuQGZ1bmN0aW9uIGVtKCRwaXhlbHMsICRjb250ZXh0OiAkYnJvd3Nlci1jb250ZXh0KSB7XHJcbiAgQHJldHVybiAjeyRwaXhlbHMvJGNvbnRleHR9ZW1cclxufVxyXG4vLyBmb250LXNpemU6IGVtKDcyKTsgXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcbi8vVHJhbnNmb3JtIE1peGlucyBcclxuXHJcbi8vIEJyb3dzZXIgUHJlZml4ZXNcclxuQG1peGluIHRyYW5zZm9ybSgkdHJhbnNmb3Jtcykge1xyXG5cdC13ZWJraXQtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcclxuXHQtbW96LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XHJcblx0LW1zLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XHJcblx0dHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcclxufVxyXG5cclxuLy8gUm90YXRlXHJcbkBtaXhpbiByb3RhdGUgKCRkZWcpIHsgXHJcblx0QGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgjeyRkZWd9ZGVnKSk7XHJcbn1cclxuXHJcbi8vIFNjYWxlXHJcbkBtaXhpbiBzY2FsZSgkc2NhbGUpIHtcclxuXHRAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoJHNjYWxlKSk7XHJcbn1cclxuXHJcbi8vIFRyYW5zbGF0ZVxyXG5AbWl4aW4gdHJhbnNsYXRlICgkeCwgJHkpIHtcclxuXHRAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlKCR4LCAkeSkpO1xyXG59XHJcblxyXG4vLyBTa2V3XHJcbkBtaXhpbiBza2V3ICgkeCwgJHkpIHtcclxuXHRAaW5jbHVkZSB0cmFuc2Zvcm0oc2tldygjeyR4fWRlZywgI3skeX1kZWcpKTtcclxufVxyXG5cclxuLy8gVHJhbnNmb3JtIE9yaWdpblxyXG5AbWl4aW4gdHJhbnNmb3JtLW9yaWdpbiAoJG9yaWdpbikge1xyXG4gICAgXHQtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46ICRvcmlnaW47XHJcbiAgICBcdC1tb3otdHJhbnNmb3JtLW9yaWdpbjogJG9yaWdpbjtcclxuXHQtbXMtdHJhbnNmb3JtLW9yaWdpbjogJG9yaWdpbjtcclxuXHR0cmFuc2Zvcm0tb3JpZ2luOiAkb3JpZ2luO1xyXG59XHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcbi8vQ2lyY2xlXHJcbkBtaXhpbiBjaXJjbGUoJHdpZHRoLCAkY29sb3IpIHtcclxuICB3aWR0aDogJHdpZHRoO1xyXG4gIGhlaWdodDogJHdpZHRoO1xyXG4gIGJhY2tncm91bmQ6ICRjb2xvcjtcclxuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAtbW96LWJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxufVxyXG4gIFxyXG5cclxuXHJcblxyXG5cclxuLy9Qb3NpdGlvbiBhYnNvbHV0ZVxyXG5AbWl4aW4gYWJzUG9zaXRpb24gKCR0b3A6IGF1dG8sICRyaWdodDogYXV0bywgJGJvdHRvbTogYXV0bywgJGxlZnQ6IGF1dG8pIHtcclxuICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgdG9wOiAkdG9wO1xyXG4gICAgIHJpZ2h0OiAkcmlnaHQ7XHJcbiAgICAgYm90dG9tOiAkYm90dG9tO1xyXG4gICAgIGxlZnQ6ICRsZWZ0O1xyXG59XHJcblxyXG5cclxuXHJcblxyXG5cclxuIiwiXHJcbi5mbGV4IHtcclxuICBAaW5jbHVkZSBmbGV4Ym94O1xyXG59XHJcblxyXG5bY2xhc3MqPVwiZmxleFwiXSB7XHJcbiAgd2lkdGg6IDEwMCVcclxufVxyXG5cclxuW2NsYXNzKj1cImZsZXhcIl0uZmxleC0td3JhcCB7XHJcbiAgQGluY2x1ZGUgZmxleC13cmFwKHdyYXApXHJcbn1cclxuXHJcbltjbGFzcyo9XCJmbGV4XCJdLmZsZXgtLWNvbnRlbnQtdmVydGljYWwtY2VudGVyIHtcclxuICBAaW5jbHVkZSBhbGlnbi1pdGVtcyhjZW50ZXIpXHJcbn1cclxuXHJcbltjbGFzcyo9XCJmbGV4XCJdLmZsZXgtLWNvbnRlbnQtY2VudGVyIHtcclxuICBAaW5jbHVkZSBqdXN0aWZ5LWNvbnRlbnQoY2VudGVyKVxyXG59XHJcblxyXG5bY2xhc3MqPVwiZmxleFwiXS5mbGV4LS1jb250ZW50LXNwYWNlLWJldHdlZW4ge1xyXG4gIEBpbmNsdWRlIGp1c3RpZnktY29udGVudChzcGFjZS1iZXR3ZWVuKTtcclxufVxyXG5cclxuLm1lZGl1bSB7XHJcbiAgZm9udC13ZWlnaHQ6IDUwMDtcclxufVxyXG5cclxuLnNlbWkge1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbn1cclxuXHJcbi5idXJnLWJnIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnVyZztcclxuICBjb2xvcjogI2ZmZjtcclxuXHJcbiAgYTpub3QoLmJ0bikge1xyXG4gICAgY29sb3I6ICNmZmY7XHJcbiAgfVxyXG59XHJcblxyXG4uZ3JheS1iZyB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGwtZ3JheTtcclxufVxyXG5cclxuLmNpcmNsZSB7XHJcbiAgYm9yZGVyLXJhZGl1czogNTAlXHJcbn1cclxuXHJcbmEuY2lyY2xlIHtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gIG1hcmdpbi1yaWdodDogYXV0bztcclxuXHJcbiAgaW1nIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gIH1cclxuXHJcbiAgJi5zbWFsbCB7XHJcbiAgICB3aWR0aDogMTUwcHg7XHJcbiAgICBoZWlnaHQ6IDE1MHB4O1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi5wYWRkZWQtdGI0MCB7XHJcbiAgcGFkZGluZy10b3A6IDIwcHg7XHJcbiAgcGFkZGluZy1ib3R0b206IDIwcHg7XHJcbn1cclxuXHJcbipbY2xhc3MqPVwicGFkZGVkLXRcIl0gPiAud3JhcHBlciA+ICo6Zmlyc3QtY2hpbGQge1xyXG4gIG1hcmdpbi10b3A6IDA7XHJcbiAgcGFkZGluZy10b3A6IDA7XHJcbn1cclxuXHJcbipbY2xhc3MqPVwicGFkZGVkLWJcIl0gPiAud3JhcHBlciA+ICo6bGFzdC1jaGlsZCB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMDtcclxuICBwYWRkaW5nLWJvdHRvbTogMDtcclxufVxyXG5cclxuLm1heC01NDAge1xyXG4gIG1heC13aWR0aDogNTQwcHg7XHJcbn1cclxuXHJcbmhyLmRpdmlkZXIge1xyXG4gIG1hcmdpbjogMDtcclxuICBoZWlnaHQ6IDhweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnVyZztcclxuICBib3JkZXI6IG5vbmVcclxufVxyXG5cclxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0ODFweCkge1xyXG4gIC5mbGV4LTQ4MSB7XHJcbiAgICBAaW5jbHVkZSBmbGV4Ym94O1xyXG4gIH1cclxufVxyXG5cclxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xyXG4gIC5mbGV4LTc2OCB7XHJcbiAgICBAaW5jbHVkZSBmbGV4Ym94O1xyXG4gIH1cclxufVxyXG5cclxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpIHtcclxuICAuZmxleC0xMDI0IHtcclxuICAgIEBpbmNsdWRlIGZsZXhib3g7XHJcbiAgfVxyXG4gIC5wYWRkZWQtdGI0MCB7XHJcbiAgICBwYWRkaW5nLXRvcDogNDBweDtcclxuICAgIHBhZGRpbmctYm90dG9tOiA0MHB4O1xyXG4gIH1cclxufVxyXG4iLCIvLyBGbGV4Ym94IE1peGluc1xyXG4vLyBodHRwOi8vcGhpbGlwd2FsdG9uLmdpdGh1Yi5pby9zb2x2ZWQtYnktZmxleGJveC9cclxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3BoaWxpcHdhbHRvbi9zb2x2ZWQtYnktZmxleGJveFxyXG4vLyBcclxuLy8gQ29weXJpZ2h0IChjKSAyMDEzIEJyaWFuIEZyYW5jb1xyXG4vL1xyXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYVxyXG4vLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXHJcbi8vIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZ1xyXG4vLyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsXHJcbi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0b1xyXG4vLyBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG9cclxuLy8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxyXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZFxyXG4vLyBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cclxuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTU1xyXG4vLyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GXHJcbi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC5cclxuLy8gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTllcclxuLy8gQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCxcclxuLy8gVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEVcclxuLy8gU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXHJcbi8vXHJcbi8vIFRoaXMgaXMgYSBzZXQgb2YgbWl4aW5zIGZvciB0aG9zZSB3aG8gd2FudCB0byBtZXNzIGFyb3VuZCB3aXRoIGZsZXhib3hcclxuLy8gdXNpbmcgdGhlIG5hdGl2ZSBzdXBwb3J0IG9mIGN1cnJlbnQgYnJvd3NlcnMuIEZvciBmdWxsIHN1cHBvcnQgdGFibGVcclxuLy8gY2hlY2s6IGh0dHA6Ly9jYW5pdXNlLmNvbS9mbGV4Ym94XHJcbi8vXHJcbi8vIEJhc2ljYWxseSB0aGlzIHdpbGwgdXNlOlxyXG4vL1xyXG4vLyAqIEZhbGxiYWNrLCBvbGQgc3ludGF4IChJRTEwLCBtb2JpbGUgd2Via2l0IGJyb3dzZXJzIC0gbm8gd3JhcHBpbmcpXHJcbi8vICogRmluYWwgc3RhbmRhcmRzIHN5bnRheCAoRkYsIFNhZmFyaSwgQ2hyb21lLCBJRTExLCBPcGVyYSlcclxuLy9cclxuLy8gVGhpcyB3YXMgaW5zcGlyZWQgYnk6XHJcbi8vIFxyXG4vLyAqIGh0dHA6Ly9kZXYub3BlcmEuY29tL2FydGljbGVzL3ZpZXcvYWR2YW5jZWQtY3Jvc3MtYnJvd3Nlci1mbGV4Ym94L1xyXG4vLyBcclxuLy8gV2l0aCBoZWxwIGZyb206XHJcbi8vIFxyXG4vLyAqIGh0dHA6Ly93My5vcmcvdHIvY3NzMy1mbGV4Ym94L1xyXG4vLyAqIGh0dHA6Ly90aGUtZWNob3BsZXgubmV0L2ZsZXh5Ym94ZXMvXHJcbi8vICogaHR0cDovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L2llL2hoNzcyMDY5KHY9dnMuODUpLmFzcHhcclxuLy8gKiBodHRwOi8vY3NzLXRyaWNrcy5jb20vdXNpbmctZmxleGJveC9cclxuLy8gKiBodHRwOi8vZGV2Lm9wZXJhLmNvbS9hcnRpY2xlcy92aWV3L2FkdmFuY2VkLWNyb3NzLWJyb3dzZXItZmxleGJveC9cclxuLy8gKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi11cy9kb2NzL3dlYi9ndWlkZS9jc3MvZmxleGlibGVfYm94ZXNcclxuXHJcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuLy8gRmxleGJveCBDb250YWluZXJzXHJcbi8vXHJcbi8vIFRoZSAnZmxleCcgdmFsdWUgY2F1c2VzIGFuIGVsZW1lbnQgdG8gZ2VuZXJhdGUgYSBibG9jay1sZXZlbCBmbGV4XHJcbi8vIGNvbnRhaW5lciBib3guXHJcbi8vXHJcbi8vIFRoZSAnaW5saW5lLWZsZXgnIHZhbHVlIGNhdXNlcyBhbiBlbGVtZW50IHRvIGdlbmVyYXRlIGEgaW5saW5lLWxldmVsXHJcbi8vIGZsZXggY29udGFpbmVyIGJveC4gXHJcbi8vXHJcbi8vIGRpc3BsYXk6IGZsZXggfCBpbmxpbmUtZmxleFxyXG4vL1xyXG4vLyBodHRwOi8vdzMub3JnL3RyL2NzczMtZmxleGJveC8jZmxleC1jb250YWluZXJzXHJcbi8vXHJcbi8vIChQbGFjZWhvbGRlciBzZWxlY3RvcnMgZm9yIGVhY2ggdHlwZSwgZm9yIHRob3NlIHdobyByYXRoZXIgQGV4dGVuZClcclxuXHJcbkBtaXhpbiBmbGV4Ym94IHtcclxuXHRkaXNwbGF5OiAtd2Via2l0LWJveDtcclxuXHRkaXNwbGF5OiAtd2Via2l0LWZsZXg7XHJcblx0ZGlzcGxheTogLW1vei1mbGV4O1xyXG5cdGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xyXG5cdGRpc3BsYXk6IGZsZXg7XHJcbn1cclxuXHJcbiVmbGV4Ym94IHsgQGluY2x1ZGUgZmxleGJveDsgfVxyXG5cclxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG5AbWl4aW4gaW5saW5lLWZsZXgge1xyXG5cdGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcclxuXHRkaXNwbGF5OiAtd2Via2l0LWlubGluZS1mbGV4O1xyXG5cdGRpc3BsYXk6IC1tb3otaW5saW5lLWZsZXg7XHJcblx0ZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xyXG5cdGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG59XHJcblxyXG4laW5saW5lLWZsZXggeyBAaW5jbHVkZSBpbmxpbmUtZmxleDsgfVxyXG5cclxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4vLyBGbGV4Ym94IERpcmVjdGlvblxyXG4vL1xyXG4vLyBUaGUgJ2ZsZXgtZGlyZWN0aW9uJyBwcm9wZXJ0eSBzcGVjaWZpZXMgaG93IGZsZXggaXRlbXMgYXJlIHBsYWNlZCBpblxyXG4vLyB0aGUgZmxleCBjb250YWluZXIsIGJ5IHNldHRpbmcgdGhlIGRpcmVjdGlvbiBvZiB0aGUgZmxleCBjb250YWluZXInc1xyXG4vLyBtYWluIGF4aXMuIFRoaXMgZGV0ZXJtaW5lcyB0aGUgZGlyZWN0aW9uIHRoYXQgZmxleCBpdGVtcyBhcmUgbGFpZCBvdXQgaW4uIFxyXG4vL1xyXG4vLyBWYWx1ZXM6IHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2VcclxuLy8gRGVmYXVsdDogcm93XHJcbi8vXHJcbi8vIGh0dHA6Ly93My5vcmcvdHIvY3NzMy1mbGV4Ym94LyNmbGV4LWRpcmVjdGlvbi1wcm9wZXJ0eVxyXG5cclxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZTogcm93KSB7XHJcblx0QGlmICR2YWx1ZSA9PSByb3ctcmV2ZXJzZSB7XHJcblx0XHQtd2Via2l0LWJveC1kaXJlY3Rpb246IHJldmVyc2U7XHJcblx0XHQtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7XHJcblx0fSBAZWxzZSBpZiAkdmFsdWUgPT0gY29sdW1uIHtcclxuXHRcdC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xyXG5cdFx0LXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcclxuXHR9IEBlbHNlIGlmICR2YWx1ZSA9PSBjb2x1bW4tcmV2ZXJzZSB7XHJcblx0XHQtd2Via2l0LWJveC1kaXJlY3Rpb246IHJldmVyc2U7XHJcblx0XHQtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xyXG5cdH0gQGVsc2Uge1xyXG5cdFx0LXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XHJcblx0XHQtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7XHJcblx0fVxyXG5cdC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcclxuXHQtbW96LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XHJcblx0LW1zLWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XHJcblx0ZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcclxufVxyXG5cdC8vIFNob3J0ZXIgdmVyc2lvbjpcclxuXHRAbWl4aW4gZmxleC1kaXIoJGFyZ3MuLi4pIHsgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oJGFyZ3MuLi4pOyB9XHJcblxyXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbi8vIEZsZXhib3ggV3JhcFxyXG4vL1xyXG4vLyBUaGUgJ2ZsZXgtd3JhcCcgcHJvcGVydHkgY29udHJvbHMgd2hldGhlciB0aGUgZmxleCBjb250YWluZXIgaXMgc2luZ2xlLWxpbmVcclxuLy8gb3IgbXVsdGktbGluZSwgYW5kIHRoZSBkaXJlY3Rpb24gb2YgdGhlIGNyb3NzLWF4aXMsIHdoaWNoIGRldGVybWluZXNcclxuLy8gdGhlIGRpcmVjdGlvbiBuZXcgbGluZXMgYXJlIHN0YWNrZWQgaW4uIFxyXG4vL1xyXG4vLyBWYWx1ZXM6IG5vd3JhcCB8IHdyYXAgfCB3cmFwLXJldmVyc2VcclxuLy8gRGVmYXVsdDogbm93cmFwXHJcbi8vXHJcbi8vIGh0dHA6Ly93My5vcmcvdHIvY3NzMy1mbGV4Ym94LyNmbGV4LXdyYXAtcHJvcGVydHlcclxuXHJcbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlOiBub3dyYXApIHtcclxuXHQvLyBObyBXZWJraXQgQm94IGZhbGxiYWNrLlxyXG5cdC13ZWJraXQtZmxleC13cmFwOiAkdmFsdWU7XHJcblx0LW1vei1mbGV4LXdyYXA6ICR2YWx1ZTtcclxuXHRAaWYgJHZhbHVlID09IG5vd3JhcCB7XHJcblx0XHQtbXMtZmxleC13cmFwOiBub25lO1xyXG5cdH0gQGVsc2UgeyBcclxuXHRcdC1tcy1mbGV4LXdyYXA6ICR2YWx1ZTsgXHJcblx0fVxyXG5cdGZsZXgtd3JhcDogJHZhbHVlO1xyXG59XHJcblxyXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbi8vIEZsZXhib3ggRmxvdyAoc2hvcnRoYW5kKVxyXG4vL1xyXG4vLyBUaGUgJ2ZsZXgtZmxvdycgcHJvcGVydHkgaXMgYSBzaG9ydGhhbmQgZm9yIHNldHRpbmcgdGhlICdmbGV4LWRpcmVjdGlvbidcclxuLy8gYW5kICdmbGV4LXdyYXAnIHByb3BlcnRpZXMsIHdoaWNoIHRvZ2V0aGVyIGRlZmluZSB0aGUgZmxleCBjb250YWluZXInc1xyXG4vLyBtYWluIGFuZCBjcm9zcyBheGVzLlxyXG4vL1xyXG4vLyBWYWx1ZXM6IDxmbGV4LWRpcmVjdGlvbj4gfCA8ZmxleC13cmFwPiBcclxuLy8gRGVmYXVsdDogcm93IG5vd3JhcFxyXG4vL1xyXG4vLyBodHRwOi8vdzMub3JnL3RyL2NzczMtZmxleGJveC8jZmxleC1mbG93LXByb3BlcnR5XHJcblxyXG5AbWl4aW4gZmxleC1mbG93KCR2YWx1ZXM6IChyb3cgbm93cmFwKSkge1xyXG5cdC8vIE5vIFdlYmtpdCBCb3ggZmFsbGJhY2suXHJcblx0LXdlYmtpdC1mbGV4LWZsb3c6ICR2YWx1ZXM7XHJcblx0LW1vei1mbGV4LWZsb3c6ICR2YWx1ZXM7XHJcblx0LW1zLWZsZXgtZmxvdzogJHZhbHVlcztcclxuXHRmbGV4LWZsb3c6ICR2YWx1ZXM7XHJcbn1cclxuXHJcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuLy8gRmxleGJveCBPcmRlclxyXG4vL1xyXG4vLyBUaGUgJ29yZGVyJyBwcm9wZXJ0eSBjb250cm9scyB0aGUgb3JkZXIgaW4gd2hpY2ggZmxleCBpdGVtcyBhcHBlYXIgd2l0aGluXHJcbi8vIHRoZWlyIGZsZXggY29udGFpbmVyLCBieSBhc3NpZ25pbmcgdGhlbSB0byBvcmRpbmFsIGdyb3Vwcy5cclxuLy9cclxuLy8gRGVmYXVsdDogMFxyXG4vL1xyXG4vLyBodHRwOi8vdzMub3JnL3RyL2NzczMtZmxleGJveC8jb3JkZXItcHJvcGVydHlcclxuXHJcbkBtaXhpbiBvcmRlcigkaW50OiAwKSB7XHJcblx0LXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogJGludCArIDE7XHJcblx0LXdlYmtpdC1vcmRlcjogJGludDtcclxuXHQtbW96LW9yZGVyOiAkaW50O1xyXG5cdC1tcy1mbGV4LW9yZGVyOiAkaW50O1xyXG5cdG9yZGVyOiAkaW50O1xyXG59XHJcblxyXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbi8vIEZsZXhib3ggR3Jvd1xyXG4vL1xyXG4vLyBUaGUgJ2ZsZXgtZ3JvdycgcHJvcGVydHkgc2V0cyB0aGUgZmxleCBncm93IGZhY3Rvci4gTmVnYXRpdmUgbnVtYmVyc1xyXG4vLyBhcmUgaW52YWxpZC5cclxuLy9cclxuLy8gRGVmYXVsdDogMFxyXG4vL1xyXG4vLyBodHRwOi8vdzMub3JnL3RyL2NzczMtZmxleGJveC8jZmxleC1ncm93LXByb3BlcnR5XHJcblxyXG5AbWl4aW4gZmxleC1ncm93KCRpbnQ6IDApIHtcclxuXHQtd2Via2l0LWJveC1mbGV4OiAkaW50O1xyXG5cdC13ZWJraXQtZmxleC1ncm93OiAkaW50O1xyXG5cdC1tb3otZmxleC1ncm93OiAkaW50O1xyXG5cdC1tcy1mbGV4LXBvc2l0aXZlOiAkaW50O1xyXG5cdGZsZXgtZ3JvdzogJGludDtcclxufVxyXG5cclxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4vLyBGbGV4Ym94IFNocmlua1xyXG4vL1xyXG4vLyBUaGUgJ2ZsZXgtc2hyaW5rJyBwcm9wZXJ0eSBzZXRzIHRoZSBmbGV4IHNocmluayBmYWN0b3IuIE5lZ2F0aXZlIG51bWJlcnNcclxuLy8gYXJlIGludmFsaWQuXHJcbi8vXHJcbi8vIERlZmF1bHQ6IDFcclxuLy9cclxuLy8gaHR0cDovL3czLm9yZy90ci9jc3MzLWZsZXhib3gvI2ZsZXgtc2hyaW5rLXByb3BlcnR5XHJcblxyXG5AbWl4aW4gZmxleC1zaHJpbmsoJGludDogMSkge1xyXG5cdC13ZWJraXQtZmxleC1zaHJpbms6ICRpbnQ7XHJcblx0LW1vei1mbGV4LXNocmluazogJGludDtcclxuXHQtbXMtZmxleC1uZWdhdGl2ZTogJGludDtcclxuXHRmbGV4LXNocmluazogJGludDtcclxufVxyXG5cclxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4vLyBGbGV4Ym94IEJhc2lzXHJcbi8vXHJcbi8vIFRoZSAnZmxleC1iYXNpcycgcHJvcGVydHkgc2V0cyB0aGUgZmxleCBiYXNpcy4gTmVnYXRpdmUgbGVuZ3RocyBhcmUgaW52YWxpZC4gXHJcbi8vXHJcbi8vIFZhbHVlczogTGlrZSBcIndpZHRoXCIgXHJcbi8vIERlZmF1bHQ6IGF1dG9cclxuLy9cclxuLy8gaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1mbGV4Ym94LyNmbGV4LWJhc2lzLXByb3BlcnR5XHJcblxyXG5AbWl4aW4gZmxleC1iYXNpcygkdmFsdWU6IGF1dG8pIHtcclxuXHQtd2Via2l0LWZsZXgtYmFzaXM6ICR2YWx1ZTtcclxuXHQtbW96LWZsZXgtYmFzaXM6ICR2YWx1ZTtcclxuXHQtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogJHZhbHVlO1xyXG5cdGZsZXgtYmFzaXM6ICR2YWx1ZTtcclxufVxyXG5cclxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4vLyBGbGV4Ym94IFwiRmxleFwiIChzaG9ydGhhbmQpXHJcbi8vXHJcbi8vIFRoZSAnZmxleCcgcHJvcGVydHkgc3BlY2lmaWVzIHRoZSBjb21wb25lbnRzIG9mIGEgZmxleGlibGUgbGVuZ3RoOiB0aGVcclxuLy8gZmxleCBncm93IGZhY3RvciBhbmQgZmxleCBzaHJpbmsgZmFjdG9yLCBhbmQgdGhlIGZsZXggYmFzaXMuIFdoZW4gYW5cclxuLy8gZWxlbWVudCBpcyBhIGZsZXggaXRlbSwgJ2ZsZXgnIGlzIGNvbnN1bHRlZCBpbnN0ZWFkIG9mIHRoZSBtYWluIHNpemVcclxuLy8gcHJvcGVydHkgdG8gZGV0ZXJtaW5lIHRoZSBtYWluIHNpemUgb2YgdGhlIGVsZW1lbnQuIElmIGFuIGVsZW1lbnQgaXNcclxuLy8gbm90IGEgZmxleCBpdGVtLCAnZmxleCcgaGFzIG5vIGVmZmVjdC5cclxuLy9cclxuLy8gVmFsdWVzOiBub25lIHwgPGZsZXgtZ3Jvdz4gPGZsZXgtc2hyaW5rPiB8fCA8ZmxleC1iYXNpcz5cclxuLy8gRGVmYXVsdDogU2VlIGluZGl2aWR1YWwgcHJvcGVydGllcyAoMSAxIDApLlxyXG4vL1xyXG4vLyBodHRwOi8vdzMub3JnL3RyL2NzczMtZmxleGJveC8jZmxleC1wcm9wZXJ0eVxyXG5cclxuQG1peGluIGZsZXgoJGZnOiAxLCAkZnM6IG51bGwsICRmYjogbnVsbCkge1xyXG4gICAgXHJcblx0Ly8gU2V0IGEgdmFyaWFibGUgdG8gYmUgdXNlZCBieSBib3gtZmxleCBwcm9wZXJ0aWVzXHJcblx0JGZnLWJveGZsZXg6ICRmZztcclxuXHJcblx0Ly8gQm94LUZsZXggb25seSBzdXBwb3J0cyBhIGZsZXgtZ3JvdyB2YWx1ZSBzbyBsZXQncyBncmFiIHRoZVxyXG5cdC8vIGZpcnN0IGl0ZW0gaW4gdGhlIGxpc3QgYW5kIGp1c3QgcmV0dXJuIHRoYXQuXHJcblx0QGlmIHR5cGUtb2YoJGZnKSA9PSAnbGlzdCcge1xyXG5cdFx0JGZnLWJveGZsZXg6IG50aCgkZmcsIDEpO1xyXG5cdH1cclxuXHJcblx0LXdlYmtpdC1ib3gtZmxleDogJGZnLWJveGZsZXg7XHJcblx0LXdlYmtpdC1mbGV4OiAkZmcgJGZzICRmYjtcclxuXHQtbW96LWJveC1mbGV4OiAkZmctYm94ZmxleDtcclxuXHQtbW96LWZsZXg6ICRmZyAkZnMgJGZiO1xyXG5cdC1tcy1mbGV4OiAkZmcgJGZzICRmYjtcclxuXHRmbGV4OiAkZmcgJGZzICRmYjtcclxufVxyXG5cclxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4vLyBGbGV4Ym94IEp1c3RpZnkgQ29udGVudFxyXG4vL1xyXG4vLyBUaGUgJ2p1c3RpZnktY29udGVudCcgcHJvcGVydHkgYWxpZ25zIGZsZXggaXRlbXMgYWxvbmcgdGhlIG1haW4gYXhpc1xyXG4vLyBvZiB0aGUgY3VycmVudCBsaW5lIG9mIHRoZSBmbGV4IGNvbnRhaW5lci4gVGhpcyBpcyBkb25lIGFmdGVyIGFueSBmbGV4aWJsZVxyXG4vLyBsZW5ndGhzIGFuZCBhbnkgYXV0byBtYXJnaW5zIGhhdmUgYmVlbiByZXNvbHZlZC4gVHlwaWNhbGx5IGl0IGhlbHBzIGRpc3RyaWJ1dGVcclxuLy8gZXh0cmEgZnJlZSBzcGFjZSBsZWZ0b3ZlciB3aGVuIGVpdGhlciBhbGwgdGhlIGZsZXggaXRlbXMgb24gYSBsaW5lIGFyZVxyXG4vLyBpbmZsZXhpYmxlLCBvciBhcmUgZmxleGlibGUgYnV0IGhhdmUgcmVhY2hlZCB0aGVpciBtYXhpbXVtIHNpemUuIEl0IGFsc29cclxuLy8gZXhlcnRzIHNvbWUgY29udHJvbCBvdmVyIHRoZSBhbGlnbm1lbnQgb2YgaXRlbXMgd2hlbiB0aGV5IG92ZXJmbG93IHRoZSBsaW5lLlxyXG4vL1xyXG4vLyBOb3RlOiAnc3BhY2UtKicgdmFsdWVzIG5vdCBzdXBwb3J0ZWQgaW4gb2xkZXIgc3ludGF4ZXMuXHJcbi8vXHJcbi8vIFZhbHVlczogZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZFxyXG4vLyBEZWZhdWx0OiBmbGV4LXN0YXJ0XHJcbi8vXHJcbi8vIGh0dHA6Ly93My5vcmcvdHIvY3NzMy1mbGV4Ym94LyNqdXN0aWZ5LWNvbnRlbnQtcHJvcGVydHlcclxuXHJcbkBtaXhpbiBqdXN0aWZ5LWNvbnRlbnQoJHZhbHVlOiBmbGV4LXN0YXJ0KSB7XHJcblx0QGlmICR2YWx1ZSA9PSBmbGV4LXN0YXJ0IHtcclxuXHRcdC13ZWJraXQtYm94LXBhY2s6IHN0YXJ0O1xyXG5cdFx0LW1zLWZsZXgtcGFjazogc3RhcnQ7XHJcblx0fSBAZWxzZSBpZiAkdmFsdWUgPT0gZmxleC1lbmQge1xyXG5cdFx0LXdlYmtpdC1ib3gtcGFjazogZW5kO1xyXG5cdFx0LW1zLWZsZXgtcGFjazogZW5kO1xyXG5cdH0gQGVsc2UgaWYgJHZhbHVlID09IHNwYWNlLWJldHdlZW4ge1xyXG5cdFx0LXdlYmtpdC1ib3gtcGFjazoganVzdGlmeTtcclxuXHRcdC1tcy1mbGV4LXBhY2s6IGp1c3RpZnk7XHJcblx0fSBAZWxzZSBpZiAkdmFsdWUgPT0gc3BhY2UtYXJvdW5kIHtcclxuXHRcdC1tcy1mbGV4LXBhY2s6IGRpc3RyaWJ1dGU7XHRcdFxyXG5cdH0gQGVsc2Uge1xyXG5cdFx0LXdlYmtpdC1ib3gtcGFjazogJHZhbHVlO1xyXG5cdFx0LW1zLWZsZXgtcGFjazogJHZhbHVlO1xyXG5cdH1cclxuXHQtd2Via2l0LWp1c3RpZnktY29udGVudDogJHZhbHVlO1xyXG5cdC1tb3otanVzdGlmeS1jb250ZW50OiAkdmFsdWU7XHJcblx0anVzdGlmeS1jb250ZW50OiAkdmFsdWU7XHJcbn1cclxuXHQvLyBTaG9ydGVyIHZlcnNpb246XHJcblx0QG1peGluIGZsZXgtanVzdCgkYXJncy4uLikgeyBAaW5jbHVkZSBqdXN0aWZ5LWNvbnRlbnQoJGFyZ3MuLi4pOyB9XHJcblxyXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbi8vIEZsZXhib3ggQWxpZ24gSXRlbXNcclxuLy9cclxuLy8gRmxleCBpdGVtcyBjYW4gYmUgYWxpZ25lZCBpbiB0aGUgY3Jvc3MgYXhpcyBvZiB0aGUgY3VycmVudCBsaW5lIG9mIHRoZVxyXG4vLyBmbGV4IGNvbnRhaW5lciwgc2ltaWxhciB0byAnanVzdGlmeS1jb250ZW50JyBidXQgaW4gdGhlIHBlcnBlbmRpY3VsYXJcclxuLy8gZGlyZWN0aW9uLiAnYWxpZ24taXRlbXMnIHNldHMgdGhlIGRlZmF1bHQgYWxpZ25tZW50IGZvciBhbGwgb2YgdGhlIGZsZXhcclxuLy8gY29udGFpbmVyJ3MgaXRlbXMsIGluY2x1ZGluZyBhbm9ueW1vdXMgZmxleCBpdGVtcy4gJ2FsaWduLXNlbGYnIGFsbG93c1xyXG4vLyB0aGlzIGRlZmF1bHQgYWxpZ25tZW50IHRvIGJlIG92ZXJyaWRkZW4gZm9yIGluZGl2aWR1YWwgZmxleCBpdGVtcy4gKEZvclxyXG4vLyBhbm9ueW1vdXMgZmxleCBpdGVtcywgJ2FsaWduLXNlbGYnIGFsd2F5cyBtYXRjaGVzIHRoZSB2YWx1ZSBvZiAnYWxpZ24taXRlbXMnXHJcbi8vIG9uIHRoZWlyIGFzc29jaWF0ZWQgZmxleCBjb250YWluZXIuKSBcclxuLy9cclxuLy8gVmFsdWVzOiBmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2hcclxuLy8gRGVmYXVsdDogc3RyZXRjaFxyXG4vL1xyXG4vLyBodHRwOi8vdzMub3JnL3RyL2NzczMtZmxleGJveC8jYWxpZ24taXRlbXMtcHJvcGVydHlcclxuXHJcbkBtaXhpbiBhbGlnbi1pdGVtcygkdmFsdWU6IHN0cmV0Y2gpIHtcclxuXHRAaWYgJHZhbHVlID09IGZsZXgtc3RhcnQge1xyXG5cdFx0LXdlYmtpdC1ib3gtYWxpZ246IHN0YXJ0O1xyXG5cdFx0LW1zLWZsZXgtYWxpZ246IHN0YXJ0O1xyXG5cdH0gQGVsc2UgaWYgJHZhbHVlID09IGZsZXgtZW5kIHtcclxuXHRcdC13ZWJraXQtYm94LWFsaWduOiBlbmQ7XHJcblx0XHQtbXMtZmxleC1hbGlnbjogZW5kO1xyXG5cdH0gQGVsc2Uge1xyXG5cdFx0LXdlYmtpdC1ib3gtYWxpZ246ICR2YWx1ZTtcclxuXHRcdC1tcy1mbGV4LWFsaWduOiAkdmFsdWU7XHJcblx0fVxyXG5cdC13ZWJraXQtYWxpZ24taXRlbXM6ICR2YWx1ZTtcclxuXHQtbW96LWFsaWduLWl0ZW1zOiAkdmFsdWU7XHJcblx0YWxpZ24taXRlbXM6ICR2YWx1ZTtcclxufVxyXG5cclxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG4vLyBGbGV4Ym94IEFsaWduIFNlbGZcclxuLy9cclxuLy8gVmFsdWVzOiBhdXRvIHwgZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoXHJcbi8vIERlZmF1bHQ6IGF1dG9cclxuXHJcbkBtaXhpbiBhbGlnbi1zZWxmKCR2YWx1ZTogYXV0bykge1xyXG5cdC8vIE5vIFdlYmtpdCBCb3ggRmFsbGJhY2suXHJcblx0LXdlYmtpdC1hbGlnbi1zZWxmOiAkdmFsdWU7XHJcblx0LW1vei1hbGlnbi1zZWxmOiAkdmFsdWU7XHJcblx0QGlmICR2YWx1ZSA9PSBmbGV4LXN0YXJ0IHtcclxuXHRcdC1tcy1mbGV4LWl0ZW0tYWxpZ246IHN0YXJ0O1xyXG5cdH0gQGVsc2UgaWYgJHZhbHVlID09IGZsZXgtZW5kIHtcclxuXHRcdC1tcy1mbGV4LWl0ZW0tYWxpZ246IGVuZDtcclxuXHR9IEBlbHNlIHtcclxuXHRcdC1tcy1mbGV4LWl0ZW0tYWxpZ246ICR2YWx1ZTtcclxuXHR9XHJcblx0YWxpZ24tc2VsZjogJHZhbHVlO1xyXG59XHJcblxyXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbi8vIEZsZXhib3ggQWxpZ24gQ29udGVudFxyXG4vL1xyXG4vLyBUaGUgJ2FsaWduLWNvbnRlbnQnIHByb3BlcnR5IGFsaWducyBhIGZsZXggY29udGFpbmVyJ3MgbGluZXMgd2l0aGluIHRoZVxyXG4vLyBmbGV4IGNvbnRhaW5lciB3aGVuIHRoZXJlIGlzIGV4dHJhIHNwYWNlIGluIHRoZSBjcm9zcy1heGlzLCBzaW1pbGFyIHRvXHJcbi8vIGhvdyAnanVzdGlmeS1jb250ZW50JyBhbGlnbnMgaW5kaXZpZHVhbCBpdGVtcyB3aXRoaW4gdGhlIG1haW4tYXhpcy4gTm90ZSxcclxuLy8gdGhpcyBwcm9wZXJ0eSBoYXMgbm8gZWZmZWN0IHdoZW4gdGhlIGZsZXhib3ggaGFzIG9ubHkgYSBzaW5nbGUgbGluZS5cclxuLy9cclxuLy8gVmFsdWVzOiBmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBzcGFjZS1iZXR3ZWVuIHwgc3BhY2UtYXJvdW5kIHwgc3RyZXRjaFxyXG4vLyBEZWZhdWx0OiBzdHJldGNoXHJcbi8vXHJcbi8vIGh0dHA6Ly93My5vcmcvdHIvY3NzMy1mbGV4Ym94LyNhbGlnbi1jb250ZW50LXByb3BlcnR5XHJcblxyXG5AbWl4aW4gYWxpZ24tY29udGVudCgkdmFsdWU6IHN0cmV0Y2gpIHtcclxuXHQvLyBObyBXZWJraXQgQm94IEZhbGxiYWNrLlxyXG5cdC13ZWJraXQtYWxpZ24tY29udGVudDogJHZhbHVlO1xyXG5cdC1tb3otYWxpZ24tY29udGVudDogJHZhbHVlO1xyXG5cdEBpZiAkdmFsdWUgPT0gZmxleC1zdGFydCB7XHJcblx0XHQtbXMtZmxleC1saW5lLXBhY2s6IHN0YXJ0O1xyXG5cdH0gQGVsc2UgaWYgJHZhbHVlID09IGZsZXgtZW5kIHtcclxuXHRcdC1tcy1mbGV4LWxpbmUtcGFjazogZW5kO1xyXG5cdH0gQGVsc2Uge1xyXG5cdFx0LW1zLWZsZXgtbGluZS1wYWNrOiAkdmFsdWU7XHJcblx0fVxyXG5cdGFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcclxufVxyXG4iLCJcclxuXHJcbi8qKioqKioqKioqKioqKioqKioqKipcclxuQlVUVE9OIERFRkFVTFRTXHJcbldlJ3JlIGdvbm5hIHVzZSBhIHBsYWNlaG9sZGVyIHNlbGVjdG9yIGhlcmVcclxuc28gd2UgY2FuIHVzZSBjb21tb24gc3R5bGVzLiBXZSB0aGVuIHVzZSB0aGlzXHJcbnRvIGxvYWQgdXAgdGhlIGRlZmF1bHRzIGluIGFsbCBvdXIgYnV0dG9ucy5cclxuXHJcbkhlcmUncyBhIHF1aWNrIHZpZGVvIHRvIHNob3cgaG93IGl0IHdvcmtzOlxyXG5odHRwOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9aHdkVnBLaUp6YWNcclxuXHJcbioqKioqKioqKioqKioqKioqKioqKi9cclxuXHJcbiVidG4ge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIFxyXG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcclxuICBsaW5lLWhlaWdodDogNDBweDtcclxuICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIHBhZGRpbmc6IDAgMjRweDtcclxuICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gIGJvcmRlcjogMDtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4zcyBlYXNlLWluLW91dDtcclxuICBtaW4td2lkdGg6IDE0N3B4O1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBcclxuXHJcbiAgLy8gaG92ZXJpbmcgb24gdGhlIGJ0blxyXG4gICY6aG92ZXIsICY6Zm9jdXMge1xyXG4gICAgLy9jb2xvcjogJHdoaXRlO1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgb3V0bGluZTogbm9uZTtcclxuICB9IC8vIGVuZCBob3ZlclxyXG5cclxuICAvLyBjbGlja2luZyBvbiB0aGUgYnV0dG9uXHJcbiAgJjphY3RpdmUge1xyXG4gICAgdG9wOiAxcHg7IC8vIGFkZHMgYSB0aW55IGhvcCB0byB0aGUgY2xpY2tcclxuICB9IC8vIGVuZCBhY3RpdmVcclxuXHJcbn0gLy8gZW5kIC5idXR0b25cclxuXHJcbi8qXHJcbkFuIGV4YW1wbGUgYnV0dG9uLlxyXG5Zb3UgY2FuIHVzZSB0aGlzIGV4YW1wbGUgaWYgeW91IHdhbnQuIEp1c3QgcmVwbGFjZSBhbGwgdGhlIHZhcmlhYmxlc1xyXG5hbmQgaXQgd2lsbCBjcmVhdGUgYSBidXR0b24gZGVwZW5kYW50IG9uIHRob3NlIHZhcmlhYmxlcy5cclxuKi9cclxuXHJcbi5idG4ge1xyXG4gIEBleHRlbmQgJWJ0bjsgLy8gaGVyZSB3ZSBsb2FkIHRoZSBidG4gZGVmYXVsdHNcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG4gIGNvbG9yOiAkdGV4dC1jb2xvcjtcclxuICAvL21hcmdpbi10b3A6IDE1cHg7XHJcbiAgYm9yZGVyOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgdHJhbnNpdGlvbjogMC4ycztcclxuXHJcbiAgJjpob3ZlcixcclxuICAmOmZvY3VzIHtcclxuICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgYmFja2dyb3VuZDogIzlEMTYyRTtcclxuICAgIGJvcmRlcjogMnB4IHNvbGlkICNmZmY7XHJcbiAgfSAvLyBlbmQgaG92ZXJcclxuXHJcbiAgJjphY3RpdmUge1xyXG4gICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGJsdWUsIDUlKTtcclxuICB9IC8vIGVuZCBhY3RpdmVcclxuXHJcbn0gXHJcblxyXG4uYnRuLmJ1cmcge1xyXG4gIEBleHRlbmQgJWJ0bjsgLy8gaGVyZSB3ZSBsb2FkIHRoZSBidG4gZGVmYXVsdHNcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnVyZztcclxuICBjb2xvcjogI2ZmZjtcclxuICBsaW5lLWhlaWdodDogMzBweDtcclxuXHJcbiAgJjpob3ZlcixcclxuICAmOmZvY3VzIHtcclxuICAgIC8vYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRibHVlLCA0JSk7XHJcbiAgfSAvLyBlbmQgaG92ZXJcclxuXHJcbiAgJjphY3RpdmUge1xyXG4gICAgLy9iYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGJsdWUsIDUlKTtcclxuICB9IC8vIGVuZCBhY3RpdmVcclxuXHJcbn1cclxuIiwiLyoqKioqKioqKioqKioqKioqKioqKlxyXG5JTlBVVFNcclxuKioqKioqKioqKioqKioqKioqKioqL1xyXG5cclxuLy8gc2V0dGluZyB1cCBkZWZhdWx0c1xyXG5pbnB1dFt0eXBlPVwidGV4dFwiXSxcclxuaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLFxyXG5pbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0sXHJcbmlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcclxuaW5wdXRbdHlwZT1cImRhdGVcIl0sXHJcbmlucHV0W3R5cGU9XCJtb250aFwiXSxcclxuaW5wdXRbdHlwZT1cInRpbWVcIl0sXHJcbmlucHV0W3R5cGU9XCJ3ZWVrXCJdLFxyXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdLFxyXG5pbnB1dFt0eXBlPVwiZW1haWxcIl0sXHJcbmlucHV0W3R5cGU9XCJ1cmxcIl0sXHJcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXHJcbmlucHV0W3R5cGU9XCJ0ZWxcIl0sXHJcbmlucHV0W3R5cGU9XCJjb2xvclwiXSxcclxuc2VsZWN0LFxyXG50ZXh0YXJlYSB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgaGVpZ2h0OiA0MHB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAxZW07XHJcbiAgcGFkZGluZzogMCAxMHB4O1xyXG4gIG1hcmdpbi1ib3R0b206IDFlbTtcclxuICBmb250LXNpemU6IGluaGVyaXQ7XHJcbiAgY29sb3I6ICR0ZXh0LWNvbG9yO1xyXG4gIGJvcmRlci1yYWRpdXM6IDhweDtcclxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgIzlEMTYyRTtcclxuICB3aWR0aDogMTAwJTtcclxuICBmb250LWZhbWlseTogaW5oZXJpdDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkbC1ncmF5O1xyXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcyBlYXNlLWluLW91dDtcclxuXHJcbiAgLy8gYSBmb2N1c2VkIGlucHV0IChvciBob3ZlcmVkIG9uKVxyXG4gICY6Zm9jdXMsXHJcbiAgJjphY3RpdmUge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkbC1ncmF5LCA0JSk7XHJcbiAgICBvdXRsaW5lOiBub25lO1xyXG4gIH1cclxuXHJcbiAgLy8gZW5kIGhvdmVyIG9yIGZvY3VzXHJcblxyXG4gIEBpbmNsdWRlIGlucHV0LXBsYWNlaG9sZGVyIHtcclxuICAgIGNvbG9yOiAkdGV4dC1jb2xvcjtcclxuICB9XHJcblxyXG4gIC8vIGVycm9yIG5vdGlmaWNhdGlvblxyXG4gIC8qXHJcbiAgJi5lcnJvcixcclxuICAmLmlzLWludmFsaWQge1xyXG4gICAgY29sb3I6ICRhbGVydC1yZWQ7XHJcbiAgICBib3JkZXItY29sb3I6ICRhbGVydC1yZWQ7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA5OSUgY2VudGVyO1xyXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJZQUFBQVdDQVlBQUFERXRHdzdBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlScFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1TXkxak1ERXhJRFkyTGpFME5UWTJNU3dnTWpBeE1pOHdNaTh3TmkweE5EbzFOam95TnlBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVOVE5pQW9UV0ZqYVc1MGIzTm9LU0lnZUcxd1RVMDZTVzV6ZEdGdVkyVkpSRDBpZUcxd0xtbHBaRG8yTkRNME5EUkVRa1l3TkVJeE1VVXlPVEk0UkVaR1FURXpNekEyTURjeU5pSWdlRzF3VFUwNlJHOWpkVzFsYm5SSlJEMGllRzF3TG1ScFpEbzJORE0wTkRSRVEwWXdORUl4TVVVeU9USTRSRVpHUVRFek16QTJNRGN5TmlJK0lEeDRiWEJOVFRwRVpYSnBkbVZrUm5KdmJTQnpkRkpsWmpwcGJuTjBZVzVqWlVsRVBTSjRiWEF1YVdsa09qUTNPRFJHUmtFMlJqQTBRVEV4UlRJNU1qaEVSa1pCTVRNek1EWXdOekkySWlCemRGSmxaanBrYjJOMWJXVnVkRWxFUFNKNGJYQXVaR2xrT2pZME16UTBORVJCUmpBMFFqRXhSVEk1TWpoRVJrWkJNVE16TURZd056STJJaTgrSUR3dmNtUm1Pa1JsYzJOeWFYQjBhVzl1UGlBOEwzSmtaanBTUkVZK0lEd3ZlRHA0YlhCdFpYUmhQaUE4UDNod1lXTnJaWFFnWlc1a1BTSnlJajgrVThpVDV3QUFBZWRKUkVGVWVOcWsxVTlJMDJFY3gvSHRWM2FJRkFjMWhjUkRVb0dYUkFxMG9OTEEyQ3JzRUZtSGJpa1p1MGlRWUlGR1lBaWVna0NwTGlwQnhQcERFQk1VekIwRWhTRzJMaEc3aE1SMkd2aVBnVVR2QjU3Qnc4UDMrVTIzQjE2SFBYOCtlL2I4bnQ5M3dlelpTTUNuaFhFVEYzQWNCNUJEQ25IOERxOThFeGNHSGNGbjhBaDNjZERuaStmeG5QRHY5b0FuVEI3Q0t1NlZDRlh0Q2haeTU2THhVanQramZ1Qjh0b1NPdGg5d2Q3eFdBV2hxclVqWVIvRlJUd1dKbStpSVBUL3c3YlFmNWxqaVpuQmc0NWR0S0ZYNkgrTFU4Z0lZOE9FVjZ2Z1RrU3R3WFdFOEJQVEdESEdQcU5QejJtQ2ZTT09Za0E5OVR2Q3QxYmhHUEw2OHpNY3dtbmNNdWFwZTEwanJJK3E0QmJIaS9GTG4zMVM5ejJ4NXRSaFRjKzFXNTA2aXBNK1Qzb1JENFgrOCtxdGM0U3FGdkwwei9GcjE0UytTemppczhiejlMdnZhcThjd1Mvd3dHZmRscWZQU1dxVGlGbFg3N28xM3U5WW0xUEJzOEpBeXRwUm95NDRYOUZ0OUUvZ3ZiQStyWUtuOE5jYWFNVmM4VUhnQnc0YjkvaXFVUVo2aE9BSkZieURjVWZsbXNFWDRhNit3VHRIR2ZoQUlVcWExVTI5WmMyQnl0b3VUaEQ4eDZ4dU41Q3RNUGkyQ3JYTFprWmYvSHlab1JGQ1A3bitRVlI0UFY3dUkvQWpHZ2hON09VL3IxaWxucUlMdGZwTkMrbzZ2SUZsakJLWWxoYi9GMkFBZ2FCc1dSNXdSaUlBQUFBQVNVVk9SSzVDWUlJPSk7XHJcbiAgICBvdXRsaW5lLWNvbG9yOiAkYWxlcnQtcmVkO1xyXG4gIH0gLy8gZW5kIGludmFsaWQgaW5wdXRcclxuXHJcbiAgLy8gc3VjY2VzcyBub3RpZmljYXRpb25cclxuICAmLnN1Y2Nlc3MsXHJcbiAgJi5pcy12YWxpZCB7XHJcbiAgICBjb2xvcjogJGFsZXJ0LWdyZWVuO1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkYWxlcnQtZ3JlZW47XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XHJcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA5OSUgY2VudGVyO1xyXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJZQUFBQVdDQVlBQUFERXRHdzdBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlScFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1TXkxak1ERXhJRFkyTGpFME5UWTJNU3dnTWpBeE1pOHdNaTh3TmkweE5EbzFOam95TnlBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVOVE5pQW9UV0ZqYVc1MGIzTm9LU0lnZUcxd1RVMDZTVzV6ZEdGdVkyVkpSRDBpZUcxd0xtbHBaRG8yTkRNME5EUkVSa1l3TkVJeE1VVXlPVEk0UkVaR1FURXpNekEyTURjeU5pSWdlRzF3VFUwNlJHOWpkVzFsYm5SSlJEMGllRzF3TG1ScFpEbzJORE0wTkRSRk1FWXdORUl4TVVVeU9USTRSRVpHUVRFek16QTJNRGN5TmlJK0lEeDRiWEJOVFRwRVpYSnBkbVZrUm5KdmJTQnpkRkpsWmpwcGJuTjBZVzVqWlVsRVBTSjRiWEF1YVdsa09qWTBNelEwTkVSRVJqQTBRakV4UlRJNU1qaEVSa1pCTVRNek1EWXdOekkySWlCemRGSmxaanBrYjJOMWJXVnVkRWxFUFNKNGJYQXVaR2xrT2pZME16UTBORVJGUmpBMFFqRXhSVEk1TWpoRVJrWkJNVE16TURZd056STJJaTgrSUR3dmNtUm1Pa1JsYzJOeWFYQjBhVzl1UGlBOEwzSmtaanBTUkVZK0lEd3ZlRHA0YlhCdFpYUmhQaUE4UDNod1lXTnJaWFFnWlc1a1BTSnlJajgrN29sa1RRQUFBZmhKUkVGVWVOcWtsVTlvRTBFVWh6ZHJvV2p3MHRCZVdsRHhrRWFJcDU1VHNDVTlWS0lnQ3JIQmVsQThDUTFLcjFXUGJaclEzZ3F0UXF2R3F4cFFjMmpCazZCSUlhQUdENHFOQ0tVUnBEU0tpUGk5OGdMRHNKdC8vdUJqc3p0dmZuazc4OTVzSVBBdzYvam9HTVRoRkp5QVhuMitBKzlnQTU3L1RhWS9lVTBPZUJnZmhHbTREaUduc2I3REFzenhCei9OQWRjS2pNSkx1TldDcWFnSGJzc2NONStMK2htSDRRa01PZTFMNWp6RmZOQTJQZ1QzNGFqVHVZN0FHdVpCMC9obWg1bStnUzByOHh2MXpSdmcrZ0dDSFppT3duRjREUDNpQjNzUWtZeFBkMkM2Q1dmaEI5WHdsdXM1K0sxajRqWHVhcTNhK2dNMUg5T1BjQWErN3E5bFBpZFpKcUhiaUltN1dnMjJyc0VJN0ZyUFN6QU1YL1QrQUR5QUtTc3U3RnIxS3BsZWhMdndDczVEdmZCZjY1cCtNeXBxUmJPMUZYSzl1dEg0L1FLdWFxWVRzRzNFM0lOSnYwMFE0NnB4MytYeGFuSi9VdGUyL3ZxUDRGS0R6YTJLY2RsaklLZG5oUzB4WFlVTFRhcW1MTVpGbjhGRlNGdHZ0Nng3MEV4RkNTNW9VWHNwcTJzc2E3b0VsMXN3RmErQ0dGZGd0a0hnUER5REt5MDJ6eXhOVTZsWFJVWmIxRXVIWWF5Tk5zK1loNUIwV1FvKy84ZnBKbk5UWkZ1enoyT3Bqb1EyUXJ1U09RbE15MzVmRUdtRUdNeFk5ZTFicnhvYnc3VGtXQTFoNnhmY2tVUGIrSmhHb0UvSHBmdmV3N3FVbGQvSDlKOEFBd0RwdzNXWXJ4Y1ozUUFBQUFCSlJVNUVya0pnZ2c9PSk7XHJcbiAgICBvdXRsaW5lLWNvbG9yOiAkYWxlcnQtZ3JlZW47XHJcbiAgfSAvLyBlbmQgdmFsaWQgaW5wdXRcclxuKi9cclxuXHJcbiAgLy8gYSBkaXNhYmxlZCBpbnB1dFxyXG4gICZbZGlzYWJsZWRdLFxyXG4gICYuaXMtZGlzYWJsZWQge1xyXG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcclxuICAgIGJvcmRlci1jb2xvcjogJHRleHQtY29sb3I7XHJcbiAgICBvcGFjaXR5OiAwLjY7XHJcblxyXG4gICAgJjpmb2N1cyxcclxuICAgICY6YWN0aXZlIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGFsZXJ0LWJsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gZW5kIGRpc2FibGVkIGZvY3VzXHJcblxyXG4gIH1cclxuXHJcbiAgLy8gZW5kIGRpc2FibGVkIGlucHV0XHJcblxyXG59XHJcblxyXG4vLyBlbmQgaW5wdXQgZGVmYXVsdHNcclxuXHJcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xyXG4gIGJvcmRlcjogbm9uZTtcclxuICBiYWNrZ3JvdW5kOiAjOUQxNjJFO1xyXG4gIGJvcmRlci1yYWRpdXM6IDhweDtcclxuICBjb2xvcjogd2hpdGU7XHJcbiAgaGVpZ2h0OiAzNXB4O1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB3aWR0aDogMTUwcHg7XHJcbiAgbWFyZ2luOiAxMHB4IDA7XHJcbiAgbWFyZ2luLXRvcDogMjBweDtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgdHJhbnNpdGlvbjogMC42cztcclxufVxyXG5cclxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTpob3ZlciB7XHJcbiAgYmFja2dyb3VuZDogZGFya2VuKCM5RDE2MkUsMjAlKTtcclxufVxyXG5cclxuLy8uZmllbGQuZmlsZSB7XHJcbi8vICBsYWJlbCB7XHJcbi8vICAgIHdpZHRoOiAxMjBweDtcclxuLy8gICAgYm9yZGVyOiAxcHggc29saWQgIzlEMTYyRTtcclxuLy8gICAgYmFja2dyb3VuZDogI0ZGRjtcclxuLy8gICAgYm9yZGVyLXJhZGl1czogOHB4O1xyXG4vLyAgICBvdXRsaW5lOiBub25lO1xyXG4vLyAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbi8vICAgIHBhZGRpbmc6IDEwcHggMTVweDtcclxuLy8gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuLy8gICAgbWFyZ2luLXRvcDogMjBweDtcclxuLy8gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4vLyAgfVxyXG5cclxuICBpbnB1dFt0eXBlPVwiZmlsZVwiXSB7XHJcbiAgICAvL29wYWNpdHk6IDA7XHJcbiAgICAvL3Bvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIC8vbGVmdDogLTEwMHZ3O1xyXG5cclxuICAgIHdpZHRoOiAzMDBweDtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICM5RDE2MkU7XHJcbiAgICBiYWNrZ3JvdW5kOiAjRkZGO1xyXG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xyXG4gICAgb3V0bGluZTogbm9uZTtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIHBhZGRpbmc6IDEwcHggMTVweDtcclxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBtYXJnaW46IC0xMHB4IDAgLTEwcHggMDtcclxuICB9XHJcblxyXG5cclxuLy99XHJcblxyXG4udXBsb2FkLWZpZWxkLW1hcmdpbi10b3Age1xyXG4gIG1hcmdpbi10b3A6IDI1cHg7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjVweDtcclxuICAubWlkZGxlQ29sdW1uIHtcclxuICAgIG1hcmdpbi10b3A6IDEycHg7XHJcbiAgfVxyXG59XHJcblxyXG4uaGFsZi1waG9uZS1maWVsZCB7XHJcbiAgd2lkdGg6IDIwMHB4O1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHJcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDE4NTBweCkge1xyXG4gICAgd2lkdGg6IDEwMCUhaW1wb3J0YW50O1xyXG4gIH1cclxufVxyXG5cclxuLmhhbGYtZW1haWwtZmllbGQge1xyXG4gIHdpZHRoOiAyMTVweCAhaW1wb3J0YW50O1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBtYXJnaW4tbGVmdDogMTguNXB4O1xyXG5cclxuICA+IGxhYmVsIHtcclxuICAgIHdpZHRoOiAyMTVweCAhaW1wb3J0YW50O1xyXG4gICAgbWFyZ2luLWxlZnQ6IDE4LjVweDtcclxuICB9XHJcblxyXG4gIEBtZWRpYSAobWluLXdpZHRoOiAwcHggKSBhbmQgKG1heC13aWR0aDogMTg1MHB4ICkge1xyXG4gIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgPiBsYWJlbCB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDE4NTBweCkge1xyXG4gICAgd2lkdGg6IDEwMCUhaW1wb3J0YW50O1xyXG4gIH1cclxufVxyXG5cclxudGV4dGFyZWEge1xyXG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbn1cclxuXHJcblxyXG5pbnB1dC5zbWFsbCB7XHJcbiAgbWF4LXdpZHRoOiAxMjBweDtcclxufVxyXG5cclxuLy8gc3BhY2luZyBvdXQgdGhlIHBhc3N3b3JkICh0aHggQG11cnRhdWdoKVxyXG5pbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0ge1xyXG4gIGxldHRlci1zcGFjaW5nOiAwLjNlbTtcclxufVxyXG5cclxuXHJcbi8vIHRleHRhcmVhc1xyXG50ZXh0YXJlYSB7XHJcbiAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gIG1pbi1oZWlnaHQ6IDEyMHB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjVlbTtcclxuICBwYWRkaW5nOiAxMHB4O1xyXG59XHJcblxyXG4vLyBzZWxlY3RzXHJcbnNlbGVjdCB7XHJcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyAvKiAxICovXHJcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xyXG4gIGFwcGVhcmFuY2U6IG5vbmU7XHJcbiAgdGV4dC1vdmVyZmxvdzogJyc7XHJcblxyXG4gIC8vIEJhc2U2NCBlbmNvZGVkIGxpdHRsZSBhcnJvd1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUE4QUFBQUhDQVlBQUFEWGhSY25BQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlScFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1TXkxak1ERXhJRFkyTGpFME5UWTJNU3dnTWpBeE1pOHdNaTh3TmkweE5EbzFOam95TnlBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVOVE5pQW9UV0ZqYVc1MGIzTm9LU0lnZUcxd1RVMDZTVzV6ZEdGdVkyVkpSRDBpZUcxd0xtbHBaRHBFT0VaQ01qWXhNRVl3TlVVeE1VVXlPVEk0UkVaR1FURXpNekEyTURjeU5pSWdlRzF3VFUwNlJHOWpkVzFsYm5SSlJEMGllRzF3TG1ScFpEcEVPRVpDTWpZeE1VWXdOVVV4TVVVeU9USTRSRVpHUVRFek16QTJNRGN5TmlJK0lEeDRiWEJOVFRwRVpYSnBkbVZrUm5KdmJTQnpkRkpsWmpwcGJuTjBZVzVqWlVsRVBTSjRiWEF1YVdsa09rUTRSa0l5TmpCRlJqQTFSVEV4UlRJNU1qaEVSa1pCTVRNek1EWXdOekkySWlCemRGSmxaanBrYjJOMWJXVnVkRWxFUFNKNGJYQXVaR2xrT2tRNFJrSXlOakJHUmpBMVJURXhSVEk1TWpoRVJrWkJNVE16TURZd056STJJaTgrSUR3dmNtUm1Pa1JsYzJOeWFYQjBhVzl1UGlBOEwzSmtaanBTUkVZK0lEd3ZlRHA0YlhCdFpYUmhQaUE4UDNod1lXTnJaWFFnWlc1a1BTSnlJajgrVnhrcDlnQUFBSTlKUkVGVWVOcGlkSEZ4dWNIQXdLQU94RStBbUptQk1QZ0x4REpBZkpNRlNLd0Q0a3FvQUNsZ0ErUC8vLzhaWEYxZFBhQ0djQktoNlFjUUIrM2V2WHM3V0RNSUFBMlFCMUk3Z0ZnRGowYVFGejJCR2grQU9Fd3dVYURBUXlCbENNUjdjR2pjQzVLSGFRUUJ1TTNJQU9pS1RpQlZoaVRVRGRSVWhxNE9xMmFvQWVsQWFoSVE1d00xenNDbUJpREFBRGhZTUpYVlo5dTlBQUFBQUVsRlRrU3VRbUNDKTtcclxuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gIGJhY2tncm91bmQtcG9zaXRpb246IDk3LjUlIGNlbnRlcjtcclxufVxyXG5cclxuc2VsZWN0OjotbXMtZXhwYW5kIHtcclxuICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4udXNlcmZvcm0tZmllbGRzIGxhYmVsIHtcclxuICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4udmVycGxpY2h0LXZlbGQge1xyXG4gIGNvbG9yOiAjOUQxNjJFO1xyXG59XHJcblxyXG5cclxuIiwiKnstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3h9XHJcbmhye2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjFweDtib3JkZXI6MDtib3JkZXItdG9wOjFweCBzb2xpZCAjY2NjO21hcmdpbjoxZW0gMDtwYWRkaW5nOjB9XHJcbmF1ZGlvLGNhbnZhcyxpZnJhbWUsaW1nLHN2Zyx2aWRlb3t2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9XHJcbmZpZWxkc2V0e2JvcmRlcjowO21hcmdpbjowO3BhZGRpbmc6MH1cclxudGV4dGFyZWF7cmVzaXplOnZlcnRpY2FsfVxyXG5pbWd7bWF4LXdpZHRoOjEwMCU7aGVpZ2h0OmF1dG99XHJcbnN2Z3ttYXgtd2lkdGg6MTAwJTt9XHJcbmJ1dHRvbntwYWRkaW5nOiAwO21hcmdpbjogMDtib3JkZXI6bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDt9XHJcbmJvZHkge1xyXG5cdGZvbnQtZmFtaWx5OiAkbWFpbi1mb250O1xyXG5cdGZvbnQtc2l6ZTogMTAwJTtcclxuXHRsaW5lLWhlaWdodDogMS4zMztcclxuXHRjb2xvcjogJHRleHQtY29sb3I7XHJcblx0YmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xyXG4gIFx0LXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XHJcbiAgXHQtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqKioqKlxyXG5MQVlPVVQgJiBHUklEIFNUWUxFU1xyXG4qKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG4ud3JhcHBlciB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7cGFkZGluZy1yaWdodDogMjBweDtcclxufVxyXG5cclxuLyoqKioqKioqKioqKioqKioqKioqKlxyXG5MSU5LIFNUWUxFU1xyXG4qKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5hIHtcclxuXHRjb2xvcjogJGxpbmstY29sb3I7XHJcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG5cdC8qIG9uIGhvdmVyICovXHJcblx0Jjpob3ZlciwgJjpmb2N1cyB7XHJcblx0XHRjb2xvcjogJGxpbmstaG92ZXI7XHJcblx0fVxyXG5cclxuXHQvKiBvbiBjbGljayAqL1xyXG5cdCY6YWN0aXZlIHtcclxuXHJcblx0fVxyXG5cclxuXHQvKiBtb2JpbGUgdGFwIGNvbG9yICovXHJcblx0JjpsaW5rIHtcclxuXHRcdC8qXHJcblx0XHR0aGlzIGhpZ2hsaWdodHMgbGlua3Mgb24gaVBob25lcy9pUGFkcy5cclxuXHRcdHNvIGl0IGJhc2ljYWxseSB3b3JrcyBsaWtlIHRoZSA6aG92ZXIgc2VsZWN0b3JcclxuXHRcdGZvciBtb2JpbGUgZGV2aWNlcy5cclxuXHRcdCovXHJcblx0XHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3IgOiByZ2JhKCAwLCAwLCAwLCAwLjMgKTtcclxuXHR9XHJcbn1cclxuXHJcbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuSDEsIEgyLCBIMywgSDQsIEg1IFNUWUxFU1xyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5oMSwgLmgxLCBoMiwgLmgyLCBoMywgLmgzLCBoNCwgLmg0LCBoNSwgLmg1IHtcclxuXHR0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVsZWdpYmlsaXR5O1xyXG5cdFxyXG5cdC8qXHJcblx0aWYgeW91J3JlIGdvaW5nIHRvIHVzZSB3ZWJmb250cywgYmUgc3VyZSB0byBjaGVjayB5b3VyIHdlaWdodHNcclxuXHRodHRwOi8vY3NzLXRyaWNrcy5jb20vd2F0Y2gteW91ci1mb250LXdlaWdodC9cclxuXHQqL1xyXG5cclxuXHQvKiByZW1vdmluZyB0ZXh0IGRlY29yYXRpb24gZnJvbSBhbGwgaGVhZGxpbmUgbGlua3MgKi9cclxuXHRhIHtcclxuICAgICAgICAgICAgY29sb3I6ICR0ZXh0LWNvbG9yO1xyXG4gICAgICAgICAgICAmOmhvdmVye2NvbG9yOiAkYnVyZzt9XHJcblx0fVxyXG59XHJcbi5tZXNzYWdlIHtcclxuXHJcbiAgY29sb3I6IHJlZDtcclxuICBmb250LXdlaWdodDogNjAwO1xyXG59XHJcblxyXG5oMSwgLmgxIHtcclxuXHRmb250LXNpemU6IGVtKDIxKTtcdFxyXG59XHJcblxyXG5oMiwgLmgyIHtcclxuXHRmb250LXNpemU6IGVtKDE4KTtcclxuICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG59XHJcblxyXG5oMywgLmgzLCBoNCwgLmg0IHtcclxuXHRmb250LXNpemU6IDFlbTtcclxuICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG59XHJcblxyXG5oNSwgLmg1IHtcclxuXHRmb250LXNpemU6IDAuODQ2ZW07XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxufVxyXG5cclxuLyoqKioqKioqKioqKioqKioqKioqKlxyXG5IRUFERVIgU1RZTEVTXHJcbioqKioqKioqKioqKioqKioqKioqKi9cclxuXHJcbi5zdGlja3ktbmF2YmFyIHtcclxuICBwb3NpdGlvbjogc3RpY2t5O1xyXG4gIHRvcDogMDtcclxuICB6LWluZGV4OiAxMTQ7XHJcbiAgYmFja2dyb3VuZDogd2hpdGU7XHJcbiAgYm94LXNoYWRvdzogMCAycHggMnB4IC0ycHggYmxhY2s7XHJcbn1cclxuXHJcbi50b3AtYmFye2hlaWdodDogMzVweDtwYWRkaW5nLXRvcDogN3B4O2NvbG9yOiAjZmZmO2JhY2tncm91bmQtY29sb3I6ICRidXJnO1xyXG4gICAgICAgIGF7Y29sb3I6ICNmZmY7fVxyXG4gICAgICAgIHN2Z3tmaWxsOiAjZmZmO21hcmdpbi1yaWdodDogM3B4O31cclxufVxyXG4uaGVhZGVyIHtcclxuICAgIHBhZGRpbmctdG9wOiAxNXB4O3BhZGRpbmctYm90dG9tOiAxNXB4O3Bvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIC50b2dnbGV7aGVpZ2h0OiAyNHB4O3dpZHRoOiA0M3B4O2JvcmRlci10b3A6IDRweCBzb2xpZCAkYnVyZztib3JkZXItYm90dG9tOiA0cHggc29saWQgJGJ1cmc7cG9zaXRpb246IGFic29sdXRlO3JpZ2h0OiAyMHB4O3RvcDogMjVweDtvdXRsaW5lOiBub25lO1xyXG4gICAgICAgICAgICBzcGFue2hlaWdodDogMDtkaXNwbGF5OiBibG9jaztib3JkZXItdG9wOiA0cHggc29saWQgJGJ1cmc7fVxyXG4gICAgfVxyXG4gICAgXHJcbn1cclxuLm1haW4tbmF2LCAubWFpbi1uYXYgdWwge3BhZGRpbmc6IDA7bWFyZ2luOiAwO2xpc3Qtc3R5bGU6IG5vbmU7fVxyXG4ubWFpbi1uYXYgbGl7XHJcbiAgICBhe2NvbG9yOiAjMDAwO2Rpc3BsYXk6IGJsb2NrO3BhZGRpbmc6IDVweCAwO1xyXG4gICAgICAmOmhvdmVye2NvbG9yOiAkYnVyZzt9XHJcbiAgICAgICYuYWN0aXZle2NvbG9yOiAkYnVyZzt0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTt9XHJcbiAgICB9XHJcbiAgICBcclxufVxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqKioqKlxyXG5DT05URU5UIFNUWUxFU1xyXG4qKioqKioqKioqKioqKioqKioqKiovXHJcbi5VREYtZmxleCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuXHJcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ0MHB4KSB7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgfVxyXG59XHJcblxyXG5hcnRpY2xlIHVse3BhZGRpbmc6IDA7bGlzdC1zdHlsZTogbm9uZTtcclxuICAgICAgICAgICBsaXtwb3NpdGlvbjogcmVsYXRpdmU7fVxyXG59XHJcbmFydGljbGUgdWw6bm90KFtjbGFzc10pe1xyXG4gICAgbGl7cGFkZGluZy1sZWZ0OiAyMHB4O31cclxuICAgIGxpOjpiZWZvcmV7Y29udGVudDonXFwwMDJEJztwb3NpdGlvbjogYWJzb2x1dGU7bGVmdDogMTBweH1cclxufVxyXG5cclxuLmluLWNvbnRlbnQtaWNvbnMge1xyXG4gICAgbGkrbGl7bWFyZ2luLXRvcDogMTVweDt9XHJcbiAgICAuaWNvbntkaXNwbGF5OiBpbmxpbmUtYmxvY2s7d2lkdGg6IDUwcHg7bGluZS1oZWlnaHQ6IDQ1cHg7aGVpZ2h0OiA1MHB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQtY29sb3I6ICRidXJnO21hcmdpbi1yaWdodDogMTVweDt2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO3RleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHN2Z3tmaWxsOiAjZmZmfVxyXG4gICAgfVxyXG59XHJcblxyXG4uc2VydmljZXMtd3JhcHBlcnt0ZXh0LWFsaWduOiBjZW50ZXI7cGFkZGluZy10b3A6IDIwcHg7fVxyXG4uc2VydmljZSA+IGE6Zmlyc3QtY2hpbGR7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7b3ZlcmZsb3c6IGhpZGRlbjtkaXNwbGF5OiBibG9jazttYXJnaW4tbGVmdDogYXV0bzttYXJnaW4tcmlnaHQ6IGF1dG87Ym9yZGVyOjNweCBzb2xpZCAjZmZmO3RyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjNzIGVhc2UtaW4tb3V0O1xyXG4gICAgJjpob3Zlcntib3JkZXItY29sb3I6ICRidXJnO31cclxuICAgIGltZ3tkaXNwbGF5OiBibG9jazt9XHJcbn1cclxuXHJcbi5hY3RpdmVib3JkZXIge1xyXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtvdmVyZmxvdzogaGlkZGVuO2Rpc3BsYXk6IGJsb2NrO21hcmdpbi1sZWZ0OiBhdXRvO21hcmdpbi1yaWdodDogYXV0bztib3JkZXI6NXB4IHNvbGlkICRidXJnO3RyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjNzIGVhc2UtaW4tb3V0O1xyXG4gIGltZ3tkaXNwbGF5OiBibG9jazt9XHJcbn1cclxuXHJcbi8vI21hcHtiYWNrZ3JvdW5kOiB1cmwoLi4vaW1nL2ctbWFwLnBuZykgNTAlIDUwJSBuby1yZXBlYXQ7LXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6IGNvdmVyO2JhY2tncm91bmQtc2l6ZTogY292ZXI7fSAgdGhpcyBoYXMgdG8gYmVjb21lIGEgbGl2ZSBtYXBcclxuXHJcblxyXG4uaGVyby5pbWFnZXtcclxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgMTAwJTtcclxuICAgIC13ZWJraXQtYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgaGVpZ2h0OiAzNXZoO1xyXG4gICAgbWluLWhlaWdodDogMjQwcHg7XHJcbn1cclxuXHJcbi5xdW90ZXtwYWRkaW5nOiAyMHB4IDA7fVxyXG5cclxuLnByb2plY3RzLWxpc3R7XHJcbiAgICBhLmNpcmNsZXt3aWR0aDogMTUwcHg7aGVpZ2h0OiAxNTBweDt9XHJcbiAgICBsaStsaXttYXJnaW4tdG9wOiAyMHB4O31cclxufVxyXG5cclxuLnBhZ2Utc2VydmljZSAuc2VydmljZSA+IGE6Zmlyc3QtY2hpbGR7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAmOjpiZWZvcmV7QGluY2x1ZGUgcHNldWRvO3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTtsZWZ0OiAwO3RvcDogMDt0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZS1pbi1vdXQ7fVxyXG4gICAgJjpob3Zlcjo6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6IHJnYmEoJGJ1cmcsIDAuNik7fVxyXG59XHJcblxyXG5cclxuLmFkZHJlc3Mge21heC13aWR0aDogNDcwcHg7XHJcbiAgICAuY29udGFjdC1ib3R0b20gbGkrbGl7bWFyZ2luLXRvcDogMjBweDt9XHJcbn1cclxuLmNvbnRhY3QtZm9ybXtcclxuICAgIGZvcm17bWF4LXdpZHRoOiAzNjBweDt9ICAgIFxyXG4gICAgLnJlYy13cmFwcGVye21hcmdpbi1ib3R0b206IDFlbTtkaXNwbGF5OiBpbmxpbmUtYmxvY2s7fVxyXG59XHJcblxyXG4uY3VycmVudCB7XHJcbiAgY29sb3I6ICRidXJnICFpbXBvcnRhbnQ7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn1cclxuXHJcbi8vTEVUIE9QISBMaXZlIGluIGhldCBDTVMgb3AgcGFnaW5hIFwib3BkcmFjaHRnZXZlcnNcIiBpbiBkZSBDb250ZW50IG1vZXRlbiBhbGxlIGxvZ29zIGtvbWVuIHR1c3NlbiAqKio8ZGl2IGNsYXNzPVwibG9nby1wYWdlXCI+IDwvZGl2PioqKiAhISEhISEhISEhISFcclxuXHJcbi5sb2dvLXBhZ2Uge1xyXG4gIHdpZHRoOiA2MHZ3O1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG5cclxuXHJcbiAgaW1nIHtcclxuICAgIHBhZGRpbmc6IDIwcHg7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqKioqKlxyXG5TSURFQkFSUyAmIEFTSURFU1xyXG4qKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKioqKipcclxuRk9PVEVSIFNUWUxFU1xyXG4qKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG4uZm9vdGVyIHtwYWRkaW5nLXRvcDogMjBweDtwYWRkaW5nLWJvdHRvbTogMjBweDtcclxuICAgICAgICAud2lkZ2V0PjpmaXJzdC1jaGlsZHttYXJnaW4tdG9wOiAwO31cclxuICAgICAgICAud2lkZ2V0PjpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206IDA7fVxyXG4gICAgICAgIGg0e21hcmdpbi1ib3R0b206IDEwcHg7fVxyXG4gICAgICAgIGg0K3AsIGg0K3Vse21hcmdpbi10b3A6IDA7fVxyXG4gICAgICAgIHVse0BpbmNsdWRlIGxpc3QtbnVsbH1cclxuICAgICAgICBhe2NvbG9yOiAkdGV4dC1jb2xvcjtcclxuICAgICAgICAgICY6aG92ZXJ7Y29sb3I6ICRidXJnO31cclxuICAgICAgICB9XHJcbn1cclxuLmNvbnRhY3QtYm90dG9tIHtcclxuICAgIGxpe3Bvc2l0aW9uOiByZWxhdGl2ZTtwYWRkaW5nLWxlZnQ6IDM1cHg7fVxyXG4gICAgbGkrbGl7bWFyZ2luLXRvcDogMTBweDt9XHJcbiAgICBzdmd7cG9zaXRpb246IGFic29sdXRlO2xlZnQ6IDA7dG9wOiA2cHg7fVxyXG4gICAgLmZpbGx7ZmlsbDogJGJ1cmd9XHJcbiAgLmZvb3Rlci1mbGV4IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcblxyXG4gICAgLmltYWdlLWZsZXgge1xyXG4gICAgICB3aWR0aDogMzBweDtcclxuICAgIH1cclxuXHJcbiAgICAuY29udGVudC1mbGV4IHtcclxuICAgICAgcCB7XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbi5ib3R0b20tYmFye3BhZGRpbmc6IDEwcHggMDt9XHJcblxyXG4uY2xlYXJmaXg6YmVmb3JlLFxyXG4uY2xlYXJmaXg6YWZ0ZXIge1xyXG4gICAgY29udGVudDogXCIgXCI7XHJcbiAgICBkaXNwbGF5OiB0YWJsZTtcclxufVxyXG5cclxuLmNsZWFyZml4OmFmdGVyIHtcclxuICAgIGNsZWFyOiBib3RoO1xyXG59XHJcblxyXG4uY2xlYXJmaXgge1xyXG4gICAgKnpvb206IDE7XHJcbn1cclxuIiwiLy8gbm9ybWFsaXplOiBodHRwOi8vbmVjb2xhcy5naXRodWIuaW8vbm9ybWFsaXplLmNzcy9cclxuQGltcG9ydCBcInBhcnRpYWxzL25vcm1hbGl6ZVwiO1xyXG5cclxuLy8gU2FzcyB2YXJpYWJsZXNcclxuQGltcG9ydCBcInBhcnRpYWxzL3ZhcmlhYmxlc1wiO1xyXG5cclxuLy8gdHlwb2dyYXBoeVxyXG5AaW1wb3J0IFwicGFydGlhbHMvdHlwb2dyYXBoeVwiO1xyXG5cclxuLy8gU2FzcyBmdW5jdGlvbnNcclxuQGltcG9ydCBcInBhcnRpYWxzL2Z1bmN0aW9uc1wiO1xyXG5cclxuLy8gaW1wb3J0IG1peGluc1xyXG5AaW1wb3J0IFwicGFydGlhbHMvbWl4aW5zXCI7XHJcblxyXG4vLyB0aGUgZmxleFxyXG5AaW1wb3J0IFwicGFydGlhbHMvZmxleFwiO1xyXG5cclxuLy8gZ2xvYmFsIGNsYXNzZXNcclxuQGltcG9ydCBcInBhcnRpYWxzL2dsb2JhbC1jbGFzc2VzXCI7XHJcblxyXG4vLyBidXR0b25zXHJcbkBpbXBvcnQgXCJtb2R1bGVzL2J1dHRvbnNcIjtcclxuXHJcbi8vIGZvcm1zIChpbnB1dHMgJiBsYWJlbHMpXHJcbkBpbXBvcnQgXCJtb2R1bGVzL2Zvcm1zXCI7XHJcblxyXG4vLyBzdHlsZXMgaW4gYmFzZS5zY3NzXHJcbkBpbXBvcnQgXCJicmVha3BvaW50cy9iYXNlXCI7XHJcblxyXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XHJcblxyXG4gIEBpbXBvcnQgXCJicmVha3BvaW50cy80ODBcIjtcclxuXHJcbn1cclxuXHJcbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDgxcHgpIHtcclxuXHJcbiAgQGltcG9ydCBcImJyZWFrcG9pbnRzLzQ4MVwiO1xyXG5cclxufVxyXG5cclxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0ODFweCkgYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XHJcblxyXG4gIEBpbXBvcnQgXCJicmVha3BvaW50cy80ODEtNzY3XCI7XHJcblxyXG59XHJcblxyXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XHJcblxyXG4gIEBpbXBvcnQgXCJicmVha3BvaW50cy83NjdcIjtcclxuXHJcbn1cclxuXHJcbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcclxuXHJcbiAgQGltcG9ydCBcImJyZWFrcG9pbnRzLzc2OFwiO1xyXG5cclxufVxyXG5cclxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcclxuXHJcbiAgQGltcG9ydCBcImJyZWFrcG9pbnRzLzEwMjNcIjtcclxuXHJcbn1cclxuXHJcbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcclxuXHJcbiAgQGltcG9ydCBcImJyZWFrcG9pbnRzLzc2OC0xMDIzXCI7XHJcblxyXG59XHJcblxyXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCkge1xyXG5cclxuICBAaW1wb3J0IFwiYnJlYWtwb2ludHMvMTAyNFwiO1xyXG5cclxufVxyXG5cclxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMTcwcHgpIHtcclxuXHJcbiAgQGltcG9ydCBcImJyZWFrcG9pbnRzLzExNzB1cFwiO1xyXG5cclxufVxyXG5cclxuQGltcG9ydCBcImJyZWFrcG9pbnRzL290aGVyXCI7XHJcblxyXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSksXHJcbm9ubHkgc2NyZWVuIGFuZCAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjUpLFxyXG5vbmx5IHNjcmVlbiBhbmQgKG1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuNSkge1xyXG5cclxuICBAaW1wb3J0IFwiYnJlYWtwb2ludHMvMnhcIjtcclxuXHJcbn1cclxuXHJcbkBtZWRpYSBwcmludCB7XHJcblxyXG4gIC8vIHN0eWxlcyBpbiBwcmludC5zY3NzXHJcbiAgQGltcG9ydCBcInBhcnRpYWxzL3ByaW50XCI7XHJcblxyXG59XHJcbiIsIi5jb250YWN0cy10b3B7QGluY2x1ZGUgZmxleGJveDsgQGluY2x1ZGUgZmxleC1qdXN0KHNwYWNlLWJldHdlZW4pO31cclxuLnRvcC1iYXIgLmxhbmd7ZGlzcGxheTogbm9uZTt9IiwiLnRvcC1iYXIge1xyXG4gICAgLm1haWx7bWFyZ2luLWxlZnQ6IDIwcHg7fVxyXG4gICAgLmxhbmd7cG9zaXRpb246IHJlbGF0aXZlO2N1cnNvcjogcG9pbnRlcjt6LWluZGV4OiA5OTtcclxuICAgICAgICAgIHN2Z3ttYXJnaW4tbGVmdDogNXB4O31cclxuICAgICAgICAgIGF7ZGlzcGxheTogYmxvY2s7cG9zaXRpb246IGFic29sdXRlO2xlZnQ6IDA7dG9wOiAxMDAlO21heC1oZWlnaHQ6IDA7YmFja2dyb3VuZC1jb2xvcjogcmdiYSgkYnVyZywgMC45KTtvdmVyZmxvdzogaGlkZGVuO3RyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O3BhZGRpbmc6IDAgMTBweDt3aWR0aDogMTAwJTt9XHJcbiAgICAgICAgICAmOmhvdmVyIGF7bWF4LWhlaWdodDogMzJweDtwYWRkaW5nOiA1cHggMTBweDt9XHJcbiAgICB9XHJcbn1cclxuIiwiLmhlcm8uaW1hZ2V7XHJcbiAgICAuY29udGVudHtkaXNwbGF5OiBub25lO31cclxufVxyXG5cclxuYS5jaXJjbGV7d2lkdGg6IDE3NXB4O2hlaWdodDogMTc1cHg7fVxyXG5cclxuLnBhZ2Utc2VydmljZSAuaGVyb3tcclxuICAgIC5jb250ZW50e2Rpc3BsYXk6IGJsb2NrO2NvbG9yOiAjZmZmO1xyXG4gICAgcGFkZGluZzogMTFweCAzMnB4IDEycHg7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRidXJnLDAuOSk7XHJcbiAgICBib3R0b206IDA7fVxyXG4gICAgaDF7bWFyZ2luOiAwO31zXHJcbiAgICBoNCwgcHtkaXNwbGF5OiBub25lO31cclxufVxyXG5cclxuXHJcbi5mb290ZXIgLndpZGdldCsud2lkZ2V0e21hcmdpbi10b3A6IDIwcHg7fVxyXG5cclxuLnNlcnZpY2UrLnNlcnZpY2V7bWFyZ2luLXRvcDogMzVweDt9XHJcbiNtYXB7aGVpZ2h0OiAzMzBweDt9XHJcblxyXG4ucXVvdGV7dGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAuaDJ7bWFyZ2luLWJvdHRvbTogMTBweDt9XHJcbn1cclxuXHJcbi5jb250YWN0LWZvcm17XHJcbiAgICBmb3Jte3RleHQtYWxpZ246IHJpZ2h0O30gICAgXHJcbn0iLCIuaGVyby5pbWFnZXtwb3NpdGlvbjogcmVsYXRpdmU7aGVpZ2h0OjM2MHB4O1xyXG4gICAgICAgICAgICAmOjpiZWZvcmV7Y29udGVudDonJztwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDo1MCU7aGVpZ2h0OjEwMCU7bGVmdDowO3RvcDowO2JhY2tncm91bmQtY29sb3I6cmdiYSgxNTcsMjIsNDYsMC45KX1cclxuICAgIC5jb250ZW50e2NvbG9yOiNmZmY7cGFkZGluZzoxMXB4IDMycHggMTJweDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMDAlO2xlZnQ6MDt0ZXh0LWFsaWduOmNlbnRlcjt3aWR0aDo1MCU7dG9wOjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTt0ZXh0LWFsaWduOmxlZnQ7XHJcbiAgICAgICAgICAgICBoMSwgcHttYXJnaW46IDA7fVxyXG4gICAgICAgICAgICAgaDR7bWFyZ2luOiAxMHB4IDA7Zm9udC13ZWlnaHQ6NTAwfVxyXG4gICAgfVxyXG59XHJcblxyXG5cclxuLmZvb3RlciAud2lkZ2V0Om5vdCg6bnRoLWNoaWxkKDIpKSB7d2lkdGg6IDMzLjMzJTt9XHJcbi5mb290ZXIgLndpZGdldDpudGgtY2hpbGQoMikge3dpZHRoOiAyOC42JTt9XHJcbi5mb290ZXIgLndpZGdldDpub3QoOmxhc3QtY2hpbGQpe3BhZGRpbmctcmlnaHQ6IDIwcHg7fVxyXG4uaHAtaW50cm97d2lkdGg6IDY0JTtcclxuICAgICAgICAgJiArIGRpdnt3aWR0aDogMzAlO31cclxufVxyXG4uc2VydmljZXt3aWR0aDogY2FsYyg1MCUgLSAxMHB4KTttYXJnaW4tYm90dG9tOiAzMHB4O1xyXG4gICAgICAgIHB7bWFyZ2luLWJvdHRvbTogMDt9XHJcbn1cclxuLm1hcC13cmFwcGVyIHtcclxuICAgIC5pbWctd3JhcHBlcnt3aWR0aDogMzklO31cclxuICAgICNtYXB7LXdlYmtpdC1mbGV4OiAxIDAgYXV0bzstbXMtZmxleDogMSAwIGF1dG87ZmxleDogMSAwIGF1dG87fVxyXG59XHJcblxyXG5cclxuLnF1b3RlIC53cmFwcGVye1xyXG4gICAgPiA6Zmlyc3QtY2hpbGR7d2lkdGg6IDYxLjYlOyBwYWRkaW5nLXJpZ2h0OiAzMHB4O31cclxufVxyXG5cclxuXHJcbi5zZXJ2aWNlLWludHJve1xyXG4gICAgLmluZm8gaDJ7bWFyZ2luLXRvcDogMDt9XHJcbn1cclxuXHJcbi5mbGV4LTc2OCAuY29se3dpZHRoOiBjYWxjKDUwJSAtIDIwcHgpO1xyXG4gICAgJj46Zmlyc3QtY2hpbGR7bWFyZ2luLXRvcDogMDt9XHJcbn1cclxuXHJcbi5tYXJnaW4tcmlnaHQtY2xhc3Mge1xyXG4gIG1hcmdpbi1yaWdodDogMjAwcHg7XHJcbn1cclxuXHJcbi5wcm9qZWN0cy1saXN0e1xyXG4gICAgLmgze21hcmdpbi10b3A6IDA7fVxyXG59XHJcblxyXG4ucHJvamVjdCB7XHJcbiAgICAuY29udGVudHt3aWR0aDogY2FsYygxMDAlIC0gMTUwcHgpO3BhZGRpbmctbGVmdDogMjBweDtcclxuICAgICAgICAgICAgIGgye21hcmdpbi10b3A6IDA7fVxyXG4gICAgfVxyXG59XHJcblxyXG4ubW9iaWxlLW9ubHl7ZGlzcGxheTogbm9uZTt9IiwiI2xvZ297ZGlzcGxheTogaW5saW5lLWJsb2NrO3dpZHRoOiAxNzhweDt9XHJcbi5oZWFkZXIgeyAgIFxyXG4gICAgbmF2e3Bvc2l0aW9uOiBhYnNvbHV0ZTt3aWR0aDogMTAwJTttYXgtaGVpZ2h0OiAwO292ZXJmbG93OiBoaWRkZW47bGVmdDogMDt0b3A6IDEwMCU7dHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtwYWRkaW5nOiAwIDIwcHg7ei1pbmRleDogOTk7fVxyXG4gICAgbmF2LmFjdGl2ZSB7cGFkZGluZzogMTBweCAyMHB4IDA7bWF4LWhlaWdodDogNjAwcHg7Ym9yZGVyLWJvdHRvbTogNXB4IHNvbGlkICRidXJnO31cclxufVxyXG5cclxuLm1haW4tbmF2IHtwYWRkaW5nLWJvdHRvbTogMjBweDtcclxubGkgbGl7cGFkZGluZy1sZWZ0OiAxNXB4O31cclxufVxyXG5cclxuLnNlcnZpY2UgPiBhOmZpcnN0LWNoaWxke3dpZHRoOiAxNzVweDtoZWlnaHQ6IDE3NXB4O31cclxuXHJcblxyXG4ucHJvamVjdDpub3QoOmxhc3QtY2hpbGQpe21hcmdpbi1ib3R0b206IDMwcHg7fVxyXG4iLCJoMSwgLmgxIHtcclxuXHRmb250LXNpemU6IDM0cHg7XHRcclxufVxyXG5cclxuaDIsIC5oMiB7XHJcblx0Zm9udC1zaXplOiAzMHB4O1xyXG5cclxufVxyXG5cclxuaDMsIC5oMyB7XHJcblx0Zm9udC1zaXplOiAyMXB4O1xyXG59XHJcblxyXG5oNCwgLmg0IHtcclxuXHRmb250LXNpemU6IDE4cHg7XHJcbn1cclxuXHJcbmg1LCAuaDUge1xyXG5cdGZvbnQtc2l6ZTogMTZweDtcclxuXHJcbn1cclxuXHJcbmFydGljbGUsIC5mb290ZXJ7Zm9udC1zaXplOiAxNXB4O31cclxuLnRvcC1iYXJ7aGVpZ2h0OiAzMHB4O2ZvbnQtc2l6ZTogMTRweDtwYWRkaW5nLXRvcDogNXB4O31cclxuI2xvZ297d2lkdGg6IDIxNnB4O31cclxuLmhlYWRlciAudG9nZ2xle2Rpc3BsYXk6IG5vbmU7fVxyXG4ubWFpbi1uYXYgPiBsaXtkaXNwbGF5OiBpbmxpbmUtYmxvY2s7cG9zaXRpb246IHJlbGF0aXZlO31cclxuLm1haW4tbmF2ID4gbGkrbGl7bWFyZ2luLWxlZnQ6IDI1cHg7fVxyXG4ubWFpbi1uYXYgdWx7cG9zaXRpb246IGFic29sdXRlO21pbi13aWR0aDogMzIwcHg7bGVmdDogLTIwcHg7dG9wOiAxMDAlO3BhZGRpbmc6IDAgMjBweDtiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO3dpZHRoOiAxMDAlO21heC1oZWlnaHQ6IDA7b3ZlcmZsb3c6IGhpZGRlbjt0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDt6LWluZGV4OiA5OTt9XHJcbi5tYWluLW5hdiBsaTpob3ZlciB1bHttYXgtaGVpZ2h0OiA3MDBweDtwYWRkaW5nOiAyMHB4O31cclxuLmhlcm8uaW1hZ2V7aGVpZ2h0OiA0ODVweDt9XHJcbi5ocC1pbnRybyA+IGgyLCAuaHAtaW50cm8gKyBkaXYgPiBoM3ttYXJnaW4tdG9wOiAwO31cclxuLmhwLWludHJvIHt3aWR0aDogNTcwcHg7fVxyXG4uaHAtaW50cm8gKyBkaXZ7cGFkZGluZy10b3A6NTZweDt3aWR0aDogMzYwcHg7fVxyXG5cclxuYXJ0aWNsZSB1bDpub3QoW2NsYXNzXSkgbGl7cGFkZGluZy1sZWZ0OiA0NXB4O1xyXG4gICAmOjpiZWZvcmV7bGVmdDogMzVweDt9XHJcbn1cclxuXHJcbi5pbi1jb250ZW50LWljb25zIHtcclxuICAgIGxpK2xpe21hcmdpbi10b3A6IDQ1cHg7fVxyXG4gICAgLmljb257d2lkdGg6IDkwcHg7aGVpZ2h0OiA5MHB4O2xpbmUtaGVpZ2h0OiA4NXB4O21hcmdpbi1yaWdodDogMzBweDtcclxuICAgICAgICAgIHN2Z3t3aWR0aDogNDBweDtoZWlnaHQ6IGF1dG87fVxyXG4gICAgfVxyXG59XHJcblxyXG4uc2VydmljZXMtd3JhcHBlcntwYWRkaW5nLXRvcDogMzBweDt9XHJcbi5zZXJ2aWNle3dpZHRoOiBjYWxjKCgxMDAlIC0gNjBweCkgLyAzKTttYXJnaW4tYm90dG9tOiA0NXB4OyBtYXJnaW4tcmlnaHQ6IDE5cHg7fVxyXG4uc2VydmljZTpudGgtbGFzdC1jaGlsZCgtbiszKXttYXJnaW4tYm90dG9tOiAwO31cclxuLnNlcnZpY2UgPiBhOmZpcnN0LWNoaWxke3dpZHRoOiAzMDBweDtoZWlnaHQ6IDMwMHB4O31cclxuLmZvb3RlcntwYWRkaW5nLXRvcDogNDVweDtwYWRkaW5nLWJvdHRvbTogNDVweDt9XHJcblxyXG5cclxuLnF1b3Rle3BhZGRpbmc6IDMwcHggMDt9XHJcblxyXG4uZmxleC03NjggLmNvbHt3aWR0aDogY2FsYyg1MCUgLSAyMHB4KX1cclxuXHJcbi5wcm9qZWN0cy1saXN0eyAgXHJcbiAgICBsaStsaXttYXJnaW4tdG9wOiA0MHB4O31cclxuICAgIC5jb250ZW50e3BhZGRpbmctbGVmdDogMjBweDt3aWR0aDogY2FsYygxMDAlIC0gMTUwcHgpO31cclxufVxyXG5cclxuLlNlcnZpY2VQYWdlIHtcclxuICAgIC5zZXJ2aWNlIHtcclxuICAgICAgICA+YTpmaXJzdC1jaGlsZHt3aWR0aDogMTUwcHg7aGVpZ2h0OiAxNTBweDt9XHJcbiAgICAgICAgaDJ7Zm9udC1zaXplOiAxNnB4O31cclxuICAgIH1cclxufVxyXG5cclxuXHJcbi5jb250YWN0LWZvcm17XHJcbiAgICAuZmxleC0xMDI0IGlucHV0e3dpZHRoOiBjYWxjKDUwJSAtIDEycHgpO31cclxufVxyXG5cclxuXHJcbi5wcm9qZWN0e3dpZHRoOiBjYWxjKDUwJSAtIDIwcHgpO1xyXG4gICAgICAgICY6bm90KDpudGgtY2hpbGQoLW4rMikpIHttYXJnaW4tdG9wOiA0MHB4O31cclxufSIsIi53cmFwcGVye3BhZGRpbmctbGVmdDogMDtwYWRkaW5nLXJpZ2h0OiAwO21heC13aWR0aDogMTE0MHB4O21hcmdpbi1sZWZ0OiBhdXRvO21hcmdpbi1yaWdodDogYXV0bzt9XHJcblxyXG4uaGVyby5pbWFnZXtcclxuICAgIC5jb250ZW50e3dpZHRoOjExNDBweDtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSk7cGFkZGluZzowIDU5MHB4IDAgMH1cclxufVxyXG5cclxuLmZvb3RlciAud2lkZ2V0Om50aC1jaGlsZCgxKXt3aWR0aDogMzkwcHg7cGFkZGluZy1yaWdodDogMzBweDt9XHJcbi5mb290ZXIgLndpZGdldDpudGgtY2hpbGQoMil7d2lkdGg6YXV0b31cclxuLmZvb3RlciAud2lkZ2V0Om50aC1jaGlsZCgzKXttYXJnaW4tbGVmdDogYXV0bzt3aWR0aDogMzguNSV9XHJcblxyXG5cclxuXHJcbi5TZXJ2aWNlUGFnZSB7XHJcbiAgICAuc2VydmljZSB7d2lkdGg6IDE2LjY1JTtwYWRkaW5nLWxlZnQ6IDVweDtwYWRkaW5nLXJpZ2h0OiA1cHg7fVxyXG59IiwiQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjQwcHgpIHtcclxuLmZvb3RlciAud2lkZ2V0Om50aC1jaGlsZCgzKXt3aWR0aDogMzglfVxyXG4ucXVvdGUgLndyYXBwZXI+OmZpcnN0LWNoaWxke3dpZHRoOiA2MiU7fVxyXG59IFxyXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEzNjZweCkge1xyXG4uZm9vdGVyIC53aWRnZXQ6bnRoLWNoaWxkKDMpe3dpZHRoOiAzNi41JX0gXHJcbi5xdW90ZSAud3JhcHBlcj46Zmlyc3QtY2hpbGR7d2lkdGg6IDYzLjUlO31cclxufSBcclxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxNjAwcHgpIHtcclxuLmZvb3RlciAud2lkZ2V0Om50aC1jaGlsZCgzKXt3aWR0aDogMzQlfSBcclxuLnF1b3RlIC53cmFwcGVyPjpmaXJzdC1jaGlsZHt3aWR0aDogNjYlO31cclxufSBcclxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxOTIwcHgpIHtcclxuLmZvb3RlciAud2lkZ2V0Om50aC1jaGlsZCgzKXt3aWR0aDogMzEuMiV9IFxyXG4ucXVvdGUgLndyYXBwZXI+OmZpcnN0LWNoaWxke3dpZHRoOiA2OC44JTt9XHJcbn0gIiwiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG5TaXRlIE5hbWU6XHJcbkF1dGhvcjpcclxuXHJcblN0eWxlc2hlZXQ6IFByaW50IFN0eWxlc2hlZXRcclxuXHJcblRoaXMgaXMgdGhlIHByaW50IHN0eWxlc2hlZXQuIFRoZXJlJ3MgcHJvYmFibHkgbm90IGEgbG90XHJcbm9mIHJlYXNvbnMgdG8gZWRpdCB0aGlzIHN0eWxlc2hlZXQuIElmIHlvdSB3YW50IHRvXHJcbnRob3VnaCwgZ28gZm9yIGl0LlxyXG5cclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5cclxuICAqIHtcclxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcbiAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDtcclxuICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICBmaWx0ZXI6bm9uZSAhaW1wb3J0YW50O1xyXG4gICAgLW1zLWZpbHRlcjogbm9uZSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgYSwgYTp2aXNpdGVkIHtcclxuICAgIGNvbG9yOiAjNDQ0ICFpbXBvcnRhbnQ7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcclxuXHJcbiAgICAvLyBzaG93IGxpbmtzIG9uIHByaW50ZWQgcGFnZXNcclxuICAgICY6YWZ0ZXIge1xyXG4gICAgICBjb250ZW50OiBcIiAoXCIgYXR0cihocmVmKSBcIilcIjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBzaG93IHRpdGxlIHRvb1xyXG4gICAgYWJiclt0aXRsZV06YWZ0ZXIge1xyXG4gICAgICBjb250ZW50OiBcIiAoXCIgYXR0cih0aXRsZSkgXCIpXCI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuaXIgYTphZnRlcixcclxuICBhW2hyZWZePVwiamF2YXNjcmlwdDpcIl06YWZ0ZXIsXHJcbiAgYVtocmVmXj1cIiNcIl06YWZ0ZXIge1xyXG4gICAgY29udGVudDogXCJcIjtcclxuICB9XHJcblxyXG4gIHByZSwgYmxvY2txdW90ZSB7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xyXG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xyXG4gIH1cclxuXHJcbiAgdGhlYWQge1xyXG4gICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwO1xyXG4gIH1cclxuXHJcbiAgdHIsIGltZyB7XHJcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XHJcbiAgfVxyXG5cclxuICBpbWcge1xyXG4gICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAgIEBwYWdlIHtcclxuICAgICAgbWFyZ2luOiAwLjVjbTtcclxuICAgIH1cclxuXHJcbiAgICBwLCBoMiwgaDMge1xyXG4gICAgICBvcnBoYW5zOiAzO1xyXG4gICAgICB3aWRvd3M6IDM7XHJcbiAgICB9XHJcblxyXG4gICAgaDIsXHJcbiAgICBoMyB7XHJcbiAgICAgIHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGhpZGUgY29udGVudCBwZW9wbGUgd2hvIHByaW50IGRvbid0IG5lZWQgdG8gc2VlXHJcbiAgICAuc2lkZWJhcixcclxuICAgIC5wYWdlLW5hdmlnYXRpb24sXHJcbiAgICAud3AtcHJldi1uZXh0LFxyXG4gICAgLnJlc3BvbmQtZm9ybSxcclxuICAgIG5hdiB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbiJdLCJmaWxlIjoiY29tYmluZWQtdGhlbWUta2xhbnQuY3NzIn0= */
