*,
*:before,
*:after {
  box-sizing: inherit;
}

html {
  box-sizing: border-box;
  margin: 0;
  font-family: sans-serif;
  font-size: 1rem;
  line-height: 1.5;
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  text-size-adjust: 100%;
  -ms-overflow-style: scrollbar;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

@-ms-viewport {
  width: device-width;
}

article, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {
  display: block;
}

body {
  margin: 0;
  text-align: left;
  color: #4a4a4a;
  background-color: #fff;
  font-family: "Gotham Narrow";
  font-size: 1rem;
  font-weight: normal;
  line-height: 1.5;
}

[tabindex='-1']:focus {
  outline: 0 !important;
}

hr {
  overflow: visible;
  box-sizing: content-box;
  height: 0;
}

h1, h2, h3, h4, h5, h6 {
  margin-top: 0;
  margin-bottom: 0.5em;
  color: #643c95;
}

p {
  margin-top: 0;
  margin-bottom: 1rem;
}

abbr[title] {
  cursor: help;
  text-decoration: underline;
  -webkit-text-decoration: underline dotted;
  text-decoration: underline dotted;
  border-bottom: 0;
}

address {
  margin-bottom: 1rem;
  font-style: normal;
  line-height: inherit;
}

ol,
ul {
  margin-top: 0;
  margin-bottom: 1rem;
}

ol ol,
ul ol, ol
ul,
ul
ul {
  margin-bottom: 0;
}

dl {
  margin-top: 0;
  margin-bottom: 1rem;
}

dt {
  font-weight: bold;
}

dd {
  margin-bottom: 0.5rem;
  margin-left: 0;
}

blockquote {
  margin: 0 0 1rem;
}

dfn {
  font-style: italic;
}

b,
strong {
  font-weight: bolder;
}

small {
  font-size: 80%;
}

sub,
sup {
  position: relative;
  vertical-align: baseline;
  font-size: 75%;
  line-height: 0;
}

sub {
  bottom: -.25em;
}

sup {
  top: -.5em;
}

a {
  text-decoration: none;
  color: #643c95;
  background-color: transparent;
  -webkit-text-decoration-skip: objects ink;
  text-decoration-skip: objects ink;
}

a:hover {
  text-decoration: underline;
  color: #3f265e;
}

a:not([href]):not([tabindex]) {
  text-decoration: none;
  color: inherit;
}

a:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {
  text-decoration: none;
  color: inherit;
}

a:not([href]):not([tabindex]):focus {
  outline: 0;
}

pre,
code,
kbd,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}

pre {
  overflow: auto;
  margin-top: 0;
  margin-bottom: 1rem;
  -ms-overflow-style: scrollbar;
}

figure {
  margin: 0 0 1rem;
}

img {
  vertical-align: middle;
  border-style: none;
}

svg:not(:root) {
  overflow: hidden;
}

a,
area,
button,
[role='button'],
input:not([type='range']),
label,
select,
summary,
textarea {
  touch-action: manipulation;
}

table {
  border-collapse: collapse;
}

caption {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
  caption-side: bottom;
  text-align: left;
  color: #868e96;
}

th {
  text-align: inherit;
}

label {
  display: inline-block;
  margin-bottom: .5rem;
}

button {
  border-radius: 0;
}

button:focus {
  outline: 1px dotted;
  outline: 5px auto -webkit-focus-ring-color;
}

input,
button,
select,
optgroup,
textarea {
  margin: 0;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}

button,
input {
  overflow: visible;
}

button,
select {
  text-transform: none;
}

button,
html [type='button'],
[type='reset'],
[type='submit'] {
  -webkit-appearance: button;
  -moz-appearance: button;
  appearance: button;
}

button::-moz-focus-inner,
[type='button']::-moz-focus-inner,
[type='reset']::-moz-focus-inner,
[type='submit']::-moz-focus-inner {
  padding: 0;
  border-style: none;
}

input[type='radio'],
input[type='checkbox'] {
  box-sizing: border-box;
  padding: 0;
}

input[type='date'],
input[type='time'],
input[type='datetime-local'],
input[type='month'] {
  -webkit-appearance: listbox;
  -moz-appearance: listbox;
  appearance: listbox;
}

textarea {
  overflow: auto;
  resize: vertical;
}

