@charset "UTF-8";
/* CSS Document */
/***********************************
    Normalise, Variables and Mixins
*************************************/
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS and IE text size adjust after device orientation change,
 *    without disabling user zoom.
 */
html {
  font-family: sans-serif;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
}
/**
 * Remove default margin.
 */
body {
  margin: 0;
}
/* HTML5 display definitions
   ========================================================================== */
/**
 * Correct `block` display not defined for any HTML5 element in IE 8/9.
 * Correct `block` display not defined for `details` or `summary` in IE 10/11
 * and Firefox.
 * Correct `block` display not defined for `main` in IE 11.
 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block;
}
/**
 * 1. Correct `inline-block` display not defined in IE 8/9.
 * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
 */
audio,
canvas,
progress,
video {
  display: inline-block;
  /* 1 */
  vertical-align: baseline;
  /* 2 */
}
/**
 * Prevent modern browsers from displaying `audio` without controls.
 * Remove excess height in iOS 5 devices.
 */
audio:not([controls]) {
  display: none;
  height: 0;
}
/**
 * Address `[hidden]` styling not present in IE 8/9/10.
 * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.
 */
[hidden],
template {
  display: none;
}
/* Links
   ========================================================================== */
/**
 * Remove the gray background color from active links in IE 10.
 */
a {
  background-color: transparent;
}
/**
 * Improve readability of focused elements when they are also in an
 * active/hover state.
 */
a:active,
a:hover {
  outline: 0;
}
/* Text-level semantics
   ========================================================================== */
/**
 * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
 */
abbr[title] {
  border-bottom: 1px dotted;
}
/**
 * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
 */
b,
strong {
  font-weight: bold;
}
/**
 * Address styling not present in Safari and Chrome.
 */
dfn {
  font-style: italic;
}
/**
 * Address variable `h1` font-size and margin within `section` and `article`
 * contexts in Firefox 4+, Safari, and Chrome.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}
/**
 * Address styling not present in IE 8/9.
 */
mark {
  background: #ff0;
  color: #000;
}
/**
 * Address inconsistent and variable font size in all browsers.
 */
small {
  font-size: 80%;
}
/**
 * Prevent `sub` and `sup` affecting `line-height` in all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sup {
  top: -0.5em;
}
sub {
  bottom: -0.25em;
}
/* Embedded content
   ========================================================================== */
/**
 * Remove border when inside `a` element in IE 8/9/10.
 */
img {
  border: 0;
}
/**
 * Correct overflow not hidden in IE 9/10/11.
 */
svg:not(:root) {
  overflow: hidden;
}
/* Grouping content
   ========================================================================== */
/**
 * Address margin not present in IE 8/9 and Safari.
 */
figure {
  margin: 1em 40px;
}
/**
 * Address differences between Firefox and other browsers.
 */
hr {
  -webkit-box-sizing: content-box;
          box-sizing: content-box;
  height: 0;
}
/**
 * Contain overflow in all browsers.
 */
pre {
  overflow: auto;
}
/**
 * Address odd `em`-unit font size rendering in all browsers.
 */
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}
/* Forms
   ========================================================================== */
/**
 * Known limitation: by default, Chrome and Safari on OS X allow very limited
 * styling of `select`, unless a `border` property is set.
 */
/**
 * 1. Correct color not being inherited.
 *    Known issue: affects color of disabled elements.
 * 2. Correct font properties not being inherited.
 * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
 */
button,
input,
optgroup,
select,
textarea {
  color: inherit;
  /* 1 */
  font: inherit;
  /* 2 */
  margin: 0;
  /* 3 */
}
/**
 * Address `overflow` set to `hidden` in IE 8/9/10/11.
 */
button {
  overflow: visible;
}
/**
 * Address inconsistent `text-transform` inheritance for `button` and `select`.
 * All other form control elements do not inherit `text-transform` values.
 * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
 * Correct `select` style inheritance in Firefox.
 */
button,
select {
  text-transform: none;
}
/**
 * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
 *    and `video` controls.
 * 2. Correct inability to style clickable `input` types in iOS.
 * 3. Improve usability and consistency of cursor style between image-type
 *    `input` and others.
 */
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  /* 2 */
  cursor: pointer;
  /* 3 */
}
/**
 * Re-set default cursor for disabled elements.
 */
button[disabled],
html input[disabled] {
  cursor: default;
}
/**
 * Remove inner padding and border in Firefox 4+.
 */
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0;
}
/**
 * Address Firefox 4+ setting `line-height` on `input` using `!important` in
 * the UA stylesheet.
 */
input {
  line-height: normal;
}
/**
 * It's recommended that you don't attempt to style these elements.
 * Firefox's implementation doesn't respect box-sizing, padding, or width.
 *
 * 1. Address box sizing set to `content-box` in IE 8/9/10.
 * 2. Remove excess padding in IE 8/9/10.
 */
input[type="checkbox"],
input[type="radio"] {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */
}
/**
 * Fix the cursor style for Chrome's increment/decrement buttons. For certain
 * `font-size` values of the `input`, it causes the cursor style of the
 * decrement button to change from `default` to `text`.
 */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  height: auto;
}
/**
 * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
 * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.
 */
input[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  -webkit-box-sizing: content-box;
          box-sizing: content-box;
  /* 2 */
}
/**
 * Remove inner padding and search cancel button in Safari and Chrome on OS X.
 * Safari (but not Chrome) clips the cancel button when the search input has
 * padding (and `textfield` appearance).
 */
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}
/**
 * Define consistent border, margin, and padding.
 */
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
}
/**
 * 1. Correct `color` not being inherited in IE 8/9/10/11.
 * 2. Remove padding so people aren't caught out if they zero out fieldsets.
 */
legend {
  border: 0;
  /* 1 */
  padding: 0;
  /* 2 */
}
/**
 * Remove default vertical scrollbar in IE 8/9/10/11.
 */
textarea {
  overflow: auto;
}
/**
 * Don't inherit the `font-weight` (applied by a rule above).
 * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
 */
optgroup {
  font-weight: bold;
}
/* Tables
   ========================================================================== */
/**
 * Remove most spacing between table cells.
 */
table {
  border-collapse: collapse;
  border-spacing: 0;
}
td,
th {
  padding: 0;
}
/* apply a natural box layout model to all elements */
*,
*:before,
*:after {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}
/***********
    Basic Colours
************/
/**********/
/**************
    Primary Colours
*********************/
/********************
    Default Text Colours
********************/
/******************
    Nav Colours
*******************/
/*******************
    Form Styles
********************/
/*********************
    Borders/Shadows/Wrappers
***********************/
/*********************
    Breadcrumbs
***********************/
/**********************
    Alerts
***************/
/*********************
    Icons
**********************/
/*********************
    Social Colours
**********************/
/***********************
    Widths and Heights
*************************/
/*************
    Mixins
**************/
/*****************
    Layouts
******************/
/* Used for indenting text out of box ready for background image */
.rep-style {
  display: block;
  overflow: hidden;
  text-indent: -9999px;
}
.inline-style,
.btn,
#popup .popup-content .inner {
  display: inline-block;
}
/* Sets box-sizing:content-box */
.content-box-style {
  -webkit-box-sizing: content-box;
  box-sizing: content-box;
}
/* Sets box-sizing:border-box */
.border-box-style {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}
/***************
    Fixes/Resets
*****************/
/* Removes all default styling from list ready for unique layout */
.clean-list-style {
  list-style: none;
  margin: 0;
  padding: 0;
}
.clean-list-style li {
  margin: 0;
  padding: 0;
  background: none;
  line-height: 120%;
}
/* Smooths fonts. Use warily as it is resource intensive, and only supported on webkit */
.smooth-style,
html,
body {
  -webkit-font-smoothing: antialiased;
}
/* Fixes the flash on elements that occurs due to bxSlider turning on hardware rendering */
/* Generates nth-child where item is at the top */
/*
    Repeats rules for @i
    To access @i inside arguments, use @i, or @{i}
 */
/* Mixin to generate random number;
   int should be 0 or 1, 1 being to make it an integer
*/
/****************
    CSS3 Misc
*****************/
/****************
    Flexbox
*****************/
/******************
    Shadows
********************/
/*******************
    Transforms
*********************/
/*****************
    Transitions
****************/
/********************
    Gradients/Backgrounds
*********************/
/*****************
    Forms
 *****************/
/****************
    Fonts
*****************/
/***************
    Animations
****************/
/******************
    For
*****************/
/****************
    Fonts
*****************/
/****************
    Fonts
*****************/
/****************
    Text Styles
*****************/
.defaultUl {
  padding-left: 30px;
  list-style: disc;
  margin: 15px 0;
}
.defaultUl li {
  font-family: 'Open Sans','Helvetica Neue','Helvetica',Arial,sans-serif;
  font-weight: 400;
  font-style: normal;
  color: #000000;
  font-size: 14px;
}
.defaultOl {
  list-style: decimal;
  padding-left: 30px;
  margin: 15px 0;
}
.defaultOl li {
  font-family: 'Open Sans','Helvetica Neue','Helvetica',Arial,sans-serif;
  font-weight: 400;
  font-style: normal;
  color: #000000;
  font-size: 14px;
}
/**********************
    Btn stylings
***********************/
.btn {
  outline: none;
  border: none;
  overflow: visible;
  cursor: pointer;
  line-height: 120%;
  text-transform: none;
  padding: 8px 15px;
  font-size: 16px;
  text-align: center;
  -webkit-transition: all 0.1s;
  transition: all 0.1s;
  border-radius: 3px;
}
.btn-primary {
  background: #2cafd2;
  color: #FFFFFF;
}
.btn-primary:hover {
  color: #FFFFFF;
  background: #56bfdb;
}
.btn-primary:active {
  color: #FFFFFF;
  background: #238ca8;
}
.btn-primary:disabled,
.btn-primary.disabled {
  color: #FFFFFF;
  background: #aadfed;
  cursor: default;
}
.btn-primary:disabled:hover,
.btn-primary.disabled:hover,
.btn-primary:disabled:active,
.btn-primary.disabled:active {
  color: #FFFFFF;
  background: #aadfed;
}
/*
 *  Print Styles are declaring them
 */
