/* Variables  */
/* Aliases  */
.sugar-calendar__display__inline-flex {
  display: inline-flex;
}

.sugar-calendar__align-items__center {
  align-items: center;
}

.sugar-calendar__gap-10 {
  gap: 10px;
}

#sugar-calendar-settings form > .submit {
  align-items: center;
  display: flex;
  gap: 10px;
}
#sugar-calendar-settings form > .submit .sugar-calendar-btn {
  margin: 0;
}
#sugar-calendar-settings form > .submit .sugar-calendar-settings-emails__preview-button {
  border-radius: var(--radius-button, 4px);
  border: 1px solid var(--components-button-tertiary-border, #8C8F94);
  background: var(--components-button-tertiary-background, #F7F7F7);
  color: var(--components-button-tertiary-text, #50575E) !important;
  text-align: center;
  /* Buttons/Default */
  font-size: var(--typography-font-size-14, 14px);
  font-style: normal;
  font-weight: var(--typography-font-weight-medium, 500);
  line-height: normal;
}
@media screen and (max-width: 782px) {
  #sugar-calendar-settings form > .submit {
    align-items: stretch;
    flex-direction: column;
  }
  #sugar-calendar-settings form > .submit .sugar-calendar-btn {
    box-sizing: border-box;
    justify-content: center;
    width: 100%;
  }
}