fieldset {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

legend {
  display: block;
  width: 100%;
  max-width: 100%;
  margin-bottom: .5rem;
  padding: 0;
  white-space: normal;
  color: inherit;
  font-size: 1.5rem;
  line-height: inherit;
}

progress {
  vertical-align: baseline;
}

[type='number']::-webkit-inner-spin-button,
[type='number']::-webkit-outer-spin-button {
  height: auto;
}

[type='search'] {
  outline-offset: -2px;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

[type='search']::-webkit-search-cancel-button,
[type='search']::-webkit-search-decoration {
  -webkit-appearance: none;
  appearance: none;
}

::-webkit-file-upload-button {
  font: inherit;
  -webkit-appearance: button;
  appearance: button;
}

output {
  display: inline-block;
}

summary {
  display: list-item;
}

template {
  display: none;
}

[hidden] {
  display: none !important;
}

.page-header {
  background: #643c95;
}

.page-header a {
  color: #fff;
}

button,
input[type='button'],
input[type='reset'],
input[type='submit'] {
  background-color: #643c95;
  text-transform: lowercase;
  border-color: #643c95;
  font-family: 'baskerville';
}

button:hover,
input[type='button']:hover,
input[type='reset']:hover,
input[type='submit']:hover {
  background-color: #4c2d71;
}

h1, h2, h3 {
  text-transform: lowercase;
}

.block-views-exposed-filter-blockvacancies-search-vacancies .shim {
  background-color: transparent;
}

.block-views-exposed-filter-blockvacancies-search-vacancies .shim.shim-active {
  background-color: rgba(100, 60, 149, 0.4);
}

.node--type-vacancy.node--view-mode-full .meta-information > div {
  border-color: #643c95;
}

.field--name-field-paragraph-link a,
.paragraph--type--highlighted-vacancies .paragraph-more-link-wrapper a,
.view-related-vacancies.view-display-id-block_related .more-link a {
  background-color: #643c95;
}

.field--name-field-paragraph-link a:hover,
.paragraph--type--highlighted-vacancies .paragraph-more-link-wrapper a:hover,
.view-related-vacancies.view-display-id-block_related .more-link a:hover {
  background-color: #4c2d71;
}

.facets-widget-links ul li a {
  background-color: #fff;
}

.facets-widget-links ul li a:hover {
  background-color: #643c95;
}

.facets-widget-links ul li a.is-active {
  background-color: #643c95;
}

.facets-widget-links ul li a.is-active:hover {
  background-color: #643c95;
}

.form-select.bef-links.no-active-links a {
  background-color: #643c95;
}

.form-select.bef-links.no-active-links a:hover {
  background-color: #4c2d71;
}

.form-select.bef-links a {
  background-color: #7d4db7;
}

.form-select.bef-links a:hover {
  background-color: #643c95;
}

.form-select.bef-links a.bef-link-active {
  background-color: #643c95;
}

.form-select.bef-links a.bef-link-active:hover {
  background-color: #4c2d71;
}

.node--type-vacancy.node--view-mode-full .field--name-field-application-link {
  border-top: 1px solid #643c95;
}

.node--type-vacancy.node--view-mode-full .field--name-field-application-link a {
  background-color: #643c95;
}

.node--type-vacancy.node--view-mode-full .field--name-field-application-link a:hover {
  background-color: #4c2d71;
}

.region-footer {
  color: #fff;
  background: #643c95;
}

.region-footer a {
  color: #fff;
}

.region-footer h2, .region-footer h3 {
  color: #fff;
}

.paragraph--type--four-grid .group-wrapper .field--type-text-long {
  color: #fff;
  background: #643c95;
}

@media (min-width: 768px) {
  .paragraph--type--four-grid .group-wrapper .field--type-text-long {
    padding: 2rem;
  }
}

.paragraph--type--four-grid .group-wrapper .field--type-text-long h3 {
  color: #fff;
}

.paragraph--type--call-to-action .overlay-box {
  color: #fff;
  background: #643c95;
}

.paragraph--type--call-to-action .overlay-box h2, .paragraph--type--call-to-action .overlay-box h3 {
  color: #fff;
}

@media (min-width: 768px) {
  .page-header {
    position: absolute;
    box-shadow: none;
  }
}

@media (min-width: 768px) {
  .region-header .block-menu ul li a {
    text-transform: lowercase;
    text-shadow: 0 0 2px rgba(0, 0, 0, 0.4);
    font-family: 'Baskerville';
    font-size: 1.5rem;
    font-weight: bold;
  }
}

.block-views-exposed-filter-blockvacancies-search-vacancies {
  min-height: 66vh;
  background-image: url("https://nhow.nhhoteljobs.com/themes/custom/nhow/img/kameleon.jpg");
  background-position: right bottom;
}

.block-views-exposed-filter-blockvacancies-search-vacancies h2 {
  color: #643c95;
  text-shadow: none;
}

@media (max-height: 860px) {
  .block-views-exposed-filter-blockvacancies-search-vacancies {
    background-position: right bottom -60px;
  }
}

.block-views-exposed-filter-blockvacancies-search-vacancies select.form-select {
  box-shadow: 10px 15px 10px rgba(100, 60, 149, 0.8);
}

.block-views-exposed-filter-blockvacancies-search-vacancies .form-item .form-text {
  box-shadow: 10px 15px 10px rgba(100, 60, 149, 0.8);
}

.block-views-exposed-filter-blockvacancies-search-vacancies .form-actions input {
  box-shadow: 8px 15px 10px rgba(100, 60, 149, 0.8);
}

.paragraph--type--highlighted-vacancies {
  background-color: #643c95;
}

@media (min-width: 768px) {
  .paragraph--type--highlighted-vacancies {
    padding: 2rem;
  }
}

.paragraph--type--highlighted-vacancies h2 {
  color: #fff;
}

.paragraph--type--highlighted-vacancies .paragraph-more-link-wrapper a {
  color: #643c95;
  background: #fff;
}

.paragraph h2 {
  text-transform: unset;
}

.block-block-contentc38a2ec8-9af6-42b4-9e33-64fa1596b9ef {
  position: absolute;
  margin-top: -222px;
  margin-left: 49%;
}

.site-mini-logo {
  display: none;
}

@font-face {
  font-family: 'Gotham Narrow';
  src: url("https://nhow.nhhoteljobs.com/themes/custom/nhow/fonts/gothamnarrow/GothamNarrow-Book.woff") format("woff");
  font-weight: normal;
}

@font-face {
  font-family: 'Baskerville';
  src: url("https://nhow.nhhoteljobs.com/themes/custom/nhow/fonts/baskerville/baskerville.woff") format("woff");
  font-weight: normal;
}

h1, h2, h3 {
  font-family: "baskerville";
  font-weight: 500;
  line-height: 1.4;
}

h2 {
  margin-bottom: 2rem;
  font-size: 3rem;
}

h3 {
  font-size: 2.25rem;
}

.block-lang-dropdown {
  position: unset;
  display: flex;
  justify-content: unset;
  width: auto;
  padding: 0;
}

.block-lang-dropdown select {
  margin-top: 0;
  color: #fff;
  border: 2px solid #fff;
  background: #643c95;
}

@media (min-width: 768px) {
  .block-lang-dropdown select {
    margin-top: .5rem;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJhc2UvX3JlYm9vdC5zY3NzIiwiX3ZhcmlhYmxlcy5zY3NzIiwic3R5bGUuY3NzIiwiY29tcG9uZW50cy9fY29sb3JzLnNjc3MiLCIuLi8uLi9jb21tb24vX21peGlucy5zY3NzIiwiY29tcG9uZW50cy9fb3ZlcnJpZGVzLnNjc3MiLCIuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL19icmVha3BvaW50LnNjc3MiLCJ0eXBvZ3JhcGh5L190eXBvZ3JhcGh5LnNjc3MiLCJuYXZpZ2F0aW9uL19sYW5ndWFnZS1zd2l0Y2hlci5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJDQTs7O0VBR0Usb0JBQW1CO0NBQ3BCOztBQUVEO0VBQ0UsdUJBQXNCO0VBQ3RCLFVBQVM7RUFDVCx3QkFBdUI7RUFDdkIsZ0JBQWU7RUFDZixpQkNib0I7RURjcEIsK0JBQXNCO0VBQXRCLDRCQUFzQjtFQUF0QiwyQkFBc0I7RUFBdEIsdUJBQXNCO0VBQ3RCLDhCQUE2QjtFQUM3Qiw4Q0FBNkM7Q0FDOUM7O0FBS0M7RUFDRSxvQkFBbUI7Q0U3Q3RCOztBRm9ERDtFQUNFLGVBQWM7Q0FDZjs7QUFTRDtFQUNFLFVBQVM7RUFDVCxpQkFBZ0I7RUFDaEIsZUN6RWU7RUQwRWYsdUJBN0VvQjtFQThFcEIsNkJDdkRzQztFRHdEdEMsZ0JDaERtQjtFRGlEbkIsb0JDdkR1QjtFRHdEdkIsaUJDakRvQjtDRGtEckI7O0FFdkREO0VGK0RFLHNCQUFxQjtDQUN0Qjs7QUFNRDtFQUNFLGtCQUFpQjtFQUNqQix3QkFBdUI7RUFDdkIsVUFBUztDQUNWOztBQVNEO0VBQ0UsY0FBYTtFQUNiLHFCQWpHMkI7RUFrRzNCLGVDakdtQjtDRGtHcEI7O0FBT0Q7RUFDRSxjQUFhO0VBQ2Isb0JBM0cwQjtDQTRHM0I7O0FBT0Q7RUFDRSxhQUFZO0VBQ1osMkJBQTBCO0VBQzFCLDBDQUFpQztFQUFqQyxrQ0FBaUM7RUFDakMsaUJBQWdCO0NBQ2pCOztBQUVEO0VBQ0Usb0JBM0gwQjtFQTRIMUIsbUJBQWtCO0VBQ2xCLHFCQUFvQjtDQUNyQjs7QUFFRDs7RUFFRSxjQUFhO0VBQ2Isb0JBbkkwQjtDQXdJM0I7O0FBUkQ7Ozs7O0VBTUksaUJBQWdCO0NBQ2pCOztBQUdIO0VBQ0UsY0FBYTtFQUNiLG9CQTVJMEI7Q0E2STNCOztBQUVEO0VBQ0Usa0JBL0ltQjtDQWdKcEI7O0FBRUQ7RUFDRSxzQkFBMkM7RUFDM0MsZUFBYztDQUNmOztBQUVEO0VBQ0UsaUJBekowQjtDQTBKM0I7O0FBR0Q7RUFDRSxtQkFBa0I7Q0FDbkI7O0FBSUQ7O0VBRUUsb0JBQW1CO0NBQ3BCOztBQUlEO0VBQ0UsZUFBYztDQUNmOztBQUlEOztFQUVFLG1CQUFrQjtFQUNsQix5QkFBd0I7RUFDeEIsZUFBYztFQUNkLGVBQWM7Q0FDZjs7QUFFRDtFQUFNLGVBQWM7Q0FBSTs7QUFDeEI7RUFBTSxXQUFVO0NBQUk7O0FBR3BCO0VBQ0Usc0JBMUxvQjtFQTJMcEIsZUM5TG1CO0VEK0xuQiw4QkFBNkI7RUFDN0IsMENBQWlDO0VBQWpDLGtDQUFpQztDQU1sQzs7QUFWRDtFQU9JLDJCQTlMNkI7RUErTDdCLGVBaE11QztDQWlNeEM7O0FBUUg7RUFDRSxzQkFBcUI7RUFDckIsZUFBYztDQVdmOztBQWJEO0VBTUksc0JBQXFCO0VBQ3JCLGVBQWM7Q0FDZjs7QUFSSDtFQVdJLFdBQVU7Q0FDWDs7QUFLSDs7OztFQUlFLGtDQUFpQztFQUNqQyxlQUFjO0NBQ2Y7O0FBR0Q7RUFFRSxlQUFjO0VBRWQsY0FBYTtFQUViLG9CQTdPMEI7RUFnUDFCLDhCQUE2QjtDQUM5Qjs7QUFHRDtFQUVFLGlCQXRQMEI7Q0F1UDNCOztBQUdEO0VBQ0UsdUJBQXNCO0VBQ3RCLG1CQUFrQjtDQUNuQjs7QUFFRDtFQUNFLGlCQUFnQjtDQUNqQjs7QUFXRDs7Ozs7Ozs7O0VBU0UsMkJBQTBCO0NBQzNCOztBQUdEO0VBQ0UsMEJBQXlCO0NBQzFCOztBQUVEO0VBQ0UscUJBeFJ5QjtFQXlSekIsd0JBelJ5QjtFQTBSekIscUJBQW9CO0VBQ3BCLGlCQUFnQjtFQUNoQixlQTNSa0I7Q0E0Um5COztBQUlEO0VBQ0Usb0JBQW1CO0NBQ3BCOztBQUdEO0VBRUUsc0JBQXFCO0VBQ3JCLHFCQUFvQjtDQUNyQjs7QUFLRDtFQUNFLGlCQUFnQjtDQUNqQjs7QUFNRDtFQUNFLG9CQUFtQjtFQUNuQiwyQ0FBMEM7Q0FDM0M7O0FBRUQ7Ozs7O0VBS0UsVUFBUztFQUNULHFCQUFvQjtFQUNwQixtQkFBa0I7RUFDbEIscUJBQW9CO0NBQ3JCOztBQUVEOztFQUVFLGtCQUFpQjtDQUNsQjs7QUFFRDs7RUFFRSxxQkFBb0I7Q0FDckI7O0FBS0Q7Ozs7RUFJRSwyQkFBa0I7RUFBbEIsd0JBQWtCO0VBQWxCLG1CQUFrQjtDQUNuQjs7QUFHRDs7OztFQUlFLFdBQVU7RUFDVixtQkFBa0I7Q0FDbkI7O0FBRUQ7O0VBRUUsdUJBQXNCO0VBQ3RCLFdBQVU7Q0FDWDs7QUFFRDs7OztFQVNFLDRCQUFtQjtFQUFuQix5QkFBbUI7RUFBbkIsb0JBQW1CO0NBQ3BCOztBQUVEO0VBQ0UsZUFBYztFQUVkLGlCQUFnQjtDQUNqQjs7QUFFRDtFQU1FLGFBQVk7RUFFWixVQUFTO0VBQ1QsV0FBVTtFQUNWLFVBQVM7Q0FDVjs7QUFJRDtFQUNFLGVBQWM7RUFDZCxZQUFXO0VBQ1gsZ0JBQWU7RUFDZixxQkFBb0I7RUFDcEIsV0FBVTtFQUNWLG9CQUFtQjtFQUNuQixlQUFjO0VBQ2Qsa0JBQWlCO0VBQ2pCLHFCQUFvQjtDQUNyQjs7QUFFRDtFQUNFLHlCQUF3QjtDQUN6Qjs7QUV4SUQ7O0VGNklFLGFBQVk7Q0FDYjs7QUV6SUQ7RUZnSkUscUJBQW9CO0VBQ3BCLHlCQUFnQjtFQUFoQixzQkFBZ0I7RUFBaEIsaUJBQWdCO0NBQ2pCOztBRTdJRDs7RUZrSkUseUJBQWdCO0VBQWhCLGlCQUFnQjtDQUNqQjs7QUFJRDtFQUNFLGNBQWE7RUFDYiwyQkFBa0I7RUFBbEIsbUJBQWtCO0NBQ25COztBQUdEO0VBQ0Usc0JBQXFCO0NBQ3RCOztBQUVEO0VBQ0UsbUJBQWtCO0NBQ25COztBQUVEO0VBQ0UsY0FBYTtDQUNkOztBRWpKRDtFRnNKRSx5QkFBd0I7Q0FDekI7O0FHdmVEO0VBQ0Usb0JGd0JtQjtDRWZwQjs7QUFWRDtFQVFJLFlGTVE7Q0VMVDs7QUFHSDs7OztFQzRaRSwwQkgvWW1CO0VFUm5CLDBCQUF5QjtFQUN6QixzQkZPbUI7RUVObkIsMkJBQTBCO0NBQzNCOztBQ3NaQzs7OztFQUNFLDBCRDNaNkQ7Q0M0WjlEOztBRHRaSDtFQUNFLDBCQUF5QjtDQUMxQjs7QUFFRDtFQUlJLDhCQUE2QjtDQUs5Qjs7QUFUSDtFQU9NLDBDRlJlO0NFU2hCOztBQUlMO0VBQ0Usc0JGZG1CO0NFZXBCOztBQUVEOzs7RUM4WEUsMEJIL1ltQjtDRXFCcEI7O0FDNFhDOzs7RUFDRSwwQkQ5WDZEO0NDK1g5RDs7QUQ1WEg7RUN3WEUsdUJIMVpVO0NFeUNUOztBQ21YRDtFQUNFLDBCSGxaaUI7Q0dtWmxCOztBRDVYSDtFQ3dYRSwwQkgvWW1CO0NFNkJoQjs7QUNvWEg7RUFDRSwwQkhsWmlCO0NHbVpsQjs7QURsWEg7RUM4V0UsMEJIL1ltQjtDRXFDaEI7O0FDNFdIO0VBQ0UsMEJEOVdpRTtDQytXbEU7O0FEbFhIO0VDOFdFLDBCRHRXbUQ7Q0FLbEQ7O0FDbVdEO0VBQ0UsMEJIbFppQjtDR21abEI7O0FEbFhIO0VDOFdFLDBCSC9ZbUI7Q0U2Q2hCOztBQ29XSDtFQUNFLDBCRHRXaUU7Q0N1V2xFOztBRGxXSDtFQUNFLDhCRmxEbUI7Q0V1RHBCOztBQU5EO0VDOFZFLDBCSC9ZbUI7Q0VzRGxCOztBQzJWRDtFQUNFLDBCRDdWK0Q7Q0M4VmhFOztBRDFWSDtFQUNFLFlGckVVO0VFc0VWLG9CRjNEbUI7Q0VvRXBCOztBQVhEO0VBS0ksWUZ6RVE7Q0UwRVQ7O0FBTkg7RUFTSSxZRjdFUTtDRThFVDs7QUU1Rkg7RUFDRSxZSmFVO0VJWlYsb0JKdUJtQjtDSWRwQjs7QUNxREc7RURoRUo7SUFLSSxjSnlDeUI7R0luQzVCO0NId2NBOztBR25kRDtFQVNJLFlKS1E7Q0lKVDs7QUFHSDtFQUNFLFlKQVU7RUlDVixvQkpVbUI7Q0lMcEI7O0FBUEQ7RUFLSSxZSkpRO0NJS1Q7O0FDNkNDO0VIaEVKO0lFd0JJLG1CQUFrQjtJQUNsQixpQkFBZ0I7R0FFbkI7Q0g0Y0E7O0FJdmFHO0VEbkNKO0lBRUksMEJBQXlCO0lBQ3pCLHdDSnRCUTtJSXVCUiwyQkFBMEI7SUFDMUIsa0JBQWlCO0lBQ2pCLGtCQUFpQjtHQUVwQjtDSDRjQTs7QUcxY0Q7RUFDRSxpQkFBZ0I7RUFDaEIsNkNBQTRDO0VBQzVDLGtDQUFpQztDQU1sQzs7QUFURDtFQU1JLGVKcEJpQjtFSXFCakIsa0JBQWlCO0NBQ2xCOztBQUdIO0VBWEE7SUFhSSx3Q0FBdUM7R0FDeEM7Q0g2Y0Y7O0FHemNEO0VBQ0UsbURKakNtQjtDSWtDcEI7O0FBRUQ7RUFDRSxtREpyQ21CO0NJc0NwQjs7QUFFRDtFQUNFLGtESnpDbUI7Q0kwQ3BCOztBQUVEO0VBQ0UsMEJKN0NtQjtDSTJEcEI7O0FDcEJHO0VES0o7SUFJSSxjSjNCeUI7R0lzQzVCO0NIb2NBOztBR25kRDtFQVFJLFlKL0RRO0NJZ0VUOztBQVRIO0VBWUksZUp4RGlCO0VJeURqQixpQkpwRVE7Q0lxRVQ7O0FBR0g7RUFDRSxzQkFBcUI7Q0FDdEI7O0FBRUQ7RUFDRSxtQkFBa0I7RUFDbEIsbUJBQWtCO0VBQ2xCLGlCQUFnQjtDQUNqQjs7QUFHRDtFQUNFLGNBQWE7Q0FDZDs7QUVuR0Q7RUFDRSw2QkFBNEI7RUFDNUIsd0VBQXVFO0VBQ3ZFLG9CQUFtQjtDTGtqQnBCOztBSy9pQkQ7RUFDRSwyQkFBMEI7RUFDMUIsaUVBQWdFO0VBQ2hFLG9CQUFtQjtDTGtqQnBCOztBQ3JpQkQ7RUlQRSwyQk5rQmdDO0VNakJoQyxpQkFBZ0I7RUFDaEIsaUJBQWdCO0NBQ2pCOztBQUVEO0VBQ0Usb0JOeUIyQjtFTXhCM0IsZ0JBQWU7Q0FDaEI7O0FBRUQ7RUFDRSxtQkFBa0I7Q0FDbkI7O0FDM0JEO0VBQ0UsZ0JBQWU7RUFDZixjQUFhO0VBQ2IsdUJBQXNCO0VBQ3RCLFlBQVc7RUFDWCxXQUFVO0NBV1g7O0FBaEJEO0VBUUksY0FBYTtFQUNiLFlQS1E7RU9KUix1QlBJUTtFT0hSLG9CUGNpQjtDT1ZsQjs7QUZpREM7RUVoRUo7SUFhTSxrQkFBaUI7R0FFcEI7Q05nbEJGIiwiZmlsZSI6InN0eWxlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFJlYm9vdFxuLy9cbi8vIE5vcm1hbGl6YXRpb24gb2YgSFRNTCBlbGVtZW50cy5cblxuLy8gT3ZlcnJpZGUgdGhlc2UgdmFyaWFibGVzIGluIHlvdXIgb3duIGZpbGVzLlxuXG4vLyBCb2R5XG4vL1xuLy8gU2V0dGluZ3MgZm9yIHRoZSAnPGJvZHk+JyBlbGVtZW50LlxuJGJvZHktYmFja2dyb3VuZDogI2ZmZiAhZGVmYXVsdDtcbiRib2R5LWNvbG9yICAgICA6ICMzMzMgIWRlZmF1bHQ7XG5cbi8vIHN0eWxlbGludC1kaXNhYmxlIHZhbHVlLWtleXdvcmQtY2FzZVxuJGZvbnQtZmFtaWx5LXNhbnMtc2VyaWY6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCAnSGVsdmV0aWNhIE5ldWUnLCBBcmlhbCwgc2Fucy1zZXJpZiwgJ0FwcGxlIENvbG9yIEVtb2ppJywgJ1NlZ29lIFVJIEVtb2ppJywgJ1NlZ29lIFVJIFN5bWJvbCcgIWRlZmF1bHQ7XG4kZm9udC1mYW1pbHktbW9ub3NwYWNlIDogU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJywgJ0NvdXJpZXIgTmV3JywgbW9ub3NwYWNlICFkZWZhdWx0O1xuJGZvbnQtZmFtaWx5LWJhc2UgICAgICA6ICRmb250LWZhbWlseS1zYW5zLXNlcmlmICFkZWZhdWx0O1xuLy8gc3R5bGVsaW50LWVuYWJsZSB2YWx1ZS1rZXl3b3JkLWNhc2VcblxuLy8gR2VuZXJhbCBmb250IHN0eWxlc1xuJGZvbnQtc2l6ZS1iYXNlICA6IDFyZW0gIWRlZmF1bHQ7IC8vIEFzc3VtZXMgdGhlIGJyb3dzZXIgZGVmYXVsdCwgdHlwaWNhbGx5IGAxNnB4YFxuJGZvbnQtd2VpZ2h0LWJhc2U6IDQwMCAhZGVmYXVsdDtcbiRsaW5lLWhlaWdodC1iYXNlOiAxLjUgIWRlZmF1bHQ7XG5cbi8vIEVsZW1lbnQgbWFyZ2lucy5cbiRoZWFkaW5ncy1tYXJnaW4tYm90dG9tOiAuNWVtICFkZWZhdWx0O1xuJGVsZW1lbnQtbWFyZ2luLWJvdHRvbTogMXJlbSAhZGVmYXVsdDtcbiRkdC1mb250LXdlaWdodDogYm9sZCAhZGVmYXVsdDtcbiRsaW5rLWNvbG9yOiAjMDBmICFkZWZhdWx0O1xuJGxpbmstZGVjb3JhdGlvbjogbm9uZSAhZGVmYXVsdDtcbiRsaW5rLWhvdmVyLWNvbG9yOiBkYXJrZW4oJGxpbmstY29sb3IsIDE1JSkgIWRlZmF1bHQ7XG4kbGluay1ob3Zlci1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgIWRlZmF1bHQ7XG4kdGFibGUtY2VsbC1wYWRkaW5nOiAuNzVyZW0gIWRlZmF1bHQ7XG4kdGV4dC1tdXRlZDogIzg2OGU5NiAhZGVmYXVsdDtcblxuLy8gRG9jdW1lbnRcbi8vXG4vLyAxLiBDaGFuZ2UgZnJvbSAnYm94LXNpemluZzogY29udGVudC1ib3gnIHNvIHRoYXQgd2lkdGggaXMgbm90IGFmZmVjdGVkIGJ5IHBhZGRpbmcgb3IgYm9yZGVyLlxuLy8gMi4gQ2hhbmdlIHRoZSBkZWZhdWx0IGZvbnQgZmFtaWx5IGluIGFsbCBicm93c2Vycy5cbi8vIDMuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbi8vIDQuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW4gSUUgb24gV2luZG93cyBQaG9uZSBhbmQgaW4gaU9TLlxuLy8gNS4gU2V0dGluZyBAdmlld3BvcnQgY2F1c2VzIHNjcm9sbGJhcnMgdG8gb3ZlcmxhcCBjb250ZW50IGluIElFMTEgYW5kIEVkZ2UsIHNvXG4vLyAgICB3ZSBmb3JjZSBhIG5vbi1vdmVybGFwcGluZywgbm9uLWF1dG8taGlkaW5nIHNjcm9sbGJhciB0byBjb3VudGVyYWN0LlxuLy8gNi4gQ2hhbmdlIHRoZSBkZWZhdWx0IHRhcCBoaWdobGlnaHQgdG8gYmUgY29tcGxldGVseSB0cmFuc3BhcmVudCBpbiBpT1MuXG4qLFxuKjpiZWZvcmUsXG4qOmFmdGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDtcbn1cblxuaHRtbCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8vIDFcbiAgbWFyZ2luOiAwO1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsgLy8gMlxuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYmFzZTsgLy8gM1xuICB0ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvLyA0XG4gIC1tcy1vdmVyZmxvdy1zdHlsZTogc2Nyb2xsYmFyOyAvLyA1XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwKTsgLy8gNlxufVxuXG4vLyBJRTEwKyBkb2Vzbid0IGhvbm9yICc8bWV0YSBuYW1lPVwidmlld3BvcnRcIj4nIGluIHNvbWUgY2FzZXMuXG4vLyBzdHlsZWxpbnQtZGlzYWJsZSBhdC1ydWxlLW5vLXZlbmRvci1wcmVmaXhcbkBhdC1yb290IHtcbiAgQC1tcy12aWV3cG9ydCB7XG4gICAgd2lkdGg6IGRldmljZS13aWR0aDtcbiAgfVxufVxuLy8gc3R5bGVsaW50LWVuYWJsZSBhdC1ydWxlLW5vLXZlbmRvci1wcmVmaXhcblxuLy8gU2hpbSBmb3IgXCJuZXdcIiBIVE1MNSBzdHJ1Y3R1cmFsIGVsZW1lbnRzIHRvIGRpc3BsYXkgY29ycmVjdGx5IChJRTEwLCBvbGRlciBicm93c2Vycylcbi8vIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLWxpc3QtY29tbWEtbmV3bGluZS1hZnRlclxuYXJ0aWNsZSwgYXNpZGUsIGRpYWxvZywgZmlnY2FwdGlvbiwgZmlndXJlLCBmb290ZXIsIGhlYWRlciwgaGdyb3VwLCBtYWluLCBuYXYsIHNlY3Rpb24ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi8vIHN0eWxlbGludC1lbmFibGUgc2VsZWN0b3ItbGlzdC1jb21tYS1uZXdsaW5lLWFmdGVyXG5cbi8vIEJvZHlcbi8vXG4vLyAxLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMuXG4vLyAyLiBBcyBhIGJlc3QgcHJhY3RpY2UsIGFwcGx5IGEgZGVmYXVsdCBiYWNrZ3JvdW5kLWNvbG9yLlxuLy8gMy4gU2V0IGFuIGV4cGxpY2l0IGluaXRpYWwgdGV4dC1hbGlnbiB2YWx1ZSBzbyB0aGF0IHdlIGNhbiBsYXRlciB1c2UgdGhlXG4vLyAgICB0aGUgJ2luaGVyaXQnIHZhbHVlIG9uIHRoaW5ncyBsaWtlICc8dGg+JyBlbGVtZW50cy5cbmJvZHkge1xuICBtYXJnaW46IDA7IC8vIDFcbiAgdGV4dC1hbGlnbjogbGVmdDsgLy8gM1xuICBjb2xvcjogJGJvZHktY29sb3I7XG4gIGJhY2tncm91bmQtY29sb3I6ICRib2R5LWJhY2tncm91bmQ7IC8vIDJcbiAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1iYXNlO1xuICBmb250LXNpemU6ICRmb250LXNpemUtYmFzZTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1iYXNlO1xuICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJhc2U7XG59XG5cbi8vIFN1cHByZXNzIHRoZSBmb2N1cyBvdXRsaW5lIG9uIGVsZW1lbnRzIHRoYXQgY2Fubm90IGJlIGFjY2Vzc2VkIHZpYSBrZXlib2FyZC5cbi8vIFRoaXMgcHJldmVudHMgYW4gdW53YW50ZWQgZm9jdXMgb3V0bGluZSBmcm9tIGFwcGVhcmluZyBhcm91bmQgZWxlbWVudHMgdGhhdFxuLy8gbWlnaHQgc3RpbGwgcmVzcG9uZCB0byBwb2ludGVyIGV2ZW50cy5cbi8vXG4vLyBDcmVkaXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9zdWl0Y3NzL2Jhc2Vcblt0YWJpbmRleD0nLTEnXTpmb2N1cyB7XG4gIG91dGxpbmU6IDAgIWltcG9ydGFudDtcbn1cblxuLy8gQ29udGVudCBncm91cGluZ1xuLy9cbi8vIDEuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuLy8gMi4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbmhyIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7IC8vIDFcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8vIDJcbiAgaGVpZ2h0OiAwOyAvLyAyXG59XG5cbi8vIFR5cG9ncmFwaHlcblxuLy8gUmVtb3ZlIHRvcCBtYXJnaW5zIGZyb20gaGVhZGluZ3Ncbi8vXG4vLyBCeSBkZWZhdWx0LCAnPGgxPictJzxoNj4nIGFsbCByZWNlaXZlIHRvcCBhbmQgYm90dG9tIG1hcmdpbnMuIFdlIG51a2UgdGhlIHRvcFxuLy8gbWFyZ2luIGZvciBlYXNpZXIgY29udHJvbCB3aXRoaW4gdHlwZSBzY2FsZXMgYXMgaXQgYXZvaWRzIG1hcmdpbiBjb2xsYXBzaW5nLlxuLy8gc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3ItbGlzdC1jb21tYS1uZXdsaW5lLWFmdGVyXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogJGhlYWRpbmdzLW1hcmdpbi1ib3R0b207XG4gIGNvbG9yOiAkaGVhZGVyLWNvbG9yO1xufVxuLy8gc3R5bGVsaW50LWVuYWJsZSBzZWxlY3Rvci1saXN0LWNvbW1hLW5ld2xpbmUtYWZ0ZXJcblxuLy8gUmVzZXQgbWFyZ2lucyBvbiBwYXJhZ3JhcGhzXG4vL1xuLy8gU2ltaWxhcmx5LCB0aGUgdG9wIG1hcmdpbiBvbiAnPHA+J3MgZ2V0IHJlc2V0LiBIb3dldmVyLCB3ZSBhbHNvIHJlc2V0IHRoZVxuLy8gYm90dG9tIG1hcmdpbiB0byB1c2UgJ3JlbScgdW5pdHMgaW5zdGVhZCBvZiAnZW0nLlxucCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206ICRlbGVtZW50LW1hcmdpbi1ib3R0b207XG59XG5cbi8vIEFiYnJldmlhdGlvbnNcbi8vXG4vLyAxLiBBZGQgZXhwbGljaXQgY3Vyc29yIHRvIGluZGljYXRlIGNoYW5nZWQgYmVoYXZpb3IuXG4vLyAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxuLy8gMy4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIEZpcmVmb3ggMzktLlxuYWJiclt0aXRsZV0ge1xuICBjdXJzb3I6IGhlbHA7IC8vIDFcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IC8vIDJcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkOyAvLyAyXG4gIGJvcmRlci1ib3R0b206IDA7IC8vIDNcbn1cblxuYWRkcmVzcyB7XG4gIG1hcmdpbi1ib3R0b206ICRlbGVtZW50LW1hcmdpbi1ib3R0b207XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG59XG5cbm9sLFxudWwge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAkZWxlbWVudC1tYXJnaW4tYm90dG9tO1xuXG4gICYgJiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxufVxuXG5kbCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206ICRlbGVtZW50LW1hcmdpbi1ib3R0b207XG59XG5cbmR0IHtcbiAgZm9udC13ZWlnaHQ6ICRkdC1mb250LXdlaWdodDtcbn1cblxuZGQge1xuICBtYXJnaW4tYm90dG9tOiAoJGVsZW1lbnQtbWFyZ2luLWJvdHRvbSAvIDIpO1xuICBtYXJnaW4tbGVmdDogMDsgLy8gVW5kbyBicm93c2VyIGRlZmF1bHQuXG59XG5cbmJsb2NrcXVvdGUge1xuICBtYXJnaW46IDAgMCAkZWxlbWVudC1tYXJnaW4tYm90dG9tO1xufVxuXG4vLyBBZGQgdGhlIGNvcnJlY3QgZm9udCBzdHlsZSBpbiBBbmRyb2lkIDQuMy0uXG5kZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi8vIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4vLyBzdHlsZWxpbnQtZGlzYWJsZSBmb250LXdlaWdodC1ub3RhdGlvblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG59XG4vLyBzdHlsZWxpbnQtZW5hYmxlIGZvbnQtd2VpZ2h0LW5vdGF0aW9uXG5cbi8vIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLy8gUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4vLyBhbGwgYnJvd3NlcnMuXG5zdWIsXG5zdXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xufVxuXG5zdWIgeyBib3R0b206IC0uMjVlbTsgfVxuc3VwIHsgdG9wOiAtLjVlbTsgfVxuXG4vLyBMaW5rcy5cbmEge1xuICB0ZXh0LWRlY29yYXRpb246ICRsaW5rLWRlY29yYXRpb247XG4gIGNvbG9yOiAkbGluay1jb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IC8vIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAgdGV4dC1kZWNvcmF0aW9uLXNraXA6IG9iamVjdHMgaW5rO1xuXG4gICY6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogJGxpbmstaG92ZXItZGVjb3JhdGlvbjtcbiAgICBjb2xvcjogJGxpbmstaG92ZXItY29sb3I7XG4gIH1cbn1cblxuLy8gQW5kIHVuZG8gdGhlc2Ugc3R5bGVzIGZvciBwbGFjZWhvbGRlciBsaW5rcy9uYW1lZCBhbmNob3JzICh3aXRob3V0IGhyZWYpXG4vLyB3aGljaCBoYXZlIG5vdCBiZWVuIG1hZGUgZXhwbGljaXRseSBrZXlib2FyZC1mb2N1c2FibGUgKHdpdGhvdXQgdGFiaW5kZXgpLlxuLy8gSXQgd291bGQgYmUgbW9yZSBzdHJhaWdodGZvcndhcmQgdG8ganVzdCB1c2UgYVtocmVmXSBpbiBwcmV2aW91cyBibG9jaywgYnV0IHRoYXRcbi8vIGNhdXNlcyBzcGVjaWZpY2l0eSBpc3N1ZXMgaW4gbWFueSBvdGhlciBzdHlsZXMgdGhhdCBhcmUgdG9vIGNvbXBsZXggdG8gZml4LlxuLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTk0MDJcbmE6bm90KFtocmVmXSk6bm90KFt0YWJpbmRleF0pIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogaW5oZXJpdDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gIH1cblxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG59XG5cbi8vIENvZGUuXG4vLyBzdHlsZWxpbnQtZGlzYWJsZSBmb250LWZhbWlseS1uby1kdXBsaWNhdGUtbmFtZXNcbnByZSxcbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvLyBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICBmb250LXNpemU6IDFlbTsgLy8gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxufVxuLy8gc3R5bGVsaW50LWVuYWJsZSBmb250LWZhbWlseS1uby1kdXBsaWNhdGUtbmFtZXNcblxucHJlIHtcbiAgLy8gRG9uJ3QgYWxsb3cgY29udGVudCB0byBicmVhayBvdXRzaWRlXG4gIG92ZXJmbG93OiBhdXRvO1xuICAvLyBSZW1vdmUgYnJvd3NlciBkZWZhdWx0IHRvcCBtYXJnaW5cbiAgbWFyZ2luLXRvcDogMDtcbiAgLy8gUmVzZXQgYnJvd3NlciBkZWZhdWx0IG9mIGAxZW1gIHRvIHVzZSBgcmVtYHNcbiAgbWFyZ2luLWJvdHRvbTogJGVsZW1lbnQtbWFyZ2luLWJvdHRvbTtcbiAgLy8gV2UgaGF2ZSBAdmlld3BvcnQgc2V0IHdoaWNoIGNhdXNlcyBzY3JvbGxiYXJzIHRvIG92ZXJsYXAgY29udGVudCBpbiBJRTExIGFuZCBFZGdlLCBzb1xuICAvLyB3ZSBmb3JjZSBhIG5vbi1vdmVybGFwcGluZywgbm9uLWF1dG8taGlkaW5nIHNjcm9sbGJhciB0byBjb3VudGVyYWN0LlxuICAtbXMtb3ZlcmZsb3ctc3R5bGU6IHNjcm9sbGJhcjtcbn1cblxuLy8gRmlndXJlcy5cbmZpZ3VyZSB7XG4gIC8vIEFwcGx5IGEgY29uc2lzdGVudCBtYXJnaW4gc3RyYXRlZ3kgKG1hdGNoZXMgb3VyIHR5cGUgc3R5bGVzKS5cbiAgbWFyZ2luOiAwIDAgJGVsZW1lbnQtbWFyZ2luLWJvdHRvbTtcbn1cblxuLy8gSW1hZ2VzIGFuZCBjb250ZW50LlxuaW1nIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYm9yZGVyLXN0eWxlOiBub25lOyAvLyBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLS5cbn1cblxuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuOyAvLyBIaWRlIHRoZSBvdmVyZmxvdyBpbiBJRS5cbn1cblxuLy8gQXZvaWQgMzAwbXMgY2xpY2sgZGVsYXkgb24gdG91Y2ggZGV2aWNlcyB0aGF0IHN1cHBvcnQgdGhlIGB0b3VjaC1hY3Rpb25gIENTUyBwcm9wZXJ0eS5cbi8vXG4vLyBJbiBwYXJ0aWN1bGFyLCB1bmxpa2UgbW9zdCBvdGhlciBicm93c2VycywgSUUxMStFZGdlIG9uIFdpbmRvd3MgMTAgb24gdG91Y2ggZGV2aWNlcyBhbmQgSUUgTW9iaWxlIDEwLTExXG4vLyBET04nVCByZW1vdmUgdGhlIGNsaWNrIGRlbGF5IHdoZW4gYDxtZXRhIG5hbWU9XCJ2aWV3cG9ydFwiIGNvbnRlbnQ9XCJ3aWR0aD1kZXZpY2Utd2lkdGhcIj5gIGlzIHByZXNlbnQuXG4vLyBIb3dldmVyLCB0aGV5IERPIHN1cHBvcnQgcmVtb3ZpbmcgdGhlIGNsaWNrIGRlbGF5IHZpYSBgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb25gLlxuLy8gU2VlOlxuLy8gKiBodHRwczovL2dldGJvb3RzdHJhcC5jb20vZG9jcy80LjAvY29udGVudC9yZWJvb3QvI2NsaWNrLWRlbGF5LW9wdGltaXphdGlvbi1mb3ItdG91Y2hcbi8vICogaHR0cHM6Ly9jYW5pdXNlLmNvbS8jZmVhdD1jc3MtdG91Y2gtYWN0aW9uXG4vLyAqIGh0dHBzOi8vcGF0cmlja2hsYXVrZS5naXRodWIuaW8vdG91Y2gvdGVzdHMvcmVzdWx0cy8jc3VwcHJlc3NpbmctMzAwbXMtZGVsYXlcbmEsXG5hcmVhLFxuYnV0dG9uLFxuW3JvbGU9J2J1dHRvbiddLFxuaW5wdXQ6bm90KFt0eXBlPSdyYW5nZSddKSxcbmxhYmVsLFxuc2VsZWN0LFxuc3VtbWFyeSxcbnRleHRhcmVhIHtcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG59XG5cbi8vIFRhYmxlcy5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsgLy8gUHJldmVudCBkb3VibGUgYm9yZGVyc1xufVxuXG5jYXB0aW9uIHtcbiAgcGFkZGluZy10b3A6ICR0YWJsZS1jZWxsLXBhZGRpbmc7XG4gIHBhZGRpbmctYm90dG9tOiAkdGFibGUtY2VsbC1wYWRkaW5nO1xuICBjYXB0aW9uLXNpZGU6IGJvdHRvbTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgY29sb3I6ICR0ZXh0LW11dGVkO1xufVxuXG4vLyBNYXRjaGVzIGRlZmF1bHQgYDx0ZD5gIGFsaWdubWVudCBieSBpbmhlcml0aW5nIGZyb20gdGhlIGA8Ym9keT5gLCBvciB0aGVcbi8vIGNsb3Nlc3QgcGFyZW50IHdpdGggYSBzZXQgYHRleHQtYWxpZ25gLlxudGgge1xuICB0ZXh0LWFsaWduOiBpbmhlcml0O1xufVxuXG4vLyBGb3Jtcy5cbmxhYmVsIHtcbiAgLy8gQWxsb3cgbGFiZWxzIHRvIHVzZSBgbWFyZ2luYCBmb3Igc3BhY2luZy5cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAuNXJlbTtcbn1cblxuLy8gUmVtb3ZlIHRoZSBkZWZhdWx0IGBib3JkZXItcmFkaXVzYCB0aGF0IG1hY09TIENocm9tZSBhZGRzLlxuLy9cbi8vIERldGFpbHMgYXQgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8yNDA5M1xuYnV0dG9uIHtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuLy8gV29yayBhcm91bmQgYSBGaXJlZm94L0lFIGJ1ZyB3aGVyZSB0aGUgdHJhbnNwYXJlbnQgYGJ1dHRvbmAgYmFja2dyb3VuZFxuLy8gcmVzdWx0cyBpbiBhIGxvc3Mgb2YgdGhlIGRlZmF1bHQgYGJ1dHRvbmAgZm9jdXMgc3R5bGVzLlxuLy9cbi8vIENyZWRpdDogaHR0cHM6Ly9naXRodWIuY29tL3N1aXRjc3MvYmFzZS9cbmJ1dHRvbjpmb2N1cyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQ7XG4gIG91dGxpbmU6IDVweCBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjtcbn1cblxuaW5wdXQsXG5idXR0b24sXG5zZWxlY3QsXG5vcHRncm91cCxcbnRleHRhcmVhIHtcbiAgbWFyZ2luOiAwOyAvLyBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmlcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG59XG5cbmJ1dHRvbixcbmlucHV0IHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7IC8vIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2Vcbn1cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IC8vIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveFxufVxuXG4vLyAxLiBQcmV2ZW50IGEgV2ViS2l0IGJ1ZyB3aGVyZSAoMikgZGVzdHJveXMgbmF0aXZlIGBhdWRpb2AgYW5kIGB2aWRlb2Bcbi8vICAgIGNvbnRyb2xzIGluIEFuZHJvaWQgNC5cbi8vIDIuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG5idXR0b24sXG5odG1sIFt0eXBlPSdidXR0b24nXSwgLy8gMVxuW3R5cGU9J3Jlc2V0J10sXG5bdHlwZT0nc3VibWl0J10ge1xuICBhcHBlYXJhbmNlOiBidXR0b247IC8vIDJcbn1cblxuLy8gUmVtb3ZlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBmcm9tIEZpcmVmb3gsIGJ1dCBkb24ndCByZXN0b3JlIHRoZSBvdXRsaW5lIGxpa2UgTm9ybWFsaXplLlxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9J2J1dHRvbiddOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9J3Jlc2V0J106Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT0nc3VibWl0J106Oi1tb3otZm9jdXMtaW5uZXIge1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG5cbmlucHV0W3R5cGU9J3JhZGlvJ10sXG5pbnB1dFt0eXBlPSdjaGVja2JveCddIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLy8gMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAtXG4gIHBhZGRpbmc6IDA7IC8vIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC1cbn1cblxuaW5wdXRbdHlwZT0nZGF0ZSddLFxuaW5wdXRbdHlwZT0ndGltZSddLFxuaW5wdXRbdHlwZT0nZGF0ZXRpbWUtbG9jYWwnXSxcbmlucHV0W3R5cGU9J21vbnRoJ10ge1xuICAvLyBSZW1vdmUgdGhlIGRlZmF1bHQgYXBwZWFyYW5jZSBvZiB0ZW1wb3JhbCBpbnB1dHMgdG8gYXZvaWQgYSBNb2JpbGUgU2FmYXJpXG4gIC8vIGJ1ZyB3aGVyZSBzZXR0aW5nIGEgY3VzdG9tIGxpbmUtaGVpZ2h0IHByZXZlbnRzIHRleHQgZnJvbSBiZWluZyB2ZXJ0aWNhbGx5XG4gIC8vIGNlbnRlcmVkIHdpdGhpbiB0aGUgaW5wdXQuXG4gIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5ODQ4XG4gIC8vIGFuZCBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzExMjY2XG4gIGFwcGVhcmFuY2U6IGxpc3Rib3g7XG59XG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87IC8vIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUuXG4gIC8vIFRleHRhcmVhcyBzaG91bGQgcmVhbGx5IG9ubHkgcmVzaXplIHZlcnRpY2FsbHkgc28gdGhleSBkb24ndCBicmVhayB0aGVpciAoaG9yaXpvbnRhbCkgY29udGFpbmVycy5cbiAgcmVzaXplOiB2ZXJ0aWNhbDtcbn1cblxuZmllbGRzZXQge1xuICAvLyBCcm93c2VycyBzZXQgYSBkZWZhdWx0IGBtaW4td2lkdGg6IG1pbi1jb250ZW50O2Agb24gZmllbGRzZXRzLFxuICAvLyB1bmxpa2UgZS5nLiBgPGRpdj5gcywgd2hpY2ggaGF2ZSBgbWluLXdpZHRoOiAwO2AgYnkgZGVmYXVsdC5cbiAgLy8gU28gd2UgcmVzZXQgdGhhdCB0byBlbnN1cmUgZmllbGRzZXRzIGJlaGF2ZSBtb3JlIGxpa2UgYSBzdGFuZGFyZCBibG9jayBlbGVtZW50LlxuICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xMjM1OVxuICAvLyBhbmQgaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvI3RoZS1maWVsZHNldC1hbmQtbGVnZW5kLWVsZW1lbnRzXG4gIG1pbi13aWR0aDogMDtcbiAgLy8gUmVzZXQgdGhlIGRlZmF1bHQgb3V0bGluZSBiZWhhdmlvciBvZiBmaWVsZHNldHMgc28gdGhleSBkb24ndCBhZmZlY3QgcGFnZSBsYXlvdXQuXG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xufVxuXG4vLyAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuLy8gMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxubGVnZW5kIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7IC8vIDFcbiAgbWFyZ2luLWJvdHRvbTogLjVyZW07XG4gIHBhZGRpbmc6IDA7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8vIDFcbiAgY29sb3I6IGluaGVyaXQ7IC8vIDJcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG5wcm9ncmVzcyB7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgLy8gQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbn1cblxuLy8gQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuW3R5cGU9J251bWJlciddOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuW3R5cGU9J251bWJlciddOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG5bdHlwZT0nc2VhcmNoJ10ge1xuICAvLyBUaGlzIG92ZXJyaWRlcyB0aGUgZXh0cmEgcm91bmRlZCBjb3JuZXJzIG9uIHNlYXJjaCBpbnB1dHMgaW4gaU9TIHNvIHRoYXQgb3VyXG4gIC8vIGAuZm9ybS1jb250cm9sYCBjbGFzcyBjYW4gcHJvcGVybHkgc3R5bGUgdGhlbS4gTm90ZSB0aGF0IHRoaXMgY2Fubm90IHNpbXBseVxuICAvLyBiZSBhZGRlZCB0byBgLmZvcm0tY29udHJvbGAgYXMgaXQncyBub3Qgc3BlY2lmaWMgZW5vdWdoLiBGb3IgZGV0YWlscywgc2VlXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTE1ODYuXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvLyAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAgYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLy8gUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGFuZCBjYW5jZWwgYnV0dG9ucyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cblt0eXBlPSdzZWFyY2gnXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcblt0eXBlPSdzZWFyY2gnXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8vIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4vLyAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgZm9udDogaW5oZXJpdDsgLy8gMlxuICBhcHBlYXJhbmNlOiBidXR0b247IC8vIDFcbn1cblxuLy8gQ29ycmVjdCBlbGVtZW50IGRpc3BsYXlzXG5vdXRwdXQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07IC8vIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vyc1xufVxuXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7IC8vIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFXG59XG5cbi8vIEFsd2F5cyBoaWRlIGFuIGVsZW1lbnQgd2l0aCB0aGUgYGhpZGRlbmAgSFRNTCBhdHRyaWJ1dGUgKGZyb20gUHVyZUNTUykuXG4vLyBOZWVkZWQgZm9yIHByb3BlciBkaXNwbGF5IGluIElFIDEwLS5cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuIiwiLy8gQ29sb3JzXG4vL1xuLy8gU3R5bGVndWlkZSBTZXR0aW5ncy5jb2xvcnNcblxuLy8gR3JleXNjYWxlc1xuLy9cbi8vICRibGFjayAtICMwMDA7IEJsYWNrXG4vLyAkd2hpdGUgLSAjZmZmOyBXaGl0ZVxuLy9cbi8vIFN0eWxlZ3VpZGUgU2V0dGluZ3MuY29sb3JzLmdyZXlzY2FsZXNcbiRibGFjazogIzAwMDtcbiRtaW5lc2hhZnQ6ICMyMjI7XG4kdHVuZG9yYTogIzRhNGE0YTtcbiRtZXJjdXJ5OiAjZTJlMmUyO1xuJHdoaXRlOiAjZmZmO1xuXG4vLyBQcmltYXJ5IHNpdGUgY29sb3JzXG4vL1xuLy8gVXNlIGh0dHA6Ly9jaGlyLmFnL3Byb2plY3RzL25hbWUtdGhhdC1jb2xvci8gdG8gZ2V0IHRoZSBjb2xvciBuYW1lLlxuLy9cbi8vICRjb3JuZmxvd2VyLWJsdWUgLSAjNjE5NWVkOyBDb3JuZmxvd2VyIEJsdWVcbi8vXG4vLyBTdHlsZWd1aWRlIFNldHRpbmdzLmNvbG9ycy5wcmltYXJ5XG4kYmxhemU6ICNmZDZhMDI7XG4kc2t5OiAjNzBkMGVjO1xuJHB1cnBsZWhlYXJ0OiAjNjQzYzk1O1xuXG4vLyBBcHBsaWVkIGNvbG9ycy5cbiRsaW5rLWNvbG9yOiAkcHVycGxlaGVhcnQ7XG4kYnV0dG9uLWNvbG9yOiAkcHVycGxlaGVhcnQ7XG5cbi8vIEZvbnRpbmcuXG4kZm9udC1mYW1pbHktc2Fucy1zZXJpZjogJ0dvdGhhbSBOYXJyb3cnO1xuJGhlYWRlci1mb250LWZhbWlseTogJ2Jhc2tlcnZpbGxlJztcbiRmb250LXdlaWdodC1iYXNlOiBub3JtYWw7XG4kZm9udC13ZWlnaHQtaGVhZGVyOiBub3JtYWw7XG4kZm9udC1zaXplLXNtYWxsZXI6IC45cmVtO1xuJGhlYWRlci1saW5lLWhlaWdodDogMS4yO1xuJGhlYWRlci1jb2xvcjogJHB1cnBsZWhlYXJ0O1xuJGJvZHktY29sb3I6ICR0dW5kb3JhO1xuJGZvbnQtc2l6ZS1iYXNlOiAxcmVtO1xuJGxpbmUtaGVpZ2h0LWJhc2U6IDEuNTtcbiR0ZXh0LWNvbG9yOiAkdHVuZG9yYTtcblxuLy8gU3BhY2luZy5cbiRzcGFjaW5nOiAxcmVtO1xuJHNwYWNpbmctZG91YmxlOiAkc3BhY2luZyAqIDI7XG5cbi8vIEJyZWFrcG9pbnRzLlxuJGJyZWFrcG9pbnQtYWxsIDogMDtcbiRicmVha3BvaW50LXNtYWxsIDogNDgwcHg7XG4kYnJlYWtwb2ludC1zbWFsbGlzaCA6IDY0MHB4O1xuJGJyZWFrcG9pbnQtbWVkaXVtIDogNzY4cHg7XG4kYnJlYWtwb2ludC1sYXJnZSA6IDEwMjRweDtcbiRicmVha3BvaW50LW1heCA6IDEyMDBweDtcbiRicmVha3BvaW50LWFsbC1sYXJnZTogJGJyZWFrcG9pbnQtYWxsICgkYnJlYWtwb2ludC1sYXJnZSAtIDEpO1xuIiwiKixcbio6YmVmb3JlLFxuKjphZnRlciB7XG4gIGJveC1zaXppbmc6IGluaGVyaXQ7XG59XG5cbmh0bWwge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtYXJnaW46IDA7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIHRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC1tcy1vdmVyZmxvdy1zdHlsZTogc2Nyb2xsYmFyO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG59XG5cbkAtbXMtdmlld3BvcnQge1xuICB3aWR0aDogZGV2aWNlLXdpZHRoO1xufVxuXG5hcnRpY2xlLCBhc2lkZSwgZGlhbG9nLCBmaWdjYXB0aW9uLCBmaWd1cmUsIGZvb3RlciwgaGVhZGVyLCBoZ3JvdXAsIG1haW4sIG5hdiwgc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjb2xvcjogIzRhNGE0YTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgZm9udC1mYW1pbHk6IFwiR290aGFtIE5hcnJvd1wiO1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cblt0YWJpbmRleD0nLTEnXTpmb2N1cyB7XG4gIG91dGxpbmU6IDAgIWltcG9ydGFudDtcbn1cblxuaHIge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGhlaWdodDogMDtcbn1cblxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNWVtO1xuICBjb2xvcjogIzY0M2M5NTtcbn1cblxucCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbmFiYnJbdGl0bGVdIHtcbiAgY3Vyc29yOiBoZWxwO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xuICBib3JkZXItYm90dG9tOiAwO1xufVxuXG5hZGRyZXNzIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cblxub2wsXG51bCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbm9sIG9sLFxudWwgb2wsIG9sXG51bCxcbnVsXG51bCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbmRsIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuZHQge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuZGQge1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG5ibG9ja3F1b3RlIHtcbiAgbWFyZ2luOiAwIDAgMXJlbTtcbn1cblxuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuc3ViLFxuc3VwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtLjI1ZW07XG59XG5cbnN1cCB7XG4gIHRvcDogLS41ZW07XG59XG5cbmEge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiAjNjQzYzk1O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdGV4dC1kZWNvcmF0aW9uLXNraXA6IG9iamVjdHMgaW5rO1xufVxuXG5hOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIGNvbG9yOiAjM2YyNjVlO1xufVxuXG5hOm5vdChbaHJlZl0pOm5vdChbdGFiaW5kZXhdKSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbmE6bm90KFtocmVmXSk6bm90KFt0YWJpbmRleF0pOmhvdmVyLCBhOm5vdChbaHJlZl0pOm5vdChbdGFiaW5kZXhdKTpmb2N1cyB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbmE6bm90KFtocmVmXSk6bm90KFt0YWJpbmRleF0pOmZvY3VzIHtcbiAgb3V0bGluZTogMDtcbn1cblxucHJlLFxuY29kZSxcbmtiZCxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bztcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgLW1zLW92ZXJmbG93LXN0eWxlOiBzY3JvbGxiYXI7XG59XG5cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMCAwIDFyZW07XG59XG5cbmltZyB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbn1cblxuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG5hLFxuYXJlYSxcbmJ1dHRvbixcbltyb2xlPSdidXR0b24nXSxcbmlucHV0Om5vdChbdHlwZT0ncmFuZ2UnXSksXG5sYWJlbCxcbnNlbGVjdCxcbnN1bW1hcnksXG50ZXh0YXJlYSB7XG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xufVxuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG59XG5cbmNhcHRpb24ge1xuICBwYWRkaW5nLXRvcDogMC43NXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDAuNzVyZW07XG4gIGNhcHRpb24tc2lkZTogYm90dG9tO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjb2xvcjogIzg2OGU5Njtcbn1cblxudGgge1xuICB0ZXh0LWFsaWduOiBpbmhlcml0O1xufVxuXG5sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogLjVyZW07XG59XG5cbmJ1dHRvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbmJ1dHRvbjpmb2N1cyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQ7XG4gIG91dGxpbmU6IDVweCBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjtcbn1cblxuaW5wdXQsXG5idXR0b24sXG5zZWxlY3QsXG5vcHRncm91cCxcbnRleHRhcmVhIHtcbiAgbWFyZ2luOiAwO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cblxuYnV0dG9uLFxuaW5wdXQge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbmJ1dHRvbixcbmh0bWwgW3R5cGU9J2J1dHRvbiddLFxuW3R5cGU9J3Jlc2V0J10sXG5bdHlwZT0nc3VibWl0J10ge1xuICBhcHBlYXJhbmNlOiBidXR0b247XG59XG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPSdidXR0b24nXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPSdyZXNldCddOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9J3N1Ym1pdCddOjotbW96LWZvY3VzLWlubmVyIHtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xufVxuXG5pbnB1dFt0eXBlPSdyYWRpbyddLFxuaW5wdXRbdHlwZT0nY2hlY2tib3gnXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDA7XG59XG5cbmlucHV0W3R5cGU9J2RhdGUnXSxcbmlucHV0W3R5cGU9J3RpbWUnXSxcbmlucHV0W3R5cGU9J2RhdGV0aW1lLWxvY2FsJ10sXG5pbnB1dFt0eXBlPSdtb250aCddIHtcbiAgYXBwZWFyYW5jZTogbGlzdGJveDtcbn1cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbiAgcmVzaXplOiB2ZXJ0aWNhbDtcbn1cblxuZmllbGRzZXQge1xuICBtaW4td2lkdGg6IDA7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xufVxuXG5sZWdlbmQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogLjVyZW07XG4gIHBhZGRpbmc6IDA7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG59XG5cbnByb2dyZXNzIHtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5bdHlwZT0nbnVtYmVyJ106Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT0nbnVtYmVyJ106Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cblt0eXBlPSdzZWFyY2gnXSB7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICBhcHBlYXJhbmNlOiBub25lO1xufVxuXG5bdHlwZT0nc2VhcmNoJ106Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5bdHlwZT0nc2VhcmNoJ106Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICBhcHBlYXJhbmNlOiBub25lO1xufVxuXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgZm9udDogaW5oZXJpdDtcbiAgYXBwZWFyYW5jZTogYnV0dG9uO1xufVxuXG5vdXRwdXQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG59XG5cbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5wYWdlLWhlYWRlciB7XG4gIGJhY2tncm91bmQ6ICM2NDNjOTU7XG59XG5cbi5wYWdlLWhlYWRlciBhIHtcbiAgY29sb3I6ICNmZmY7XG59XG5cbmJ1dHRvbixcbmlucHV0W3R5cGU9J2J1dHRvbiddLFxuaW5wdXRbdHlwZT0ncmVzZXQnXSxcbmlucHV0W3R5cGU9J3N1Ym1pdCddIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY0M2M5NTtcbiAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTtcbiAgYm9yZGVyLWNvbG9yOiAjNjQzYzk1O1xuICBmb250LWZhbWlseTogJ2Jhc2tlcnZpbGxlJztcbn1cblxuYnV0dG9uOmhvdmVyLFxuaW5wdXRbdHlwZT0nYnV0dG9uJ106aG92ZXIsXG5pbnB1dFt0eXBlPSdyZXNldCddOmhvdmVyLFxuaW5wdXRbdHlwZT0nc3VibWl0J106aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGMyZDcxO1xufVxuXG5oMSwgaDIsIGgzIHtcbiAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTtcbn1cblxuLmJsb2NrLXZpZXdzLWV4cG9zZWQtZmlsdGVyLWJsb2NrdmFjYW5jaWVzLXNlYXJjaC12YWNhbmNpZXMgLnNoaW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmJsb2NrLXZpZXdzLWV4cG9zZWQtZmlsdGVyLWJsb2NrdmFjYW5jaWVzLXNlYXJjaC12YWNhbmNpZXMgLnNoaW0uc2hpbS1hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwMCwgNjAsIDE0OSwgMC40KTtcbn1cblxuLm5vZGUtLXR5cGUtdmFjYW5jeS5ub2RlLS12aWV3LW1vZGUtZnVsbCAubWV0YS1pbmZvcm1hdGlvbiA+IGRpdiB7XG4gIGJvcmRlci1jb2xvcjogIzY0M2M5NTtcbn1cblxuLmZpZWxkLS1uYW1lLWZpZWxkLXBhcmFncmFwaC1saW5rIGEsXG4ucGFyYWdyYXBoLS10eXBlLS1oaWdobGlnaHRlZC12YWNhbmNpZXMgLnBhcmFncmFwaC1tb3JlLWxpbmstd3JhcHBlciBhLFxuLnZpZXctcmVsYXRlZC12YWNhbmNpZXMudmlldy1kaXNwbGF5LWlkLWJsb2NrX3JlbGF0ZWQgLm1vcmUtbGluayBhIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY0M2M5NTtcbn1cblxuLmZpZWxkLS1uYW1lLWZpZWxkLXBhcmFncmFwaC1saW5rIGE6aG92ZXIsXG4ucGFyYWdyYXBoLS10eXBlLS1oaWdobGlnaHRlZC12YWNhbmNpZXMgLnBhcmFncmFwaC1tb3JlLWxpbmstd3JhcHBlciBhOmhvdmVyLFxuLnZpZXctcmVsYXRlZC12YWNhbmNpZXMudmlldy1kaXNwbGF5LWlkLWJsb2NrX3JlbGF0ZWQgLm1vcmUtbGluayBhOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjMmQ3MTtcbn1cblxuLmZhY2V0cy13aWRnZXQtbGlua3MgdWwgbGkgYSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cbi5mYWNldHMtd2lkZ2V0LWxpbmtzIHVsIGxpIGE6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjQzYzk1O1xufVxuXG4uZmFjZXRzLXdpZGdldC1saW5rcyB1bCBsaSBhLmlzLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NDNjOTU7XG59XG5cbi5mYWNldHMtd2lkZ2V0LWxpbmtzIHVsIGxpIGEuaXMtYWN0aXZlOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY0M2M5NTtcbn1cblxuLmZvcm0tc2VsZWN0LmJlZi1saW5rcy5uby1hY3RpdmUtbGlua3MgYSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NDNjOTU7XG59XG5cbi5mb3JtLXNlbGVjdC5iZWYtbGlua3Mubm8tYWN0aXZlLWxpbmtzIGE6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGMyZDcxO1xufVxuXG4uZm9ybS1zZWxlY3QuYmVmLWxpbmtzIGEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2Q0ZGI3O1xufVxuXG4uZm9ybS1zZWxlY3QuYmVmLWxpbmtzIGE6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjQzYzk1O1xufVxuXG4uZm9ybS1zZWxlY3QuYmVmLWxpbmtzIGEuYmVmLWxpbmstYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY0M2M5NTtcbn1cblxuLmZvcm0tc2VsZWN0LmJlZi1saW5rcyBhLmJlZi1saW5rLWFjdGl2ZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0YzJkNzE7XG59XG5cbi5ub2RlLS10eXBlLXZhY2FuY3kubm9kZS0tdmlldy1tb2RlLWZ1bGwgLmZpZWxkLS1uYW1lLWZpZWxkLWFwcGxpY2F0aW9uLWxpbmsge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgIzY0M2M5NTtcbn1cblxuLm5vZGUtLXR5cGUtdmFjYW5jeS5ub2RlLS12aWV3LW1vZGUtZnVsbCAuZmllbGQtLW5hbWUtZmllbGQtYXBwbGljYXRpb24tbGluayBhIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY0M2M5NTtcbn1cblxuLm5vZGUtLXR5cGUtdmFjYW5jeS5ub2RlLS12aWV3LW1vZGUtZnVsbCAuZmllbGQtLW5hbWUtZmllbGQtYXBwbGljYXRpb24tbGluayBhOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzRjMmQ3MTtcbn1cblxuLnJlZ2lvbi1mb290ZXIge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZDogIzY0M2M5NTtcbn1cblxuLnJlZ2lvbi1mb290ZXIgYSB7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG4ucmVnaW9uLWZvb3RlciBoMiwgLnJlZ2lvbi1mb290ZXIgaDMge1xuICBjb2xvcjogI2ZmZjtcbn1cblxuLnBhcmFncmFwaC0tdHlwZS0tZm91ci1ncmlkIC5ncm91cC13cmFwcGVyIC5maWVsZC0tdHlwZS10ZXh0LWxvbmcge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZDogIzY0M2M5NTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5wYXJhZ3JhcGgtLXR5cGUtLWZvdXItZ3JpZCAuZ3JvdXAtd3JhcHBlciAuZmllbGQtLXR5cGUtdGV4dC1sb25nIHtcbiAgICBwYWRkaW5nOiAycmVtO1xuICB9XG59XG5cbi5wYXJhZ3JhcGgtLXR5cGUtLWZvdXItZ3JpZCAuZ3JvdXAtd3JhcHBlciAuZmllbGQtLXR5cGUtdGV4dC1sb25nIGgzIHtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5wYXJhZ3JhcGgtLXR5cGUtLWNhbGwtdG8tYWN0aW9uIC5vdmVybGF5LWJveCB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kOiAjNjQzYzk1O1xufVxuXG4ucGFyYWdyYXBoLS10eXBlLS1jYWxsLXRvLWFjdGlvbiAub3ZlcmxheS1ib3ggaDIsIC5wYXJhZ3JhcGgtLXR5cGUtLWNhbGwtdG8tYWN0aW9uIC5vdmVybGF5LWJveCBoMyB7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnBhZ2UtaGVhZGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnJlZ2lvbi1oZWFkZXIgLmJsb2NrLW1lbnUgdWwgbGkgYSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTtcbiAgICB0ZXh0LXNoYWRvdzogMCAwIDJweCByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gICAgZm9udC1mYW1pbHk6ICdCYXNrZXJ2aWxsZSc7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cbn1cblxuLmJsb2NrLXZpZXdzLWV4cG9zZWQtZmlsdGVyLWJsb2NrdmFjYW5jaWVzLXNlYXJjaC12YWNhbmNpZXMge1xuICBtaW4taGVpZ2h0OiA2NnZoO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcva2FtZWxlb24uanBnXCIpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCBib3R0b207XG59XG5cbi5ibG9jay12aWV3cy1leHBvc2VkLWZpbHRlci1ibG9ja3ZhY2FuY2llcy1zZWFyY2gtdmFjYW5jaWVzIGgyIHtcbiAgY29sb3I6ICM2NDNjOTU7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuXG5AbWVkaWEgKG1heC1oZWlnaHQ6IDg2MHB4KSB7XG4gIC5ibG9jay12aWV3cy1leHBvc2VkLWZpbHRlci1ibG9ja3ZhY2FuY2llcy1zZWFyY2gtdmFjYW5jaWVzIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCBib3R0b20gLTYwcHg7XG4gIH1cbn1cblxuLmJsb2NrLXZpZXdzLWV4cG9zZWQtZmlsdGVyLWJsb2NrdmFjYW5jaWVzLXNlYXJjaC12YWNhbmNpZXMgc2VsZWN0LmZvcm0tc2VsZWN0IHtcbiAgYm94LXNoYWRvdzogMTBweCAxNXB4IDEwcHggcmdiYSgxMDAsIDYwLCAxNDksIDAuOCk7XG59XG5cbi5ibG9jay12aWV3cy1leHBvc2VkLWZpbHRlci1ibG9ja3ZhY2FuY2llcy1zZWFyY2gtdmFjYW5jaWVzIC5mb3JtLWl0ZW0gLmZvcm0tdGV4dCB7XG4gIGJveC1zaGFkb3c6IDEwcHggMTVweCAxMHB4IHJnYmEoMTAwLCA2MCwgMTQ5LCAwLjgpO1xufVxuXG4uYmxvY2stdmlld3MtZXhwb3NlZC1maWx0ZXItYmxvY2t2YWNhbmNpZXMtc2VhcmNoLXZhY2FuY2llcyAuZm9ybS1hY3Rpb25zIGlucHV0IHtcbiAgYm94LXNoYWRvdzogOHB4IDE1cHggMTBweCByZ2JhKDEwMCwgNjAsIDE0OSwgMC44KTtcbn1cblxuLnBhcmFncmFwaC0tdHlwZS0taGlnaGxpZ2h0ZWQtdmFjYW5jaWVzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY0M2M5NTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5wYXJhZ3JhcGgtLXR5cGUtLWhpZ2hsaWdodGVkLXZhY2FuY2llcyB7XG4gICAgcGFkZGluZzogMnJlbTtcbiAgfVxufVxuXG4ucGFyYWdyYXBoLS10eXBlLS1oaWdobGlnaHRlZC12YWNhbmNpZXMgaDIge1xuICBjb2xvcjogI2ZmZjtcbn1cblxuLnBhcmFncmFwaC0tdHlwZS0taGlnaGxpZ2h0ZWQtdmFjYW5jaWVzIC5wYXJhZ3JhcGgtbW9yZS1saW5rLXdyYXBwZXIgYSB7XG4gIGNvbG9yOiAjNjQzYzk1O1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xufVxuXG4ucGFyYWdyYXBoIGgyIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVuc2V0O1xufVxuXG4uYmxvY2stYmxvY2stY29udGVudGMzOGEyZWM4LTlhZjYtNDJiNC05ZTMzLTY0ZmExNTk2YjllZiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luLXRvcDogLTIyMnB4O1xuICBtYXJnaW4tbGVmdDogNDklO1xufVxuXG4uc2l0ZS1taW5pLWxvZ28ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdHb3RoYW0gTmFycm93JztcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9nb3RoYW1uYXJyb3cvR290aGFtTmFycm93LUJvb2sud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdCYXNrZXJ2aWxsZSc7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvYmFza2VydmlsbGUvYmFza2VydmlsbGUud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG5oMSwgaDIsIGgzIHtcbiAgZm9udC1mYW1pbHk6IFwiYmFza2VydmlsbGVcIjtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbn1cblxuaDIge1xuICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICBmb250LXNpemU6IDNyZW07XG59XG5cbmgzIHtcbiAgZm9udC1zaXplOiAyLjI1cmVtO1xufVxuXG4uYmxvY2stbGFuZy1kcm9wZG93biB7XG4gIHBvc2l0aW9uOiB1bnNldDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiB1bnNldDtcbiAgd2lkdGg6IGF1dG87XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5ibG9jay1sYW5nLWRyb3Bkb3duIHNlbGVjdCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDJweCBzb2xpZCAjZmZmO1xuICBiYWNrZ3JvdW5kOiAjNjQzYzk1O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmJsb2NrLWxhbmctZHJvcGRvd24gc2VsZWN0IHtcbiAgICBtYXJnaW4tdG9wOiAuNXJlbTtcbiAgfVxufVxuIiwiLnBhZ2UtaGVhZGVyIHtcbiAgYmFja2dyb3VuZDogJHB1cnBsZWhlYXJ0O1xuXG4gIC8vQGluY2x1ZGUgYnJlYWtwb2ludCgkYnJlYWtwb2ludC1tZWRpdW0pIHtcbiAgLy8gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAvL31cblxuICBhIHtcbiAgICBjb2xvcjogJHdoaXRlO1xuICB9XG59XG5cbmJ1dHRvbixcbmlucHV0W3R5cGU9J2J1dHRvbiddLFxuaW5wdXRbdHlwZT0ncmVzZXQnXSxcbmlucHV0W3R5cGU9J3N1Ym1pdCddIHtcbiAgQGluY2x1ZGUgYnV0dG9uLWNvbG9yKCRidXR0b24tY29sb3IsIGRhcmtlbigkYnV0dG9uLWNvbG9yLCAxMCUpKTtcbiAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTtcbiAgYm9yZGVyLWNvbG9yOiAkYnV0dG9uLWNvbG9yO1xuICBmb250LWZhbWlseTogJ2Jhc2tlcnZpbGxlJztcbn1cblxuaDEsIGgyLCBoMyB7XG4gIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7XG59XG5cbi5ibG9jay12aWV3cy1leHBvc2VkLWZpbHRlci1ibG9ja3ZhY2FuY2llcy1zZWFyY2gtdmFjYW5jaWVzIHtcbiAgLy9iYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltZy92YWNhbmNpZXMuanBnJyk7XG5cbiAgLnNoaW0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gICAgJi5zaGltLWFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRidXR0b24tY29sb3IsIC40KTtcbiAgICB9XG4gIH1cbn1cblxuLm5vZGUtLXR5cGUtdmFjYW5jeS5ub2RlLS12aWV3LW1vZGUtZnVsbCAubWV0YS1pbmZvcm1hdGlvbiA+IGRpdiB7XG4gIGJvcmRlci1jb2xvcjogJGJ1dHRvbi1jb2xvcjtcbn1cblxuLmZpZWxkLS1uYW1lLWZpZWxkLXBhcmFncmFwaC1saW5rIGEsXG4ucGFyYWdyYXBoLS10eXBlLS1oaWdobGlnaHRlZC12YWNhbmNpZXMgLnBhcmFncmFwaC1tb3JlLWxpbmstd3JhcHBlciBhLFxuLnZpZXctcmVsYXRlZC12YWNhbmNpZXMudmlldy1kaXNwbGF5LWlkLWJsb2NrX3JlbGF0ZWQgLm1vcmUtbGluayBhIHtcbiAgQGluY2x1ZGUgYnV0dG9uLWNvbG9yKCRidXR0b24tY29sb3IsIGRhcmtlbigkYnV0dG9uLWNvbG9yLCAxMCUpKTtcbn1cblxuLmZhY2V0cy13aWRnZXQtbGlua3MgdWwgbGkge1xuICBhIHtcbiAgICBAaW5jbHVkZSBidXR0b24tY29sb3IoJHdoaXRlLCAkYnV0dG9uLWNvbG9yKTtcblxuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1jb2xvcigkYnV0dG9uLWNvbG9yLCAkYnV0dG9uLWNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuLmZvcm0tc2VsZWN0LmJlZi1saW5rcyB7XG4gICYubm8tYWN0aXZlLWxpbmtzIHtcbiAgICBhIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1jb2xvcigkYnV0dG9uLWNvbG9yLCBkYXJrZW4oJGJ1dHRvbi1jb2xvciwgMTAlKSk7XG4gICAgfVxuICB9XG5cbiAgYSB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWNvbG9yKGxpZ2h0ZW4oJGJ1dHRvbi1jb2xvciwgMTAlKSwgJGJ1dHRvbi1jb2xvcik7XG5cbiAgICAmLmJlZi1saW5rLWFjdGl2ZSB7XG4gICAgICBAaW5jbHVkZSBidXR0b24tY29sb3IoJGJ1dHRvbi1jb2xvciwgZGFya2VuKCRidXR0b24tY29sb3IsIDEwJSkpO1xuICAgIH1cbiAgfVxufVxuXG4ubm9kZS0tdHlwZS12YWNhbmN5Lm5vZGUtLXZpZXctbW9kZS1mdWxsIC5maWVsZC0tbmFtZS1maWVsZC1hcHBsaWNhdGlvbi1saW5rIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRidXR0b24tY29sb3I7XG5cbiAgYSB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWNvbG9yKCRidXR0b24tY29sb3IsIGRhcmtlbigkYnV0dG9uLWNvbG9yLCAxMCUpKTtcbiAgfVxufVxuXG4ucmVnaW9uLWZvb3RlciB7XG4gIGNvbG9yOiAkd2hpdGU7XG4gIGJhY2tncm91bmQ6ICRwdXJwbGVoZWFydDtcblxuICBhIHtcbiAgICBjb2xvcjogJHdoaXRlO1xuICB9XG5cbiAgaDIsIGgzIHtcbiAgICBjb2xvcjogJHdoaXRlO1xuICB9XG59XG4iLCIvLyBDdXN0b20gbWl4aW4gTGlicmFyeVxuLy9cbi8vIFN0eWxlZ3VpZGUgTGlicmFyaWVzLm1peGluc1xuXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFZhcmlhYmxlcyAmIGRlZmF1bHRzXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gRm9udHMgKHVzZWQgZm9yIHVuaXQgY2FsY3VsYXRpb25zKVxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBAcHJpdmF0ZSBEZWZhdWx0IGZvbnQtc2l6ZSBmb3IgYWxsIGJyb3dzZXJzXG4kYnJvd3Nlci1kZWZhdWx0LWZvbnQtc2l6ZTogMTZweDtcblxuLy8gQmFzZSBmb250IHNpemUgaW4gcGl4ZWxzLCBpZiBub3QgYWxyZWFkeSBkZWZpbmVkLlxuLy8gU2hvdWxkIGJlIHRoZSBzYW1lIGFzIHRoZSBmb250LXNpemUgb2YgdGhlIGh0bWwgZWxlbWVudC5cbiRiYXNlLWZvbnQtc2l6ZTogMTZweCAhZGVmYXVsdDtcblxuLy8gV2hldGhlciB0byBvdXRwdXQgZmFsbGJhY2sgdmFsdWVzIGluIHB4IHdoZW4gb3V0cHV0dGluZyByZW1zLlxuJHJlbS13aXRoLXB4LWZhbGxiYWNrOiB0cnVlICFkZWZhdWx0O1xuXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEZ1bmN0aW9uc1xuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIFVuaXRzXG4vLz09PT09PVxuXG4vLyBjbGFtcCgkdmFsdWUsICRtaW4sICRtYXgpXG4vL1xuLy8gUmVzdHJpY3QgYSB2YWx1ZSBiZXR3ZWVuICRtaW4gYW5kICRtYXguIEhhbmR5IGZvciBjYWxjdWxhdGluZyBwZXJjZW50YWdlcy5cbi8vXG4vLyBgYGBcbi8vICAgJGRhcmtDb2xvcjogZGFya2VuKCRjb2xvciwgY2xhbXAoJHZhbHVlLCAwLCAxMDApKTtcbi8vIGBgYFxuLy9cbi8vICR2YWx1ZSAtIFRoZSB2YWx1ZSB0byBiZSBjaGVja2VkLlxuLy8gJG1pbiAtIE1pbmltYWwgYWxsb3dlZCByZXR1cm4gdmFsdWUuXG4vLyAkbWF4IC0gTWF4aW1hbCBhbGxvd2VkIHJldHVybiB2YWx1ZS5cbi8vXG4vLyBTdHlsZWd1aWRlIExpYnJhcmllcy5taXhpbnMuY2xhbXBcbkBmdW5jdGlvbiBjbGFtcCgkdmFsdWUsICRtaW4sICRtYXgpIHtcbiAgQHJldHVybiBpZigkdmFsdWUgPiAkbWF4LCAkbWF4LCBpZigkdmFsdWUgPCAkbWluLCAkbWluLCAkdmFsdWUpKTtcbn1cblxuLy8gUmV0dXJucyBudW1lcmljIHZhbHVlcyB3aXRob3V0IGEgdW5pdCBvZiBtZWFzdXJlLlxuLy9cbi8vIEBwYXJhbSAkbnVtYmVyXG4vLyAgIFRoZSB2YWx1ZSB0byBiZSBzdHJpcHBlZCBvZiBpdHMgdW5pdC5cbkBmdW5jdGlvbiBzdHJpcC11bml0cygkbnVtYmVyKSB7XG4gIEByZXR1cm4gJG51bWJlciAvICgkbnVtYmVyICogMCArIDEpO1xufVxuXG4vLyBDb252ZXJ0IGFueSBDU1MgPGxlbmd0aD4gb3IgPHBlcmNlbnRhZ2U+IHZhbHVlIHRvIGFueSBhbm90aGVyLlxuLy9cbi8vIEBwYXJhbSAkbGVuZ3RoXG4vLyAgIEEgY3NzIDxsZW5ndGg+IG9yIDxwZXJjZW50YWdlPiB2YWx1ZVxuLy8gQHBhcmFtICR0by11bml0XG4vLyAgIFN0cmluZyBtYXRjaGluZyBhIGNzcyB1bml0IGtleXdvcmQsIGUuZy4gJ2VtJywgJyUnLCBldGMuXG4vLyBAcGFyYW0gJGZyb20tY29udGV4dFxuLy8gICBXaGVuIGNvbnZlcnRpbmcgZnJvbSByZWxhdGl2ZSB1bml0cywgdGhlIGFic29sdXRlIGxlbmd0aCAoaW4gcHgpIHRvXG4vLyAgIHdoaWNoICRsZW5ndGggcmVmZXJzIChlLmcuIGZvciAkbGVuZ3RocyBpbiBlbSB1bml0cywgd291bGQgbm9ybWFsbHkgYmUgdGhlXG4vLyAgIGZvbnQtc2l6ZSBvZiB0aGUgY3VycmVudCBlbGVtZW50KS5cbi8vIEBwYXJhbSAkdG8tY29udGV4dFxuLy8gICBGb3IgY29udmVydGluZyB0byByZWxhdGl2ZSB1bml0cywgdGhlIGFic29sdXRlIGxlbmd0aCBpbiBweCB0byB3aGljaCB0aGVcbi8vICAgb3V0cHV0IHZhbHVlIHdpbGwgcmVmZXIuIERlZmF1bHRzIHRvIHRoZSBzYW1lIGFzICRmcm9tLWNvbnRleHQsIHNpbmNlIGl0IGlzXG4vLyAgIHJhcmVseSBuZWVkZWQuXG5AZnVuY3Rpb24gY29udmVydC1sZW5ndGgoJGxlbmd0aCwgJHRvLXVuaXQsICRmcm9tLWNvbnRleHQ6ICRiYXNlLWZvbnQtc2l6ZSwgJHRvLWNvbnRleHQ6ICRmcm9tLWNvbnRleHQpIHtcbiAgJGZyb20tdW5pdDogdW5pdCgkbGVuZ3RoKTtcblxuICAvLyBPcHRpbWl6ZSBmb3IgY2FzZXMgd2hlcmUgJ2Zyb20nIGFuZCAndG8nIHVuaXRzIGFyZSBhY2NpZGVudGFsbHkgdGhlIHNhbWUuXG4gIEBpZiAkZnJvbS11bml0ID09ICR0by11bml0IHsgQHJldHVybiAkbGVuZ3RoOyB9XG5cbiAgLy8gQ29udGV4dCB2YWx1ZXMgbXVzdCBiZSBpbiBweCBzbyB3ZSBjYW4gZGV0ZXJtaW5lIGEgY29udmVyc2lvbiByYXRpbyBmb3JcbiAgLy8gcmVsYXRpdmUgdW5pdHMuXG4gIEBpZiB1bml0KCRmcm9tLWNvbnRleHQpICE9ICdweCcge1xuICAgIEB3YXJuICdQYXJlbWV0ZXIgJGZyb20tY29udGV4dCBtdXN0IHJlc29sdmUgdG8gYSB2YWx1ZSBpbiBwaXhlbCB1bml0cy4nO1xuICB9XG5cbiAgQGlmIHVuaXQoJHRvLWNvbnRleHQpICE9ICdweCcge1xuICAgIEB3YXJuICdQYXJhbWV0ZXIgJHRvLWNvbnRleHQgbXVzdCByZXNvbHZlIHRvIGEgdmFsdWUgaW4gcGl4ZWwgdW5pdHMuJztcbiAgfVxuXG4gIC8vIENvbnZlcnQgaW5wdXQgbGVuZ3RoIHRvIHBpeGVsc1xuICAkcHgtbGVuZ3RoOiAkbGVuZ3RoO1xuXG4gIEBpZiAkZnJvbS11bml0ICE9ICdweCcge1xuICAgIC8vIENvbnZlcnQgcmVsYXRpdmUgdW5pdHMgdXNpbmcgdGhlIGZyb20tY29udGV4dCBwYXJhbWV0ZXIuXG4gICAgQGlmICRmcm9tLXVuaXQgPT0gJ2VtJyB7ICRweC1sZW5ndGg6ICRsZW5ndGggKiAkZnJvbS1jb250ZXh0IC8gMWVtOyB9XG4gICAgQGVsc2UgaWYgJGZyb20tdW5pdCA9PSAncmVtJyB7ICRweC1sZW5ndGg6ICRsZW5ndGggKiAkYmFzZS1mb250LXNpemUgLyAxcmVtOyB9XG4gICAgQGVsc2UgaWYgJGZyb20tdW5pdCA9PSAnJScgeyAkcHgtbGVuZ3RoOiAkbGVuZ3RoICogJGZyb20tY29udGV4dCAvIDEwMCU7IH1cbiAgICBAZWxzZSBpZiAkZnJvbS11bml0ID09ICdleCcgeyAkcHgtbGVuZ3RoOiAkbGVuZ3RoICogJGZyb20tY29udGV4dCAvIDJleDsgfVxuICAgIC8vIENvbnZlcnQgYWJzb2x1dGUgdW5pdHMgdXNpbmcgU2FzcycgY29udmVyc2lvbiB0YWJsZS5cbiAgICBAZWxzZSBpZiAkZnJvbS11bml0ID09ICdpbicgb3JcbiAgICAgICRmcm9tLXVuaXQgPT0gJ21tJyBvclxuICAgICAgJGZyb20tdW5pdCA9PSAnY20nIG9yXG4gICAgICAkZnJvbS11bml0ID09ICdwdCcgb3JcbiAgICAgICRmcm9tLXVuaXQgPT0gJ3BjJyB7ICRweC1sZW5ndGg6IDAgKyAkbGVuZ3RoOyB9XG4gICAgLy8gQ2VydGFpbiB1bml0cyBjYW4ndCBiZSBjb252ZXJ0ZWQuXG4gICAgQGVsc2UgaWYgJGZyb20tdW5pdCA9PSAnY2gnICBvclxuICAgICAgJGZyb20tdW5pdCA9PSAndncnICBvclxuICAgICAgJGZyb20tdW5pdCA9PSAndmgnICBvclxuICAgICAgJGZyb20tdW5pdCA9PSAndm1pbicge1xuICAgICAgQHdhcm4gJyN7JGZyb20tdW5pdH0gdW5pdHMgY2FuXFwndCBiZSByZWxpYWJseSBjb252ZXJ0ZWQ7IFJldHVybmluZyBvcmlnaW5hbCB2YWx1ZS4nO1xuICAgICAgQHJldHVybiAkbGVuZ3RoO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAd2FybiAnI3skZnJvbS11bml0fSBpcyBhbiB1bmtub3duIGxlbmd0aCB1bml0LiBSZXR1cm5pbmcgb3JpZ2luYWwgdmFsdWUuJztcbiAgICAgIEByZXR1cm4gJGxlbmd0aDtcbiAgICB9XG4gIH1cblxuICAvLyBDb252ZXJ0IGxlbmd0aCBpbiBwaXhlbHMgdG8gdGhlIG91dHB1dCB1bml0XG4gICRvdXRwdXQtbGVuZ3RoOiAkcHgtbGVuZ3RoO1xuICBAaWYgJHRvLXVuaXQgIT0gJ3B4JyB7XG4gICAgLy8gUmVsYXRpdmUgdW5pdHNcbiAgICBAaWYgJHRvLXVuaXQgPT0gJ2VtJyB7ICRvdXRwdXQtbGVuZ3RoOiAkcHgtbGVuZ3RoICogMWVtIC8gJHRvLWNvbnRleHQ7IH1cbiAgICBAZWxzZSBpZiAkdG8tdW5pdCA9PSAncmVtJyB7ICRvdXRwdXQtbGVuZ3RoOiAkcHgtbGVuZ3RoICogMXJlbSAvICRiYXNlLWZvbnQtc2l6ZTsgfVxuICAgIEBlbHNlIGlmICR0by11bml0ID09ICclJyB7ICRvdXRwdXQtbGVuZ3RoOiAkcHgtbGVuZ3RoICogMTAwJSAvICR0by1jb250ZXh0OyB9XG4gICAgQGVsc2UgaWYgJHRvLXVuaXQgPT0gJ2V4JyB7ICRvdXRwdXQtbGVuZ3RoOiAkcHgtbGVuZ3RoICogMmV4IC8gJHRvLWNvbnRleHQ7IH1cbiAgICAvLyBBYnNvbHV0ZSB1bml0c1xuICAgIEBlbHNlIGlmICR0by11bml0ID09ICdpbicgeyAkb3V0cHV0LWxlbmd0aDogJHB4LWxlbmd0aCAqIDFpbjsgfVxuICAgIEBlbHNlIGlmICR0by11bml0ID09ICdtbScgeyAkb3V0cHV0LWxlbmd0aDogJHB4LWxlbmd0aCAqIDFtbTsgfVxuICAgIEBlbHNlIGlmICR0by11bml0ID09ICdjbScgeyAkb3V0cHV0LWxlbmd0aDogJHB4LWxlbmd0aCAqIDFjbTsgfVxuICAgIEBlbHNlIGlmICR0by11bml0ID09ICdwdCcgeyAkb3V0cHV0LWxlbmd0aDogJHB4LWxlbmd0aCAqIDFwdDsgfVxuICAgIEBlbHNlIGlmICR0by11bml0ID09ICdwYycgeyAkb3V0cHV0LWxlbmd0aDogJHB4LWxlbmd0aCAqIDFwYzsgfVxuICAgIC8vIE5vbi1jb252ZXJ0aWJsZSB1bml0c1xuICAgIEBlbHNlIGlmXG4gICAgICAkdG8tdW5pdCA9PSAnY2gnIG9yXG4gICAgICAkdG8tdW5pdCA9PSAndncnIG9yXG4gICAgICAkdG8tdW5pdCA9PSAndmgnIG9yXG4gICAgICAkdG8tdW5pdCA9PSAndm1pbicge1xuICAgICAgQHdhcm4gJyN7JHRvLXVuaXR9IHVuaXRzIGNhblxcJ3QgYmUgcmVsaWFibHkgY29udmVydGVkOyBSZXR1cm5pbmcgb3JpZ2luYWwgdmFsdWUuJztcbiAgICAgIEByZXR1cm4gJGxlbmd0aDtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHdhcm4gJyN7JHRvLXVuaXR9IGlzIGFuIHVua25vd24gbGVuZ3RoIHVuaXQuIFJldHVybmluZyBvcmlnaW5hbCB2YWx1ZS4nO1xuICAgICAgQHJldHVybiAkbGVuZ3RoO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJG91dHB1dC1sZW5ndGg7XG59XG5cbi8vIFJvdW5kIGEgbnVtYmVyIHRvIHNwZWNpZmllZCBkaWdpdHMuXG4vL1xuLy8gQHBhcmFtICB7TnVtYmVyfSAkbnVtYmVyIEEgbnVtYmVyIHRvIHJvdW5kXG4vLyBAcGFyYW0gIHtOdW1iZXJ9IFskZGlnaXRzOjBdIERpZ2l0cyB0byBvdXRwdXRcbi8vIEBwYXJhbSAge1N0cmluZ30gWyRtb2RlOnJvdW5kXSAocm91bmR8Y2VpbHxmbG9vcikgSG93IHRvIHJvdW5kIGEgbnVtYmVyXG4vLyBAcmV0dXJuIHtOdW1iZXJ9IEEgcm91bmRlZCBudW1iZXJcbi8vIEBleGFtcGxlXG4vLyAgICAgZGVjaW1hbC1yb3VuZCgwLjMzMykgICAgPT4gMFxuLy8gICAgIGRlY2ltYWwtcm91bmQoMC4zMzMsIDEpID0+IDAuM1xuLy8gICAgIGRlY2ltYWwtcm91bmQoMC4zMzMsIDIpID0+IDAuMzNcbi8vICAgICBkZWNpbWFsLXJvdW5kKDAuNjY2KSAgICA9PiAxXG4vLyAgICAgZGVjaW1hbC1yb3VuZCgwLjY2NiwgMSkgPT4gMC43XG4vLyAgICAgZGVjaW1hbC1yb3VuZCgwLjY2NiwgMikgPT4gMC42N1xuQGZ1bmN0aW9uIGRlY2ltYWwtcm91bmQgKCRudW1iZXIsICRkaWdpdHM6IDAsICRtb2RlOiByb3VuZCkge1xuICAkbjogMTtcbiAgLy8gJG51bWJlciBtdXN0IGJlIGEgbnVtYmVyXG4gIEBpZiB0eXBlLW9mKCRudW1iZXIpICE9IG51bWJlciB7XG4gICAgQHdhcm4gJyN7ICRudW1iZXIgfSBpcyBub3QgYSBudW1iZXIuJztcbiAgICBAcmV0dXJuICRudW1iZXI7XG4gIH1cbiAgLy8gJGRpZ2l0cyBtdXN0IGJlIGEgdW5pdGxlc3MgbnVtYmVyXG4gIEBpZiB0eXBlLW9mKCRkaWdpdHMpICE9IG51bWJlciB7XG4gICAgQHdhcm4gJyN7ICRkaWdpdHMgfSBpcyBub3QgYSBudW1iZXIuJztcbiAgICBAcmV0dXJuICRudW1iZXI7XG4gIH1cbiAgQGVsc2UgaWYgbm90IHVuaXRsZXNzKCRkaWdpdHMpIHtcbiAgICBAd2FybiAnI3sgJGRpZ2l0cyB9IGhhcyBhIHVuaXQuJztcbiAgICBAcmV0dXJuICRudW1iZXI7XG4gIH1cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZGlnaXRzIHtcbiAgICAkbjogJG4gKiAxMDtcbiAgfVxuICBAaWYgJG1vZGUgPT0gcm91bmQge1xuICAgIEByZXR1cm4gcm91bmQoJG51bWJlciAqICRuKSAvICRuO1xuICB9XG4gIEBlbHNlIGlmICRtb2RlID09IGNlaWwge1xuICAgIEByZXR1cm4gY2VpbCgkbnVtYmVyICogJG4pIC8gJG47XG4gIH1cbiAgQGVsc2UgaWYgJG1vZGUgPT0gZmxvb3Ige1xuICAgIEByZXR1cm4gZmxvb3IoJG51bWJlciAqICRuKSAvICRuO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAd2FybiAnI3sgJG1vZGUgfSBpcyB1bmRlZmluZWQga2V5d29yZC4nO1xuICAgIEByZXR1cm4gJG51bWJlcjtcbiAgfVxufVxuXG4vLyBDZWlsIGEgbnVtYmVyIHRvIHNwZWNpZmllZCBkaWdpdHMuXG4vL1xuLy8gQHBhcmFtICB7TnVtYmVyfSAkbnVtYmVyIEEgbnVtYmVyIHRvIHJvdW5kXG4vLyBAcGFyYW0gIHtOdW1iZXJ9IFskZGlnaXRzOjBdIERpZ2l0cyB0byBvdXRwdXRcbi8vIEByZXR1cm4ge051bWJlcn0gQSBjZWlsZWQgbnVtYmVyXG4vLyBAZXhhbXBsZVxuLy8gICAgIGRlY2ltYWwtY2VpbCgwLjMzMykgICAgPT4gMVxuLy8gICAgIGRlY2ltYWwtY2VpbCgwLjMzMywgMSkgPT4gMC40XG4vLyAgICAgZGVjaW1hbC1jZWlsKDAuMzMzLCAyKSA9PiAwLjM0XG4vLyAgICAgZGVjaW1hbC1jZWlsKDAuNjY2KSAgICA9PiAxXG4vLyAgICAgZGVjaW1hbC1jZWlsKDAuNjY2LCAxKSA9PiAwLjdcbi8vICAgICBkZWNpbWFsLWNlaWwoMC42NjYsIDIpID0+IDAuNjdcbkBmdW5jdGlvbiBkZWNpbWFsLWNlaWwgKCRudW1iZXIsICRkaWdpdHM6IDApIHtcbiAgQHJldHVybiBkZWNpbWFsLXJvdW5kKCRudW1iZXIsICRkaWdpdHMsIGNlaWwpO1xufVxuXG4vLyBGbG9vciBhIG51bWJlciB0byBzcGVjaWZpZWQgZGlnaXRzLlxuLy9cbi8vIEBwYXJhbSAge051bWJlcn0gJG51bWJlciBBIG51bWJlciB0byByb3VuZFxuLy8gQHBhcmFtICB7TnVtYmVyfSBbJGRpZ2l0czowXSBEaWdpdHMgdG8gb3V0cHV0XG4vLyBAcmV0dXJuIHtOdW1iZXJ9IEEgZmxvb3JlZCBudW1iZXJcbi8vIEBleGFtcGxlXG4vLyAgICAgZGVjaW1hbC1mbG9vcigwLjMzMykgICAgPT4gMFxuLy8gICAgIGRlY2ltYWwtZmxvb3IoMC4zMzMsIDEpID0+IDAuM1xuLy8gICAgIGRlY2ltYWwtZmxvb3IoMC4zMzMsIDIpID0+IDAuMzNcbi8vICAgICBkZWNpbWFsLWZsb29yKDAuNjY2KSAgICA9PiAwXG4vLyAgICAgZGVjaW1hbC1mbG9vcigwLjY2NiwgMSkgPT4gMC42XG4vLyAgICAgZGVjaW1hbC1mbG9vcigwLjY2NiwgMikgPT4gMC42NlxuQGZ1bmN0aW9uIGRlY2ltYWwtZmxvb3IgKCRudW1iZXIsICRkaWdpdHM6IDApIHtcbiAgQHJldHVybiBkZWNpbWFsLXJvdW5kKCRudW1iZXIsICRkaWdpdHMsIGZsb29yKTtcbn1cblxuLy8gUmV0dXJucyB0aGUgb3Bwb3NpdGUgZGlyZWN0aW9uIG9mIGVhY2ggZGlyZWN0aW9uIGluIGEgbGlzdFxuLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXG4vLyBAcGFyYW0ge0xpc3R9ICRkaXJlY3Rpb25zIC0gTGlzdCBvZiBpbml0aWFsIGRpcmVjdGlvbnNcbi8vIEByZXR1cm4ge0xpc3R9IC0gTGlzdCBvZiBvcHBvc2l0ZSBkaXJlY3Rpb25zXG5AZnVuY3Rpb24gb3Bwb3NpdGUtZGlyZWN0aW9uKCRkaXJlY3Rpb25zKSB7XG4gICRvcHBvc2l0ZS1kaXJlY3Rpb25zOiAoKTtcbiAgJGRpcmVjdGlvbi1tYXA6XG4gICAgKFxuICAgICAgICAndG9wJzogICAgJ2JvdHRvbScsXG4gICAgICAgICdyaWdodCc6ICAnbGVmdCcsXG4gICAgICAgICdib3R0b20nOiAndG9wJyxcbiAgICAgICAgJ2xlZnQnOiAgICdyaWdodCcsXG4gICAgICAgICdjZW50ZXInOiAnY2VudGVyJyxcbiAgICAgICAgJ2x0cic6ICAgICdydGwnLFxuICAgICAgICAncnRsJzogICAgJ2x0cidcbiAgICAgICk7XG5cbiAgQGVhY2ggJGRpcmVjdGlvbiBpbiAkZGlyZWN0aW9ucyB7XG4gICAgJGRpcmVjdGlvbjogdG8tbG93ZXItY2FzZSgkZGlyZWN0aW9uKTtcblxuICAgIEBpZiBtYXAtaGFzLWtleSgkZGlyZWN0aW9uLW1hcCwgJGRpcmVjdGlvbikge1xuICAgICAgJG9wcG9zaXRlLWRpcmVjdGlvbnM6IGFwcGVuZCgkb3Bwb3NpdGUtZGlyZWN0aW9ucywgdW5xdW90ZShtYXAtZ2V0KCRkaXJlY3Rpb24tbWFwLCAkZGlyZWN0aW9uKSkpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAd2FybiAnTm8gb3Bwb3NpdGUgZGlyZWN0aW9uIGNhbiBiZSBmb3VuZCBmb3IgYCN7JGRpcmVjdGlvbn1gLiBEaXJlY3Rpb24gb21pdHRlZC4nO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJG9wcG9zaXRlLWRpcmVjdGlvbnM7XG59XG5cbkBmdW5jdGlvbiBtYXgoJHYxLCAkdjIpIHtcbiAgQHJldHVybiBpZigkdjEgPiAkdjIsICR2MSwgJHYyKTtcbn1cblxuQGZ1bmN0aW9uIG1pbigkdjEsICR2Mikge1xuICBAcmV0dXJuIGlmKCR2MSA8ICR2MiwgJHYxLCAkdjIpO1xufVxuXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1peGluc1xuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIEEgYmV0dGVyIGNsZWFyZml4LlxuLy8gQHNlZSBodHRwOi8vd3d3LmNzcy0xMDEub3JnL2FydGljbGVzL2NsZWFyZml4L2xhdGVzdC1uZXctY2xlYXJmaXgtc28tZmFyLnBocFxuQG1peGluIGNsZWFyZml4IHtcbiAgJjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogJyc7XG4gIH1cbn1cblxuLy8gT3V0cHV0IGEgZ2l2ZW4gc3R5bGUgcnVsZSBjb250YWluaW5nIHJlbSB2YWx1ZXMgYWxvbmcgd2l0aCBhbiAob3B0aW9uYWwpXG4vLyBmYWxsYmFjayBydWxlIGZvciBvbGRlciBicm93c2VycyAod2l0aCByZW0gdmFsdWVzIGNvbnZlcnRlZCB0byBweCkuXG4vL1xuLy8gQHBhcmFtICRwcm9wZXJ0eVxuLy8gICBUaGUgY3NzIHByb3BlcnR5IG5hbWUuXG4vLyBAcGFyYW0gJHZhbHVlc1xuLy8gICBUaGUgdmFsdWUgKG9yIHNwYWNlLXNlcGFyYXRlZCBsaXN0IG9mIHZhbHVlcykgZm9yIHRoZSBwcm9wZXJ0eS5cbi8vIEBwYXJhbSAkdXNlLXB4LWZhbGxiYWNrXG4vLyAgIFsgdHJ1ZSB8IGZhbHNlIF1cbkBtaXhpbiByZW0oJHByb3BlcnR5LCAkdmFsdWVzLCAkdXNlLXB4LWZhbGxiYWNrOiAkcmVtLXdpdGgtcHgtZmFsbGJhY2spIHtcbiAgLy8gQ3JlYXRlIGEgY291cGxlIG9mIGVtcHR5IGxpc3RzIGFzIG91dHB1dCBidWZmZXJzLlxuICAkcHgtdmFsdWVzOiAoKTtcbiAgJHJlbS12YWx1ZXM6ICgpO1xuXG4gIC8vIExvb3AgdGhyb3VnaCB0aGUgJHZhbHVlcyBsaXN0XG4gIEBlYWNoICR2YWx1ZSBpbiAkdmFsdWVzIHtcbiAgICAvLyBGb3IgZWFjaCBwcm9wZXJ0eSB2YWx1ZSwgaWYgaXQncyBpbiByZW0gb3IgcHgsIGRlcml2ZSBib3RoIHJlbSBhbmRcbiAgICAvLyBweCB2YWx1ZXMgZm9yIGl0IGFuZCBhZGQgdGhvc2UgdG8gdGhlIGVuZCBvZiB0aGUgYXBwcm9wcmlhdGUgYnVmZmVyLlxuICAgIC8vIEVuc3VyZSBhbGwgcGl4ZWwgdmFsdWVzIGFyZSByb3VuZGVkIHRvIHRoZSBuZWFyZXN0IHBpeGVsLlxuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gbnVtYmVyIGFuZCBub3QgdW5pdGxlc3MoJHZhbHVlKSB7XG4gICAgICBAaWYgdW5pdCgkdmFsdWUpID09IHB4IHtcbiAgICAgICAgJHB4LXZhbHVlczogam9pbigkcHgtdmFsdWVzLCByb3VuZCgkdmFsdWUpKTtcbiAgICAgICAgJHJlbS12YWx1ZXM6IGpvaW4oJHJlbS12YWx1ZXMsIGNvbnZlcnQtbGVuZ3RoKCR2YWx1ZSwgcmVtKSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRweC12YWx1ZXM6IGpvaW4oJHB4LXZhbHVlcywgcm91bmQoY29udmVydC1sZW5ndGgoJHZhbHVlLCBweCkpKTtcbiAgICAgICAgJHJlbS12YWx1ZXM6IGpvaW4oJHJlbS12YWx1ZXMsIGNvbnZlcnQtbGVuZ3RoKCR2YWx1ZSwgcmVtKSk7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRweC12YWx1ZXM6IGpvaW4oJHB4LXZhbHVlcywgJHZhbHVlKTtcbiAgICAgICRyZW0tdmFsdWVzOiBqb2luKCRyZW0tdmFsdWVzLCAkdmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFVzZSBwaXhlbCBmYWxsYmFjayBmb3IgYnJvd3NlcnMgdGhhdCBkb24ndCB1bmRlcnN0YW5kIHJlbSB1bml0cy5cbiAgQGlmICR1c2UtcHgtZmFsbGJhY2sge1xuICAgICN7JHByb3BlcnR5fTogJHB4LXZhbHVlcztcbiAgfVxuXG4gIC8vIFVzZSByZW0gdmFsdWVzIGZvciBldmVyeW9uZSBlbHNlIChvdmVycmlkZXMgcGl4ZWwgdmFsdWVzKS5cbiAgI3skcHJvcGVydHl9OiAkcmVtLXZhbHVlcztcbn1cblxuLy8gU2V0cyB0aGUgYmFzZSBmb250IHNpemUgKGluICUpLiBVc2UgdGhpcyBpbiB5b3VyIGh0bWwgcnVsZS5cbi8vXG4vLyBAcGFyYW0gJHNpemVcbi8vICAgRGVzaXJlZCBmb250IHNpemUgaW4gcGl4ZWxzLlxuQG1peGluIGJhc2UtZm9udC1zaXplKCRzaXplOiAkYmFzZS1mb250LXNpemUpIHtcbiAgZm9udC1zaXplOiBjb252ZXJ0LWxlbmd0aCgkc2l6ZSwgJyUnLCAkYnJvd3Nlci1kZWZhdWx0LWZvbnQtc2l6ZSk7XG59XG5cbi8vIFF1aWNrbHkgc2V0IGEgZm9udCBzaXplIGluIHJlbXMuXG4vL1xuLy8gQHBhcmFtICRzaXplXG4vLyAgIERlc2lyZWQgZm9udCBzaXplIGluIHBpeGVscy5cbkBtaXhpbiBmb250LXNpemUoJHNpemU6ICRiYXNlLWZvbnQtc2l6ZSkge1xuICBAaW5jbHVkZSByZW0oJ2ZvbnQtc2l6ZScsICRzaXplKTtcbn1cblxuQG1peGluIGZsdWlkLXNpemUoJHByb3BlcnRpZXMsICRtaW4tdncsICRtYXgtdncsICRtaW4tdmFsdWUsICRtYXgtdmFsdWUpIHtcbiAgQGVhY2ggJHByb3BlcnR5IGluICRwcm9wZXJ0aWVzIHtcbiAgICAjeyRwcm9wZXJ0eX06IGNvbnZlcnQtbGVuZ3RoKCRtaW4tdmFsdWUsICclJywgJGJyb3dzZXItZGVmYXVsdC1mb250LXNpemUpO1xuICB9XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJG1pbi12dykge1xuICAgIEBlYWNoICRwcm9wZXJ0eSBpbiAkcHJvcGVydGllcyB7XG4gICAgICAkbWluOiBjb252ZXJ0LWxlbmd0aCgkbWluLXZhbHVlLCAnJScsICRicm93c2VyLWRlZmF1bHQtZm9udC1zaXplKTtcbiAgICAgICRtYXg6IGNvbnZlcnQtbGVuZ3RoKCRtYXgtdmFsdWUsICclJywgJGJyb3dzZXItZGVmYXVsdC1mb250LXNpemUpO1xuICAgICAgI3skcHJvcGVydHl9OiBjYWxjKCN7JG1heH0gKyAje3N0cmlwLXVuaXRzKCRtYXgtdmFsdWUgLSAkbWluLXZhbHVlKX0gKiAoMTAwdncgLSAjeyRtaW4tdnd9KSAvICN7c3RyaXAtdW5pdHMoJG1heC12dyAtICRtaW4tdncpfSk7XG4gICAgfVxuICB9XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJG1heC12dykge1xuICAgIEBlYWNoICRwcm9wZXJ0eSBpbiAkcHJvcGVydGllcyB7XG4gICAgICAjeyRwcm9wZXJ0eX06IGNvbnZlcnQtbGVuZ3RoKCRtYXgtdmFsdWUsICclJywgJGJyb3dzZXItZGVmYXVsdC1mb250LXNpemUpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBEZXRlcm1pbmUgdGhlIHR5cGUgb2YgZm9udCBzbW9vdGhpbmcuXG4vL1xuLy8gRm9udCBzbW9vdGhpbmcgaXMgYWR2aXNhYmxlIGZvciBsaWdodCB0ZXh0IG9uIGRhcmsgYmFja2dyb3VuZHMuXG4vLyBAc2VlIGh0dHA6Ly9tYXhpbWlsaWFuaG9mZm1hbm4uY29tL2FydGljbGUvYmV0dGVyLWZvbnQtcmVuZGVyaW5nLW9uLW9zeC9cbkBtaXhpbiBmb250LXNtb290aGluZygkYWN0aXZlOiBmYWxzZSkge1xuICBAaWYgJGFjdGl2ZSB7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgfVxuICBAZWxzZSB7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogc3VicGl4ZWwtYW50aWFsaWFzZWQ7XG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGF1dG87XG4gIH1cbn1cblxuLy8gIFRoaXMgbWl4aW4gY2FuIGJlIHVzZWQgdG8gc2V0IHRoZSBvYmplY3QtZml0OlxuLy8gIEBpbmNsdWRlIG9iamVjdC1maXQoY29udGFpbik7XG4vLyAgb3Igb2JqZWN0LWZpdCBhbmQgb2JqZWN0LXBvc2l0aW9uOlxuLy8gIEBpbmNsdWRlIG9iamVjdC1maXQoY292ZXIsIHRvcCk7XG5AbWl4aW4gb2JqZWN0LWZpdCgkZml0OiBmaWxsLCAkcG9zaXRpb246IG51bGwpIHtcbiAgb2JqZWN0LWZpdDogJGZpdDtcbiAgQGlmICRwb3NpdGlvbiB7XG4gICAgb2JqZWN0LXBvc2l0aW9uOiAkcG9zaXRpb247XG4gICAgZm9udC1mYW1pbHk6ICdvYmplY3QtZml0OiAjeyRmaXR9OyBvYmplY3QtcG9zaXRpb246ICN7JHBvc2l0aW9ufSc7XG4gIH1cbiAgQGVsc2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnb2JqZWN0LWZpdDogI3skZml0fSc7XG4gIH1cbn1cblxuLy8gVGhpcyBtaXhpbiBjYW4gYmUgdXNlZCB0byBicmVhay1vdXQgYSBkaXYgdG8gZml0XG4vLyB0aGUgbWF4IG9mIHRoZSB2aWV3cG9ydC5cbkBtaXhpbiBicmVha291dCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcmlnaHQ6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB3aWR0aDogMTAwdnc7XG4gIG1hcmdpbi1yaWdodDogLTUwdnc7XG4gIG1hcmdpbi1sZWZ0OiAtNTB2dztcbn1cblxuLy8gVGhpcyBtaXhpbiB3aWxsIGNyZWF0ZSBhIHN1YnRsZSB0ZXh0LXNoYWRvdyBmb3IgdXNlXG4vLyBvbiBoZWFkZXJzIGFuZCB0ZXh0IG92ZXIgaW1hZ2VzLlxuQG1peGluIHRleHQtc2hhZG93IHtcbiAgdGV4dC1zaGFkb3c6IDAgMCA0cHggcmdiYSgkYmxhY2ssIC41KTtcbn1cblxuLy8gVGhpcyBtaXhpbiB3aWxsIGJ1dHRvbml6ZSBhbiBlbGVtZW50LlxuQG1peGluIGJ1dHRvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogKCRzcGFjaW5nIC8gMikgKCRzcGFjaW5nLzMqMik7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgLjRzIGVhc2UtaW4tb3V0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiAkd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgYmFja2dyb3VuZDogJGJ1dHRvbi1jb2xvcjtcblxuICAmOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICBiYWNrZ3JvdW5kOiBkYXJrZW4oJGJ1dHRvbi1jb2xvciwgMTAlKTtcbiAgfVxufVxuXG4vLyBUaGlzIG1peGluIGlzIG5lZWRlZCB0byBhZGQgYW55IGNvbG9yIHRvIHRoZSBidXR0b25zIGluLlxuLy8gVXNlIHRoaXMgbWl4aW4gaW4geW91ciBiYXJlLWJhc2VkIHN1YnRoZW1lLlxuQG1peGluIGJ1dHRvbi1jb2xvcigkY29sb3IsICRob3Zlci1jb2xvcikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGhvdmVyLWNvbG9yO1xuICB9XG59XG5cbi8vIFRoZSBlbWJvc3NlZCBtaXhpbiB3aWxsIGdpdmUgdGhlIGVsZW1lbnQgYW4gZW1ib3NzZWQgbG9vay5cbkBtaXhpbiBlbWJvc3NlZCB7XG4gIG1hcmdpbi1yaWdodDogKC0kc3BhY2luZyk7XG4gIG1hcmdpbi1sZWZ0OiAoLSRzcGFjaW5nKTtcbiAgcGFkZGluZzogJHNwYWNpbmctZG91YmxlO1xuICBiYWNrZ3JvdW5kOiAkbWVyY3VyeTtcbiAgYm94LXNoYWRvdzogMCAwIDEwcHggaW5zZXQgcmdiYSgkYmxhY2ssIC40KTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRicmVha3BvaW50LW1lZGl1bSkge1xuICAgIG1hcmdpbi1yaWdodDogKC0kc3BhY2luZy1kb3VibGUpO1xuICAgIG1hcmdpbi1sZWZ0OiAoLSRzcGFjaW5nLWRvdWJsZSk7XG4gICAgcGFkZGluZzogJHNwYWNpbmcgJHNwYWNpbmctZG91YmxlO1xuICB9XG59XG5cbi8vIFRoZSBtYXggd2lkdGggbWl4aW4gd2lsbCBtYWtlIHRoZSBjdXJyZW50IGl0ZW0gdGhlIG1heC13aWR0aFxuLy8gb2YgdGhlIHdlYnNpdGUgYW5kIHdpbGwgY2VudGVyIGl0J3MgY29udGVudC5cbkBtaXhpbiBtYXgtd2lkdGgge1xuICBtYXgtd2lkdGg6ICRicmVha3BvaW50LW1heDtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi8vIFRoZSBvdmVybGF5IG1peGluIGNyZWF0ZXMgYSBuaWNlIHN1YnRsZSByb3VuZGVkIGJveCBvdmVybGF5IG9uIHRvcFxuLy8gb2YgYW4gaW1hZ2UuXG5AbWl4aW4gb3ZlcmxheS1ib3gge1xuICBwYWRkaW5nOiAkc3BhY2luZyAkc3BhY2luZyAkc3BhY2luZy1kb3VibGU7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgYmFja2dyb3VuZDogJHdoaXRlO1xuICBib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKCRibGFjaywgLjQpO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJyZWFrcG9pbnQtbWVkaXVtKSB7XG4gICAgcGFkZGluZzogJHNwYWNpbmctZG91YmxlO1xuICB9XG59XG5cbkBtaXhpbiBvdmVybGF5LWJveC1ob3ZlciB7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgLjNzIGVhc2UtaW4tb3V0O1xuXG4gICY6aG92ZXIge1xuICAgIGJveC1zaGFkb3c6IDAgMCAyMHB4IHJnYmEoJGJsYWNrLCAuNSk7XG4gIH1cbn1cblxuLy8gVGhlIGJpZy1saW5rIG1peGluIG1ha2VzIHRoZSBjdXJyZW50IGEgYmlnIGxpbmssXG4vLyByZW1lbWJlciB0byBtYWtlIHRoZSBwYXJlbnQgZWxlbWVudCBwb3NpdGlvbiByZWxhdGl2ZSFcbkBtaXhpbiBiaWctbGluayB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0ZXh0LWluZGVudDogLTk5OTk5OXB4O1xufVxuIiwiLnBhcmFncmFwaC0tdHlwZS0tZm91ci1ncmlkIC5ncm91cC13cmFwcGVyIC5maWVsZC0tdHlwZS10ZXh0LWxvbmcge1xuICBjb2xvcjogJHdoaXRlO1xuICBiYWNrZ3JvdW5kOiAkcHVycGxlaGVhcnQ7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnJlYWtwb2ludC1tZWRpdW0pIHtcbiAgICBwYWRkaW5nOiAkc3BhY2luZy1kb3VibGU7XG4gIH1cblxuICBoMyB7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgfVxufVxuXG4ucGFyYWdyYXBoLS10eXBlLS1jYWxsLXRvLWFjdGlvbiAub3ZlcmxheS1ib3gge1xuICBjb2xvcjogJHdoaXRlO1xuICBiYWNrZ3JvdW5kOiAkcHVycGxlaGVhcnQ7XG5cbiAgaDIsIGgzIHtcbiAgICBjb2xvcjogJHdoaXRlO1xuICB9XG59XG5cbi5wYWdlLWhlYWRlciB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJyZWFrcG9pbnQtbWVkaXVtKSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cbn1cblxuLnJlZ2lvbi1oZWFkZXIgLmJsb2NrLW1lbnUgdWwgbGkgYSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJyZWFrcG9pbnQtbWVkaXVtKSB7XG4gICAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTtcbiAgICB0ZXh0LXNoYWRvdzogMCAwIDJweCByZ2JhKCRibGFjaywgLjQpO1xuICAgIGZvbnQtZmFtaWx5OiAnQmFza2VydmlsbGUnO1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG59XG5cbi5ibG9jay12aWV3cy1leHBvc2VkLWZpbHRlci1ibG9ja3ZhY2FuY2llcy1zZWFyY2gtdmFjYW5jaWVzIHtcbiAgbWluLWhlaWdodDogNjZ2aDtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWcva2FtZWxlb24uanBnJyk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IGJvdHRvbTtcblxuICBoMiB7XG4gICAgY29sb3I6ICRwdXJwbGVoZWFydDtcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgfVxufVxuXG5AbWVkaWEgKG1heC1oZWlnaHQ6IDg2MHB4KSB7XG4gIC5ibG9jay12aWV3cy1leHBvc2VkLWZpbHRlci1ibG9ja3ZhY2FuY2llcy1zZWFyY2gtdmFjYW5jaWVzIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCBib3R0b20gLTYwcHg7XG4gIH1cbn1cblxuXG4uYmxvY2stdmlld3MtZXhwb3NlZC1maWx0ZXItYmxvY2t2YWNhbmNpZXMtc2VhcmNoLXZhY2FuY2llcyBzZWxlY3QuZm9ybS1zZWxlY3Qge1xuICBib3gtc2hhZG93OiAxMHB4IDE1cHggMTBweCByZ2JhKCRwdXJwbGVoZWFydCwgLjgpO1xufVxuXG4uYmxvY2stdmlld3MtZXhwb3NlZC1maWx0ZXItYmxvY2t2YWNhbmNpZXMtc2VhcmNoLXZhY2FuY2llcyAuZm9ybS1pdGVtIC5mb3JtLXRleHQge1xuICBib3gtc2hhZG93OiAxMHB4IDE1cHggMTBweCByZ2JhKCRwdXJwbGVoZWFydCwgLjgpO1xufVxuXG4uYmxvY2stdmlld3MtZXhwb3NlZC1maWx0ZXItYmxvY2t2YWNhbmNpZXMtc2VhcmNoLXZhY2FuY2llcyAuZm9ybS1hY3Rpb25zIGlucHV0IHtcbiAgYm94LXNoYWRvdzogOHB4IDE1cHggMTBweCByZ2JhKCRwdXJwbGVoZWFydCwgLjgpO1xufVxuXG4ucGFyYWdyYXBoLS10eXBlLS1oaWdobGlnaHRlZC12YWNhbmNpZXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHVycGxlaGVhcnQ7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnJlYWtwb2ludC1tZWRpdW0pIHtcbiAgICBwYWRkaW5nOiAkc3BhY2luZy1kb3VibGU7XG4gIH1cblxuICBoMiB7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgfVxuXG4gIC5wYXJhZ3JhcGgtbW9yZS1saW5rLXdyYXBwZXIgYSB7XG4gICAgY29sb3I6ICRwdXJwbGVoZWFydDtcbiAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gIH1cbn1cblxuLnBhcmFncmFwaCBoMiB7XG4gIHRleHQtdHJhbnNmb3JtOiB1bnNldDtcbn1cblxuLmJsb2NrLWJsb2NrLWNvbnRlbnRjMzhhMmVjOC05YWY2LTQyYjQtOWUzMy02NGZhMTU5NmI5ZWYge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1hcmdpbi10b3A6IC0yMjJweDtcbiAgbWFyZ2luLWxlZnQ6IDQ5JTtcbn1cblxuXG4uc2l0ZS1taW5pLWxvZ28ge1xuICBkaXNwbGF5OiBub25lO1xufVxuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBEZWZhdWx0IFZhcmlhYmxlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kQnJlYWtwb2ludC1TZXR0aW5nczogKFxuICAnZGVmYXVsdCBtZWRpYSc6IGFsbCxcbiAgJ2RlZmF1bHQgZmVhdHVyZSc6IG1pbi13aWR0aCxcbiAgJ2RlZmF1bHQgcGFpcic6IHdpZHRoLFxuXG4gICdmb3JjZSBhbGwgbWVkaWEgdHlwZSc6IGZhbHNlLFxuICAndG8gZW1zJzogZmFsc2UsXG4gICd0cmFuc2Zvcm0gcmVzb2x1dGlvbnMnOiB0cnVlLFxuXG4gICdubyBxdWVyaWVzJzogZmFsc2UsXG4gICdubyBxdWVyeSBmYWxsYmFja3MnOiBmYWxzZSxcblxuICAnYmFzZSBmb250IHNpemUnOiAxNnB4LFxuXG4gICdsZWdhY3kgc3ludGF4JzogZmFsc2Vcbik7XG5cbiRicmVha3BvaW50OiAoKSAhZGVmYXVsdDtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBJbXBvcnRzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCJicmVha3BvaW50L3NldHRpbmdzXCI7XG5AaW1wb3J0ICdicmVha3BvaW50L2NvbnRleHQnO1xuQGltcG9ydCAnYnJlYWtwb2ludC9oZWxwZXJzJztcbkBpbXBvcnQgJ2JyZWFrcG9pbnQvcGFyc2Vycyc7XG5AaW1wb3J0ICdicmVha3BvaW50L25vLXF1ZXJ5JztcblxuQGltcG9ydCAnYnJlYWtwb2ludC9yZXNwb25kLXRvJztcblxuQGltcG9ydCBcImJyZWFrcG9pbnQvbGVnYWN5LXNldHRpbmdzXCI7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQnJlYWtwb2ludCBNaXhpblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBicmVha3BvaW50KCRxdWVyeSwgJG5vLXF1ZXJ5OiBmYWxzZSkge1xuICBAaW5jbHVkZSBsZWdhY3ktc2V0dGluZ3Mtd2FybmluZztcblxuICAvLyBSZXNldCBjb250ZXh0c1xuICBAaW5jbHVkZSBwcml2YXRlLWJyZWFrcG9pbnQtcmVzZXQtY29udGV4dHMoKTtcblxuICAkYnJlYWtwb2ludDogYnJlYWtwb2ludCgkcXVlcnksIGZhbHNlKTtcblxuICAkcXVlcnktc3RyaW5nOiBtYXAtZ2V0KCRicmVha3BvaW50LCAncXVlcnknKTtcbiAgJHF1ZXJ5LWZhbGxiYWNrOiBtYXAtZ2V0KCRicmVha3BvaW50LCAnZmFsbGJhY2snKTtcblxuICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiBtYXAtZ2V0KCRicmVha3BvaW50LCAnY29udGV4dCBob2xkZXInKSAhZ2xvYmFsO1xuICAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiBtYXAtZ2V0KCRicmVha3BvaW50LCAncXVlcnkgY291bnQnKSAhZ2xvYmFsO1xuXG4gIC8vIEFsbG93IGZvciBhbiBhcy1uZWVkZWQgb3ZlcnJpZGUgb3IgdXNhZ2Ugb2Ygbm8gcXVlcnkgZmFsbGJhY2suXG4gIEBpZiAkbm8tcXVlcnkgIT0gZmFsc2Uge1xuICAgICRxdWVyeS1mYWxsYmFjazogJG5vLXF1ZXJ5O1xuICB9XG5cbiAgQGlmICRxdWVyeS1mYWxsYmFjayAhPSBmYWxzZSB7XG4gICAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJ25vLXF1ZXJ5JywgJHF1ZXJ5LWZhbGxiYWNrKTtcbiAgfVxuXG4gIC8vIFByaW50IE91dCBRdWVyeSBTdHJpbmdcbiAgQGlmIG5vdCBicmVha3BvaW50LWdldCgnbm8gcXVlcmllcycpIHtcbiAgICBAbWVkaWEgI3skcXVlcnktc3RyaW5nfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cblxuICBAaWYgYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJ5IGZhbGxiYWNrcycpICE9IGZhbHNlIG9yIGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyaWVzJykgPT0gdHJ1ZSB7XG5cbiAgICAkdHlwZTogdHlwZS1vZihicmVha3BvaW50LWdldCgnbm8gcXVlcnkgZmFsbGJhY2tzJykpO1xuICAgICRwcmludDogZmFsc2U7XG5cbiAgICBAaWYgKCR0eXBlID09ICdib29sJykge1xuICAgICAgJHByaW50OiB0cnVlO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoJHR5cGUgPT0gJ3N0cmluZycpIHtcbiAgICAgIEBpZiAkcXVlcnktZmFsbGJhY2sgPT0gYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJ5IGZhbGxiYWNrcycpIHtcbiAgICAgICAgJHByaW50OiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAoJHR5cGUgPT0gJ2xpc3QnKSB7XG4gICAgICBAZWFjaCAkd3JhcHBlciBpbiBicmVha3BvaW50LWdldCgnbm8gcXVlcnkgZmFsbGJhY2tzJykge1xuICAgICAgICBAaWYgJHF1ZXJ5LWZhbGxiYWNrID09ICR3cmFwcGVyIHtcbiAgICAgICAgICAkcHJpbnQ6IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBXcml0ZSBGYWxsYmFja1xuICAgIEBpZiAoJHF1ZXJ5LWZhbGxiYWNrICE9IGZhbHNlKSBhbmQgKCRwcmludCA9PSB0cnVlKSB7XG4gICAgICAkdHlwZS1mYWxsYmFjazogdHlwZS1vZigkcXVlcnktZmFsbGJhY2spO1xuXG4gICAgICBAaWYgKCR0eXBlLWZhbGxiYWNrICE9ICdib29sJykge1xuICAgICAgICAjeyRxdWVyeS1mYWxsYmFja30gJiB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgcHJpdmF0ZS1icmVha3BvaW50LXJlc2V0LWNvbnRleHRzKCk7XG59XG5cblxuQG1peGluIG1xKCRxdWVyeSwgJG5vLXF1ZXJ5OiBmYWxzZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRxdWVyeSwgJG5vLXF1ZXJ5KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0dvdGhhbSBOYXJyb3cnO1xuICBzcmM6IHVybCgnLi4vZm9udHMvZ290aGFtbmFycm93L0dvdGhhbU5hcnJvdy1Cb29rLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnQmFza2VydmlsbGUnO1xuICBzcmM6IHVybCgnLi4vZm9udHMvYmFza2VydmlsbGUvYmFza2VydmlsbGUud29mZicpIGZvcm1hdCgnd29mZicpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG5oMSxcbmgyLFxuaDMge1xuICBmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbn1cblxuaDIge1xuICBtYXJnaW4tYm90dG9tOiAkc3BhY2luZy1kb3VibGU7XG4gIGZvbnQtc2l6ZTogM3JlbTtcbn1cblxuaDMge1xuICBmb250LXNpemU6IDIuMjVyZW07XG59XG4iLCIuYmxvY2stbGFuZy1kcm9wZG93biB7XG4gIHBvc2l0aW9uOiB1bnNldDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiB1bnNldDtcbiAgd2lkdGg6IGF1dG87XG4gIHBhZGRpbmc6IDA7XG5cbiAgc2VsZWN0IHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgYm9yZGVyOiAycHggc29saWQgJHdoaXRlO1xuICAgIGJhY2tncm91bmQ6ICRwdXJwbGVoZWFydDtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicmVha3BvaW50LW1lZGl1bSkge1xuICAgICAgbWFyZ2luLXRvcDogLjVyZW07XG4gICAgfVxuICB9XG59XG4iXX0= */