/*!**********************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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/sass-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[3]!./assets/sass/pages/contact.scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************/
:root {
  --olive: #333b29;
  --olive-deep: #262d20;
  --rose: #daaa9b;
  --rose-deep: #bd7e66;
  --rose-soft: #ecd2c7;
  --cream: #efe7da;
  --cream-2: #e6dccb;
  --paper: #fbf6ec;
  --lemon: #e7b24c;
  --lemon-soft: #f1d49a;
  --sea: #9fb6bb;
  --ink: #3c4232;
  --ink-60: rgba(51, 59, 41, .7);
  --line: #dccfb8;
  --serif: "Cormorant Garamond", georgia, serif;
  --sans: "Jost", "Century Gothic", system-ui, sans-serif;
  --maxw: 1180px;
  --gutter: clamp(20px, 5vw, 64px);
  --ease: cubic-bezier(.22, .61, .36, 1);
  --sh-sm: 0 6px 18px rgba(51, 59, 41, .07);
  --sh-md: 0 16px 38px rgba(51, 59, 41, .11);
  --sh-lg: 0 30px 60px rgba(51, 59, 41, .16);
  --sh-img: 0 22px 50px rgba(38, 45, 32, .2); }


.breadcrumb-item + .breadcrumb-item::before {
  display: inline-block;
  font-style: normal;
  font-weight: 400;
  font-variant: normal;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }


.breadcrumb-item + .breadcrumb-item::before {
  font-family: "Font Awesome 6 Pro";
  font-weight: 300; }

:root {
  --olive: #333b29;
  --olive-deep: #262d20;
  --rose: #daaa9b;
  --rose-deep: #bd7e66;
  --rose-soft: #ecd2c7;
  --cream: #efe7da;
  --cream-2: #e6dccb;
  --paper: #fbf6ec;
  --lemon: #e7b24c;
  --lemon-soft: #f1d49a;
  --sea: #9fb6bb;
  --ink: #3c4232;
  --ink-60: rgba(51, 59, 41, .7);
  --line: #dccfb8;
  --serif: "Cormorant Garamond", georgia, serif;
  --sans: "Jost", "Century Gothic", system-ui, sans-serif;
  --maxw: 1180px;
  --gutter: clamp(20px, 5vw, 64px);
  --ease: cubic-bezier(.22, .61, .36, 1);
  --sh-sm: 0 6px 18px rgba(51, 59, 41, .07);
  --sh-md: 0 16px 38px rgba(51, 59, 41, .11);
  --sh-lg: 0 30px 60px rgba(51, 59, 41, .16);
  --sh-img: 0 22px 50px rgba(38, 45, 32, .2); }


.breadcrumb-item + .breadcrumb-item::before {
  display: inline-block;
  font-style: normal;
  font-weight: 400;
  font-variant: normal;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }


.breadcrumb-item + .breadcrumb-item::before {
  font-family: "Font Awesome 6 Pro";
  font-weight: 300; }


.breadcrumb-item + .breadcrumb-item::before {
  display: inline-block;
  font-style: normal;
  font-weight: 400;
  font-variant: normal;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }


.breadcrumb-item + .breadcrumb-item::before {
  font-family: "Font Awesome 6 Pro";
  font-weight: 300; }

.breadcrumb {
  --bs-breadcrumb-padding-x: 0;
  --bs-breadcrumb-padding-y: 0;
  --bs-breadcrumb-margin-bottom: 1rem;
  --bs-breadcrumb-font-size: 0.75rem;
  --bs-breadcrumb-bg: ;
  --bs-breadcrumb-border-radius: ;
  --bs-breadcrumb-divider-color: var(--bs-secondary-color);
  --bs-breadcrumb-item-padding-x: 0.5rem;
  --bs-breadcrumb-item-active-color: var(--bs-body-color);
  display: flex;
  flex-wrap: wrap;
  padding: var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);
  margin-bottom: var(--bs-breadcrumb-margin-bottom);
  font-size: var(--bs-breadcrumb-font-size);
  list-style: none;
  background-color: var(--bs-breadcrumb-bg);
  border-radius: var(--bs-breadcrumb-border-radius); }

.breadcrumb-item + .breadcrumb-item {
  padding-left: var(--bs-breadcrumb-item-padding-x); }
  .breadcrumb-item + .breadcrumb-item::before {
    float: left;
    padding-right: var(--bs-breadcrumb-item-padding-x);
    color: var(--bs-breadcrumb-divider-color);
    content: var(--bs-breadcrumb-divider, "/") /* rtl: var(--bs-breadcrumb-divider, "/") */; }

.breadcrumb-item.active {
  color: var(--bs-breadcrumb-item-active-color); }

.breadcrumbs {
  position: relative;
  max-width: 100vw;
  margin-right: -0.75rem;
  margin-left: -0.75rem; }
  .breadcrumbs .breadcrumb {
    flex-wrap: nowrap;
    padding: 0.75rem;
    margin: unset;
    overflow-x: auto; }
    .breadcrumbs .breadcrumb::before, .breadcrumbs .breadcrumb::after {
      position: absolute;
      top: 0;
      display: block;
      height: 100%;
      pointer-events: none;
      content: ""; }
    .breadcrumbs .breadcrumb::before {
      left: 0;
      width: 1rem;
      background-image: linear-gradient(90deg, var(--alpha-breadcrumbs-mobile-shadow-color) 0, var(--alpha-breadcrumbs-mobile-shadow-color-end)); }
    .breadcrumbs .breadcrumb::after {
      right: 0;
      width: 2rem;
      background-image: linear-gradient(90deg, var(--alpha-breadcrumbs-mobile-shadow-color-end) 0, var(--alpha-breadcrumbs-mobile-shadow-color)); }
  .breadcrumbs.on-featured {
    --alpha-breadcrumbs-mobile-shadow-color: #000;
    --alpha-breadcrumbs-mobile-shadow-color-end: rgba(0, 0, 0, 0);
    top: var(--featured-image-height);
    z-index: 10;
    transform: translateY(-100%); }
    .breadcrumbs.on-featured .breadcrumb {
      --bs-breadcrumb-divider-color: currentcolor;
      --bs-breadcrumb-item-active-color: currentcolor; }
      .breadcrumbs.on-featured .breadcrumb::before, .breadcrumbs.on-featured .breadcrumb::after {
        opacity: .75; }
  .breadcrumbs.dark {
    --bs-link-color-rgb: 255, 255, 255; }
    .breadcrumbs.dark a:hover {
      --bs-link-color-rgb: 247, 247, 247; }

.breadcrumbs-on-featured:not(.has-transparent-header) .breadcrumbs {
  top: calc(var(--header-height) + var(--featured-image-height));
  transition: top .3s ease; }

.breadcrumbs-on-featured.search .content-wrapper {
  padding-top: 2rem; }

.breadcrumb-item {
  white-space: nowrap; }
  .breadcrumb-item + .breadcrumb-item::before {
    content: "\f105";
    margin-right: 0;
    line-height: var(--bs-body-line-height); }
  .breadcrumb-item + .breadcrumb-item::before {
    float: unset;
    padding-right: .25rem; }
  .breadcrumb-item.active span {
    font-weight: 700; }

@keyframes form-label-filled {
  0% {
    left: 1.5rem;
    font-size: 1.0625rem;
    background: transparent;
    transform: none; }
  25% {
    left: 1.5rem;
    font-size: 1.0625rem;
    background: transparent;
    transform: rotateY(90deg) translateY(0); }
  75% {
    left: 1.5rem;
    font-size: 0.7rem;
    background: #fff;
    transform: rotateY(90deg) translateY(-1.2rem); }
  100% {
    left: 1.5rem;
    font-size: 0.7rem;
    background: #fff;
    transform: rotateY(0) translateY(-1.2rem); } }

@keyframes form-label {
  0% {
    left: 1.5rem;
    font-size: 0.7rem;
    background: #fff;
    transform: rotateY(0) translateY(-1.2rem); }
  25% {
    left: 1.5rem;
    font-size: 0.7rem;
    background: #fff;
    transform: rotateY(90deg) translateY(-1.2rem); }
  75% {
    left: 1.5rem;
    font-size: 1.0625rem;
    background: transparent;
    transform: rotateY(90deg) translateY(0); }
  100% {
    left: 1.5rem;
    font-size: 1.0625rem;
    background: transparent;
    transform: none; } }

input:-webkit-autofill,
select:-webkit-autofill,
textarea:-webkit-autofill {
  box-shadow: 0 0 0 100px #fff inset;
  -webkit-text-fill-color: var(--bs-body-color); }
  input:-webkit-autofill:hover, input:-webkit-autofill:focus,
  select:-webkit-autofill:hover,
  select:-webkit-autofill:focus,
  textarea:-webkit-autofill:hover,
  textarea:-webkit-autofill:focus {
    -webkit-text-fill-color: var(--bs-body-color);
    background: none !important; }

.grecaptcha-badge {
  visibility: collapse; }