html,
body {
  font-family: 'Open Sans','Helvetica Neue','Helvetica',Arial,sans-serif;
  font-weight: 400;
  font-style: normal;
  color: #000000;
  font-size: 14px;
}
h1 {
  margin: 40px 0;
  font-size: 40px;
  display: block;
  color: #2cafd2;
  font-weight: 700;
  line-height: 110%;
}
h2 {
  color: #2cafd2;
  margin: 20px 0;
  font-size: 30px;
  font-weight: 700;
  height: 115%;
}
h3 {
  color: #000000;
  font-size: 20px;
  margin: 30px 0 15px;
  font-weight: 700;
  line-height: 120%;
}
h4 {
  color: #000000;
  font-weight: 700;
  font-size: 18px;
  line-height: 120%;
}
h5 {
  color: #000000;
  font-weight: 700;
  font-size: 16px;
  line-height: 120%;
}
h6 {
  color: #000000;
  font-weight: 700;
  line-height: 120%;
}
p {
  line-height: 145%;
  margin: 0 0 25px 0;
}
p strong {
  font-weight: 700;
}
p em {
  font-style: italic;
}
p.intro {
  font-size: 22px;
  line-height: 135%;
  color: #000000;
}
a {
  color: #2cafd2;
  -webkit-transition: color 0.1s;
  transition: color 0.1s;
  text-decoration: none;
}
a:hover {
  color: #56bfdb;
  text-decoration: none;
}
a:active {
  color: #238ca8;
}
ul {
  padding-left: 30px;
  list-style: disc;
  margin: 15px 0;
}
ul li {
  font-family: 'Open Sans','Helvetica Neue','Helvetica',Arial,sans-serif;
  font-weight: 400;
  font-style: normal;
  color: #000000;
  font-size: 14px;
}
ol {
  list-style: decimal;
  padding-left: 30px;
  margin: 15px 0;
}
ol li {
  font-family: 'Open Sans','Helvetica Neue','Helvetica',Arial,sans-serif;
  font-weight: 400;
  font-style: normal;
  color: #000000;
  font-size: 14px;
}
table {
  width: 100%;
  margin: 0 0 20px;
}
/**********************
    General Styles
***********************/
/* CSS Document */
/*********************
    Body
**********************/
/***********
    Sticky
************/
html,
body {
  min-height: 100%;
}
body {
  overflow-x: hidden;
}
div.logo {
  width: 204px;
  height: 38px;
  float: left;
  background: url('../images/logo.png') 0 0 no-repeat;
  position: relative;
  z-index: 10;
  display: none;
}
div.title {
  height: 38px;
  line-height: 38px;
  padding: 0 10px;
  margin: 0 1px 0 0;
  float: right;
  color: #333;
  text-align: right;
  font-size: 18px;
  position: relative;
  z-index: 10;
}
.template-wrap {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
}
.template-wrap canvas {
  margin: 0 0 10px 0;
  position: relative;
  z-index: 9;
  -webkit-box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
  max-width: 100vw;
}
.fullscreen {
  float: right;
  position: relative;
  z-index: 10;
}
.controls {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  text-align: center;
}
/*
#download-link {
	position: absolute;
	bottom: 0;
	left: 0;
	z-index: -1;
	visibility: hidden;
	.opacity(0);
	width: 1px;
	height: 1px;
}*/
#popup {
  background-color: #000000;
  zoom: 1;
  background-color: transparent \9;
  -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#4d000000, endColorstr=#4d000000)";
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#4d000000, endColorstr=#4d000000);
  background-color: hsla(0, 0%, 0%, 0.3);
  -webkit-opacity: 0;
  -moz-opacity: 0;
  opacity: 0;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -webkit-transition: all 0.5s;
  transition: all 0.5s;
  visibility: hidden;
  display: none;
}
#popup.active {
  -webkit-opacity: 1;
  -moz-opacity: 1;
  opacity: 1;
  visibility: visible;
}
#popup .popup-outer {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  text-align: center;
}
#popup .popup-inner {
  width: 100%;
  max-width: 300px;
  min-height: 150px;
  background: #FFFFFF;
  border-radius: 5px;
  position: relative;
  z-index: 2;
}
#popup .popup-inner .close-btn {
  font-size: 15px;
  font-weight: 700;
  color: #000000;
  position: absolute;
  right: 10px;
  top: 5px;
  cursor: pointer;
  -webkit-transition: all 0.2s;
  transition: all 0.2s;
  z-index: 10;
}
#popup .popup-inner .close-btn:hover {
  -webkit-opacity: 0.8;
  -moz-opacity: 0.8;
  opacity: 0.8;
}
#popup .popup-inner .close-btn:active {
  color: #2cafd2;
}
#popup #config-container {
  text-align: left;
  display: none;
  overflow: auto;
  max-height: 100%;
}
#popup #config-container textarea {
  border: none;
  outline: none;
  height: 110px;
  width: 100%;
  font-size: 16px;
  line-height: 130%;
  font-family: monospace;
}
#popup #downloads-container {
  display: none;
}
#popup .popup-content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  text-align: center;
  padding: 20px;
}
#popup .popup-content .inner {
  width: 100%;
}
#popup .popup-content .btn {
  display: block;
  margin: 5px 10px;
}
/**********************
    Responsive Styles
***********************/
/* CSS Document */
/*********************
    max-width 979
**********************/
/*********************
    max-width 767
**********************/
@media screen and (max-width: 767px) {
  .btn {
    font-size: 14px;
    padding: 5px 10px;
    margin-bottom: 5px;
  }
  .controls {
    bottom: -70px;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1haW4ubGVzcyIsIm1haW4uY3NzIiwibm9ybWFsaXplLmxlc3MiLCJtaXhpbnMubGVzcyIsImZvbnQtc3R5bGVzLmxlc3MiLCJnZW5lcmFsLmxlc3MiLCJyZXNwb25zaXZlLmxlc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0JBQVM7QUNDVCxpQkFBaUI7QUFDakI7O3FDQUVxQztBQUNyQywyRUFBMkU7QUFDM0U7Ozs7RUFJRTtBQ0ZGO0VBQ0ksdUJBQUE7RURJRixNQUFNO0VDSEosMEJBQUE7RURLRixNQUFNO0VDSkosOEJBQUE7RURNRixNQUFNO0FBQ1I7QUFDQTs7RUFFRTtBQ0hGO0VBQ0ksU0FBQTtBREtKO0FBQ0E7K0VBQytFO0FBQy9FOzs7OztFQUtFO0FDQUY7Ozs7Ozs7Ozs7Ozs7RUFhSSxjQUFBO0FERUo7QUFDQTs7O0VBR0U7QUNFRjs7OztFQUlJLHFCQUFBO0VEQUYsTUFBTTtFQ0NKLHdCQUFBO0VEQ0YsTUFBTTtBQUNSO0FBQ0E7OztFQUdFO0FDRUY7RUFDSSxhQUFBO0VBQ0EsU0FBQTtBREFKO0FBQ0E7OztFQUdFO0FDSUY7O0VBRUksYUFBQTtBREZKO0FBQ0E7K0VBQytFO0FBQy9FOztFQUVFO0FDT0Y7RUFDSSw2QkFBQTtBRExKO0FBQ0E7OztFQUdFO0FDU0Y7O0VBRUksVUFBQTtBRFBKO0FBQ0E7K0VBQytFO0FBQy9FOztFQUVFO0FDWUY7RUFDSSx5QkFBQTtBRFZKO0FBQ0E7O0VBRUU7QUNjRjs7RUFFSSxpQkFBQTtBRFpKO0FBQ0E7O0VBRUU7QUNnQkY7RUFDSSxrQkFBQTtBRGRKO0FBQ0E7OztFQUdFO0FDa0JGO0VBQ0ksY0FBQTtFQUNBLGdCQUFBO0FEaEJKO0FBQ0E7O0VBRUU7QUNvQkY7RUFDSSxnQkFBQTtFQUNBLFdBQUE7QURsQko7QUFDQTs7RUFFRTtBQ3NCRjtFQUNJLGNBQUE7QURwQko7QUFDQTs7RUFFRTtBQ3dCRjs7RUFFSSxjQUFBO0VBQ0EsY0FBQTtFQUNBLGtCQUFBO0VBQ0Esd0JBQUE7QUR0Qko7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QkFBQTtVQUFBLHVCQUFBO0VFbklGLGtCQUFBO0FKd3JCRjtBSWx0QkE7RUE4QkUsV0FBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxtQkFBQTtFRlVFLGtCQUFBO0VFUkYsa0JBQUE7RUFDQSxVQUFBO0FKeXJCRjtBSTd0QkE7RUF1Q0csZUFBQTtFQUNBLGdCQUFBO0VBQ0EsY0FBQTtFQUNBLGtCQUFBO0VBQ0EsV0FBQTtFQUNBLFFBQUE7RUFDQSxlQUFBO0VGd1BDLDRCQUFBO0VBSUEsb0JBQUE7RUUxUEQsV0FBQTtBSjZyQkg7QUkzckJHO0VGVUMsb0JBQUE7RUFDQSxpQkFBQTtFQUNBLFlBQUE7QUZvckJKO0FJN3JCRztFQUNDLGNBQUE7QUorckJKO0FJcHZCQTtFQTJERSxnQkFBQTtFQUNBLGFBQUE7RUFDQSxjQUFBO0VBQ0EsZ0JBQUE7QUo0ckJGO0FJMXZCQTtFQWlFRyxZQUFBO0VBQ0EsYUFBQTtFQUNBLGFBQUE7RUFDQSxXQUFBO0VBQ0EsZUFBQTtFQUNBLGlCQUFBO0VBQ0Esc0JBQUE7QUo0ckJIO0FJbndCQTtFQTJFRSxhQUFBO0FKMnJCRjtBSXR3QkE7RUYySEksb0JBQUE7RUFFQSxvQkFBQTtFQUVBLGFBQUE7RUF3Q0EseUJBQUE7TUFBQSxzQkFBQTtVQUFBLG1CQUFBO0VBVkEsd0JBQUE7TUFBQSxxQkFBQTtVQUFBLHVCQUFBO0VFM0VGLGtCQUFBO0VBQ0EsYUFBQTtBSmdzQkY7QUlueEJBO0VBdUZHLFdBQUE7QUorckJIO0FJdHhCQTtFQTBGRyxjQUFBO0VBQ0EsZ0JBQUE7QUorckJIO0FBQ0E7O3VCQUV1QjtBQUN2QixpQkFBaUI7QUFDakI7O3NCQUVzQjtBQUN0Qjs7c0JBRXNCO0FLdjJCdEI7RUFFSTtJQUNJLGVBQUE7SUFDQSxpQkFBQTtJQUNBLGtCQUFBO0VMdzJCTjtFS3IyQkU7SUFDSSxhQUFBO0VMdTJCTjtBQUNGIiwiZmlsZSI6Im1haW4uY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyogQ1NTIERvY3VtZW50ICovXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgIE5vcm1hbGlzZSwgVmFyaWFibGVzIGFuZCBNaXhpbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbkBpbXBvcnQgXCJub3JtYWxpemVcIjtcbkBpbXBvcnQgXCJ2YXJzXCI7XG5AaW1wb3J0IFwibWl4aW5zXCI7XG5cbi8qKioqKioqKioqKioqKioqXG4gICAgRm9udHNcbioqKioqKioqKioqKioqKioqL1xuXG5AaW1wb3J0IFwiZm9udC1zdHlsZXNcIjtcblxuLyoqKioqKioqKioqKioqKioqKioqKipcbiAgICBHZW5lcmFsIFN0eWxlc1xuKioqKioqKioqKioqKioqKioqKioqKiovXG5cbkBpbXBvcnQgXCJnZW5lcmFsXCI7XG5cbi8qKioqKioqKioqKioqKioqKioqKioqXG4gICAgUmVzcG9uc2l2ZSBTdHlsZXNcbioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5AaW1wb3J0IFwicmVzcG9uc2l2ZVwiO1xuXG5cblxuXG5cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8qIENTUyBEb2N1bWVudCAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgTm9ybWFsaXNlLCBWYXJpYWJsZXMgYW5kIE1peGluc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qISBub3JtYWxpemUuY3NzIHYzLjAuMyB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cbi8qKlxuICogMS4gU2V0IGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cbiAqIDIuIFByZXZlbnQgaU9TIGFuZCBJRSB0ZXh0IHNpemUgYWRqdXN0IGFmdGVyIGRldmljZSBvcmllbnRhdGlvbiBjaGFuZ2UsXG4gKiAgICB3aXRob3V0IGRpc2FibGluZyB1c2VyIHpvb20uXG4gKi9cbmh0bWwge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgLyogMSAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMiAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDIgKi9cbn1cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgbWFyZ2luLlxuICovXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuLyogSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGFueSBIVE1MNSBlbGVtZW50IGluIElFIDgvOS5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgZGV0YWlsc2Agb3IgYHN1bW1hcnlgIGluIElFIDEwLzExXG4gKiBhbmQgRmlyZWZveC5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgbWFpbmAgaW4gSUUgMTEuXG4gKi9cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxuaGdyb3VwLFxubWFpbixcbm1lbnUsXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLyoqXG4gKiAxLiBDb3JyZWN0IGBpbmxpbmUtYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUUgOC85LlxuICogMi4gTm9ybWFsaXplIHZlcnRpY2FsIGFsaWdubWVudCBvZiBgcHJvZ3Jlc3NgIGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAvKiAyICovXG59XG4vKipcbiAqIFByZXZlbnQgbW9kZXJuIGJyb3dzZXJzIGZyb20gZGlzcGxheWluZyBgYXVkaW9gIHdpdGhvdXQgY29udHJvbHMuXG4gKiBSZW1vdmUgZXhjZXNzIGhlaWdodCBpbiBpT1MgNSBkZXZpY2VzLlxuICovXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7XG59XG4vKipcbiAqIEFkZHJlc3MgYFtoaWRkZW5dYCBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC5cbiAqIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cbiAqL1xuW2hpZGRlbl0sXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKiBMaW5rc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgY29sb3IgZnJvbSBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi8qKlxuICogSW1wcm92ZSByZWFkYWJpbGl0eSBvZiBmb2N1c2VkIGVsZW1lbnRzIHdoZW4gdGhleSBhcmUgYWxzbyBpbiBhblxuICogYWN0aXZlL2hvdmVyIHN0YXRlLlxuICovXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICBvdXRsaW5lOiAwO1xufVxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xufVxuLyoqXG4gKiBBZGRyZXNzIHN0eWxlIHNldCB0byBgYm9sZGVyYCBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICovXG5kZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG4vKipcbiAqIEFkZHJlc3MgdmFyaWFibGUgYGgxYCBmb250LXNpemUgYW5kIG1hcmdpbiB3aXRoaW4gYHNlY3Rpb25gIGFuZCBgYXJ0aWNsZWBcbiAqIGNvbnRleHRzIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS5cbiAqL1xubWFyayB7XG4gIGJhY2tncm91bmQ6ICNmZjA7XG4gIGNvbG9yOiAjMDAwO1xufVxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBhbmQgdmFyaWFibGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgYWZmZWN0aW5nIGBsaW5lLWhlaWdodGAgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgYm9yZGVyIHdoZW4gaW5zaWRlIGBhYCBlbGVtZW50IGluIElFIDgvOS8xMC5cbiAqL1xuaW1nIHtcbiAgYm9yZGVyOiAwO1xufVxuLyoqXG4gKiBDb3JyZWN0IG92ZXJmbG93IG5vdCBoaWRkZW4gaW4gSUUgOS8xMC8xMS5cbiAqL1xuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQWRkcmVzcyBtYXJnaW4gbm90IHByZXNlbnQgaW4gSUUgOC85IGFuZCBTYWZhcmkuXG4gKi9cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7XG59XG4vKipcbiAqIEFkZHJlc3MgZGlmZmVyZW5jZXMgYmV0d2VlbiBGaXJlZm94IGFuZCBvdGhlciBicm93c2Vycy5cbiAqL1xuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgaGVpZ2h0OiAwO1xufVxuLyoqXG4gKiBDb250YWluIG92ZXJmbG93IGluIGFsbCBicm93c2Vycy5cbiAqL1xucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG4vKipcbiAqIEFkZHJlc3Mgb2RkIGBlbWAtdW5pdCBmb250IHNpemUgcmVuZGVyaW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEtub3duIGxpbWl0YXRpb246IGJ5IGRlZmF1bHQsIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFggYWxsb3cgdmVyeSBsaW1pdGVkXG4gKiBzdHlsaW5nIG9mIGBzZWxlY3RgLCB1bmxlc3MgYSBgYm9yZGVyYCBwcm9wZXJ0eSBpcyBzZXQuXG4gKi9cbi8qKlxuICogMS4gQ29ycmVjdCBjb2xvciBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICogICAgS25vd24gaXNzdWU6IGFmZmVjdHMgY29sb3Igb2YgZGlzYWJsZWQgZWxlbWVudHMuXG4gKiAyLiBDb3JyZWN0IGZvbnQgcHJvcGVydGllcyBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICogMy4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7XG4gIC8qIDIgKi9cbiAgbWFyZ2luOiAwO1xuICAvKiAzICovXG59XG4vKipcbiAqIEFkZHJlc3MgYG92ZXJmbG93YCBzZXQgdG8gYGhpZGRlbmAgaW4gSUUgOC85LzEwLzExLlxuICovXG5idXR0b24ge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYHRleHQtdHJhbnNmb3JtYCBpbmhlcml0YW5jZSBmb3IgYGJ1dHRvbmAgYW5kIGBzZWxlY3RgLlxuICogQWxsIG90aGVyIGZvcm0gY29udHJvbCBlbGVtZW50cyBkbyBub3QgaW5oZXJpdCBgdGV4dC10cmFuc2Zvcm1gIHZhbHVlcy5cbiAqIENvcnJlY3QgYGJ1dHRvbmAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveCwgSUUgOC85LzEwLzExLCBhbmQgT3BlcmEuXG4gKiBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3guXG4gKi9cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuLyoqXG4gKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxuICogICAgYW5kIGB2aWRlb2AgY29udHJvbHMuXG4gKiAyLiBDb3JyZWN0IGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXG4gKiAzLiBJbXByb3ZlIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZVxuICogICAgYGlucHV0YCBhbmQgb3RoZXJzLlxuICovXG5idXR0b24sXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIC8qIDIgKi9cbiAgY3Vyc29yOiBwb2ludGVyO1xuICAvKiAzICovXG59XG4vKipcbiAqIFJlLXNldCBkZWZhdWx0IGN1cnNvciBmb3IgZGlzYWJsZWQgZWxlbWVudHMuXG4gKi9cbmJ1dHRvbltkaXNhYmxlZF0sXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIGJvcmRlciBpbiBGaXJlZm94IDQrLlxuICovXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbn1cbi8qKlxuICogQWRkcmVzcyBGaXJlZm94IDQrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpblxuICogdGhlIFVBIHN0eWxlc2hlZXQuXG4gKi9cbmlucHV0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cbi8qKlxuICogSXQncyByZWNvbW1lbmRlZCB0aGF0IHlvdSBkb24ndCBhdHRlbXB0IHRvIHN0eWxlIHRoZXNlIGVsZW1lbnRzLlxuICogRmlyZWZveCdzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgcmVzcGVjdCBib3gtc2l6aW5nLCBwYWRkaW5nLCBvciB3aWR0aC5cbiAqXG4gKiAxLiBBZGRyZXNzIGJveCBzaXppbmcgc2V0IHRvIGBjb250ZW50LWJveGAgaW4gSUUgOC85LzEwLlxuICogMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS8xMC5cbiAqL1xuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovXG59XG4vKipcbiAqIEZpeCB0aGUgY3Vyc29yIHN0eWxlIGZvciBDaHJvbWUncyBpbmNyZW1lbnQvZGVjcmVtZW50IGJ1dHRvbnMuIEZvciBjZXJ0YWluXG4gKiBgZm9udC1zaXplYCB2YWx1ZXMgb2YgdGhlIGBpbnB1dGAsIGl0IGNhdXNlcyB0aGUgY3Vyc29yIHN0eWxlIG9mIHRoZVxuICogZGVjcmVtZW50IGJ1dHRvbiB0byBjaGFuZ2UgZnJvbSBgZGVmYXVsdGAgdG8gYHRleHRgLlxuICovXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cbi8qKlxuICogMS4gQWRkcmVzcyBgYXBwZWFyYW5jZWAgc2V0IHRvIGBzZWFyY2hmaWVsZGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKiAyLiBBZGRyZXNzIGBib3gtc2l6aW5nYCBzZXQgdG8gYGJvcmRlci1ib3hgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICovXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIC8qIDEgKi9cbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC8qIDIgKi9cbn1cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIHNlYXJjaCBjYW5jZWwgYnV0dG9uIGluIFNhZmFyaSBhbmQgQ2hyb21lIG9uIE9TIFguXG4gKiBTYWZhcmkgKGJ1dCBub3QgQ2hyb21lKSBjbGlwcyB0aGUgY2FuY2VsIGJ1dHRvbiB3aGVuIHRoZSBzZWFyY2ggaW5wdXQgaGFzXG4gKiBwYWRkaW5nIChhbmQgYHRleHRmaWVsZGAgYXBwZWFyYW5jZSkuXG4gKi9cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuLyoqXG4gKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4gKi9cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgbWFyZ2luOiAwIDJweDtcbiAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xufVxuLyoqXG4gKiAxLiBDb3JyZWN0IGBjb2xvcmAgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBJRSA4LzkvMTAvMTEuXG4gKiAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXG4gKi9cbmxlZ2VuZCB7XG4gIGJvcmRlcjogMDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovXG59XG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkvMTAvMTEuXG4gKi9cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG4vKipcbiAqIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgKGFwcGxpZWQgYnkgYSBydWxlIGFib3ZlKS5cbiAqIE5PVEU6IHRoZSBkZWZhdWx0IGNhbm5vdCBzYWZlbHkgYmUgY2hhbmdlZCBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxuICovXG5vcHRncm91cCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLyogVGFibGVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4gKi9cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG50ZCxcbnRoIHtcbiAgcGFkZGluZzogMDtcbn1cbi8qIGFwcGx5IGEgbmF0dXJhbCBib3ggbGF5b3V0IG1vZGVsIHRvIGFsbCBlbGVtZW50cyAqL1xuKixcbio6YmVmb3JlLFxuKjphZnRlciB7XG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLyoqKioqKioqKioqXG4gICAgQmFzaWMgQ29sb3Vyc1xuKioqKioqKioqKioqL1xuLyoqKioqKioqKiovXG4vKioqKioqKioqKioqKipcbiAgICBQcmltYXJ5IENvbG91cnNcbioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKlxuICAgIERlZmF1bHQgVGV4dCBDb2xvdXJzXG4qKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKipcbiAgICBOYXYgQ29sb3Vyc1xuKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqXG4gICAgRm9ybSBTdHlsZXNcbioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKlxuICAgIEJvcmRlcnMvU2hhZG93cy9XcmFwcGVyc1xuKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqKioqXG4gICAgQnJlYWRjcnVtYnNcbioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKioqKipcbiAgICBBbGVydHNcbioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKipcbiAgICBJY29uc1xuKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKipcbiAgICBTb2NpYWwgQ29sb3Vyc1xuKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKlxuICAgIFdpZHRocyBhbmQgSGVpZ2h0c1xuKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqXG4gICAgTWl4aW5zXG4qKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKlxuICAgIExheW91dHNcbioqKioqKioqKioqKioqKioqKi9cbi8qIFVzZWQgZm9yIGluZGVudGluZyB0ZXh0IG91dCBvZiBib3ggcmVhZHkgZm9yIGJhY2tncm91bmQgaW1hZ2UgKi9cbi5yZXAtc3R5bGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7XG59XG4uaW5saW5lLXN0eWxlLFxuLmJ0bixcbiNwb3B1cCAucG9wdXAtY29udGVudCAuaW5uZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4vKiBTZXRzIGJveC1zaXppbmc6Y29udGVudC1ib3ggKi9cbi5jb250ZW50LWJveC1zdHlsZSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xufVxuLyogU2V0cyBib3gtc2l6aW5nOmJvcmRlci1ib3ggKi9cbi5ib3JkZXItYm94LXN0eWxlIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4vKioqKioqKioqKioqKioqXG4gICAgRml4ZXMvUmVzZXRzXG4qKioqKioqKioqKioqKioqKi9cbi8qIFJlbW92ZXMgYWxsIGRlZmF1bHQgc3R5bGluZyBmcm9tIGxpc3QgcmVhZHkgZm9yIHVuaXF1ZSBsYXlvdXQgKi9cbi5jbGVhbi1saXN0LXN0eWxlIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuLmNsZWFuLWxpc3Qtc3R5bGUgbGkge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAxMjAlO1xufVxuLyogU21vb3RocyBmb250cy4gVXNlIHdhcmlseSBhcyBpdCBpcyByZXNvdXJjZSBpbnRlbnNpdmUsIGFuZCBvbmx5IHN1cHBvcnRlZCBvbiB3ZWJraXQgKi9cbi5zbW9vdGgtc3R5bGUsXG5odG1sLFxuYm9keSB7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xufVxuLyogRml4ZXMgdGhlIGZsYXNoIG9uIGVsZW1lbnRzIHRoYXQgb2NjdXJzIGR1ZSB0byBieFNsaWRlciB0dXJuaW5nIG9uIGhhcmR3YXJlIHJlbmRlcmluZyAqL1xuLyogR2VuZXJhdGVzIG50aC1jaGlsZCB3aGVyZSBpdGVtIGlzIGF0IHRoZSB0b3AgKi9cbi8qXG4gICAgUmVwZWF0cyBydWxlcyBmb3IgQGlcbiAgICBUbyBhY2Nlc3MgQGkgaW5zaWRlIGFyZ3VtZW50cywgdXNlIEBpLCBvciBAe2l9XG4gKi9cbi8qIE1peGluIHRvIGdlbmVyYXRlIHJhbmRvbSBudW1iZXI7XG4gICBpbnQgc2hvdWxkIGJlIDAgb3IgMSwgMSBiZWluZyB0byBtYWtlIGl0IGFuIGludGVnZXJcbiovXG4vKioqKioqKioqKioqKioqKlxuICAgIENTUzMgTWlzY1xuKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKlxuICAgIEZsZXhib3hcbioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKlxuICAgIFNoYWRvd3NcbioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqKipcbiAgICBUcmFuc2Zvcm1zXG4qKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKipcbiAgICBUcmFuc2l0aW9uc1xuKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKlxuICAgIEdyYWRpZW50cy9CYWNrZ3JvdW5kc1xuKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKioqXG4gICAgRm9ybXNcbiAqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqXG4gICAgRm9udHNcbioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKlxuICAgIEFuaW1hdGlvbnNcbioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKioqXG4gICAgRm9yXG4qKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqXG4gICAgRm9udHNcbioqKioqKioqKioqKioqKioqL1xuLyoqKioqKioqKioqKioqKipcbiAgICBGb250c1xuKioqKioqKioqKioqKioqKiovXG4vKioqKioqKioqKioqKioqKlxuICAgIFRleHQgU3R5bGVzXG4qKioqKioqKioqKioqKioqKi9cbi5kZWZhdWx0VWwge1xuICBwYWRkaW5nLWxlZnQ6IDMwcHg7XG4gIGxpc3Qtc3R5bGU6IGRpc2M7XG4gIG1hcmdpbjogMTVweCAwO1xufVxuLmRlZmF1bHRVbCBsaSB7XG4gIGZvbnQtZmFtaWx5OiAnT3BlbiBTYW5zJywnSGVsdmV0aWNhIE5ldWUnLCdIZWx2ZXRpY2EnLEFyaWFsLHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi5kZWZhdWx0T2wge1xuICBsaXN0LXN0eWxlOiBkZWNpbWFsO1xuICBwYWRkaW5nLWxlZnQ6IDMwcHg7XG4gIG1hcmdpbjogMTVweCAwO1xufVxuLmRlZmF1bHRPbCBsaSB7XG4gIGZvbnQtZmFtaWx5OiAnT3BlbiBTYW5zJywnSGVsdmV0aWNhIE5ldWUnLCdIZWx2ZXRpY2EnLEFyaWFsLHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqXG4gICAgQnRuIHN0eWxpbmdzXG4qKioqKioqKioqKioqKioqKioqKioqKi9cbi5idG4ge1xuICBvdXRsaW5lOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGxpbmUtaGVpZ2h0OiAxMjAlO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgcGFkZGluZzogOHB4IDE1cHg7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjFzO1xuICAtbW96LXRyYW5zaXRpb246IGFsbCAwLjFzO1xuICAtby10cmFuc2l0aW9uOiBhbGwgMC4xcztcbiAgLW1zLXRyYW5zaXRpb246IGFsbCAwLjFzO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4xcztcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAzcHg7XG4gIC1tb3otYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG4uYnRuLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kOiAjMmNhZmQyO1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi5idG4tcHJpbWFyeTpob3ZlciB7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICBiYWNrZ3JvdW5kOiAjNTZiZmRiO1xufVxuLmJ0bi1wcmltYXJ5OmFjdGl2ZSB7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICBiYWNrZ3JvdW5kOiAjMjM4Y2E4O1xufVxuLmJ0bi1wcmltYXJ5OmRpc2FibGVkLFxuLmJ0bi1wcmltYXJ5LmRpc2FibGVkIHtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIGJhY2tncm91bmQ6ICNhYWRmZWQ7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cbi5idG4tcHJpbWFyeTpkaXNhYmxlZDpob3Zlcixcbi5idG4tcHJpbWFyeS5kaXNhYmxlZDpob3Zlcixcbi5idG4tcHJpbWFyeTpkaXNhYmxlZDphY3RpdmUsXG4uYnRuLXByaW1hcnkuZGlzYWJsZWQ6YWN0aXZlIHtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIGJhY2tncm91bmQ6ICNhYWRmZWQ7XG59XG4vKlxuICogIFByaW50IFN0eWxlcyBhcmUgZGVjbGFyaW5nIHRoZW1cbiAqL1xuaHRtbCxcbmJvZHkge1xuICBmb250LWZhbWlseTogJ09wZW4gU2FucycsJ0hlbHZldGljYSBOZXVlJywnSGVsdmV0aWNhJyxBcmlhbCxzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBmb250LXNpemU6IDE0cHg7XG59XG5oMSB7XG4gIG1hcmdpbjogNDBweCAwO1xuICBmb250LXNpemU6IDQwcHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb2xvcjogIzJjYWZkMjtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGluZS1oZWlnaHQ6IDExMCU7XG59XG5oMiB7XG4gIGNvbG9yOiAjMmNhZmQyO1xuICBtYXJnaW46IDIwcHggMDtcbiAgZm9udC1zaXplOiAzMHB4O1xuICBmb250LXdlaWdodDogNzAwO1xuICBoZWlnaHQ6IDExNSU7XG59XG5oMyB7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBmb250LXNpemU6IDIwcHg7XG4gIG1hcmdpbjogMzBweCAwIDE1cHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxpbmUtaGVpZ2h0OiAxMjAlO1xufVxuaDQge1xuICBjb2xvcjogIzAwMDAwMDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBsaW5lLWhlaWdodDogMTIwJTtcbn1cbmg1IHtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDEyMCU7XG59XG5oNiB7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBmb250LXdlaWdodDogNzAwO1xuICBsaW5lLWhlaWdodDogMTIwJTtcbn1cbnAge1xuICBsaW5lLWhlaWdodDogMTQ1JTtcbiAgbWFyZ2luOiAwIDAgMjVweCAwO1xufVxucCBzdHJvbmcge1xuICBmb250LXdlaWdodDogNzAwO1xufVxucCBlbSB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cbnAuaW50cm8ge1xuICBmb250LXNpemU6IDIycHg7XG4gIGxpbmUtaGVpZ2h0OiAxMzUlO1xuICBjb2xvcjogIzAwMDAwMDtcbn1cbmEge1xuICBjb2xvcjogIzJjYWZkMjtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBjb2xvciAwLjFzO1xuICAtbW96LXRyYW5zaXRpb246IGNvbG9yIDAuMXM7XG4gIC1vLXRyYW5zaXRpb246IGNvbG9yIDAuMXM7XG4gIC1tcy10cmFuc2l0aW9uOiBjb2xvciAwLjFzO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjFzO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5hOmhvdmVyIHtcbiAgY29sb3I6ICM1NmJmZGI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbmE6YWN0aXZlIHtcbiAgY29sb3I6ICMyMzhjYTg7XG59XG51bCB7XG4gIHBhZGRpbmctbGVmdDogMzBweDtcbiAgbGlzdC1zdHlsZTogZGlzYztcbiAgbWFyZ2luOiAxNXB4IDA7XG59XG51bCBsaSB7XG4gIGZvbnQtZmFtaWx5OiAnT3BlbiBTYW5zJywnSGVsdmV0aWNhIE5ldWUnLCdIZWx2ZXRpY2EnLEFyaWFsLHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cbm9sIHtcbiAgbGlzdC1zdHlsZTogZGVjaW1hbDtcbiAgcGFkZGluZy1sZWZ0OiAzMHB4O1xuICBtYXJnaW46IDE1cHggMDtcbn1cbm9sIGxpIHtcbiAgZm9udC1mYW1pbHk6ICdPcGVuIFNhbnMnLCdIZWx2ZXRpY2EgTmV1ZScsJ0hlbHZldGljYScsQXJpYWwsc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBjb2xvcjogIzAwMDAwMDtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxudGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwIDAgMjBweDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqXG4gICAgR2VuZXJhbCBTdHlsZXNcbioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogQ1NTIERvY3VtZW50ICovXG4vKioqKioqKioqKioqKioqKioqKioqXG4gICAgQm9keVxuKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKlxuICAgIFN0aWNreVxuKioqKioqKioqKioqL1xuaHRtbCxcbmJvZHkge1xuICBtaW4taGVpZ2h0OiAxMDAlO1xufVxuYm9keSB7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbmRpdi5sb2dvIHtcbiAgd2lkdGg6IDIwNHB4O1xuICBoZWlnaHQ6IDM4cHg7XG4gIGZsb2F0OiBsZWZ0O1xuICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9sb2dvLnBuZycpIDAgMCBuby1yZXBlYXQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTA7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5kaXYudGl0bGUge1xuICBoZWlnaHQ6IDM4cHg7XG4gIGxpbmUtaGVpZ2h0OiAzOHB4O1xuICBwYWRkaW5nOiAwIDEwcHg7XG4gIG1hcmdpbjogMCAxcHggMCAwO1xuICBmbG9hdDogcmlnaHQ7XG4gIGNvbG9yOiAjMzMzO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDEwO1xufVxuLnRlbXBsYXRlLXdyYXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xufVxuLnRlbXBsYXRlLXdyYXAgY2FudmFzIHtcbiAgbWFyZ2luOiAwIDAgMTBweCAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDk7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxMHB4IDMwcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuICAtbW96LWJveC1zaGFkb3c6IDAgMTBweCAzMHB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuICBtYXgtd2lkdGg6IDEwMHZ3O1xufVxuLmZ1bGxzY3JlZW4ge1xuICBmbG9hdDogcmlnaHQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTA7XG59XG4uY29udHJvbHMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi8qXG4jZG93bmxvYWQtbGluayB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0Ym90dG9tOiAwO1xuXHRsZWZ0OiAwO1xuXHR6LWluZGV4OiAtMTtcblx0dmlzaWJpbGl0eTogaGlkZGVuO1xuXHQub3BhY2l0eSgwKTtcblx0d2lkdGg6IDFweDtcblx0aGVpZ2h0OiAxcHg7XG59Ki9cbiNwb3B1cCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG4gIHpvb206IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50IFxcOTtcbiAgLW1zLWZpbHRlcjogXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0jNGQwMDAwMDAsIGVuZENvbG9yc3RyPSM0ZDAwMDAwMClcIjtcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0jNGQwMDAwMDAsIGVuZENvbG9yc3RyPSM0ZDAwMDAwMCk7XG4gIGJhY2tncm91bmQtY29sb3I6IGhzbGEoMCwgMCUsIDAlLCAwLjMpO1xuICAtd2Via2l0LW9wYWNpdHk6IDA7XG4gIC1tb3otb3BhY2l0eTogMDtcbiAgb3BhY2l0eTogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuNXM7XG4gIC1tb3otdHJhbnNpdGlvbjogYWxsIDAuNXM7XG4gIC1vLXRyYW5zaXRpb246IGFsbCAwLjVzO1xuICAtbXMtdHJhbnNpdGlvbjogYWxsIDAuNXM7XG4gIHRyYW5zaXRpb246IGFsbCAwLjVzO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4jcG9wdXAuYWN0aXZlIHtcbiAgLXdlYmtpdC1vcGFjaXR5OiAxO1xuICAtbW96LW9wYWNpdHk6IDE7XG4gIG9wYWNpdHk6IDE7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG4jcG9wdXAgLnBvcHVwLW91dGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICBkaXNwbGF5OiAtbW96LWJveDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogZmxleDtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuI3BvcHVwIC5wb3B1cC1pbm5lciB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDMwMHB4O1xuICBtaW4taGVpZ2h0OiAxNTBweDtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA1cHg7XG4gIC1tb3otYm9yZGVyLXJhZGl1czogNXB4O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMjtcbn1cbiNwb3B1cCAucG9wdXAtaW5uZXIgLmNsb3NlLWJ0biB7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDEwcHg7XG4gIHRvcDogNXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIC1tb3otdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIC1vLXRyYW5zaXRpb246IGFsbCAwLjJzO1xuICAtbXMtdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICB6LWluZGV4OiAxMDtcbn1cbiNwb3B1cCAucG9wdXAtaW5uZXIgLmNsb3NlLWJ0bjpob3ZlciB7XG4gIC13ZWJraXQtb3BhY2l0eTogMC44O1xuICAtbW96LW9wYWNpdHk6IDAuODtcbiAgb3BhY2l0eTogMC44O1xufVxuI3BvcHVwIC5wb3B1cC1pbm5lciAuY2xvc2UtYnRuOmFjdGl2ZSB7XG4gIGNvbG9yOiAjMmNhZmQyO1xufVxuI3BvcHVwICNjb25maWctY29udGFpbmVyIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZGlzcGxheTogbm9uZTtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG59XG4jcG9wdXAgI2NvbmZpZy1jb250YWluZXIgdGV4dGFyZWEge1xuICBib3JkZXI6IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGhlaWdodDogMTEwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxMzAlO1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlO1xufVxuI3BvcHVwICNkb3dubG9hZHMtY29udGFpbmVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiNwb3B1cCAucG9wdXAtY29udGVudCB7XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICBkaXNwbGF5OiAtbW96LWJveDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogZmxleDtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAyMHB4O1xufVxuI3BvcHVwIC5wb3B1cC1jb250ZW50IC5pbm5lciB7XG4gIHdpZHRoOiAxMDAlO1xufVxuI3BvcHVwIC5wb3B1cC1jb250ZW50IC5idG4ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiA1cHggMTBweDtcbn1cbi8qKioqKioqKioqKioqKioqKioqKioqXG4gICAgUmVzcG9uc2l2ZSBTdHlsZXNcbioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogQ1NTIERvY3VtZW50ICovXG4vKioqKioqKioqKioqKioqKioqKioqXG4gICAgbWF4LXdpZHRoIDk3OVxuKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKioqKioqKioqKioqKioqKipcbiAgICBtYXgtd2lkdGggNzY3XG4qKioqKioqKioqKioqKioqKioqKioqL1xuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmJ0biB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIHBhZGRpbmc6IDVweCAxMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgfVxuICAuY29udHJvbHMge1xuICAgIGJvdHRvbTogLTcwcHg7XG4gIH1cbn1cbiIsIi8qISBub3JtYWxpemUuY3NzIHYzLjAuMyB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cblxuLyoqXG4gKiAxLiBTZXQgZGVmYXVsdCBmb250IGZhbWlseSB0byBzYW5zLXNlcmlmLlxuICogMi4gUHJldmVudCBpT1MgYW5kIElFIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgZGV2aWNlIG9yaWVudGF0aW9uIGNoYW5nZSxcbiAqICAgIHdpdGhvdXQgZGlzYWJsaW5nIHVzZXIgem9vbS5cbiAqL1xuXG5odG1sIHtcbiAgICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsgLyogMSAqL1xuICAgIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG4gICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgbWFyZ2luLlxuICovXG5cbmJvZHkge1xuICAgIG1hcmdpbjogMDtcbn1cblxuLyogSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYW55IEhUTUw1IGVsZW1lbnQgaW4gSUUgOC85LlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBkZXRhaWxzYCBvciBgc3VtbWFyeWAgaW4gSUUgMTAvMTFcbiAqIGFuZCBGaXJlZm94LlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBtYWluYCBpbiBJRSAxMS5cbiAqL1xuXG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbmhncm91cCxcbm1haW4sXG5tZW51LFxubmF2LFxuc2VjdGlvbixcbnN1bW1hcnkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgYGlubGluZS1ibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRSA4LzkuXG4gKiAyLiBOb3JtYWxpemUgdmVydGljYWwgYWxpZ25tZW50IG9mIGBwcm9ncmVzc2AgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cblxuYXVkaW8sXG5jYW52YXMsXG5wcm9ncmVzcyxcbnZpZGVvIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIDEgKi9cbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBQcmV2ZW50IG1vZGVybiBicm93c2VycyBmcm9tIGRpc3BsYXlpbmcgYGF1ZGlvYCB3aXRob3V0IGNvbnRyb2xzLlxuICogUmVtb3ZlIGV4Y2VzcyBoZWlnaHQgaW4gaU9TIDUgZGV2aWNlcy5cbiAqL1xuXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgYFtoaWRkZW5dYCBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC5cbiAqIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cbiAqL1xuXG5baGlkZGVuXSxcbnRlbXBsYXRlIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBMaW5rc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBjb2xvciBmcm9tIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuXG5hIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyoqXG4gKiBJbXByb3ZlIHJlYWRhYmlsaXR5IG9mIGZvY3VzZWQgZWxlbWVudHMgd2hlbiB0aGV5IGFyZSBhbHNvIGluIGFuXG4gKiBhY3RpdmUvaG92ZXIgc3RhdGUuXG4gKi9cblxuYTphY3RpdmUsXG5hOmhvdmVyIHtcbiAgICBvdXRsaW5lOiAwO1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuYWJiclt0aXRsZV0ge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsZSBzZXQgdG8gYGJvbGRlcmAgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmIsXG5zdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqL1xuXG5kZm4ge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHZhcmlhYmxlIGBoMWAgZm9udC1zaXplIGFuZCBtYXJnaW4gd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgXG4gKiBjb250ZXh0cyBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cblxuaDEge1xuICAgIGZvbnQtc2l6ZTogMmVtO1xuICAgIG1hcmdpbjogMC42N2VtIDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS5cbiAqL1xuXG5tYXJrIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmYwO1xuICAgIGNvbG9yOiAjMDAwO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgaW5jb25zaXN0ZW50IGFuZCB2YXJpYWJsZSBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgICBmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBhZmZlY3RpbmcgYGxpbmUtaGVpZ2h0YCBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3ViLFxuc3VwIHtcbiAgICBmb250LXNpemU6IDc1JTtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdXAge1xuICAgIHRvcDogLTAuNWVtO1xufVxuXG5zdWIge1xuICAgIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgYm9yZGVyIHdoZW4gaW5zaWRlIGBhYCBlbGVtZW50IGluIElFIDgvOS8xMC5cbiAqL1xuXG5pbWcge1xuICAgIGJvcmRlcjogMDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IG92ZXJmbG93IG5vdCBoaWRkZW4gaW4gSUUgOS8xMC8xMS5cbiAqL1xuXG5zdmc6bm90KDpyb290KSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGRyZXNzIG1hcmdpbiBub3QgcHJlc2VudCBpbiBJRSA4LzkgYW5kIFNhZmFyaS5cbiAqL1xuXG5maWd1cmUge1xuICAgIG1hcmdpbjogMWVtIDQwcHg7XG59XG5cbi8qKlxuICogQWRkcmVzcyBkaWZmZXJlbmNlcyBiZXR3ZWVuIEZpcmVmb3ggYW5kIG90aGVyIGJyb3dzZXJzLlxuICovXG5cbmhyIHtcbiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogQ29udGFpbiBvdmVyZmxvdyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxucHJlIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiBBZGRyZXNzIG9kZCBgZW1gLXVuaXQgZm9udCBzaXplIHJlbmRlcmluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgICBmb250LXNpemU6IDFlbTtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogS25vd24gbGltaXRhdGlvbjogYnkgZGVmYXVsdCwgQ2hyb21lIGFuZCBTYWZhcmkgb24gT1MgWCBhbGxvdyB2ZXJ5IGxpbWl0ZWRcbiAqIHN0eWxpbmcgb2YgYHNlbGVjdGAsIHVubGVzcyBhIGBib3JkZXJgIHByb3BlcnR5IGlzIHNldC5cbiAqL1xuXG4vKipcbiAqIDEuIENvcnJlY3QgY29sb3Igbm90IGJlaW5nIGluaGVyaXRlZC5cbiAqICAgIEtub3duIGlzc3VlOiBhZmZlY3RzIGNvbG9yIG9mIGRpc2FibGVkIGVsZW1lbnRzLlxuICogMi4gQ29ycmVjdCBmb250IHByb3BlcnRpZXMgbm90IGJlaW5nIGluaGVyaXRlZC5cbiAqIDMuIEFkZHJlc3MgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuICovXG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gICAgY29sb3I6IGluaGVyaXQ7IC8qIDEgKi9cbiAgICBmb250OiBpbmhlcml0OyAvKiAyICovXG4gICAgbWFyZ2luOiAwOyAvKiAzICovXG59XG5cbi8qKlxuICogQWRkcmVzcyBgb3ZlcmZsb3dgIHNldCB0byBgaGlkZGVuYCBpbiBJRSA4LzkvMTAvMTEuXG4gKi9cblxuYnV0dG9uIHtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBgdGV4dC10cmFuc2Zvcm1gIGluaGVyaXRhbmNlIGZvciBgYnV0dG9uYCBhbmQgYHNlbGVjdGAuXG4gKiBBbGwgb3RoZXIgZm9ybSBjb250cm9sIGVsZW1lbnRzIGRvIG5vdCBpbmhlcml0IGB0ZXh0LXRyYW5zZm9ybWAgdmFsdWVzLlxuICogQ29ycmVjdCBgYnV0dG9uYCBzdHlsZSBpbmhlcml0YW5jZSBpbiBGaXJlZm94LCBJRSA4LzkvMTAvMTEsIGFuZCBPcGVyYS5cbiAqIENvcnJlY3QgYHNlbGVjdGAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b24sXG5zZWxlY3Qge1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIDEuIEF2b2lkIHRoZSBXZWJLaXQgYnVnIGluIEFuZHJvaWQgNC4wLiogd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gXG4gKiAgICBhbmQgYHZpZGVvYCBjb250cm9scy5cbiAqIDIuIENvcnJlY3QgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSBgaW5wdXRgIHR5cGVzIGluIGlPUy5cbiAqIDMuIEltcHJvdmUgdXNhYmlsaXR5IGFuZCBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgYmV0d2VlbiBpbWFnZS10eXBlXG4gKiAgICBgaW5wdXRgIGFuZCBvdGhlcnMuXG4gKi9cblxuYnV0dG9uLFxuaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLCAvKiAxICovXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMiAqL1xuICAgIGN1cnNvcjogcG9pbnRlcjsgLyogMyAqL1xufVxuXG4vKipcbiAqIFJlLXNldCBkZWZhdWx0IGN1cnNvciBmb3IgZGlzYWJsZWQgZWxlbWVudHMuXG4gKi9cblxuYnV0dG9uW2Rpc2FibGVkXSxcbmh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIGJvcmRlciBpbiBGaXJlZm94IDQrLlxuICovXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbmlucHV0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIEZpcmVmb3ggNCsgc2V0dGluZyBgbGluZS1oZWlnaHRgIG9uIGBpbnB1dGAgdXNpbmcgYCFpbXBvcnRhbnRgIGluXG4gKiB0aGUgVUEgc3R5bGVzaGVldC5cbiAqL1xuXG5pbnB1dCB7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuLyoqXG4gKiBJdCdzIHJlY29tbWVuZGVkIHRoYXQgeW91IGRvbid0IGF0dGVtcHQgdG8gc3R5bGUgdGhlc2UgZWxlbWVudHMuXG4gKiBGaXJlZm94J3MgaW1wbGVtZW50YXRpb24gZG9lc24ndCByZXNwZWN0IGJveC1zaXppbmcsIHBhZGRpbmcsIG9yIHdpZHRoLlxuICpcbiAqIDEuIEFkZHJlc3MgYm94IHNpemluZyBzZXQgdG8gYGNvbnRlbnQtYm94YCBpbiBJRSA4LzkvMTAuXG4gKiAyLiBSZW1vdmUgZXhjZXNzIHBhZGRpbmcgaW4gSUUgOC85LzEwLlxuICovXG5cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICAgIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBGaXggdGhlIGN1cnNvciBzdHlsZSBmb3IgQ2hyb21lJ3MgaW5jcmVtZW50L2RlY3JlbWVudCBidXR0b25zLiBGb3IgY2VydGFpblxuICogYGZvbnQtc2l6ZWAgdmFsdWVzIG9mIHRoZSBgaW5wdXRgLCBpdCBjYXVzZXMgdGhlIGN1cnNvciBzdHlsZSBvZiB0aGVcbiAqIGRlY3JlbWVudCBidXR0b24gdG8gY2hhbmdlIGZyb20gYGRlZmF1bHRgIHRvIGB0ZXh0YC5cbiAqL1xuXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gICAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIEFkZHJlc3MgYGFwcGVhcmFuY2VgIHNldCB0byBgc2VhcmNoZmllbGRgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICogMi4gQWRkcmVzcyBgYm94LXNpemluZ2Agc2V0IHRvIGBib3JkZXItYm94YCBpbiBTYWZhcmkgYW5kIENocm9tZS5cbiAqL1xuXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIHNlYXJjaCBjYW5jZWwgYnV0dG9uIGluIFNhZmFyaSBhbmQgQ2hyb21lIG9uIE9TIFguXG4gKiBTYWZhcmkgKGJ1dCBub3QgQ2hyb21lKSBjbGlwcyB0aGUgY2FuY2VsIGJ1dHRvbiB3aGVuIHRoZSBzZWFyY2ggaW5wdXQgaGFzXG4gKiBwYWRkaW5nIChhbmQgYHRleHRmaWVsZGAgYXBwZWFyYW5jZSkuXG4gKi9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4gKi9cblxuZmllbGRzZXQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gICAgbWFyZ2luOiAwIDJweDtcbiAgICBwYWRkaW5nOiAwLjM1ZW0gMC42MjVlbSAwLjc1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LzEwLzExLlxuICogMi4gUmVtb3ZlIHBhZGRpbmcgc28gcGVvcGxlIGFyZW4ndCBjYXVnaHQgb3V0IGlmIHRoZXkgemVybyBvdXQgZmllbGRzZXRzLlxuICovXG5cbmxlZ2VuZCB7XG4gICAgYm9yZGVyOiAwOyAvKiAxICovXG4gICAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkvMTAvMTEuXG4gKi9cblxudGV4dGFyZWEge1xuICAgIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgKGFwcGxpZWQgYnkgYSBydWxlIGFib3ZlKS5cbiAqIE5PVEU6IHRoZSBkZWZhdWx0IGNhbm5vdCBzYWZlbHkgYmUgY2hhbmdlZCBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxuICovXG5cbm9wdGdyb3VwIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLyogVGFibGVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSBtb3N0IHNwYWNpbmcgYmV0d2VlbiB0YWJsZSBjZWxscy5cbiAqL1xuXG50YWJsZSB7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICBib3JkZXItc3BhY2luZzogMDtcbn1cblxudGQsXG50aCB7XG4gICAgcGFkZGluZzogMDtcbn1cblxuXG4vKiBhcHBseSBhIG5hdHVyYWwgYm94IGxheW91dCBtb2RlbCB0byBhbGwgZWxlbWVudHMgKi9cbiosICo6YmVmb3JlLCAqOmFmdGVyIHtcbiAgICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7IC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn0iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8qKioqKioqKioqKioqXG4gICAgTWl4aW5zXG4qKioqKioqKioqKioqKi9cblxuLyoqKioqKioqKioqKioqKioqXG4gICAgTGF5b3V0c1xuKioqKioqKioqKioqKioqKioqL1xuXG4vKiBVc2VkIGZvciBpbmRlbnRpbmcgdGV4dCBvdXQgb2YgYm94IHJlYWR5IGZvciBiYWNrZ3JvdW5kIGltYWdlICovXG4ucmVwLXN0eWxlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtaW5kZW50OiAtOTk5OXB4O1xufVxuXG4ucmVwKCkge1xuICAgICY6ZXh0ZW5kKC5yZXAtc3R5bGUpO1xufVxuXG4uaW5saW5lLXN0eWxlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbn1cblxuLmlubGluZSgpIHtcbiAgICAmOmV4dGVuZCguaW5saW5lLXN0eWxlKTtcbn1cblxuLyogU2V0cyBib3gtc2l6aW5nOmNvbnRlbnQtYm94ICovXG4uY29udGVudC1ib3gtc3R5bGUge1xuICAgIC13ZWJraXQtYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgICAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xufVxuXG4uY29udGVudC1ib3goKSB7XG4gICAgJjpleHRlbmQoLmNvbnRlbnQtYm94LXN0eWxlKTtcbn1cblxuLyogU2V0cyBib3gtc2l6aW5nOmJvcmRlci1ib3ggKi9cbi5ib3JkZXItYm94LXN0eWxlIHtcbiAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLmJvcmRlci1ib3goKSB7XG4gICAgJjpleHRlbmQoLmJvcmRlci1ib3gtc3R5bGUpO1xufVxuXG4vKioqKioqKioqKioqKioqXG4gICAgRml4ZXMvUmVzZXRzXG4qKioqKioqKioqKioqKioqKi9cblxuLyogUmVtb3ZlcyBhbGwgZGVmYXVsdCBzdHlsaW5nIGZyb20gbGlzdCByZWFkeSBmb3IgdW5pcXVlIGxheW91dCAqL1xuLmNsZWFuLWxpc3Qtc3R5bGUge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICBsaSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEyMCU7XG4gICAgfVxufVxuXG4uY2xlYW4tbGlzdCgpIHtcbiAgICAmOmV4dGVuZCguY2xlYW4tbGlzdC1zdHlsZSBhbGwpO1xuXG59XG5cbi8qIFNtb290aHMgZm9udHMuIFVzZSB3YXJpbHkgYXMgaXQgaXMgcmVzb3VyY2UgaW50ZW5zaXZlLCBhbmQgb25seSBzdXBwb3J0ZWQgb24gd2Via2l0ICovXG4uc21vb3RoLXN0eWxlIHtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbn1cblxuLnNtb290aCgpIHtcbiAgICAmOmV4dGVuZCguc21vb3RoLXN0eWxlKTtcbn1cblxuLyogRml4ZXMgdGhlIGZsYXNoIG9uIGVsZW1lbnRzIHRoYXQgb2NjdXJzIGR1ZSB0byBieFNsaWRlciB0dXJuaW5nIG9uIGhhcmR3YXJlIHJlbmRlcmluZyAqL1xuLmZsYXNoLWZpeCgpIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG59XG5cbi8qIEdlbmVyYXRlcyBudGgtY2hpbGQgd2hlcmUgaXRlbSBpcyBhdCB0aGUgdG9wICovXG5cbi56dGgtY2hpbGQgKEBpOiA1KSB3aGVuIChAaSA+IDApIHtcbiAgICAmOm50aC1jaGlsZChAe2l9KSB7XG4gICAgICAgIHotaW5kZXg6IDEwMCAtIEBpICsgMTtcbiAgICB9XG4gICAgLnp0aC1jaGlsZChAaSAtIDEpO1xufVxuXG4vKlxuICAgIFJlcGVhdHMgcnVsZXMgZm9yIEBpXG4gICAgVG8gYWNjZXNzIEBpIGluc2lkZSBhcmd1bWVudHMsIHVzZSBAaSwgb3IgQHtpfVxuICovXG4ucmVwZWF0KEBpOiA1LCBAcnVsZXMpIHdoZW4gKEBpID4gMCkge1xuICAgIEBydWxlcygpO1xuICAgIC5yZXBlYXQoKEBpIC0gMSksIEBydWxlcyk7XG59XG5cbi8qIE1peGluIHRvIGdlbmVyYXRlIHJhbmRvbSBudW1iZXI7XG4gICBpbnQgc2hvdWxkIGJlIDAgb3IgMSwgMSBiZWluZyB0byBtYWtlIGl0IGFuIGludGVnZXJcbiovXG4ubWFrZVJhbmRvbShAbWluOiAwLCBAbWF4OiBAbWluKzEsIEBpbnQ6IDApIHtcbiAgICAuY2hlY2tJbnQoKSB7XG4gICAgICAgIEBnZXROdW06IGBNYXRoLnJhbmRvbSgpICogKEB7bWF4fSAtIEB7bWlufSArIEB7aW50fSlgO1xuICAgICAgICBAYmFzZTogdW5pdChgQHtpbnR9ID09IDEgPyBNYXRoLmZsb29yKEB7Z2V0TnVtfSkgOiBAe2dldE51bX1gKTtcbiAgICB9XG4gICAgLmNoZWNrSW50KCk7XG4gICAgQHJhbmROdW06IEBiYXNlICsgQG1pbjtcbn1cblxuLyoqKioqKioqKioqKioqKipcbiAgICBDU1MzIE1pc2NcbioqKioqKioqKioqKioqKioqL1xuXG4ucm91bmRlZC1iYXNlKEBhcmd1bWVudHMpIHtcbiAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IEBhcmd1bWVudHM7XG4gICAgLW1vei1ib3JkZXItcmFkaXVzOiBAYXJndW1lbnRzO1xuICAgIGJvcmRlci1yYWRpdXM6IEBhcmd1bWVudHM7XG59XG5cbi5yb3VuZGVkKEByYWRpdXMpIHtcbiAgICAucm91bmRlZC1iYXNlKEByYWRpdXMpO1xufVxuXG4ucm91bmRlZChAdG9wLEBib3R0b20pIHtcbiAgICAucm91bmRlZC1iYXNlKH5cIkB7dG9wfSBAe3RvcH0gQHtib3R0b219IEB7Ym90dG9tfVwiKTtcbn1cblxuLnJvdW5kZWQoQHRvcExlZnQsQHRvcFJpZ2h0LEBib3R0b21MZWZ0LEBib3R0b21SaWdodCkge1xuICAgIC5yb3VuZGVkLWJhc2UoflwiQHt0b3BMZWZ0fSBAe3RvcFJpZ2h0fSBAe2JvdHRvbVJpZ2h0fSBAe2JvdHRvbUxlZnR9XCIpO1xufVxuXG4ub3BhY2l0eSAoQG9wYWNpdHk6IDAuNSkge1xuICAgIC13ZWJraXQtb3BhY2l0eTogQG9wYWNpdHk7XG4gICAgLW1vei1vcGFjaXR5OiBAb3BhY2l0eTtcbiAgICBvcGFjaXR5OiBAb3BhY2l0eTtcbn1cblxuLnBlcnNwZWN0aXZlIChAdmFsdWU6IDEwMDApIHtcbiAgICAtd2Via2l0LXBlcnNwZWN0aXZlOiBAdmFsdWU7XG4gICAgLW1vei1wZXJzcGVjdGl2ZTogQHZhbHVlO1xuICAgIC1tcy1wZXJzcGVjdGl2ZTogQHZhbHVlO1xuICAgIHBlcnNwZWN0aXZlOiBAdmFsdWU7XG59XG5cbi5maWx0ZXIoQHN0cmluZykge1xuICAgIC13ZWJraXQtZmlsdGVyOiBAc3RyaW5nO1xuICAgIGZpbHRlcjogQHN0cmluZztcbn1cblxuLmJsdXIoQHZhbHVlKSB7XG4gICAgLmZpbHRlcih+XCJibHVyKEB7dmFsdWV9KVwiKTtcbn1cblxuLmJhY2tncm91bmQoQGltZyxAcG9zOjAgMCxAcmVwZWF0Om5vLXJlcGVhdCxAZXh0cmFzOn5cIlwiKSB7XG4gICAgQHVybDogXCJAe2ltZ19kaXJ9QHtpbWd9XCI7XG4gICAgYmFja2dyb3VuZDogdXJsKEB1cmwpIEByZXBlYXQgQHBvcyBAZXh0cmFzO1xufVxuXG4uc3ZnLWJnKEBpbWcsQHdpZHRoLEBoZWlnaHQpIHtcbiAgICAucmVwKCk7XG4gICAgLmJhY2tncm91bmQoQGltZyk7XG4gICAgYmFja2dyb3VuZC1zaXplOiB1bml0KEB3aWR0aCwgcHgpIHVuaXQoQGhlaWdodCwgcHgpO1xuICAgIHdpZHRoOiB1bml0KEB3aWR0aCwgcHgpO1xuICAgIGhlaWdodDogdW5pdChAaGVpZ2h0LCBweCk7XG59XG5cbi5yZ2JhLWNvbG91cihAY29sb3VyLEBhbHBoYSkge1xuICAgIEBhbHBoYUNvbG91cjogaHNsYShodWUoQGNvbG91ciksIHNhdHVyYXRpb24oQGNvbG91ciksIGxpZ2h0bmVzcyhAY29sb3VyKSwgQGFscGhhKTtcbiAgICBjb2xvcjogQGFscGhhQ29sb3VyO1xufVxuXG4ucG9pbnRlci1ldmVudHMoQGFyZ3MpIHtcbiAgICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IEBhcmdzO1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IEBhcmdzO1xuICAgIC1raHRtbC11c2VyLXNlbGVjdDogQGFyZ3M7XG4gICAgLW1vei11c2VyLXNlbGVjdDogQGFyZ3M7XG4gICAgLW1zLXVzZXItc2VsZWN0OiBAYXJncztcbiAgICB1c2VyLXNlbGVjdDogQGFyZ3M7XG59XG5cbi5jbGlwLXBhdGgoQHN0cmluZykge1xuICAgIC13ZWJraXQtY2xpcC1wYXRoOiBAc3RyaW5nO1xuICAgIGNsaXAtcGF0aDogQHN0cmluZztcbn1cblxuLnBvbHlnb24tY2xpcChAdG9wTGVmdCxAdG9wUmlnaHQsQGJvdHRvbUxlZnQsQGJvdHRvbVJpZ2h0KSB7XG4gICAgQHBvbHlnb25fc3RyaW5nOiB+XCJwb2x5Z29uKEB7dG9wTGVmdH0sQHt0b3BSaWdodH0sQHtib3R0b21SaWdodH0sQHtib3R0b21MZWZ0fSlcIjtcblxuICAgIC5jbGlwLXBhdGgoQHBvbHlnb25fc3RyaW5nKTtcbn1cblxuLyoqKioqKioqKioqKioqKipcbiAgICBGbGV4Ym94XG4qKioqKioqKioqKioqKioqKi9cblxuLmZsZXgoKSB7XG4gICAgZGlzcGxheTogIC13ZWJraXQtYm94O1xuICAgIGRpc3BsYXk6ICAgICAtbW96LWJveDtcbiAgICBkaXNwbGF5OiAgLW1zLWZsZXhib3g7XG4gICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICAgIGRpc3BsYXk6ICAgICAgICAgZmxleDtcbn1cblxuLmZsZXgtZGlyZWN0aW9uKEBkaXJlY3Rpb24pIHtcbiAgICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiBAZGlyZWN0aW9uO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBAZGlyZWN0aW9uO1xufVxuXG4uZmxleC1udW1iZXIoQG51bSkge1xuICAgIC13ZWJraXQtZmxleDogQG51bTtcbiAgICBmbGV4OiBAbnVtO1xufVxuXG4uZmxleC1iYXNpcyhAYmFzaXMpIHtcbiAgICAtd2Via2l0LWZsZXgtYmFzaXM6IEBiYXNpcztcbiAgICBmbGV4LWJhc2lzOiBAYmFzaXM7XG59XG5cbi5mbGV4LWZsb3coQGZsb3cpIHtcbiAgICAtd2Via2l0LWZsZXgtZmxvdzogQGZsb3c7XG4gICAgZmxleC1mbG93OiBAZmxvdztcbn1cblxuLmZsZXgtd3JhcChAd3JhcCkge1xuICAgIC13ZWJraXQtZmxleC13cmFwOiBAd3JhcDtcbiAgICBmbGV4LXdyYXA6IEB3cmFwO1xufVxuXG4uanVzdGlmeS1jb250ZW50KEBqdXN0aWZ5KSB7XG4gICAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IEBqdXN0aWZ5O1xuICAgIGp1c3RpZnktY29udGVudDogQGp1c3RpZnk7XG59XG5cbi5hbGlnbi1jb250ZW50KEBhbGlnbikge1xuICAgIC13ZWJraXQtYWxpZ24tY29udGVudDogQGFsaWduO1xuICAgIGFsaWduLWNvbnRlbnQ6IEBhbGlnbjtcbn1cblxuLmFsaWduLWl0ZW1zKEBhbGlnbikge1xuICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IEBhbGlnbjtcbiAgICBhbGlnbi1pdGVtczogQGFsaWduO1xufVxuXG4uYWxpZ24tc2VsZihAYWxpZ24pIHtcbiAgICAtd2Via2l0LWFsaWduLXNlbGY6IEBhbGlnbjtcbiAgICBhbGlnbi1zZWxmOiBAYWxpZ247XG59XG5cbi8qKioqKioqKioqKioqKioqKipcbiAgICBTaGFkb3dzXG4qKioqKioqKioqKioqKioqKioqKi9cblxuLmJveC1zaGFkb3coQHN0cmluZykge1xuICAgIC13ZWJraXQtYm94LXNoYWRvdzogQHN0cmluZztcbiAgICAtbW96LWJveC1zaGFkb3c6IEBzdHJpbmc7XG4gICAgYm94LXNoYWRvdzogQHN0cmluZztcbn1cblxuLmJveC1zaGFkb3ctZ2VuKEBkaXN0YW5jZTowLEBibHVyOjAsQHJnYmE6cmdiYSgwLDAsMCwwLjE0KSxAaW5zZXQ6ZmFsc2UsQGFuZ2xlOjEyMCxAc3ByZWFkOjApIHtcbiAgICBAaW5zZXRUZXh0OiBcIlwiO1xuICAgIEBhbmdsZVZhbDogQGFuZ2xlICogKHBpKCkvMTgwKTtcbiAgICBAeDogcm91bmQoQGRpc3RhbmNlICogY29zKEBhbmdsZVZhbCkpO1xuICAgIEB5OiByb3VuZChAZGlzdGFuY2UgKiBzaW4oQGFuZ2xlVmFsKSk7XG4gICAgQGJsdXJWYWw6IHJvdW5kKEBibHVyKTtcbiAgICBAc3ByZWFkVmFsOiByb3VuZChAc3ByZWFkKTtcblxuICAgICYgd2hlbiAoQGluc2V0ID0gdHJ1ZSkge1xuICAgICAgICBAaW5zZXRUZXh0OiBcImluc2V0IFwiO1xuICAgIH1cblxuICAgIC5ib3gtc2hhZG93KH5cIkB7aW5zZXRUZXh0fUB7eH1weCBAe3l9cHggQHtibHVyVmFsfXB4IEB7c3ByZWFkVmFsfXB4IEB7cmdiYX1cIik7XG59XG5cbi5zaGFkb3coQGNvbG9yLEBkaXN0YW5jZSkge1xuICAgIC5ib3gtc2hhZG93KH5cIjAgMCBAe2Rpc3RhbmNlfSBAe2NvbG9yfVwiKTtcbn1cblxuLnNoYWRvdy1ub25lKCkge1xuICAgIC5ib3gtc2hhZG93KH5cIm5vbmVcIik7XG59XG5cbi8vIFRleHQtc2hhZG93XG4ubG9uZ1NoYWRvdyhAY29sb3IsIEBzaXplLCBAc3ByZWFkOiAxMDAsIEBmbGFnOiAxLCBAdG1wOiAnJykgd2hlbiAoQHNpemUgPiAwKSB7XG4gICAgQHBlcmNlbnQ6IHJvdW5kKEBmbGFnIC8gQHNpemUgKiAxMDApICogQHNwcmVhZDtcbiAgICBAc2hhZG93Q29sb3I6IGZhZGUoQGNvbG9yLCBAcGVyY2VudCk7XG4gICAgQHNoYWRvdzogflwiQHtzaXplfXB4IEB7c2l6ZX1weCAxcHggQHtzaGFkb3dDb2xvcn1cIjtcbiAgICBAZW5kczogflwiQHtzaGFkb3d9LCBAe3RtcH1cIjtcbiAgICBAc2hhZG93U3RyaW5nOiB+XCJAe2VuZHN9IDBweCAwcHggMXB4ICMwMDBcIjtcblxuICAgIC5sb25nU2hhZG93TG9vcChAc3RyaW5nLCBAaW5kZXgpIHdoZW4gKEBpbmRleCA8IDEpIHtcbiAgICAgICAgdGV4dC1zaGFkb3c6IEBzdHJpbmc7XG4gICAgfVxuXG4gICAgLmxvbmdTaGFkb3dMb29wKEBzaGFkb3dTdHJpbmcsIEBzaXplIC0gMSk7XG4gICAgLmxvbmdTaGFkb3coQGNvbG9yLCBAc2l6ZSAtIDEsIEBzcHJlYWQsIEBmbGFnICsgMSwgQGVuZHMpO1xufVxuXG4vLyBCb3gtc2hhZG93XG4ubG9uZ1NoYWRvd0JveChAY29sb3IsIEBzaXplLCBAc3ByZWFkOiAxLCBAZmxhZzogMSwgQHRtcDogJycpIHdoZW4gKEBzaXplID4gMCkge1xuICAgIEBwZXJjZW50OiByb3VuZChAZmxhZyAvIEBzaXplICogMTAwKSAqIEBzcHJlYWQ7XG4gICAgQHNoYWRvd0NvbG9yOiBmYWRlKEBjb2xvciwgQHBlcmNlbnQpO1xuICAgIEBzaGFkb3c6IH5cIkB7c2l6ZX1weCBAe3NpemV9cHggMCAwIEB7c2hhZG93Q29sb3J9XCI7XG4gICAgQGVuZHM6IH5cIkB7c2hhZG93fSwgQHt0bXB9XCI7XG4gICAgQHNoYWRvd1N0cmluZzogflwiQHtlbmRzfSAwcHggMHB4IDAgMCAjMDAwXCI7XG5cbiAgICAubG9uZ1NoYWRvd0xvb3AoQHN0cmluZywgQGluZGV4KSB3aGVuIChAaW5kZXggPCAxKSB7XG4gICAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogQHN0cmluZztcbiAgICAgICAgLW1vei1ib3gtc2hhZG93OiBAc3RyaW5nO1xuICAgICAgICBib3gtc2hhZG93OiBAc3RyaW5nO1xuICAgIH1cblxuICAgIC5sb25nU2hhZG93TG9vcChAc2hhZG93U3RyaW5nLCBAc2l6ZSAtIDEpO1xuICAgIC5sb25nU2hhZG93Qm94KEBjb2xvciwgQHNpemUgLSAxLCBAc3ByZWFkLCBAZmxhZyArIDEsIEBlbmRzKTtcbn1cblxuLyoqKioqKioqKioqKioqKioqKipcbiAgICBUcmFuc2Zvcm1zXG4qKioqKioqKioqKioqKioqKioqKiovXG5cbi50cmFuc2Zvcm0oQHN0cmluZykge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBAc3RyaW5nO1xuICAgIC1tb3otdHJhbnNmb3JtOiBAc3RyaW5nO1xuICAgIC1tcy10cmFuc2Zvcm06IEBzdHJpbmc7XG4gICAgLW8tdHJhbnNmb3JtOiBAc3RyaW5nO1xuICAgIHRyYW5zZm9ybTogQHN0cmluZztcbn1cblxuLnJvdGF0ZShAZGVnKSB7XG4gICAgLnRyYW5zZm9ybShyb3RhdGUoQGRlZykpO1xufVxuXG4uc2tldyhAZGVnKSB7XG4gICAgLnRyYW5zZm9ybShza2V3KEBkZWcpKTtcbn1cblxuLnNjYWxlIChAZmFjdG9yKSB7XG4gICAgLnRyYW5zZm9ybShzY2FsZShAZmFjdG9yKSk7XG59XG5cbi50cmFuc2xhdGUoQHg6MCxAeTowLEB6OjApIHtcbiAgICAudHJhbnNmb3JtKH5cInRyYW5zZm9ybTNkKEB7eH0sQHt5fSxAe3p9KVwiKTtcbn1cblxuLnRyYW5zZm9ybS1vcmlnaW4oQHg6Y2VudGVyLEB5OmNlbnRlcikge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogQHggQHk7XG4gICAgLW1vei10cmFuc2Zvcm0tb3JpZ2luOiBAeCBAeTtcbiAgICAtbXMtdHJhbnNmb3JtLW9yaWdpbjogQHggQHk7XG4gICAgLW8tdHJhbnNmb3JtLW9yaWdpbjogQHggQHk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogQHggQHk7XG59XG5cbi50cmFuc2Zvcm0tc3R5bGUoQHN0cmluZykge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOiBAc3RyaW5nOyAvKiBDaHJvbWUsIFNhZmFyaSwgT3BlcmEgKi9cbiAgICB0cmFuc2Zvcm0tc3R5bGU6IEBzdHJpbmc7XG59XG5cbi5iYWNrZmFjZS12aXNpYmlsaXR5KEBzdHJpbmcpIHtcbiAgICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IEBzdHJpbmc7IC8qIENocm9tZSwgU2FmYXJpLCBPcGVyYSAqL1xuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IEBzdHJpbmc7XG59XG5cbi8qKioqKioqKioqKioqKioqKlxuICAgIFRyYW5zaXRpb25zXG4qKioqKioqKioqKioqKioqL1xuXG4udHJhbnNpdGlvbi1wcm9wZXJ0aWVzKC4uLikge1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogQGFyZ3VtZW50cztcbiAgICAtbW96LXRyYW5zaXRpb246IEBhcmd1bWVudHM7XG4gICAgLW8tdHJhbnNpdGlvbjogQGFyZ3VtZW50cztcbiAgICAtbXMtdHJhbnNpdGlvbjogQGFyZ3VtZW50cztcbiAgICB0cmFuc2l0aW9uOiBAYXJndW1lbnRzO1xufVxuXG4udHJhbnNpdGlvbihAd2hhdCxAdGltZSkge1xuICAgIC50cmFuc2l0aW9uLXByb3BlcnRpZXMoflwiQHt3aGF0fSBAe3RpbWV9XCIpO1xufVxuXG4udHJhbnNpdGlvbi10aW1pbmcoQHN0cmluZykge1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IEBzdHJpbmc7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IEBzdHJpbmc7XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKlxuICAgIEdyYWRpZW50cy9CYWNrZ3JvdW5kc1xuKioqKioqKioqKioqKioqKioqKioqL1xuXG4uZ3JhZGllbnQoQGNvbG91ckEsIEBjb2xvdXJCKSB7XG4gICAgYmFja2dyb3VuZDogQGNvbG91ckE7IC8qIE9sZCBicm93c2VycyAqL1xuICAgIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgQGNvbG91ckEgMCUsIEBjb2xvdXJCIDEwMCUpOyAvKiBGRjMuNisgKi9cbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQgYm90dG9tLCBjb2xvci1zdG9wKDAlLEBjb2xvdXJBKSwgY29sb3Itc3RvcCgxMDAlLEBjb2xvdXJCKSk7IC8qIENocm9tZSxTYWZhcmk0KyAqL1xuICAgIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgQGNvbG91ckEgMCUsQGNvbG91ckIgMTAwJSk7IC8qIENocm9tZTEwKyxTYWZhcmk1LjErICovXG4gICAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KHRvcCwgQGNvbG91ckEgMCUsQGNvbG91ckIgMTAwJSk7IC8qIE9wZXJhIDExLjEwKyAqL1xuICAgIGJhY2tncm91bmQ6IC1tcy1saW5lYXItZ3JhZGllbnQodG9wLCBAY29sb3VyQSAwJSxAY29sb3VyQiAxMDAlKTsgLyogSUUxMCsgKi9cbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCBAY29sb3VyQSAwJSxAY29sb3VyQiAxMDAlKTsgLyogVzNDICovXG4gICAgZmlsdGVyOiB+XCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoIHN0YXJ0Q29sb3JzdHI9J0B7Y29sb3VyQX0nLCBlbmRDb2xvcnN0cj0nQHtjb2xvdXJCfScsR3JhZGllbnRUeXBlPTAgKVwiOyAvKiBJRTYtOSAqL1xufVxuXG4ucmdiYS1iZyhAY29sb3VyLCBAYWxwaGEpIHtcbiAgICBAYWxwaGFDb2xvdXI6IGhzbGEoaHVlKEBjb2xvdXIpLCBzYXR1cmF0aW9uKEBjb2xvdXIpLCBsaWdodG5lc3MoQGNvbG91ciksIEBhbHBoYSk7XG4gICAgQGllQWxwaGFDb2xvdXI6IGFyZ2IoQGFscGhhQ29sb3VyKTtcblxuICAgIGJhY2tncm91bmQtY29sb3I6IEBjb2xvdXI7IC8vIEZhbGxiYWNrIGZvciBvbGRlciBicm93c2Vyc1xuXG4gICAgLy8gSUUgaGFja3NcbiAgICB6b29tOiAxOyAvLyBoYXNMYXlvdXRcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCBcXDk7XG4gICAgLW1zLWZpbHRlcjogXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj1Ae2llQWxwaGFDb2xvdXJ9LCBlbmRDb2xvcnN0cj1Ae2llQWxwaGFDb2xvdXJ9KVwiOyAvLyBJRSA4K1xuICAgIGZpbHRlcjogflwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9QHtpZUFscGhhQ29sb3VyfSwgZW5kQ29sb3JzdHI9QHtpZUFscGhhQ29sb3VyfSlcIjsgLy8gSUUgNiAmIDdcblxuICAgIGJhY2tncm91bmQtY29sb3I6IEBhbHBoYUNvbG91cjtcblxufVxuXG4vKioqKioqKioqKioqKioqKipcbiAgICBGb3Jtc1xuICoqKioqKioqKioqKioqKioqL1xuXG4ucGxhY2Vob2xkZXIoQGFyZ3VtZW50cykge1xuXG4gICAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgICAgIEBhcmd1bWVudHMoKTtcbiAgICB9XG4gICAgJjotbW96LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgQGFyZ3VtZW50cygpO1xuICAgIH1cbiAgICAmOjotbW96LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgQGFyZ3VtZW50cygpO1xuICAgIH1cbiAgICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgICAgIEBhcmd1bWVudHMoKTtcbiAgICB9XG59XG5cbi8qKioqKioqKioqKioqKioqXG4gICAgRm9udHNcbioqKioqKioqKioqKioqKioqL1xuXG4uZm9udC1taXhpbihAZm9udC1mYW1pbHktZmFsbGJhY2tzLEB3ZWlnaHQsQHN0eWxlKSB7XG4gICAgZm9udC1mYW1pbHk6IEBmb250LWZhbWlseS1mYWxsYmFja3M7XG4gICAgZm9udC13ZWlnaHQ6IEB3ZWlnaHQ7XG4gICAgZm9udC1zdHlsZTogQHN0eWxlO1xufVxuXG4vKioqKioqKioqKioqKioqXG4gICAgQW5pbWF0aW9uc1xuKioqKioqKioqKioqKioqKi9cblxuLmtleWZyYW1lcyAoQG5hbWUsIEBmcm9tUnVsZXMsIEB0b1J1bGVzKSB7XG4gICAgQC13ZWJraXQta2V5ZnJhbWVzIH5cIkB7bmFtZX1cIiB7XG4gICAgICAgIDAlIHtcbiAgICAgICAgICAgIEBmcm9tUnVsZXMoKTtcbiAgICAgICAgfVxuICAgICAgICAxMDAlIHtcbiAgICAgICAgICAgIEB0b1J1bGVzKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgQGtleWZyYW1lcyB+XCJAe25hbWV9XCIge1xuICAgICAgICAwJSB7XG4gICAgICAgICAgICBAZnJvbVJ1bGVzKCk7XG4gICAgICAgIH1cbiAgICAgICAgMTAwJSB7XG4gICAgICAgICAgICBAdG9SdWxlcygpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uYW5pbWF0aW9uLXBsYXktc3RhdGUoQHN0YXRlKSB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tcGxheS1zdGF0ZTogQHN0YXRlO1xuICAgIC1tb3otYW5pbWF0aW9uLXBsYXktc3RhdGU6IEBzdGF0ZTtcbiAgICAtbXMtYW5pbWF0aW9uLXBsYXktc3RhdGU6IEBzdGF0ZTtcbiAgICAtby1hbmltYXRpb24tcGxheS1zdGF0ZTogQHN0YXRlO1xuICAgIGFuaW1hdGlvbi1wbGF5LXN0YXRlOiBAc3RhdGU7XG59XG5cbi5hbmltYXRpb24oQGFyZ3MpIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbjogQGFyZ3M7IC8qIFNhZmFyaSA0KyAqL1xuICAgIC1tb3otYW5pbWF0aW9uOiBAYXJnczsgLyogRnggNSsgKi9cbiAgICAtby1hbmltYXRpb246IEBhcmdzOyAvKiBPcGVyYSAxMisgKi9cbiAgICBhbmltYXRpb246IEBhcmdzOyAvKiBJRSAxMCsgKi9cbn1cblxuLmFuaW0tZGVsYXkoQGRlbGF5KSB7XG4gICAgYW5pbWF0aW9uLWRlbGF5OiBAZGVsYXk7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IEBkZWxheTsgLyogU2FmYXJpIGFuZCBDaHJvbWUgKi9cbn1cblxuLmFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQoQGFyZ3MpIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IEBhcmdzO1xuICAgIC1tb3otYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogQGFyZ3M7XG4gICAgLW8tYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogQGFyZ3M7XG4gICAgLW1zLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IEBhcmdzO1xuICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IEBhcmdzO1xufVxuXG4vKioqKioqKioqKioqKioqKioqXG4gICAgRm9yXG4qKioqKioqKioqKioqKioqKi9cblxuLy8gLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXG4vLyAuZm9yXG5cbi5mb3IoQGksIEBuKSB7XG4gICAgLi1lYWNoKEBpKVxufVxuXG4uZm9yKEBuKSB3aGVuIChpc251bWJlcihAbikpIHtcbiAgICAuZm9yKDEsIEBuKVxufVxuXG4uZm9yKEBpLCBAbikgd2hlbiBub3QgKEBpID0gQG4pIHtcbiAgICAuZm9yKChAaSArIChAbiAtIEBpKSAvIGFicyhAbiAtIEBpKSksIEBuKTtcbn1cblxuLy8gLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXG4vLyAuZm9yLWVhY2hcblxuLmZvcihAYXJyYXkpIHdoZW4gKGRlZmF1bHQoKSkge1xuICAgIC5mb3ItaW1wbF8obGVuZ3RoKEBhcnJheSkpXG59XG5cbi5mb3ItaW1wbF8oQGkpIHdoZW4gKEBpID4gMSkge1xuICAgIC5mb3ItaW1wbF8oKEBpIC0gMSkpXG59XG5cbi5mb3ItaW1wbF8oQGkpIHdoZW4gKEBpID4gMCkge1xuICAgIC4tZWFjaChleHRyYWN0KEBhcnJheSwgQGkpKVxufSIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLyoqKioqKioqKioqKioqKipcbiAgICBGb250c1xuKioqKioqKioqKioqKioqKiovXG5cbi5PcGVuU2FucyhAd2VpZ2h0OjQwMCxAc3R5bGU6bm9ybWFsKSB7XG4gICAgLmZvbnQtbWl4aW4oflwiJ09wZW4gU2FucycsJ0hlbHZldGljYSBOZXVlJywnSGVsdmV0aWNhJyxBcmlhbCxzYW5zLXNlcmlmXCIsIEB3ZWlnaHQsIEBzdHlsZSk7XG59XG5cbi5kZWZhdWx0Rm9udChAd2VpZ2h0OjQwMCxAc3R5bGU6bm9ybWFsKSB7XG4gICAgLk9wZW5TYW5zKEB3ZWlnaHQsIEBzdHlsZSk7XG59XG5cbi5zZWNvbmRhcnlGb250KEB3ZWlnaHQ6NDAwLEBzdHlsZTpub3JtYWwpIHtcbiAgICAuT3BlblNhbnMoQHdlaWdodCwgQHN0eWxlKTtcbn1cblxuLyoqKioqKioqKioqKioqKipcbiAgICBUZXh0IFN0eWxlc1xuKioqKioqKioqKioqKioqKiovXG5cbi5kZWZhdWx0SDEoKSB7XG4gICAgbWFyZ2luOiA0MHB4IDA7XG4gICAgZm9udC1zaXplOiA0MHB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbG9yOiBAZGVmYXVsdEgxO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbGluZS1oZWlnaHQ6IDExMCU7XG59XG5cbi5kZWZhdWx0SDIoKSB7XG4gICAgY29sb3I6IEBkZWZhdWx0SDI7XG4gICAgbWFyZ2luOiAyMHB4IDA7XG4gICAgZm9udC1zaXplOiAzMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgaGVpZ2h0OiAxMTUlO1xufVxuXG4uZGVmYXVsdEgzKCkge1xuICAgIGNvbG9yOiBAZGVmYXVsdEgzO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBtYXJnaW46IDMwcHggMCAxNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEyMCU7XG59XG5cbi5kZWZhdWx0SDQoKSB7XG4gICAgY29sb3I6IEBkZWZhdWx0SDQ7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEyMCU7XG59XG5cbi5kZWZhdWx0SDUoKSB7XG4gICAgY29sb3I6IEBkZWZhdWx0SDU7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEyMCU7XG59XG5cbi5kZWZhdWx0SDYoKSB7XG4gICAgY29sb3I6IEBkZWZhdWx0SDY7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBsaW5lLWhlaWdodDogMTIwJTtcbn1cblxuLmJhc2VGb250U3R5bGVzKCkge1xuICAgIC5kZWZhdWx0Rm9udCgpO1xuICAgIGNvbG9yOiBAZGVmYXVsdFA7XG4gICAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4uZGVmYXVsdFAoKSB7XG4gICAgbGluZS1oZWlnaHQ6IDE0NSU7XG4gICAgbWFyZ2luOiAwIDAgMjVweCAwO1xuXG4gICAgc3Ryb25nIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB9XG5cbiAgICBlbSB7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICB9XG5cbiAgICAmLmludHJvIHtcbiAgICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMTM1JTtcbiAgICAgICAgY29sb3I6IEBpbnRyb19jb2xvdXI7XG4gICAgfVxuXG59XG5cbi5kZWZhdWx0QSgpIHtcbiAgICBjb2xvcjogQGRlZmF1bHRfYV9jb2xvdXI7XG4gICAgLnRyYW5zaXRpb24oY29sb3IsIDAuMXMpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IEBkZWZhdWx0X2FfaG92ZXJfY29sb3VyO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICAgICY6YWN0aXZlIHtcbiAgICAgICAgY29sb3I6IEBkZWZhdWx0X2FfYWN0aXZlX2NvbG91cjtcbiAgICB9XG59XG5cbi5kZWZhdWx0TGkoKSB7XG4gICAgbGkge1xuICAgICAgICAuYmFzZUZvbnRTdHlsZXMoKTtcbiAgICB9XG59XG5cbi5kZWZhdWx0VWwge1xuICAgIHBhZGRpbmctbGVmdDogMzBweDtcbiAgICBsaXN0LXN0eWxlOiBkaXNjO1xuICAgIG1hcmdpbjogMTVweCAwO1xuICAgIC5kZWZhdWx0TGkoKTtcblxufVxuXG4uZGVmYXVsdE9sIHtcbiAgICBsaXN0LXN0eWxlOiBkZWNpbWFsO1xuICAgIHBhZGRpbmctbGVmdDogMzBweDtcbiAgICBtYXJnaW46IDE1cHggMDtcbiAgICAuZGVmYXVsdExpKCk7XG59XG5cbi5kZWZhdWx0VGFibGUoKSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwIDAgMjBweDtcbn1cblxuXG4vKioqKioqKioqKioqKioqKioqKioqKlxuICAgIEJ0biBzdHlsaW5nc1xuKioqKioqKioqKioqKioqKioqKioqKiovXG5cblxuLmJ0bi1iYXNlKCkge1xuICAgIC5pbmxpbmUoKTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5idG4ge1xuICAgIC5idG4tYmFzZSgpO1xuICAgIGxpbmUtaGVpZ2h0OiAxMjAlO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHBhZGRpbmc6IDhweCAxNXB4O1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgLnRyYW5zaXRpb24oYWxsLCAwLjFzKTtcbiAgICAucm91bmRlZCgzcHgpO1xufVxuXG4uYnRuLXByaW1hcnkge1xuICAgIGJhY2tncm91bmQ6IEBwcmltYXJ5X2J0bl9iZztcbiAgICBjb2xvcjogQHByaW1hcnlfYnRuX2NvbG91cjtcbiAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IEBwcmltYXJ5X2J0bl9jb2xvdXJfaG92ZXI7XG4gICAgICAgIGJhY2tncm91bmQ6IEBwcmltYXJ5X2J0bl9iZ19ob3ZlcjtcbiAgICB9XG4gICAgJjphY3RpdmUge1xuICAgICAgICBjb2xvcjogQHByaW1hcnlfYnRuX2NvbG91cl9hY3RpdmU7XG4gICAgICAgIGJhY2tncm91bmQ6IEBwcmltYXJ5X2J0bl9iZ19hY3RpdmU7XG4gICAgfVxuICAgICY6ZGlzYWJsZWQsXG4gICAgJi5kaXNhYmxlZCB7XG4gICAgICAgIGNvbG9yOiBAcHJpbWFyeV9idG5fY29sb3VyX2Rpc2FibGVkO1xuICAgICAgICBiYWNrZ3JvdW5kOiBAcHJpbWFyeV9idG5fYmdfZGlzYWJsZWQ7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBjb2xvcjogQHByaW1hcnlfYnRuX2NvbG91cl9kaXNhYmxlZDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IEBwcmltYXJ5X2J0bl9iZ19kaXNhYmxlZDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLypcbiAqICBQcmludCBTdHlsZXMgYXJlIGRlY2xhcmluZyB0aGVtXG4gKi9cblxuaHRtbCwgYm9keSB7XG4gICAgLnNtb290aCgpO1xuICAgIC5iYXNlRm9udFN0eWxlcygpO1xufVxuXG5oMSB7XG4gICAgLmRlZmF1bHRIMSgpO1xufVxuaDIge1xuICAgIC5kZWZhdWx0SDIoKTtcbn1cbmgzIHtcbiAgICAuZGVmYXVsdEgzKCk7XG59XG5oNCB7XG4gICAgLmRlZmF1bHRINCgpO1xufVxuaDUge1xuICAgIC5kZWZhdWx0SDUoKTtcbn1cbmg2IHtcbiAgICAuZGVmYXVsdEg2KCk7XG59XG5wIHtcbiAgICAuZGVmYXVsdFAoKTtcbn1cbmEge1xuICAgIC5kZWZhdWx0QSgpO1xufVxudWwge1xuICAgIC5kZWZhdWx0VWwoKTtcbn1cbm9sIHtcbiAgICAuZGVmYXVsdE9sKCk7XG59XG50YWJsZSB7XG4gICAgLmRlZmF1bHRUYWJsZSgpO1xufSIsIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8qIENTUyBEb2N1bWVudCAqL1xuXG4vKioqKioqKioqKioqKioqKioqKioqXG4gICAgQm9keVxuKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyoqKioqKioqKioqXG4gICAgU3RpY2t5XG4qKioqKioqKioqKiovXG5cbmh0bWwsIGJvZHkge1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG59XG5cbmJvZHkge1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cblxuZGl2LmxvZ28ge1xuICAgIHdpZHRoOiAyMDRweDtcbiAgICBoZWlnaHQ6IDM4cHg7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvbG9nby5wbmcnKSAwIDAgbm8tcmVwZWF0O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxMDtcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuZGl2LnRpdGxlIHtcbiAgICBoZWlnaHQ6IDM4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDM4cHg7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICAgIG1hcmdpbjogMCAxcHggMCAwO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBjb2xvcjogIzMzMztcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDEwO1xufVxuXG4udGVtcGxhdGUtd3JhcCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICAudHJhbnNmb3JtKH5cInRyYW5zbGF0ZSgtNTAlLCAtNTAlKVwiKTtcbn1cblxuLnRlbXBsYXRlLXdyYXAgY2FudmFzIHtcbiAgICBtYXJnaW46IDAgMCAxMHB4IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDk7XG4gICAgLmJveC1zaGFkb3coflwiMCAxMHB4IDMwcHggcmdiYSgwLCAwLCAwLCAwLjIpXCIpO1xuXHRtYXgtd2lkdGg6IDEwMHZ3O1xufVxuXG4uZnVsbHNjcmVlbiB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxMDtcbn1cblxuLmNvbnRyb2xzIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4vKlxuI2Rvd25sb2FkLWxpbmsge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGJvdHRvbTogMDtcblx0bGVmdDogMDtcblx0ei1pbmRleDogLTE7XG5cdHZpc2liaWxpdHk6IGhpZGRlbjtcblx0Lm9wYWNpdHkoMCk7XG5cdHdpZHRoOiAxcHg7XG5cdGhlaWdodDogMXB4O1xufSovXG5cbiNwb3B1cCB7XG5cdC5yZ2JhLWJnKEBibGFjaywwLjMpO1xuXHQub3BhY2l0eSgwKTtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDA7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdC50cmFuc2l0aW9uKGFsbCwwLjVzKTtcblx0dmlzaWJpbGl0eTogaGlkZGVuO1xuXHRkaXNwbGF5OiBub25lO1xuXG5cdCYuYWN0aXZlIHtcblx0XHQub3BhY2l0eSgxKTtcblx0XHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xuXHR9XG5cblx0LnBvcHVwLW91dGVyIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiAwO1xuXHRcdGxlZnQ6IDA7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdC5mbGV4KCk7XG5cdFx0LmFsaWduLWl0ZW1zKGNlbnRlcik7XG5cdFx0Lmp1c3RpZnktY29udGVudChjZW50ZXIpO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0fVxuXG5cdC5wb3B1cC1pbm5lciB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0bWF4LXdpZHRoOiAzMDBweDtcblx0XHRtaW4taGVpZ2h0OiAxNTBweDtcblx0XHRiYWNrZ3JvdW5kOiBAd2hpdGU7XG5cdFx0LnJvdW5kZWQoNXB4KTtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0ei1pbmRleDogMjtcblxuXHRcdC5jbG9zZS1idG4ge1xuXHRcdFx0Zm9udC1zaXplOiAxNXB4O1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0XHRcdGNvbG9yOiBAYmxhY2s7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRyaWdodDogMTBweDtcblx0XHRcdHRvcDogNXB4O1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0LnRyYW5zaXRpb24oYWxsLDAuMnMpO1xuXHRcdFx0ei1pbmRleDogMTA7XG5cblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHQub3BhY2l0eSgwLjgpO1xuXHRcdFx0fVxuXHRcdFx0JjphY3RpdmUge1xuXHRcdFx0XHRjb2xvcjogQHByaW1hcnlfY29sb3VyO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCNjb25maWctY29udGFpbmVyIHtcblx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0b3ZlcmZsb3c6IGF1dG87XG5cdFx0bWF4LWhlaWdodDogMTAwJTtcblxuXHRcdHRleHRhcmVhIHtcblx0XHRcdGJvcmRlcjogbm9uZTtcblx0XHRcdG91dGxpbmU6IG5vbmU7XG5cdFx0XHRoZWlnaHQ6IDExMHB4O1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRmb250LXNpemU6IDE2cHg7XG5cdFx0XHRsaW5lLWhlaWdodDogMTMwJTtcblx0XHRcdGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG5cdFx0fVxuXHR9XG5cdCNkb3dubG9hZHMtY29udGFpbmVyIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cblx0LnBvcHVwLWNvbnRlbnQge1xuXHRcdC5mbGV4KCk7XG5cdFx0LmFsaWduLWl0ZW1zKGNlbnRlcik7XG5cdFx0Lmp1c3RpZnktY29udGVudChjZW50ZXIpO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRwYWRkaW5nOiAyMHB4O1xuXG5cdFx0LmlubmVyIHtcblx0XHRcdC5pbmxpbmUoKTtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdH1cblx0XHQuYnRuIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0bWFyZ2luOiA1cHggMTBweDtcblx0XHR9XG5cdH1cbn0iLCJAY2hhcnNldCBcIlVURi04XCI7XG4vKiBDU1MgRG9jdW1lbnQgKi9cblxuLyoqKioqKioqKioqKioqKioqKioqKlxuICAgIG1heC13aWR0aCA5NzlcbioqKioqKioqKioqKioqKioqKioqKiovXG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk3OXB4KSB7XG5cbn1cblxuXG4vKioqKioqKioqKioqKioqKioqKioqXG4gICAgbWF4LXdpZHRoIDc2N1xuKioqKioqKioqKioqKioqKioqKioqKi9cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcblxuICAgIC5idG4ge1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIHBhZGRpbmc6IDVweCAxMHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgfVxuXG4gICAgLmNvbnRyb2xzIHtcbiAgICAgICAgYm90dG9tOiAtNzBweDtcbiAgICB9XG5cbn0iXX0= */
