/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[2]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[4].oneOf[1].use[3]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[4]!./assets/scss/plugins/ce_jfeeuropeers_usermap.scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Universal form components styling - Modular approach
 * Backwards compatible with existing form-components() mixin
 */
/**
 * Form Labels Mixin
 */
/**
 * Form Controls Mixin (Input, Textarea, Select)
 */
/**
 * Form Checks Mixin (Radio & Checkbox)
 */
/**
 * Form Validation Mixin
 */
/**
 * Form Layout Mixin (Floating, Groups, Actions)
 */
/**
 * Form Accessibility Mixin
 */
/**
 * Main form-components mixin - BACKWARDS COMPATIBLE
 * Includes all form styling components
 */
/* aleo-600 - latin */
@font-face {
  font-display: swap;
  font-family: "Aleo";
  font-style: normal;
  font-weight: 600;
  src: url(/build/fonts/600.6cdcaa41.woff2) format("woff2");
  /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* rooney 600 - latin */
@font-face {
  font-display: swap;
  font-family: "Rooney";
  font-style: normal;
  font-weight: 600;
  src: url(/build/fonts/600.3ef60b2e.woff2) format("woff2");
  /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* calibri font family */
@font-face {
  font-display: swap;
  font-family: "Calibri";
  font-weight: 300;
  font-style: normal;
  src: url(/build/fonts/300.9baa67f0.woff2) format("woff2");
  /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
@font-face {
  font-display: swap;
  font-family: "Calibri";
  font-weight: 300;
  font-style: italic;
  src: url(/build/fonts/300i.cf87dc54.woff2) format("woff2");
  /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
@font-face {
  font-display: swap;
  font-family: "Calibri";
  font-weight: 400;
  font-style: normal;
  src: url(/build/fonts/400.551fd9d5.woff2) format("woff2");
  /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
@font-face {
  font-display: swap;
  font-family: "Calibri";
  font-weight: 400;
  font-style: italic;
  src: url(/build/fonts/400i.7fd7e2cf.woff2) format("woff2");
  /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
@font-face {
  font-display: swap;
  font-family: "Calibri";
  font-weight: 700;
  font-style: normal;
  src: url(/build/fonts/700.4308169e.woff2) format("woff2");
  /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
@font-face {
  font-display: swap;
  font-family: "Calibri";
  font-weight: 700;
  font-style: italic;
  src: url(/build/fonts/700i.740267d0.woff2) format("woff2");
  /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/**
 * Font family definitions for consistent usage across the project
 * These variables can be used in any file that imports this module
 */
.font-primary {
  font-family: "Rooney", serif;
}
.font-secondary {
  font-family: "Calibri", sans-serif, sans-serif;
}
.ce-jfeeuropeers_usermap .form-label {
  display: block;
  margin-bottom: 0.5rem;
  font-weight: 600;
  color: var(--color-black, #000000);
  font-size: 1rem;
  line-height: 1.4;
}
.ce-jfeeuropeers_usermap .form-label.required::after {
  content: " *";
  color: var(--color-error, #df0000);
  font-weight: 700;
}
.ce-jfeeuropeers_usermap .form-label .required {
  color: var(--color-error, #df0000);
  font-weight: 700;
}
.ce-jfeeuropeers_usermap .form-label.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.ce-jfeeuropeers_usermap legend {
  font-size: 1.25rem;
  font-weight: 700;
}
.ce-jfeeuropeers_usermap .form-control {
  display: block;
  width: 100%;
  padding: 0.75rem 1rem;
  font-size: 1rem;
  font-family: inherit;
  line-height: 1.4;
  color: var(--color-black, #000000);
  background-color: var(--color-white, #ffffff);
  background-clip: padding-box;
  border: none;
  border-bottom: 2px solid var(--color-black, #000000);
  border-radius: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.ce-jfeeuropeers_usermap .form-control::-moz-placeholder {
  color: var(--color-jfe-gray-darker, rgb(105, 105, 105));
  opacity: 1;
}
.ce-jfeeuropeers_usermap .form-control::placeholder {
  color: var(--color-jfe-gray-darker, rgb(105, 105, 105));
  opacity: 1;
}
.ce-jfeeuropeers_usermap .form-control:hover:not(:disabled):not([readonly]) {
  border-bottom-color: var(--color-primary, #009ddf);
}
.ce-jfeeuropeers_usermap .form-control:focus {
  border-bottom-color: var(--color-primary, #009ddf);
  outline: 0;
  box-shadow: 0 0 0 2px rgba(var(--color-primary, #009ddf), 0.25);
}
.ce-jfeeuropeers_usermap .form-control:disabled, .ce-jfeeuropeers_usermap .form-control[readonly] {
  background-color: var(--color-jfe-gray, #f3f3f2);
  color: var(--color-jfe-gray-dark, rgb(189, 189, 189));
  opacity: 1;
  cursor: not-allowed;
}
.ce-jfeeuropeers_usermap .form-control.is-invalid {
  border-bottom-color: var(--color-error, #df0000);
}
.ce-jfeeuropeers_usermap .form-control.is-invalid:focus {
  border-bottom-color: var(--color-error, #df0000);
  box-shadow: 0 0 0 2px rgba(var(--color-error, #df0000), 0.25);
}
.ce-jfeeuropeers_usermap .form-control.is-valid {
  border-bottom-color: #95DF00;
}
.ce-jfeeuropeers_usermap .form-control.is-valid:focus {
  border-bottom-color: #95DF00;
  box-shadow: 0 0 0 2px rgba(149, 223, 0, 0.25);
}
.ce-jfeeuropeers_usermap textarea.form-control {
  min-height: 120px;
  resize: vertical;
  line-height: 1.5;
  border-top: 2px solid var(--color-black, #000000);
  border-left: 2px solid var(--color-black, #000000);
  border-right: 2px solid var(--color-black, #000000);
}
.ce-jfeeuropeers_usermap textarea.form-control:hover:not(:disabled):not([readonly]) {
  border-color: var(--color-primary, #009ddf);
}
.ce-jfeeuropeers_usermap textarea.form-control:focus {
  border-color: var(--color-primary, #009ddf);
}
.ce-jfeeuropeers_usermap select.form-control:not([multiple]) {
  background-image: url(/build/images/IconArrowAccordion--Down.8e468af5.svg);
  background-repeat: no-repeat;
  background-position: right 0.75rem center;
  background-size: 16px 12px;
  padding-right: 2.5rem;
  cursor: pointer;
  border: none;
  border-bottom: 2px solid var(--color-black, #000000);
}
.ce-jfeeuropeers_usermap select.form-control:not([multiple])::-ms-expand {
  display: none;
}
.ce-jfeeuropeers_usermap select.form-control:not([multiple]):hover:not(:disabled):not([readonly]) {
  border-bottom-color: var(--color-primary, #009ddf);
}
.ce-jfeeuropeers_usermap select.form-control:not([multiple]):focus {
  border-bottom-color: var(--color-primary, #009ddf);
  background-image: url(/build/images/IconArrowAccordion--Up.2d71fcd5.svg);
}
.ce-jfeeuropeers_usermap select.form-control:not([multiple]).is-invalid {
  border-bottom-color: var(--color-error, #df0000);
}
.ce-jfeeuropeers_usermap select.form-control:not([multiple]).is-invalid:focus {
  border-bottom-color: var(--color-error, #df0000);
}
.ce-jfeeuropeers_usermap select.form-control:not([multiple]).is-valid {
  border-bottom-color: #95DF00;
}
.ce-jfeeuropeers_usermap select.form-control:not([multiple]).is-valid:focus {
  border-bottom-color: #95DF00;
}
.ce-jfeeuropeers_usermap .form-check {
  display: block;
  min-height: 1.5rem;
  padding-left: 2rem;
  margin-bottom: 0.5rem;
  position: relative;
}
.ce-jfeeuropeers_usermap .form-check .form-check-input,
.ce-jfeeuropeers_usermap .form-check [type=checkbox],
.ce-jfeeuropeers_usermap .form-check [type=radio] {
  position: absolute;
  left: 0;
  top: 0.25rem;
  width: 1.25rem;
  height: 1.25rem;
  margin: 0;
  background-color: var(--color-white, #ffffff);
  border: 1px solid var(--color-black, #000000);
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  cursor: pointer;
  transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}
.ce-jfeeuropeers_usermap .form-check .form-check-input::before,
.ce-jfeeuropeers_usermap .form-check [type=checkbox]::before,
.ce-jfeeuropeers_usermap .form-check [type=radio]::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 44px;
  height: 44px;
  min-width: 44px;
  min-height: 44px;
}
.ce-jfeeuropeers_usermap .form-check .form-check-input:hover:not(:disabled),
.ce-jfeeuropeers_usermap .form-check [type=checkbox]:hover:not(:disabled),
.ce-jfeeuropeers_usermap .form-check [type=radio]:hover:not(:disabled) {
  border-color: var(--color-primary, #009ddf);
}
.ce-jfeeuropeers_usermap .form-check .form-check-input:focus,
.ce-jfeeuropeers_usermap .form-check [type=checkbox]:focus,
.ce-jfeeuropeers_usermap .form-check [type=radio]:focus {
  border-color: var(--color-primary, #009ddf);
  outline: 0;
  box-shadow: 0 0 0 2px rgba(var(--color-primary, #009ddf), 0.25);
}
.ce-jfeeuropeers_usermap .form-check .form-check-input:checked,
.ce-jfeeuropeers_usermap .form-check [type=checkbox]:checked,
.ce-jfeeuropeers_usermap .form-check [type=radio]:checked {
  background-color: var(--color-primary, #009ddf);
  border-color: var(--color-primary, #009ddf);
}
.ce-jfeeuropeers_usermap .form-check .form-check-input:disabled,
.ce-jfeeuropeers_usermap .form-check [type=checkbox]:disabled,
.ce-jfeeuropeers_usermap .form-check [type=radio]:disabled {
  background-color: var(--color-jfe-gray, #f3f3f2);
  border-color: var(--color-jfe-gray-dark, rgb(189, 189, 189));
  cursor: not-allowed;
  opacity: 0.5;
}
.ce-jfeeuropeers_usermap .form-check .form-check-input.is-invalid,
.ce-jfeeuropeers_usermap .form-check [type=checkbox].is-invalid,
.ce-jfeeuropeers_usermap .form-check [type=radio].is-invalid {
  border-color: var(--color-error, #df0000);
}
.ce-jfeeuropeers_usermap .form-check .form-check-input.is-invalid:focus,
.ce-jfeeuropeers_usermap .form-check [type=checkbox].is-invalid:focus,
.ce-jfeeuropeers_usermap .form-check [type=radio].is-invalid:focus {
  box-shadow: 0 0 0 2px rgba(var(--color-error, #df0000), 0.25);
}
.ce-jfeeuropeers_usermap .form-check .form-check-input[type=checkbox],
.ce-jfeeuropeers_usermap .form-check [type=checkbox] {
  border-radius: 2px;
}
.ce-jfeeuropeers_usermap .form-check .form-check-input[type=checkbox]:checked,
.ce-jfeeuropeers_usermap .form-check [type=checkbox]:checked {
  background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 20 20%27%3e%3cpath fill=%27none%27 stroke=%27%23fff%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%273%27 d=%27M6 10l3 3 6-6%27/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 1rem 1rem;
}
.ce-jfeeuropeers_usermap .form-check .form-check-input[type=checkbox]:indeterminate,
.ce-jfeeuropeers_usermap .form-check [type=checkbox]:indeterminate {
  background-color: var(--color-primary, #009ddf);
  border-color: var(--color-primary, #009ddf);
  background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 20 20%27%3e%3cpath fill=%27none%27 stroke=%27%23fff%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%273%27 d=%27M6 10h8%27/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 1rem 1rem;
}
.ce-jfeeuropeers_usermap .form-check .form-check-input[type=radio],
.ce-jfeeuropeers_usermap .form-check [type=radio] {
  border-radius: 50%;
}
.ce-jfeeuropeers_usermap .form-check .form-check-input[type=radio]:checked,
.ce-jfeeuropeers_usermap .form-check [type=radio]:checked {
  background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%27-4 -4 8 8%27%3e%3ccircle r=%272%27 fill=%27%23fff%27/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 1rem 1rem;
}
.ce-jfeeuropeers_usermap .form-check .form-check-label {
  display: inline-block;
  color: var(--color-black, #000000);
  cursor: pointer;
  font-size: 1rem;
  line-height: 1.4;
  margin-bottom: 0;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.ce-jfeeuropeers_usermap .form-check .form-check-label.disabled {
  color: var(--color-jfe-gray-dark, rgb(189, 189, 189));
  cursor: not-allowed;
  opacity: 0.5;
}
.ce-jfeeuropeers_usermap .form-check-inline {
  display: inline-block;
  margin-right: 1rem;
  margin-bottom: 0;
}
@media (min-width: 640px) {
  .ce-jfeeuropeers_usermap .form-check-inline {
    margin-right: 1.5rem;
  }
}
.ce-jfeeuropeers_usermap .form-text {
  display: block;
  margin-top: 0.25rem;
  font-size: 0.875rem;
  color: var(--color-jfe-gray-darker, rgb(105, 105, 105));
  line-height: 1.4;
}
.ce-jfeeuropeers_usermap .form-text.text-danger, .ce-jfeeuropeers_usermap .form-text.invalid-feedback {
  color: var(--color-error, #df0000);
}
.ce-jfeeuropeers_usermap .form-text.text-success, .ce-jfeeuropeers_usermap .form-text.valid-feedback {
  color: #95DF00;
}
.ce-jfeeuropeers_usermap .invalid-feedback {
  display: none;
  margin-top: 0.25rem;
  font-size: 0.875rem;
  color: var(--color-black, #000000);
  line-height: 1.4;
  padding-left: 1.5rem;
  position: relative;
}
.ce-jfeeuropeers_usermap .invalid-feedback::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 1.25rem;
  height: 1.25rem;
  color: var(--color-black, #000000);
  background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3e%3cpath fill=%27%23000%27 d=%27M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.707 8l5.147 5.146a.5.5 0 0 1-.708.708L8 8.707l-5.146 5.147a.5.5 0 0 1-.708-.708L7.293 8 2.146 2.854Z%27/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: 75% 75%;
  border-radius: 50%;
  border: 3px solid var(--color-error, #df0000);
  display: flex;
  align-items: center;
  justify-content: center;
}
.form-control.is-invalid ~ .ce-jfeeuropeers_usermap .invalid-feedback, .form-check-input.is-invalid ~ .ce-jfeeuropeers_usermap .invalid-feedback {
  display: block;
}
.ce-jfeeuropeers_usermap .valid-feedback {
  display: none;
  margin-top: 0.25rem;
  font-size: 0.875rem;
  color: #95DF00;
  line-height: 1.4;
}
.form-control.is-valid ~ .ce-jfeeuropeers_usermap .valid-feedback, .form-check-input.is-valid ~ .ce-jfeeuropeers_usermap .valid-feedback {
  display: block;
}
.ce-jfeeuropeers_usermap .validation-summary {
  margin-bottom: 1.5rem;
  padding: 1rem 1.25rem;
  border: 2px solid var(--color-error, #df0000);
  border-radius: 4px;
  background-color: color-mix(in srgb, var(--color-error, #df0000) 5%, var(--color-white, #ffffff));
}
@media (min-width: 640px) {
  .ce-jfeeuropeers_usermap .validation-summary {
    padding: 1.25rem 1.5rem;
  }
}
.ce-jfeeuropeers_usermap .validation-summary .alert-heading {
  margin: 0 0 0.75rem 0;
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--color-error, #df0000);
  line-height: 1.3;
}
@media (min-width: 640px) {
  .ce-jfeeuropeers_usermap .validation-summary .alert-heading {
    font-size: 1.25rem;
  }
}
.ce-jfeeuropeers_usermap .validation-summary .alert-message {
  margin: 0 0 1rem 0;
  font-size: 0.9rem;
  color: color-mix(in srgb, var(--color-error, #df0000) 85%, black);
  line-height: 1.4;
}
@media (min-width: 640px) {
  .ce-jfeeuropeers_usermap .validation-summary .alert-message {
    font-size: 1rem;
  }
}
.ce-jfeeuropeers_usermap .validation-summary-list {
  margin: 0;
  padding: 0;
  list-style: none;
}
.ce-jfeeuropeers_usermap .validation-summary-list .validation-summary-item {
  margin-bottom: 0.5rem;
  padding-left: 1.5rem;
  position: relative;
  line-height: 1.4;
}
.ce-jfeeuropeers_usermap .validation-summary-list .validation-summary-item:last-child {
  margin-bottom: 0;
}
.ce-jfeeuropeers_usermap .validation-summary-list .validation-summary-item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.2rem;
  width: 1rem;
  height: 1rem;
  background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3e%3cpath fill=%27%23dc3545%27 d=%27M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z%27/%3e%3cpath fill=%27%23dc3545%27 d=%27M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zM7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 4.995z%27/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-size: contain;
  flex-shrink: 0;
}
.ce-jfeeuropeers_usermap .validation-summary-list .validation-summary-item a {
  color: var(--color-error, #df0000);
  text-decoration: underline;
  font-weight: 500;
  transition: color 0.2s ease;
}
.ce-jfeeuropeers_usermap .validation-summary-list .validation-summary-item a:hover, .ce-jfeeuropeers_usermap .validation-summary-list .validation-summary-item a:focus {
  color: color-mix(in srgb, var(--color-error, #df0000) 85%, black);
  text-decoration: none;
}
.ce-jfeeuropeers_usermap .validation-summary-list .validation-summary-item a:focus-visible {
  outline: 2px solid var(--color-primary, #009ddf);
  outline-offset: 2px;
  border-radius: 2px;
}
.ce-jfeeuropeers_usermap .validation-summary {
  animation: slideInFromTop 0.3s ease-out;
}
@keyframes slideInFromTop {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.ce-jfeeuropeers_usermap .form-floating {
  position: relative;
}
.ce-jfeeuropeers_usermap .form-floating .form-control {
  padding: 1rem 0.75rem 0.5rem;
}
.ce-jfeeuropeers_usermap .form-floating .form-control::-moz-placeholder {
  color: transparent;
}
.ce-jfeeuropeers_usermap .form-floating .form-control::placeholder {
  color: transparent;
}
.ce-jfeeuropeers_usermap .form-floating .form-control:not(:-moz-placeholder) ~ label {
  opacity: 0.65;
  transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
}
.ce-jfeeuropeers_usermap .form-floating .form-control:focus ~ label, .ce-jfeeuropeers_usermap .form-floating .form-control:not(:placeholder-shown) ~ label {
  opacity: 0.65;
  transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
}
.ce-jfeeuropeers_usermap .form-floating label {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  padding: 1rem 0.75rem;
  overflow: hidden;
  text-align: start;
  text-overflow: ellipsis;
  white-space: nowrap;
  pointer-events: none;
  border: 1px solid transparent;
  transform-origin: 0 0;
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.ce-jfeeuropeers_usermap .form-group {
  margin-bottom: 3rem;
}
.ce-jfeeuropeers_usermap .form-group:last-child {
  margin-bottom: 0;
}
.ce-jfeeuropeers_usermap .form-section {
  margin-bottom: 2rem;
}
.ce-jfeeuropeers_usermap .form-section:last-child {
  margin-bottom: 0;
}
.ce-jfeeuropeers_usermap .form-section h2, .ce-jfeeuropeers_usermap .form-section h3, .ce-jfeeuropeers_usermap .form-section h4 {
  margin-bottom: 1rem;
  color: var(--color-black, #000000);
}
.ce-jfeeuropeers_usermap .form-section .required {
  color: var(--color-error, #df0000);
  font-weight: 700;
}
.ce-jfeeuropeers_usermap .form-actions {
  display: flex;
  gap: 1rem;
  margin-top: 2rem;
  flex-wrap: wrap;
}
@media (min-width: 640px) {
  .ce-jfeeuropeers_usermap .form-actions {
    flex-wrap: nowrap;
  }
}
.ce-jfeeuropeers_usermap .form-actions .btn {
  flex: 1;
  min-width: 120px;
}
@media (min-width: 640px) {
  .ce-jfeeuropeers_usermap .form-actions .btn {
    flex: 0 0 auto;
  }
}
@media (prefers-reduced-motion: reduce) {
  .ce-jfeeuropeers_usermap .form-control,
  .ce-jfeeuropeers_usermap .form-check-input,
  .ce-jfeeuropeers_usermap .form-floating label {
    transition: none;
  }
}
@media (forced-colors: active) {
  .ce-jfeeuropeers_usermap .form-control,
  .ce-jfeeuropeers_usermap .form-check-input {
    border-width: 2px;
  }
  .ce-jfeeuropeers_usermap .validation-summary {
    border: 2px solid ButtonText;
    background-color: ButtonFace;
  }
  .ce-jfeeuropeers_usermap .validation-summary .validation-summary-item::before {
    background-image: none;
    border: 1px solid ButtonText;
    border-radius: 50%;
  }
}
@media print {
  .ce-jfeeuropeers_usermap .form-control,
  .ce-jfeeuropeers_usermap .form-check-input {
    border: 1px solid black !important;
    box-shadow: none !important;
  }
  .ce-jfeeuropeers_usermap .validation-summary {
    border: 2px solid black !important;
    background-color: white !important;
  }
  .ce-jfeeuropeers_usermap .validation-summary .alert-heading,
  .ce-jfeeuropeers_usermap .validation-summary .alert-message,
  .ce-jfeeuropeers_usermap .validation-summary .validation-summary-item a {
    color: black !important;
  }
  .ce-jfeeuropeers_usermap .validation-summary .validation-summary-item::before {
    display: none !important;
  }
}
.ce-jfeeuropeers_usermap__map-section {
  display: flex;
  flex-direction: column;
}
@media (min-width: 1024px) {
  .ce-jfeeuropeers_usermap__map-section {
    flex-direction: row;
  }
}
.ce-jfeeuropeers_usermap {
  /* Filter Section */
}
.ce-jfeeuropeers_usermap__filter-section {
  background-color: var(--color-jfe-gray, #f3f3f2);
  padding: 1.5rem;
  border: 1px solid var(--color-jfe-gray-dark, rgb(189, 189, 189));
  border-bottom: none;
}
@media (min-width: 1024px) {
  .ce-jfeeuropeers_usermap__filter-section {
    border-right: none;
    border-bottom: 1px solid var(--color-jfe-gray-dark, rgb(189, 189, 189));
  }
}
.ce-jfeeuropeers_usermap__filter-section h3 {
  margin-bottom: 1rem;
  color: var(--color-black, #000000);
}
.ce-jfeeuropeers_usermap {
  /* Form Styling - extending form-components */
}
.ce-jfeeuropeers_usermap .user-search-form {
  display: flex;
  gap: 1rem;
  flex-direction: column;
  align-items: stretch;
}
@media (min-width: 1024px) {
  .ce-jfeeuropeers_usermap .user-search-form {
    width: 240px;
  }
}
@media (min-width: 1536px) {
  .ce-jfeeuropeers_usermap .user-search-form {
    width: 320px;
  }
}
.ce-jfeeuropeers_usermap .user-search-form > div:first-child {
  display: contents;
}
.ce-jfeeuropeers_usermap .user-search-form > div:not(:first-child) {
  display: flex;
  flex-direction: column;
}
.ce-jfeeuropeers_usermap .user-search-form label {
  display: block;
  margin-bottom: 0.25rem;
  font-weight: 600;
  font-size: 0.875rem;
  color: var(--color-black, #000000);
}
.ce-jfeeuropeers_usermap .user-search-form .form-control {
  width: 100%;
}
.ce-jfeeuropeers_usermap {
  /* Radius Slider Styling */
}
.ce-jfeeuropeers_usermap .radius-slider-container {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  min-width: 200px;
  position: relative;
}
.ce-jfeeuropeers_usermap .radius-slider-container label {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-black, #000000);
  margin-bottom: 0;
}
.ce-jfeeuropeers_usermap .radius-slider-container #radius-value {
  color: var(--color-primary, #009ddf);
  font-weight: 700;
}
.ce-jfeeuropeers_usermap {
  /* Custom Slider Components */
}
.ce-jfeeuropeers_usermap .custom-slider-track {
  position: relative;
  height: 6px;
  background-color: var(--color-jfe-gray-dark, rgb(189, 189, 189));
  border-radius: 3px;
  margin: 0.625rem 0;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.ce-jfeeuropeers_usermap .custom-slider-fill {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  background: linear-gradient(90deg, var(--color-primary, #009ddf) 0%, color-mix(in srgb, var(--color-primary, #009ddf) 85%, black) 100%);
  border-radius: 3px;
  transition: width 0.1s ease;
  pointer-events: none;
}
.ce-jfeeuropeers_usermap .custom-slider-thumb {
  position: absolute;
  top: 50%;
  width: 20px;
  height: 20px;
  background: linear-gradient(135deg, var(--color-primary, #009ddf) 0%, color-mix(in srgb, var(--color-primary, #009ddf) 85%, black) 100%);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  cursor: grab;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
  transition: all 0.2s ease;
  border: 2px solid var(--color-white, #ffffff);
  z-index: 10;
}
.ce-jfeeuropeers_usermap .custom-slider-thumb:hover {
  transform: translate(-50%, -50%) scale(1.1);
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.3);
}
.ce-jfeeuropeers_usermap .custom-slider-thumb.dragging {
  cursor: grabbing;
  transform: translate(-50%, -50%) scale(1.15);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
}
.ce-jfeeuropeers_usermap .custom-slider-thumb:focus {
  outline: 2px solid var(--color-primary, #009ddf);
  outline-offset: 2px;
}
.ce-jfeeuropeers_usermap .slider-labels {
  display: flex;
  justify-content: space-between;
  font-size: 0.6875rem;
  color: var(--color-jfe-gray-darker, rgb(105, 105, 105));
  margin-top: 0.25rem;
  pointer-events: none;
}
.ce-jfeeuropeers_usermap .slider-labels span {
  font-weight: 500;
}
.ce-jfeeuropeers_usermap {
  /* Hide the hidden field */
}
.ce-jfeeuropeers_usermap #radius-hidden-field {
  display: none;
}
.ce-jfeeuropeers_usermap {
  /* Map and Sidebar Layout */
}
.ce-jfeeuropeers_usermap__map-sidebar-container {
  display: flex;
  gap: 0;
  height: 700px;
  width: 100%;
  overflow: hidden;
  border: 1px solid var(--color-jfe-gray-dark, rgb(189, 189, 189));
}
.ce-jfeeuropeers_usermap__map-container {
  flex: 1;
  position: relative;
  min-width: 400px;
}
.ce-jfeeuropeers_usermap #map {
  height: 100%;
  width: 100%;
}
.ce-jfeeuropeers_usermap__map-controls {
  position: absolute;
  bottom: 10px;
  left: 10px;
  display: flex;
  gap: 0.5rem;
  z-index: 10;
}
.ce-jfeeuropeers_usermap__map-controls button {
  background: rgba(255, 255, 255, 0.95);
  color: var(--color-black, #000000);
  border: 1px solid var(--color-jfe-gray-dark, rgb(189, 189, 189));
  padding: 0.5rem 0.75rem;
  border-radius: 0.375rem;
  cursor: pointer;
  font-size: 0.75rem;
  font-weight: 500;
  backdrop-filter: blur(5px);
  transition: all 0.2s ease;
  min-height: 36px;
}
.ce-jfeeuropeers_usermap__map-controls button:hover {
  background: var(--color-white, #ffffff);
  transform: translateY(-1px);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
}
.ce-jfeeuropeers_usermap__map-controls button:focus {
  outline: 2px solid var(--color-primary, #009ddf);
  outline-offset: 2px;
}
.ce-jfeeuropeers_usermap__map-controls button:active {
  transform: translateY(0);
}
.ce-jfeeuropeers_usermap {
  /* User Sidebar Styling */
}
.ce-jfeeuropeers_usermap__user-sidebar {
  min-width: 420px;
  background-color: var(--color-white, #ffffff);
  border-left: 1px solid var(--color-jfe-gray-dark, rgb(189, 189, 189));
  display: flex;
  flex-direction: column;
  transition: width 0.3s ease;
}
.ce-jfeeuropeers_usermap__user-sidebar.hidden {
  width: 0;
  overflow: hidden;
  border-left: none;
}
@media (min-width: 768px) {
  .ce-jfeeuropeers_usermap__user-sidebar {
    max-width: 40vw;
  }
}
.ce-jfeeuropeers_usermap__sidebar-header {
  padding: 1rem;
  background-color: var(--color-white, #ffffff);
  color: var(--color-primary, #009ddf);
  font-weight: 700;
  font-size: 1.25rem;
  font-family: "Rooney", serif;
  text-align: center;
  border-bottom: 1px solid var(--color-jfe-gray-dark, rgb(189, 189, 189));
}
.ce-jfeeuropeers_usermap__sidebar-content {
  flex: 1;
  overflow-y: auto;
  padding: 1rem;
}
.ce-jfeeuropeers_usermap__user-card {
  background-color: var(--color-white, #ffffff);
  border-top: 1px solid var(--color-jfe-gray-dark, rgb(189, 189, 189));
  padding: 1rem;
  margin-bottom: 0.75rem;
  cursor: pointer;
  transition: all 0.2s ease;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  align-items: flex-start;
}
.ce-jfeeuropeers_usermap__user-card:hover {
  border-color: var(--color-primary, #009ddf);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  transform: translateY(-2px);
}
.ce-jfeeuropeers_usermap__user-card.active {
  border-color: var(--color-primary, #009ddf);
  background-color: color-mix(in srgb, var(--color-primary, #009ddf) 5%, white);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.ce-jfeeuropeers_usermap__user-card-image {
  flex-shrink: 0;
}
.ce-jfeeuropeers_usermap__user-card-image-wrapper {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  overflow: hidden;
}
.ce-jfeeuropeers_usermap__user-card-profile-image {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.ce-jfeeuropeers_usermap__user-card-profile-image--fallback {
  background-color: var(--color-primary, #009ddf);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
}
.ce-jfeeuropeers_usermap__user-card-profile-image--fallback i {
  font-size: 1.5rem;
}
.ce-jfeeuropeers_usermap__user-card-content {
  flex: 1;
  min-width: 0;
}
.ce-jfeeuropeers_usermap__user-card h4.ce-jfeeuropeers_usermap__user-card-headline {
  margin: 0 0 0.5rem 0;
  font-family: "Rooney", serif;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ce-jfeeuropeers_usermap__user-card p {
  margin: 0 0 0.5rem 0;
  font-size: 0.875rem;
}
.ce-jfeeuropeers_usermap__user-card p.city-info {
  display: flex;
  align-items: center;
  gap: 0.25rem;
}
.ce-jfeeuropeers_usermap__user-card .ce-jfeeuropeers_usermap__user-card-interests,
.ce-jfeeuropeers_usermap__user-card .ce-jfeeuropeers_usermap__user-card-details {
  margin: 0 0 0.5rem 0;
  font-size: 0.875rem;
  color: var(--color-black, #000000);
  line-height: 1.75;
}
@media (min-width: 768px) {
  .ce-jfeeuropeers_usermap__user-card .ce-jfeeuropeers_usermap__user-card-interests,
  .ce-jfeeuropeers_usermap__user-card .ce-jfeeuropeers_usermap__user-card-details {
    max-width: 40ch;
  }
}
.ce-jfeeuropeers_usermap__user-card .ce-jfeeuropeers_usermap__user-card-interests strong,
.ce-jfeeuropeers_usermap__user-card .ce-jfeeuropeers_usermap__user-card-details strong {
  color: var(--color-black, #000000);
  font-weight: 600;
}
.ce-jfeeuropeers_usermap__user-card a, .ce-jfeeuropeers_usermap__user-card button {
  color: var(--color-black, #000000);
  text-decoration: none;
  font-weight: 600;
  display: inline-flex;
  transition: all 0.2s ease;
  font-size: 0.875rem;
}
.ce-jfeeuropeers_usermap__user-card a .ce-jfeeuropeers_usermap__user-card-linklabel, .ce-jfeeuropeers_usermap__user-card button .ce-jfeeuropeers_usermap__user-card-linklabel {
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-color: var(--color-secondary, #ffcc00);
}
.ce-jfeeuropeers_usermap__user-card a:hover, .ce-jfeeuropeers_usermap__user-card button:hover {
  transform: translateY(-1px);
}
.ce-jfeeuropeers_usermap__user-card a:hover .ce-jfeeuropeers_usermap__user-card-linklabel, .ce-jfeeuropeers_usermap__user-card button:hover .ce-jfeeuropeers_usermap__user-card-linklabel {
  text-decoration: underline;
  text-decoration-color: var(--color-black, #000000);
}
.ce-jfeeuropeers_usermap__user-card a:focus, .ce-jfeeuropeers_usermap__user-card button:focus {
  outline: 2px solid var(--color-primary, #009ddf);
  outline-offset: 2px;
}
.ce-jfeeuropeers_usermap__user-card-actions {
  display: flex;
  gap: 0.25rem;
  flex-direction: column;
}
@media (min-width: 1280px) {
  .ce-jfeeuropeers_usermap__user-card-actions {
    flex-direction: row;
    gap: 1rem;
  }
}
.ce-jfeeuropeers_usermap__no-users {
  text-align: center;
  padding: 2rem 1rem;
  color: var(--color-jfe-gray-darker, rgb(105, 105, 105));
  font-style: italic;
}
.ce-jfeeuropeers_usermap .gm-ui-hover-effect {
  position: absolute !important;
  top: 0;
  right: 0;
}
.ce-jfeeuropeers_usermap {
  /* Custom Info Window */
}
.ce-jfeeuropeers_usermap .custom-info-window {
  max-width: 280px;
  font-family: inherit;
  padding: 0.5rem;
}
.ce-jfeeuropeers_usermap .custom-info-window h3 {
  margin: 0 0 0.625rem 0;
  color: var(--color-black, #000000);
  font-size: 1.125rem;
  font-weight: 600;
}
.ce-jfeeuropeers_usermap .custom-info-window p {
  margin: 0.5rem 0;
  font-size: 0.875rem;
  color: var(--color-black, #000000);
}
.ce-jfeeuropeers_usermap .custom-info-window a, .ce-jfeeuropeers_usermap .custom-info-window button {
  margin-top: 0.5rem;
  padding: 0;
  transition: all 0.2s ease;
}
.ce-jfeeuropeers_usermap .custom-info-window a > span, .ce-jfeeuropeers_usermap .custom-info-window button > span {
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-color: var(--color-secondary, #ffcc00);
  font-weight: 600;
}
.ce-jfeeuropeers_usermap .custom-info-window a:hover, .ce-jfeeuropeers_usermap .custom-info-window button:hover {
  transform: translateY(-1px);
}
.ce-jfeeuropeers_usermap .custom-info-window a:hover > span, .ce-jfeeuropeers_usermap .custom-info-window button:hover > span {
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-color: var(--color-black, #000000);
  font-weight: 600;
}
.ce-jfeeuropeers_usermap .custom-info-window .city-info {
  display: flex;
  align-items: center;
  gap: 0.3125rem;
}
.ce-jfeeuropeers_usermap {
  /* Responsive Design */
}
@media (max-width: 767px) {
  .ce-jfeeuropeers_usermap__map-sidebar-container {
    flex-direction: column;
  }
  .ce-jfeeuropeers_usermap__user-sidebar {
    width: 100%;
    max-height: 400px;
    border-left: none;
    border-top: 1px solid var(--color-jfe-gray-dark, rgb(189, 189, 189));
  }
  .ce-jfeeuropeers_usermap__user-sidebar.hidden {
    max-height: 0;
    border-top: none;
  }
  .ce-jfeeuropeers_usermap__map-container {
    height: 400px;
    min-width: auto;
  }
  .ce-jfeeuropeers_usermap .user-search-form {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
  .ce-jfeeuropeers_usermap .radius-slider-container {
    min-width: auto;
    width: 100%;
  }
}
.ce-jfeeuropeers_usermap {
  /* Scrollbar Styling */
}
.ce-jfeeuropeers_usermap__sidebar-content::-webkit-scrollbar {
  width: 6px;
}
.ce-jfeeuropeers_usermap__sidebar-content::-webkit-scrollbar-track {
  background-color: var(--color-jfe-gray, #f3f3f2);
}
.ce-jfeeuropeers_usermap__sidebar-content::-webkit-scrollbar-thumb {
  background-color: var(--color-jfe-gray-dark, rgb(189, 189, 189));
  border-radius: 3px;
}
.ce-jfeeuropeers_usermap__sidebar-content::-webkit-scrollbar-thumb:hover {
  background-color: var(--color-jfe-gray-darker, rgb(105, 105, 105));
}
.ce-jfeeuropeers_usermap {
  /* Accessibility improvements */
}
@media (prefers-reduced-motion: reduce) {
  .ce-jfeeuropeers_usermap .custom-slider-thumb, .ce-jfeeuropeers_usermap__user-card, .ce-jfeeuropeers_usermap__map-controls button,
  .ce-jfeeuropeers_usermap .user-search-form input[type=submit] {
    transition: none;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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Qko7QUF6aUJRO0VBQ0k7QUEyaUJaO0FBeGlCUTtFQUNJO0FBMGlCWjtBQXZpQlE7RUFDSTtFQUNBO0FBeWlCWjtBQXZpQlk7RUFDSTtBQXlpQmhCO0FBcGlDQTtFQWdnQkk7QUF1aUJKO0FBdGlCSTtFQUVJOztJQUlJO0VBcWlCVjtBQUNGLEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9qdWdlbmQtZnVlci1ldXJvcGEvLi9hc3NldHMvc2Nzcy9jb21wb25lbnRzL19mb3JtLWNvbXBvbmVudHMuc2NzcyIsIndlYnBhY2s6Ly9qdWdlbmQtZnVlci1ldXJvcGEvLi9hc3NldHMvc2Nzcy9nbG9iYWwvX2ZvbnRzLnNjc3MiLCJ3ZWJwYWNrOi8vanVnZW5kLWZ1ZXItZXVyb3BhLy4vYXNzZXRzL3Njc3MvcGx1Z2lucy9jZV9qZmVldXJvcGVlcnNfdXNlcm1hcC5zY3NzIiwid2VicGFjazovL2p1Z2VuZC1mdWVyLWV1cm9wYS8uL2Fzc2V0cy9zY3NzL2dsb2JhbC9fYnJlYWtwb2ludHMuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBhc3NldHMvc2Nzcy9jb21wb25lbnRzL19mb3JtLWNvbXBvbmVudHMuc2Nzc1xuQHVzZSAnLi4vZ2xvYmFsL2NvbG9ycycgYXMgY29sb3JzO1xuQHVzZSAnLi4vZ2xvYmFsL2JyZWFrcG9pbnRzJyBhcyBicDtcblxuLyoqXG4gKiBVbml2ZXJzYWwgZm9ybSBjb21wb25lbnRzIHN0eWxpbmcgLSBNb2R1bGFyIGFwcHJvYWNoXG4gKiBCYWNrd2FyZHMgY29tcGF0aWJsZSB3aXRoIGV4aXN0aW5nIGZvcm0tY29tcG9uZW50cygpIG1peGluXG4gKi9cblxuLy8gVmlzdWFsIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzIChzaGFyZWQgYWNyb3NzIGFsbCBtaXhpbnMpXG4kb3V0bGluZS13aWR0aDogMnB4ICFkZWZhdWx0O1xuJG91dGxpbmUtb2Zmc2V0OiAycHggIWRlZmF1bHQ7XG4kdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4ycyAhZGVmYXVsdDtcbiR0cmFuc2l0aW9uLWVhc2luZzogZWFzZSAhZGVmYXVsdDtcbiRib3JkZXItcmFkaXVzOiAwICFkZWZhdWx0O1xuJGJvcmRlci13aWR0aDogMXB4ICFkZWZhdWx0O1xuJGZvY3VzLWJvcmRlci13aWR0aDogMnB4ICFkZWZhdWx0O1xuJG1pbi10b3VjaC1zaXplOiA0NHB4ICFkZWZhdWx0O1xuXG4vLyBDb2xvcnMgLSB1c2luZyBDU1MgdmFyaWFibGVzIGZvciB0aGVtZSBmbGV4aWJpbGl0eVxuJGZvcm0tcHJpbWFyeS1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSwgY29sb3JzLiRjb2xvci1qZmUtbGlnaHRibHVlKSAhZGVmYXVsdDtcbiRmb3JtLXNlY29uZGFyeS1jb2xvcjogdmFyKC0tY29sb3Itc2Vjb25kYXJ5LCBjb2xvcnMuJGNvbG9yLWpmZS15ZWxsb3cpICFkZWZhdWx0O1xuJGZvcm0tdGV4dC1jb2xvcjogdmFyKC0tY29sb3ItYmxhY2ssIGNvbG9ycy4kY29sb3ItYmxhY2spICFkZWZhdWx0O1xuJGZvcm0tYmctY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlLCBjb2xvcnMuJGNvbG9yLXdoaXRlKSAhZGVmYXVsdDtcbiRmb3JtLWJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItYmxhY2ssIGNvbG9ycy4kY29sb3ItYmxhY2spICFkZWZhdWx0O1xuJGZvcm0tZm9jdXMtYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LCBjb2xvcnMuJGNvbG9yLWpmZS1saWdodGJsdWUpICFkZWZhdWx0O1xuJGZvcm0tZXJyb3ItY29sb3I6IHZhcigtLWNvbG9yLWVycm9yLCBjb2xvcnMuJGNvbG9yLWVycm9yKSAhZGVmYXVsdDtcbiRmb3JtLXN1Y2Nlc3MtY29sb3I6ICM5NURGMDAgIWRlZmF1bHQ7XG4kZm9ybS1kaXNhYmxlZC1iZy1jb2xvcjogdmFyKC0tY29sb3ItamZlLWdyYXksIGNvbG9ycy4kY29sb3ItamZlLWdyYXkpICFkZWZhdWx0O1xuJGZvcm0tZGlzYWJsZWQtdGV4dC1jb2xvcjogdmFyKC0tY29sb3ItamZlLWdyYXktZGFyaywgY29sb3JzLiRjb2xvci1qZmUtZ3JheS1kYXJrKSAhZGVmYXVsdDtcbiRmb3JtLXBsYWNlaG9sZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1qZmUtZ3JheS1kYXJrZXIsIGNvbG9ycy4kY29sb3ItamZlLWdyYXktZGFya2VyKSAhZGVmYXVsdDtcblxuJHJhZGlvLWNoZWNrZWQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PSctNCAtNCA4IDgnJTNlJTNjY2lyY2xlIHI9JzInIGZpbGw9JyUyM2ZmZicvJTNlJTNjL3N2ZyUzZVwiKSAhZGVmYXVsdDtcblxuLyoqXG4gKiBGb3JtIExhYmVscyBNaXhpblxuICovXG5AbWl4aW4gZm9ybS1sYWJlbHMoKSB7XG4gICAgLmZvcm0tbGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBjb2xvcjogJGZvcm0tdGV4dC1jb2xvcjtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuXG4gICAgICAgIC8vIFJlcXVpcmVkIGZpZWxkIGluZGljYXRvclxuICAgICAgICAmLnJlcXVpcmVkOjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiBcIiAqXCI7XG4gICAgICAgICAgICBjb2xvcjogJGZvcm0tZXJyb3ItY29sb3I7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLnJlcXVpcmVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkZm9ybS1lcnJvci1jb2xvcjtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBMYWJlbCBmb3Igc2NyZWVuIHJlYWRlcnMgb25seVxuICAgICAgICAmLnNyLW9ubHkge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogLTFweDtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGxlZ2VuZCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB9XG59XG5cbi8qKlxuICogRm9ybSBDb250cm9scyBNaXhpbiAoSW5wdXQsIFRleHRhcmVhLCBTZWxlY3QpXG4gKi9cbkBtaXhpbiBmb3JtLWNvbnRyb2xzKCkge1xuICAgIC5mb3JtLWNvbnRyb2wge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMXJlbTtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgY29sb3I6ICRmb3JtLXRleHQtY29sb3I7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmb3JtLWJnLWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkZm9ybS1ib3JkZXItY29sb3I7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgICAgYm9yZGVyLWNvbG9yICR0cmFuc2l0aW9uLWR1cmF0aW9uICR0cmFuc2l0aW9uLWVhc2luZyxcbiAgICAgICAgICAgIGJveC1zaGFkb3cgJHRyYW5zaXRpb24tZHVyYXRpb24gJHRyYW5zaXRpb24tZWFzaW5nO1xuXG4gICAgICAgIC8vIFBsYWNlaG9sZGVyIHN0eWxpbmdcbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRmb3JtLXBsYWNlaG9sZGVyLWNvbG9yO1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEhvdmVyIHN0YXRlXG4gICAgICAgICY6aG92ZXI6bm90KDpkaXNhYmxlZCk6bm90KFtyZWFkb25seV0pIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRmb3JtLWZvY3VzLWJvcmRlci1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEZvY3VzIHN0YXRlXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGZvcm0tZm9jdXMtYm9yZGVyLWNvbG9yO1xuICAgICAgICAgICAgb3V0bGluZTogMDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwICRvdXRsaW5lLXdpZHRoIHJnYmEoJGZvcm0tZm9jdXMtYm9yZGVyLWNvbG9yLCAwLjI1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIERpc2FibGVkIHN0YXRlXG4gICAgICAgICY6ZGlzYWJsZWQsXG4gICAgICAgICZbcmVhZG9ubHldIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmb3JtLWRpc2FibGVkLWJnLWNvbG9yO1xuICAgICAgICAgICAgY29sb3I6ICRmb3JtLWRpc2FibGVkLXRleHQtY29sb3I7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEludmFsaWQgc3RhdGUgKG9ubHkgd2l0aCBleHBsaWNpdCBjbGFzcylcbiAgICAgICAgJi5pcy1pbnZhbGlkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRmb3JtLWVycm9yLWNvbG9yO1xuXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkZm9ybS1lcnJvci1jb2xvcjtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAkb3V0bGluZS13aWR0aCByZ2JhKCRmb3JtLWVycm9yLWNvbG9yLCAwLjI1KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFZhbGlkIHN0YXRlIChvbmx5IHdpdGggZXhwbGljaXQgY2xhc3MpXG4gICAgICAgICYuaXMtdmFsaWQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGZvcm0tc3VjY2Vzcy1jb2xvcjtcblxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGZvcm0tc3VjY2Vzcy1jb2xvcjtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAkb3V0bGluZS13aWR0aCByZ2JhKCRmb3JtLXN1Y2Nlc3MtY29sb3IsIDAuMjUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gVGV4dGFyZWEgc3BlY2lmaWMgc3R5bGluZ1xuICAgIHRleHRhcmVhLmZvcm0tY29udHJvbCB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEyMHB4O1xuICAgICAgICByZXNpemU6IHZlcnRpY2FsO1xuICAgICAgICBsaW5lLWhlaWdodDogMS41O1xuICAgICAgICBib3JkZXItdG9wOiAycHggc29saWQgJGZvcm0tYm9yZGVyLWNvbG9yO1xuICAgICAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkICRmb3JtLWJvcmRlci1jb2xvcjtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgJGZvcm0tYm9yZGVyLWNvbG9yO1xuXG4gICAgICAgICY6aG92ZXI6bm90KDpkaXNhYmxlZCk6bm90KFtyZWFkb25seV0pIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGZvcm0tZm9jdXMtYm9yZGVyLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRmb3JtLWZvY3VzLWJvcmRlci1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNlbGVjdCBzcGVjaWZpYyBzdHlsaW5nIChleGNsdWRpbmcgbXVsdGlzZWxlY3QpXG4gICAgc2VsZWN0LmZvcm0tY29udHJvbDpub3QoW211bHRpcGxlXSkge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi9pbWFnZXMvaWNvbnMvU1ZHL1VJL0ljb25BcnJvd0FjY29yZGlvbi0tRG93bi5zdmdcIik7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDAuNzVyZW0gY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDE2cHggMTJweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMi41cmVtO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRmb3JtLWJvcmRlci1jb2xvcjtcblxuICAgICAgICAvLyBSZW1vdmUgZGVmYXVsdCBhcnJvdyBpbiBJRVxuICAgICAgICAmOjotbXMtZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBIb3ZlciBzdGF0ZSBmb3Igc2VsZWN0XG4gICAgICAgICY6aG92ZXI6bm90KDpkaXNhYmxlZCk6bm90KFtyZWFkb25seV0pIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRmb3JtLWZvY3VzLWJvcmRlci1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEZvY3VzIHN0YXRlIGZvciBzZWxlY3RcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkZm9ybS1mb2N1cy1ib3JkZXItY29sb3I7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi8uLi9pbWFnZXMvaWNvbnMvU1ZHL1VJL0ljb25BcnJvd0FjY29yZGlvbi0tVXAuc3ZnXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSW52YWxpZCBzdGF0ZSAob25seSB3aXRoIGV4cGxpY2l0IGNsYXNzKVxuICAgICAgICAmLmlzLWludmFsaWQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGZvcm0tZXJyb3ItY29sb3I7XG5cbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRmb3JtLWVycm9yLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gVmFsaWQgc3RhdGUgKG9ubHkgd2l0aCBleHBsaWNpdCBjbGFzcylcbiAgICAgICAgJi5pcy12YWxpZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkZm9ybS1zdWNjZXNzLWNvbG9yO1xuXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkZm9ybS1zdWNjZXNzLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vKipcbiAqIEZvcm0gQ2hlY2tzIE1peGluIChSYWRpbyAmIENoZWNrYm94KVxuICovXG5AbWl4aW4gZm9ybS1jaGVja3MoKSB7XG4gICAgLmZvcm0tY2hlY2sge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWluLWhlaWdodDogMS41cmVtO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDJyZW07XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIC8vIEZvcm0gY2hlY2sgaW5wdXQgKHJhZGlvICYgY2hlY2tib3gpXG4gICAgICAgIC5mb3JtLWNoZWNrLWlucHV0LFxuICAgICAgICBbdHlwZT1cImNoZWNrYm94XCJdLFxuICAgICAgICBbdHlwZT1cInJhZGlvXCJdIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB0b3A6IDAuMjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmb3JtLWJnLWNvbG9yO1xuICAgICAgICAgICAgYm9yZGVyOiAkYm9yZGVyLXdpZHRoIHNvbGlkICRmb3JtLWJvcmRlci1jb2xvcjtcbiAgICAgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3IgJHRyYW5zaXRpb24tZHVyYXRpb24gJHRyYW5zaXRpb24tZWFzaW5nLFxuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvciAkdHJhbnNpdGlvbi1kdXJhdGlvbiAkdHJhbnNpdGlvbi1lYXNpbmcsXG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdyAkdHJhbnNpdGlvbi1kdXJhdGlvbiAkdHJhbnNpdGlvbi1lYXNpbmc7XG5cbiAgICAgICAgICAgIC8vIEVuc3VyZSBtaW5pbXVtIHRvdWNoIHRhcmdldCBzaXplXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICRtaW4tdG91Y2gtc2l6ZTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICRtaW4tdG91Y2gtc2l6ZTtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6ICRtaW4tdG91Y2gtc2l6ZTtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAkbWluLXRvdWNoLXNpemU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIEhvdmVyIHN0YXRlXG4gICAgICAgICAgICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRmb3JtLWZvY3VzLWJvcmRlci1jb2xvcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gRm9jdXMgc3RhdGVcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGZvcm0tZm9jdXMtYm9yZGVyLWNvbG9yO1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgJG91dGxpbmUtd2lkdGggcmdiYSgkZm9ybS1mb2N1cy1ib3JkZXItY29sb3IsIDAuMjUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBDaGVja2VkIHN0YXRlXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmb3JtLWZvY3VzLWJvcmRlci1jb2xvcjtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRmb3JtLWZvY3VzLWJvcmRlci1jb2xvcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gRGlzYWJsZWQgc3RhdGVcbiAgICAgICAgICAgICY6ZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmb3JtLWRpc2FibGVkLWJnLWNvbG9yO1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGZvcm0tZGlzYWJsZWQtdGV4dC1jb2xvcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gSW52YWxpZCBzdGF0ZSAob25seSB3aXRoIGV4cGxpY2l0IGNsYXNzKVxuICAgICAgICAgICAgJi5pcy1pbnZhbGlkIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRmb3JtLWVycm9yLWNvbG9yO1xuXG4gICAgICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwICRvdXRsaW5lLXdpZHRoIHJnYmEoJGZvcm0tZXJyb3ItY29sb3IsIDAuMjUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENoZWNrYm94IHNwZWNpZmljIHN0eWxpbmdcbiAgICAgICAgLmZvcm0tY2hlY2staW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuICAgICAgICBbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcblxuICAgICAgICAgICAgLy8gQ2hlY2ttYXJrXG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMjAgMjAnJTNlJTNjcGF0aCBmaWxsPSdub25lJyBzdHJva2U9JyUyM2ZmZicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyBzdHJva2Utd2lkdGg9JzMnIGQ9J002IDEwbDMgMyA2LTYnLyUzZSUzYy9zdmclM2VcIik7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxcmVtIDFyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIEluZGV0ZXJtaW5hdGUgc3RhdGVcbiAgICAgICAgICAgICY6aW5kZXRlcm1pbmF0ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGZvcm0tZm9jdXMtYm9yZGVyLWNvbG9yO1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGZvcm0tZm9jdXMtYm9yZGVyLWNvbG9yO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMjAgMjAnJTNlJTNjcGF0aCBmaWxsPSdub25lJyBzdHJva2U9JyUyM2ZmZicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyBzdHJva2Utd2lkdGg9JzMnIGQ9J002IDEwaDgnLyUzZSUzYy9zdmclM2VcIik7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxcmVtIDFyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSYWRpbyBidXR0b24gc3BlY2lmaWMgc3R5bGluZ1xuICAgICAgICAuZm9ybS1jaGVjay1pbnB1dFt0eXBlPVwicmFkaW9cIl0sXG4gICAgICAgIFt0eXBlPVwicmFkaW9cIl0ge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuXG4gICAgICAgICAgICAvLyBSYWRpbyBkb3RcbiAgICAgICAgICAgICY6Y2hlY2tlZCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogJHJhZGlvLWNoZWNrZWQtaW1hZ2U7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxcmVtIDFyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBGb3JtIGNoZWNrIGxhYmVsXG4gICAgICAgIC5mb3JtLWNoZWNrLWxhYmVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGNvbG9yOiAkZm9ybS10ZXh0LWNvbG9yO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAgICAgLy8gRGlzYWJsZWQgc3RhdGVcbiAgICAgICAgICAgICYuZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkZm9ybS1kaXNhYmxlZC10ZXh0LWNvbG9yO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gSW5saW5lIGZvcm0gY2hlY2tzXG4gICAgLmZvcm0tY2hlY2staW5saW5lIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAgICAgQGluY2x1ZGUgYnAuYnJlYWtwb2ludCgnc20nKSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyoqXG4gKiBGb3JtIFZhbGlkYXRpb24gTWl4aW5cbiAqL1xuQG1peGluIGZvcm0tdmFsaWRhdGlvbigpIHtcbiAgICAvLyBGb3JtIHRleHQgKGhlbHAgdGV4dCwgZXJyb3IgbWVzc2FnZXMpXG4gICAgLmZvcm0tdGV4dCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjI1cmVtO1xuICAgICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgICBjb2xvcjogJGZvcm0tcGxhY2Vob2xkZXItY29sb3I7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG5cbiAgICAgICAgLy8gRXJyb3IgdGV4dFxuICAgICAgICAmLnRleHQtZGFuZ2VyLFxuICAgICAgICAmLmludmFsaWQtZmVlZGJhY2sge1xuICAgICAgICAgICAgY29sb3I6ICRmb3JtLWVycm9yLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU3VjY2VzcyB0ZXh0XG4gICAgICAgICYudGV4dC1zdWNjZXNzLFxuICAgICAgICAmLnZhbGlkLWZlZWRiYWNrIHtcbiAgICAgICAgICAgIGNvbG9yOiAkZm9ybS1zdWNjZXNzLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gSW52YWxpZCBmZWVkYmFjayAoZXJyb3IgbWVzc2FnZXMpXG4gICAgLmludmFsaWQtZmVlZGJhY2sge1xuICAgICAgICBkaXNwbGF5OiBub25lOyAvLyBJbml0aWFsbHkgaGlkZGVuXG4gICAgICAgIG1hcmdpbi10b3A6IDAuMjVyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgIGNvbG9yOiAkZm9ybS10ZXh0LWNvbG9yO1xuICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjI1cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRmb3JtLXRleHQtY29sb3I7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDE2JyUzZSUzY3BhdGggZmlsbD0nJTIzMDAwJyBkPSdNMi4xNDYgMi44NTRhLjUuNSAwIDEgMSAuNzA4LS43MDhMOCA3LjI5M2w1LjE0Ni01LjE0N2EuNS41IDAgMCAxIC43MDguNzA4TDguNzA3IDhsNS4xNDcgNS4xNDZhLjUuNSAwIDAgMS0uNzA4LjcwOEw4IDguNzA3bC01LjE0NiA1LjE0N2EuNS41IDAgMCAxLS43MDgtLjcwOEw3LjI5MyA4IDIuMTQ2IDIuODU0WicvJTNlJTNjL3N2ZyUzZVwiKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiA3NSUgNzUlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgYm9yZGVyOiAzcHggc29saWQgJGZvcm0tZXJyb3ItY29sb3I7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gT25seSBzaG93IHdoZW4gcGFyZW50IGhhcyBpbnZhbGlkIGZpZWxkXG4gICAgICAgIC5mb3JtLWNvbnRyb2wuaXMtaW52YWxpZH4mLFxuICAgICAgICAuZm9ybS1jaGVjay1pbnB1dC5pcy1pbnZhbGlkfiYge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBWYWxpZCBmZWVkYmFjayAoc3VjY2VzcyBtZXNzYWdlcylcbiAgICAudmFsaWQtZmVlZGJhY2sge1xuICAgICAgICBkaXNwbGF5OiBub25lOyAvLyBJbml0aWFsbHkgaGlkZGVuXG4gICAgICAgIG1hcmdpbi10b3A6IDAuMjVyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgIGNvbG9yOiAkZm9ybS1zdWNjZXNzLWNvbG9yO1xuICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuXG4gICAgICAgIC8vIE9ubHkgc2hvdyB3aGVuIHBhcmVudCBoYXMgdmFsaWQgZmllbGRcbiAgICAgICAgLmZvcm0tY29udHJvbC5pcy12YWxpZH4mLFxuICAgICAgICAuZm9ybS1jaGVjay1pbnB1dC5pcy12YWxpZH4mIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gVmFsaWRhdGlvbiBTdW1tYXJ5IFN0eWxlc1xuICAgIC52YWxpZGF0aW9uLXN1bW1hcnkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMS4yNXJlbTtcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgJGZvcm0tZXJyb3ItY29sb3I7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWNvbG9yLWVycm9yLCAje2NvbG9ycy4kY29sb3ItZXJyb3J9KSA1JSwgdmFyKC0tY29sb3Itd2hpdGUsICN7Y29sb3JzLiRjb2xvci13aGl0ZX0pKTtcblxuICAgICAgICBAaW5jbHVkZSBicC5icmVha3BvaW50KCdzbScpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDEuMjVyZW0gMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmFsZXJ0LWhlYWRpbmcge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgMC43NXJlbSAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICBjb2xvcjogJGZvcm0tZXJyb3ItY29sb3I7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4zO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicC5icmVha3BvaW50KCdzbScpIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYWxlcnQtbWVzc2FnZSB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCAxcmVtIDA7XG4gICAgICAgICAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tY29sb3ItZXJyb3IsICN7Y29sb3JzLiRjb2xvci1lcnJvcn0pIDg1JSwgYmxhY2spO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnAuYnJlYWtwb2ludCgnc20nKSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gVmFsaWRhdGlvbiBTdW1tYXJ5IExpc3RcbiAgICAudmFsaWRhdGlvbi1zdW1tYXJ5LWxpc3Qge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgICAgICAgLnZhbGlkYXRpb24tc3VtbWFyeS1pdGVtIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMS41cmVtO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBFcnJvciBpY29uXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMC4ycmVtO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxcmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDE2JyUzZSUzY3BhdGggZmlsbD0nJTIzZGMzNTQ1JyBkPSdNOCAxNUE3IDcgMCAxIDEgOCAxYTcgNyAwIDAgMSAwIDE0em0wIDFBOCA4IDAgMSAwIDggMGE4IDggMCAwIDAgMCAxNnonLyUzZSUzY3BhdGggZmlsbD0nJTIzZGMzNTQ1JyBkPSdNNy4wMDIgMTFhMSAxIDAgMSAxIDIgMCAxIDEgMCAwIDEtMiAwek03LjEgNC45OTVhLjkwNS45MDUgMCAxIDEgMS44IDBsLS4zNSAzLjUwN2EuNTUyLjU1MiAwIDAgMS0xLjEgMEw3LjEgNC45OTV6Jy8lM2UlM2Mvc3ZnJTNlXCIpO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgICAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGZvcm0tZXJyb3ItY29sb3I7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAkdHJhbnNpdGlvbi1kdXJhdGlvbiAkdHJhbnNpdGlvbi1lYXNpbmc7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWNvbG9yLWVycm9yLCAje2NvbG9ycy4kY29sb3ItZXJyb3J9KSA4NSUsIGJsYWNrKTtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgICAgICAgICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCAkZm9ybS1mb2N1cy1ib3JkZXItY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBbmltYXRpb24gZm9yIHZhbGlkYXRpb24gc3VtbWFyeVxuICAgIC52YWxpZGF0aW9uLXN1bW1hcnkge1xuICAgICAgICBhbmltYXRpb246IHNsaWRlSW5Gcm9tVG9wIDAuM3MgZWFzZS1vdXQ7XG5cbiAgICAgICAgQGtleWZyYW1lcyBzbGlkZUluRnJvbVRvcCB7XG4gICAgICAgICAgICBmcm9tIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0byB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qKlxuICogRm9ybSBMYXlvdXQgTWl4aW4gKEZsb2F0aW5nLCBHcm91cHMsIEFjdGlvbnMpXG4gKi9cbkBtaXhpbiBmb3JtLWxheW91dCgpIHtcbiAgICAvLyBGb3JtIGZsb2F0aW5nIGxhYmVscyAoaWYgbmVlZGVkKVxuICAgIC5mb3JtLWZsb2F0aW5nIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIC5mb3JtLWNvbnRyb2wge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwLjc1cmVtIDAuNXJlbTtcblxuICAgICAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICY6bm90KDpwbGFjZWhvbGRlci1zaG93bikge1xuICAgICAgICAgICAgICAgIH5sYWJlbCB7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNjU7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC44NSkgdHJhbnNsYXRlWSgtMC41cmVtKSB0cmFuc2xhdGVYKDAuMTVyZW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgYm9yZGVyOiAkYm9yZGVyLXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgICAgICAgICBvcGFjaXR5ICR0cmFuc2l0aW9uLWR1cmF0aW9uICR0cmFuc2l0aW9uLWVhc2luZyxcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm0gJHRyYW5zaXRpb24tZHVyYXRpb24gJHRyYW5zaXRpb24tZWFzaW5nO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gRm9ybSBncm91cHMgZm9yIHNwYWNpbmdcbiAgICAuZm9ybS1ncm91cCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDNyZW07XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBGb3JtIHNlY3Rpb25zXG4gICAgLmZvcm0tc2VjdGlvbiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBoMiwgaDMsIGg0IHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgICAgICBjb2xvcjogJGZvcm0tdGV4dC1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5yZXF1aXJlZCB7XG4gICAgICAgICAgICBjb2xvcjogJGZvcm0tZXJyb3ItY29sb3I7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gRm9ybSBhY3Rpb25zIChidXR0b25zKVxuICAgIC5mb3JtLWFjdGlvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6IDFyZW07XG4gICAgICAgIG1hcmdpbi10b3A6IDJyZW07XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgICAgICBAaW5jbHVkZSBicC5icmVha3BvaW50KCdzbScpIHtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmJ0biB7XG4gICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAxMjBweDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnAuYnJlYWtwb2ludCgnc20nKSB7XG4gICAgICAgICAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qKlxuICogRm9ybSBBY2Nlc3NpYmlsaXR5IE1peGluXG4gKi9cbkBtaXhpbiBmb3JtLWFjY2Vzc2liaWxpdHkoKSB7XG4gICAgLy8gUmVkdWNlZCBtb3Rpb24gc3VwcG9ydFxuICAgIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgICAgIC5mb3JtLWNvbnRyb2wsXG4gICAgICAgIC5mb3JtLWNoZWNrLWlucHV0LFxuICAgICAgICAuZm9ybS1mbG9hdGluZyBsYWJlbCB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gSGlnaCBjb250cmFzdCBtb2RlIHN1cHBvcnRcbiAgICBAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkge1xuICAgICAgICAuZm9ybS1jb250cm9sLFxuICAgICAgICAuZm9ybS1jaGVjay1pbnB1dCB7XG4gICAgICAgICAgICBib3JkZXItd2lkdGg6IDJweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC52YWxpZGF0aW9uLXN1bW1hcnkge1xuICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgQnV0dG9uVGV4dDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IEJ1dHRvbkZhY2U7XG5cbiAgICAgICAgICAgIC52YWxpZGF0aW9uLXN1bW1hcnktaXRlbTo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIEJ1dHRvblRleHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gUHJpbnQgc3R5bGVzXG4gICAgQG1lZGlhIHByaW50IHtcbiAgICAgICAgLmZvcm0tY29udHJvbCxcbiAgICAgICAgLmZvcm0tY2hlY2staW5wdXQge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2sgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC52YWxpZGF0aW9uLXN1bW1hcnkge1xuICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgYmxhY2sgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgICAgIC5hbGVydC1oZWFkaW5nLFxuICAgICAgICAgICAgLmFsZXJ0LW1lc3NhZ2UsXG4gICAgICAgICAgICAudmFsaWRhdGlvbi1zdW1tYXJ5LWl0ZW0gYSB7XG4gICAgICAgICAgICAgICAgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC52YWxpZGF0aW9uLXN1bW1hcnktaXRlbTo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qKlxuICogTWFpbiBmb3JtLWNvbXBvbmVudHMgbWl4aW4gLSBCQUNLV0FSRFMgQ09NUEFUSUJMRVxuICogSW5jbHVkZXMgYWxsIGZvcm0gc3R5bGluZyBjb21wb25lbnRzXG4gKi9cbkBtaXhpbiBmb3JtLWNvbXBvbmVudHMoKSB7XG4gICAgQGluY2x1ZGUgZm9ybS1sYWJlbHMoKTtcbiAgICBAaW5jbHVkZSBmb3JtLWNvbnRyb2xzKCk7XG4gICAgQGluY2x1ZGUgZm9ybS1jaGVja3MoKTtcbiAgICBAaW5jbHVkZSBmb3JtLXZhbGlkYXRpb24oKTtcbiAgICBAaW5jbHVkZSBmb3JtLWxheW91dCgpO1xuICAgIEBpbmNsdWRlIGZvcm0tYWNjZXNzaWJpbGl0eSgpO1xufVxuIiwiLy8gYXNzZXRzL3Njc3MvZ2xvYmFsL19mb250cy5zY3NzXG5cbi8qIGFsZW8tNjAwIC0gbGF0aW4gKi9cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgICBmb250LWZhbWlseTogJ0FsZW8nO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHNyYzogdXJsKCcuLi8uLi9mb250cy9hbGVvLzYwMC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTtcbiAgICAvKiBDaHJvbWUgMzYrLCBPcGVyYSAyMyssIEZpcmVmb3ggMzkrLCBTYWZhcmkgMTIrLCBpT1MgMTArICovXG59XG5cbi8qIHJvb25leSA2MDAgLSBsYXRpbiAqL1xuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICAgIGZvbnQtZmFtaWx5OiAnUm9vbmV5JztcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBzcmM6IHVybCgnLi4vLi4vZm9udHMvcm9vbmV5LzYwMC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTtcbiAgICAvKiBDaHJvbWUgMzYrLCBPcGVyYSAyMyssIEZpcmVmb3ggMzkrLCBTYWZhcmkgMTIrLCBpT1MgMTArICovXG59XG5cbi8qIGNhbGlicmkgZm9udCBmYW1pbHkgKi9cblxuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICAgIGZvbnQtZmFtaWx5OiAnQ2FsaWJyaSc7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgc3JjOiB1cmwoJy4uLy4uL2ZvbnRzL2NhbGlicmkvMzAwLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpO1xuICAgIC8qIENocm9tZSAzNissIE9wZXJhIDIzKywgRmlyZWZveCAzOSssIFNhZmFyaSAxMissIGlPUyAxMCsgKi9cbn1cblxuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICAgIGZvbnQtZmFtaWx5OiAnQ2FsaWJyaSc7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgc3JjOiB1cmwoJy4uLy4uL2ZvbnRzL2NhbGlicmkvMzAwaS53b2ZmMicpIGZvcm1hdCgnd29mZjInKTtcbiAgICAvKiBDaHJvbWUgMzYrLCBPcGVyYSAyMyssIEZpcmVmb3ggMzkrLCBTYWZhcmkgMTIrLCBpT1MgMTArICovXG59XG5cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgICBmb250LWZhbWlseTogJ0NhbGlicmknO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIHNyYzogdXJsKCcuLi8uLi9mb250cy9jYWxpYnJpLzQwMC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTtcbiAgICAvKiBDaHJvbWUgMzYrLCBPcGVyYSAyMyssIEZpcmVmb3ggMzkrLCBTYWZhcmkgMTIrLCBpT1MgMTArICovXG59XG5cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgICBmb250LWZhbWlseTogJ0NhbGlicmknO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIHNyYzogdXJsKCcuLi8uLi9mb250cy9jYWxpYnJpLzQwMGkud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7XG4gICAgLyogQ2hyb21lIDM2KywgT3BlcmEgMjMrLCBGaXJlZm94IDM5KywgU2FmYXJpIDEyKywgaU9TIDEwKyAqL1xufVxuXG5AZm9udC1mYWNlIHtcbiAgICBmb250LWRpc3BsYXk6IHN3YXA7XG4gICAgZm9udC1mYW1pbHk6ICdDYWxpYnJpJztcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBzcmM6IHVybCgnLi4vLi4vZm9udHMvY2FsaWJyaS83MDAud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7XG4gICAgLyogQ2hyb21lIDM2KywgT3BlcmEgMjMrLCBGaXJlZm94IDM5KywgU2FmYXJpIDEyKywgaU9TIDEwKyAqL1xufVxuXG5AZm9udC1mYWNlIHtcbiAgICBmb250LWRpc3BsYXk6IHN3YXA7XG4gICAgZm9udC1mYW1pbHk6ICdDYWxpYnJpJztcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBzcmM6IHVybCgnLi4vLi4vZm9udHMvY2FsaWJyaS83MDBpLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpO1xuICAgIC8qIENocm9tZSAzNissIE9wZXJhIDIzKywgRmlyZWZveCAzOSssIFNhZmFyaSAxMissIGlPUyAxMCsgKi9cbn1cblxuXG4vKipcbiAqIEZvbnQgZmFtaWx5IGRlZmluaXRpb25zIGZvciBjb25zaXN0ZW50IHVzYWdlIGFjcm9zcyB0aGUgcHJvamVjdFxuICogVGhlc2UgdmFyaWFibGVzIGNhbiBiZSB1c2VkIGluIGFueSBmaWxlIHRoYXQgaW1wb3J0cyB0aGlzIG1vZHVsZVxuICovXG5cblxuLy8gRm9udCBmYW1pbGllc1xuJGZvbnQtZmFtaWx5LXByaW1hcnk6ICdSb29uZXknLCBzZXJpZiAhZGVmYXVsdDsgLy8gRGVmYXVsdCBoZWFkbGluZVxuJGZvbnQtZmFtaWx5LXNlY29uZGFyeTogJ0NhbGlicmknLCBzYW5zLXNlcmlmICFkZWZhdWx0OyAvLyBCb2R5dGV4dFxuJGZvbnQtZmFtaWx5LWZhbGxiYWNrOiAnQWxlbycsIHNlcmlmICFkZWZhdWx0OyAvLyBGYWxsYmFjayBoZWFkbGluZVxuXG4vLyBTZW1hbnRpYyBmb250IGZhbWlsaWVzXG4kZm9udC1mYW1pbHktc2VyaWY6ICRmb250LWZhbWlseS1wcmltYXJ5ICFkZWZhdWx0O1xuJGZvbnQtZmFtaWx5LXNhbnMtc2VyaWY6ICRmb250LWZhbWlseS1zZWNvbmRhcnkgIWRlZmF1bHQ7XG5cbi8vIE5hdmlnYXRpb24gc3BlY2lmaWMgZm9udHMgKGlmIG5lZWRlZClcbiRmb250LWZhbWlseS1uYXZpZ2F0aW9uOiAkZm9udC1mYW1pbHktc2Vjb25kYXJ5ICFkZWZhdWx0O1xuXG4vLyBCdXR0b24gc3BlY2lmaWMgZm9udHMgKGlmIG5lZWRlZClcbiRmb250LWZhbWlseS1idXR0b25zOiAkZm9udC1mYW1pbHktc2Vjb25kYXJ5ICFkZWZhdWx0O1xuXG4uZm9udC1wcmltYXJ5IHtcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LXByaW1hcnk7XG59XG4uZm9udC1zZWNvbmRhcnkge1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktc2Vjb25kYXJ5LCBzYW5zLXNlcmlmO1xufVxuIiwiLy8gYXNzZXRzL3Njc3MvcGx1Z2lucy9jZV9qZmVldXJvcGVlcnNfdXNlcm1hcC5zY3NzXG5AdXNlICcuLi9jb21wb25lbnRzL2Zvcm0tY29tcG9uZW50cycgYXMgZm9ybS1jb21wb25lbnRzO1xuQHVzZSAnLi4vZ2xvYmFsL2NvbG9ycycgYXMgY29sb3JzO1xuQHVzZSAnLi4vZ2xvYmFsL2ZvbnRzJyBhcyBmb250cztcbkB1c2UgJy4uL2dsb2JhbC9icmVha3BvaW50cycgYXMgYnA7XG5cbi8vIEJsb2NrIGZvciBCRU0tTWV0aG9kb2xvZ3lcbiRibG9jazogJ2NlLWpmZWV1cm9wZWVyc191c2VybWFwJztcblxuLiN7JGJsb2NrfSB7XG4gICAgLy8gSW5jbHVkZSBzaGFyZWQgZm9ybSBzdHlsZXNcbiAgICBAaW5jbHVkZSBmb3JtLWNvbXBvbmVudHMuZm9ybS1jb21wb25lbnRzKCk7XG5cbiAgICAmX19tYXAtc2VjdGlvbiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgQGluY2x1ZGUgYnAuYnJlYWtwb2ludCgnbGcnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogRmlsdGVyIFNlY3Rpb24gKi9cbiAgICAmX19maWx0ZXItc2VjdGlvbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWpmZS1ncmF5LCBjb2xvcnMuJGNvbG9yLWpmZS1ncmF5KTtcbiAgICAgICAgcGFkZGluZzogMS41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1qZmUtZ3JheS1kYXJrLCBjb2xvcnMuJGNvbG9yLWpmZS1ncmF5LWRhcmspO1xuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICBAaW5jbHVkZSBicC5icmVha3BvaW50KCdsZycpIHtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jb2xvci1qZmUtZ3JheS1kYXJrLCBjb2xvcnMuJGNvbG9yLWpmZS1ncmF5LWRhcmspO1xuICAgICAgICB9XG4gICAgICAgIGgzIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItYmxhY2ssIGNvbG9ycy4kY29sb3ItYmxhY2spO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogRm9ybSBTdHlsaW5nIC0gZXh0ZW5kaW5nIGZvcm0tY29tcG9uZW50cyAqL1xuICAgIC51c2VyLXNlYXJjaC1mb3JtIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiAxcmVtO1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcblxuICAgICAgICBAaW5jbHVkZSBicC5icmVha3BvaW50KCdsZycpIHtcbiAgICAgICAgICAgIHdpZHRoOiAyNDBweDtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBicC5icmVha3BvaW50KCcyeGwnKSB7XG4gICAgICAgICAgICB3aWR0aDogMzIwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUWVBPMyBGbHVpZCB3cmFwcyBoaWRkZW4gZmllbGRzIGluIGZpcnN0IGRpdlxuICAgICAgICAvLyBSZW1vdmUgdGhpcyB3cmFwcGVyIGZyb20gZ3JpZCBmbG93IHRvIHByZXZlbnQgZW1wdHkgZ3JpZCBjZWxsXG4gICAgICAgID5kaXY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgZGlzcGxheTogY29udGVudHM7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBFbnN1cmUgYWxsIHZpc2libGUgZm9ybSBmaWVsZHMgYXJlIHByb3Blcmx5IHN0eWxlZFxuICAgICAgICA+ZGl2Om5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB9XG5cbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItYmxhY2ssIGNvbG9ycy4kY29sb3ItYmxhY2spO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm0tY29udHJvbCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLyogUmFkaXVzIFNsaWRlciBTdHlsaW5nICovXG4gICAgLnJhZGl1cy1zbGlkZXItY29udGFpbmVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAwLjVyZW07XG4gICAgICAgIG1pbi13aWR0aDogMjAwcHg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ibGFjaywgY29sb3JzLiRjb2xvci1ibGFjayk7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgI3JhZGl1cy12YWx1ZSB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSwgY29sb3JzLiRjb2xvci1qZmUtbGlnaHRibHVlKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBDdXN0b20gU2xpZGVyIENvbXBvbmVudHMgKi9cbiAgICAuY3VzdG9tLXNsaWRlci10cmFjayB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgaGVpZ2h0OiA2cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWpmZS1ncmF5LWRhcmssIGNvbG9ycy4kY29sb3ItamZlLWdyYXktZGFyayk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgICAgbWFyZ2luOiAwLjYyNXJlbSAwO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIH1cblxuICAgIC5jdXN0b20tc2xpZGVyLWZpbGwge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsXG4gICAgICAgICAgICAgICAgdmFyKC0tY29sb3ItcHJpbWFyeSwgY29sb3JzLiRjb2xvci1qZmUtbGlnaHRibHVlKSAwJSxcbiAgICAgICAgICAgICAgICBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tY29sb3ItcHJpbWFyeSwgY29sb3JzLiRjb2xvci1qZmUtbGlnaHRibHVlKSA4NSUsIGJsYWNrKSAxMDAlKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjFzIGVhc2U7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cblxuICAgIC5jdXN0b20tc2xpZGVyLXRodW1iIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZyxcbiAgICAgICAgICAgICAgICB2YXIoLS1jb2xvci1wcmltYXJ5LCBjb2xvcnMuJGNvbG9yLWpmZS1saWdodGJsdWUpIDAlLFxuICAgICAgICAgICAgICAgIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jb2xvci1wcmltYXJ5LCBjb2xvcnMuJGNvbG9yLWpmZS1saWdodGJsdWUpIDg1JSwgYmxhY2spIDEwMCUpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICBjdXJzb3I6IGdyYWI7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWNvbG9yLXdoaXRlLCBjb2xvcnMuJGNvbG9yLXdoaXRlKTtcbiAgICAgICAgei1pbmRleDogMTA7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSgxLjEpO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAzcHggOHB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuZHJhZ2dpbmcge1xuICAgICAgICAgICAgY3Vyc29yOiBncmFiYmluZztcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHNjYWxlKDEuMTUpO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1jb2xvci1wcmltYXJ5LCBjb2xvcnMuJGNvbG9yLWpmZS1saWdodGJsdWUpO1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zbGlkZXItbGFiZWxzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBmb250LXNpemU6IDAuNjg3NXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWpmZS1ncmF5LWRhcmtlciwgY29sb3JzLiRjb2xvci1qZmUtZ3JheS1kYXJrZXIpO1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjI1cmVtO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBIaWRlIHRoZSBoaWRkZW4gZmllbGQgKi9cbiAgICAjcmFkaXVzLWhpZGRlbi1maWVsZCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLyogTWFwIGFuZCBTaWRlYmFyIExheW91dCAqL1xuICAgICZfX21hcC1zaWRlYmFyLWNvbnRhaW5lciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGdhcDogMDtcbiAgICAgICAgaGVpZ2h0OiA3MDBweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWpmZS1ncmF5LWRhcmssIGNvbG9ycy4kY29sb3ItamZlLWdyYXktZGFyayk7XG4gICAgfVxuXG4gICAgJl9fbWFwLWNvbnRhaW5lciB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWluLXdpZHRoOiA0MDBweDtcbiAgICB9XG5cbiAgICAjbWFwIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAmX19tYXAtY29udHJvbHMge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogMTBweDtcbiAgICAgICAgbGVmdDogMTBweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiAwLjVyZW07XG4gICAgICAgIHotaW5kZXg6IDEwO1xuXG4gICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWJsYWNrLCBjb2xvcnMuJGNvbG9yLWJsYWNrKTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWpmZS1ncmF5LWRhcmssIGNvbG9ycy4kY29sb3ItamZlLWdyYXktZGFyayk7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMzc1cmVtO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig1cHgpO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDM2cHg7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXdoaXRlLCBjb2xvcnMuJGNvbG9yLXdoaXRlKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAycHggNnB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1jb2xvci1wcmltYXJ5LCBjb2xvcnMuJGNvbG9yLWpmZS1saWdodGJsdWUpO1xuICAgICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBVc2VyIFNpZGViYXIgU3R5bGluZyAqL1xuICAgICZfX3VzZXItc2lkZWJhciB7XG4gICAgICAgIG1pbi13aWR0aDogNDIwcHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlLCBjb2xvcnMuJGNvbG9yLXdoaXRlKTtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1qZmUtZ3JheS1kYXJrLCBjb2xvcnMuJGNvbG9yLWpmZS1ncmF5LWRhcmspO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjNzIGVhc2U7XG5cbiAgICAgICAgJi5oaWRkZW4ge1xuICAgICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgYnAuYnJlYWtwb2ludCgnbWQnKSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDQwdnc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zaWRlYmFyLWhlYWRlciB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlLCBjb2xvcnMuJGNvbG9yLXdoaXRlKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnksIGNvbG9ycy4kY29sb3ItamZlLWxpZ2h0Ymx1ZSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAgICAgZm9udC1mYW1pbHk6IGZvbnRzLiRmb250LWZhbWlseS1wcmltYXJ5O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jb2xvci1qZmUtZ3JheS1kYXJrLCBjb2xvcnMuJGNvbG9yLWpmZS1ncmF5LWRhcmspO1xuICAgIH1cblxuICAgICZfX3NpZGViYXItY29udGVudCB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgfVxuXG4gICAgJl9fdXNlci1jYXJkIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3Itd2hpdGUsIGNvbG9ycy4kY29sb3Itd2hpdGUpO1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY29sb3ItamZlLWdyYXktZGFyaywgY29sb3JzLiRjb2xvci1qZmUtZ3JheS1kYXJrKTtcbiAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC43NXJlbTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDFyZW07XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LCBjb2xvcnMuJGNvbG9yLWpmZS1saWdodGJsdWUpO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSwgY29sb3JzLiRjb2xvci1qZmUtbGlnaHRibHVlKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jb2xvci1wcmltYXJ5LCBjb2xvcnMuJGNvbG9yLWpmZS1saWdodGJsdWUpIDUlLCB3aGl0ZSk7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVXNlciBjYXJkIGltYWdlXG4gICAgICAgICYtaW1hZ2Uge1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLWltYWdlLXdyYXBwZXIge1xuICAgICAgICAgICAgd2lkdGg6IDEwMHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAmLXByb2ZpbGUtaW1hZ2Uge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAvLyBGYWxsYmFjayBzdHlsaW5nIGZvciB1c2VycyB3aXRob3V0IGltYWdlXG4gICAgICAgICAgICAmLS1mYWxsYmFjayB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSwgY29sb3JzLiRjb2xvci1qZmUtbGlnaHRibHVlKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG5cbiAgICAgICAgICAgICAgICBpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gVXNlciBjYXJkIGNvbnRlbnRcbiAgICAgICAgJi1jb250ZW50IHtcbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDA7IC8vIEFsbG93IHRleHQgdHJ1bmNhdGlvblxuICAgICAgICB9XG5cbiAgICAgICAgaDQuI3skYmxvY2t9X191c2VyLWNhcmQtaGVhZGxpbmUge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgMC41cmVtIDA7XG4gICAgICAgICAgICBmb250LWZhbWlseTogZm9udHMuJGZvbnQtZmFtaWx5LXByaW1hcnk7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgcCB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCAuNXJlbSAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcblxuICAgICAgICAgICAgJi5jaXR5LWluZm8ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBnYXA6IDAuMjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuI3skYmxvY2t9X191c2VyLWNhcmQtaW50ZXJlc3RzLFxuICAgICAgICAuI3skYmxvY2t9X191c2VyLWNhcmQtZGV0YWlscyB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCAuNXJlbSAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ibGFjaywgY29sb3JzLiRjb2xvci1ibGFjayk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS43NTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJwLmJyZWFrcG9pbnQoJ21kJykge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNDBjaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN0cm9uZyB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWJsYWNrLCBjb2xvcnMuJGNvbG9yLWJsYWNrKTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYSwgYnV0dG9uIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ibGFjaywgY29sb3JzLiRjb2xvci1ibGFjayk7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICAgICAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcblxuICAgICAgICAgICAgLiN7JGJsb2NrfV9fdXNlci1jYXJkLWxpbmtsYWJlbCB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICAgICAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiA0cHg7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiB2YXIoLS1jb2xvci1zZWNvbmRhcnksIGNvbG9ycy4kY29sb3ItamZlLXllbGxvdyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcblxuICAgICAgICAgICAgICAgIC4jeyRibG9ja31fX3VzZXItY2FyZC1saW5rbGFiZWwge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiB2YXIoLS1jb2xvci1ibGFjaywgY29sb3JzLiRjb2xvci1ibGFjayk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tY29sb3ItcHJpbWFyeSwgY29sb3JzLiRjb2xvci1qZmUtbGlnaHRibHVlKTtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMnB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX191c2VyLWNhcmQtYWN0aW9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGdhcDogLjI1cmVtO1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBAaW5jbHVkZSBicC5icmVha3BvaW50KCd4bCcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBnYXA6IDFyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19uby11c2VycyB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMnJlbSAxcmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItamZlLWdyYXktZGFya2VyLCBjb2xvcnMuJGNvbG9yLWpmZS1ncmF5LWRhcmtlcik7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICB9XG5cbiAgICAuZ20tdWktaG92ZXItZWZmZWN0IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgfVxuXG4gICAgLyogQ3VzdG9tIEluZm8gV2luZG93ICovXG4gICAgLmN1c3RvbS1pbmZvLXdpbmRvdyB7XG4gICAgICAgIG1heC13aWR0aDogMjgwcHg7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG5cbiAgICAgICAgaDMge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgMC42MjVyZW0gMDtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ibGFjaywgY29sb3JzLiRjb2xvci1ibGFjayk7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHAge1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItYmxhY2ssIGNvbG9ycy4kY29sb3ItYmxhY2spO1xuICAgICAgICB9XG5cbiAgICAgICAgYSwgYnV0dG9uIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICAgICAgICAgICAgPiBzcGFuIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgICAgICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDRweDtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb24tY29sb3I6IHZhcigtLWNvbG9yLXNlY29uZGFyeSwgY29sb3JzLiRjb2xvci1qZmUteWVsbG93KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xuICAgICAgICAgICAgICAgID4gc3BhbiB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDRweDtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiB2YXIoLS1jb2xvci1ibGFjaywgY29sb3JzLiRjb2xvci1ibGFjayk7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICAuY2l0eS1pbmZvIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZ2FwOiAwLjMxMjVyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBSZXNwb25zaXZlIERlc2lnbiAqL1xuICAgIEBpbmNsdWRlIGJwLmJyZWFrcG9pbnQtZG93bignbWQnKSB7XG4gICAgICAgICZfX21hcC1zaWRlYmFyLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fdXNlci1zaWRlYmFyIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogNDAwcHg7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1qZmUtZ3JheS1kYXJrLCBjb2xvcnMuJGNvbG9yLWpmZS1ncmF5LWRhcmspO1xuXG4gICAgICAgICAgICAmLmhpZGRlbiB7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fbWFwLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDQwMHB4O1xuICAgICAgICAgICAgbWluLXdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgLnVzZXItc2VhcmNoLWZvcm0ge1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICAgICAgICBnYXA6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAucmFkaXVzLXNsaWRlci1jb250YWluZXIge1xuICAgICAgICAgICAgbWluLXdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBTY3JvbGxiYXIgU3R5bGluZyAqL1xuICAgICZfX3NpZGViYXItY29udGVudCB7XG4gICAgICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgICAgICAgIHdpZHRoOiA2cHg7XG4gICAgICAgIH1cblxuICAgICAgICAmOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1qZmUtZ3JheSwgY29sb3JzLiRjb2xvci1qZmUtZ3JheSk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1qZmUtZ3JheS1kYXJrLCBjb2xvcnMuJGNvbG9yLWpmZS1ncmF5LWRhcmspO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1qZmUtZ3JheS1kYXJrZXIsIGNvbG9ycy4kY29sb3ItamZlLWdyYXktZGFya2VyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIEFjY2Vzc2liaWxpdHkgaW1wcm92ZW1lbnRzICovXG4gICAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcblxuICAgICAgICAuY3VzdG9tLXNsaWRlci10aHVtYixcbiAgICAgICAgJl9fdXNlci1jYXJkLFxuICAgICAgICAmX19tYXAtY29udHJvbHMgYnV0dG9uLFxuICAgICAgICAudXNlci1zZWFyY2gtZm9ybSBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvLyBBVVRPLUdFTkVSQVRFRCBGSUxFIGZyb20gYnVpbGQtYnJlYWtwb2ludHMuanNcbi8vIERPIE5PVCBFRElUIERJUkVDVExZXG5cbi8vIEltcG9ydCBTYXNzIG1hcCBtb2R1bGVcbkB1c2UgXCJzYXNzOm1hcFwiO1xuXG4vLyBCcmVha3BvaW50IHZhbHVlc1xuJGJyZWFrcG9pbnQtc206IDY0MHB4O1xuJGJyZWFrcG9pbnQtbWQ6IDc2OHB4O1xuJGJyZWFrcG9pbnQtbGc6IDEwMjRweDtcbiRicmVha3BvaW50LXhsOiAxMjgwcHg7XG4kYnJlYWtwb2ludC0yeGw6IDE1MzZweDtcblxuLy8gTWFwIGZvciBwcm9ncmFtbWF0aWMgYWNjZXNzXG4kYnJlYWtwb2ludHM6IChcbiAgJ3NtJzogJGJyZWFrcG9pbnQtc20sXG4gICdtZCc6ICRicmVha3BvaW50LW1kLFxuICAnbGcnOiAkYnJlYWtwb2ludC1sZyxcbiAgJ3hsJzogJGJyZWFrcG9pbnQteGwsXG4gICcyeGwnOiAkYnJlYWtwb2ludC0yeGxcbik7XG5cbi8vIE1peGluIGZvciBlYXN5IG1lZGlhIHF1ZXJpZXMgYmFzZWQgb24gZGVmaW5lZCBicmVha3BvaW50c1xuQG1peGluIGJyZWFrcG9pbnQoJHBvaW50KSB7XG4gIEBpZiBtYXAuaGFzLWtleSgkYnJlYWtwb2ludHMsICRwb2ludCkge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiBtYXAuZ2V0KCRicmVha3BvaW50cywgJHBvaW50KSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAd2FybiBcIkJyZWFrcG9pbnQgJyN7JHBvaW50fScgaXMgbm90IGRlZmluZWQgaW4gJGJyZWFrcG9pbnRzIG1hcC5cIjtcbiAgfVxufVxuXG4vLyBNaXhpbiBmb3IgbWF4LXdpZHRoIG1lZGlhIHF1ZXJpZXMgKHNtYWxsZXIgdGhhbiBhIGJyZWFrcG9pbnQpXG5AbWl4aW4gYnJlYWtwb2ludC1kb3duKCRwb2ludCkge1xuICBAaWYgbWFwLmhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkcG9pbnQpIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogbWFwLmdldCgkYnJlYWtwb2ludHMsICRwb2ludCkgLSAxcHgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gXCJCcmVha3BvaW50ICcjeyRwb2ludH0nIGlzIG5vdCBkZWZpbmVkIGluICRicmVha3BvaW50cyBtYXAuXCI7XG4gIH1cbn1cblxuLy8gTWl4aW4gZm9yIGNyZWF0aW5nIHN0eWxlcyBiZXR3ZWVuIHR3byBicmVha3BvaW50c1xuQG1peGluIGJyZWFrcG9pbnQtYmV0d2VlbigkbWluLCAkbWF4KSB7XG4gIEBpZiBtYXAuaGFzLWtleSgkYnJlYWtwb2ludHMsICRtaW4pIGFuZCBtYXAuaGFzLWtleSgkYnJlYWtwb2ludHMsICRtYXgpIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogbWFwLmdldCgkYnJlYWtwb2ludHMsICRtaW4pKSBhbmQgKG1heC13aWR0aDogbWFwLmdldCgkYnJlYWtwb2ludHMsICRtYXgpIC0gMXB4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuIFwiQnJlYWtwb2ludCAnI3skbWlufScgb3IgJyN7JG1heH0nIGlzIG5vdCBkZWZpbmVkIGluICRicmVha3BvaW50cyBtYXAuXCI7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=*/