.wpcf7 {
  font-size: 16px; }
  .wpcf7 .wpcf7-form {
    color: var(--bs-body-color);
    margin-top: 1rem;
    display: flex;
    flex-direction: column; }
    .wpcf7 .wpcf7-form .form-field {
      position: relative;
      margin-bottom: 2rem;
      transition: all ease .5s; }
      .wpcf7 .wpcf7-form .form-field p:not([class]) {
        display: contents; }
      .wpcf7 .wpcf7-form .form-field input:not([type="submit"]):not([type="file"]):not([type="checkbox"]) {
        float: none;
        width: 100%;
        padding-left: 0.75rem;
        margin: 0;
        border: 1px solid var(--bs-border-color);
        border-radius: var(--bs-border-radius);
        transition: border-color ease .4s;
        background: #fff; }
        .wpcf7 .wpcf7-form .form-field input:not([type="submit"]):not([type="file"]):not([type="checkbox"]).wpcf7-text, .wpcf7 .wpcf7-form .form-field input:not([type="submit"]):not([type="file"]):not([type="checkbox"]).wpcf7-number {
          height: 2.5rem;
          color: var(--bs-body-color); }
        .wpcf7 .wpcf7-form .form-field input:not([type="submit"]):not([type="file"]):not([type="checkbox"]).wpcf7-not-valid {
          margin: 0;
          border-color: red; }
        .wpcf7 .wpcf7-form .form-field input:not([type="submit"]):not([type="file"]):not([type="checkbox"]):focus {
          outline: none; }
      .wpcf7 .wpcf7-form .form-field input[type="date"] {
        position: relative; }
        .wpcf7 .wpcf7-form .form-field input[type="date"]::-webkit-calendar-picker-indicator {
          position: absolute;
          padding-left: calc(100% - 2.5em); }
      .wpcf7 .wpcf7-form .form-field textarea {
        width: 100%;
        padding-left: 0.75rem;
        padding-top: 0.75rem;
        margin: 0;
        overflow: hidden;
        color: var(--bs-body-color);
        resize: none;
        border: 1px solid var(--bs-border-color);
        border-radius: var(--bs-border-radius);
        transition: border-color ease .4s;
        background: #fff;
        height: initial; }
        .wpcf7 .wpcf7-form .form-field textarea:focus {
          outline: none; }
        .wpcf7 .wpcf7-form .form-field textarea.wpcf7-not-valid {
          margin: 0;
          border-color: red; }
      .wpcf7 .wpcf7-form .form-field select.wpcf7-select,
      .wpcf7 .wpcf7-form .form-field select.wpcf7-form-control {
        padding-left: 0.75rem;
        float: none;
        color: var(--bs-body-color);
        border: 1px solid var(--bs-border-color);
        border-radius: var(--bs-border-radius);
        width: 100%;
        height: 2.5rem;
        background: #fff; }
        .wpcf7 .wpcf7-form .form-field select.wpcf7-select.wpcf7-not-valid,
        .wpcf7 .wpcf7-form .form-field select.wpcf7-form-control.wpcf7-not-valid {
          border-color: red; }
      .wpcf7 .wpcf7-form .form-field > label {
        position: absolute;
        top: 0.75rem;
        left: 1.5rem;
        z-index: 1;
        padding: 0;
        margin: 0;
        color: var(--bs-body-color);
        pointer-events: none;
        cursor: text;
        background: transparent;
        transition: font-size ease .5s, transform ease-in-out .5s, background-color ease .5s, padding ease .5s;
        font-size: 1.0625rem;
        line-height: 1rem; }
      .wpcf7 .wpcf7-form .form-field.style-dark label {
        color: #fff; }
      .wpcf7 .wpcf7-form .form-field.empty label {
        animation: .5s ease-in 0s 1 form-label;
        animation-fill-mode: forwards; }
      .wpcf7 .wpcf7-form .form-field.filled label, .wpcf7 .wpcf7-form .form-field.active label {
        padding: 0 0.75rem; }
      .wpcf7 .wpcf7-form .form-field.filled label {
        animation: .5s ease-in 0s 1 form-label-filled;
        animation-direction: normal;
        animation-fill-mode: forwards; }
      .wpcf7 .wpcf7-form .form-field.active label {
        color: var(--bs-primary) !important; }
      .wpcf7 .wpcf7-form .form-field.active input,
      .wpcf7 .wpcf7-form .form-field.active textarea {
        border-color: var(--bs-primary) !important; }
      .wpcf7 .wpcf7-form .form-field.no-anim label, .wpcf7 .wpcf7-form .form-field.form-field-noanim label {
        animation: none !important;
        position: relative !important;
        top: 0 !important;
        left: 0 !important;
        padding: 0;
        margin-top: 0.5rem;
        transform: translateY(-0.25rem); }
      .wpcf7 .wpcf7-form .form-field.form-field-select label {
        position: relative; }
      .wpcf7 .wpcf7-form .form-field.form-field-acceptance input {
        width: auto; }
      .wpcf7 .wpcf7-form .form-field.form-field-rgpd, .wpcf7 .wpcf7-form .form-field.form-legal-notice {
        margin: 1rem auto;
        font-size: .7rem;
        text-align: center;
        padding: 0; }
      .wpcf7 .wpcf7-form .form-field.form-field-double {
        display: flex; }
        .wpcf7 .wpcf7-form .form-field.form-field-double span:first-child {
          flex: 2 1; }
          .wpcf7 .wpcf7-form .form-field.form-field-double span:first-child input.wpcf7-text {
            border-right-width: 1px;
            border-radius: 10px 0 0 10px; }
        .wpcf7 .wpcf7-form .form-field.form-field-double span:last-child {
          flex: 1 1; }
          .wpcf7 .wpcf7-form .form-field.form-field-double span:last-child input.wpcf7-text {
            border-left-width: 1px;
            border-radius: 0 10px 10px 0; }
      .wpcf7 .wpcf7-form .form-field.form-field-checkbox .wpcf7-checkbox {
        display: flex;
        flex-direction: column;
        margin-right: -.25em;
        margin-left: -.25em; }
        .wpcf7 .wpcf7-form .form-field.form-field-checkbox .wpcf7-checkbox .wpcf7-list-item {
          display: flex;
          align-items: center;
          padding: 0 .25em; }
          .wpcf7 .wpcf7-form .form-field.form-field-checkbox .wpcf7-checkbox .wpcf7-list-item label {
            cursor: pointer;
            display: flex;
            align-items: center; }
            .wpcf7 .wpcf7-form .form-field.form-field-checkbox .wpcf7-checkbox .wpcf7-list-item label .wpcf7-list-item-label {
              padding-left: .5rem; }
      .wpcf7 .wpcf7-form .form-field.form-field-checkbox.checkbox-inline label {
        margin-bottom: .25em; }
      .wpcf7 .wpcf7-form .form-field.form-field-checkbox.checkbox-inline .wpcf7-checkbox {
        flex-direction: row;
        flex-wrap: wrap; }
        .wpcf7 .wpcf7-form .form-field.form-field-checkbox.checkbox-inline .wpcf7-checkbox .wpcf7-list-item {
          flex: 0 0 200px; }
      .wpcf7 .wpcf7-form .form-field.form-field-date input {
        height: 2.5rem; }
      .wpcf7 .wpcf7-form .form-field.inline {
        display: flex;
        flex-direction: column; }
        .wpcf7 .wpcf7-form .form-field.inline label {
          position: static;
          line-height: 25px; }
        .wpcf7 .wpcf7-form .form-field.inline .wpcf7-radio {
          display: flex; }
          .wpcf7 .wpcf7-form .form-field.inline .wpcf7-radio .wpcf7-list-item {
            display: flex;
            align-items: center; }
            .wpcf7 .wpcf7-form .form-field.inline .wpcf7-radio .wpcf7-list-item input {
              width: auto;
              margin-right: .25em;
              margin-left: .25em; }
        .wpcf7 .wpcf7-form .form-field.inline .wpcf7-checkbox {
          flex-direction: row; }
    .wpcf7 .wpcf7-form .form-field-submit {
      text-align: center;
      display: flex;
      align-items: center; }
      .wpcf7 .wpcf7-form .form-field-submit .ajax-loader, .wpcf7 .wpcf7-form .form-field-submit .wpcf7-spinner {
        background-repeat: no-repeat;
        background-position: center;
        min-height: unset;
        position: absolute; }
    .wpcf7 .wpcf7-form span.wpcf7-list-item {
      margin: 0; }
    .wpcf7 .wpcf7-form .form-field-required {
      color: red; }
    .wpcf7 .wpcf7-form .form-field-wrap {
      display: flex;
      align-items: flex-end;
      margin-right: -15px;
      margin-left: -15px; }
      .wpcf7 .wpcf7-form .form-field-wrap .form-field-date {
        flex: 1 1;
        margin-right: 15px;
        margin-left: 15px; }
        .wpcf7 .wpcf7-form .form-field-wrap .form-field-date input {
          margin-top: 0; }
    .wpcf7 .wpcf7-form .wpcf7-form-control-wrap {
      display: block; }
      .wpcf7 .wpcf7-form .wpcf7-form-control-wrap .wpcf7-not-valid-tip {
        color: red !important;
        font-size: 0.9rem;
        font-weight: normal;
        position: absolute;
        bottom: -2rem;
        left: 0.75rem;
        right: 0;
        height: 30px;
        z-index: 2; }
    .wpcf7 .wpcf7-form .form-field-desc {
      font-size: 0.8rem;
      font-style: italic;
      color: #696969; }
    .wpcf7 .wpcf7-form .wpcf7-response-output {
      text-align: center;
      border: none !important;
      font-size: .9rem;
      margin-top: 1rem; }
    .wpcf7 .wpcf7-form:not(.submitting) .ajax-loader, .wpcf7 .wpcf7-form:not(.submitting) .wpcf7-spinner {
      display: none !important; }
    .wpcf7 .wpcf7-form.sent .wpcf7-response-output {
      color: #87d37c !important; }
    .wpcf7 .wpcf7-form.invalid .wpcf7-response-output {
      color: red !important; }
  .wpcf7 .form-row {
    display: flex;
    flex-direction: column;
    margin-right: -0.75rem;
    margin-left: -0.75rem; }
    .wpcf7 .form-row::before, .wpcf7 .form-row::after {
      display: none !important; }
    .wpcf7 .form-row > .form-col, .wpcf7 .form-row > .form-col-6, .wpcf7 .form-row > .form-col-4, .wpcf7 .form-row > .form-col-3 {
      position: relative;
      width: 100%;
      padding-right: 0.75rem !important;
      padding-left: 0.75rem !important; }
    @media (min-width: 480px) {
          .wpcf7 .wpcf7-form .form-field.inline {
            flex-direction: row; }
      .wpcf7 .form-row {
        flex-direction: row;
        flex-wrap: wrap; }
      .wpcf7 .form-row > .form-col-6 {
        flex: 0 0 50%;
        max-width: 50%; }
      .wpcf7 .form-row > .form-col-4 {
        flex: 0 0 33.33%;
        max-width: 33.33%; }
      .wpcf7 .form-row > .form-col-3 {
        flex: 0 0 25%;
        max-width: 25%; } }
    @media (min-width: 768px) {
    .breadcrumbs .breadcrumb::before, .breadcrumbs .breadcrumb::after {
      display: none; }
      .wpcf7 .wpcf7-form {
        margin-top: 2rem; } }
    @media (max-width: 959px) {
  .form-field-submit {
    order: 1; }
  .form-legal-notice,
  .form-field-rgpd {
    order: 2; }
        .wpcf7 .wpcf7-form .wpcf7-response-output {
          margin-top: 0;
          margin-bottom: 1rem; } }
    @media (max-width: 768px) {
          .wpcf7 .wpcf7-form .form-field select.wpcf7-select,
          .wpcf7 .wpcf7-form .form-field select.wpcf7-form-control {
            width: 100%; } }


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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USxTQUFXO1FBQ1gsa0JBQWtCO1FBQ2xCLGlCQUFpQjtRQW5VekI7VUFzVVUsYUFBYTtJQXRVdkI7TUE0VU0sY0FBYztNQTVVcEI7UUErVVEscUJBQW9DO1FBQ3BDLGlCTHFab0I7UUtwWnBCLG1CQUFtQjtRQUNuQixrQkFBa0I7UUFDbEIsYUFBYTtRQUNiLGFMMFlZO1FLellaLFFBQVE7UUFDUixZQUFZO1FBQ1osVUFBVTtJQXZWbEI7TUE0Vk0saUJEOVZpQjtNQytWakIsa0JEN1ZtQjtNQzhWbkIsY0QvVm9CO0lDQzFCO01Ba1dNLGtCQUFrQjtNQUNsQix1QkFBdUI7TUFDdkIsZ0JBQWdCO01BQ2hCLGdCQUFnQjtJQXJXdEI7TUErV1Esd0JBQXdCO0lBL1doQztNQXFYUSx5QkFBdUM7SUFyWC9DO01BMlhRLHFCQUFvQztFQTNYNUM7SUFrWUksYUFBYTtJQUNiLHNCQUFzQjtJQUN0QixzQkwwVmdCO0lLelZoQixxQkx5VmdCO0lLOXRCcEI7TUF5WU0sd0JBQXdCO0lBelk5QjtNQWtaTSxrQkFBa0I7TUFDbEIsV0FBVztNQUNYLGlDQUFzQztNQUN0QyxnQ0FBcUM7SUE5SW5DO1VBdlFSO1lBd1FVLG1CQUFtQjtNQXhRN0I7UUE2WU0sbUJBQW1CO1FBQ25CLGVBQWU7TUE5WXJCO1FBNFpRLGFBQWE7UUFDYixjQUFjO01BN1p0QjtRQXFhUSxnQkFBZ0I7UUFDaEIsaUJBQWlCO01BdGF6QjtRQThhUSxhQUFhO1FBQ2IsY0FBYyxJQTdJZjtJQ2xRSDtJUDdESjtNQXVDUSxhQUFhO01NVnJCO1FBVU0sZ0JEMUJtRCxJTDJCbEQ7SU12QlA7RUFFRTtJQUNFLFFBQVE7RUFHVjs7SUFFRSxRQUFRO1FBSVo7VUF3V1EsYUFBYTtVQUNiLG1CQUFtQixJQTVXeEI7SUFvR0s7VUFqR1I7O1lBa0dVLFdBQVcsSUFFZCIsInNvdXJjZXMiOlsid2VicGFjazovL2hvdGVsbG91dmlhLXRoZW1lLy4vYXNzZXRzL3Nhc3MvYWJzdHJhY3RzL19sb3V2aWEtdG9rZW5zLnNjc3MiLCJ3ZWJwYWNrOi8vaG90ZWxsb3V2aWEtdGhlbWUvLi9ub2RlX21vZHVsZXMvQG5lbWF0aXMvd3AtYWxwaGEvYXNzZXRzL3Nhc3MvdmVuZG9ycy9mb250YXdlc29tZS9hYnN0cmFjdHMvX21peGlucy5zY3NzIiwid2VicGFjazovL2hvdGVsbG91dmlhLXRoZW1lLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL19icmVhZGNydW1iLnNjc3MiLCJ3ZWJwYWNrOi8vaG90ZWxsb3V2aWEtdGhlbWUvLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvdmVuZG9yL19yZnMuc2NzcyIsIndlYnBhY2s6Ly9ob3RlbGxvdXZpYS10aGVtZS8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2JvcmRlci1yYWRpdXMuc2NzcyIsIndlYnBhY2s6Ly9ob3RlbGxvdXZpYS10aGVtZS8uL25vZGVfbW9kdWxlcy9AbmVtYXRpcy93cC1hbHBoYS9hc3NldHMvc2Fzcy9jb21wb25lbnRzL19icmVhZGNydW1iLnNjc3MiLCJ3ZWJwYWNrOi8vaG90ZWxsb3V2aWEtdGhlbWUvLi9ub2RlX21vZHVsZXMvQG5lbWF0aXMvd3AtYWxwaGEvYXNzZXRzL3Nhc3MvYWJzdHJhY3RzL192YXJpYWJsZXMuc2NzcyIsIndlYnBhY2s6Ly9ob3RlbGxvdXZpYS10aGVtZS8uL25vZGVfbW9kdWxlcy9AZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtcHJvL3Njc3MvX2Z1bmN0aW9ucy5zY3NzIiwid2VicGFjazovL2hvdGVsbG91dmlhLXRoZW1lLy4vbm9kZV9tb2R1bGVzL0BuZW1hdGlzL2NmNy1lZmZlY3QvYXNzZXRzL3Nhc3MvY29yZS9fYW5pbWF0aW9ucy5zY3NzIiwid2VicGFjazovL2hvdGVsbG91dmlhLXRoZW1lLy4vbm9kZV9tb2R1bGVzL0BuZW1hdGlzL3dwLWFscGhhL2Fzc2V0cy9zYXNzL2Fic3RyYWN0cy9fZnVuY3Rpb25zLnNjc3MiLCJ3ZWJwYWNrOi8vaG90ZWxsb3V2aWEtdGhlbWUvLi9ub2RlX21vZHVsZXMvQG5lbWF0aXMvY2Y3LWVmZmVjdC9hc3NldHMvc2Fzcy9hYnN0cmFjdC9fdmFyaWFibGVzLnNjc3MiLCJ3ZWJwYWNrOi8vaG90ZWxsb3V2aWEtdGhlbWUvLi9ub2RlX21vZHVsZXMvQG5lbWF0aXMvY2Y3LWVmZmVjdC9hc3NldHMvc2Fzcy9jb3JlL19mb3Jtcy5zY3NzIiwid2VicGFjazovL2hvdGVsbG91dmlhLXRoZW1lLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fYnJlYWtwb2ludHMuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyI6cm9vdCB7XG4gIC0tb2xpdmU6ICMzMzNiMjk7XG4gIC0tb2xpdmUtZGVlcDogIzI2MmQyMDtcbiAgLS1yb3NlOiAjZGFhYTliO1xuICAtLXJvc2UtZGVlcDogI2JkN2U2NjtcbiAgLS1yb3NlLXNvZnQ6ICNlY2QyYzc7XG4gIC0tY3JlYW06ICNlZmU3ZGE7XG4gIC0tY3JlYW0tMjogI2U2ZGNjYjtcbiAgLS1wYXBlcjogI2ZiZjZlYztcbiAgLS1sZW1vbjogI2U3YjI0YztcbiAgLS1sZW1vbi1zb2Z0OiAjZjFkNDlhO1xuICAtLXNlYTogIzlmYjZiYjtcbiAgLS1pbms6ICMzYzQyMzI7XG4gIC0taW5rLTYwOiByZ2JhKDUxLCA1OSwgNDEsIC43KTtcbiAgLS1saW5lOiAjZGNjZmI4O1xuICAtLXNlcmlmOiBcIkNvcm1vcmFudCBHYXJhbW9uZFwiLCBnZW9yZ2lhLCBzZXJpZjtcbiAgLS1zYW5zOiBcIkpvc3RcIiwgXCJDZW50dXJ5IEdvdGhpY1wiLCBzeXN0ZW0tdWksIHNhbnMtc2VyaWY7XG4gIC0tbWF4dzogMTE4MHB4O1xuICAtLWd1dHRlcjogY2xhbXAoMjBweCwgNXZ3LCA2NHB4KTtcbiAgLS1lYXNlOiBjdWJpYy1iZXppZXIoLjIyLCAuNjEsIC4zNiwgMSk7XG4gIC0tc2gtc206IDAgNnB4IDE4cHggcmdiYSg1MSwgNTksIDQxLCAuMDcpO1xuICAtLXNoLW1kOiAwIDE2cHggMzhweCByZ2JhKDUxLCA1OSwgNDEsIC4xMSk7XG4gIC0tc2gtbGc6IDAgMzBweCA2MHB4IHJnYmEoNTEsIDU5LCA0MSwgLjE2KTtcbiAgLS1zaC1pbWc6IDAgMjJweCA1MHB4IHJnYmEoMzgsIDQ1LCAzMiwgLjIpO1xufVxuIiwiJHVzZS1mYS1wcm86IHRydWUgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmYS1pY29uLXN0YW5kYWxvbmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cblxuJWZhLFxuJWZhcyxcbiVmYXIsXG4lZmFsLFxuJWZhZCxcbiVmYXQsXG4lZmFiIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbiVmYS1pY29uLXN0YW5kYWxvbmUge1xuICBAaW5jbHVkZSBmYS1pY29uLXN0YW5kYWxvbmUgKCk7XG59XG5cbiVmYSxcbiVmYXMge1xuICBmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNiBQcm9cIjtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbn1cblxuJWZhciB7XG4gIGZvbnQtZmFtaWx5OiBcIkZvbnQgQXdlc29tZSA2IFByb1wiO1xuICBmb250LXdlaWdodDogNDAwO1xufVxuXG4lZmFsIHtcbiAgZm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDYgUHJvXCI7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG5cbiVmYXQge1xuICBmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNiBQcm9cIjtcbiAgZm9udC13ZWlnaHQ6IDEwMDtcbn1cblxuJWZhYiB7XG4gIGZvbnQtZmFtaWx5OiBcIkZvbnQgQXdlc29tZSA2IEJyYW5kc1wiO1xuICBmb250LXdlaWdodDogNDAwO1xufVxuXG5AbWl4aW4gZm9udC1hd2Vzb21lKCRjb2RlKSB7XG4gIEBleHRlbmQgJWZhLWljb24tc3RhbmRhbG9uZTtcblxuICBAaWYgJHVzZS1mYS1wcm8ge1xuICAgIEBpbmNsdWRlIGZvbnQtYXdlc29tZS1wcm8oJGNvZGUpO1xuICB9IEBlbHNlIHtcbiAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZm9udC1mYW1pbHktbm8tbWlzc2luZy1nZW5lcmljLWZhbWlseS1rZXl3b3JkXG4gICAgQGV4dGVuZCAlZmE7XG5cbiAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gICAgY29udGVudDogJGNvZGU7XG4gIH1cblxuICBAY29udGVudDtcbn1cblxuQG1peGluIGZvbnQtYXdlc29tZS1wcm8oJGNvZGUpIHtcbiAgQGluY2x1ZGUgZm9udC1hd2Vzb21lLXByby1zb2xpZCgkY29kZSk7XG59XG5cbkBtaXhpbiBmb250LWF3ZXNvbWUtcHJvLXNvbGlkKCRjb2RlKSB7XG4gIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBmb250LWZhbWlseS1uby1taXNzaW5nLWdlbmVyaWMtZmFtaWx5LWtleXdvcmRcbiAgQGV4dGVuZCAlZmFzO1xuICBjb250ZW50OiBmYS1jb250ZW50KCRjb2RlKTtcbn1cblxuQG1peGluIGZvbnQtYXdlc29tZS1wcm8tcmVndWxhcigkY29kZSkge1xuICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZm9udC1mYW1pbHktbm8tbWlzc2luZy1nZW5lcmljLWZhbWlseS1rZXl3b3JkXG4gIEBleHRlbmQgJWZhcjtcbiAgY29udGVudDogZmEtY29udGVudCgkY29kZSk7XG59XG5cbkBtaXhpbiBmb250LWF3ZXNvbWUtcHJvLWxpZ2h0KCRjb2RlKSB7XG4gIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBmb250LWZhbWlseS1uby1taXNzaW5nLWdlbmVyaWMtZmFtaWx5LWtleXdvcmRcbiAgQGV4dGVuZCAlZmFsO1xuICBjb250ZW50OiBmYS1jb250ZW50KCRjb2RlKTtcbn1cblxuQG1peGluIGZvbnQtYXdlc29tZS1wcm8tdGhpbigkY29kZSkge1xuICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZm9udC1mYW1pbHktbm8tbWlzc2luZy1nZW5lcmljLWZhbWlseS1rZXl3b3JkXG4gIEBleHRlbmQgJWZhdDtcbiAgY29udGVudDogZmEtY29udGVudCgkY29kZSk7XG59XG5cbkBtaXhpbiBmb250LWF3ZXNvbWUtcHJvLWJyYW5kKCRjb2RlKSB7XG4gIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBmb250LWZhbWlseS1uby1taXNzaW5nLWdlbmVyaWMtZmFtaWx5LWtleXdvcmRcbiAgQGV4dGVuZCAlZmFiO1xuICBjb250ZW50OiBmYS1jb250ZW50KCRjb2RlKTtcbn1cblxuQG1peGluIGZvbnQtYXdlc29tZS1iZWZvcmUoJGNvZGUsICRmbG9hdGluZzogZmFsc2UsICRmYS1zdHlsZTogXCJzb2xpZFwiLCAkbWFyZ2luOiAuMjVlbSkge1xuICAmOjpiZWZvcmUge1xuICAgIEBpZiAkZmEtc3R5bGUgPT0gXCJyZWd1bGFyXCIge1xuICAgICAgQGluY2x1ZGUgZm9udC1hd2Vzb21lLXByby1yZWd1bGFyKCRjb2RlKTtcbiAgICB9IEBlbHNlIGlmICRmYS1zdHlsZSA9PSBcImxpZ2h0XCIge1xuICAgICAgQGluY2x1ZGUgZm9udC1hd2Vzb21lLXByby1saWdodCgkY29kZSk7XG4gICAgfSBAZWxzZSBpZiAkZmEtc3R5bGUgPT0gXCJ0aGluXCIge1xuICAgICAgQGluY2x1ZGUgZm9udC1hd2Vzb21lLXByby10aGluKCRjb2RlKTtcbiAgICB9IEBlbHNlIGlmICRmYS1zdHlsZSA9PSBcImJyYW5kXCIge1xuICAgICAgQGluY2x1ZGUgZm9udC1hd2Vzb21lLXByby1icmFuZCgkY29kZSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBmb250LWF3ZXNvbWUoJGNvZGUpO1xuICAgIH1cblxuICAgIEBpZiAkZmxvYXRpbmcge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICB9XG4gICAgbWFyZ2luLXJpZ2h0OiAkbWFyZ2luO1xuXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWJzLWJvZHktbGluZS1oZWlnaHQpO1xuXG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIGZvbnQtYXdlc29tZS1hZnRlcigkY29kZSwgJGZsb2F0aW5nOiBmYWxzZSwgJGZhLXN0eWxlOiBcInNvbGlkXCIsICRtYXJnaW46IC4yNWVtKSB7XG4gICY6OmFmdGVyIHtcbiAgICBAaWYgJGZhLXN0eWxlID09IFwicmVndWxhclwiIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQtYXdlc29tZS1wcm8tcmVndWxhcigkY29kZSk7XG4gICAgfSBAZWxzZSBpZiAkZmEtc3R5bGUgPT0gXCJsaWdodFwiIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQtYXdlc29tZS1wcm8tbGlnaHQoJGNvZGUpO1xuICAgIH0gQGVsc2UgaWYgJGZhLXN0eWxlID09IFwidGhpblwiIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQtYXdlc29tZS1wcm8tdGhpbigkY29kZSk7XG4gICAgfSBAZWxzZSBpZiAkZmEtc3R5bGUgPT0gXCJicmFuZFwiIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQtYXdlc29tZS1wcm8tYnJhbmQoJGNvZGUpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgZm9udC1hd2Vzb21lKCRjb2RlKTtcbiAgICB9XG5cbiAgICBAaWYgJGZsb2F0aW5nIHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgIH1cbiAgICBtYXJnaW4tbGVmdDogJG1hcmdpbjtcblxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1icy1ib2R5LWxpbmUtaGVpZ2h0KTtcblxuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCIuYnJlYWRjcnVtYiB7XG4gIC8vIHNjc3MtZG9jcy1zdGFydCBicmVhZGNydW1iLWNzcy12YXJzXG4gIC0tI3skcHJlZml4fWJyZWFkY3J1bWItcGFkZGluZy14OiAjeyRicmVhZGNydW1iLXBhZGRpbmcteH07XG4gIC0tI3skcHJlZml4fWJyZWFkY3J1bWItcGFkZGluZy15OiAjeyRicmVhZGNydW1iLXBhZGRpbmcteX07XG4gIC0tI3skcHJlZml4fWJyZWFkY3J1bWItbWFyZ2luLWJvdHRvbTogI3skYnJlYWRjcnVtYi1tYXJnaW4tYm90dG9tfTtcbiAgQGluY2x1ZGUgcmZzKCRicmVhZGNydW1iLWZvbnQtc2l6ZSwgLS0jeyRwcmVmaXh9YnJlYWRjcnVtYi1mb250LXNpemUpO1xuICAtLSN7JHByZWZpeH1icmVhZGNydW1iLWJnOiAjeyRicmVhZGNydW1iLWJnfTtcbiAgLS0jeyRwcmVmaXh9YnJlYWRjcnVtYi1ib3JkZXItcmFkaXVzOiAjeyRicmVhZGNydW1iLWJvcmRlci1yYWRpdXN9O1xuICAtLSN7JHByZWZpeH1icmVhZGNydW1iLWRpdmlkZXItY29sb3I6ICN7JGJyZWFkY3J1bWItZGl2aWRlci1jb2xvcn07XG4gIC0tI3skcHJlZml4fWJyZWFkY3J1bWItaXRlbS1wYWRkaW5nLXg6ICN7JGJyZWFkY3J1bWItaXRlbS1wYWRkaW5nLXh9O1xuICAtLSN7JHByZWZpeH1icmVhZGNydW1iLWl0ZW0tYWN0aXZlLWNvbG9yOiAjeyRicmVhZGNydW1iLWFjdGl2ZS1jb2xvcn07XG4gIC8vIHNjc3MtZG9jcy1lbmQgYnJlYWRjcnVtYi1jc3MtdmFyc1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgcGFkZGluZzogdmFyKC0tI3skcHJlZml4fWJyZWFkY3J1bWItcGFkZGluZy15KSB2YXIoLS0jeyRwcmVmaXh9YnJlYWRjcnVtYi1wYWRkaW5nLXgpO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS0jeyRwcmVmaXh9YnJlYWRjcnVtYi1tYXJnaW4tYm90dG9tKTtcbiAgQGluY2x1ZGUgZm9udC1zaXplKHZhcigtLSN7JHByZWZpeH1icmVhZGNydW1iLWZvbnQtc2l6ZSkpO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS0jeyRwcmVmaXh9YnJlYWRjcnVtYi1iZyk7XG4gIEBpbmNsdWRlIGJvcmRlci1yYWRpdXModmFyKC0tI3skcHJlZml4fWJyZWFkY3J1bWItYm9yZGVyLXJhZGl1cykpO1xufVxuXG4uYnJlYWRjcnVtYi1pdGVtIHtcbiAgLy8gVGhlIHNlcGFyYXRvciBiZXR3ZWVuIGJyZWFkY3J1bWJzIChieSBkZWZhdWx0LCBhIGZvcndhcmQtc2xhc2g6IFwiL1wiKVxuICArIC5icmVhZGNydW1iLWl0ZW0ge1xuICAgIHBhZGRpbmctbGVmdDogdmFyKC0tI3skcHJlZml4fWJyZWFkY3J1bWItaXRlbS1wYWRkaW5nLXgpO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyAvLyBTdXBwcmVzcyBpbmxpbmUgc3BhY2luZ3MgYW5kIHVuZGVybGluaW5nIG9mIHRoZSBzZXBhcmF0b3JcbiAgICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLSN7JHByZWZpeH1icmVhZGNydW1iLWl0ZW0tcGFkZGluZy14KTtcbiAgICAgIGNvbG9yOiB2YXIoLS0jeyRwcmVmaXh9YnJlYWRjcnVtYi1kaXZpZGVyLWNvbG9yKTtcbiAgICAgIGNvbnRlbnQ6IHZhcigtLSN7JHByZWZpeH1icmVhZGNydW1iLWRpdmlkZXIsIGVzY2FwZS1zdmcoJGJyZWFkY3J1bWItZGl2aWRlcikpICN7XCIvKiBydGw6XCJ9IHZhcigtLSN7JHByZWZpeH1icmVhZGNydW1iLWRpdmlkZXIsIGVzY2FwZS1zdmcoJGJyZWFkY3J1bWItZGl2aWRlci1mbGlwcGVkKSkgI3tcIiovXCJ9O1xuICAgIH1cbiAgfVxuXG4gICYuYWN0aXZlIHtcbiAgICBjb2xvcjogdmFyKC0tI3skcHJlZml4fWJyZWFkY3J1bWItaXRlbS1hY3RpdmUtY29sb3IpO1xuICB9XG59XG4iLCIvLyBzdHlsZWxpbnQtZGlzYWJsZSBzY3NzL2RpbWVuc2lvbi1uby1ub24tbnVtZXJpYy12YWx1ZXNcblxuLy8gU0NTUyBSRlMgbWl4aW5cbi8vXG4vLyBBdXRvbWF0ZWQgcmVzcG9uc2l2ZSB2YWx1ZXMgZm9yIGZvbnQgc2l6ZXMsIHBhZGRpbmdzLCBtYXJnaW5zIGFuZCBtdWNoIG1vcmVcbi8vXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL3Jmcy9ibG9iL21haW4vTElDRU5TRSlcblxuLy8gQ29uZmlndXJhdGlvblxuXG4vLyBCYXNlIHZhbHVlXG4kcmZzLWJhc2UtdmFsdWU6IDEuMjVyZW0gIWRlZmF1bHQ7XG4kcmZzLXVuaXQ6IHJlbSAhZGVmYXVsdDtcblxuQGlmICRyZnMtdW5pdCAhPSByZW0gYW5kICRyZnMtdW5pdCAhPSBweCB7XG4gIEBlcnJvciBcImAjeyRyZnMtdW5pdH1gIGlzIG5vdCBhIHZhbGlkIHVuaXQgZm9yICRyZnMtdW5pdC4gVXNlIGBweGAgb3IgYHJlbWAuXCI7XG59XG5cbi8vIEJyZWFrcG9pbnQgYXQgd2hlcmUgdmFsdWVzIHN0YXJ0IGRlY3JlYXNpbmcgaWYgc2NyZWVuIHdpZHRoIGlzIHNtYWxsZXJcbiRyZnMtYnJlYWtwb2ludDogMTIwMHB4ICFkZWZhdWx0O1xuJHJmcy1icmVha3BvaW50LXVuaXQ6IHB4ICFkZWZhdWx0O1xuXG5AaWYgJHJmcy1icmVha3BvaW50LXVuaXQgIT0gcHggYW5kICRyZnMtYnJlYWtwb2ludC11bml0ICE9IGVtIGFuZCAkcmZzLWJyZWFrcG9pbnQtdW5pdCAhPSByZW0ge1xuICBAZXJyb3IgXCJgI3skcmZzLWJyZWFrcG9pbnQtdW5pdH1gIGlzIG5vdCBhIHZhbGlkIHVuaXQgZm9yICRyZnMtYnJlYWtwb2ludC11bml0LiBVc2UgYHB4YCwgYGVtYCBvciBgcmVtYC5cIjtcbn1cblxuLy8gUmVzaXplIHZhbHVlcyBiYXNlZCBvbiBzY3JlZW4gaGVpZ2h0IGFuZCB3aWR0aFxuJHJmcy10d28tZGltZW5zaW9uYWw6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBGYWN0b3Igb2YgZGVjcmVhc2VcbiRyZnMtZmFjdG9yOiAxMCAhZGVmYXVsdDtcblxuQGlmIHR5cGUtb2YoJHJmcy1mYWN0b3IpICE9IG51bWJlciBvciAkcmZzLWZhY3RvciA8PSAxIHtcbiAgQGVycm9yIFwiYCN7JHJmcy1mYWN0b3J9YCBpcyBub3QgYSB2YWxpZCAgJHJmcy1mYWN0b3IsIGl0IG11c3QgYmUgZ3JlYXRlciB0aGFuIDEuXCI7XG59XG5cbi8vIE1vZGUuIFBvc3NpYmlsaXRpZXM6IFwibWluLW1lZGlhLXF1ZXJ5XCIsIFwibWF4LW1lZGlhLXF1ZXJ5XCJcbiRyZnMtbW9kZTogbWluLW1lZGlhLXF1ZXJ5ICFkZWZhdWx0O1xuXG4vLyBHZW5lcmF0ZSBlbmFibGUgb3IgZGlzYWJsZSBjbGFzc2VzLiBQb3NzaWJpbGl0aWVzOiBmYWxzZSwgXCJlbmFibGVcIiBvciBcImRpc2FibGVcIlxuJHJmcy1jbGFzczogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIDEgcmVtID0gJHJmcy1yZW0tdmFsdWUgcHhcbiRyZnMtcmVtLXZhbHVlOiAxNiAhZGVmYXVsdDtcblxuLy8gU2FmYXJpIGlmcmFtZSByZXNpemUgYnVnOiBodHRwczovL2dpdGh1Yi5jb20vdHdicy9yZnMvaXNzdWVzLzE0XG4kcmZzLXNhZmFyaS1pZnJhbWUtcmVzaXplLWJ1Zy1maXg6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBEaXNhYmxlIFJGUyBieSBzZXR0aW5nICRlbmFibGUtcmZzIHRvIGZhbHNlXG4kZW5hYmxlLXJmczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gQ2FjaGUgJHJmcy1iYXNlLXZhbHVlIHVuaXRcbiRyZnMtYmFzZS12YWx1ZS11bml0OiB1bml0KCRyZnMtYmFzZS12YWx1ZSk7XG5cbkBmdW5jdGlvbiBkaXZpZGUoJGRpdmlkZW5kLCAkZGl2aXNvciwgJHByZWNpc2lvbjogMTApIHtcbiAgJHNpZ246IGlmKCRkaXZpZGVuZCA+IDAgYW5kICRkaXZpc29yID4gMCBvciAkZGl2aWRlbmQgPCAwIGFuZCAkZGl2aXNvciA8IDAsIDEsIC0xKTtcbiAgJGRpdmlkZW5kOiBhYnMoJGRpdmlkZW5kKTtcbiAgJGRpdmlzb3I6IGFicygkZGl2aXNvcik7XG4gIEBpZiAkZGl2aWRlbmQgPT0gMCB7XG4gICAgQHJldHVybiAwO1xuICB9XG4gIEBpZiAkZGl2aXNvciA9PSAwIHtcbiAgICBAZXJyb3IgXCJDYW5ub3QgZGl2aWRlIGJ5IDBcIjtcbiAgfVxuICAkcmVtYWluZGVyOiAkZGl2aWRlbmQ7XG4gICRyZXN1bHQ6IDA7XG4gICRmYWN0b3I6IDEwO1xuICBAd2hpbGUgKCRyZW1haW5kZXIgPiAwIGFuZCAkcHJlY2lzaW9uID49IDApIHtcbiAgICAkcXVvdGllbnQ6IDA7XG4gICAgQHdoaWxlICgkcmVtYWluZGVyID49ICRkaXZpc29yKSB7XG4gICAgICAkcmVtYWluZGVyOiAkcmVtYWluZGVyIC0gJGRpdmlzb3I7XG4gICAgICAkcXVvdGllbnQ6ICRxdW90aWVudCArIDE7XG4gICAgfVxuICAgICRyZXN1bHQ6ICRyZXN1bHQgKiAxMCArICRxdW90aWVudDtcbiAgICAkZmFjdG9yOiAkZmFjdG9yICogLjE7XG4gICAgJHJlbWFpbmRlcjogJHJlbWFpbmRlciAqIDEwO1xuICAgICRwcmVjaXNpb246ICRwcmVjaXNpb24gLSAxO1xuICAgIEBpZiAoJHByZWNpc2lvbiA8IDAgYW5kICRyZW1haW5kZXIgPj0gJGRpdmlzb3IgKiA1KSB7XG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgMTtcbiAgICB9XG4gIH1cbiAgJHJlc3VsdDogJHJlc3VsdCAqICRmYWN0b3IgKiAkc2lnbjtcbiAgJGRpdmlkZW5kLXVuaXQ6IHVuaXQoJGRpdmlkZW5kKTtcbiAgJGRpdmlzb3ItdW5pdDogdW5pdCgkZGl2aXNvcik7XG4gICR1bml0LW1hcDogKFxuICAgIFwicHhcIjogMXB4LFxuICAgIFwicmVtXCI6IDFyZW0sXG4gICAgXCJlbVwiOiAxZW0sXG4gICAgXCIlXCI6IDElXG4gICk7XG4gIEBpZiAoJGRpdmlkZW5kLXVuaXQgIT0gJGRpdmlzb3ItdW5pdCBhbmQgbWFwLWhhcy1rZXkoJHVuaXQtbWFwLCAkZGl2aWRlbmQtdW5pdCkpIHtcbiAgICAkcmVzdWx0OiAkcmVzdWx0ICogbWFwLWdldCgkdW5pdC1tYXAsICRkaXZpZGVuZC11bml0KTtcbiAgfVxuICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8vIFJlbW92ZSBweC11bml0IGZyb20gJHJmcy1iYXNlLXZhbHVlIGZvciBjYWxjdWxhdGlvbnNcbkBpZiAkcmZzLWJhc2UtdmFsdWUtdW5pdCA9PSBweCB7XG4gICRyZnMtYmFzZS12YWx1ZTogZGl2aWRlKCRyZnMtYmFzZS12YWx1ZSwgJHJmcy1iYXNlLXZhbHVlICogMCArIDEpO1xufVxuQGVsc2UgaWYgJHJmcy1iYXNlLXZhbHVlLXVuaXQgPT0gcmVtIHtcbiAgJHJmcy1iYXNlLXZhbHVlOiBkaXZpZGUoJHJmcy1iYXNlLXZhbHVlLCBkaXZpZGUoJHJmcy1iYXNlLXZhbHVlICogMCArIDEsICRyZnMtcmVtLXZhbHVlKSk7XG59XG5cbi8vIENhY2hlICRyZnMtYnJlYWtwb2ludCB1bml0IHRvIHByZXZlbnQgbXVsdGlwbGUgY2FsbHNcbiRyZnMtYnJlYWtwb2ludC11bml0LWNhY2hlOiB1bml0KCRyZnMtYnJlYWtwb2ludCk7XG5cbi8vIFJlbW92ZSB1bml0IGZyb20gJHJmcy1icmVha3BvaW50IGZvciBjYWxjdWxhdGlvbnNcbkBpZiAkcmZzLWJyZWFrcG9pbnQtdW5pdC1jYWNoZSA9PSBweCB7XG4gICRyZnMtYnJlYWtwb2ludDogZGl2aWRlKCRyZnMtYnJlYWtwb2ludCwgJHJmcy1icmVha3BvaW50ICogMCArIDEpO1xufVxuQGVsc2UgaWYgJHJmcy1icmVha3BvaW50LXVuaXQtY2FjaGUgPT0gcmVtIG9yICRyZnMtYnJlYWtwb2ludC11bml0LWNhY2hlID09IFwiZW1cIiB7XG4gICRyZnMtYnJlYWtwb2ludDogZGl2aWRlKCRyZnMtYnJlYWtwb2ludCwgZGl2aWRlKCRyZnMtYnJlYWtwb2ludCAqIDAgKyAxLCAkcmZzLXJlbS12YWx1ZSkpO1xufVxuXG4vLyBDYWxjdWxhdGUgdGhlIG1lZGlhIHF1ZXJ5IHZhbHVlXG4kcmZzLW1xLXZhbHVlOiBpZigkcmZzLWJyZWFrcG9pbnQtdW5pdCA9PSBweCwgI3skcmZzLWJyZWFrcG9pbnR9cHgsICN7ZGl2aWRlKCRyZnMtYnJlYWtwb2ludCwgJHJmcy1yZW0tdmFsdWUpfSN7JHJmcy1icmVha3BvaW50LXVuaXR9KTtcbiRyZnMtbXEtcHJvcGVydHktd2lkdGg6IGlmKCRyZnMtbW9kZSA9PSBtYXgtbWVkaWEtcXVlcnksIG1heC13aWR0aCwgbWluLXdpZHRoKTtcbiRyZnMtbXEtcHJvcGVydHktaGVpZ2h0OiBpZigkcmZzLW1vZGUgPT0gbWF4LW1lZGlhLXF1ZXJ5LCBtYXgtaGVpZ2h0LCBtaW4taGVpZ2h0KTtcblxuLy8gSW50ZXJuYWwgbWl4aW4gdXNlZCB0byBkZXRlcm1pbmUgd2hpY2ggbWVkaWEgcXVlcnkgbmVlZHMgdG8gYmUgdXNlZFxuQG1peGluIF9yZnMtbWVkaWEtcXVlcnkge1xuICBAaWYgJHJmcy10d28tZGltZW5zaW9uYWwge1xuICAgIEBpZiAkcmZzLW1vZGUgPT0gbWF4LW1lZGlhLXF1ZXJ5IHtcbiAgICAgIEBtZWRpYSAoI3skcmZzLW1xLXByb3BlcnR5LXdpZHRofTogI3skcmZzLW1xLXZhbHVlfSksICgjeyRyZnMtbXEtcHJvcGVydHktaGVpZ2h0fTogI3skcmZzLW1xLXZhbHVlfSkge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQG1lZGlhICgjeyRyZnMtbXEtcHJvcGVydHktd2lkdGh9OiAjeyRyZnMtbXEtdmFsdWV9KSBhbmQgKCN7JHJmcy1tcS1wcm9wZXJ0eS1oZWlnaHR9OiAjeyRyZnMtbXEtdmFsdWV9KSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQG1lZGlhICgjeyRyZnMtbXEtcHJvcGVydHktd2lkdGh9OiAjeyRyZnMtbXEtdmFsdWV9KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8gSW50ZXJuYWwgbWl4aW4gdGhhdCBhZGRzIGRpc2FibGUgY2xhc3NlcyB0byB0aGUgc2VsZWN0b3IgaWYgbmVlZGVkLlxuQG1peGluIF9yZnMtcnVsZSB7XG4gIEBpZiAkcmZzLWNsYXNzID09IGRpc2FibGUgYW5kICRyZnMtbW9kZSA9PSBtYXgtbWVkaWEtcXVlcnkge1xuICAgIC8vIEFkZGluZyBhbiBleHRyYSBjbGFzcyBpbmNyZWFzZXMgc3BlY2lmaWNpdHksIHdoaWNoIHByZXZlbnRzIHRoZSBtZWRpYSBxdWVyeSB0byBvdmVycmlkZSB0aGUgcHJvcGVydHlcbiAgICAmLFxuICAgIC5kaXNhYmxlLXJmcyAmLFxuICAgICYuZGlzYWJsZS1yZnMge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRyZnMtY2xhc3MgPT0gZW5hYmxlIGFuZCAkcmZzLW1vZGUgPT0gbWluLW1lZGlhLXF1ZXJ5IHtcbiAgICAuZW5hYmxlLXJmcyAmLFxuICAgICYuZW5hYmxlLXJmcyB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIEludGVybmFsIG1peGluIHRoYXQgYWRkcyBlbmFibGUgY2xhc3NlcyB0byB0aGUgc2VsZWN0b3IgaWYgbmVlZGVkLlxuQG1peGluIF9yZnMtbWVkaWEtcXVlcnktcnVsZSB7XG5cbiAgQGlmICRyZnMtY2xhc3MgPT0gZW5hYmxlIHtcbiAgICBAaWYgJHJmcy1tb2RlID09IG1pbi1tZWRpYS1xdWVyeSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBfcmZzLW1lZGlhLXF1ZXJ5ICgpIHtcbiAgICAgIC5lbmFibGUtcmZzICYsXG4gICAgICAmLmVuYWJsZS1yZnMge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpZiAkcmZzLWNsYXNzID09IGRpc2FibGUgYW5kICRyZnMtbW9kZSA9PSBtaW4tbWVkaWEtcXVlcnkge1xuICAgICAgLmRpc2FibGUtcmZzICYsXG4gICAgICAmLmRpc2FibGUtcmZzIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIF9yZnMtbWVkaWEtcXVlcnkgKCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vIEhlbHBlciBmdW5jdGlvbiB0byBnZXQgdGhlIGZvcm1hdHRlZCBub24tcmVzcG9uc2l2ZSB2YWx1ZVxuQGZ1bmN0aW9uIHJmcy12YWx1ZSgkdmFsdWVzKSB7XG4gIC8vIENvbnZlcnQgdG8gbGlzdFxuICAkdmFsdWVzOiBpZih0eXBlLW9mKCR2YWx1ZXMpICE9IGxpc3QsICgkdmFsdWVzLCksICR2YWx1ZXMpO1xuXG4gICR2YWw6IFwiXCI7XG5cbiAgLy8gTG9vcCBvdmVyIGVhY2ggdmFsdWUgYW5kIGNhbGN1bGF0ZSB2YWx1ZVxuICBAZWFjaCAkdmFsdWUgaW4gJHZhbHVlcyB7XG4gICAgQGlmICR2YWx1ZSA9PSAwIHtcbiAgICAgICR2YWw6ICR2YWwgKyBcIiAwXCI7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIC8vIENhY2hlICR2YWx1ZSB1bml0XG4gICAgICAkdW5pdDogaWYodHlwZS1vZigkdmFsdWUpID09IFwibnVtYmVyXCIsIHVuaXQoJHZhbHVlKSwgZmFsc2UpO1xuXG4gICAgICBAaWYgJHVuaXQgPT0gcHgge1xuICAgICAgICAvLyBDb252ZXJ0IHRvIHJlbSBpZiBuZWVkZWRcbiAgICAgICAgJHZhbDogJHZhbCArIFwiIFwiICsgaWYoJHJmcy11bml0ID09IHJlbSwgI3tkaXZpZGUoJHZhbHVlLCAkdmFsdWUgKiAwICsgJHJmcy1yZW0tdmFsdWUpfXJlbSwgJHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICR1bml0ID09IHJlbSB7XG4gICAgICAgIC8vIENvbnZlcnQgdG8gcHggaWYgbmVlZGVkXG4gICAgICAgICR2YWw6ICR2YWwgKyBcIiBcIiArIGlmKCRyZnMtdW5pdCA9PSBweCwgI3tkaXZpZGUoJHZhbHVlLCAkdmFsdWUgKiAwICsgMSkgKiAkcmZzLXJlbS12YWx1ZX1weCwgJHZhbHVlKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAvLyBJZiAkdmFsdWUgaXNuJ3QgYSBudW1iZXIgKGxpa2UgaW5oZXJpdCkgb3IgJHZhbHVlIGhhcyBhIHVuaXQgKG5vdCBweCBvciByZW0sIGxpa2UgMS41ZW0pIG9yICQgaXMgMCwganVzdCBwcmludCB0aGUgdmFsdWVcbiAgICAgICAgJHZhbDogJHZhbCArIFwiIFwiICsgJHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFJlbW92ZSBmaXJzdCBzcGFjZVxuICBAcmV0dXJuIHVucXVvdGUoc3RyLXNsaWNlKCR2YWwsIDIpKTtcbn1cblxuLy8gSGVscGVyIGZ1bmN0aW9uIHRvIGdldCB0aGUgcmVzcG9uc2l2ZSB2YWx1ZSBjYWxjdWxhdGVkIGJ5IFJGU1xuQGZ1bmN0aW9uIHJmcy1mbHVpZC12YWx1ZSgkdmFsdWVzKSB7XG4gIC8vIENvbnZlcnQgdG8gbGlzdFxuICAkdmFsdWVzOiBpZih0eXBlLW9mKCR2YWx1ZXMpICE9IGxpc3QsICgkdmFsdWVzLCksICR2YWx1ZXMpO1xuXG4gICR2YWw6IFwiXCI7XG5cbiAgLy8gTG9vcCBvdmVyIGVhY2ggdmFsdWUgYW5kIGNhbGN1bGF0ZSB2YWx1ZVxuICBAZWFjaCAkdmFsdWUgaW4gJHZhbHVlcyB7XG4gICAgQGlmICR2YWx1ZSA9PSAwIHtcbiAgICAgICR2YWw6ICR2YWwgKyBcIiAwXCI7XG4gICAgfSBAZWxzZSB7XG4gICAgICAvLyBDYWNoZSAkdmFsdWUgdW5pdFxuICAgICAgJHVuaXQ6IGlmKHR5cGUtb2YoJHZhbHVlKSA9PSBcIm51bWJlclwiLCB1bml0KCR2YWx1ZSksIGZhbHNlKTtcblxuICAgICAgLy8gSWYgJHZhbHVlIGlzbid0IGEgbnVtYmVyIChsaWtlIGluaGVyaXQpIG9yICR2YWx1ZSBoYXMgYSB1bml0IChub3QgcHggb3IgcmVtLCBsaWtlIDEuNWVtKSBvciAkIGlzIDAsIGp1c3QgcHJpbnQgdGhlIHZhbHVlXG4gICAgICBAaWYgbm90ICR1bml0IG9yICR1bml0ICE9IHB4IGFuZCAkdW5pdCAhPSByZW0ge1xuICAgICAgICAkdmFsOiAkdmFsICsgXCIgXCIgKyAkdmFsdWU7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgLy8gUmVtb3ZlIHVuaXQgZnJvbSAkdmFsdWUgZm9yIGNhbGN1bGF0aW9uc1xuICAgICAgICAkdmFsdWU6IGRpdmlkZSgkdmFsdWUsICR2YWx1ZSAqIDAgKyBpZigkdW5pdCA9PSBweCwgMSwgZGl2aWRlKDEsICRyZnMtcmVtLXZhbHVlKSkpO1xuXG4gICAgICAgIC8vIE9ubHkgYWRkIHRoZSBtZWRpYSBxdWVyeSBpZiB0aGUgdmFsdWUgaXMgZ3JlYXRlciB0aGFuIHRoZSBtaW5pbXVtIHZhbHVlXG4gICAgICAgIEBpZiBhYnMoJHZhbHVlKSA8PSAkcmZzLWJhc2UtdmFsdWUgb3Igbm90ICRlbmFibGUtcmZzIHtcbiAgICAgICAgICAkdmFsOiAkdmFsICsgXCIgXCIgKyBpZigkcmZzLXVuaXQgPT0gcmVtLCAje2RpdmlkZSgkdmFsdWUsICRyZnMtcmVtLXZhbHVlKX1yZW0sICN7JHZhbHVlfXB4KTtcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBtaW5pbXVtIHZhbHVlXG4gICAgICAgICAgJHZhbHVlLW1pbjogJHJmcy1iYXNlLXZhbHVlICsgZGl2aWRlKGFicygkdmFsdWUpIC0gJHJmcy1iYXNlLXZhbHVlLCAkcmZzLWZhY3Rvcik7XG5cbiAgICAgICAgICAvLyBDYWxjdWxhdGUgZGlmZmVyZW5jZSBiZXR3ZWVuICR2YWx1ZSBhbmQgdGhlIG1pbmltdW0gdmFsdWVcbiAgICAgICAgICAkdmFsdWUtZGlmZjogYWJzKCR2YWx1ZSkgLSAkdmFsdWUtbWluO1xuXG4gICAgICAgICAgLy8gQmFzZSB2YWx1ZSBmb3JtYXR0aW5nXG4gICAgICAgICAgJG1pbi13aWR0aDogaWYoJHJmcy11bml0ID09IHJlbSwgI3tkaXZpZGUoJHZhbHVlLW1pbiwgJHJmcy1yZW0tdmFsdWUpfXJlbSwgI3skdmFsdWUtbWlufXB4KTtcblxuICAgICAgICAgIC8vIFVzZSBuZWdhdGl2ZSB2YWx1ZSBpZiBuZWVkZWRcbiAgICAgICAgICAkbWluLXdpZHRoOiBpZigkdmFsdWUgPCAwLCAtJG1pbi13aWR0aCwgJG1pbi13aWR0aCk7XG5cbiAgICAgICAgICAvLyBVc2UgYHZtaW5gIGlmIHR3by1kaW1lbnNpb25hbCBpcyBlbmFibGVkXG4gICAgICAgICAgJHZhcmlhYmxlLXVuaXQ6IGlmKCRyZnMtdHdvLWRpbWVuc2lvbmFsLCB2bWluLCB2dyk7XG5cbiAgICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIHZhcmlhYmxlIHdpZHRoIGJldHdlZW4gMCBhbmQgJHJmcy1icmVha3BvaW50XG4gICAgICAgICAgJHZhcmlhYmxlLXdpZHRoOiAje2RpdmlkZSgkdmFsdWUtZGlmZiAqIDEwMCwgJHJmcy1icmVha3BvaW50KX0jeyR2YXJpYWJsZS11bml0fTtcblxuICAgICAgICAgIC8vIFJldHVybiB0aGUgY2FsY3VsYXRlZCB2YWx1ZVxuICAgICAgICAgICR2YWw6ICR2YWwgKyBcIiBjYWxjKFwiICsgJG1pbi13aWR0aCArIGlmKCR2YWx1ZSA8IDAsIFwiIC0gXCIsIFwiICsgXCIpICsgJHZhcmlhYmxlLXdpZHRoICsgXCIpXCI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBSZW1vdmUgZmlyc3Qgc3BhY2VcbiAgQHJldHVybiB1bnF1b3RlKHN0ci1zbGljZSgkdmFsLCAyKSk7XG59XG5cbi8vIFJGUyBtaXhpblxuQG1peGluIHJmcygkdmFsdWVzLCAkcHJvcGVydHk6IGZvbnQtc2l6ZSkge1xuICBAaWYgJHZhbHVlcyAhPSBudWxsIHtcbiAgICAkdmFsOiByZnMtdmFsdWUoJHZhbHVlcyk7XG4gICAgJGZsdWlkLXZhbDogcmZzLWZsdWlkLXZhbHVlKCR2YWx1ZXMpO1xuXG4gICAgLy8gRG8gbm90IHByaW50IHRoZSBtZWRpYSBxdWVyeSBpZiByZXNwb25zaXZlICYgbm9uLXJlc3BvbnNpdmUgdmFsdWVzIGFyZSB0aGUgc2FtZVxuICAgIEBpZiAkdmFsID09ICRmbHVpZC12YWwge1xuICAgICAgI3skcHJvcGVydHl9OiAkdmFsO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBfcmZzLXJ1bGUgKCkge1xuICAgICAgICAjeyRwcm9wZXJ0eX06IGlmKCRyZnMtbW9kZSA9PSBtYXgtbWVkaWEtcXVlcnksICR2YWwsICRmbHVpZC12YWwpO1xuXG4gICAgICAgIC8vIEluY2x1ZGUgc2FmYXJpIGlmcmFtZSByZXNpemUgZml4IGlmIG5lZWRlZFxuICAgICAgICBtaW4td2lkdGg6IGlmKCRyZnMtc2FmYXJpLWlmcmFtZS1yZXNpemUtYnVnLWZpeCwgKDAgKiAxdncpLCBudWxsKTtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgX3Jmcy1tZWRpYS1xdWVyeS1ydWxlICgpIHtcbiAgICAgICAgI3skcHJvcGVydHl9OiBpZigkcmZzLW1vZGUgPT0gbWF4LW1lZGlhLXF1ZXJ5LCAkZmx1aWQtdmFsLCAkdmFsKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gU2hvcnRoYW5kIGhlbHBlciBtaXhpbnNcbkBtaXhpbiBmb250LXNpemUoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHJmcygkdmFsdWUpO1xufVxuXG5AbWl4aW4gcGFkZGluZygkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcmZzKCR2YWx1ZSwgcGFkZGluZyk7XG59XG5cbkBtaXhpbiBwYWRkaW5nLXRvcCgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcmZzKCR2YWx1ZSwgcGFkZGluZy10b3ApO1xufVxuXG5AbWl4aW4gcGFkZGluZy1yaWdodCgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcmZzKCR2YWx1ZSwgcGFkZGluZy1yaWdodCk7XG59XG5cbkBtaXhpbiBwYWRkaW5nLWJvdHRvbSgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcmZzKCR2YWx1ZSwgcGFkZGluZy1ib3R0b20pO1xufVxuXG5AbWl4aW4gcGFkZGluZy1sZWZ0KCR2YWx1ZSkge1xuICBAaW5jbHVkZSByZnMoJHZhbHVlLCBwYWRkaW5nLWxlZnQpO1xufVxuXG5AbWl4aW4gbWFyZ2luKCR2YWx1ZSkge1xuICBAaW5jbHVkZSByZnMoJHZhbHVlLCBtYXJnaW4pO1xufVxuXG5AbWl4aW4gbWFyZ2luLXRvcCgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcmZzKCR2YWx1ZSwgbWFyZ2luLXRvcCk7XG59XG5cbkBtaXhpbiBtYXJnaW4tcmlnaHQoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHJmcygkdmFsdWUsIG1hcmdpbi1yaWdodCk7XG59XG5cbkBtaXhpbiBtYXJnaW4tYm90dG9tKCR2YWx1ZSkge1xuICBAaW5jbHVkZSByZnMoJHZhbHVlLCBtYXJnaW4tYm90dG9tKTtcbn1cblxuQG1peGluIG1hcmdpbi1sZWZ0KCR2YWx1ZSkge1xuICBAaW5jbHVkZSByZnMoJHZhbHVlLCBtYXJnaW4tbGVmdCk7XG59XG4iLCIvLyBzdHlsZWxpbnQtZGlzYWJsZSBwcm9wZXJ0eS1kaXNhbGxvd2VkLWxpc3Rcbi8vIFNpbmdsZSBzaWRlIGJvcmRlci1yYWRpdXNcblxuLy8gSGVscGVyIGZ1bmN0aW9uIHRvIHJlcGxhY2UgbmVnYXRpdmUgdmFsdWVzIHdpdGggMFxuQGZ1bmN0aW9uIHZhbGlkLXJhZGl1cygkcmFkaXVzKSB7XG4gICRyZXR1cm46ICgpO1xuICBAZWFjaCAkdmFsdWUgaW4gJHJhZGl1cyB7XG4gICAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSBudW1iZXIge1xuICAgICAgJHJldHVybjogYXBwZW5kKCRyZXR1cm4sIG1heCgkdmFsdWUsIDApKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRyZXR1cm46IGFwcGVuZCgkcmV0dXJuLCAkdmFsdWUpO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuICRyZXR1cm47XG59XG5cbi8vIHNjc3MtZG9jcy1zdGFydCBib3JkZXItcmFkaXVzLW1peGluc1xuQG1peGluIGJvcmRlci1yYWRpdXMoJHJhZGl1czogJGJvcmRlci1yYWRpdXMsICRmYWxsYmFjay1ib3JkZXItcmFkaXVzOiBmYWxzZSkge1xuICBAaWYgJGVuYWJsZS1yb3VuZGVkIHtcbiAgICBib3JkZXItcmFkaXVzOiB2YWxpZC1yYWRpdXMoJHJhZGl1cyk7XG4gIH1cbiAgQGVsc2UgaWYgJGZhbGxiYWNrLWJvcmRlci1yYWRpdXMgIT0gZmFsc2Uge1xuICAgIGJvcmRlci1yYWRpdXM6ICRmYWxsYmFjay1ib3JkZXItcmFkaXVzO1xuICB9XG59XG5cbkBtaXhpbiBib3JkZXItdG9wLXJhZGl1cygkcmFkaXVzOiAkYm9yZGVyLXJhZGl1cykge1xuICBAaWYgJGVuYWJsZS1yb3VuZGVkIHtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiB2YWxpZC1yYWRpdXMoJHJhZGl1cyk7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHZhbGlkLXJhZGl1cygkcmFkaXVzKTtcbiAgfVxufVxuXG5AbWl4aW4gYm9yZGVyLWVuZC1yYWRpdXMoJHJhZGl1czogJGJvcmRlci1yYWRpdXMpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHZhbGlkLXJhZGl1cygkcmFkaXVzKTtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogdmFsaWQtcmFkaXVzKCRyYWRpdXMpO1xuICB9XG59XG5cbkBtaXhpbiBib3JkZXItYm90dG9tLXJhZGl1cygkcmFkaXVzOiAkYm9yZGVyLXJhZGl1cykge1xuICBAaWYgJGVuYWJsZS1yb3VuZGVkIHtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogdmFsaWQtcmFkaXVzKCRyYWRpdXMpO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhbGlkLXJhZGl1cygkcmFkaXVzKTtcbiAgfVxufVxuXG5AbWl4aW4gYm9yZGVyLXN0YXJ0LXJhZGl1cygkcmFkaXVzOiAkYm9yZGVyLXJhZGl1cykge1xuICBAaWYgJGVuYWJsZS1yb3VuZGVkIHtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiB2YWxpZC1yYWRpdXMoJHJhZGl1cyk7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogdmFsaWQtcmFkaXVzKCRyYWRpdXMpO1xuICB9XG59XG5cbkBtaXhpbiBib3JkZXItdG9wLXN0YXJ0LXJhZGl1cygkcmFkaXVzOiAkYm9yZGVyLXJhZGl1cykge1xuICBAaWYgJGVuYWJsZS1yb3VuZGVkIHtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiB2YWxpZC1yYWRpdXMoJHJhZGl1cyk7XG4gIH1cbn1cblxuQG1peGluIGJvcmRlci10b3AtZW5kLXJhZGl1cygkcmFkaXVzOiAkYm9yZGVyLXJhZGl1cykge1xuICBAaWYgJGVuYWJsZS1yb3VuZGVkIHtcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogdmFsaWQtcmFkaXVzKCRyYWRpdXMpO1xuICB9XG59XG5cbkBtaXhpbiBib3JkZXItYm90dG9tLWVuZC1yYWRpdXMoJHJhZGl1czogJGJvcmRlci1yYWRpdXMpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHZhbGlkLXJhZGl1cygkcmFkaXVzKTtcbiAgfVxufVxuXG5AbWl4aW4gYm9yZGVyLWJvdHRvbS1zdGFydC1yYWRpdXMoJHJhZGl1czogJGJvcmRlci1yYWRpdXMpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogdmFsaWQtcmFkaXVzKCRyYWRpdXMpO1xuICB9XG59XG4vLyBzY3NzLWRvY3MtZW5kIGJvcmRlci1yYWRpdXMtbWl4aW5zXG4iLCJAaW1wb3J0IFwifmJvb3RzdHJhcC9zY3NzL2JyZWFkY3J1bWJcIjtcblxuLmJyZWFkY3J1bWJzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXgtd2lkdGg6IDEwMHZ3O1xuICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3skY29udGFpbmVyLXBhZGRpbmcteH0gKiAtMSk7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKCN7JGNvbnRhaW5lci1wYWRkaW5nLXh9ICogLTEpO1xuXG4gIC5icmVhZGNydW1iIHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBwYWRkaW5nOiAkY29udGFpbmVyLXBhZGRpbmcteDtcbiAgICBtYXJnaW46IHVuc2V0O1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICAmOjpiZWZvcmUsXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogMXJlbTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdmFyKC0tYWxwaGEtYnJlYWRjcnVtYnMtbW9iaWxlLXNoYWRvdy1jb2xvcikgMCwgdmFyKC0tYWxwaGEtYnJlYWRjcnVtYnMtbW9iaWxlLXNoYWRvdy1jb2xvci1lbmQpKTtcbiAgICB9XG5cbiAgICAmOjphZnRlciB7XG4gICAgICByaWdodDogMDtcbiAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB2YXIoLS1hbHBoYS1icmVhZGNydW1icy1tb2JpbGUtc2hhZG93LWNvbG9yLWVuZCkgMCwgdmFyKC0tYWxwaGEtYnJlYWRjcnVtYnMtbW9iaWxlLXNoYWRvdy1jb2xvcikpO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobWQpIHtcbiAgICAuYnJlYWRjcnVtYiB7XG4gICAgICAmOjpiZWZvcmUsXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi5vbi1mZWF0dXJlZCB7XG4gICAgLS1hbHBoYS1icmVhZGNydW1icy1tb2JpbGUtc2hhZG93LWNvbG9yOiAjeyRicmVhZGNydW1iLW9uLWZlYXR1cmVkLW1vYmlsZS1zaGFkb3ctY29sb3J9O1xuICAgIC0tYWxwaGEtYnJlYWRjcnVtYnMtbW9iaWxlLXNoYWRvdy1jb2xvci1lbmQ6ICN7cmdiYSgkYnJlYWRjcnVtYi1vbi1mZWF0dXJlZC1tb2JpbGUtc2hhZG93LWNvbG9yLCAwKX07XG4gICAgdG9wOiB2YXIoLS1mZWF0dXJlZC1pbWFnZS1oZWlnaHQpO1xuICAgIHotaW5kZXg6IDEwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG5cbiAgICAuYnJlYWRjcnVtYiB7XG4gICAgICAtLWJzLWJyZWFkY3J1bWItZGl2aWRlci1jb2xvcjogY3VycmVudGNvbG9yO1xuICAgICAgLS1icy1icmVhZGNydW1iLWl0ZW0tYWN0aXZlLWNvbG9yOiBjdXJyZW50Y29sb3I7XG5cbiAgICAgICY6OmJlZm9yZSxcbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgb3BhY2l0eTogLjc1O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYuZGFyayB7XG4gICAgLS1icy1saW5rLWNvbG9yLXJnYjogI3toZXgtdG8tcmdiKCR3aGl0ZSl9O1xuXG4gICAgYSB7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgLS1icy1saW5rLWNvbG9yLXJnYjogI3toZXgtdG8tcmdiKCRncmF5LTEwMCl9O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uYnJlYWRjcnVtYnMtb24tZmVhdHVyZWQge1xuICAmOm5vdCguaGFzLXRyYW5zcGFyZW50LWhlYWRlcikge1xuICAgIC5icmVhZGNydW1icyB7XG4gICAgICB0b3A6IGNhbGModmFyKC0taGVhZGVyLWhlaWdodCkgKyB2YXIoLS1mZWF0dXJlZC1pbWFnZS1oZWlnaHQpKTtcbiAgICAgIHRyYW5zaXRpb246IHRvcCAuM3MgZWFzZTtcbiAgICB9XG4gIH1cblxuICAmLnNlYXJjaCB7XG4gICAgLmNvbnRlbnQtd3JhcHBlciB7XG4gICAgICBwYWRkaW5nLXRvcDogbWFwLWdldCgkc3BhY2VycywgOCk7XG4gICAgfVxuICB9XG59XG5cbi5icmVhZGNydW1iLWl0ZW0ge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICsgLmJyZWFkY3J1bWItaXRlbSB7XG4gICAgQGluY2x1ZGUgZm9udC1hd2Vzb21lLWJlZm9yZSgkZmEtdmFyLWFuZ2xlLXJpZ2h0LCBmYWxzZSwgXCJsaWdodFwiLCAwKTtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBmbG9hdDogdW5zZXQ7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAuMjVyZW07XG4gICAgfVxuICB9XG5cbiAgJi5hY3RpdmUge1xuICAgIHNwYW4ge1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB9XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCJ+Ym9vdHN0cmFwL3Njc3MvZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwifkBmb3J0YXdlc29tZS9mb250YXdlc29tZS1wcm8vc2Nzcy9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJ+QGZvcnRhd2Vzb21lL2ZvbnRhd2Vzb21lLXByby9zY3NzL3ZhcmlhYmxlc1wiO1xuXG4kdGhlbWUtYXNzZXQtcGF0aDogXCIuLi9pbWFnZXNcIiAhZGVmYXVsdDtcbiRmb250cy1wYXRoOiBcImZvbnRzXCIgIWRlZmF1bHQ7XG5cbi8vLS0tLS0tIENvbG9yIHN5c3RlbVxuJGJsYWNrOiAjMDAwICFkZWZhdWx0O1xuJHdoaXRlOiAjZmZmICFkZWZhdWx0O1xuJGdyYXktMTAwOiAjZjdmN2Y3ICFkZWZhdWx0O1xuJGdyYXktMjAwOiAjZTllY2VmICFkZWZhdWx0O1xuJGdyYXktMzAwOiAjZGVlMmU2ICFkZWZhdWx0O1xuJGdyYXktNTAwOiAjOWQ5ZDlkICFkZWZhdWx0O1xuJGdyYXktNjAwOiAjNmM3NTdkICFkZWZhdWx0O1xuJGdyYXktNzAwOiAjNDk1MDU3ICFkZWZhdWx0O1xuJGdyYXktOTAwOiAjMGEwYTBhICFkZWZhdWx0O1xuXG4vLyBzY3NzLWRvY3Mtc3RhcnQgY29sb3ItdmFyaWFibGVzXG4kYmx1ZTogIzAwNWRhYSAhZGVmYXVsdDtcbiRwdXJwbGU6ICM3MDFlNmUgIWRlZmF1bHQ7XG4kZ3JlZW46ICMwMWFlM2MgIWRlZmF1bHQ7XG4kcmVkOiAjZGMzNTQ1ICFkZWZhdWx0O1xuJHllbGxvdzogI2ZmYzEwNyAhZGVmYXVsdDtcbiRjeWFuOiAjMGRjYWYwICFkZWZhdWx0O1xuXG4vLyBzY3NzLWRvY3Mtc3RhcnQgY29sb3JzLW1hcFxuJGNvbG9yczogKFxuICBcImJsdWVcIjogJGJsdWUsXG4gIFwicHVycGxlXCI6ICRwdXJwbGUsXG4gIFwiZ3JlZW5cIjogJGdyZWVuLFxuICBcIndoaXRlXCI6ICR3aGl0ZSxcbiAgXCJncmF5LTEwMFwiOiAkZ3JheS0xMDAsXG4gIFwiZ3JheS01MDBcIjogJGdyYXktNTAwLFxuICBcImdyYXktOTAwXCI6ICRncmF5LTkwMFxuKSAhZGVmYXVsdDtcblxuLy8gc2Nzcy1kb2NzLXN0YXJ0IHRoZW1lLWNvbG9yLXZhcmlhYmxlc1xuJHN1Y2Nlc3M6ICRncmVlbiAhZGVmYXVsdDtcbiRpbmZvOiAkY3lhbiAhZGVmYXVsdDtcbiR3YXJuaW5nOiAkeWVsbG93ICFkZWZhdWx0O1xuJGRhbmdlcjogJHJlZCAhZGVmYXVsdDtcbiRsaWdodDogJGdyYXktMTAwICFkZWZhdWx0O1xuJGRhcms6ICRncmF5LTkwMCAhZGVmYXVsdDtcblxuLy8gc2Nzcy1kb2NzLXN0YXJ0IHRoZW1lLWNvbG9ycy1tYXBcbiRkZWZhdWx0LXRoZW1lLWNvbG9yczogKFxuICBcInByaW1hcnlcIjogJHByaW1hcnksXG4gIFwic2Vjb25kYXJ5XCI6ICRzZWNvbmRhcnksXG4gIFwic3VjY2Vzc1wiOiAkc3VjY2VzcyxcbiAgXCJpbmZvXCI6ICRpbmZvLFxuICBcIndhcm5pbmdcIjogJHdhcm5pbmcsXG4gIFwiZGFuZ2VyXCI6ICRkYW5nZXIsXG4gIFwibGlnaHRcIjogJGxpZ2h0LFxuICBcImRhcmtcIjogJGRhcmssXG4gIFwid2hpdGVcIjogJHdoaXRlXG4pICFkZWZhdWx0O1xuJHRoZW1lLWNvbG9yczogKCkgIWRlZmF1bHQ7XG4kdGhlbWUtY29sb3JzOiBtYXAtbWVyZ2UoJGRlZmF1bHQtdGhlbWUtY29sb3JzLCAkdGhlbWUtY29sb3JzKTtcblxuLy8gVGhlIGNvbnRyYXN0IHJhdGlvIHRvIHJlYWNoIGFnYWluc3Qgd2hpdGUsIHRvIGRldGVybWluZSBpZiBjb2xvciBjaGFuZ2VzIGZyb20gXCJsaWdodFwiIHRvIFwiZGFya1wiLiBBY2NlcHRhYmxlIHZhbHVlcyBmb3IgV0NBRyAyLjAgYXJlIDMsIDQuNSBhbmQgNy5cbiRtaW4tY29udHJhc3QtcmF0aW86IDQuNSAhZGVmYXVsdDtcblxuLy8gQ3VzdG9taXplIHRoZSBsaWdodCBhbmQgZGFyayB0ZXh0IGNvbG9ycyBmb3IgdXNlIGluIG91ciBjb2xvciBjb250cmFzdCBmdW5jdGlvbi5cbiRjb2xvci1jb250cmFzdC1kYXJrOiAkZ3JheS05MDAgIWRlZmF1bHQ7XG4kY29sb3ItY29udHJhc3QtbGlnaHQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8tLS0tLS0gQ29tcG9uZW50c1xuLy8gc2Nzcy1kb2NzLXN0YXJ0IGJvcmRlci1yYWRpdXMtdmFyaWFibGVzXG4kYm9yZGVyLXJhZGl1czogLjVyZW0gIWRlZmF1bHQ7XG4kYm9yZGVyLXJhZGl1cy1sZzogLjYyNXJlbSAhZGVmYXVsdDtcblxuLy8tLS0tLS0gT3B0aW9uc1xuJGVuYWJsZS1uZWdhdGl2ZS1tYXJnaW5zOiB0cnVlICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBTcGFjaW5nXG4kc3BhY2VyOiAxcmVtICFkZWZhdWx0O1xuJHNwYWNlcnM6IChcbiAgMDogMCxcbiAgMTogJHNwYWNlciAqIC4yNSwgLy8gNHB4XG4gIDI6ICRzcGFjZXIgKiAuNSwgLy8gOHB4XG4gIDM6ICRzcGFjZXIgKiAuNzUsIC8vIDEycHhcbiAgNDogJHNwYWNlciwgLy8gMTZweFxuICA1OiAkc3BhY2VyICogMS4yNSwgLy8gMjBweFxuICA2OiAkc3BhY2VyICogMS41LCAvLyAyNHB4XG4gIDc6ICRzcGFjZXIgKiAxLjc1LCAvLyAyOHB4XG4gIDg6ICRzcGFjZXIgKiAyLCAvLyAzMnB4XG4gIDk6ICRzcGFjZXIgKiAzLCAvLyA0OHB4XG4gIDEwOiAkc3BhY2VyICogNCwgLy8gNjRweFxuICAxMTogJHNwYWNlciAqIDUgLy8gODBweFxuKSAhZGVmYXVsdDtcblxuLy8tLS0tLS0gRGFyayBTdHlsZVxuJGRhcmstYmctY29sb3I6IHZhcigtLWJzLWJvZHktYmctZGFyaykgIWRlZmF1bHQ7XG4kZGFyay10eHQtY29sb3I6IHZhcigtLWJzLWJvZHktY29sb3ItZGFyaykgIWRlZmF1bHQ7XG5cbi8vLS0tLS0tIExpZ2h0IFN0eWxlXG4kbGlnaHQtYmctY29sb3I6ICRib2R5LWJnICFkZWZhdWx0O1xuJGxpZ2h0LXR4dC1jb2xvcjogJGJvZHktY29sb3IgIWRlZmF1bHQ7XG5cbi8vLS0tLS0tIEhlYWRlclxuJGhlYWRlci1iZzogdmFyKC0tYnMtYm9keS1iZykgIWRlZmF1bHQ7XG5cbi8vLS0tLS0tIEZvb3RlclxuJGZvb3Rlci1iZzogcmdiYSgkcHJpbWFyeSwgLjEpICFkZWZhdWx0O1xuJGNvcHlyaWdodC1iZzogJGZvb3Rlci1iZyAhZGVmYXVsdDtcblxuLy8tLS0tLS0gTGlua3NcbiRsaW5rLWNvbG9yOiAkcHJpbWFyeSAhZGVmYXVsdDtcbiRsaW5rLXNoYWRlLXBlcmNlbnRhZ2U6IDIwJSAhZGVmYXVsdDtcbiRsaW5rLWhvdmVyLWNvbG9yOiBzaGlmdC1jb2xvcigkbGluay1jb2xvciwgJGxpbmstc2hhZGUtcGVyY2VudGFnZSkgIWRlZmF1bHQ7XG5cbi8vIEdyaWQgY29sdW1uc1xuJGdyaWQtZ3V0dGVyLXdpZHRoOiAxLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLS0tLS0tIENvbnRhaW5lciBwYWRkaW5nXG4kY29udGFpbmVyLXBhZGRpbmcteDogJGdyaWQtZ3V0dGVyLXdpZHRoIC8gMiAhZGVmYXVsdDtcblxuLy8tLS0tLS0gQ29tcG9uZW50c1xuLy8gc2Nzcy1kb2NzLXN0YXJ0IGJvcmRlci12YXJpYWJsZXNcbiRib3JkZXItd2lkdGg6IDFweCAhZGVmYXVsdDtcbiRib3JkZXItY29sb3I6IHJnYmEoJGdyYXktOTAwLCAuMTUpICFkZWZhdWx0O1xuXG4vLyBzY3NzLWRvY3Mtc3RhcnQgYXNwZWN0LXJhdGlvc1xuXG4vLyBzY3NzLWRvY3Mtc3RhcnQgaGVhZGluZ3MtdmFyaWFibGVzXG4kaGVhZGluZ3MtbWFyZ2luLWJvdHRvbTogJHNwYWNlciAqIDIgIWRlZmF1bHQ7XG5cbi8vLS0tLS0tIEJ1dHRvbnMgKyBGb3Jtc1xuJGJ0bi1jb2xvcnM6IChcbiAgXCJwcmltYXJ5XCI6IG51bGwsXG4gIFwic2Vjb25kYXJ5XCIgOiBudWxsXG4pICFkZWZhdWx0O1xuXG4kaW5wdXQtZm9udC1zaXplOiAkZm9udC1zaXplLWJhc2UgIWRlZmF1bHQ7XG4kaW5wdXQtYnRuLXBhZGRpbmcteTogLjM3NXJlbSAhZGVmYXVsdDtcbiRpbnB1dC1idG4tcGFkZGluZy14OiAuNzVyZW0gIWRlZmF1bHQ7XG4kaW5wdXQtYnRuLWZvY3VzLXdpZHRoOiAuMTI1cmVtICFkZWZhdWx0O1xuJGlucHV0LXBhZGRpbmcteTogJGlucHV0LWJ0bi1wYWRkaW5nLXkgIWRlZmF1bHQ7XG4kaW5wdXQtcGFkZGluZy14OiAkaW5wdXQtYnRuLXBhZGRpbmcteCAhZGVmYXVsdDtcbiRpbnB1dC1saW5lLWhlaWdodDogMS41ICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBOYXZzXG4vLy0tLS0tIFNoYXJlZCB2YXJpYWJsZXNcbiRuYXYtY29sb3ItYWNjZW50OiAkcHJpbWFyeSAhZGVmYXVsdDtcblxuLy8tLS0tLSBCb290c3RyYXAgdmFyaWFibGVzXG4kbmF2LWxpbmstZm9udC1zaXplOiBudWxsICFkZWZhdWx0O1xuJG5hdi1saW5rLWNvbG9yOiB2YXIoLS10aGVtZS1za2luLXRleHQtY29sb3IpICFkZWZhdWx0O1xuJG5hdi1saW5rLWhvdmVyLWNvbG9yOiB0aW50LWNvbG9yKCRwcmltYXJ5LCAzMCUpICFkZWZhdWx0O1xuJG5hdi1saW5rLWRpc2FibGVkLWNvbG9yOiAkZ3JheS02MDAgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gQWxwaGEgdmFyaWFibGVzXG4kbmF2LWNvbG9yLWhvdmVyLWZpcnN0LWxldmVsOiAkbmF2LWxpbmstaG92ZXItY29sb3IgIWRlZmF1bHQ7XG4kbmF2LWNvbG9yLWN1cnJlbnQ6ICRuYXYtY29sb3ItYWNjZW50ICFkZWZhdWx0O1xuJG5hdi1jb2xvci1jdXJyZW50LWZpcnN0LWxldmVsOiAkbmF2LWNvbG9yLWN1cnJlbnQgIWRlZmF1bHQ7XG4kbmF2LWNvbG9yLWFuY2VzdG9yOiBzaGFkZS1jb2xvcigkbmF2LWNvbG9yLWFjY2VudCwgMjAlKSAhZGVmYXVsdDtcbiRuYXYtY29sb3ItYW5jZXN0b3ItZmlyc3QtbGV2ZWw6ICRuYXYtY29sb3ItYW5jZXN0b3IgIWRlZmF1bHQ7XG5cbi8vLS0tLS0tIE5hdmJhclxuJHN1Ym1lbnUtYmctY29sb3I6IHdoaXRlICFkZWZhdWx0O1xuJG5hdmJhci1wYWRkaW5nLXk6IDMgKiAkc3BhY2VyIC8gNCAhZGVmYXVsdDtcbiRuYXZiYXItaXRlbS1tYXJnaW4teDogbnVsbCAhZGVmYXVsdDtcbiRuYXZiYXItaXRlbS1tYXJnaW4teTogbnVsbCAhZGVmYXVsdDtcbiRuYXZiYXItbGlnaHQtY29sb3I6ICRuYXYtbGluay1jb2xvciAhZGVmYXVsdDtcbiRuYXZiYXItbGlnaHQtaG92ZXItY29sb3I6ICRuYXYtbGluay1ob3Zlci1jb2xvciAhZGVmYXVsdDtcbiRuYXZiYXItbGlnaHQtYWN0aXZlLWNvbG9yOiAkbmF2LWxpbmstaG92ZXItY29sb3IgIWRlZmF1bHQ7XG4kbmF2YmFyLWxpZ2h0LWRpc2FibGVkLWNvbG9yOiAkbmF2LWxpbmstZGlzYWJsZWQtY29sb3IgIWRlZmF1bHQ7XG5cbi8vLS0tLS0tIERyb3Bkb3duc1xuXG4vLy0tLS0tLSBQYWdpbmF0aW9uXG4kcGFnaW5hdGlvbi1ob3Zlci1iZzogcmdiYSgkcHJpbWFyeSwgLjEpICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBNb2RhbHNcbiRtb2RhbC1iYWNrZHJvcC1iZzogYmxhY2sgIWRlZmF1bHQ7XG4kbW9kYWwtYmFja2Ryb3Atb3BhY2l0eTogLjUgIWRlZmF1bHQ7XG4kbW9kYWwtY29udGVudC1ib3JkZXItd2lkdGg6IDAgIWRlZmF1bHQ7XG5cbi8vIE1vZGFsIFZpZGVvXG4kbW9kYWwtdmlkZW8tYnRuLWNsb3NlLWJnLWNvbG9yOiB2YXIoLS1icy1wcmltYXJ5KSAhZGVmYXVsdDtcbiRtb2RhbC12aWRlby1idG4tY2xvc2UtY29sb3I6ICNmZmYgIWRlZmF1bHQ7XG5cbi8vLS0tLS0tIEltYWdlIHRodW1ibmFpbHMgJiBQaWN0dXJlXG5cbi8vLS0tLS0tIEJyZWFkY3J1bWJzXG4kYnJlYWRjcnVtYi1mb250LXNpemU6IC43NXJlbSAhZGVmYXVsdDtcbiRicmVhZGNydW1iLWFjdGl2ZS1jb2xvcjogdmFyKC0tYnMtYm9keS1jb2xvcikgIWRlZmF1bHQ7XG5cbi8vLS0tLS0tIE9mZmNhbnZhc1xuJG9mZmNhbnZhcy1ib2R5LWJhY2tkcm9wLWNvbG9yOiByZ2JhKCRtb2RhbC1iYWNrZHJvcC1iZywgJG1vZGFsLWJhY2tkcm9wLW9wYWNpdHkpICFkZWZhdWx0O1xuJG9mZmNhbnZhcy13aWRlLXNjcmVlbi1icmVha3BvaW50OiB4eGwgIWRlZmF1bHQ7XG5cbi8vLS0tLS0tIE9mZmNhbnZhcyBkZXNrdG9wXG4kb2ZmY2FudmFzLWRhcmstbW9kZS1sb2dvLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLWRlc2t0b3Atd2lkdGg6IDQwMHB4ICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1sb2dvLXdpZHRoOiA2Ni42NiUgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLWhlYWRlci1hbGlnbmVtZW50OiBjZW50ZXIgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLWdyaWQtYm9yZGVyLWNvbG9yOiAkc2Vjb25kYXJ5ICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1ncmlkLWJvcmRlci1vcGFjaXR5OiAuNSAhZGVmYXVsdDtcbiRvZmZjYW52YXMtZ3JpZC1ib3JkZXItYmc6IHJnYmEoJG9mZmNhbnZhcy1ncmlkLWJvcmRlci1jb2xvciwgJG9mZmNhbnZhcy1ncmlkLWJvcmRlci1vcGFjaXR5KSAhZGVmYXVsdDtcbiRvZmZjYW52YXMtZ3JpZC1maXJzdC1sdmwtYm9yZGVyLXNpemU6IDFweCAhZGVmYXVsdDtcbiRvZmZjYW52YXMtZ3JpZC1maXJzdC1sdmwtYm9yZGVyLXR5cGU6IHNvbGlkICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1ncmlkLWZpcnN0LWx2bC1ib3JkZXItb3BhY2l0eTogLjEgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLWdyaWQtZmlyc3QtbHZsLWJvcmRlci1jb2xvcjogJHNlY29uZGFyeSAhZGVmYXVsdDtcbiRvZmZjYW52YXMtZ3JpZC1maXJzdC1sdmwtYm9yZGVyLWNvbG9yLWJnOiByZ2JhKCRvZmZjYW52YXMtZ3JpZC1maXJzdC1sdmwtYm9yZGVyLWNvbG9yLCAkb2ZmY2FudmFzLWdyaWQtZmlyc3QtbHZsLWJvcmRlci1vcGFjaXR5KTtcbiRvZmZjYW52YXMtZ3JpZC1maXJzdC1sdmwtYm9yZGVyLXN0eWxlOiAkb2ZmY2FudmFzLWdyaWQtZmlyc3QtbHZsLWJvcmRlci1zaXplICRvZmZjYW52YXMtZ3JpZC1maXJzdC1sdmwtYm9yZGVyLXR5cGUgJG9mZmNhbnZhcy1ncmlkLWZpcnN0LWx2bC1ib3JkZXItY29sb3ItYmcgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLWdyaWQtZmlyc3QtbHZsLWZvbnQtc2l6ZTogMS41cmVtICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1ncmlkLWZpcnN0LXRodW1iLXdpZHRoOiA3NSUgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLWdyaWQtc3VibWVudS1mb250LXNpemU6IDEuMTI1cmVtICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1ncmlkLXN1Ym1lbnUtaXRlbS1wYWRkaW5nLXk6IDAgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLWdyaWQtc3VibWVudS1pdGVtLWxpbmUtaGVpZ2h0OiAxLjI1ICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1ncmlkLXN1Ym1lbnUtaXRlbS1pY29uLXNpemU6IC44cmVtICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1ncmlkLXN1Ym1lbnUtaXRlbS1pbWFnZS1ib3gtc2hhZG93OiAwIDAgMS41cmVtIC43NXJlbSByZ2JhKCRzZWNvbmRhcnksIC4yNSkgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLWdyaWQtc3VibWVudS1pdGVtLWhvdmVyLWltYWdlLWJveC1zaGFkb3c6IHZhcigtLWJzLWJveC1zaGFkb3cpO1xuJG9mZmNhbnZhcy1maXJzdC1sdmwtbWVudS1pdGVtLWJvcmRlci1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1maXJzdC1sdmwtbWVudS1pdGVtLWJvcmRlci1vcGFjaXR5OiAuMTUgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLWZpcnN0LWx2bC1tZW51LWl0ZW0tYm9yZGVyLXN0eWxlOiAxcHggc29saWQgcmdiYSgkb2ZmY2FudmFzLWZpcnN0LWx2bC1tZW51LWl0ZW0tYm9yZGVyLWNvbG9yLCAkb2ZmY2FudmFzLWZpcnN0LWx2bC1tZW51LWl0ZW0tYm9yZGVyLW9wYWNpdHkpO1xuXG4vLy0tLS0tLS0gT2ZmY2FudmFzIGRlc2t0b3AgTWVnYSBTdWJtZW51XG4kb2ZmY2FudmFzLXN1Ym1lbnUtaXRlbS1mb250LXNpemU6IDEuNXJlbSAhZGVmYXVsdDtcbiRvZmZjYW52YXMtc3VibWVudS1pdGVtLWJvcmRlci1jb2xvcjogdmFyKC0tdGhlbWUtc2tpbi10ZXh0LWNvbG9yKSAhZGVmYXVsdDtcbiRvZmZjYW52YXMtc3VibWVudS1pdGVtLWJvcmRlci1zdHlsZTogMXB4IHNvbGlkICRvZmZjYW52YXMtc3VibWVudS1pdGVtLWJvcmRlci1jb2xvcjtcblxuXG4vLy0tLS0tLSBNZWdhIE1lbnVcbiRtZWdhbWVudS1iZy1jb2xvcjogdmFyKC0tdGhlbWUtc2tpbi1iZy1jb2xvcik7XG4kbWVnYW1lbnUtcGFkZGluZy15OiAxcmVtICFkZWZhdWx0O1xuJG1lZ2FtZW51LXBhZGRpbmcteDogMXJlbSAhZGVmYXVsdDtcbiRtZWdhbWVudS10aXRsZS1wYWRkaW5nLXk6IC41cmVtICFkZWZhdWx0O1xuJG1lZ2FtZW51LXRpdGxlLXBhZGRpbmcteDogMXJlbSAhZGVmYXVsdDtcbiRtZWdhbWVudS10aXRsZS1jb2xvcjogdmFyKC0tdGhlbWUtc2tpbi10ZXh0LWNvbG9yKSAhZGVmYXVsdDtcbiRtZWdhbWVudS10aXRsZS10ZXh0LWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG4kbWVnYW1lbnUtdGl0bGUtaG92ZXItY29sb3I6ICRuYXYtbGluay1ob3Zlci1jb2xvciAhZGVmYXVsdDtcbiRtZWdhbWVudS10aXRsZS1ob3Zlci10ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSAhZGVmYXVsdDtcbiRtZWdhbWVudS1waWN0dXJlLWhhcy1vdmVybGF5OiB0cnVlICFkZWZhdWx0O1xuJG1lZ2FtZW51LW92ZXJsYXktYmctY29sb3I6ICRwcmltYXJ5ICFkZWZhdWx0O1xuJG1lZ2FtZW51LW92ZXJsYXktYmctb3BhY2l0eTogLjUgIWRlZmF1bHQ7XG4kbWVnYW1lbnUtb3ZlcmxheS1iZy1jb2xvci1yYmc6IHJnYmEoJG1lZ2FtZW51LW92ZXJsYXktYmctY29sb3IsICRtZWdhbWVudS1vdmVybGF5LWJnLW9wYWNpdHkpICFkZWZhdWx0O1xuJG1lZ2FtZW51LXBpY3R1cmUtYm9yZGVyLXJhZGl1czogLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLS0tLS0tIEFuY2hvciBvZmZzZXRcbiRhbmNob3Itb2Zmc2V0OiAxcmVtICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBXcCBBbHBoYVxuLy8gbG9nb1xuJGxvZ28tcGFkZGluZy15OiAkbmF2YmFyLXBhZGRpbmcteSAhZGVmYXVsdDtcblxuLy8tLS0tLSBCb290c3RyYXAgY29sb3JzIGNsZWFudXBcbiRicy1ncmF5cy10by1rZWVwOiAoKSAhZGVmYXVsdDtcbiRicy1ncmF5cy10by1yZW1vdmU6IChcIjIwMFwiLCBcIjMwMFwiLCBcIjQwMFwiLCBcIjUwMFwiLCBcIjcwMFwiKSAhZGVmYXVsdDtcbiRicy1jb2xvcnMtdG8ta2VlcDogKCkgIWRlZmF1bHQ7XG4kYnMtY29sb3JzLXRvLXJlbW92ZTogKFwiaW5kaWdvXCIsIFwicGlua1wiLCBcInJlZFwiLCBcInllbGxvd1wiLCBcImdyZWVuXCIsIFwidGVhbFwiLCBcImN5YW5cIiwgXCJsaWdodFwiLCBcImRhcmtcIikgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gQm9vdHN0cmFwIHV0aWxpdGllcyBjbGVhbnVwXG4kYnMtdXRpbGl0aWVzLXRvLXJlbW92ZTogKFwiYmctb3BhY2l0eVwiKSAhZGVmYXVsdDtcblxuLy8tLS0tLSBIZWxwZXJzXG4vLy0tLS0gU2VwYXJhdGUgdGl0bGVcbiRzZXBhcmF0ZS10aXRsZS13aWR0aDogODBweCAhZGVmYXVsdDtcbiRzZXBhcmF0ZS10aXRsZS1iZzogdmFyKC0tYnMtcHJpbWFyeSkgIWRlZmF1bHQ7XG5cbi8vLS0tLSBUcmFuc3BhcmVudCBiYWNrZ3JvdW5kc1xuJHRyYW5zcGFyZW50LWJnLW9wYWNpdGllcy1vdmVycmlkZXM6ICgpICFkZWZhdWx0O1xuJHRyYW5zcGFyZW50LWJnLW9wYWNpdGllczogKFxuICAxMDogLjEsXG4gIDI1OiAuMjUsXG4gIGxpZ2h0OiAuMjUsXG4gIDM1OiAuMzUsXG4gIDUwOiAuNSxcbiAgbWVkaXVtOiAuNSxcbiAgNjU6IC42NSxcbiAgNzU6IC43NSxcbiAgc3Ryb25nOiAuNzUsXG4gIDkwOiAuOVxuKSAhZGVmYXVsdDtcbiR0cmFuc3BhcmVudC1iZy1vcGFjaXRpZXM6IG1hcC1tZXJnZSgkdHJhbnNwYXJlbnQtYmctb3BhY2l0aWVzLCAkdHJhbnNwYXJlbnQtYmctb3BhY2l0aWVzLW92ZXJyaWRlcyk7XG4kdHJhbnNwYXJlbnQtYmctY29sb3JzOiAocHJpbWFyeTogJHRyYW5zcGFyZW50LWJnLW9wYWNpdGllcywgc2Vjb25kYXJ5OiAkdHJhbnNwYXJlbnQtYmctb3BhY2l0aWVzKSAhZGVmYXVsdDtcblxuLy8tLS0tLSBUb29sc1xuLy8gQ29uZmlndXJhdGlvbiAoYWN0aXZhdGUgb25seSB0aG9zZSBuZWVkZWQpXG4kdGVhc2VzOiAoXCJncmlkXCIsIFwibGlzdFwiLCBcInNpbXBsZVwiLCBcInNpbXBsZS1yZWFsaXNhdGlvbnNcIikgIWRlZmF1bHQ7XG4kZm9ybXM6ICgpICFkZWZhdWx0O1xuXG4vLy0tLS0tIFRvcCBCYXJcbiR0b3AtYmFyLWhpZGUtb24tbW9iaWxlOiB0cnVlICFkZWZhdWx0O1xuJHRvcC1iYXItaGlkZS1vbi1zY3JvbGwtbW9iaWxlOiB0cnVlICFkZWZhdWx0O1xuJHRvcC1iYXItaGlkZS1vbi1zY3JvbGwtZGVza3RvcDogJHRvcC1iYXItaGlkZS1vbi1zY3JvbGwtbW9iaWxlICFkZWZhdWx0O1xuJHRvcC1iYXItcGFkZGluZy14OiAkY29udGFpbmVyLXBhZGRpbmcteCAhZGVmYXVsdDtcbiR0b3AtYmFyLXBhZGRpbmcteTogLjVyZW0gIWRlZmF1bHQ7XG4kdG9wLWJhci1oZWlnaHQ6IGlmKG51bGwgIT0gaW5kZXgoJG1lbnVzLCBcInNlY29uZGFyeVwiKSwgMi41cmVtLCAxLjVyZW0pICFkZWZhdWx0O1xuJHRvcC1iYXItb3BhY2l0eTogMSAhZGVmYXVsdDtcbiR0b3AtYmFyLXNvY2lhbC1saW5rcy1tYXJnaW46IG1hcC1nZXQoJHNwYWNlcnMsIDQpICFkZWZhdWx0O1xuJHRvcC1iYXItZGVmYXVsdC1iZy1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJHRvcC1iYXItdHJhbnNwYXJlbnQtaGVhZGVyLWJnLWNvbG9yOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcblxuLy8tLS0tLSBIZWFkZXJcbiRoZWFkZXItYnRuLWljb246ICRmYS12YXItcGhvbmUgIWRlZmF1bHQ7XG4kaGVhZGVyLWJ0bi1mYS1zdHlsZTogXCJzb2xpZFwiICFkZWZhdWx0O1xuJGhlYWRlci1idG4tc2hvdy10ZXh0LWJyZWFrcG9pbnQ6ICRkZXNrdG9wLWJyZWFrcG9pbnQgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gRmVhdHVyZWQgaW1hZ2VcbiRmZWF0dXJlZC1pbWFnZS1oZWlnaHQ6IDUwdmggIWRlZmF1bHQ7XG4kaG9tZS1mZWF0dXJlZC1pbWFnZS1oZWlnaHQ6IDUwdmggIWRlZmF1bHQ7XG4kZmVhdHVyZWQtaW1hZ2Utb3ZlcmxheS1jb2xvcjogYmxhY2sgIWRlZmF1bHQ7XG4kZmVhdHVyZWQtaW1hZ2Utb3ZlcmxheS1vcGFjaXR5OiAuMyAhZGVmYXVsdDtcbiRob21lLWZlYXR1cmVkLWltYWdlLXRleHQtdHJhbnNpdGlvbjogdHJ1ZSAhZGVmYXVsdDtcbiRob21lLWZlYXR1cmVkLWltYWdlLXRleHQtYW5pbWF0aW9uLWR1cmF0aW9uOiAxLjVzICFkZWZhdWx0O1xuXG4vLy0tLS0tIENvbnRlbnQgQWJvdmVcbiRjb250ZW50LWFib3ZlLXRleHQtY29sb3I6IHdoaXRlICFkZWZhdWx0O1xuXG4vLy0tLS0tIFNoYXBlc1xuLy8gcG9zc2libGUgc2hhcGVzIGFyZTogKHNxdWFyZSwgY2lyY2xlLCB0cmlhbmdsZSwgbG96ZW5nZSlcbi8vIHBvc3NpYmxlIHVuaXRzIGFyZTogKHJlbTogMXJlbSwgZW06IDFlbSwgdnc6IDIuNXZ3KVxuJHNoYXBlczogKGNpcmNsZSkgIWRlZmF1bHQ7XG4kc2hhcGVzLXVuaXRzOiAocmVtOiAxcmVtKSAhZGVmYXVsdDtcbiRzaGFwZXMtZGVmYXVsdC11bml0OiBudGgobnRoKCRzaGFwZXMtdW5pdHMsIDEpLCAyKSAhZGVmYXVsdDtcbiRzaGFwZXMtbWF4LW11bHRpcGxpZXI6IDEwICFkZWZhdWx0O1xuXG4vLy0tLS0tIFRleHQgY29udHJhc3RcbiRhbHBoYS1lbmFibGUtYnRuLWNsb3NlLXRleHQtY29udHJhc3QtY29sb3JzOiBmYWxzZSAhZGVmYXVsdDtcbiRhbHBoYS1idG4tY2xvc2UtdGV4dC1jb250cmFzdC1jb2xvcnM6ICR0aGVtZS1jb2xvcnMgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gVGV4dCBzaGFkb3dcbiRhbHBoYS10ZXh0LXNoYWRvdy1jb2xvcjogY29sb3ItY29udHJhc3Qod2hpdGUpICFkZWZhdWx0O1xuJGFscGhhLXRleHQtc2hhZG93LXJhZGl1czogLjVyZW0gIWRlZmF1bHQ7XG4kYWxwaGEtdGV4dC1zaGFkb3ctcmFkaXVzLXNtOiAuMjVyZW0gIWRlZmF1bHQ7XG4kYWxwaGEtdGV4dC1zaGFkb3ctcmFkaXVzLWxnOiAxcmVtICFkZWZhdWx0O1xuJGFscGhhLXRleHQtc2hhZG93LWNvbG9yczogKCkgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gT3ZlcmxheVxuJGFscGhhLW92ZXJsYXktY29sb3I6ICRtb2RhbC1iYWNrZHJvcC1iZyAhZGVmYXVsdDtcbiRhbHBoYS1vdmVybGF5LW9wYWNpdHk6ICRtb2RhbC1iYWNrZHJvcC1vcGFjaXR5ICFkZWZhdWx0O1xuJGFscGhhLW92ZXJsYXktY29sb3JzOiAoKSAhZGVmYXVsdDtcblxuLy8tLS0tLSBaIGluZGV4XG4kYWxwaGEtei1pbmRleGVzOiAoMSwgMiwgMTApICFkZWZhdWx0O1xuXG4vLy0tLS0tIFNpZGViYXJcbiRzaWRlYmFyOiBmYWxzZSAhZGVmYXVsdDtcbiRzaWRlYmFyLWJnLWNvbG9yOiByZ2JhKCRwcmltYXJ5LCAuMSkgIWRlZmF1bHQ7XG4kc2lkZWJhci1wYWRkaW5nOiBtYXAtZ2V0KCRzcGFjZXJzLCAzKSAhZGVmYXVsdDtcbiRzaWRlYmFyLWJvcmRlci1yYWRpdXM6IC4zNzVyZW0gIWRlZmF1bHQ7XG4kc2lkZWJhci13aWRnZXRzLXNwYWNlcjogbWFwLWdldCgkc3BhY2VycywgNikgIWRlZmF1bHQ7XG4kc2lkZWJhci13aWRnZXQtY29udGVudC1zcGFjZXI6IG1hcC1nZXQoJHNwYWNlcnMsIDIpICFkZWZhdWx0O1xuJHNpZGViYXItd2lkZ2V0LXRpdGxlLXNwYWNlcjogbWFwLWdldCgkc3BhY2VycywgMykgIWRlZmF1bHQ7XG4kc2lkZWJhci13aWRnZXQtdGl0bGUtZm9udC1zaXplOiAkaDMtZm9udC1zaXplICFkZWZhdWx0O1xuJHNpZGViYXItd2lkZ2V0LWxpc3QtZm9udC1zaXplOiAxcmVtICFkZWZhdWx0O1xuXG4vLy0tLS0tIFN1cnRpdGxlXG4kYWxwaGEtc3VydGl0bGUtZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1zYW5zLXNlcmlmICFkZWZhdWx0O1xuJGFscGhhLXN1cnRpdGxlLWZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1iYXNlICFkZWZhdWx0O1xuJGFscGhhLXN1cnRpdGxlLWZvbnQtc2l6ZS1kZXNrdG9wOiAkYWxwaGEtc3VydGl0bGUtZm9udC1zaXplICFkZWZhdWx0O1xuJGFscGhhLXN1cnRpdGxlLWZvbnQtd2VpZ2h0OiBub3JtYWwgIWRlZmF1bHQ7XG4kYWxwaGEtc3VydGl0bGUtY29sb3I6IHZhcigtLWJzLXByaW1hcnkpICFkZWZhdWx0O1xuJGFscGhhLXN1cnRpdGxlLW1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNwYWNlcnMsIDQpICFkZWZhdWx0O1xuJGFscGhhLXN1cnRpdGxlLXRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gQ29weXJpZ2h0XG4kYWxwaGEtY29weXJpZ2h0LWZvbnQtc2l6ZTogLjgyNXJlbSAhZGVmYXVsdDtcbiRhbHBoYS1jb3B5cmlnaHQtbGluay1ob3Zlci1jb2xvcjogdmFyKC0tdGhlbWUtc2tpbi10ZXh0LWNvbG9yKSAhZGVmYXVsdDtcbiRhbHBoYS1jb3B5cmlnaHQtbGluay10ZXh0LWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gTmF2aWdhdGlvbnNcbi8vLS0tLSBDb21tb25cbiRuYXYtbGluay1hZnRlci1oZWlnaHQ6IDJweCAhZGVmYXVsdDtcblxuLy8tLS0tIENlbnRlclxuJG5hdi1jZW50ZXItbG9nby1wYWRkaW5nLXg6IDFyZW0gIWRlZmF1bHQ7XG4kbmF2LWNlbnRlci1sb2dvLXBhZGRpbmcteTogMCAhZGVmYXVsdDtcblxuLy8tLS0tIFN1Ym1lbnUgbW9ycGhcbiRzdWJtZW51LW1vcnBoLW1pbi13aWR0aDogMzUwcHggIWRlZmF1bHQ7XG4kc3VibWVudS1tb3JwaC1tYXgtd2lkdGg6IDM1dncgIWRlZmF1bHQ7XG4kc3VibWVudS1tb3JwaC1kcm9wZG93bi1saXN0LWJvcmRlci1yYWRpdXM6IC41cmVtICFkZWZhdWx0O1xuJHN1Ym1lbnUtbW9ycGgtZHJvcGRvd24tbGlzdC1wYWRkaW5nOiAuNXJlbSAhZGVmYXVsdDtcbiRzdWJtZW51LW1vcnBoLWRyb3Bkb3duLWxpc3QtYmctY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiRzdWJtZW51LW1vcnBoLWRyb3Bkb3duLWxpc3QtYm94LXNoYWRvdzogdmFyKC0tYnMtYm94LXNoYWRvdykgIWRlZmF1bHQ7XG4kc3VibWVudS1tb3JwaC1kcm9wZG93bi1saXN0LWFycm93LWhlaWdodDogLjc1cmVtICFkZWZhdWx0O1xuJHN1Ym1lbnUtbW9ycGgtZHJvcGRvd24tbGlzdC1hcnJvdy1sZWZ0OiA1cmVtICFkZWZhdWx0O1xuJHN1Ym1lbnUtbW9ycGgtYWN0aXZlLW1lbnUtYmctY29sb3I6ICRncmF5LTEwMCAhZGVmYXVsdDtcbiRzdWJtZW51LW1vcnBoLWFuY2VzdG9ycy1mb250LXdlaWdodDogNTAwICFkZWZhdWx0O1xuJHN1Ym1lbnUtbW9ycGgtbGluay1jb2xvcjogJG5hdi1saW5rLWNvbG9yICFkZWZhdWx0O1xuJHN1Ym1lbnUtbW9ycGgtbGluay1ob3Zlci1jb2xvcjogJG5hdi1saW5rLWhvdmVyLWNvbG9yICFkZWZhdWx0O1xuJHN1Ym1lbnUtbW9ycGgtbGluay1jb2xvci1jdXJyZW50OiAkbmF2LWNvbG9yLWN1cnJlbnQgIWRlZmF1bHQ7XG4kc3VibWVudS1tb3JwaC1saW5rLWNvbG9yLWFuY2VzdG9yOiAkbmF2LWNvbG9yLWFuY2VzdG9yICFkZWZhdWx0O1xuJHN1Ym1lbnUtbW9ycGgtc2Nyb2xsYmFyLWNvbG9yOiAkcHJpbWFyeSAhZGVmYXVsdDtcbiRzdWJtZW51LW1vcnBoLXNjcm9sbGJhci1iZy1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy0tLS0tIEJyZWFkY3J1bWJzXG4kYnJlYWRjcnVtYi1tb2JpbGUtc2hhZG93LXNpemU6IDEuNXJlbSAhZGVmYXVsdDtcbiRicmVhZGNydW1iLW1vYmlsZS1zaGFkb3ctY29sb3I6ICRib2R5LWJnICFkZWZhdWx0O1xuJGJyZWFkY3J1bWItb24tZmVhdHVyZWQtbW9iaWxlLXNoYWRvdy1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy0tLS0tIFRlYXNlXG4kdGVhc2UtYmFkZ2UtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiR0ZWFzZS1iYWRnZS1iZzogdmFyKC0tYnMtcHJpbWFyeSkgIWRlZmF1bHQ7XG5cbiR0ZWFzZS1vdmVybGF5LXRleHQtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiR0ZWFzZS1vdmVybGF5LXRleHQtc2hhZG93OiAwIDAgLjI1cmVtICMwMDA7XG4kdGVhc2Utb3ZlcmxheS1iZy1jb2xvcjogJHNlY29uZGFyeSAhZGVmYXVsdDtcbiR0ZWFzZS1vdmVybGF5LWJnLW9wYWNpdHk6IC41ICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBXb29Db21tZXJjZVxuXG4kd2MtcHJpbWFyeTogdmFyKC0tYnMtcHJpbWFyeSkgIWRlZmF1bHQ7XG4kd29vY29tbWVyY2U6IHZhcigtLWJzLXByaW1hcnkpICFkZWZhdWx0O1xuJHdjLWdyZWVuOiAkc3VjY2VzcyAhZGVmYXVsdDtcbiR3Yy1yZWQ6ICRkYW5nZXIgIWRlZmF1bHQ7XG4kd2Mtb3JhbmdlOiAkd2FybmluZyAhZGVmYXVsdDtcbiR3Yy1ibHVlOiAkaW5mbyAhZGVmYXVsdDtcbiR3Yy1wcmltYXJ5LXRleHQ6ICR3aGl0ZSAhZGVmYXVsdDtcbiR3Yy1zZWNvbmRhcnk6ICRzZWNvbmRhcnkgIWRlZmF1bHQ7XG4kd2Mtc2Vjb25kYXJ5LXRleHQ6ICR3aGl0ZSAhZGVmYXVsdDtcbiR3Yy1oaWdobGlnaHQ6ICNiM2FmNTQgIWRlZmF1bHQ7XG4kd2MtaGlnaGxpZ2h0LXRleHQ6ICR3aGl0ZSAhZGVmYXVsdDtcbiR3Yy1jb250ZW50LWJnOiAjZmZmICFkZWZhdWx0O1xuJHdjLXN1YnRleHQ6ICM3Njc2NzYgIWRlZmF1bHQ7XG5cbiR3Yy1zdG9jay1pbi1zdG9jay1jb2xvcjogJHdjLWdyZWVuICFkZWZhdWx0O1xuJHdjLXN0b2NrLWxvdy1zdG9jay1jb2xvcjogJHdjLW9yYW5nZSAhZGVmYXVsdDtcbiR3Yy1zdG9jay1hdmFpbGFibGUtb24tYmFja29yZGVyLWNvbG9yOiAkd2Mtb3JhbmdlICFkZWZhdWx0O1xuJHdjLXN0b2NrLW91dC1vZi1zdG9jay1jb2xvcjogJHdjLXJlZCAhZGVmYXVsdDtcblxuJHdjLXN0b2NrLWluLXN0b2NrLWljb246ICRmYS12YXItY2lyY2xlLWNoZWNrICFkZWZhdWx0O1xuJHdjLXN0b2NrLWxvdy1zdG9jay1pY29uOiAkZmEtdmFyLWNoYXJ0LWxpbmUtZG93biAhZGVmYXVsdDtcbiR3Yy1zdG9jay1hdmFpbGFibGUtb24tYmFja29yZGVyLWljb246ICRmYS12YXItY2xvY2stcm90YXRlLWxlZnQgIWRlZmF1bHQ7XG4kd2Mtc3RvY2stb3V0LW9mLXN0b2NrLWljb246ICRmYS12YXItY2lyY2xlLXhtYXJrICFkZWZhdWx0O1xuXG4vLyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvciBvbGQgJHdvb2NvbW1lcmNlICYgJHdvb2NvbW1lcmNlU2lkZWJhciB2YXJpYWJsZXNcbkBpZiB0eXBlLW9mKCR3b29jb21tZXJjZSkgPT0gXCJib29sXCIge1xuICBAd2FybiBcIlVzYWdlIG9mICR3b29jb21tZXJjZSB2YXJpYWJsZSBhcyBib29sIGlzIGRlcHJlY2F0ZWQsIHVzZSB3b29jb21tZXJjZS5lbmFibGVkIGluIHdvb2NvbW1lcmNlLnlhbWwgaW5zdGVhZC5cIjtcbiAgJHdvb2NvbW1lcmNlOiBtYXAtZXh0ZW5kKG1hcC1nZXQoJGNvbmZpZy1kZWZhdWx0cywgXCJ3b29jb21tZXJjZVwiKSwgKGVuYWJsZWQ6ICR3b29jb21tZXJjZSkpO1xuICAkd29vY29tbWVyY2UtZW5hYmxlZDogbWFwLWdldC1kZWVwKCR3b29jb21tZXJjZSwgXCJlbmFibGVkXCIpO1xufVxuXG5AaWYgdmFyaWFibGUtZXhpc3RzKHdvb2NvbW1lcmNlU2lkZWJhcikge1xuICBAd2FybiBcIlVzYWdlIG9mICR3b29jb21tZXJjZVNpZGViYXIgdmFyaWFibGUgZGVwcmVjYXRlZCwgdXNlICR3b29jb21tZXJjZS1zaWRlYmFyIGluc3RlYWQuXCI7XG4gICR3b29jb21tZXJjZS1zaWRlYmFyOiAkd29vY29tbWVyY2VTaWRlYmFyO1xufVxuXG4vLyBBY2NvdW50XG4kYWNjb3VudC1uYXZpZ2F0aW9uLWljb25zOiAoXG4gIGRhc2hib2FyZDogJGZhLXZhci1ob21lLFxuICBvcmRlcnM6ICRmYS12YXItZG9sbHksXG4gIHN1YnNjcmlwdGlvbnM6ICRmYS12YXItY2xvY2stcm90YXRlLWxlZnQsXG4gIG1lbWJlcnNoaXBzOiAkZmEtdmFyLXVzZXItY3Jvd24sXG4gIGRvd25sb2FkczogJGZhLXZhci1kb3dubG9hZCxcbiAgZWRpdC1hZGRyZXNzOiAkZmEtdmFyLW1hcC1tYXJrZXItZWRpdCxcbiAgcGF5bWVudC1tZXRob2RzOiAkZmEtdmFyLWNyZWRpdC1jYXJkLFxuICBlZGl0LWFjY291bnQ6ICRmYS12YXItdXNlci1lZGl0LFxuICBib29raW5nczogJGZhLXZhci1jYWxlbmRhci1hbHQsXG4gIGN1c3RvbWVyLWxvZ291dDogJGZhLXZhci1zaWduLW91dFxuKSAhZGVmYXVsdDtcblxuLy8gQXR0cmlidXRlc1xuJHdjLXByb2R1Y3QtYXR0cmlidXRlLWZvbnQtc2l6ZTogLjlyZW0gIWRlZmF1bHQ7XG4kd2MtcHJvZHVjdC1hdHRyaWJ1dGUtZXZlbi1iZzogcmdiYSgkcHJpbWFyeSwgLjEpICFkZWZhdWx0O1xuJHdjLXByb2R1Y3QtYXR0cmlidXRlLWxhYmVsLWNvbG9yOiAkZ3JheS03MDAgIWRlZmF1bHQ7XG5cbi8vIEF2YWlsYWJpbGl0eVxuJHdjLXN0b2NrLWZvbnQtc2l6ZTogLjhyZW0gIWRlZmF1bHQ7XG4kd2Mtc3RvY2staWNvbi13aWR0aDogJGZhLWZ3LXdpZHRoICFkZWZhdWx0O1xuJHdjLXN0b2NrLWljb24tZm9udC1zaXplOiAkZmEtc2l6ZS1zY2FsZS1iYXNlICFkZWZhdWx0O1xuJHdjLXN0b2NrLWluZm86IChcbiAgaW4tc3RvY2s6IChjb2xvcjogJHdjLXN0b2NrLWluLXN0b2NrLWNvbG9yLCBpY29uOiAkd2Mtc3RvY2staW4tc3RvY2staWNvbiksXG4gIGxvdy1zdG9jazogKGNvbG9yOiAkd2Mtc3RvY2stbG93LXN0b2NrLWNvbG9yLCBpY29uOiAkd2Mtc3RvY2stbG93LXN0b2NrLWljb24pLFxuICBhdmFpbGFibGUtb24tYmFja29yZGVyOiAoY29sb3I6ICR3Yy1zdG9jay1hdmFpbGFibGUtb24tYmFja29yZGVyLWNvbG9yLCBpY29uOiAkd2Mtc3RvY2stYXZhaWxhYmxlLW9uLWJhY2tvcmRlci1pY29uKSxcbiAgb3V0LW9mLXN0b2NrOiAoY29sb3I6ICR3Yy1zdG9jay1vdXQtb2Ytc3RvY2stY29sb3IsIGljb246ICR3Yy1zdG9jay1vdXQtb2Ytc3RvY2staWNvbiksXG4pICFkZWZhdWx0O1xuXG5cbi8vLS0tLS0gQWRkIHRvIENhcnQgYnV0dG9uXG4kYnRuLWFkZHRvY2FydC1iZzogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kYnRuLWFkZHRvY2FydC1jb2xvcjogJHNlY29uZGFyeSAhZGVmYXVsdDtcbiRidG4tYWRkdG9jYXJ0LWhvdmVyLWJnOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRidG4tYWRkdG9jYXJ0LWhvdmVyLWNvbG9yOiB2YXIoLS1icy1wcmltYXJ5KSAhZGVmYXVsdDtcbiRidG4tYWRkdG9jYXJ0LWljb25zOiAoXG4gIHNpbXBsZTogJGZhLXZhci1zaG9wcGluZy1iYXNrZXQsXG4gIGdyb3VwZWQ6ICRmYS12YXItZXllLFxuICB2YXJpYWJsZTogJGZhLXZhci1jb2dzLFxuICBib29raW5nOiAkZmEtdmFyLWNhbGVuZGFyLWRheXMsXG4pICFkZWZhdWx0O1xuXG4vLy0tLS0tIEJvb2tpbmdcbiR3Yy1ib29raW5nLWRhdGVwaWNrZXItdWktYmc6ICRzZWNvbmRhcnkgIWRlZmF1bHQ7XG4kd2MtYm9va2luZy1kYXRlcGlja2VyLXVpLWNvbG9yOiBjb2xvci1jb250cmFzdCgkd2MtYm9va2luZy1kYXRlcGlja2VyLXVpLWJnKSAhZGVmYXVsdDtcbiR3Yy1ib29raW5nLWRhdGVwaWNrZXItYmxvY2stb2RkLWJnOiAkZ3JheS0xMDAgIWRlZmF1bHQ7XG4kd2MtYm9va2luZy1kYXRlcGlja2VyLWJsb2NrLW9kZC1ob3Zlci1iZzogc2hhZGUtY29sb3IoJHdjLWJvb2tpbmctZGF0ZXBpY2tlci1ibG9jay1vZGQtYmcsIDIwJSkgIWRlZmF1bHQ7XG4kd2MtYm9va2luZy1kYXRlcGlja2VyLWJsb2NrLW9kZC1jb2xvcjogY29sb3ItY29udHJhc3QoJHdjLWJvb2tpbmctZGF0ZXBpY2tlci1ibG9jay1vZGQtYmcpICFkZWZhdWx0O1xuJHdjLWJvb2tpbmctZGF0ZXBpY2tlci1ibG9jay1ldmVuLWJnOiAkZ3JheS0yMDAgIWRlZmF1bHQ7XG4kd2MtYm9va2luZy1kYXRlcGlja2VyLWJsb2NrLWV2ZW4taG92ZXItYmc6IHNoYWRlLWNvbG9yKCR3Yy1ib29raW5nLWRhdGVwaWNrZXItYmxvY2stZXZlbi1iZywgMjAlKSAhZGVmYXVsdDtcbiR3Yy1ib29raW5nLWRhdGVwaWNrZXItYmxvY2stZXZlbi1jb2xvcjogY29sb3ItY29udHJhc3QoJHdjLWJvb2tpbmctZGF0ZXBpY2tlci1ibG9jay1ldmVuLWJnKSAhZGVmYXVsdDtcbiR3Yy1ib29raW5nLWNvc3QtYmc6ICRncmF5LTEwMCAhZGVmYXVsdDtcbiR3Yy1ib29raW5nLWNvc3QtY29sb3I6IGNvbG9yLWNvbnRyYXN0KCR3Yy1ib29raW5nLWNvc3QtYmcpICFkZWZhdWx0O1xuXG4vLy0tLS0tIFByaWNlIENvbG9yXG4kd2MtcHJpY2UtY29sb3I6ICRzZWNvbmRhcnkgIWRlZmF1bHQ7XG4kd2MtZGVsLXByaWNlLWNvbG9yOiByZ2JhKCRncmF5LTUwMCwgLjYpICFkZWZhdWx0O1xuXG4vLy0tLS0tIERpc2NvdW50IGJhZGdlXG4kYmFkZ2Utb25zYWxlLWJnOiAkc2Vjb25kYXJ5ICFkZWZhdWx0O1xuJGJhZGdlLW9uc2FsZS1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy0tLS0tIE1pbmkgQ2FydFxuJG1pbmljYXJ0LWNvdW50ZXItYmc6ICRzZWNvbmRhcnkgIWRlZmF1bHQ7XG4kbWluaWNhcnQtY291bnRlci1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJG1pbmljYXJ0LXRvdGFsLWJnOiAkc2Vjb25kYXJ5ICFkZWZhdWx0O1xuJG1pbmljYXJ0LXRvdGFsLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kbWluaWNhcnQtaXRlbS1jb2xvcjogdmFyKC0tYnMtcHJpbWFyeSkgIWRlZmF1bHQ7XG4kbWluaWNhcnQtcXR5LWNvbG9yOiB2YXIoLS1icy1ib2R5LWNvbG9yKSAhZGVmYXVsdDtcblxuLy8tLS0tLSBDYXJ0XG4kY2FydC1idG4tYWN0aW9ucy1iZzogJHByaW1hcnkgIWRlZmF1bHQ7XG4kY2FydC1idG4tY2hlY2tvdXQtYmc6ICRzZWNvbmRhcnkgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gTWVzc2FnZVxuJHdjLW1lc3NhZ2UtYmctY29sb3I6ICRncmF5LTEwMCAhZGVmYXVsdDtcbiR3Yy1tZXNzYWdlLWNvbG9yOiB2YXIoLS1icy1ib2R5LWNvbG9yKSAhZGVmYXVsdDtcbiR3Yy1tZXNzYWdlLWljb24tY29sb3I6ICRncmVlbiAhZGVmYXVsdDtcblxuJHdjLWluZm8tYmctY29sb3I6ICRncmF5LTEwMCAhZGVmYXVsdDtcbiR3Yy1pbmZvLWNvbG9yOiB2YXIoLS1icy1ib2R5LWNvbG9yKSAhZGVmYXVsdDtcbiR3Yy1pbmZvLWljb24tY29sb3I6ICRibHVlICFkZWZhdWx0O1xuXG4kd2MtZXJyb3ItYmctY29sb3I6ICRncmF5LTEwMCAhZGVmYXVsdDtcbiR3Yy1lcnJvci1jb2xvcjogdmFyKC0tYnMtYm9keS1jb2xvcikgIWRlZmF1bHQ7XG4kd2MtZXJyb3ItaWNvbi1jb2xvcjogcmVkICFkZWZhdWx0O1xuXG4vLy0tLS0tIFNpZGViYXJcbiR3Yy1zaWRlYmFyLW1vYmlsZS1jb2xvcjogd2hpdGUgIWRlZmF1bHQ7XG4kd2Mtc2lkZWJhci1tb2JpbGUtYmFjay10b3Atb2Zmc2V0LXk6IDNyZW0gIWRlZmF1bHQ7XG4kd2Mtc2lkZWJhci1jb2xvcjogcmdiYSgkcHJpbWFyeSwgLjEpICFkZWZhdWx0O1xuJHdjLWZpbHRlci10b2dnbGVyLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kd2MtZmlsdGVyLXRvZ2dsZXItYmc6ICRwcmltYXJ5ICFkZWZhdWx0O1xuJHdjLWNhdC1saW5rLWJnOiAkZ3JheS0xMDAgIWRlZmF1bHQ7XG4kd2MtY2F0LWxpbmstaG92ZXItYmc6IHZhcigtLWJzLXByaW1hcnkpICFkZWZhdWx0O1xuJHdjLWNhdC1saW5rLWhvdmVyLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kd2Mtc2lkZWJhci1jdXJyZW50LXRlcm0tbGluay1jb2xvcjogJG5hdi1jb2xvci1jdXJyZW50ICFkZWZhdWx0O1xuJHdjLXNpZGViYXItY3VycmVudC10ZXJtLWxpbmstaG92ZXItY29sb3I6IHRpbnQtY29sb3IoJHdjLXNpZGViYXItY3VycmVudC10ZXJtLWxpbmstY29sb3IsIDEwJSkgIWRlZmF1bHQ7XG4kd2Mtc2lkZWJhci1jdXJyZW50LXRlcm0tcGFyZW50LWxpbmstY29sb3I6ICRuYXYtY29sb3ItYW5jZXN0b3IgIWRlZmF1bHQ7XG4kd2Mtc2lkZWJhci1jdXJyZW50LXRlcm0tcGFyZW50LWxpbmstaG92ZXItY29sb3I6IHRpbnQtY29sb3IoJHdjLXNpZGViYXItY3VycmVudC10ZXJtLXBhcmVudC1saW5rLWNvbG9yLCAxMCUpICFkZWZhdWx0O1xuXG4vLy0tLS0tIFRvcCBiYXIgaWNvbnNcbi8vLS0tLS0gVG9wIGJhciBpY29uc1xuJHRvcC1iYXItaWNvbnM6IChjb250YWN0OiAkZmEtdmFyLWVudmVsb3BlLCBwaG9uZTogJGZhLXZhci1waG9uZS1hbHQpICFkZWZhdWx0O1xuJHRvcC1iYXItaWNvbnMtbWFyZ2luOiAuMjVyZW0gIWRlZmF1bHQ7XG4kdG9wLWJhci1pY29ucy1mYS12YXJpYW50OiBcInNvbGlkXCIgIWRlZmF1bHQ7XG4kd2MtdG9wLWJhci1pY29uczogJHRvcC1iYXItaWNvbnMgIWRlZmF1bHQ7XG4kd2MtdG9wLWJhci1pY29ucy1tYXJnaW46ICR0b3AtYmFyLWljb25zLW1hcmdpbiAhZGVmYXVsdDtcbiR3Yy10b3AtYmFyLWljb25zLWZhLXZhcmlhbnQ6ICR0b3AtYmFyLWljb25zLWZhLXZhcmlhbnQgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gVGVhc2VcbiR3Yy10ZWFzZS1wcm9kdWN0LWJnLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kd2MtdGVhc2UtcHJvZHVjdC1ib3JkZXItcmFkaXVzOiBtYXAtZ2V0KCRzcGFjZXJzLCAyKSAhZGVmYXVsdDtcbiR3Yy10ZWFzZS1wcm9kdWN0LWxpbmstcGFkZGluZzogbWFwLWdldCgkc3BhY2VycywgMikgIWRlZmF1bHQ7XG4kd2MtdGVhc2UtcHJvZHVjdC1saW5rLWltYWdlLXBhZGRpbmc6ICR3Yy10ZWFzZS1wcm9kdWN0LWxpbmstcGFkZGluZyAqIC0xICFkZWZhdWx0O1xuJHdjLXRlYXNlLXByb2R1Y3QtaG92ZXItYm9yZGVyLWNvbG9yOiAkc2Vjb25kYXJ5ICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBTb2NpYWwgc2hhcmUgaWNvbnNcbiRzb2NpYWwtc2hhcmUtaG92ZXItYm9yZGVyLWNvbG9yOiByZ2JhKCRwcmltYXJ5LCAuNSkgIWRlZmF1bHQ7XG5cbi8vLS0tLS0tIFdQTUxcbiR3cG1sLWRldjogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLS0tLS0tIEFscGhhIGJsb2Nrc1xuLy8tLS0tLSBGYWNlYm9vayB2aWRlb1xuJGFscGhhLWZiLXZpZGVvLWxvYWRlci1iZy1jb2xvcjogJHByaW1hcnkgIWRlZmF1bHQ7XG4kYWxwaGEtZmItdmlkZW8tbG9hZGVyLWNvbG9yOiBjb2xvci1jb250cmFzdCgkYWxwaGEtZmItdmlkZW8tbG9hZGVyLWJnLWNvbG9yKSAhZGVmYXVsdDtcblxuLy8tLS0tLSBHb29nbGUgUmV2aWV3c1xuJGdvb2dsZS1yZXZpZXdzLWJvcmRlci10b3A6IDZweCBzb2xpZCAjNGZjZTZhICFkZWZhdWx0O1xuJGdvb2dsZS1yZXZpZXdzLWJvcmRlci1yYWRpdXM6IC4xNXJlbSAhZGVmYXVsdDtcbiRnb29nbGUtcmV2aWV3cy1sb2dvLXdpZHRoOiA1MHB4ICFkZWZhdWx0O1xuJGdvb2dsZS1yZXZpZXdzLXNjb3JlLWZvbnQtc2l6ZTogMS4yNXJlbSAhZGVmYXVsdDtcbiRnb29nbGUtcmV2aWV3cy1yYXRpbmctc3Rhci1jb2xvcjogI2U3NzExYiAhZGVmYXVsdDtcbiRnb29nbGUtcmV2aWV3cy1yYXRpbmctY291bnQtY29sb3I6ICM3YTdhN2EgIWRlZmF1bHQ7XG4kZ29vZ2xlLXJldmlld3Mtei1pbmRleDogMjAwMCAhZGVmYXVsdDtcbiRnb29nbGUtcmV2aWV3cy1vZmZzZXQ6IDJyZW0gIWRlZmF1bHQ7XG4kZ29vZ2xlLXJldmlld3Mtb2Zmc2V0LWJvdHRvbTogJGdvb2dsZS1yZXZpZXdzLW9mZnNldCAhZGVmYXVsdDtcbiRnb29nbGUtcmV2aWV3cy1vZmZzZXQtbGVmdDogJGdvb2dsZS1yZXZpZXdzLW9mZnNldCAhZGVmYXVsdDtcbiRnb29nbGUtcmV2aWV3cy1vZmZzZXQtcmlnaHQ6ICRnb29nbGUtcmV2aWV3cy1vZmZzZXQgIWRlZmF1bHQ7XG4kZ29vZ2xlLWJhZGdlLWRpc3BsYXk6IGJsb2NrICFkZWZhdWx0O1xuJGdvb2dsZS1yZXZpZXdzLWJhZGdlLWhpZGUtb24tbW9iaWxlOiB0cnVlICFkZWZhdWx0O1xuXG4vLy0tLS0tIEhlcm8gYmFubmVyXG4kYWxwaGEtaGVyby1iYW5uZXItb2Zmc2V0LXk6IDMuNXJlbSAhZGVmYXVsdDtcbiRhbHBoYS1oZXJvLWJhbm5lci1vZmZzZXQtdG9wOiAkYWxwaGEtaGVyby1iYW5uZXItb2Zmc2V0LXkgIWRlZmF1bHQ7XG4kYWxwaGEtaGVyby1iYW5uZXItb2Zmc2V0LWJvdHRvbTogJGFscGhhLWhlcm8tYmFubmVyLW9mZnNldC15ICFkZWZhdWx0O1xuXG4vLy0tLS0tIEljb25cbiRpY29uLWJsb2NrLWljb24tY29sb3I6IHZhcigtLWJzLXByaW1hcnkpICFkZWZhdWx0O1xuXG4vLy0tLS0tIE1hcFxuJGFscGhhLW1hcC1kZWZhdWx0LWhlaWdodDogMjUwcHggIWRlZmF1bHQ7XG4kYWxwaGEtbWFwLWRlZmF1bHQtaGVpZ2h0LWxnOiAkYWxwaGEtbWFwLWRlZmF1bHQtaGVpZ2h0ICogMiAhZGVmYXVsdDtcblxuLy8tLS0tLSBSYXRpbmdcbiRhbHBoYS1yYXRpbmctc3Rhci1vbi1jb2xvcjogJHllbGxvdyAhZGVmYXVsdDtcbiRhbHBoYS1yYXRpbmctc3Rhci1vZmYtY29sb3I6ICRncmF5LTEwMCAhZGVmYXVsdDtcblxuLy8tLS0tLSBSZWluc3VyYW5jZVxuLy8tLS0tIFNvdWJhIE1hZ2Fzc2Egc3R5bGVzXG4kc291YmEtcmVpbnN1cmFuY2UtY29sb3JzOiAocHJpbWFyeSwgc2Vjb25kYXJ5KSAhZGVmYXVsdDtcbiRzb3ViYS1yZWluc3VyYW5jZS10b3Atb2Zmc2V0OiAycmVtICFkZWZhdWx0O1xuXG4vLy0tLS0tIFNlcnZpY2VzXG4kc2VydmljZXMtYmctaG92ZXItY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiRzZXJ2aWNlcy1iZy1ob3Zlci1jb2xvci1saWdodDogJHNlcnZpY2VzLWJnLWhvdmVyLWNvbG9yICFkZWZhdWx0O1xuJHNlcnZpY2VzLWJnLWhvdmVyLWNvbG9yLWRhcms6ICRzZXJ2aWNlcy1iZy1ob3Zlci1jb2xvciAhZGVmYXVsdDtcbiRzZXJ2aWNlcy1iZy1ob3Zlci1vcGFjaXR5OiAxICFkZWZhdWx0O1xuJHNlcnZpY2VzLWJnLWhvdmVyLW9wYWNpdHktbGlnaHQ6ICRzZXJ2aWNlcy1iZy1ob3Zlci1vcGFjaXR5ICFkZWZhdWx0O1xuJHNlcnZpY2VzLWJnLWhvdmVyLW9wYWNpdHktZGFyazogLjIgIWRlZmF1bHQ7XG5cbi8vLS0tLS0tIEFscGhhIG1vZHVsZXNcbi8vLS0tLS0gQ29tbW9uXG4kbG9hZGluZy1tb2R1bGVzLWJnLWNvbG9yOiByZ2JhKCR3aGl0ZSwgLjc1KSAhZGVmYXVsdDtcbiRsb2FkaW5nLW1vZHVsZXMtbG9hZGVyLWNvbG9yOiB2YXIoLS1icy1wcmltYXJ5KSAhZGVmYXVsdDtcbiRsb2FkaW5nLW1vZHVsZXMtbG9hZGVyLWZvbnQtc2l6ZTogMnJlbSAhZGVmYXVsdDtcbiRsb2FkaW5nLW1vZHVsZXMtei1pbmRleDogMTAgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gRGVmYXVsdFxuLy8tLS0tIFBhZ2Ugc2Nyb2xsXG4kaG9tZS1wYWdlLXNjcm9sbC1saXN0ZW5lci1oZWlnaHQ6IDE1dmggIWRlZmF1bHQ7XG4kcGFnZS1zY3JvbGwtbGlzdGVuZXItaGVpZ2h0OiAkaG9tZS1wYWdlLXNjcm9sbC1saXN0ZW5lci1oZWlnaHQgLyAyICFkZWZhdWx0O1xuJHBhZ2Utc2Nyb2xsLWxpc3RlbmVyLWhlaWdodC1kZXNrdG9wOiAkaG9tZS1wYWdlLXNjcm9sbC1saXN0ZW5lci1oZWlnaHQgLyAzICFkZWZhdWx0O1xuXG4vLy0tLS0tIE9wdGlvbmFsXG4vLy0tLS0gQmFjayB0byB0b3BcbiRiYWNrLXRvLXRvcC1vZmZzZXQteDogMXJlbSAhZGVmYXVsdDtcbiRiYWNrLXRvLXRvcC1vZmZzZXQteTogMXJlbSAhZGVmYXVsdDtcbiRiYWNrLXRvLXRvcC13aGF0c2FwcC1idXR0b24tb2Zmc2V0LXk6IDRyZW0gIWRlZmF1bHQ7XG4kYmFjay10by10b3AtZGVmYXVsdC1idXR0b24tdHJhbnNsYXRlLXk6ICRiYWNrLXRvLXRvcC1vZmZzZXQteSAqIC0yICFkZWZhdWx0O1xuXG4vLy0tLS0gSGVhZGVyIHN0YXRlc1xuLy8tLS0gU2hydW5rIGxvZ29cbiRzaHJ1bmstbG9nby1oZWlnaHQtcmF0aW86IC44ICFkZWZhdWx0O1xuXG4vLy0tLS0gUmFuZ2Ugc2xpZGVyXG4kcmFuZ2Utc2xpZGVyLXdyYXBwZXItaGVpZ2h0OiAzcmVtICFkZWZhdWx0O1xuXG4vLy0tLS0gUm91c3F1aWxsZVxuJHJvdXNxdWlsbGUtYmFubmVyLWxvZ28tbWFyZ2luOiAwIGF1dG8gIWRlZmF1bHQ7XG4kcm91c3F1aWxsZS1iYW5uZXItbG9nby1tYXJnaW4tdGFibGV0OiAwIGF1dG8gbWFwLWdldCgkc3BhY2VycywgOCkgIWRlZmF1bHQ7XG4kcm91c3F1aWxsZS1iYW5uZXItbG9nby1tYXJnaW4tbW9iaWxlOiAwIGF1dG8gbWFwLWdldCgkc3BhY2VycywgNCkgIWRlZmF1bHQ7XG4kcm91c3F1aWxsZS1iYW5uZXItbG9nby1oZWlnaHQ6ICRsb2dvLWhlaWdodCAhZGVmYXVsdDtcbiRyb3VzcXVpbGxlLWJhbm5lci1sb2dvLW1heC1oZWlnaHQ6IDVyZW0gIWRlZmF1bHQ7XG5cbi8vLS0tLSBTZXJ2aWNlcyBCdXR0b25cbiRzZXJ2aWNlcy1idXR0b24tbW9iaWxlLW9mZnNldDogLjVyZW0gIWRlZmF1bHQ7XG4kc2VydmljZXMtYnV0dG9uLWRlc2t0b3Atb2Zmc2V0LWVuZDogMi41cmVtICFkZWZhdWx0O1xuJHNlcnZpY2VzLWJ1dHRvbi1mb290ZXItcGFkZGluZy1ib3R0b206IDQuNXJlbSAhZGVmYXVsdDtcbiRzZXJ2aWNlcy1idXR0b24tYmFjay10by10b3Atb2Zmc2V0LWJvdHRvbTogJHNlcnZpY2VzLWJ1dHRvbi1mb290ZXItcGFkZGluZy1ib3R0b20gKyAxcmVtICFkZWZhdWx0O1xuXG4vLy0tLS0gU3dpcGVyXG4kc3dpcGVyLXRoZW1lLWNvbG9yOiB2YXIoLS1icy1wcmltYXJ5KSAhZGVmYXVsdDtcbiRzd2lwZXItbmF2aWdhdGlvbi1zaXplOiAxLjc1cmVtICFkZWZhdWx0O1xuXG4vLy0tLSBUcmFuc3BhcmVudCBIZWFkZXJcbiR0cmFuc3BhcmVudC1oZWFkZXItYmctY29sb3I6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICRncmF5LTcwMCwgdHJhbnNwYXJlbnQpICFkZWZhdWx0O1xuJHRyYW5zcGFyZW50LWhlYWRlci10ZXh0LWNvbG9yOiAjZmZmICFkZWZhdWx0O1xuJHRyYW5zcGFyZW50LWhlYWRlci1zaGFkb3ctY29sb3I6ICMwMDAgIWRlZmF1bHQ7XG4kdHJhbnNwYXJlbnQtaGVhZGVyLXNoYWRvdy1yYWRpdXM6IC4xMjVyZW0gIWRlZmF1bHQ7XG4kdHJhbnNwYXJlbnQtaGVhZGVyLWxvZ28tY29sb3I6ICR0cmFuc3BhcmVudC1oZWFkZXItdGV4dC1jb2xvciAhZGVmYXVsdDtcbiR0cmFuc3BhcmVudC1oZWFkZXItbG9nby1zaGFkb3ctY29sb3I6ICR0cmFuc3BhcmVudC1oZWFkZXItc2hhZG93LWNvbG9yICFkZWZhdWx0O1xuJHRyYW5zcGFyZW50LWhlYWRlci1sb2dvLXNoYWRvdy1yYWRpdXM6ICR0cmFuc3BhcmVudC1oZWFkZXItc2hhZG93LXJhZGl1cyAhZGVmYXVsdDtcblxuLy8tLS0tIFdoYXRzYXBwIEJ1dHRvblxuJHdoYXRzYXBwLWJ1dHRvbi1iZzogIzI1ZDM2NiAhZGVmYXVsdDtcbiR3aGF0c2FwcC1idXR0b24tY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiR3aGF0c2FwcC1idXR0b24tb2Zmc2V0LXg6IDFyZW0gIWRlZmF1bHQ7XG4kd2hhdHNhcHAtYnV0dG9uLW9mZnNldC15OiAxcmVtICFkZWZhdWx0O1xuJHdoYXRzYXBwLWJ1dHRvbi16LWluZGV4OiAxMCAhZGVmYXVsdDtcblxuLy8tLS0tIEltYWdlIEdhbGxlcnlcbi8vIFwib3ZlcmxheVwiLCBcImRlZmF1bHQtb3BhY2l0eVwiLCBcImhvdmVyLW9wYWNpdHlcIiwgXCJjdXN0b21cIlxuJGltYWdlLWdhbGxlcnktYW5pbWF0aW9uLXR5cGU6IFwib3ZlcmxheVwiICFkZWZhdWx0O1xuXG4vLy0tLSBPcGFjaXR5XG4kaW1hZ2UtZ2FsbGVyeS1pbWFnZS1vcGFjaXR5OiAuNyAhZGVmYXVsdDtcblxuLy8tLS0gT3ZlcmxheVxuJGltYWdlLWdhbGxlcnktb3ZlcmxheS1jb2xvcjogI2ZmZiAhZGVmYXVsdDtcbiRpbWFnZS1nYWxsZXJ5LW92ZXJsYXktb3BhY2l0eTogLjE1ICFkZWZhdWx0O1xuJGltYWdlLWdhbGxlcnktb3ZlcmxheS1iYWNrZHJvcC1maWx0ZXI6IHNhdHVyYXRlKDEyNSUpIGNvbnRyYXN0KDEyNSUpICFkZWZhdWx0O1xuJGltYWdlLWdhbGxlcnktb3ZlcmxheS10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgc2NhbGUoLjUpICFkZWZhdWx0O1xuJGltYWdlLWdhbGxlcnktb3ZlcmxheS1pY29uOiAkZmEtdmFyLXNlYXJjaC1wbHVzICFkZWZhdWx0O1xuJGltYWdlLWdhbGxlcnktb3ZlcmxheS1pY29uLXN0eWxlOiBcInJlZ3VsYXJcIiAhZGVmYXVsdDtcbiRpbWFnZS1nYWxsZXJ5LW92ZXJsYXktaWNvbi1jb2xvcjogI2ZmZiAhZGVmYXVsdDtcbiRpbWFnZS1nYWxsZXJ5LW92ZXJsYXktaWNvbi1vcGFjaXR5OiAuODUgIWRlZmF1bHQ7XG4kaW1hZ2UtZ2FsbGVyeS1vdmVybGF5LWljb24tZm9udC1zaXplOiAxLjVyZW0gIWRlZmF1bHQ7XG4kaW1hZ2UtZ2FsbGVyeS1vdmVybGF5LWljb24tdGV4dC1zaGFkb3c6IDAgMCAuMTI1cmVtIHJnYmEoYmxhY2ssIC43NSkgIWRlZmF1bHQ7XG4kaW1hZ2UtZ2FsbGVyeS1vdmVybGF5LWljb24tdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xLjVyZW0pICFkZWZhdWx0O1xuJGltYWdlLWdhbGxlcnktb3ZlcmxheS1pbWFnZS1vZmZzZXQ6IC4xICFkZWZhdWx0O1xuJGltYWdlLWdhbGxlcnktb3ZlcmxheS1pbWFnZS1zY2FsZTogMSArICRpbWFnZS1nYWxsZXJ5LW92ZXJsYXktaW1hZ2Utb2Zmc2V0ICFkZWZhdWx0O1xuXG4vLy0tLS0gTGVhZmxldCBNYXBcbiRtYXAtbWFya2VyLWNvbG9yLWRlZmF1bHQ6IHZhcigtLWJzLXNlY29uZGFyeSkgIWRlZmF1bHQ7XG4kbWFwLW1hcmtlci1jb2xvci1sb2FkaW5nOiBncmF5ICFkZWZhdWx0O1xuJG1hcC1tYXJrZXItY29sb3ItYWN0aXZlOiB2YXIoLS1icy1wcmltYXJ5KSAhZGVmYXVsdDtcblxuLy8tLS0tIE1hc29ucnlcbiRtYXNvbnJ5LWdhbGxlcnktZ2FwOiAuNzVyZW0gIWRlZmF1bHQ7XG5cbi8vLS0tLSBXb29Db21tZXJjZSBTZWFyY2ggT3ZlcmxheVxuJHNlYXJjaC1vdmVybGF5LWJnLWNvbG9yOiBibGFjayAhZGVmYXVsdDtcbiRzZWFyY2gtb3ZlcmxheS1iZy1vcGFjaXR5OiAuMjUgIWRlZmF1bHQ7XG4kc2VhcmNoLW92ZXJsYXktYmFja2Ryb3AtZmlsdGVyOiBibHVyKC4xMjVyZW0pICFkZWZhdWx0O1xuJHNlYXJjaC1vdmVybGF5LWZvcm0tZm9udC1zaXplOiAuOXJlbSAhZGVmYXVsdDtcbiRzZWFyY2gtb3ZlcmxheS1mb3JtLWJvcmRlci1yYWRpdXM6IC4yNXJlbSAhZGVmYXVsdDtcblxuLy8tLS0tIFdvb0NvbW1lcmNlIFJldmlldyBmb3JtXG4kd29vY29tbWVyY2UtcmV2aWV3LWZvcm0tc3RhcnMtZm9udHNpemU6IDJyZW0gIWRlZmF1bHQ7XG5cbi8vLS0tLS0tIEd1dGVuYmVyZyBibG9ja3Ncbi8vLS0tLS0gUmFuayBNYXRoXG4vLy0tLS0gRkFRXG4kcmFuay1tYXRoLWZhcS11c2UtbGVnYWN5LXN0eWxlczogdHJ1ZSAhZGVmYXVsdDtcbiRyYW5rLW1hdGgtZmFxLWJnLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kcmFuay1tYXRoLWZhcS1ib3gtc2hhZG93OiAwIC41cmVtIC41cmVtIC0uMjVyZW0gcmdiYSgkYmxhY2ssIC4xKSAhZGVmYXVsdDtcbiRyYW5rLW1hdGgtZmFxLWJvcmRlci1yYWRpdXM6IG1hcC1nZXQoJHNwYWNlcnMsIDEpICFkZWZhdWx0O1xuJHJhbmstbWF0aC1mYXEtYm9yZGVyLWNvbG9yOiAkZ3JheS0yMDAgIWRlZmF1bHQ7XG4kcmFuay1tYXRoLWZhcS1ib3JkZXI6IDFweCBzb2xpZCAkcmFuay1tYXRoLWZhcS1ib3JkZXItY29sb3IgIWRlZmF1bHQ7XG4kcmFuay1tYXRoLWZhcS1pdGVtLXBhZGRpbmc6IG1hcC1nZXQoJHNwYWNlcnMsIDMpICFkZWZhdWx0O1xuJHJhbmstbWF0aC1mYXEtcXVlc3Rpb24tZm9udC1zaXplOiAxLjI1cmVtICFkZWZhdWx0O1xuJHJhbmstbWF0aC1mYXEtcXVlc3Rpb24tZ2FwOiBtYXAtZ2V0KCRzcGFjZXJzLCAyKSAhZGVmYXVsdDtcbiRyYW5rLW1hdGgtZmFxLXF1ZXN0aW9uLXBhZGRpbmctYm90dG9tOiAkcmFuay1tYXRoLWZhcS1xdWVzdGlvbi1nYXAgIWRlZmF1bHQ7XG4kcmFuay1tYXRoLWZhcS1xdWVzdGlvbi1ib3JkZXItY29sb3I6ICRyYW5rLW1hdGgtZmFxLWJvcmRlci1jb2xvciAhZGVmYXVsdDtcbiRyYW5rLW1hdGgtZmFxLXF1ZXN0aW9uLWJvcmRlci1ib3R0b206ICRyYW5rLW1hdGgtZmFxLWJvcmRlciAhZGVmYXVsdDtcbiRyYW5rLW1hdGgtZmFxLXF1ZXN0aW9uLWljb246ICRmYS12YXItcXVlc3Rpb24tY2lyY2xlICFkZWZhdWx0O1xuJHJhbmstbWF0aC1mYXEtcXVlc3Rpb24taWNvbi1jb2xvcjogJHNlY29uZGFyeSAhZGVmYXVsdDtcbiRyYW5rLW1hdGgtZmFxLXF1ZXN0aW9uLWljb24tZm9udC1zaXplOiAxcmVtICFkZWZhdWx0O1xuJHJhbmstbWF0aC1mYXEtcXVlc3Rpb24taWNvbi1vZmZzZXQtdG9wOiAuMnJlbSAhZGVmYXVsdDtcblxuLy8tLS0tIEltYWdlXG4kZ3V0ZW5iZXJnLWltYWdlLXJhdGlvczogKFwiMVwiLCBcIjQvM1wiLCBcIjMvNFwiLCBcIjMvMlwiLCBcIjIvM1wiLCBcIjE2LzlcIiwgXCI5LzE2XCIpICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBGb250cyBvcHRpbWl6YXRpb25cbi8vLS0tLS0gRm9udEF3ZXNvbWUgaWNvbnNcbiRmb250LWZhLXBybzogXCJGb250IEF3ZXNvbWUgNiBQcm9cIjtcbiRmb250LWZhLWJyYW5kczogXCJGb250IEF3ZXNvbWUgNiBCcmFuZHNcIjtcbi8vIHNlZSAuLi92ZW5kb3JzL19mb250YXdlc29tZS5zY3NzIGZvciBpY29ucyBwcm9jZXNzaW5nXG4vLyBzZWUgLi4vdmVuZG9ycy9fZm9udGF3ZXNvbWUtaWNvbnMuc2NzcyBmb3IgYXZhaWxhYmxlIGljb25zICYgaWNvbnMgZ3JvdXBzXG4vLyAkY3VzdG9tLXVzZWQtZmEtaWNvbnM6IChmb250LWF3ZXNvbWUtZmxhZzogJGZhLXZhci1mb250LWF3ZXNvbWUtZmxhZywgcGx1czogJGZhLXZhci1wbHVzKTtcbiRjdXN0b20tdXNlZC1mYS1pY29uczogKCkgIWRlZmF1bHQ7XG4vLyAkdXNlZC1mYS1pY29ucy1ncm91cHM6IChhY2NvbW1vZGF0aW9ucywgd29vY29tbWVyY2UpO1xuJHVzZWQtZmEtaWNvbnMtZ3JvdXBzOiAoKSAhZGVmYXVsdDtcblxuLy8tLS0tLSBJY29ucyBsaXN0XG4kYWxwaGEtZmEtaWNvbnMtbGlzdDogKCkgIWRlZmF1bHQ7XG4kYWxwaGEtZmEtaWNvbnMtbGlzdC1jb2xvcjogdmFyKC0tYnMtcHJpbWFyeSkgIWRlZmF1bHQ7XG4kYWxwaGEtZmEtaWNvbnMtbGlzdC1zdHlsZTogc29saWQgIWRlZmF1bHQ7XG4kYWxwaGEtZmEtaWNvbnMtbGlzdC1jb2xvcnM6ICgpICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBTbGlja1xuJHNsaWNrLWZvbnQtcGF0aDogXCJ+c2xpY2stY2Fyb3VzZWwvc2xpY2svZm9udHMvXCI7XG4kc2xpY2stZm9udC1mYW1pbHk6ICRmb250LWZhLXBybztcblxuLy8tLS0tLS0gQ0Y3IEVmZmVjdFxuJGNvbG9yLWZvcm0tdGV4dDogdmFyKC0tYnMtYm9keS1jb2xvcikgIWRlZmF1bHQ7XG4kY29sb3ItZm9ybS1maWxsZWQ6IHZhcigtLWJzLXByaW1hcnkpICFkZWZhdWx0O1xuJGNvbG9yLWZvcm0tZmllbGQtYm9yZGVyOiB2YXIoLS1icy1ib3JkZXItY29sb3IpICFkZWZhdWx0O1xuJGZvcm0tZmllbGQtYm9yZGVyLXJhZGl1czogdmFyKC0tYnMtYm9yZGVyLXJhZGl1cykgIWRlZmF1bHQ7XG4kZm9ybS1maWVsZC1tYXJnaW4tYm90dG9tOiAycmVtICFkZWZhdWx0O1xuJGZvcm0tZ3V0dGVyOiAuNzVyZW0gIWRlZmF1bHQ7XG4kZm9ybS1sYWJlbC1ndXR0ZXItbGVmdDogMS41cmVtICFkZWZhdWx0O1xuJGZvcm0tbGFiZWwtZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplICFkZWZhdWx0O1xuJGZvcm0tbGFiZWwtZm9udC1zaXplLWZpbGxlZDogLjdyZW0gIWRlZmF1bHQ7XG4kZm9ybS1sYWJlbC1saW5lLWhlaWdodDogJGlucHV0LWxpbmUtaGVpZ2h0ICFkZWZhdWx0O1xuJGZvcm0tbGFiZWwtbm8tYW5pbS1tYXJnaW4tdG9wOiAuNXJlbSAhZGVmYXVsdDtcbiRmb3JtLWxhYmVsLW5vLWFuaW0tdHJhbnNsYXRlOiAtLjI1cmVtICFkZWZhdWx0O1xuJGZvcm0tZXJyb3ItZm9udC1zaXplOiAuOXJlbSAhZGVmYXVsdDtcblxuLy8tLS0tLS0gQm9vdHN0cmFwIFJlc3BvbnNpdmUgSW1hZ2UgUmF0aW9cbi8vIG11c3QgYmUgYSBsaXN0IG9mIHJhdGlvcyBmb3JtYXR0ZWQgbGlrZSB0aGlzOiAoMSAxKSwgKDQgMyksICgzIDIpLCAoMTYgOSksICgyMSA5KVxuJG1lZGlhLXJhdGlvczogKCkgIWRlZmF1bHQ7XG4iLCIvLyBmdW5jdGlvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIGZhLWNvbnRlbnQ6IGNvbnZlbmllbmNlIGZ1bmN0aW9uIHVzZWQgdG8gc2V0IGNvbnRlbnQgcHJvcGVydHlcbkBmdW5jdGlvbiBmYS1jb250ZW50KCRmYS12YXIpIHtcbiAgQHJldHVybiB1bnF1b3RlKFwiXFxcIiN7ICRmYS12YXIgfVxcXCJcIik7XG59XG5cbi8vIGZhLWRpdmlkZTogT3JpZ2luYWxseSBvYnRhaW5lZCBmcm9tIHRoZSBCb290c3RyYXAgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwXG4vL1xuLy8gTGljZW5zZWQgdW5kZXI6IFRoZSBNSVQgTGljZW5zZSAoTUlUKVxuLy9cbi8vIENvcHlyaWdodCAoYykgMjAxMS0yMDIxIFR3aXR0ZXIsIEluYy5cbi8vIENvcHlyaWdodCAoYykgMjAxMS0yMDIxIFRoZSBCb290c3RyYXAgQXV0aG9yc1xuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbkBmdW5jdGlvbiBmYS1kaXZpZGUoJGRpdmlkZW5kLCAkZGl2aXNvciwgJHByZWNpc2lvbjogMTApIHtcbiAgJHNpZ246IGlmKCRkaXZpZGVuZCA+IDAgYW5kICRkaXZpc29yID4gMCwgMSwgLTEpO1xuICAkZGl2aWRlbmQ6IGFicygkZGl2aWRlbmQpO1xuICAkZGl2aXNvcjogYWJzKCRkaXZpc29yKTtcbiAgJHF1b3RpZW50OiAwO1xuICAkcmVtYWluZGVyOiAkZGl2aWRlbmQ7XG4gIEBpZiAkZGl2aWRlbmQgPT0gMCB7XG4gICAgQHJldHVybiAwO1xuICB9XG4gIEBpZiAkZGl2aXNvciA9PSAwIHtcbiAgICBAZXJyb3IgXCJDYW5ub3QgZGl2aWRlIGJ5IDBcIjtcbiAgfVxuICBAaWYgJGRpdmlzb3IgPT0gMSB7XG4gICAgQHJldHVybiAkZGl2aWRlbmQ7XG4gIH1cbiAgQHdoaWxlICRyZW1haW5kZXIgPj0gJGRpdmlzb3Ige1xuICAgICRxdW90aWVudDogJHF1b3RpZW50ICsgMTtcbiAgICAkcmVtYWluZGVyOiAkcmVtYWluZGVyIC0gJGRpdmlzb3I7XG4gIH1cbiAgQGlmICRyZW1haW5kZXIgPiAwIGFuZCAkcHJlY2lzaW9uID4gMCB7XG4gICAgJHJlbWFpbmRlcjogZmEtZGl2aWRlKCRyZW1haW5kZXIgKiAxMCwgJGRpdmlzb3IsICRwcmVjaXNpb24gLSAxKSAqIC4xO1xuICB9XG4gIEByZXR1cm4gKCRxdW90aWVudCArICRyZW1haW5kZXIpICogJHNpZ247XG59XG4iLCJAa2V5ZnJhbWVzIGZvcm0tbGFiZWwtZmlsbGVkIHtcbiAgMCUge1xuICAgIGxlZnQ6ICRmb3JtLWxhYmVsLWd1dHRlci1sZWZ0O1xuICAgIGZvbnQtc2l6ZTogJGZvcm0tbGFiZWwtZm9udC1zaXplO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxuICAyNSUge1xuICAgIGxlZnQ6ICRmb3JtLWxhYmVsLWd1dHRlci1sZWZ0O1xuICAgIGZvbnQtc2l6ZTogJGZvcm0tbGFiZWwtZm9udC1zaXplO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIHRyYW5zZm9ybTogcm90YXRlWSg5MGRlZykgdHJhbnNsYXRlWSgwKTtcbiAgfVxuICA3NSUge1xuICAgIGxlZnQ6ICRmb3JtLWxhYmVsLWd1dHRlci1sZWZ0LWZpbGxlZDtcbiAgICBmb250LXNpemU6ICRmb3JtLWxhYmVsLWZvbnQtc2l6ZS1maWxsZWQ7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yLWZvcm0tZmllbGQtYmFja2dyb3VuZDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoOTBkZWcpIHRyYW5zbGF0ZVkoJGZvcm0tbGFiZWwtdHJhbnNsYXRlKTtcbiAgfVxuICAxMDAlIHtcbiAgICBsZWZ0OiAkZm9ybS1sYWJlbC1ndXR0ZXItbGVmdC1maWxsZWQ7XG4gICAgZm9udC1zaXplOiAkZm9ybS1sYWJlbC1mb250LXNpemUtZmlsbGVkO1xuICAgIGJhY2tncm91bmQ6ICRjb2xvci1mb3JtLWZpZWxkLWJhY2tncm91bmQ7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVZKDApIHRyYW5zbGF0ZVkoJGZvcm0tbGFiZWwtdHJhbnNsYXRlKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZvcm0tbGFiZWwge1xuICAwJSB7XG4gICAgbGVmdDogJGZvcm0tbGFiZWwtZ3V0dGVyLWxlZnQtZmlsbGVkO1xuICAgIGZvbnQtc2l6ZTogJGZvcm0tbGFiZWwtZm9udC1zaXplLWZpbGxlZDtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3ItZm9ybS1maWVsZC1iYWNrZ3JvdW5kO1xuICAgIHRyYW5zZm9ybTogcm90YXRlWSgwKSB0cmFuc2xhdGVZKCRmb3JtLWxhYmVsLXRyYW5zbGF0ZSk7XG4gIH1cbiAgMjUlIHtcbiAgICBsZWZ0OiAkZm9ybS1sYWJlbC1ndXR0ZXItbGVmdC1maWxsZWQ7XG4gICAgZm9udC1zaXplOiAkZm9ybS1sYWJlbC1mb250LXNpemUtZmlsbGVkO1xuICAgIGJhY2tncm91bmQ6ICRjb2xvci1mb3JtLWZpZWxkLWJhY2tncm91bmQ7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVZKDkwZGVnKSB0cmFuc2xhdGVZKCRmb3JtLWxhYmVsLXRyYW5zbGF0ZSk7XG4gIH1cbiAgNzUlIHtcbiAgICBsZWZ0OiAkZm9ybS1sYWJlbC1ndXR0ZXItbGVmdDtcbiAgICBmb250LXNpemU6ICRmb3JtLWxhYmVsLWZvbnQtc2l6ZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoOTBkZWcpIHRyYW5zbGF0ZVkoMCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgbGVmdDogJGZvcm0tbGFiZWwtZ3V0dGVyLWxlZnQ7XG4gICAgZm9udC1zaXplOiAkZm9ybS1sYWJlbC1mb250LXNpemU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG4iLCIvLy0tLS0tLS0tLS0tLSBCb290c3RyYXBcbkBpbXBvcnQgXCJ+Ym9vdHN0cmFwL3Njc3MvZnVuY3Rpb25zXCI7XG5cbi8vLyBSZW1vdmUgdGhlIHVuaXQgb2YgYSBsZW5ndGhcbi8vLyBAcGFyYW0ge051bWJlcn0gJG51bWJlciAtIE51bWJlciB0byByZW1vdmUgdW5pdCBmcm9tXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIFVuaXRsZXNzIG51bWJlclxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJG51bWJlcikge1xuICBAaWYgdHlwZS1vZigkbnVtYmVyKSA9PSBcIm51bWJlclwiIGFuZCBub3QgdW5pdGxlc3MoJG51bWJlcikge1xuICAgIEByZXR1cm4gJG51bWJlciAvICgkbnVtYmVyICogMCArIDEpO1xuICB9XG5cbiAgQHJldHVybiAkbnVtYmVyO1xufVxuXG5AZnVuY3Rpb24gcHgycmVtKCRweCwgJGZvbnQtYmFzZS1yZW06ICRmb250LXNpemUtYmFzZSwgJGZvbnQtYmFzZS1weDogMTYpIHtcbiAgJGZvbnQtYmFzZS1zaXplOiBzdHJpcC11bml0KCRmb250LWJhc2UtcHgpICogc3RyaXAtdW5pdCgkZm9udC1iYXNlLXJlbSk7XG5cbiAgQHJldHVybiAoc3RyaXAtdW5pdCgkcHgpIC8gJGZvbnQtYmFzZS1zaXplKSAqIDFyZW07XG59XG5cbi8vIEFkZCBhIG5ldyB1dGlsaXR5IHRvIEJvb3RzdHJhcCB1dGlsaXRpZXNcbkBmdW5jdGlvbiBib290c3RyYXAtYWRkLXV0aWxpdHkoJGJzLXV0aWxpdGllcywgJHV0aWxpdHkta2V5LCAkcHJvcGVydGllcykge1xuICAkYnMtdXRpbGl0aWVzOiBtYXAtbWVyZ2UoXG4gICAgJGJzLXV0aWxpdGllcyxcbiAgICAoXG4gICAgICAkdXRpbGl0eS1rZXk6ICRwcm9wZXJ0aWVzXG4gICAgKVxuICApO1xuXG4gIEByZXR1cm4gJGJzLXV0aWxpdGllcztcbn1cblxuLy8gUmVtb3ZlIGFuIHV0aWxpdHkgZnJvbSBCb290c3RyYXAgdXRpbGl0aWVzXG5AZnVuY3Rpb24gYm9vdHN0cmFwLXJlbW92ZS11dGlsaXR5KCRicy11dGlsaXRpZXMsICR1dGlsaXR5LWtleSkge1xuICAkYnMtdXRpbGl0aWVzOiBtYXAtcmVtb3ZlKCRicy11dGlsaXRpZXMsICR1dGlsaXR5LWtleSk7XG5cbiAgQHJldHVybiAkYnMtdXRpbGl0aWVzO1xufVxuXG4vLyBNZXJnZSB1dGlsaXR5IHByb3BlcnRpZXMgd2l0aCBhbiBleGlzdGluZyBvbmVcbkBmdW5jdGlvbiBib290c3RyYXAtbWVyZ2UtdXRpbGl0aWVzKCRicy11dGlsaXRpZXMsICR1dGlsaXR5LWtleSwgJHByb3BlcnRpZXMpIHtcbiAgJGJzLXV0aWxpdGllczogbWFwLW1lcmdlKFxuICAgICRicy11dGlsaXRpZXMsXG4gICAgKFxuICAgICAgJHV0aWxpdHkta2V5OiBtYXAtbWVyZ2UoXG4gICAgICAgIG1hcC1nZXQoJGJzLXV0aWxpdGllcywgJHV0aWxpdHkta2V5KSxcbiAgICAgICAgJHByb3BlcnRpZXNcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgQHJldHVybiAkYnMtdXRpbGl0aWVzO1xufVxuXG4vLy0tLS0tLS0tLS0tLSBBbHBoYVxuQGZ1bmN0aW9uIGhleC10by1yZ2IoJGNvbG9yKSB7XG4gIEByZXR1cm4gI3tyZWQoJGNvbG9yKX0sICN7Z3JlZW4oJGNvbG9yKX0sICN7Ymx1ZSgkY29sb3IpfTtcbn1cblxuQGZ1bmN0aW9uIGVuY29kZWNvbG9yKCRzdHJpbmcpIHtcbiAgQGlmIHR5cGUtb2YoJHN0cmluZykgPT0gXCJjb2xvclwiIGFuZCBzdHItaW5kZXgoI3skc3RyaW5nfSwgXCIjXCIpID09IDEge1xuICAgICRoZXg6IHN0ci1zbGljZShpZS1oZXgtc3RyKCRzdHJpbmcpLCA0KTtcbiAgICAkc3RyaW5nOiB1bnF1b3RlKFwiI3skaGV4fVwiKTtcblxuICAgIEByZXR1cm4gXCIlMjNcIiArICRzdHJpbmc7XG4gIH1cblxuICBAcmV0dXJuICRzdHJpbmc7XG59XG5cbkBmdW5jdGlvbiBzdHItc3BsaXQoJHN0cmluZywgJHNlcGFyYXRvcikge1xuICAvLyBlbXB0eSBhcnJheS9saXN0XG4gICRzcGxpdC1hcnI6ICgpO1xuICAvLyBmaXJzdCBpbmRleCBvZiBzZXBhcmF0b3IgaW4gc3RyaW5nXG4gICRpbmRleDogc3RyLWluZGV4KCRzdHJpbmcsICRzZXBhcmF0b3IpO1xuICAvLyBsb29wIHRocm91Z2ggc3RyaW5nXG4gIEB3aGlsZSAkaW5kZXggIT0gbnVsbCB7XG4gICAgLy8gZ2V0IHRoZSBzdWJzdHJpbmcgZnJvbSB0aGUgZmlyc3QgY2hhcmFjdGVyIHRvIHRoZSBzZXBhcmF0b3JcbiAgICAkaXRlbTogc3RyLXNsaWNlKCRzdHJpbmcsIDEsICRpbmRleCAtIDEpO1xuICAgIC8vIHB1c2ggaXRlbSB0byBhcnJheVxuICAgICRzcGxpdC1hcnI6IGFwcGVuZCgkc3BsaXQtYXJyLCAkaXRlbSk7XG4gICAgLy8gcmVtb3ZlIGl0ZW0gYW5kIHNlcGFyYXRvciBmcm9tIHN0cmluZ1xuICAgICRzdHJpbmc6IHN0ci1zbGljZSgkc3RyaW5nLCAkaW5kZXggKyAxKTtcbiAgICAvLyBmaW5kIG5ldyBpbmRleCBvZiBzZXBhcmF0b3JcbiAgICAkaW5kZXg6IHN0ci1pbmRleCgkc3RyaW5nLCAkc2VwYXJhdG9yKTtcbiAgfVxuICAvLyBhZGQgdGhlIHJlbWFpbmluZyBzdHJpbmcgdG8gbGlzdCAodGhlIGxhc3QgaXRlbSlcbiAgJHNwbGl0LWFycjogYXBwZW5kKCRzcGxpdC1hcnIsICRzdHJpbmcpO1xuXG4gIEByZXR1cm4gJHNwbGl0LWFycjtcbn1cblxuQGZ1bmN0aW9uIHRvLW51bWJlcigkdmFsdWUpIHtcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSBcIm51bWJlclwiIHtcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfSBAZWxzZSBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0gXCJzdHJpbmdcIiB7XG4gICAgQGVycm9yIFwiVmFsdWUgZm9yIGB0by1udW1iZXJgIHNob3VsZCBiZSBhIG51bWJlciBvciBhIHN0cmluZy5cIjtcbiAgfVxuXG4gICRyZXN1bHQ6IDA7XG4gICRkaWdpdHM6IDA7XG4gICRtaW51czogc3RyLXNsaWNlKCR2YWx1ZSwgMSwgMSkgPT0gXCItXCI7XG4gICRudW1iZXJzOiAoXCIwXCI6IDAsIFwiMVwiOiAxLCBcIjJcIjogMiwgXCIzXCI6IDMsIFwiNFwiOiA0LCBcIjVcIjogNSwgXCI2XCI6IDYsIFwiN1wiOiA3LCBcIjhcIjogOCwgXCI5XCI6IDkpO1xuXG4gIEBmb3IgJGkgZnJvbSBpZigkbWludXMsIDIsIDEpIHRocm91Z2ggc3RyLWxlbmd0aCgkdmFsdWUpIHtcbiAgICAkY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAkaSwgJGkpO1xuXG4gICAgQGlmIChpbmRleChtYXAta2V5cygkbnVtYmVycyksICRjaGFyYWN0ZXIpIG9yICRjaGFyYWN0ZXIgPT0gXCIuXCIpIHtcbiAgICAgIEBpZiAkY2hhcmFjdGVyID09IFwiLlwiIHtcbiAgICAgICAgJGRpZ2l0czogMTtcbiAgICAgIH0gQGVsc2UgaWYgJGRpZ2l0cyA9PSAwIHtcbiAgICAgICAgJHJlc3VsdDogJHJlc3VsdCAqIDEwICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3Rlcik7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJGRpZ2l0czogJGRpZ2l0cyAqIDEwO1xuICAgICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3RlcikgLyAkZGlnaXRzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCk7XG59XG5cbkBmdW5jdGlvbiB0by11bml0KCR2YWx1ZSkge1xuICBAaWYgdHlwZS1vZigkdmFsdWUpICE9IFwic3RyaW5nXCIge1xuICAgIEBlcnJvciBcIlZhbHVlIGZvciBgdG8tdW5pdGAgc2hvdWxkIGJlIGEgc3RyaW5nLlwiO1xuICB9XG5cbiAgJHVuaXRzOiAoXCJweFwiOiAxcHgsIFwiY21cIjogMWNtLCBcIm1tXCI6IDFtbSwgXCIlXCI6IDElLCBcImNoXCI6IDFjaCwgXCJwY1wiOiAxcGMsIFwiaW5cIjogMWluLCBcImVtXCI6IDFlbSwgXCJyZW1cIjogMXJlbSwgXCJwdFwiOiAxcHQsIFwiZXhcIjogMWV4LCBcInZ3XCI6IDF2dywgXCJ2aFwiOiAxdmgsIFwidm1pblwiOiAxdm1pbiwgXCJ2bWF4XCI6IDF2bWF4KTtcbiAgJHBhcnNlZC11bml0OiBmYWxzZTtcblxuICBAZWFjaCAkdW5pdCBpbiAkdW5pdHMge1xuICAgIC8vIHN0ci1pbmRleCAtIGZpbmQgc3Vic3RyaW5nIGluIGEgc3RyaW5nXG4gICAgLy8gJ3B4JyBpbiAnMTBweCcgZm9yIGV4YW1wbGVcblxuICAgIC8vICR1bml0IGlzIGEgcGFpciBvZiBbJ3B4JzogMXB4XSAoaXRlbSBpbiAkdW5pdHMpXG4gICAgLy8gbnRoKFsncHgnOiAxcHhdLCAxKSByZXR1cm5zICdweCdcbiAgICAvLyBudGgoWydweCc6IDFweF0sIDIpIHJldHVybnMgMXB4XG5cbiAgICBAaWYgKHN0ci1pbmRleCgkdmFsdWUsIG50aCgkdW5pdCwgMSkpKSB7XG4gICAgICAkcGFyc2VkLXVuaXQ6IG50aCgkdW5pdCwgMik7XG4gICAgfVxuICB9XG5cbiAgQGlmIChub3QgJHBhcnNlZC11bml0KSB7XG4gICAgQGVycm9yIFwiSW52YWxpZCB1bml0IGAjeyR2YWx1ZX1gLlwiO1xuICB9XG5cbiAgQHJldHVybiAkcGFyc2VkLXVuaXQ7XG59XG5cbkBmdW5jdGlvbiB2YWx1ZS10by1udW1iZXIoJHZhbHVlKSB7XG4gICR0eXBlLW9mOiB0eXBlLW9mKCR2YWx1ZSk7XG5cbiAgQGlmICR0eXBlLW9mID09IFwibWFwXCIge1xuICAgICRyZXN1bHQ6ICgpO1xuICAgIEBlYWNoICRtYXAta2V5LCAkbWFwLXZhbHVlIGluICR2YWx1ZSB7XG4gICAgICAkbnVtYmVyLXZhbHVlOiB2YWx1ZS10by1udW1iZXIoJG1hcC12YWx1ZSk7XG4gICAgICAkcmVzdWx0OiBtYXAtbWVyZ2UoJHJlc3VsdCwgKCRtYXAta2V5OiAkbnVtYmVyLXZhbHVlKSk7XG4gICAgfVxuXG4gICAgJHZhbHVlOiAkcmVzdWx0O1xuICB9IEBlbHNlIGlmICR0eXBlLW9mID09IFwibGlzdFwiIHtcbiAgICAkcmVzdWx0OiAoKTtcbiAgICBAZWFjaCAkbGlzdC12YWx1ZSBpbiAkdmFsdWUge1xuICAgICAgJG51bWJlci12YWx1ZTogdmFsdWUtdG8tbnVtYmVyKCRsaXN0LXZhbHVlKTtcbiAgICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCAkbnVtYmVyLXZhbHVlKTtcbiAgICB9XG5cbiAgICAkdmFsdWU6ICRyZXN1bHQ7XG4gIH0gQGVsc2UgaWYgJHR5cGUtb2YgPT0gXCJzdHJpbmdcIiB7XG4gICAgJG51bWJlcjogdG8tbnVtYmVyKCR2YWx1ZSk7XG4gICAgJHVuaXQ6IHRvLXVuaXQoJHZhbHVlKTtcbiAgICAkdmFsdWU6ICRudW1iZXIgKiAkdW5pdDtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG5AZnVuY3Rpb24gbWFwLWdldC1kZWVwKCRjb25maWcsICRwYXRoLCAkdG8tbnVtYmVyOiBmYWxzZSwgJGRlZmF1bHQtdmFsdWU6IG51bGwpIHtcbiAgJHNwbGl0OiBzdHItc3BsaXQoJHBhdGgsIFwiLlwiKTtcblxuICBAaWYgdHlwZS1vZigkY29uZmlnKSA9PSBcIm1hcFwiIGFuZCBsZW5ndGgoJHBhdGgpID4gMCB7XG4gICAgJGxhc3Qta2V5OiBsZW5ndGgoJHNwbGl0KTtcbiAgICAkY3VycmVudC1jb25maWc6ICRjb25maWc7XG5cbiAgICBAZWFjaCAkY29uZmlnLWtleSBpbiAkc3BsaXQge1xuICAgICAgQGlmICh0eXBlLW9mKCRjdXJyZW50LWNvbmZpZykgPT0gXCJtYXBcIiBhbmQgbWFwLWhhcy1rZXkoJGN1cnJlbnQtY29uZmlnLCAkY29uZmlnLWtleSkpIHtcbiAgICAgICAgJGk6IGluZGV4KCRzcGxpdCwgJGNvbmZpZy1rZXkpO1xuICAgICAgICAkY3VycmVudC1jb25maWc6IG1hcC1nZXQoJGN1cnJlbnQtY29uZmlnLCAkY29uZmlnLWtleSk7XG5cbiAgICAgICAgQGlmICRpID09ICRsYXN0LWtleSB7XG4gICAgICAgICAgJHJldHVybi12YWx1ZTogJGN1cnJlbnQtY29uZmlnO1xuXG4gICAgICAgICAgQGlmICR0by1udW1iZXIge1xuICAgICAgICAgICAgJHJldHVybi12YWx1ZTogdmFsdWUtdG8tbnVtYmVyKCRyZXR1cm4tdmFsdWUpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIEByZXR1cm4gJHJldHVybi12YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIEByZXR1cm4gJGRlZmF1bHQtdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkZGVmYXVsdC12YWx1ZTtcbn1cblxuLy8gQHNlZSBodHRwczovL3d3dy5zYXNzbWVpc3Rlci5jb20vZ2lzdC83NTI1ZjA1NDY0NzlhY2QxZDZlMVxuQGZ1bmN0aW9uIG1hcC1leHRlbmQoJG9iamVjdCwgJG9iamVjdHMuLi4vKiwgJGRlZXAgKi8pIHtcbiAgJGxhc3Q6IG50aCgkb2JqZWN0cywgLTEpO1xuICAkZGVlcDogJGxhc3QgPT0gdHJ1ZTtcbiAgJG1heDogaWYoJGRlZXAsIGxlbmd0aCgkb2JqZWN0cykgLSAxLCBsZW5ndGgoJG9iamVjdHMpKTtcblxuICAvLyBMb29wIHRocm91Z2ggYWxsIG1hcHMgaW4gJG9iamVjdHMuLi5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbWF4IHtcbiAgICAvLyBTdG9yZSBjdXJyZW50IG1hcFxuICAgICRjdXJyZW50OiBudGgoJG9iamVjdHMsICRpKTtcblxuICAgIC8vIElmIG5vdCBpbiBkZWVwIG1vZGUsIHNpbXBseSBtZXJnZSBjdXJyZW50IG1hcCB3aXRoIG9iamVjdFxuICAgIEBpZiBub3QgJGRlZXAge1xuICAgICAgJG9iamVjdDogbWFwLW1lcmdlKCRvYmplY3QsICRjdXJyZW50KTtcbiAgICB9XG5cbiAgICAvLyBJZiBpbiBkZWVwIG1vZGVcbiAgICBAZWxzZSB7XG4gICAgICAvLyBMb29wIHRocm91Z2ggYWxsIHR1cGxlcyBpbiBjdXJyZW50IG1hcFxuICAgICAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRjdXJyZW50IHtcbiAgICAgICAgLy8gSWYgdmFsdWUgaXMgYSBuZXN0ZWQgbWFwIGFuZCBzYW1lIGtleSBmcm9tIG9iamVjdCBpcyBhIG5lc3RlZCBtYXAgYXMgd2VsbFxuICAgICAgICBAaWYgdHlwZS1vZigkdmFsdWUpID09IFwibWFwXCIgYW5kIHR5cGUtb2YobWFwLWdldCgkb2JqZWN0LCAka2V5KSkgPT0gXCJtYXBcIiB7XG4gICAgICAgICAgLy8gUmVjdXJzaXZlIGV4dGVuZFxuICAgICAgICAgICR2YWx1ZTogbWFwLWV4dGVuZChtYXAtZ2V0KCRvYmplY3QsICRrZXkpLCAkdmFsdWUsIHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIC8vIE1lcmdlIGN1cnJlbnQgdHVwbGUgd2l0aCBvYmplY3RcbiAgICAgICAgJG9iamVjdDogbWFwLW1lcmdlKCRvYmplY3QsICgka2V5OiAkdmFsdWUpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRvYmplY3Q7XG59XG5cbkBmdW5jdGlvbiBoYXMtbWVudS10eXBlKCRtZW51cy1saXN0LCAkbWVudSkge1xuICBAcmV0dXJuIGluZGV4KCRtZW51cy1saXN0LCAkbWVudSkgIT0gbnVsbDtcbn1cblxuQGZ1bmN0aW9uIGhhcy1vZmZjYW52YXMoJG1lbnVzLWxpc3QpIHtcbiAgQHJldHVybiBoYXMtbWVudS10eXBlKCRtZW51cy1saXN0LCBcIm9mZmNhbnZhc1wiKSBvciBoYXMtbWVudS10eXBlKCRtZW51cy1saXN0LCBcIm9mZmNhbnZhcy1zaW1wbGVcIik7XG59XG5cbkBmdW5jdGlvbiBsaXN0LXVuaXF1ZSgkbGlzdCkge1xuICAkcmVzdWx0OiAoKTtcblxuICBAZWFjaCAkaXRlbSBpbiAkbGlzdCB7XG4gICAgQGlmIG5vdCBpbmRleCgkcmVzdWx0LCAkaXRlbSkge1xuICAgICAgJHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsICRpdGVtKTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRyZXN1bHQ7XG59XG4iLCIkZm9ybS1kZWZhdWx0LWZvbnQtc2l6ZTogMTZweCAhZGVmYXVsdDtcbiRmb3JtLWd1dHRlcjogLjVyZW0gIWRlZmF1bHQ7XG4kZm9ybS1pbnB1dC10ZXh0LWhlaWdodDogMi41cmVtICFkZWZhdWx0O1xuJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ6IDFyZW07XG4kZm9ybS1sYWJlbC1ndXR0ZXItdG9wOiBjYWxjKCgjeyRmb3JtLWlucHV0LXRleHQtaGVpZ2h0fSAtICN7JGZvcm0tbGFiZWwtbGluZS1oZWlnaHR9KSAvIDIpICAhZGVmYXVsdDtcbiRmb3JtLWxhYmVsLWd1dHRlci1sZWZ0OiAkZm9ybS1ndXR0ZXIgKiAyICAhZGVmYXVsdDtcbiRmb3JtLWxhYmVsLWd1dHRlci1sZWZ0LWZpbGxlZDogJGZvcm0tbGFiZWwtZ3V0dGVyLWxlZnQgIWRlZmF1bHQ7XG4kZm9ybS1sYWJlbC10cmFuc2xhdGU6IC0xLjJyZW0gIWRlZmF1bHQ7XG4kZm9ybS1sYWJlbC1uby1hbmltLXRyYW5zbGF0ZTogJGZvcm0tbGFiZWwtdHJhbnNsYXRlICFkZWZhdWx0O1xuJGZvcm0tbGFiZWwtbm8tYW5pbS1tYXJnaW4tdG9wOiAxcmVtICFkZWZhdWx0O1xuJGZvcm0tbGFiZWwtZm9udC1zaXplOiAuOXJlbSAhZGVmYXVsdDtcbiRmb3JtLWxhYmVsLWZvbnQtc2l6ZS1maWxsZWQ6IC43cmVtICFkZWZhdWx0O1xuJGZvcm0tZXJyb3ItZm9udC1zaXplOiAkZm9ybS1sYWJlbC1mb250LXNpemUgIWRlZmF1bHQ7XG4kZm9ybS1maWVsZC1ib3JkZXItcmFkaXVzOiAuMjVyZW0gIWRlZmF1bHQ7XG4kZm9ybS1maWVsZC1tYXJnaW4tdG9wOiAxcmVtICFkZWZhdWx0O1xuJGZvcm0tZmllbGQtbWFyZ2luLXRvcC10YWJsZXQ6ICRmb3JtLWZpZWxkLW1hcmdpbi10b3AgKiAyICFkZWZhdWx0O1xuJGZvcm0tZmllbGQtbWFyZ2luLWJvdHRvbTogMS41cmVtICFkZWZhdWx0O1xuXG4kZm9ybS1maWVsZC1pbnB1dC1iYWNrZ3JvdW5kOiAjZmZmICFkZWZhdWx0O1xuJGNvbG9yLWZvcm0tdGV4dDogIzRiNTA1NSAhZGVmYXVsdDtcbiRjb2xvci1mb3JtLXRleHQtc3R5bGUtZGFyazogICNmZmYgIWRlZmF1bHQ7XG4kY29sb3ItZm9ybS1maWxsZWQ6ICNhYTE2MzYgIWRlZmF1bHQ7XG4kY29sb3ItZm9ybS1zdWJtaXQ6ICRjb2xvci1mb3JtLWZpbGxlZCAhZGVmYXVsdDtcbiRjb2xvci1jaGVja2JveC1jaGVja2VkOiAkY29sb3ItZm9ybS1maWxsZWQgIWRlZmF1bHQ7XG4kY29sb3ItZm9ybS1tYWlsLXNlbnQ6ICM4N2QzN2MgIWRlZmF1bHQ7XG4kY29sb3ItZm9ybS1lcnJvcnM6IHJlZCAhZGVmYXVsdDtcbiRjb2xvci1mb3JtLWZpZWxkLWJhY2tncm91bmQ6ICNmZmYgIWRlZmF1bHQ7XG4kY29sb3ItZm9ybS1maWVsZC1ib3JkZXI6ICRjb2xvci1mb3JtLXRleHQgIWRlZmF1bHQ7XG5cbiRmaWVsZC1kZXNjLXNpemU6IC44cmVtICFkZWZhdWx0O1xuJGZpZWxkLWRlc2MtY29sb3I6ICM2OTY5NjkgIWRlZmF1bHQ7XG4kZmllbGQtZGVzYy1zdHlsZTogaXRhbGljICFkZWZhdWx0O1xuIiwiaW5wdXQsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gICY6LXdlYmtpdC1hdXRvZmlsbCB7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMTAwcHggJGNvbG9yLWZvcm0tZmllbGQtYmFja2dyb3VuZCBpbnNldDtcbiAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogJGNvbG9yLWZvcm0tdGV4dDtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogJGNvbG9yLWZvcm0tdGV4dDtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuLmdyZWNhcHRjaGEtYmFkZ2Uge1xuICB2aXNpYmlsaXR5OiBjb2xsYXBzZTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDk1OXB4KSB7XG4gIC8vIGRpc3BsYXkgZm9ybSByZXNwb25zZSBvdXRwdXQgYWJvdmUgc3VibWl0IGJ1dHRvbiAmIGxlZ2FsIG5vdGljZSBvbiBtb2JpbGUgJiB0YWJsZXRcbiAgLmZvcm0tZmllbGQtc3VibWl0IHtcbiAgICBvcmRlcjogMTtcbiAgfVxuXG4gIC5mb3JtLWxlZ2FsLW5vdGljZSxcbiAgLmZvcm0tZmllbGQtcmdwZCB7XG4gICAgb3JkZXI6IDI7XG4gIH1cbn1cblxuLndwY2Y3IHtcbiAgZm9udC1zaXplOiAkZm9ybS1kZWZhdWx0LWZvbnQtc2l6ZTtcblxuICAud3BjZjctZm9ybSB7XG4gICAgY29sb3I6ICRjb2xvci1mb3JtLXRleHQ7XG4gICAgbWFyZ2luLXRvcDogJGZvcm0tZmllbGQtbWFyZ2luLXRvcDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAgIG1hcmdpbi10b3A6ICRmb3JtLWZpZWxkLW1hcmdpbi10b3AtdGFibGV0O1xuICAgIH1cblxuICAgIC5mb3JtLWZpZWxkIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLWZpZWxkLW1hcmdpbi1ib3R0b207XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgZWFzZSAuNXM7XG5cbiAgICAgIHA6bm90KFtjbGFzc10pIHtcbiAgICAgICAgZGlzcGxheTogY29udGVudHM7XG4gICAgICB9XG5cbiAgICAgIGlucHV0IHtcbiAgICAgICAgJjpub3QoW3R5cGU9XCJzdWJtaXRcIl0pOm5vdChbdHlwZT1cImZpbGVcIl0pOm5vdChbdHlwZT1cImNoZWNrYm94XCJdKSB7XG4gICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAkZm9ybS1ndXR0ZXI7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1mb3JtLWZpZWxkLWJvcmRlcjtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAkZm9ybS1maWVsZC1ib3JkZXItcmFkaXVzO1xuICAgICAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciBlYXNlIC40cztcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkZm9ybS1maWVsZC1pbnB1dC1iYWNrZ3JvdW5kO1xuXG4gICAgICAgICAgJi53cGNmNy10ZXh0LCAmLndwY2Y3LW51bWJlciB7XG4gICAgICAgICAgICBoZWlnaHQ6ICRmb3JtLWlucHV0LXRleHQtaGVpZ2h0O1xuICAgICAgICAgICAgY29sb3I6ICRjb2xvci1mb3JtLXRleHQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi53cGNmNy1ub3QtdmFsaWQge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3ItZm9ybS1lcnJvcnM7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgJlt0eXBlPVwiZGF0ZVwiXSB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgJjo6LXdlYmtpdC1jYWxlbmRhci1waWNrZXItaW5kaWNhdG9yIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogY2FsYygxMDAlIC0gMi41ZW0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0ZXh0YXJlYSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRmb3JtLWd1dHRlcjtcbiAgICAgICAgcGFkZGluZy10b3A6ICRmb3JtLWd1dHRlcjtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBjb2xvcjogJGNvbG9yLWZvcm0tdGV4dDtcbiAgICAgICAgcmVzaXplOiBub25lO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItZm9ybS1maWVsZC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRmb3JtLWZpZWxkLWJvcmRlci1yYWRpdXM7XG4gICAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciBlYXNlIC40cztcbiAgICAgICAgYmFja2dyb3VuZDogJGZvcm0tZmllbGQtaW5wdXQtYmFja2dyb3VuZDtcbiAgICAgICAgaGVpZ2h0OiBpbml0aWFsO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLndwY2Y3LW5vdC12YWxpZCB7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yLWZvcm0tZXJyb3JzO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHNlbGVjdC53cGNmNy1zZWxlY3QsXG4gICAgICBzZWxlY3Qud3BjZjctZm9ybS1jb250cm9sIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkZm9ybS1ndXR0ZXI7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICBjb2xvcjogJGNvbG9yLWZvcm0tdGV4dDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWZvcm0tZmllbGQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkZm9ybS1maWVsZC1ib3JkZXItcmFkaXVzO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAkZm9ybS1pbnB1dC10ZXh0LWhlaWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogJGZvcm0tZmllbGQtaW5wdXQtYmFja2dyb3VuZDtcblxuICAgICAgICAmLndwY2Y3LW5vdC12YWxpZCB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3ItZm9ybS1lcnJvcnM7XG4gICAgICAgIH1cbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgPiBsYWJlbCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAkZm9ybS1sYWJlbC1ndXR0ZXItdG9wO1xuICAgICAgICBsZWZ0OiAkZm9ybS1sYWJlbC1ndXR0ZXItbGVmdDtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBjb2xvcjogJGNvbG9yLWZvcm0tdGV4dDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIGN1cnNvcjogdGV4dDtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHRyYW5zaXRpb246IGZvbnQtc2l6ZSBlYXNlIC41cywgdHJhbnNmb3JtIGVhc2UtaW4tb3V0IC41cywgYmFja2dyb3VuZC1jb2xvciBlYXNlIC41cywgcGFkZGluZyBlYXNlIC41cztcbiAgICAgICAgZm9udC1zaXplOiAkZm9ybS1sYWJlbC1mb250LXNpemU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9ybS1sYWJlbC1saW5lLWhlaWdodDtcbiAgICAgIH1cblxuICAgICAgJi5zdHlsZS1kYXJrIHtcbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgIGNvbG9yOiAkY29sb3ItZm9ybS10ZXh0LXN0eWxlLWRhcms7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5lbXB0eSB7XG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICBhbmltYXRpb246IC41cyBlYXNlLWluIDBzIDEgZm9ybS1sYWJlbDtcbiAgICAgICAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkcztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLmZpbGxlZCxcbiAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgIHBhZGRpbmc6IDAgJGZvcm0tZ3V0dGVyO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuZmlsbGVkIHtcbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgIGFuaW1hdGlvbjogLjVzIGVhc2UtaW4gMHMgMSBmb3JtLWxhYmVsLWZpbGxlZDtcbiAgICAgICAgICBhbmltYXRpb24tZGlyZWN0aW9uOiBub3JtYWw7XG4gICAgICAgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5hY3RpdmUge1xuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgY29sb3I6ICRjb2xvci1mb3JtLWZpbGxlZCAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgaW5wdXQsXG4gICAgICAgIHRleHRhcmVhIHtcbiAgICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvci1mb3JtLWZpbGxlZCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYubm8tYW5pbSxcbiAgICAgICYuZm9ybS1maWVsZC1ub2FuaW0ge1xuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgYW5pbWF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgbGVmdDogMCAhaW1wb3J0YW50O1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgbWFyZ2luLXRvcDogJGZvcm0tbGFiZWwtbm8tYW5pbS1tYXJnaW4tdG9wO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgkZm9ybS1sYWJlbC1uby1hbmltLXRyYW5zbGF0ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5mb3JtLWZpZWxkLXNlbGVjdCB7XG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5mb3JtLWZpZWxkLWFjY2VwdGFuY2Uge1xuICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5mb3JtLWZpZWxkLXJncGQsXG4gICAgICAmLmZvcm0tbGVnYWwtbm90aWNlIHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIGF1dG87XG4gICAgICAgIGZvbnQtc2l6ZTogLjdyZW07XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgIH1cblxuICAgICAgJi5mb3JtLWZpZWxkLWRvdWJsZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBmbGV4OiAyO1xuXG4gICAgICAgICAgICBpbnB1dC53cGNmNy10ZXh0IHtcbiAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHggMCAwIDEwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGZsZXg6IDE7XG5cbiAgICAgICAgICAgIGlucHV0LndwY2Y3LXRleHQge1xuICAgICAgICAgICAgICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwIDEwcHggMTBweCAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLmZvcm0tZmllbGQtY2hlY2tib3gge1xuICAgICAgICAud3BjZjctY2hlY2tib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0uMjVlbTtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogLS4yNWVtO1xuXG4gICAgICAgICAgLndwY2Y3LWxpc3QtaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgLjI1ZW07XG5cbiAgICAgICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAud3BjZjctbGlzdC1pdGVtLWxhYmVsIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IC41cmVtO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5jaGVja2JveC1pbmxpbmUge1xuICAgICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IC4yNWVtO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC53cGNmNy1jaGVja2JveCB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgICAgICAgICAud3BjZjctbGlzdC1pdGVtIHtcbiAgICAgICAgICAgICAgZmxleDogMCAwIDIwMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLmZvcm0tZmllbGQtZGF0ZSB7XG4gICAgICAgIGlucHV0IHtcbiAgICAgICAgICBoZWlnaHQ6ICRmb3JtLWlucHV0LXRleHQtaGVpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuaW5saW5lIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICB9XG5cbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDI1cHg7XG4gICAgICAgIH1cblxuICAgICAgICAud3BjZjctcmFkaW8ge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgICAud3BjZjctbGlzdC1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC4yNWVtO1xuICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLjI1ZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLndwY2Y3LWNoZWNrYm94IHtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmZvcm0tZmllbGQtc3VibWl0IHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAuYWpheC1sb2FkZXIsIC53cGNmNy1zcGlubmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICBtaW4taGVpZ2h0OiB1bnNldDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHNwYW4ud3BjZjctbGlzdC1pdGVtIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAuZm9ybS1maWVsZC1yZXF1aXJlZCB7XG4gICAgICBjb2xvcjogJGNvbG9yLWZvcm0tZXJyb3JzO1xuICAgIH1cblxuICAgIC5mb3JtLWZpZWxkLXdyYXAge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgIG1hcmdpbi1yaWdodDogLTE1cHg7XG4gICAgICBtYXJnaW4tbGVmdDogLTE1cHg7XG5cbiAgICAgIC5mb3JtLWZpZWxkLWRhdGUge1xuICAgICAgICBmbGV4OiAxIDEgMDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xuICAgICAgICBtYXJnaW4tbGVmdDogMTVweDtcblxuICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC53cGNmNy1mb3JtLWNvbnRyb2wtd3JhcCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgLndwY2Y3LW5vdC12YWxpZC10aXAge1xuICAgICAgICBjb2xvcjogJGNvbG9yLWZvcm0tZXJyb3JzICFpbXBvcnRhbnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvcm0tZXJyb3ItZm9udC1zaXplO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogLTJyZW07XG4gICAgICAgIGxlZnQ6ICRmb3JtLWd1dHRlcjtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZm9ybS1maWVsZC1kZXNjIHtcbiAgICAgIGZvbnQtc2l6ZTogJGZpZWxkLWRlc2Mtc2l6ZTtcbiAgICAgIGZvbnQtc3R5bGU6ICRmaWVsZC1kZXNjLXN0eWxlO1xuICAgICAgY29sb3I6ICRmaWVsZC1kZXNjLWNvbG9yO1xuICAgIH1cblxuICAgIC53cGNmNy1yZXNwb25zZS1vdXRwdXQge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICBmb250LXNpemU6IC45cmVtO1xuICAgICAgbWFyZ2luLXRvcDogMXJlbTtcblxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDk1OXB4KSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoLnN1Ym1pdHRpbmcpIHtcbiAgICAgIC5hamF4LWxvYWRlciwgLndwY2Y3LXNwaW5uZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zZW50IHtcbiAgICAgIC53cGNmNy1yZXNwb25zZS1vdXRwdXQge1xuICAgICAgICBjb2xvcjogJGNvbG9yLWZvcm0tbWFpbC1zZW50ICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5pbnZhbGlkIHtcbiAgICAgIC53cGNmNy1yZXNwb25zZS1vdXRwdXQge1xuICAgICAgICBjb2xvcjogJGNvbG9yLWZvcm0tZXJyb3JzICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gRm9ybSBncmlkXG4gIC5mb3JtLXJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1hcmdpbi1yaWdodDogLSRmb3JtLWd1dHRlcjtcbiAgICBtYXJnaW4tbGVmdDogLSRmb3JtLWd1dHRlcjtcblxuICAgICY6OmJlZm9yZSxcbiAgICAmOjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgIH1cblxuICAgICYgPiAuZm9ybS1jb2wge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAkZm9ybS1ndXR0ZXIgIWltcG9ydGFudDtcbiAgICAgIHBhZGRpbmctbGVmdDogJGZvcm0tZ3V0dGVyICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJiA+IC5mb3JtLWNvbC02IHtcbiAgICAgIEBleHRlbmQgLmZvcm0tY29sO1xuXG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgICAgICAgZmxleDogMCAwIDUwJTtcbiAgICAgICAgbWF4LXdpZHRoOiA1MCU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJiA+IC5mb3JtLWNvbC00IHtcbiAgICAgIEBleHRlbmQgLmZvcm0tY29sO1xuXG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgICAgICAgZmxleDogMCAwIDMzLjMzJTtcbiAgICAgICAgbWF4LXdpZHRoOiAzMy4zMyU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJiA+IC5mb3JtLWNvbC0zIHtcbiAgICAgIEBleHRlbmQgLmZvcm0tY29sO1xuXG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgICAgICAgZmxleDogMCAwIDI1JTtcbiAgICAgICAgbWF4LXdpZHRoOiAyNSU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbiIsIi8vIEJyZWFrcG9pbnQgdmlld3BvcnQgc2l6ZXMgYW5kIG1lZGlhIHF1ZXJpZXMuXG4vL1xuLy8gQnJlYWtwb2ludHMgYXJlIGRlZmluZWQgYXMgYSBtYXAgb2YgKG5hbWU6IG1pbmltdW0gd2lkdGgpLCBvcmRlciBmcm9tIHNtYWxsIHRvIGxhcmdlOlxuLy9cbi8vICAgICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpXG4vL1xuLy8gVGhlIG1hcCBkZWZpbmVkIGluIHRoZSBgJGdyaWQtYnJlYWtwb2ludHNgIGdsb2JhbCB2YXJpYWJsZSBpcyB1c2VkIGFzIHRoZSBgJGJyZWFrcG9pbnRzYCBhcmd1bWVudCBieSBkZWZhdWx0LlxuXG4vLyBOYW1lIG9mIHRoZSBuZXh0IGJyZWFrcG9pbnQsIG9yIG51bGwgZm9yIHRoZSBsYXN0IGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtKVxuLy8gICAgbWRcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0MDBweCkpXG4vLyAgICBtZFxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAkYnJlYWtwb2ludC1uYW1lczogKHhzIHNtIG1kIGxnIHhsIHh4bCkpXG4vLyAgICBtZFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cywgJGJyZWFrcG9pbnQtbmFtZXM6IG1hcC1rZXlzKCRicmVha3BvaW50cykpIHtcbiAgJG46IGluZGV4KCRicmVha3BvaW50LW5hbWVzLCAkbmFtZSk7XG4gIEBpZiBub3QgJG4ge1xuICAgIEBlcnJvciBcImJyZWFrcG9pbnQgYCN7JG5hbWV9YCBub3QgZm91bmQgaW4gYCN7JGJyZWFrcG9pbnRzfWBcIjtcbiAgfVxuICBAcmV0dXJuIGlmKCRuIDwgbGVuZ3RoKCRicmVha3BvaW50LW5hbWVzKSwgbnRoKCRicmVha3BvaW50LW5hbWVzLCAkbiArIDEpLCBudWxsKTtcbn1cblxuLy8gTWluaW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgc21hbGxlc3QgKGZpcnN0KSBicmVha3BvaW50LlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbWluKHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KSlcbi8vICAgIDU3NnB4XG5AZnVuY3Rpb24gYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogbWFwLWdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcbiAgQHJldHVybiBpZigkbWluICE9IDAsICRtaW4sIG51bGwpO1xufVxuXG4vLyBNYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguXG4vLyBUaGUgbWF4aW11bSB2YWx1ZSBpcyByZWR1Y2VkIGJ5IDAuMDJweCB0byB3b3JrIGFyb3VuZCB0aGUgbGltaXRhdGlvbnMgb2Zcbi8vIGBtaW4tYCBhbmQgYG1heC1gIHByZWZpeGVzIGFuZCB2aWV3cG9ydHMgd2l0aCBmcmFjdGlvbmFsIHdpZHRocy5cbi8vIFNlZSBodHRwczovL3d3dy53My5vcmcvVFIvbWVkaWFxdWVyaWVzLTQvI21xLW1pbi1tYXhcbi8vIFVzZXMgMC4wMnB4IHJhdGhlciB0aGFuIDAuMDFweCB0byB3b3JrIGFyb3VuZCBhIGN1cnJlbnQgcm91bmRpbmcgYnVnIGluIFNhZmFyaS5cbi8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4MjYxXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1tYXgobWQsICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpKVxuLy8gICAgNzY3Ljk4cHhcbkBmdW5jdGlvbiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWF4OiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICBAcmV0dXJuIGlmKCRtYXggYW5kICRtYXggPiAwLCAkbWF4IC0gLjAyLCBudWxsKTtcbn1cblxuLy8gUmV0dXJucyBhIGJsYW5rIHN0cmluZyBpZiBzbWFsbGVzdCBicmVha3BvaW50LCBvdGhlcndpc2UgcmV0dXJucyB0aGUgbmFtZSB3aXRoIGEgZGFzaCBpbiBmcm9udC5cbi8vIFVzZWZ1bCBmb3IgbWFraW5nIHJlc3BvbnNpdmUgdXRpbGl0aWVzLlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoeHMsICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpKVxuLy8gICAgXCJcIiAgKFJldHVybnMgYSBibGFuayBzdHJpbmcpXG4vLyAgICA+PiBicmVha3BvaW50LWluZml4KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KSlcbi8vICAgIFwiLXNtXCJcbkBmdW5jdGlvbiBicmVha3BvaW50LWluZml4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gIEByZXR1cm4gaWYoYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cykgPT0gbnVsbCwgXCJcIiwgXCItI3skbmFtZX1cIik7XG59XG5cbi8vIE1lZGlhIG9mIGF0IGxlYXN0IHRoZSBtaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludC5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgd2lkZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtaW4ge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE1lZGlhIG9mIGF0IG1vc3QgdGhlIG1heGltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBsYXJnZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtYXgge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE1lZGlhIHRoYXQgc3BhbnMgbXVsdGlwbGUgYnJlYWtwb2ludCB3aWR0aHMuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgYmV0d2VlbiB0aGUgbWluIGFuZCBtYXggYnJlYWtwb2ludHNcbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWJldHdlZW4oJGxvd2VyLCAkdXBwZXIsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJGxvd2VyLCAkYnJlYWtwb2ludHMpO1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkdXBwZXIsICRicmVha3BvaW50cyk7XG5cbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGxvd2VyLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkdXBwZXIsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vIE1lZGlhIGJldHdlZW4gdGhlIGJyZWFrcG9pbnQncyBtaW5pbXVtIGFuZCBtYXhpbXVtIHdpZHRocy5cbi8vIE5vIG1pbmltdW0gZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LCBhbmQgbm8gbWF4aW11bSBmb3IgdGhlIGxhcmdlc3Qgb25lLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IG9ubHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQsIG5vdCB2aWV3cG9ydHMgYW55IHdpZGVyIG9yIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtb25seSgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiAgYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gICRuZXh0OiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50cyk7XG4gICRtYXg6ICBicmVha3BvaW50LW1heCgkbmV4dCwgJGJyZWFrcG9pbnRzKTtcblxuICBAaWYgJG1pbiAhPSBudWxsIGFuZCAkbWF4ICE9IG51bGwge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSBhbmQgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtYXggPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJG5leHQsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=*/