/*!**********************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** 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 ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************/

.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-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: 16px;
  --bs-breadcrumb-margin-bottom: 1rem;
  --bs-breadcrumb-font-size: 12px;
  --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: 8px;
  --bs-breadcrumb-item-padding-x: 0.5rem;
  --bs-breadcrumb-item-active-color: #28438E;
  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: -12px;
  margin-right: -0.75rem;
  margin-left: -12px;
  margin-left: -0.75rem; }
  .breadcrumbs .breadcrumb {
    flex-wrap: nowrap;
    padding: 12px;
    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: 16px;
      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: 32px;
      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 {
        -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=75)";
        opacity: .75; }

.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: 32px;
  padding-top: 2rem; }

.breadcrumb-item {
  white-space: nowrap; }
  .breadcrumb-item + .breadcrumb-item:before {
    content: "\f105";
    margin-right: 0; }
  .breadcrumb-item + .breadcrumb-item:before {
    float: unset;
    padding-right: 4px;
    padding-right: .25rem; }
  .breadcrumb-item.active span {
    font-weight: 700; }

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

@keyframes form-label {
  0% {
    left: 1rem;
    font-size: 0.7rem;
    background: #fff;
    transform: rotateY(0) translateY(-1.2rem); }
  25% {
    left: 1rem;
    font-size: 0.7rem;
    background: #fff;
    transform: rotateY(90deg) translateY(-1.2rem); }
  75% {
    left: 1rem;
    font-size: 0.9rem;
    background: transparent;
    transform: rotateY(90deg) translateY(0); }
  100% {
    left: 1rem;
    font-size: 0.9rem;
    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: #4b5055; }
  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: #4b5055;
    background: none !important; }

.grecaptcha-badge {
  visibility: collapse; }

.wpcf7 {
  font-size: 16px; }
  .wpcf7 .wpcf7-form {
    color: #4b5055;
    margin-top: 16px;
    margin-top: 1rem;
    display: flex;
    flex-direction: column; }
    .wpcf7 .wpcf7-form .form-field {
      position: relative;
      margin-bottom: 24px;
      margin-bottom: 1.5rem;
      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: 8px;
        padding-left: 0.5rem;
        margin: 0;
        border: 1px solid #4b5055;
        border-radius: 0.25rem;
        transition: border-color ease .4s;
        background: transparent; }
        .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: 40px;
          height: 2.5rem;
          color: #4b5055; }
        .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: 8px;
        padding-left: 0.5rem;
        padding-top: 8px;
        padding-top: 0.5rem;
        margin: 0;
        overflow: hidden;
        color: #4b5055;
        resize: none;
        border: 1px solid #4b5055;
        border-radius: 0.25rem;
        transition: border-color ease .4s;
        background: transparent;
        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: 8px;
        padding-left: 0.5rem;
        float: none;
        color: #4b5055;
        border: 1px solid #4b5055;
        border-radius: 0.25rem;
        width: 100%;
        height: 40px;
        height: 2.5rem;
        background: transparent; }
        .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: 12px;
        top: 0.75rem;
        left: 16px;
        left: 1rem;
        z-index: 1;
        padding: 0;
        margin: 0;
        color: #4b5055;
        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: 14.4px;
        font-size: 0.9rem;
        line-height: 16px;
        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 8px;
        padding: 0 0.5rem; }
      .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: #C30002 !important; }
      .wpcf7 .wpcf7-form .form-field.active input,
      .wpcf7 .wpcf7-form .form-field.active textarea {
        border-color: #C30002 !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: 16px;
        margin-top: 1rem;
        transform: translateY(-1.2rem); }
      .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: 16px auto;
        margin: 1rem auto;
        font-size: 11.2px;
        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: 8px;
              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: 40px;
        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: 14.4px;
        font-size: 0.9rem;
        font-weight: normal;
        position: absolute;
        bottom: -32px;
        bottom: -2rem;
        left: 8px;
        left: 0.5rem;
        right: 0;
        height: 30px;
        z-index: 2; }
    .wpcf7 .wpcf7-form .form-field-desc {
      font-size: 12.8px;
      font-size: 0.8rem;
      font-style: italic;
      color: #696969; }
    .wpcf7 .wpcf7-form .wpcf7-response-output {
      text-align: center;
      border: none !important;
      font-size: 14.4px;
      font-size: .9rem;
      margin-top: 16px;
      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: -8px;
    margin-right: -0.5rem;
    margin-left: -8px;
    margin-left: -0.5rem; }
    .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: 8px !important;
      padding-right: 0.5rem !important;
      padding-left: 8px !important;
      padding-left: 0.5rem !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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC5jc3MiLCJtYXBwaW5ncyI6Ijs7OztBQVlBO0VBT0UscUJBQXFCO0VBQ3JCLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIsb0JBQW9CO0VBQ3BCLGNBQWM7RUFDZCxtQ0FBbUM7RUFDbkMsa0NBQWtDOzs7QUFrQnBDO0VBQ0UsaUNBQWlDO0VBQ2pDLGdCQUFnQjs7O0FBakNsQjtFQU9FLHFCQUFxQjtFQUNyQixrQkFBa0I7RUFDbEIsZ0JBQWdCO0VBQ2hCLG9CQUFvQjtFQUNwQixjQUFjO0VBQ2QsbUNBQW1DO0VBQ25DLGtDQUFrQzs7O0FBa0JwQztFQUNFLGlDQUFpQztFQUNqQyxnQkFBZ0I7OztBQWpDbEI7RUFPRSxxQkFBcUI7RUFDckIsa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQixvQkFBb0I7RUFDcEIsY0FBYztFQUNkLG1DQUFtQztFQUNuQyxrQ0FBa0M7OztBQWtCcEM7RUFDRSxpQ0FBaUM7RUFDakMsZ0JBQWdCOztBQzdDbEI7RUFFRSw0QkFBdUQ7RUFDdkQsNEJBQXVEO0VBQ3ZELG1DQUErRDtFQUEvRCxtQ0FBK0Q7RUMyUjNELCtCQW5FK0I7RUFtRS9CLGtDQW5FK0I7RUR0Tm5DLG9CQUF5QztFQUN6QywrQkFBK0Q7RUFDL0Qsd0RBQStEO0VBQy9ELG1DQUFpRTtFQUFqRSxzQ0FBaUU7RUFDakUsMENBQXVFO0VBR3ZFLGFBQWE7RUFDYixlQUFlO0VBQ2Ysc0VBQWdJO0VBQ2hJLGlEQUFrRjtFQytROUUseUNBbkUrQjtFRDFNbkMsZ0JBQWdCO0VBQ2hCLHlDQUErRDtFRUE3RCxpREZDd0Y7O0FBRzVGO0VBR0ksaURBQW1GO0VBSHZGO0lBTU0sV0FBVztJQUNYLGtEQUFvRjtJQUNwRix5Q0FBMEU7SUFDMUUsdUZBQXVOOztBQVQ3TjtFQWNJLDZDQUFrRjs7QUduQ3RGO0VBQ0Usa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQixtQkFBZ0Q7RUFBaEQsc0JBQWdEO0VBQ2hELGtCQUErQztFQUEvQyxxQkFBK0M7RUFKakQ7SUFPSSxpQkFBaUI7SUFDakIsYUNvR3dDO0lEcEd4QyxnQkNvR3dDO0lEbkd4QyxhQUFhO0lBQ2IsZ0JBQWdCO0lBVnBCO01BY00sa0JBQWtCO01BQ2xCLE1BQU07TUFDTixjQUFjO01BQ2QsWUFBWTtNQUNaLG9CQUFvQjtNQUNwQixXQUFXO0lBbkJqQjtNQXVCTSxPQUFPO01BQ1AsV0FBVztNQUFYLFdBQVc7TUFDWCwwSUFBMEk7SUF6QmhKO01BNkJNLFFBQVE7TUFDUixXQUFXO01BQVgsV0FBVztNQUNYLDBJQUEwSTtFQS9CaEo7SUE2Q0ksNkNBQXdDO0lBQ3hDLDZEQUE0QztJQUM1QyxpQ0FBaUM7SUFDakMsV0FBVztJQUNYLDRCQUE0QjtJQWpEaEM7TUFvRE0sMkNBQThCO01BQzlCLCtDQUFrQztNQXJEeEM7UUF5RFEsaUVBQVk7UUFBWixZQUFZOztBQU1wQjtFQUdNLDhEQUE4RDtFQUM5RCx3QkFBd0I7O0FBSjlCO0VBVU0saUJDS1U7RURMVixpQkNLVTs7QURBaEI7RUFDRSxtQkFBbUI7RUgxRHJCO0lEdUVFLGdCTXpGbUM7SU4ySGpDLGVJNUNtRTtFSDdEdkU7SUdnRU0sWUFBWTtJQUNaLGtCQUFxQjtJQUFyQixxQkFBcUI7RUFSM0I7SUFjTSxnQkFBZ0I7O0FHOUZ0QjtFQUNFO0lBQ0UsVUNHcUM7SURGckMsaUJDT3dCO0lETnhCLHVCQUF1QjtJQUN2QixlQUFlO0VBRWpCO0lBQ0UsVUNIcUM7SURJckMsaUJDQ3dCO0lEQXhCLHVCQUF1QjtJQUN2Qix1Q0FBdUM7RUFFekM7SUFDRSxVQ1RxQztJRFVyQyxpQkNKK0I7SURLL0IsZ0JDVThCO0lEVDlCLDZDQUEyRDtFQUU3RDtJQUNFLFVDZnFDO0lEZ0JyQyxpQkNWK0I7SURXL0IsZ0JDSThCO0lESDlCLHlDQUF1RDs7QUFJM0Q7RUFDRTtJQUNFLFVDeEJxQztJRHlCckMsaUJDbkIrQjtJRG9CL0IsZ0JDTDhCO0lETTlCLHlDQUF1RDtFQUV6RDtJQUNFLFVDOUJxQztJRCtCckMsaUJDekIrQjtJRDBCL0IsZ0JDWDhCO0lEWTlCLDZDQUEyRDtFQUU3RDtJQUNFLFVDcENxQztJRHFDckMsaUJDaEN3QjtJRGlDeEIsdUJBQXVCO0lBQ3ZCLHVDQUF1QztFQUV6QztJQUNFLFVDMUNxQztJRDJDckMsaUJDdEN3QjtJRHVDeEIsdUJBQXVCO0lBQ3ZCLGVBQWU7O0FFbERuQjs7O0VBSUksa0NBQTBEO0VBQzFELGdDRGNxQjtFQ25CekI7Ozs7O0lBU00sZ0NEVW1CO0lDVG5CLDJCQUEyQjs7QUFLakM7RUFDRSxvQkFBb0I7O0FBZXRCO0VBQ0UsZURoQzJCO0VDK0I3QjtJQUlJLGNEaEJxQjtJQ2lCckIsZ0JEdEJ3QjtJQ3NCeEIsZ0JEdEJ3QjtJQ3VCeEIsYUFBYTtJQUNiLHNCQUFzQjtJQVAxQjtNQWNNLGtCQUFrQjtNQUNsQixtQkQ5QjJCO01DOEIzQixxQkQ5QjJCO01DK0IzQix3QkFBd0I7TUFoQjlCO1FBbUJRLGlCQUFpQjtNQW5CekI7UUF3QlUsV0FBVztRQUNYLFdBQVc7UUFDWCxpQko0aEJTO1FJNWhCVCxvQko0aEJTO1FJM2hCVCxTQUFTO1FBQ1QseUJEeENlO1FDeUNmLHNCRC9DdUI7UUNnRHZCLGlDQUFpQztRQUNqQyx1QkQ1QytCO1FDYXpDO1VBa0NZLFlEL0RtQjtVQytEbkIsY0QvRG1CO1VDZ0VuQixjRC9DYTtRQ1l6QjtVQXVDWSxTQUFTO1VBQ1QsaUJEOUNXO1FDTXZCO1VBNENZLGFBQWE7TUE1Q3pCO1FBa0RVLGtCQUFrQjtRQWxENUI7VUFxRFksa0JBQWtCO1VBQ2xCLGdDQUFnQztNQXRENUM7UUE0RFEsV0FBVztRQUNYLGlCSnlmVztRSXpmWCxvQkp5Zlc7UUl4ZlgsZ0JKd2ZXO1FJeGZYLG1CSndmVztRSXZmWCxTQUFTO1FBQ1QsZ0JBQWdCO1FBQ2hCLGNEN0VpQjtRQzhFakIsWUFBWTtRQUNaLHlCRC9FaUI7UUNnRmpCLHNCRHRGeUI7UUN1RnpCLGlDQUFpQztRQUNqQyx1QkRuRmlDO1FDb0ZqQyxlQUFlO1FBdkV2QjtVQTBFVSxhQUFhO1FBMUV2QjtVQThFVSxTQUFTO1VBQ1QsaUJEckZhO01DTXZCOztRQXFGUSxpQkppZVc7UUlqZVgsb0JKaWVXO1FJaGVYLFdBQVc7UUFDWCxjRG5HaUI7UUNvR2pCLHlCRHBHaUI7UUNxR2pCLHNCRDNHeUI7UUM0R3pCLFdBQVc7UUFDWCxZRHhIdUI7UUN3SHZCLGNEeEh1QjtRQ3lIdkIsdUJEekdpQztRQ2F6Qzs7VUErRlUsaUJEckdhO01DTXZCO1FBdUdRLGtCQUFrQjtRQUNsQixTRG5JbUY7UUNtSW5GLFlEbkltRjtRQ29JbkYsVURuSWlDO1FDbUlqQyxVRG5JaUM7UUNvSWpDLFVBQVU7UUFDVixVQUFVO1FBQ1YsU0FBUztRQUNULGNEekhpQjtRQzBIakIsb0JBQW9CO1FBQ3BCLFlBQVk7UUFDWix1QkFBdUI7UUFDdkIsc0dBQXNHO1FBQ3RHLGlCRHZJb0I7UUN1SXBCLGlCRHZJb0I7UUN3SXBCLGlCRC9JcUI7UUMrSXJCLGlCRC9JcUI7TUM0QjdCO1FBd0hVLFdEbkl3QjtNQ1dsQztRQThIVSxzQ0FBc0M7UUFDdEMsNkJBQTZCO01BL0h2QztRQXNJVSxjSmdiUztRSWhiVCxpQkpnYlM7TUl0akJuQjtRQTRJVSw2Q0FBNkM7UUFDN0MsMkJBQTJCO1FBQzNCLDZCQUE2QjtNQTlJdkM7UUFvSlUseUJBQW9DO01BcEo5Qzs7UUF5SlUsZ0NBQTJDO01BekpyRDtRQWdLVSwwQkFBMEI7UUFDMUIsNkJBQTZCO1FBQzdCLGlCQUFpQjtRQUNqQixrQkFBa0I7UUFDbEIsVUFBVTtRQUNWLGdCRDNMMEI7UUMyTDFCLGdCRDNMMEI7UUM0TDFCLDhCQUFvRDtNQXRLOUQ7UUE0S1Usa0JBQWtCO01BNUs1QjtRQWtMVSxXQUFXO01BbExyQjtRQXdMUSxpQkFBaUI7UUFBakIsaUJBQWlCO1FBQ2pCLGlCQUFnQjtRQUFoQixnQkFBZ0I7UUFDaEIsa0JBQWtCO1FBQ2xCLFVBQVU7TUEzTGxCO1FBK0xRLGFBQWE7UUEvTHJCO1VBbU1ZLFNBQU87VUFuTW5CO1lBc01jLHVCQUF1QjtZQUN2Qiw0QkFBNEI7UUF2TTFDO1VBNE1ZLFNBQU87VUE1TW5CO1lBK01jLHNCQUFzQjtZQUN0Qiw0QkFBNEI7TUFoTjFDO1FBd05VLGFBQWE7UUFDYixzQkFBc0I7UUFDdEIsb0JBQW9CO1FBQ3BCLG1CQUFtQjtRQTNON0I7VUE4TlksYUFBYTtVQUNiLG1CQUFtQjtVQUNuQixnQkFBZ0I7VUFoTzVCO1lBbU9jLGVBQWU7WUFDZixhQUFhO1lBQ2IsbUJBQW1CO1lBck9qQztjQXVPZ0IsaUJBQW1CO2NBQW5CLG1CQUFtQjtNQXZPbkM7UUErT1ksb0JBQW9CO01BL09oQztRQW1QWSxtQkFBbUI7UUFDbkIsZUFBZTtRQXBQM0I7VUF1UGMsZUFBZTtNQXZQN0I7UUErUFUsWUQ1UnFCO1FDNFJyQixjRDVScUI7TUM2Qi9CO1FBb1FRLGFBQWE7UUFDYixzQkFBc0I7UUFyUTlCO1VBNFFVLGdCQUFnQjtVQUNoQixpQkFBaUI7UUE3UTNCO1VBaVJVLGFBQWE7VUFqUnZCO1lBb1JZLGFBQWE7WUFDYixtQkFBbUI7WUFyUi9CO2NBd1JjLFdBQVc7Y0FDWCxtQkFBbUI7Y0FDbkIsa0JBQWtCO1FBMVJoQztVQWdTVSxtQkFBbUI7SUFoUzdCO01Bc1NNLGtCQUFrQjtNQUNsQixhQUFhO01BQ2IsbUJBQW1CO01BeFN6QjtRQTJTUSw0QkFBNEI7UUFDNUIsMkJBQTJCO1FBQzNCLGlCQUFpQjtRQUNqQixrQkFBa0I7SUE5UzFCO01BbVRNLFNBQVM7SUFuVGY7TUF1VE0sVUQ3VGlCO0lDTXZCO01BMlRNLGFBQWE7TUFDYixxQkFBcUI7TUFDckIsbUJBQW1CO01BQ25CLGtCQUFrQjtNQTlUeEI7UUFpVVEsU0FBVztRQUNYLGtCQUFrQjtRQUNsQixpQkFBaUI7UUFuVXpCO1VBc1VVLGFBQWE7SUF0VXZCO01BNFVNLGNBQWM7TUE1VXBCO1FBK1VRLHFCQUFvQztRQUNwQyxpQkRyV29CO1FDcVdwQixpQkRyV29CO1FDc1dwQixtQkFBbUI7UUFDbkIsa0JBQWtCO1FBQ2xCLGFBQWE7UUFBYixhQUFhO1FBQ2IsU0prT1c7UUlsT1gsWUprT1c7UUlqT1gsUUFBUTtRQUNSLFlBQVk7UUFDWixVQUFVO0lBdlZsQjtNQTRWTSxpQkQ5VmlCO01DOFZqQixpQkQ5VmlCO01DK1ZqQixrQkQ3Vm1CO01DOFZuQixjRC9Wb0I7SUNDMUI7TUFrV00sa0JBQWtCO01BQ2xCLHVCQUF1QjtNQUN2QixpQkFBZ0I7TUFBaEIsZ0JBQWdCO01BQ2hCLGdCQUFnQjtNQUFoQixnQkFBZ0I7SUFyV3RCO01BK1dRLHdCQUF3QjtJQS9XaEM7TUFxWFEseUJBQXVDO0lBclgvQztNQTJYUSxxQkFBb0M7RUEzWDVDO0lBa1lJLGFBQWE7SUFDYixzQkFBc0I7SUFDdEIsa0JKa0xlO0lJbExmLHFCSmtMZTtJSWpMZixpQkppTGU7SUlqTGYsb0JKaUxlO0lJdGpCbkI7TUF5WU0sd0JBQXdCO0lBelk5QjtNQWtaTSxrQkFBa0I7TUFDbEIsV0FBVztNQUNYLDZCQUFzQztNQUF0QyxnQ0FBc0M7TUFDdEMsNEJBQXFDO01BQXJDLCtCQUFxQztJQTlJbkM7VUF2UVI7WUF3UVUsbUJBQW1CO01BeFE3QjtRQTZZTSxtQkFBbUI7UUFDbkIsZUFBZTtNQTlZckI7UUE0WlEsYUFBYTtRQUNiLGNBQWM7TUE3WnRCO1FBcWFRLGdCQUFnQjtRQUNoQixpQkFBaUI7TUF0YXpCO1FBOGFRLGFBQWE7UUFDYixjQUFjLElBN0lmO0lDbFFIO0lON0RKO01BdUNRLGFBQWE7TUtWckI7UUFVTSxnQkQxQm1ELElKMkJsRDtJS3ZCUDtFQUVFO0lBQ0UsUUFBUTtFQUdWOztJQUVFLFFBQVE7UUFJWjtVQXdXUSxhQUFhO1VBQ2IsbUJBQW1CLElBNVd4QjtJQW9HSztVQWpHUjs7WUFrR1UsV0FBVyxJQUVkIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vY3RhdXRvbW9iaWxld2F0dHJlbG9zLXRoZW1lLy4vbm9kZV9tb2R1bGVzL0BuZW1hdGlzL3dwLWFscGhhL2Fzc2V0cy9zYXNzL3ZlbmRvcnMvZm9udGF3ZXNvbWUvYWJzdHJhY3RzL19taXhpbnMuc2NzcyIsIndlYnBhY2s6Ly9jdGF1dG9tb2JpbGV3YXR0cmVsb3MtdGhlbWUvLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvX2JyZWFkY3J1bWIuc2NzcyIsIndlYnBhY2s6Ly9jdGF1dG9tb2JpbGV3YXR0cmVsb3MtdGhlbWUvLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvdmVuZG9yL19yZnMuc2NzcyIsIndlYnBhY2s6Ly9jdGF1dG9tb2JpbGV3YXR0cmVsb3MtdGhlbWUvLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19ib3JkZXItcmFkaXVzLnNjc3MiLCJ3ZWJwYWNrOi8vY3RhdXRvbW9iaWxld2F0dHJlbG9zLXRoZW1lLy4vbm9kZV9tb2R1bGVzL0BuZW1hdGlzL3dwLWFscGhhL2Fzc2V0cy9zYXNzL2NvbXBvbmVudHMvX2JyZWFkY3J1bWIuc2NzcyIsIndlYnBhY2s6Ly9jdGF1dG9tb2JpbGV3YXR0cmVsb3MtdGhlbWUvLi9ub2RlX21vZHVsZXMvQG5lbWF0aXMvd3AtYWxwaGEvYXNzZXRzL3Nhc3MvYWJzdHJhY3RzL192YXJpYWJsZXMuc2NzcyIsIndlYnBhY2s6Ly9jdGF1dG9tb2JpbGV3YXR0cmVsb3MtdGhlbWUvLi9ub2RlX21vZHVsZXMvQGZvcnRhd2Vzb21lL2ZvbnRhd2Vzb21lLXByby9zY3NzL19mdW5jdGlvbnMuc2NzcyIsIndlYnBhY2s6Ly9jdGF1dG9tb2JpbGV3YXR0cmVsb3MtdGhlbWUvLi9ub2RlX21vZHVsZXMvQG5lbWF0aXMvY2Y3LWVmZmVjdC9hc3NldHMvc2Fzcy9jb3JlL19hbmltYXRpb25zLnNjc3MiLCJ3ZWJwYWNrOi8vY3RhdXRvbW9iaWxld2F0dHJlbG9zLXRoZW1lLy4vbm9kZV9tb2R1bGVzL0BuZW1hdGlzL2NmNy1lZmZlY3QvYXNzZXRzL3Nhc3MvYWJzdHJhY3QvX3ZhcmlhYmxlcy5zY3NzIiwid2VicGFjazovL2N0YXV0b21vYmlsZXdhdHRyZWxvcy10aGVtZS8uL25vZGVfbW9kdWxlcy9AbmVtYXRpcy9jZjctZWZmZWN0L2Fzc2V0cy9zYXNzL2NvcmUvX2Zvcm1zLnNjc3MiLCJ3ZWJwYWNrOi8vY3RhdXRvbW9iaWxld2F0dHJlbG9zLXRoZW1lLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fYnJlYWtwb2ludHMuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIkdXNlLWZhLXBybzogdHJ1ZSAhZGVmYXVsdDtcclxuXHJcbkBtaXhpbiBmYS1pY29uLXN0YW5kYWxvbmUge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcclxuICBsaW5lLWhlaWdodDogMTtcclxuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcclxuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xyXG59XHJcblxyXG4lZmEsXHJcbiVmYXMsXHJcbiVmYXIsXHJcbiVmYWwsXHJcbiVmYWQsXHJcbiVmYXQsXHJcbiVmYWIge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcclxuICBsaW5lLWhlaWdodDogMTtcclxuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcclxuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xyXG59XHJcblxyXG4lZmEtaWNvbi1zdGFuZGFsb25lIHtcclxuICBAaW5jbHVkZSBmYS1pY29uLXN0YW5kYWxvbmUgKCk7XHJcbn1cclxuXHJcbiVmYSxcclxuJWZhcyB7XHJcbiAgZm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDYgUHJvXCI7XHJcbiAgZm9udC13ZWlnaHQ6IDkwMDtcclxufVxyXG5cclxuJWZhciB7XHJcbiAgZm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDYgUHJvXCI7XHJcbiAgZm9udC13ZWlnaHQ6IDQwMDtcclxufVxyXG5cclxuJWZhbCB7XHJcbiAgZm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDYgUHJvXCI7XHJcbiAgZm9udC13ZWlnaHQ6IDMwMDtcclxufVxyXG5cclxuJWZhdCB7XHJcbiAgZm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDYgUHJvXCI7XHJcbiAgZm9udC13ZWlnaHQ6IDEwMDtcclxufVxyXG5cclxuJWZhYiB7XHJcbiAgZm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDYgQnJhbmRzXCI7XHJcbiAgZm9udC13ZWlnaHQ6IDQwMDtcclxufVxyXG5cclxuQG1peGluIGZvbnQtYXdlc29tZSgkY29kZSkge1xyXG4gIEBleHRlbmQgJWZhLWljb24tc3RhbmRhbG9uZTtcclxuXHJcbiAgQGlmICR1c2UtZmEtcHJvIHtcclxuICAgIEBpbmNsdWRlIGZvbnQtYXdlc29tZS1wcm8oJGNvZGUpO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIGZvbnQtZmFtaWx5LW5vLW1pc3NpbmctZ2VuZXJpYy1mYW1pbHkta2V5d29yZFxyXG4gICAgQGV4dGVuZCAlZmE7XHJcblxyXG4gICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudFxyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICBjb250ZW50OiAkY29kZTtcclxuICB9XHJcblxyXG4gIEBjb250ZW50O1xyXG59XHJcblxyXG5AbWl4aW4gZm9udC1hd2Vzb21lLXBybygkY29kZSkge1xyXG4gIEBpbmNsdWRlIGZvbnQtYXdlc29tZS1wcm8tc29saWQoJGNvZGUpO1xyXG59XHJcblxyXG5AbWl4aW4gZm9udC1hd2Vzb21lLXByby1zb2xpZCgkY29kZSkge1xyXG4gIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBmb250LWZhbWlseS1uby1taXNzaW5nLWdlbmVyaWMtZmFtaWx5LWtleXdvcmRcclxuICBAZXh0ZW5kICVmYXM7XHJcbiAgY29udGVudDogZmEtY29udGVudCgkY29kZSk7XHJcbn1cclxuXHJcbkBtaXhpbiBmb250LWF3ZXNvbWUtcHJvLXJlZ3VsYXIoJGNvZGUpIHtcclxuICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZm9udC1mYW1pbHktbm8tbWlzc2luZy1nZW5lcmljLWZhbWlseS1rZXl3b3JkXHJcbiAgQGV4dGVuZCAlZmFyO1xyXG4gIGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGNvZGUpO1xyXG59XHJcblxyXG5AbWl4aW4gZm9udC1hd2Vzb21lLXByby1saWdodCgkY29kZSkge1xyXG4gIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBmb250LWZhbWlseS1uby1taXNzaW5nLWdlbmVyaWMtZmFtaWx5LWtleXdvcmRcclxuICBAZXh0ZW5kICVmYWw7XHJcbiAgY29udGVudDogZmEtY29udGVudCgkY29kZSk7XHJcbn1cclxuXHJcbkBtaXhpbiBmb250LWF3ZXNvbWUtcHJvLXRoaW4oJGNvZGUpIHtcclxuICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZm9udC1mYW1pbHktbm8tbWlzc2luZy1nZW5lcmljLWZhbWlseS1rZXl3b3JkXHJcbiAgQGV4dGVuZCAlZmF0O1xyXG4gIGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGNvZGUpO1xyXG59XHJcblxyXG5AbWl4aW4gZm9udC1hd2Vzb21lLXByby1icmFuZCgkY29kZSkge1xyXG4gIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBmb250LWZhbWlseS1uby1taXNzaW5nLWdlbmVyaWMtZmFtaWx5LWtleXdvcmRcclxuICBAZXh0ZW5kICVmYWI7XHJcbiAgY29udGVudDogZmEtY29udGVudCgkY29kZSk7XHJcbn1cclxuXHJcbkBtaXhpbiBmb250LWF3ZXNvbWUtYmVmb3JlKCRjb2RlLCAkZmxvYXRpbmc6IGZhbHNlLCAkZmEtc3R5bGU6IFwic29saWRcIiwgJG1hcmdpbjogLjI1ZW0pIHtcclxuICAmOjpiZWZvcmUge1xyXG4gICAgQGlmICRmYS1zdHlsZSA9PSBcInJlZ3VsYXJcIiB7XHJcbiAgICAgIEBpbmNsdWRlIGZvbnQtYXdlc29tZS1wcm8tcmVndWxhcigkY29kZSk7XHJcbiAgICB9IEBlbHNlIGlmICRmYS1zdHlsZSA9PSBcImxpZ2h0XCIge1xyXG4gICAgICBAaW5jbHVkZSBmb250LWF3ZXNvbWUtcHJvLWxpZ2h0KCRjb2RlKTtcclxuICAgIH0gQGVsc2UgaWYgJGZhLXN0eWxlID09IFwidGhpblwiIHtcclxuICAgICAgQGluY2x1ZGUgZm9udC1hd2Vzb21lLXByby10aGluKCRjb2RlKTtcclxuICAgIH0gQGVsc2UgaWYgJGZhLXN0eWxlID09IFwiYnJhbmRcIiB7XHJcbiAgICAgIEBpbmNsdWRlIGZvbnQtYXdlc29tZS1wcm8tYnJhbmQoJGNvZGUpO1xyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIEBpbmNsdWRlIGZvbnQtYXdlc29tZSgkY29kZSk7XHJcbiAgICB9XHJcblxyXG4gICAgQGlmICRmbG9hdGluZyB7XHJcbiAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcclxuICAgIH1cclxuXHJcbiAgICBtYXJnaW4tcmlnaHQ6ICRtYXJnaW47XHJcblxyXG4gICAgQGNvbnRlbnQ7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gZm9udC1hd2Vzb21lLWFmdGVyKCRjb2RlLCAkZmxvYXRpbmc6IGZhbHNlLCAkZmEtc3R5bGU6IFwic29saWRcIiwgJG1hcmdpbjogLjI1ZW0pIHtcclxuICAmOjphZnRlciB7XHJcbiAgICBAaWYgJGZhLXN0eWxlID09IFwicmVndWxhclwiIHtcclxuICAgICAgQGluY2x1ZGUgZm9udC1hd2Vzb21lLXByby1yZWd1bGFyKCRjb2RlKTtcclxuICAgIH0gQGVsc2UgaWYgJGZhLXN0eWxlID09IFwibGlnaHRcIiB7XHJcbiAgICAgIEBpbmNsdWRlIGZvbnQtYXdlc29tZS1wcm8tbGlnaHQoJGNvZGUpO1xyXG4gICAgfSBAZWxzZSBpZiAkZmEtc3R5bGUgPT0gXCJ0aGluXCIge1xyXG4gICAgICBAaW5jbHVkZSBmb250LWF3ZXNvbWUtcHJvLXRoaW4oJGNvZGUpO1xyXG4gICAgfSBAZWxzZSBpZiAkZmEtc3R5bGUgPT0gXCJicmFuZFwiIHtcclxuICAgICAgQGluY2x1ZGUgZm9udC1hd2Vzb21lLXByby1icmFuZCgkY29kZSk7XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgQGluY2x1ZGUgZm9udC1hd2Vzb21lKCRjb2RlKTtcclxuICAgIH1cclxuXHJcbiAgICBAaWYgJGZsb2F0aW5nIHtcclxuICAgICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcclxuICAgIH1cclxuXHJcbiAgICBtYXJnaW4tbGVmdDogJG1hcmdpbjtcclxuXHJcbiAgICBAY29udGVudDtcclxuICB9XHJcbn1cclxuIiwiLmJyZWFkY3J1bWIge1xuICAvLyBzY3NzLWRvY3Mtc3RhcnQgYnJlYWRjcnVtYi1jc3MtdmFyc1xuICAtLSN7JHByZWZpeH1icmVhZGNydW1iLXBhZGRpbmcteDogI3skYnJlYWRjcnVtYi1wYWRkaW5nLXh9O1xuICAtLSN7JHByZWZpeH1icmVhZGNydW1iLXBhZGRpbmcteTogI3skYnJlYWRjcnVtYi1wYWRkaW5nLXl9O1xuICAtLSN7JHByZWZpeH1icmVhZGNydW1iLW1hcmdpbi1ib3R0b206ICN7JGJyZWFkY3J1bWItbWFyZ2luLWJvdHRvbX07XG4gIEBpbmNsdWRlIHJmcygkYnJlYWRjcnVtYi1mb250LXNpemUsIC0tI3skcHJlZml4fWJyZWFkY3J1bWItZm9udC1zaXplKTtcbiAgLS0jeyRwcmVmaXh9YnJlYWRjcnVtYi1iZzogI3skYnJlYWRjcnVtYi1iZ307XG4gIC0tI3skcHJlZml4fWJyZWFkY3J1bWItYm9yZGVyLXJhZGl1czogI3skYnJlYWRjcnVtYi1ib3JkZXItcmFkaXVzfTtcbiAgLS0jeyRwcmVmaXh9YnJlYWRjcnVtYi1kaXZpZGVyLWNvbG9yOiAjeyRicmVhZGNydW1iLWRpdmlkZXItY29sb3J9O1xuICAtLSN7JHByZWZpeH1icmVhZGNydW1iLWl0ZW0tcGFkZGluZy14OiAjeyRicmVhZGNydW1iLWl0ZW0tcGFkZGluZy14fTtcbiAgLS0jeyRwcmVmaXh9YnJlYWRjcnVtYi1pdGVtLWFjdGl2ZS1jb2xvcjogI3skYnJlYWRjcnVtYi1hY3RpdmUtY29sb3J9O1xuICAvLyBzY3NzLWRvY3MtZW5kIGJyZWFkY3J1bWItY3NzLXZhcnNcblxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIHBhZGRpbmc6IHZhcigtLSN7JHByZWZpeH1icmVhZGNydW1iLXBhZGRpbmcteSkgdmFyKC0tI3skcHJlZml4fWJyZWFkY3J1bWItcGFkZGluZy14KTtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tI3skcHJlZml4fWJyZWFkY3J1bWItbWFyZ2luLWJvdHRvbSk7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSh2YXIoLS0jeyRwcmVmaXh9YnJlYWRjcnVtYi1mb250LXNpemUpKTtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tI3skcHJlZml4fWJyZWFkY3J1bWItYmcpO1xuICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKHZhcigtLSN7JHByZWZpeH1icmVhZGNydW1iLWJvcmRlci1yYWRpdXMpKTtcbn1cblxuLmJyZWFkY3J1bWItaXRlbSB7XG4gIC8vIFRoZSBzZXBhcmF0b3IgYmV0d2VlbiBicmVhZGNydW1icyAoYnkgZGVmYXVsdCwgYSBmb3J3YXJkLXNsYXNoOiBcIi9cIilcbiAgKyAuYnJlYWRjcnVtYi1pdGVtIHtcbiAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLSN7JHByZWZpeH1icmVhZGNydW1iLWl0ZW0tcGFkZGluZy14KTtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBmbG9hdDogbGVmdDsgLy8gU3VwcHJlc3MgaW5saW5lIHNwYWNpbmdzIGFuZCB1bmRlcmxpbmluZyBvZiB0aGUgc2VwYXJhdG9yXG4gICAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS0jeyRwcmVmaXh9YnJlYWRjcnVtYi1pdGVtLXBhZGRpbmcteCk7XG4gICAgICBjb2xvcjogdmFyKC0tI3skcHJlZml4fWJyZWFkY3J1bWItZGl2aWRlci1jb2xvcik7XG4gICAgICBjb250ZW50OiB2YXIoLS0jeyRwcmVmaXh9YnJlYWRjcnVtYi1kaXZpZGVyLCBlc2NhcGUtc3ZnKCRicmVhZGNydW1iLWRpdmlkZXIpKSAje1wiLyogcnRsOlwifSB2YXIoLS0jeyRwcmVmaXh9YnJlYWRjcnVtYi1kaXZpZGVyLCBlc2NhcGUtc3ZnKCRicmVhZGNydW1iLWRpdmlkZXItZmxpcHBlZCkpICN7XCIqL1wifTtcbiAgICB9XG4gIH1cblxuICAmLmFjdGl2ZSB7XG4gICAgY29sb3I6IHZhcigtLSN7JHByZWZpeH1icmVhZGNydW1iLWl0ZW0tYWN0aXZlLWNvbG9yKTtcbiAgfVxufVxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgc2Nzcy9kaW1lbnNpb24tbm8tbm9uLW51bWVyaWMtdmFsdWVzXG5cbi8vIFNDU1MgUkZTIG1peGluXG4vL1xuLy8gQXV0b21hdGVkIHJlc3BvbnNpdmUgdmFsdWVzIGZvciBmb250IHNpemVzLCBwYWRkaW5ncywgbWFyZ2lucyBhbmQgbXVjaCBtb3JlXG4vL1xuLy8gTGljZW5zZWQgdW5kZXIgTUlUIChodHRwczovL2dpdGh1Yi5jb20vdHdicy9yZnMvYmxvYi9tYWluL0xJQ0VOU0UpXG5cbi8vIENvbmZpZ3VyYXRpb25cblxuLy8gQmFzZSB2YWx1ZVxuJHJmcy1iYXNlLXZhbHVlOiAxLjI1cmVtICFkZWZhdWx0O1xuJHJmcy11bml0OiByZW0gIWRlZmF1bHQ7XG5cbkBpZiAkcmZzLXVuaXQgIT0gcmVtIGFuZCAkcmZzLXVuaXQgIT0gcHgge1xuICBAZXJyb3IgXCJgI3skcmZzLXVuaXR9YCBpcyBub3QgYSB2YWxpZCB1bml0IGZvciAkcmZzLXVuaXQuIFVzZSBgcHhgIG9yIGByZW1gLlwiO1xufVxuXG4vLyBCcmVha3BvaW50IGF0IHdoZXJlIHZhbHVlcyBzdGFydCBkZWNyZWFzaW5nIGlmIHNjcmVlbiB3aWR0aCBpcyBzbWFsbGVyXG4kcmZzLWJyZWFrcG9pbnQ6IDEyMDBweCAhZGVmYXVsdDtcbiRyZnMtYnJlYWtwb2ludC11bml0OiBweCAhZGVmYXVsdDtcblxuQGlmICRyZnMtYnJlYWtwb2ludC11bml0ICE9IHB4IGFuZCAkcmZzLWJyZWFrcG9pbnQtdW5pdCAhPSBlbSBhbmQgJHJmcy1icmVha3BvaW50LXVuaXQgIT0gcmVtIHtcbiAgQGVycm9yIFwiYCN7JHJmcy1icmVha3BvaW50LXVuaXR9YCBpcyBub3QgYSB2YWxpZCB1bml0IGZvciAkcmZzLWJyZWFrcG9pbnQtdW5pdC4gVXNlIGBweGAsIGBlbWAgb3IgYHJlbWAuXCI7XG59XG5cbi8vIFJlc2l6ZSB2YWx1ZXMgYmFzZWQgb24gc2NyZWVuIGhlaWdodCBhbmQgd2lkdGhcbiRyZnMtdHdvLWRpbWVuc2lvbmFsOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gRmFjdG9yIG9mIGRlY3JlYXNlXG4kcmZzLWZhY3RvcjogMTAgIWRlZmF1bHQ7XG5cbkBpZiB0eXBlLW9mKCRyZnMtZmFjdG9yKSAhPSBudW1iZXIgb3IgJHJmcy1mYWN0b3IgPD0gMSB7XG4gIEBlcnJvciBcImAjeyRyZnMtZmFjdG9yfWAgaXMgbm90IGEgdmFsaWQgICRyZnMtZmFjdG9yLCBpdCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAxLlwiO1xufVxuXG4vLyBNb2RlLiBQb3NzaWJpbGl0aWVzOiBcIm1pbi1tZWRpYS1xdWVyeVwiLCBcIm1heC1tZWRpYS1xdWVyeVwiXG4kcmZzLW1vZGU6IG1pbi1tZWRpYS1xdWVyeSAhZGVmYXVsdDtcblxuLy8gR2VuZXJhdGUgZW5hYmxlIG9yIGRpc2FibGUgY2xhc3Nlcy4gUG9zc2liaWxpdGllczogZmFsc2UsIFwiZW5hYmxlXCIgb3IgXCJkaXNhYmxlXCJcbiRyZnMtY2xhc3M6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyAxIHJlbSA9ICRyZnMtcmVtLXZhbHVlIHB4XG4kcmZzLXJlbS12YWx1ZTogMTYgIWRlZmF1bHQ7XG5cbi8vIFNhZmFyaSBpZnJhbWUgcmVzaXplIGJ1ZzogaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvcmZzL2lzc3Vlcy8xNFxuJHJmcy1zYWZhcmktaWZyYW1lLXJlc2l6ZS1idWctZml4OiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gRGlzYWJsZSBSRlMgYnkgc2V0dGluZyAkZW5hYmxlLXJmcyB0byBmYWxzZVxuJGVuYWJsZS1yZnM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIENhY2hlICRyZnMtYmFzZS12YWx1ZSB1bml0XG4kcmZzLWJhc2UtdmFsdWUtdW5pdDogdW5pdCgkcmZzLWJhc2UtdmFsdWUpO1xuXG5AZnVuY3Rpb24gZGl2aWRlKCRkaXZpZGVuZCwgJGRpdmlzb3IsICRwcmVjaXNpb246IDEwKSB7XG4gICRzaWduOiBpZigkZGl2aWRlbmQgPiAwIGFuZCAkZGl2aXNvciA+IDAgb3IgJGRpdmlkZW5kIDwgMCBhbmQgJGRpdmlzb3IgPCAwLCAxLCAtMSk7XG4gICRkaXZpZGVuZDogYWJzKCRkaXZpZGVuZCk7XG4gICRkaXZpc29yOiBhYnMoJGRpdmlzb3IpO1xuICBAaWYgJGRpdmlkZW5kID09IDAge1xuICAgIEByZXR1cm4gMDtcbiAgfVxuICBAaWYgJGRpdmlzb3IgPT0gMCB7XG4gICAgQGVycm9yIFwiQ2Fubm90IGRpdmlkZSBieSAwXCI7XG4gIH1cbiAgJHJlbWFpbmRlcjogJGRpdmlkZW5kO1xuICAkcmVzdWx0OiAwO1xuICAkZmFjdG9yOiAxMDtcbiAgQHdoaWxlICgkcmVtYWluZGVyID4gMCBhbmQgJHByZWNpc2lvbiA+PSAwKSB7XG4gICAgJHF1b3RpZW50OiAwO1xuICAgIEB3aGlsZSAoJHJlbWFpbmRlciA+PSAkZGl2aXNvcikge1xuICAgICAgJHJlbWFpbmRlcjogJHJlbWFpbmRlciAtICRkaXZpc29yO1xuICAgICAgJHF1b3RpZW50OiAkcXVvdGllbnQgKyAxO1xuICAgIH1cbiAgICAkcmVzdWx0OiAkcmVzdWx0ICogMTAgKyAkcXVvdGllbnQ7XG4gICAgJGZhY3RvcjogJGZhY3RvciAqIC4xO1xuICAgICRyZW1haW5kZXI6ICRyZW1haW5kZXIgKiAxMDtcbiAgICAkcHJlY2lzaW9uOiAkcHJlY2lzaW9uIC0gMTtcbiAgICBAaWYgKCRwcmVjaXNpb24gPCAwIGFuZCAkcmVtYWluZGVyID49ICRkaXZpc29yICogNSkge1xuICAgICAgJHJlc3VsdDogJHJlc3VsdCArIDE7XG4gICAgfVxuICB9XG4gICRyZXN1bHQ6ICRyZXN1bHQgKiAkZmFjdG9yICogJHNpZ247XG4gICRkaXZpZGVuZC11bml0OiB1bml0KCRkaXZpZGVuZCk7XG4gICRkaXZpc29yLXVuaXQ6IHVuaXQoJGRpdmlzb3IpO1xuICAkdW5pdC1tYXA6IChcbiAgICBcInB4XCI6IDFweCxcbiAgICBcInJlbVwiOiAxcmVtLFxuICAgIFwiZW1cIjogMWVtLFxuICAgIFwiJVwiOiAxJVxuICApO1xuICBAaWYgKCRkaXZpZGVuZC11bml0ICE9ICRkaXZpc29yLXVuaXQgYW5kIG1hcC1oYXMta2V5KCR1bml0LW1hcCwgJGRpdmlkZW5kLXVuaXQpKSB7XG4gICAgJHJlc3VsdDogJHJlc3VsdCAqIG1hcC1nZXQoJHVuaXQtbWFwLCAkZGl2aWRlbmQtdW5pdCk7XG4gIH1cbiAgQHJldHVybiAkcmVzdWx0O1xufVxuXG4vLyBSZW1vdmUgcHgtdW5pdCBmcm9tICRyZnMtYmFzZS12YWx1ZSBmb3IgY2FsY3VsYXRpb25zXG5AaWYgJHJmcy1iYXNlLXZhbHVlLXVuaXQgPT0gcHgge1xuICAkcmZzLWJhc2UtdmFsdWU6IGRpdmlkZSgkcmZzLWJhc2UtdmFsdWUsICRyZnMtYmFzZS12YWx1ZSAqIDAgKyAxKTtcbn1cbkBlbHNlIGlmICRyZnMtYmFzZS12YWx1ZS11bml0ID09IHJlbSB7XG4gICRyZnMtYmFzZS12YWx1ZTogZGl2aWRlKCRyZnMtYmFzZS12YWx1ZSwgZGl2aWRlKCRyZnMtYmFzZS12YWx1ZSAqIDAgKyAxLCAkcmZzLXJlbS12YWx1ZSkpO1xufVxuXG4vLyBDYWNoZSAkcmZzLWJyZWFrcG9pbnQgdW5pdCB0byBwcmV2ZW50IG11bHRpcGxlIGNhbGxzXG4kcmZzLWJyZWFrcG9pbnQtdW5pdC1jYWNoZTogdW5pdCgkcmZzLWJyZWFrcG9pbnQpO1xuXG4vLyBSZW1vdmUgdW5pdCBmcm9tICRyZnMtYnJlYWtwb2ludCBmb3IgY2FsY3VsYXRpb25zXG5AaWYgJHJmcy1icmVha3BvaW50LXVuaXQtY2FjaGUgPT0gcHgge1xuICAkcmZzLWJyZWFrcG9pbnQ6IGRpdmlkZSgkcmZzLWJyZWFrcG9pbnQsICRyZnMtYnJlYWtwb2ludCAqIDAgKyAxKTtcbn1cbkBlbHNlIGlmICRyZnMtYnJlYWtwb2ludC11bml0LWNhY2hlID09IHJlbSBvciAkcmZzLWJyZWFrcG9pbnQtdW5pdC1jYWNoZSA9PSBcImVtXCIge1xuICAkcmZzLWJyZWFrcG9pbnQ6IGRpdmlkZSgkcmZzLWJyZWFrcG9pbnQsIGRpdmlkZSgkcmZzLWJyZWFrcG9pbnQgKiAwICsgMSwgJHJmcy1yZW0tdmFsdWUpKTtcbn1cblxuLy8gQ2FsY3VsYXRlIHRoZSBtZWRpYSBxdWVyeSB2YWx1ZVxuJHJmcy1tcS12YWx1ZTogaWYoJHJmcy1icmVha3BvaW50LXVuaXQgPT0gcHgsICN7JHJmcy1icmVha3BvaW50fXB4LCAje2RpdmlkZSgkcmZzLWJyZWFrcG9pbnQsICRyZnMtcmVtLXZhbHVlKX0jeyRyZnMtYnJlYWtwb2ludC11bml0fSk7XG4kcmZzLW1xLXByb3BlcnR5LXdpZHRoOiBpZigkcmZzLW1vZGUgPT0gbWF4LW1lZGlhLXF1ZXJ5LCBtYXgtd2lkdGgsIG1pbi13aWR0aCk7XG4kcmZzLW1xLXByb3BlcnR5LWhlaWdodDogaWYoJHJmcy1tb2RlID09IG1heC1tZWRpYS1xdWVyeSwgbWF4LWhlaWdodCwgbWluLWhlaWdodCk7XG5cbi8vIEludGVybmFsIG1peGluIHVzZWQgdG8gZGV0ZXJtaW5lIHdoaWNoIG1lZGlhIHF1ZXJ5IG5lZWRzIHRvIGJlIHVzZWRcbkBtaXhpbiBfcmZzLW1lZGlhLXF1ZXJ5IHtcbiAgQGlmICRyZnMtdHdvLWRpbWVuc2lvbmFsIHtcbiAgICBAaWYgJHJmcy1tb2RlID09IG1heC1tZWRpYS1xdWVyeSB7XG4gICAgICBAbWVkaWEgKCN7JHJmcy1tcS1wcm9wZXJ0eS13aWR0aH06ICN7JHJmcy1tcS12YWx1ZX0pLCAoI3skcmZzLW1xLXByb3BlcnR5LWhlaWdodH06ICN7JHJmcy1tcS12YWx1ZX0pIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBtZWRpYSAoI3skcmZzLW1xLXByb3BlcnR5LXdpZHRofTogI3skcmZzLW1xLXZhbHVlfSkgYW5kICgjeyRyZnMtbXEtcHJvcGVydHktaGVpZ2h0fTogI3skcmZzLW1xLXZhbHVlfSkge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBtZWRpYSAoI3skcmZzLW1xLXByb3BlcnR5LXdpZHRofTogI3skcmZzLW1xLXZhbHVlfSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vIEludGVybmFsIG1peGluIHRoYXQgYWRkcyBkaXNhYmxlIGNsYXNzZXMgdG8gdGhlIHNlbGVjdG9yIGlmIG5lZWRlZC5cbkBtaXhpbiBfcmZzLXJ1bGUge1xuICBAaWYgJHJmcy1jbGFzcyA9PSBkaXNhYmxlIGFuZCAkcmZzLW1vZGUgPT0gbWF4LW1lZGlhLXF1ZXJ5IHtcbiAgICAvLyBBZGRpbmcgYW4gZXh0cmEgY2xhc3MgaW5jcmVhc2VzIHNwZWNpZmljaXR5LCB3aGljaCBwcmV2ZW50cyB0aGUgbWVkaWEgcXVlcnkgdG8gb3ZlcnJpZGUgdGhlIHByb3BlcnR5XG4gICAgJixcbiAgICAuZGlzYWJsZS1yZnMgJixcbiAgICAmLmRpc2FibGUtcmZzIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcmZzLWNsYXNzID09IGVuYWJsZSBhbmQgJHJmcy1tb2RlID09IG1pbi1tZWRpYS1xdWVyeSB7XG4gICAgLmVuYWJsZS1yZnMgJixcbiAgICAmLmVuYWJsZS1yZnMge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBJbnRlcm5hbCBtaXhpbiB0aGF0IGFkZHMgZW5hYmxlIGNsYXNzZXMgdG8gdGhlIHNlbGVjdG9yIGlmIG5lZWRlZC5cbkBtaXhpbiBfcmZzLW1lZGlhLXF1ZXJ5LXJ1bGUge1xuXG4gIEBpZiAkcmZzLWNsYXNzID09IGVuYWJsZSB7XG4gICAgQGlmICRyZnMtbW9kZSA9PSBtaW4tbWVkaWEtcXVlcnkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgX3Jmcy1tZWRpYS1xdWVyeSAoKSB7XG4gICAgICAuZW5hYmxlLXJmcyAmLFxuICAgICAgJi5lbmFibGUtcmZzIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAaWYgJHJmcy1jbGFzcyA9PSBkaXNhYmxlIGFuZCAkcmZzLW1vZGUgPT0gbWluLW1lZGlhLXF1ZXJ5IHtcbiAgICAgIC5kaXNhYmxlLXJmcyAmLFxuICAgICAgJi5kaXNhYmxlLXJmcyB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSBfcmZzLW1lZGlhLXF1ZXJ5ICgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLyBIZWxwZXIgZnVuY3Rpb24gdG8gZ2V0IHRoZSBmb3JtYXR0ZWQgbm9uLXJlc3BvbnNpdmUgdmFsdWVcbkBmdW5jdGlvbiByZnMtdmFsdWUoJHZhbHVlcykge1xuICAvLyBDb252ZXJ0IHRvIGxpc3RcbiAgJHZhbHVlczogaWYodHlwZS1vZigkdmFsdWVzKSAhPSBsaXN0LCAoJHZhbHVlcywpLCAkdmFsdWVzKTtcblxuICAkdmFsOiBcIlwiO1xuXG4gIC8vIExvb3Agb3ZlciBlYWNoIHZhbHVlIGFuZCBjYWxjdWxhdGUgdmFsdWVcbiAgQGVhY2ggJHZhbHVlIGluICR2YWx1ZXMge1xuICAgIEBpZiAkdmFsdWUgPT0gMCB7XG4gICAgICAkdmFsOiAkdmFsICsgXCIgMFwiO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBDYWNoZSAkdmFsdWUgdW5pdFxuICAgICAgJHVuaXQ6IGlmKHR5cGUtb2YoJHZhbHVlKSA9PSBcIm51bWJlclwiLCB1bml0KCR2YWx1ZSksIGZhbHNlKTtcblxuICAgICAgQGlmICR1bml0ID09IHB4IHtcbiAgICAgICAgLy8gQ29udmVydCB0byByZW0gaWYgbmVlZGVkXG4gICAgICAgICR2YWw6ICR2YWwgKyBcIiBcIiArIGlmKCRyZnMtdW5pdCA9PSByZW0sICN7ZGl2aWRlKCR2YWx1ZSwgJHZhbHVlICogMCArICRyZnMtcmVtLXZhbHVlKX1yZW0sICR2YWx1ZSk7XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkdW5pdCA9PSByZW0ge1xuICAgICAgICAvLyBDb252ZXJ0IHRvIHB4IGlmIG5lZWRlZFxuICAgICAgICAkdmFsOiAkdmFsICsgXCIgXCIgKyBpZigkcmZzLXVuaXQgPT0gcHgsICN7ZGl2aWRlKCR2YWx1ZSwgJHZhbHVlICogMCArIDEpICogJHJmcy1yZW0tdmFsdWV9cHgsICR2YWx1ZSk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgLy8gSWYgJHZhbHVlIGlzbid0IGEgbnVtYmVyIChsaWtlIGluaGVyaXQpIG9yICR2YWx1ZSBoYXMgYSB1bml0IChub3QgcHggb3IgcmVtLCBsaWtlIDEuNWVtKSBvciAkIGlzIDAsIGp1c3QgcHJpbnQgdGhlIHZhbHVlXG4gICAgICAgICR2YWw6ICR2YWwgKyBcIiBcIiArICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBSZW1vdmUgZmlyc3Qgc3BhY2VcbiAgQHJldHVybiB1bnF1b3RlKHN0ci1zbGljZSgkdmFsLCAyKSk7XG59XG5cbi8vIEhlbHBlciBmdW5jdGlvbiB0byBnZXQgdGhlIHJlc3BvbnNpdmUgdmFsdWUgY2FsY3VsYXRlZCBieSBSRlNcbkBmdW5jdGlvbiByZnMtZmx1aWQtdmFsdWUoJHZhbHVlcykge1xuICAvLyBDb252ZXJ0IHRvIGxpc3RcbiAgJHZhbHVlczogaWYodHlwZS1vZigkdmFsdWVzKSAhPSBsaXN0LCAoJHZhbHVlcywpLCAkdmFsdWVzKTtcblxuICAkdmFsOiBcIlwiO1xuXG4gIC8vIExvb3Agb3ZlciBlYWNoIHZhbHVlIGFuZCBjYWxjdWxhdGUgdmFsdWVcbiAgQGVhY2ggJHZhbHVlIGluICR2YWx1ZXMge1xuICAgIEBpZiAkdmFsdWUgPT0gMCB7XG4gICAgICAkdmFsOiAkdmFsICsgXCIgMFwiO1xuICAgIH0gQGVsc2Uge1xuICAgICAgLy8gQ2FjaGUgJHZhbHVlIHVuaXRcbiAgICAgICR1bml0OiBpZih0eXBlLW9mKCR2YWx1ZSkgPT0gXCJudW1iZXJcIiwgdW5pdCgkdmFsdWUpLCBmYWxzZSk7XG5cbiAgICAgIC8vIElmICR2YWx1ZSBpc24ndCBhIG51bWJlciAobGlrZSBpbmhlcml0KSBvciAkdmFsdWUgaGFzIGEgdW5pdCAobm90IHB4IG9yIHJlbSwgbGlrZSAxLjVlbSkgb3IgJCBpcyAwLCBqdXN0IHByaW50IHRoZSB2YWx1ZVxuICAgICAgQGlmIG5vdCAkdW5pdCBvciAkdW5pdCAhPSBweCBhbmQgJHVuaXQgIT0gcmVtIHtcbiAgICAgICAgJHZhbDogJHZhbCArIFwiIFwiICsgJHZhbHVlO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIC8vIFJlbW92ZSB1bml0IGZyb20gJHZhbHVlIGZvciBjYWxjdWxhdGlvbnNcbiAgICAgICAgJHZhbHVlOiBkaXZpZGUoJHZhbHVlLCAkdmFsdWUgKiAwICsgaWYoJHVuaXQgPT0gcHgsIDEsIGRpdmlkZSgxLCAkcmZzLXJlbS12YWx1ZSkpKTtcblxuICAgICAgICAvLyBPbmx5IGFkZCB0aGUgbWVkaWEgcXVlcnkgaWYgdGhlIHZhbHVlIGlzIGdyZWF0ZXIgdGhhbiB0aGUgbWluaW11bSB2YWx1ZVxuICAgICAgICBAaWYgYWJzKCR2YWx1ZSkgPD0gJHJmcy1iYXNlLXZhbHVlIG9yIG5vdCAkZW5hYmxlLXJmcyB7XG4gICAgICAgICAgJHZhbDogJHZhbCArIFwiIFwiICsgaWYoJHJmcy11bml0ID09IHJlbSwgI3tkaXZpZGUoJHZhbHVlLCAkcmZzLXJlbS12YWx1ZSl9cmVtLCAjeyR2YWx1ZX1weCk7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgbWluaW11bSB2YWx1ZVxuICAgICAgICAgICR2YWx1ZS1taW46ICRyZnMtYmFzZS12YWx1ZSArIGRpdmlkZShhYnMoJHZhbHVlKSAtICRyZnMtYmFzZS12YWx1ZSwgJHJmcy1mYWN0b3IpO1xuXG4gICAgICAgICAgLy8gQ2FsY3VsYXRlIGRpZmZlcmVuY2UgYmV0d2VlbiAkdmFsdWUgYW5kIHRoZSBtaW5pbXVtIHZhbHVlXG4gICAgICAgICAgJHZhbHVlLWRpZmY6IGFicygkdmFsdWUpIC0gJHZhbHVlLW1pbjtcblxuICAgICAgICAgIC8vIEJhc2UgdmFsdWUgZm9ybWF0dGluZ1xuICAgICAgICAgICRtaW4td2lkdGg6IGlmKCRyZnMtdW5pdCA9PSByZW0sICN7ZGl2aWRlKCR2YWx1ZS1taW4sICRyZnMtcmVtLXZhbHVlKX1yZW0sICN7JHZhbHVlLW1pbn1weCk7XG5cbiAgICAgICAgICAvLyBVc2UgbmVnYXRpdmUgdmFsdWUgaWYgbmVlZGVkXG4gICAgICAgICAgJG1pbi13aWR0aDogaWYoJHZhbHVlIDwgMCwgLSRtaW4td2lkdGgsICRtaW4td2lkdGgpO1xuXG4gICAgICAgICAgLy8gVXNlIGB2bWluYCBpZiB0d28tZGltZW5zaW9uYWwgaXMgZW5hYmxlZFxuICAgICAgICAgICR2YXJpYWJsZS11bml0OiBpZigkcmZzLXR3by1kaW1lbnNpb25hbCwgdm1pbiwgdncpO1xuXG4gICAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSB2YXJpYWJsZSB3aWR0aCBiZXR3ZWVuIDAgYW5kICRyZnMtYnJlYWtwb2ludFxuICAgICAgICAgICR2YXJpYWJsZS13aWR0aDogI3tkaXZpZGUoJHZhbHVlLWRpZmYgKiAxMDAsICRyZnMtYnJlYWtwb2ludCl9I3skdmFyaWFibGUtdW5pdH07XG5cbiAgICAgICAgICAvLyBSZXR1cm4gdGhlIGNhbGN1bGF0ZWQgdmFsdWVcbiAgICAgICAgICAkdmFsOiAkdmFsICsgXCIgY2FsYyhcIiArICRtaW4td2lkdGggKyBpZigkdmFsdWUgPCAwLCBcIiAtIFwiLCBcIiArIFwiKSArICR2YXJpYWJsZS13aWR0aCArIFwiKVwiO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUmVtb3ZlIGZpcnN0IHNwYWNlXG4gIEByZXR1cm4gdW5xdW90ZShzdHItc2xpY2UoJHZhbCwgMikpO1xufVxuXG4vLyBSRlMgbWl4aW5cbkBtaXhpbiByZnMoJHZhbHVlcywgJHByb3BlcnR5OiBmb250LXNpemUpIHtcbiAgQGlmICR2YWx1ZXMgIT0gbnVsbCB7XG4gICAgJHZhbDogcmZzLXZhbHVlKCR2YWx1ZXMpO1xuICAgICRmbHVpZC12YWw6IHJmcy1mbHVpZC12YWx1ZSgkdmFsdWVzKTtcblxuICAgIC8vIERvIG5vdCBwcmludCB0aGUgbWVkaWEgcXVlcnkgaWYgcmVzcG9uc2l2ZSAmIG5vbi1yZXNwb25zaXZlIHZhbHVlcyBhcmUgdGhlIHNhbWVcbiAgICBAaWYgJHZhbCA9PSAkZmx1aWQtdmFsIHtcbiAgICAgICN7JHByb3BlcnR5fTogJHZhbDtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgX3Jmcy1ydWxlICgpIHtcbiAgICAgICAgI3skcHJvcGVydHl9OiBpZigkcmZzLW1vZGUgPT0gbWF4LW1lZGlhLXF1ZXJ5LCAkdmFsLCAkZmx1aWQtdmFsKTtcblxuICAgICAgICAvLyBJbmNsdWRlIHNhZmFyaSBpZnJhbWUgcmVzaXplIGZpeCBpZiBuZWVkZWRcbiAgICAgICAgbWluLXdpZHRoOiBpZigkcmZzLXNhZmFyaS1pZnJhbWUtcmVzaXplLWJ1Zy1maXgsICgwICogMXZ3KSwgbnVsbCk7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIF9yZnMtbWVkaWEtcXVlcnktcnVsZSAoKSB7XG4gICAgICAgICN7JHByb3BlcnR5fTogaWYoJHJmcy1tb2RlID09IG1heC1tZWRpYS1xdWVyeSwgJGZsdWlkLXZhbCwgJHZhbCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIFNob3J0aGFuZCBoZWxwZXIgbWl4aW5zXG5AbWl4aW4gZm9udC1zaXplKCR2YWx1ZSkge1xuICBAaW5jbHVkZSByZnMoJHZhbHVlKTtcbn1cblxuQG1peGluIHBhZGRpbmcoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHJmcygkdmFsdWUsIHBhZGRpbmcpO1xufVxuXG5AbWl4aW4gcGFkZGluZy10b3AoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHJmcygkdmFsdWUsIHBhZGRpbmctdG9wKTtcbn1cblxuQG1peGluIHBhZGRpbmctcmlnaHQoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHJmcygkdmFsdWUsIHBhZGRpbmctcmlnaHQpO1xufVxuXG5AbWl4aW4gcGFkZGluZy1ib3R0b20oJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHJmcygkdmFsdWUsIHBhZGRpbmctYm90dG9tKTtcbn1cblxuQG1peGluIHBhZGRpbmctbGVmdCgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcmZzKCR2YWx1ZSwgcGFkZGluZy1sZWZ0KTtcbn1cblxuQG1peGluIG1hcmdpbigkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcmZzKCR2YWx1ZSwgbWFyZ2luKTtcbn1cblxuQG1peGluIG1hcmdpbi10b3AoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHJmcygkdmFsdWUsIG1hcmdpbi10b3ApO1xufVxuXG5AbWl4aW4gbWFyZ2luLXJpZ2h0KCR2YWx1ZSkge1xuICBAaW5jbHVkZSByZnMoJHZhbHVlLCBtYXJnaW4tcmlnaHQpO1xufVxuXG5AbWl4aW4gbWFyZ2luLWJvdHRvbSgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcmZzKCR2YWx1ZSwgbWFyZ2luLWJvdHRvbSk7XG59XG5cbkBtaXhpbiBtYXJnaW4tbGVmdCgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcmZzKCR2YWx1ZSwgbWFyZ2luLWxlZnQpO1xufVxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgcHJvcGVydHktZGlzYWxsb3dlZC1saXN0XG4vLyBTaW5nbGUgc2lkZSBib3JkZXItcmFkaXVzXG5cbi8vIEhlbHBlciBmdW5jdGlvbiB0byByZXBsYWNlIG5lZ2F0aXZlIHZhbHVlcyB3aXRoIDBcbkBmdW5jdGlvbiB2YWxpZC1yYWRpdXMoJHJhZGl1cykge1xuICAkcmV0dXJuOiAoKTtcbiAgQGVhY2ggJHZhbHVlIGluICRyYWRpdXMge1xuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gbnVtYmVyIHtcbiAgICAgICRyZXR1cm46IGFwcGVuZCgkcmV0dXJuLCBtYXgoJHZhbHVlLCAwKSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkcmV0dXJuOiBhcHBlbmQoJHJldHVybiwgJHZhbHVlKTtcbiAgICB9XG4gIH1cbiAgQHJldHVybiAkcmV0dXJuO1xufVxuXG4vLyBzY3NzLWRvY3Mtc3RhcnQgYm9yZGVyLXJhZGl1cy1taXhpbnNcbkBtaXhpbiBib3JkZXItcmFkaXVzKCRyYWRpdXM6ICRib3JkZXItcmFkaXVzLCAkZmFsbGJhY2stYm9yZGVyLXJhZGl1czogZmFsc2UpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLXJhZGl1czogdmFsaWQtcmFkaXVzKCRyYWRpdXMpO1xuICB9XG4gIEBlbHNlIGlmICRmYWxsYmFjay1ib3JkZXItcmFkaXVzICE9IGZhbHNlIHtcbiAgICBib3JkZXItcmFkaXVzOiAkZmFsbGJhY2stYm9yZGVyLXJhZGl1cztcbiAgfVxufVxuXG5AbWl4aW4gYm9yZGVyLXRvcC1yYWRpdXMoJHJhZGl1czogJGJvcmRlci1yYWRpdXMpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdmFsaWQtcmFkaXVzKCRyYWRpdXMpO1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YWxpZC1yYWRpdXMoJHJhZGl1cyk7XG4gIH1cbn1cblxuQG1peGluIGJvcmRlci1lbmQtcmFkaXVzKCRyYWRpdXM6ICRib3JkZXItcmFkaXVzKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YWxpZC1yYWRpdXMoJHJhZGl1cyk7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHZhbGlkLXJhZGl1cygkcmFkaXVzKTtcbiAgfVxufVxuXG5AbWl4aW4gYm9yZGVyLWJvdHRvbS1yYWRpdXMoJHJhZGl1czogJGJvcmRlci1yYWRpdXMpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHZhbGlkLXJhZGl1cygkcmFkaXVzKTtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB2YWxpZC1yYWRpdXMoJHJhZGl1cyk7XG4gIH1cbn1cblxuQG1peGluIGJvcmRlci1zdGFydC1yYWRpdXMoJHJhZGl1czogJGJvcmRlci1yYWRpdXMpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdmFsaWQtcmFkaXVzKCRyYWRpdXMpO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhbGlkLXJhZGl1cygkcmFkaXVzKTtcbiAgfVxufVxuXG5AbWl4aW4gYm9yZGVyLXRvcC1zdGFydC1yYWRpdXMoJHJhZGl1czogJGJvcmRlci1yYWRpdXMpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdmFsaWQtcmFkaXVzKCRyYWRpdXMpO1xuICB9XG59XG5cbkBtaXhpbiBib3JkZXItdG9wLWVuZC1yYWRpdXMoJHJhZGl1czogJGJvcmRlci1yYWRpdXMpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHZhbGlkLXJhZGl1cygkcmFkaXVzKTtcbiAgfVxufVxuXG5AbWl4aW4gYm9yZGVyLWJvdHRvbS1lbmQtcmFkaXVzKCRyYWRpdXM6ICRib3JkZXItcmFkaXVzKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YWxpZC1yYWRpdXMoJHJhZGl1cyk7XG4gIH1cbn1cblxuQG1peGluIGJvcmRlci1ib3R0b20tc3RhcnQtcmFkaXVzKCRyYWRpdXM6ICRib3JkZXItcmFkaXVzKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhbGlkLXJhZGl1cygkcmFkaXVzKTtcbiAgfVxufVxuLy8gc2Nzcy1kb2NzLWVuZCBib3JkZXItcmFkaXVzLW1peGluc1xuIiwiQGltcG9ydCBcIn5ib290c3RyYXAvc2Nzcy9icmVhZGNydW1iXCI7XHJcblxyXG4uYnJlYWRjcnVtYnMge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBtYXgtd2lkdGg6IDEwMHZ3O1xyXG4gIG1hcmdpbi1yaWdodDogY2FsYygjeyRjb250YWluZXItcGFkZGluZy14fSAqIC0xKTtcclxuICBtYXJnaW4tbGVmdDogY2FsYygjeyRjb250YWluZXItcGFkZGluZy14fSAqIC0xKTtcclxuXHJcbiAgLmJyZWFkY3J1bWIge1xyXG4gICAgZmxleC13cmFwOiBub3dyYXA7XHJcbiAgICBwYWRkaW5nOiAkY29udGFpbmVyLXBhZGRpbmcteDtcclxuICAgIG1hcmdpbjogdW5zZXQ7XHJcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xyXG5cclxuICAgICY6OmJlZm9yZSxcclxuICAgICY6OmFmdGVyIHtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB0b3A6IDA7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gICAgICBjb250ZW50OiBcIlwiO1xyXG4gICAgfVxyXG5cclxuICAgICY6OmJlZm9yZSB7XHJcbiAgICAgIGxlZnQ6IDA7XHJcbiAgICAgIHdpZHRoOiAxcmVtO1xyXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHZhcigtLWFscGhhLWJyZWFkY3J1bWJzLW1vYmlsZS1zaGFkb3ctY29sb3IpIDAsIHZhcigtLWFscGhhLWJyZWFkY3J1bWJzLW1vYmlsZS1zaGFkb3ctY29sb3ItZW5kKSk7XHJcbiAgICB9XHJcblxyXG4gICAgJjo6YWZ0ZXIge1xyXG4gICAgICByaWdodDogMDtcclxuICAgICAgd2lkdGg6IDJyZW07XHJcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdmFyKC0tYWxwaGEtYnJlYWRjcnVtYnMtbW9iaWxlLXNoYWRvdy1jb2xvci1lbmQpIDAsIHZhcigtLWFscGhhLWJyZWFkY3J1bWJzLW1vYmlsZS1zaGFkb3ctY29sb3IpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobWQpIHtcclxuICAgIC5icmVhZGNydW1iIHtcclxuICAgICAgJjo6YmVmb3JlLFxyXG4gICAgICAmOjphZnRlciB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5vbi1mZWF0dXJlZCB7XHJcbiAgICAtLWFscGhhLWJyZWFkY3J1bWJzLW1vYmlsZS1zaGFkb3ctY29sb3I6ICN7JGJyZWFkY3J1bWItb24tZmVhdHVyZWQtbW9iaWxlLXNoYWRvdy1jb2xvcn07XHJcbiAgICAtLWFscGhhLWJyZWFkY3J1bWJzLW1vYmlsZS1zaGFkb3ctY29sb3ItZW5kOiAje3JnYmEoJGJyZWFkY3J1bWItb24tZmVhdHVyZWQtbW9iaWxlLXNoYWRvdy1jb2xvciwgMCl9O1xyXG4gICAgdG9wOiB2YXIoLS1mZWF0dXJlZC1pbWFnZS1oZWlnaHQpO1xyXG4gICAgei1pbmRleDogMTA7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xyXG5cclxuICAgIC5icmVhZGNydW1iIHtcclxuICAgICAgLS1icy1icmVhZGNydW1iLWRpdmlkZXItY29sb3I6IGN1cnJlbnRjb2xvcjtcclxuICAgICAgLS1icy1icmVhZGNydW1iLWl0ZW0tYWN0aXZlLWNvbG9yOiBjdXJyZW50Y29sb3I7XHJcblxyXG4gICAgICAmOjpiZWZvcmUsXHJcbiAgICAgICY6OmFmdGVyIHtcclxuICAgICAgICBvcGFjaXR5OiAuNzU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5icmVhZGNydW1icy1vbi1mZWF0dXJlZCB7XHJcbiAgJjpub3QoLmhhcy10cmFuc3BhcmVudC1oZWFkZXIpIHtcclxuICAgIC5icmVhZGNydW1icyB7XHJcbiAgICAgIHRvcDogY2FsYyh2YXIoLS1oZWFkZXItaGVpZ2h0KSArIHZhcigtLWZlYXR1cmVkLWltYWdlLWhlaWdodCkpO1xyXG4gICAgICB0cmFuc2l0aW9uOiB0b3AgLjNzIGVhc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLnNlYXJjaCB7XHJcbiAgICAuY29udGVudC13cmFwcGVyIHtcclxuICAgICAgcGFkZGluZy10b3A6IG1hcC1nZXQoJHNwYWNlcnMsIDgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLmJyZWFkY3J1bWItaXRlbSB7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuXHJcbiAgKyAuYnJlYWRjcnVtYi1pdGVtIHtcclxuICAgIEBpbmNsdWRlIGZvbnQtYXdlc29tZS1iZWZvcmUoJGZhLXZhci1hbmdsZS1yaWdodCwgZmFsc2UsIFwibGlnaHRcIiwgMCk7XHJcblxyXG4gICAgJjo6YmVmb3JlIHtcclxuICAgICAgZmxvYXQ6IHVuc2V0O1xyXG4gICAgICBwYWRkaW5nLXJpZ2h0OiAuMjVyZW07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLmFjdGl2ZSB7XHJcbiAgICBzcGFuIHtcclxuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiQGltcG9ydCBcIn5ib290c3RyYXAvc2Nzcy9mdW5jdGlvbnNcIjtcclxuQGltcG9ydCBcIn5AZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtcHJvL3Njc3MvZnVuY3Rpb25zXCI7XHJcbkBpbXBvcnQgXCJ+QGZvcnRhd2Vzb21lL2ZvbnRhd2Vzb21lLXByby9zY3NzL3ZhcmlhYmxlc1wiO1xyXG5cclxuJHRoZW1lLWFzc2V0LXBhdGg6IFwiLi4vaW1hZ2VzXCIgIWRlZmF1bHQ7XHJcbiRmb250cy1wYXRoOiBcImZvbnRzXCIgIWRlZmF1bHQ7XHJcblxyXG4vLy0tLS0tLSBDb2xvciBzeXN0ZW1cclxuJHdoaXRlOiAjZmZmICFkZWZhdWx0O1xyXG4kZ3JheS0xMDA6ICNmN2Y3ZjcgIWRlZmF1bHQ7XHJcbiRncmF5LTIwMDogI2U5ZWNlZiAhZGVmYXVsdDtcclxuJGdyYXktNTAwOiAjOWQ5ZDlkICFkZWZhdWx0O1xyXG4kZ3JheS02MDA6ICM2Yzc1N2QgIWRlZmF1bHQ7XHJcbiRncmF5LTcwMDogIzQ5NTA1NyAhZGVmYXVsdDtcclxuJGdyYXktOTAwOiAjMGEwYTBhICFkZWZhdWx0O1xyXG4kYmxhY2s6ICMwMDAgIWRlZmF1bHQ7XHJcbiRuZW1hdGlzLXZpb2xldDogIzcxMTk2ZiAhZGVmYXVsdDtcclxuXHJcbi8vIHNjc3MtZG9jcy1zdGFydCBjb2xvci12YXJpYWJsZXNcclxuJGJsdWU6ICMwMDVkYWEgIWRlZmF1bHQ7XHJcbiRwdXJwbGU6ICM3MDFlNmUgIWRlZmF1bHQ7XHJcbiRncmVlbjogIzAxYWUzYyAhZGVmYXVsdDtcclxuJHJlZDogI2RjMzU0NSAhZGVmYXVsdDtcclxuJHllbGxvdzogI2ZmYzEwNyAhZGVmYXVsdDtcclxuJGN5YW46ICMwZGNhZjAgIWRlZmF1bHQ7XHJcblxyXG4vLyBzY3NzLWRvY3Mtc3RhcnQgY29sb3JzLW1hcFxyXG4kY29sb3JzOiAoXHJcbiAgXCJibHVlXCI6ICRibHVlLFxyXG4gIFwicHVycGxlXCI6ICRwdXJwbGUsXHJcbiAgXCJncmVlblwiOiAkZ3JlZW4sXHJcbiAgXCJ3aGl0ZVwiOiAkd2hpdGUsXHJcbiAgXCJncmF5LTEwMFwiOiAkZ3JheS0xMDAsXHJcbiAgXCJncmF5LTUwMFwiOiAkZ3JheS01MDAsXHJcbiAgXCJncmF5LTkwMFwiOiAkZ3JheS05MDBcclxuKSAhZGVmYXVsdDtcclxuXHJcbi8vIHNjc3MtZG9jcy1zdGFydCB0aGVtZS1jb2xvci12YXJpYWJsZXNcclxuJHN1Y2Nlc3M6ICRncmVlbiAhZGVmYXVsdDtcclxuJGluZm86ICRjeWFuICFkZWZhdWx0O1xyXG4kd2FybmluZzogJHllbGxvdyAhZGVmYXVsdDtcclxuJGRhbmdlcjogJHJlZCAhZGVmYXVsdDtcclxuJGxpZ2h0OiAkZ3JheS0xMDAgIWRlZmF1bHQ7XHJcbiRkYXJrOiAkZ3JheS05MDAgIWRlZmF1bHQ7XHJcblxyXG4vLyBzY3NzLWRvY3Mtc3RhcnQgdGhlbWUtY29sb3JzLW1hcFxyXG4kZGVmYXVsdC10aGVtZS1jb2xvcnM6IChcclxuICBcInByaW1hcnlcIjogJHByaW1hcnksXHJcbiAgXCJzZWNvbmRhcnlcIjogJHNlY29uZGFyeSxcclxuICBcInN1Y2Nlc3NcIjogJHN1Y2Nlc3MsXHJcbiAgXCJpbmZvXCI6ICRpbmZvLFxyXG4gIFwid2FybmluZ1wiOiAkd2FybmluZyxcclxuICBcImRhbmdlclwiOiAkZGFuZ2VyLFxyXG4gIFwibGlnaHRcIjogJGxpZ2h0LFxyXG4gIFwiZGFya1wiOiAkZGFya1xyXG4pICFkZWZhdWx0O1xyXG4kdGhlbWUtY29sb3JzOiAoKSAhZGVmYXVsdDtcclxuJHRoZW1lLWNvbG9yczogbWFwLW1lcmdlKCRkZWZhdWx0LXRoZW1lLWNvbG9ycywgJHRoZW1lLWNvbG9ycyk7XHJcblxyXG4vLyBUaGUgY29udHJhc3QgcmF0aW8gdG8gcmVhY2ggYWdhaW5zdCB3aGl0ZSwgdG8gZGV0ZXJtaW5lIGlmIGNvbG9yIGNoYW5nZXMgZnJvbSBcImxpZ2h0XCIgdG8gXCJkYXJrXCIuIEFjY2VwdGFibGUgdmFsdWVzIGZvciBXQ0FHIDIuMCBhcmUgMywgNC41IGFuZCA3LlxyXG4kbWluLWNvbnRyYXN0LXJhdGlvOiA0LjUgIWRlZmF1bHQ7XHJcblxyXG4vLyBDdXN0b21pemUgdGhlIGxpZ2h0IGFuZCBkYXJrIHRleHQgY29sb3JzIGZvciB1c2UgaW4gb3VyIGNvbG9yIGNvbnRyYXN0IGZ1bmN0aW9uLlxyXG4kY29sb3ItY29udHJhc3QtZGFyazogJGdyYXktOTAwICFkZWZhdWx0O1xyXG4kY29sb3ItY29udHJhc3QtbGlnaHQ6ICR3aGl0ZSAhZGVmYXVsdDtcclxuXHJcbi8vLS0tLS0tIE9wdGlvbnNcclxuJGVuYWJsZS1uZWdhdGl2ZS1tYXJnaW5zOiB0cnVlICFkZWZhdWx0O1xyXG5cclxuLy8tLS0tLS0gU3BhY2luZ1xyXG4kc3BhY2VyOiAxcmVtICFkZWZhdWx0O1xyXG4kc3BhY2VyczogKFxyXG4gIDA6IDAsXHJcbiAgMTogJHNwYWNlciAqIC4yNSwgLy8gNHB4XHJcbiAgMjogJHNwYWNlciAqIC41LCAvLyA4cHhcclxuICAzOiAkc3BhY2VyICogLjc1LCAvLyAxMnB4XHJcbiAgNDogJHNwYWNlciwgLy8gMTZweFxyXG4gIDU6ICRzcGFjZXIgKiAxLjI1LCAvLyAyMHB4XHJcbiAgNjogJHNwYWNlciAqIDEuNSwgLy8gMjRweFxyXG4gIDc6ICRzcGFjZXIgKiAxLjc1LCAvLyAyOHB4XHJcbiAgODogJHNwYWNlciAqIDIsIC8vIDMycHhcclxuICA5OiAkc3BhY2VyICogMywgLy8gNDhweFxyXG4gIDEwOiAkc3BhY2VyICogNCwgLy8gNjRweFxyXG4gIDExOiAkc3BhY2VyICogNSAvLyA4MHB4XHJcbikgIWRlZmF1bHQ7XHJcblxyXG4vLy0tLS0tLSBEYXJrIFN0eWxlXHJcbiRkYXJrLWJnLWNvbG9yOiAkYm9keS1jb2xvciAhZGVmYXVsdDtcclxuJGRhcmstdHh0LWNvbG9yOiAkYm9keS1iZyAhZGVmYXVsdDtcclxuXHJcbi8vLS0tLS0tIExpZ2h0IFN0eWxlXHJcbiRsaWdodC1iZy1jb2xvcjogJGRhcmstdHh0LWNvbG9yICFkZWZhdWx0O1xyXG4kbGlnaHQtdHh0LWNvbG9yOiAkZGFyay1iZy1jb2xvciAhZGVmYXVsdDtcclxuXHJcbi8vLS0tLS0tIEhlYWRlclxyXG4kaGVhZGVyLWJnOiAkYm9keS1iZyAhZGVmYXVsdDtcclxuXHJcbi8vLS0tLS0tIEZvb3RlclxyXG4kZm9vdGVyLWJnOiByZ2JhKCRwcmltYXJ5LCAuMSkgIWRlZmF1bHQ7XHJcbiRjb3B5cmlnaHQtYmc6ICRmb290ZXItYmcgIWRlZmF1bHQ7XHJcblxyXG4vLy0tLS0tLSBMaW5rc1xyXG4kbGluay1jb2xvcjogJHByaW1hcnkgIWRlZmF1bHQ7XHJcbiRsaW5rLXNoYWRlLXBlcmNlbnRhZ2U6IDIwJSAhZGVmYXVsdDtcclxuJGxpbmstaG92ZXItY29sb3I6IHNoaWZ0LWNvbG9yKCRsaW5rLWNvbG9yLCAkbGluay1zaGFkZS1wZXJjZW50YWdlKSAhZGVmYXVsdDtcclxuXHJcbi8vIEdyaWQgY29sdW1uc1xyXG4kZ3JpZC1ndXR0ZXItd2lkdGg6IDEuNXJlbSAhZGVmYXVsdDtcclxuXHJcbi8vLS0tLS0tIENvbnRhaW5lciBwYWRkaW5nXHJcbiRjb250YWluZXItcGFkZGluZy14OiAkZ3JpZC1ndXR0ZXItd2lkdGggLyAyICFkZWZhdWx0O1xyXG5cclxuLy8tLS0tLS0gQ29tcG9uZW50c1xyXG4vLyBzY3NzLWRvY3Mtc3RhcnQgYm9yZGVyLXZhcmlhYmxlc1xyXG4kYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XHJcbiRib3JkZXItY29sb3I6IHJnYmEoJGdyYXktOTAwLCAuMTUpICFkZWZhdWx0O1xyXG5cclxuLy8gc2Nzcy1kb2NzLXN0YXJ0IGFzcGVjdC1yYXRpb3NcclxuXHJcbi8vIHNjc3MtZG9jcy1zdGFydCBoZWFkaW5ncy12YXJpYWJsZXNcclxuJGhlYWRpbmdzLW1hcmdpbi1ib3R0b206ICRzcGFjZXIgKiAyICFkZWZhdWx0O1xyXG5cclxuLy8tLS0tLS0gQnV0dG9ucyArIEZvcm1zXHJcbiRidG4tY29sb3JzOiAoXHJcbiAgXCJwcmltYXJ5XCI6IG51bGwsXHJcbiAgXCJzZWNvbmRhcnlcIiA6IG51bGxcclxuKSAhZGVmYXVsdDtcclxuXHJcbiRpbnB1dC1mb250LXNpemU6ICRmb250LXNpemUtYmFzZSAhZGVmYXVsdDtcclxuJGlucHV0LWJ0bi1mb2N1cy13aWR0aDogLjEyNXJlbSAhZGVmYXVsdDtcclxuXHJcbi8vLS0tLS0tIE5hdnNcclxuLy8tLS0tLSBTaGFyZWQgdmFyaWFibGVzXHJcbiRuYXYtY29sb3ItYWNjZW50OiAkcHJpbWFyeSAhZGVmYXVsdDtcclxuXHJcbi8vLS0tLS0gQm9vdHN0cmFwIHZhcmlhYmxlc1xyXG4kbmF2LWxpbmstZm9udC1zaXplOiBudWxsICFkZWZhdWx0O1xyXG4kbmF2LWxpbmstY29sb3I6ICRib2R5LWNvbG9yICFkZWZhdWx0O1xyXG4kbmF2LWxpbmstaG92ZXItY29sb3I6IHRpbnQtY29sb3IoJHByaW1hcnksIDMwJSkgIWRlZmF1bHQ7XHJcbiRuYXYtbGluay1kaXNhYmxlZC1jb2xvcjogJGdyYXktNjAwICFkZWZhdWx0O1xyXG5cclxuLy8tLS0tLSBBbHBoYSB2YXJpYWJsZXNcclxuJG5hdi1jb2xvci1ob3Zlci1maXJzdC1sZXZlbDogJG5hdi1saW5rLWhvdmVyLWNvbG9yICFkZWZhdWx0O1xyXG4kbmF2LWNvbG9yLWN1cnJlbnQ6ICRuYXYtY29sb3ItYWNjZW50ICFkZWZhdWx0O1xyXG4kbmF2LWNvbG9yLWN1cnJlbnQtZmlyc3QtbGV2ZWw6ICRuYXYtY29sb3ItY3VycmVudCAhZGVmYXVsdDtcclxuJG5hdi1jb2xvci1hbmNlc3Rvcjogc2hhZGUtY29sb3IoJG5hdi1jb2xvci1hY2NlbnQsIDIwJSkgIWRlZmF1bHQ7XHJcbiRuYXYtY29sb3ItYW5jZXN0b3ItZmlyc3QtbGV2ZWw6ICRuYXYtY29sb3ItYW5jZXN0b3IgIWRlZmF1bHQ7XHJcblxyXG4vLy0tLS0tLSBOYXZiYXJcclxuJHN1Ym1lbnUtYmctY29sb3I6IHdoaXRlICFkZWZhdWx0O1xyXG4kbmF2YmFyLXBhZGRpbmcteTogMyAqICRzcGFjZXIgLyA0ICFkZWZhdWx0O1xyXG4kbmF2YmFyLWl0ZW0tbWFyZ2luLXg6IG51bGwgIWRlZmF1bHQ7XHJcbiRuYXZiYXItaXRlbS1tYXJnaW4teTogbnVsbCAhZGVmYXVsdDtcclxuJG5hdmJhci1saWdodC1jb2xvcjogJG5hdi1saW5rLWNvbG9yICFkZWZhdWx0O1xyXG4kbmF2YmFyLWxpZ2h0LWhvdmVyLWNvbG9yOiAkbmF2LWxpbmstaG92ZXItY29sb3IgIWRlZmF1bHQ7XHJcbiRuYXZiYXItbGlnaHQtYWN0aXZlLWNvbG9yOiAkbmF2LWxpbmstaG92ZXItY29sb3IgIWRlZmF1bHQ7XHJcbiRuYXZiYXItbGlnaHQtZGlzYWJsZWQtY29sb3I6ICRuYXYtbGluay1kaXNhYmxlZC1jb2xvciAhZGVmYXVsdDtcclxuXHJcbi8vLS0tLS0tIERyb3Bkb3duc1xyXG5cclxuLy8tLS0tLS0gUGFnaW5hdGlvblxyXG4kcGFnaW5hdGlvbi1ob3Zlci1iZzogcmdiYSgkcHJpbWFyeSwgLjEpICFkZWZhdWx0O1xyXG5cclxuLy8tLS0tLS0gTW9kYWxzXHJcbiRtb2RhbC1iYWNrZHJvcC1iZzogYmxhY2sgIWRlZmF1bHQ7XHJcbiRtb2RhbC1iYWNrZHJvcC1vcGFjaXR5OiAuNSAhZGVmYXVsdDtcclxuJG1vZGFsLWNvbnRlbnQtYm9yZGVyLXdpZHRoOiAwICFkZWZhdWx0O1xyXG5cclxuLy8gTW9kYWwgVmlkZW9cclxuJG1vZGFsLXZpZGVvLWJ0bi1jbG9zZS1iZy1jb2xvcjogJHByaW1hcnkgIWRlZmF1bHQ7XHJcbiRtb2RhbC12aWRlby1idG4tY2xvc2UtY29sb3I6ICNmZmYgIWRlZmF1bHQ7XHJcblxyXG4vLy0tLS0tLSBJbWFnZSB0aHVtYm5haWxzICYgUGljdHVyZVxyXG5cclxuLy8tLS0tLS0gQnJlYWRjcnVtYnNcclxuJGJyZWFkY3J1bWItZm9udC1zaXplOiAuNzVyZW0gIWRlZmF1bHQ7XHJcbiRicmVhZGNydW1iLWFjdGl2ZS1jb2xvcjogJGJvZHktY29sb3IgIWRlZmF1bHQ7XHJcblxyXG4vLy0tLS0tLSBPZmZjYW52YXNcclxuJG9mZmNhbnZhcy1ib2R5LWJhY2tkcm9wLWNvbG9yOiByZ2JhKCRtb2RhbC1iYWNrZHJvcC1iZywgJG1vZGFsLWJhY2tkcm9wLW9wYWNpdHkpICFkZWZhdWx0O1xyXG4kb2ZmY2FudmFzLXdpZGUtc2NyZWVuLWJyZWFrcG9pbnQ6IHh4bCAhZGVmYXVsdDtcclxuXHJcbi8vLS0tLS0tIE9mZmNhbnZhcyBkZXNrdG9wXHJcbiRvZmZjYW52YXMtZGFyay1tb2RlLWxvZ28tY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcclxuJG9mZmNhbnZhcy1kZXNrdG9wLXdpZHRoOiA0MDBweCAhZGVmYXVsdDtcclxuJG9mZmNhbnZhcy1sb2dvLXdpZHRoOiA2Ni42NiUgIWRlZmF1bHQ7XHJcbiRvZmZjYW52YXMtZmlyc3QtbHZsLW1lbnUtaXRlbS1ib3JkZXItY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcclxuJG9mZmNhbnZhcy1maXJzdC1sdmwtbWVudS1pdGVtLWJvcmRlci1vcGFjaXR5OiAuMTUgIWRlZmF1bHQ7XHJcbiRvZmZjYW52YXMtZmlyc3QtbHZsLW1lbnUtaXRlbS1ib3JkZXItc3R5bGU6IDFweCBzb2xpZCByZ2JhKCRvZmZjYW52YXMtZmlyc3QtbHZsLW1lbnUtaXRlbS1ib3JkZXItY29sb3IsICRvZmZjYW52YXMtZmlyc3QtbHZsLW1lbnUtaXRlbS1ib3JkZXItb3BhY2l0eSk7XHJcblxyXG4vLy0tLS0tLS0gT2ZmY2FudmFzIGRlc2t0b3AgTWVnYSBTdWJtZW51XHJcbiRvZmZjYW52YXMtc3VibWVudS1pdGVtLWZvbnQtc2l6ZTogMS41cmVtICFkZWZhdWx0O1xyXG4kb2ZmY2FudmFzLXN1Ym1lbnUtaXRlbS1ib3JkZXItY29sb3I6IHZhcigtLXRoZW1lLXNraW4tdGV4dC1jb2xvcikgIWRlZmF1bHQ7XHJcbiRvZmZjYW52YXMtc3VibWVudS1pdGVtLWJvcmRlci1zdHlsZTogMXB4IHNvbGlkICRvZmZjYW52YXMtc3VibWVudS1pdGVtLWJvcmRlci1jb2xvcjtcclxuXHJcblxyXG4vLy0tLS0tLSBNZWdhIE1lbnVcclxuJG1lZ2FtZW51LWJnLWNvbG9yOiB2YXIoLS10aGVtZS1za2luLWJnLWNvbG9yKTtcclxuJG1lZ2FtZW51LXBhZGRpbmcteTogMXJlbSAhZGVmYXVsdDtcclxuJG1lZ2FtZW51LXBhZGRpbmcteDogMXJlbSAhZGVmYXVsdDtcclxuJG1lZ2FtZW51LXRpdGxlLXBhZGRpbmcteTogLjVyZW0gIWRlZmF1bHQ7XHJcbiRtZWdhbWVudS10aXRsZS1wYWRkaW5nLXg6IDFyZW0gIWRlZmF1bHQ7XHJcbiRtZWdhbWVudS10aXRsZS1jb2xvcjogdmFyKC0tdGhlbWUtc2tpbi10ZXh0LWNvbG9yKSAhZGVmYXVsdDtcclxuJG1lZ2FtZW51LXRpdGxlLXRleHQtZGVjb3JhdGlvbjogbm9uZSAhZGVmYXVsdDtcclxuJG1lZ2FtZW51LXRpdGxlLWhvdmVyLWNvbG9yOiAkbmF2LWxpbmstaG92ZXItY29sb3IgIWRlZmF1bHQ7XHJcbiRtZWdhbWVudS10aXRsZS1ob3Zlci10ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSAhZGVmYXVsdDtcclxuJG1lZ2FtZW51LXBpY3R1cmUtaGFzLW92ZXJsYXk6IHRydWUgIWRlZmF1bHQ7XHJcbiRtZWdhbWVudS1vdmVybGF5LWJnLWNvbG9yOiAkcHJpbWFyeSAhZGVmYXVsdDtcclxuJG1lZ2FtZW51LW92ZXJsYXktYmctb3BhY2l0eTogLjUgIWRlZmF1bHQ7XHJcbiRtZWdhbWVudS1vdmVybGF5LWJnLWNvbG9yLXJiZzogcmdiYSgkbWVnYW1lbnUtb3ZlcmxheS1iZy1jb2xvciwgJG1lZ2FtZW51LW92ZXJsYXktYmctb3BhY2l0eSkgIWRlZmF1bHQ7XHJcbiRtZWdhbWVudS1waWN0dXJlLWJvcmRlci1yYWRpdXM6IC41cmVtICFkZWZhdWx0O1xyXG5cclxuLy8tLS0tLS0gQW5jaG9yIG9mZnNldFxyXG4kYW5jaG9yLW9mZnNldDogMXJlbSAhZGVmYXVsdDtcclxuXHJcbi8vLS0tLS0tIFdwIEFscGhhXHJcbi8vIGxvZ29cclxuJGxvZ28tcGFkZGluZy15OiAkbmF2YmFyLXBhZGRpbmcteSAhZGVmYXVsdDtcclxuXHJcbi8vLS0tLS0gQm9vdHN0cmFwIGNvbG9ycyBjbGVhbnVwXHJcbiRicy1ncmF5cy10by1rZWVwOiAoKSAhZGVmYXVsdDtcclxuJGJzLWdyYXlzLXRvLXJlbW92ZTogKFwiMjAwXCIsIFwiMzAwXCIsIFwiNDAwXCIsIFwiNTAwXCIsIFwiNzAwXCIpICFkZWZhdWx0O1xyXG4kYnMtY29sb3JzLXRvLWtlZXA6ICgpICFkZWZhdWx0O1xyXG4kYnMtY29sb3JzLXRvLXJlbW92ZTogKFwiaW5kaWdvXCIsIFwicGlua1wiLCBcInJlZFwiLCBcInllbGxvd1wiLCBcImdyZWVuXCIsIFwidGVhbFwiLCBcImN5YW5cIiwgXCJsaWdodFwiLCBcImRhcmtcIikgIWRlZmF1bHQ7XHJcblxyXG4vLy0tLS0tIEJvb3RzdHJhcCB1dGlsaXRpZXMgY2xlYW51cFxyXG4kYnMtdXRpbGl0aWVzLXRvLXJlbW92ZTogKFwiYmctb3BhY2l0eVwiKSAhZGVmYXVsdDtcclxuXHJcbi8vLS0tLS0gSGVscGVyc1xyXG4vLy0tLS0gU2VwYXJhdGUgdGl0bGVcclxuJHNlcGFyYXRlLXRpdGxlLXdpZHRoOiA4MHB4ICFkZWZhdWx0O1xyXG4kc2VwYXJhdGUtdGl0bGUtYmc6ICRwcmltYXJ5ICFkZWZhdWx0O1xyXG5cclxuLy8tLS0tIFRyYW5zcGFyZW50IGJhY2tncm91bmRzXHJcbiR0cmFuc3BhcmVudC1iZy1vcGFjaXRpZXMtb3ZlcnJpZGVzOiAoKSAhZGVmYXVsdDtcclxuJHRyYW5zcGFyZW50LWJnLW9wYWNpdGllczogKFxyXG4gIDEwOiAuMSxcclxuICAyNTogLjI1LFxyXG4gIGxpZ2h0OiAuMjUsXHJcbiAgMzU6IC4zNSxcclxuICA1MDogLjUsXHJcbiAgbWVkaXVtOiAuNSxcclxuICA2NTogLjY1LFxyXG4gIDc1OiAuNzUsXHJcbiAgc3Ryb25nOiAuNzUsXHJcbiAgOTA6IC45XHJcbikgIWRlZmF1bHQ7XHJcbiR0cmFuc3BhcmVudC1iZy1vcGFjaXRpZXM6IG1hcC1tZXJnZSgkdHJhbnNwYXJlbnQtYmctb3BhY2l0aWVzLCAkdHJhbnNwYXJlbnQtYmctb3BhY2l0aWVzLW92ZXJyaWRlcyk7XHJcbiR0cmFuc3BhcmVudC1iZy1jb2xvcnM6IChwcmltYXJ5OiAkdHJhbnNwYXJlbnQtYmctb3BhY2l0aWVzLCBzZWNvbmRhcnk6ICR0cmFuc3BhcmVudC1iZy1vcGFjaXRpZXMpICFkZWZhdWx0O1xyXG5cclxuLy8tLS0tLSBUb29sc1xyXG4vLyBDb25maWd1cmF0aW9uIChhY3RpdmF0ZSBvbmx5IHRob3NlIG5lZWRlZClcclxuJHRlYXNlczogKFwiZ3JpZFwiLCBcImxpc3RcIiwgXCJzaW1wbGVcIiwgXCJzaW1wbGUtcmVhbGlzYXRpb25zXCIpICFkZWZhdWx0O1xyXG4kZm9ybXM6ICgpICFkZWZhdWx0O1xyXG5cclxuLy8tLS0tLSBUb3AgQmFyXHJcbiR0b3AtYmFyLWhpZGUtb24tbW9iaWxlOiB0cnVlICFkZWZhdWx0O1xyXG4kdG9wLWJhci1oaWRlLW9uLXNjcm9sbC1tb2JpbGU6IHRydWUgIWRlZmF1bHQ7XHJcbiR0b3AtYmFyLWhpZGUtb24tc2Nyb2xsLWRlc2t0b3A6ICR0b3AtYmFyLWhpZGUtb24tc2Nyb2xsLW1vYmlsZSAhZGVmYXVsdDtcclxuJHRvcC1iYXItcGFkZGluZy14OiAkY29udGFpbmVyLXBhZGRpbmcteCAhZGVmYXVsdDtcclxuJHRvcC1iYXItcGFkZGluZy15OiAuNXJlbSAhZGVmYXVsdDtcclxuJHRvcC1iYXItaGVpZ2h0OiBpZihudWxsICE9IGluZGV4KCRtZW51cywgXCJzZWNvbmRhcnlcIiksIDIuNXJlbSwgMS41cmVtKSAhZGVmYXVsdDtcclxuJHRvcC1iYXItb3BhY2l0eTogMSAhZGVmYXVsdDtcclxuJHRvcC1iYXItc29jaWFsLWxpbmtzLW1hcmdpbjogbWFwLWdldCgkc3BhY2VycywgNCkgIWRlZmF1bHQ7XHJcbiR0b3AtYmFyLWRlZmF1bHQtYmctY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcclxuJHRvcC1iYXItdHJhbnNwYXJlbnQtaGVhZGVyLWJnLWNvbG9yOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcclxuXHJcbi8vLS0tLS0gSGVhZGVyXHJcbiRoZWFkZXItYnRuLWljb246ICRmYS12YXItcGhvbmUtYWx0ICFkZWZhdWx0O1xyXG4kaGVhZGVyLWJ0bi1mYS1zdHlsZTogXCJzb2xpZFwiICFkZWZhdWx0O1xyXG4kaGVhZGVyLWJ0bi1zaG93LXRleHQtYnJlYWtwb2ludDogJGRlc2t0b3AtYnJlYWtwb2ludCAhZGVmYXVsdDtcclxuXHJcbi8vLS0tLS0gRmVhdHVyZWQgaW1hZ2VcclxuJGZlYXR1cmVkLWltYWdlLWhlaWdodDogNTB2aCAhZGVmYXVsdDtcclxuJGhvbWUtZmVhdHVyZWQtaW1hZ2UtaGVpZ2h0OiA1MHZoICFkZWZhdWx0O1xyXG4kZmVhdHVyZWQtaW1hZ2Utb3ZlcmxheS1jb2xvcjogYmxhY2sgIWRlZmF1bHQ7XHJcbiRmZWF0dXJlZC1pbWFnZS1vdmVybGF5LW9wYWNpdHk6IC4zICFkZWZhdWx0O1xyXG5cclxuLy8tLS0tLSBDb250ZW50IEFib3ZlXHJcbiRjb250ZW50LWFib3ZlLXRleHQtY29sb3I6IHdoaXRlICFkZWZhdWx0O1xyXG5cclxuLy8tLS0tLSBUZXh0IGNvbnRyYXN0XHJcbiRhbHBoYS1lbmFibGUtYnRuLWNsb3NlLXRleHQtY29udHJhc3QtY29sb3JzOiBmYWxzZSAhZGVmYXVsdDtcclxuJGFscGhhLWJ0bi1jbG9zZS10ZXh0LWNvbnRyYXN0LWNvbG9yczogJHRoZW1lLWNvbG9ycyAhZGVmYXVsdDtcclxuXHJcbi8vLS0tLS0gVGV4dCBzaGFkb3dcclxuJGFscGhhLXRleHQtc2hhZG93LWNvbG9yOiBjb2xvci1jb250cmFzdCh3aGl0ZSkgIWRlZmF1bHQ7XHJcbiRhbHBoYS10ZXh0LXNoYWRvdy1yYWRpdXM6IC41cmVtICFkZWZhdWx0O1xyXG4kYWxwaGEtdGV4dC1zaGFkb3ctcmFkaXVzLXNtOiAuMjVyZW0gIWRlZmF1bHQ7XHJcbiRhbHBoYS10ZXh0LXNoYWRvdy1yYWRpdXMtbGc6IDFyZW0gIWRlZmF1bHQ7XHJcbiRhbHBoYS10ZXh0LXNoYWRvdy1jb2xvcnM6ICgpICFkZWZhdWx0O1xyXG5cclxuLy8tLS0tLSBPdmVybGF5XHJcbiRhbHBoYS1vdmVybGF5LWNvbG9yOiAkbW9kYWwtYmFja2Ryb3AtYmcgIWRlZmF1bHQ7XHJcbiRhbHBoYS1vdmVybGF5LW9wYWNpdHk6ICRtb2RhbC1iYWNrZHJvcC1vcGFjaXR5ICFkZWZhdWx0O1xyXG4kYWxwaGEtb3ZlcmxheS1jb2xvcnM6ICgpICFkZWZhdWx0O1xyXG5cclxuLy8tLS0tLSBaIGluZGV4XHJcbiRhbHBoYS16LWluZGV4ZXM6ICgxKSAhZGVmYXVsdDtcclxuXHJcbi8vLS0tLS0gU2lkZWJhclxyXG4kc2lkZWJhcjogZmFsc2UgIWRlZmF1bHQ7XHJcbiRzaWRlYmFyLWJnLWNvbG9yOiByZ2JhKCRwcmltYXJ5LCAuMSkgIWRlZmF1bHQ7XHJcbiRzaWRlYmFyLXBhZGRpbmc6IG1hcC1nZXQoJHNwYWNlcnMsIDMpICFkZWZhdWx0O1xyXG4kc2lkZWJhci1ib3JkZXItcmFkaXVzOiAuMzc1cmVtICFkZWZhdWx0O1xyXG4kc2lkZWJhci13aWRnZXRzLXNwYWNlcjogbWFwLWdldCgkc3BhY2VycywgNikgIWRlZmF1bHQ7XHJcbiRzaWRlYmFyLXdpZGdldC1jb250ZW50LXNwYWNlcjogbWFwLWdldCgkc3BhY2VycywgMikgIWRlZmF1bHQ7XHJcbiRzaWRlYmFyLXdpZGdldC10aXRsZS1zcGFjZXI6IG1hcC1nZXQoJHNwYWNlcnMsIDMpICFkZWZhdWx0O1xyXG4kc2lkZWJhci13aWRnZXQtdGl0bGUtZm9udC1zaXplOiAkaDMtZm9udC1zaXplICFkZWZhdWx0O1xyXG4kc2lkZWJhci13aWRnZXQtbGlzdC1mb250LXNpemU6IDFyZW0gIWRlZmF1bHQ7XHJcblxyXG4vLy0tLS0tIFN1cnRpdGxlXHJcbiRhbHBoYS1zdXJ0aXRsZS1mb250LWZhbWlseTogJGZvbnQtZmFtaWx5LXNhbnMtc2VyaWYgIWRlZmF1bHQ7XHJcbiRhbHBoYS1zdXJ0aXRsZS1mb250LXNpemU6ICRmb250LXNpemUtYmFzZSAhZGVmYXVsdDtcclxuJGFscGhhLXN1cnRpdGxlLWZvbnQtc2l6ZS1kZXNrdG9wOiAkYWxwaGEtc3VydGl0bGUtZm9udC1zaXplICFkZWZhdWx0O1xyXG4kYWxwaGEtc3VydGl0bGUtZm9udC13ZWlnaHQ6IG5vcm1hbCAhZGVmYXVsdDtcclxuJGFscGhhLXN1cnRpdGxlLWNvbG9yOiAkcHJpbWFyeSAhZGVmYXVsdDtcclxuJGFscGhhLXN1cnRpdGxlLW1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNwYWNlcnMsIDQpICFkZWZhdWx0O1xyXG4kYWxwaGEtc3VydGl0bGUtdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhZGVmYXVsdDtcclxuXHJcbi8vLS0tLS0gQ29weXJpZ2h0XHJcbiRhbHBoYS1jb3B5cmlnaHQtZm9udC1zaXplOiAuODI1cmVtICFkZWZhdWx0O1xyXG4kYWxwaGEtY29weXJpZ2h0LWxpbmstaG92ZXItY29sb3I6IHZhcigtLXRoZW1lLXNraW4tdGV4dC1jb2xvcikgIWRlZmF1bHQ7XHJcbiRhbHBoYS1jb3B5cmlnaHQtbGluay10ZXh0LWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XHJcblxyXG4vLy0tLS0tIE5hdmlnYXRpb25zXHJcbi8vLS0tLSBDb21tb25cclxuJG5hdi1saW5rLWFmdGVyLWhlaWdodDogMnB4ICFkZWZhdWx0O1xyXG5cclxuLy8tLS0tIENlbnRlclxyXG4kbmF2LWNlbnRlci1sb2dvLXBhZGRpbmcteDogMXJlbSAhZGVmYXVsdDtcclxuJG5hdi1jZW50ZXItbG9nby1wYWRkaW5nLXk6IDAgIWRlZmF1bHQ7XHJcblxyXG4vLy0tLS0tIEJyZWFkY3J1bWJzXHJcbiRicmVhZGNydW1iLW1vYmlsZS1zaGFkb3ctc2l6ZTogMS41cmVtICFkZWZhdWx0O1xyXG4kYnJlYWRjcnVtYi1tb2JpbGUtc2hhZG93LWNvbG9yOiAkYm9keS1iZyAhZGVmYXVsdDtcclxuJGJyZWFkY3J1bWItb24tZmVhdHVyZWQtbW9iaWxlLXNoYWRvdy1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xyXG5cclxuLy8tLS0tLSBUZWFzZVxyXG4kdGVhc2UtYmFkZ2UtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcclxuJHRlYXNlLWJhZGdlLWJnOiAkcHJpbWFyeSAhZGVmYXVsdDtcclxuXHJcbiR0ZWFzZS1vdmVybGF5LXRleHQtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcclxuJHRlYXNlLW92ZXJsYXktdGV4dC1zaGFkb3c6IDAgMCAuMjVyZW0gIzAwMDtcclxuJHRlYXNlLW92ZXJsYXktYmctY29sb3I6ICRzZWNvbmRhcnkgIWRlZmF1bHQ7XHJcbiR0ZWFzZS1vdmVybGF5LWJnLW9wYWNpdHk6IC41ICFkZWZhdWx0O1xyXG5cclxuLy8tLS0tLS0gV29vQ29tbWVyY2VcclxuLy8gYmFja3dhcmQgY29tcGF0aWJpbGl0eSBmb3Igb2xkICR3b29jb21tZXJjZSAmICR3b29jb21tZXJjZVNpZGViYXIgdmFyaWFibGVzXHJcbkBpZiB0eXBlLW9mKCR3b29jb21tZXJjZSkgPT0gXCJib29sXCIge1xyXG4gIEB3YXJuIFwiVXNhZ2Ugb2YgJHdvb2NvbW1lcmNlIHZhcmlhYmxlIGFzIGJvb2wgaXMgZGVwcmVjYXRlZCwgdXNlIHdvb2NvbW1lcmNlLmVuYWJsZWQgaW4gd29vY29tbWVyY2UueWFtbCBpbnN0ZWFkLlwiO1xyXG4gICR3b29jb21tZXJjZTogbWFwLWV4dGVuZChtYXAtZ2V0KCRjb25maWctZGVmYXVsdHMsIFwid29vY29tbWVyY2VcIiksIChlbmFibGVkOiAkd29vY29tbWVyY2UpKTtcclxuICAkd29vY29tbWVyY2UtZW5hYmxlZDogbWFwLWdldC1kZWVwKCR3b29jb21tZXJjZSwgXCJlbmFibGVkXCIpO1xyXG59XHJcblxyXG5AaWYgdmFyaWFibGUtZXhpc3RzKHdvb2NvbW1lcmNlU2lkZWJhcikge1xyXG4gIEB3YXJuIFwiVXNhZ2Ugb2YgJHdvb2NvbW1lcmNlU2lkZWJhciB2YXJpYWJsZSBkZXByZWNhdGVkLCB1c2UgJHdvb2NvbW1lcmNlLXNpZGViYXIgaW5zdGVhZC5cIjtcclxuICAkd29vY29tbWVyY2Utc2lkZWJhcjogJHdvb2NvbW1lcmNlU2lkZWJhcjtcclxufVxyXG5cclxuLy8gQXR0cmlidXRlc1xyXG4kd2MtcHJvZHVjdC1hdHRyaWJ1dGUtZm9udC1zaXplOiAuOXJlbSAhZGVmYXVsdDtcclxuJHdjLXByb2R1Y3QtYXR0cmlidXRlLWV2ZW4tYmc6IHJnYmEoJHByaW1hcnksIC4xKSAhZGVmYXVsdDtcclxuJHdjLXByb2R1Y3QtYXR0cmlidXRlLWxhYmVsLWNvbG9yOiAkZ3JheS03MDAgIWRlZmF1bHQ7XHJcblxyXG4vLyBBdmFpbGFiaWxpdHlcclxuJHdjLXN0b2NrLWljb24td2lkdGg6ICRmYS1mdy13aWR0aCAhZGVmYXVsdDtcclxuJHdjLXN0b2NrLWljb24tZm9udC1zaXplOiAkZmEtc2l6ZS1zY2FsZS1iYXNlICFkZWZhdWx0O1xyXG4kd2Mtc3RvY2staW5mbzogKFxyXG4gIGF2YWlsYWJsZS1vbi1iYWNrb3JkZXI6IChjb2xvcjogb3JhbmdlLCBpY29uOiAkZmEtdmFyLWNsb2NrLXJvdGF0ZS1sZWZ0KSxcclxuICBvdXQtb2Ytc3RvY2s6IChjb2xvcjogcmVkLCBpY29uOiAkZmEtdmFyLWNpcmNsZS14bWFyaylcclxuKSAhZGVmYXVsdDtcclxuXHJcbi8vLS0tLS0gQWRkIHRvIENhcnQgYnV0dG9uXHJcbiRidG4tYWRkdG9jYXJ0LWJnOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcclxuJGJ0bi1hZGR0b2NhcnQtY29sb3I6ICRzZWNvbmRhcnkgIWRlZmF1bHQ7XHJcbiRidG4tYWRkdG9jYXJ0LWhvdmVyLWJnOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcclxuJGJ0bi1hZGR0b2NhcnQtaG92ZXItY29sb3I6ICRwcmltYXJ5ICFkZWZhdWx0O1xyXG4kYnRuLWFkZHRvY2FydC1pY29uczogKFxyXG4gIHNpbXBsZTogJGZhLXZhci1zaG9wcGluZy1iYXNrZXQsXHJcbiAgZ3JvdXBlZDogJGZhLXZhci1leWUsXHJcbiAgdmFyaWFibGU6ICRmYS12YXItY29ncyxcclxuICBib29raW5nOiAkZmEtdmFyLWNhbGVuZGFyLWRheXMsXHJcbikgIWRlZmF1bHQ7XHJcblxyXG4vLy0tLS0tIEJvb2tpbmdcclxuJHdjLWJvb2tpbmctZGF0ZXBpY2tlci11aS1iZzogJHNlY29uZGFyeSAhZGVmYXVsdDtcclxuJHdjLWJvb2tpbmctZGF0ZXBpY2tlci11aS1jb2xvcjogY29sb3ItY29udHJhc3QoJHdjLWJvb2tpbmctZGF0ZXBpY2tlci11aS1iZykgIWRlZmF1bHQ7XHJcbiR3Yy1ib29raW5nLWRhdGVwaWNrZXItYmxvY2stb2RkLWJnOiAkZ3JheS0xMDAgIWRlZmF1bHQ7XHJcbiR3Yy1ib29raW5nLWRhdGVwaWNrZXItYmxvY2stb2RkLWhvdmVyLWJnOiBzaGFkZS1jb2xvcigkd2MtYm9va2luZy1kYXRlcGlja2VyLWJsb2NrLW9kZC1iZywgMjAlKSAhZGVmYXVsdDtcclxuJHdjLWJvb2tpbmctZGF0ZXBpY2tlci1ibG9jay1vZGQtY29sb3I6IGNvbG9yLWNvbnRyYXN0KCR3Yy1ib29raW5nLWRhdGVwaWNrZXItYmxvY2stb2RkLWJnKSAhZGVmYXVsdDtcclxuJHdjLWJvb2tpbmctZGF0ZXBpY2tlci1ibG9jay1ldmVuLWJnOiAkZ3JheS0yMDAgIWRlZmF1bHQ7XHJcbiR3Yy1ib29raW5nLWRhdGVwaWNrZXItYmxvY2stZXZlbi1ob3Zlci1iZzogc2hhZGUtY29sb3IoJHdjLWJvb2tpbmctZGF0ZXBpY2tlci1ibG9jay1ldmVuLWJnLCAyMCUpICFkZWZhdWx0O1xyXG4kd2MtYm9va2luZy1kYXRlcGlja2VyLWJsb2NrLWV2ZW4tY29sb3I6IGNvbG9yLWNvbnRyYXN0KCR3Yy1ib29raW5nLWRhdGVwaWNrZXItYmxvY2stZXZlbi1iZykgIWRlZmF1bHQ7XHJcbiR3Yy1ib29raW5nLWNvc3QtYmc6ICRncmF5LTEwMCAhZGVmYXVsdDtcclxuJHdjLWJvb2tpbmctY29zdC1jb2xvcjogY29sb3ItY29udHJhc3QoJHdjLWJvb2tpbmctY29zdC1iZykgIWRlZmF1bHQ7XHJcblxyXG4vLy0tLS0tIFByaWNlIENvbG9yXHJcbiR3Yy1wcmljZS1jb2xvcjogJHNlY29uZGFyeSAhZGVmYXVsdDtcclxuJHdjLWRlbC1wcmljZS1jb2xvcjogcmdiYSgkZ3JheS01MDAsIC42KSAhZGVmYXVsdDtcclxuXHJcbi8vLS0tLS0gRGlzY291bnQgYmFkZ2VcclxuJGJhZGdlLW9uc2FsZS1iZzogJHNlY29uZGFyeSAhZGVmYXVsdDtcclxuJGJhZGdlLW9uc2FsZS1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xyXG5cclxuLy8tLS0tLSBNaW5pIENhcnRcclxuJG1pbmljYXJ0LWNvdW50ZXItYmc6ICRzZWNvbmRhcnkgIWRlZmF1bHQ7XHJcbiRtaW5pY2FydC1jb3VudGVyLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XHJcbiRtaW5pY2FydC10b3RhbC1iZzogJHNlY29uZGFyeSAhZGVmYXVsdDtcclxuJG1pbmljYXJ0LXRvdGFsLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XHJcbiRtaW5pY2FydC1pdGVtLWNvbG9yOiAkcHJpbWFyeSAhZGVmYXVsdDtcclxuJG1pbmljYXJ0LXF0eS1jb2xvcjogJGJvZHktY29sb3IgIWRlZmF1bHQ7XHJcblxyXG4vLy0tLS0tIENhcnRcclxuJGNhcnQtYnRuLWFjdGlvbnMtYmc6ICRwcmltYXJ5ICFkZWZhdWx0O1xyXG4kY2FydC1idG4tY2hlY2tvdXQtYmc6ICRzZWNvbmRhcnkgIWRlZmF1bHQ7XHJcblxyXG4vLy0tLS0tIE1lc3NhZ2VcclxuJHdjLW1lc3NhZ2UtYmctY29sb3I6ICRncmF5LTEwMCAhZGVmYXVsdDtcclxuJHdjLW1lc3NhZ2UtY29sb3I6ICRib2R5LWNvbG9yICFkZWZhdWx0O1xyXG4kd2MtbWVzc2FnZS1pY29uLWNvbG9yOiAkZ3JlZW4gIWRlZmF1bHQ7XHJcblxyXG4kd2MtaW5mby1iZy1jb2xvcjogJGdyYXktMTAwICFkZWZhdWx0O1xyXG4kd2MtaW5mby1jb2xvcjogJGJvZHktY29sb3IgIWRlZmF1bHQ7XHJcbiR3Yy1pbmZvLWljb24tY29sb3I6ICRibHVlICFkZWZhdWx0O1xyXG5cclxuJHdjLWVycm9yLWJnLWNvbG9yOiAkZ3JheS0xMDAgIWRlZmF1bHQ7XHJcbiR3Yy1lcnJvci1jb2xvcjogJGJvZHktY29sb3IgIWRlZmF1bHQ7XHJcbiR3Yy1lcnJvci1pY29uLWNvbG9yOiByZWQgIWRlZmF1bHQ7XHJcblxyXG4vLy0tLS0tIFNpZGViYXJcclxuJHdjLXNpZGViYXItbW9iaWxlLWNvbG9yOiB3aGl0ZSAhZGVmYXVsdDtcclxuJHdjLXNpZGViYXItbW9iaWxlLWJhY2stdG9wLW9mZnNldC15OiAzcmVtICFkZWZhdWx0O1xyXG4kd2Mtc2lkZWJhci1jb2xvcjogcmdiYSgkcHJpbWFyeSwgLjEpICFkZWZhdWx0O1xyXG4kd2MtZmlsdGVyLXRvZ2dsZXItY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcclxuJHdjLWZpbHRlci10b2dnbGVyLWJnOiAkcHJpbWFyeSAhZGVmYXVsdDtcclxuJHdjLWNhdC1saW5rLWJnOiAkZ3JheS0xMDAgIWRlZmF1bHQ7XHJcbiR3Yy1jYXQtbGluay1ob3Zlci1iZzogJHByaW1hcnkgIWRlZmF1bHQ7XHJcbiR3Yy1jYXQtbGluay1ob3Zlci1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xyXG4kd2Mtc2lkZWJhci1jdXJyZW50LXRlcm0tbGluay1jb2xvcjogJG5hdi1jb2xvci1jdXJyZW50ICFkZWZhdWx0O1xyXG4kd2Mtc2lkZWJhci1jdXJyZW50LXRlcm0tbGluay1ob3Zlci1jb2xvcjogdGludC1jb2xvcigkd2Mtc2lkZWJhci1jdXJyZW50LXRlcm0tbGluay1jb2xvciwgMTAlKSAhZGVmYXVsdDtcclxuJHdjLXNpZGViYXItY3VycmVudC10ZXJtLXBhcmVudC1saW5rLWNvbG9yOiAkbmF2LWNvbG9yLWFuY2VzdG9yICFkZWZhdWx0O1xyXG4kd2Mtc2lkZWJhci1jdXJyZW50LXRlcm0tcGFyZW50LWxpbmstaG92ZXItY29sb3I6IHRpbnQtY29sb3IoJHdjLXNpZGViYXItY3VycmVudC10ZXJtLXBhcmVudC1saW5rLWNvbG9yLCAxMCUpICFkZWZhdWx0O1xyXG5cclxuLy8tLS0tLSBUb3AgYmFyIGljb25zXHJcbi8vLS0tLS0gVG9wIGJhciBpY29uc1xyXG4kdG9wLWJhci1pY29uczogKGNvbnRhY3Q6ICRmYS12YXItZW52ZWxvcGUsIHBob25lOiAkZmEtdmFyLXBob25lLWFsdCkgIWRlZmF1bHQ7XHJcbiR0b3AtYmFyLWljb25zLW1hcmdpbjogLjI1cmVtICFkZWZhdWx0O1xyXG4kdG9wLWJhci1pY29ucy1mYS12YXJpYW50OiBcInNvbGlkXCIgIWRlZmF1bHQ7XHJcbiR3Yy10b3AtYmFyLWljb25zOiAkdG9wLWJhci1pY29ucyAhZGVmYXVsdDtcclxuJHdjLXRvcC1iYXItaWNvbnMtbWFyZ2luOiAkdG9wLWJhci1pY29ucy1tYXJnaW4gIWRlZmF1bHQ7XHJcbiR3Yy10b3AtYmFyLWljb25zLWZhLXZhcmlhbnQ6ICR0b3AtYmFyLWljb25zLWZhLXZhcmlhbnQgIWRlZmF1bHQ7XHJcblxyXG4vLy0tLS0tIFRlYXNlXHJcbiR3Yy10ZWFzZS1wcm9kdWN0LWJnLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XHJcbiR3Yy10ZWFzZS1wcm9kdWN0LWJvcmRlci1yYWRpdXM6IG1hcC1nZXQoJHNwYWNlcnMsIDIpICFkZWZhdWx0O1xyXG4kd2MtdGVhc2UtcHJvZHVjdC1saW5rLXBhZGRpbmc6IG1hcC1nZXQoJHNwYWNlcnMsIDIpICFkZWZhdWx0O1xyXG4kd2MtdGVhc2UtcHJvZHVjdC1saW5rLWltYWdlLXBhZGRpbmc6ICR3Yy10ZWFzZS1wcm9kdWN0LWxpbmstcGFkZGluZyAqIC0xICFkZWZhdWx0O1xyXG4kd2MtdGVhc2UtcHJvZHVjdC1ob3Zlci1ib3JkZXItY29sb3I6ICRzZWNvbmRhcnkgIWRlZmF1bHQ7XHJcblxyXG4vLy0tLS0tLSBTb2NpYWwgc2hhcmUgaWNvbnNcclxuJHNvY2lhbC1zaGFyZS1ob3Zlci1ib3JkZXItY29sb3I6IHJnYmEoJHByaW1hcnksIC41KSAhZGVmYXVsdDtcclxuXHJcbi8vLS0tLS0tIFdQTUxcclxuJHdwbWwtZGV2OiBmYWxzZSAhZGVmYXVsdDtcclxuXHJcbi8vLS0tLS0tIEFscGhhIGJsb2Nrc1xyXG4vLy0tLS0tIEZhY2Vib29rIHZpZGVvXHJcbiRhbHBoYS1mYi12aWRlby1sb2FkZXItYmctY29sb3I6ICRwcmltYXJ5ICFkZWZhdWx0O1xyXG4kYWxwaGEtZmItdmlkZW8tbG9hZGVyLWNvbG9yOiBjb2xvci1jb250cmFzdCgkYWxwaGEtZmItdmlkZW8tbG9hZGVyLWJnLWNvbG9yKSAhZGVmYXVsdDtcclxuXHJcbi8vLS0tLS0gTWFwXHJcbiRhbHBoYS1tYXAtZGVmYXVsdC1oZWlnaHQ6IDI1MHB4ICFkZWZhdWx0O1xyXG4kYWxwaGEtbWFwLWRlZmF1bHQtaGVpZ2h0LWxnOiAkYWxwaGEtbWFwLWRlZmF1bHQtaGVpZ2h0ICogMiAhZGVmYXVsdDtcclxuXHJcbi8vLS0tLS0gUmF0aW5nXHJcbiRhbHBoYS1yYXRpbmctc3Rhci1vbi1jb2xvcjogJHllbGxvdyAhZGVmYXVsdDtcclxuJGFscGhhLXJhdGluZy1zdGFyLW9mZi1jb2xvcjogJGdyYXktMTAwICFkZWZhdWx0O1xyXG5cclxuLy8tLS0tLSBJY29uXHJcbiRpY29uLWJsb2NrLWljb24tY29sb3I6ICRwcmltYXJ5ICFkZWZhdWx0O1xyXG5cclxuLy8tLS0tLS0gQWxwaGEgbW9kdWxlc1xyXG4vLy0tLS0tIENvbW1vblxyXG4kbG9hZGluZy1tb2R1bGVzLWJnLWNvbG9yOiByZ2JhKCR3aGl0ZSwgLjc1KSAhZGVmYXVsdDtcclxuJGxvYWRpbmctbW9kdWxlcy1sb2FkZXItY29sb3I6ICRwcmltYXJ5ICFkZWZhdWx0O1xyXG4kbG9hZGluZy1tb2R1bGVzLWxvYWRlci1mb250LXNpemU6IDJyZW0gIWRlZmF1bHQ7XHJcbiRsb2FkaW5nLW1vZHVsZXMtei1pbmRleDogMTAgIWRlZmF1bHQ7XHJcblxyXG4vLy0tLS0tIERlZmF1bHRcclxuLy8tLS0tIFBhZ2Ugc2Nyb2xsXHJcbiRob21lLXBhZ2Utc2Nyb2xsLWxpc3RlbmVyLWhlaWdodDogMTV2aCAhZGVmYXVsdDtcclxuJHBhZ2Utc2Nyb2xsLWxpc3RlbmVyLWhlaWdodDogJGhvbWUtcGFnZS1zY3JvbGwtbGlzdGVuZXItaGVpZ2h0IC8gMiAhZGVmYXVsdDtcclxuJHBhZ2Utc2Nyb2xsLWxpc3RlbmVyLWhlaWdodC1kZXNrdG9wOiAkaG9tZS1wYWdlLXNjcm9sbC1saXN0ZW5lci1oZWlnaHQgLyAzICFkZWZhdWx0O1xyXG5cclxuLy8tLS0tLSBPcHRpb25hbFxyXG4vLy0tLS0gQmFjayB0byB0b3BcclxuJGJhY2stdG8tdG9wLW9mZnNldC14OiAxcmVtICFkZWZhdWx0O1xyXG4kYmFjay10by10b3Atb2Zmc2V0LXk6IDFyZW0gIWRlZmF1bHQ7XHJcbiRiYWNrLXRvLXRvcC1kZWZhdWx0LWJ1dHRvbi10cmFuc2xhdGUteTogJGJhY2stdG8tdG9wLW9mZnNldC15ICogLTIgIWRlZmF1bHQ7XHJcblxyXG4vLy0tLS0gSGVhZGVyIHN0YXRlc1xyXG4vLy0tLSBTaHJ1bmsgbG9nb1xyXG4kc2hydW5rLWxvZ28taGVpZ2h0LXJhdGlvOiAuOCAhZGVmYXVsdDtcclxuXHJcbi8vLS0tLSBSYW5nZSBzbGlkZXJcclxuJHJhbmdlLXNsaWRlci13cmFwcGVyLWhlaWdodDogM3JlbSAhZGVmYXVsdDtcclxuXHJcbi8vLS0tLSBSb3VzcXVpbGxlXHJcbiRyb3VzcXVpbGxlLWJhbm5lci1sb2dvLW1hcmdpbjogMCBhdXRvICFkZWZhdWx0O1xyXG4kcm91c3F1aWxsZS1iYW5uZXItbG9nby1tYXJnaW4tdGFibGV0OiAwIGF1dG8gbWFwLWdldCgkc3BhY2VycywgOCkgIWRlZmF1bHQ7XHJcbiRyb3VzcXVpbGxlLWJhbm5lci1sb2dvLW1hcmdpbi1tb2JpbGU6IDAgYXV0byBtYXAtZ2V0KCRzcGFjZXJzLCA0KSAhZGVmYXVsdDtcclxuJHJvdXNxdWlsbGUtYmFubmVyLWxvZ28taGVpZ2h0OiAkbG9nby1oZWlnaHQgIWRlZmF1bHQ7XHJcbiRyb3VzcXVpbGxlLWJhbm5lci1sb2dvLW1heC1oZWlnaHQ6IDVyZW0gIWRlZmF1bHQ7XHJcblxyXG4vLy0tLSBUcmFuc3BhcmVudCBIZWFkZXJcclxuJHRyYW5zcGFyZW50LWhlYWRlci1iZy1jb2xvcjogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgJGdyYXktNzAwLCB0cmFuc3BhcmVudCkgIWRlZmF1bHQ7XHJcbiR0cmFuc3BhcmVudC1oZWFkZXItdGV4dC1jb2xvcjogI2ZmZiAhZGVmYXVsdDtcclxuJHRyYW5zcGFyZW50LWhlYWRlci1zaGFkb3ctY29sb3I6ICMwMDAgIWRlZmF1bHQ7XHJcbiR0cmFuc3BhcmVudC1oZWFkZXItc2hhZG93LXJhZGl1czogLjEyNXJlbSAhZGVmYXVsdDtcclxuJHRyYW5zcGFyZW50LWhlYWRlci1sb2dvLWNvbG9yOiAkdHJhbnNwYXJlbnQtaGVhZGVyLXRleHQtY29sb3IgIWRlZmF1bHQ7XHJcbiR0cmFuc3BhcmVudC1oZWFkZXItbG9nby1zaGFkb3ctY29sb3I6ICR0cmFuc3BhcmVudC1oZWFkZXItc2hhZG93LWNvbG9yICFkZWZhdWx0O1xyXG4kdHJhbnNwYXJlbnQtaGVhZGVyLWxvZ28tc2hhZG93LXJhZGl1czogJHRyYW5zcGFyZW50LWhlYWRlci1zaGFkb3ctcmFkaXVzICFkZWZhdWx0O1xyXG5cclxuLy8tLS0tIEltYWdlIEdhbGxlcnlcclxuLy8gXCJvdmVybGF5XCIsIFwiZGVmYXVsdC1vcGFjaXR5XCIsIFwiaG92ZXItb3BhY2l0eVwiLCBcImN1c3RvbVwiXHJcbiRpbWFnZS1nYWxsZXJ5LWFuaW1hdGlvbi10eXBlOiBcIm92ZXJsYXlcIiAhZGVmYXVsdDtcclxuXHJcbi8vLS0tIE9wYWNpdHlcclxuJGltYWdlLWdhbGxlcnktaW1hZ2Utb3BhY2l0eTogLjcgIWRlZmF1bHQ7XHJcblxyXG4vLy0tLSBPdmVybGF5XHJcbiRpbWFnZS1nYWxsZXJ5LW92ZXJsYXktY29sb3I6ICNmZmYgIWRlZmF1bHQ7XHJcbiRpbWFnZS1nYWxsZXJ5LW92ZXJsYXktb3BhY2l0eTogLjE1ICFkZWZhdWx0O1xyXG4kaW1hZ2UtZ2FsbGVyeS1vdmVybGF5LWJhY2tkcm9wLWZpbHRlcjogc2F0dXJhdGUoMTI1JSkgY29udHJhc3QoMTI1JSkgIWRlZmF1bHQ7XHJcbiRpbWFnZS1nYWxsZXJ5LW92ZXJsYXktdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIHNjYWxlKC41KSAhZGVmYXVsdDtcclxuJGltYWdlLWdhbGxlcnktb3ZlcmxheS1pY29uOiAkZmEtdmFyLXNlYXJjaC1wbHVzICFkZWZhdWx0O1xyXG4kaW1hZ2UtZ2FsbGVyeS1vdmVybGF5LWljb24tc3R5bGU6IFwicmVndWxhclwiICFkZWZhdWx0O1xyXG4kaW1hZ2UtZ2FsbGVyeS1vdmVybGF5LWljb24tY29sb3I6ICNmZmYgIWRlZmF1bHQ7XHJcbiRpbWFnZS1nYWxsZXJ5LW92ZXJsYXktaWNvbi1vcGFjaXR5OiAuODUgIWRlZmF1bHQ7XHJcbiRpbWFnZS1nYWxsZXJ5LW92ZXJsYXktaWNvbi1mb250LXNpemU6IDEuNXJlbSAhZGVmYXVsdDtcclxuJGltYWdlLWdhbGxlcnktb3ZlcmxheS1pY29uLXRleHQtc2hhZG93OiAwIDAgLjEyNXJlbSByZ2JhKGJsYWNrLCAuNzUpICFkZWZhdWx0O1xyXG4kaW1hZ2UtZ2FsbGVyeS1vdmVybGF5LWljb24tdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xLjVyZW0pICFkZWZhdWx0O1xyXG4kaW1hZ2UtZ2FsbGVyeS1vdmVybGF5LWltYWdlLW9mZnNldDogLjEgIWRlZmF1bHQ7XHJcbiRpbWFnZS1nYWxsZXJ5LW92ZXJsYXktaW1hZ2Utc2NhbGU6IDEgKyAkaW1hZ2UtZ2FsbGVyeS1vdmVybGF5LWltYWdlLW9mZnNldCAhZGVmYXVsdDtcclxuXHJcbi8vLS0tLSBMZWFmbGV0IE1hcFxyXG4kbWFwLW1hcmtlci1jb2xvci1kZWZhdWx0OiAkc2Vjb25kYXJ5ICFkZWZhdWx0O1xyXG4kbWFwLW1hcmtlci1jb2xvci1sb2FkaW5nOiBncmF5ICFkZWZhdWx0O1xyXG4kbWFwLW1hcmtlci1jb2xvci1hY3RpdmU6ICRwcmltYXJ5ICFkZWZhdWx0O1xyXG5cclxuLy8tLS0tIFdvb0NvbW1lcmNlIFNlYXJjaCBPdmVybGF5XHJcbiRzZWFyY2gtb3ZlcmxheS1iZy1jb2xvcjogYmxhY2sgIWRlZmF1bHQ7XHJcbiRzZWFyY2gtb3ZlcmxheS1iZy1vcGFjaXR5OiAuMjUgIWRlZmF1bHQ7XHJcbiRzZWFyY2gtb3ZlcmxheS1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoLjEyNXJlbSkgIWRlZmF1bHQ7XHJcbiRzZWFyY2gtb3ZlcmxheS1mb3JtLWZvbnQtc2l6ZTogLjlyZW0gIWRlZmF1bHQ7XHJcbiRzZWFyY2gtb3ZlcmxheS1mb3JtLWJvcmRlci1yYWRpdXM6IC4yNXJlbSAhZGVmYXVsdDtcclxuXHJcbi8vLS0tLSBXb29Db21tZXJjZSBSZXZpZXcgZm9ybVxyXG4kd29vY29tbWVyY2UtcmV2aWV3LWZvcm0tc3RhcnMtZm9udHNpemU6IDJyZW0gIWRlZmF1bHQ7XHJcblxyXG4vLy0tLS0tLSBHdXRlbmJlcmcgYmxvY2tzXHJcbi8vLS0tLS0gUmFuayBNYXRoXHJcbi8vLS0tLSBGQVFcclxuJHJhbmstbWF0aC1mYXEtYmctY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcclxuJHJhbmstbWF0aC1mYXEtYm94LXNoYWRvdzogMCAuNXJlbSAuNXJlbSAtLjI1cmVtIHJnYmEoJGJsYWNrLCAuMSkgIWRlZmF1bHQ7XHJcbiRyYW5rLW1hdGgtZmFxLWJvcmRlci1yYWRpdXM6IG1hcC1nZXQoJHNwYWNlcnMsIDEpICFkZWZhdWx0O1xyXG4kcmFuay1tYXRoLWZhcS1ib3JkZXItY29sb3I6ICRncmF5LTIwMCAhZGVmYXVsdDtcclxuJHJhbmstbWF0aC1mYXEtYm9yZGVyOiAxcHggc29saWQgJHJhbmstbWF0aC1mYXEtYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xyXG4kcmFuay1tYXRoLWZhcS1pdGVtLXBhZGRpbmc6IG1hcC1nZXQoJHNwYWNlcnMsIDMpICFkZWZhdWx0O1xyXG4kcmFuay1tYXRoLWZhcS1xdWVzdGlvbi1mb250LXNpemU6IDEuMjVyZW0gIWRlZmF1bHQ7XHJcbiRyYW5rLW1hdGgtZmFxLXF1ZXN0aW9uLWdhcDogbWFwLWdldCgkc3BhY2VycywgMikgIWRlZmF1bHQ7XHJcbiRyYW5rLW1hdGgtZmFxLXF1ZXN0aW9uLXBhZGRpbmctYm90dG9tOiAkcmFuay1tYXRoLWZhcS1xdWVzdGlvbi1nYXAgIWRlZmF1bHQ7XHJcbiRyYW5rLW1hdGgtZmFxLXF1ZXN0aW9uLWJvcmRlci1jb2xvcjogJHJhbmstbWF0aC1mYXEtYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xyXG4kcmFuay1tYXRoLWZhcS1xdWVzdGlvbi1ib3JkZXItYm90dG9tOiAkcmFuay1tYXRoLWZhcS1ib3JkZXIgIWRlZmF1bHQ7XHJcbiRyYW5rLW1hdGgtZmFxLXF1ZXN0aW9uLWljb246ICRmYS12YXItcXVlc3Rpb24tY2lyY2xlICFkZWZhdWx0O1xyXG4kcmFuay1tYXRoLWZhcS1xdWVzdGlvbi1pY29uLWNvbG9yOiAkc2Vjb25kYXJ5ICFkZWZhdWx0O1xyXG4kcmFuay1tYXRoLWZhcS1xdWVzdGlvbi1pY29uLWZvbnQtc2l6ZTogMXJlbSAhZGVmYXVsdDtcclxuJHJhbmstbWF0aC1mYXEtcXVlc3Rpb24taWNvbi1vZmZzZXQtdG9wOiAuMnJlbSAhZGVmYXVsdDtcclxuXHJcbi8vLS0tLS0tIEZvbnRzIG9wdGltaXphdGlvblxyXG4vLy0tLS0tIEZvbnRBd2Vzb21lIGljb25zXHJcbiRmb250LWZhLXBybzogXCJGb250IEF3ZXNvbWUgNiBQcm9cIjtcclxuJGZvbnQtZmEtYnJhbmRzOiBcIkZvbnQgQXdlc29tZSA2IEJyYW5kc1wiO1xyXG4vLyBzZWUgLi4vdmVuZG9ycy9fZm9udGF3ZXNvbWUuc2NzcyBmb3IgaWNvbnMgcHJvY2Vzc2luZ1xyXG4vLyBzZWUgLi4vdmVuZG9ycy9fZm9udGF3ZXNvbWUtaWNvbnMuc2NzcyBmb3IgYXZhaWxhYmxlIGljb25zICYgaWNvbnMgZ3JvdXBzXHJcbi8vICRjdXN0b20tdXNlZC1mYS1pY29uczogKGZvbnQtYXdlc29tZS1mbGFnOiAkZmEtdmFyLWZvbnQtYXdlc29tZS1mbGFnLCBwbHVzOiAkZmEtdmFyLXBsdXMpO1xyXG4kY3VzdG9tLXVzZWQtZmEtaWNvbnM6ICgpICFkZWZhdWx0O1xyXG4vLyAkdXNlZC1mYS1pY29ucy1ncm91cHM6IChhY2NvbW1vZGF0aW9ucywgd29vY29tbWVyY2UpO1xyXG4kdXNlZC1mYS1pY29ucy1ncm91cHM6ICgpICFkZWZhdWx0O1xyXG5cclxuLy8tLS0tLSBTbGlja1xyXG4kc2xpY2stZm9udC1wYXRoOiBcIn5zbGljay1jYXJvdXNlbC9zbGljay9mb250cy9cIjtcclxuJHNsaWNrLWZvbnQtZmFtaWx5OiAkZm9udC1mYS1wcm87XHJcblxyXG4vLy0tLS0tIENGNyBFZmZlY3RcclxuJGNvbG9yLWZvcm0tZmlsbGVkOiAkcHJpbWFyeSAhZGVmYXVsdDtcclxuJGZvcm0tZ3V0dGVyOiAuNXJlbSAhZGVmYXVsdDtcclxuIiwiLy8gZnVuY3Rpb25zXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBmYS1jb250ZW50OiBjb252ZW5pZW5jZSBmdW5jdGlvbiB1c2VkIHRvIHNldCBjb250ZW50IHByb3BlcnR5XG5AZnVuY3Rpb24gZmEtY29udGVudCgkZmEtdmFyKSB7XG4gIEByZXR1cm4gdW5xdW90ZShcIlxcXCIjeyAkZmEtdmFyIH1cXFwiXCIpO1xufVxuXG4vLyBmYS1kaXZpZGU6IE9yaWdpbmFsbHkgb2J0YWluZWQgZnJvbSB0aGUgQm9vdHN0cmFwIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcFxuLy9cbi8vIExpY2Vuc2VkIHVuZGVyOiBUaGUgTUlUIExpY2Vuc2UgKE1JVClcbi8vXG4vLyBDb3B5cmlnaHQgKGMpIDIwMTEtMjAyMSBUd2l0dGVyLCBJbmMuXG4vLyBDb3B5cmlnaHQgKGMpIDIwMTEtMjAyMSBUaGUgQm9vdHN0cmFwIEF1dGhvcnNcbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5AZnVuY3Rpb24gZmEtZGl2aWRlKCRkaXZpZGVuZCwgJGRpdmlzb3IsICRwcmVjaXNpb246IDEwKSB7XG4gICRzaWduOiBpZigkZGl2aWRlbmQgPiAwIGFuZCAkZGl2aXNvciA+IDAsIDEsIC0xKTtcbiAgJGRpdmlkZW5kOiBhYnMoJGRpdmlkZW5kKTtcbiAgJGRpdmlzb3I6IGFicygkZGl2aXNvcik7XG4gICRxdW90aWVudDogMDtcbiAgJHJlbWFpbmRlcjogJGRpdmlkZW5kO1xuICBAaWYgJGRpdmlkZW5kID09IDAge1xuICAgIEByZXR1cm4gMDtcbiAgfVxuICBAaWYgJGRpdmlzb3IgPT0gMCB7XG4gICAgQGVycm9yIFwiQ2Fubm90IGRpdmlkZSBieSAwXCI7XG4gIH1cbiAgQGlmICRkaXZpc29yID09IDEge1xuICAgIEByZXR1cm4gJGRpdmlkZW5kO1xuICB9XG4gIEB3aGlsZSAkcmVtYWluZGVyID49ICRkaXZpc29yIHtcbiAgICAkcXVvdGllbnQ6ICRxdW90aWVudCArIDE7XG4gICAgJHJlbWFpbmRlcjogJHJlbWFpbmRlciAtICRkaXZpc29yO1xuICB9XG4gIEBpZiAkcmVtYWluZGVyID4gMCBhbmQgJHByZWNpc2lvbiA+IDAge1xuICAgICRyZW1haW5kZXI6IGZhLWRpdmlkZSgkcmVtYWluZGVyICogMTAsICRkaXZpc29yLCAkcHJlY2lzaW9uIC0gMSkgKiAuMTtcbiAgfVxuICBAcmV0dXJuICgkcXVvdGllbnQgKyAkcmVtYWluZGVyKSAqICRzaWduO1xufVxuIiwiQGtleWZyYW1lcyBmb3JtLWxhYmVsLWZpbGxlZCB7XG4gIDAlIHtcbiAgICBsZWZ0OiAkZm9ybS1sYWJlbC1ndXR0ZXItbGVmdDtcbiAgICBmb250LXNpemU6ICRmb3JtLWxhYmVsLWZvbnQtc2l6ZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbiAgMjUlIHtcbiAgICBsZWZ0OiAkZm9ybS1sYWJlbC1ndXR0ZXItbGVmdDtcbiAgICBmb250LXNpemU6ICRmb3JtLWxhYmVsLWZvbnQtc2l6ZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoOTBkZWcpIHRyYW5zbGF0ZVkoMCk7XG4gIH1cbiAgNzUlIHtcbiAgICBsZWZ0OiAkZm9ybS1sYWJlbC1ndXR0ZXItbGVmdC1maWxsZWQ7XG4gICAgZm9udC1zaXplOiAkZm9ybS1sYWJlbC1mb250LXNpemUtZmlsbGVkO1xuICAgIGJhY2tncm91bmQ6ICRjb2xvci1mb3JtLWZpZWxkLWJhY2tncm91bmQ7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVZKDkwZGVnKSB0cmFuc2xhdGVZKCRmb3JtLWxhYmVsLXRyYW5zbGF0ZSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgbGVmdDogJGZvcm0tbGFiZWwtZ3V0dGVyLWxlZnQtZmlsbGVkO1xuICAgIGZvbnQtc2l6ZTogJGZvcm0tbGFiZWwtZm9udC1zaXplLWZpbGxlZDtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3ItZm9ybS1maWVsZC1iYWNrZ3JvdW5kO1xuICAgIHRyYW5zZm9ybTogcm90YXRlWSgwKSB0cmFuc2xhdGVZKCRmb3JtLWxhYmVsLXRyYW5zbGF0ZSk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmb3JtLWxhYmVsIHtcbiAgMCUge1xuICAgIGxlZnQ6ICRmb3JtLWxhYmVsLWd1dHRlci1sZWZ0LWZpbGxlZDtcbiAgICBmb250LXNpemU6ICRmb3JtLWxhYmVsLWZvbnQtc2l6ZS1maWxsZWQ7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yLWZvcm0tZmllbGQtYmFja2dyb3VuZDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoMCkgdHJhbnNsYXRlWSgkZm9ybS1sYWJlbC10cmFuc2xhdGUpO1xuICB9XG4gIDI1JSB7XG4gICAgbGVmdDogJGZvcm0tbGFiZWwtZ3V0dGVyLWxlZnQtZmlsbGVkO1xuICAgIGZvbnQtc2l6ZTogJGZvcm0tbGFiZWwtZm9udC1zaXplLWZpbGxlZDtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3ItZm9ybS1maWVsZC1iYWNrZ3JvdW5kO1xuICAgIHRyYW5zZm9ybTogcm90YXRlWSg5MGRlZykgdHJhbnNsYXRlWSgkZm9ybS1sYWJlbC10cmFuc2xhdGUpO1xuICB9XG4gIDc1JSB7XG4gICAgbGVmdDogJGZvcm0tbGFiZWwtZ3V0dGVyLWxlZnQ7XG4gICAgZm9udC1zaXplOiAkZm9ybS1sYWJlbC1mb250LXNpemU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVZKDkwZGVnKSB0cmFuc2xhdGVZKDApO1xuICB9XG4gIDEwMCUge1xuICAgIGxlZnQ6ICRmb3JtLWxhYmVsLWd1dHRlci1sZWZ0O1xuICAgIGZvbnQtc2l6ZTogJGZvcm0tbGFiZWwtZm9udC1zaXplO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuIiwiJGZvcm0tZGVmYXVsdC1mb250LXNpemU6IDE2cHggIWRlZmF1bHQ7XG4kZm9ybS1ndXR0ZXI6IC41cmVtICFkZWZhdWx0O1xuJGZvcm0taW5wdXQtdGV4dC1oZWlnaHQ6IDIuNXJlbSAhZGVmYXVsdDtcbiRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0OiAxcmVtO1xuJGZvcm0tbGFiZWwtZ3V0dGVyLXRvcDogY2FsYygoI3skZm9ybS1pbnB1dC10ZXh0LWhlaWdodH0gLSAjeyRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0fSkgLyAyKSAgIWRlZmF1bHQ7XG4kZm9ybS1sYWJlbC1ndXR0ZXItbGVmdDogJGZvcm0tZ3V0dGVyICogMiAgIWRlZmF1bHQ7XG4kZm9ybS1sYWJlbC1ndXR0ZXItbGVmdC1maWxsZWQ6ICRmb3JtLWxhYmVsLWd1dHRlci1sZWZ0ICFkZWZhdWx0O1xuJGZvcm0tbGFiZWwtdHJhbnNsYXRlOiAtMS4ycmVtICFkZWZhdWx0O1xuJGZvcm0tbGFiZWwtbm8tYW5pbS10cmFuc2xhdGU6ICRmb3JtLWxhYmVsLXRyYW5zbGF0ZSAhZGVmYXVsdDtcbiRmb3JtLWxhYmVsLW5vLWFuaW0tbWFyZ2luLXRvcDogMXJlbSAhZGVmYXVsdDtcbiRmb3JtLWxhYmVsLWZvbnQtc2l6ZTogLjlyZW0gIWRlZmF1bHQ7XG4kZm9ybS1sYWJlbC1mb250LXNpemUtZmlsbGVkOiAuN3JlbSAhZGVmYXVsdDtcbiRmb3JtLWVycm9yLWZvbnQtc2l6ZTogJGZvcm0tbGFiZWwtZm9udC1zaXplICFkZWZhdWx0O1xuJGZvcm0tZmllbGQtYm9yZGVyLXJhZGl1czogLjI1cmVtICFkZWZhdWx0O1xuJGZvcm0tZmllbGQtbWFyZ2luLXRvcDogMXJlbSAhZGVmYXVsdDtcbiRmb3JtLWZpZWxkLW1hcmdpbi10b3AtdGFibGV0OiAkZm9ybS1maWVsZC1tYXJnaW4tdG9wICogMiAhZGVmYXVsdDtcbiRmb3JtLWZpZWxkLW1hcmdpbi1ib3R0b206IDEuNXJlbSAhZGVmYXVsdDtcblxuJGZvcm0tZmllbGQtaW5wdXQtYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kY29sb3ItZm9ybS10ZXh0OiAjNGI1MDU1ICFkZWZhdWx0O1xuJGNvbG9yLWZvcm0tdGV4dC1zdHlsZS1kYXJrOiAgI2ZmZiAhZGVmYXVsdDtcbiRjb2xvci1mb3JtLWZpbGxlZDogI2FhMTYzNiAhZGVmYXVsdDtcbiRjb2xvci1mb3JtLXN1Ym1pdDogJGNvbG9yLWZvcm0tZmlsbGVkICFkZWZhdWx0O1xuJGNvbG9yLWNoZWNrYm94LWNoZWNrZWQ6ICRjb2xvci1mb3JtLWZpbGxlZCAhZGVmYXVsdDtcbiRjb2xvci1mb3JtLW1haWwtc2VudDogIzg3ZDM3YyAhZGVmYXVsdDtcbiRjb2xvci1mb3JtLWVycm9yczogcmVkICFkZWZhdWx0O1xuJGNvbG9yLWZvcm0tZmllbGQtYmFja2dyb3VuZDogI2ZmZiAhZGVmYXVsdDtcbiRjb2xvci1mb3JtLWZpZWxkLWJvcmRlcjogJGNvbG9yLWZvcm0tdGV4dCAhZGVmYXVsdDtcblxuJGZpZWxkLWRlc2Mtc2l6ZTogLjhyZW0gIWRlZmF1bHQ7XG4kZmllbGQtZGVzYy1jb2xvcjogIzY5Njk2OSAhZGVmYXVsdDtcbiRmaWVsZC1kZXNjLXN0eWxlOiBpdGFsaWMgIWRlZmF1bHQ7XG4iLCJpbnB1dCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgJjotd2Via2l0LWF1dG9maWxsIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAxMDBweCAkY29sb3ItZm9ybS1maWVsZC1iYWNrZ3JvdW5kIGluc2V0O1xuICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiAkY29sb3ItZm9ybS10ZXh0O1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiAkY29sb3ItZm9ybS10ZXh0O1xuICAgICAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG4uZ3JlY2FwdGNoYS1iYWRnZSB7XG4gIHZpc2liaWxpdHk6IGNvbGxhcHNlO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogOTU5cHgpIHtcbiAgLy8gZGlzcGxheSBmb3JtIHJlc3BvbnNlIG91dHB1dCBhYm92ZSBzdWJtaXQgYnV0dG9uICYgbGVnYWwgbm90aWNlIG9uIG1vYmlsZSAmIHRhYmxldFxuICAuZm9ybS1maWVsZC1zdWJtaXQge1xuICAgIG9yZGVyOiAxO1xuICB9XG5cbiAgLmZvcm0tbGVnYWwtbm90aWNlLFxuICAuZm9ybS1maWVsZC1yZ3BkIHtcbiAgICBvcmRlcjogMjtcbiAgfVxufVxuXG4ud3BjZjcge1xuICBmb250LXNpemU6ICRmb3JtLWRlZmF1bHQtZm9udC1zaXplO1xuXG4gIC53cGNmNy1mb3JtIHtcbiAgICBjb2xvcjogJGNvbG9yLWZvcm0tdGV4dDtcbiAgICBtYXJnaW4tdG9wOiAkZm9ybS1maWVsZC1tYXJnaW4tdG9wO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICAgbWFyZ2luLXRvcDogJGZvcm0tZmllbGQtbWFyZ2luLXRvcC10YWJsZXQ7XG4gICAgfVxuXG4gICAgLmZvcm0tZmllbGQge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbWFyZ2luLWJvdHRvbTogJGZvcm0tZmllbGQtbWFyZ2luLWJvdHRvbTtcbiAgICAgIHRyYW5zaXRpb246IGFsbCBlYXNlIC41cztcblxuICAgICAgcDpub3QoW2NsYXNzXSkge1xuICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcbiAgICAgIH1cblxuICAgICAgaW5wdXQge1xuICAgICAgICAmOm5vdChbdHlwZT1cInN1Ym1pdFwiXSk6bm90KFt0eXBlPVwiZmlsZVwiXSk6bm90KFt0eXBlPVwiY2hlY2tib3hcIl0pIHtcbiAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRmb3JtLWd1dHRlcjtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWZvcm0tZmllbGQtYm9yZGVyO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRmb3JtLWZpZWxkLWJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIGVhc2UgLjRzO1xuICAgICAgICAgIGJhY2tncm91bmQ6ICRmb3JtLWZpZWxkLWlucHV0LWJhY2tncm91bmQ7XG5cbiAgICAgICAgICAmLndwY2Y3LXRleHQsICYud3BjZjctbnVtYmVyIHtcbiAgICAgICAgICAgIGhlaWdodDogJGZvcm0taW5wdXQtdGV4dC1oZWlnaHQ7XG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yLWZvcm0tdGV4dDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmLndwY2Y3LW5vdC12YWxpZCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvci1mb3JtLWVycm9ycztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICAmW3R5cGU9XCJkYXRlXCJdIHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAmOjotd2Via2l0LWNhbGVuZGFyLXBpY2tlci1pbmRpY2F0b3Ige1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBjYWxjKDEwMCUgLSAyLjVlbSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRleHRhcmVhIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJGZvcm0tZ3V0dGVyO1xuICAgICAgICBwYWRkaW5nLXRvcDogJGZvcm0tZ3V0dGVyO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGNvbG9yOiAkY29sb3ItZm9ybS10ZXh0O1xuICAgICAgICByZXNpemU6IG5vbmU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1mb3JtLWZpZWxkLWJvcmRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGZvcm0tZmllbGQtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIGVhc2UgLjRzO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkZm9ybS1maWVsZC1pbnB1dC1iYWNrZ3JvdW5kO1xuICAgICAgICBoZWlnaHQ6IGluaXRpYWw7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYud3BjZjctbm90LXZhbGlkIHtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3ItZm9ybS1lcnJvcnM7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgc2VsZWN0LndwY2Y3LXNlbGVjdCxcbiAgICAgIHNlbGVjdC53cGNmNy1mb3JtLWNvbnRyb2wge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRmb3JtLWd1dHRlcjtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIGNvbG9yOiAkY29sb3ItZm9ybS10ZXh0O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItZm9ybS1maWVsZC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRmb3JtLWZpZWxkLWJvcmRlci1yYWRpdXM7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6ICRmb3JtLWlucHV0LXRleHQtaGVpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiAkZm9ybS1maWVsZC1pbnB1dC1iYWNrZ3JvdW5kO1xuXG4gICAgICAgICYud3BjZjctbm90LXZhbGlkIHtcbiAgICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvci1mb3JtLWVycm9ycztcbiAgICAgICAgfVxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICA+IGxhYmVsIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6ICRmb3JtLWxhYmVsLWd1dHRlci10b3A7XG4gICAgICAgIGxlZnQ6ICRmb3JtLWxhYmVsLWd1dHRlci1sZWZ0O1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGNvbG9yOiAkY29sb3ItZm9ybS10ZXh0O1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgY3Vyc29yOiB0ZXh0O1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgdHJhbnNpdGlvbjogZm9udC1zaXplIGVhc2UgLjVzLCB0cmFuc2Zvcm0gZWFzZS1pbi1vdXQgLjVzLCBiYWNrZ3JvdW5kLWNvbG9yIGVhc2UgLjVzLCBwYWRkaW5nIGVhc2UgLjVzO1xuICAgICAgICBmb250LXNpemU6ICRmb3JtLWxhYmVsLWZvbnQtc2l6ZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0O1xuICAgICAgfVxuXG4gICAgICAmLnN0eWxlLWRhcmsge1xuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgY29sb3I6ICRjb2xvci1mb3JtLXRleHQtc3R5bGUtZGFyaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLmVtcHR5IHtcbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgIGFuaW1hdGlvbjogLjVzIGVhc2UtaW4gMHMgMSBmb3JtLWxhYmVsO1xuICAgICAgICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuZmlsbGVkLFxuICAgICAgJi5hY3RpdmUge1xuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgcGFkZGluZzogMCAkZm9ybS1ndXR0ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5maWxsZWQge1xuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgYW5pbWF0aW9uOiAuNXMgZWFzZS1pbiAwcyAxIGZvcm0tbGFiZWwtZmlsbGVkO1xuICAgICAgICAgIGFuaW1hdGlvbi1kaXJlY3Rpb246IG5vcm1hbDtcbiAgICAgICAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkcztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLmFjdGl2ZSB7XG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICBjb2xvcjogJGNvbG9yLWZvcm0tZmlsbGVkICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBpbnB1dCxcbiAgICAgICAgdGV4dGFyZWEge1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yLWZvcm0tZmlsbGVkICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5uby1hbmltLFxuICAgICAgJi5mb3JtLWZpZWxkLW5vYW5pbSB7XG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICBhbmltYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICAgICAgICB0b3A6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICBsZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAkZm9ybS1sYWJlbC1uby1hbmltLW1hcmdpbi10b3A7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRmb3JtLWxhYmVsLW5vLWFuaW0tdHJhbnNsYXRlKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLmZvcm0tZmllbGQtc2VsZWN0IHtcbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLmZvcm0tZmllbGQtYWNjZXB0YW5jZSB7XG4gICAgICAgIGlucHV0IHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLmZvcm0tZmllbGQtcmdwZCxcbiAgICAgICYuZm9ybS1sZWdhbC1ub3RpY2Uge1xuICAgICAgICBtYXJnaW46IDFyZW0gYXV0bztcbiAgICAgICAgZm9udC1zaXplOiAuN3JlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgfVxuXG4gICAgICAmLmZvcm0tZmllbGQtZG91YmxlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIGZsZXg6IDI7XG5cbiAgICAgICAgICAgIGlucHV0LndwY2Y3LXRleHQge1xuICAgICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDFweDtcbiAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweCAwIDAgMTBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgZmxleDogMTtcblxuICAgICAgICAgICAgaW5wdXQud3BjZjctdGV4dCB7XG4gICAgICAgICAgICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMTBweCAxMHB4IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuZm9ybS1maWVsZC1jaGVja2JveCB7XG4gICAgICAgIC53cGNmNy1jaGVja2JveCB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogLS4yNWVtO1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtLjI1ZW07XG5cbiAgICAgICAgICAud3BjZjctbGlzdC1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgcGFkZGluZzogMCAuMjVlbTtcblxuICAgICAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgIC53cGNmNy1saXN0LWl0ZW0tbGFiZWwge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogLjVyZW07XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLmNoZWNrYm94LWlubGluZSB7XG4gICAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogLjI1ZW07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLndwY2Y3LWNoZWNrYm94IHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAgICAgICAgIC53cGNmNy1saXN0LWl0ZW0ge1xuICAgICAgICAgICAgICBmbGV4OiAwIDAgMjAwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuZm9ybS1maWVsZC1kYXRlIHtcbiAgICAgICAgaW5wdXQge1xuICAgICAgICAgIGhlaWdodDogJGZvcm0taW5wdXQtdGV4dC1oZWlnaHQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5pbmxpbmUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkge1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIH1cblxuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgICBsaW5lLWhlaWdodDogMjVweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC53cGNmNy1yYWRpbyB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgICAgIC53cGNmNy1saXN0LWl0ZW0ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIGlucHV0IHtcbiAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLjI1ZW07XG4gICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAuMjVlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAud3BjZjctY2hlY2tib3gge1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZm9ybS1maWVsZC1zdWJtaXQge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgIC5hamF4LWxvYWRlciwgLndwY2Y3LXNwaW5uZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgIG1pbi1oZWlnaHQ6IHVuc2V0O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc3Bhbi53cGNmNy1saXN0LWl0ZW0ge1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIC5mb3JtLWZpZWxkLXJlcXVpcmVkIHtcbiAgICAgIGNvbG9yOiAkY29sb3ItZm9ybS1lcnJvcnM7XG4gICAgfVxuXG4gICAgLmZvcm0tZmllbGQtd3JhcCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtMTVweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMTVweDtcblxuICAgICAgLmZvcm0tZmllbGQtZGF0ZSB7XG4gICAgICAgIGZsZXg6IDEgMSAwO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxNXB4O1xuXG4gICAgICAgIGlucHV0IHtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLndwY2Y3LWZvcm0tY29udHJvbC13cmFwIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAud3BjZjctbm90LXZhbGlkLXRpcCB7XG4gICAgICAgIGNvbG9yOiAkY29sb3ItZm9ybS1lcnJvcnMgIWltcG9ydGFudDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9ybS1lcnJvci1mb250LXNpemU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAtMnJlbTtcbiAgICAgICAgbGVmdDogJGZvcm0tZ3V0dGVyO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5mb3JtLWZpZWxkLWRlc2Mge1xuICAgICAgZm9udC1zaXplOiAkZmllbGQtZGVzYy1zaXplO1xuICAgICAgZm9udC1zdHlsZTogJGZpZWxkLWRlc2Mtc3R5bGU7XG4gICAgICBjb2xvcjogJGZpZWxkLWRlc2MtY29sb3I7XG4gICAgfVxuXG4gICAgLndwY2Y3LXJlc3BvbnNlLW91dHB1dCB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgIGZvbnQtc2l6ZTogLjlyZW07XG4gICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuXG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogOTU5cHgpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCguc3VibWl0dGluZykge1xuICAgICAgLmFqYXgtbG9hZGVyLCAud3BjZjctc3Bpbm5lciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnNlbnQge1xuICAgICAgLndwY2Y3LXJlc3BvbnNlLW91dHB1dCB7XG4gICAgICAgIGNvbG9yOiAkY29sb3ItZm9ybS1tYWlsLXNlbnQgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmludmFsaWQge1xuICAgICAgLndwY2Y3LXJlc3BvbnNlLW91dHB1dCB7XG4gICAgICAgIGNvbG9yOiAkY29sb3ItZm9ybS1lcnJvcnMgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBGb3JtIGdyaWRcbiAgLmZvcm0tcm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbWFyZ2luLXJpZ2h0OiAtJGZvcm0tZ3V0dGVyO1xuICAgIG1hcmdpbi1sZWZ0OiAtJGZvcm0tZ3V0dGVyO1xuXG4gICAgJjo6YmVmb3JlLFxuICAgICY6OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgfVxuXG4gICAgJiA+IC5mb3JtLWNvbCB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6ICRmb3JtLWd1dHRlciAhaW1wb3J0YW50O1xuICAgICAgcGFkZGluZy1sZWZ0OiAkZm9ybS1ndXR0ZXIgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmID4gLmZvcm0tY29sLTYge1xuICAgICAgQGV4dGVuZCAuZm9ybS1jb2w7XG5cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkge1xuICAgICAgICBmbGV4OiAwIDAgNTAlO1xuICAgICAgICBtYXgtd2lkdGg6IDUwJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmID4gLmZvcm0tY29sLTQge1xuICAgICAgQGV4dGVuZCAuZm9ybS1jb2w7XG5cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkge1xuICAgICAgICBmbGV4OiAwIDAgMzMuMzMlO1xuICAgICAgICBtYXgtd2lkdGg6IDMzLjMzJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmID4gLmZvcm0tY29sLTMge1xuICAgICAgQGV4dGVuZCAuZm9ybS1jb2w7XG5cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkge1xuICAgICAgICBmbGV4OiAwIDAgMjUlO1xuICAgICAgICBtYXgtd2lkdGg6IDI1JTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuIiwiLy8gQnJlYWtwb2ludCB2aWV3cG9ydCBzaXplcyBhbmQgbWVkaWEgcXVlcmllcy5cbi8vXG4vLyBCcmVha3BvaW50cyBhcmUgZGVmaW5lZCBhcyBhIG1hcCBvZiAobmFtZTogbWluaW11bSB3aWR0aCksIG9yZGVyIGZyb20gc21hbGwgdG8gbGFyZ2U6XG4vL1xuLy8gICAgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0MDBweClcbi8vXG4vLyBUaGUgbWFwIGRlZmluZWQgaW4gdGhlIGAkZ3JpZC1icmVha3BvaW50c2AgZ2xvYmFsIHZhcmlhYmxlIGlzIHVzZWQgYXMgdGhlIGAkYnJlYWtwb2ludHNgIGFyZ3VtZW50IGJ5IGRlZmF1bHQuXG5cbi8vIE5hbWUgb2YgdGhlIG5leHQgYnJlYWtwb2ludCwgb3IgbnVsbCBmb3IgdGhlIGxhc3QgYnJlYWtwb2ludC5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20pXG4vLyAgICBtZFxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KSlcbi8vICAgIG1kXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20sICRicmVha3BvaW50LW5hbWVzOiAoeHMgc20gbWQgbGcgeGwgeHhsKSlcbi8vICAgIG1kXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1uZXh0KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludC1uYW1lczogbWFwLWtleXMoJGJyZWFrcG9pbnRzKSkge1xuICAkbjogaW5kZXgoJGJyZWFrcG9pbnQtbmFtZXMsICRuYW1lKTtcbiAgQGlmIG5vdCAkbiB7XG4gICAgQGVycm9yIFwiYnJlYWtwb2ludCBgI3skbmFtZX1gIG5vdCBmb3VuZCBpbiBgI3skYnJlYWtwb2ludHN9YFwiO1xuICB9XG4gIEByZXR1cm4gaWYoJG4gPCBsZW5ndGgoJGJyZWFrcG9pbnQtbmFtZXMpLCBudGgoJGJyZWFrcG9pbnQtbmFtZXMsICRuICsgMSksIG51bGwpO1xufVxuXG4vLyBNaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBzbWFsbGVzdCAoZmlyc3QpIGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1taW4oc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpKVxuLy8gICAgNTc2cHhcbkBmdW5jdGlvbiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICBAcmV0dXJuIGlmKCRtaW4gIT0gMCwgJG1pbiwgbnVsbCk7XG59XG5cbi8vIE1heGltdW0gYnJlYWtwb2ludCB3aWR0aC5cbi8vIFRoZSBtYXhpbXVtIHZhbHVlIGlzIHJlZHVjZWQgYnkgMC4wMnB4IHRvIHdvcmsgYXJvdW5kIHRoZSBsaW1pdGF0aW9ucyBvZlxuLy8gYG1pbi1gIGFuZCBgbWF4LWAgcHJlZml4ZXMgYW5kIHZpZXdwb3J0cyB3aXRoIGZyYWN0aW9uYWwgd2lkdGhzLlxuLy8gU2VlIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9tZWRpYXF1ZXJpZXMtNC8jbXEtbWluLW1heFxuLy8gVXNlcyAwLjAycHggcmF0aGVyIHRoYW4gMC4wMXB4IHRvIHdvcmsgYXJvdW5kIGEgY3VycmVudCByb3VuZGluZyBidWcgaW4gU2FmYXJpLlxuLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgyNjFcbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW1heChtZCwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0MDBweCkpXG4vLyAgICA3NjcuOThweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtYXg6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gIEByZXR1cm4gaWYoJG1heCBhbmQgJG1heCA+IDAsICRtYXggLSAuMDIsIG51bGwpO1xufVxuXG4vLyBSZXR1cm5zIGEgYmxhbmsgc3RyaW5nIGlmIHNtYWxsZXN0IGJyZWFrcG9pbnQsIG90aGVyd2lzZSByZXR1cm5zIHRoZSBuYW1lIHdpdGggYSBkYXNoIGluIGZyb250LlxuLy8gVXNlZnVsIGZvciBtYWtpbmcgcmVzcG9uc2l2ZSB1dGlsaXRpZXMuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeCh4cywgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0MDBweCkpXG4vLyAgICBcIlwiICAoUmV0dXJucyBhIGJsYW5rIHN0cmluZylcbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpKVxuLy8gICAgXCItc21cIlxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtaW5maXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgQHJldHVybiBpZihicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKSA9PSBudWxsLCBcIlwiLCBcIi0jeyRuYW1lfVwiKTtcbn1cblxuLy8gTWVkaWEgb2YgYXQgbGVhc3QgdGhlIG1pbmltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCB3aWRlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICBAaWYgJG1pbiB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gTWVkaWEgb2YgYXQgbW9zdCB0aGUgbWF4aW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIGxhcmdlc3QgYnJlYWtwb2ludC5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgbmFycm93ZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1kb3duKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICBAaWYgJG1heCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gTWVkaWEgdGhhdCBzcGFucyBtdWx0aXBsZSBicmVha3BvaW50IHdpZHRocy5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBiZXR3ZWVuIHRoZSBtaW4gYW5kIG1heCBicmVha3BvaW50c1xuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtYmV0d2VlbigkbG93ZXIsICR1cHBlciwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBicmVha3BvaW50LW1pbigkbG93ZXIsICRicmVha3BvaW50cyk7XG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCR1cHBlciwgJGJyZWFrcG9pbnRzKTtcblxuICBAaWYgJG1pbiAhPSBudWxsIGFuZCAkbWF4ICE9IG51bGwge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSBhbmQgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtYXggPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkbG93ZXIsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtaW4gPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCR1cHBlciwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8gTWVkaWEgYmV0d2VlbiB0aGUgYnJlYWtwb2ludCdzIG1pbmltdW0gYW5kIG1heGltdW0gd2lkdGhzLlxuLy8gTm8gbWluaW11bSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQsIGFuZCBubyBtYXhpbXVtIGZvciB0aGUgbGFyZ2VzdCBvbmUuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgb25seSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCwgbm90IHZpZXdwb3J0cyBhbnkgd2lkZXIgb3IgbmFycm93ZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1vbmx5KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46ICBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgJG5leHQ6IGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgJG1heDogIGJyZWFrcG9pbnQtbWF4KCRuZXh0LCAkYnJlYWtwb2ludHMpO1xuXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmV4dCwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==*/