.sugar-calendar-settings-emails__heading {
  border-top: 1px solid var(--color-neutral-5, #dcdcde);
  padding: 30px 0;
}
.sugar-calendar-settings-emails__heading h4 {
  color: var(--text-text-heading, #1d2327);
  font-style: normal;
  line-height: normal;
  font-size: var(--typography-font-size-18, 18px);
  font-weight: var(--typography-font-weight-medium, 500);
  margin: 0;
}
.sugar-calendar-settings-emails__heading .desc {
  color: var(--text-text-primary, #2C3338);
  /* Page Description */
  font-size: var(--typography-font-size-14, 14px);
  font-style: normal;
  font-weight: var(--typography-font-weight-regular, 400);
  line-height: var(--typography-line-height-20, 20px); /* 142.857% */
}
.sugar-calendar-settings-emails__group {
  border: 1px solid var(--surface-surface-border, #c3c4c7);
  background: var(--surface-surface-background-white, white);
  border-radius: var(--radius-table, 4px);
  max-width: 610px;
  overflow: hidden;
  margin-bottom: 30px;
}
.sugar-calendar-settings-emails__row {
  align-items: center;
  border-bottom: 1px solid #dcdcde;
  display: flex;
  gap: 20px;
  justify-content: space-between;
  padding: 20px;
}
.sugar-calendar-settings-emails__row:last-child {
  border-bottom: 0;
}
.sugar-calendar-settings-emails__row-info {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}
.sugar-calendar-settings-emails__row-title {
  color: var(--text-text-primary, #2C3338);
  font-size: var(--typography-font-size-14, 14px);
  font-style: normal;
  font-weight: var(--typography-font-weight-medium, 500);
  line-height: var(--typography-line-height-20, 20px); /* 142.857% */
}
.sugar-calendar-settings-emails__row-desc {
  color: var(--text-text-tertiary, #787C82);
  font-size: var(--typography-font-size-12, 12px);
  font-style: normal;
  font-weight: var(--typography-font-weight-regular, 400);
  line-height: 140%; /* 16.8px */
}
.sugar-calendar-settings-emails__row-actions {
  align-items: center;
  display: flex;
  flex-shrink: 0;
  gap: 20px;
}
.sugar-calendar-settings-emails__row-edit, .sugar-calendar-settings-emails__row-install {
  text-decoration: none;
  color: var(--text-text-link, #2271B1);
  text-align: center;
  leading-trim: both;
  text-edge: cap;
  /* Buttons/Small */
  font-size: var(--typography-font-size-12, 12px);
  font-style: normal;
  font-weight: var(--typography-font-weight-medium, 500);
  line-height: normal;
}
.sugar-calendar-settings-emails__row-toggle .sugar-calendar-toggle-control input ~ .sugar-calendar-toggle-control-status {
  display: none;
}
.sugar-calendar-settings-emails__row-note {
  color: #646970;
  font-size: 12px;
  font-style: italic;
  white-space: nowrap;
}
.sugar-calendar-settings-emails__pro-prompt {
  align-items: center;
  display: inline-flex;
}
.sugar-calendar-settings-emails__pro-prompt.sce-lite-education-modal-link {
  cursor: pointer;
}
.sugar-calendar-settings-emails__pro-prompt.sce-lite-education-modal-link .sugar-calendar__badge__pro-only {
  margin-left: 0;
}
.sugar-calendar-settings-emails__pro-prompt.sce-lite-education-modal-link:focus-visible {
  outline: 2px solid #2271b1;
  outline-offset: 2px;
}
.sugar-calendar-settings-emails__modern-only[hidden] {
  display: none;
}
.sugar-calendar-settings-emails__branding {
  align-items: center;
  display: inline-flex;
  padding-bottom: 30px;
}
.sugar-calendar-settings-emails__branding .sugar-calendar-setting-row {
  align-items: center;
  display: flex;
  gap: 10px;
  padding-bottom: 0;
}
.sugar-calendar-settings-emails__branding .sugar-calendar-setting-label {
  float: none;
  min-width: 200px;
  padding: 0;
  white-space: nowrap;
  width: auto;
}
.sugar-calendar-settings-emails__branding .sugar-calendar-setting-field {
  margin: 0;
}
.sugar-calendar-settings-emails__branding .sugar-calendar-toggle-control {
  padding-top: 0;
}
.sugar-calendar-settings-emails__branding--locked, .sugar-calendar-settings-emails__branding--locked .sugar-calendar-setting-label label, .sugar-calendar-settings-emails__branding--locked .sugar-calendar-toggle-control input:disabled ~ label {
  cursor: pointer;
}

.sugar-calendar-settings-emails-edit__heading {
  font-size: 20px;
  font-weight: 600;
  margin: 10px 0 24px;
}

.sugar-calendar-settings-email-styling {
  margin-top: 30px;
}
@media (min-width: 768px) {
  .sugar-calendar-settings-email-styling > .sugar-calendar-setting-row:not(.sugar-calendar-setting-row-heading) .sugar-calendar-setting-field {
    margin-left: 210px;
  }
}

.sugar-calendar-image-radio-group {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
}
.sugar-calendar-image-radio-group__option {
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 12px;
  position: relative;
  text-align: center;
  width: 155px;
}
@media (max-width: 767px) {
  .sugar-calendar-image-radio-group__option {
    max-width: 160px;
    width: calc(50% - 10px);
  }
}
.sugar-calendar-image-radio-group__input {
  height: 1px;
  opacity: 0;
  position: absolute;
  width: 1px;
}
.sugar-calendar-image-radio-group__option-image {
  align-items: center;
  background: #f0f0f1;
  border: 1px solid #c3c4c7;
  border-radius: 6px;
  box-sizing: border-box;
  display: flex;
  height: 180px;
  justify-content: center;
  overflow: hidden;
}
.sugar-calendar-image-radio-group__option-image img {
  display: block;
  height: auto;
  max-width: 100%;
}
.sugar-calendar-image-radio-group__option--selected .sugar-calendar-image-radio-group__option-image {
  border: 2px solid #ff8845;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.07);
}
.sugar-calendar-image-radio-group__input:focus-visible + .sugar-calendar-image-radio-group__option-image {
  outline: 2px solid #2271b1;
  outline-offset: 2px;
}
.sugar-calendar-image-radio-group__option:not(.sugar-calendar-image-radio-group__option--selected):hover .sugar-calendar-image-radio-group__option-image {
  border: 2px solid #50575e;
  box-shadow: 0 2px 2px rgba(0, 0, 0, 0.07);
}
.sugar-calendar-image-radio-group__option-label {
  color: #50575e;
  font-size: 14px;
  font-weight: 400;
}
.sugar-calendar-image-radio-group__option--selected .sugar-calendar-image-radio-group__option-label {
  color: #1d2327;
  font-weight: 500;
}

.sugar-calendar-image-upload {
  align-items: center;
  display: grid;
  gap: 10px;
  grid-template-columns: max-content max-content;
  justify-content: start;
}
.sugar-calendar-image-upload [hidden] {
  display: none;
}
.sugar-calendar-image-upload button.sugar-calendar-image-upload__upload {
  border-radius: var(--radius-button, 4px);
  border: 1px solid var(--components-button-tertiary-border, #8C8F94);
  background: var(--components-button-tertiary-background, #F7F7F7);
  display: flex;
  height: 36px;
  padding: 10px var(--padding-16, 16px);
  justify-content: center;
  align-items: center;
  gap: var(--spacing-5, 5px);
  color: var(--components-button-tertiary-text, #50575E);
  text-align: center;
  leading-trim: both;
  text-edge: cap;
  /* Buttons/Default */
  font-size: var(--typography-font-size-14, 14px);
  font-style: normal;
  font-weight: var(--typography-font-weight-medium, 500);
  line-height: normal;
}
.sugar-calendar-image-upload button.sugar-calendar-image-upload__upload[hidden] {
  display: none;
}
.sugar-calendar-image-upload .sugar-calendar-image-upload__remove {
  border-radius: var(--radius-button, 4px);
  border: 1px solid var(--fields-field-border-error, #D63638);
  background: var(--components-button-tertiary-background, #F7F7F7);
  display: flex;
  height: 36px;
  padding: 10px var(--padding-16, 16px);
  justify-content: center;
  align-items: center;
  gap: var(--spacing-5, 5px);
  cursor: pointer;
  color: var(--text-text-error, #D63638);
  text-align: center;
  /* Buttons/Default */
  font-size: var(--typography-font-size-14, 14px);
  font-style: normal;
  font-weight: var(--typography-font-weight-medium, 500);
  line-height: normal;
}
.sugar-calendar-image-upload .sugar-calendar-image-upload__remove:hover, .sugar-calendar-image-upload .sugar-calendar-image-upload__remove:focus-visible {
  background: var(--buttons-button-tertiary-background---hover, #F0F0F1);
}
.sugar-calendar-image-upload .sugar-calendar-image-upload__remove[hidden] {
  display: none;
}
.sugar-calendar-image-upload__preview {
  background: #fff;
  border: 1px solid #c3c4c7;
  border-radius: 4px;
  grid-column: 1/-1;
  justify-self: start;
  padding: 10px;
}
.sugar-calendar-image-upload__thumb {
  display: block;
  height: auto;
  max-width: 100%;
}
.sugar-calendar-image-upload .sugar-calendar-image-upload__size select {
  width: 200px;
}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0cy9zY3NzL2FkbWluL192YXJpYWJsZXMuc2NzcyIsImFzc2V0cy9zY3NzL191dGlscy5zY3NzIiwiYXNzZXRzL3Njc3MvYWRtaW4tc2V0dGluZ3MtZW1haWxzLnNjc3MiLCJhc3NldHMvc2Nzcy92ZW5kb3IvX2luY2x1ZGUtbWVkaWEuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTtBQW1FQTtBQ3JFQTtFQUNDOzs7QUFHRDtFQUNDOzs7QUFHRDtFQUNDOzs7QUNDRDtFQUNDO0VBQ0E7RUFDQTs7QUFFQTtFQUNDOztBQUdEO0VBQ0M7RUFDQTtFQUNBO0VBRUE7RUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0Q7RUF4QkQ7SUF5QkU7SUFDQTs7RUFFQTtJQUNDO0lBQ0E7SUFDQTs7OztBQU9GO0VBQ0M7RUFDQTs7QUFFQTtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHRDtFQUNDO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFJRjtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHRDtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNDOztBQUlGO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7O0FBR0Q7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdEO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHRDtFQUNDO0VBQ0E7RUFDQTtFQUNBOztBQUdEO0VBRUM7RUFFQTtFQUNBO0VBQ0E7RUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBWUQ7RUFDQzs7QUFJRDtFQUNDO0VBQ0E7RUFDQTtFQUNBOztBQU9EO0VBR0M7RUFDQTs7QUFFQTtFQUNDOztBQUVBO0VBQ0M7O0FBR0Q7RUFDQztFQUNBOztBQUtIO0VBQ0M7O0FBR0Q7RUFDQztFQUNBO0VBR0E7O0FBTUE7RUFDQztFQUNBO0VBQ0E7RUFDQTs7QUFHRDtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0Q7RUFDQzs7QUFNRDtFQUNDOztBQU9EO0VBR0M7OztBQVFGO0VBQ0M7RUFDQTtFQUNBOzs7QUFJRjtFQUNDOztBQ3lXRztFRGhXRjtJQUNDOzs7O0FBS0g7RUFDQztFQUNBO0VBQ0E7O0FBS0E7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUMyVUU7RURsVkg7SUFVRTtJQUNBOzs7QUFJRjtFQUNDO0VBQ0E7RUFDQTtFQUNBOztBQUdEO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0M7RUFDQTtFQUNBOztBQVlGO0VBQ0M7RUFDQTs7QUFRRDtFQUNDO0VBQ0E7O0FBR0Q7RUFDQztFQUNBOztBQUdEO0VBQ0M7RUFDQTtFQUNBOztBQUdEO0VBQ0M7RUFDQTs7O0FBSUY7RUFJQztFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0M7O0FBR0Q7RUFDQztFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBSUE7RUFDQzs7QUFRRjtFQUNDO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBSUE7RUFFQzs7QUFHRDtFQUNDOztBQUtGO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdEO0VBQ0M7RUFDQTtFQUNBOztBQUlEO0VBQ0MiLCJmaWxlIjoiYXNzZXRzL2Nzcy9hZG1pbi1zZXR0aW5ncy1lbWFpbHMuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQWRtaW4gdmFyaWFibGVzLlxuXG4vKiBWYXJpYWJsZXMgICovXG4kcmFkaXVzLW1kOiA0cHg7XG4kcmFkaXVzLWxnOiA2cHg7XG4kcmFkaXVzLXNtOiAzcHg7XG4kc3BhY2luZy14czogNXB4O1xuJHNwYWNpbmctc206IDEwcHg7XG4kc3BhY2luZy1tZDogMjBweDtcbiRzcGFjaW5nLWxnOiAzMHB4O1xuJHNwYWNpbmcteGw6IDUwcHg7XG4kY29sb3ItYnJhbmQtb3JhbmdlLTUwOiAjRkY4ODQ1RkY7XG4kY29sb3ItYnJhbmQtb3JhbmdlLTcwOiAjQ0I2RDM3RkY7XG4kY29sb3ItYnJhbmQtYmx1ZS0wOiAjZjBmNmZjZmY7XG4kY29sb3ItYnJhbmQtYmx1ZS01MDogIzIyNzFCMUZGO1xuJGNvbG9yLWJyYW5kLWJsdWUtYnJpZ2h0LTUwOiAjMDBBMEQyRkY7XG4kY29sb3ItYnJhbmQtYmx1ZS03MDogIzBBNEI3OEZGO1xuJGNvbG9yLW5ldXRyYWwtMTAwOiAjMTAxNTE3O1xuJGNvbG9yLW5ldXRyYWwtOTA6ICMxRDIzMjdGRjtcbiRjb2xvci1uZXV0cmFsLTgwOiAjMkMzMzM4RkY7XG4kY29sb3ItbmV1dHJhbC03MDogIzNDNDM0QUZGO1xuJGNvbG9yLW5ldXRyYWwtNjA6ICM1MDU3NUVGRjtcbiRjb2xvci1uZXV0cmFsLTUwOiAjNjQ2OTcwRkY7XG4kY29sb3ItbmV1dHJhbC0zMDogIzhDOEY5NEZGO1xuJGNvbG9yLW5ldXRyYWwtMTA6ICNDM0M0QzdGRjtcbiRjb2xvci1uZXV0cmFsLTIwOiAjQTdBQUFERkY7XG4kY29sb3ItbmV1dHJhbC01OiAjRENEQ0RFRkY7XG4kY29sb3ItdXRpbGl0eS15ZWxsb3ctMDogI0ZDRjlFODtcbiRjb2xvci11dGlsaXR5LXllbGxvdy0zMDogI0YyRDY3NTtcbiRjb2xvci11dGlsaXR5LXllbGxvdy01MDogI0RCQTYxN0ZGO1xuJGNvbG9yLXV0aWxpdHktcmVkLTUwOiAjRDYzNjM4RkY7XG4kY29sb3ItdXRpbGl0eS1ncmVlbi01MDogIzAwOEEyMEZGO1xuJHJhZGl1cy1tZDogNHB4O1xuJHJhZGl1cy1sZzogNnB4O1xuJHJhZGl1cy14bDogOXB4O1xuJGNvbG9yLW5ldXRyYWwtMzogI0YwRjBGMUZGO1xuJGNvbG9yLW5ldXRyYWwtMDogI0Y2RjdGN0ZGO1xuJGNvbG9yLXV0aWxpdHktd2hpdGU6ICNGRkZGRkZGRjtcbiRjb2xvci1icmFuZC1vcmFuZ2UtMDogI0ZGRjNFQ0ZGO1xuJGNvbG9yLWJyYW5kLWJsdWUtYnJpZ2h0LTA6ICNFNUY1RkFGRjtcbiRjb2xvci11dGlsaXR5LWdyZWVuLTA6ICNFREZBRUZGRjtcbiRjb2xvci11dGlsaXR5LXJlZC0wOiAjRkNGMEYxRkY7XG4kY29sb3ItYnJhbmQtb3JhbmdlLTMwOiAjRkZBMDZBRkY7XG4kY29sb3ItYnJhbmQtYmx1ZS1icmlnaHQtMzA6ICM2NkM2RTRGRjtcbiRjb2xvci11dGlsaXR5LWdyZWVuLTMwOiAjMDBCQTM3RkY7XG4kY29sb3ItdXRpbGl0eS1yZWQtMzA6ICNGODYzNjhGRjtcbiRjb2xvci13b3JkcHJlc3MtYmx1ZTogIzIyNzFCMUZGO1xuJGNvbG9yLXV0aWxpdHktZ3JheS0wOiAjRjZGNkY2RkY7XG4kY29sb3ItYWNjZW50LW9yYW5nZS01MDogI0ZFOUU2OEZGO1xuJGNvbG9yLWFjY2VudC1vcmFuZ2UtMDogI0ZGRjBFOEZGO1xuJGNvbG9yLWFjY2VudC1yZWQtNTA6ICNGRjczNjhGRjtcbiRjb2xvci1hY2NlbnQtcmVkLTA6ICNGRkVBRThGRjtcbiRjb2xvci1hY2NlbnQtcGluay01MDogI0RGNUI5QUZGO1xuJGNvbG9yLWFjY2VudC1waW5rLTA6ICNGQUU2RjBGRjtcbiRjb2xvci1hY2NlbnQtcHVycGxlLTUwOiAjODY1OUMyRkY7XG4kY29sb3ItYWNjZW50LXB1cnBsZS0wOiAjRURFNkY2RkY7XG4kY29sb3ItYWNjZW50LWJsdWUtNTA6ICM1Njg1QkRGRjtcbiRjb2xvci1hY2NlbnQtYmx1ZS0wOiAjRTZFREY1RkY7XG4kY29sb3ItYWNjZW50LXRlYWwtNTA6ICM0QkI5QTdGRjtcbiRjb2xvci1hY2NlbnQtdGVhbC0wOiAjRTRGNUYyRkY7XG4kY29sb3ItYWNjZW50LWdyZWVuLTUwOiAjNTdENDY2RkY7XG4kY29sb3ItYWNjZW50LWdyZWVuLTA6ICNFNkY5RThGRjtcbiRjb2xvci1hY2NlbnQteWVsbG93LTUwOiAjRkZDNDY5RkY7XG4kY29sb3ItYWNjZW50LXllbGxvdy0wOiAjRkZGNkU5RkY7XG4kY2FsZW5kYXItdGV4dC1wcmltYXJ5OiAjMDAwMDAwRDk7XG4kY2FsZW5kYXItdGV4dC1zZWNvbmRhcnk6IHJnYmEoMCwgMCwgMCwgMC43MCk7XG4kY2FsZW5kYXItdGV4dC10ZXJ0aWFyeTogIzAwMDAwMDY2O1xuJGNhbGVuZGFyLWJhY2tncm91bmQ6ICMwMDAwMDAwODtcblxuLyogQWxpYXNlcyAgKi9cbiR0ZXh0LXRleHQtcHJpbWFyeTogJGNvbG9yLW5ldXRyYWwtODA7XG4kdGV4dC10ZXh0LXNlY29uZGFyeTogJGNvbG9yLW5ldXRyYWwtNjA7XG4kdGV4dC10ZXh0LXRlcnRpYXJ5OiAjNzg3QzgyO1xuJHRleHQtdGV4dC1oZWFkaW5nOiAkY29sb3ItbmV1dHJhbC05MDtcbiR0ZXh0LXRleHQtdGl0bGU6ICRjb2xvci1uZXV0cmFsLTEwMDtcbiRidXR0b25zLWJ1dHRvbi1wcmltYXJ5LWJhY2tncm91bmQ6ICRjb2xvci1icmFuZC1vcmFuZ2UtNTA7XG4kYnV0dG9ucy1idXR0b24tc2Vjb25kYXJ5LWJhY2tncm91bmQ6ICRjb2xvci1icmFuZC1ibHVlLTUwO1xuJGJ1dHRvbnMtYnV0dG9uLXRlcnRpYXJ5LWJhY2tncm91bmQ6ICRjb2xvci1uZXV0cmFsLTA7XG4kZmllbGRzLWZpZWxkLWJvcmRlcjogJGNvbG9yLW5ldXRyYWwtMTA7XG4kZmllbGQtYm9yZGVyLWVycm9yOiAkY29sb3ItdXRpbGl0eS1yZWQtNTA7XG4kc3VyZmFjZS1zdXJmYWNlLWJvcmRlcjogJGNvbG9yLW5ldXRyYWwtMTA7XG4kc3VyZmFjZS1zdXJmYWNlLWRpdmlkZXI6ICRjb2xvci1uZXV0cmFsLTU7XG4kYnV0dG9ucy1idXR0b24tcHJpbWFyeS1iYWNrZ3JvdW5kLS1ob3ZlcjogJGNvbG9yLWJyYW5kLW9yYW5nZS03MDtcbiRidXR0b25zLWJ1dHRvbi1zZWNvbmRhcnktYmFja2dyb3VuZC0taG92ZXI6ICRjb2xvci1icmFuZC1ibHVlLTcwO1xuJGJ1dHRvbnMtYnV0dG9uLXRlcnRpYXJ5LWJvcmRlcjogJGNvbG9yLW5ldXRyYWwtMzA7XG4kYnV0dG9ucy1idXR0b24tcHJpbWFyeS10ZXh0OiAkY29sb3ItdXRpbGl0eS13aGl0ZTtcbiRidXR0b25zLWJ1dHRvbi1zZWNvbmRhcnktdGV4dDogJGNvbG9yLXV0aWxpdHktd2hpdGU7XG4kYnV0dG9ucy1idXR0b24tdGVydGlhcnktdGV4dDogJGNvbG9yLW5ldXRyYWwtNjA7XG4kYnV0dG9ucy1idXR0b24tdGVydGlhcnktYm9yZGVyLS1ob3ZlcjogJGNvbG9yLW5ldXRyYWwtNjA7XG4kYnV0dG9ucy1idXR0b24tdGVydGlhcnktYmFja2dyb3VuZC0tLWhvdmVyOiAkY29sb3ItbmV1dHJhbC0zO1xuJGJ1dHRvbnMtYnV0dG9uLXRlcnRpYXJ5LXRleHQtLWhvdmVyOiAkY29sb3ItbmV1dHJhbC04MDtcbiRidXR0b25zLWJ1dHRvbi13cC1wcmltYXJ5LWJhY2tncm91bmQ6ICMyMjcxQjE7XG4kdGV4dC10ZXh0LXdoaXRlOiAkY29sb3ItdXRpbGl0eS13aGl0ZTtcbiR0ZXh0LXRleHQtbGluazogJGNvbG9yLWJyYW5kLWJsdWUtNTA7XG4kdGV4dC10ZXh0LXN1Y2Nlc3M6ICRjb2xvci11dGlsaXR5LWdyZWVuLTUwO1xuJHRleHQtdGV4dC1lcnJvcjogJGNvbG9yLXV0aWxpdHktcmVkLTUwO1xuJHRleHQtdGV4dC13YXJuaW5nOiAkY29sb3ItdXRpbGl0eS15ZWxsb3ctNTA7XG4kZmllbGRzLWZpZWxkLWJvcmRlci0tZm9jdXM6ICRjb2xvci1icmFuZC1ibHVlLTUwO1xuJGZpZWxkcy1maWVsZC1ib3JkZXItZXJyb3I6ICRjb2xvci11dGlsaXR5LXJlZC01MDtcbiRmaWVsZHMtZmllbGQtY2hvaWNlLW9mZjogJGNvbG9yLW5ldXRyYWwtMzA7XG4kZmllbGRzLWZpZWxkLWNob2ljZS1vbjogJGNvbG9yLWJyYW5kLWJsdWUtNTA7XG4kYmFkZ2VzLWJhZGdlLW9yYW5nZS10ZXh0OiAkY29sb3ItYnJhbmQtb3JhbmdlLTMwO1xuJGJhZGdlcy1iYWRnZS1vcmFuZ2UtYmFja2dyb3VuZDogJGNvbG9yLWJyYW5kLW9yYW5nZS0wO1xuJGJhZGdlcy1iYWRnZS1ibHVlLWJhY2tncm91bmQ6ICRjb2xvci1icmFuZC1ibHVlLWJyaWdodC0wO1xuJGJhZGdlcy1iYWRnZS1ibHVlLXRleHQ6ICRjb2xvci1icmFuZC1ibHVlLWJyaWdodC0zMDtcbiRiYWRnZXMtYmFkZ2UtZ3JlZW4tYmFja2dyb3VuZDogJGNvbG9yLXV0aWxpdHktZ3JlZW4tMDtcbiRiYWRnZXMtYmFkZ2UtZ3JlZW4tdGV4dDogJGNvbG9yLXV0aWxpdHktZ3JlZW4tNTA7XG4kYmFkZ2VzLWJhZGdlLXJlZC1iYWNrZ3JvdW5kOiAkY29sb3ItdXRpbGl0eS1yZWQtMDtcbiRiYWRnZXMtYmFkZ2UtcmVkLXRleHQ6ICRjb2xvci11dGlsaXR5LXJlZC0zMDtcbiRiYWRnZXMtYmFkZ2UtbmV1dHJhbC1iYWNrZ3JvdW5kOiAkY29sb3ItbmV1dHJhbC01O1xuJGJhZGdlcy1iYWRnZS1uZXV0cmFsLXRleHQ6ICRjb2xvci1uZXV0cmFsLTMwO1xuJHJhZGl1cy1yYWRpdXMtdGFibGU6ICRyYWRpdXMtbWQ7XG4kcmFkaXVzLXJhZGl1cy1idXR0b246ICRyYWRpdXMtbWQ7XG4kcmFkaXVzLXJhZGl1cy1maWVsZDogJHJhZGl1cy1tZDtcbiRyYWRpdXMtcmFkaXVzLWJhZGdlOiAkcmFkaXVzLXNtO1xuJHN1cmZhY2Utc3VyZmFjZS1ib3JkZXItcHJpbWFyeTogJGNvbG9yLWJyYW5kLW9yYW5nZS01MDtcbiRzdXJmYWNlLXN1cmZhY2UtYmFja2dyb3VuZDogJGNvbG9yLW5ldXRyYWwtMztcbiRzdXJmYWNlLXN1cmZhY2UtYmFja2dyb3VuZC13aGl0ZTogJGNvbG9yLXV0aWxpdHktd2hpdGU7XG4kdGV4dC10ZXh0LWljb246ICRjb2xvci1uZXV0cmFsLTIwO1xuJHRleHQtdGV4dC1pY29uLS1ob3ZlcjogJGNvbG9yLW5ldXRyYWwtNTA7XG4kc3VyZmFjZS1zdXJmYWNlLWJhY2tncm91bmQtbGlnaHQ6ICNGN0Y3Rjc7XG4kZmllbGRzLWZpZWxkLWNob2ljZS1vZmYtLWhvdmVyOiAkY29sb3ItbmV1dHJhbC01MDtcbiRmaWVsZHMtZmllbGQtY2hvaWNlLW9uLS1ob3ZlcjogJGNvbG9yLWJyYW5kLWJsdWUtNzA7XG4kV29yZFByZXNzLUZpZWxkLUJvcmRlcjogIzhDOEY5NDtcbiRXb3JkUHJlc3MtTGluazogIzA1NkFBQjtcblxuLy8gRm9udCBzaXplcy5cbiR0ZXh0LWZvbnQtc2l6ZS0yeHM6IDExcHg7XG4kdGV4dC1mb250LXNpemUteHM6IDEycHg7XG4kdGV4dC1mb250LXNpemUtc3M6IDEzcHg7XG4kdGV4dC1mb250LXNpemUtczogMTRweDtcbiR0ZXh0LWZvbnQtc2l6ZS1tOiAxNnB4O1xuJHRleHQtZm9udC1zaXplLWw6IDE4cHg7XG4kdGV4dC1mb250LXNpemUtbGw6IDIwcHg7XG4kdGV4dC1mb250LXNpemUtbGxsOiAyMnB4O1xuJHRleHQtZm9udC1zaXplLXhsOiAyNHB4O1xuJHRleHQtZm9udC1zaXplLXh4bDogMjhweDtcblxuLy8gVHJhbnNpdGlvbnMuXG4kdHJhbnNpdGlvbnMtdHJhbnNpdGlvbi1zbG93ZXN0OiAuNTBzO1xuJHRyYW5zaXRpb25zLXRyYW5zaXRpb24tc2xvd2VyOiAuNDBzO1xuJHRyYW5zaXRpb25zLXRyYW5zaXRpb24tc2xvdzogLjI1cztcbiR0cmFuc2l0aW9ucy10cmFuc2l0aW9uLW5vcm1hbDogLjE1cztcbiR0cmFuc2l0aW9ucy10cmFuc2l0aW9uLWZhc3Q6IC4wNXM7XG4iLCIuc3VnYXItY2FsZW5kYXJfX2Rpc3BsYXlfX2lubGluZS1mbGV4IHtcblx0ZGlzcGxheTogaW5saW5lLWZsZXg7XG59XG5cbi5zdWdhci1jYWxlbmRhcl9fYWxpZ24taXRlbXNfX2NlbnRlciB7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5zdWdhci1jYWxlbmRhcl9fZ2FwLTEwIHtcblx0Z2FwOiAxMHB4O1xufSIsIi8vIFNldHRpbmdzIOKGkiBFbWFpbHMuXG4vLyBUaGUgY29uZmlndXJhYmxlLWVtYWlsIGNhcmQgZ3JvdXBzIGFuZCBFbWFpbCBTdHlsaW5nIGNvbnRyb2xzLiBMYXlvdXQgbWF0Y2hlc1xuLy8gdGhlIEZpZ21hIGRlc2lnbiBhdFxuLy8gaHR0cHM6Ly93d3cuZmlnbWEuY29tL2Rlc2lnbi93M2F6ODNidFF2WHpWNFhQSlhQSEtTL1N1Z2FyLUNhbGVuZGFyLUV2ZW50cy0tLVBsdWdpbj9ub2RlLWlkPTEyMDA1LTU4MTVcbi8vIEBzaW5jZSAzLjE0LjBcblxuQGltcG9ydCBcImFkbWluL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIl91dGlsc1wiO1xuQGltcG9ydCBcInZlbmRvci9pbmNsdWRlLW1lZGlhXCI7XG5cbiNzdWdhci1jYWxlbmRhci1zZXR0aW5ncyBmb3JtID4gLnN1Ym1pdCB7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGdhcDogMTBweDtcblxuXHQuc3VnYXItY2FsZW5kYXItYnRuIHtcblx0XHRtYXJnaW46IDA7XG5cdH1cblxuXHQuc3VnYXItY2FsZW5kYXItc2V0dGluZ3MtZW1haWxzX19wcmV2aWV3LWJ1dHRvbiB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWJ1dHRvbiwgNHB4KTtcblx0XHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb21wb25lbnRzLWJ1dHRvbi10ZXJ0aWFyeS1ib3JkZXIsICM4QzhGOTQpO1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNvbXBvbmVudHMtYnV0dG9uLXRlcnRpYXJ5LWJhY2tncm91bmQsICNGN0Y3RjcpO1xuXG5cdFx0Y29sb3I6IHZhcigtLWNvbXBvbmVudHMtYnV0dG9uLXRlcnRpYXJ5LXRleHQsICM1MDU3NUUpICFpbXBvcnRhbnQ7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFxuXHRcdC8qIEJ1dHRvbnMvRGVmYXVsdCAqL1xuXHRcdGZvbnQtc2l6ZTogdmFyKC0tdHlwb2dyYXBoeS1mb250LXNpemUtMTQsIDE0cHgpO1xuXHRcdGZvbnQtc3R5bGU6IG5vcm1hbDtcblx0XHRmb250LXdlaWdodDogdmFyKC0tdHlwb2dyYXBoeS1mb250LXdlaWdodC1tZWRpdW0sIDUwMCk7XG5cdFx0bGluZS1oZWlnaHQ6IG5vcm1hbDtcblx0fVxuXG5cdEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc4MnB4KSB7XG5cdFx0YWxpZ24taXRlbXM6IHN0cmV0Y2g7XG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuXHRcdC5zdWdhci1jYWxlbmRhci1idG4ge1xuXHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0fVxuXHR9XG59XG5cbi5zdWdhci1jYWxlbmRhci1zZXR0aW5ncy1lbWFpbHMge1xuXG5cdCZfX2hlYWRpbmcge1xuXHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1uZXV0cmFsLTUsICRjb2xvci1uZXV0cmFsLTUpO1xuXHRcdHBhZGRpbmc6IDMwcHggMDtcblxuXHRcdGg0IHtcblx0XHRcdGNvbG9yOiB2YXIoLS10ZXh0LXRleHQtaGVhZGluZywgJHRleHQtdGV4dC1oZWFkaW5nKTtcblx0XHRcdGZvbnQtc3R5bGU6IG5vcm1hbDtcblx0XHRcdGxpbmUtaGVpZ2h0OiBub3JtYWw7XG5cdFx0XHRmb250LXNpemU6IHZhcigtLXR5cG9ncmFwaHktZm9udC1zaXplLTE4LCAxOHB4KTtcblx0XHRcdGZvbnQtd2VpZ2h0OiB2YXIoLS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0LW1lZGl1bSwgNTAwKTtcblx0XHRcdG1hcmdpbjogMDtcblx0XHR9XG5cblx0XHQuZGVzYyB7XG5cdFx0XHRjb2xvcjogdmFyKC0tdGV4dC10ZXh0LXByaW1hcnksICMyQzMzMzgpO1xuXHRcdFx0XG5cdFx0XHQvKiBQYWdlIERlc2NyaXB0aW9uICovXG5cdFx0XHRmb250LXNpemU6IHZhcigtLXR5cG9ncmFwaHktZm9udC1zaXplLTE0LCAxNHB4KTtcblx0XHRcdGZvbnQtc3R5bGU6IG5vcm1hbDtcblx0XHRcdGZvbnQtd2VpZ2h0OiB2YXIoLS10eXBvZ3JhcGh5LWZvbnQtd2VpZ2h0LXJlZ3VsYXIsIDQwMCk7XG5cdFx0XHRsaW5lLWhlaWdodDogdmFyKC0tdHlwb2dyYXBoeS1saW5lLWhlaWdodC0yMCwgMjBweCk7IC8qIDE0Mi44NTclICovXG5cdFx0fVxuXHR9XG5cblx0Jl9fZ3JvdXAge1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXN1cmZhY2Utc3VyZmFjZS1ib3JkZXIsICRzdXJmYWNlLXN1cmZhY2UtYm9yZGVyKTtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1zdXJmYWNlLXN1cmZhY2UtYmFja2dyb3VuZC13aGl0ZSwgJHN1cmZhY2Utc3VyZmFjZS1iYWNrZ3JvdW5kLXdoaXRlKTtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtdGFibGUsIDRweCk7XG5cdFx0bWF4LXdpZHRoOiA2MTBweDtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdG1hcmdpbi1ib3R0b206IDMwcHg7XG5cdH1cblxuXHQmX19yb3cge1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkY2RjZGU7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRnYXA6IDIwcHg7XG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRcdHBhZGRpbmc6IDIwcHg7XG5cblx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogMDtcblx0XHR9XG5cdH1cblxuXHQmX19yb3ctaW5mbyB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdGdhcDogNHB4O1xuXHRcdG1pbi13aWR0aDogMDtcblx0fVxuXG5cdCZfX3Jvdy10aXRsZSB7XG5cdFx0Y29sb3I6IHZhcigtLXRleHQtdGV4dC1wcmltYXJ5LCAjMkMzMzM4KTtcblx0XHRmb250LXNpemU6IHZhcigtLXR5cG9ncmFwaHktZm9udC1zaXplLTE0LCAxNHB4KTtcblx0XHRmb250LXN0eWxlOiBub3JtYWw7XG5cdFx0Zm9udC13ZWlnaHQ6IHZhcigtLXR5cG9ncmFwaHktZm9udC13ZWlnaHQtbWVkaXVtLCA1MDApO1xuXHRcdGxpbmUtaGVpZ2h0OiB2YXIoLS10eXBvZ3JhcGh5LWxpbmUtaGVpZ2h0LTIwLCAyMHB4KTsgLyogMTQyLjg1NyUgKi9cblx0fVxuXG5cdCZfX3Jvdy1kZXNjIHtcblx0XHRjb2xvcjogdmFyKC0tdGV4dC10ZXh0LXRlcnRpYXJ5LCAjNzg3QzgyKTtcblx0XHRmb250LXNpemU6IHZhcigtLXR5cG9ncmFwaHktZm9udC1zaXplLTEyLCAxMnB4KTtcblx0XHRmb250LXN0eWxlOiBub3JtYWw7XG5cdFx0Zm9udC13ZWlnaHQ6IHZhcigtLXR5cG9ncmFwaHktZm9udC13ZWlnaHQtcmVndWxhciwgNDAwKTtcblx0XHRsaW5lLWhlaWdodDogMTQwJTsgLyogMTYuOHB4ICovXG5cdH1cblxuXHQmX19yb3ctYWN0aW9ucyB7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtc2hyaW5rOiAwO1xuXHRcdGdhcDogMjBweDtcblx0fVxuXG5cdCZfX3Jvdy1lZGl0LFxuXHQmX19yb3ctaW5zdGFsbCB7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG5cdFx0Y29sb3I6IHZhcigtLXRleHQtdGV4dC1saW5rLCAjMjI3MUIxKTtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0bGVhZGluZy10cmltOiBib3RoO1xuXHRcdHRleHQtZWRnZTogY2FwO1xuXHRcdFxuXHRcdC8qIEJ1dHRvbnMvU21hbGwgKi9cblx0XHRmb250LXNpemU6IHZhcigtLXR5cG9ncmFwaHktZm9udC1zaXplLTEyLCAxMnB4KTtcblx0XHRmb250LXN0eWxlOiBub3JtYWw7XG5cdFx0Zm9udC13ZWlnaHQ6IHZhcigtLXR5cG9ncmFwaHktZm9udC13ZWlnaHQtbWVkaXVtLCA1MDApO1xuXHRcdGxpbmUtaGVpZ2h0OiBub3JtYWw7XG5cdH1cblxuXHQvLyBUaGUgcm93IGxheW91dCBzdXBwbGllcyBpdHMgb3duIHNwYWNpbmcsIHNvIHN1cHByZXNzIHRoZSB0b2dnbGUgY29udHJvbCdzXG5cdC8vIE9uL09mZiB0ZXh0IGxhYmVscy5cblx0Ly8gTk9URSBvbiB0aGUgc2VsZWN0b3Igc2hhcGU6IGl0IGRlbGliZXJhdGVseSBtaXJyb3JzIHRoZSBydWxlIGl0IG11c3QgYmVhdC5cblx0Ly8gYWRtaW4vX2Zvcm1zLnNjc3MgY29tcGlsZXMgdG9cblx0Ly8gICAuc3VnYXItY2FsZW5kYXItdG9nZ2xlLWNvbnRyb2wgaW5wdXQ6Y2hlY2tlZCB+IC5zdWdhci1jYWxlbmRhci10b2dnbGUtY29udHJvbC1zdGF0dXMtb25cblx0Ly8gICAgIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cdC8vIHdoaWNoIGlzIHNwZWNpZmljaXR5ICgwLDMsMSkuIEEgcGxhaW4gYC7igKZfX3Jvdy10b2dnbGUgLuKApi1zdGF0dXNgIGlzICgwLDIsMClcblx0Ly8gYW5kIGxvc2VzIHJlZ2FyZGxlc3Mgb2YgbG9hZCBvcmRlciwgbGVhdmluZyBhIHZpc2libGUgXCJPTlwiIGJlc2lkZSBldmVyeSByb3dcblx0Ly8gdG9nZ2xlLiBNYXRjaGluZyB0aGUgc2libGluZy1jb21iaW5hdG9yIHNoYXBlIHdpbnMgb3V0cmlnaHQuXG5cdCZfX3Jvdy10b2dnbGUgLnN1Z2FyLWNhbGVuZGFyLXRvZ2dsZS1jb250cm9sIGlucHV0IH4gLnN1Z2FyLWNhbGVuZGFyLXRvZ2dsZS1jb250cm9sLXN0YXR1cyB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5cdC8vIFNob3duIGJlc2lkZSB0aGUgZGlzYWJsZWQgdG9nZ2xlIG9mIGFuIGVtYWlsIHRoYXQgaGFzIG5vIHNlbmRlciB5ZXQuXG5cdCZfX3Jvdy1ub3RlIHtcblx0XHRjb2xvcjogIzY0Njk3MDtcblx0XHRmb250LXNpemU6IDEycHg7XG5cdFx0Zm9udC1zdHlsZTogaXRhbGljO1xuXHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdH1cblxuXHQvLyBUaGUgdXBncmFkZSBwcm9tcHQgc2hvd24gaW4gcGxhY2Ugb2YgRWRpdCArIHRvZ2dsZS4gT25seSBMaXRlIG1ha2VzIGl0XG5cdC8vIGludGVyYWN0aXZlIChFbWFpbHNMaXN0OjpwcmludF9wcm9fcHJvbXB0KCkgYWRkcyByb2xlPVwiYnV0dG9uXCIgYW5kIHRoZVxuXHQvLyBlZHVjYXRpb24tbW9kYWwgY2xhc3MgdGhlcmUpLCBzbyB0aGUgYWZmb3JkYW5jZXMgYXJlIHNjb3BlZCB0byB0aGF0IGNhc2Ug4oCUXG5cdC8vIGEgUHJvIHNpdGUncyBpbmVydCBiYWRnZSBtdXN0IG5vdCBhZHZlcnRpc2UgYSBjbGljayB0aGF0IGRvZXMgbm90aGluZy5cblx0Jl9fcHJvLXByb21wdCB7XG5cdFx0Ly8gQXMgaW5saW5lIGNvbnRlbnQgdGhlIGJhZGdlIGhhbmdzIG9uIHRoZSBwcm9tcHQncyB0ZXh0IGJhc2VsaW5lLCBhXG5cdFx0Ly8gY291cGxlIG9mIHBpeGVscyBiZWxvdyB0aGUgbGluZTsgZmxleCBjZW50ZXJzIGl0cyBib3ggZm9yIHJlYWwuXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRkaXNwbGF5OiBpbmxpbmUtZmxleDtcblxuXHRcdCYuc2NlLWxpdGUtZWR1Y2F0aW9uLW1vZGFsLWxpbmsge1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdFx0XHQuc3VnYXItY2FsZW5kYXJfX2JhZGdlX19wcm8tb25seSB7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHRcdFx0fVxuXG5cdFx0XHQmOmZvY3VzLXZpc2libGUge1xuXHRcdFx0XHRvdXRsaW5lOiAycHggc29saWQgIzIyNzFiMTtcblx0XHRcdFx0b3V0bGluZS1vZmZzZXQ6IDJweDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQmX19tb2Rlcm4tb25seVtoaWRkZW5dIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cblx0Jl9fYnJhbmRpbmcge1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0ZGlzcGxheTogaW5saW5lLWZsZXg7XG5cdFx0Ly8gVGhlIHN0YW5kYXJkIDMwcHggcm93IHNlcGFyYXRvciBtb3ZlcyB1cCBoZXJlOiBvbiB0aGUgcm93IGl0IHdvdWxkXG5cdFx0Ly8gaW5mbGF0ZSB0aGlzIGZsZXggY29udGFpbmVyIGFuZCBzaW5rIHRoZSBQUk8gYmFkZ2UgYmVsb3cgdGhlIGxpbmUuXG5cdFx0cGFkZGluZy1ib3R0b206IDMwcHg7XG5cblx0XHQvLyBUaGUgbGFiZWwgaXMgd2lkZXIgdGhhbiB0aGUgMTkwcHggdGhlIHNoYXJlZCBsYWJlbCBjb2x1bW4gYWxsb3dzLCBhbmRcblx0XHQvLyB0aGUgZGVzaWduIGtlZXBzIGl0IG9uIG9uZSBsaW5lOiBsZXQgaXQgc2l6ZSBpdHNlbGYgd2l0aCBhIDEwcHggZ2FwLFxuXHRcdC8vIG1pbi13aWR0aCAyMDBweCBzbyB0aGUgdG9nZ2xlIGxhbmRzIG9uIHRoZSBzZWN0aW9uJ3MgMjEwcHggZmllbGRcblx0XHQvLyBjb2x1bW4gKHNlZSAuc3VnYXItY2FsZW5kYXItc2V0dGluZ3MtZW1haWwtc3R5bGluZykgd2hlbiBpdCBmaXRzLlxuXHRcdC5zdWdhci1jYWxlbmRhci1zZXR0aW5nLXJvdyB7XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGdhcDogMTBweDtcblx0XHRcdHBhZGRpbmctYm90dG9tOiAwO1xuXHRcdH1cblxuXHRcdC5zdWdhci1jYWxlbmRhci1zZXR0aW5nLWxhYmVsIHtcblx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0bWluLXdpZHRoOiAyMDBweDtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0fVxuXG5cdFx0LnN1Z2FyLWNhbGVuZGFyLXNldHRpbmctZmllbGQge1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdH1cblxuXHRcdC8vIFRoZSAxMnB4IHRvcCBwYWRkaW5nIHNlYXRzIHRoZSBzd2l0Y2ggYWdhaW5zdCB0aGUgMzZweCBsYWJlbCBsaW5lIGluXG5cdFx0Ly8gdGhlIGRlZmF1bHQgZmxvYXQgbGF5b3V0OyBoZXJlIGZsZXggY2VudGVycyBpdCBmb3IgcmVhbCwgc28gdGhlXG5cdFx0Ly8gb25lLXNpZGVkIHBhZGRpbmcgb25seSBza2V3cyBpdC5cblx0XHQuc3VnYXItY2FsZW5kYXItdG9nZ2xlLWNvbnRyb2wge1xuXHRcdFx0cGFkZGluZy10b3A6IDA7XG5cdFx0fVxuXG5cdFx0Ly8gT24gTGl0ZSB0aGUgd2hvbGUgcm93IG9wZW5zIHRoZSB1cGdyYWRlIG1vZGFsLCBzbyBpdCByZWFkcyBhcyBvbmVcblx0XHQvLyBjb250cm9sLiBMYWJlbHMgZG8gbm90IGluaGVyaXQgdGhlIHBvaW50ZXI6IHRoZSBVQSBzdHlsZXNoZWV0IGdpdmVzXG5cdFx0Ly8gdGhlbSBgZGVmYXVsdGAsIGFuZCBhZG1pbi1hZGRvbnMuc2NzcyByZXNldHMgdGhlIGRpc2FibGVkIHRvZ2dsZSdzXG5cdFx0Ly8gbGFiZWxzIHRvIGBkZWZhdWx0YCB3aXRoIGFuIGBpbnB1dDpkaXNhYmxlZCB+YCBzaGFwZSB0aGlzIG11c3Qgb3V0cmFuay5cblx0XHQmLS1sb2NrZWQsXG5cdFx0Ji0tbG9ja2VkIC5zdWdhci1jYWxlbmRhci1zZXR0aW5nLWxhYmVsIGxhYmVsLFxuXHRcdCYtLWxvY2tlZCAuc3VnYXItY2FsZW5kYXItdG9nZ2xlLWNvbnRyb2wgaW5wdXQ6ZGlzYWJsZWQgfiBsYWJlbCB7XG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0fVxuXHR9XG59XG5cbi8vIFBlci1lbWFpbCBlZGl0IHNjcmVlbiwgcmVuZGVyZWQgYnkgRW1haWxFZGl0UGFnZS5cbi5zdWdhci1jYWxlbmRhci1zZXR0aW5ncy1lbWFpbHMtZWRpdCB7XG5cblx0Jl9faGVhZGluZyB7XG5cdFx0Zm9udC1zaXplOiAyMHB4O1xuXHRcdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdFx0bWFyZ2luOiAxMHB4IDAgMjRweDtcblx0fVxufVxuXG4uc3VnYXItY2FsZW5kYXItc2V0dGluZ3MtZW1haWwtc3R5bGluZyB7XG5cdG1hcmdpbi10b3A6IDMwcHg7XG5cblx0Ly8gVGhpcyBzZWN0aW9uJ3MgZmllbGQgY29sdW1ucyBzdGFydCBhdCAyMTBweCAoMjAwcHggbGFiZWwgKyAxMHB4IGdhcCwgdGhlXG5cdC8vIEZpZ21hIHNldHRpbmdzLWZpZWxkIGdlb21ldHJ5KSwgbGluaW5nIHVwIHdpdGggdGhlIGJyYW5kaW5nIHRvZ2dsZSB3aG9zZVxuXHQvLyBsYWJlbCBvdmVycnVucyB0aGUgc2hhcmVkIGNvbHVtbi4gRGlyZWN0IGNoaWxkcmVuIG9ubHkg4oCUIHRoZSBicmFuZGluZ1xuXHQvLyByb3cgKG5lc3RlZCBpbiBfX2JyYW5kaW5nKSBsYXlzIGl0c2VsZiBvdXQgd2l0aCBmbGV4IOKAlCBhbmQgbm90IHRoZVxuXHQvLyBoZWFkaW5nIHJvdywgd2hvc2UgZmllbGQgc3BhbnMgdGhlIGZ1bGwgd2lkdGguXG5cdEBpbmNsdWRlIG1lZGlhKFwiPj10YWJsZXRcIikge1xuXG5cdFx0PiAuc3VnYXItY2FsZW5kYXItc2V0dGluZy1yb3c6bm90KC5zdWdhci1jYWxlbmRhci1zZXR0aW5nLXJvdy1oZWFkaW5nKSAuc3VnYXItY2FsZW5kYXItc2V0dGluZy1maWVsZCB7XG5cdFx0XHRtYXJnaW4tbGVmdDogMjEwcHg7XG5cdFx0fVxuXHR9XG59XG5cbi5zdWdhci1jYWxlbmRhci1pbWFnZS1yYWRpby1ncm91cCB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtd3JhcDogd3JhcDtcblx0Z2FwOiAyMHB4O1xuXG5cdC8vIFRoZSBib3JkZXJlZCwgcm91bmRlZCwgZmlsbGVkIGJveCBpbiBGaWdtYSBpcyB0aGUgQVJUV09SSyBib3gsIGFuZCB0aGVcblx0Ly8gY2FwdGlvbiBzaXRzIGJlbG93IGl0IHdpdGggYSAxMnB4IGdhcCDigJQgc28gdGhlIGJvcmRlciwgYmFja2dyb3VuZCBhbmRcblx0Ly8gcmFkaXVzIGxpdmUgb24gYCZfX29wdGlvbi1pbWFnZWAsIG5vdCBvbiB0aGUgbGFiZWwgdGhhdCB3cmFwcyBib3RoLlxuXHQmX19vcHRpb24ge1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0Z2FwOiAxMnB4O1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0d2lkdGg6IDE1NXB4O1xuXG5cdFx0QGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcblx0XHRcdG1heC13aWR0aDogMTYwcHg7XG5cdFx0XHR3aWR0aDogY2FsYyg1MCUgLSAxMHB4KTtcblx0XHR9XG5cdH1cblxuXHQmX19pbnB1dCB7XG5cdFx0aGVpZ2h0OiAxcHg7XG5cdFx0b3BhY2l0eTogMDtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0d2lkdGg6IDFweDtcblx0fVxuXG5cdCZfX29wdGlvbi1pbWFnZSB7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRiYWNrZ3JvdW5kOiAjZjBmMGYxO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICNjM2M0Yzc7XG5cdFx0Ym9yZGVyLXJhZGl1czogNnB4O1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRoZWlnaHQ6IDE4MHB4O1xuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cblx0XHRpbWcge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdFx0fVxuXHR9XG5cblx0Ly8gVGhlc2UgZm91ciBydWxlcyBNVVNUIHN0YXkgaW4gdGhpcyBvcmRlciwgYXNjZW5kaW5nIGJ5IHNwZWNpZmljaXR5OlxuXHQvLyAoMCwxLDApIGJhc2UsICgwLDIsMCkgc2VsZWN0ZWQsICgwLDMsMCkgZm9jdXMsICgwLDQsMCkgaG92ZXIuIFN0eWxlbGludCdzXG5cdC8vIGBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5YCByZWplY3RzIGFueSBvdGhlciBvcmRlci4gVGhlIGA6bm90KCZfX29wdGlvbi0tc2VsZWN0ZWQpYFxuXHQvLyBvbiBob3ZlciBpcyB3aGF0IGtlZXBzIGEgc2VsZWN0ZWQgY2FyZCdzIG9yYW5nZSBib3JkZXIgd2hpbGUgdGhlIHBvaW50ZXIgaXNcblx0Ly8gb3ZlciBpdCDigJQgYW5kIGl0IG11c3QgYmUgd3JpdHRlbiB3aXRoIGAmYCwgbm90IGEgbGl0ZXJhbCBgLuKApl9fb3B0aW9uLS1zZWxlY3RlZGAsXG5cdC8vIG9yIGBzZWxlY3Rvci1jbGFzcy1wYXR0ZXJuYCBmaXJlcy5cblx0Ly8gMXB4IC0+IDJweCBib3JkZXJzIGRvIG5vdCBzaGlmdCB0aGUgbGF5b3V0OiB0aGUgYm94IGlzIGJvcmRlci1ib3ggd2l0aCBhXG5cdC8vIGZpeGVkIGhlaWdodCBhbmQgYSB3aWR0aCBzZXQgYnkgdGhlIHBhcmVudC5cblx0Jl9fb3B0aW9uLS1zZWxlY3RlZCAmX19vcHRpb24taW1hZ2Uge1xuXHRcdGJvcmRlcjogMnB4IHNvbGlkICNmZjg4NDU7XG5cdFx0Ym94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4wNyk7XG5cdH1cblxuXHQvLyBPdXRsaW5lLCBub3QgYm9yZGVyLWNvbG9yL2JveC1zaGFkb3c6IGZvY3VzIG11c3QgYmUgYWRkaXRpdmUgc28gaXQgY2FuIG5ldmVyXG5cdC8vIGVyYXNlIHRoZSBzZWxlY3RlZCB0cmVhdG1lbnQgYWJvdmUg4oCUIGEgZm9jdXNlZCwgc2VsZWN0ZWQgY2FyZCBrZWVwcyBpdHNcblx0Ly8gb3JhbmdlIGJvcmRlciBhbmQgc2hhZG93LCBwbHVzIHRoaXMgcmluZy4gS2V5ZWQgdG8gdGhlIHJhZGlvJ3Mgb3duXG5cdC8vIDpmb2N1cy12aXNpYmxlIChub3QgOmZvY3VzLXdpdGhpbiBvbiB0aGUgb3B0aW9uKSBzbyBhIG1vdXNlIGNsaWNrIHRoYXQgbW92ZXNcblx0Ly8gZm9jdXMgdG8gdGhlIHJhZGlvIGRvZXMgTk9UIHBhaW50IHRoZSByaW5nIOKAlCBvbmx5IGtleWJvYXJkIGZvY3VzIGRvZXMuXG5cdCZfX2lucHV0OmZvY3VzLXZpc2libGUgKyAmX19vcHRpb24taW1hZ2Uge1xuXHRcdG91dGxpbmU6IDJweCBzb2xpZCAjMjI3MWIxO1xuXHRcdG91dGxpbmUtb2Zmc2V0OiAycHg7XG5cdH1cblxuXHQmX19vcHRpb246bm90KCZfX29wdGlvbi0tc2VsZWN0ZWQpOmhvdmVyICZfX29wdGlvbi1pbWFnZSB7XG5cdFx0Ym9yZGVyOiAycHggc29saWQgIzUwNTc1ZTtcblx0XHRib3gtc2hhZG93OiAwIDJweCAycHggcmdiYSgwLCAwLCAwLCAwLjA3KTtcblx0fVxuXG5cdCZfX29wdGlvbi1sYWJlbCB7XG5cdFx0Y29sb3I6ICM1MDU3NWU7XG5cdFx0Zm9udC1zaXplOiAxNHB4O1xuXHRcdGZvbnQtd2VpZ2h0OiA0MDA7XG5cdH1cblxuXHQmX19vcHRpb24tLXNlbGVjdGVkICZfX29wdGlvbi1sYWJlbCB7XG5cdFx0Y29sb3I6ICMxZDIzMjc7XG5cdFx0Zm9udC13ZWlnaHQ6IDUwMDtcblx0fVxufVxuXG4uc3VnYXItY2FsZW5kYXItaW1hZ2UtdXBsb2FkIHtcblx0Ly8gVHdvIHN0YXJ0LWFsaWduZWQgY29sdW1uczogdGhlIHByZXZpZXcgc3BhbnMgYm90aCwgc28gaXQgc2l0cyBhbG9uZSBvbiB0aGVcblx0Ly8gZmlyc3Qgcm93IHdoaWxlIHRoZSBzaXplIHNlbGVjdCBhbmQgUmVtb3ZlIEltYWdlIHNoYXJlIHRoZSBzZWNvbmQuIEhpZGRlblxuXHQvLyBlbGVtZW50cyBhcmUgbm90IGdyaWQgaXRlbXMsIHNvIHRoZSBlbXB0eSBzdGF0ZSBpcyBqdXN0IHRoZSBVcGxvYWQgYnV0dG9uLlxuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRkaXNwbGF5OiBncmlkO1xuXHRnYXA6IDEwcHg7XG5cdGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWF4LWNvbnRlbnQgbWF4LWNvbnRlbnQ7XG5cdGp1c3RpZnktY29udGVudDogc3RhcnQ7XG5cblx0W2hpZGRlbl0ge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuXHRidXR0b24uc3VnYXItY2FsZW5kYXItaW1hZ2UtdXBsb2FkX191cGxvYWQge1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1idXR0b24sIDRweCk7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY29tcG9uZW50cy1idXR0b24tdGVydGlhcnktYm9yZGVyLCAjOEM4Rjk0KTtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jb21wb25lbnRzLWJ1dHRvbi10ZXJ0aWFyeS1iYWNrZ3JvdW5kLCAjRjdGN0Y3KTtcblxuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0aGVpZ2h0OiAzNnB4O1xuXHRcdHBhZGRpbmc6IDEwcHggdmFyKC0tcGFkZGluZy0xNiwgMTZweCk7XG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRnYXA6IHZhcigtLXNwYWNpbmctNSwgNXB4KTtcblxuXHRcdGNvbG9yOiB2YXIoLS1jb21wb25lbnRzLWJ1dHRvbi10ZXJ0aWFyeS10ZXh0LCAjNTA1NzVFKTtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0bGVhZGluZy10cmltOiBib3RoO1xuXHRcdHRleHQtZWRnZTogY2FwO1xuXHRcdFxuXHRcdC8qIEJ1dHRvbnMvRGVmYXVsdCAqL1xuXHRcdGZvbnQtc2l6ZTogdmFyKC0tdHlwb2dyYXBoeS1mb250LXNpemUtMTQsIDE0cHgpO1xuXHRcdGZvbnQtc3R5bGU6IG5vcm1hbDtcblx0XHRmb250LXdlaWdodDogdmFyKC0tdHlwb2dyYXBoeS1mb250LXdlaWdodC1tZWRpdW0sIDUwMCk7XG5cdFx0bGluZS1oZWlnaHQ6IG5vcm1hbDtcblxuXHRcdC8vICgwLDMsMSk6IHRoZSBgZGlzcGxheTogZmxleGAgYWJvdmUgb3V0cmFua3MgdGhlIHNoYXJlZCBgW2hpZGRlbl1gIHJ1bGVcblx0XHQvLyAoMCwyLDApLCB3aGljaCBsZWZ0IFVwbG9hZCB2aXNpYmxlIGJlc2lkZSBhIHNlbGVjdGVkIGltYWdlLlxuXHRcdCZbaGlkZGVuXSB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblx0fVxuXG5cdC8vIEZpZ21hIDExOTg5OjMxNTA6IHRoZSB0ZXJ0aWFyeSBidXR0b24gaW4gaXRzIGVycm9yIGNvbG9yd2F5LiBGaWdtYSBoYXMgbm9cblx0Ly8gaG92ZXIgc3RhdGU7IHRoZSB0ZXJ0aWFyeSBob3ZlciBiYWNrZ3JvdW5kIG90aGVyIFNDIGJ1dHRvbnMgdXNlIGZpbGxzIGluLlxuXHQvLyBgJiAmX19yZW1vdmVgIGtlZXBzIHRoZSBzZWxlY3RvciBgJmAtYmFzZWQgZm9yIHN0eWxlbGludCBhbmQgYXQgKDAsMiwwKSxcblx0Ly8gYWJvdmUgdGhlIGJhcmUgYFtoaWRkZW5dYCBydWxlLCBzbyBgJltoaWRkZW5dYCBiZWxvdyBzdGlsbCBoYXMgdG8gd2luLlxuXHQmICZfX3JlbW92ZSB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWJ1dHRvbiwgNHB4KTtcblx0XHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1maWVsZHMtZmllbGQtYm9yZGVyLWVycm9yLCAjRDYzNjM4KTtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jb21wb25lbnRzLWJ1dHRvbi10ZXJ0aWFyeS1iYWNrZ3JvdW5kLCAjRjdGN0Y3KTtcblxuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0aGVpZ2h0OiAzNnB4O1xuXHRcdHBhZGRpbmc6IDEwcHggdmFyKC0tcGFkZGluZy0xNiwgMTZweCk7XG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRnYXA6IHZhcigtLXNwYWNpbmctNSwgNXB4KTtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cblx0XHRjb2xvcjogdmFyKC0tdGV4dC10ZXh0LWVycm9yLCAjRDYzNjM4KTtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0XHQvKiBCdXR0b25zL0RlZmF1bHQgKi9cblx0XHRmb250LXNpemU6IHZhcigtLXR5cG9ncmFwaHktZm9udC1zaXplLTE0LCAxNHB4KTtcblx0XHRmb250LXN0eWxlOiBub3JtYWw7XG5cdFx0Zm9udC13ZWlnaHQ6IHZhcigtLXR5cG9ncmFwaHktZm9udC13ZWlnaHQtbWVkaXVtLCA1MDApO1xuXHRcdGxpbmUtaGVpZ2h0OiBub3JtYWw7XG5cblx0XHQvLyA6Zm9jdXMtdmlzaWJsZSwgbm90IDpmb2N1czogdGhlIG1lZGlhIGNhbGxiYWNrIGZvY3VzZXMgdGhpcyBidXR0b25cblx0XHQvLyBhZnRlciBhIHBpY2ssIGFuZCBtb3VzZSB1c2VycyBtdXN0IG5vdCBzZWUgYSBzdHVjayBob3Zlci5cblx0XHQmOmhvdmVyLFxuXHRcdCY6Zm9jdXMtdmlzaWJsZSB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1idXR0b25zLWJ1dHRvbi10ZXJ0aWFyeS1iYWNrZ3JvdW5kLS0taG92ZXIsICNGMEYwRjEpO1xuXHRcdH1cblxuXHRcdCZbaGlkZGVuXSB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblx0fVxuXG5cdC8vIEh1Z3MgdGhlIGltYWdlLCB3aGljaCBjYXJyaWVzIHRoZSBzZWxlY3RlZCBzaXplIGFzIGl0cyBgd2lkdGhgIGF0dHJpYnV0ZS5cblx0Jl9fcHJldmlldyB7XG5cdFx0YmFja2dyb3VuZDogI2ZmZjtcblx0XHRib3JkZXI6IDFweCBzb2xpZCAjYzNjNGM3O1xuXHRcdGJvcmRlci1yYWRpdXM6IDRweDtcblx0XHRncmlkLWNvbHVtbjogMSAvIC0xO1xuXHRcdGp1c3RpZnktc2VsZjogc3RhcnQ7XG5cdFx0cGFkZGluZzogMTBweDtcblx0fVxuXG5cdCZfX3RodW1iIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0bWF4LXdpZHRoOiAxMDAlO1xuXHR9XG5cblx0Ly8gT3V0cmFua3MgYC5zdWdhci1jYWxlbmRhci1zZXR0aW5nLXJvdyBzZWxlY3RgIGFuZCBpdHMgNDAwcHggd2lkdGguXG5cdCYgJl9fc2l6ZSBzZWxlY3Qge1xuXHRcdHdpZHRoOiAyMDBweDtcblx0fVxufVxuIiwiLy8gICAgIF8gICAgICAgICAgICBfICAgICAgICAgICBfICAgICAgICAgICAgICAgICAgICAgICAgICAgXyBfXG4vLyAgICAoXykgICAgICAgICAgfCB8ICAgICAgICAgfCB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgKF8pXG4vLyAgICAgXyBfIF9fICAgX19ffCB8XyAgIF8gIF9ffCB8IF9fXyAgIF8gX18gX19fICAgX19fICBfX3wgfF8gIF9fIF9cbi8vICAgIHwgfCAnXyBcXCAvIF9ffCB8IHwgfCB8LyBfYCB8LyBfIFxcIHwgJ18gYCBfIFxcIC8gXyBcXC8gX2AgfCB8LyBfYCB8XG4vLyAgICB8IHwgfCB8IHwgKF9ffCB8IHxffCB8IChffCB8ICBfXy8gfCB8IHwgfCB8IHwgIF9fLyAoX3wgfCB8IChffCB8XG4vLyAgICB8X3xffCB8X3xcXF9fX3xffFxcX18sX3xcXF9fLF98XFxfX198IHxffCB8X3wgfF98XFxfX198XFxfXyxffF98XFxfXyxffFxuLy9cbi8vICAgICAgU2ltcGxlLCBlbGVnYW50IGFuZCBtYWludGFpbmFibGUgbWVkaWEgcXVlcmllcyBpbiBTYXNzXG4vLyAgICAgICAgICAgICAgICAgICAgICAgIHYyLjAuMFxuLy9cbi8vICAgICAgICBodHRwczovL2VkdWFyZG9ib3VjYXMuZ2l0aHViLmlvL2luY2x1ZGUtbWVkaWFcbi8vXG4vLyAgICAgICAgIEF1dGhvcnM6IEVkdWFyZG8gQm91Y2FzIChAZWR1YXJkb2JvdWNhcylcbi8vICAgICAgICAgICAgICAgICAgS2l0dHkgR2lyYXVkZWwgKEBraXR0eWdpcmF1ZGVsKVxuLy9cbi8vICAgICAgVGhpcyBwcm9qZWN0IGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIGxpY2Vuc2VcbkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vL1xuLy8vIGluY2x1ZGUtbWVkaWEgbGlicmFyeSBwdWJsaWMgY29uZmlndXJhdGlvblxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vL1xuQHVzZSAnc2FzczptYXRoJztcbkB1c2UgJ3Nhc3M6bWFwJztcbkB1c2UgJ3Nhc3M6bGlzdCc7XG5AdXNlICdzYXNzOnN0cmluZyc7XG5AdXNlICdzYXNzOm1ldGEnO1xuXG4vLy9cbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBnbG9iYWwgYnJlYWtwb2ludHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIGJyZWFrcG9pbnQgd2l0aCB0aGUgbGFiZWwgYHBob25lYFxuLy8vICAkYnJlYWtwb2ludHM6ICgncGhvbmUnOiAzMjBweCk7XG4vLy9cbiRicmVha3BvaW50czogKFxuICAncGhvbmUnOiAzMjBweCxcbiAgJ3RhYmxldCc6IDc2OHB4LFxuICAnc21fbW9uaXRvcic6IDk5MnB4LFxuICAnZGVza3RvcCc6IDEwMjRweCxcbikgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIHN0YXRpYyBleHByZXNzaW9ucyBvciBtZWRpYSB0eXBlc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgbWVkaWEgdHlwZSAoc2NyZWVuKVxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJzogJ3NjcmVlbicpO1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzdGF0aWMgZXhwcmVzc2lvbiB3aXRoIGxvZ2ljYWwgZGlzanVuY3Rpb24gKE9SIG9wZXJhdG9yKVxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6IChcbi8vLyAgICAncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSdcbi8vLyAgKTtcbi8vL1xuJG1lZGlhLWV4cHJlc3Npb25zOiAoXG4gICdzY3JlZW4nOiAnc2NyZWVuJyxcbiAgJ3ByaW50JzogJ3ByaW50JyxcbiAgJ2hhbmRoZWxkJzogJ2hhbmRoZWxkJyxcbiAgJ2xhbmRzY2FwZSc6ICcob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxuICAncG9ydHJhaXQnOiAnKG9yaWVudGF0aW9uOiBwb3J0cmFpdCknLFxuICAncmV0aW5hMngnOlxuICAgICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpLCAobWluLXJlc29sdXRpb246IDJkcHB4KScsXG4gICdyZXRpbmEzeCc6XG4gICAgJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDMpLCAobWluLXJlc29sdXRpb246IDM1MGRwaSksIChtaW4tcmVzb2x1dGlvbjogM2RwcHgpJyxcbikgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIERlZmluZXMgYSBudW1iZXIgdG8gYmUgYWRkZWQgb3Igc3VidHJhY3RlZCBmcm9tIGVhY2ggdW5pdCB3aGVuIGRlY2xhcmluZyBicmVha3BvaW50cyB3aXRoIGV4Y2x1c2l2ZSBpbnRlcnZhbHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcGl4ZWxzIGlzIGRlZmluZWQgYXMgYDFgIGJ5IGRlZmF1bHRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4xMjhweCcpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMTI5cHgpIHt9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIGVtcyBpcyBkZWZpbmVkIGFzIGAwLjAxYCBieSBkZWZhdWx0XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MjBlbScpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMjAuMDFlbSkge31cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcmVtcyBpcyBkZWZpbmVkIGFzIGAwLjFgIGJ5IGRlZmF1bHQsIHRvIGJlIHVzZWQgd2l0aCBgZm9udC1zaXplOiA2Mi41JTtgXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+Mi4wcmVtJykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAyLjFyZW0pIHt9XG4vLy9cbiR1bml0LWludGVydmFsczogKFxuICAncHgnOiAxLFxuICAnZW0nOiAwLjAxLFxuICAncmVtJzogMC4xLFxuICAnJzogMCxcbikgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIERlZmluZXMgd2hldGhlciBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGF2YWlsYWJsZSwgdXNlZnVsIGZvciBjcmVhdGluZyBzZXBhcmF0ZSBzdHlsZXNoZWV0c1xuLy8vIGZvciBicm93c2VycyB0aGF0IGRvbid0IHN1cHBvcnQgbWVkaWEgcXVlcmllcy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBEaXNhYmxlcyBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIC5mb28ge1xuLy8vICAgIGNvbG9yOiB0b21hdG87XG4vLy8gIH1cbi8vL1xuJGltLW1lZGlhLXN1cHBvcnQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIFNlbGVjdHMgd2hpY2ggYnJlYWtwb2ludCB0byBlbXVsYXRlIHdoZW4gc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllcyBpcyBkaXNhYmxlZC4gTWVkaWEgcXVlcmllcyB0aGF0IHN0YXJ0IGF0IG9yXG4vLy8gaW50ZXJjZXB0IHRoZSBicmVha3BvaW50IHdpbGwgYmUgZGlzcGxheWVkLCBhbnkgb3RoZXJzIHdpbGwgYmUgaWdub3JlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50XG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIC5mb28ge1xuLy8vICAgIGNvbG9yOiB0b21hdG87XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBkb2VzIG5vdCBpbnRlcmNlcHQgdGhlIGRlc2t0b3AgYnJlYWtwb2ludFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAndGFibGV0Jztcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogTm8gb3V0cHV0ICovXG4vLy9cbiRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCcgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIFNlbGVjdHMgd2hpY2ggbWVkaWEgZXhwcmVzc2lvbnMgYXJlIGFsbG93ZWQgaW4gYW4gZXhwcmVzc2lvbiBmb3IgaXQgdG8gYmUgdXNlZCB3aGVuIG1lZGlhIHF1ZXJpZXNcbi8vLyBhcmUgbm90IHN1cHBvcnRlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGFuZCBjb250YWlucyBvbmx5IGFjY2VwdGVkIG1lZGlhIGV4cHJlc3Npb25zXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnc2NyZWVuJykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICAgLmZvbyB7XG4vLy8gICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYnV0IGNvbnRhaW5zIGEgbWVkaWEgZXhwcmVzc2lvbiB0aGF0IGlzIG5vdCBhY2NlcHRlZFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3JldGluYTJ4Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBObyBvdXRwdXQgKi9cbi8vL1xuJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicsICdwb3J0cmFpdCcsICdsYW5kc2NhcGUnKSAhZGVmYXVsdDtcblxuLy8vL1xuLy8vIENyb3NzLWVuZ2luZSBsb2dnaW5nIGVuZ2luZVxuLy8vIEBhdXRob3IgS2l0dHkgR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuLy8vXG4vLy8gTG9nIGEgbWVzc2FnZSBlaXRoZXIgd2l0aCBgQGVycm9yYCBpZiBzdXBwb3J0ZWRcbi8vLyBlbHNlIHdpdGggYEB3YXJuYCwgdXNpbmcgYGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpYFxuLy8vIHRvIGRldGVjdCBzdXBwb3J0LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcbi8vL1xuQGZ1bmN0aW9uIGltLWxvZygkbWVzc2FnZSkge1xuICBAaWYgbWV0YS5mZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKSB7XG4gICAgQGVycm9yICRtZXNzYWdlO1xuICB9IEBlbHNlIHtcbiAgICBAd2FybiAkbWVzc2FnZTtcbiAgICAkXzogbm9vcCgpO1xuICB9XG5cbiAgQHJldHVybiAkbWVzc2FnZTtcbn1cblxuLy8vXG4vLy8gV3JhcHBlciBtaXhpbiBmb3IgdGhlIGxvZyBmdW5jdGlvbiBzbyBpdCBjYW4gYmUgdXNlZCB3aXRoIGEgbW9yZSBmcmllbmRseVxuLy8vIEFQSSB0aGFuIGBAaWYgaW0tbG9nKCcuLicpIHt9YCBvciBgJF86IGltLWxvZygnLi4nKWAuIEJhc2ljYWxseSwgdXNlIHRoZSBmdW5jdGlvblxuLy8vIHdpdGhpbiBmdW5jdGlvbnMgYmVjYXVzZSBpdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluIGEgZnVuY3Rpb25cbi8vLyBhbmQgdXNlIHRoZSBtaXhpbiBldmVyeXdoZXJlIGVsc2UgYmVjYXVzZSBpdCdzIG11Y2ggbW9yZSBlbGVnYW50LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcbi8vL1xuQG1peGluIGxvZygkbWVzc2FnZSkge1xuICBAaWYgaW0tbG9nKCRtZXNzYWdlKSB7XG4gIH1cbn1cblxuLy8vXG4vLy8gRnVuY3Rpb24gd2l0aCBubyBgQHJldHVybmAgY2FsbGVkIG5leHQgdG8gYEB3YXJuYCBpbiBTYXNzIDMuM1xuLy8vIHRvIHRyaWdnZXIgYSBjb21waWxpbmcgZXJyb3IgYW5kIHN0b3AgdGhlIHByb2Nlc3MuXG4vLy9cbkBmdW5jdGlvbiBub29wKCkge1xufVxuXG4vLy9cbi8vLyBEZXRlcm1pbmVzIHdoZXRoZXIgYSBsaXN0IG9mIGNvbmRpdGlvbnMgaXMgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50LlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2xlYW59IC0gUmV0dXJucyB0cnVlIGlmIHRoZSBjb25kaXRpb25zIGFyZSBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnRcbi8vL1xuQGZ1bmN0aW9uIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pIHtcbiAgJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWU6IG1hcC5nZXQoJGJyZWFrcG9pbnRzLCAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludCk7XG5cbiAgQGlmIG5vdCAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSB7XG4gICAgQGlmIGltLWxvZygnYCN7JGltLW5vLW1lZGlhLWJyZWFrcG9pbnR9YCBpcyBub3QgYSB2YWxpZCBicmVha3BvaW50LicpIHtcbiAgICB9XG4gIH1cblxuICBAZWFjaCAkY29uZGl0aW9uIGluICRjb25kaXRpb25zIHtcbiAgICBAaWYgbm90IG1hcC5oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xuICAgICAgJG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkY29uZGl0aW9uKTtcbiAgICAgICRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xuICAgICAgJHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkY29uZGl0aW9uLCAkb3BlcmF0b3IpO1xuXG4gICAgICBAaWYgKCRwcmVmaXggPT0gJ21heCcgYW5kICR2YWx1ZSA8PSAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkgb3JcbiAgICAgICAgKCRwcmVmaXggPT0gJ21pbicgYW5kICR2YWx1ZSA+ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKVxuICAgICAge1xuICAgICAgICBAcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgbm90IGxpc3QuaW5kZXgoJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gdHJ1ZTtcbn1cblxuLy8vL1xuLy8vIFBhcnNpbmcgZW5naW5lXG4vLy8gQGF1dGhvciBLaXR0eSBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG4vLy9cbi8vLyBHZXQgb3BlcmF0b3Igb2YgYW4gZXhwcmVzc2lvblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IG9wZXJhdG9yIGZyb21cbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBBbnkgb2YgYD49YCwgYD5gLCBgPD1gLCBgPGAsIGDiiaVgLCBg4omkYFxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pIHtcbiAgQGVhY2ggJG9wZXJhdG9yIGluICgnPj0nLCAnPicsICc8PScsICc8JywgJ+KJpScsICfiiaQnKSB7XG4gICAgQGlmIHN0cmluZy5pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICAgICBAcmV0dXJuICRvcGVyYXRvcjtcbiAgICB9XG4gIH1cblxuICAvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXG4gIC8vIHJlbHkgb24gdGhlIGBpbS1sb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXG4gIC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxuICAvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxuICAvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGltLWxvZyguLikge31gIGluc3RlYWQuXG4gICRfOiBpbS1sb2coJ05vIG9wZXJhdG9yIGZvdW5kIGluIGAjeyRleHByZXNzaW9ufWAuJyk7XG59XG5cbi8vL1xuLy8vIEdldCBkaW1lbnNpb24gb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IGRpbWVuc2lvbiBmcm9tXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGB3aWR0aGAgb3IgYGhlaWdodGAgKG9yIHBvdGVudGlhbGx5IGFueXRoaW5nIGVsc2UpXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAkb3BlcmF0b3ItaW5kZXg6IHN0cmluZy5pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHBhcnNlZC1kaW1lbnNpb246IHN0cmluZy5zbGljZSgkZXhwcmVzc2lvbiwgMCwgJG9wZXJhdG9yLWluZGV4IC0gMSk7XG4gICRwYXJzZWQtZGltZW5zaW9uOiBzdHItdHJpbSgkcGFyc2VkLWRpbWVuc2lvbik7XG4gICRkaW1lbnNpb246ICd3aWR0aCc7XG5cbiAgQGlmIHN0cmluZy5sZW5ndGgoJHBhcnNlZC1kaW1lbnNpb24pID4gMCB7XG4gICAgJGRpbWVuc2lvbjogJHBhcnNlZC1kaW1lbnNpb247XG4gIH1cblxuICBAcmV0dXJuICRkaW1lbnNpb247XG59XG5cbi8vL1xuLy8vIEdldCBkaW1lbnNpb24gcHJlZml4IGJhc2VkIG9uIGFuIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3Jcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgbWluYCBvciBgbWF4YFxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcikge1xuICBAcmV0dXJuIGlmKGxpc3QuaW5kZXgoKCc8JywgJzw9JywgJ+KJpCcpLCAkb3BlcmF0b3IpLCAnbWF4JywgJ21pbicpO1xufVxuXG4vLy9cbi8vLyBHZXQgdmFsdWUgb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IHZhbHVlIGZyb21cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gQSBudW1lcmljIHZhbHVlXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICRvcGVyYXRvci1pbmRleDogc3RyaW5nLmluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkdmFsdWU6IHN0cmluZy5zbGljZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yLWluZGV4ICsgc3RyaW5nLmxlbmd0aCgkb3BlcmF0b3IpKTtcbiAgJHRyaW1tZWRWYWx1ZTogc3RyLXRyaW0oJHZhbHVlKTtcblxuICBAaWYgbWFwLmhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdHJpbW1lZFZhbHVlKSB7XG4gICAgJHZhbHVlOiBtYXAuZ2V0KCRicmVha3BvaW50cywgJHRyaW1tZWRWYWx1ZSk7XG4gIH0gQGVsc2Uge1xuICAgICR2YWx1ZTogdG8tbnVtYmVyKCR0cmltbWVkVmFsdWUpO1xuICB9XG5cbiAgJGludGVydmFsOiBtYXAuZ2V0KCR1bml0LWludGVydmFscywgbWF0aC51bml0KCR2YWx1ZSkpO1xuXG4gIEBpZiBub3QgJGludGVydmFsIHtcbiAgICAvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXG4gICAgLy8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcbiAgICAvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cbiAgICAvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxuICAgIC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cbiAgICAkXzogaW0tbG9nKCdVbmtub3duIHVuaXQgYCN7bWF0aC51bml0KCR2YWx1ZSl9YC4nKTtcbiAgfVxuXG4gIEBpZiAkb3BlcmF0b3IgPT0gJz4nIHtcbiAgICAkdmFsdWU6ICR2YWx1ZSArICRpbnRlcnZhbDtcbiAgfSBAZWxzZSBpZiAkb3BlcmF0b3IgPT0gJzwnIHtcbiAgICAkdmFsdWU6ICR2YWx1ZSAtICRpbnRlcnZhbDtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG4vLy9cbi8vLyBQYXJzZSBhbiBleHByZXNzaW9uIHRvIHJldHVybiBhIHZhbGlkIG1lZGlhLXF1ZXJ5IGV4cHJlc3Npb25cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gcGFyc2Vcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBWYWxpZCBtZWRpYSBxdWVyeVxuLy8vXG5AZnVuY3Rpb24gcGFyc2UtZXhwcmVzc2lvbigkZXhwcmVzc2lvbikge1xuICAvLyBJZiBpdCBpcyBwYXJ0IG9mICRtZWRpYS1leHByZXNzaW9ucywgaXQgaGFzIG5vIG9wZXJhdG9yXG4gIC8vIHRoZW4gdGhlcmUgaXMgbm8gbmVlZCB0byBnbyBhbnkgZnVydGhlciwganVzdCByZXR1cm4gdGhlIHZhbHVlXG4gIEBpZiBtYXAuaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKSB7XG4gICAgQHJldHVybiBtYXAuZ2V0KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pO1xuICB9XG5cbiAgJG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbik7XG4gICRkaW1lbnNpb246IGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XG4gICR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG5cbiAgQHJldHVybiAnKCN7JHByZWZpeH0tI3skZGltZW5zaW9ufTogI3skdmFsdWV9KSc7XG59XG5cbi8vL1xuLy8vIFNsaWNlIGAkbGlzdGAgYmV0d2VlbiBgJHN0YXJ0YCBhbmQgYCRlbmRgIGluZGV4ZXNcbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdCAtIExpc3QgdG8gc2xpY2Vcbi8vLyBAcGFyYW0ge051bWJlcn0gJHN0YXJ0IFsxXSAtIFN0YXJ0IGluZGV4XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRlbmQgW2xlbmd0aCgkbGlzdCldIC0gRW5kIGluZGV4XG4vLy9cbi8vLyBAcmV0dXJuIHtMaXN0fSBTbGljZWQgbGlzdFxuLy8vXG5AZnVuY3Rpb24gc2xpY2UoJGxpc3QsICRzdGFydDogMSwgJGVuZDogbGlzdC5sZW5ndGgoJGxpc3QpKSB7XG4gIEBpZiBsaXN0Lmxlbmd0aCgkbGlzdCkgPCAxIG9yICRzdGFydCA+ICRlbmQge1xuICAgIEByZXR1cm4gKCk7XG4gIH1cblxuICAkcmVzdWx0OiAoKTtcblxuICBAZm9yICRpIGZyb20gJHN0YXJ0IHRocm91Z2ggJGVuZCB7XG4gICAgJHJlc3VsdDogbGlzdC5hcHBlbmQoJHJlc3VsdCwgbGlzdC5udGgoJGxpc3QsICRpKSwgY29tbWEpO1xuICB9XG5cbiAgQHJldHVybiAkcmVzdWx0O1xufVxuXG4vLy8vXG4vLy8gU3RyaW5nIHRvIG51bWJlciBjb252ZXJ0ZXJcbi8vLyBAYXV0aG9yIEtpdHR5IEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cbi8vL1xuLy8vIENhc3RzIGEgc3RyaW5nIGludG8gYSBudW1iZXJcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nIHwgTnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBiZSBwYXJzZWRcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn1cbi8vL1xuXG5AZnVuY3Rpb24gdG8tbnVtYmVyKCR2YWx1ZSkge1xuICBAaWYgbWV0YS50eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9IEBlbHNlIGlmIG1ldGEudHlwZS1vZigkdmFsdWUpICE9ICdzdHJpbmcnIHtcbiAgICAkXzogaW0tbG9nKCdWYWx1ZSBmb3IgYHRvLW51bWJlcmAgc2hvdWxkIGJlIGEgbnVtYmVyIG9yIGEgc3RyaW5nLicpO1xuICB9XG5cbiAgJGZpcnN0LWNoYXJhY3Rlcjogc3RyaW5nLnNsaWNlKCR2YWx1ZSwgMSwgMSk7XG4gICRyZXN1bHQ6IDA7XG4gICRkaWdpdHM6IDA7XG4gICRtaW51czogKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKTtcbiAgJG51bWJlcnM6IChcbiAgICAnMCc6IDAsXG4gICAgJzEnOiAxLFxuICAgICcyJzogMixcbiAgICAnMyc6IDMsXG4gICAgJzQnOiA0LFxuICAgICc1JzogNSxcbiAgICAnNic6IDYsXG4gICAgJzcnOiA3LFxuICAgICc4JzogOCxcbiAgICAnOSc6IDksXG4gICk7XG5cbiAgLy8gUmVtb3ZlICsvLSBzaWduIGlmIHByZXNlbnQgYXQgZmlyc3QgY2hhcmFjdGVyXG4gIEBpZiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnKycgb3IgJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpIHtcbiAgICAkdmFsdWU6IHN0cmluZy5zbGljZSgkdmFsdWUsIDIpO1xuICB9XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBzdHJpbmcubGVuZ3RoKCR2YWx1ZSkge1xuICAgICRjaGFyYWN0ZXI6IHN0cmluZy5zbGljZSgkdmFsdWUsICRpLCAkaSk7XG5cbiAgICBAaWYgbm90KGxpc3QuaW5kZXgobWFwLmtleXMoJG51bWJlcnMpLCAkY2hhcmFjdGVyKSBvciAkY2hhcmFjdGVyID09ICcuJykge1xuICAgICAgQHJldHVybiB0by1sZW5ndGgoaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCksIHN0cmluZy5zbGljZSgkdmFsdWUsICRpKSk7XG4gICAgfVxuXG4gICAgQGlmICRjaGFyYWN0ZXIgPT0gJy4nIHtcbiAgICAgICRkaWdpdHM6IDE7XG4gICAgfSBAZWxzZSBpZiAkZGlnaXRzID09IDAge1xuICAgICAgJHJlc3VsdDogJHJlc3VsdCAqIDEwICsgbWFwLmdldCgkbnVtYmVycywgJGNoYXJhY3Rlcik7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkZGlnaXRzOiAkZGlnaXRzICogMTA7XG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgbWF0aC5kaXYobWFwLmdldCgkbnVtYmVycywgJGNoYXJhY3RlciksICRkaWdpdHMpO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCk7XG59XG5cbi8vL1xuLy8vIEFkZCBgJHVuaXRgIHRvIGAkdmFsdWVgXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYWRkIHVuaXQgdG9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHVuaXQgLSBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHVuaXRcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gLSBgJHZhbHVlYCBleHByZXNzZWQgaW4gYCR1bml0YFxuLy8vXG5AZnVuY3Rpb24gdG8tbGVuZ3RoKCR2YWx1ZSwgJHVuaXQpIHtcbiAgJHVuaXRzOiAoXG4gICAgJ3B4JzogMXB4LFxuICAgICdjbSc6IDFjbSxcbiAgICAnbW0nOiAxbW0sXG4gICAgJyUnOiAxJSxcbiAgICAnY2gnOiAxY2gsXG4gICAgJ3BjJzogMXBjLFxuICAgICdpbic6IDFpbixcbiAgICAnZW0nOiAxZW0sXG4gICAgJ3JlbSc6IDFyZW0sXG4gICAgJ3B0JzogMXB0LFxuICAgICdleCc6IDFleCxcbiAgICAndncnOiAxdncsXG4gICAgJ3ZoJzogMXZoLFxuICAgICd2bWluJzogMXZtaW4sXG4gICAgJ3ZtYXgnOiAxdm1heCxcbiAgKTtcblxuICBAaWYgbm90IGxpc3QuaW5kZXgobWFwLmtleXMoJHVuaXRzKSwgJHVuaXQpIHtcbiAgICAkXzogaW0tbG9nKCdJbnZhbGlkIHVuaXQgYCN7JHVuaXR9YC4nKTtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlICogbWFwLmdldCgkdW5pdHMsICR1bml0KTtcbn1cblxuLy8vL1xuLy8vIFN0cmluZyB0byBudW1iZXIgY29udmVydGVyXG4vLy8gQGF1dGhvciBKYWNrIE1jTmljb2xcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuLy8vXG4vLy8gVHJpbXMgYSBzdHJpbmcgb2YgbGVhZGluZyBhbmQgdHJhaWxpbmcgc3BhY2VzXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN0cmluZyAtIFZhbHVlIHRvIGJlIHRyaW1tZWRcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ31cbi8vL1xuXG5AZnVuY3Rpb24gc3RyLXRyaW0oJHN0cmluZykge1xuICBAaWYgKHN0ci1zbGljZSgkc3RyaW5nLCAxLCAxKSA9PSAnICcpIHtcbiAgICBAcmV0dXJuIHN0ci10cmltKHN0ci1zbGljZSgkc3RyaW5nLCAyKSk7XG4gIH0gQGVsc2UgaWYgKHN0ci1zbGljZSgkc3RyaW5nLCBzdHItbGVuZ3RoKCRzdHJpbmcpLCAtMSkgPT0gJyAnKSB7XG4gICAgQHJldHVybiBzdHItdHJpbShzdHItc2xpY2UoJHN0cmluZywgMSwgLTIpKTtcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiAkc3RyaW5nO1xuICB9XG59XG5cbi8vL1xuLy8vIFRoaXMgbWl4aW4gYWltcyBhdCByZWRlZmluaW5nIHRoZSBjb25maWd1cmF0aW9uIGp1c3QgZm9yIHRoZSBzY29wZSBvZlxuLy8vIHRoZSBjYWxsLiBJdCBpcyBoZWxwZnVsIHdoZW4gaGF2aW5nIGEgY29tcG9uZW50IG5lZWRpbmcgYW4gZXh0ZW5kZWRcbi8vLyBjb25maWd1cmF0aW9uIHN1Y2ggYXMgY3VzdG9tIGJyZWFrcG9pbnRzIChyZWZlcnJlZCB0byBhcyB0d2Vha3BvaW50cylcbi8vLyBmb3IgaW5zdGFuY2UuXG4vLy9cbi8vLyBAYXV0aG9yIEtpdHR5IEdpcmF1ZGVsXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrcG9pbnRzIFsoKV0gLSBNYXAgb2YgdHdlYWtwb2ludHMgdG8gYmUgbWVyZ2VkIHdpdGggYCRicmVha3BvaW50c2Bcbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zIFsoKV0gLSBNYXAgb2YgdHdlYWtlZCBtZWRpYSBleHByZXNzaW9ucyB0byBiZSBtZXJnZWQgd2l0aCBgJG1lZGlhLWV4cHJlc3Npb25gXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgYnJlYWtwb2ludHMgd2l0aCBhIHR3ZWFrcG9pbnRcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PWN1c3RvbScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBtZWRpYSBleHByZXNzaW9ucyB3aXRoIGEgY3VzdG9tIG9uZVxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCdhbGwnOiAnYWxsJykpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCBib3RoIGNvbmZpZ3VyYXRpb24gbWFwc1xuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpLCAoJ2FsbCc6ICdhbGwnKSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbkBtaXhpbiBtZWRpYS1jb250ZXh0KCR0d2Vha3BvaW50czogKCksICR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCkpIHtcbiAgLy8gU2F2ZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkZ2xvYmFsLWJyZWFrcG9pbnRzOiAkYnJlYWtwb2ludHM7XG4gICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnM6ICRtZWRpYS1leHByZXNzaW9ucztcblxuICAvLyBVcGRhdGUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGJyZWFrcG9pbnRzOiBtYXAubWVyZ2UoJGJyZWFrcG9pbnRzLCAkdHdlYWtwb2ludHMpICFnbG9iYWw7XG4gICRtZWRpYS1leHByZXNzaW9uczogbWFwLm1lcmdlKCRtZWRpYS1leHByZXNzaW9ucywgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zKSAhZ2xvYmFsO1xuXG4gIEBjb250ZW50O1xuXG4gIC8vIFJlc3RvcmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGJyZWFrcG9pbnRzOiAkZ2xvYmFsLWJyZWFrcG9pbnRzICFnbG9iYWw7XG4gICRtZWRpYS1leHByZXNzaW9uczogJGdsb2JhbC1tZWRpYS1leHByZXNzaW9ucyAhZ2xvYmFsO1xufVxuXG4vLy8vXG4vLy8gaW5jbHVkZS1tZWRpYSBwdWJsaWMgZXhwb3NlZCBBUElcbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLy9cblxuLy8vXG4vLy8gR2VuZXJhdGVzIGEgbWVkaWEgcXVlcnkgYmFzZWQgb24gYSBsaXN0IG9mIGNvbmRpdGlvbnNcbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHNpbmdsZSBzZXQgYnJlYWtwb2ludFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCB0d28gc2V0IGJyZWFrcG9pbnRzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD10YWJsZXQnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGN1c3RvbSB2YWx1ZXNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzU4cHgnLCAnPDg1MHB4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBzZXQgYnJlYWtwb2ludHMgd2l0aCBjdXN0b20gdmFsdWVzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcsICc8PTEzNTBweCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzdGF0aWMgZXhwcmVzc2lvblxuLy8vICBAaW5jbHVkZSBtZWRpYSgncmV0aW5hMngnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBNaXhpbmcgZXZlcnl0aGluZ1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNTBweCcsICc8dGFibGV0JywgJ3JldGluYTN4JykgeyB9XG4vLy9cbkBtaXhpbiBtZWRpYSgkY29uZGl0aW9ucy4uLikge1xuICBAaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsaXN0Lmxlbmd0aCgkY29uZGl0aW9ucykgPT0gMCkgb3JcbiAgICAobm90ICRpbS1tZWRpYS1zdXBwb3J0IGFuZCBpbS1pbnRlcmNlcHRzLXN0YXRpYy1icmVha3BvaW50KCRjb25kaXRpb25zLi4uKSlcbiAge1xuICAgIEBjb250ZW50O1xuICB9IEBlbHNlIGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGlzdC5sZW5ndGgoJGNvbmRpdGlvbnMpID4gMCkge1xuICAgIEBtZWRpYSAje3N0cmluZy51bnF1b3RlKHBhcnNlLWV4cHJlc3Npb24obGlzdC5udGgoJGNvbmRpdGlvbnMsIDEpKSl9IHtcbiAgICAgIC8vIFJlY3Vyc2l2ZSBjYWxsXG4gICAgICAkc2xpY2VkLWNvbmRpdGlvbnM6IHNsaWNlKCRjb25kaXRpb25zLCAyKTtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRzbGljZWQtY29uZGl0aW9ucy4uLikge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ== */
