@charset "UTF-8";
/* Colors */
/* even rows in list or tables, subtle shade of $c-bg-high */
/* Primary: blue */
/* text over primary background */
/* Secondary: green */
/* text over secondary background */
/* Accent: orange */
/* text over accent background */
/* Brag: gold */
/* text over brag background */
/* Error: red */
/* text over brag background */
/* Good: green */
/* Warn: orange */
/* Bad: red */
/* Fancy: pink */
/* text over brag background */
/* Borders */
/* Shadows */
/* Custom */
/* Common imports for all CSS modules */
/* Widths */
/* Heights */
/* Orientations */
/* Capabilities */
/* Aliases */
/* Uniboard: keep the same page layout accross pages */
/* when the width is appropriate for col1, but landscape prevents it */
/* atm only chrome supports min-content, max-content */
.piece-letter .tview2 move, .tview2 .piece-letter move, .piece-letter .pv_box .pv span, .pv_box .pv .piece-letter span, .piece-letter .explorer-box .moves td:first-child, .explorer-box .moves .piece-letter td:first-child, .piece-letter .explorer-box .tablebase td:first-child, .explorer-box .tablebase .piece-letter td:first-child, .piece-letter .analyse__fork move, .analyse__fork .piece-letter move, .piece-letter #analyse-cm .title, #analyse-cm .piece-letter .title, .tview2 glyph, .analyse__fork glyph {
  font-family: 'Noto Sans';
}

.tview2 eval, .tview2 comment .by, .ceval .engine .cloud, .tabs-horiz span, .slist thead, .mchat__tab, .mchat__messages a:not(.user-link), .analyse__fork eval, .study__members .add, .study__player .analyse__clock, .study__topics {
  font-family: 'Roboto';
}

.tview2 move, .pv_box .pv span, .explorer-box .moves td:first-child, .explorer-box .tablebase td:first-child, .analyse__fork move, #analyse-cm .title {
  font-family: 'Noto Chess', 'Noto Sans';
}

/* text printed directly on the page background deserves special treatment (transp theme) */
.tabs-horiz, .chat__members, .analyse__controls .fbt, .study__buttons .mode {
  color: #5e5e5e;
}

.crosstable__users, .crosstable__score, .crosstable povs:hover, .cmn-toggle + label::after, .slist thead, #analyse-cm .title, .study__player, .study__metadata h2 {
  background: linear-gradient(to bottom, whitesmoke 0%, #ededed 100%);
  text-shadow: 0 1px 0 white;
}

.cmn-toggle:hover + label::after {
  background: linear-gradient(to bottom, #fafafa 0%, #f2f2f2 100%);
  text-shadow: 0 1px 0 white;
}

.ceval {
  background: linear-gradient(to bottom, whitesmoke 0%, #ededed 100%);
}

.pocket piece::after {
  box-shadow: 0 3px 4px rgba(0, 0, 0, 0.15) inset;
}

.pocket piece::after {
  background: #bd111f;
  color: #fff;
  text-shadow: 1px 1px 1px white !important;
}

#trainer group.radio input:checked + label {
  background: #0456bc;
}

#modal-wrap, .variant-racingKings .cg-wrap.cg-wrap cg-container::before, #analyse-cm, .study-desc .contrib {
  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22);
}

.board-editor__tools .actions .button:hover {
  box-shadow: 0 4px 10px 0px rgba(0, 0, 0, 0.225);
}

.fbt {
  background: none;
  border: none;
  outline: none;
  color: #4d4d4d;
}

.mchat__tab input {
  -webkit-appearance: none;
  background: white;
  border: 1px solid #e3e3e3;
  display: inline-block;
  padding: .5em;
}

.mchat__tab input:checked {
  background: #0456bc;
  border-color: #0456bc;
}

.cmn-toggle:focus + label::before, .cmn-toggle:hover + label::before {
  box-shadow: 0 0 12px #787878;
}

.tview2 move, .ceval help,
.ceval .engine, .context-streamer, .mchat__tab {
  white-space: nowrap;
  overflow: hidden;
}

.tview2 comment .by, .pv_box .pv, .mchat__tab span {
  white-space: nowrap;
}

.tview2-column > interrupt > comment, .mchat__messages, .study__chapters h3, .study__comment .text {
  overflow-wrap: break-word;
  word-break: break-word;
}

.tview2 comment .by, .pv_box .pv, .mchat__tab span, .crosstable__users, .explorer-box .games td span, .study__members .user-link, .study__invite .users .button, .study__metadata h2 .name {
  overflow: hidden;
  text-overflow: ellipsis;
}

.pocket-c2, .board-editor .spare .no-square div {
  position: relative;
  display: block;
  height: 0;
  padding-bottom: 100%;
  width: 100%;
}

.study-desc .embed {
  position: relative;
  display: block;
  height: 0;
  padding-bottom: 56.25%;
  /* 16/9 */
  width: 100%;
}

.study-desc .embed > * {
  border: none;
}

.flash__content::before, .flash-warning .flash__content::before, .flash-failure .flash__content::before {
  font-size: 1.2em;
  vertical-align: middle;
  font-family: 'lichess';
  font-style: normal;
  font-weight: normal;
  text-transform: none;
  speak: none;
  content: attr(data-icon);
  opacity: 0.9;
}

#modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  background: rgba(0, 0, 0, 0.6);
  z-index: 109;
}

.explorer-box .overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
}

.study-desc .embed > *, #promotion-choice {
  position: absolute;
  width: 100%;
  height: 100%;
}

.tview2-column {
  display: flex;
  flex-flow: row wrap;
}

#modal-overlay, .ceval .switch, .analyse__fork, .analyse__fork move, .study__chapters act, .study__members act, .study__chapters > div > span, .study__members .status, .study__members m-config .role, .study__topics, .study__glyphs, .study__glyphs a::before, .study__multiboard .pager, .study__multiboard .now-playing .name {
  /* extends %flex-wrap */
  display: flex;
  flex-flow: row wrap;
  align-items: center;
}

.tabs-horiz, .context-streamer, #analyse-cm a, .study__members .left, .study__player .analyse__clock, .study__buttons .mode, .study__invite .info, .study__glyphs a {
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
}

.form-split, .form-actions, .study__members m-config, .board-editor__tools .metadata .castling div, .study__buttons, .study__invite .users, .study-desc-form .title, .study__multiboard .top {
  /* extends %flex-center */
  display: flex;
  flex-flow: row wrap;
  align-items: center;
  justify-content: space-between;
}

.study__chapters > div, .study__members > div, .study__player, .study__metadata h2, .study__multiboard .now-playing .player {
  /* extends %flex-center */
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  justify-content: space-between;
}

.study__share .downloads {
  /* extends %flex-center */
  display: flex;
  flex-flow: row wrap;
  align-items: center;
  justify-content: space-around;
}

#modal-wrap, .continue-with, .crosstable povs, .crosstable__users, .crosstable__score, .crosstable__matchup, .mchat, .mchat__content, .analyse__tools, .action-menu__tools > *, .training-box, .advice-summary, .board-editor__tools, .board-editor__tools .actions {
  display: flex;
  flex-flow: column;
}

.mchat__tab input, .crosstable, .mchat, .analyse__tools, .study__chapters, .study__members, .board-editor__tools .metadata, .study-desc, .study__metadata, .study__comment, .study__glyphs, .study__share, .study__multiboard, .study__server-eval, .study__message, .intro__text, #modal-wrap, .tview2-inline move.active, .tview2-inline move:hover, .ceval .engine .cloud, .flash__content, .pocket, .pocket piece::after, #analyse-cm, .board-editor .spare, .study__invite .info, .study__topics .topic, .study__multiboard .fbt, .study__multiboard .now-playing a {
  border-radius: 3px;
}

.crosstable, .mchat, .analyse__tools {
  overflow: hidden;
  /* helps with clipping background into border-radius */
}

.crosstable .sep, .pocket.usable piece:first-child:hover, .explorer-box .bar span:first-child, .explorer-box .config .choices span:first-child, .board-editor .spare .no-square.pointer {
  border-radius: 3px 0 0 3px;
}

.explorer-box .bar span:last-child, .explorer-box .config .choices span:last-child, .board-editor .spare .no-square.trash {
  border-radius: 0 3px 3px 0;
}

.mchat__tab, .study__player-top, .study__buttons .mode {
  border-radius: 3px 3px 0 0;
}

.analyse-controls .fbt, .context-streamer, .study__player-bot {
  border-radius: 0 0 3px 3px;
}

.study__chapters, .study__members, .board-editor__tools .metadata, .study-desc, .study__metadata, .study__comment, .study__glyphs, .study__share, .study__multiboard, .study__server-eval, .study__message, .intro__text, .crosstable, .mchat, .analyse__tools, #modal-wrap .close:hover, .context-streamer, .study__player, .study__comments #comment-text {
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
}

coords {
  /* handle hidden coords */
  /* handle inner coords */
  position: absolute;
  display: flex;
  pointer-events: none;
  user-select: none;
  color: #fff;
  text-shadow: 0 1px 2px #000;
  font-weight: bold;
  /* negate inner coords colors */
}

.coords-no coords {
  display: none;
}

coords {
  font-size: 8px;
}

@media (min-width: 320px) {
  coords {
    font-size: calc(8px + 4 * ((100vw - 320px) / 880));
  }
}

@media (min-width: 1200px) {
  coords {
    font-size: 12px;
  }
}

coords.ranks {
  flex-flow: column-reverse;
  top: 1px;
  right: 0;
  height: 100%;
  width: .8em;
}

coords.ranks.black {
  flex-flow: column;
}

coords.files {
  bottom: 0px;
  left: 0;
  text-align: left;
  flex-flow: row;
  width: 100%;
  height: 1.4em;
}

coords.files.black {
  flex-flow: row-reverse;
}

coords.files coord {
  padding-left: 4px;
}

coords coord {
  flex: 1 1 auto;
}

coords .is3d .cg-wrap coords coord {
  color: #fff !important;
  text-shadow: 0 1px 2px #000 !important;
}

coords .is3d .cg-wrap coords.files {
  bottom: calc(1px - 2.5%);
}

coords .is3d .cg-wrap coords.files coord {
  padding-left: 3px;
}

:root {
  --cg-coord-color-white: #fff;
  --cg-coord-color-black: #fff;
  --cg-coord-shadow: 0 1px 2px #000;
}

coords {
  text-shadow: var(--cg-coord-shadow);
}

.orientation-white .files coord:nth-child(2n+1),
.orientation-white .ranks coord:nth-child(2n),
.orientation-black .files coord:nth-child(2n),
.orientation-black .ranks coord:nth-child(2n+1) {
  color: var(--cg-coord-color-white);
}

.orientation-white .files coord:nth-child(2n),
.orientation-white .ranks coord:nth-child(2n+1),
.orientation-black .files coord:nth-child(2n+1),
.orientation-black .ranks coord:nth-child(2n) {
  color: var(--cg-coord-color-black);
}

/* handle outer coords */
@media (min-width: 800px), (orientation: landscape) {
  .coords-out coords {
    text-shadow: none;
  }
  .coords-out coords.ranks {
    right: -15px;
    top: 0;
    width: 12px;
  }
  .coords-out coords.ranks coord {
    transform: translateY(42%);
  }
  .coords-out coords.files {
    bottom: -15px;
    left: 0;
    text-align: center;
  }
  .coords-out coords coord {
    color: #5e5e5e !important;
  }
}

body {
  --board-scale: 1;
}

@media (min-width: 800px) and (min-height: 500px) {
  body {
    --board-scale: calc((var(--zoom) / 100) * 0.7 + 0.3);
  }
}

@media (max-width: 799px) and (orientation: portrait) {
  body {
    --col1: 1;
  }
  .main-board cg-board {
    border-radius: 0;
  }
}

body ::-webkit-scrollbar,
body ::-webkit-scrollbar-corner {
  width: .5rem;
  background: white;
}

body ::-webkit-scrollbar-thumb {
  background: #dbdbdb;
}

body ::-webkit-scrollbar-thumb:hover,
body ::-webkit-scrollbar-thumb:active {
  background: #b3b3b3;
}

body.resizing {
  user-select: none;
}

cg-resize {
  display: none;
}

@media (min-width: 800px) {
  cg-resize {
    display: block;
    position: absolute;
    right: -9px;
    bottom: -9px;
    width: 22px;
    height: 22px;
    cursor: nwse-resize;
  }
  cg-resize::before, cg-resize::after {
    background: #000;
    content: '';
    position: absolute;
    width: 12px;
    height: 1px;
  }
  cg-resize::before {
    width: 5px;
    transform: translate(7px, 8px) rotate(-45deg);
  }
  cg-resize::after {
    transform: translate(1px, 6px) rotate(-45deg);
  }
  cg-resize:hover {
    border-radius: 50%;
    background: rgba(189, 17, 31, 0.5);
  }
  .resizing cg-resize {
    border-radius: 50%;
    background: rgba(98, 153, 36, 0.5);
  }
}

#modal-overlay {
  justify-content: center;
}

#modal-wrap {
  background: white;
  position: relative;
  padding: 2rem;
  text-align: center;
  max-width: 100vw;
  max-height: 96vh;
}

#modal-wrap > div {
  overflow: auto;
}

#modal-wrap .close {
  color: #4d4d4d;
  position: absolute;
  font-size: 16px;
  line-height: 27px;
  width: 32px;
  height: 32px;
  cursor: pointer;
  top: 0;
  right: 0;
  background: none;
}

@media (min-width: 800px) {
  #modal-wrap .close {
    top: -12px;
    right: -12px;
    background: white;
    border-radius: 50%;
  }
}

#modal-wrap .close:hover {
  background: #cc3333;
  color: #fff;
}

.continue-with > *:not(:first-child) {
  margin-top: 1em;
}

.color-icon.white::before {
  content: "K";
}

.color-icon.black::before {
  content: "J";
}

.color-icon.random::before {
  content: "l";
}

.crosstable__users {
  flex: 1 1 auto;
}

.crosstable {
  width: 100%;
  line-height: 1.9em;
  display: flex;
}

.crosstable fill,
.crosstable povs {
  background: white;
  flex: 1 1 auto;
}

.crosstable povs, .crosstable__users, .crosstable__score, .crosstable__matchup {
  text-align: center;
}

.crosstable__users {
  max-width: 40vw;
  text-align: left;
}

.crosstable__users a {
  padding-left: 2vmin;
}

.crosstable__score {
  flex: 0 0 auto;
  font-weight: bold;
}

.crosstable__score span {
  padding: 0 2vmin;
}

.crosstable__matchup {
  flex: 1 1 auto;
  font-weight: bold;
  background: #f2cfd2;
}

.crosstable povs a {
  color: #787878;
  flex: 0 0 50%;
}

.crosstable povs:hover a {
  opacity: 1 !important;
}

.crosstable povs a.loss {
  opacity: .2;
}

.crosstable povs.current a {
  background: #d15862;
  color: #fff;
  opacity: 1 !important;
}

.crosstable povs.new {
  border: #d9d9d9;
}

.crosstable povs a.loss {
  opacity: .2;
}

@media (max-width: 649px) {
  .crosstable povs {
    display: none;
  }
  .crosstable povs:nth-last-child(-n+12) {
    display: flex;
  }
}

.crosstable .sep {
  border-left: 1px solid #d9d9d9;
  margin-left: .3em;
}

.crosstable .win {
  font-weight: bold;
  color: #629924;
}

.crosstable .loss {
  color: #cc3333;
}

.crosstable .unavailable {
  margin-top: 40px;
  opacity: 0.7;
}

.fbt {
  text-transform: uppercase;
  line-height: 1.5;
  transition: all 150ms;
}

@media (hover: hover) {
  .fbt:hover:not(.disabled):not([disabled]) {
    background: #ed1c24;
    color: #fff;
  }
}

.fbt.active {
  background: #bd111f !important;
  color: #fff;
}

.fbt.disabled, .fbt[disabled] {
  opacity: 0.5;
  cursor: default;
}

.cmn-toggle {
  position: absolute;
  margin-left: -99999px;
}

.cmn-toggle + label {
  display: block;
  position: relative;
  cursor: pointer;
  outline: none;
  -webkit-user-select: none;
  -moz-user-select: none;
}

.cmn-toggle + label {
  padding: 1px;
  width: 40px;
  height: 24px;
  background-color: #d9d9d9;
  border-radius: 24px;
}

.cmn-toggle + label::before,
.cmn-toggle + label::after {
  display: block;
  position: absolute;
  top: 1px;
  left: 1px;
  bottom: 1px;
  content: "";
}

.cmn-toggle + label::before {
  right: 1px;
  background-color: #cc3333;
  border-radius: 24px;
}

.cmn-toggle--subtle + label::before {
  background-color: #bd111f;
}

.cmn-toggle:hover + label::before {
  transition: background 150ms;
}

.cmn-toggle + label::after {
  width: 22px;
  border-radius: 100%;
  box-shadow: 0 1px 2.5px rgba(0, 0, 0, 0.3);
}

.cmn-toggle:hover + label::after {
  transition: margin 150ms;
}

.cmn-toggle:checked + label::before {
  background-color: #629924;
}

.cmn-toggle:checked + label::after {
  margin-left: 16px;
}

input[type=range] {
  -webkit-appearance: none;
  background: none;
  border: 0;
}

input[type=range]:focus {
  outline: none;
}

input[type=range]::-webkit-slider-runnable-track {
  width: 100%;
  height: 1em;
  cursor: pointer;
  background: #dbdbdb;
  border-radius: .5em;
}

input[type=range]::-webkit-slider-thumb {
  background: linear-gradient(to bottom, whitesmoke 0%, #ededed 100%);
  text-shadow: 0 1px 0 white;
  border: 1px solid #b3b3b3;
  height: 1em;
  width: 1.5em;
  border-radius: 12px;
  background: white;
  cursor: pointer;
  -webkit-appearance: none;
  margin-top: -0.3px;
}

input[type=range]::-moz-range-track {
  width: 100%;
  height: 1em;
  cursor: pointer;
  background: #dbdbdb;
  border-radius: .5em;
}

input[type=range]::-moz-range-thumb {
  background: linear-gradient(to bottom, whitesmoke 0%, #ededed 100%);
  text-shadow: 0 1px 0 white;
  border: 1px solid #b3b3b3;
  height: 1em;
  width: 1.5em;
  border-radius: 12px;
  background: white;
  cursor: pointer;
}

input[type=range]::-ms-track {
  width: 100%;
  height: 1em;
  cursor: pointer;
  background: #dbdbdb;
  border-radius: .5em;
}

input[type=range]::-ms-fill-lower {
  background: rgba(191, 191, 191, 0.78);
  border-radius: 11.8px;
}

input[type=range]::-ms-fill-upper {
  background: rgba(214, 214, 214, 0.78);
  border-radius: 11.8px;
}

input[type=range]::-ms-thumb {
  background: linear-gradient(to bottom, whitesmoke 0%, #ededed 100%);
  text-shadow: 0 1px 0 white;
  border: 1px solid #b3b3b3;
  height: 1em;
  width: 1.5em;
  border-radius: 12px;
  background: white;
  cursor: pointer;
  border-color: transparent;
  color: transparent;
}

.tview2 move {
  display: inline-block;
  cursor: pointer;
}

.tview2 {
  white-space: normal;
}

.tview2-inline {
  padding: 7px 3px 7px 7px;
}

.tview2-column move {
  font-size: 1.092em;
  padding: 0 2px;
}

.tview2-inline move {
  padding: .25em .17em;
  white-space: nowrap;
  font-weight: bold;
}

.tview2 move.parent {
  color: #bd111f;
}

.tview2 comment a {
  vertical-align: top;
}

.tview2 move.current {
  border: 1px solid #bd111f;
}

.tview2 move.active {
  font-weight: bold;
  background: #f2cfd2;
}

.tview2 move.nongame {
  font-style: italic;
}

.tview2 move:not(.empty):hover,
.tview2 move:not(.empty):hover index,
.tview2 move:not(.empty):hover eval {
  background: #bd111f;
  color: #fff;
}

.tview2 move.empty {
  color: #b3b3b3;
  cursor: default;
}

.tview2 move index {
  font-size: 90%;
  color: #787878;
}

.tview2 move.context-menu {
  background: #bd111f;
  color: #fff;
}

.tview2 move.context-menu index {
  color: #fff;
}

.tview2-column move index {
  padding-left: 5px;
}

.tview2-column move index:first-child {
  padding-left: 0;
}

.tview2-inline move index {
  padding-right: .2em;
  line-height: 111.11%;
}

.tview2 line move {
  color: #4d4d4d;
}

.tview2-column > move {
  flex: 0 0 43.5%;
  display: flex;
  font-size: 1.185em;
  line-height: 1.75em;
  padding: 0 .3em 0 .5em;
}

.tview2-column > index + move {
  border-right: #d9d9d9;
}

.tview2 eval {
  flex: 3 0 auto;
  text-align: right;
  font-size: .8em;
  color: #787878;
}

.tview2 glyph {
  margin-left: .08em;
  vertical-align: bottom;
}

.tview2-column > move glyph {
  flex: 0 1 auto;
  text-align: center;
  overflow: hidden;
  font-size: .82em;
}

.tview2-column > index {
  flex: 0 0 13%;
  display: flex;
  justify-content: center;
  border-right: 1px solid #d9d9d9;
  background: #f7f6f5;
  line-height: 2.07em;
  color: #b3b3b3;
}

.tview2 > interrupt {
  font-size: 95%;
}

.tview2-column > interrupt {
  flex: 0 0 100%;
  background: #f7f6f5;
  border-top: 1px solid #d9d9d9;
  border-bottom: 1px solid #d9d9d9;
  max-width: 100%;
}

.tview2-column > interrupt > comment {
  display: block;
  padding: 3px 5px;
}

.tview2-inline comment {
  vertical-align: 45%;
  word-wrap: break-word;
  margin: 0 .2em 0 .1em;
  font-size: .9em;
}

.tview2 comment .by {
  display: inline-block;
  vertical-align: -.3em;
  font-size: .9em;
  opacity: 0.8;
  margin-right: .4em;
  max-width: 9em;
}

.tview2-column comment.white {
  border-left: 3px solid;
}

.tview2-column comment.black {
  border-right: 3px solid;
  overflow-x: hidden;
}

.tview2-column comment.inaccuracy {
  border-color: #56B4E9;
}

.tview2-column comment.mistake {
  border-color: #E69F00;
}

.tview2-column comment.blunder {
  border-color: #DF5353;
}

.tview2-column comment.undefined {
  border-color: #66558C;
}

.tview2 line comment {
  font-size: 90%;
}

.tview2-column line comment {
  display: inline;
  color: #787878;
  word-wrap: break-word;
  padding: 0 5px 0 3px;
  vertical-align: top;
}

.tview2 line comment .by {
  font-size: 1em;
  vertical-align: top;
}

.tview2 lines {
  display: block;
  margin-top: 2px;
  margin-left: 6px;
  margin-bottom: .8em;
  border-left: 2px solid #d9d9d9;
}

.tview2 > interrupt > lines {
  margin-left: 0px;
}

.tview2 lines.single {
  border-left: none;
}

.tview2 lines:last-child {
  margin-bottom: 0;
}

.tview2 line {
  display: block;
  padding-left: 7px;
}

.tview2-column line {
  margin: 2px 0;
}

.tview2 lines lines move {
  font-size: 13px;
}

.tview2 lines lines {
  margin-left: 1px;
}

.tview2 lines lines::before {
  content: ' ';
  border-top: 2px solid #d9d9d9;
  position: absolute;
  margin-left: -11px;
  width: 9px;
  height: 6px;
}

.tview2 lines line::before {
  margin-top: .65em;
  margin-left: -8px;
  content: ' ';
  border-top: 2px solid #d9d9d9;
  position: absolute;
  width: 8px;
  height: 6px;
}

.tview2 lines lines:last-child {
  margin-bottom: 0;
}

.tview2 inline {
  display: inline;
  font-style: italic;
  font-size: .9em;
  opacity: 0.8;
}

.tview2 inline::before,
.tview2 inline::after {
  vertical-align: .4em;
  opacity: 0.7;
  font-size: .9em;
}

.tview2 inline::before {
  content: '(';
  margin-left: 2px;
}

.tview2 inline::after {
  content: ')';
  margin-right: 2px;
}

.tview2-inline inline::before,
.tview2-inline inline::after {
  vertical-align: .7em;
}

.tview2 .conceal {
  opacity: 0.4;
}

.tview2 .hide {
  display: none;
}

.ceval {
  position: relative;
  display: flex;
  align-items: stretch;
}

.ceval.enabled {
  padding-top: 2px;
  height: 40px;
}

.ceval .switch {
  flex: 0 0 40px;
  margin-right: 8px;
}

.ceval pearl {
  flex: 0 0 75px;
  line-height: 38px;
  font-size: 1.6em;
  text-align: center;
  font-weight: bold;
}

.ceval help,
.ceval .engine {
  flex: 1 1 auto;
  font-size: 12px;
  line-height: 16px;
  margin-top: 3px;
  color: #787878;
}

.ceval .engine .cloud {
  margin-left: 4px;
  background: #bd111f;
  color: #fff;
  padding: 1px 3px;
  text-transform: uppercase;
  font-size: 11px;
}

.ceval .engine .info {
  display: block;
  white-space: nowrap;
}

.ceval .engine .deeper {
  color: #bd111f;
  margin-left: 4px;
}

.ceval .engine .deeper::before {
  vertical-align: -2px;
}

.ceval .wasmx {
  margin-left: 5px;
  text-transform: uppercase;
  color: #629924;
}

.ceval .asmjs, .ceval .wasm {
  margin-left: 5px;
  text-transform: uppercase;
}

.ceval .bar {
  position: absolute;
  width: 100%;
  height: 3px;
  top: 0px;
}

@keyframes bar-anim {
  from {
    background-position: 0 0;
  }
  to {
    background-position: 100000px 0;
  }
}

.ceval .bar span {
  display: block;
  height: 3px;
  width: 0;
  background: #bd111f;
  transition: width 1s;
}

.ceval .bar span.threat {
  background: #cc3333;
}

.ceval.computing .bar span {
  background-image: url("../images/bar-highlight.png");
  animation: bar-anim 1000s linear infinite;
}

.ceval .show-threat {
  flex: 0 99 auto;
  line-height: 38px;
  color: #787878;
  font-size: .9em;
  padding-right: .5em;
  overflow: hidden;
}

.ceval .show-threat:hover:not(.hidden), .ceval .show-threat.active {
  color: #cc3333;
}

.ceval .show-threat.hidden {
  opacity: 0.3;
  cursor: default;
}

.pv_box {
  background: white;
  font-size: 13px;
}

.pv_box .pv {
  height: 2em;
  line-height: 2em;
  border-top: 1px solid #d9d9d9;
}

.pv_box .pv[data-uci]:hover {
  background: #e0ebd3;
  cursor: pointer;
}

.pv_box .pv strong {
  display: inline-block;
  width: 34px;
  text-align: center;
}

.pv_box .pv span {
  margin-left: 4px;
}

main {
  --gauge-gap: 8px;
}

@media (min-width: 320px) {
  main {
    --gauge-gap: calc(8px + 9 * ((100vw - 320px) / 880));
  }
}

@media (min-width: 1200px) {
  main {
    --gauge-gap: 17px;
  }
}

.eval-gauge {
  width: var(--gauge-gap);
  position: relative;
  background: #fff;
  overflow: hidden;
}

@media (max-width: 799px) and (orientation: portrait) {
  .eval-gauge {
    display: none;
  }
}

.eval-gauge.reverse {
  transform: rotateX(180deg);
}

.eval-gauge::after {
  content: '';
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.7) inset;
}

.eval-gauge tick {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  border-bottom: 2px ridge #eee;
  opacity: 0.4;
}

.eval-gauge tick.zero {
  top: 6px;
  opacity: 1;
  border-bottom: 7px solid rgba(189, 17, 31, 0.4);
  margin-top: -3px;
}

.eval-gauge .black {
  width: 100%;
  height: 50%;
  background: #888;
  transition: height 1s;
}

.analyse-controls {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  font-size: 1.3rem;
}

.analyse-controls .fbt {
  text-align: center;
}

.analyse-controls .hidden {
  visibility: hidden;
}

.analyse-controls .jumps {
  display: flex;
}

.analyse-controls .jumps .fbt {
  flex: 1 1 30%;
}

.analyse-controls .jumps .fbt:first-child, .analyse-controls .jumps .fbt:last-child {
  flex: 1 1 20%;
  font-size: .7em;
}

#promotion-choice {
  background: rgba(255, 255, 255, 0.7);
  z-index: 205;
}

#promotion-choice square {
  cursor: pointer;
  border-radius: 50%;
  background-color: #b0b0b0;
  box-shadow: inset 0 0 25px 3px #808080;
  transition: all 150ms;
}

#promotion-choice piece {
  pointer-events: auto;
  opacity: 1;
  /* cancels blindfold */
}

.is2d #promotion-choice piece {
  width: 100%;
  height: 100%;
  transition: all 150ms;
  transform: scale(0.8);
}

#promotion-choice square:hover {
  box-shadow: inset 0 0 48px 8px #bd111f;
  border-radius: 0%;
}

.is2d #promotion-choice square:hover piece {
  transform: none;
}

.variant-racingKings .cg-wrap.cg-wrap cg-container::before {
  background: rgba(230, 230, 230, 0.2);
  width: 100%;
  height: 12.5%;
  content: '';
  position: absolute;
  left: 0;
  z-index: 1;
  pointer-events: none;
}

.variant-racingKings .cg-wrap.orientation-white cg-container::before {
  top: 0;
}

.variant-racingKings .cg-wrap.orientation-black cg-container::before {
  bottom: 0;
}

.variant-kingOfTheHill cg-container::before {
  width: 25%;
  height: 25%;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.7);
  background: rgba(230, 230, 230, 0.2);
  content: '';
  position: absolute;
  top: 37.5%;
  left: 37.5%;
  z-index: 1;
  pointer-events: none;
}

.cmn-toggle {
  position: absolute;
  margin-left: -99999px;
}

.cmn-toggle + label {
  display: block;
  position: relative;
  cursor: pointer;
  outline: none;
  -webkit-user-select: none;
  -moz-user-select: none;
}

.cmn-toggle + label {
  padding: 1px;
  width: 40px;
  height: 24px;
  background-color: #d9d9d9;
  border-radius: 24px;
}

.cmn-toggle + label::before,
.cmn-toggle + label::after {
  display: block;
  position: absolute;
  top: 1px;
  left: 1px;
  bottom: 1px;
  content: "";
}

.cmn-toggle + label::before {
  right: 1px;
  background-color: #cc3333;
  border-radius: 24px;
}

.cmn-toggle--subtle + label::before {
  background-color: #bd111f;
}

.cmn-toggle:hover + label::before {
  transition: background 150ms;
}

.cmn-toggle + label::after {
  width: 22px;
  border-radius: 100%;
  box-shadow: 0 1px 2.5px rgba(0, 0, 0, 0.3);
}

.cmn-toggle:hover + label::after {
  transition: margin 150ms;
}

.cmn-toggle:checked + label::before {
  background-color: #629924;
}

.cmn-toggle:checked + label::after {
  margin-left: 16px;
}

.flash {
  margin: 1em 0 2em 0;
}

.flash__content {
  padding: 1em 2em;
  background: #629924;
  color: #fff;
}

.flash__content::before {
  content: 'E';
  margin-right: 1em;
  font-size: 1.5em;
}

.flash__content a {
  color: #fff;
}

.flash-warning .flash__content {
  background: #d59020;
  color: #fff;
}

.flash-warning .flash__content::before {
  content: '';
}

.flash-failure .flash__content {
  background: #cc3333;
  color: #fff;
}

.flash-failure .flash__content::before {
  content: 'j';
}

.form-group {
  margin-bottom: 2rem;
}

.form-split {
  align-items: inherit;
}

.form-half {
  flex: 1 1 48%;
  min-width: 200px;
}

.form-third {
  flex: 1 1 31%;
}

@media (min-width: 500px) {
  .form-half,
  .form-third {
    flex-grow: 0;
  }
}

.form-label {
  font-weight: bold;
  display: inline-block;
  margin-bottom: .5rem;
}

.form-control {
  display: block;
  width: 100%;
  height: calc(2.7em + 2px);
  background-clip: padding-box;
}

textarea.form-control {
  height: auto;
}

.form-control:invalid,
.form-group.is-invalid .form-control {
  border-color: #cc3333;
}

.form3 .error,
.form-help {
  font-size: 90%;
  margin-top: .25rem;
}

.form3 .error {
  color: #cc3333;
}

.form-help {
  color: #787878;
}

.form-check div {
  display: flex;
}

.form-check-input {
  margin-right: .5rem;
}

.form-check .form-label {
  margin-bottom: 0;
  cursor: pointer;
}

.form-actions {
  margin: 1.5rem 0;
  padding-top: 1.5rem;
  border-top: 1px solid #d9d9d9;
}

.form-actions.single {
  justify-content: flex-end;
}

.form3 hr {
  margin-top: 1rem;
  margin-bottom: 1rem;
  border: 0;
  border-top: 1px solid #d9d9d9;
}

/* VENDORS */
.form3 .twitter-typeahead {
  width: 100%;
}

.tabs-horiz {
  justify-content: center;
  align-items: flex-end;
  border-bottom: 2px solid #d9d9d9;
}

@media (max-width: 499px) {
  .tabs-horiz {
    font-size: .9em;
  }
}

.tabs-horiz span {
  flex: 1 1 auto;
  text-align: center;
  padding: .5em .2em;
  cursor: pointer;
  position: relative;
  transition: color 0.25s;
  min-width: 15%;
  letter-spacing: -.5px;
}

@media (min-width: 500px) {
  .tabs-horiz span {
    letter-spacing: inherit;
  }
}

.tabs-horiz span::after {
  content: '';
  background: #bd111f;
  height: 2px;
  position: absolute;
  width: 96%;
  left: 2%;
  bottom: -2px;
  transition: all 0.25s;
  transform: scale(0);
}

.tabs-horiz span.active::after, .tabs-horiz span:hover::after {
  transform: scale(1);
}

.tabs-horiz span.active {
  color: #bd111f;
}

.tabs-horiz .unread {
  margin-left: .3em;
}

.slist {
  width: 100%;
  border-bottom: 1px solid #d9d9d9;
}

.slist thead th {
  border-top: 1px solid #d9d9d9;
  border-bottom: 1px solid #d9d9d9;
  padding: .5rem .8rem;
}

.slist thead th.large {
  font-size: 1.2rem;
}

.slist td {
  padding: 1rem;
}

.slist td .label {
  font-family: monospace;
  font-size: .8rem;
}

.slist tbody tr:nth-child(even) {
  background: #f7f6f5;
}

.slist td:first-child,
.slist th:first-child {
  padding-left: 1.5rem;
}

.slist-pad td:first-child,
.slist-pad th:first-child {
  padding-left: var(--box-padding);
}

.slist-pad td:last-child,
.slist-pad th:last-child {
  padding-right: var(--box-padding);
}

.slist-invert tbody tr:nth-child(odd) {
  background: #f7f6f5;
}

.slist-invert tbody tr:nth-child(even) {
  background: none;
}

.context-streamers {
  max-height: 20vh;
  overflow-y: auto;
}

.context-streamer {
  height: 2.2em;
  color: #fff !important;
  background: #a1c27c;
  transition: all 150ms;
}

.context-streamer::before {
  font-size: 1.3em;
  margin-left: .4em;
}

.context-streamer:hover {
  background: #82ad50;
}

body ::-webkit-scrollbar,
body ::-webkit-scrollbar-corner {
  width: .5rem;
  background: white;
}

body ::-webkit-scrollbar-thumb {
  background: #dbdbdb;
}

body ::-webkit-scrollbar-thumb:hover,
body ::-webkit-scrollbar-thumb:active {
  background: #b3b3b3;
}

.mchat__tabs {
  flex: 0 0 auto;
  display: flex;
}

.mchat__tab {
  flex: 1 1 auto;
  text-align: center;
  padding: .4em 10px;
  cursor: pointer;
  color: #5e5e5e;
  transition: all 150ms;
}

.mchat__tab:hover {
  background: #f5dbdd;
}

.mchat__tab-active {
  color: #4d4d4d;
  background: white !important;
}

.mchat__tab input {
  cursor: pointer;
  display: none;
}

.mchat__tab-active input {
  display: block;
}

.mchat__tab:last-child {
  border-right: none;
}

.mchat-optional .mchat__tab.discussion {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.chat__members {
  font-size: .9em;
  height: 100%;
  overflow: hidden;
}

.mchat__messages {
  flex: 1 1 auto;
  max-height: 50vh;
  overflow-y: auto;
  overflow-x: hidden;
  cursor: initial;
  font-size: .9em;
}

@media (min-width: 1260px) {
  .mchat__messages {
    max-height: none;
  }
}

.mchat__messages li {
  position: relative;
  padding: .5em 0 .5em 10px;
  line-height: 1.2em;
  overflow-y: hidden;
  user-select: text;
}

.mchat__messages .deleted {
  opacity: 0.5;
}

.mchat__messages .system {
  display: block;
  opacity: 0.8;
  font-style: italic;
  font-size: .9em;
  margin-left: 0;
  text-align: center;
}

.mchat__messages .color,
.mchat__messages .user-link {
  font-weight: bold;
  padding: 0;
  color: #787878;
  letter-spacing: -1px;
  margin-right: .4em;
}

.mchat__messages .utitle {
  margin-right: 3px;
}

.mchat__messages i {
  display: none;
  position: absolute;
  top: 5px;
  right: 0;
  cursor: pointer;
  margin-right: 3px;
  padding: 4px 5px;
  opacity: 0.7;
  color: #bd111f;
}

.mchat__messages i:hover {
  opacity: 1;
}

.mchat__messages li:hover i {
  display: block;
  text-shadow: 0 0 2px white, 0 0 5px white, 0 0 10px white;
}

.mchat__say {
  flex: 0 0 auto;
  border: 0;
  border-top: 1px solid #d9d9d9;
  border-radius: 0;
  padding: 3px 20px 3px 4px;
}

.mchat__say.whisper {
  color: #629924;
  font-weight: bold;
  font-style: italic;
}

@keyframes palantir-glowing {
  40% {
    background: none;
  }
  50% {
    background: #d0e0bd;
  }
  60% {
    background: #ebb8bc;
  }
  70% {
    background: none;
  }
}

.palantir {
  flex: 0 1 auto;
  animation: palantir-glowing 1.5s ease-in-out infinite;
  border-radius: 0 3px 0 0;
}

.palantir-slot {
  animation: none;
  opacity: .6;
}

.palantir-slot:hover {
  opacity: 1;
}

.palantir-off {
  animation: none;
}

.palantir-on {
  background: #629924;
  color: #fff;
  animation: none;
}

.palantir-on:hover {
  background: #cc3333 !important;
  color: #fff !important;
}

.palantir::after {
  top: 1px;
  left: 0;
  right: auto;
  background: none;
  box-shadow: none;
}

.mchat {
  grid-area: chat;
  justify-content: stretch;
  min-height: 15em;
}

.mchat__content {
  background: white;
  flex: 1 1 auto;
  overflow: hidden;
}

.mchat__content.note textarea {
  font-size: .9em;
  flex-grow: 1;
  border: none;
  background-color: transparent;
  line-height: 1.7em;
  outline: none;
  resize: none;
}

.pocket {
  display: flex;
  width: 62.5%;
}

@media (min-width: 800px), (orientation: landscape) {
  .pocket {
    width: 100%;
    box-shadow: 0 3px 5px rgba(0, 0, 0, 0.3) inset;
    background: #888;
  }
}

.pocket-c1 {
  flex: 0 0 20%;
  max-width: 10vmin;
}

.pocket piece {
  display: block;
  width: 100% !important;
  height: 100% !important;
  transition: all 150ms;
}

.pocket piece::after {
  content: attr(data-nb);
  bottom: 0;
  right: 0;
  position: absolute;
  line-height: .9em;
  padding: 3px .3em;
  font-weight: bold;
  font-size: 1.1em;
}

.pocket piece[data-nb='0'] {
  cursor: auto;
  opacity: 0.1;
}

.pocket piece[data-nb='0']::after {
  content: none;
}

.pocket piece.premove {
  background-color: #555;
}

.pocket.usable piece {
  cursor: pointer;
  pointer-events: auto;
}

.pocket.usable piece:hover {
  background-color: #aaa;
}

.blindfold .pocket:not(.usable) {
  opacity: 0;
}

.analyse__tools .sub-box, .action-menu {
  border-bottom: 1px solid #d9d9d9;
}

@media (min-width: 800px), (orientation: landscape) {
  .analyse__tools .sub-box, .action-menu {
    border-bottom: 3px solid #bd111f;
  }
}

body {
  /* prevents scroll bar flicker on page height changes */
  overflow-y: scroll;
}

#main-wrap {
  --main-max-width: calc(100vh - calc(var(--site-header-height) + var(--site-header-margin)) - 3rem);
}

@media (min-width: 800px), (orientation: landscape) {
  #main-wrap {
    --main-max-width: auto;
  }
}

.analyse {
  grid-area: main;
  display: grid;
  --meta-height: auto;
  grid-template-rows: auto auto minmax(20em, 30vh);
  grid-template-areas: 'board' 'controls' 'tools' 'side' 'acpl' 'under' 'chat' 'uchat';
}

.analyse__side {
  grid-area: side;
  justify-content: start;
  margin: 2vmin;
}

.analyse__board,
.analyse .intro {
  grid-area: board;
}

.analyse__tools {
  grid-area: tools;
}

.analyse__controls {
  grid-area: controls;
}

.analyse__underboard {
  grid-area: under;
}

@media (max-width: 799px) and (orientation: portrait) {
  .analyse__underboard {
    overflow: hidden;
  }
}

.analyse__acpl {
  grid-area: acpl;
}

.analyse .chat__members {
  grid-area: uchat;
}

.analyse .eval-gauge {
  grid-area: gauge;
  display: none;
}

@supports (height: max-content) {
  .analyse {
    --meta-height: max-content;
  }
}

@media (min-width: 800px), (orientation: landscape) {
  .analyse {
    grid-template-columns: minmax(calc(70vmin * var(--board-scale)), calc(100vh * var(--board-scale) - calc(var(--site-header-height) + var(--site-header-margin)) - 3rem)) var(--gauge-gap) minmax(240px, 400px);
    grid-template-rows: fit-content(0);
    grid-template-areas: 'board      gauge tools' 'under      .     controls' 'under      .     acpl' 'under      .     side' 'chat       .     side' 'uchat      .     side';
    grid-row-gap: 0;
  }
  .analyse__side,
  .analyse .chat__members,
  .analyse .mchat {
    margin: 2vmin 0 0 0;
  }
  .analyse__underboard {
    margin-top: 2vmin;
  }
  .analyse .eval-gauge {
    display: block;
  }
}

@media (max-width: 799px) and (orientation: landscape) {
  .analyse {
    grid-template-columns: minmax(calc(55vmin), calc(100vh - calc(var(--site-header-height) + var(--site-header-margin)) - 2vmin)) var(--gauge-gap) minmax(200px, 240px);
  }
}

@media (min-width: 1260px) {
  .analyse {
    grid-template-columns: minmax(230px, 20vw) 2vmin minmax(calc(70vmin * var(--board-scale)), calc(100vh * var(--board-scale) - calc(var(--site-header-height) + var(--site-header-margin)) - 3rem)) var(--gauge-gap) minmax(240px, 400px);
    grid-template-rows: var(--meta-height) fit-content(0) 2.5em auto;
    grid-template-areas: 'side    . board gauge tools' 'chat    . board gauge tools' 'uchat   . under .     controls' 'uchat   . under .     acpl';
  }
  .analyse__side {
    margin-top: 0;
  }
  .analyse .mchat {
    min-height: 10em;
  }
  .analyse .crosstable__users {
    flex: 7 1 auto;
  }
}

.analyse__tools {
  max-height: 100vh;
  /* magically fixes fit-content on safari 10 */
  background: white;
}

.analyse__tools .ceval {
  flex: 0 0 38px;
}

.analyse__tools .sub-box {
  user-select: none;
}

.analyse__tools .sub-box .title {
  font-size: .9rem;
  line-height: 1.9em;
  background: #c0d6a7;
  padding: 0 7px;
}

.analyse__moves {
  flex: 2 1 0;
  overflow-y: auto;
  overflow-x: hidden;
  border-top: 1px solid #d9d9d9;
  position: relative;
  /* required so line::before scrolls along the moves! */
}

.analyse__moves .result,
.analyse__moves .status {
  background: #f7f6f5;
  text-align: center;
}

.analyse__moves .result {
  border-top: 1px solid #d9d9d9;
  font-weight: bold;
  font-size: 1.2em;
  padding: 5px 0 3px 0;
}

.analyse__moves .status {
  font-size: 1em;
  font-style: italic;
  padding-bottom: 7px;
}

.analyse__controls {
  height: 3rem;
  align-items: stretch;
}

.analyse__controls div {
  display: flex;
  flex: 1 1 auto;
  align-items: stretch;
}

.analyse__controls .jumps {
  flex: 3 1 auto;
}

.analyse__controls .fbt {
  flex: 0 0 2.5rem;
}

.analyse__controls .active {
  margin-top: -3px;
  padding-top: 3px;
}

.analyse__controls ::before {
  vertical-align: middle;
}

.action-menu {
  flex: 1 1 0;
  display: flex;
  flex-flow: column;
  overflow: auto;
  padding: 2vmin;
}

.action-menu h2 {
  font-size: 1em;
  text-transform: uppercase;
  text-align: center;
  white-space: nowrap;
  margin: 2vmin 0 3px 0;
  display: table;
  padding: 0 10px;
}

.action-menu h2:before, .action-menu h2:after {
  border-top: 1px solid #d9d9d9;
  content: '';
  display: table-cell;
  position: relative;
  top: .5em;
  width: 45%;
}

.action-menu h2:before {
  right: 8px;
}

.action-menu h2:after {
  left: 8px;
}

.action-menu__tools {
  flex: 0 0 auto;
  display: flex;
  flex-flow: row wrap;
}

.action-menu__tools > * {
  flex: 0 0 50%;
  text-align: center;
  padding: 0;
  height: 75px;
  justify-content: center;
}

.action-menu__tools .button {
  color: #4d4d4d;
  text-transform: none;
  white-space: normal;
}

.action-menu__tools .button::before {
  display: block;
  font-size: 2em;
  line-height: 1em;
  margin-bottom: 5px;
}

.action-menu .autoplay {
  display: flex;
}

.action-menu .autoplay a {
  color: #787878;
  font-size: .9em;
  flex: 1 1 auto;
  padding: 7px 0;
  text-align: center;
}

.action-menu form.delete {
  text-align: right;
  margin-top: 6px;
}

.action-menu form.delete .button {
  display: inline-block;
  padding: 0 8px;
}

.action-menu form.delete .button::before {
  font-size: 1.2em;
}

.action-menu .setting {
  flex: 0 0 auto;
  margin-top: 2vmin;
  display: flex;
}

.action-menu .setting label {
  flex: 4 1 auto;
  cursor: pointer;
  white-space: nowrap;
}

.action-menu .setting input[type=range] {
  flex: 1 4 auto;
  padding: 0 1em;
  height: 1.6em;
  width: 100%;
}

.action-menu .setting .range_value {
  flex: 0 0 auto;
  display: block;
  text-align: right;
}

@media (max-width: 799px) and (orientation: portrait) {
  .action-menu .abset-inline {
    display: none;
  }
}

.explorer-box {
  position: relative;
  flex: 2.5 1 0px;
  white-space: nowrap;
  transition: all 150ms;
  transition-delay: 0.3s;
  overflow-y: scroll;
  font-size: .9em;
}

.explorer-box.reduced {
  flex: 0.3 3 0px;
}

.explorer-box.reduced:hover {
  flex: 1 2 0px;
}

.explorer-box .overlay {
  display: none;
}

.explorer-box.loading .overlay {
  display: block;
}

.explorer-box tbody {
  transition: all 150ms;
}

.explorer-box.loading tbody {
  opacity: 0.4;
}

.explorer-box .title span {
  display: block;
  margin-right: 1.9em;
  overflow: hidden;
  text-overflow: ellipsis;
  user-select: text;
}

.explorer-box .empty {
  display: flex;
  flex-flow: column;
  height: 100%;
}

.explorer-box .empty .message {
  text-align: center;
}

.explorer-box tr {
  transition: all 150ms;
}

.explorer-box tr:nth-child(even) {
  background: #f7f6f5;
}

.explorer-box tr:hover {
  background: #e0ebd3;
}

.explorer-box td {
  cursor: pointer;
  padding-left: 7px;
}

.explorer-box .moves td:first-child {
  line-height: 30px;
  padding-left: 7px;
}

.explorer-box .moves td:nth-child(2) {
  font-size: .75em;
  text-align: right;
}

.explorer-box .moves td:last-child {
  width: 100%;
  padding-right: 7px;
}

.explorer-box .bar span {
  text-align: center;
  display: inline-block;
  overflow: hidden;
  vertical-align: middle;
  border: 0 solid #d9d9d9;
  border-width: 1px 0;
  height: 16px;
  line-height: 14px;
  font-size: .9em;
}

.explorer-box .white {
  background: #fff;
  box-shadow: 0 -5px 7px rgba(0, 0, 0, 0.1) inset;
}

.explorer-box .draws,
.explorer-box .black {
  color: #fff;
  box-shadow: 0 5px 7px rgba(255, 255, 255, 0.2) inset;
}

.explorer-box .draws {
  background: #a0a0a0;
}

.explorer-box .black {
  background: #555;
  color: #ddd;
}

.explorer-box .bar span:first-child {
  border-left-width: 1px;
}

.explorer-box .bar span:last-child {
  border-right-width: 1px;
}

.explorer-box .games {
  width: 100%;
}

.explorer-box .games td {
  padding: 5px 0 5px 7px;
  max-width: 110px;
}

.explorer-box .games td span {
  display: block;
}

.explorer-box .games result {
  display: block;
  text-align: center;
  padding: 3px 5px;
  border-radius: 3px;
  font-size: .9em;
}

.explorer-box .game_menu {
  background: #629924;
  cursor: default;
  padding: 0;
}

.explorer-box .game_menu .game_title {
  text-align: center;
  color: #fff;
  margin: 3px 0 1px 0;
}

.explorer-box .game_menu .menu {
  display: flex;
  justify-content: space-between;
  text-transform: uppercase;
}

.explorer-box .game_menu .menu a {
  color: #fff;
  padding: 4px 8px;
}

.explorer-box .game_menu .menu a:hover {
  background: rgba(255, 255, 255, 0.2);
}

.explorer-box .tablebase {
  width: 100%;
}

.explorer-box .tablebase td:first-child {
  font-size: 14px;
  line-height: 30px;
  padding-left: 7px;
}

.explorer-box .tablebase td:last-child {
  padding-right: 7px;
  text-align: right;
}

.explorer-box .tablebase result {
  padding: 3px 5px;
  margin-left: 5px;
  border-radius: 3px;
  font-size: .9em;
}

.explorer-box .toconf {
  position: absolute;
  top: 0;
  right: 0;
  cursor: pointer;
  display: block;
  font-size: 1.2em;
  width: 1.5em;
  line-height: 1.5em;
  text-align: center;
  opacity: 0.8;
}

.explorer-box .toconf:hover {
  opacity: 1;
}

.explorer-box .message {
  text-align: center;
  font-style: italic;
  flex: 1 1 100%;
  display: flex;
  flex-flow: column;
  justify-content: center;
}

.explorer-box.reduced .message {
  justify-content: flex-start;
}

.explorer-box .message strong {
  font-weight: bold;
  margin: 1em 0;
}

.explorer-box:not(.reduced) .message h3,
.explorer-box.reduced:hover .message h3 {
  font-weight: bold;
}

.explorer-box .message p {
  white-space: normal;
  padding: 0 8px;
  margin: 0 0 8px 0;
}

.explorer-box.reduced .message p,
.explorer-box.reduced .message button {
  display: none;
}

.explorer-box.reduced:hover .message p,
.explorer-box.reduced:hover .message button {
  display: block;
}

.explorer-box .message button {
  margin: 0 30px;
}

.explorer-box .message.masters i {
  font-size: 40px;
  margin: 10px 0;
}

.explorer-box .config section {
  margin: 0.4em 2vmin 0 2vmin;
}

.explorer-box .config section.save {
  text-align: center;
  padding: 15px 0 10px 0;
}

.explorer-box .config label {
  font-weight: bold;
  display: block;
  line-height: 2em;
}

.explorer-box .config .choices {
  display: flex;
}

.explorer-box .config .choices span {
  flex-grow: 1;
  padding: 5px 0;
  text-align: center;
  cursor: pointer;
  transition: all 150ms;
  border: 1px solid #d9d9d9;
  border-width: 1px 0 1px 1px;
  text-transform: capitalize;
}

.explorer-box .config .choices span:last-child {
  border-right-width: 1px;
}

.explorer-box .config .choices span:hover {
  background: #fff;
}

.explorer-box .config .choices span.selected {
  background: #629924;
  color: #fff;
  text-shadow: 1px 0 0 rgba(0, 0, 0, 0.5);
  font-weight: bold;
  box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2) inset;
}

.training-box {
  flex: 1.5 1 0px;
}

.training-box .feedback {
  flex: 1 1 100%;
  display: flex;
  flex-flow: column;
  justify-content: center;
}

.training-box .progress {
  margin-top: 5px;
  opacity: 0.8;
  width: 100%;
  height: 4px;
  background: #dbdbdb;
}

.training-box .progress div {
  background: #629924;
  height: 4px;
  transition: width 0.5s;
  max-width: 100%;
}

.training-box .player {
  display: flex;
  align-items: center;
  margin-left: 10px;
}

.training-box .no-square {
  width: 64px;
  height: 64px;
  margin-right: 10px;
}

.is3d .training-box div.no-square {
  height: 82px;
}

.training-box piece {
  position: inherit;
  display: block;
  width: 100% !important;
  height: 100% !important;
}

.training-box .icon {
  display: block;
  width: 64px;
  height: 64px;
  margin-right: 10px;
  font-size: 50px;
  font-size: 64px;
  line-height: 64px;
  text-align: center;
}

.training-box .instruction > * {
  display: block;
}

.training-box .instruction > strong {
  font-weight: normal;
  font-size: 1.2em;
}

.training-box .choices {
  line-height: 1.6em;
  margin: 5px 0 -5px 0;
}

.training-box .choices a {
  display: block;
}

.practice-box {
  flex: 0 0 135px;
  user-select: none;
}

.practice-box .comment {
  flex: 0 0 30px;
  display: flex;
  align-items: stretch;
  background: #f7f6f5;
  border-top: 1px solid 1px solid #d9d9d9;
  white-space: nowrap;
  line-height: 30px;
}

.practice-box .progress div {
  background: #dbdbdb;
}

.practice-box.goodMove .progress div {
  background: #629924;
  color: #fff;
}

.practice-box.inaccuracy .title,
.practice-box.inaccuracy .progress div {
  background: #d59020;
  color: #fff;
}

.practice-box.mistake .title,
.practice-box.blunder .title,
.practice-box.mistake .progress div,
.practice-box.blunder .progress div {
  background: #cc3333;
  color: #fff;
}

.practice-box .comment .wait {
  padding-left: 15px;
}

.practice-box .verdict {
  font-weight: bold;
  margin-right: 10px;
  display: flex;
}

.practice-box .verdict::before {
  width: 30px;
  height: 100%;
  color: #fff;
  margin-right: 7px;
  text-align: center;
  font-size: 1.4em;
  font-weight: normal;
}

.practice-box.goodMove .verdict {
  color: #629924;
}

.practice-box.goodMove .verdict::before {
  background: #629924;
  content: '✓';
  font-size: 1.7em;
}

.practice-box.inaccuracy .verdict {
  color: #d59020;
}

.practice-box.inaccuracy .verdict::before {
  background: #d59020;
  content: '?';
}

.practice-box.mistake .verdict,
.practice-box.blunder .verdict {
  color: #cc3333;
}

.practice-box.mistake .verdict::before,
.practice-box.blunder .verdict::before {
  background: #cc3333;
  content: '✗';
}

.practice-box .comment move {
  cursor: pointer;
  margin-left: 5px;
  color: #bd111f;
  transition: 0.3s;
}

.analyse__fork {
  flex: 0 0 auto;
}

@media (max-width: 799px) and (orientation: portrait) {
  .analyse__fork {
    display: none;
  }
}

.analyse__fork move {
  background: #efc4c7;
  color: #1f1f1f;
  flex: 0 0 50%;
  cursor: pointer;
  padding: .2em 1em;
  border-bottom: 1px solid white;
}

.analyse__fork move:nth-child(odd) {
  border-right: 1px solid white;
}

.analyse__fork move:hover,
.analyse__fork:not(:hover) move.selected {
  background: #bd111f;
  color: #fff;
}

.analyse__fork glyph {
  margin-left: 2px;
}

.analyse__fork eval {
  flex: 3 0 auto;
  text-align: right;
  font-size: .9em;
}

.analyse__side {
  align-self: start;
}

.analyse__side .back-to-game {
  margin-top: 2em;
  text-align: center;
}

@media (min-width: 1260px) {
  .analyse__side .back-to-game {
    margin-top: 10vh;
  }
}

.analyse__side .back-to-game .button {
  margin: 0 auto;
}

#analyse-cm {
  background: white;
  position: absolute;
  display: none;
  z-index: 107;
  cursor: default;
}

#analyse-cm.visible {
  display: block;
}

#analyse-cm .title {
  padding: .4em;
  text-align: center;
  font-size: 1.2em;
  border-bottom: 1px solid #d9d9d9;
  margin: 0;
}

#analyse-cm a {
  color: #4d4d4d;
  padding: .5em .6em .5em .3em;
}

#analyse-cm a::before {
  width: 2em;
  text-align: center;
}

#analyse-cm a:hover {
  background: #f8e7e9;
}

.advice-summary {
  color: #5e5e5e;
  font-size: .9em;
  align-items: flex-start;
  line-height: 1.15em;
  margin-top: 1em;
}

.advice-summary td {
  text-align: center;
}

.advice-summary td:first-child {
  width: 5ch;
}

.advice-summary table {
  overflow: hidden;
}

.advice-summary tbody td {
  font-weight: bold;
}

.advice-summary .color-icon::before {
  vertical-align: text-bottom;
}

.advice-summary tr.symbol {
  cursor: pointer;
}

.advice-summary tr.symbol:hover {
  color: #3893E8;
}

.advice-summary .button {
  margin: .6em 0;
}

@media (max-width: 799px) and (orientation: portrait) {
  .advice-summary {
    flex-flow: row wrap;
    justify-content: center;
    padding-bottom: 2vmin;
    border-bottom: 1px solid #d9d9d9;
    margin: 0;
  }
  .advice-summary table {
    flex: 0 0 calc(50% - 2vmin);
    margin-left: 2vmin;
  }
  .advice-summary > a {
    order: 1;
  }
}

.analyse__underboard {
  margin-top: 1vmin;
}

.study__chapters, .study__members {
  overflow-y: auto;
  max-height: 18em;
  background: white;
  overflow: hidden;
  overflow-y: auto;
  position: relative;
  user-select: none;
}

@media (hover: hover) {
  .study__chapters, .study__members {
    overflow: hidden;
  }
  .study__chapters:hover, .study__members:hover {
    overflow-y: auto;
  }
}

.study__chapters > div, .study__members > div {
  align-items: stretch;
  transition: all 150ms;
}

.study__chapters > div:hover, .study__members > div:hover, .study__chapters > div.active, .study__members > div.active {
  color: #1f1f1f;
  background: #f8e7e9;
}

.study__chapters act, .study__members act {
  cursor: pointer;
  border-radius: 99px;
  align-self: center;
  justify-content: center;
  font-size: .9em;
  opacity: 0.15;
  padding: .4em;
  transition: all 150ms;
}

.study__chapters > div:hover act, .study__members > div:hover act {
  opacity: .7;
}

.study__chapters > div:hover act:hover, .study__members > div:hover act:hover {
  background: #bd111f;
  color: #fff;
  opacity: 1;
}

.study__chapters .add, .study__members .add {
  border-top: 1px solid #d9d9d9;
  cursor: pointer;
}

.study__chapters {
  max-height: 18em;
}

.study__chapters h3 {
  flex: 1 1 100%;
  font-size: 1em;
  line-height: 1;
  margin: .5em 0;
  align-self: center;
}

.study__chapters > div {
  cursor: pointer;
}

.study__chapters > div.active, .study__chapters > div:active {
  color: #1f1f1f;
}

.study__chapters > div.active > span, .study__chapters > div:active > span {
  color: #fff;
  background: #bd111f;
}

.study__chapters > div > span {
  flex: 0 0 1.7em;
  justify-content: center;
  color: #bd111f;
  font-weight: bold;
  height: auto;
  margin-right: .4em;
  opacity: .8;
}

.study__chapters .ddloader {
  width: 1.7em;
  height: 1.7em;
}

.study__chapters .sortable-ghost {
  opacity: .7;
}

.study__chapters .sortable-ghost,
.study__chapters .sortable-ghost .status {
  background: #629924 !important;
  color: #fff !important;
}

.study__members .left {
  align-items: stretch;
  flex: 0 1 auto;
  overflow: hidden;
}

.study__members .user-link {
  margin: .5em 0;
}

.study__members .status {
  justify-content: center;
  width: 2.4em;
  margin-right: .1em;
  transition: 2.5s;
}

.study__members i {
  font-size: 1.2em;
  opacity: 0.5;
  transition: 2.5s;
}

.study__members .contrib i {
  opacity: 0.7;
}

.study__members .online i {
  opacity: 0.8;
  color: #629924;
}

.study__members .online.contrib i {
  opacity: 1;
}

.study__members > div:nth-child(4n-3) .status.active {
  background: #42a5f5;
}

.study__members > div:nth-child(4n-2) .status.active {
  background: #f44336;
}

.study__members > div:nth-child(4n-1) .status.active {
  background: #fdd835;
}

.study__members > div:nth-child(4n-0) .status.active {
  background: #4caf50;
}

.study__members .status.active {
  transition: none;
}

.study__members .status.active i {
  transition: none;
  opacity: 1;
  color: #fff;
}

.study__members .leave {
  color: #cc3333;
  opacity: .7;
}

.study__members > div:hover .leave:hover {
  background-color: #cc3333;
}

.study__members .add:hover i {
  color: #bd111f;
  opacity: 1;
  transition: none;
}

.study__members .admin {
  text-align: center;
}

.study__members .admin button {
  margin-bottom: .5em;
}

.study__members m-config, .study__members .editing {
  background: #f8e7e9 !important;
}

.study__members m-config {
  padding: .4em .8em 1em .8em;
}

.study__members m-config .role label {
  cursor: pointer;
}

.study__members m-config .switch {
  margin-right: .5em;
}

.analyse.has-players cg-board {
  border-radius: 0;
}

@media (min-width: 800px), (orientation: landscape) {
  .analyse.has-players .analyse__underboard {
    margin-top: calc(0.8rem + 1vmin);
  }
}

@media (max-width: 799px) and (orientation: portrait) {
  .analyse.has-players .analyse__controls {
    margin-top: 1.6rem;
  }
}

.study__player {
  position: absolute;
  left: 0;
  right: 0;
  font-weight: bold;
  height: 1.6rem;
  white-space: nowrap;
}

.study__player-top {
  top: -1.6rem;
}

.study__player-bot {
  bottom: -1.6rem;
}

.study__player .left {
  flex: 1 1 100%;
  display: flex;
}

.study__player .result {
  flex: 0 0 auto;
  margin-left: .8em;
  padding-right: .8em;
  border-right: 1px solid #d9d9d9;
}

.study__player .analyse__clock {
  align-self: stretch;
  font-size: 1.2em;
  padding: 0 .8em;
  border-radius: 0 4px 0 0;
}

.study__player-bot .analyse__clock {
  border-radius: 0 0 4px 0;
}

.study__player.ticking .analyse__clock {
  background: #629924;
  color: #fff;
  text-shadow: none;
}

.study__player .info {
  margin-left: 10px;
}

.study__player .elo {
  margin-left: .5em;
  font-weight: normal;
}

.study__modal#modal-wrap {
  padding: 1rem;
  min-width: 80vw;
}

@media (min-width: 650px) {
  .study__modal#modal-wrap {
    min-width: 500px;
  }
}

.study__modal > div {
  padding: 1rem;
  overflow-y: auto;
}

.study__modal .form3 {
  text-align: left;
}

.study__modal .form3 .editor {
  margin: -30px 0 30px 0;
}

.study__modal .form3 .editor .spinner {
  padding-top: 80px;
}

.study__modal h2 {
  margin-bottom: .5em;
}

.study__modal h2 i {
  font-size: .6em;
  margin-left: 1rem;
  opacity: .5;
  cursor: pointer;
}

.study__modal h2 i, .study__modal h2 i::before {
  vertical-align: top;
}

.study__modal h2 i:hover {
  opacity: .7;
  color: #bd111f;
}

.study__modal .destructive {
  text-align: left;
  font-size: .9em;
  overflow: hidden;
}

.study__modal .destructive form {
  display: inline-block;
}

.study__modal .destructive button {
  opacity: 0.5;
}

.study__modal .destructive button:hover {
  opacity: 1;
}

.study__modal.chapter-new .tabs-horiz {
  margin: -1em 0 1.6em 0;
}

.board-editor .spare {
  display: flex;
  background: #b3b3b3;
  box-shadow: 0 3px 5px rgba(0, 0, 0, 0.3) inset;
}

.board-editor .spare-top {
  grid-area: spare-top;
  margin-bottom: 2vh;
}

.board-editor .spare-bottom {
  grid-area: spare-bottom;
  margin-top: 2vh;
}

.board-editor .spare .no-square {
  flex: 0 0 12.5%;
  transition: all 150ms;
}

.board-editor .spare .no-square:hover {
  background: rgba(189, 17, 31, 0.2);
}

.board-editor .spare .no-square.selected-square {
  background: rgba(189, 17, 31, 0.5);
}

.board-editor .spare .no-square.pointer:hover {
  background: rgba(98, 153, 36, 0.2);
}

.board-editor .spare .no-square.pointer.selected-square {
  background: rgba(98, 153, 36, 0.6);
}

.board-editor .spare .no-square.pointer piece {
  background-image: url("../images/icons/pointer.svg");
}

.board-editor .spare .no-square.trash:hover {
  background: rgba(204, 51, 51, 0.2);
}

.board-editor .spare .no-square.trash.selected-square {
  background: rgba(204, 51, 51, 0.6);
}

.board-editor .spare .no-square.trash piece {
  background-image: url("../images/icons/trash.svg");
}

.is3d .board-editor .spare .no-square div {
  padding-bottom: 90.72%;
}

.board-editor .spare piece {
  display: block;
  cursor: pointer;
  width: 100%;
  height: 100%;
}

.is3d .board-editor .spare piece {
  /* original size: width: 140.625%; height: 179.6875%; size on 3D board, with height/width = 90.78571% */
  width: 100%;
  height: 140.7465%;
  left: 0;
  top: -34%;
}

.board-editor .spare piece.pointer,
.board-editor .spare piece.trash {
  margin: 14%;
  width: 72%;
  height: 72%;
}

.is3d .board-editor .spare piece.pointer, .is3d
.board-editor .spare piece.trash {
  width: 62%;
  top: 0;
}

.board-editor__tools {
  grid-area: tools;
  align-self: center;
}

.board-editor__tools > * {
  margin: .5rem 0;
}

.board-editor__tools select {
  width: 100%;
}

.board-editor__tools select.positions option:checked {
  font-style: italic;
}

.board-editor__tools .metadata {
  background: white;
  padding: 1rem;
  white-space: nowrap;
}

.board-editor__tools .metadata .color {
  margin-bottom: 1em;
}

.board-editor__tools .metadata .castling label,
.board-editor__tools .metadata .castling input {
  display: inline-block;
  margin: 3px;
  vertical-align: middle;
}

.board-editor__tools .actions {
  justify-content: stretch;
}

.board-editor__tools .actions .button {
  background: #bd111f;
  color: #fff;
  width: 100%;
  text-align: left;
}

.board-editor__tools .actions .button:hover {
  background: #ed1c24;
}

.board-editor-wrap {
  min-height: 280px;
  margin-bottom: 2em;
}

.board-editor-wrap .spinner {
  padding-top: 90px;
}

.board-editor {
  display: grid;
  grid-template-columns: 280px 2vmin 210px;
  grid-template-rows: min-content auto min-content;
  grid-template-areas: '.            . e-tools' 'spare-top    . e-tools' 'e-board      . e-tools' 'spare-bottom . e-tools' '.            . e-tools';
  user-select: none;
}

.board-editor .main-board {
  grid-area: e-board;
}

.board-editor cg-board {
  cursor: inherit;
}

.board-editor__tools {
  grid-area: e-tools;
}

.board-editor .spare-top {
  margin-bottom: 1vh;
}

.board-editor .spare-bottom {
  grid-area: spare-bottom;
  margin-top: 1vh;
}

.board-editor .metadata {
  background: #f7f6f5;
  font-size: .9em;
}

.study__buttons {
  border-bottom: 2px solid #d9d9d9;
}

.study__buttons span {
  font-size: 1.15em;
  min-width: 0;
}

.study__buttons .left-buttons {
  flex: 9 1 auto;
  justify-content: flex-start;
  border-bottom: 0;
}

.study__buttons .right {
  flex: 1 9 10%;
}

.study__buttons .behind {
  background: #cc3333;
  color: #fff;
  padding: 0 5px;
  border-radius: 9px;
  margin-right: 4px;
}

.study__buttons .mode {
  align-self: stretch;
  padding: 0 .4em;
  opacity: .8;
}

.study__buttons .mode i::before {
  font-size: 1.4em;
  content: 'L';
  color: #cc3333;
  margin-right: .2rem;
}

.study__buttons .mode.on i::before {
  content: 'E';
  color: #629924;
}

.study__buttons .mode:hover {
  background: #f7f6f5;
  opacity: 1;
}

/* reused by context menu */
.glyph-icon::before {
  content: '⁉';
  font-size: 1.2em;
}

.study__invite {
  max-width: 50em;
}

.study__invite > div {
  overflow: visible !important;
}

.study__invite .info {
  background: #bd111f;
  color: #fff;
  padding: 1em;
  margin-bottom: 2em;
  text-align: left;
}

.study__invite .info::before {
  font-size: 3.6em;
  margin-right: 1rem;
}

.study__invite .users {
  max-width: 100ch;
  margin-top: 2em;
  overflow-y: auto;
  max-height: 30vh;
}

.study__invite .users .button {
  flex: 0 0 48%;
  margin-bottom: .7em;
  text-transform: none;
}

.study__invite .input-wrapper {
  overflow: visible !important;
}

.study__invite .tt-menu {
  text-align: left;
}

.study-desc {
  background: white;
  padding: .7em 1em;
  margin-top: .5em;
  position: relative;
}

.study-desc.empty {
  text-align: center;
}

.study-desc.empty .button {
  display: inline-block;
  margin: 2em auto;
}

.study-desc .contrib {
  position: absolute;
  top: 0;
  right: 0;
  background: #f8e7e9;
  padding: .5em .8em;
  display: none;
  z-index: 1;
}

.study-desc:hover .contrib {
  display: block;
}

.study-desc .contrib a {
  margin-left: 8px;
}

.study-desc .embed {
  width: calc(100% + 2em);
  margin: -.7em -1em;
}

.study-desc-form .title {
  width: 100%;
}

.study-desc-form textarea {
  width: 100%;
  height: 12em;
}

.study__metadata {
  background: white;
  text-align: left;
}

.study__metadata h2 {
  font-size: 1.3em;
  padding: 0 1rem;
  white-space: nowrap;
  border-bottom: 1px solid #d9d9d9;
}

.study__metadata h2 .name {
  padding: .7rem 0;
}

.study__metadata h2 .credit {
  display: block;
  font-size: .8rem;
  margin: .2rem 0 -.3rem 0;
}

.study__metadata h2 .liking {
  margin-left: 1rem;
  font-weight: bold;
  cursor: pointer;
  opacity: 0.7;
  transition: 0.3s;
}

.study__metadata h2 .liking:hover {
  opacity: 1;
  color: #cc3333;
}

.study__tags {
  border: none;
}

.study__tags th {
  font-weight: bold;
  color: #787878;
  width: 1px;
  padding: 0 0.3em 0 1em !important;
}

.study__tags td {
  padding: 0;
}

.study__tags input,
.study__tags span {
  display: block;
  padding: .6em 1em .6em .7em;
  line-height: 1.7;
}

.study__tags input {
  border: none;
  background: none;
  width: 100%;
}

.study__tags input:hover,
.study__tags input:focus {
  background: #f8e7e9;
}

.study__tags select {
  cursor: pointer;
  border: none;
  background: none;
  padding: 0;
}

.study__topics {
  margin: 1em;
}

.study__topics .topic {
  background: #f4d7d9;
  padding: .2em .6em;
  margin: .2em;
}

.study__topics .manage {
  margin: .2em;
}

.study-topics form {
  max-width: 600px;
}

.study__comments form p {
  margin: 1em 0;
}

.study__comments #comment-text {
  height: 12em;
}

.study__comment {
  background: white;
  padding: .8em 1em;
  margin-bottom: .8em;
}

.study__comment .text {
  margin-top: .3em;
  width: 100%;
  overflow: hidden;
  display: inline-block;
}

.study__comment .edit {
  float: right;
  margin-left: 8px;
  opacity: 0.7;
  display: none;
}

.study__comment:hover .edit {
  display: block;
}

.study__comment .edit:hover {
  opacity: 1;
}

.study__comment .user-link,
.study__comment .node {
  font-weight: bold;
}

.study__glyphs {
  background: white;
  white-space: nowrap;
  user-select: none;
}

.study__glyphs > div {
  flex: 1 0 30%;
}

.study__glyphs a {
  transition: all 150ms;
  color: #4d4d4d;
  height: 2.3em;
  line-height: 2.3em;
  align-items: stretch;
}

.study__glyphs a::before {
  justify-content: center;
  content: attr(data-symbol);
  font-size: 1.2em;
  font-weight: bold;
  width: 2em;
  background: #e3e3e3;
  margin-right: .5em;
  transition: all 150ms;
}

.study__glyphs a:hover, .study__glyphs a.active {
  background: #f7f6f5;
  color: #629924;
}

.study__glyphs a:hover::before {
  background: #f7f6f5;
}

.study__glyphs a.active::before {
  background: #629924;
  color: #fff;
}

.study__share {
  background: white;
  padding: 1.5em 1.2em;
}

.study__share input[type="text"] {
  font-family: monospace;
  width: 100%;
  font-size: .9em;
}

.study__share .ply-wrap {
  color: #787878;
  text-align: left;
  font-size: .9em;
}

.study__share .ply {
  cursor: pointer;
}

.study__share .ply input {
  margin-right: .3em;
  vertical-align: middle;
}

.study__share .downloads {
  margin-bottom: 2em;
}

.study__multiboard {
  background: white;
}

.study__multiboard.loading {
  opacity: 0.7;
}

.study__multiboard.nopager {
  padding: 2em;
}

.study__multiboard .top {
  padding: .4em 1.5em;
}

.study__multiboard .pager .page {
  margin: 0 .4em;
}

.study__multiboard .fbt {
  padding: .6em 1em;
}

.study__multiboard .playing {
  cursor: pointer;
}

.study__multiboard .playing input {
  vertical-align: middle;
  margin-right: 3px;
}

.study__multiboard .now-playing {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(30%, 1fr));
}

.study__multiboard .now-playing a {
  color: #4d4d4d;
  padding: .4em;
  transition: background 150ms;
  background: rgba(255, 255, 255, 0.4);
  overflow: hidden;
}

.study__multiboard .now-playing a:nth-child(even) {
  background: #edebe8;
}

.study__multiboard .now-playing a:hover {
  background: rgba(189, 17, 31, 0.4);
  color: #1f1f1f;
}

.study__multiboard .now-playing a.active, .study__multiboard .now-playing a:active {
  background: #629924;
  color: #fff;
}

.study__multiboard .now-playing a cg-board {
  box-shadow: none;
}

.study__multiboard .now-playing .player {
  height: 1.5em;
  white-space: nowrap;
}

.study__multiboard .now-playing .player span {
  margin-left: .5em;
}

.study__multiboard .now-playing .name {
  justify-content: center;
  height: 3em;
}

.study__server-eval {
  background: white;
  text-align: center;
}

.study__server-eval.padded {
  padding: 4em;
}

.study__server-eval.ready {
  height: 15em;
}

.advice-summary table:first-child {
  margin-bottom: 1em;
}

.study__message {
  background: white;
  padding: 3em;
  text-align: center;
}

.study__message .button {
  display: inline-block;
  margin: 1em auto;
}

.study__message .spinner {
  margin: 50px auto;
}

.intro__text {
  background: white;
  padding: 3vmin;
  max-height: 50vh;
  overflow-y: auto;
}

.intro__text .slist {
  margin-bottom: 1em;
}

.intro__text h1 {
  margin-bottom: 3vh;
}

.intro__text h1 {
  font-size: 15px;
}

@media (min-width: 320px) {
  .intro__text h1 {
    font-size: calc(15px + 12 * ((100vw - 320px) / 880));
  }
}

@media (min-width: 1200px) {
  .intro__text h1 {
    font-size: 27px;
  }
}

.intro__text h2, .intro__text h3, .intro__text h4 {
  line-height: 2em;
}

.intro__text h2 {
  font-size: 1.8em;
}

.intro__text h3 {
  font-size: 1.5em;
  line-height: 2em;
}

.intro__text h4 {
  font-size: 1.3em;
}

.intro__text em {
  font-style: italic;
}

.intro__text ul li {
  list-style: disc outside;
  margin: .5em 0 0 1.5em;
}

.intro__text ol li {
  list-style: decimal inside;
  margin: .5em 0;
}

.intro__text li {
  margin-left: 2em;
}

.intro__text li p {
  display: inline;
}

main.has-intro .mchat {
  max-height: 48vh;
}

.pocket-top {
  grid-area: pocket-top;
}

.pocket-bottom {
  grid-area: pocket-bot;
}

.pocket-c1 {
  max-width: 60px;
}

.analyse.variant-crazyhouse {
  grid-template-rows: auto auto auto auto 50vh;
  grid-template-areas: 'pocket-top' 'board' 'pocket-bot' 'controls' 'tools' 'side' 'acpl' 'under' 'chat' 'uchat';
}

@media (min-width: 800px), (orientation: landscape) {
  .analyse.variant-crazyhouse {
    grid-template-rows: 60px auto 60px;
    grid-template-areas: 'board      gauge pocket-top' 'board      gauge tools' 'board      gauge pocket-bot' 'under      .     controls' 'under      .     acpl' 'under      .     side' 'chat       .     side' 'uchat      .     side';
  }
}

@media (min-width: 1260px) {
  .analyse.variant-crazyhouse {
    grid-template-rows: 60px var(--meta-height) fit-content(0) 60px;
    grid-template-areas: 'side    . board gauge pocket-top' 'side    . board gauge tools' 'chat    . board gauge tools' 'chat    . board gauge pocket-bot' 'uchat   . under .     controls' 'uchat   . under .     acpl';
  }
}

@media (max-width: 799px) and (orientation: portrait) {
  .pocket-top {
    margin-bottom: -2vmin;
  }
  .pocket-bottom {
    margin-top: -2vmin;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHlzZS9jc3MvYnVpbGQvYW5hbHlzZS5zdHVkeS5saWdodC5jc3MiLCJzb3VyY2VzIjpbImFuYWx5c2UvY3NzL2J1aWxkL2FuYWx5c2Uuc3R1ZHkubGlnaHQuc2NzcyIsImNvbW1vbi9jc3MvdGhlbWUvX2xpZ2h0LnNjc3MiLCJjb21tb24vY3NzL3RoZW1lL19kZWZhdWx0LnNjc3MiLCJjb21tb24vY3NzL2Fic3RyYWN0L19mdW5jdGlvbnMuc2NzcyIsImFuYWx5c2UvY3NzL2J1aWxkL19hbmFseXNlLnN0dWR5LnNjc3MiLCJhbmFseXNlL2Nzcy9idWlsZC9fYW5hbHlzZS5iYXNlLnNjc3MiLCJjb21tb24vY3NzL19wbHVnaW4uc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvX2JyZWFrcG9pbnQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9fc2V0dGluZ3Muc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9fY29udGV4dC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L19oZWxwZXJzLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvX3BhcnNlcnMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL19xdWVyeS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvX3NpbmdsZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvc2luZ2xlL19kZWZhdWx0LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9fZG91YmxlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9kb3VibGUvX2RlZmF1bHQtcGFpci5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvZG91YmxlL19kb3VibGUtc3RyaW5nLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnQvcGFyc2Vycy9kb3VibGUvX2RlZmF1bHQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL190cmlwbGUuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL3RyaXBsZS9fZGVmYXVsdC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L3BhcnNlcnMvX3Jlc29sdXRpb24uc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9wYXJzZXJzL3Jlc29sdXRpb24vX3Jlc29sdXRpb24uc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9fbm8tcXVlcnkuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9icmVha3BvaW50LXNhc3Mvc3R5bGVzaGVldHMvYnJlYWtwb2ludC9fcmVzcG9uZC10by5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9icmVha3BvaW50L19sZWdhY3ktc2V0dGluZ3Muc2NzcyIsImNvbW1vbi9jc3MvYWJzdHJhY3QvX2FsbC5zY3NzIiwiY29tbW9uL2Nzcy9hYnN0cmFjdC9fei1pbmRleC5zY3NzIiwiY29tbW9uL2Nzcy9hYnN0cmFjdC9fbWVkaWEtcXVlcmllcy5zY3NzIiwiY29tbW9uL2Nzcy9hYnN0cmFjdC9fdmFyaWFibGVzLnNjc3MiLCJjb21tb24vY3NzL2Fic3RyYWN0L191bmlib2FyZC5zY3NzIiwiY29tbW9uL2Nzcy9hYnN0cmFjdC9fbWl4aW5zLnNjc3MiLCJjb21tb24vY3NzL2Fic3RyYWN0L19leHRlbmRzLnNjc3MiLCJjb21tb24vY3NzL2Fic3RyYWN0L19mbGV4LnNjc3MiLCJjb21tb24vY3NzL2Fic3RyYWN0L19ib3guc2NzcyIsImNvbW1vbi9jc3MvYWJzdHJhY3QvX2ZsdWlkLXNpemUuc2NzcyIsImNvbW1vbi9jc3MvdmVuZG9yL2NoZXNzZ3JvdW5kL19jb29yZHMuc2NzcyIsImNvbW1vbi9jc3MvdmVuZG9yL2NoZXNzZ3JvdW5kL19jb29yZHMtY29sb3JzLnNjc3MiLCJjb21tb24vY3NzL2xheW91dC9fdW5pYm9hcmQuc2NzcyIsImNvbW1vbi9jc3MvYmFzZS9fc2Nyb2xsYmFyLnNjc3MiLCJjb21tb24vY3NzL2NvbXBvbmVudC9fYm9hcmQtcmVzaXplLnNjc3MiLCJjb21tb24vY3NzL2NvbXBvbmVudC9fbW9kYWwuc2NzcyIsImNvbW1vbi9jc3MvY29tcG9uZW50L19jb250aW51ZS13aXRoLnNjc3MiLCJjb21tb24vY3NzL2NvbXBvbmVudC9fY29sb3ItaWNvbi5zY3NzIiwiY29tbW9uL2Nzcy9jb21wb25lbnQvX2Nyb3NzdGFibGUuc2NzcyIsImNvbW1vbi9jc3MvY29tcG9uZW50L19mYnQuc2NzcyIsImNvbW1vbi9jc3MvZm9ybS9fY21uLXRvZ2dsZS5zY3NzIiwiY29tbW9uL2Nzcy9mb3JtL19yYW5nZS5zY3NzIiwidHJlZS9jc3MvX3RyZWUuc2NzcyIsInRyZWUvY3NzL19leHRlbmQuc2NzcyIsImNldmFsL2Nzcy9fY2V2YWwuc2NzcyIsImNldmFsL2Nzcy9fY3RybC5zY3NzIiwiY2V2YWwvY3NzL19wdi5zY3NzIiwiY2V2YWwvY3NzL19ldmFsLWdhdWdlLnNjc3MiLCJjaGVzcy9jc3MvX2NvbnRyb2wuc2NzcyIsImNoZXNzL2Nzcy9fcHJvbW90aW9uLnNjc3MiLCJjaGVzcy9jc3MvX3ZhcmlhbnQtc3R5bGUuc2NzcyIsImNvbW1vbi9jc3MvZm9ybS9fZm9ybTMuc2NzcyIsImNvbW1vbi9jc3MvY29tcG9uZW50L19mbGFzaC5zY3NzIiwiY29tbW9uL2Nzcy9jb21wb25lbnQvX3RhYnMtaG9yaXouc2NzcyIsImNvbW1vbi9jc3MvY29tcG9uZW50L19zbGlzdC5zY3NzIiwiY29tbW9uL2Nzcy9jb21wb25lbnQvX2NvbnRleHQtc3RyZWFtZXIuc2NzcyIsImNoYXQvY3NzL19jaGF0LnNjc3MiLCJjaGF0L2Nzcy9fdGFiLnNjc3MiLCJjaGF0L2Nzcy9fbWVtYmVycy5zY3NzIiwiY2hhdC9jc3MvX2Rpc2N1c3Npb24uc2NzcyIsImNoYXQvY3NzL19wYWxhbnRpci5zY3NzIiwiY2hlc3MvY3NzL196aC1wb2NrZXQuc2NzcyIsImFuYWx5c2UvY3NzL3N0dWR5L19zaG93LnNjc3MiLCJhbmFseXNlL2Nzcy9fYW5hbHlzZS5iYXNlLnNjc3MiLCJhbmFseXNlL2Nzcy9fdmFyaWFibGVzLnNjc3MiLCJhbmFseXNlL2Nzcy9fbGF5b3V0LnNjc3MiLCJhbmFseXNlL2Nzcy9fdG9vbHMuc2NzcyIsImFuYWx5c2UvY3NzL19hY3Rpb24tbWVudS5zY3NzIiwiYW5hbHlzZS9jc3MvX2V4cGxvcmVyLnNjc3MiLCJhbmFseXNlL2Nzcy9fdHJhaW5pbmcuc2NzcyIsImFuYWx5c2UvY3NzL19wcmFjdGljZS5zY3NzIiwiYW5hbHlzZS9jc3MvX2Zvcmsuc2NzcyIsImFuYWx5c2UvY3NzL19zaWRlLnNjc3MiLCJhbmFseXNlL2Nzcy9fY29udGV4dC1tZW51LnNjc3MiLCJhbmFseXNlL2Nzcy9fYWNwbC5zY3NzIiwiYW5hbHlzZS9jc3Mvc3R1ZHkvX2xheW91dC5zY3NzIiwiYW5hbHlzZS9jc3Mvc3R1ZHkvX2xpc3Quc2NzcyIsImFuYWx5c2UvY3NzL3N0dWR5L19jaGFwdGVycy5zY3NzIiwiYW5hbHlzZS9jc3Mvc3R1ZHkvX21lbWJlcnMuc2NzcyIsImFuYWx5c2UvY3NzL3N0dWR5L19wbGF5ZXIuc2NzcyIsImFuYWx5c2UvY3NzL3N0dWR5L19tb2RhbC5zY3NzIiwiYW5hbHlzZS9jc3Mvc3R1ZHkvX2VkaXRvci5zY3NzIiwiZWRpdG9yL2Nzcy9fc3BhcmUuc2NzcyIsImVkaXRvci9jc3MvX3Rvb2xzLnNjc3MiLCJhbmFseXNlL2Nzcy9zdHVkeS9fYnV0dG9ucy5zY3NzIiwiYW5hbHlzZS9jc3Mvc3R1ZHkvX2ludml0ZS5zY3NzIiwiYW5hbHlzZS9jc3Mvc3R1ZHkvX2Rlc2Muc2NzcyIsImFuYWx5c2UvY3NzL3N0dWR5L3BhbmVsL19tZXRhZGF0YS5zY3NzIiwiYW5hbHlzZS9jc3Mvc3R1ZHkvcGFuZWwvX2NvbW1lbnQuc2NzcyIsImFuYWx5c2UvY3NzL3N0dWR5L3BhbmVsL19nbHlwaC5zY3NzIiwiYW5hbHlzZS9jc3Mvc3R1ZHkvcGFuZWwvX3NoYXJlLnNjc3MiLCJhbmFseXNlL2Nzcy9zdHVkeS9wYW5lbC9fbXVsdGlib2FyZC5zY3NzIiwiYW5hbHlzZS9jc3Mvc3R1ZHkvcGFuZWwvX3NlcnZlci1ldmFsLnNjc3MiLCJhbmFseXNlL2Nzcy9zdHVkeS9wYW5lbC9fbWVzc2FnZS5zY3NzIiwiYW5hbHlzZS9jc3Mvc3R1ZHkvcmVsYXkvX2ludHJvLnNjc3MiLCJhbmFseXNlL2Nzcy9femguc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0IFwiLi4vLi4vLi4vY29tbW9uL2Nzcy90aGVtZS9saWdodFwiO1xuQGltcG9ydCBcImFuYWx5c2Uuc3R1ZHlcIjtcbiIsIkBpbXBvcnQgXCJkZWZhdWx0XCI7XG5cbiR0aGVtZTogXCJsaWdodFwiO1xuJHRoZW1lLWxpZ2h0OiB0cnVlO1xuJHRoZW1lLWRhcms6IGZhbHNlO1xuXG4kYy1iZy1wYWdlOiBoc2woMCwgMCUsIDEwMCUpO1xuJGMtYmctcGFnZS1pbWc6IHVybCguLi9pbWFnZXMvbW9zY293LWNoZXNzX3BhdHRlcm5fbGlnaHRfYW5nbGVkLTAxLnBuZyk7XG4kYy1iZy1wYWdlLWJzOiAxMCU7XG5cbkBtaXhpbiBtZXRhbC1iZyB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIGhzbCgwLCAwLCA5NikgMCUsIGhzbCgwLCAwLCA5MykgMTAwJSk7XG59XG5cbkBtaXhpbiBtZXRhbCB7XG4gIEBpbmNsdWRlIG1ldGFsLWJnO1xuXG4gIHRleHQtc2hhZG93OiAkdGV4dC1zaGFkb3c7XG59XG5cbkBtaXhpbiBtZXRhbC1ob3ZlciB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIGhzbCgwLCAwLCA5OCkgMCUsIGhzbCgwLCAwLCA5NSkgMTAwJSk7XG4gIHRleHQtc2hhZG93OiAkdGV4dC1zaGFkb3c7XG59XG5cbkBtaXhpbiBwYWdlLW1ldGFsIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgbWl4KCRjLWxpbmssIGhzbCgwLCAwJSwgMTAwJSksIDIwJSkgMCUsIG1peCgkYy1saW5rLCBoc2woMCwgMCUsIDk0JSksIDIwJSkgMTAwJSk7XG4gIHRleHQtc2hhZG93OiAkdGV4dC1zaGFkb3c7XG59XG5cbkBtaXhpbiBwYWdlLW1ldGFsLWhvdmVyIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgbWl4KCRjLWxpbmssICNmZmYsIDI1JSkgMCUsIG1peCgkYy1saW5rLCBjLWxpZ2h0KCRjLWJnLXBhZ2UsIDkwJSksIDI1JSkgMTAwJSk7XG4gIHRleHQtc2hhZG93OiAkdGV4dC1zaGFkb3c7XG59XG5cbkBtaXhpbiB0aGVtZS1zdHlsZSB7fVxuIiwiQGltcG9ydCBcIi4uL2Fic3RyYWN0L2Z1bmN0aW9uc1wiO1xuXG4vKiBDb2xvcnMgKi9cblxuQGZ1bmN0aW9uIGMtZGltbWVyKCRjb2xvciwgJHdlaWdodDogMTclKSB7XG4gIEByZXR1cm4gbWl4KCNmZmYsICRjb2xvciwgJHdlaWdodCk7XG59XG5cbkBmdW5jdGlvbiBjLWNsZWFyZXIoJGNvbG9yLCAkd2VpZ2h0OiAxNyUpIHtcbiAgQHJldHVybiBtaXgoIzAwMCwgJGNvbG9yLCAkd2VpZ2h0KTtcbn1cblxuJGMtc2l0ZS1odWU6IDM3O1xuXG4kYy1iZy1wYWdlOiBoc2woJGMtc2l0ZS1odWUsIDEwJSwgOTIlKTtcblxuJGMtYmctcGFnZS1pbWc6IG5vbmU7XG4kYy1iZy1wYWdlLWJzOiBhdXRvO1xuXG4vLyBoc2woMjEwLCAxNyUsIDk1JSlcbiRjLWJnLWhpZ2g6IGhzbCgwLCAwJSwgMTAwJSk7XG4kYy1iZy1sb3c6IGhzbCgwLCAwJSwgODklKTtcblxuLyogZXZlbiByb3dzIGluIGxpc3Qgb3IgdGFibGVzLCBzdWJ0bGUgc2hhZGUgb2YgJGMtYmctaGlnaCAqL1xuJGMtYmctemVicmE6IGhzbCgkYy1zaXRlLWh1ZSwgMTIlLCA5Ni41JSk7XG4kYy1iZy16ZWJyYTI6IGhzbCgkYy1zaXRlLWh1ZSwgMTIlLCA5MiUpO1xuXG4kYy1ib2R5LWdyYWRpZW50OiBoc2woJGMtc2l0ZS1odWUsIDEyJSwgODQlKTtcblxuJGMtZm9udDogaHNsKDAsIDAlLCAzMCUpO1xuJGMtZm9udC1kaW06IGMtbGlnaHQoJGMtZm9udCwgNDclKTtcbiRjLWZvbnQtZGltbWVyOiBjLWxpZ2h0KCRjLWZvbnQsIDcwJSk7XG4kYy1mb250LWNsZWFyOiBjLWxpZ2h0KCRjLWZvbnQsIDEyJSk7XG4kYy1mb250LWNsZWFyZXI6IGMtbGlnaHQoJGMtZm9udCwgMCUpO1xuJGMtc2hhZGU6IGMtZGltbWVyKCRjLWZvbnQsIDgwJSk7XG4kYy1mb250LXBhZ2U6IGMtbGlnaHQoJGMtZm9udCwgMzclKTtcblxuLyogUHJpbWFyeTogYmx1ZSAqL1xuJGMtcHJpbWFyeTogI2JkMTExZjtcbiRjLXByaW1hcnktZGltOiBjLWRpbW1lcigkYy1wcmltYXJ5KTtcbiRjLXByaW1hcnktY2xlYXI6IGMtY2xlYXJlcigkYy1wcmltYXJ5KTtcbiRjLXByaW1hcnktb3ZlcjogI2ZmZjtcblxuLyogdGV4dCBvdmVyIHByaW1hcnkgYmFja2dyb3VuZCAqL1xuXG4vKiBTZWNvbmRhcnk6IGdyZWVuICovXG4kYy1zZWNvbmRhcnk6IGhzbCg4OCwgNjIlLCAzNyUpO1xuJGMtc2Vjb25kYXJ5LWRpbTogYy1kaW1tZXIoJGMtc2Vjb25kYXJ5KTtcbiRjLXNlY29uZGFyeS1kaW1tZXI6IGMtZGltbWVyKCRjLXNlY29uZGFyeSwgNDAlKTtcbiRjLXNlY29uZGFyeS1vdmVyOiAjZmZmO1xuXG4vKiB0ZXh0IG92ZXIgc2Vjb25kYXJ5IGJhY2tncm91bmQgKi9cblxuLyogQWNjZW50OiBvcmFuZ2UgKi9cbiRjLWFjY2VudDogI2JkMTExZjtcbiRjLWFjY2VudC1kaW06IGMtZGltbWVyKCRjLWFjY2VudCk7XG4kYy1hY2NlbnQtY2xlYXI6IGMtY2xlYXJlcigkYy1hY2NlbnQpO1xuJGMtYWNjZW50LW92ZXI6ICNmZmY7XG5cbi8qIHRleHQgb3ZlciBhY2NlbnQgYmFja2dyb3VuZCAqL1xuXG4vKiBCcmFnOiBnb2xkICovXG4kYy1icmFnOiBoc2woMzcsIDc0JSwgNDglKTtcbiRjLWJyYWctb3ZlcjogI2ZmZjtcblxuLyogdGV4dCBvdmVyIGJyYWcgYmFja2dyb3VuZCAqL1xuXG4vKiBFcnJvcjogcmVkICovXG4kYy1yZWQ6IGhzbCgwLCA2MCUsIDUwJSk7XG4kYy1lcnJvcjogJGMtcmVkO1xuJGMtZXJyb3Itb3ZlcjogI2ZmZjtcblxuLyogdGV4dCBvdmVyIGJyYWcgYmFja2dyb3VuZCAqL1xuXG4vKiBHb29kOiBncmVlbiAqL1xuJGMtZ29vZDogJGMtc2Vjb25kYXJ5O1xuJGMtZ29vZC1vdmVyOiAkYy1zZWNvbmRhcnktb3ZlcjtcblxuLyogV2Fybjogb3JhbmdlICovXG4kYy13YXJuOiAkYy1icmFnO1xuJGMtd2Fybi1vdmVyOiAkYy1icmFnLW92ZXI7XG5cbi8qIEJhZDogcmVkICovXG4kYy1iYWQ6ICRjLWVycm9yO1xuJGMtYmFkLW92ZXI6ICRjLWVycm9yLW92ZXI7XG5cbi8qIEZhbmN5OiBwaW5rICovXG4kYy1mYW5jeTogaHNsKDI5NCwgNjElLCA2MiUpO1xuJGMtZmFuY3ktb3Zlcjogd2hpdGU7XG5cbi8qIHRleHQgb3ZlciBicmFnIGJhY2tncm91bmQgKi9cblxuJGMtbGluazogJGMtcHJpbWFyeTtcbiRjLWxpbmstZGltOiAkYy1wcmltYXJ5LWRpbTtcbiRjLWxpbmstY2xlYXI6ICRjLXByaW1hcnktY2xlYXI7XG4kYy1saW5rLWhvdmVyOiBjLWNsZWFyZXIoc2F0dXJhdGUoJGMtcHJpbWFyeSwgMTAwJSksIDM1JSk7XG4kYy1saW5rLW92ZXI6ICRjLXByaW1hcnktb3ZlcjtcblxuJGMtYmctYm94OiAkYy1iZy1oaWdoO1xuJGMtYmctYm94LW9wYXF1ZTogJGMtYmctYm94O1xuJGMtYmctaW5wdXQ6IGMtbGlnaHQoJGMtYmctcGFnZSwgOTglKTtcblxuJGMtYm9yZGVyOiBoc2woMCwgMCUsIDg1JSk7XG4kYy1ib3JkZXItcGFnZTogaHNsKDAsIDAlLCA4MCUpO1xuXG4kYy1wYWdlLW1hc2s6IGhzbGEoMCwgMCwgMCUsIDAuNik7XG5cbiRjLWJnLXBvcHVwOiAkYy1iZy1oaWdoO1xuJGMtcG9wdXA6ICRjLWZvbnQ7XG5cbiRjLWJnLWhlYWRlci1kcm9wZG93bjogJGMtYmctcG9wdXA7XG4kYy1oZWFkZXItZHJvcGRvd246ICRjLXBvcHVwO1xuXG4kYy1mb250LXNoYWRvdzogd2hpdGU7XG4kdGV4dC1zaGFkb3c6IDAgMXB4IDAgJGMtZm9udC1zaGFkb3c7XG5cbiRjLWJvdDogJGMtZmFuY3k7XG5cbiRjLXBhZ2UtaW5wdXQ6ICRjLWJnLWxvdztcblxuLyogQm9yZGVycyAqL1xuXG4kYm9yZGVyLXdpZHRoOiAxcHg7XG4kYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiRib3JkZXI6ICRib3JkZXItd2lkdGggJGJvcmRlci1zdHlsZSAkYy1ib3JkZXI7XG5cbi8qIFNoYWRvd3MgKi9cblxuJGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTtcblxuLy8gJGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwwLDAsLjE1Nyk7XG5cbi8qIEN1c3RvbSAqL1xuJHdhcm5pbmctaWNvbi1jb2xvcjogaHNsKDQ0LCAxMDAlLCA0NiUpO1xuIiwiQGZ1bmN0aW9uIGMtbGlnaHQoJGNvbG9yLCAkdmFsdWUpIHtcbiAgQHJldHVybiBjaGFuZ2UtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAkdmFsdWUpO1xufVxuXG5AZnVuY3Rpb24gaW1nLXVybCgkcGF0aCkge1xuICBAcmV0dXJuIHVybChcIiN7JGltZy1wYXRofS8jeyRwYXRofVwiKTtcbn1cbiIsIkBpbXBvcnQgXCJhbmFseXNlLmJhc2VcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi9jb21tb24vY3NzL2Zvcm0vZm9ybTNcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi9jb21tb24vY3NzL2NvbXBvbmVudC90YWJzLWhvcml6XCI7XG5AaW1wb3J0IFwiLi4vLi4vLi4vY29tbW9uL2Nzcy9jb21wb25lbnQvc2xpc3RcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi9jb21tb24vY3NzL2NvbXBvbmVudC9jb250ZXh0LXN0cmVhbWVyXCI7XG5AaW1wb3J0IFwiLi4vLi4vLi4vY2hhdC9jc3MvY2hhdFwiO1xuQGltcG9ydCBcIi4uLy4uLy4uL2NoZXNzL2Nzcy96aC1wb2NrZXRcIjtcblxuQGltcG9ydCBcIi4uL3N0dWR5L3Nob3dcIjtcbkBpbXBvcnQgXCIuLi96aFwiO1xuIiwiQGltcG9ydCBcIi4uLy4uLy4uL2NvbW1vbi9jc3MvcGx1Z2luXCI7XG5AaW1wb3J0IFwiLi4vLi4vLi4vY29tbW9uL2Nzcy92ZW5kb3IvY2hlc3Nncm91bmQvY29vcmRzXCI7XG5AaW1wb3J0IFwiLi4vLi4vLi4vY29tbW9uL2Nzcy9sYXlvdXQvdW5pYm9hcmRcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi9jb21tb24vY3NzL2Jhc2Uvc2Nyb2xsYmFyXCI7XG5AaW1wb3J0IFwiLi4vLi4vLi4vY29tbW9uL2Nzcy9jb21wb25lbnQvYm9hcmQtcmVzaXplXCI7XG5AaW1wb3J0IFwiLi4vLi4vLi4vY29tbW9uL2Nzcy9jb21wb25lbnQvbW9kYWxcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi9jb21tb24vY3NzL2NvbXBvbmVudC9jb250aW51ZS13aXRoXCI7XG5AaW1wb3J0IFwiLi4vLi4vLi4vY29tbW9uL2Nzcy9jb21wb25lbnQvY29sb3ItaWNvblwiO1xuQGltcG9ydCBcIi4uLy4uLy4uL2NvbW1vbi9jc3MvY29tcG9uZW50L2Nyb3NzdGFibGVcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi9jb21tb24vY3NzL2NvbXBvbmVudC9mYnRcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi9jb21tb24vY3NzL2Zvcm0vY21uLXRvZ2dsZVwiO1xuQGltcG9ydCBcIi4uLy4uLy4uL2NvbW1vbi9jc3MvZm9ybS9yYW5nZVwiO1xuQGltcG9ydCBcIi4uLy4uLy4uL3RyZWUvY3NzL3RyZWVcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi9jZXZhbC9jc3MvY2V2YWxcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi9jZXZhbC9jc3MvZXZhbC1nYXVnZVwiO1xuQGltcG9ydCBcIi4uLy4uLy4uL2NoZXNzL2Nzcy9jb250cm9sXCI7XG5AaW1wb3J0IFwiLi4vLi4vLi4vY2hlc3MvY3NzL3Byb21vdGlvblwiO1xuQGltcG9ydCBcIi4uLy4uLy4uL2NoZXNzL2Nzcy92YXJpYW50LXN0eWxlXCI7XG4iLCIvKiBDb21tb24gaW1wb3J0cyBmb3IgYWxsIENTUyBtb2R1bGVzICovXG5cbkBpbXBvcnQgXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYnJlYWtwb2ludC1zYXNzL3N0eWxlc2hlZXRzL2JyZWFrcG9pbnRcIjtcblxuQGltcG9ydCBcImFic3RyYWN0L2FsbFwiO1xuIiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBEZWZhdWx0IFZhcmlhYmxlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kQnJlYWtwb2ludC1TZXR0aW5nczogKFxuICAnZGVmYXVsdCBtZWRpYSc6IGFsbCxcbiAgJ2RlZmF1bHQgZmVhdHVyZSc6IG1pbi13aWR0aCxcbiAgJ2RlZmF1bHQgcGFpcic6IHdpZHRoLFxuXG4gICdmb3JjZSBhbGwgbWVkaWEgdHlwZSc6IGZhbHNlLFxuICAndG8gZW1zJzogZmFsc2UsXG4gICd0cmFuc2Zvcm0gcmVzb2x1dGlvbnMnOiB0cnVlLFxuXG4gICdubyBxdWVyaWVzJzogZmFsc2UsXG4gICdubyBxdWVyeSBmYWxsYmFja3MnOiBmYWxzZSxcblxuICAnYmFzZSBmb250IHNpemUnOiAxNnB4LFxuXG4gICdsZWdhY3kgc3ludGF4JzogZmFsc2Vcbik7XG5cbiRicmVha3BvaW50OiAoKSAhZGVmYXVsdDtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBJbXBvcnRzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCJicmVha3BvaW50L3NldHRpbmdzXCI7XG5AaW1wb3J0ICdicmVha3BvaW50L2NvbnRleHQnO1xuQGltcG9ydCAnYnJlYWtwb2ludC9oZWxwZXJzJztcbkBpbXBvcnQgJ2JyZWFrcG9pbnQvcGFyc2Vycyc7XG5AaW1wb3J0ICdicmVha3BvaW50L25vLXF1ZXJ5JztcblxuQGltcG9ydCAnYnJlYWtwb2ludC9yZXNwb25kLXRvJztcblxuQGltcG9ydCBcImJyZWFrcG9pbnQvbGVnYWN5LXNldHRpbmdzXCI7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQnJlYWtwb2ludCBNaXhpblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBicmVha3BvaW50KCRxdWVyeSwgJG5vLXF1ZXJ5OiBmYWxzZSkge1xuICBAaW5jbHVkZSBsZWdhY3ktc2V0dGluZ3Mtd2FybmluZztcblxuICAvLyBSZXNldCBjb250ZXh0c1xuICBAaW5jbHVkZSBwcml2YXRlLWJyZWFrcG9pbnQtcmVzZXQtY29udGV4dHMoKTtcblxuICAkYnJlYWtwb2ludDogYnJlYWtwb2ludCgkcXVlcnksIGZhbHNlKTtcblxuICAkcXVlcnktc3RyaW5nOiBtYXAtZ2V0KCRicmVha3BvaW50LCAncXVlcnknKTtcbiAgJHF1ZXJ5LWZhbGxiYWNrOiBtYXAtZ2V0KCRicmVha3BvaW50LCAnZmFsbGJhY2snKTtcblxuICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiBtYXAtZ2V0KCRicmVha3BvaW50LCAnY29udGV4dCBob2xkZXInKSAhZ2xvYmFsO1xuICAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiBtYXAtZ2V0KCRicmVha3BvaW50LCAncXVlcnkgY291bnQnKSAhZ2xvYmFsO1xuXG4gIC8vIEFsbG93IGZvciBhbiBhcy1uZWVkZWQgb3ZlcnJpZGUgb3IgdXNhZ2Ugb2Ygbm8gcXVlcnkgZmFsbGJhY2suXG4gIEBpZiAkbm8tcXVlcnkgIT0gZmFsc2Uge1xuICAgICRxdWVyeS1mYWxsYmFjazogJG5vLXF1ZXJ5O1xuICB9XG5cbiAgQGlmICRxdWVyeS1mYWxsYmFjayAhPSBmYWxzZSB7XG4gICAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJ25vLXF1ZXJ5JywgJHF1ZXJ5LWZhbGxiYWNrKTtcbiAgfVxuXG4gIC8vIFByaW50IE91dCBRdWVyeSBTdHJpbmdcbiAgQGlmIG5vdCBicmVha3BvaW50LWdldCgnbm8gcXVlcmllcycpIHtcbiAgICBAbWVkaWEgI3skcXVlcnktc3RyaW5nfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cblxuICBAaWYgYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJ5IGZhbGxiYWNrcycpICE9IGZhbHNlIG9yIGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyaWVzJykgPT0gdHJ1ZSB7XG5cbiAgICAkdHlwZTogdHlwZS1vZihicmVha3BvaW50LWdldCgnbm8gcXVlcnkgZmFsbGJhY2tzJykpO1xuICAgICRwcmludDogZmFsc2U7XG5cbiAgICBAaWYgKCR0eXBlID09ICdib29sJykge1xuICAgICAgJHByaW50OiB0cnVlO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoJHR5cGUgPT0gJ3N0cmluZycpIHtcbiAgICAgIEBpZiAkcXVlcnktZmFsbGJhY2sgPT0gYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJ5IGZhbGxiYWNrcycpIHtcbiAgICAgICAgJHByaW50OiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAoJHR5cGUgPT0gJ2xpc3QnKSB7XG4gICAgICBAZWFjaCAkd3JhcHBlciBpbiBicmVha3BvaW50LWdldCgnbm8gcXVlcnkgZmFsbGJhY2tzJykge1xuICAgICAgICBAaWYgJHF1ZXJ5LWZhbGxiYWNrID09ICR3cmFwcGVyIHtcbiAgICAgICAgICAkcHJpbnQ6IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBXcml0ZSBGYWxsYmFja1xuICAgIEBpZiAoJHF1ZXJ5LWZhbGxiYWNrICE9IGZhbHNlKSBhbmQgKCRwcmludCA9PSB0cnVlKSB7XG4gICAgICAkdHlwZS1mYWxsYmFjazogdHlwZS1vZigkcXVlcnktZmFsbGJhY2spO1xuXG4gICAgICBAaWYgKCR0eXBlLWZhbGxiYWNrICE9ICdib29sJykge1xuICAgICAgICAjeyRxdWVyeS1mYWxsYmFja30gJiB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgcHJpdmF0ZS1icmVha3BvaW50LXJlc2V0LWNvbnRleHRzKCk7XG59XG5cblxuQG1peGluIG1xKCRxdWVyeSwgJG5vLXF1ZXJ5OiBmYWxzZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRxdWVyeSwgJG5vLXF1ZXJ5KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSGFzIFNldHRpbmdcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtaGFzKCRzZXR0aW5nKSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludCwgJHNldHRpbmcpIHtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBHZXQgU2V0dGluZ3Ncbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtZ2V0KCRzZXR0aW5nKSB7XG4gIEBpZiBicmVha3BvaW50LWhhcygkc2V0dGluZykge1xuICAgIEByZXR1cm4gbWFwLWdldCgkYnJlYWtwb2ludCwgJHNldHRpbmcpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJEJyZWFrcG9pbnQtU2V0dGluZ3MsICRzZXR0aW5nKTtcbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFNldCBTZXR0aW5nc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1zZXQoJHNldHRpbmcsICR2YWx1ZSkge1xuICBAaWYgKHN0ci1pbmRleCgkc2V0dGluZywgJy0nKSBvciBzdHItaW5kZXgoJHNldHRpbmcsICdfJykpIGFuZCBzdHItaW5kZXgoJHNldHRpbmcsICcgJykgPT0gbnVsbCB7XG4gICAgQHdhcm4gXCJXb3JkcyBpbiBCcmVha3BvaW50IHNldHRpbmdzIHNob3VsZCBiZSBzZXBhcmF0ZWQgYnkgc3BhY2VzLCBub3QgZGFzaGVzIG9yIHVuZGVyc2NvcmVzLiBQbGVhc2UgcmVwbGFjZSBkYXNoZXMgYW5kIHVuZGVyc2NvcmVzIGJldHdlZW4gd29yZHMgd2l0aCBzcGFjZXMuIFNldHRpbmdzIHdpbGwgbm90IHdvcmsgYXMgZXhwZWN0ZWQgdW50aWwgY2hhbmdlZC5cIjtcbiAgfVxuICAkYnJlYWtwb2ludDogbWFwLW1lcmdlKCRicmVha3BvaW50LCAoJHNldHRpbmc6ICR2YWx1ZSkpICFnbG9iYWw7XG4gIEByZXR1cm4gdHJ1ZTtcbn1cblxuQG1peGluIGJyZWFrcG9pbnQtY2hhbmdlKCRzZXR0aW5nLCAkdmFsdWUpIHtcbiAgJGJyZWFrcG9pbnQtY2hhbmdlOiBicmVha3BvaW50LXNldCgkc2V0dGluZywgJHZhbHVlKTtcbn1cblxuQG1peGluIGJyZWFrcG9pbnQtc2V0KCRzZXR0aW5nLCAkdmFsdWUpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludC1jaGFuZ2UoJHNldHRpbmcsICR2YWx1ZSk7XG59XG5cbkBtaXhpbiBia3B0LWNoYW5nZSgkc2V0dGluZywgJHZhbHVlKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQtY2hhbmdlKCRzZXR0aW5nLCAkdmFsdWUpO1xufVxuQG1peGluIGJrcHQtc2V0KCRzZXR0aW5nLCAkdmFsdWUpIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludC1jaGFuZ2UoJHNldHRpbmcsICR2YWx1ZSk7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUmVtb3ZlIFNldHRpbmdcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcmVzZXQoJHNldHRpbmdzLi4uKSB7XG4gIEBpZiBsZW5ndGgoJHNldHRpbmdzKSA9PSAxIHtcbiAgICAkc2V0dGluZ3M6IG50aCgkc2V0dGluZ3MsIDEpO1xuICB9XG5cbiAgQGVhY2ggJHNldHRpbmcgaW4gJHNldHRpbmdzIHtcbiAgICAkYnJlYWtwb2ludDogbWFwLXJlbW92ZSgkYnJlYWtwb2ludCwgJHNldHRpbmcpICFnbG9iYWw7XG4gIH1cbiAgQHJldHVybiB0cnVlO1xufVxuXG5AbWl4aW4gYnJlYWtwb2ludC1yZXNldCgkc2V0dGluZ3MuLi4pIHtcbiAgJGJyZWFrcG9pbnQtcmVzZXQ6IGJyZWFrcG9pbnQtcmVzZXQoJHNldHRpbmdzKTtcbn1cblxuQG1peGluIGJrcHQtcmVzZXQoJHNldHRpbmdzLi4uKSB7XG4gICRicmVha3BvaW50LXJlc2V0OiBicmVha3BvaW50LXJlc2V0KCRzZXR0aW5ncyk7XG59IiwiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBQcml2YXRlIEJyZWFrcG9pbnQgVmFyaWFibGVzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6ICgpO1xuJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudDogMCAhZGVmYXVsdDtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBCcmVha3BvaW50IEhhcyBDb250ZXh0XG4vLyBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHlvdSBhcmUgaW5zaWRlIGEgQnJlYWtwb2ludCBxdWVyeVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1oYXMtY29udGV4dCgpIHtcbiAgQGlmIGxlbmd0aCgkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50KSB7XG4gICAgQHJldHVybiB0cnVlO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQnJlYWtwb2ludCBHZXQgQ29udGV4dFxuLy8gJGZlYXR1cmU6IElucHV0IGZlYXR1cmUgdG8gZ2V0IGl0J3MgY3VycmVudCBNUSBjb250ZXh0LiBSZXR1cm5zIGZhbHNlIGlmIG5vIGNvbnRleHRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtZ2V0LWNvbnRleHQoJGZlYXR1cmUpIHtcbiAgQGlmIG1hcC1oYXMta2V5KCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICRmZWF0dXJlKSB7XG4gICAgJGdldDogbWFwLWdldCgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAkZmVhdHVyZSk7XG4gICAgLy8gU3BlY2lhbCBoYW5kbGluZyBvZiBuby1xdWVyeSBmcm9tIGdldCBzaWRlIHNvIC9mYWxzZS8gcHJlcGVuZHMgYXJlbid0IHJldHVybmVkXG4gICAgQGlmICRmZWF0dXJlID09ICduby1xdWVyeScge1xuICAgICAgQGlmIHR5cGUtb2YoJGdldCkgPT0gJ2xpc3QnIGFuZCBsZW5ndGgoJGdldCkgPiAxIGFuZCBudGgoJGdldCwgMSkgPT0gZmFsc2Uge1xuICAgICAgICAkZ2V0OiBudGgoJGdldCwgbGVuZ3RoKCRnZXQpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgQHJldHVybiAkZ2V0O1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaWYgYnJlYWtwb2ludC1oYXMtY29udGV4dCgpIGFuZCAkZmVhdHVyZSA9PSAnbWVkaWEnIHtcbiAgICAgIEByZXR1cm4gYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgbWVkaWEnKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBQcml2YXRlIGZ1bmN0aW9uIHRvIHNldCBjb250ZXh0XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJGZlYXR1cmUsICR2YWx1ZSkge1xuICBAaWYgJHZhbHVlID09ICdtb25vY2hyb21lJyB7XG4gICAgJGZlYXR1cmU6ICdtb25vY2hyb21lJztcbiAgfVxuXG4gICRjdXJyZW50OiBtYXAtZ2V0KCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICRmZWF0dXJlKTtcbiAgQGlmICRjdXJyZW50IGFuZCBsZW5ndGgoJGN1cnJlbnQpID09ICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQge1xuICAgIEB3YXJuIFwiWW91IGhhdmUgYWxyZWFkeSBxdWVyaWVkIGFnYWluc3QgYCN7JGZlYXR1cmV9YC4gVW5leHBlY3RlZCB0aGluZ3MgbWF5IGhhcHBlbiBpZiB5b3UgcXVlcnkgYWdhaW5zdCB0aGUgc2FtZSBmZWF0dXJlIG1vcmUgdGhhbiBvbmNlIGluIHRoZSBzYW1lIGBhbmRgIHF1ZXJ5LiBCcmVha3BvaW50IGlzIG92ZXJ3cml0aW5nIHRoZSBjdXJyZW50IGNvbnRleHQgd2l0aCBgI3skdmFsdWV9YFwiO1xuICB9XG5cbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyLCAkZmVhdHVyZSkge1xuICAgICR2LWhvbGRlcjogKCk7XG4gICAgQGZvciAkaSBmcm9tIDEgdG8gJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudCB7XG4gICAgICBAaWYgJGZlYXR1cmUgPT0gJ21lZGlhJyB7XG4gICAgICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgbWVkaWEnKSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgZmFsc2UpO1xuICAgICAgfVxuICAgIH1cbiAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsICR2YWx1ZSk7XG4gICAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogbWFwLW1lcmdlKCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICgkZmVhdHVyZTogJHYtaG9sZGVyKSkgIWdsb2JhbDtcbiAgfVxuICBAZWxzZSB7XG4gICAgJHYtaG9sZGVyOiBtYXAtZ2V0KCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICRmZWF0dXJlKTtcbiAgICAkbGVuZ3RoOiBsZW5ndGgoJHYtaG9sZGVyKTtcbiAgICBAZm9yICRpIGZyb20gJGxlbmd0aCB0byAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50IC0gMSB7XG4gICAgICBAaWYgJGZlYXR1cmUgPT0gJ21lZGlhJyB7XG4gICAgICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgbWVkaWEnKSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICR2LWhvbGRlcjogYXBwZW5kKCR2LWhvbGRlciwgZmFsc2UpO1xuICAgICAgfVxuICAgIH1cbiAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsICR2YWx1ZSk7XG4gICAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogbWFwLW1lcmdlKCRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXIsICgkZmVhdHVyZTogJHYtaG9sZGVyKSkgIWdsb2JhbDtcbiAgfVxuXG4gIEByZXR1cm4gdHJ1ZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBQcml2YXRlIGZ1bmN0aW9uIHRvIHJlc2V0IGNvbnRleHRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQG1peGluIHByaXZhdGUtYnJlYWtwb2ludC1yZXNldC1jb250ZXh0cyB7XG4gICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6ICgpICFnbG9iYWw7XG4gICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ6IDAgIWdsb2JhbDtcbn0iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIENvbnZlcnRzIHRoZSBpbnB1dCB2YWx1ZSB0byBCYXNlIEVNc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AZnVuY3Rpb24gYnJlYWtwb2ludC10by1iYXNlLWVtKCR2YWx1ZSkge1xuICAkdmFsdWUtdW5pdDogdW5pdCgkdmFsdWUpO1xuXG4gIC8vIFdpbGwgY29udmVydCByZWxhdGl2ZSBFTXMgaW50byByb290IEVNcy5cbiAgQGlmIGJyZWFrcG9pbnQtZ2V0KCdiYXNlIGZvbnQgc2l6ZScpIGFuZCB0eXBlLW9mKGJyZWFrcG9pbnQtZ2V0KCdiYXNlIGZvbnQgc2l6ZScpKSA9PSAnbnVtYmVyJyBhbmQgJHZhbHVlLXVuaXQgPT0gJ2VtJyB7XG4gICAgJGJhc2UtdW5pdDogdW5pdChicmVha3BvaW50LWdldCgnYmFzZSBmb250IHNpemUnKSk7XG5cbiAgICBAaWYgJGJhc2UtdW5pdCA9PSAncHgnIG9yICRiYXNlLXVuaXQgPT0gJyUnIG9yICRiYXNlLXVuaXQgPT0gJ2VtJyBvciAkYmFzZS11bml0ID09ICdwdCcge1xuICAgICAgQHJldHVybiBiYXNlLWNvbnZlcnNpb24oJHZhbHVlKSAvIGJhc2UtY29udmVyc2lvbihicmVha3BvaW50LWdldCgnYmFzZSBmb250IHNpemUnKSkgKiAxZW07XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICcje2JyZWFrcG9pbnQtZ2V0KFxcJ2Jhc2UgZm9udCBzaXplXFwnKX0gaXMgbm90IHNldCBpbiB2YWxpZCB1bml0cyBmb3IgZm9udCBzaXplISc7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBiYXNlLWNvbnZlcnNpb24oJHZhbHVlKTtcbiAgfVxufVxuXG5AZnVuY3Rpb24gYmFzZS1jb252ZXJzaW9uKCR2YWx1ZSkge1xuICAkdW5pdDogdW5pdCgkdmFsdWUpO1xuXG4gIEBpZiAkdW5pdCA9PSAncHgnIHtcbiAgICBAcmV0dXJuICR2YWx1ZSAvIDE2cHggKiAxZW07XG4gIH1cbiAgQGVsc2UgaWYgJHVuaXQgPT0gJyUnIHtcbiAgICBAcmV0dXJuICR2YWx1ZSAvIDEwMCUgKiAxZW07XG4gIH1cbiAgQGVsc2UgaWYgJHVuaXQgPT0gJ2VtJyB7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cbiAgQGVsc2UgaWYgJHVuaXQgPT0gJ3B0JyB7XG4gICAgQHJldHVybiAkdmFsdWUgLyAxMnB0ICogMWVtO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuICR2YWx1ZTtcbi8vICAgIEB3YXJuICdFdmVyeXRoaW5nIGlzIHRlcnJpYmxlISBXaGF0IGhhdmUgeW91IGRvbmU/ISc7XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBSZXR1cm5zIHdoZXRoZXIgdGhlIGZlYXR1cmUgY2FuIGhhdmUgYSBtaW4vbWF4IHBhaXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJGJyZWFrcG9pbnQtbWluLW1heC1mZWF0dXJlczogJ2NvbG9yJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb2xvci1pbmRleCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXNwZWN0LXJhdGlvJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXZpY2UtYXNwZWN0LXJhdGlvJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXZpY2UtaGVpZ2h0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXZpY2Utd2lkdGgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hlaWdodCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbW9ub2Nocm9tZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVzb2x1dGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnd2lkdGgnO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1taW4tbWF4KCRmZWF0dXJlKSB7XG4gIEBlYWNoICRpdGVtIGluICRicmVha3BvaW50LW1pbi1tYXgtZmVhdHVyZXMge1xuICAgIEBpZiAkZmVhdHVyZSA9PSAkaXRlbSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gZmFsc2U7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUmV0dXJucyB3aGV0aGVyIHRoZSBmZWF0dXJlIGNhbiBoYXZlIGEgc3RyaW5nIHZhbHVlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRicmVha3BvaW50LXN0cmluZy1mZWF0dXJlczogICdvcmllbnRhdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2NhbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29sb3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FzcGVjdC1yYXRpbycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGV2aWNlLWFzcGVjdC1yYXRpbycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncG9pbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbHVtaW5vc2l0eSc7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LXN0cmluZy12YWx1ZSgkZmVhdHVyZSkge1xuICBAZWFjaCAkaXRlbSBpbiAkYnJlYWtwb2ludC1zdHJpbmctZmVhdHVyZXMge1xuICAgIEBpZiBicmVha3BvaW50LW1pbi1tYXgoJGl0ZW0pIHtcbiAgICAgIEBpZiAkZmVhdHVyZSA9PSAnbWluLSN7JGl0ZW19JyBvciAkZmVhdHVyZSA9PSAnbWF4LSN7JGl0ZW19JyB7XG4gICAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgaWYgJGZlYXR1cmUgPT0gJGl0ZW0ge1xuICAgICAgQHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuIGZhbHNlO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFJldHVybnMgd2hldGhlciB0aGUgZmVhdHVyZSBpcyBhIG1lZGlhIHR5cGVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJGJyZWFrcG9pbnQtbWVkaWEtdHlwZXM6ICAnYWxsJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JyYWlsbGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAnZW1ib3NzZWQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAnaGFuZGhlbGQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAncHJpbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAncHJvamVjdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdzY3JlZW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAnc3BlZWNoJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R0eScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICd0dic7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LWlzLW1lZGlhKCRmZWF0dXJlKSB7XG4gIEBlYWNoICRtZWRpYSBpbiAkYnJlYWtwb2ludC1tZWRpYS10eXBlcyB7XG4gICAgQGlmICgkZmVhdHVyZSA9PSAkbWVkaWEpIG9yICgkZmVhdHVyZSA9PSAnbm90ICN7JG1lZGlhfScpIG9yICgkZmVhdHVyZSA9PSAnb25seSAjeyRtZWRpYX0nKSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBmYWxzZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBSZXR1cm5zIHdoZXRoZXIgdGhlIGZlYXR1cmUgY2FuIHN0YW5kIGFsb25lXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRicmVha3BvaW50LXNpbmdsZS1zdHJpbmctZmVhdHVyZXM6ICdjb2xvcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29sb3ItaW5kZXgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dyaWQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21vbm9jaHJvbWUnO1xuXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKCRmZWF0dXJlKSB7XG4gIEBlYWNoICRpdGVtIGluICRicmVha3BvaW50LXNpbmdsZS1zdHJpbmctZmVhdHVyZXMge1xuICAgIEBpZiAkZmVhdHVyZSA9PSAkaXRlbSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gZmFsc2U7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUmV0dXJucyB3aGV0aGVyIHRoZSBmZWF0dXJlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LWlzLXJlc29sdXRpb24oJGZlYXR1cmUpIHtcbiAgJHJlc29sdXRpb25zOiAnZGV2aWNlLXBpeGVsLXJhdGlvJywgJ2Rwcic7XG5cbiAgQGlmIGJyZWFrcG9pbnQtZ2V0KCd0cmFuc2Zvcm0gcmVzb2x1dGlvbnMnKSB7XG4gICAgJHJlc29sdXRpb25zOiBhcHBlbmQoJHJlc29sdXRpb25zLCAncmVzb2x1dGlvbicpO1xuICB9XG5cbiAgQGVhY2ggJHJlc28gaW4gJHJlc29sdXRpb25zIHtcbiAgICBAaWYgaW5kZXgoJGZlYXR1cmUsICRyZXNvKSBvciBpbmRleCgkZmVhdHVyZSwgJ21pbi0jeyRyZXNvfScpIG9yIGluZGV4KCRmZWF0dXJlLCAnbWF4LSN7JHJlc299Jykge1xuICAgICAgQHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gZmFsc2U7XG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydCBQYXJzZXIgUGllY2VzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgXCJwYXJzZXJzL3F1ZXJ5XCI7XG5AaW1wb3J0IFwicGFyc2Vycy9zaW5nbGVcIjtcbkBpbXBvcnQgXCJwYXJzZXJzL2RvdWJsZVwiO1xuQGltcG9ydCBcInBhcnNlcnMvdHJpcGxlXCI7XG5AaW1wb3J0IFwicGFyc2Vycy9yZXNvbHV0aW9uXCI7XG5cbiRNZW1vLUV4aXN0czogZnVuY3Rpb24tZXhpc3RzKG1lbW8tZ2V0KSBhbmQgZnVuY3Rpb24tZXhpc3RzKG1lbW8tc2V0KTtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBCcmVha3BvaW50IEZ1bmN0aW9uXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50KCRxdWVyeSwgJGNvbnRleHRzLi4uKSB7XG4gICRydW46IHRydWU7XG4gICRyZXR1cm46ICgpO1xuXG4gIC8vIEdyYWIgdGhlIE1lbW8gT3V0cHV0IGlmIE1lbW9pemF0aW9uIGNhbiBiZSBhIHRoaW5nXG4gIEBpZiAkTWVtby1FeGlzdHMge1xuICAgICRyZXR1cm46IG1lbW8tZ2V0KGJyZWFrcG9pbnQsIGJyZWFrcG9pbnQgJHF1ZXJ5ICRjb250ZXh0cyk7XG5cbiAgICBAaWYgJHJldHVybiAhPSBudWxsIHtcbiAgICAgICRydW46IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBub3QgJE1lbW8tRXhpc3RzIG9yICRydW4ge1xuICAgIC8vIEludGVybmFsIFZhcmlhYmxlc1xuICAgICRxdWVyeS1zdHJpbmc6ICcnO1xuICAgICRxdWVyeS1mYWxsYmFjazogZmFsc2U7XG4gICAgJHJldHVybjogKCk7XG5cbiAgICAvLyBSZXNlcnZlIEdsb2JhbCBQcml2YXRlIEJyZWFrcG9pbnQgQ29udGV4dFxuICAgICRob2xkZXItY29udGV4dDogJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjtcbiAgICAkaG9sZGVyLXF1ZXJ5LWNvdW50OiAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50O1xuXG4gICAgLy8gUmVzZXQgR2xvYmFsIFByaXZhdGUgQnJlYWtwb2ludCBDb250ZXh0XG4gICAgJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcjogKCkgIWdsb2JhbDtcbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiAwICFnbG9iYWw7XG5cblxuICAgIC8vIFRlc3QgdG8gc2VlIGlmIGl0J3MgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdFxuICAgICRvci1saXN0OiBpZihsaXN0LXNlcGFyYXRvcigkcXVlcnkpID09ICdjb21tYScsIHRydWUsIGZhbHNlKTtcblxuXG4gICAgQGlmICgkb3ItbGlzdCA9PSBmYWxzZSBhbmQgYnJlYWtwb2ludC1nZXQoJ2xlZ2FjeSBzeW50YXgnKSA9PSBmYWxzZSkge1xuICAgICAgJHF1ZXJ5LXN0cmluZzogYnJlYWtwb2ludC1wYXJzZSgkcXVlcnkpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkbGVuZ3RoOiBsZW5ndGgoJHF1ZXJ5KTtcblxuICAgICAgJGxhc3Q6IG50aCgkcXVlcnksICRsZW5ndGgpO1xuICAgICAgJHF1ZXJ5LWZhbGxiYWNrOiBicmVha3BvaW50LW5vLXF1ZXJ5KCRsYXN0KTtcblxuICAgICAgQGlmICgkcXVlcnktZmFsbGJhY2sgIT0gZmFsc2UpIHtcbiAgICAgICAgJGxlbmd0aDogJGxlbmd0aCAtIDE7XG4gICAgICB9XG5cbiAgICAgIEBpZiAoYnJlYWtwb2ludC1nZXQoJ2xlZ2FjeSBzeW50YXgnKSA9PSB0cnVlKSB7XG4gICAgICAgICRtcTogKCk7XG5cbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAkbXE6IGFwcGVuZCgkbXEsIG50aCgkcXVlcnksICRpKSwgY29tbWEpO1xuICAgICAgICB9XG5cbiAgICAgICAgJHF1ZXJ5LXN0cmluZzogYnJlYWtwb2ludC1wYXJzZSgkbXEpO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkcXVlcnktc3RyaW5nOiAnJztcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbGVuZ3RoIHtcbiAgICAgICAgICAkcXVlcnktc3RyaW5nOiAkcXVlcnktc3RyaW5nICsgaWYoJGkgPT0gMSwgJycsICcsICcpICsgYnJlYWtwb2ludC1wYXJzZShudGgoJHF1ZXJ5LCAkaSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJHJldHVybjogKCdxdWVyeSc6ICRxdWVyeS1zdHJpbmcsXG4gICAgICAgICdmYWxsYmFjayc6ICRxdWVyeS1mYWxsYmFjayxcbiAgICAgICAgJ2NvbnRleHQgaG9sZGVyJzogJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlcixcbiAgICAgICAgJ3F1ZXJ5IGNvdW50JzogJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudFxuICAgICk7XG4gICAgQGlmIGxlbmd0aCgkY29udGV4dHMpID4gMCBhbmQgbnRoKCRjb250ZXh0cywgMSkgIT0gZmFsc2Uge1xuICAgICAgQGlmICRxdWVyeS1mYWxsYmFjayAhPSBmYWxzZSB7XG4gICAgICAgICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KCduby1xdWVyeScsICRxdWVyeS1mYWxsYmFjayk7XG4gICAgICB9XG4gICAgICAkY29udGV4dC1tYXA6ICgpO1xuICAgICAgQGVhY2ggJGNvbnRleHQgaW4gJGNvbnRleHRzIHtcbiAgICAgICAgJGNvbnRleHQtbWFwOiBtYXAtbWVyZ2UoJGNvbnRleHQtbWFwLCAoJGNvbnRleHQ6IGJyZWFrcG9pbnQtZ2V0LWNvbnRleHQoJGNvbnRleHQpKSk7XG4gICAgICB9XG4gICAgICAkcmV0dXJuOiBtYXAtbWVyZ2UoJHJldHVybiwgKGNvbnRleHQ6ICRjb250ZXh0LW1hcCkpO1xuICAgIH1cblxuICAgIC8vIFJlc2V0IEdsb2JhbCBQcml2YXRlIEJyZWFrcG9pbnQgQ29udGV4dFxuICAgICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6ICgpICFnbG9iYWw7XG4gICAgJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudDogMCAhZ2xvYmFsO1xuXG4gICAgQGlmICRNZW1vLUV4aXN0cyB7XG4gICAgICAkaG9sZGVyOiBtZW1vLXNldChicmVha3BvaW50LCBicmVha3BvaW50ICRxdWVyeSAkY29udGV4dHMsICRyZXR1cm4pO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHJldHVybjtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBHZW5lcmFsIEJyZWFrcG9pbnQgUGFyc2VyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlKCRxdWVyeSkge1xuICAvLyBJbmNyZWFzZSBudW1iZXIgb2YgJ2FuZCcgcXVlcmllc1xuICAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50OiAkcHJpdmF0ZS1icmVha3BvaW50LXF1ZXJ5LWNvdW50ICsgMSAhZ2xvYmFsO1xuXG4gIC8vIFNldCB1cCBNZWRpYSBUeXBlXG4gICRxdWVyeS1wcmludDogJyc7XG5cbiAgJGZvcmNlLWFsbDogKChicmVha3BvaW50LWdldCgnZm9yY2UgYWxsIG1lZGlhIHR5cGUnKSA9PSB0cnVlKSBhbmQgKGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IG1lZGlhJykgPT0gJ2FsbCcpKTtcbiAgJGVtcHR5LW1lZGlhOiB0cnVlO1xuICBAaWYgKCRmb3JjZS1hbGwgPT0gdHJ1ZSkgb3IgKGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IG1lZGlhJykgIT0gJ2FsbCcpIHtcbiAgICAvLyBGb3JjZSB0aGUgcHJpbnQgb2YgdGhlIGRlZmF1bHQgbWVkaWEgdHlwZSBpZiAoZm9yY2UgYWxsIGlzIHRydWUgYW5kIGRlZmF1bHQgbWVkaWEgdHlwZSBpcyBhbGwpIG9yIChkZWZhdWx0IG1lZGlhIHR5cGUgaXMgbm90IGFsbClcbiAgICAkcXVlcnktcHJpbnQ6IGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IG1lZGlhJyk7XG4gICAgJGVtcHR5LW1lZGlhOiBmYWxzZTtcbiAgfVxuXG5cbiAgJHF1ZXJ5LXJlc29sdXRpb246IGZhbHNlO1xuXG4gICRxdWVyeS1ob2xkZXI6IGJyZWFrcG9pbnQtcGFyc2UtcXVlcnkoJHF1ZXJ5KTtcblxuXG5cbiAgLy8gTG9vcCBvdmVyIGVhY2ggcGFyc2VkIG91dCBxdWVyeSBhbmQgd3JpdGUgaXQgdG8gJHF1ZXJ5LXByaW50XG4gICRmaXJzdDogdHJ1ZTtcblxuICBAZWFjaCAkZmVhdHVyZSBpbiAkcXVlcnktaG9sZGVyIHtcbiAgICAkbGVuZ3RoOiBsZW5ndGgoJGZlYXR1cmUpO1xuXG4gICAgLy8gUGFyc2UgYSBzaW5nbGUgZmVhdHVyZVxuICAgIEBpZiAoJGxlbmd0aCA9PSAxKSB7XG4gICAgICAvLyBGZWF0dXJlIGlzIGN1cnJlbnRseSBhIGxpc3QsIGdyYWIgdGhlIGFjdHVhbCB2YWx1ZVxuICAgICAgJGZlYXR1cmU6IG50aCgkZmVhdHVyZSwgMSk7XG5cbiAgICAgIC8vIE1lZGlhIFR5cGUgbXVzdCBieSBjb252ZW50aW9uIGJlIHRoZSBmaXJzdCBpdGVtLCBzbyBpdCdzIHNhZmUgdG8gZmxhdCBvdmVycmlkZSAkcXVlcnktcHJpbnQsIHdoaWNoIHJpZ2h0IG5vdyBzaG91bGQgb25seSBiZSB0aGUgZGVmYXVsdCBtZWRpYSB0eXBlXG4gICAgICBAaWYgKGJyZWFrcG9pbnQtaXMtbWVkaWEoJGZlYXR1cmUpKSB7XG4gICAgICAgIEBpZiAoJGZvcmNlLWFsbCA9PSB0cnVlKSBvciAoJGZlYXR1cmUgIT0gJ2FsbCcpIHtcbiAgICAgICAgICAvLyBGb3JjZSB0aGUgcHJpbnQgb2YgdGhlIGRlZmF1bHQgbWVkaWEgdHlwZSBpZiAoZm9yY2UgYWxsIGlzIHRydWUgYW5kIGRlZmF1bHQgbWVkaWEgdHlwZSBpcyBhbGwpIG9yIChkZWZhdWx0IG1lZGlhIHR5cGUgaXMgbm90IGFsbClcbiAgICAgICAgICAkcXVlcnktcHJpbnQ6ICRmZWF0dXJlO1xuICAgICAgICAgICRlbXB0eS1tZWRpYTogZmFsc2U7XG5cbiAgICAgICAgICAvLyBTZXQgQ29udGV4dFxuICAgICAgICAgICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KG1lZGlhLCAkcXVlcnktcHJpbnQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2Utc2luZ2xlKCRmZWF0dXJlLCAkZW1wdHktbWVkaWEsICRmaXJzdCk7XG4gICAgICAgICRxdWVyeS1wcmludDogJyN7JHF1ZXJ5LXByaW50fSAjeyRwYXJzZWR9JztcbiAgICAgICAgJGZpcnN0OiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gUGFyc2UgYSBkb3VibGUgZmVhdHVyZVxuICAgIEBlbHNlIGlmICgkbGVuZ3RoID09IDIpIHtcbiAgICAgIEBpZiAoYnJlYWtwb2ludC1pcy1yZXNvbHV0aW9uKCRmZWF0dXJlKSAhPSBmYWxzZSkge1xuICAgICAgICAkcXVlcnktcmVzb2x1dGlvbjogJGZlYXR1cmU7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRwYXJzZWQ6IG51bGw7XG4gICAgICAgIC8vIElmIGl0J3MgYSBzdHJpbmcvbnVtYmVyIHBhaXIsXG4gICAgICAgIC8vIHdlIGNoZWNrIHRvIHNlZSBpZiBvbmUgaXMgYSBzaW5nbGUtc3RyaW5nIHZhbHVlLFxuICAgICAgICAvLyB0aGVuIHdlIHBhcnNlIGl0IGFzIGEgbm9ybWFsIGRvdWJsZVxuICAgICAgICAkYWxwaGE6IG50aCgkZmVhdHVyZSwgMSk7XG4gICAgICAgICRiZXRhOiBudGgoJGZlYXR1cmUsIDIpO1xuICAgICAgICBAaWYgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKCRhbHBoYSkgb3IgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKCRiZXRhKSB7XG4gICAgICAgICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1zaW5nbGUoJGFscGhhLCAkZW1wdHktbWVkaWEsICRmaXJzdCk7XG4gICAgICAgICAgJHF1ZXJ5LXByaW50OiAnI3skcXVlcnktcHJpbnR9ICN7JHBhcnNlZH0nO1xuICAgICAgICAgICRmaXJzdDogZmFsc2U7XG4gICAgICAgICAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS1zaW5nbGUoJGJldGEsICRlbXB0eS1tZWRpYSwgJGZpcnN0KTtcbiAgICAgICAgICAkcXVlcnktcHJpbnQ6ICcjeyRxdWVyeS1wcmludH0gI3skcGFyc2VkfSc7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtZG91YmxlKCRmZWF0dXJlLCAkZW1wdHktbWVkaWEsICRmaXJzdCk7XG4gICAgICAgICAgJHF1ZXJ5LXByaW50OiAnI3skcXVlcnktcHJpbnR9ICN7JHBhcnNlZH0nO1xuICAgICAgICAgICRmaXJzdDogZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLy8gUGFyc2UgYSB0cmlwbGUgZmVhdHVyZVxuICAgIEBlbHNlIGlmICgkbGVuZ3RoID09IDMpIHtcbiAgICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtdHJpcGxlKCRmZWF0dXJlLCAkZW1wdHktbWVkaWEsICRmaXJzdCk7XG4gICAgICAkcXVlcnktcHJpbnQ6ICcjeyRxdWVyeS1wcmludH0gI3skcGFyc2VkfSc7XG4gICAgICAkZmlyc3Q6IGZhbHNlO1xuICAgIH1cblxuICB9XG5cbiAgQGlmICgkcXVlcnktcmVzb2x1dGlvbiAhPSBmYWxzZSkge1xuICAgICRxdWVyeS1wcmludDogYnJlYWtwb2ludC1idWlsZC1yZXNvbHV0aW9uKCRxdWVyeS1wcmludCwgJHF1ZXJ5LXJlc29sdXRpb24sICRlbXB0eS1tZWRpYSwgJGZpcnN0KTtcbiAgfVxuXG4gIC8vIExvb3AgdGhyb3VnaCBlYWNoIGZlYXR1cmUgdGhhdCdzIGJlZW4gZGV0ZWN0ZWQgc28gZmFyIGFuZCBhcHBlbmQgJ2ZhbHNlJyB0byB0aGUgdGhlIHZhbHVlIGxpc3QgdG8gaW5jcmVtZW50IHRoZWlyIGNvdW50ZXJzXG4gIEBlYWNoICRmLCAkdiBpbiAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyIHtcbiAgICAkdi1ob2xkZXI6ICR2O1xuICAgICRsZW5ndGg6IGxlbmd0aCgkdi1ob2xkZXIpO1xuICAgIEBpZiBsZW5ndGgoJHYtaG9sZGVyKSA8ICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQge1xuICAgICAgQGZvciAkaSBmcm9tICRsZW5ndGggdG8gJHByaXZhdGUtYnJlYWtwb2ludC1xdWVyeS1jb3VudCB7XG4gICAgICAgIEBpZiAkZiA9PSAnbWVkaWEnIHtcbiAgICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsIGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IG1lZGlhJykpO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAkdi1ob2xkZXI6IGFwcGVuZCgkdi1ob2xkZXIsIGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAkcHJpdmF0ZS1icmVha3BvaW50LWNvbnRleHQtaG9sZGVyOiBtYXAtbWVyZ2UoJHByaXZhdGUtYnJlYWtwb2ludC1jb250ZXh0LWhvbGRlciwgKCRmOiAkdi1ob2xkZXIpKSAhZ2xvYmFsO1xuICB9XG5cbiAgQHJldHVybiAkcXVlcnktcHJpbnQ7XG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS1xdWVyeSgkcXVlcnkpIHtcbiAgLy8gUGFyc2UgZmVhdHVyZXMgb3V0IG9mIGFuIGluZGl2aWR1YWwgcXVlcnlcbiAgJGZlYXR1cmUtaG9sZGVyOiAoKTtcbiAgJHF1ZXJ5LWhvbGRlcjogKCk7XG4gICRsZW5ndGg6IGxlbmd0aCgkcXVlcnkpO1xuXG4gIEBpZiAkbGVuZ3RoID09IDIge1xuICAgIC8vIElmIHdlJ3ZlIGdvdCBhIHN0cmluZy9udW1iZXIsIG51bWJlci9zdHJpbmcsIGNoZWNrIHRvIHNlZSBpZiBpdCdzIGEgdmFsaWQgc3RyaW5nL251bWJlciBwYWlyIG9yIHR3byBzaW5nbGVzXG4gICAgQGlmICh0eXBlLW9mKG50aCgkcXVlcnksIDEpKSA9PSAnc3RyaW5nJyBhbmQgdHlwZS1vZihudGgoJHF1ZXJ5LCAyKSkgPT0gJ251bWJlcicpIG9yICh0eXBlLW9mKG50aCgkcXVlcnksIDEpKSA9PSAnbnVtYmVyJyBhbmQgdHlwZS1vZihudGgoJHF1ZXJ5LCAyKSkgPT0gJ3N0cmluZycpIHtcblxuICAgICAgJG51bWJlcjogJyc7XG4gICAgICAkdmFsdWU6ICcnO1xuXG4gICAgICBAaWYgdHlwZS1vZihudGgoJHF1ZXJ5LCAxKSkgPT0gJ3N0cmluZycge1xuICAgICAgICAkbnVtYmVyOiBudGgoJHF1ZXJ5LCAyKTtcbiAgICAgICAgJHZhbHVlOiBudGgoJHF1ZXJ5LCAxKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJG51bWJlcjogbnRoKCRxdWVyeSwgMSk7XG4gICAgICAgICR2YWx1ZTogbnRoKCRxdWVyeSwgMik7XG4gICAgICB9XG5cbiAgICAgIC8vIElmIHRoZSBzdHJpbmcgdmFsdWUgY2FuIGJlIGEgc2luZ2xlIHZhbHVlLCBjaGVjayB0byBzZWUgaWYgdGhlIG51bWJlciBwYXNzZWQgaW4gaXMgYSB2YWxpZCBpbnB1dCBmb3Igc2FpZCBzaW5nbGUgdmFsdWUuIEZvcnR1bmF0ZWx5LCBhbGwgY3VycmVudCBzaW5nbGUtdmFsdWUgb3B0aW9ucyBvbmx5IGFjY2VwdCB1bml0bGVzcyBudW1iZXJzLCBzbyB0aGlzIGNoZWNrIGlzIGVhc3kuXG4gICAgICBAaWYgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKCR2YWx1ZSkge1xuICAgICAgICBAaWYgdW5pdGxlc3MoJG51bWJlcikge1xuICAgICAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKCR2YWx1ZSwgJG51bWJlciwgc3BhY2UpO1xuICAgICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCAkZmVhdHVyZS1ob2xkZXIsIGNvbW1hKTtcbiAgICAgICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIElmIHRoZSBzdHJpbmcgaXMgYSBtZWRpYSB0eXBlLCBzcGxpdCB0aGUgcXVlcnlcbiAgICAgIEBpZiBicmVha3BvaW50LWlzLW1lZGlhKCR2YWx1ZSkge1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgbnRoKCRxdWVyeSwgMSkpO1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgbnRoKCRxdWVyeSwgMikpO1xuICAgICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgICB9XG4gICAgICAvLyBJZiBpdCdzIG5vdCBhIHNpbmdsZSBmZWF0dXJlLCB3ZSdyZSBqdXN0IGdvaW5nIHRvIGFzc3VtZSBpdCdzIGEgcHJvcGVyIHN0cmluZy92YWx1ZSBwYWlyLCBhbmQgcm9sbCB3aXRoIGl0LlxuICAgICAgQGVsc2Uge1xuICAgICAgICAkZmVhdHVyZS1ob2xkZXI6IGFwcGVuZCgkdmFsdWUsICRudW1iZXIsIHNwYWNlKTtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsICRmZWF0dXJlLWhvbGRlciwgY29tbWEpO1xuICAgICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgICB9XG5cbiAgICB9XG4gICAgLy8gSWYgdGhleSdyZSBib3RoIG51bWJlcnMsIHdlIGFzc3VtZSBpdCdzIGEgZG91YmxlIGFuZCByb2xsIHdpdGggdGhhdFxuICAgIEBlbHNlIGlmICh0eXBlLW9mKG50aCgkcXVlcnksIDEpKSA9PSAnbnVtYmVyJyBhbmQgdHlwZS1vZihudGgoJHF1ZXJ5LCAyKSkgPT0gJ251bWJlcicpIHtcbiAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKG50aCgkcXVlcnksIDEpLCBudGgoJHF1ZXJ5LCAyKSwgc3BhY2UpO1xuICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsICRmZWF0dXJlLWhvbGRlciwgY29tbWEpO1xuICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICAgIH1cbiAgICAvLyBJZiB0aGV5J3JlIGJvdGggc3RyaW5ncyBhbmQgbmVpdGhlciBhcmUgc2luZ2xlcywgd2Ugcm9sbCB3aXRoIHRoYXQuXG4gICAgQGVsc2UgaWYgKHR5cGUtb2YobnRoKCRxdWVyeSwgMSkpID09ICdzdHJpbmcnIGFuZCB0eXBlLW9mKG50aCgkcXVlcnksIDIpKSA9PSAnc3RyaW5nJykge1xuICAgICAgQGlmIG5vdCBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcobnRoKCRxdWVyeSwgMSkpIGFuZCBub3QgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKG50aCgkcXVlcnksIDIpKSB7XG4gICAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKG50aCgkcXVlcnksIDEpLCBudGgoJHF1ZXJ5LCAyKSwgc3BhY2UpO1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgJGZlYXR1cmUtaG9sZGVyLCBjb21tYSk7XG4gICAgICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGxlbmd0aCA9PSAzIHtcbiAgICAvLyBJZiB3ZSd2ZSBnb3QgdGhyZWUgaXRlbXMgYW5kIG5vbmUgaXMgYSBsaXN0LCB3ZSBjaGVjayB0byBzZWVcbiAgICBAaWYgdHlwZS1vZihudGgoJHF1ZXJ5LCAxKSkgIT0gJ2xpc3QnIGFuZCB0eXBlLW9mKG50aCgkcXVlcnksIDIpKSAhPSAnbGlzdCcgYW5kIHR5cGUtb2YobnRoKCRxdWVyeSwgMykpICE9ICdsaXN0JyB7XG4gICAgICAvLyBJZiBub25lIG9mIHRoZSBpdGVtcyBhcmUgc2luZ2xlIHN0cmluZyB2YWx1ZXMgYW5kIG5vbmUgb2YgdGhlIHZhbHVlcyBhcmUgbWVkaWEgdmFsdWVzLCB3ZSdyZSBnb29kLlxuICAgICAgQGlmIChub3QgYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKG50aCgkcXVlcnksIDEpKSBhbmQgbm90IGJyZWFrcG9pbnQtc2luZ2xlLXN0cmluZyhudGgoJHF1ZXJ5LCAyKSkgYW5kIG5vdCBicmVha3BvaW50LXNpbmdsZS1zdHJpbmcobnRoKCRxdWVyeSwgMykpKSBhbmQgICgobm90IGJyZWFrcG9pbnQtaXMtbWVkaWEobnRoKCRxdWVyeSwgMSkpIGFuZCBub3QgYnJlYWtwb2ludC1pcy1tZWRpYShudGgoJHF1ZXJ5LCAyKSkgYW5kIG5vdCBicmVha3BvaW50LWlzLW1lZGlhKG50aCgkcXVlcnksIDMpKSkpIHtcbiAgICAgICAgJGZlYXR1cmUtaG9sZGVyOiBhcHBlbmQobnRoKCRxdWVyeSwgMSksIG50aCgkcXVlcnksIDIpLCBzcGFjZSk7XG4gICAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKCRmZWF0dXJlLWhvbGRlciwgbnRoKCRxdWVyeSwgMyksIHNwYWNlKTtcbiAgICAgICAgJHF1ZXJ5LWhvbGRlcjogYXBwZW5kKCRxdWVyeS1ob2xkZXIsICRmZWF0dXJlLWhvbGRlciwgY29tbWEpO1xuICAgICAgICBAcmV0dXJuICRxdWVyeS1ob2xkZXI7XG4gICAgICB9XG4gICAgICAvLyBsZXQncyBjaGVjayB0byBzZWUgaWYgdGhlIGZpcnN0IGl0ZW0gaXMgYSBtZWRpYSB0eXBlXG4gICAgICBAZWxzZSBpZiBicmVha3BvaW50LWlzLW1lZGlhKG50aCgkcXVlcnksIDEpKSB7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6IGFwcGVuZCgkcXVlcnktaG9sZGVyLCBudGgoJHF1ZXJ5LCAxKSk7XG4gICAgICAgICRmZWF0dXJlLWhvbGRlcjogYXBwZW5kKG50aCgkcXVlcnksIDIpLCBudGgoJHF1ZXJ5LCAzKSwgc3BhY2UpO1xuICAgICAgICAkcXVlcnktaG9sZGVyOiBhcHBlbmQoJHF1ZXJ5LWhvbGRlciwgJGZlYXR1cmUtaG9sZGVyKTtcbiAgICAgICAgQHJldHVybiAkcXVlcnktaG9sZGVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIElmIGl0J3MgYSBzaW5nbGUgaXRlbSwgb3IgaWYgaXQncyBub3QgYSBzcGVjaWFsIGNhc2UgZG91YmxlIG9yIHRyaXBsZSwgd2UgY2FuIHNpbXBseSByZXR1cm4gdGhlIHF1ZXJ5LlxuICBAcmV0dXJuICRxdWVyeTtcbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW1wb3J0IFBpZWNlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0IFwic2luZ2xlL2RlZmF1bHRcIjtcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2Utc2luZ2xlKCRmZWF0dXJlLCAkZW1wdHktbWVkaWEsICRmaXJzdCkge1xuICAkcGFyc2VkOiAnJztcbiAgJGxlYWRlcjogJyc7XG4gIC8vIElmIHdlJ3JlIGZvcmNpbmdcbiAgQGlmIG5vdCAoJGVtcHR5LW1lZGlhKSBvciBub3QgKCRmaXJzdCkge1xuICAgICRsZWFkZXI6ICdhbmQgJztcbiAgfVxuXG4gIC8vIElmIGl0J3MgYSBzaW5nbGUgZmVhdHVyZSB0aGF0IGNhbiBzdGFuZCBhbG9uZSwgd2UgbGV0IGl0XG4gIEBpZiAoYnJlYWtwb2ludC1zaW5nbGUtc3RyaW5nKCRmZWF0dXJlKSkge1xuICAgICRwYXJzZWQ6ICRmZWF0dXJlO1xuICAgIC8vIFNldCBDb250ZXh0XG4gICAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJGZlYXR1cmUsICRmZWF0dXJlKTtcbiAgfVxuICAvLyBJZiBpdCdzIG5vdCBhIHN0YW5kIGFsb25lIGZlYXR1cmUsIHdlIHBhc3MgaXQgb2ZmIHRvIHRoZSBkZWZhdWx0IGhhbmRsZXIuXG4gIEBlbHNlIHtcbiAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLWRlZmF1bHQoJGZlYXR1cmUpO1xuICB9XG5cbiAgQHJldHVybiAkbGVhZGVyICsgJygnICsgJHBhcnNlZCArICcpJztcbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLWRlZmF1bHQoJGZlYXR1cmUpIHtcbiAgJGRlZmF1bHQ6IGJyZWFrcG9pbnQtZ2V0KCdkZWZhdWx0IGZlYXR1cmUnKTtcblxuICAvLyBTZXQgQ29udGV4dFxuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgkZGVmYXVsdCwgJGZlYXR1cmUpO1xuXG4gIEBpZiAoYnJlYWtwb2ludC1nZXQoJ3RvIGVtcycpID09IHRydWUpIGFuZCAodHlwZS1vZigkZmVhdHVyZSkgPT0gJ251bWJlcicpIHtcbiAgICBAcmV0dXJuICcjeyRkZWZhdWx0fTogI3ticmVha3BvaW50LXRvLWJhc2UtZW0oJGZlYXR1cmUpfSc7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gJyN7JGRlZmF1bHR9OiAjeyRmZWF0dXJlfSc7XG4gIH1cbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSW1wb3J0IFBpZWNlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0IFwiZG91YmxlL2RlZmF1bHQtcGFpclwiO1xuQGltcG9ydCBcImRvdWJsZS9kb3VibGUtc3RyaW5nXCI7XG5AaW1wb3J0IFwiZG91YmxlL2RlZmF1bHRcIjtcblxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtcGFyc2UtZG91YmxlKCRmZWF0dXJlLCAkZW1wdHktbWVkaWEsICRmaXJzdCkge1xuICAkcGFyc2VkOiAnJztcbiAgJGxlYWRlcjogJyc7XG4gIC8vIElmIHdlJ3JlIGZvcmNpbmdcbiAgQGlmIG5vdCAoJGVtcHR5LW1lZGlhKSBvciBub3QgKCRmaXJzdCkge1xuICAgICRsZWFkZXI6ICdhbmQgJztcbiAgfVxuXG4gICRmaXJzdDogbnRoKCRmZWF0dXJlLCAxKTtcbiAgJHNlY29uZDogbnRoKCRmZWF0dXJlLCAyKTtcblxuICAvLyBJZiB3ZSd2ZSBnb3QgdHdvIG51bWJlcnMsIHdlIGtub3cgd2UgbmVlZCB0byB1c2UgdGhlIGRlZmF1bHQgcGFpciBiZWNhdXNlIHRoZXJlIGFyZSBubyBtZWRpYSBxdWVyaWVzIHRoYXQgaGFzIGEgbWVkaWEgZmVhdHVyZSB0aGF0IGlzIGEgbnVtYmVyXG4gIEBpZiB0eXBlLW9mKCRmaXJzdCkgPT0gJ251bWJlcicgYW5kIHR5cGUtb2YoJHNlY29uZCkgPT0gJ251bWJlcicge1xuICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtZGVmYXVsdC1wYWlyKCRmaXJzdCwgJHNlY29uZCk7XG4gIH1cbiAgLy8gSWYgdGhleSBhcmUgYm90aCBzdHJpbmdzLCB3ZSBzZW5kIGl0IHRocm91Z2ggdGhlIHN0cmluZyBwYXJzZXJcbiAgQGVsc2UgaWYgdHlwZS1vZigkZmlyc3QpID09ICdzdHJpbmcnIGFuZCB0eXBlLW9mKCRzZWNvbmQpID09ICdzdHJpbmcnIHtcbiAgICAkcGFyc2VkOiBicmVha3BvaW50LXBhcnNlLWRvdWJsZS1zdHJpbmcoJGZpcnN0LCAkc2Vjb25kKTtcbiAgfVxuICAvLyBJZiBpdCdzIGEgc3RyaW5nL251bWJlciBwYWlyLCB3ZSBwYXJzZSBpdCBhcyBhIG5vcm1hbCBkb3VibGVcbiAgQGVsc2Uge1xuICAgICRwYXJzZWQ6IGJyZWFrcG9pbnQtcGFyc2UtZG91YmxlLWRlZmF1bHQoJGZpcnN0LCAkc2Vjb25kKTtcbiAgfVxuXG4gIEByZXR1cm4gJGxlYWRlciArICRwYXJzZWQ7XG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS1kZWZhdWx0LXBhaXIoJGZpcnN0LCAkc2Vjb25kKSB7XG4gICRkZWZhdWx0OiBicmVha3BvaW50LWdldCgnZGVmYXVsdCBwYWlyJyk7XG4gICRtaW46ICcnO1xuICAkbWF4OiAnJztcblxuICAvLyBTb3J0IGludG8gbWluIGFuZCBtYXhcbiAgJG1pbjogbWluKCRmaXJzdCwgJHNlY29uZCk7XG4gICRtYXg6IG1heCgkZmlyc3QsICRzZWNvbmQpO1xuXG4gIC8vIFNldCBDb250ZXh0XG4gICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KG1pbi0jeyRkZWZhdWx0fSwgJG1pbik7XG4gICRjb250ZXh0LXNldHRlcjogcHJpdmF0ZS1icmVha3BvaW50LXNldC1jb250ZXh0KG1heC0jeyRkZWZhdWx0fSwgJG1heCk7XG5cbiAgLy8gTWFrZSB0aGVtIEVNcyBpZiBuZWVkIGJlXG4gIEBpZiAoYnJlYWtwb2ludC1nZXQoJ3RvIGVtcycpID09IHRydWUpIHtcbiAgICAkbWluOiBicmVha3BvaW50LXRvLWJhc2UtZW0oJG1pbik7XG4gICAgJG1heDogYnJlYWtwb2ludC10by1iYXNlLWVtKCRtYXgpO1xuICB9XG5cbiAgQHJldHVybiAnKG1pbi0jeyRkZWZhdWx0fTogI3skbWlufSkgYW5kIChtYXgtI3skZGVmYXVsdH06ICN7JG1heH0pJztcbn1cbiIsIkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLWRvdWJsZS1zdHJpbmcoJGZpcnN0LCAkc2Vjb25kKSB7XG4gICRmZWF0dXJlOiAnJztcbiAgJHZhbHVlOiAnJztcblxuICAvLyBUZXN0IHRvIHNlZSB3aGljaCBpcyB0aGUgZmVhdHVyZSBhbmQgd2hpY2ggaXMgdGhlIHZhbHVlXG4gIEBpZiAoYnJlYWtwb2ludC1zdHJpbmctdmFsdWUoJGZpcnN0KSA9PSB0cnVlKSB7XG4gICAgJGZlYXR1cmU6ICRmaXJzdDtcbiAgICAkdmFsdWU6ICRzZWNvbmQ7XG4gIH1cbiAgQGVsc2UgaWYgKGJyZWFrcG9pbnQtc3RyaW5nLXZhbHVlKCRzZWNvbmQpID09IHRydWUpIHtcbiAgICAkZmVhdHVyZTogJHNlY29uZDtcbiAgICAkdmFsdWU6ICRmaXJzdDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gXCJOZWl0aGVyICN7JGZpcnN0fSBub3IgI3skc2Vjb25kfSBpcyBhIHZhbGlkIG1lZGlhIHF1ZXJ5IG5hbWUuXCI7XG4gIH1cblxuICAvLyBTZXQgQ29udGV4dFxuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgkZmVhdHVyZSwgJHZhbHVlKTtcblxuICBAcmV0dXJuICcoI3skZmVhdHVyZX06ICN7JHZhbHVlfSknO1xufSIsIkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLWRvdWJsZS1kZWZhdWx0KCRmaXJzdCwgJHNlY29uZCkge1xuICAkZmVhdHVyZTogJyc7XG4gICR2YWx1ZTogJyc7XG5cbiAgQGlmIHR5cGUtb2YoJGZpcnN0KSA9PSAnc3RyaW5nJyB7XG4gICAgJGZlYXR1cmU6ICRmaXJzdDtcbiAgICAkdmFsdWU6ICRzZWNvbmQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgICRmZWF0dXJlOiAkc2Vjb25kO1xuICAgICR2YWx1ZTogJGZpcnN0O1xuICB9XG5cbiAgLy8gU2V0IENvbnRleHRcbiAgJGNvbnRleHQtc2V0dGVyOiBwcml2YXRlLWJyZWFrcG9pbnQtc2V0LWNvbnRleHQoJGZlYXR1cmUsICR2YWx1ZSk7XG5cbiAgQGlmIChicmVha3BvaW50LWdldCgndG8gZW1zJykgPT0gdHJ1ZSkge1xuICAgICR2YWx1ZTogYnJlYWtwb2ludC10by1iYXNlLWVtKCR2YWx1ZSk7XG4gIH1cblxuICBAcmV0dXJuICcoI3skZmVhdHVyZX06ICN7JHZhbHVlfSknXG59XG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydCBQaWVjZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcInRyaXBsZS9kZWZhdWx0XCI7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LXBhcnNlLXRyaXBsZSgkZmVhdHVyZSwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpIHtcbiAgJHBhcnNlZDogJyc7XG4gICRsZWFkZXI6ICcnO1xuXG4gIC8vIElmIHdlJ3JlIGZvcmNpbmdcbiAgQGlmIG5vdCAoJGVtcHR5LW1lZGlhKSBvciBub3QgKCRmaXJzdCkge1xuICAgICRsZWFkZXI6ICdhbmQgJztcbiAgfVxuXG4gIC8vIHNlcGFyYXRlIHRoZSBzdHJpbmcgZmVhdHVyZXMgZnJvbSB0aGUgdmFsdWUgbnVtYmVyc1xuICAkc3RyaW5nOiBudWxsO1xuICAkbnVtYmVyczogbnVsbDtcbiAgQGVhY2ggJHZhbCBpbiAkZmVhdHVyZSB7XG4gICAgQGlmIHR5cGUtb2YoJHZhbCkgPT0gc3RyaW5nIHtcbiAgICAgICRzdHJpbmc6ICR2YWw7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBpZiB0eXBlLW9mKCRudW1iZXJzKSA9PSAnbnVsbCcge1xuICAgICAgICAkbnVtYmVyczogJHZhbDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJG51bWJlcnM6IGFwcGVuZCgkbnVtYmVycywgJHZhbCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJHBhcnNlZDogYnJlYWtwb2ludC1wYXJzZS10cmlwbGUtZGVmYXVsdCgkc3RyaW5nLCBudGgoJG51bWJlcnMsIDEpLCBudGgoJG51bWJlcnMsIDIpKTtcblxuICBAcmV0dXJuICRsZWFkZXIgKyAkcGFyc2VkO1xuXG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1wYXJzZS10cmlwbGUtZGVmYXVsdCgkZmVhdHVyZSwgJGZpcnN0LCAkc2Vjb25kKSB7XG5cbiAgLy8gU29ydCBpbnRvIG1pbiBhbmQgbWF4XG4gICRtaW46IG1pbigkZmlyc3QsICRzZWNvbmQpO1xuICAkbWF4OiBtYXgoJGZpcnN0LCAkc2Vjb25kKTtcblxuICAvLyBTZXQgQ29udGV4dFxuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dChtaW4tI3skZmVhdHVyZX0sICRtaW4pO1xuICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dChtYXgtI3skZmVhdHVyZX0sICRtYXgpO1xuXG4gIC8vIE1ha2UgdGhlbSBFTXMgaWYgbmVlZCBiZVxuICBAaWYgKGJyZWFrcG9pbnQtZ2V0KCd0byBlbXMnKSA9PSB0cnVlKSB7XG4gICAgJG1pbjogYnJlYWtwb2ludC10by1iYXNlLWVtKCRtaW4pO1xuICAgICRtYXg6IGJyZWFrcG9pbnQtdG8tYmFzZS1lbSgkbWF4KTtcbiAgfVxuXG4gIEByZXR1cm4gJyhtaW4tI3skZmVhdHVyZX06ICN7JG1pbn0pIGFuZCAobWF4LSN7JGZlYXR1cmV9OiAjeyRtYXh9KSc7XG59XG4iLCJAaW1wb3J0IFwicmVzb2x1dGlvbi9yZXNvbHV0aW9uXCI7XG5cbkBmdW5jdGlvbiBicmVha3BvaW50LWJ1aWxkLXJlc29sdXRpb24oJHF1ZXJ5LXByaW50LCAkcXVlcnktcmVzb2x1dGlvbiwgJGVtcHR5LW1lZGlhLCAkZmlyc3QpIHtcbiAgJGxlYWRlcjogJyc7XG4gIC8vIElmIHdlJ3JlIGZvcmNpbmdcbiAgQGlmIG5vdCAoJGVtcHR5LW1lZGlhKSBvciBub3QgKCRmaXJzdCkge1xuICAgICRsZWFkZXI6ICdhbmQgJztcbiAgfVxuXG4gIEBpZiBicmVha3BvaW50LWdldCgndHJhbnNmb3JtIHJlc29sdXRpb25zJykgYW5kICRxdWVyeS1yZXNvbHV0aW9uIHtcbiAgICAkcmVzb2x1dGlvbnM6IGJyZWFrcG9pbnQtbWFrZS1yZXNvbHV0aW9ucygkcXVlcnktcmVzb2x1dGlvbik7XG4gICAgJGxlbmd0aDogbGVuZ3RoKCRyZXNvbHV0aW9ucyk7XG4gICAgJHF1ZXJ5LWhvbGRlcjogJyc7XG5cbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRsZW5ndGgge1xuICAgICAgJHF1ZXJ5OiAnI3skcXVlcnktcHJpbnR9ICN7JGxlYWRlcn0je250aCgkcmVzb2x1dGlvbnMsICRpKX0nO1xuICAgICAgQGlmICRpID09IDEge1xuICAgICAgICAkcXVlcnktaG9sZGVyOiAkcXVlcnk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRxdWVyeS1ob2xkZXI6ICcjeyRxdWVyeS1ob2xkZXJ9LCAjeyRxdWVyeX0nO1xuICAgICAgfVxuICAgIH1cblxuICAgIEByZXR1cm4gJHF1ZXJ5LWhvbGRlcjtcbiAgfVxuICBAZWxzZSB7XG4gICAgLy8gUmV0dXJuIHdpdGggYXR0YWNoZWQgcmVzb2x1dGlvblxuICAgIEByZXR1cm4gJHF1ZXJ5LXByaW50O1xuICB9XG59XG4iLCJAZnVuY3Rpb24gYnJlYWtwb2ludC1tYWtlLXJlc29sdXRpb25zKCRyZXNvbHV0aW9uKSB7XG4gICRsZW5ndGg6IGxlbmd0aCgkcmVzb2x1dGlvbik7XG5cbiAgJG91dHB1dDogKCk7XG5cbiAgQGlmICRsZW5ndGggPT0gMiB7XG4gICAgJGZlYXR1cmU6ICcnO1xuICAgICR2YWx1ZTogJyc7XG5cbiAgICAvLyBGaW5kIHdoaWNoIGlzIG51bWJlclxuICAgIEBpZiB0eXBlLW9mKG50aCgkcmVzb2x1dGlvbiwgMSkpID09ICdudW1iZXInIHtcbiAgICAgICR2YWx1ZTogbnRoKCRyZXNvbHV0aW9uLCAxKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJHZhbHVlOiBudGgoJHJlc29sdXRpb24sIDIpO1xuICAgIH1cblxuICAgIC8vIERldGVybWluZSBtaW4vbWF4L3N0YW5kYXJkXG4gICAgQGlmIGluZGV4KCRyZXNvbHV0aW9uLCAnbWluLXJlc29sdXRpb24nKSB7XG4gICAgICAkZmVhdHVyZTogJ21pbi0nO1xuICAgIH1cbiAgICBAZWxzZSBpZiBpbmRleCgkcmVzb2x1dGlvbiwgJ21heC1yZXNvbHV0aW9uJykge1xuICAgICAgJGZlYXR1cmU6ICdtYXgtJztcbiAgICB9XG5cbiAgICAkc3RhbmRhcmQ6ICcoI3skZmVhdHVyZX1yZXNvbHV0aW9uOiAjeyR2YWx1ZX0pJztcblxuICAgIC8vIElmIHdlJ3JlIG5vdCBkZWFsaW5nIHdpdGggZHBweCxcbiAgICBAaWYgdW5pdCgkdmFsdWUpICE9ICdkcHB4JyB7XG4gICAgICAkYmFzZTogOTZkcGk7XG4gICAgICBAaWYgdW5pdCgkdmFsdWUpID09ICdkcGNtJyB7XG4gICAgICAgICRiYXNlOiAyNDMuODRkcGNtO1xuICAgICAgfVxuICAgICAgLy8gV3JpdGUgb3V0IGZlYXR1cmUgdGVzdHNcbiAgICAgICR3ZWJraXQ6ICcnO1xuICAgICAgJG1vejogJyc7XG4gICAgICAkd2Via2l0OiAnKC13ZWJraXQtI3skZmVhdHVyZX1kZXZpY2UtcGl4ZWwtcmF0aW86ICN7JHZhbHVlIC8gJGJhc2V9KSc7XG4gICAgICAkbW96OiAnKCN7JGZlYXR1cmV9LW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86ICN7JHZhbHVlIC8gJGJhc2V9KSc7XG4gICAgICAvLyBBcHBlbmQgdG8gb3V0cHV0XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJHN0YW5kYXJkLCBzcGFjZSk7XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJHdlYmtpdCwgc3BhY2UpO1xuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICRtb3osIHNwYWNlKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJHdlYmtpdDogJyc7XG4gICAgICAkbW96OiAnJztcbiAgICAgICR3ZWJraXQ6ICcoLXdlYmtpdC0jeyRmZWF0dXJlfWRldmljZS1waXhlbC1yYXRpbzogI3skdmFsdWUgLyAxZHBweH0pJztcbiAgICAgICRtb3o6ICcoI3skZmVhdHVyZX0tbW96LWRldmljZS1waXhlbC1yYXRpbzogI3skdmFsdWUgLyAxZHBweH0pJztcbiAgICAgICRmYWxsYmFjazogJygjeyRmZWF0dXJlfXJlc29sdXRpb246ICN7JHZhbHVlIC8gMWRwcHggKiA5NmRwaX0pJztcbiAgICAgIC8vIEFwcGVuZCB0byBvdXRwdXRcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkc3RhbmRhcmQsIHNwYWNlKTtcbiAgICAgICRvdXRwdXQ6IGFwcGVuZCgkb3V0cHV0LCAkd2Via2l0LCBzcGFjZSk7XG4gICAgICAkb3V0cHV0OiBhcHBlbmQoJG91dHB1dCwgJG1veiwgc3BhY2UpO1xuICAgICAgJG91dHB1dDogYXBwZW5kKCRvdXRwdXQsICRmYWxsYmFjaywgc3BhY2UpO1xuICAgIH1cblxuICB9XG5cbiAgQHJldHVybiAkb3V0cHV0O1xufVxuIiwiQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbm8tcXVlcnkoJHF1ZXJ5KSB7XG4gIEBpZiB0eXBlLW9mKCRxdWVyeSkgPT0gJ2xpc3QnIHtcbiAgICAka2V5d29yZDogbnRoKCRxdWVyeSwgMSk7XG5cbiAgICBAaWYgdHlwZS1vZigka2V5d29yZCkgPT0gJ3N0cmluZycgYW5kICgka2V5d29yZCA9PSAnbm8tcXVlcnknIG9yICRrZXl3b3JkID09ICdubyBxdWVyeScgb3IgJGtleXdvcmQgPT0gJ2ZhbGxiYWNrJykge1xuICAgICAgQHJldHVybiBudGgoJHF1ZXJ5LCAyKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gRGVmYXVsdCB0aGUgQnJlYWtwb2ludHMgdmFyaWFibGVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJGJyZWFrcG9pbnRzOiAoKSAhZGVmYXVsdDtcbiRCUkVBS1BPSU5UUzogKCkgIWRlZmF1bHQ7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gUmVzcG9uZC10byBBUEkgTWl4aW5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQG1peGluIHJlc3BvbmQtdG8oJGNvbnRleHQsICRuby1xdWVyeTogZmFsc2UpIHtcbiAgQGlmIGxlbmd0aCgkYnJlYWtwb2ludHMpID4gMCBhbmQgbGVuZ3RoKCRCUkVBS1BPSU5UUykgPT0gMCB7XG4gICAgQHdhcm4gXCJJbiBvcmRlciB0byBhdm9pZCB2YXJpYWJsZSBuYW1lc3BhY2UgY29sbGlzaW9ucywgd2UgaGF2ZSB1cGRhdGVkIHRoZSB3YXkgdG8gYWRkIGJyZWFrcG9pbnRzIGZvciByZXNwb25kLXRvLiBQbGVhc2UgY2hhbmdlIGFsbCBpbnN0YW5jZXMgb2YgYCRicmVha3BvaW50czogYWRkLWJyZWFrcG9pbnQoKWAgdG8gYEBpbmNsdWRlIGFkZC1icmVha3BvaW50KClgLiBUaGUgYGFkZC1icmVha3BvaW50KClgIGZ1bmN0aW9uIHdpbGwgYmUgZGVwcmVjYXRlZCBpbiBhIGZ1dHVyZSByZWxlYXNlLlwiO1xuICAgICRCUkVBS1BPSU5UUzogJGJyZWFrcG9pbnRzICFnbG9iYWw7XG4gICAgJGJyZWFrcG9pbnRzOiAoKSAhZ2xvYmFsO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJEJSRUFLUE9JTlRTKSAhPSAnbWFwJyB7XG4gICAgLy8gSnVzdCBpbiBjYXNlIHNvbWVvbmUgd3JpdGVzIGdpYmJlcmlzaCB0byB0aGUgJGJyZWFrcG9pbnRzIHZhcmlhYmxlLlxuICAgIEB3YXJuIFwiWW91ciBicmVha3BvaW50cyBhcmVuJ3QgYSBtYXAhIGByZXNwb25kLXRvYCBleHBlY3RzIGEgbWFwLiBQbGVhc2UgY2hlY2sgdGhlIHZhbHVlIG9mICRCUkVBS1BPSU5UUyB2YXJpYWJsZS5cIjtcbiAgICBAY29udGVudDtcbiAgfVxuICBAZWxzZSBpZiBtYXAtaGFzLWtleSgkQlJFQUtQT0lOVFMsICRjb250ZXh0KSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtYXAtZ2V0KCRCUkVBS1BPSU5UUywgJGNvbnRleHQpLCAkbm8tcXVlcnkpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiBub3QgbWFwLWhhcy1rZXkoJEJSRUFLUE9JTlRTLCAkY29udGV4dCkge1xuICAgIEB3YXJuIFwiYCN7JGNvbnRleHR9YCBpc24ndCBhIGRlZmluZWQgYnJlYWtwb2ludCEgUGxlYXNlIGFkZCBpdCB1c2luZyBgJGJyZWFrcG9pbnRzOiBhZGQtYnJlYWtwb2ludChgI3skY29udGV4dH1gLCAkdmFsdWUpO2BcIjtcbiAgICBAY29udGVudDtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHdhcm4gXCJZb3UgaGF2ZW4ndCBjcmVhdGVkIGFueSBicmVha3BvaW50cyB5ZXQhIE1ha2Ugc29tZSBhbHJlYWR5ISBgQGluY2x1ZGUgYWRkLWJyZWFrcG9pbnQoJG5hbWUsICRia3B0KWBcIjtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEFkZCBCcmVha3BvaW50IHRvIEJyZWFrcG9pbnRzXG4vLyBUT0RPOiBSZW1vdmUgZnVuY3Rpb24gaW4gbmV4dCByZWxlYXNlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBmdW5jdGlvbiBhZGQtYnJlYWtwb2ludCgkbmFtZSwgJGJrcHQsICRvdmVyd3JpdGU6IGZhbHNlKSB7XG4gICRvdXRwdXQ6ICgkbmFtZTogJGJrcHQpO1xuXG4gIEBpZiBsZW5ndGgoJGJyZWFrcG9pbnRzKSA9PSAwIHtcbiAgICBAcmV0dXJuICRvdXRwdXQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRuYW1lKSBhbmQgJG92ZXJ3cml0ZSAhPSB0cnVlIHtcbiAgICAgIEB3YXJuIFwiWW91IGFscmVhZHkgaGF2ZSBhIGJyZWFrcG9pbnQgbmFtZWQgYCN7JG5hbWV9YCwgcGxlYXNlIGNob29zZSBhbm90aGVyIGJyZWFrcG9pbnQgbmFtZSwgb3IgcGFzcyBpbiBgJG92ZXJ3cml0ZTogdHJ1ZWAgdG8gb3ZlcndyaXRlIHRoZSBwcmV2aW91cyBicmVha3BvaW50LlwiO1xuICAgICAgQHJldHVybiAkYnJlYWtwb2ludHM7XG4gICAgfVxuICAgIEBlbHNlIGlmIG5vdCBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRuYW1lKSBvciAkb3ZlcndyaXRlID09IHRydWUge1xuICAgICAgQHJldHVybiBtYXAtbWVyZ2UoJGJyZWFrcG9pbnRzLCAkb3V0cHV0KTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGFkZC1icmVha3BvaW50KCRuYW1lLCAkYmtwdCwgJG92ZXJ3cml0ZTogZmFsc2UpIHtcbiAgJG91dHB1dDogKCRuYW1lOiAkYmtwdCk7XG5cbiAgQGlmIGxlbmd0aCgkQlJFQUtQT0lOVFMpID09IDAge1xuICAgICRCUkVBS1BPSU5UUzogJG91dHB1dCAhZ2xvYmFsO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJEJSRUFLUE9JTlRTLCAkbmFtZSkgYW5kICRvdmVyd3JpdGUgIT0gdHJ1ZSB7XG4gICAgICBAd2FybiBcIllvdSBhbHJlYWR5IGhhdmUgYSBicmVha3BvaW50IG5hbWVkIGAjeyRuYW1lfWAsIHBsZWFzZSBjaG9vc2UgYW5vdGhlciBicmVha3BvaW50IG5hbWUsIG9yIHBhc3MgaW4gYCRvdmVyd3JpdGU6IHRydWVgIHRvIG92ZXJ3cml0ZSB0aGUgcHJldmlvdXMgYnJlYWtwb2ludC5cIjtcbiAgICAgICRCUkVBS1BPSU5UUzogJEJSRUFLUE9JTlRTICFnbG9iYWw7XG4gICAgfVxuICAgIEBlbHNlIGlmIG5vdCBtYXAtaGFzLWtleSgkQlJFQUtQT0lOVFMsICRuYW1lKSBvciAkb3ZlcndyaXRlID09IHRydWUge1xuICAgICAgJEJSRUFLUE9JTlRTOiBtYXAtbWVyZ2UoJEJSRUFLUE9JTlRTLCAkb3V0cHV0KSAhZ2xvYmFsO1xuICAgIH1cbiAgfVxufVxuXG5AZnVuY3Rpb24gZ2V0LWJyZWFrcG9pbnQoJG5hbWU6IGZhbHNlKSB7XG4gIEBpZiAkbmFtZSA9PSBmYWxzZSB7XG4gICAgQHJldHVybiAkQlJFQUtQT0lOVFM7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gbWFwLWdldCgkQlJFQUtQT0lOVFMsICRuYW1lKTtcbiAgfVxufVxuIiwiQG1peGluIGxlZ2FjeS1zZXR0aW5ncy13YXJuaW5nIHtcbiAgJGxlZ2FjeVZhcnM6IChcbiAgICAnZGVmYXVsdC1tZWRpYSc6ICdkZWZhdWx0IG1lZGlhJyxcbiAgICAnZGVmYXVsdC1mZWF0dXJlJzogJ2RlZmF1bHQgZmVhdHVyZScsXG4gICAgJ2ZvcmNlLW1lZGlhLWFsbCc6ICdmb3JjZSBhbGwgbWVkaWEgdHlwZScsXG4gICAgJ3RvLWVtcyc6ICd0byBlbXMnLFxuICAgICdyZXNvbHV0aW9ucyc6ICd0cmFuc2Zvcm0gcmVzb2x1dGlvbnMnLFxuICAgICduby1xdWVyaWVzJzogJ25vIHF1ZXJpZXMnLFxuICAgICduby1xdWVyeS1mYWxsYmFja3MnOiAnbm8gcXVlcnkgZmFsbGJhY2tzJyxcbiAgICAnYmFzZS1mb250LXNpemUnOiAnYmFzZSBmb250IHNpemUnLFxuICAgICdsZWdhY3ktc3ludGF4JzogJ2xlZ2FjeSBzeW50YXgnXG4gICk7XG5cbiAgQGVhY2ggJGxlZ2FjeSwgJG5ldyBpbiAkbGVnYWN5VmFycyB7XG4gICAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtJyArICRsZWdhY3kpIHtcbiAgICAgIEB3YXJuIFwiSW4gb3JkZXIgdG8gYXZvaWQgdmFyaWFibGUgbmFtc3BhY2UgY29sbGlzaW9ucywgd2UgaGF2ZSB1cGRhdGVkIHRoZSB3YXkgdG8gY2hhbmdlIHNldHRpbmdzIGZvciBCcmVha3BvaW50LiBQbGVhc2UgY2hhbmdlIGFsbCBpbnN0YW5jZXMgb2YgYCRicmVha3BvaW50LSN7JGxlZ2FjeX06IHt7c2V0dGluZ319YCB0byBgQGluY2x1ZGUgYnJlYWtwb2ludC1zZXQoJyN7JG5ld30nLCB7e3NldHRpbmd9fSlgLiBWYXJpYWJsZSBzZXR0aW5ncywgYXMgd2VsbCBhcyB0aGlzIHdhcm5pbmcgd2lsbCBiZSBkZXByZWNhdGVkIGluIGEgZnV0dXJlIHJlbGVhc2UuXCJcbiAgICB9XG4gIH07XG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vIEhhbmQgY29ycmVjdCBlYWNoIHNldHRpbmdcbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LWRlZmF1bHQtbWVkaWEnKSBhbmQgJGJyZWFrcG9pbnQtZGVmYXVsdC1tZWRpYSAhPSBicmVha3BvaW50LWdldCgnZGVmYXVsdCBtZWRpYScpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgnZGVmYXVsdCBtZWRpYScsICRicmVha3BvaW50LWRlZmF1bHQtbWVkaWEpO1xuICB9XG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LWRlZmF1bHQtZmVhdHVyZScpIGFuZCAkYnJlYWtwb2ludC1kZWZhdWx0LWZlYXR1cmUgIT0gYnJlYWtwb2ludC1nZXQoJ2RlZmF1bHQgZmVhdHVyZScpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgnZGVmYXVsdCBmZWF0dXJlJywgJGJyZWFrcG9pbnQtZGVmYXVsdC1mZWF0dXJlKTtcbiAgfVxuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC1mb3JjZS1tZWRpYS1hbGwnKSBhbmQgJGJyZWFrcG9pbnQtZm9yY2UtbWVkaWEtYWxsICE9IGJyZWFrcG9pbnQtZ2V0KCdmb3JjZSBhbGwgbWVkaWEgdHlwZScpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgnZm9yY2UgYWxsIG1lZGlhIHR5cGUnLCAkYnJlYWtwb2ludC1mb3JjZS1tZWRpYS1hbGwpO1xuICB9XG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LXRvLWVtcycpIGFuZCAkYnJlYWtwb2ludC10by1lbXMgIT0gYnJlYWtwb2ludC1nZXQoJ3RvIGVtcycpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgndG8gZW1zJywgJGJyZWFrcG9pbnQtdG8tZW1zKTtcbiAgfVxuICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygnYnJlYWtwb2ludC1yZXNvbHV0aW9ucycpIGFuZCAkYnJlYWtwb2ludC1yZXNvbHV0aW9ucyAhPSBicmVha3BvaW50LWdldCgndHJhbnNmb3JtIHJlc29sdXRpb25zJykge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCd0cmFuc2Zvcm0gcmVzb2x1dGlvbnMnLCAkYnJlYWtwb2ludC1yZXNvbHV0aW9ucyk7XG4gIH1cbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtbm8tcXVlcmllcycpIGFuZCAkYnJlYWtwb2ludC1uby1xdWVyaWVzICE9IGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyaWVzJykge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCdubyBxdWVyaWVzJywgJGJyZWFrcG9pbnQtbm8tcXVlcmllcyk7XG4gIH1cbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtbm8tcXVlcnktZmFsbGJhY2tzJykgYW5kICRicmVha3BvaW50LW5vLXF1ZXJ5LWZhbGxiYWNrcyAhPSBicmVha3BvaW50LWdldCgnbm8gcXVlcnkgZmFsbGJhY2tzJykge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCdubyBxdWVyeSBmYWxsYmFja3MnLCAkYnJlYWtwb2ludC1uby1xdWVyeS1mYWxsYmFja3MpO1xuICB9XG4gIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKCdicmVha3BvaW50LWJhc2UtZm9udC1zaXplJykgYW5kICRicmVha3BvaW50LWJhc2UtZm9udC1zaXplICE9IGJyZWFrcG9pbnQtZ2V0KCdiYXNlIGZvbnQgc2l6ZScpIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50LXNldCgnYmFzZSBmb250IHNpemUnLCAkYnJlYWtwb2ludC1iYXNlLWZvbnQtc2l6ZSk7XG4gIH1cbiAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoJ2JyZWFrcG9pbnQtbGVnYWN5LXN5bnRheCcpIGFuZCAkYnJlYWtwb2ludC1sZWdhY3ktc3ludGF4ICE9IGJyZWFrcG9pbnQtZ2V0KCdsZWdhY3kgc3ludGF4Jykge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQtc2V0KCdsZWdhY3kgc3ludGF4JywgJGJyZWFrcG9pbnQtbGVnYWN5LXN5bnRheCk7XG4gIH1cbn0iLCJAaW1wb3J0IFwiZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiei1pbmRleFwiO1xuQGltcG9ydCBcIm1lZGlhLXF1ZXJpZXNcIjtcbkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJ1bmlib2FyZFwiO1xuQGltcG9ydCBcIm1peGluc1wiO1xuQGltcG9ydCBcImV4dGVuZHNcIjtcbkBpbXBvcnQgXCJmbGV4XCI7XG5AaW1wb3J0IFwiYm94XCI7XG5AaW1wb3J0IFwiZmx1aWQtc2l6ZVwiO1xuIiwiLy8vIFotaW5kZXhlcyBtYXAsIGdhdGhlcmluZyBhbGwgWiBsYXllcnMgb2YgdGhlIGFwcGxpY2F0aW9uXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8gQHR5cGUgTWFwXG4vLy8gQHByb3Age1N0cmluZ30ga2V5IC0gTGF5ZXLigJlzIG5hbWVcbi8vLyBAcHJvcCB7TnVtYmVyfSB2YWx1ZSAtIFogdmFsdWUgbWFwcGVkIHRvIHRoZSBrZXlcbiR6LWluZGV4ZXM6IChcImNnX19wcm9tb3Rpb25cIjogMjA1LCBcImNnX19waWVjZS5kcmFnZ2luZ1wiOiAyMDQsIFwiY2dfX3BpZWNlLmFuaW1cIjogMywgXCJjZ19fc3ZnXCI6IDIsIFwiY2dfX3BpZWNlXCI6IDIsIFwiY2dfX3BpZWNlLmZhZGluZ1wiOiAxLCBcInBvd2VydGlwXCI6IDEyMCwgXCJpbnF1aXJ5XCI6IDExMSwgXCJ6ZW4tdG9nZ2xlXCI6IDExMCwgXCJtb2RhbFwiOiAxMTAsIFwibXNlbGVjdFwiOiAxMTAsIFwidG9wbmF2XCI6IDExMCwgXCJmdWxsc2NyZWVuLW1hc2tcIjogMTA5LCBcImRyb3Bkb3duXCI6IDEwOCwgXCJjb250ZXh0LW1lbnVcIjogMTA3LCBcInNpdGUtaGVhZGVyXCI6IDEwNiwgXCJyZWNvbm5lY3RpbmdcIjogMTA1LCBcInRvdXItcmVtaW5kZXJcIjogMTA0LCBcIm5hZy1jaXJjbGVcIjogMTAzLCBcIm16LW1lbnVcIjogNCwgXCJhYm92ZS1saW5rLW92ZXJsYXlcIjogMywgXCJmcmllbmQtYm94XCI6IDIsIFwibGluay1vdmVybGF5XCI6IDIsIFwiZ2FtZS1ib29rbWFya1wiOiAyLCBcInN1Ym5hdi1zaWRlXCI6IDIsIFwiZGVmYXVsdFwiOiAwKTtcblxuLy8vIEdldCBhIHotaW5kZXggdmFsdWUgZnJvbSBhIGxheWVyIG5hbWVcbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbGF5ZXIgLSBMYXllcuKAmXMgbmFtZVxuLy8vIEByZXR1cm4ge051bWJlcn1cbi8vLyBAcmVxdWlyZSAkei1pbmRleGVzXG5AZnVuY3Rpb24geigkbGF5ZXIpIHtcbiAgQHJldHVybiBtYXAtZ2V0KCR6LWluZGV4ZXMsICRsYXllcik7XG59XG4iLCIvKiBXaWR0aHMgKi9cblxuJG1xLXh4LXNtYWxsOiBtaW4td2lkdGggNTAwcHg7XG4kbXEteC1zbWFsbDogbWluLXdpZHRoIDY1MHB4O1xuJG1xLXNtYWxsOiBtaW4td2lkdGggODAwcHg7XG4kbXEtbWVkaXVtOiBtaW4td2lkdGggOTgwcHg7XG4kbXEtbGFyZ2U6IG1pbi13aWR0aCAxMTIwcHg7XG4kbXEteC1sYXJnZTogbWluLXdpZHRoIDEyNjBweDtcblxuJG1xLW5vdC14eC1zbWFsbDogbWF4LXdpZHRoIDQ5OXB4O1xuJG1xLW5vdC14LXNtYWxsOiBtYXgtd2lkdGggNjQ5cHg7XG4kbXEtbm90LXNtYWxsOiBtYXgtd2lkdGggNzk5cHg7XG4kbXEtbm90LW1lZGl1bTogbWF4LXdpZHRoIDk3OXB4O1xuJG1xLW5vdC14LWxhcmdlOiBtYXgtd2lkdGggMTI1OXB4O1xuXG4vKiBIZWlnaHRzICovXG5cbiRtcS14LXNob3J0OiBtaW4taGVpZ2h0IDQwMHB4O1xuJG1xLXNob3J0OiBtaW4taGVpZ2h0IDUwMHB4O1xuJG1xLXRhbGw6IG1pbi1oZWlnaHQgNjAwcHg7XG4kbXEteC10YWxsOiBtaW4taGVpZ2h0IDcwMHB4O1xuXG4kbXEtbm90LXgtc2hvcnQ6IG1heC1oZWlnaHQgMzk5cHg7XG5cbi8qIE9yaWVudGF0aW9ucyAqL1xuXG4kbXEtcG9ydHJhaXQ6IG9yaWVudGF0aW9uIHBvcnRyYWl0O1xuJG1xLWxhbmRzY2FwZTogb3JpZW50YXRpb24gbGFuZHNjYXBlO1xuXG4vKiBDYXBhYmlsaXRpZXMgKi9cblxuJG1xLWhvdmVyLXllczogXCJob3ZlcjogaG92ZXJcIjtcbiRtcS1ob3Zlci1ubzogaG92ZXIgbm9uZTtcblxuLyogQWxpYXNlcyAqL1xuXG4kbXEtbWFpbi1tYXJnaW46ICRtcS1zbWFsbDtcblxuJG1xLXRvcG5hdi12aXNpYmxlOiAkbXEtbWVkaXVtO1xuJG1xLXRvcG5hdi1oaWRkZW46ICRtcS1ub3QtbWVkaXVtO1xuXG4kbXEtc2l0ZS1oZWFkZXItdGFsbDogJG1xLXRhbGw7XG5cbiRtcS1zdWJuYXYtdG9wOiAkbXEtbm90LXNtYWxsO1xuJG1xLXN1Ym5hdi1zaWRlOiAkbXEtc21hbGw7XG5cbiRtcS16b29tLWVuYWJsZWQ6ICRtcS1zbWFsbCAkbXEtc2hvcnQ7XG4iLCIkZGVidWc6IGZhbHNlO1xuXG4kZm9udC1wYXRoOiBcIi4uL2ZvbnRcIjtcbiRpbWctcGF0aDogXCIuLi9pbWFnZXNcIjtcblxuJHZpZXdwb3J0LW1pbi13aWR0aDogMzIwcHg7XG5cbiRibG9jay1nYXA6IDJ2bWluO1xuJGJsb2NrLWdhcC1oYWxmOiAxdm1pbjtcblxuJGJsb2NrLWdhcC1oOiAydmg7XG4kYmxvY2stZ2FwLXc6IDJ2dztcbiRibG9jay1nYXAtdy1oYWxmOiAxdnc7XG5cbiRib3gtcmFkaXVzLXNpemU6IDNweDtcblxuJHNpdGUtaGVhZGVyLXRhbGwtaGVpZ2h0OiA2MHB4O1xuJHNpdGUtaGVhZGVyLXNob3J0LWhlaWdodDogNDBweDtcblxuJHRyYW5zaXRpb24tZHVyYXRpb246IDE1MG1zO1xuXG4kbWFpbi1tYXgtd2lkdGg6IDEzMDBweCAhZGVmYXVsdDtcblxuJG1haW4tbWFyZ2luOiB2YXIoLS1tYWluLW1hcmdpbik7XG4kc2l0ZS1oZWFkZXItaGVpZ2h0OiB2YXIoLS1zaXRlLWhlYWRlci1oZWlnaHQpO1xuXG4kc2l0ZS1oZWFkZXItbWFyZ2luOiB2YXIoLS1zaXRlLWhlYWRlci1tYXJnaW4pO1xuXG4kc2l0ZS1oZWFkZXItb3V0ZXItaGVpZ2h0OiBjYWxjKCN7JHNpdGUtaGVhZGVyLWhlaWdodH0gKyAjeyRzaXRlLWhlYWRlci1tYXJnaW59KTtcbiIsIi8qIFVuaWJvYXJkOiBrZWVwIHRoZSBzYW1lIHBhZ2UgbGF5b3V0IGFjY3Jvc3MgcGFnZXMgKi9cblxuJG1xLWJvYXJkLXJlc2l6YWJsZTogJG1xLXNtYWxsO1xuJG1xLWNvbDEtdW5pYm9hcmQ6ICRtcS1ub3Qtc21hbGwgJG1xLXBvcnRyYWl0O1xuJG1xLWNvbDItdW5pYm9hcmQ6ICRtcS1zbWFsbCwgJG1xLWxhbmRzY2FwZTtcbiRtcS1jb2wzLXVuaWJvYXJkOiAkbXEteC1sYXJnZTtcblxuLyogd2hlbiB0aGUgd2lkdGggaXMgYXBwcm9wcmlhdGUgZm9yIGNvbDEsIGJ1dCBsYW5kc2NhcGUgcHJldmVudHMgaXQgKi9cbiRtcS1jb2wyLXVuaWJvYXJkLXNxdWVlemU6ICRtcS1ub3Qtc21hbGwgJG1xLWxhbmRzY2FwZTtcblxuJGNvbDMtdW5pYm9hcmQtc2lkZTogbWlubWF4KDIzMHB4LCAyMHZ3KTtcbiRjb2wzLXVuaWJvYXJkLXRhYmxlOiBtaW5tYXgoMjQwcHgsIDQwMHB4KTtcbiRjb2wzLXVuaWJvYXJkLWNvbnRyb2xzOiAzcmVtO1xuXG4kY29sMy11bmlib2FyZC1taW4td2lkdGg6IGNhbGMoNzB2bWluICogdmFyKC0tYm9hcmQtc2NhbGUpKTtcbiRjb2wzLXVuaWJvYXJkLW1heC13aWR0aDogY2FsYygxMDB2aCAqIHZhcigtLWJvYXJkLXNjYWxlKSAtICN7JHNpdGUtaGVhZGVyLW91dGVyLWhlaWdodH0gLSAjeyRjb2wzLXVuaWJvYXJkLWNvbnRyb2xzfSk7XG4kY29sMy11bmlib2FyZC13aWR0aDogbWlubWF4KCRjb2wzLXVuaWJvYXJkLW1pbi13aWR0aCwgJGNvbDMtdW5pYm9hcmQtbWF4LXdpZHRoKTtcblxuJGNvbDMtdW5pYm9hcmQtZGVmYXVsdC1zY2FsZTogMC45O1xuXG4vLyB6b29tOiA4NSVcbiRjb2wzLXVuaWJvYXJkLWRlZmF1bHQtbWluLXdpZHRoOiA1MDBweDtcbiRjb2wzLXVuaWJvYXJkLWRlZmF1bHQtbWF4LXdpZHRoOiBjYWxjKDEwMHZoICogI3skY29sMy11bmlib2FyZC1kZWZhdWx0LXNjYWxlfSAtICN7JHNpdGUtaGVhZGVyLW91dGVyLWhlaWdodH0gLSAjeyRjb2wzLXVuaWJvYXJkLWNvbnRyb2xzfSk7XG4kY29sMy11bmlib2FyZC1kZWZhdWx0LXdpZHRoOiBtaW5tYXgoI3skY29sMy11bmlib2FyZC1kZWZhdWx0LW1pbi13aWR0aH0sICN7JGNvbDMtdW5pYm9hcmQtZGVmYXVsdC1tYXgtd2lkdGh9KTtcblxuJGNvbDItdW5pYm9hcmQtdGFibGU6ICRjb2wzLXVuaWJvYXJkLXRhYmxlO1xuJGNvbDItdW5pYm9hcmQtY29udHJvbHM6ICRjb2wzLXVuaWJvYXJkLWNvbnRyb2xzO1xuJGNvbDItdW5pYm9hcmQtd2lkdGg6ICRjb2wzLXVuaWJvYXJkLXdpZHRoO1xuJGNvbDItdW5pYm9hcmQtZGVmYXVsdC13aWR0aDogJGNvbDMtdW5pYm9hcmQtZGVmYXVsdC13aWR0aDtcblxuJGNvbDItdW5pYm9hcmQtc3F1ZWV6ZS10YWJsZTogbWlubWF4KDIwMHB4LCAyNDBweCk7XG4kY29sMi11bmlib2FyZC1zcXVlZXplLXdpZHRoOiBtaW5tYXgoY2FsYyg1NXZtaW4pLCBjYWxjKDEwMHZoIC0gI3skc2l0ZS1oZWFkZXItb3V0ZXItaGVpZ2h0fSAtICN7JGJsb2NrLWdhcH0pKTtcblxuJGNvbDEtdW5pYm9hcmQtY29udHJvbHM6ICRjb2wyLXVuaWJvYXJkLWNvbnRyb2xzO1xuIiwiQG1peGluIGJveC1yYWRpdXMge1xuICBib3JkZXItcmFkaXVzOiAkYm94LXJhZGl1cy1zaXplO1xufVxuXG5AbWl4aW4gYm94LXNoYWRvdyB7XG4gIGJveC1zaGFkb3c6ICRib3gtc2hhZG93O1xufVxuXG5AbWl4aW4gYm94LW5lYXQge1xuICBAaW5jbHVkZSBib3gtcmFkaXVzO1xuICBAaW5jbHVkZSBib3gtc2hhZG93O1xufVxuXG5AbWl4aW4gZGVidWctem9vbS1pbnB1dCB7XG4gICN6b29tLWlucHV0IHtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbXEtem9vbS1lbmFibGVkKSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgIGJvdHRvbTogM3B4O1xuICAgICAgcmlnaHQ6IDNweDtcbiAgICAgIHdpZHRoOiAxMHZ3O1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gdHJhbnNpdGlvbigkcHJvcDogYWxsLCAkZHVyOiAkdHJhbnNpdGlvbi1kdXJhdGlvbikge1xuICB0cmFuc2l0aW9uOiAkcHJvcCAkZHVyO1xufVxuXG5AbWl4aW4gaG92ZXJmbG93IHtcbiAgb3ZlcmZsb3cteTogYXV0bztcblxuICBAbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBoaWRlIHtcbiAgZGlzcGxheTogbm9uZTtcblxuICAuYmxpbmQtbW9kZSAmIHtcbiAgICBkaXNwbGF5OiBpbmhlcml0O1xuICB9XG59XG5cbkBtaXhpbiBlbGxpcHNpcyB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG5AbWl4aW4gY3Jvc3N0YWJsZS1sYXJnZSB7XG4gIC5jcm9zc3RhYmxlX191c2VycyB7XG4gICAgZmxleDogNyAxIGF1dG87XG4gIH1cbn1cblxuQG1peGluIGNyb3NzdGFibGUtc21hbGwge1xuICAuY3Jvc3N0YWJsZV9fdXNlcnMge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICB9XG59XG5cbi8qIGF0bSBvbmx5IGNocm9tZSBzdXBwb3J0cyBtaW4tY29udGVudCwgbWF4LWNvbnRlbnQgKi9cbkBtaXhpbiBwcm9wZXItZ3JpZCB7XG4gIEBzdXBwb3J0cyAoaGVpZ2h0OiBtYXgtY29udGVudCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBib2R5LWZpeGVkLXNjcm9sbCB7XG4gIGJvZHkge1xuICAgIC8qIHByZXZlbnRzIHNjcm9sbCBiYXIgZmxpY2tlciB3aGVuIGRyYWdnaW5nIGEgcGllY2Ugb3V0ICovXG4gICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICB9XG59XG4iLCIlYmFzZS1mb250LWZhbGxiYWNrIHtcbiAgZm9udC1mYW1pbHk6ICdOb3RvIFNhbnMnLCBTYW5zLVNlcmlmO1xufVxuXG4lYmFzZS1mb250IHtcbiAgZm9udC1mYW1pbHk6ICdOb3RvIFNhbnMnO1xufVxuXG4lcm9ib3RvIHtcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nO1xufVxuXG4lcm9ib3RvLWZhdCB7XG4gIGZvbnQtZmFtaWx5OiAnUm9ib3RvJztcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuJWNoZXNzLWZvbnQge1xuICBmb250LWZhbWlseTogJ05vdG8gQ2hlc3MnLCAnTm90byBTYW5zJztcbn1cblxuJXNhbiB7XG4gIEBleHRlbmQgJWNoZXNzLWZvbnQ7XG5cbiAgLnBpZWNlLWxldHRlciAmIHtcbiAgICBAZXh0ZW5kICViYXNlLWZvbnQ7XG4gIH1cbn1cblxuLyogdGV4dCBwcmludGVkIGRpcmVjdGx5IG9uIHRoZSBwYWdlIGJhY2tncm91bmQgZGVzZXJ2ZXMgc3BlY2lhbCB0cmVhdG1lbnQgKHRyYW5zcCB0aGVtZSkgKi9cbiVwYWdlLWZvbnQge1xuICBjb2xvcjogJGMtZm9udC1wYWdlO1xufVxuXG4lcGFnZS10ZXh0IHtcbiAgQGV4dGVuZCAlcGFnZS1mb250LCAlcGFnZS10ZXh0LXNoYWRvdyAhb3B0aW9uYWw7XG59XG5cbiVwYWdlLWxpbmsge1xuICBAZXh0ZW5kICVwYWdlLWxpbmstZm9udCAhb3B0aW9uYWw7XG5cbiAgQGV4dGVuZCAlcGFnZS10ZXh0LXNoYWRvdyAhb3B0aW9uYWw7XG59XG5cbiVtZXRhbCB7XG4gIEBpbmNsdWRlIG1ldGFsO1xufVxuXG4lbWV0YWwtaG92ZXIge1xuICBAaW5jbHVkZSBtZXRhbC1ob3Zlcjtcbn1cblxuJXBhZ2UtbWV0YWwge1xuICBAaW5jbHVkZSBwYWdlLW1ldGFsO1xufVxuXG4lcGFnZS1tZXRhbC1ob3ZlciB7XG4gIEBpbmNsdWRlIHBhZ2UtbWV0YWw7XG59XG5cbiVtZXRhbC1iZyB7XG4gIEBpbmNsdWRlIG1ldGFsLWJnO1xufVxuXG4lYWN0aXZlLWluc2V0LXNoYWRvdyB7XG4gIGJveC1zaGFkb3c6IDAgM3B4IDRweCBoc2xhKDAsIDAsIDAsIDAuMTUpIGluc2V0O1xufVxuXG4lYWN0aXZlIHtcbiAgQGV4dGVuZCAlYWN0aXZlLWluc2V0LXNoYWRvdztcblxuICBiYWNrZ3JvdW5kOiAjYmQxMTFmO1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1zaGFkb3c6IDFweCAxcHggMXB4IHdoaXRlICFpbXBvcnRhbnQ7XG59XG5cbiN0cmFpbmVyIGdyb3VwLnJhZGlvIGlucHV0OmNoZWNrZWQgKyBsYWJlbHtcbiAgYmFja2dyb3VuZDogIzA0NTZiYztcbn1cblxuJWFjdGl2ZS1ob3ZlciB7XG4gIGJhY2tncm91bmQ6IG1peCh3aGl0ZSwgJGMtYWNjZW50LCAyMCUpO1xufVxuXG4lYWN0aXZlLXNvZnQge1xuICBAZXh0ZW5kICVhY3RpdmUtaW5zZXQtc2hhZG93O1xuXG4gIGJhY2tncm91bmQ6ICMwNDU2YmM7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICB0ZXh0LXNoYWRvdzogMXB4IDFweCAxcHggJGMtZm9udC1zaGFkb3cgIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbiVkcm9wZG93bi1zaGFkb3cge1xuICBib3gtc2hhZG93OiAtMXB4IDVweCA2cHggcmdiYSgwLCAwLCAwLCAwLjMpO1xufVxuXG4lcG9wdXAtc2hhZG93IHtcbiAgYm94LXNoYWRvdzogMCAxNHB4IDI4cHggcmdiYSgwLCAwLCAwLCAwLjI1KSwgMCAxMHB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjIyKTtcbn1cblxuJWJ1dHRvbi1zaGFkb3cge1xuICBib3gtc2hhZG93OiAwIDJweCA1cHggMCBoc2xhKDAsIDAsIDAlLCAwLjIyNSk7XG59XG5cbiVidXR0b24tcmFpc2VkLXNoYWRvdyB7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDEwcHggMHB4IGhzbGEoMCwgMCwgMCwgMC4yMjUpO1xufVxuXG4lYnV0dG9uLW5vbmUge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGNvbG9yOiAkYy1mb250O1xufVxuXG4lY2hlY2tib3gge1xuICBAZXh0ZW5kICVib3gtcmFkaXVzO1xuXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgYmFja2dyb3VuZDogJGMtYmctcGFnZTtcbiAgYm9yZGVyOiAxcHggc29saWQgJGMtYmctbG93O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IC41ZW07XG5cbiAgJjpjaGVja2VkIHtcbiAgICBiYWNrZ3JvdW5kOiAjMDQ1NmJjO1xuICAgIGJvcmRlci1jb2xvcjogIzA0NTZiYztcbiAgfVxufVxuXG4lZm9jdXMtc2hhZG93IHtcbiAgYm94LXNoYWRvdzogMCAwIDEycHggJGMtZm9udC1kaW07XG59XG5cbiVub3dyYXAtaGlkZGVuIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuJW5vd3JhcC1lbGxpcHNpcyB7XG4gIEBleHRlbmQgJWVsbGlwc2lzO1xuXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbiVib3gtcGFkZGluZyB7XG4gIHBhZGRpbmc6IDV2aCB2YXIoLS1ib3gtcGFkZGluZyk7XG59XG5cbiVib3gtcGFkZGluZy1ob3JpeiB7XG4gIHBhZGRpbmc6IDAgdmFyKC0tYm94LXBhZGRpbmcpO1xufVxuXG4lYnJlYWstd29yZCB7XG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG59XG5cbiVicmVhay13b3JkLWhhcmQge1xuICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG5cbiAgLyogc3VwcG9ydDogZmlyZWZveCAqL1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xufVxuXG4lYnJlYWstbm9wZSB7XG4gIG92ZXJmbG93LXdyYXA6IG5vcm1hbDtcbiAgd29yZC1icmVhazogbm9ybWFsO1xufVxuXG4lZWxsaXBzaXMge1xuICBAaW5jbHVkZSBlbGxpcHNpcztcbn1cblxuJXNxdWFyZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMDtcbiAgcGFkZGluZy1ib3R0b206IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ldmlkZW8ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDA7XG4gIHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7XG5cbiAgLyogMTYvOSAqL1xuICAvLyBwYWRkaW5nLWJvdHRvbTogNzUlOyAvKiA0LzMgKi9cbiAgd2lkdGg6IDEwMCU7XG5cbiAgPiAqIHtcbiAgICBAZXh0ZW5kICVhYnMtMTAwO1xuXG4gICAgYm9yZGVyOiBub25lO1xuICB9XG59XG5cbiVkYXRhLWljb24ge1xuICBmb250LXNpemU6IDEuMmVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBmb250LWZhbWlseTogJ2xpY2hlc3MnO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBzcGVhazogbm9uZTtcbiAgY29udGVudDogYXR0cihkYXRhLWljb24pO1xuICBvcGFjaXR5OiAwLjk7XG59XG5cbiVkYXRhLWljb24tdG9wIHtcbiAgJjo6YmVmb3JlIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC10b3A7XG4gIH1cbn1cblxuJWZ1bGxzY3JlZW4tbWFzayB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICBiYWNrZ3JvdW5kOiAkYy1wYWdlLW1hc2s7XG4gIHotaW5kZXg6IHooXCJmdWxsc2NyZWVuLW1hc2tcIik7XG59XG5cbiVsaW5rLW92ZXJsYXkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgei1pbmRleDogeihcImxpbmstb3ZlcmxheVwiKTtcbn1cblxuJWFicy0xMDAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4iLCIlZmxleC13cmFwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgd3JhcDtcbn1cblxuJWZsZXgtY2VudGVyIHtcbiAgLyogZXh0ZW5kcyAlZmxleC13cmFwICovXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbiVmbGV4LWNlbnRlci1ub3dyYXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbiVmbGV4LWJldHdlZW4ge1xuICAvKiBleHRlbmRzICVmbGV4LWNlbnRlciAqL1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5cbiVmbGV4LWJldHdlZW4tbm93cmFwIHtcbiAgLyogZXh0ZW5kcyAlZmxleC1jZW50ZXIgKi9cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1mbG93OiByb3cgbm93cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5cbiVmbGV4LWJldHdlZW4tc3RyZXRjaCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG59XG5cbiVmbGV4LWFyb3VuZCB7XG4gIC8qIGV4dGVuZHMgJWZsZXgtY2VudGVyICovXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xufVxuXG4lZmxleC1jb2x1bW4ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IGNvbHVtbjtcbn1cbiIsIiVib3gtcmFkaXVzIHtcbiAgQGluY2x1ZGUgYm94LXJhZGl1cztcbn1cblxuJWJveC1yYWRpdXMtZm9yY2Uge1xuICBAZXh0ZW5kICVib3gtcmFkaXVzO1xuXG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgLyogaGVscHMgd2l0aCBjbGlwcGluZyBiYWNrZ3JvdW5kIGludG8gYm9yZGVyLXJhZGl1cyAqL1xufVxuXG4lYm94LXJhZGl1cy1sZWZ0IHtcbiAgYm9yZGVyLXJhZGl1czogJGJveC1yYWRpdXMtc2l6ZSAwIDAgJGJveC1yYWRpdXMtc2l6ZTtcbn1cblxuJWJveC1yYWRpdXMtcmlnaHQge1xuICBib3JkZXItcmFkaXVzOiAwICRib3gtcmFkaXVzLXNpemUgJGJveC1yYWRpdXMtc2l6ZSAwO1xufVxuXG4lYm94LXJhZGl1cy10b3Age1xuICBib3JkZXItcmFkaXVzOiAkYm94LXJhZGl1cy1zaXplICRib3gtcmFkaXVzLXNpemUgMCAwO1xufVxuXG4lYm94LXJhZGl1cy1ib3R0b20ge1xuICBib3JkZXItcmFkaXVzOiAwIDAgJGJveC1yYWRpdXMtc2l6ZSAkYm94LXJhZGl1cy1zaXplO1xufVxuXG4lYm94LXJhZGl1cy10b3AtbGVmdCB7XG4gIGJvcmRlci1yYWRpdXM6ICRib3gtcmFkaXVzLXNpemUgMCAwIDA7XG59XG5cbiVib3gtcmFkaXVzLXRvcC1yaWdodCB7XG4gIGJvcmRlci1yYWRpdXM6IDAgJGJveC1yYWRpdXMtc2l6ZSAwIDA7XG59XG5cbiVib3gtc2hhZG93IHtcbiAgQGluY2x1ZGUgYm94LXNoYWRvdztcbn1cblxuJWJveC1uZWF0IHtcbiAgQGV4dGVuZCAlYm94LXNoYWRvdywgJWJveC1yYWRpdXM7XG59XG5cbiVib3gtbmVhdC10b3Age1xuICBAZXh0ZW5kICVib3gtc2hhZG93LCAlYm94LXJhZGl1cy10b3A7XG59XG5cbiVib3gtbmVhdC1mb3JjZSB7XG4gIEBleHRlbmQgJWJveC1zaGFkb3csICVib3gtcmFkaXVzLWZvcmNlO1xufVxuIiwiJHZwLW1pbi13aWR0aDogMzIwcHggIWRlZmF1bHQ7XG4kdnAtbWF4LXdpZHRoOiAxMjAwcHggIWRlZmF1bHQ7XG5cbkBmdW5jdGlvbiBzdHJpcC11bml0KCR2YWx1ZSkge1xuICBAcmV0dXJuICR2YWx1ZSAvICgkdmFsdWUgKiAwICsgMSk7XG59XG5cbkBtaXhpbiBmbHVpZC1zaXplKCRwcm9wLCAkbWluLXNpemUsICRtYXgtc2l6ZSwgJG1pbi12dzogJHZwLW1pbi13aWR0aCwgJG1heC12dzogJHZwLW1heC13aWR0aCkge1xuICAkdTE6IHVuaXQoJG1pbi12dyk7XG4gICR1MjogdW5pdCgkbWF4LXZ3KTtcbiAgJHUzOiB1bml0KCRtaW4tc2l6ZSk7XG4gICR1NDogdW5pdCgkbWF4LXNpemUpO1xuXG4gIEBpZiAkdTEgPT0gJHUyIGFuZCAkdTEgPT0gJHUzIGFuZCAkdTEgPT0gJHU0IHtcbiAgICAmIHtcbiAgICAgICN7JHByb3B9OiAkbWluLXNpemU7XG5cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluLXZ3KSB7XG4gICAgICAgICN7JHByb3B9OiBjYWxjKCN7JG1pbi1zaXplfSArICN7c3RyaXAtdW5pdCgkbWF4LXNpemUgLSAkbWluLXNpemUpfSAqICgoMTAwdncgLSAjeyRtaW4tdnd9KSAvICN7c3RyaXAtdW5pdCgkbWF4LXZ3IC0gJG1pbi12dyl9KSk7XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWF4LXZ3KSB7XG4gICAgICAgICN7JHByb3B9OiAkbWF4LXNpemU7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAZXJyb3IgXCJmbHVpZC1zaXplIHJlcXVpcmVzIHRoYXQgYWxsIHZhbHVlcyBoYXZlIHRoZSBzYW1lIHVuaXRcIjtcbiAgfVxufVxuIiwiQGltcG9ydCBcImNvb3Jkcy1jb2xvcnNcIjtcblxuY29vcmRzIHtcbiAgLyogaGFuZGxlIGhpZGRlbiBjb29yZHMgKi9cbiAgLmNvb3Jkcy1ubyAmIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLyogaGFuZGxlIGlubmVyIGNvb3JkcyAqL1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gIEBpbmNsdWRlIGZsdWlkLXNpemUoXCJmb250LXNpemVcIiwgOHB4LCAxMnB4KTtcblxuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtc2hhZG93OiAwIDFweCAycHggIzAwMDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG5cbiAgJi5yYW5rcyB7XG4gICAgZmxleC1mbG93OiBjb2x1bW4tcmV2ZXJzZTtcbiAgICB0b3A6IDFweDtcbiAgICByaWdodDogMDtcblxuICAgIC8vIGEgbmVnYXRpdmUgdmFsdWUgY3JlYXRlcyBlbXB0eSBzcGFjZSBvbiB0aGUgcmlnaHQgc2lkZSBpbiBtb2JpbGUgYnJvd3NlcnNcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IC44ZW07XG5cbiAgICAmLmJsYWNrIHtcbiAgICAgIGZsZXgtZmxvdzogY29sdW1uO1xuICAgIH1cbiAgfVxuXG4gICYuZmlsZXMge1xuICAgIGJvdHRvbTogMHB4O1xuICAgIGxlZnQ6IDA7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBmbGV4LWZsb3c6IHJvdztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEuNGVtO1xuXG4gICAgJi5ibGFjayB7XG4gICAgICBmbGV4LWZsb3c6IHJvdy1yZXZlcnNlO1xuICAgIH1cblxuICAgIGNvb3JkIHtcbiAgICAgIHBhZGRpbmctbGVmdDogNHB4O1xuICAgIH1cbiAgfVxuXG4gIGNvb3JkIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgfVxuXG4gIC8qIG5lZ2F0ZSBpbm5lciBjb29yZHMgY29sb3JzICovXG4gIC5pczNkIC5jZy13cmFwIGNvb3JkcyBjb29yZCB7XG4gICAgY29sb3I6ICNmZmYgIWltcG9ydGFudDtcbiAgICB0ZXh0LXNoYWRvdzogMCAxcHggMnB4ICMwMDAgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5pczNkIC5jZy13cmFwIGNvb3Jkcy5maWxlcyB7XG4gICAgYm90dG9tOiBjYWxjKDFweCAtIDIuNSUpO1xuXG4gICAgY29vcmQge1xuICAgICAgcGFkZGluZy1sZWZ0OiAzcHg7XG4gICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIGNvb3Jkcy1jb2xvcnM7XG5cbi8qIGhhbmRsZSBvdXRlciBjb29yZHMgKi9cbkBpbmNsdWRlIGJyZWFrcG9pbnQoJG1xLWNvbDItdW5pYm9hcmQpIHtcbiAgLmNvb3Jkcy1vdXQgY29vcmRzIHtcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTtcblxuICAgICYucmFua3Mge1xuICAgICAgcmlnaHQ6IC0xNXB4O1xuICAgICAgdG9wOiAwO1xuICAgICAgd2lkdGg6IDEycHg7XG5cbiAgICAgIGNvb3JkIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQyJSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5maWxlcyB7XG4gICAgICBib3R0b206IC0xNXB4O1xuICAgICAgbGVmdDogMDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICBjb29yZCB7XG4gICAgICBjb2xvcjogJGMtZm9udC1wYWdlICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG4iLCJAbWl4aW4gY29vcmRzLWNvbG9ycyB7XG4gIDpyb290IHtcbiAgICAtLWNnLWNvb3JkLWNvbG9yLXdoaXRlOiAjZmZmO1xuICAgIC0tY2ctY29vcmQtY29sb3ItYmxhY2s6ICNmZmY7XG4gICAgLS1jZy1jb29yZC1zaGFkb3c6IDAgMXB4IDJweCAjMDAwO1xuICB9XG5cbiAgY29vcmRzIHtcbiAgICB0ZXh0LXNoYWRvdzogdmFyKC0tY2ctY29vcmQtc2hhZG93KTtcbiAgfVxuXG4gIC5vcmllbnRhdGlvbi13aGl0ZSAuZmlsZXMgY29vcmQ6bnRoLWNoaWxkKDJuKzEpLFxuICAub3JpZW50YXRpb24td2hpdGUgLnJhbmtzIGNvb3JkOm50aC1jaGlsZCgybiksXG4gIC5vcmllbnRhdGlvbi1ibGFjayAuZmlsZXMgY29vcmQ6bnRoLWNoaWxkKDJuKSxcbiAgLm9yaWVudGF0aW9uLWJsYWNrIC5yYW5rcyBjb29yZDpudGgtY2hpbGQoMm4rMSkge1xuICAgIGNvbG9yOiB2YXIoLS1jZy1jb29yZC1jb2xvci13aGl0ZSk7XG4gIH1cblxuICAub3JpZW50YXRpb24td2hpdGUgLmZpbGVzIGNvb3JkOm50aC1jaGlsZCgybiksXG4gIC5vcmllbnRhdGlvbi13aGl0ZSAucmFua3MgY29vcmQ6bnRoLWNoaWxkKDJuKzEpLFxuICAub3JpZW50YXRpb24tYmxhY2sgLmZpbGVzIGNvb3JkOm50aC1jaGlsZCgybisxKSxcbiAgLm9yaWVudGF0aW9uLWJsYWNrIC5yYW5rcyBjb29yZDpudGgtY2hpbGQoMm4pIHtcbiAgICBjb2xvcjogdmFyKC0tY2ctY29vcmQtY29sb3ItYmxhY2spO1xuICB9XG59XG4iLCJib2R5IHtcbiAgLS1ib2FyZC1zY2FsZTogMTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRtcS16b29tLWVuYWJsZWQpIHtcbiAgICAvLyAtLXpvb206IDgwOyBkZWZpbmVkIGluIHRoZSBIVE1MLCBsb2FkZWQgZnJvbSBzZXJ2ZXJcbiAgICAtLWJvYXJkLXNjYWxlOiBjYWxjKCh2YXIoLS16b29tKSAvIDEwMCkgKiAwLjcgKyAwLjMpO1xuICB9XG59XG5cbkBpbmNsdWRlIGJyZWFrcG9pbnQoJG1xLWNvbDEtdW5pYm9hcmQpIHtcbiAgYm9keSB7XG4gICAgLS1jb2wxOiAxO1xuICB9XG5cbiAgLm1haW4tYm9hcmQgY2ctYm9hcmQge1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gIH1cbn1cbiIsImJvZHkgOjotd2Via2l0LXNjcm9sbGJhcixcbmJvZHkgOjotd2Via2l0LXNjcm9sbGJhci1jb3JuZXIge1xuICB3aWR0aDogLjVyZW07XG4gIGJhY2tncm91bmQ6ICRjLWJnLWJveDtcbn1cblxuYm9keSA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgYmFja2dyb3VuZDogJGMtc2hhZGU7XG59XG5cbmJvZHkgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlcixcbmJvZHkgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjphY3RpdmUge1xuICBiYWNrZ3JvdW5kOiAkYy1mb250LWRpbW1lcjtcbn1cbiIsImJvZHkucmVzaXppbmcge1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuY2ctcmVzaXplIHtcbiAgJHJlc2l6ZS13aWR0aDogMjJweDtcblxuICBkaXNwbGF5OiBub25lO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1xLWJvYXJkLXJlc2l6YWJsZSkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogI3sxM3B4IC0gJHJlc2l6ZS13aWR0aH07XG4gICAgYm90dG9tOiAjezEzcHggLSAkcmVzaXplLXdpZHRofTtcbiAgICB3aWR0aDogJHJlc2l6ZS13aWR0aDtcbiAgICBoZWlnaHQ6ICRyZXNpemUtd2lkdGg7XG4gICAgY3Vyc29yOiBud3NlLXJlc2l6ZTtcblxuICAgICY6OmJlZm9yZSwgJjo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogIzAwMDtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgd2lkdGg6IDEycHg7XG4gICAgICBoZWlnaHQ6IDFweDtcbiAgICB9XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgd2lkdGg6IDVweDtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDdweCwgOHB4KSByb3RhdGUoLTQ1ZGVnKTtcbiAgICB9XG5cbiAgICAmOjphZnRlciB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxcHgsIDZweCkgcm90YXRlKC00NWRlZyk7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBiYWNrZ3JvdW5kOiBmYWRlLW91dCgkYy1hY2NlbnQsIDAuNSk7XG4gICAgfVxuXG4gICAgLnJlc2l6aW5nICYge1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgYmFja2dyb3VuZDogZmFkZS1vdXQoJGMtc2Vjb25kYXJ5LCAwLjUpO1xuICAgIH1cbiAgfVxufVxuIiwiI21vZGFsIHtcbiAgJi1vdmVybGF5IHtcbiAgICBAZXh0ZW5kICVmdWxsc2NyZWVuLW1hc2ssICVmbGV4LWNlbnRlcjtcblxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG5cbiAgJi13cmFwIHtcbiAgICBAZXh0ZW5kICVib3gtcmFkaXVzLCAlcG9wdXAtc2hhZG93LCAlZmxleC1jb2x1bW47XG5cbiAgICBiYWNrZ3JvdW5kOiAkYy1iZy1ib3g7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDJyZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1heC13aWR0aDogMTAwdnc7XG4gICAgbWF4LWhlaWdodDogOTZ2aDtcblxuICAgID4gZGl2IHtcbiAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIH1cblxuICAgIC5jbG9zZSB7XG4gICAgICBjb2xvcjogJGMtZm9udDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyN3B4O1xuICAgICAgd2lkdGg6IDMycHg7XG4gICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICB0b3A6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1xLXNtYWxsKSB7XG4gICAgICAgIHRvcDogLTEycHg7XG4gICAgICAgIHJpZ2h0OiAtMTJweDtcbiAgICAgICAgYmFja2dyb3VuZDogJGMtYmctcG9wdXA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuY2xvc2U6aG92ZXIge1xuICAgICAgQGV4dGVuZCAlYm94LXNoYWRvdztcblxuICAgICAgYmFja2dyb3VuZDogJGMtYmFkO1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgfVxuICB9XG59XG4iLCIuY29udGludWUtd2l0aCB7XG4gIEBleHRlbmQgJWZsZXgtY29sdW1uO1xuXG4gID4gKjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgbWFyZ2luLXRvcDogMWVtO1xuICB9XG59XG4iLCIuY29sb3ItaWNvbiB7XG4gIEBpZiAkdGhlbWUtbGlnaHQge1xuICAgICYud2hpdGU6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIktcIjtcbiAgICB9XG5cbiAgICAmLmJsYWNrOjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJKXCI7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAmLndoaXRlOjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJKXCI7XG4gICAgfVxuXG4gICAgJi5ibGFjazo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiS1wiO1xuICAgIH1cbiAgfVxuXG4gICYucmFuZG9tOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwibFwiO1xuICB9XG59XG4iLCJAaW5jbHVkZSBjcm9zc3RhYmxlLXNtYWxsO1xuXG4uY3Jvc3N0YWJsZSB7XG4gIEBleHRlbmQgJWJveC1uZWF0LWZvcmNlO1xuXG4gIHdpZHRoOiAxMDAlO1xuICBsaW5lLWhlaWdodDogMS45ZW07XG4gIGRpc3BsYXk6IGZsZXg7XG5cbiAgZmlsbCxcbiAgcG92cyB7XG4gICAgYmFja2dyb3VuZDogJGMtYmctYm94O1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICB9XG5cbiAgcG92cyxcbiAgJl9fdXNlcnMsXG4gICZfX3Njb3JlLFxuICAmX19tYXRjaHVwIHtcbiAgICBAZXh0ZW5kICVmbGV4LWNvbHVtbjtcblxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gICZfX3VzZXJzLFxuICAmX19zY29yZSB7XG4gICAgQGV4dGVuZCAlbWV0YWw7XG4gIH1cblxuICAmX191c2VycyB7XG4gICAgQGV4dGVuZCAlZWxsaXBzaXM7XG5cbiAgICBtYXgtd2lkdGg6IDQwdnc7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgIGEge1xuICAgICAgcGFkZGluZy1sZWZ0OiAkYmxvY2stZ2FwO1xuICAgIH1cbiAgfVxuXG4gICZfX3Njb3JlIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBmb250LXdlaWdodDogYm9sZDtcblxuICAgIHNwYW4ge1xuICAgICAgcGFkZGluZzogMCAkYmxvY2stZ2FwO1xuICAgIH1cbiAgfVxuXG4gICZfX21hdGNodXAge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGJhY2tncm91bmQ6IG1peCgkYy1wcmltYXJ5LCAkYy1iZy1ib3gsIDIwJSk7XG4gIH1cblxuICBwb3ZzIHtcbiAgICBhIHtcbiAgICAgIGNvbG9yOiAkYy1mb250LWRpbTtcbiAgICAgIGZsZXg6IDAgMCA1MCU7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBAZXh0ZW5kICVtZXRhbDtcblxuICAgICAgYSB7XG4gICAgICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBhLmxvc3Mge1xuICAgICAgb3BhY2l0eTogLjI7XG4gICAgfVxuXG4gICAgJi5jdXJyZW50IGEge1xuICAgICAgYmFja2dyb3VuZDogbWl4KCRjLWFjY2VudCwgJGMtYmctYm94LCA3MCUpO1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJi5uZXcge1xuICAgICAgYm9yZGVyOiAkYy1ib3JkZXI7XG4gICAgfVxuXG4gICAgYS5sb3NzIHtcbiAgICAgIG9wYWNpdHk6IC4yO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1xLW5vdC14LXNtYWxsKSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAmOm50aC1sYXN0LWNoaWxkKC1uKzEyKSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnNlcCB7XG4gICAgQGV4dGVuZCAlYm94LXJhZGl1cy1sZWZ0O1xuXG4gICAgYm9yZGVyLWxlZnQ6ICRib3JkZXI7XG4gICAgbWFyZ2luLWxlZnQ6IC4zZW07XG4gIH1cblxuICAud2luIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBjb2xvcjogJGMtZ29vZDtcbiAgfVxuXG4gIC5sb3NzIHtcbiAgICBjb2xvcjogJGMtYmFkO1xuICB9XG5cbiAgLnVuYXZhaWxhYmxlIHtcbiAgICBtYXJnaW4tdG9wOiA0MHB4O1xuICAgIG9wYWNpdHk6IDAuNztcbiAgfVxufVxuIiwiLmZidCB7XG4gIEBleHRlbmQgJWJ1dHRvbi1ub25lO1xuXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbjtcblxuICBAbWVkaWEgKGhvdmVyOiBob3Zlcikge1xuICAgICY6aG92ZXI6bm90KC5kaXNhYmxlZCk6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJhY2tncm91bmQ6ICNlZDFjMjQ7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICB9XG4gIH1cblxuICAmLmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogI2JkMTExZiAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZmO1xuICB9XG5cbiAgJi5kaXNhYmxlZCxcbiAgJltkaXNhYmxlZF0ge1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gIH1cbn1cbiIsIi5jbW4tdG9nZ2xlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW4tbGVmdDogLTk5OTk5cHg7XG59XG5cbi5jbW4tdG9nZ2xlICsgbGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG91dGxpbmU6IG5vbmU7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi5jbW4tdG9nZ2xlICsgbGFiZWwge1xuICBwYWRkaW5nOiAxcHg7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDI0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjLWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogMjRweDtcbn1cblxuLmNtbi10b2dnbGUgKyBsYWJlbDo6YmVmb3JlLFxuLmNtbi10b2dnbGUgKyBsYWJlbDo6YWZ0ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDFweDtcbiAgbGVmdDogMXB4O1xuICBib3R0b206IDFweDtcbiAgY29udGVudDogXCJcIjtcbn1cblxuLmNtbi10b2dnbGUgKyBsYWJlbDo6YmVmb3JlIHtcbiAgcmlnaHQ6IDFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGMtYmFkO1xuICBib3JkZXItcmFkaXVzOiAyNHB4O1xufVxuXG4uY21uLXRvZ2dsZTpmb2N1cyArIGxhYmVsOjpiZWZvcmUge1xuICBAZXh0ZW5kICVmb2N1cy1zaGFkb3c7XG59XG5cbi5jbW4tdG9nZ2xlLS1zdWJ0bGUgKyBsYWJlbDo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JkMTExZjtcbn1cblxuLmNtbi10b2dnbGU6aG92ZXIgKyBsYWJlbDo6YmVmb3JlIHtcbiAgQGV4dGVuZCAlZm9jdXMtc2hhZG93O1xuXG4gIEBpbmNsdWRlIHRyYW5zaXRpb24oYmFja2dyb3VuZCk7XG59XG5cbi5jbW4tdG9nZ2xlICsgbGFiZWw6OmFmdGVyIHtcbiAgQGV4dGVuZCAlbWV0YWw7XG5cbiAgd2lkdGg6IDIycHg7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDIuNXB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcbn1cblxuLmNtbi10b2dnbGU6aG92ZXIgKyBsYWJlbDo6YWZ0ZXIge1xuICBAZXh0ZW5kICVtZXRhbC1ob3ZlcjtcblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uKG1hcmdpbik7XG59XG5cbi5jbW4tdG9nZ2xlOmNoZWNrZWQgKyBsYWJlbDo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGMtZ29vZDtcbn1cblxuLmNtbi10b2dnbGU6Y2hlY2tlZCArIGxhYmVsOjphZnRlciB7XG4gIG1hcmdpbi1sZWZ0OiAxNnB4O1xufVxuIiwiQG1peGluIHJhbmdlLXRodW1iIHtcbiAgQGluY2x1ZGUgbWV0YWw7XG5cbiAgYm9yZGVyOiAxcHggc29saWQgJGMtZm9udC1kaW1tZXI7XG4gIGhlaWdodDogMWVtO1xuICB3aWR0aDogMS41ZW07XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGJhY2tncm91bmQ6ICRjLWJnLWJveDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG5AbWl4aW4gcmFuZ2UtdHJhY2sge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZDogJGMtc2hhZGU7XG4gIGJvcmRlci1yYWRpdXM6IC41ZW07XG59XG5cbmlucHV0W3R5cGU9cmFuZ2VdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IDA7XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuXG4gICY6Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIHtcbiAgICBAaW5jbHVkZSByYW5nZS10cmFjaztcbiAgfVxuXG4gICY6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgICBAaW5jbHVkZSByYW5nZS10aHVtYjtcblxuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICBtYXJnaW4tdG9wOiAtMC4zcHg7XG4gIH1cblxuICAmOjotbW96LXJhbmdlLXRyYWNrIHtcbiAgICBAaW5jbHVkZSByYW5nZS10cmFjaztcbiAgfVxuXG4gICY6Oi1tb3otcmFuZ2UtdGh1bWIge1xuICAgIEBpbmNsdWRlIHJhbmdlLXRodW1iO1xuICB9XG5cbiAgJjo6LW1zLXRyYWNrIHtcbiAgICBAaW5jbHVkZSByYW5nZS10cmFjaztcbiAgfVxuXG4gICY6Oi1tcy1maWxsLWxvd2VyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDE5MSwgMTkxLCAxOTEsIDAuNzgpO1xuICAgIGJvcmRlci1yYWRpdXM6IDExLjhweDtcbiAgfVxuXG4gICY6Oi1tcy1maWxsLXVwcGVyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDIxNCwgMjE0LCAyMTQsIDAuNzgpO1xuICAgIGJvcmRlci1yYWRpdXM6IDExLjhweDtcbiAgfVxuXG4gICY6Oi1tcy10aHVtYiB7XG4gICAgQGluY2x1ZGUgcmFuZ2UtdGh1bWI7XG5cbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxufVxuIiwiQGltcG9ydCBcImV4dGVuZFwiO1xuXG4udHZpZXcyIHtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcblxuICAmLWNvbHVtbiB7XG4gICAgQGV4dGVuZCAlZmxleC13cmFwO1xuICB9XG5cbiAgJi1pbmxpbmUge1xuICAgIHBhZGRpbmc6IDdweCAzcHggN3B4IDdweDtcbiAgfVxuXG4gIG1vdmUge1xuICAgIEBleHRlbmQgJW1vdmU7XG4gIH1cblxuICAmLWNvbHVtbiBtb3ZlIHtcbiAgICBmb250LXNpemU6IDEuMDkyZW07XG4gICAgcGFkZGluZzogMCAycHg7XG4gIH1cblxuICAmLWlubGluZSBtb3ZlIHtcbiAgICBwYWRkaW5nOiAuMjVlbSAuMTdlbTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG5cbiAgbW92ZS5wYXJlbnQge1xuICAgIGNvbG9yOiAkYy1wcmltYXJ5O1xuICB9XG5cbiAgY29tbWVudCBhIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB9XG5cbiAgbW92ZS5jdXJyZW50IHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYy1hY2NlbnQ7XG4gIH1cblxuICBtb3ZlLmFjdGl2ZSB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgYmFja2dyb3VuZDogbWl4KCRjLXByaW1hcnksICRjLWJnLWJveCwgMjAlKTtcbiAgfVxuXG4gICYtaW5saW5lIG1vdmUuYWN0aXZlIHtcbiAgICBAZXh0ZW5kICVib3gtcmFkaXVzO1xuICB9XG5cbiAgbW92ZS5ub25nYW1lIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIH1cblxuICBtb3ZlOm5vdCguZW1wdHkpOmhvdmVyIHtcbiAgICAmLFxuICAgIGluZGV4LFxuICAgIGV2YWwge1xuICAgICAgYmFja2dyb3VuZDogJGMtcHJpbWFyeTtcbiAgICAgIGNvbG9yOiAkYy1wcmltYXJ5LW92ZXI7XG4gICAgfVxuICB9XG5cbiAgJi1pbmxpbmUgbW92ZTpob3ZlciB7XG4gICAgQGV4dGVuZCAlYm94LXJhZGl1cztcbiAgfVxuXG4gIG1vdmUuZW1wdHkge1xuICAgIGNvbG9yOiAkYy1mb250LWRpbW1lcjtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gIH1cblxuICBtb3ZlIGluZGV4IHtcbiAgICBmb250LXNpemU6IDkwJTtcbiAgICBjb2xvcjogJGMtZm9udC1kaW07XG4gIH1cblxuICBtb3ZlLmNvbnRleHQtbWVudSB7XG4gICAgYmFja2dyb3VuZDogJGMtYWNjZW50O1xuICAgIGNvbG9yOiAkYy1hY2NlbnQtb3ZlcjtcblxuICAgIGluZGV4IHtcbiAgICAgIGNvbG9yOiAkYy1hY2NlbnQtb3ZlcjtcbiAgICB9XG4gIH1cblxuICAmLWNvbHVtbiBtb3ZlIGluZGV4IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgfVxuXG4gICYtY29sdW1uIG1vdmUgaW5kZXg6Zmlyc3QtY2hpbGQge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxuXG4gICYtaW5saW5lIG1vdmUgaW5kZXgge1xuICAgIHBhZGRpbmctcmlnaHQ6IC4yZW07XG4gICAgbGluZS1oZWlnaHQ6IDExMS4xMSU7XG4gIH1cblxuICBsaW5lIG1vdmUge1xuICAgIGNvbG9yOiAkYy1mb250O1xuICB9XG5cbiAgJi1jb2x1bW4gPiBtb3ZlIHtcbiAgICBmbGV4OiAwIDAgNDMuNSU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmb250LXNpemU6IDEuMTg1ZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNzVlbTtcbiAgICBwYWRkaW5nOiAwIC4zZW0gMCAuNWVtO1xuICB9XG5cbiAgJi1jb2x1bW4gPiBpbmRleCArIG1vdmUge1xuICAgIGJvcmRlci1yaWdodDogJGMtYm9yZGVyO1xuICB9XG5cbiAgZXZhbCB7XG4gICAgQGV4dGVuZCAlcm9ib3RvO1xuXG4gICAgZmxleDogMyAwIGF1dG87XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgZm9udC1zaXplOiAuOGVtO1xuICAgIGNvbG9yOiAkYy1mb250LWRpbTtcbiAgfVxuXG4gIGdseXBoIHtcbiAgICBAZXh0ZW5kICViYXNlLWZvbnQ7XG5cbiAgICBtYXJnaW4tbGVmdDogLjA4ZW07XG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgfVxuXG4gICYtY29sdW1uID4gbW92ZSBnbHlwaCB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZm9udC1zaXplOiAuODJlbTtcbiAgfVxuXG4gICYtY29sdW1uID4gaW5kZXgge1xuICAgIGZsZXg6IDAgMCAxMyU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBib3JkZXItcmlnaHQ6ICRib3JkZXI7XG4gICAgYmFja2dyb3VuZDogJGMtYmctemVicmE7XG4gICAgbGluZS1oZWlnaHQ6IDIuMDdlbTtcbiAgICBjb2xvcjogJGMtZm9udC1kaW1tZXI7XG4gIH1cblxuICA+IGludGVycnVwdCB7XG4gICAgZm9udC1zaXplOiA5NSU7XG4gIH1cblxuICAmLWNvbHVtbiA+IGludGVycnVwdCB7XG4gICAgZmxleDogMCAwIDEwMCU7XG4gICAgYmFja2dyb3VuZDogJGMtYmctemVicmE7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRjLWJvcmRlcjtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGMtYm9yZGVyO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuXG4gICYtY29sdW1uID4gaW50ZXJydXB0ID4gY29tbWVudCB7XG4gICAgQGV4dGVuZCAlYnJlYWstd29yZDtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDNweCA1cHg7XG4gIH1cblxuICAmLWlubGluZSBjb21tZW50IHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogNDUlO1xuICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgICBtYXJnaW46IDAgLjJlbSAwIC4xZW07XG4gICAgZm9udC1zaXplOiAuOWVtO1xuICB9XG5cbiAgY29tbWVudCAuYnkge1xuICAgIEBleHRlbmQgJW5vd3JhcC1lbGxpcHNpcywgJXJvYm90bztcblxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogLS4zZW07XG4gICAgZm9udC1zaXplOiAuOWVtO1xuICAgIG9wYWNpdHk6IDAuODtcbiAgICBtYXJnaW4tcmlnaHQ6IC40ZW07XG4gICAgbWF4LXdpZHRoOiA5ZW07XG4gIH1cblxuICAmLWNvbHVtbiBjb21tZW50LndoaXRlIHtcbiAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkO1xuICB9XG5cbiAgJi1jb2x1bW4gY29tbWVudC5ibGFjayB7XG4gICAgYm9yZGVyLXJpZ2h0OiAzcHggc29saWQ7XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICB9XG5cbiAgJi1jb2x1bW4gY29tbWVudC5pbmFjY3VyYWN5IHtcbiAgICBib3JkZXItY29sb3I6ICM1NkI0RTk7XG4gIH1cblxuICAmLWNvbHVtbiBjb21tZW50Lm1pc3Rha2Uge1xuICAgIGJvcmRlci1jb2xvcjogI0U2OUYwMDtcbiAgfVxuXG4gICYtY29sdW1uIGNvbW1lbnQuYmx1bmRlciB7XG4gICAgYm9yZGVyLWNvbG9yOiAjREY1MzUzO1xuICB9XG5cbiAgJi1jb2x1bW4gY29tbWVudC51bmRlZmluZWQge1xuICAgIGJvcmRlci1jb2xvcjogIzY2NTU4QztcbiAgfVxuXG4gIGxpbmUgY29tbWVudCB7XG4gICAgZm9udC1zaXplOiA5MCU7XG4gIH1cblxuICAmLWNvbHVtbiBsaW5lIGNvbW1lbnQge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBjb2xvcjogJGMtZm9udC1kaW07XG4gICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgIHBhZGRpbmc6IDAgNXB4IDAgM3B4O1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIH1cblxuICBsaW5lIGNvbW1lbnQgLmJ5IHtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB9XG5cbiAgbGluZXMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICBtYXJnaW4tbGVmdDogNnB4O1xuICAgIG1hcmdpbi1ib3R0b206IC44ZW07XG4gICAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAkYy1ib3JkZXI7XG4gIH1cblxuICA+IGludGVycnVwdCA+IGxpbmVzIHtcbiAgICBtYXJnaW4tbGVmdDogMHB4O1xuICB9XG5cbiAgbGluZXMuc2luZ2xlIHtcbiAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgfVxuXG4gIGxpbmVzOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICBsaW5lIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nLWxlZnQ6IDdweDtcbiAgfVxuXG4gICYtY29sdW1uIGxpbmUge1xuICAgIG1hcmdpbjogMnB4IDA7XG4gIH1cblxuICBsaW5lcyBsaW5lcyBtb3ZlIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gIH1cblxuICBsaW5lcyBsaW5lcyB7XG4gICAgbWFyZ2luLWxlZnQ6IDFweDtcbiAgfVxuXG4gIGxpbmVzIGxpbmVzOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcgJztcbiAgICBib3JkZXItdG9wOiAycHggc29saWQgJGMtYm9yZGVyO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBtYXJnaW4tbGVmdDogLTExcHg7XG4gICAgd2lkdGg6IDlweDtcbiAgICBoZWlnaHQ6IDZweDtcbiAgfVxuXG4gIGxpbmVzIGxpbmU6OmJlZm9yZSB7XG4gICAgbWFyZ2luLXRvcDogLjY1ZW07XG4gICAgbWFyZ2luLWxlZnQ6IC04cHg7XG4gICAgY29udGVudDogJyAnO1xuICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAkYy1ib3JkZXI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiA4cHg7XG4gICAgaGVpZ2h0OiA2cHg7XG4gIH1cblxuICBsaW5lcyBsaW5lczpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgaW5saW5lIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGZvbnQtc2l6ZTogLjllbTtcbiAgICBvcGFjaXR5OiAwLjg7XG4gIH1cblxuICBpbmxpbmU6OmJlZm9yZSxcbiAgaW5saW5lOjphZnRlciB7XG4gICAgdmVydGljYWwtYWxpZ246IC40ZW07XG4gICAgb3BhY2l0eTogMC43O1xuICAgIGZvbnQtc2l6ZTogLjllbTtcbiAgfVxuXG4gIGlubGluZTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnKCc7XG4gICAgbWFyZ2luLWxlZnQ6IDJweDtcbiAgfVxuXG4gIGlubGluZTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcpJztcbiAgICBtYXJnaW4tcmlnaHQ6IDJweDtcbiAgfVxuXG4gICYtaW5saW5lIGlubGluZTo6YmVmb3JlLFxuICAmLWlubGluZSBpbmxpbmU6OmFmdGVyIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogLjdlbTtcbiAgfVxuXG4gIC5jb25jZWFsIHtcbiAgICBvcGFjaXR5OiAwLjQ7XG4gIH1cblxuICAuaGlkZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuIiwiJW1vdmUge1xuICBAZXh0ZW5kICVzYW4sICVub3dyYXAtaGlkZGVuO1xuXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuIiwiQGltcG9ydCBcImN0cmxcIjtcbkBpbXBvcnQgXCJwdlwiO1xuIiwiLmNldmFsIHtcbiAgQGV4dGVuZCAlbWV0YWwtYmc7XG5cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcblxuICAmLmVuYWJsZWQge1xuICAgIHBhZGRpbmctdG9wOiAycHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICB9XG5cbiAgLnN3aXRjaCB7XG4gICAgQGV4dGVuZCAlZmxleC1jZW50ZXI7XG5cbiAgICBmbGV4OiAwIDAgNDBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgfVxuXG4gIHBlYXJsIHtcbiAgICBmbGV4OiAwIDAgNzVweDtcbiAgICBsaW5lLWhlaWdodDogMzhweDtcbiAgICBmb250LXNpemU6IDEuNmVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuXG4gIGhlbHAsXG4gIC5lbmdpbmUge1xuICAgIEBleHRlbmQgJW5vd3JhcC1oaWRkZW47XG5cbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gICAgbWFyZ2luLXRvcDogM3B4O1xuICAgIGNvbG9yOiAkYy1mb250LWRpbTtcbiAgfVxuXG4gIC5lbmdpbmUge1xuICAgIC5jbG91ZCB7XG4gICAgICBAZXh0ZW5kICVyb2JvdG8sICVib3gtcmFkaXVzO1xuXG4gICAgICBtYXJnaW4tbGVmdDogNHB4O1xuICAgICAgYmFja2dyb3VuZDogI2JkMTExZjtcbiAgICAgIGNvbG9yOiAkYy1zZWNvbmRhcnktb3ZlcjtcbiAgICAgIHBhZGRpbmc6IDFweCAzcHg7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgIH1cblxuICAgIC5pbmZvIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG5cbiAgICAuZGVlcGVyIHtcbiAgICAgIGNvbG9yOiAkYy1wcmltYXJ5O1xuICAgICAgbWFyZ2luLWxlZnQ6IDRweDtcbiAgICB9XG5cbiAgICAuZGVlcGVyOjpiZWZvcmUge1xuICAgICAgdmVydGljYWwtYWxpZ246IC0ycHg7XG4gICAgfVxuICB9XG5cbiAgLndhc214IHtcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6ICRjLWdvb2Q7XG4gIH1cblxuICAuYXNtanMsIC53YXNtIHtcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIH1cblxuICAuYmFyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAzcHg7XG4gICAgdG9wOiAwcHg7XG4gIH1cblxuICBAa2V5ZnJhbWVzIGJhci1hbmltIHtcbiAgICBmcm9tIHtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgMDtcbiAgICB9XG5cbiAgICB0byB7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAwMDBweCAwO1xuICAgIH1cbiAgfVxuXG4gIC5iYXIgc3BhbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAzcHg7XG4gICAgd2lkdGg6IDA7XG4gICAgYmFja2dyb3VuZDogI2JkMTExZjtcbiAgICB0cmFuc2l0aW9uOiB3aWR0aCAxcztcblxuICAgICYudGhyZWF0IHtcbiAgICAgIGJhY2tncm91bmQ6ICRjLWJhZDtcbiAgICB9XG4gIH1cblxuICAmLmNvbXB1dGluZyAuYmFyIHNwYW4ge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGltZy11cmwoXCJiYXItaGlnaGxpZ2h0LnBuZ1wiKTtcbiAgICBhbmltYXRpb246IGJhci1hbmltIDEwMDBzIGxpbmVhciBpbmZpbml0ZTtcbiAgfVxuXG4gIC5zaG93LXRocmVhdCB7XG4gICAgZmxleDogMCA5OSBhdXRvO1xuICAgIGxpbmUtaGVpZ2h0OiAzOHB4O1xuICAgIGNvbG9yOiAkYy1mb250LWRpbTtcbiAgICBmb250LXNpemU6IC45ZW07XG4gICAgcGFkZGluZy1yaWdodDogLjVlbTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgJjpob3Zlcjpub3QoLmhpZGRlbiksXG4gICAgJi5hY3RpdmUge1xuICAgICAgY29sb3I6ICRjLXJlZDtcbiAgICB9XG5cbiAgICAmLmhpZGRlbiB7XG4gICAgICBvcGFjaXR5OiAwLjM7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgfVxuICB9XG59XG4iLCIucHZfYm94IHtcbiAgYmFja2dyb3VuZDogJGMtYmctYm94O1xuICBmb250LXNpemU6IDEzcHg7XG5cbiAgLnB2IHtcbiAgICBAZXh0ZW5kICVub3dyYXAtZWxsaXBzaXM7XG5cbiAgICBoZWlnaHQ6IDJlbTtcbiAgICBsaW5lLWhlaWdodDogMmVtO1xuICAgIGJvcmRlci10b3A6ICRib3JkZXI7XG5cbiAgICAmW2RhdGEtdWNpXTpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiBtaXgoJGMtc2Vjb25kYXJ5LCAkYy1iZy1ib3gsIDIwJSk7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgc3Ryb25nIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHdpZHRoOiAzNHB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIHNwYW4ge1xuICAgICAgQGV4dGVuZCAlc2FuO1xuXG4gICAgICBtYXJnaW4tbGVmdDogNHB4O1xuICAgIH1cbiAgfVxufVxuIiwibWFpbiB7XG4gIEBpbmNsdWRlIGZsdWlkLXNpemUoXCItLWdhdWdlLWdhcFwiLCA4cHgsIDE3cHgpO1xufVxuXG4uZXZhbC1nYXVnZSB7XG4gIHdpZHRoOiB2YXIoLS1nYXVnZS1nYXApO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6IGlmKCR0aGVtZS1saWdodCwgI2ZmZiwgI2EwYTBhMCk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbXEtY29sMS11bmlib2FyZCkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuXG4gICYucmV2ZXJzZSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVYKDE4MGRlZyk7XG4gIH1cblxuICAmOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3gtc2hhZG93OiAwIDAgNXB4IHJnYmEoMCwgMCwgMCwgMC43KSBpbnNldDtcbiAgfVxuXG4gIHRpY2sge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItYm90dG9tOiAycHggcmlkZ2UgaWYoJHRoZW1lLWxpZ2h0LCAjZWVlLCAjYTBhMGEwKTtcbiAgICBvcGFjaXR5OiAwLjQ7XG4gIH1cblxuICB0aWNrLnplcm8ge1xuICAgIHRvcDogNnB4O1xuICAgIG9wYWNpdHk6IDE7XG4gICAgYm9yZGVyLWJvdHRvbTogN3B4IHNvbGlkIGZhZGUtb3V0KCRjLWFjY2VudCwgMC42KTtcbiAgICBtYXJnaW4tdG9wOiAtM3B4O1xuICB9XG5cbiAgLmJsYWNrIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiBpZigkdGhlbWUtbGlnaHQsICM4ODgsICM2NjYpO1xuICAgIHRyYW5zaXRpb246IGhlaWdodCAxcztcbiAgfVxufVxuIiwiLmFuYWx5c2UtY29udHJvbHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBmb250LXNpemU6IDEuM3JlbTtcblxuICAuZmJ0IHtcbiAgICBAZXh0ZW5kICVib3gtcmFkaXVzLWJvdHRvbTtcblxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIC5oaWRkZW4ge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gIC5qdW1wcyB7XG4gICAgZGlzcGxheTogZmxleDtcblxuICAgIC5mYnQge1xuICAgICAgZmxleDogMSAxIDMwJTtcblxuICAgICAgJjpmaXJzdC1jaGlsZCxcbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIGZsZXg6IDEgMSAyMCU7XG4gICAgICAgIGZvbnQtc2l6ZTogLjdlbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIiNwcm9tb3Rpb24tY2hvaWNlIHtcbiAgQGV4dGVuZCAlYWJzLTEwMDtcblxuICBiYWNrZ3JvdW5kOiBmYWRlLW91dCgkYy1iZy1wYWdlLCAwLjMpO1xuICB6LWluZGV4OiB6KFwiY2dfX3Byb21vdGlvblwiKTtcblxuICBzcXVhcmUge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2IwYjBiMDtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMjVweCAzcHggIzgwODA4MDtcblxuICAgIEBpbmNsdWRlIHRyYW5zaXRpb247XG4gIH1cblxuICBwaWVjZSB7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgb3BhY2l0eTogMTtcblxuICAgIC8qIGNhbmNlbHMgYmxpbmRmb2xkICovXG4gIH1cblxuICAuaXMyZCAmIHBpZWNlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uO1xuXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjgpO1xuICB9XG5cbiAgc3F1YXJlOmhvdmVyIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgNDhweCA4cHggJGMtYWNjZW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDAlO1xuICB9XG5cbiAgLmlzMmQgJiBzcXVhcmU6aG92ZXIgcGllY2Uge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuIiwiLnZhcmlhbnQtcmFjaW5nS2luZ3MgLmNnLXdyYXAge1xuICAmLmNnLXdyYXAgY2ctY29udGFpbmVyOjpiZWZvcmUge1xuICAgIEBleHRlbmQgJXBvcHVwLXNoYWRvdztcblxuICAgIGJhY2tncm91bmQ6IGhzbGEoMCwgMCUsIDkwJSwgMC4yKTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEyLjUlO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6IDE7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cblxuICAmLm9yaWVudGF0aW9uLXdoaXRlIGNnLWNvbnRhaW5lcjo6YmVmb3JlIHtcbiAgICB0b3A6IDA7XG4gIH1cblxuICAmLm9yaWVudGF0aW9uLWJsYWNrIGNnLWNvbnRhaW5lcjo6YmVmb3JlIHtcbiAgICBib3R0b206IDA7XG4gIH1cbn1cblxuLnZhcmlhbnQta2luZ09mVGhlSGlsbCBjZy1jb250YWluZXI6OmJlZm9yZSB7XG4gIHdpZHRoOiAyNSU7XG4gIGhlaWdodDogMjUlO1xuICBib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKDAsIDAsIDAsIDAuNyk7XG4gIGJhY2tncm91bmQ6IGhzbGEoMCwgMCUsIDkwJSwgMC4yKTtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAzNy41JTtcbiAgbGVmdDogMzcuNSU7XG4gIHotaW5kZXg6IDE7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuIiwiQGltcG9ydCBcImNtbi10b2dnbGVcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnQvZmxhc2hcIjtcblxuLmZvcm0tZ3JvdXAge1xuICBtYXJnaW4tYm90dG9tOiAycmVtO1xufVxuXG4uZm9ybS1zcGxpdCB7XG4gIEBleHRlbmQgJWZsZXgtYmV0d2VlbjtcblxuICBhbGlnbi1pdGVtczogaW5oZXJpdDtcbn1cblxuLmZvcm0taGFsZiB7XG4gIGZsZXg6IDEgMSA0OCU7XG4gIG1pbi13aWR0aDogMjAwcHg7XG59XG5cbi5mb3JtLXRoaXJkIHtcbiAgZmxleDogMSAxIDMxJTtcbn1cblxuQGluY2x1ZGUgYnJlYWtwb2ludCgkbXEteHgtc21hbGwpIHtcbiAgLmZvcm0taGFsZixcbiAgLmZvcm0tdGhpcmQge1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgfVxufVxuXG5cbi5mb3JtLWxhYmVsIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogLjVyZW07XG59XG5cbi5mb3JtLWNvbnRyb2wge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogY2FsYygyLjdlbSArIDJweCk7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG59XG5cbnRleHRhcmVhLmZvcm0tY29udHJvbCB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLmZvcm0tY29udHJvbDppbnZhbGlkLFxuLmZvcm0tZ3JvdXAuaXMtaW52YWxpZCAuZm9ybS1jb250cm9sIHtcbiAgYm9yZGVyLWNvbG9yOiAkYy1lcnJvcjtcbn1cblxuLmZvcm0zIC5lcnJvcixcbi5mb3JtLWhlbHAge1xuICBmb250LXNpemU6IDkwJTtcbiAgbWFyZ2luLXRvcDogLjI1cmVtO1xufVxuXG4uZm9ybTMgLmVycm9yIHtcbiAgY29sb3I6ICRjLWVycm9yO1xufVxuXG4uZm9ybS1oZWxwIHtcbiAgY29sb3I6ICRjLWZvbnQtZGltO1xufVxuXG4uZm9ybS1jaGVjayBkaXYge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4uZm9ybS1jaGVjay1pbnB1dCB7XG4gIG1hcmdpbi1yaWdodDogLjVyZW07XG59XG5cbi5mb3JtLWNoZWNrIC5mb3JtLWxhYmVsIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uZm9ybS1hY3Rpb25zIHtcbiAgQGV4dGVuZCAlZmxleC1iZXR3ZWVuO1xuXG4gIG1hcmdpbjogMS41cmVtIDA7XG4gIHBhZGRpbmctdG9wOiAxLjVyZW07XG4gIGJvcmRlci10b3A6ICRib3JkZXI7XG59XG5cbi5mb3JtLWFjdGlvbnMuc2luZ2xlIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cblxuLmZvcm0zIGhyIHtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItdG9wOiAkYm9yZGVyO1xufVxuXG4vKiBWRU5ET1JTICovXG4uZm9ybTMgLnR3aXR0ZXItdHlwZWFoZWFkIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4iLCIuZmxhc2gge1xuICBtYXJnaW46IDFlbSAwIDJlbSAwO1xuXG4gICZfX2NvbnRlbnQge1xuICAgIEBleHRlbmQgJWJveC1yYWRpdXM7XG5cbiAgICBwYWRkaW5nOiAxZW0gMmVtO1xuICAgIGJhY2tncm91bmQ6ICRjLWdvb2Q7XG4gICAgY29sb3I6ICRjLWdvb2Qtb3ZlcjtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBAZXh0ZW5kICVkYXRhLWljb247XG5cbiAgICAgIGNvbnRlbnQ6ICdFJztcbiAgICAgIG1hcmdpbi1yaWdodDogMWVtO1xuICAgICAgZm9udC1zaXplOiAxLjVlbTtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgIGNvbG9yOiAkYy1nb29kLW92ZXI7XG4gICAgfVxuICB9XG5cbiAgJi13YXJuaW5nIC5mbGFzaF9fY29udGVudCB7XG4gICAgYmFja2dyb3VuZDogJGMtd2FybjtcbiAgICBjb2xvcjogJGMtd2Fybi1vdmVyO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIEBleHRlbmQgJWRhdGEtaWNvbjtcblxuICAgICAgY29udGVudDogJ+6AhSc7XG4gICAgfVxuICB9XG5cbiAgJi1mYWlsdXJlIC5mbGFzaF9fY29udGVudCB7XG4gICAgYmFja2dyb3VuZDogJGMtYmFkO1xuICAgIGNvbG9yOiAkYy1iYWQtb3ZlcjtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBAZXh0ZW5kICVkYXRhLWljb247XG5cbiAgICAgIGNvbnRlbnQ6ICdqJztcbiAgICB9XG4gIH1cbn1cbiIsIiRjLXRhYnMtYWN0aXZlOiAkYy1hY2NlbnQgIWRlZmF1bHQ7XG5cbi50YWJzLWhvcml6IHtcbiAgQGV4dGVuZCAlZmxleC1jZW50ZXItbm93cmFwLCAlcGFnZS10ZXh0O1xuXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkYy1ib3JkZXI7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbXEtbm90LXh4LXNtYWxsKSB7XG4gICAgZm9udC1zaXplOiAuOWVtO1xuICB9XG5cblxuICBzcGFuIHtcbiAgICBAZXh0ZW5kICVyb2JvdG87XG5cbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogLjVlbSAuMmVtO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGNvbG9yLCAwLjI1cyk7XG5cbiAgICBtaW4td2lkdGg6IDE1JTtcbiAgICBsZXR0ZXItc3BhY2luZzogLS41cHg7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtcS14eC1zbWFsbCkge1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IGluaGVyaXQ7XG4gICAgfVxuXG5cbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGJhY2tncm91bmQ6ICNiZDExMWY7XG4gICAgICBoZWlnaHQ6IDJweDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiA5NiU7XG4gICAgICBsZWZ0OiAyJTtcbiAgICAgIGJvdHRvbTogLTJweDtcblxuICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwsIDAuMjVzKTtcblxuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICB9XG5cbiAgICAmLmFjdGl2ZSxcbiAgICAmOmhvdmVyIHtcbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmFjdGl2ZSB7XG4gICAgICBjb2xvcjogI2JkMTExZjtcbiAgICB9XG4gIH1cblxuICAudW5yZWFkIHtcbiAgICBtYXJnaW4tbGVmdDogLjNlbTtcbiAgfVxufVxuIiwiLnNsaXN0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1ib3R0b206ICRib3JkZXI7XG5cbiAgdGhlYWQge1xuICAgIEBleHRlbmQgJW1ldGFsLCAlcm9ib3RvO1xuXG4gICAgdGgge1xuICAgICAgYm9yZGVyLXRvcDogJGJvcmRlcjtcbiAgICAgIGJvcmRlci1ib3R0b206ICRib3JkZXI7XG4gICAgICBwYWRkaW5nOiAuNXJlbSAuOHJlbTtcbiAgICB9XG5cbiAgICB0aC5sYXJnZSB7XG4gICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICB9XG4gIH1cblxuICB0ZCB7XG4gICAgcGFkZGluZzogMXJlbTtcblxuICAgIC5sYWJlbCB7XG4gICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlO1xuICAgICAgZm9udC1zaXplOiAuOHJlbTtcbiAgICB9XG4gIH1cblxuICB0Ym9keSB0cjpudGgtY2hpbGQoZXZlbikge1xuICAgIGJhY2tncm91bmQ6ICRjLWJnLXplYnJhO1xuICB9XG5cbiAgdGQ6Zmlyc3QtY2hpbGQsXG4gIHRoOmZpcnN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcbiAgfVxuXG4gICYtcGFkIHtcbiAgICB0ZDpmaXJzdC1jaGlsZCxcbiAgICB0aDpmaXJzdC1jaGlsZCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWJveC1wYWRkaW5nKTtcbiAgICB9XG5cbiAgICB0ZDpsYXN0LWNoaWxkLFxuICAgIHRoOmxhc3QtY2hpbGQge1xuICAgICAgcGFkZGluZy1yaWdodDogdmFyKC0tYm94LXBhZGRpbmcpO1xuICAgIH1cbiAgfVxuXG4gICYtaW52ZXJ0IHtcbiAgICB0Ym9keSB0cjpudGgtY2hpbGQob2RkKSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYy1iZy16ZWJyYTtcbiAgICB9XG5cbiAgICB0Ym9keSB0cjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIi5jb250ZXh0LXN0cmVhbWVycyB7XG4gIG1heC1oZWlnaHQ6IDIwdmg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbi5jb250ZXh0LXN0cmVhbWVyIHtcbiAgQGV4dGVuZCAlbm93cmFwLWhpZGRlbiwgJWJveC1yYWRpdXMtYm90dG9tLCAlYm94LXNoYWRvdywgJWZsZXgtY2VudGVyLW5vd3JhcDtcblxuICBoZWlnaHQ6IDIuMmVtO1xuICBjb2xvcjogJGMtc2Vjb25kYXJ5LW92ZXIgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogbWl4KCRjLXNlY29uZGFyeSwgJGMtYmctcGFnZSwgNjAlKTtcblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uO1xuXG4gICY6OmJlZm9yZSB7XG4gICAgZm9udC1zaXplOiAxLjNlbTtcbiAgICBtYXJnaW4tbGVmdDogLjRlbTtcbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IG1peCgkYy1zZWNvbmRhcnksICRjLWJnLXBhZ2UsIDgwJSk7XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCIuLi8uLi8uLi9jb21tb24vY3NzL2Jhc2Uvc2Nyb2xsYmFyXCI7XG5cbkBpbXBvcnQgXCJ0YWJcIjtcbkBpbXBvcnQgXCJtZW1iZXJzXCI7XG5AaW1wb3J0IFwiZGlzY3Vzc2lvblwiO1xuQGltcG9ydCBcInBhbGFudGlyXCI7XG5cbi5tY2hhdCB7XG4gIEBleHRlbmQgJWJveC1uZWF0LWZvcmNlLCAlZmxleC1jb2x1bW47XG5cbiAgZ3JpZC1hcmVhOiBjaGF0O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHN0cmV0Y2g7XG5cbiAgJl9fY29udGVudCB7XG4gICAgQGV4dGVuZCAlZmxleC1jb2x1bW47XG5cbiAgICBiYWNrZ3JvdW5kOiAkYy1iZy1ib3g7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICYubm90ZSB0ZXh0YXJlYSB7XG4gICAgICBmb250LXNpemU6IC45ZW07XG4gICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjdlbTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICByZXNpemU6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgbWluLWhlaWdodDogMTVlbTtcbn1cbiIsIi5tY2hhdCB7XG4gICZfX3RhYnMge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cblxuICAmX190YWIge1xuICAgIEBleHRlbmQgJXJvYm90bywgJW5vd3JhcC1oaWRkZW4sICVib3gtcmFkaXVzLXRvcDtcblxuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAuNGVtIDEwcHg7XG5cbiAgICAvLyBiYWNrZ3JvdW5kOiAkYy1zaGFkZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY29sb3I6ICRjLWZvbnQtcGFnZTtcblxuICAgIEBpbmNsdWRlIHRyYW5zaXRpb247XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IG1peCgkYy1hY2NlbnQsICRjLWJnLWJveCwgMTUlKTtcbiAgICB9XG5cbiAgICAmLWFjdGl2ZSB7XG4gICAgICBjb2xvcjogJGMtZm9udDtcbiAgICAgIGJhY2tncm91bmQ6ICRjLWJnLWJveCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIGlucHV0IHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgIEBleHRlbmQgJWNoZWNrYm94O1xuICAgIH1cblxuICAgICYtYWN0aXZlIGlucHV0IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIHNwYW4ge1xuICAgICAgQGV4dGVuZCAlbm93cmFwLWVsbGlwc2lzO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJi1vcHRpb25hbCAubWNoYXRfX3RhYi5kaXNjdXNzaW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG59XG4iLCIuY2hhdF9fbWVtYmVycyB7XG4gIEBleHRlbmQgJXBhZ2UtdGV4dDtcblxuICBmb250LXNpemU6IC45ZW07XG5cbiAgLy8gbWluLWhlaWdodDogNWVtO1xuICAvLyBtYXgtaGVpZ2h0OiA5ZW07XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbiIsIi5tY2hhdCB7XG4gICZfX21lc3NhZ2VzIHtcbiAgICBAZXh0ZW5kICVicmVhay13b3JkO1xuXG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWF4LWhlaWdodDogNTB2aDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1xLWNvbDMtdW5pYm9hcmQpIHtcbiAgICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgfVxuXG5cbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICBjdXJzb3I6IGluaXRpYWw7XG4gICAgZm9udC1zaXplOiAuOWVtO1xuXG4gICAgbGkge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgcGFkZGluZzogLjVlbSAwIC41ZW0gMTBweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjJlbTtcbiAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICAgIHVzZXItc2VsZWN0OiB0ZXh0O1xuICAgIH1cblxuICAgIC5kZWxldGVkIHtcbiAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICB9XG5cbiAgICAuc3lzdGVtIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgb3BhY2l0eTogMC44O1xuICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgZm9udC1zaXplOiAuOWVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLmNvbG9yLFxuICAgIC51c2VyLWxpbmsge1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgY29sb3I6ICRjLWZvbnQtZGltO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IC0xcHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IC40ZW07XG4gICAgfVxuXG4gICAgLnV0aXRsZSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDNweDtcbiAgICB9XG5cbiAgICBhOm5vdCgudXNlci1saW5rKSB7XG4gICAgICBAZXh0ZW5kICVyb2JvdG87XG4gICAgfVxuXG4gICAgaSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1cHg7XG4gICAgICByaWdodDogMDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIG1hcmdpbi1yaWdodDogM3B4O1xuICAgICAgcGFkZGluZzogNHB4IDVweDtcbiAgICAgIG9wYWNpdHk6IDAuNztcbiAgICAgIGNvbG9yOiAkYy1hY2NlbnQ7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxpOmhvdmVyIGkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB0ZXh0LXNoYWRvdzogMCAwIDJweCAkYy1iZy1ib3gsIDAgMCA1cHggJGMtYmctYm94LCAwIDAgMTBweCAkYy1iZy1ib3g7XG4gICAgfVxuICB9XG5cbiAgJl9fc2F5IHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXRvcDogJGJvcmRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIHBhZGRpbmc6IDNweCAyMHB4IDNweCA0cHg7XG5cbiAgICAmLndoaXNwZXIge1xuICAgICAgY29sb3I6ICRjLWdvb2Q7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICB9XG4gIH1cbn1cbiIsIkBrZXlmcmFtZXMgcGFsYW50aXItZ2xvd2luZyB7XG4gIDQwJSB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgfVxuXG4gIDUwJSB7XG4gICAgYmFja2dyb3VuZDogbWl4KCRjLXNlY29uZGFyeSwgJGMtYmctYm94LCAzMCUpO1xuICB9XG5cbiAgNjAlIHtcbiAgICBiYWNrZ3JvdW5kOiBtaXgoJGMtcHJpbWFyeSwgJGMtYmctYm94LCAzMCUpO1xuICB9XG5cbiAgNzAlIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICB9XG59XG5cbi5wYWxhbnRpciB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICBhbmltYXRpb246IHBhbGFudGlyLWdsb3dpbmcgMS41cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgYm9yZGVyLXJhZGl1czogMCAzcHggMCAwO1xuXG4gICYtc2xvdCB7XG4gICAgYW5pbWF0aW9uOiBub25lO1xuICAgIG9wYWNpdHk6IC42O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxuXG4gICYtb2ZmIHtcbiAgICBhbmltYXRpb246IG5vbmU7XG4gIH1cblxuICAmLW9uIHtcbiAgICBiYWNrZ3JvdW5kOiAkYy1nb29kO1xuICAgIGNvbG9yOiAkYy1nb29kLW92ZXI7XG4gICAgYW5pbWF0aW9uOiBub25lO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYy1iYWQgIWltcG9ydGFudDtcbiAgICAgIGNvbG9yOiAkYy1iYWQtb3ZlciAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICB0b3A6IDFweDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiBhdXRvO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxufVxuIiwiLnBvY2tldCB7XG4gIEBleHRlbmQgJWJveC1yYWRpdXM7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDYyLjUlO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1xLWNvbDItdW5pYm9hcmQpIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3gtc2hhZG93OiAwIDNweCA1cHggcmdiYSgwLCAwLCAwLCAwLjMpIGluc2V0O1xuICAgIGJhY2tncm91bmQ6ICM4ODg7XG4gIH1cblxuXG4gICYtYzEge1xuICAgIGZsZXg6IDAgMCAyMCU7XG4gICAgbWF4LXdpZHRoOiAxMHZtaW47XG4gIH1cblxuICAmLWMyIHtcbiAgICBAZXh0ZW5kICVzcXVhcmU7XG4gIH1cblxuICBwaWVjZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcblxuICAgIEBpbmNsdWRlIHRyYW5zaXRpb247XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBAZXh0ZW5kICVhY3RpdmUsICVib3gtcmFkaXVzO1xuXG4gICAgICBjb250ZW50OiBhdHRyKGRhdGEtbmIpO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsaW5lLWhlaWdodDogLjllbTtcbiAgICAgIHBhZGRpbmc6IDNweCAuM2VtO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBmb250LXNpemU6IDEuMWVtO1xuICAgIH1cblxuICAgICZbZGF0YS1uYj0nMCddIHtcbiAgICAgIGN1cnNvcjogYXV0bztcbiAgICAgIG9wYWNpdHk6IDAuMTtcblxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgICYucHJlbW92ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTU1O1xuICAgIH1cbiAgfVxuXG4gICYudXNhYmxlIHtcbiAgICBwaWVjZSB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNhYWE7XG4gICAgICB9XG5cbiAgICAgICY6Zmlyc3QtY2hpbGQ6aG92ZXIge1xuICAgICAgICBAZXh0ZW5kICVib3gtcmFkaXVzLWxlZnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmJsaW5kZm9sZCAmOm5vdCgudXNhYmxlKSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuIiwiQGltcG9ydCBcIi4uL2FuYWx5c2UuYmFzZVwiO1xuQGltcG9ydCBcIi4uL2FjcGxcIjtcblxuQGltcG9ydCBcImxheW91dFwiO1xuQGltcG9ydCBcImxpc3RcIjtcbkBpbXBvcnQgXCJjaGFwdGVyc1wiO1xuQGltcG9ydCBcIm1lbWJlcnNcIjtcbkBpbXBvcnQgXCJwbGF5ZXJcIjtcbkBpbXBvcnQgXCJtb2RhbFwiO1xuQGltcG9ydCBcImVkaXRvclwiO1xuQGltcG9ydCBcImJ1dHRvbnNcIjtcbkBpbXBvcnQgXCJpbnZpdGVcIjtcbkBpbXBvcnQgXCJkZXNjXCI7XG5AaW1wb3J0IFwicGFuZWwvbWV0YWRhdGFcIjtcbkBpbXBvcnQgXCJwYW5lbC9jb21tZW50XCI7XG5AaW1wb3J0IFwicGFuZWwvZ2x5cGhcIjtcbkBpbXBvcnQgXCJwYW5lbC9zaGFyZVwiO1xuQGltcG9ydCBcInBhbmVsL211bHRpYm9hcmRcIjtcbkBpbXBvcnQgXCJwYW5lbC9zZXJ2ZXItZXZhbFwiO1xuQGltcG9ydCBcInBhbmVsL21lc3NhZ2VcIjtcbkBpbXBvcnQgXCJyZWxheS9pbnRyb1wiO1xuIiwiQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuXG4lYm9yZGVyLWJvdHRvbS1hY3RpdmUge1xuICBib3JkZXItYm90dG9tOiAkYm9yZGVyO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1xLWNvbDIpIHtcbiAgICBib3JkZXItYm90dG9tOiAzcHggc29saWQgI2JkMTExZjtcbiAgfVxufVxuXG5AaW1wb3J0IFwibGF5b3V0XCI7XG5AaW1wb3J0IFwidG9vbHNcIjtcbkBpbXBvcnQgXCJhY3Rpb24tbWVudVwiO1xuQGltcG9ydCBcImV4cGxvcmVyXCI7XG5AaW1wb3J0IFwidHJhaW5pbmdcIjtcbkBpbXBvcnQgXCJwcmFjdGljZVwiO1xuQGltcG9ydCBcImZvcmtcIjtcbkBpbXBvcnQgXCJzaWRlXCI7XG5AaW1wb3J0IFwiY29udGV4dC1tZW51XCI7XG5cbi8vIEBpbXBvcnQgJ3NpZGUtY2xvY2snO1xuIiwiJG1xLWNvbDE6ICRtcS1jb2wxLXVuaWJvYXJkO1xuJG1xLWNvbDI6ICRtcS1jb2wyLXVuaWJvYXJkO1xuJG1xLWNvbDM6ICRtcS1jb2wzLXVuaWJvYXJkO1xuXG4kbWV0YS1oZWlnaHQ6IHZhcigtLW1ldGEtaGVpZ2h0KTtcbiRjaGF0LWhlaWdodDogZml0LWNvbnRlbnQoMCk7XG4iLCJib2R5IHtcbiAgLyogcHJldmVudHMgc2Nyb2xsIGJhciBmbGlja2VyIG9uIHBhZ2UgaGVpZ2h0IGNoYW5nZXMgKi9cbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xufVxuXG4jbWFpbi13cmFwIHtcbiAgLS1tYWluLW1heC13aWR0aDogY2FsYygxMDB2aCAtICN7JHNpdGUtaGVhZGVyLW91dGVyLWhlaWdodH0gLSAjeyRjb2wxLXVuaWJvYXJkLWNvbnRyb2xzfSk7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbXEtY29sMikge1xuICAgIC0tbWFpbi1tYXgtd2lkdGg6IGF1dG87XG4gIH1cbn1cblxuLmFuYWx5c2Uge1xuICBncmlkLWFyZWE6IG1haW47XG4gIGRpc3BsYXk6IGdyaWQ7XG5cbiAgJl9fc2lkZSB7XG4gICAgZ3JpZC1hcmVhOiBzaWRlO1xuICAgIGp1c3RpZnktY29udGVudDogc3RhcnQ7XG4gICAgbWFyZ2luOiAkYmxvY2stZ2FwO1xuICB9XG5cbiAgJl9fYm9hcmQsXG4gIC5pbnRybyB7XG4gICAgZ3JpZC1hcmVhOiBib2FyZDtcbiAgfVxuXG4gICZfX3Rvb2xzIHtcbiAgICBncmlkLWFyZWE6IHRvb2xzO1xuICB9XG5cbiAgJl9fY29udHJvbHMge1xuICAgIGdyaWQtYXJlYTogY29udHJvbHM7XG4gIH1cblxuICAmX191bmRlcmJvYXJkIHtcbiAgICBncmlkLWFyZWE6IHVuZGVyO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbXEtY29sMS11bmlib2FyZCkge1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgLy8gaGVscHMgdHJ1bmNhdGluZyBsb25nIHN0dWR5IG5hbWVzXG4gICAgfVxuICB9XG5cbiAgJl9fYWNwbCB7XG4gICAgZ3JpZC1hcmVhOiBhY3BsO1xuICB9XG5cbiAgLmNoYXRfX21lbWJlcnMge1xuICAgIGdyaWQtYXJlYTogdWNoYXQ7XG4gIH1cblxuICAuZXZhbC1nYXVnZSB7XG4gICAgZ3JpZC1hcmVhOiBnYXVnZTtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLS1tZXRhLWhlaWdodDogYXV0bztcblxuICBAaW5jbHVkZSBwcm9wZXItZ3JpZCB7XG4gICAgLS1tZXRhLWhlaWdodDogbWF4LWNvbnRlbnQ7XG4gIH1cblxuXG4gIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byBhdXRvIG1pbm1heCgyMGVtLCAzMHZoKTtcbiAgZ3JpZC10ZW1wbGF0ZS1hcmVhczogJ2JvYXJkJyAnY29udHJvbHMnICd0b29scycgJ3NpZGUnICdhY3BsJyAndW5kZXInICdjaGF0JyAndWNoYXQnO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1xLWNvbDIpIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6ICRjb2wyLXVuaWJvYXJkLXdpZHRoIHZhcigtLWdhdWdlLWdhcCkgJGNvbDItdW5pYm9hcmQtdGFibGU7XG4gICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBmaXQtY29udGVudCgwKTtcbiAgICBncmlkLXRlbXBsYXRlLWFyZWFzOiAnYm9hcmQgICAgICBnYXVnZSB0b29scycgJ3VuZGVyICAgICAgLiAgICAgY29udHJvbHMnICd1bmRlciAgICAgIC4gICAgIGFjcGwnICd1bmRlciAgICAgIC4gICAgIHNpZGUnICdjaGF0ICAgICAgIC4gICAgIHNpZGUnICd1Y2hhdCAgICAgIC4gICAgIHNpZGUnO1xuICAgIGdyaWQtcm93LWdhcDogMDtcblxuICAgICZfX3NpZGUsXG4gICAgLmNoYXRfX21lbWJlcnMsXG4gICAgLm1jaGF0IHtcbiAgICAgIG1hcmdpbjogJGJsb2NrLWdhcCAwIDAgMDtcbiAgICB9XG5cbiAgICAmX191bmRlcmJvYXJkIHtcbiAgICAgIG1hcmdpbi10b3A6ICRibG9jay1nYXA7XG4gICAgfVxuXG4gICAgLmV2YWwtZ2F1Z2Uge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG5cblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRtcS1jb2wyLXVuaWJvYXJkLXNxdWVlemUpIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6ICRjb2wyLXVuaWJvYXJkLXNxdWVlemUtd2lkdGggdmFyKC0tZ2F1Z2UtZ2FwKSAkY29sMi11bmlib2FyZC1zcXVlZXplLXRhYmxlO1xuICB9XG5cblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRtcS1jb2wzKSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAkY29sMy11bmlib2FyZC1zaWRlICRibG9jay1nYXAgJGNvbDMtdW5pYm9hcmQtd2lkdGggdmFyKC0tZ2F1Z2UtZ2FwKSAkY29sMy11bmlib2FyZC10YWJsZTtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6ICRtZXRhLWhlaWdodCAkY2hhdC1oZWlnaHQgMi41ZW0gYXV0bztcbiAgICBncmlkLXRlbXBsYXRlLWFyZWFzOiAnc2lkZSAgICAuIGJvYXJkIGdhdWdlIHRvb2xzJyAnY2hhdCAgICAuIGJvYXJkIGdhdWdlIHRvb2xzJyAndWNoYXQgICAuIHVuZGVyIC4gICAgIGNvbnRyb2xzJyAndWNoYXQgICAuIHVuZGVyIC4gICAgIGFjcGwnO1xuXG4gICAgJl9fc2lkZSB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cblxuICAgIC5tY2hhdCB7XG4gICAgICBtaW4taGVpZ2h0OiAxMGVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGNyb3NzdGFibGUtbGFyZ2U7XG4gIH1cbn1cbiIsIi5hbmFseXNlIHtcbiAgJl9fdG9vbHMge1xuICAgIEBleHRlbmQgJWJveC1uZWF0LWZvcmNlLCAlZmxleC1jb2x1bW47XG5cbiAgICBtYXgtaGVpZ2h0OiAxMDB2aDtcblxuICAgIC8qIG1hZ2ljYWxseSBmaXhlcyBmaXQtY29udGVudCBvbiBzYWZhcmkgMTAgKi9cbiAgICBiYWNrZ3JvdW5kOiAkYy1iZy1ib3g7XG5cbiAgICAuY2V2YWwge1xuICAgICAgZmxleDogMCAwIDM4cHg7XG4gICAgfVxuXG4gICAgLnN1Yi1ib3gge1xuICAgICAgQGV4dGVuZCAlYm9yZGVyLWJvdHRvbS1hY3RpdmU7XG5cbiAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAudGl0bGUge1xuICAgICAgICBmb250LXNpemU6IC45cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS45ZW07XG4gICAgICAgIGJhY2tncm91bmQ6IG1peCgkYy1zZWNvbmRhcnksICRjLWJnLWJveCwgNDAlKTtcbiAgICAgICAgcGFkZGluZzogMCA3cHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fbW92ZXMge1xuICAgIGZsZXg6IDIgMSAwO1xuXG4gICAgLy8gMCBzaXplIGZvcmNlcyB2ZXJ0aWNhbCBzY3JvbGxiYXJcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcblxuICAgIC8vIGVsc2UgYSBzY3JvbGxiYXIgYXBwZWFycyBzb21ldGltZXNcbiAgICBib3JkZXItdG9wOiAkYm9yZGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC8qIHJlcXVpcmVkIHNvIGxpbmU6OmJlZm9yZSBzY3JvbGxzIGFsb25nIHRoZSBtb3ZlcyEgKi9cbiAgICAucmVzdWx0LFxuICAgIC5zdGF0dXMge1xuICAgICAgYmFja2dyb3VuZDogJGMtYmctemVicmE7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLnJlc3VsdCB7XG4gICAgICBib3JkZXItdG9wOiAkYm9yZGVyO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBmb250LXNpemU6IDEuMmVtO1xuICAgICAgcGFkZGluZzogNXB4IDAgM3B4IDA7XG4gICAgfVxuXG4gICAgLnN0YXR1cyB7XG4gICAgICBmb250LXNpemU6IDFlbTtcbiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgIHBhZGRpbmctYm90dG9tOiA3cHg7XG4gICAgfVxuICB9XG5cbiAgJl9fY29udHJvbHMge1xuICAgIGhlaWdodDogJGNvbDMtdW5pYm9hcmQtY29udHJvbHM7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG5cbiAgICBkaXYge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgfVxuXG4gICAgLmp1bXBzIHtcbiAgICAgIGZsZXg6IDMgMSBhdXRvO1xuICAgIH1cblxuICAgIC5mYnQge1xuICAgICAgQGV4dGVuZCAlcGFnZS10ZXh0O1xuXG4gICAgICBmbGV4OiAwIDAgMi41cmVtO1xuICAgIH1cblxuICAgIC5hY3RpdmUge1xuICAgICAgbWFyZ2luLXRvcDogLTNweDtcbiAgICAgIHBhZGRpbmctdG9wOiAzcHg7XG4gICAgfVxuXG4gICAgOjpiZWZvcmUge1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cbn1cbiIsIi5hY3Rpb24tbWVudSB7XG4gIEBleHRlbmQgJWJvcmRlci1ib3R0b20tYWN0aXZlO1xuXG4gIGZsZXg6IDEgMSAwO1xuXG4gIC8vIDAgc2l6ZSBmb3JjZXMgdmVydGljYWwgc2Nyb2xsYmFyXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogY29sdW1uO1xuICBvdmVyZmxvdzogYXV0bztcbiAgcGFkZGluZzogJGJsb2NrLWdhcDtcblxuICBoMiB7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBtYXJnaW46ICRibG9jay1nYXAgMCAzcHggMDtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBwYWRkaW5nOiAwIDEwcHg7XG5cbiAgICAmOmJlZm9yZSxcbiAgICAmOmFmdGVyIHtcbiAgICAgIGJvcmRlci10b3A6ICRib3JkZXI7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0b3A6IC41ZW07XG4gICAgICB3aWR0aDogNDUlO1xuICAgIH1cblxuICAgICY6YmVmb3JlIHtcbiAgICAgIHJpZ2h0OiA4cHg7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICBsZWZ0OiA4cHg7XG4gICAgfVxuICB9XG5cbiAgJl9fdG9vbHMge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcblxuICAgID4gKiB7XG4gICAgICBAZXh0ZW5kICVmbGV4LWNvbHVtbjtcblxuICAgICAgZmxleDogMCAwIDUwJTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBoZWlnaHQ6IDc1cHg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAuYnV0dG9uIHtcbiAgICAgIGNvbG9yOiAkYy1mb250O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuXG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC1zaXplOiAyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxZW07XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuYXV0b3BsYXkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICBhIHtcbiAgICAgIGNvbG9yOiAkYy1mb250LWRpbTtcbiAgICAgIGZvbnQtc2l6ZTogLjllbTtcbiAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgcGFkZGluZzogN3B4IDA7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuICB9XG5cbiAgZm9ybS5kZWxldGUge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIG1hcmdpbi10b3A6IDZweDtcblxuICAgIC5idXR0b24ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcGFkZGluZzogMCA4cHg7XG4gICAgfVxuXG4gICAgLmJ1dHRvbjo6YmVmb3JlIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gICAgfVxuICB9XG5cbiAgLnNldHRpbmcge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIG1hcmdpbi10b3A6ICRibG9jay1nYXA7XG4gICAgZGlzcGxheTogZmxleDtcblxuICAgIGxhYmVsIHtcbiAgICAgIGZsZXg6IDQgMSBhdXRvO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG5cbiAgICBpbnB1dFt0eXBlPXJhbmdlXSB7XG4gICAgICBmbGV4OiAxIDQgYXV0bztcbiAgICAgIHBhZGRpbmc6IDAgMWVtO1xuICAgICAgaGVpZ2h0OiAxLjZlbTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5yYW5nZV92YWx1ZSB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbXEtY29sMSkge1xuICAgIC5hYnNldC1pbmxpbmUge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAvLyBmb3JjZSBpbmxpbmUgb24gbW9iaWxlXG4gIH1cbn1cbiIsIi5leHBsb3Jlci1ib3gge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZsZXg6IDIuNSAxIDBweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICBAaW5jbHVkZSB0cmFuc2l0aW9uO1xuXG4gIHRyYW5zaXRpb24tZGVsYXk6IDAuM3M7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgZm9udC1zaXplOiAuOWVtO1xuXG4gICYucmVkdWNlZCB7XG4gICAgZmxleDogMC4zIDMgMHB4O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBmbGV4OiAxIDIgMHB4O1xuICAgIH1cbiAgfVxuXG4gIC5vdmVybGF5IHtcbiAgICBAZXh0ZW5kICVsaW5rLW92ZXJsYXk7XG5cbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgJi5sb2FkaW5nIC5vdmVybGF5IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIHRib2R5IHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uO1xuICB9XG5cbiAgJi5sb2FkaW5nIHRib2R5IHtcbiAgICBvcGFjaXR5OiAwLjQ7XG4gIH1cblxuICAudGl0bGUgc3BhbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiAxLjllbTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHVzZXItc2VsZWN0OiB0ZXh0O1xuICB9XG5cbiAgLmVtcHR5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogY29sdW1uO1xuICAgIGhlaWdodDogMTAwJTtcblxuICAgIC5tZXNzYWdlIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gIH1cblxuICB0ciB7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbjtcblxuICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgIGJhY2tncm91bmQ6ICRjLWJnLXplYnJhO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogbWl4KCRjLXNlY29uZGFyeSwgJGMtYmctYm94LCAyMCUpO1xuICAgIH1cbiAgfVxuXG4gIHRkIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgcGFkZGluZy1sZWZ0OiA3cHg7XG4gIH1cblxuICAubW92ZXMgdGQ6Zmlyc3QtY2hpbGQge1xuICAgIEBleHRlbmQgJXNhbjtcblxuICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgIHBhZGRpbmctbGVmdDogN3B4O1xuICB9XG5cbiAgLm1vdmVzIHRkOm50aC1jaGlsZCgyKSB7XG4gICAgZm9udC1zaXplOiAuNzVlbTtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgfVxuXG4gIC5tb3ZlcyB0ZDpsYXN0LWNoaWxkIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nLXJpZ2h0OiA3cHg7XG4gIH1cblxuICAuYmFyIHNwYW4ge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGJvcmRlcjogMCBzb2xpZCAkYy1ib3JkZXI7XG4gICAgYm9yZGVyLXdpZHRoOiAxcHggMDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE0cHg7XG4gICAgZm9udC1zaXplOiAuOWVtO1xuICB9XG5cbiAgLndoaXRlIHtcbiAgICBiYWNrZ3JvdW5kOiBpZigkdGhlbWUtbGlnaHQsICNmZmYsICNjY2MpO1xuICAgIGJveC1zaGFkb3c6IDAgLTVweCA3cHggcmdiYSgwLCAwLCAwLCBpZigkdGhlbWUtbGlnaHQsIDAuMSwgMC4yNSkpIGluc2V0O1xuXG4gICAgQGlmICR0aGVtZS1kYXJrIHtcbiAgICAgIGNvbG9yOiAjMjIyO1xuICAgIH1cbiAgfVxuXG4gIC5kcmF3cyxcbiAgLmJsYWNrIHtcbiAgICBjb2xvcjogaWYoJHRoZW1lLWxpZ2h0LCAjZmZmLCAjZGRkKTtcbiAgICBib3gtc2hhZG93OiAwIDVweCA3cHggcmdiYSgyNTUsIDI1NSwgMjU1LCBpZigkdGhlbWUtbGlnaHQsIDAuMiwgMC4xKSkgaW5zZXQ7XG4gIH1cblxuICAuZHJhd3Mge1xuICAgIGJhY2tncm91bmQ6IGlmKCR0aGVtZS1saWdodCwgI2EwYTBhMCwgIzY2Nik7XG4gIH1cblxuICAuYmxhY2sge1xuICAgIGJhY2tncm91bmQ6IGlmKCR0aGVtZS1saWdodCwgIzU1NSwgIzMzMyk7XG4gICAgY29sb3I6ICNkZGQ7XG4gIH1cblxuICAuYmFyIHNwYW46Zmlyc3QtY2hpbGQge1xuICAgIEBleHRlbmQgJWJveC1yYWRpdXMtbGVmdDtcblxuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gIH1cblxuICAuYmFyIHNwYW46bGFzdC1jaGlsZCB7XG4gICAgQGV4dGVuZCAlYm94LXJhZGl1cy1yaWdodDtcblxuICAgIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICB9XG5cbiAgLmdhbWVzIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC5nYW1lcyB0ZCB7XG4gICAgcGFkZGluZzogNXB4IDAgNXB4IDdweDtcbiAgICBtYXgtd2lkdGg6IDExMHB4O1xuICB9XG5cbiAgLmdhbWVzIHRkIHNwYW4ge1xuICAgIEBleHRlbmQgJWVsbGlwc2lzO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAuZ2FtZXMgcmVzdWx0IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogM3B4IDVweDtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgZm9udC1zaXplOiAuOWVtO1xuICB9XG5cbiAgLmdhbWVfbWVudSB7XG4gICAgYmFja2dyb3VuZDogJGMtc2Vjb25kYXJ5O1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgLmdhbWVfdGl0bGUge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgY29sb3I6ICRjLXNlY29uZGFyeS1vdmVyO1xuICAgICAgbWFyZ2luOiAzcHggMCAxcHggMDtcbiAgICB9XG5cbiAgICAubWVudSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAgICAgYSB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBwYWRkaW5nOiA0cHggOHB4O1xuICAgICAgfVxuXG4gICAgICBhOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC50YWJsZWJhc2Uge1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgdGQ6Zmlyc3QtY2hpbGQge1xuICAgICAgQGV4dGVuZCAlc2FuO1xuXG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICAgIHBhZGRpbmctbGVmdDogN3B4O1xuICAgIH1cblxuICAgIHRkOmxhc3QtY2hpbGQge1xuICAgICAgcGFkZGluZy1yaWdodDogN3B4O1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuXG4gICAgcmVzdWx0IHtcbiAgICAgIHBhZGRpbmc6IDNweCA1cHg7XG4gICAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgZm9udC1zaXplOiAuOWVtO1xuICAgIH1cbiAgfVxuXG4gIC50b2NvbmYge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gICAgd2lkdGg6IDEuNWVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgb3BhY2l0eTogMC44O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxuXG4gIC5tZXNzYWdlIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGZsZXg6IDEgMSAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cblxuICAmLnJlZHVjZWQgLm1lc3NhZ2Uge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgfVxuXG4gIC5tZXNzYWdlIHN0cm9uZyB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbWFyZ2luOiAxZW0gMDtcbiAgfVxuXG4gICY6bm90KC5yZWR1Y2VkKSAubWVzc2FnZSBoMyxcbiAgJi5yZWR1Y2VkOmhvdmVyIC5tZXNzYWdlIGgzIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuXG4gIC5tZXNzYWdlIHAge1xuICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgcGFkZGluZzogMCA4cHg7XG4gICAgbWFyZ2luOiAwIDAgOHB4IDA7XG4gIH1cblxuICAmLnJlZHVjZWQgLm1lc3NhZ2UgcCxcbiAgJi5yZWR1Y2VkIC5tZXNzYWdlIGJ1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICYucmVkdWNlZDpob3ZlciAubWVzc2FnZSBwLFxuICAmLnJlZHVjZWQ6aG92ZXIgLm1lc3NhZ2UgYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC5tZXNzYWdlIGJ1dHRvbiB7XG4gICAgbWFyZ2luOiAwIDMwcHg7XG4gIH1cblxuICAubWVzc2FnZS5tYXN0ZXJzIGkge1xuICAgIGZvbnQtc2l6ZTogNDBweDtcbiAgICBtYXJnaW46IDEwcHggMDtcbiAgfVxuXG4gIC5jb25maWcge1xuICAgIHNlY3Rpb24ge1xuICAgICAgbWFyZ2luOiAwLjRlbSAkYmxvY2stZ2FwIDAgJGJsb2NrLWdhcDtcbiAgICB9XG5cbiAgICBzZWN0aW9uLnNhdmUge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgcGFkZGluZzogMTVweCAwIDEwcHggMDtcbiAgICB9XG5cbiAgICBsYWJlbCB7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbGluZS1oZWlnaHQ6IDJlbTtcbiAgICB9XG5cbiAgICAuY2hvaWNlcyB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICBzcGFuIHtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBwYWRkaW5nOiA1cHggMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbjtcblxuICAgICAgICBib3JkZXI6ICRib3JkZXI7XG4gICAgICAgIGJvcmRlci13aWR0aDogMXB4IDAgMXB4IDFweDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgQGV4dGVuZCAlYm94LXJhZGl1cy1sZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBAZXh0ZW5kICVib3gtcmFkaXVzLXJpZ2h0O1xuXG4gICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5zZWxlY3RlZCB7XG4gICAgICAgICAgYmFja2dyb3VuZDogJGMtc2Vjb25kYXJ5O1xuICAgICAgICAgIGNvbG9yOiAkYy1zZWNvbmRhcnktb3ZlcjtcbiAgICAgICAgICB0ZXh0LXNoYWRvdzogMXB4IDAgMCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgYm94LXNoYWRvdzogMCAzcHggNXB4IHJnYmEoMCwgMCwgMCwgMC4yKSBpbnNldDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLnRyYWluaW5nLWJveCB7XG4gIEBleHRlbmQgJWZsZXgtY29sdW1uO1xuXG4gIGZsZXg6IDEuNSAxIDBweDtcblxuICAuZmVlZGJhY2sge1xuICAgIGZsZXg6IDEgMSAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cblxuICAucHJvZ3Jlc3Mge1xuICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICBvcGFjaXR5OiAwLjg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA0cHg7XG4gICAgYmFja2dyb3VuZDogJGMtc2hhZGU7XG4gIH1cblxuICAucHJvZ3Jlc3MgZGl2IHtcbiAgICBiYWNrZ3JvdW5kOiAkYy1nb29kO1xuICAgIGhlaWdodDogNHB4O1xuICAgIHRyYW5zaXRpb246IHdpZHRoIDAuNXM7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLnBsYXllciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICB9XG5cbiAgLm5vLXNxdWFyZSB7XG4gICAgd2lkdGg6IDY0cHg7XG4gICAgaGVpZ2h0OiA2NHB4O1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgfVxuXG4gIC5pczNkICYgZGl2Lm5vLXNxdWFyZSB7XG4gICAgaGVpZ2h0OiA4MnB4O1xuICB9XG5cbiAgcGllY2Uge1xuICAgIHBvc2l0aW9uOiBpbmhlcml0O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuaWNvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDY0cHg7XG4gICAgaGVpZ2h0OiA2NHB4O1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICBmb250LXNpemU6IDUwcHg7XG4gICAgZm9udC1zaXplOiA2NHB4O1xuICAgIGxpbmUtaGVpZ2h0OiA2NHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIC5pbnN0cnVjdGlvbiA+ICoge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLmluc3RydWN0aW9uID4gc3Ryb25nIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gIH1cblxuICAuY2hvaWNlcyB7XG4gICAgbGluZS1oZWlnaHQ6IDEuNmVtO1xuICAgIG1hcmdpbjogNXB4IDAgLTVweCAwO1xuICB9XG5cbiAgLmNob2ljZXMgYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cbiIsIi5wcmFjdGljZS1ib3gge1xuICBmbGV4OiAwIDAgMTM1cHg7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuXG4gIC5jb21tZW50IHtcbiAgICBmbGV4OiAwIDAgMzBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIGJhY2tncm91bmQ6ICRjLWJnLXplYnJhO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkYm9yZGVyO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gIH1cblxuICAucHJvZ3Jlc3MgZGl2IHtcbiAgICBiYWNrZ3JvdW5kOiAkYy1zaGFkZTtcbiAgfVxuXG4gICYuZ29vZE1vdmUgLnByb2dyZXNzIGRpdiB7XG4gICAgYmFja2dyb3VuZDogJGMtZ29vZDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgfVxuXG4gICYuaW5hY2N1cmFjeSAudGl0bGUsXG4gICYuaW5hY2N1cmFjeSAucHJvZ3Jlc3MgZGl2IHtcbiAgICBiYWNrZ3JvdW5kOiAkYy1icmFnO1xuICAgIGNvbG9yOiAjZmZmO1xuICB9XG5cbiAgJi5taXN0YWtlIC50aXRsZSxcbiAgJi5ibHVuZGVyIC50aXRsZSxcbiAgJi5taXN0YWtlIC5wcm9ncmVzcyBkaXYsXG4gICYuYmx1bmRlciAucHJvZ3Jlc3MgZGl2IHtcbiAgICBiYWNrZ3JvdW5kOiAkYy1iYWQ7XG4gICAgY29sb3I6ICNmZmY7XG4gIH1cblxuICAuY29tbWVudCAud2FpdCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICB9XG5cbiAgLnZlcmRpY3Qge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG5cbiAgLnZlcmRpY3Q6OmJlZm9yZSB7XG4gICAgd2lkdGg6IDMwcHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIG1hcmdpbi1yaWdodDogN3B4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDEuNGVtO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIH1cblxuICAmLmdvb2RNb3ZlIC52ZXJkaWN0IHtcbiAgICBjb2xvcjogJGMtZ29vZDtcbiAgfVxuXG4gICYuZ29vZE1vdmUgLnZlcmRpY3Q6OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogJGMtZ29vZDtcbiAgICBjb250ZW50OiAn4pyTJztcbiAgICBmb250LXNpemU6IDEuN2VtO1xuICB9XG5cbiAgJi5pbmFjY3VyYWN5IC52ZXJkaWN0IHtcbiAgICBjb2xvcjogJGMtYnJhZztcbiAgfVxuXG4gICYuaW5hY2N1cmFjeSAudmVyZGljdDo6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kOiAkYy1icmFnO1xuICAgIGNvbnRlbnQ6ICc/JztcbiAgfVxuXG4gICYubWlzdGFrZSAudmVyZGljdCxcbiAgJi5ibHVuZGVyIC52ZXJkaWN0IHtcbiAgICBjb2xvcjogJGMtYmFkO1xuICB9XG5cbiAgJi5taXN0YWtlIC52ZXJkaWN0OjpiZWZvcmUsXG4gICYuYmx1bmRlciAudmVyZGljdDo6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kOiAkYy1iYWQ7XG4gICAgY29udGVudDogJ+Kclyc7XG4gIH1cblxuICAuY29tbWVudCBtb3ZlIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICBjb2xvcjogJGMtbGluaztcbiAgICB0cmFuc2l0aW9uOiAwLjNzO1xuICB9XG59XG4iLCIkYy1mb3JrOiAkYy1wcmltYXJ5O1xuXG4uYW5hbHlzZV9fZm9yayB7XG4gIEBleHRlbmQgJWZsZXgtY2VudGVyO1xuXG4gIGZsZXg6IDAgMCBhdXRvO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1xLWNvbDEpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cblxuICBtb3ZlIHtcbiAgICBAZXh0ZW5kICVzYW4sICVmbGV4LWNlbnRlcjtcblxuICAgIGJhY2tncm91bmQ6IG1peCgkYy1mb3JrLCAkYy1iZy1ib3gsIDI1JSk7XG4gICAgY29sb3I6ICRjLWZvbnQtY2xlYXI7XG4gICAgZmxleDogMCAwIDUwJTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgcGFkZGluZzogLjJlbSAxZW07XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjLWJnLWJveDtcblxuICAgICY6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGMtYmctYm94O1xuICAgIH1cbiAgfVxuXG4gIG1vdmU6aG92ZXIsXG4gICY6bm90KDpob3ZlcikgbW92ZS5zZWxlY3RlZCB7XG4gICAgYmFja2dyb3VuZDogbWl4KCRjLWZvcmssICRjLWJnLWJveCwgMTAwJSk7XG4gICAgY29sb3I6ICNmZmY7XG4gIH1cblxuICBnbHlwaCB7XG4gICAgQGV4dGVuZCAlYmFzZS1mb250O1xuXG4gICAgbWFyZ2luLWxlZnQ6IDJweDtcbiAgfVxuXG4gIGV2YWwge1xuICAgIEBleHRlbmQgJXJvYm90bztcblxuICAgIGZsZXg6IDMgMCBhdXRvO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIGZvbnQtc2l6ZTogLjllbTtcbiAgfVxufVxuIiwiLmFuYWx5c2VfX3NpZGUge1xuICBhbGlnbi1zZWxmOiBzdGFydDtcblxuICAuYmFjay10by1nYW1lIHtcbiAgICBtYXJnaW4tdG9wOiAyZW07XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtcS1jb2wzKSB7XG4gICAgICBtYXJnaW4tdG9wOiAxMHZoO1xuICAgIH1cblxuXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgLmJ1dHRvbiB7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICB9XG4gIH1cbn1cbiIsIiNhbmFseXNlLWNtIHtcbiAgQGV4dGVuZCAlYm94LXJhZGl1cywgJXBvcHVwLXNoYWRvdztcblxuICBiYWNrZ3JvdW5kOiAkYy1iZy1ib3g7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogbm9uZTtcbiAgei1pbmRleDogeihcImNvbnRleHQtbWVudVwiKTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICYudmlzaWJsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAudGl0bGUge1xuICAgIEBleHRlbmQgJXNhbiwgJW1ldGFsO1xuXG4gICAgcGFkZGluZzogLjRlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxLjJlbTtcbiAgICBib3JkZXItYm90dG9tOiAkYm9yZGVyO1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIGEge1xuICAgIEBleHRlbmQgJWZsZXgtY2VudGVyLW5vd3JhcDtcblxuICAgIGNvbG9yOiAkYy1mb250O1xuICAgIHBhZGRpbmc6IC41ZW0gLjZlbSAuNWVtIC4zZW07XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgd2lkdGg6IDJlbTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IG1peCgkYy1hY2NlbnQsICRjLWJnLWJveCwgMTAlKTtcbiAgICB9XG4gIH1cbn1cbiIsIi5hZHZpY2Utc3VtbWFyeSB7XG4gIEBleHRlbmQgJWZsZXgtY29sdW1uO1xuXG4gIGNvbG9yOiAkYy1mb250LXBhZ2U7XG4gIGZvbnQtc2l6ZTogLjllbTtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1ZW07XG4gIG1hcmdpbi10b3A6IDFlbTtcblxuICB0ZCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICB3aWR0aDogNWNoO1xuICAgIH1cbiAgfVxuXG4gIHRhYmxlIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgdGJvZHkgdGQge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG5cbiAgLmNvbG9yLWljb246OmJlZm9yZSB7XG4gICAgdmVydGljYWwtYWxpZ246IHRleHQtYm90dG9tO1xuICB9XG5cbiAgdHIge1xuICAgICYuc3ltYm9sIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAmLnN5bWJvbDpob3ZlciB7XG4gICAgICBjb2xvcjogIzM4OTNFODtcbiAgICB9XG4gIH1cblxuICAuYnV0dG9uIHtcbiAgICBtYXJnaW46IC42ZW0gMDtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1xLWNvbDEpIHtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmctYm90dG9tOiAkYmxvY2stZ2FwO1xuICAgIGJvcmRlci1ib3R0b206ICRib3JkZXI7XG4gICAgbWFyZ2luOiAwO1xuXG4gICAgdGFibGUge1xuICAgICAgZmxleDogMCAwIGNhbGMoNTAlIC0gI3skYmxvY2stZ2FwfSk7XG4gICAgICBtYXJnaW4tbGVmdDogJGJsb2NrLWdhcDtcbiAgICB9XG5cbiAgICA+IGEge1xuICAgICAgb3JkZXI6IDE7XG4gICAgfVxuICB9XG59XG4iLCIuYW5hbHlzZV9fdW5kZXJib2FyZCB7XG4gIG1hcmdpbi10b3A6ICN7JGJsb2NrLWdhcCAvIDJ9O1xufVxuIiwiJXN0dWR5LWxpc3Qge1xuICBAZXh0ZW5kICVib3gtbmVhdDtcblxuICBAaW5jbHVkZSBob3ZlcmZsb3c7XG5cbiAgbWF4LWhlaWdodDogMThlbTtcbiAgYmFja2dyb3VuZDogJGMtYmctYm94O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuXG4gID4gZGl2IHtcbiAgICBAZXh0ZW5kICVmbGV4LWJldHdlZW4tbm93cmFwO1xuXG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG5cbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uO1xuXG4gICAgJjpob3ZlcixcbiAgICAmLmFjdGl2ZSB7XG4gICAgICBjb2xvcjogJGMtZm9udC1jbGVhcjtcbiAgICAgIGJhY2tncm91bmQ6IG1peCgkYy1saW5rLCAkYy1iZy1ib3gsIDEwJSk7XG4gICAgfVxuICB9XG5cbiAgYWN0IHtcbiAgICBAZXh0ZW5kICVmbGV4LWNlbnRlcjtcblxuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiA5OXB4O1xuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmb250LXNpemU6IC45ZW07XG4gICAgb3BhY2l0eTogMC4xNTtcbiAgICBwYWRkaW5nOiAuNGVtO1xuXG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbjtcbiAgfVxuXG4gID4gZGl2OmhvdmVyIGFjdCB7XG4gICAgb3BhY2l0eTogLjc7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRjLXByaW1hcnk7XG4gICAgICBjb2xvcjogJGMtcHJpbWFyeS1vdmVyO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gIH1cblxuICAuYWRkIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGMtYm9yZGVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxufVxuIiwiJHNwYW4td2lkdGg6IDEuN2VtO1xuXG4uc3R1ZHlfX2NoYXB0ZXJzIHtcbiAgQGV4dGVuZCAlc3R1ZHktbGlzdDtcblxuICBtYXgtaGVpZ2h0OiAxOGVtO1xuXG4gIGgzIHtcbiAgICBAZXh0ZW5kICVicmVhay13b3JkO1xuXG4gICAgZmxleDogMSAxIDEwMCU7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgbWFyZ2luOiAuNWVtIDA7XG4gICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICB9XG5cbiAgPiBkaXYge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICYuYWN0aXZlLFxuICAgICY6YWN0aXZlIHtcbiAgICAgIGNvbG9yOiAkYy1mb250LWNsZWFyO1xuXG4gICAgICA+IHNwYW4ge1xuICAgICAgICBjb2xvcjogJGMtcHJpbWFyeS1vdmVyO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYy1wcmltYXJ5O1xuICAgICAgfVxuICAgIH1cblxuICAgID4gc3BhbiB7XG4gICAgICBAZXh0ZW5kICVmbGV4LWNlbnRlcjtcblxuICAgICAgZmxleDogMCAwICRzcGFuLXdpZHRoO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBjb2xvcjogJGMtbGluaztcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAuNGVtO1xuICAgICAgb3BhY2l0eTogLjg7XG4gICAgfVxuICB9XG5cbiAgLmRkbG9hZGVyIHtcbiAgICB3aWR0aDogJHNwYW4td2lkdGg7XG4gICAgaGVpZ2h0OiAkc3Bhbi13aWR0aDtcbiAgfVxuXG4gIC5zb3J0YWJsZS1naG9zdCB7XG4gICAgb3BhY2l0eTogLjc7XG5cbiAgICAmLFxuICAgIC5zdGF0dXMge1xuICAgICAgYmFja2dyb3VuZDogJGMtc2Vjb25kYXJ5ICFpbXBvcnRhbnQ7XG4gICAgICBjb2xvcjogJGMtc2Vjb25kYXJ5LW92ZXIgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cbiIsIi5zdHVkeV9fbWVtYmVycyB7XG4gIEBleHRlbmQgJXN0dWR5LWxpc3Q7XG5cbiAgLmxlZnQge1xuICAgIEBleHRlbmQgJWZsZXgtY2VudGVyLW5vd3JhcDtcblxuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAudXNlci1saW5rIHtcbiAgICBAZXh0ZW5kICVlbGxpcHNpcztcblxuICAgIG1hcmdpbjogLjVlbSAwO1xuICB9XG5cbiAgLnN0YXR1cyB7XG4gICAgQGV4dGVuZCAlZmxleC1jZW50ZXI7XG5cbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMi40ZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAuMWVtO1xuICAgIHRyYW5zaXRpb246IDIuNXM7XG4gIH1cblxuICBpIHtcbiAgICBmb250LXNpemU6IDEuMmVtO1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgICB0cmFuc2l0aW9uOiAyLjVzO1xuICB9XG5cbiAgLmNvbnRyaWIgaSB7XG4gICAgb3BhY2l0eTogMC43O1xuICB9XG5cbiAgLm9ubGluZSBpIHtcbiAgICBvcGFjaXR5OiAwLjg7XG4gICAgY29sb3I6ICRjLWdvb2Q7XG4gIH1cblxuICAub25saW5lLmNvbnRyaWIgaSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gID4gZGl2Om50aC1jaGlsZCg0bi0zKSAuc3RhdHVzLmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogIzQyYTVmNTtcbiAgfVxuXG4gID4gZGl2Om50aC1jaGlsZCg0bi0yKSAuc3RhdHVzLmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogI2Y0NDMzNjtcbiAgfVxuXG4gID4gZGl2Om50aC1jaGlsZCg0bi0xKSAuc3RhdHVzLmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogI2ZkZDgzNTtcbiAgfVxuXG4gID4gZGl2Om50aC1jaGlsZCg0bi0wKSAuc3RhdHVzLmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogIzRjYWY1MDtcbiAgfVxuXG4gIC5zdGF0dXMuYWN0aXZlIHtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuXG4gICAgaSB7XG4gICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgIH1cbiAgfVxuXG4gIC5sZWF2ZSB7XG4gICAgY29sb3I6ICRjLWJhZDtcbiAgICBvcGFjaXR5OiAuNztcbiAgfVxuXG4gID4gZGl2OmhvdmVyIC5sZWF2ZTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGMtYmFkO1xuICB9XG5cbiAgLmFkZCB7XG4gICAgQGV4dGVuZCAlcm9ib3RvO1xuXG4gICAgJjpob3ZlciBpIHtcbiAgICAgIGNvbG9yOiAkYy1saW5rO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLmFkbWluIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBidXR0b24ge1xuICAgICAgbWFyZ2luLWJvdHRvbTogLjVlbTtcbiAgICB9XG4gIH1cblxuICBtLWNvbmZpZywgLmVkaXRpbmcge1xuICAgIGJhY2tncm91bmQ6IG1peCgkYy1hY2NlbnQsICRjLWJnLWJveCwgMTAlKSAhaW1wb3J0YW50O1xuICB9XG5cbiAgbS1jb25maWcge1xuICAgIEBleHRlbmQgJWZsZXgtYmV0d2VlbjtcblxuICAgIHBhZGRpbmc6IC40ZW0gLjhlbSAxZW0gLjhlbTtcblxuICAgIC5yb2xlIHtcbiAgICAgIEBleHRlbmQgJWZsZXgtY2VudGVyO1xuXG4gICAgICBsYWJlbCB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuc3dpdGNoIHtcbiAgICAgIG1hcmdpbi1yaWdodDogLjVlbTtcbiAgICB9XG4gIH1cbn1cbiIsIiRwbGF5ZXItaGVpZ2h0OiAxLjZyZW07XG5cbi5hbmFseXNlLmhhcy1wbGF5ZXJzIHtcbiAgY2ctYm9hcmQge1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRtcS1jb2wyKSB7XG4gICAgLmFuYWx5c2VfX3VuZGVyYm9hcmQge1xuICAgICAgbWFyZ2luLXRvcDogY2FsYygjeyRwbGF5ZXItaGVpZ2h0IC8gMn0gKyAjeyRibG9jay1nYXAgLyAyfSk7XG4gICAgfVxuICB9XG5cblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRtcS1jb2wxKSB7XG4gICAgLmFuYWx5c2VfX2NvbnRyb2xzIHtcbiAgICAgIG1hcmdpbi10b3A6ICRwbGF5ZXItaGVpZ2h0O1xuICAgIH1cbiAgfVxufVxuXG4uc3R1ZHlfX3BsYXllciB7XG4gIEBleHRlbmQgJWZsZXgtYmV0d2Vlbi1ub3dyYXAsICVtZXRhbCwgJWJveC1zaGFkb3c7XG5cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGhlaWdodDogJHBsYXllci1oZWlnaHQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgJi10b3Age1xuICAgIEBleHRlbmQgJWJveC1yYWRpdXMtdG9wO1xuXG4gICAgdG9wOiAjey0kcGxheWVyLWhlaWdodH07XG4gIH1cblxuICAmLWJvdCB7XG4gICAgQGV4dGVuZCAlYm94LXJhZGl1cy1ib3R0b207XG5cbiAgICBib3R0b206ICN7LSRwbGF5ZXItaGVpZ2h0fTtcbiAgfVxuXG4gIC5sZWZ0IHtcbiAgICBmbGV4OiAxIDEgMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG5cbiAgLnJlc3VsdCB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IC44ZW07XG4gICAgcGFkZGluZy1yaWdodDogLjhlbTtcbiAgICBib3JkZXItcmlnaHQ6ICRib3JkZXI7XG4gIH1cblxuICAuYW5hbHlzZV9fY2xvY2sge1xuICAgIEBleHRlbmQgJXJvYm90bywgJWZsZXgtY2VudGVyLW5vd3JhcDtcblxuICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgZm9udC1zaXplOiAxLjJlbTtcbiAgICBwYWRkaW5nOiAwIC44ZW07XG4gICAgYm9yZGVyLXJhZGl1czogMCA0cHggMCAwO1xuICB9XG5cbiAgJi1ib3QgLmFuYWx5c2VfX2Nsb2NrIHtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgNHB4IDA7XG4gIH1cblxuICAmLnRpY2tpbmcgLmFuYWx5c2VfX2Nsb2NrIHtcbiAgICBiYWNrZ3JvdW5kOiAkYy1zZWNvbmRhcnk7XG4gICAgY29sb3I6ICRjLXNlY29uZGFyeS1vdmVyO1xuICAgIHRleHQtc2hhZG93OiBub25lO1xuICB9XG5cbiAgLmluZm8ge1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICB9XG5cbiAgLmVsbyB7XG4gICAgbWFyZ2luLWxlZnQ6IC41ZW07XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgfVxufVxuIiwiLnN0dWR5X19tb2RhbCB7XG4gICYjbW9kYWwtd3JhcCB7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgICBtaW4td2lkdGg6IDgwdnc7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRtcS14LXNtYWxsKSB7XG4gICAgICBtaW4td2lkdGg6IDUwMHB4O1xuICAgIH1cbiAgfVxuXG4gID4gZGl2IHtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gIH1cblxuICAuZm9ybTMge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAuZWRpdG9yIHtcbiAgICAgIG1hcmdpbjogLTMwcHggMCAzMHB4IDA7XG5cbiAgICAgIC5zcGlubmVyIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDgwcHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaDIge1xuICAgIG1hcmdpbi1ib3R0b206IC41ZW07XG5cbiAgICBpIHtcbiAgICAgIGZvbnQtc2l6ZTogLjZlbTtcblxuICAgICAgJiwgJjo6YmVmb3JlIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgIH1cblxuICAgICAgbWFyZ2luLWxlZnQ6IDFyZW07XG4gICAgICBvcGFjaXR5OiAuNTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIG9wYWNpdHk6IC43O1xuICAgICAgICBjb2xvcjogJGMtcHJpbWFyeTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZGVzdHJ1Y3RpdmUge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgZm9udC1zaXplOiAuOWVtO1xuXG4gICAgZm9ybSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuXG4gICAgYnV0dG9uIHtcbiAgICAgIG9wYWNpdHk6IDAuNTtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gICYuY2hhcHRlci1uZXcgLnRhYnMtaG9yaXoge1xuICAgIG1hcmdpbjogLTFlbSAwIDEuNmVtIDA7XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCIuLi8uLi8uLi9lZGl0b3IvY3NzL3NwYXJlXCI7XG5AaW1wb3J0IFwiLi4vLi4vLi4vZWRpdG9yL2Nzcy90b29sc1wiO1xuXG4uYm9hcmQtZWRpdG9yLXdyYXAge1xuICBtaW4taGVpZ2h0OiAyODBweDtcbiAgbWFyZ2luLWJvdHRvbTogMmVtO1xuXG4gIC5zcGlubmVyIHtcbiAgICBwYWRkaW5nLXRvcDogOTBweDtcbiAgfVxufVxuXG4uYm9hcmQtZWRpdG9yIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyODBweCAydm1pbiAyMTBweDtcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBtaW4tY29udGVudCBhdXRvIG1pbi1jb250ZW50O1xuICBncmlkLXRlbXBsYXRlLWFyZWFzOiAnLiAgICAgICAgICAgIC4gZS10b29scycgJ3NwYXJlLXRvcCAgICAuIGUtdG9vbHMnICdlLWJvYXJkICAgICAgLiBlLXRvb2xzJyAnc3BhcmUtYm90dG9tIC4gZS10b29scycgJy4gICAgICAgICAgICAuIGUtdG9vbHMnO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAubWFpbi1ib2FyZCB7XG4gICAgZ3JpZC1hcmVhOiBlLWJvYXJkO1xuICB9XG5cbiAgY2ctYm9hcmQge1xuICAgIGN1cnNvcjogaW5oZXJpdDtcbiAgfVxuXG4gICZfX3Rvb2xzIHtcbiAgICBncmlkLWFyZWE6IGUtdG9vbHM7XG4gIH1cblxuICAuc3BhcmUge1xuICAgICYtdG9wIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDF2aDtcbiAgICB9XG5cbiAgICAmLWJvdHRvbSB7XG4gICAgICBncmlkLWFyZWE6IHNwYXJlLWJvdHRvbTtcbiAgICAgIG1hcmdpbi10b3A6IDF2aDtcbiAgICB9XG4gIH1cblxuICAubWV0YWRhdGEge1xuICAgIGJhY2tncm91bmQ6ICRjLWJnLXplYnJhO1xuICAgIGZvbnQtc2l6ZTogLjllbTtcbiAgfVxufVxuIiwiLmJvYXJkLWVkaXRvciAuc3BhcmUge1xuICBAZXh0ZW5kICVib3gtcmFkaXVzO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGJhY2tncm91bmQ6ICRjLWZvbnQtZGltbWVyO1xuICBib3gtc2hhZG93OiAwIDNweCA1cHggcmdiYSgwLCAwLCAwLCAwLjMpIGluc2V0O1xuXG4gICYtdG9wIHtcbiAgICBncmlkLWFyZWE6IHNwYXJlLXRvcDtcbiAgICBtYXJnaW4tYm90dG9tOiAydmg7XG4gIH1cblxuICAmLWJvdHRvbSB7XG4gICAgZ3JpZC1hcmVhOiBzcGFyZS1ib3R0b207XG4gICAgbWFyZ2luLXRvcDogMnZoO1xuICB9XG5cbiAgLm5vLXNxdWFyZSB7XG4gICAgZmxleDogMCAwIDEyLjUlO1xuXG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbjtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogZmFkZS1vdXQoJGMtcHJpbWFyeSwgMC44KTtcbiAgICB9XG5cbiAgICAmLnNlbGVjdGVkLXNxdWFyZSB7XG4gICAgICBiYWNrZ3JvdW5kOiBmYWRlLW91dCgkYy1wcmltYXJ5LCAwLjUpO1xuICAgIH1cblxuICAgIGRpdiB7XG4gICAgICBAZXh0ZW5kICVzcXVhcmU7XG4gICAgfVxuXG4gICAgJi5wb2ludGVyIHtcbiAgICAgIEBleHRlbmQgJWJveC1yYWRpdXMtbGVmdDtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IGZhZGUtb3V0KCRjLWdvb2QsIDAuOCk7XG4gICAgICB9XG5cbiAgICAgICYuc2VsZWN0ZWQtc3F1YXJlIHtcbiAgICAgICAgYmFja2dyb3VuZDogZmFkZS1vdXQoJGMtZ29vZCwgMC40KTtcbiAgICAgIH1cblxuICAgICAgcGllY2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWctdXJsKFwiaWNvbnMvcG9pbnRlci5zdmdcIik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi50cmFzaCB7XG4gICAgICBAZXh0ZW5kICVib3gtcmFkaXVzLXJpZ2h0O1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogZmFkZS1vdXQoJGMtYmFkLCAwLjgpO1xuICAgICAgfVxuXG4gICAgICAmLnNlbGVjdGVkLXNxdWFyZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IGZhZGUtb3V0KCRjLWJhZCwgMC40KTtcbiAgICAgIH1cblxuICAgICAgcGllY2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWctdXJsKFwiaWNvbnMvdHJhc2guc3ZnXCIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5pczNkICYgLm5vLXNxdWFyZSBkaXYge1xuICAgIHBhZGRpbmctYm90dG9tOiA5MC43MiU7XG4gIH1cblxuICBwaWVjZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcblxuICAgIC5pczNkICYge1xuICAgICAgLyogb3JpZ2luYWwgc2l6ZTogd2lkdGg6IDE0MC42MjUlOyBoZWlnaHQ6IDE3OS42ODc1JTsgc2l6ZSBvbiAzRCBib2FyZCwgd2l0aCBoZWlnaHQvd2lkdGggPSA5MC43ODU3MSUgKi9cbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxNDAuNzQ2NSU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgdG9wOiAtMzQlO1xuICAgIH1cbiAgfVxuXG4gIHBpZWNlLnBvaW50ZXIsXG4gIHBpZWNlLnRyYXNoIHtcbiAgICBtYXJnaW46IDE0JTtcbiAgICB3aWR0aDogNzIlO1xuICAgIGhlaWdodDogNzIlO1xuXG4gICAgLmlzM2QgJiB7XG4gICAgICB3aWR0aDogNjIlO1xuICAgICAgdG9wOiAwO1xuICAgIH1cbiAgfVxufVxuIiwiLmJvYXJkLWVkaXRvciB7XG4gICZfX3Rvb2xzIHtcbiAgICBAZXh0ZW5kICVmbGV4LWNvbHVtbjtcblxuICAgIGdyaWQtYXJlYTogdG9vbHM7XG4gICAgYWxpZ24tc2VsZjogY2VudGVyO1xuXG4gICAgPiAqIHtcbiAgICAgIG1hcmdpbjogLjVyZW0gMDtcbiAgICB9XG5cbiAgICBzZWxlY3Qge1xuICAgICAgQGV4dGVuZCAlcGFnZS1saW5rICFvcHRpb25hbDtcblxuICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICYucG9zaXRpb25zIG9wdGlvbjpjaGVja2VkIHtcbiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tZXRhZGF0YSB7XG4gICAgICBAZXh0ZW5kICVib3gtbmVhdDtcblxuICAgICAgYmFja2dyb3VuZDogJGMtYmctYm94O1xuICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAgIC5jb2xvciB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgICAgIH1cblxuICAgICAgLmNhc3RsaW5nIHtcbiAgICAgICAgZGl2IHtcbiAgICAgICAgICBAZXh0ZW5kICVmbGV4LWJldHdlZW47XG4gICAgICAgIH1cblxuICAgICAgICBsYWJlbCxcbiAgICAgICAgaW5wdXQge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICBtYXJnaW46IDNweDtcbiAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmFjdGlvbnMge1xuICAgICAgQGV4dGVuZCAlZmxleC1jb2x1bW47XG5cbiAgICAgIGp1c3RpZnktY29udGVudDogc3RyZXRjaDtcblxuICAgICAgLmJ1dHRvbiB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNiZDExMWY7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuXG4gICAgICAgIEBleHRlbmQgJXBhZ2UtbGluayAhb3B0aW9uYWw7XG5cbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIEBleHRlbmQgJWJ1dHRvbi1yYWlzZWQtc2hhZG93O1xuICAgICAgICAgIGJhY2tncm91bmQ6ICNlZDFjMjQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIiRjLXN0dWR5LWJ1dHRvbjogJGMtYWNjZW50O1xuXG4uc3R1ZHlfX2J1dHRvbnMge1xuICBAZXh0ZW5kICVmbGV4LWJldHdlZW47XG5cbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRjLWJvcmRlcjtcblxuICBzcGFuIHtcbiAgICBmb250LXNpemU6IDEuMTVlbTtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAubGVmdC1idXR0b25zIHtcbiAgICBmbGV4OiA5IDEgYXV0bztcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgfVxuXG4gIC5yaWdodCB7XG4gICAgZmxleDogMSA5IDEwJTtcbiAgfVxuXG4gIC5iZWhpbmQge1xuICAgIGJhY2tncm91bmQ6ICRjLWJhZDtcbiAgICBjb2xvcjogJGMtYmFkLW92ZXI7XG4gICAgcGFkZGluZzogMCA1cHg7XG4gICAgYm9yZGVyLXJhZGl1czogOXB4O1xuICAgIG1hcmdpbi1yaWdodDogNHB4O1xuICB9XG5cbiAgLm1vZGUge1xuICAgIEBleHRlbmQgJWZsZXgtY2VudGVyLW5vd3JhcCwgJWJveC1yYWRpdXMtdG9wLCAlcGFnZS10ZXh0O1xuXG4gICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICBwYWRkaW5nOiAwIC40ZW07XG4gICAgb3BhY2l0eTogLjg7XG5cbiAgICBpOjpiZWZvcmUge1xuICAgICAgZm9udC1zaXplOiAxLjRlbTtcbiAgICAgIGNvbnRlbnQ6ICdMJztcbiAgICAgIGNvbG9yOiAkYy1iYWQ7XG4gICAgICBtYXJnaW4tcmlnaHQ6IC4ycmVtO1xuICAgIH1cblxuICAgICYub24gaTo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICdFJztcbiAgICAgIGNvbG9yOiAkYy1nb29kO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJGMtYmctemVicmE7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxufVxuXG4vKiByZXVzZWQgYnkgY29udGV4dCBtZW51ICovXG4uZ2x5cGgtaWNvbjo6YmVmb3JlIHtcbiAgY29udGVudDogJ+KBiSc7XG4gIGZvbnQtc2l6ZTogMS4yZW07XG59XG4iLCIuc3R1ZHlfX2ludml0ZSB7XG4gIG1heC13aWR0aDogNTBlbTtcblxuICA+IGRpdiB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcblxuICAgIC8vIHJlcXVpcmVkIGJ5IHVzZXIgYXV0b2NvbXBsZXRlXG4gXG4gIH1cblxuICAuaW5mbyB7XG4gICAgQGV4dGVuZCAlYm94LXJhZGl1cywgJWZsZXgtY2VudGVyLW5vd3JhcDtcblxuICAgIGJhY2tncm91bmQ6ICRjLWFjY2VudDtcbiAgICBjb2xvcjogJGMtcHJpbWFyeS1vdmVyO1xuICAgIHBhZGRpbmc6IDFlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAyZW07XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBmb250LXNpemU6IDMuNmVtO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgIH1cbiAgfVxuXG4gIC51c2VycyB7XG4gICAgQGV4dGVuZCAlZmxleC1iZXR3ZWVuO1xuXG4gICAgbWF4LXdpZHRoOiAxMDBjaDtcbiAgICBtYXJnaW4tdG9wOiAyZW07XG5cbiAgICAuYnV0dG9uIHtcbiAgICAgIEBleHRlbmQgJWVsbGlwc2lzO1xuXG4gICAgICBmbGV4OiAwIDAgNDglO1xuICAgICAgbWFyZ2luLWJvdHRvbTogLjdlbTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIH1cblxuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgbWF4LWhlaWdodDogMzB2aDtcbiAgfVxuXG4gIC5pbnB1dC13cmFwcGVyIHtcbiAgICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLnR0LW1lbnUge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cbn1cbiIsIi5zdHVkeS1kZXNjIHtcbiAgQGV4dGVuZCAlYm94LW5lYXQ7XG5cbiAgYmFja2dyb3VuZDogJGMtYmctYm94O1xuICBwYWRkaW5nOiAuN2VtIDFlbTtcbiAgbWFyZ2luLXRvcDogLjVlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICYuZW1wdHkge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIC5idXR0b24ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luOiAyZW0gYXV0bztcbiAgICB9XG4gIH1cblxuICAuY29udHJpYiB7XG4gICAgQGV4dGVuZCAlcG9wdXAtc2hhZG93O1xuXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBiYWNrZ3JvdW5kOiBtaXgoJGMtYWNjZW50LCAkYy1iZy1ib3gsIDEwJSk7XG4gICAgcGFkZGluZzogLjVlbSAuOGVtO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgei1pbmRleDogMTtcbiAgfVxuXG4gICY6aG92ZXIgLmNvbnRyaWIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLmNvbnRyaWIgYSB7XG4gICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgfVxuXG4gIC5lbWJlZCB7XG4gICAgQGV4dGVuZCAldmlkZW87XG5cbiAgICB3aWR0aDogY2FsYygxMDAlICsgMmVtKTtcbiAgICBtYXJnaW46IC0uN2VtIC0xZW07XG4gIH1cbn1cblxuLnN0dWR5LWRlc2MtZm9ybSB7XG4gIC50aXRsZSB7XG4gICAgQGV4dGVuZCAlZmxleC1iZXR3ZWVuO1xuXG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICB0ZXh0YXJlYSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMmVtO1xuICB9XG59XG4iLCIuc3R1ZHlfX21ldGFkYXRhIHtcbiAgQGV4dGVuZCAlYm94LW5lYXQ7XG5cbiAgYmFja2dyb3VuZDogJGMtYmctYm94O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gIGgyIHtcbiAgICBAZXh0ZW5kICVtZXRhbCwgJWZsZXgtYmV0d2Vlbi1ub3dyYXA7XG5cbiAgICBmb250LXNpemU6IDEuM2VtO1xuICAgIHBhZGRpbmc6IDAgMXJlbTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGJvcmRlci1ib3R0b206ICRib3JkZXI7XG5cbiAgICAubmFtZSB7XG4gICAgICBAZXh0ZW5kICVlbGxpcHNpcztcblxuICAgICAgcGFkZGluZzogLjdyZW0gMDtcbiAgICB9XG5cbiAgICAuY3JlZGl0IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZm9udC1zaXplOiAuOHJlbTtcbiAgICAgIG1hcmdpbjogLjJyZW0gMCAtLjNyZW0gMDtcbiAgICB9XG5cbiAgICAubGlraW5nIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxcmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBvcGFjaXR5OiAwLjc7XG4gICAgICB0cmFuc2l0aW9uOiAwLjNzO1xuICAgIH1cblxuICAgIC5saWtpbmc6aG92ZXIge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIGNvbG9yOiAkYy1yZWQ7XG4gICAgfVxuICB9XG59XG5cbi5zdHVkeV9fdGFncyB7XG4gIGJvcmRlcjogbm9uZTtcblxuICB0aCB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgY29sb3I6ICRjLWZvbnQtZGltO1xuICAgIHdpZHRoOiAxcHg7XG4gICAgcGFkZGluZzogMCAwLjNlbSAwIDFlbSAhaW1wb3J0YW50O1xuICB9XG5cbiAgdGQge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICBpbnB1dCxcbiAgc3BhbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogLjZlbSAxZW0gLjZlbSAuN2VtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjc7XG4gIH1cblxuICBpbnB1dCB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICBpbnB1dDpob3ZlcixcbiAgaW5wdXQ6Zm9jdXMge1xuICAgIGJhY2tncm91bmQ6IG1peCgkYy1wcmltYXJ5LCAkYy1iZy1ib3gsIDEwJSk7XG4gIH1cblxuICBzZWxlY3Qge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG59XG5cbi5zdHVkeV9fdG9waWNzIHtcbiAgQGV4dGVuZCAlZmxleC1jZW50ZXIsICVyb2JvdG87XG5cbiAgbWFyZ2luOiAxZW07XG5cbiAgLnRvcGljIHtcbiAgICBAZXh0ZW5kICVib3gtcmFkaXVzO1xuXG4gICAgYmFja2dyb3VuZDogbWl4KCRjLXByaW1hcnksICRjLWJnLWJveCwgMTclKTtcbiAgICBwYWRkaW5nOiAuMmVtIC42ZW07XG4gICAgbWFyZ2luOiAuMmVtO1xuICB9XG5cbiAgLm1hbmFnZSB7XG4gICAgbWFyZ2luOiAuMmVtO1xuICB9XG59XG5cbi5zdHVkeS10b3BpY3MgZm9ybSB7XG4gIG1heC13aWR0aDogNjAwcHg7XG59XG4iLCIuc3R1ZHlfX2NvbW1lbnRzIHtcbiAgZm9ybSBwIHtcbiAgICBtYXJnaW46IDFlbSAwO1xuICB9XG5cbiAgI2NvbW1lbnQtdGV4dCB7XG4gICAgQGV4dGVuZCAlYm94LXNoYWRvdztcblxuICAgIGhlaWdodDogMTJlbTtcbiAgfVxufVxuXG4uc3R1ZHlfX2NvbW1lbnQge1xuICBAZXh0ZW5kICVib3gtbmVhdDtcblxuICBiYWNrZ3JvdW5kOiAkYy1iZy1ib3g7XG4gIHBhZGRpbmc6IC44ZW0gMWVtO1xuICBtYXJnaW4tYm90dG9tOiAuOGVtO1xuXG4gIC50ZXh0IHtcbiAgICBAZXh0ZW5kICVicmVhay13b3JkO1xuXG4gICAgbWFyZ2luLXRvcDogLjNlbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxuXG4gIC5lZGl0IHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICBvcGFjaXR5OiAwLjc7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICY6aG92ZXIgLmVkaXQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLmVkaXQ6aG92ZXIge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAudXNlci1saW5rLFxuICAubm9kZSB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cbn1cbiIsIi5zdHVkeV9fZ2x5cGhzIHtcbiAgQGV4dGVuZCAlYm94LW5lYXQsICVmbGV4LWNlbnRlcjtcblxuICBiYWNrZ3JvdW5kOiAkYy1iZy1ib3g7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuXG4gID4gZGl2IHtcbiAgICBmbGV4OiAxIDAgMzAlO1xuICB9XG5cbiAgYSB7XG4gICAgQGV4dGVuZCAlZmxleC1jZW50ZXItbm93cmFwO1xuXG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbjtcblxuICAgIGNvbG9yOiAkYy1mb250O1xuICAgIGhlaWdodDogMi4zZW07XG4gICAgbGluZS1oZWlnaHQ6IDIuM2VtO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIEBleHRlbmQgJWZsZXgtY2VudGVyO1xuXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zeW1ib2wpO1xuICAgICAgZm9udC1zaXplOiAxLjJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgd2lkdGg6IDJlbTtcbiAgICAgIGJhY2tncm91bmQ6ICRjLWJnLWxvdztcbiAgICAgIG1hcmdpbi1yaWdodDogLjVlbTtcblxuICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbjtcbiAgICB9XG5cbiAgICAmOmhvdmVyLFxuICAgICYuYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQ6ICRjLWJnLXplYnJhO1xuICAgICAgY29sb3I6ICRjLXNlY29uZGFyeTtcbiAgICB9XG5cbiAgICAmOmhvdmVyOjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZDogJGMtYmctemVicmE7XG4gICAgfVxuXG4gICAgJi5hY3RpdmU6OmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYy1zZWNvbmRhcnk7XG4gICAgICBjb2xvcjogJGMtc2Vjb25kYXJ5LW92ZXI7XG4gICAgfVxuICB9XG59XG4iLCIuc3R1ZHlfX3NoYXJlIHtcbiAgQGV4dGVuZCAlYm94LW5lYXQ7XG5cbiAgYmFja2dyb3VuZDogJGMtYmctYm94O1xuICBwYWRkaW5nOiAxLjVlbSAxLjJlbTtcblxuICBpbnB1dFt0eXBlPVwidGV4dFwiXSB7XG4gICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmb250LXNpemU6IC45ZW07XG4gIH1cblxuICAucGx5LXdyYXAge1xuICAgIGNvbG9yOiAkYy1mb250LWRpbTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGZvbnQtc2l6ZTogLjllbTtcbiAgfVxuXG4gIC5wbHkge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIGlucHV0IHtcbiAgICAgIG1hcmdpbi1yaWdodDogLjNlbTtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuICB9XG5cbiAgLmRvd25sb2FkcyB7XG4gICAgQGV4dGVuZCAlZmxleC1hcm91bmQ7XG5cbiAgICBtYXJnaW4tYm90dG9tOiAyZW07XG4gIH1cbn1cbiIsIi5zdHVkeV9fbXVsdGlib2FyZCB7XG4gIEBleHRlbmQgJWJveC1uZWF0O1xuXG4gIGJhY2tncm91bmQ6ICRjLWJnLWJveDtcblxuICAmLmxvYWRpbmcge1xuICAgIG9wYWNpdHk6IDAuNztcbiAgfVxuXG4gICYubm9wYWdlciB7XG4gICAgcGFkZGluZzogMmVtO1xuICB9XG5cbiAgLnRvcCB7XG4gICAgQGV4dGVuZCAlZmxleC1iZXR3ZWVuO1xuXG4gICAgcGFkZGluZzogLjRlbSAxLjVlbTtcbiAgfVxuXG4gIC5wYWdlciB7XG4gICAgQGV4dGVuZCAlZmxleC1jZW50ZXI7XG5cbiAgICAucGFnZSB7XG4gICAgICBtYXJnaW46IDAgLjRlbTtcbiAgICB9XG4gIH1cblxuICAuZmJ0IHtcbiAgICBAZXh0ZW5kICVib3gtcmFkaXVzO1xuXG4gICAgcGFkZGluZzogLjZlbSAxZW07XG4gIH1cblxuICAucGxheWluZyB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgLnBsYXlpbmcgaW5wdXQge1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgbWFyZ2luLXJpZ2h0OiAzcHg7XG4gIH1cblxuICAubm93LXBsYXlpbmcge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMzAlLCAxZnIpKTtcblxuICAgIGEge1xuICAgICAgQGV4dGVuZCAlYm94LXJhZGl1cztcblxuICAgICAgY29sb3I6ICRjLWZvbnQ7XG4gICAgICBwYWRkaW5nOiAuNGVtO1xuXG4gICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGJhY2tncm91bmQpO1xuXG4gICAgICBiYWNrZ3JvdW5kOiBmYWRlLW91dCgkYy1iZy1ib3gsIDAuNik7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjLWJnLXplYnJhMjtcbiAgICAgIH1cblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IGZhZGUtb3V0KCRjLWxpbmssIDAuNik7XG4gICAgICAgIGNvbG9yOiAkYy1mb250LWNsZWFyO1xuICAgICAgfVxuXG4gICAgICAmLmFjdGl2ZSxcbiAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGMtc2Vjb25kYXJ5O1xuICAgICAgICBjb2xvcjogJGMtc2Vjb25kYXJ5LW92ZXI7XG4gICAgICB9XG5cbiAgICAgIGNnLWJvYXJkIHtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAucGxheWVyIHtcbiAgICAgIEBleHRlbmQgJWZsZXgtYmV0d2Vlbi1ub3dyYXA7XG5cbiAgICAgIGhlaWdodDogMS41ZW07XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgICBzcGFuIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC41ZW07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm5hbWUge1xuICAgICAgQGV4dGVuZCAlZmxleC1jZW50ZXI7XG5cbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgaGVpZ2h0OiAzZW07XG4gICAgfVxuICB9XG59XG4iLCIuc3R1ZHlfX3NlcnZlci1ldmFsIHtcbiAgQGV4dGVuZCAlYm94LW5lYXQ7XG5cbiAgYmFja2dyb3VuZDogJGMtYmctYm94O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgJi5wYWRkZWQge1xuICAgIHBhZGRpbmc6IDRlbTtcbiAgfVxuXG4gICYucmVhZHkge1xuICAgIGhlaWdodDogMTVlbTtcbiAgfVxufVxuXG4uYWR2aWNlLXN1bW1hcnkgdGFibGU6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAxZW07XG59XG4iLCIuc3R1ZHlfX21lc3NhZ2Uge1xuICBAZXh0ZW5kICVib3gtbmVhdDtcblxuICBiYWNrZ3JvdW5kOiAkYy1iZy1ib3g7XG4gIHBhZGRpbmc6IDNlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIC5idXR0b24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW46IDFlbSBhdXRvO1xuICB9XG5cbiAgLnNwaW5uZXIge1xuICAgIG1hcmdpbjogNTBweCBhdXRvO1xuICB9XG59XG4iLCIuaW50cm9fX3RleHQge1xuICBAZXh0ZW5kICVib3gtbmVhdDtcblxuICBiYWNrZ3JvdW5kOiAkYy1iZy1ib3g7XG4gIHBhZGRpbmc6IDN2bWluO1xuICBtYXgtaGVpZ2h0OiA1MHZoO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gIC5zbGlzdCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICB9XG5cbiAgaDEge1xuICAgIEBpbmNsdWRlIGZsdWlkLXNpemUoXCJmb250LXNpemVcIiwgMTVweCwgMjdweCk7XG5cbiAgICBtYXJnaW4tYm90dG9tOiAzdmg7XG4gIH1cblxuICBoMiwgaDMsIGg0IHtcbiAgICBsaW5lLWhlaWdodDogMmVtO1xuICB9XG5cbiAgaDIge1xuICAgIGZvbnQtc2l6ZTogMS44ZW07XG4gIH1cblxuICBoMyB7XG4gICAgZm9udC1zaXplOiAxLjVlbTtcbiAgICBsaW5lLWhlaWdodDogMmVtO1xuICB9XG5cbiAgaDQge1xuICAgIGZvbnQtc2l6ZTogMS4zZW07XG4gIH1cblxuICBlbSB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICB9XG5cbiAgdWwgbGkge1xuICAgIGxpc3Qtc3R5bGU6IGRpc2Mgb3V0c2lkZTtcbiAgICBtYXJnaW46IC41ZW0gMCAwIDEuNWVtO1xuICB9XG5cbiAgb2wgbGkge1xuICAgIGxpc3Qtc3R5bGU6IGRlY2ltYWwgaW5zaWRlO1xuICAgIG1hcmdpbjogLjVlbSAwO1xuICB9XG5cbiAgbGkge1xuICAgIG1hcmdpbi1sZWZ0OiAyZW07XG5cbiAgICBwIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICB9XG4gIH1cbn1cblxubWFpbi5oYXMtaW50cm8gLm1jaGF0IHtcbiAgbWF4LWhlaWdodDogNDh2aDtcbn1cbiIsIkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcblxuJHBvY2tldC1jb2wxLWhlaWdodDogYXV0bztcbiRwb2NrZXQtaGVpZ2h0OiA2MHB4O1xuXG4ucG9ja2V0IHtcbiAgJi10b3Age1xuICAgIGdyaWQtYXJlYTogcG9ja2V0LXRvcDtcbiAgfVxuXG4gICYtYm90dG9tIHtcbiAgICBncmlkLWFyZWE6IHBvY2tldC1ib3Q7XG4gIH1cblxuICAmLWMxIHtcbiAgICBtYXgtd2lkdGg6ICRwb2NrZXQtaGVpZ2h0O1xuICB9XG59XG5cbi5hbmFseXNlLnZhcmlhbnQtY3Jhenlob3VzZSB7XG4gIGdyaWQtdGVtcGxhdGUtcm93czogJHBvY2tldC1jb2wxLWhlaWdodCBhdXRvICRwb2NrZXQtY29sMS1oZWlnaHQgYXV0byA1MHZoO1xuICBncmlkLXRlbXBsYXRlLWFyZWFzOiAncG9ja2V0LXRvcCcgJ2JvYXJkJyAncG9ja2V0LWJvdCcgJ2NvbnRyb2xzJyAndG9vbHMnICdzaWRlJyAnYWNwbCcgJ3VuZGVyJyAnY2hhdCcgJ3VjaGF0JztcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRtcS1jb2wyKSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAkcG9ja2V0LWhlaWdodCBhdXRvICRwb2NrZXQtaGVpZ2h0O1xuICAgIGdyaWQtdGVtcGxhdGUtYXJlYXM6ICdib2FyZCAgICAgIGdhdWdlIHBvY2tldC10b3AnICdib2FyZCAgICAgIGdhdWdlIHRvb2xzJyAnYm9hcmQgICAgICBnYXVnZSBwb2NrZXQtYm90JyAndW5kZXIgICAgICAuICAgICBjb250cm9scycgJ3VuZGVyICAgICAgLiAgICAgYWNwbCcgJ3VuZGVyICAgICAgLiAgICAgc2lkZScgJ2NoYXQgICAgICAgLiAgICAgc2lkZScgJ3VjaGF0ICAgICAgLiAgICAgc2lkZSc7XG4gIH1cblxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1xLWNvbDMpIHtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6ICRwb2NrZXQtaGVpZ2h0ICRtZXRhLWhlaWdodCAkY2hhdC1oZWlnaHQgJHBvY2tldC1oZWlnaHQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczogJ3NpZGUgICAgLiBib2FyZCBnYXVnZSBwb2NrZXQtdG9wJyAnc2lkZSAgICAuIGJvYXJkIGdhdWdlIHRvb2xzJyAnY2hhdCAgICAuIGJvYXJkIGdhdWdlIHRvb2xzJyAnY2hhdCAgICAuIGJvYXJkIGdhdWdlIHBvY2tldC1ib3QnICd1Y2hhdCAgIC4gdW5kZXIgLiAgICAgY29udHJvbHMnICd1Y2hhdCAgIC4gdW5kZXIgLiAgICAgYWNwbCc7XG4gIH1cbn1cblxuQGluY2x1ZGUgYnJlYWtwb2ludCgkbXEtY29sMSkge1xuICAucG9ja2V0IHtcbiAgICAmLXRvcCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAjey0kYmxvY2stZ2FwfTtcbiAgICB9XG5cbiAgICAmLWJvdHRvbSB7XG4gICAgICBtYXJnaW4tdG9wOiAjey0kYmxvY2stZ2FwfTtcbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FFRUEsWUFBWTtBQXFCWiw2REFBNkQ7QUFjN0QsbUJBQW1CO0FBTW5CLGtDQUFrQztBQUVsQyxzQkFBc0I7QUFNdEIsb0NBQW9DO0FBRXBDLG9CQUFvQjtBQU1wQixpQ0FBaUM7QUFFakMsZ0JBQWdCO0FBSWhCLCtCQUErQjtBQUUvQixnQkFBZ0I7QUFLaEIsK0JBQStCO0FBRS9CLGlCQUFpQjtBQUlqQixrQkFBa0I7QUFJbEIsY0FBYztBQUlkLGlCQUFpQjtBQUlqQiwrQkFBK0I7QUE4Qi9CLGFBQWE7QUFNYixhQUFhO0FBTWIsWUFBWTtBSXBJWix3Q0FBd0M7QXNCQXhDLFlBQVk7QUFlWixhQUFhO0FBU2Isa0JBQWtCO0FBS2xCLGtCQUFrQjtBQUtsQixhQUFhO0FFbENiLHVEQUF1RDtBQU92RCx1RUFBdUU7QUM2RHZFLHVEQUF1RDtBQzVDckQsQUFwQkYsYUFvQmUsQ2dCdEJmLE9BQU8sQ0FXTCxJQUFJLEVBWE4sT0FBTyxDaEJzQkwsYUFBYSxDZ0JYYixJQUFJLEVoQldKLGFBQWEsQ29CeEJmLE9BQU8sQ0FJTCxHQUFHLENBa0JELElBQUksRUF0QlIsT0FBTyxDQUlMLEdBQUcsQ3BCb0JILGFBQWEsQ29CRlgsSUFBSSxFcEJFTixhQUFhLEMwQ3hCZixhQUFhLENBd0VYLE1BQU0sQ0FBQyxFQUFFLEFBQUEsWUFBWSxFQXhFdkIsYUFBYSxDQXdFWCxNQUFNLEMxQ2hETixhQUFhLEMwQ2dETixFQUFFLEFBQUEsWUFBWSxFMUNoRHJCLGFBQWEsQzBDeEJmLGFBQWEsQ0EyTFgsVUFBVSxDQUdSLEVBQUUsQUFBQSxZQUFZLEVBOUxsQixhQUFhLENBMkxYLFVBQVUsQzFDbktWLGFBQWEsQzBDc0tYLEVBQUUsQUFBQSxZQUFZLEUxQ3RLaEIsYUFBYSxDNkN0QmYsY0FBYyxDQVVaLElBQUksRUFWTixjQUFjLEM3Q3NCWixhQUFhLEM2Q1piLElBQUksRTdDWUosYUFBYSxDK0N4QmYsV0FBVyxDQWFULE1BQU0sRUFiUixXQUFXLEMvQ3dCVCxhQUFhLEMrQ1hiLE1BQU0sRS9CWFIsT0FBTyxDQXlITCxLQUFLLEU2QnpIUCxjQUFjLENBK0JaLEtBQUssQzdDN0JJO0VBQ1QsV0FBVyxFQUFFLFdBQVc7Q0FDekI7O0FnQkpELEFoQk1BLE9nQk5PLENBZ0hMLElBQUksRUFoSE4sT0FBTyxDQTJLTCxPQUFPLENBQUMsR0FBRyxFRzdLYixNQUFNLENBc0NKLE9BQU8sQ0FDTCxNQUFNLEVRckNWLFdBQVcsQ0FZVCxJQUFJLEVDZE4sTUFBTSxDQUlKLEtBQUssRUdFSixXQUFLLEVFTEwsZ0JBQVUsQ0FrRFQsQ0FBQyxBQUFBLElBQUssQ0FBQSxVQUFVLEdZakRwQixjQUFjLENBcUNaLElBQUksRU92Q04sZUFBZSxDQWdGYixJQUFJLEVDM0ROLGNBQWMsQ0FrQ1osZUFBZSxFUTBCakIsY0FBYyxDN0R6RU47RUFDTixXQUFXLEVBQUUsUUFBUTtDQUN0Qjs7QWdCUkQsQWhCZUEsT2dCZk8sQ0FXTCxJQUFJLEVJYk4sT0FBTyxDQUlMLEdBQUcsQ0FrQkQsSUFBSSxFc0J0QlIsYUFBYSxDQXdFWCxNQUFNLENBQUMsRUFBRSxBQUFBLFlBQVksRUF4RXZCLGFBQWEsQ0EyTFgsVUFBVSxDQUdSLEVBQUUsQUFBQSxZQUFZLEVHNUxsQixjQUFjLENBVVosSUFBSSxFRVpOLFdBQVcsQ0FhVCxNQUFNLEMvQ0lJO0VBQ1YsV0FBVyxFQUFFLHlCQUF5QjtDQUN2Qzs7QUFVRCw0RkFBNEY7QTJCM0I1RixBM0I0QkEsVzJCNUJXLEVLRlgsY0FBYyxFUTJEWCxrQkFBVSxDQWNULElBQUksRWtCdkVSLGVBQWUsQ0E0QmIsS0FBSyxDMURBSTtFQUNULEtBQUssRTdCOUJHLE9BQXdDO0M2QitCakQ7O0FZUkUsQVpvQkgsa0JZcEJVLEVBQ1Asa0JBQU8sRUF2QlYsV0FBVyxDQXFEVCxJQUFJLEFBTUQsTUFBTSxFRVRYLFdBQVcsR0FBRyxLQUFLLEFBQUEsT0FBTyxFY3BEMUIsTUFBTSxDQUlKLEtBQUssRW1CSlAsV0FBVyxDQWFULE1BQU0sRU1RUixjQUFjLEVRckJkLGdCQUFnQixDQU1kLEVBQUUsQzdEc0NHO0UvQmpDTCxVQUFVLEVBQUUsdURBQWdFO0VBTTVFLFdBQVcsRUNpR0MsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBREwsS0FBSztDOEJuRXBCOztBY2NELEFkWkEsV2NZVyxBQUFBLE1BQU0sR0FBRyxLQUFLLEFBQUEsT0FBTyxDZFpuQjtFL0IzQlgsVUFBVSxFQUFFLG9EQUFnRTtFQUM1RSxXQUFXLEVDNEZDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQURMLEtBQUs7QzhCL0RwQjs7QW1CbERELEFuQjREQSxNbUI1RE0sQ25CNERJO0UvQmpEUixVQUFVLEVBQUUsdURBQWdFO0MrQm1EN0U7O0FtQzlERCxBbkNnRUEsT21DaEVPLENBc0JMLEtBQUssQUFPRixPQUFPLENuQ21DUztFQUNuQixVQUFVLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsS0FBSztDQUNoRDs7QW1DbEVELEFuQ29FQSxPbUNwRU8sQ0FzQkwsS0FBSyxBQU9GLE9BQU8sQ25DdUNKO0VBR04sVUFBVSxFQUFFLE9BQU87RUFDbkIsS0FBSyxFQUFFLElBQUk7RUFDWCxXQUFXLEVBQUUsNEJBQTRCO0NBQzFDOztBQUVELEFBQUEsUUFBUSxDQUFDLEtBQUssQUFBQSxNQUFNLENBQUMsS0FBSyxBQUFBLFFBQVEsR0FBRyxLQUFLLENBQUE7RUFDeEMsVUFBVSxFQUFFLE9BQU87Q0FDcEI7O0FTdkVFLEFUMEZILFdTMUZRLEVlUFIsb0JBQW9CLENBQUMsUUFBUSxBQUMxQixRQUFRLENBQUMsWUFBWSxBQUFBLFFBQVEsRXVCRGhDLFdBQVcsRWFBWCxXQUFXLENBaUJULFFBQVEsQzVEZ0ZJO0VBQ1osVUFBVSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQjtDQUM3RTs7QXlEbEdFLEF6RHdHSCxvQnlEeEdVLENBNkNOLFFBQVEsQ0FLTixPQUFPLEFBUUosTUFBTSxDekQ4Q087RUFDcEIsVUFBVSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0I7Q0FDaEQ7O0FhM0dELEFiNkdBLElhN0dJLENiNkdTO0VBQ1gsVUFBVSxFQUFFLElBQUk7RUFDaEIsTUFBTSxFQUFFLElBQUk7RUFDWixPQUFPLEVBQUUsSUFBSTtFQUNiLEtBQUssRTlCcEZFLE9BQWU7QzhCcUZ2Qjs7QStCNUdFLEEvQjhHSCxXK0I5R1EsQ0FzQkosS0FBSyxDL0J3RkM7RUFHUixrQkFBa0IsRUFBRSxJQUFJO0VBQ3hCLFVBQVUsRS9CbEhBLEtBQWdCO0UrQm1IMUIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEM5QnBHUixPQUFlO0U4QnFHeEIsT0FBTyxFQUFFLFlBQVk7RUFDckIsT0FBTyxFQUFFLElBQUk7Q0FNZDs7QStCM0hFLEEvQnVIRCxXK0J2SE0sQ0FzQkosS0FBSyxBL0JpR04sUUFBUSxDQUFDO0VBQ1IsVUFBVSxFQUFFLE9BQU87RUFDbkIsWUFBWSxFQUFFLE9BQU87Q0FDdEI7O0FjMUZILEFkNkZBLFdjN0ZXLEFBQUEsTUFBTSxHQUFHLEtBQUssQUFBQSxRQUFRLEVBUWpDLFdBQVcsQUFBQSxNQUFNLEdBQUcsS0FBSyxBQUFBLFFBQVEsQ2RxRm5CO0VBQ1osVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDN0JuSVosT0FBd0M7QzZCb0lqRDs7QWdCbklELEFoQnFJQSxPZ0JySU8sQ0FXTCxJQUFJLEVHYk4sTUFBTSxDQTJCSixJQUFJO0FBM0JOLE1BQU0sQ0E0QkosT0FBTyxFVXZCVCxpQkFBaUIsRUVDZCxXQUFLLEMvQmlJTztFQUNiLFdBQVcsRUFBRSxNQUFNO0VBQ25CLFFBQVEsRUFBRSxNQUFNO0NBQ2pCOztBZ0J4SUQsQWhCMElBLE9nQjFJTyxDQTJLTCxPQUFPLENBQUMsR0FBRyxFSTdLYixPQUFPLENBSUwsR0FBRyxFV0VGLFdBQUssQ0FpQ0osSUFBSSxDL0JxR1M7RUFHZixXQUFXLEVBQUUsTUFBTTtDQUNwQjs7QWdCZUUsQWhCTEgsY2dCS1UsR0FBRyxTQUFTLEdBQUcsT0FBTyxFaUI5SjdCLGdCQUFVLEVrQkNiLGdCQUFnQixDQUtkLEVBQUUsRVdLSixlQUFlLENBT2IsS0FBSyxDOUR1SUs7RUFDVixhQUFhLEVBQUUsVUFBVTtFQUN6QixVQUFVLEVBQUUsVUFBVTtDQUN2Qjs7QWdCM0pELEFoQjBLQSxPZ0IxS08sQ0EyS0wsT0FBTyxDQUFDLEdBQUcsRUk3S2IsT0FBTyxDQUlMLEdBQUcsRVdFRixXQUFLLENBaUNKLElBQUksRW5CZkwsa0JBQU8sRThCeEJWLGFBQWEsQ0FrSlgsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVVbEpoQixlQUFlLENBV2IsVUFBVSxFT1haLGNBQWMsQ0F5QlosTUFBTSxDQU1KLE9BQU8sRUUvQlgsZ0JBQWdCLENBTWQsRUFBRSxDQVFBLEtBQUssQzdEOEpDO0VEeEhSLFFBQVEsRUFBRSxNQUFNO0VBQ2hCLGFBQWEsRUFBRSxRQUFRO0NDeUh4Qjs7QW1DNUpFLEFuQzhKSCxVbUM5Sk0sRXFCbEJOLGFBQWEsQ0FBQyxNQUFNLENBaUJsQixVQUFVLENBYVIsR0FBRyxDeERrSkM7RUFDTixRQUFRLEVBQUUsUUFBUTtFQUNsQixPQUFPLEVBQUUsS0FBSztFQUNkLE1BQU0sRUFBRSxDQUFDO0VBQ1QsY0FBYyxFQUFFLElBQUk7RUFDcEIsS0FBSyxFQUFFLElBQUk7Q0FDWjs7QTREdExELEE1RHdMQSxXNER4TFcsQ0FxQ1QsTUFBTSxDNURtSkQ7RUFDTCxRQUFRLEVBQUUsUUFBUTtFQUNsQixPQUFPLEVBQUUsS0FBSztFQUNkLE1BQU0sRUFBRSxDQUFDO0VBQ1QsY0FBYyxFQUFFLE1BQU07RUFFdEIsVUFBVTtFQUVWLEtBQUssRUFBRSxJQUFJO0NBT1o7O0E0RHZNRCxBNURrTUUsVzREbE1TLENBcUNULE1BQU0sRzVENkpKLENBQUMsQ0FBQztFQUdGLE1BQU0sRUFBRSxJQUFJO0NBQ2I7O0EwQm5NQSxBMUJzTUgsZTBCdE1ZLEFBT1AsUUFBUSxFQWFWLGNBQVEsQ0FBQyxlQUFlLEFBSXRCLFFBQVEsRUFPVixjQUFRLENBQUMsZUFBZSxBQUl0QixRQUFRLEMxQm1LRjtFQUNULFNBQVMsRUFBRSxLQUFLO0VBQ2hCLGNBQWMsRUFBRSxNQUFNO0VBQ3RCLFdBQVcsRUFBRSxTQUFTO0VBQ3RCLFVBQVUsRUFBRSxNQUFNO0VBQ2xCLFdBQVcsRUFBRSxNQUFNO0VBQ25CLGNBQWMsRUFBRSxJQUFJO0VBQ3BCLEtBQUssRUFBRSxJQUFJO0VBQ1gsT0FBTyxFQUFFLGVBQWU7RUFDeEIsT0FBTyxFQUFFLEdBQUc7Q0FDYjs7QVNsTkUsQVQwTkgsY1MxTlcsQ1QwTk07RUFDZixRQUFRLEVBQUUsS0FBSztFQUNmLEdBQUcsRUFBRSxDQUFDO0VBQ04sSUFBSSxFQUFFLENBQUM7RUFDUCxNQUFNLEVBQUUsQ0FBQztFQUNULEtBQUssRUFBRSxDQUFDO0VBQ1IsVUFBVSxFOUJ4SEUsa0JBQW1CO0U4QnlIL0IsT0FBTyxFTDdObVAsR0FBRztDSzhOOVA7O0EwQ25PRCxBMUNxT0EsYTBDck9hLENBbUJYLFFBQVEsQzFDa05JO0VBQ1osUUFBUSxFQUFFLFFBQVE7RUFDbEIsR0FBRyxFQUFFLENBQUM7RUFDTixJQUFJLEVBQUUsQ0FBQztFQUNQLEtBQUssRUFBRSxJQUFJO0VBQ1gsTUFBTSxFQUFFLElBQUk7RUFDWixPQUFPLEVMdE93YixDQUFDO0NLdU9qYzs7QTRENU9ELEE1RDhPQSxXNEQ5T1csQ0FxQ1QsTUFBTSxHNUQ2SkosQ0FBQyxFdUJsTUwsaUJBQWlCLEN2QjhPUjtFQUNQLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLEtBQUssRUFBRSxJQUFJO0VBQ1gsTUFBTSxFQUFFLElBQUk7Q0FDYjs7QWdCN09FLEFmTEgsY2VLVSxDZkxDO0VBQ1QsT0FBTyxFQUFFLElBQUk7RUFDYixTQUFTLEVBQUUsUUFBUTtDQUNwQjs7QVFGRSxBUklILGNRSlcsRVVEWCxNQUFNLENBWUosT0FBTyxFMEJWVCxjQUFjLEVBQWQsY0FBYyxDQVVaLElBQUksRU1WTixnQkFBZ0IsQ0R3QmQsR0FBRyxFRTFCTCxlQUFlLENGMEJiLEdBQUcsRUN4QkwsZ0JBQWdCLEdBZVosR0FBRyxHQWFELElBQUksRUM5QlYsZUFBZSxDQWlCYixPQUFPLEVBakJULGVBQWUsQ0FzR2IsUUFBUSxDQUtOLEtBQUssRVMxQlQsY0FBYyxFRWpGZCxjQUFjLEVBQWQsY0FBYyxDQVdaLENBQUMsQUFVRSxRQUFRLEVFckJiLGtCQUFrQixDQW1CaEIsTUFBTSxFQW5CUixrQkFBa0IsQ0EwQ2hCLFlBQVksQ0E4Q1YsS0FBSyxDaEVuRkk7RUFDWCx3QkFBd0I7RUFDeEIsT0FBTyxFQUFFLElBQUk7RUFDYixTQUFTLEVBQUUsUUFBUTtFQUNuQixXQUFXLEVBQUUsTUFBTTtDQUNwQjs7QTBCUkQsQTFCVUEsVzBCVlcsRUVHWCxpQkFBaUIsRWtCTGpCLFdBQVcsQ0F1QlQsQ0FBQyxFS3ZCSCxlQUFlLENBR2IsS0FBSyxFQ2tCUCxjQUFjLENBa0NaLGVBQWUsRUtyRGpCLGVBQWUsQ0E0QmIsS0FBSyxFQzlCUCxjQUFjLENBVVosS0FBSyxFSVZQLGNBQWMsQ0FXWixDQUFDLEM5RENpQjtFQUNsQixPQUFPLEVBQUUsSUFBSTtFQUNiLFNBQVMsRUFBRSxVQUFVO0VBQ3JCLFdBQVcsRUFBRSxNQUFNO0NBQ3BCOztBd0JURCxBeEJXQSxXd0JYVyxFQXdFWCxhQUFhLEUyQi9FYixlQUFlLENBc0diLFFBQVEsRUtyR1Asb0JBQU8sQ0FvQk4sU0FBUyxDQVdQLFNBQVMsQ0FDUCxHQUFHLEVDL0JYLGVBQWUsRUNGZixjQUFjLENBeUJaLE1BQU0sRUNvQlIsZ0JBQWdCLENBQ2QsTUFBTSxFSzlDUixrQkFBa0IsQ0FhaEIsSUFBSSxDaEVLUTtFQUNaLDBCQUEwQjtFQUMxQixPQUFPLEVBQUUsSUFBSTtFQUNiLFNBQVMsRUFBRSxRQUFRO0VBQ25CLFdBQVcsRUFBRSxNQUFNO0VBQ25CLGVBQWUsRUFBRSxhQUFhO0NBQy9COztBa0R0QkQsQWxEd0JBLGdCa0R4QmdCLEdEVVosR0FBRyxFRVpQLGVBQWUsR0ZZWCxHQUFHLEVHU1AsY0FBYyxFUXJCZCxnQkFBZ0IsQ0FNZCxFQUFFLEVJTkosa0JBQWtCLENBMENoQixZQUFZLENBbUNWLE9BQU8sQ2hFbkRVO0VBQ25CLDBCQUEwQjtFQUMxQixPQUFPLEVBQUUsSUFBSTtFQUNiLFNBQVMsRUFBRSxVQUFVO0VBQ3JCLFdBQVcsRUFBRSxNQUFNO0VBQ25CLGVBQWUsRUFBRSxhQUFhO0NBQy9COztBK0RoQ0QsQS9EeUNBLGErRHpDYSxDQTJCWCxVQUFVLEMvRGNDO0VBQ1gsMEJBQTBCO0VBQzFCLE9BQU8sRUFBRSxJQUFJO0VBQ2IsU0FBUyxFQUFFLFFBQVE7RUFDbkIsV0FBVyxFQUFFLE1BQU07RUFDbkIsZUFBZSxFQUFFLFlBQVk7Q0FDOUI7O0FReENFLEFSMENILFdRMUNRLEVDUFIsY0FBYyxFRUVkLFdBQVcsQ0FhVCxJQUFJLEVBU0gsa0JBQU8sRUFDUCxrQkFBTyxFQVBQLG9CQUFTLEVrQlhaLE1BQU0sRUFNSCxlQUFTLEVVWlQsZUFBTyxFQ3NDUCxtQkFBTyxHQUtKLENBQUMsRUU1Q1AsYUFBYSxFS0FiLGVBQWUsRVNDWixvQkFBTyxFQUFQLG9CQUFPLENBNkNOLFFBQVEsQ3hER0M7RUFDWCxPQUFPLEVBQUUsSUFBSTtFQUNiLFNBQVMsRUFBRSxNQUFNO0NBQ2xCOztBOEI5Q0UsQTdCTkgsVzZCTVEsQ0FzQkosS0FBSyxFbkIxQlQsV0FBVyxFa0JLWCxNQUFNLEVVTkgsZUFBTyxFV0NWLGdCQUFnQixFQ0ZoQixlQUFlLEVLQ1osb0JBQU8sQ0FvQk4sU0FBUyxFR3JCYixXQUFXLEVDQVgsZ0JBQWdCLEVDWWhCLGVBQWUsRUNaZixjQUFjLEVDQWQsYUFBYSxFQ0FiLGtCQUFrQixFQ0FsQixtQkFBbUIsRUNBbkIsZUFBZSxFQ0FmLFlBQVksRTNET1QsV0FBSyxFT3NDTCxjQUFPLENBQUMsSUFBSSxBQUFBLE9BQU8sRUFpQm5CLGNBQU8sQ0FBQyxJQUFJLEFBQUEsTUFBTSxFRzlEckIsTUFBTSxDQXNDSixPQUFPLENBQ0wsTUFBTSxFT3BDUCxlQUFTLEVTSFosT0FBTyxFQUFQLE9BQU8sQ0FzQkwsS0FBSyxBQU9GLE9BQU8sRVk3QlosV0FBVyxFU0FYLGFBQWEsQ0FBQyxNQUFNLEVHQXBCLGNBQWMsQ0FVWixLQUFLLEVFdUVQLGNBQWMsQ0FLWixNQUFNLEVJdEZSLGtCQUFrQixDQTJCaEIsSUFBSSxFQTNCTixrQkFBa0IsQ0EwQ2hCLFlBQVksQ0FJVixDQUFDLEMvRDlDTztFSENWLGFBQWEsRUZhRyxHQUFHO0NLWnBCOztBVUFELEFWRUEsV1VGVyxFa0JLWCxNQUFNLEVVTkgsZUFBTyxDdENHUTtFQUdoQixRQUFRLEVBQUUsTUFBTTtFQUVoQix1REFBdUQ7Q0FDeEQ7O0FVUkQsQVZVQSxXVVZXLENBOEZULElBQUksRXVCaEdOLE9BQU8sQUF3REosT0FBTyxDQUNOLEtBQUssQUFRRixZQUFZLEFBQUEsTUFBTSxFT2pFekIsYUFBYSxDQTZIWCxJQUFJLENBQUMsSUFBSSxBQUFBLFlBQVksRUE3SHZCLGFBQWEsQ0FvUlgsT0FBTyxDQWdCTCxRQUFRLENBR04sSUFBSSxBQVlELFlBQVksRWNuVHJCLGFBQWEsQ0FBQyxNQUFNLENBaUJsQixVQUFVLEFBaUJQLFFBQVEsQ3REdEJJO0VBQ2YsYUFBYSxFTENHLEdBQUcsQ0tEYSxDQUFDLENBQUMsQ0FBQyxDTENuQixHQUFHO0NLQXBCOztBd0NkRCxBeENnQkEsYXdDaEJhLENBbUlYLElBQUksQ0FBQyxJQUFJLEFBQUEsV0FBVyxFQW5JdEIsYUFBYSxDQW9SWCxPQUFPLENBZ0JMLFFBQVEsQ0FHTixJQUFJLEFBZ0JELFdBQVcsRWN2VHBCLGFBQWEsQ0FBQyxNQUFNLENBaUJsQixVQUFVLEFBaUNQLE1BQU0sQ3REbENPO0VBQ2hCLGFBQWEsRUFBRSxDQUFDLENMSEEsR0FBRyxDQUFILEdBQUcsQ0tHZ0MsQ0FBQztDQUNyRDs7QTZCWkUsQTdCY0gsVzZCZFEsRXNCeUJMLGtCQUFJLEVLN0JQLGVBQWUsQ0E0QmIsS0FBSyxDeERWUztFQUNkLGFBQWEsRUxQRyxHQUFHLENBQUgsR0FBRyxDS084QixDQUFDLENBQUMsQ0FBQztDQUNyRDs7QW9CdEJELEFwQndCQSxpQm9CeEJpQixDQU1mLElBQUksRU9ETixpQkFBaUIsRXdCZ0NkLGtCQUFJLENuRGJZO0VBQ2pCLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDTFhGLEdBQUcsQ0FBSCxHQUFHO0NLWXBCOztBaUR4QkQsQWpEa0NBLGdCaURsQ2dCLEVDRmhCLGVBQWUsRUtDWixvQkFBTyxDQW9CTixTQUFTLEVHckJiLFdBQVcsRUNBWCxnQkFBZ0IsRUNZaEIsZUFBZSxFQ1pmLGNBQWMsRUNBZCxhQUFhLEVDQWIsa0JBQWtCLEVDQWxCLG1CQUFtQixFQ0FuQixlQUFlLEVDQWYsWUFBWSxFeERFWixXQUFXLEVrQktYLE1BQU0sRVVOSCxlQUFPLEUvQk1QLFdBQUssQ0FrQ0osTUFBTSxBQUFBLE1BQU0sRW9CcENoQixpQkFBaUIsRXdCZ0JqQixjQUFjLEVTckJkLGdCQUFnQixDQUtkLGFBQWEsQzVEK0JIO0VIL0JWLFVBQVUsRTdCMkhDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBRSxJQUFHLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLG1CQUFtQjtDZ0MxRi9HOztBRXBDRCxBQUFBLE1BQU0sQ0FBQztFQUNMLDBCQUEwQjtFQUsxQix5QkFBeUI7RUFDekIsUUFBUSxFQUFFLFFBQVE7RUFDbEIsT0FBTyxFQUFFLElBQUk7RUFDYixjQUFjLEVBQUUsSUFBSTtFQUlwQixXQUFXLEVBQUUsSUFBSTtFQUNqQixLQUFLLEVBQUUsSUFBSTtFQUNYLFdBQVcsRUFBRSxjQUFjO0VBQzNCLFdBQVcsRUFBRSxJQUFJO0VBcUNqQixnQ0FBZ0M7Q0FhakM7O0FBaEVDLEFBQUEsVUFBVSxDQUZaLE1BQU0sQ0FFUztFQUNYLE9BQU8sRUFBRSxJQUFJO0NBQ2Q7O0FBSkgsQUFBQSxNQUFNLENEWUE7RUFDQSxTQUFRLEVDRnFCLEdBQUc7Q0RXakM7O0FBUEMsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0VDZjlCLEFBQUEsTUFBTSxDRFlBO0lBSUUsU0FBUSxFQUFFLHVDQUFxSDtHQU1sSTs7O0FBSEMsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNO0VDbkIvQixBQUFBLE1BQU0sQ0RZQTtJQVFFLFNBQVEsRUNUd0IsSUFBSTtHRFd2Qzs7O0FDdEJMLEFBa0JFLE1BbEJJLEFBa0JILE1BQU0sQ0FBQztFQUNOLFNBQVMsRUFBRSxjQUFjO0VBQ3pCLEdBQUcsRUFBRSxHQUFHO0VBQ1IsS0FBSyxFQUFFLENBQUM7RUFHUixNQUFNLEVBQUUsSUFBSTtFQUNaLEtBQUssRUFBRSxJQUFJO0NBS1o7O0FBOUJILEFBMkJJLE1BM0JFLEFBa0JILE1BQU0sQUFTSixNQUFNLENBQUM7RUFDTixTQUFTLEVBQUUsTUFBTTtDQUNsQjs7QUE3QkwsQUFnQ0UsTUFoQ0ksQUFnQ0gsTUFBTSxDQUFDO0VBQ04sTUFBTSxFQUFFLEdBQUc7RUFDWCxJQUFJLEVBQUUsQ0FBQztFQUNQLFVBQVUsRUFBRSxJQUFJO0VBQ2hCLFNBQVMsRUFBRSxHQUFHO0VBQ2QsS0FBSyxFQUFFLElBQUk7RUFDWCxNQUFNLEVBQUUsS0FBSztDQVNkOztBQS9DSCxBQXdDSSxNQXhDRSxBQWdDSCxNQUFNLEFBUUosTUFBTSxDQUFDO0VBQ04sU0FBUyxFQUFFLFdBQVc7Q0FDdkI7O0FBMUNMLEFBNENJLE1BNUNFLEFBZ0NILE1BQU0sQ0FZTCxLQUFLLENBQUM7RUFDSixZQUFZLEVBQUUsR0FBRztDQUNsQjs7QUE5Q0wsQUFpREUsTUFqREksQ0FpREosS0FBSyxDQUFDO0VBQ0osSUFBSSxFQUFFLFFBQVE7Q0FDZjs7QUFuREgsQUFzREUsTUF0REksQ0FzREosS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0VBQzFCLEtBQUssRUFBRSxlQUFlO0VBQ3RCLFdBQVcsRUFBRSx5QkFBeUI7Q0FDdkM7O0FBekRILEFBMkRFLE1BM0RJLENBMkRKLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxBQUFBLE1BQU0sQ0FBQztFQUMxQixNQUFNLEVBQUUsZ0JBQWdCO0NBS3pCOztBQWpFSCxBQThESSxNQTlERSxDQTJESixLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQUFBQSxNQUFNLENBR3pCLEtBQUssQ0FBQztFQUNKLFlBQVksRUFBRSxHQUFHO0NBQ2xCOztBQ2pFSCxBQUFBLEtBQUssQ0FBQztFQUNKLHNCQUFzQixDQUFBLEtBQUM7RUFDdkIsc0JBQXNCLENBQUEsS0FBQztFQUN2QixpQkFBaUIsQ0FBQSxlQUFDO0NBQ25COztBREhILEFBQUEsTUFBTSxDQ0tHO0VBQ0wsV0FBVyxFQUFFLHNCQUFzQjtDQUNwQzs7QUFFRCxBQUFBLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxLQUFLLEFBQUEsVUFBVyxDQUFBLElBQUk7QUFDOUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLEtBQUssQUFBQSxVQUFXLENBQUEsRUFBRTtBQUM1QyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsS0FBSyxBQUFBLFVBQVcsQ0FBQSxFQUFFO0FBQzVDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxLQUFLLEFBQUEsVUFBVyxDQUFBLElBQUksRUFBRTtFQUM5QyxLQUFLLEVBQUUsMkJBQTJCO0NBQ25DOztBQUVELEFBQUEsa0JBQWtCLENBQUMsTUFBTSxDQUFDLEtBQUssQUFBQSxVQUFXLENBQUEsRUFBRTtBQUM1QyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsS0FBSyxBQUFBLFVBQVcsQ0FBQSxJQUFJO0FBQzlDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxLQUFLLEFBQUEsVUFBVyxDQUFBLElBQUk7QUFDOUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLEtBQUssQUFBQSxVQUFXLENBQUEsRUFBRSxFQUFFO0VBQzVDLEtBQUssRUFBRSwyQkFBMkI7Q0FDbkM7O0FEaURILHlCQUF5QjtBN0JSckIsTUFBTSxFQUFHLFNBQVMsRUFBRSxLQUFLLElBQUssV0FBVyxFQUFFLFNBQVM7RTZCVXRELEFBQUEsV0FBVyxDQUFDLE1BQU0sQ0FBQztJQUNqQixXQUFXLEVBQUUsSUFBSTtHQXFCbEI7RUF0QkQsQUFHRSxXQUhTLENBQUMsTUFBTSxBQUdmLE1BQU0sQ0FBQztJQUNOLEtBQUssRUFBRSxLQUFLO0lBQ1osR0FBRyxFQUFFLENBQUM7SUFDTixLQUFLLEVBQUUsSUFBSTtHQUtaO0VBWEgsQUFRSSxXQVJPLENBQUMsTUFBTSxBQUdmLE1BQU0sQ0FLTCxLQUFLLENBQUM7SUFDSixTQUFTLEVBQUUsZUFBZTtHQUMzQjtFQVZMLEFBYUUsV0FiUyxDQUFDLE1BQU0sQUFhZixNQUFNLENBQUM7SUFDTixNQUFNLEVBQUUsS0FBSztJQUNiLElBQUksRUFBRSxDQUFDO0lBQ1AsVUFBVSxFQUFFLE1BQU07R0FDbkI7RUFqQkgsQUFtQkUsV0FuQlMsQ0FBQyxNQUFNLENBbUJoQixLQUFLLENBQUM7SUFDSixLQUFLLEVqQzdGRCxPQUF3QyxDaUM2RnhCLFVBQVU7R0FDL0I7OztBRS9GTCxBQUFBLElBQUksQ0FBQztFQUNILGFBQWEsQ0FBQSxFQUFDO0NBTWY7O0EvQnlERyxNQUFNLEVBQUcsU0FBUyxFQUFFLEtBQUssT0FBTyxVQUFVLEVBQUUsS0FBSztFK0JoRXJELEFBQUEsSUFBSSxDQUFDO0lBS0QsYUFBYSxDQUFBLHNDQUFDO0dBRWpCOzs7QS9CeURHLE1BQU0sRUFBRyxTQUFTLEVBQUUsS0FBSyxPQUFPLFdBQVcsRUFBRSxRQUFRO0UrQmhFekQsQUFBQSxJQUFJLENBVUc7SUFDSCxNQUFNLENBQUEsRUFBQztHQUNSO0VBRUQsQUFBQSxXQUFXLENBQUMsUUFBUSxDQUFDO0lBQ25CLGFBQWEsRUFBRSxDQUFDO0dBQ2pCOzs7QUNoQkgsQUFBQSxJQUFJLENBQUMsbUJBQW1CO0FBQ3hCLElBQUksQ0FBQywwQkFBMEIsQ0FBQztFQUM5QixLQUFLLEVBQUUsS0FBSztFQUNaLFVBQVUsRXJDaUJBLEtBQWdCO0NxQ2hCM0I7O0FBRUQsQUFBQSxJQUFJLENBQUMseUJBQXlCLENBQUM7RUFDN0IsVUFBVSxFckNGRixPQUEwQjtDcUNHbkM7O0FBRUQsQUFBQSxJQUFJLENBQUMseUJBQXlCLEFBQUEsTUFBTTtBQUNwQyxJQUFJLENBQUMseUJBQXlCLEFBQUEsT0FBTyxDQUFDO0VBQ3BDLFVBQVUsRXBDWEYsT0FBd0M7Q29DWWpEOztBQ2JELEFBQUEsSUFBSSxBQUFBLFNBQVMsQ0FBQztFQUNaLFdBQVcsRUFBRSxJQUFJO0NBQ2xCOztBQUVELEFBQUEsU0FBUyxDQUFDO0VBR1IsT0FBTyxFQUFFLElBQUk7Q0FzQ2Q7O0FqQ21CRyxNQUFNLEVBQUcsU0FBUyxFQUFFLEtBQUs7RWlDNUQ3QixBQUFBLFNBQVMsQ0FBQztJQU1OLE9BQU8sRUFBRSxLQUFLO0lBQ2QsUUFBUSxFQUFFLFFBQVE7SUFDbEIsS0FBSyxFQUFDLElBQUM7SUFDUCxNQUFNLEVBQUMsSUFBQztJQUNSLEtBQUssRUFUUSxJQUFJO0lBVWpCLE1BQU0sRUFWTyxJQUFJO0lBV2pCLE1BQU0sRUFBRSxXQUFXO0dBNkJ0QjtFQXpDRCxBQWNJLFNBZEssQUFjSixRQUFRLEVBZGIsU0FBUyxBQWNPLE9BQU8sQ0FBQztJQUNsQixVQUFVLEVBQUUsSUFBSTtJQUNoQixPQUFPLEVBQUUsRUFBRTtJQUNYLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLEdBQUc7R0FDWjtFQXBCTCxBQXNCSSxTQXRCSyxBQXNCSixRQUFRLENBQUM7SUFDUixLQUFLLEVBQUUsR0FBRztJQUNWLFNBQVMsRUFBRSxtQkFBbUIsQ0FBQyxjQUFjO0dBQzlDO0VBekJMLEFBMkJJLFNBM0JLLEFBMkJKLE9BQU8sQ0FBQztJQUNQLFNBQVMsRUFBRSxtQkFBbUIsQ0FBQyxjQUFjO0dBQzlDO0VBN0JMLEFBK0JJLFNBL0JLLEFBK0JKLE1BQU0sQ0FBQztJQUNOLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRUFBRSxzQkFBd0I7R0FDckM7RUFFRCxBQUFBLFNBQVMsQ0FwQ2IsU0FBUyxDQW9DTztJQUNWLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRUFBRSxzQkFBMkI7R0FDeEM7OztBQzFDRixBQUFELGNBQVMsQ0FBQztFQUdSLGVBQWUsRUFBRSxNQUFNO0NBQ3hCOztBQUVBLEFBQUQsV0FBTSxDQUFDO0VBR0wsVUFBVSxFdkNVRixLQUFnQjtFdUNUeEIsUUFBUSxFQUFFLFFBQVE7RUFDbEIsT0FBTyxFQUFFLElBQUk7RUFDYixVQUFVLEVBQUUsTUFBTTtFQUNsQixTQUFTLEVBQUUsS0FBSztFQUNoQixVQUFVLEVBQUUsSUFBSTtDQWdDakI7O0FBeENBLEFBVUMsV0FWSSxHQVVGLEdBQUcsQ0FBQztFQUNKLFFBQVEsRUFBRSxJQUFJO0NBQ2Y7O0FBWkYsQUFjQyxXQWRJLENBY0osTUFBTSxDQUFDO0VBQ0wsS0FBSyxFdkNPRixPQUFlO0V1Q05sQixRQUFRLEVBQUUsUUFBUTtFQUNsQixTQUFTLEVBQUUsSUFBSTtFQUNmLFdBQVcsRUFBRSxJQUFJO0VBQ2pCLEtBQUssRUFBRSxJQUFJO0VBQ1gsTUFBTSxFQUFFLElBQUk7RUFDWixNQUFNLEVBQUUsT0FBTztFQUNmLEdBQUcsRUFBRSxDQUFDO0VBQ04sS0FBSyxFQUFFLENBQUM7RUFDUixVQUFVLEVBQUUsSUFBSTtDQVFqQjs7QWxDeUJELE1BQU0sRUFBRyxTQUFTLEVBQUUsS0FBSztFa0N6RDFCLEFBY0MsV0FkSSxDQWNKLE1BQU0sQ0FBQztJQWFILEdBQUcsRUFBRSxLQUFLO0lBQ1YsS0FBSyxFQUFFLEtBQUs7SUFDWixVQUFVLEV2Q2hCTixLQUFnQjtJdUNpQnBCLGFBQWEsRUFBRSxHQUFHO0dBRXJCOzs7QUFoQ0YsQUFrQ0MsV0FsQ0ksQ0FrQ0osTUFBTSxBQUFBLE1BQU0sQ0FBQztFQUdYLFVBQVUsRXZDd0JSLE9BQWdCO0V1Q3ZCbEIsS0FBSyxFQUFFLElBQUk7Q0FDWjs7QUM5Q0wsQUFHRSxjQUhZLEdBR1YsQ0FBQyxBQUFBLElBQUssQ0FBQSxZQUFZLEVBQUU7RUFDcEIsVUFBVSxFQUFFLEdBQUc7Q0FDaEI7O0FDTEgsQUFFSSxXQUZPLEFBRU4sTUFBTSxBQUFBLFFBQVEsQ0FBQztFQUNkLE9BQU8sRUFBRSxHQUFHO0NBQ2I7O0FBSkwsQUFNSSxXQU5PLEFBTU4sTUFBTSxBQUFBLFFBQVEsQ0FBQztFQUNkLE9BQU8sRUFBRSxHQUFHO0NBQ2I7O0FBUkwsQUFvQkUsV0FwQlMsQUFvQlIsT0FBTyxBQUFBLFFBQVEsQ0FBQztFQUNmLE9BQU8sRUFBRSxHQUFHO0NBQ2I7O0FaeUNELEFBQUEsa0JBQWtCLENBQUM7RUFDakIsSUFBSSxFQUFFLFFBQVE7Q0FDZjs7QWEvREgsQUFBQSxXQUFXLENBQUM7RUFHVixLQUFLLEVBQUUsSUFBSTtFQUNYLFdBQVcsRUFBRSxLQUFLO0VBQ2xCLE9BQU8sRUFBRSxJQUFJO0NBNkdkOztBQWxIRCxBQU9FLFdBUFMsQ0FPVCxJQUFJO0FBUE4sV0FBVyxDQVFULElBQUksQ0FBQztFQUNILFVBQVUsRTFDU0YsS0FBZ0I7RTBDUnhCLElBQUksRUFBRSxRQUFRO0NBQ2Y7O0FBWEgsQUFhRSxXQWJTLENBYVQsSUFBSSxFQUNILGtCQUFPLEVBQ1Asa0JBQU8sRUFDUCxvQkFBUyxDQUFDO0VBR1QsVUFBVSxFQUFFLE1BQU07Q0FDbkI7O0FieUNELEFBQUEsa0JBQWtCLENhbENUO0VBR1AsU0FBUyxFQUFFLElBQUk7RUFDZixVQUFVLEVBQUUsSUFBSTtDQUtqQjs7QUFUQSxBQU1DLGtCQU5NLENBTU4sQ0FBQyxDQUFDO0VBQ0EsWUFBWSxFZjdCTixLQUFLO0NlOEJaOztBQUdGLEFBQUQsa0JBQVEsQ0FBQztFQUNQLElBQUksRUFBRSxRQUFRO0VBQ2QsV0FBVyxFQUFFLElBQUk7Q0FLbEI7O0FBUEEsQUFJQyxrQkFKTSxDQUlOLElBQUksQ0FBQztFQUNILE9BQU8sRUFBRSxDQUFDLENmdENKLEtBQUs7Q2V1Q1o7O0FBR0YsQUFBRCxvQkFBVSxDQUFDO0VBQ1QsSUFBSSxFQUFFLFFBQVE7RUFDZCxXQUFXLEVBQUUsSUFBSTtFQUNqQixVQUFVLEVBQUUsT0FBK0I7Q0FDNUM7O0FBbkRILEFBc0RJLFdBdERPLENBcURULElBQUksQ0FDRixDQUFDLENBQUM7RUFDQSxLQUFLLEV6Q3hERCxPQUF3QztFeUN5RDVDLElBQUksRUFBRSxPQUFPO0NBQ2Q7O0FBekRMLEFBOERNLFdBOURLLENBcURULElBQUksQUFNRCxNQUFNLENBR0wsQ0FBQyxDQUFDO0VBQ0EsT0FBTyxFQUFFLFlBQVk7Q0FDdEI7O0FBaEVQLEFBbUVJLFdBbkVPLENBcURULElBQUksQ0FjRixDQUFDLEFBQUEsS0FBSyxDQUFDO0VBQ0wsT0FBTyxFQUFFLEVBQUU7Q0FDWjs7QUFyRUwsQUF1RUksV0F2RU8sQ0FxRFQsSUFBSSxBQWtCRCxRQUFRLENBQUMsQ0FBQyxDQUFDO0VBQ1YsVUFBVSxFQUFFLE9BQThCO0VBQzFDLEtBQUssRUFBRSxJQUFJO0VBQ1gsT0FBTyxFQUFFLFlBQVk7Q0FDdEI7O0FBM0VMLEFBNkVJLFdBN0VPLENBcURULElBQUksQUF3QkQsSUFBSSxDQUFDO0VBQ0osTUFBTSxFMUNzQkQsT0FBZTtDMENyQnJCOztBQS9FTCxBQW1FSSxXQW5FTyxDQXFEVCxJQUFJLENBY0YsQ0FBQyxBQUFBLEtBQUssQ0FjQztFQUNMLE9BQU8sRUFBRSxFQUFFO0NBQ1o7O0FyQ3JCRCxNQUFNLEVBQUcsU0FBUyxFQUFFLEtBQUs7RXFDOUQ3QixBQXFERSxXQXJEUyxDQXFEVCxJQUFJLENBQUM7SUFpQ0QsT0FBTyxFQUFFLElBQUk7R0FNaEI7RUE1RkgsQUF3Rk0sV0F4RkssQ0FxRFQsSUFBSSxBQW1DQyxlQUFnQixDQUFBLEtBQUssRUFBRTtJQUN0QixPQUFPLEVBQUUsSUFBSTtHQUNkOzs7QUExRlAsQUE4RkUsV0E5RlMsQ0E4RlQsSUFBSSxDQUFDO0VBR0gsV0FBVyxFMUN1QkEsR0FBRyxDQUNILEtBQUssQ0FyQlQsT0FBZTtFMENGdEIsV0FBVyxFQUFFLElBQUk7Q0FDbEI7O0FBbkdILEFBcUdFLFdBckdTLENBcUdULElBQUksQ0FBQztFQUNILFdBQVcsRUFBRSxJQUFJO0VBQ2pCLEtBQUssRTFDM0RLLE9BQWlCO0MwQzRENUI7O0FBeEdILEFBMEdFLFdBMUdTLENBMEdULEtBQUssQ0FBQztFQUNKLEtBQUssRTFDekNELE9BQWdCO0MwQzBDckI7O0FBNUdILEFBOEdFLFdBOUdTLENBOEdULFlBQVksQ0FBQztFQUNYLFVBQVUsRUFBRSxJQUFJO0VBQ2hCLE9BQU8sRUFBRSxHQUFHO0NBQ2I7O0FDbkhILEFBQUEsSUFBSSxDQUFDO0VBR0gsY0FBYyxFQUFFLFNBQVM7RUFDekIsV0FBVyxFQUFFLEdBQUc7RWR3QmhCLFVBQVUsRUFEYSxHQUFHLENGUk4sS0FBSztDZ0JNMUI7O0FBakJDLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSztFQVJ0QixBQVNJLElBVEEsQUFTQyxNQUFNLEFBQUEsSUFBSyxDQUFBLFNBQVMsQ0FBQyxJQUFLLEVBQUEsQUFBQSxRQUFDLEFBQUEsR0FBVztJQUNyQyxVQUFVLEVBQUUsT0FBTztJQUNuQixLQUFLLEVBQUUsSUFBSTtHQUNaOzs7QUFaTCxBQWVFLElBZkUsQUFlRCxPQUFPLENBQUM7RUFDUCxVQUFVLEVBQUUsa0JBQWtCO0VBQzlCLEtBQUssRUFBRSxJQUFJO0NBQ1o7O0FBbEJILEFBb0JFLElBcEJFLEFBb0JELFNBQVMsRUFwQlosSUFBSSxDQXFCRCxBQUFBLFFBQUMsQUFBQSxFQUFVO0VBQ1YsT0FBTyxFQUFFLEdBQUc7RUFDWixNQUFNLEVBQUUsT0FBTztDQUNoQjs7QUN4QkgsQUFBQSxXQUFXLENBQUM7RUFDVixRQUFRLEVBQUUsUUFBUTtFQUNsQixXQUFXLEVBQUUsUUFBUTtDQUN0Qjs7QUFFRCxBQUFBLFdBQVcsR0FBRyxLQUFLLENBQUM7RUFDbEIsT0FBTyxFQUFFLEtBQUs7RUFDZCxRQUFRLEVBQUUsUUFBUTtFQUNsQixNQUFNLEVBQUUsT0FBTztFQUNmLE9BQU8sRUFBRSxJQUFJO0VBQ2IsbUJBQW1CLEVBQUUsSUFBSTtFQUN6QixnQkFBZ0IsRUFBRSxJQUFJO0NBQ3ZCOztBQVBELEFBQUEsV0FBVyxHQUFHLEtBQUssQ0FTQztFQUNsQixPQUFPLEVBQUUsR0FBRztFQUNaLEtBQUssRUFBRSxJQUFJO0VBQ1gsTUFBTSxFQUFFLElBQUk7RUFDWixnQkFBZ0IsRTVDb0ZQLE9BQWU7RTRDbkZ4QixhQUFhLEVBQUUsSUFBSTtDQUNwQjs7QUFFRCxBQUFBLFdBQVcsR0FBRyxLQUFLLEFBQUEsUUFBUTtBQUMzQixXQUFXLEdBQUcsS0FBSyxBQUFBLE9BQU8sQ0FBQztFQUN6QixPQUFPLEVBQUUsS0FBSztFQUNkLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLEdBQUcsRUFBRSxHQUFHO0VBQ1IsSUFBSSxFQUFFLEdBQUc7RUFDVCxNQUFNLEVBQUUsR0FBRztFQUNYLE9BQU8sRUFBRSxFQUFFO0NBQ1o7O0FBRUQsQUFBQSxXQUFXLEdBQUcsS0FBSyxBQUFBLFFBQVEsQ0FBQztFQUMxQixLQUFLLEVBQUUsR0FBRztFQUNWLGdCQUFnQixFNUNrQ1YsT0FBZ0I7RTRDakN0QixhQUFhLEVBQUUsSUFBSTtDQUNwQjs7QUFNRCxBQUFBLG1CQUFtQixHQUFHLEtBQUssQUFBQSxRQUFRLENBQUM7RUFDbEMsZ0JBQWdCLEVBQUUsT0FBTztDQUMxQjs7QUFFRCxBQUFBLFdBQVcsQUFBQSxNQUFNLEdBQUcsS0FBSyxBQUFBLFFBQVEsQ0FBQztFZmxCaEMsVUFBVSxFZXFCVSxVQUFVLENqQjlCVixLQUFLO0NpQitCMUI7O0FBRUQsQUFBQSxXQUFXLEdBQUcsS0FBSyxBQUFBLE9BQU8sQ0FBQztFQUd6QixLQUFLLEVBQUUsSUFBSTtFQUNYLGFBQWEsRUFBRSxJQUFJO0VBQ25CLFVBQVUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxrQkFBa0I7Q0FDM0M7O0FBRUQsQUFBQSxXQUFXLEFBQUEsTUFBTSxHQUFHLEtBQUssQUFBQSxPQUFPLENBQUM7RWZoQy9CLFVBQVUsRWVtQ1UsTUFBTSxDakI1Q04sS0FBSztDaUI2QzFCOztBQUVELEFBQUEsV0FBVyxBQUFBLFFBQVEsR0FBRyxLQUFLLEFBQUEsUUFBUSxDQUFDO0VBQ2xDLGdCQUFnQixFNUNyQkosT0FBaUI7QzRDc0I5Qjs7QUFFRCxBQUFBLFdBQVcsQUFBQSxRQUFRLEdBQUcsS0FBSyxBQUFBLE9BQU8sQ0FBQztFQUNqQyxXQUFXLEVBQUUsSUFBSTtDQUNsQjs7QUNyREQsQUFBQSxLQUFLLENBQUEsQUFBQSxJQUFDLENBQUQsS0FBQyxBQUFBLEVBQVk7RUFDaEIsa0JBQWtCLEVBQUUsSUFBSTtFQUN4QixVQUFVLEVBQUUsSUFBSTtFQUNoQixNQUFNLEVBQUUsQ0FBQztDQTZDVjs7QUFoREQsQUFLRSxLQUxHLENBQUEsQUFBQSxJQUFDLENBQUQsS0FBQyxBQUFBLENBS0gsTUFBTSxDQUFDO0VBQ04sT0FBTyxFQUFFLElBQUk7Q0FDZDs7QUFQSCxBQVNFLEtBVEcsQ0FBQSxBQUFBLElBQUMsQ0FBRCxLQUFDLEFBQUEsQ0FTSCwrQkFBK0IsQ0FBQztFQWhCakMsS0FBSyxFQUFFLElBQUk7RUFDWCxNQUFNLEVBQUUsR0FBRztFQUNYLE1BQU0sRUFBRSxPQUFPO0VBQ2YsVUFBVSxFN0NWRixPQUEwQjtFNkNXbEMsYUFBYSxFQUFFLElBQUk7Q0FjbEI7O0FBWEgsQUFhRSxLQWJHLENBQUEsQUFBQSxJQUFDLENBQUQsS0FBQyxBQUFBLENBYUgsc0JBQXNCLENBQUM7RTlDckJ4QixVQUFVLEVBQUUsdURBQWdFO0VBTTVFLFdBQVcsRUNpR0MsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBREwsS0FBSztFNkM5R25CLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDNUNGVCxPQUF3QztFNENHaEQsTUFBTSxFQUFFLEdBQUc7RUFDWCxLQUFLLEVBQUUsS0FBSztFQUNaLGFBQWEsRUFBRSxJQUFJO0VBQ25CLFVBQVUsRTdDYUEsS0FBZ0I7RTZDWjFCLE1BQU0sRUFBRSxPQUFPO0VBMkJiLGtCQUFrQixFQUFFLElBQUk7RUFDeEIsVUFBVSxFQUFFLE1BQU07Q0FDbkI7O0FBbEJILEFBb0JFLEtBcEJHLENBQUEsQUFBQSxJQUFDLENBQUQsS0FBQyxBQUFBLENBb0JILGtCQUFrQixDQUFDO0VBM0JwQixLQUFLLEVBQUUsSUFBSTtFQUNYLE1BQU0sRUFBRSxHQUFHO0VBQ1gsTUFBTSxFQUFFLE9BQU87RUFDZixVQUFVLEU3Q1ZGLE9BQTBCO0U2Q1dsQyxhQUFhLEVBQUUsSUFBSTtDQXlCbEI7O0FBdEJILEFBd0JFLEtBeEJHLENBQUEsQUFBQSxJQUFDLENBQUQsS0FBQyxBQUFBLENBd0JILGtCQUFrQixDQUFDO0U5Q2hDcEIsVUFBVSxFQUFFLHVEQUFnRTtFQU01RSxXQUFXLEVDaUdDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQURMLEtBQUs7RTZDOUduQixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQzVDRlQsT0FBd0M7RTRDR2hELE1BQU0sRUFBRSxHQUFHO0VBQ1gsS0FBSyxFQUFFLEtBQUs7RUFDWixhQUFhLEVBQUUsSUFBSTtFQUNuQixVQUFVLEU3Q2FBLEtBQWdCO0U2Q1oxQixNQUFNLEVBQUUsT0FBTztDQXFDZDs7QUExQkgsQUE0QkUsS0E1QkcsQ0FBQSxBQUFBLElBQUMsQ0FBRCxLQUFDLEFBQUEsQ0E0QkgsV0FBVyxDQUFDO0VBbkNiLEtBQUssRUFBRSxJQUFJO0VBQ1gsTUFBTSxFQUFFLEdBQUc7RUFDWCxNQUFNLEVBQUUsT0FBTztFQUNmLFVBQVUsRTdDVkYsT0FBMEI7RTZDV2xDLGFBQWEsRUFBRSxJQUFJO0NBaUNsQjs7QUE5QkgsQUFnQ0UsS0FoQ0csQ0FBQSxBQUFBLElBQUMsQ0FBRCxLQUFDLEFBQUEsQ0FnQ0gsZ0JBQWdCLENBQUM7RUFDaEIsVUFBVSxFQUFFLHlCQUF5QjtFQUNyQyxhQUFhLEVBQUUsTUFBTTtDQUN0Qjs7QUFuQ0gsQUFxQ0UsS0FyQ0csQ0FBQSxBQUFBLElBQUMsQ0FBRCxLQUFDLEFBQUEsQ0FxQ0gsZ0JBQWdCLENBQUM7RUFDaEIsVUFBVSxFQUFFLHlCQUF5QjtFQUNyQyxhQUFhLEVBQUUsTUFBTTtDQUN0Qjs7QUF4Q0gsQUEwQ0UsS0ExQ0csQ0FBQSxBQUFBLElBQUMsQ0FBRCxLQUFDLEFBQUEsQ0EwQ0gsV0FBVyxDQUFDO0U5Q2xEYixVQUFVLEVBQUUsdURBQWdFO0VBTTVFLFdBQVcsRUNpR0MsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBREwsS0FBSztFNkM5R25CLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDNUNGVCxPQUF3QztFNENHaEQsTUFBTSxFQUFFLEdBQUc7RUFDWCxLQUFLLEVBQUUsS0FBSztFQUNaLGFBQWEsRUFBRSxJQUFJO0VBQ25CLFVBQVUsRTdDYUEsS0FBZ0I7RTZDWjFCLE1BQU0sRUFBRSxPQUFPO0VBd0RiLFlBQVksRUFBRSxXQUFXO0VBQ3pCLEtBQUssRUFBRSxXQUFXO0NBQ25COztBQ2hFSCxBQ0ZBLE9ERU8sQ0FXTCxJQUFJLENDYkE7RUFHSixPQUFPLEVBQUUsWUFBWTtFQUNyQixNQUFNLEVBQUUsT0FBTztDQUNoQjs7QURIRCxBQUFBLE9BQU8sQ0FBQztFQUNOLFdBQVcsRUFBRSxNQUFNO0NBK1RwQjs7QUF6VEUsQUFBRCxjQUFRLENBQUM7RUFDUCxPQUFPLEVBQUUsZUFBZTtDQUN6Qjs7QUFNQSxBQUFELGNBQVEsQ0FBQyxJQUFJLENBQUM7RUFDWixTQUFTLEVBQUUsT0FBTztFQUNsQixPQUFPLEVBQUUsS0FBSztDQUNmOztBQUVBLEFBQUQsY0FBUSxDQUFDLElBQUksQ0FBQztFQUNaLE9BQU8sRUFBRSxXQUFXO0VBQ3BCLFdBQVcsRUFBRSxNQUFNO0VBQ25CLFdBQVcsRUFBRSxJQUFJO0NBQ2xCOztBQXhCSCxBQTBCRSxPQTFCSyxDQTBCTCxJQUFJLEFBQUEsT0FBTyxDQUFDO0VBQ1YsS0FBSyxFOUNTRyxPQUFPO0M4Q1JoQjs7QUE1QkgsQUE4QkUsT0E5QkssQ0E4QkwsT0FBTyxDQUFDLENBQUMsQ0FBQztFQUNSLGNBQWMsRUFBRSxHQUFHO0NBQ3BCOztBQWhDSCxBQWtDRSxPQWxDSyxDQWtDTCxJQUFJLEFBQUEsUUFBUSxDQUFDO0VBQ1gsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEM5Q2lCVixPQUFPO0M4Q2hCZjs7QUFwQ0gsQUFzQ0UsT0F0Q0ssQ0FzQ0wsSUFBSSxBQUFBLE9BQU8sQ0FBQztFQUNWLFdBQVcsRUFBRSxJQUFJO0VBQ2pCLFVBQVUsRUFBRSxPQUErQjtDQUM1Qzs7QUF6Q0gsQUErQ0UsT0EvQ0ssQ0ErQ0wsSUFBSSxBQUFBLFFBQVEsQ0FBQztFQUNYLFVBQVUsRUFBRSxNQUFNO0NBQ25COztBQWpESCxBQW9ESSxPQXBERyxDQW1ETCxJQUFJLEFBQUEsSUFBSyxDQUFBLE1BQU0sQ0FBQyxNQUFNO0FBbkR4QixPQUFPLENBbURMLElBQUksQUFBQSxJQUFLLENBQUEsTUFBTSxDQUFDLE1BQU0sQ0FFcEIsS0FBSztBQXJEVCxPQUFPLENBbURMLElBQUksQUFBQSxJQUFLLENBQUEsTUFBTSxDQUFDLE1BQU0sQ0FHcEIsSUFBSSxDQUFDO0VBQ0gsVUFBVSxFOUNuQkosT0FBTztFOENvQmIsS0FBSyxFOUNqQk0sSUFBSTtDOENrQmhCOztBQXpETCxBQWdFRSxPQWhFSyxDQWdFTCxJQUFJLEFBQUEsTUFBTSxDQUFDO0VBQ1QsS0FBSyxFN0NsRUMsT0FBd0M7RTZDbUU5QyxNQUFNLEVBQUUsT0FBTztDQUNoQjs7QUFuRUgsQUFxRUUsT0FyRUssQ0FxRUwsSUFBSSxDQUFDLEtBQUssQ0FBQztFQUNULFNBQVMsRUFBRSxHQUFHO0VBQ2QsS0FBSyxFN0N4RUMsT0FBd0M7QzZDeUUvQzs7QUF4RUgsQUEwRUUsT0ExRUssQ0EwRUwsSUFBSSxBQUFBLGFBQWEsQ0FBQztFQUNoQixVQUFVLEU5Q3ZCSCxPQUFPO0U4Q3dCZCxLQUFLLEU5Q3JCTyxJQUFJO0M4QzBCakI7O0FBakZILEFBOEVJLE9BOUVHLENBMEVMLElBQUksQUFBQSxhQUFhLENBSWYsS0FBSyxDQUFDO0VBQ0osS0FBSyxFOUN4QkssSUFBSTtDOEN5QmY7O0FBR0YsQUFBRCxjQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztFQUNsQixZQUFZLEVBQUUsR0FBRztDQUNsQjs7QUFFQSxBQUFELGNBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxBQUFBLFlBQVksQ0FBQztFQUM5QixZQUFZLEVBQUUsQ0FBQztDQUNoQjs7QUFFQSxBQUFELGNBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO0VBQ2xCLGFBQWEsRUFBRSxJQUFJO0VBQ25CLFdBQVcsRUFBRSxPQUFPO0NBQ3JCOztBQTlGSCxBQWdHRSxPQWhHSyxDQWdHTCxJQUFJLENBQUMsSUFBSSxDQUFDO0VBQ1IsS0FBSyxFOUN0RUEsT0FBZTtDOEN1RXJCOztBQUVBLEFBQUQsY0FBUSxHQUFHLElBQUksQ0FBQztFQUNkLElBQUksRUFBRSxTQUFTO0VBQ2YsT0FBTyxFQUFFLElBQUk7RUFDYixTQUFTLEVBQUUsT0FBTztFQUNsQixXQUFXLEVBQUUsTUFBTTtFQUNuQixPQUFPLEVBQUUsYUFBYTtDQUN2Qjs7QUFFQSxBQUFELGNBQVEsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDO0VBQ3RCLFlBQVksRTlDVEwsT0FBZTtDOENVdkI7O0FBOUdILEFBZ0hFLE9BaEhLLENBZ0hMLElBQUksQ0FBQztFQUdILElBQUksRUFBRSxRQUFRO0VBQ2QsVUFBVSxFQUFFLEtBQUs7RUFDakIsU0FBUyxFQUFFLElBQUk7RUFDZixLQUFLLEU3Q3ZIQyxPQUF3QztDNkN3SC9DOztBQXZISCxBQXlIRSxPQXpISyxDQXlITCxLQUFLLENBQUM7RUFHSixXQUFXLEVBQUUsS0FBSztFQUNsQixjQUFjLEVBQUUsTUFBTTtDQUN2Qjs7QUFFQSxBQUFELGNBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO0VBQ3BCLElBQUksRUFBRSxRQUFRO0VBQ2QsVUFBVSxFQUFFLE1BQU07RUFDbEIsUUFBUSxFQUFFLE1BQU07RUFDaEIsU0FBUyxFQUFFLEtBQUs7Q0FDakI7O0FBRUEsQUFBRCxjQUFRLEdBQUcsS0FBSyxDQUFDO0VBQ2YsSUFBSSxFQUFFLE9BQU87RUFDYixPQUFPLEVBQUUsSUFBSTtFQUNiLGVBQWUsRUFBRSxNQUFNO0VBQ3ZCLFlBQVksRTlDbkJELEdBQUcsQ0FDSCxLQUFLLENBckJULE9BQWU7RThDd0N0QixVQUFVLEU5Q3RIRCxPQUE0QjtFOEN1SHJDLFdBQVcsRUFBRSxNQUFNO0VBQ25CLEtBQUssRTdDL0lDLE9BQXdDO0M2Q2dKL0M7O0FBL0lILEFBaUpFLE9BakpLLEdBaUpILFNBQVMsQ0FBQztFQUNWLFNBQVMsRUFBRSxHQUFHO0NBQ2Y7O0FBRUEsQUFBRCxjQUFRLEdBQUcsU0FBUyxDQUFDO0VBQ25CLElBQUksRUFBRSxRQUFRO0VBQ2QsVUFBVSxFOUNqSUQsT0FBNEI7RThDa0lyQyxVQUFVLEVBQUUsR0FBRyxDQUFDLEtBQUssQzlDcERkLE9BQWU7RThDcUR0QixhQUFhLEVBQUUsR0FBRyxDQUFDLEtBQUssQzlDckRqQixPQUFlO0U4Q3NEdEIsU0FBUyxFQUFFLElBQUk7Q0FDaEI7O0FBRUEsQUFBRCxjQUFRLEdBQUcsU0FBUyxHQUFHLE9BQU8sQ0FBQztFQUc3QixPQUFPLEVBQUUsS0FBSztFQUNkLE9BQU8sRUFBRSxPQUFPO0NBQ2pCOztBQUVBLEFBQUQsY0FBUSxDQUFDLE9BQU8sQ0FBQztFQUNmLGNBQWMsRUFBRSxHQUFHO0VBQ25CLFNBQVMsRUFBRSxVQUFVO0VBQ3JCLE1BQU0sRUFBRSxhQUFhO0VBQ3JCLFNBQVMsRUFBRSxJQUFJO0NBQ2hCOztBQXpLSCxBQTJLRSxPQTNLSyxDQTJLTCxPQUFPLENBQUMsR0FBRyxDQUFDO0VBR1YsT0FBTyxFQUFFLFlBQVk7RUFDckIsY0FBYyxFQUFFLEtBQUs7RUFDckIsU0FBUyxFQUFFLElBQUk7RUFDZixPQUFPLEVBQUUsR0FBRztFQUNaLFlBQVksRUFBRSxJQUFJO0VBQ2xCLFNBQVMsRUFBRSxHQUFHO0NBQ2Y7O0FBRUEsQUFBRCxjQUFRLENBQUMsT0FBTyxBQUFBLE1BQU0sQ0FBQztFQUNyQixXQUFXLEVBQUUsU0FBUztDQUN2Qjs7QUFFQSxBQUFELGNBQVEsQ0FBQyxPQUFPLEFBQUEsTUFBTSxDQUFDO0VBQ3JCLFlBQVksRUFBRSxTQUFTO0VBQ3ZCLFVBQVUsRUFBRSxNQUFNO0NBQ25COztBQUVBLEFBQUQsY0FBUSxDQUFDLE9BQU8sQUFBQSxXQUFXLENBQUM7RUFDMUIsWUFBWSxFQUFFLE9BQU87Q0FDdEI7O0FBRUEsQUFBRCxjQUFRLENBQUMsT0FBTyxBQUFBLFFBQVEsQ0FBQztFQUN2QixZQUFZLEVBQUUsT0FBTztDQUN0Qjs7QUFFQSxBQUFELGNBQVEsQ0FBQyxPQUFPLEFBQUEsUUFBUSxDQUFDO0VBQ3ZCLFlBQVksRUFBRSxPQUFPO0NBQ3RCOztBQUVBLEFBQUQsY0FBUSxDQUFDLE9BQU8sQUFBQSxVQUFVLENBQUM7RUFDekIsWUFBWSxFQUFFLE9BQU87Q0FDdEI7O0FBN01ILEFBK01FLE9BL01LLENBK01MLElBQUksQ0FBQyxPQUFPLENBQUM7RUFDWCxTQUFTLEVBQUUsR0FBRztDQUNmOztBQUVBLEFBQUQsY0FBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7RUFDcEIsT0FBTyxFQUFFLE1BQU07RUFDZixLQUFLLEU3Q3ROQyxPQUF3QztFNkN1TjlDLFNBQVMsRUFBRSxVQUFVO0VBQ3JCLE9BQU8sRUFBRSxXQUFXO0VBQ3BCLGNBQWMsRUFBRSxHQUFHO0NBQ3BCOztBQXpOSCxBQTJORSxPQTNOSyxDQTJOTCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztFQUNmLFNBQVMsRUFBRSxHQUFHO0VBQ2QsY0FBYyxFQUFFLEdBQUc7Q0FDcEI7O0FBOU5ILEFBZ09FLE9BaE9LLENBZ09MLEtBQUssQ0FBQztFQUNKLE9BQU8sRUFBRSxLQUFLO0VBQ2QsVUFBVSxFQUFFLEdBQUc7RUFDZixXQUFXLEVBQUUsR0FBRztFQUNoQixhQUFhLEVBQUUsSUFBSTtFQUNuQixXQUFXLEVBQUUsR0FBRyxDQUFDLEtBQUssQzlDaklmLE9BQWU7QzhDa0l2Qjs7QUF0T0gsQUF3T0UsT0F4T0ssR0F3T0gsU0FBUyxHQUFHLEtBQUssQ0FBQztFQUNsQixXQUFXLEVBQUUsR0FBRztDQUNqQjs7QUExT0gsQUE0T0UsT0E1T0ssQ0E0T0wsS0FBSyxBQUFBLE9BQU8sQ0FBQztFQUNYLFdBQVcsRUFBRSxJQUFJO0NBQ2xCOztBQTlPSCxBQWdQRSxPQWhQSyxDQWdQTCxLQUFLLEFBQUEsV0FBVyxDQUFDO0VBQ2YsYUFBYSxFQUFFLENBQUM7Q0FDakI7O0FBbFBILEFBb1BFLE9BcFBLLENBb1BMLElBQUksQ0FBQztFQUNILE9BQU8sRUFBRSxLQUFLO0VBQ2QsWUFBWSxFQUFFLEdBQUc7Q0FDbEI7O0FBRUEsQUFBRCxjQUFRLENBQUMsSUFBSSxDQUFDO0VBQ1osTUFBTSxFQUFFLEtBQUs7Q0FDZDs7QUEzUEgsQUE2UEUsT0E3UEssQ0E2UEwsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7RUFDZixTQUFTLEVBQUUsSUFBSTtDQUNoQjs7QUEvUEgsQUFpUUUsT0FqUUssQ0FpUUwsS0FBSyxDQUFDLEtBQUssQ0FBQztFQUNWLFdBQVcsRUFBRSxHQUFHO0NBQ2pCOztBQW5RSCxBQXFRRSxPQXJRSyxDQXFRTCxLQUFLLENBQUMsS0FBSyxBQUFBLFFBQVEsQ0FBQztFQUNsQixPQUFPLEVBQUUsR0FBRztFQUNaLFVBQVUsRUFBRSxHQUFHLENBQUMsS0FBSyxDOUNuS2QsT0FBZTtFOENvS3RCLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLFdBQVcsRUFBRSxLQUFLO0VBQ2xCLEtBQUssRUFBRSxHQUFHO0VBQ1YsTUFBTSxFQUFFLEdBQUc7Q0FDWjs7QUE1UUgsQUE4UUUsT0E5UUssQ0E4UUwsS0FBSyxDQUFDLElBQUksQUFBQSxRQUFRLENBQUM7RUFDakIsVUFBVSxFQUFFLEtBQUs7RUFDakIsV0FBVyxFQUFFLElBQUk7RUFDakIsT0FBTyxFQUFFLEdBQUc7RUFDWixVQUFVLEVBQUUsR0FBRyxDQUFDLEtBQUssQzlDOUtkLE9BQWU7RThDK0t0QixRQUFRLEVBQUUsUUFBUTtFQUNsQixLQUFLLEVBQUUsR0FBRztFQUNWLE1BQU0sRUFBRSxHQUFHO0NBQ1o7O0FBdFJILEFBd1JFLE9BeFJLLENBd1JMLEtBQUssQ0FBQyxLQUFLLEFBQUEsV0FBVyxDQUFDO0VBQ3JCLGFBQWEsRUFBRSxDQUFDO0NBQ2pCOztBQTFSSCxBQTRSRSxPQTVSSyxDQTRSTCxNQUFNLENBQUM7RUFDTCxPQUFPLEVBQUUsTUFBTTtFQUNmLFVBQVUsRUFBRSxNQUFNO0VBQ2xCLFNBQVMsRUFBRSxJQUFJO0VBQ2YsT0FBTyxFQUFFLEdBQUc7Q0FDYjs7QUFqU0gsQUFtU0UsT0FuU0ssQ0FtU0wsTUFBTSxBQUFBLFFBQVE7QUFuU2hCLE9BQU8sQ0FvU0wsTUFBTSxBQUFBLE9BQU8sQ0FBQztFQUNaLGNBQWMsRUFBRSxJQUFJO0VBQ3BCLE9BQU8sRUFBRSxHQUFHO0VBQ1osU0FBUyxFQUFFLElBQUk7Q0FDaEI7O0FBeFNILEFBMFNFLE9BMVNLLENBMFNMLE1BQU0sQUFBQSxRQUFRLENBQUM7RUFDYixPQUFPLEVBQUUsR0FBRztFQUNaLFdBQVcsRUFBRSxHQUFHO0NBQ2pCOztBQTdTSCxBQStTRSxPQS9TSyxDQStTTCxNQUFNLEFBQUEsT0FBTyxDQUFDO0VBQ1osT0FBTyxFQUFFLEdBQUc7RUFDWixZQUFZLEVBQUUsR0FBRztDQUNsQjs7QUFFQSxBQUFELGNBQVEsQ0FBQyxNQUFNLEFBQUEsUUFBUTtBQUN0QixjQUFPLENBQUMsTUFBTSxBQUFBLE9BQU8sQ0FBQztFQUNyQixjQUFjLEVBQUUsSUFBSTtDQUNyQjs7QUF2VEgsQUF5VEUsT0F6VEssQ0F5VEwsUUFBUSxDQUFDO0VBQ1AsT0FBTyxFQUFFLEdBQUc7Q0FDYjs7QUEzVEgsQUE2VEUsT0E3VEssQ0E2VEwsS0FBSyxDQUFDO0VBQ0osT0FBTyxFQUFFLElBQUk7Q0FDZDs7QUdqVUgsQUFBQSxNQUFNLENBQUM7RUFHTCxRQUFRLEVBQUUsUUFBUTtFQUNsQixPQUFPLEVBQUUsSUFBSTtFQUNiLFdBQVcsRUFBRSxPQUFPO0NBMkhyQjs7QUFoSUQsQUFPRSxNQVBJLEFBT0gsUUFBUSxDQUFDO0VBQ1IsV0FBVyxFQUFFLEdBQUc7RUFDaEIsTUFBTSxFQUFFLElBQUk7Q0FDYjs7QUFWSCxBQVlFLE1BWkksQ0FZSixPQUFPLENBQUM7RUFHTixJQUFJLEVBQUUsUUFBUTtFQUNkLFlBQVksRUFBRSxHQUFHO0NBQ2xCOztBQWpCSCxBQW1CRSxNQW5CSSxDQW1CSixLQUFLLENBQUM7RUFDSixJQUFJLEVBQUUsUUFBUTtFQUNkLFdBQVcsRUFBRSxJQUFJO0VBQ2pCLFNBQVMsRUFBRSxLQUFLO0VBQ2hCLFVBQVUsRUFBRSxNQUFNO0VBQ2xCLFdBQVcsRUFBRSxJQUFJO0NBQ2xCOztBQXpCSCxBQTJCRSxNQTNCSSxDQTJCSixJQUFJO0FBM0JOLE1BQU0sQ0E0QkosT0FBTyxDQUFDO0VBR04sSUFBSSxFQUFFLFFBQVE7RUFDZCxTQUFTLEVBQUUsSUFBSTtFQUNmLFdBQVcsRUFBRSxJQUFJO0VBQ2pCLFVBQVUsRUFBRSxHQUFHO0VBQ2YsS0FBSyxFaERsQ0MsT0FBd0M7Q2dEbUMvQzs7QUFwQ0gsQUF1Q0ksTUF2Q0UsQ0FzQ0osT0FBTyxDQUNMLE1BQU0sQ0FBQztFQUdMLFdBQVcsRUFBRSxHQUFHO0VBQ2hCLFVBQVUsRUFBRSxPQUFPO0VBQ25CLEtBQUssRWpES1EsSUFBSTtFaURKakIsT0FBTyxFQUFFLE9BQU87RUFDaEIsY0FBYyxFQUFFLFNBQVM7RUFDekIsU0FBUyxFQUFFLElBQUk7Q0FDaEI7O0FBaERMLEFBa0RJLE1BbERFLENBc0NKLE9BQU8sQ0FZTCxLQUFLLENBQUM7RUFDSixPQUFPLEVBQUUsS0FBSztFQUNkLFdBQVcsRUFBRSxNQUFNO0NBQ3BCOztBQXJETCxBQXVESSxNQXZERSxDQXNDSixPQUFPLENBaUJMLE9BQU8sQ0FBQztFQUNOLEtBQUssRWpEbEJDLE9BQU87RWlEbUJiLFdBQVcsRUFBRSxHQUFHO0NBQ2pCOztBQTFETCxBQTRESSxNQTVERSxDQXNDSixPQUFPLENBc0JMLE9BQU8sQUFBQSxRQUFRLENBQUM7RUFDZCxjQUFjLEVBQUUsSUFBSTtDQUNyQjs7QUE5REwsQUFpRUUsTUFqRUksQ0FpRUosTUFBTSxDQUFDO0VBQ0wsV0FBVyxFQUFFLEdBQUc7RUFDaEIsY0FBYyxFQUFFLFNBQVM7RUFDekIsS0FBSyxFakR0QkssT0FBaUI7Q2lEdUI1Qjs7QUFyRUgsQUF1RUUsTUF2RUksQ0F1RUosTUFBTSxFQXZFUixNQUFNLENBdUVJLEtBQUssQ0FBQztFQUNaLFdBQVcsRUFBRSxHQUFHO0VBQ2hCLGNBQWMsRUFBRSxTQUFTO0NBQzFCOztBQTFFSCxBQTRFRSxNQTVFSSxDQTRFSixJQUFJLENBQUM7RUFDSCxRQUFRLEVBQUUsUUFBUTtFQUNsQixLQUFLLEVBQUUsSUFBSTtFQUNYLE1BQU0sRUFBRSxHQUFHO0VBQ1gsR0FBRyxFQUFFLEdBQUc7Q0FDVDs7QUFFRCxVQUFVLENBQVYsUUFBVTtFQUNSLElBQUk7SUFDRixtQkFBbUIsRUFBRSxHQUFHOztFQUcxQixFQUFFO0lBQ0EsbUJBQW1CLEVBQUUsVUFBVTs7OztBQXpGckMsQUE2RkUsTUE3RkksQ0E2RkosSUFBSSxDQUFDLElBQUksQ0FBQztFQUNSLE9BQU8sRUFBRSxLQUFLO0VBQ2QsTUFBTSxFQUFFLEdBQUc7RUFDWCxLQUFLLEVBQUUsQ0FBQztFQUNSLFVBQVUsRUFBRSxPQUFPO0VBQ25CLFVBQVUsRUFBRSxRQUFRO0NBS3JCOztBQXZHSCxBQW9HSSxNQXBHRSxDQTZGSixJQUFJLENBQUMsSUFBSSxBQU9OLE9BQU8sQ0FBQztFQUNQLFVBQVUsRWpEakNSLE9BQWdCO0NpRGtDbkI7O0FBdEdMLEFBeUdFLE1BekdJLEFBeUdILFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0VBQ3BCLGdCQUFnQixFaERyR1Ysa0NBQTRCO0VnRHNHbEMsU0FBUyxFQUFFLDhCQUE4QjtDQUMxQzs7QUE1R0gsQUE4R0UsTUE5R0ksQ0E4R0osWUFBWSxDQUFDO0VBQ1gsSUFBSSxFQUFFLFNBQVM7RUFDZixXQUFXLEVBQUUsSUFBSTtFQUNqQixLQUFLLEVoRGhIQyxPQUF3QztFZ0RpSDlDLFNBQVMsRUFBRSxJQUFJO0VBQ2YsYUFBYSxFQUFFLElBQUk7RUFDbkIsUUFBUSxFQUFFLE1BQU07Q0FXakI7O0FBL0hILEFBc0hJLE1BdEhFLENBOEdKLFlBQVksQUFRVCxNQUFNLEFBQUEsSUFBSyxDQUFBLE9BQU8sR0F0SHZCLE1BQU0sQ0E4R0osWUFBWSxBQVNULE9BQU8sQ0FBQztFQUNQLEtBQUssRWpEcERILE9BQWdCO0NpRHFEbkI7O0FBekhMLEFBMkhJLE1BM0hFLENBOEdKLFlBQVksQUFhVCxPQUFPLENBQUM7RUFDUCxPQUFPLEVBQUUsR0FBRztFQUNaLE1BQU0sRUFBRSxPQUFPO0NBQ2hCOztBQzlITCxBQUFBLE9BQU8sQ0FBQztFQUNOLFVBQVUsRWxEbUJBLEtBQWdCO0VrRGxCMUIsU0FBUyxFQUFFLElBQUk7Q0EwQmhCOztBQTVCRCxBQUlFLE9BSkssQ0FJTCxHQUFHLENBQUM7RUFHRixNQUFNLEVBQUUsR0FBRztFQUNYLFdBQVcsRUFBRSxHQUFHO0VBQ2hCLFVBQVUsRWxEaUhDLEdBQUcsQ0FDSCxLQUFLLENBckJULE9BQWU7Q2tEM0V2Qjs7QUEzQkgsQUFXSSxPQVhHLENBSUwsR0FBRyxDQU9BLEFBQUEsUUFBQyxBQUFBLENBQVMsTUFBTSxDQUFDO0VBQ2hCLFVBQVUsRUFBRSxPQUFpQztFQUM3QyxNQUFNLEVBQUUsT0FBTztDQUNoQjs7QUFkTCxBQWdCSSxPQWhCRyxDQUlMLEdBQUcsQ0FZRCxNQUFNLENBQUM7RUFDTCxPQUFPLEVBQUUsWUFBWTtFQUNyQixLQUFLLEVBQUUsSUFBSTtFQUNYLFVBQVUsRUFBRSxNQUFNO0NBQ25COztBQXBCTCxBQXNCSSxPQXRCRyxDQUlMLEdBQUcsQ0FrQkQsSUFBSSxDQUFDO0VBR0gsV0FBVyxFQUFFLEdBQUc7Q0FDakI7O0FDMUJMLEFsQmNJLElrQmRBLENsQmNFO0VBQ0EsV0FBUSxFa0JkdUIsR0FBRztDbEJ1Qm5DOztBQVBDLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztFa0JqQjlCLEFsQmNJLElrQmRBLENsQmNFO0lBSUUsV0FBUSxFQUFFLHVDQUFxSDtHQU1sSTs7O0FBSEMsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNO0VrQnJCL0IsQWxCY0ksSWtCZEEsQ2xCY0U7SUFRRSxXQUFRLEVrQnJCMEIsSUFBSTtHbEJ1QnpDOzs7QWtCcEJMLEFBQUEsV0FBVyxDQUFDO0VBQ1YsS0FBSyxFQUFFLGdCQUFnQjtFQUN2QixRQUFRLEVBQUUsUUFBUTtFQUNsQixVQUFVLEVBQW1CLElBQUk7RUFDakMsUUFBUSxFQUFFLE1BQU07Q0E0Q2pCOztBOUNZRyxNQUFNLEVBQUcsU0FBUyxFQUFFLEtBQUssT0FBTyxXQUFXLEVBQUUsUUFBUTtFOEM1RHpELEFBQUEsV0FBVyxDQUFDO0lBT1IsT0FBTyxFQUFFLElBQUk7R0F5Q2hCOzs7QUFoREQsQUFXRSxXQVhTLEFBV1IsUUFBUSxDQUFDO0VBQ1IsU0FBUyxFQUFFLGVBQWU7Q0FDM0I7O0FBYkgsQUFlRSxXQWZTLEFBZVIsT0FBTyxDQUFDO0VBQ1AsT0FBTyxFQUFFLEVBQUU7RUFDWCxPQUFPLEVBQUUsS0FBSztFQUNkLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLEdBQUcsRUFBRSxDQUFDO0VBQ04sTUFBTSxFQUFFLENBQUM7RUFDVCxJQUFJLEVBQUUsQ0FBQztFQUNQLEtBQUssRUFBRSxDQUFDO0VBQ1IsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLEtBQUs7Q0FDN0M7O0FBeEJILEFBMEJFLFdBMUJTLENBMEJULElBQUksQ0FBQztFQUNILFFBQVEsRUFBRSxRQUFRO0VBQ2xCLEdBQUcsRUFBRSxDQUFDO0VBQ04sSUFBSSxFQUFFLENBQUM7RUFDUCxLQUFLLEVBQUUsSUFBSTtFQUNYLGFBQWEsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFrQixJQUFJO0VBQzlDLE9BQU8sRUFBRSxHQUFHO0NBQ2I7O0FBakNILEFBbUNFLFdBbkNTLENBbUNULElBQUksQUFBQSxLQUFLLENBQUM7RUFDUixHQUFHLEVBQUUsR0FBRztFQUNSLE9BQU8sRUFBRSxDQUFDO0VBQ1YsYUFBYSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsc0JBQXdCO0VBQ2pELFVBQVUsRUFBRSxJQUFJO0NBQ2pCOztBQXhDSCxBQTBDRSxXQTFDUyxDQTBDVCxNQUFNLENBQUM7RUFDTCxLQUFLLEVBQUUsSUFBSTtFQUNYLE1BQU0sRUFBRSxHQUFHO0VBQ1gsVUFBVSxFQUFtQixJQUFJO0VBQ2pDLFVBQVUsRUFBRSxTQUFTO0NBQ3RCOztBQ25ESCxBQUFBLGlCQUFpQixDQUFDO0VBQ2hCLE9BQU8sRUFBRSxJQUFJO0VBQ2IsZUFBZSxFQUFFLGFBQWE7RUFDOUIsV0FBVyxFQUFFLE9BQU87RUFDcEIsU0FBUyxFQUFFLE1BQU07Q0F5QmxCOztBQTdCRCxBQU1FLGlCQU5lLENBTWYsSUFBSSxDQUFDO0VBR0gsVUFBVSxFQUFFLE1BQU07Q0FDbkI7O0FBVkgsQUFZRSxpQkFaZSxDQVlmLE9BQU8sQ0FBQztFQUNOLFVBQVUsRUFBRSxNQUFNO0NBQ25COztBQWRILEFBZ0JFLGlCQWhCZSxDQWdCZixNQUFNLENBQUM7RUFDTCxPQUFPLEVBQUUsSUFBSTtDQVdkOztBQTVCSCxBQW1CSSxpQkFuQmEsQ0FnQmYsTUFBTSxDQUdKLElBQUksQ0FBQztFQUNILElBQUksRUFBRSxPQUFPO0NBT2Q7O0FBM0JMLEFBc0JNLGlCQXRCVyxDQWdCZixNQUFNLENBR0osSUFBSSxBQUdELFlBQVksRUF0Qm5CLGlCQUFpQixDQWdCZixNQUFNLENBR0osSUFBSSxBQUlELFdBQVcsQ0FBQztFQUNYLElBQUksRUFBRSxPQUFPO0VBQ2IsU0FBUyxFQUFFLElBQUk7Q0FDaEI7O0FDMUJQLEFBQUEsaUJBQWlCLENBQUM7RUFHaEIsVUFBVSxFQUFFLHdCQUF5QjtFQUNyQyxPQUFPLEU1QkNxQixHQUFHO0M0QmtDaEM7O0FBdkNELEFBTUUsaUJBTmUsQ0FNZixNQUFNLENBQUM7RUFDTCxNQUFNLEVBQUUsT0FBTztFQUNmLGFBQWEsRUFBRSxHQUFHO0VBQ2xCLGdCQUFnQixFQUFFLE9BQU87RUFDekIsVUFBVSxFQUFFLDBCQUEwQjtFeEJrQnhDLFVBQVUsRUFEYSxHQUFHLENGUk4sS0FBSztDMEJOeEI7O0FBYkgsQUFlRSxpQkFmZSxDQWVmLEtBQUssQ0FBQztFQUNKLGNBQWMsRUFBRSxJQUFJO0VBQ3BCLE9BQU8sRUFBRSxDQUFDO0VBRVYsdUJBQXVCO0NBQ3hCOztBQUVELEFBQUEsS0FBSyxDQXRCUCxpQkFBaUIsQ0FzQlAsS0FBSyxDQUFDO0VBQ1osS0FBSyxFQUFFLElBQUk7RUFDWCxNQUFNLEVBQUUsSUFBSTtFeEJJZCxVQUFVLEVBRGEsR0FBRyxDRlJOLEtBQUs7RTBCU3ZCLFNBQVMsRUFBRSxVQUFVO0NBQ3RCOztBQTdCSCxBQStCRSxpQkEvQmUsQ0ErQmYsTUFBTSxBQUFBLE1BQU0sQ0FBQztFQUNYLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDckRzQnZCLE9BQU87RXFEckJkLGFBQWEsRUFBRSxFQUFFO0NBQ2xCOztBQUVELEFBQUEsS0FBSyxDQXBDUCxpQkFBaUIsQ0FvQ1AsTUFBTSxBQUFBLE1BQU0sQ0FBQyxLQUFLLENBQUM7RUFDekIsU0FBUyxFQUFFLElBQUk7Q0FDaEI7O0FDdENILEFBQ0Usb0JBRGtCLENBQUMsUUFBUSxBQUMxQixRQUFRLENBQUMsWUFBWSxBQUFBLFFBQVEsQ0FBQztFQUc3QixVQUFVLEVBQUUsd0JBQXFCO0VBQ2pDLEtBQUssRUFBRSxJQUFJO0VBQ1gsTUFBTSxFQUFFLEtBQUs7RUFDYixPQUFPLEVBQUUsRUFBRTtFQUNYLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLElBQUksRUFBRSxDQUFDO0VBQ1AsT0FBTyxFQUFFLENBQUM7RUFDVixjQUFjLEVBQUUsSUFBSTtDQUNyQjs7QUFaSCxBQWNFLG9CQWRrQixDQUFDLFFBQVEsQUFjMUIsa0JBQWtCLENBQUMsWUFBWSxBQUFBLFFBQVEsQ0FBQztFQUN2QyxHQUFHLEVBQUUsQ0FBQztDQUNQOztBQWhCSCxBQWtCRSxvQkFsQmtCLENBQUMsUUFBUSxBQWtCMUIsa0JBQWtCLENBQUMsWUFBWSxBQUFBLFFBQVEsQ0FBQztFQUN2QyxNQUFNLEVBQUUsQ0FBQztDQUNWOztBQUdILEFBQUEsc0JBQXNCLENBQUMsWUFBWSxBQUFBLFFBQVEsQ0FBQztFQUMxQyxLQUFLLEVBQUUsR0FBRztFQUNWLE1BQU0sRUFBRSxHQUFHO0VBQ1gsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQjtFQUN2QyxVQUFVLEVBQUUsd0JBQXFCO0VBQ2pDLE9BQU8sRUFBRSxFQUFFO0VBQ1gsUUFBUSxFQUFFLFFBQVE7RUFDbEIsR0FBRyxFQUFFLEtBQUs7RUFDVixJQUFJLEVBQUUsS0FBSztFQUNYLE9BQU8sRUFBRSxDQUFDO0VBQ1YsY0FBYyxFQUFFLElBQUk7Q0FDckI7O0FWbENELEFBQUEsV0FBVyxDQUFDO0VBQ1YsUUFBUSxFQUFFLFFBQVE7RUFDbEIsV0FBVyxFQUFFLFFBQVE7Q0FDdEI7O0FBRUQsQUFBQSxXQUFXLEdBQUcsS0FBSyxDQUFDO0VBQ2xCLE9BQU8sRUFBRSxLQUFLO0VBQ2QsUUFBUSxFQUFFLFFBQVE7RUFDbEIsTUFBTSxFQUFFLE9BQU87RUFDZixPQUFPLEVBQUUsSUFBSTtFQUNiLG1CQUFtQixFQUFFLElBQUk7RUFDekIsZ0JBQWdCLEVBQUUsSUFBSTtDQUN2Qjs7QUFQRCxBQUFBLFdBQVcsR0FBRyxLQUFLLENBU0M7RUFDbEIsT0FBTyxFQUFFLEdBQUc7RUFDWixLQUFLLEVBQUUsSUFBSTtFQUNYLE1BQU0sRUFBRSxJQUFJO0VBQ1osZ0JBQWdCLEU1Q29GUCxPQUFlO0U0Q25GeEIsYUFBYSxFQUFFLElBQUk7Q0FDcEI7O0FBRUQsQUFBQSxXQUFXLEdBQUcsS0FBSyxBQUFBLFFBQVE7QUFDM0IsV0FBVyxHQUFHLEtBQUssQUFBQSxPQUFPLENBQUM7RUFDekIsT0FBTyxFQUFFLEtBQUs7RUFDZCxRQUFRLEVBQUUsUUFBUTtFQUNsQixHQUFHLEVBQUUsR0FBRztFQUNSLElBQUksRUFBRSxHQUFHO0VBQ1QsTUFBTSxFQUFFLEdBQUc7RUFDWCxPQUFPLEVBQUUsRUFBRTtDQUNaOztBQUVELEFBQUEsV0FBVyxHQUFHLEtBQUssQUFBQSxRQUFRLENBQUM7RUFDMUIsS0FBSyxFQUFFLEdBQUc7RUFDVixnQkFBZ0IsRTVDa0NWLE9BQWdCO0U0Q2pDdEIsYUFBYSxFQUFFLElBQUk7Q0FDcEI7O0FBTUQsQUFBQSxtQkFBbUIsR0FBRyxLQUFLLEFBQUEsUUFBUSxDQUFDO0VBQ2xDLGdCQUFnQixFQUFFLE9BQU87Q0FDMUI7O0FBRUQsQUFBQSxXQUFXLEFBQUEsTUFBTSxHQUFHLEtBQUssQUFBQSxRQUFRLENBQUM7RWZsQmhDLFVBQVUsRWVxQlUsVUFBVSxDakI5QlYsS0FBSztDaUIrQjFCOztBQUVELEFBQUEsV0FBVyxHQUFHLEtBQUssQUFBQSxPQUFPLENBQUM7RUFHekIsS0FBSyxFQUFFLElBQUk7RUFDWCxhQUFhLEVBQUUsSUFBSTtFQUNuQixVQUFVLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsa0JBQWtCO0NBQzNDOztBQUVELEFBQUEsV0FBVyxBQUFBLE1BQU0sR0FBRyxLQUFLLEFBQUEsT0FBTyxDQUFDO0VmaEMvQixVQUFVLEVlbUNVLE1BQU0sQ2pCNUNOLEtBQUs7Q2lCNkMxQjs7QUFFRCxBQUFBLFdBQVcsQUFBQSxRQUFRLEdBQUcsS0FBSyxBQUFBLFFBQVEsQ0FBQztFQUNsQyxnQkFBZ0IsRTVDckJKLE9BQWlCO0M0Q3NCOUI7O0FBRUQsQUFBQSxXQUFXLEFBQUEsUUFBUSxHQUFHLEtBQUssQUFBQSxPQUFPLENBQUM7RUFDakMsV0FBVyxFQUFFLElBQUk7Q0FDbEI7O0FZeEVELEFBQUEsTUFBTSxDQUFDO0VBQ0wsTUFBTSxFQUFFLFdBQVc7Q0EyQ3BCOztBQXpDRSxBQUFELGVBQVUsQ0FBQztFQUdULE9BQU8sRUFBRSxPQUFPO0VBQ2hCLFVBQVUsRXhEdUNBLE9BQWlCO0V3RHRDM0IsS0FBSyxFeER5Q1UsSUFBSTtDd0Q1QnBCOztBQWxCQSxBQU9DLGVBUFEsQUFPUCxRQUFRLENBQUM7RUFHUixPQUFPLEVBQUUsR0FBRztFQUNaLFlBQVksRUFBRSxHQUFHO0VBQ2pCLFNBQVMsRUFBRSxLQUFLO0NBQ2pCOztBQWJGLEFBZUMsZUFmUSxDQWVSLENBQUMsQ0FBQztFQUNBLEtBQUssRXhEOEJRLElBQUk7Q3dEN0JsQjs7QUFHRixBQUFELGNBQVMsQ0FBQyxlQUFlLENBQUM7RUFDeEIsVUFBVSxFeERzQ0wsT0FBaUI7RXdEckN0QixLQUFLLEV4RHNDSyxJQUFJO0N3RC9CZjs7QUFUQSxBQUlDLGNBSk8sQ0FBQyxlQUFlLEFBSXRCLFFBQVEsQ0FBQztFQUdSLE9BQU8sRUFBRSxJQUFJO0NBQ2Q7O0FBR0YsQUFBRCxjQUFTLENBQUMsZUFBZSxDQUFDO0VBQ3hCLFVBQVUsRXhEaUNOLE9BQWdCO0V3RGhDcEIsS0FBSyxFeERrQ00sSUFBSTtDd0QzQmhCOztBQVRBLEFBSUMsY0FKTyxDQUFDLGVBQWUsQUFJdEIsUUFBUSxDQUFDO0VBR1IsT0FBTyxFQUFFLEdBQUc7Q0FDYjs7QUR2Q0wsQUFBQSxXQUFXLENBQUM7RUFDVixhQUFhLEVBQUUsSUFBSTtDQUNwQjs7QUFFRCxBQUFBLFdBQVcsQ0FBQztFQUdWLFdBQVcsRUFBRSxPQUFPO0NBQ3JCOztBQUVELEFBQUEsVUFBVSxDQUFDO0VBQ1QsSUFBSSxFQUFFLE9BQU87RUFDYixTQUFTLEVBQUUsS0FBSztDQUNqQjs7QUFFRCxBQUFBLFdBQVcsQ0FBQztFQUNWLElBQUksRUFBRSxPQUFPO0NBQ2Q7O0FsRDRDRyxNQUFNLEVBQUcsU0FBUyxFQUFFLEtBQUs7RWtEekMzQixBQUFBLFVBQVU7RUFDVixXQUFXLENBQUM7SUFDVixTQUFTLEVBQUUsQ0FBQztHQUNiOzs7QUFJSCxBQUFBLFdBQVcsQ0FBQztFQUNWLFdBQVcsRUFBRSxJQUFJO0VBQ2pCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGFBQWEsRUFBRSxLQUFLO0NBQ3JCOztBQUVELEFBQUEsYUFBYSxDQUFDO0VBQ1osT0FBTyxFQUFFLEtBQUs7RUFDZCxLQUFLLEVBQUUsSUFBSTtFQUNYLE1BQU0sRUFBRSxpQkFBaUI7RUFDekIsZUFBZSxFQUFFLFdBQVc7Q0FDN0I7O0FBRUQsQUFBQSxRQUFRLEFBQUEsYUFBYSxDQUFDO0VBQ3BCLE1BQU0sRUFBRSxJQUFJO0NBQ2I7O0FBRUQsQUFBQSxhQUFhLEFBQUEsUUFBUTtBQUNyQixXQUFXLEFBQUEsV0FBVyxDQUFDLGFBQWEsQ0FBQztFQUNuQyxZQUFZLEV2RG1CTixPQUFnQjtDdURsQnZCOztBQUVELEFBQUEsTUFBTSxDQUFDLE1BQU07QUFDYixVQUFVLENBQUM7RUFDVCxTQUFTLEVBQUUsR0FBRztFQUNkLFVBQVUsRUFBRSxNQUFNO0NBQ25COztBQUVELEFBQUEsTUFBTSxDQUFDLE1BQU0sQ0FBQztFQUNaLEtBQUssRXZEU0MsT0FBZ0I7Q3VEUnZCOztBQUVELEFBQUEsVUFBVSxDQUFDO0VBQ1QsS0FBSyxFdEQ5REcsT0FBd0M7Q3NEK0RqRDs7QUFFRCxBQUFBLFdBQVcsQ0FBQyxHQUFHLENBQUM7RUFDZCxPQUFPLEVBQUUsSUFBSTtDQUNkOztBQUVELEFBQUEsaUJBQWlCLENBQUM7RUFDaEIsWUFBWSxFQUFFLEtBQUs7Q0FDcEI7O0FBRUQsQUFBQSxXQUFXLENBQUMsV0FBVyxDQUFDO0VBQ3RCLGFBQWEsRUFBRSxDQUFDO0VBQ2hCLE1BQU0sRUFBRSxPQUFPO0NBQ2hCOztBQUVELEFBQUEsYUFBYSxDQUFDO0VBR1osTUFBTSxFQUFFLFFBQVE7RUFDaEIsV0FBVyxFQUFFLE1BQU07RUFDbkIsVUFBVSxFdkRzQ0csR0FBRyxDQUNILEtBQUssQ0FyQlQsT0FBZTtDdURqQnpCOztBQUVELEFBQUEsYUFBYSxBQUFBLE9BQU8sQ0FBQztFQUNuQixlQUFlLEVBQUUsUUFBUTtDQUMxQjs7QUFFRCxBQUFBLE1BQU0sQ0FBQyxFQUFFLENBQUM7RUFDUixVQUFVLEVBQUUsSUFBSTtFQUNoQixhQUFhLEVBQUUsSUFBSTtFQUNuQixNQUFNLEVBQUUsQ0FBQztFQUNULFVBQVUsRXZEMkJHLEdBQUcsQ0FDSCxLQUFLLENBckJULE9BQWU7Q3VETnpCOztBQUVELGFBQWE7QUFDYixBQUFBLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQztFQUN4QixLQUFLLEVBQUUsSUFBSTtDQUNaOztBRW5HRCxBQUFBLFdBQVcsQ0FBQztFQUdWLGVBQWUsRUFBRSxNQUFNO0VBQ3ZCLFdBQVcsRUFBRSxRQUFRO0VBQ3JCLGFBQWEsRUFBRSxHQUFHLENBQUMsS0FBSyxDekQrRmYsT0FBZTtDeUR4Q3pCOztBcERFRyxNQUFNLEVBQUcsU0FBUyxFQUFFLEtBQUs7RW9EOUQ3QixBQUFBLFdBQVcsQ0FBQztJQVFSLFNBQVMsRUFBRSxJQUFJO0dBb0RsQjs7O0FBNURELEFBWUUsV0FaUyxDQVlULElBQUksQ0FBQztFQUdILElBQUksRUFBRSxRQUFRO0VBQ2QsVUFBVSxFQUFFLE1BQU07RUFDbEIsT0FBTyxFQUFFLFNBQVM7RUFDbEIsTUFBTSxFQUFFLE9BQU87RUFDZixRQUFRLEVBQUUsUUFBUTtFNUJPcEIsVUFBVSxFNEJMWSxLQUFLLENBQUUsS0FBSztFQUVoQyxTQUFTLEVBQUUsR0FBRztFQUNkLGNBQWMsRUFBRSxLQUFLO0NBK0J0Qjs7QXBET0MsTUFBTSxFQUFHLFNBQVMsRUFBRSxLQUFLO0VvRDlEN0IsQUFZRSxXQVpTLENBWVQsSUFBSSxDQUFDO0lBZUQsY0FBYyxFQUFFLE9BQU87R0E0QjFCOzs7QUF2REgsQUErQkksV0EvQk8sQ0FZVCxJQUFJLEFBbUJELE9BQU8sQ0FBQztFQUNQLE9BQU8sRUFBRSxFQUFFO0VBQ1gsVUFBVSxFQUFFLE9BQU87RUFDbkIsTUFBTSxFQUFFLEdBQUc7RUFDWCxRQUFRLEVBQUUsUUFBUTtFQUNsQixLQUFLLEVBQUUsR0FBRztFQUNWLElBQUksRUFBRSxFQUFFO0VBQ1IsTUFBTSxFQUFFLElBQUk7RTVCWmhCLFVBQVUsRTRCY2MsR0FBRyxDQUFFLEtBQUs7RUFFOUIsU0FBUyxFQUFFLFFBQVE7Q0FDcEI7O0FBM0NMLEFBK0NNLFdBL0NLLENBWVQsSUFBSSxBQWlDRCxPQUFPLEFBRUwsT0FBTyxFQS9DZCxXQUFXLENBWVQsSUFBSSxBQWtDRCxNQUFNLEFBQ0osT0FBTyxDQUFDO0VBQ1AsU0FBUyxFQUFFLFFBQVE7Q0FDcEI7O0FBakRQLEFBb0RJLFdBcERPLENBWVQsSUFBSSxBQXdDRCxPQUFPLENBQUM7RUFDUCxLQUFLLEVBQUUsT0FBTztDQUNmOztBQXRETCxBQXlERSxXQXpEUyxDQXlEVCxPQUFPLENBQUM7RUFDTixXQUFXLEVBQUUsSUFBSTtDQUNsQjs7QUM3REgsQUFBQSxNQUFNLENBQUM7RUFDTCxLQUFLLEVBQUUsSUFBSTtFQUNYLGFBQWEsRTFEd0hBLEdBQUcsQ0FDSCxLQUFLLENBckJULE9BQWU7QzBEN0N6Qjs7QUF6REQsQUFPSSxNQVBFLENBSUosS0FBSyxDQUdILEVBQUUsQ0FBQztFQUNELFVBQVUsRTFEa0hELEdBQUcsQ0FDSCxLQUFLLENBckJULE9BQWU7RTBEN0ZwQixhQUFhLEUxRGlISixHQUFHLENBQ0gsS0FBSyxDQXJCVCxPQUFlO0UwRDVGcEIsT0FBTyxFQUFFLFdBQVc7Q0FDckI7O0FBWEwsQUFhSSxNQWJFLENBSUosS0FBSyxDQVNILEVBQUUsQUFBQSxNQUFNLENBQUM7RUFDUCxTQUFTLEVBQUUsTUFBTTtDQUNsQjs7QUFmTCxBQWtCRSxNQWxCSSxDQWtCSixFQUFFLENBQUM7RUFDRCxPQUFPLEVBQUUsSUFBSTtDQU1kOztBQXpCSCxBQXFCSSxNQXJCRSxDQWtCSixFQUFFLENBR0EsTUFBTSxDQUFDO0VBQ0wsV0FBVyxFQUFFLFNBQVM7RUFDdEIsU0FBUyxFQUFFLEtBQUs7Q0FDakI7O0FBeEJMLEFBMkJFLE1BM0JJLENBMkJKLEtBQUssQ0FBQyxFQUFFLEFBQUEsVUFBVyxDQUFBLElBQUksRUFBRTtFQUN2QixVQUFVLEUxREpELE9BQTRCO0MwREt0Qzs7QUE3QkgsQUErQkUsTUEvQkksQ0ErQkosRUFBRSxBQUFBLFlBQVk7QUEvQmhCLE1BQU0sQ0FnQ0osRUFBRSxBQUFBLFlBQVksQ0FBQztFQUNiLFlBQVksRUFBRSxNQUFNO0NBQ3JCOztBQUVBLEFBQ0MsVUFERyxDQUNILEVBQUUsQUFBQSxZQUFZO0FBRGYsVUFBSSxDQUVILEVBQUUsQUFBQSxZQUFZLENBQUM7RUFDYixZQUFZLEVBQUUsa0JBQWtCO0NBQ2pDOztBQUpGLEFBTUMsVUFORyxDQU1ILEVBQUUsQUFBQSxXQUFXO0FBTmQsVUFBSSxDQU9ILEVBQUUsQUFBQSxXQUFXLENBQUM7RUFDWixhQUFhLEVBQUUsa0JBQWtCO0NBQ2xDOztBQUdGLEFBQ0MsYUFETSxDQUNOLEtBQUssQ0FBQyxFQUFFLEFBQUEsVUFBVyxDQUFBLEdBQUcsRUFBRTtFQUN0QixVQUFVLEUxRDFCSCxPQUE0QjtDMEQyQnBDOztBQUhGLEFBS0MsYUFMTSxDQUtOLEtBQUssQ0FBQyxFQUFFLEFBQUEsVUFBVyxDQTFCRixJQUFJLEVBMEJJO0VBQ3ZCLFVBQVUsRUFBRSxJQUFJO0NBQ2pCOztBQ3ZETCxBQUFBLGtCQUFrQixDQUFDO0VBQ2pCLFVBQVUsRUFBRSxJQUFJO0VBQ2hCLFVBQVUsRUFBRSxJQUFJO0NBQ2pCOztBQUVELEFBQUEsaUJBQWlCLENBQUM7RUFHaEIsTUFBTSxFQUFFLEtBQUs7RUFDYixLQUFLLEUzRHdDWSxJQUFJLEMyRHhDSSxVQUFVO0VBQ25DLFVBQVUsRUFBRSxPQUFrQztFOUJrQjlDLFVBQVUsRUFEYSxHQUFHLENGUk4sS0FBSztDZ0NHMUI7O0FBakJELEFBU0UsaUJBVGUsQUFTZCxRQUFRLENBQUM7RUFDUixTQUFTLEVBQUUsS0FBSztFQUNoQixXQUFXLEVBQUUsSUFBSTtDQUNsQjs7QUFaSCxBQWNFLGlCQWRlLEFBY2QsTUFBTSxDQUFDO0VBQ04sVUFBVSxFQUFFLE9BQWtDO0NBQy9DOztBdEJyQkgsQUFBQSxJQUFJLENBQUMsbUJBQW1CO0FBQ3hCLElBQUksQ0FBQywwQkFBMEIsQ0FBQztFQUM5QixLQUFLLEVBQUUsS0FBSztFQUNaLFVBQVUsRXJDaUJBLEtBQWdCO0NxQ2hCM0I7O0FBRUQsQUFBQSxJQUFJLENBQUMseUJBQXlCLENBQUM7RUFDN0IsVUFBVSxFckNGRixPQUEwQjtDcUNHbkM7O0FBRUQsQUFBQSxJQUFJLENBQUMseUJBQXlCLEFBQUEsTUFBTTtBQUNwQyxJQUFJLENBQUMseUJBQXlCLEFBQUEsT0FBTyxDQUFDO0VBQ3BDLFVBQVUsRXBDWEYsT0FBd0M7Q29DWWpEOztBd0JaRSxBQUFELFlBQU8sQ0FBQztFQUNOLElBQUksRUFBRSxRQUFRO0VBQ2QsT0FBTyxFQUFFLElBQUk7Q0FDZDs7QUFFQSxBQUFELFdBQU0sQ0FBQztFQUdMLElBQUksRUFBRSxRQUFRO0VBQ2QsVUFBVSxFQUFFLE1BQU07RUFDbEIsT0FBTyxFQUFFLFNBQVM7RUFHbEIsTUFBTSxFQUFFLE9BQU87RUFDZixLQUFLLEU1RGRDLE9BQXdDO0U0QjJCaEQsVUFBVSxFQURhLEdBQUcsQ0ZSTixLQUFLO0NrQzJCeEI7O0FBeENBLEFBYUMsV0FiSSxBQWFILE1BQU0sQ0FBQztFQUNOLFVBQVUsRUFBRSxPQUE4QjtDQUMzQzs7QUFFQSxBQUFELGtCQUFRLENBQUM7RUFDUCxLQUFLLEU3REtGLE9BQWU7RTZESmxCLFVBQVUsRTdETEosS0FBZ0IsQzZES0EsVUFBVTtDQUNqQzs7QUFwQkYsQUFzQkMsV0F0QkksQ0FzQkosS0FBSyxDQUFDO0VBQ0osTUFBTSxFQUFFLE9BQU87RUFDZixPQUFPLEVBQUUsSUFBSTtDQUdkOztBQUVBLEFBQUQsa0JBQVEsQ0FBQyxLQUFLLENBQUM7RUFDYixPQUFPLEVBQUUsS0FBSztDQUNmOztBQS9CRixBQXFDQyxXQXJDSSxBQXFDSCxXQUFXLENBQUM7RUFDWCxZQUFZLEVBQUUsSUFBSTtDQUNuQjs7QUFHRixBQUFELGVBQVUsQ0FBQyxXQUFXLEFBQUEsV0FBVyxDQUFDO0VBQ2hDLE9BQU8sRUFBRSxJQUFJO0VBQ2IsZUFBZSxFQUFFLGFBQWE7RUFDOUIsV0FBVyxFQUFFLE1BQU07Q0FDcEI7O0FDcERILEFBQUEsY0FBYyxDQUFDO0VBR2IsU0FBUyxFQUFFLElBQUk7RUFJZixNQUFNLEVBQUUsSUFBSTtFQUNaLFFBQVEsRUFBRSxNQUFNO0NBQ2pCOztBQ1JFLEFBQUQsZ0JBQVcsQ0FBQztFQUdWLElBQUksRUFBRSxRQUFRO0VBQ2QsVUFBVSxFQUFFLElBQUk7RUFPaEIsVUFBVSxFQUFFLElBQUk7RUFDaEIsVUFBVSxFQUFFLE1BQU07RUFDbEIsTUFBTSxFQUFFLE9BQU87RUFDZixTQUFTLEVBQUUsSUFBSTtDQTREaEI7O0ExRFhDLE1BQU0sRUFBRyxTQUFTLEVBQUUsTUFBTTtFMEQvRDNCLEFBQUQsZ0JBQVcsQ0FBQztJQU9SLFVBQVUsRUFBRSxJQUFJO0dBbUVuQjs7O0FBMUVBLEFBZ0JDLGdCQWhCUyxDQWdCVCxFQUFFLENBQUM7RUFDRCxRQUFRLEVBQUUsUUFBUTtFQUNsQixPQUFPLEVBQUUsZ0JBQWdCO0VBQ3pCLFdBQVcsRUFBRSxLQUFLO0VBQ2xCLFVBQVUsRUFBRSxNQUFNO0VBQ2xCLFdBQVcsRUFBRSxJQUFJO0NBQ2xCOztBQXRCRixBQXdCQyxnQkF4QlMsQ0F3QlQsUUFBUSxDQUFDO0VBQ1AsT0FBTyxFQUFFLEdBQUc7Q0FDYjs7QUExQkYsQUE0QkMsZ0JBNUJTLENBNEJULE9BQU8sQ0FBQztFQUNOLE9BQU8sRUFBRSxLQUFLO0VBQ2QsT0FBTyxFQUFFLEdBQUc7RUFDWixVQUFVLEVBQUUsTUFBTTtFQUNsQixTQUFTLEVBQUUsSUFBSTtFQUNmLFdBQVcsRUFBRSxDQUFDO0VBQ2QsVUFBVSxFQUFFLE1BQU07Q0FDbkI7O0FBbkNGLEFBcUNDLGdCQXJDUyxDQXFDVCxNQUFNO0FBckNQLGdCQUFVLENBc0NULFVBQVUsQ0FBQztFQUNULFdBQVcsRUFBRSxJQUFJO0VBQ2pCLE9BQU8sRUFBRSxDQUFDO0VBQ1YsS0FBSyxFOUR6Q0QsT0FBd0M7RThEMEM1QyxjQUFjLEVBQUUsSUFBSTtFQUNwQixZQUFZLEVBQUUsSUFBSTtDQUNuQjs7QUE1Q0YsQUE4Q0MsZ0JBOUNTLENBOENULE9BQU8sQ0FBQztFQUNOLFlBQVksRUFBRSxHQUFHO0NBQ2xCOztBQWhERixBQXNEQyxnQkF0RFMsQ0FzRFQsQ0FBQyxDQUFDO0VBQ0EsT0FBTyxFQUFFLElBQUk7RUFDYixRQUFRLEVBQUUsUUFBUTtFQUNsQixHQUFHLEVBQUUsR0FBRztFQUNSLEtBQUssRUFBRSxDQUFDO0VBQ1IsTUFBTSxFQUFFLE9BQU87RUFDZixZQUFZLEVBQUUsR0FBRztFQUNqQixPQUFPLEVBQUUsT0FBTztFQUNoQixPQUFPLEVBQUUsR0FBRztFQUNaLEtBQUssRS9EVkEsT0FBTztDK0RlYjs7QUFwRUYsQUFpRUcsZ0JBakVPLENBc0RULENBQUMsQUFXRSxNQUFNLENBQUM7RUFDTixPQUFPLEVBQUUsQ0FBQztDQUNYOztBQW5FSixBQXNFQyxnQkF0RVMsQ0FzRVQsRUFBRSxBQUFBLE1BQU0sQ0FBQyxDQUFDLENBQUM7RUFDVCxPQUFPLEVBQUUsS0FBSztFQUNkLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQy9EckRkLEtBQWdCLEUrRHFEVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQy9EckRqQyxLQUFnQixFK0RxRDZCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDL0RyRHJELEtBQWdCO0MrRHNEdkI7O0FBR0YsQUFBRCxXQUFNLENBQUM7RUFDTCxJQUFJLEVBQUUsUUFBUTtFQUNkLE1BQU0sRUFBRSxDQUFDO0VBQ1QsVUFBVSxFL0QwQ0MsR0FBRyxDQUNILEtBQUssQ0FyQlQsT0FBZTtFK0RyQnRCLGFBQWEsRUFBRSxDQUFDO0VBQ2hCLE9BQU8sRUFBRSxnQkFBZ0I7Q0FPMUI7O0FBWkEsQUFPQyxXQVBJLEFBT0gsUUFBUSxDQUFDO0VBQ1IsS0FBSyxFL0R2Q0csT0FBaUI7RStEd0N6QixXQUFXLEVBQUUsSUFBSTtFQUNqQixVQUFVLEVBQUUsTUFBTTtDQUNuQjs7QUN4RkwsVUFBVSxDQUFWLGdCQUFVO0VBQ1IsR0FBRztJQUNELFVBQVUsRUFBRSxJQUFJOztFQUdsQixHQUFHO0lBQ0QsVUFBVSxFQUFFLE9BQWlDOztFQUcvQyxHQUFHO0lBQ0QsVUFBVSxFQUFFLE9BQStCOztFQUc3QyxHQUFHO0lBQ0QsVUFBVSxFQUFFLElBQUk7Ozs7QUFJcEIsQUFBQSxTQUFTLENBQUM7RUFDUixJQUFJLEVBQUUsUUFBUTtFQUNkLFNBQVMsRUFBRSwwQ0FBMEM7RUFDckQsYUFBYSxFQUFFLFNBQVM7Q0FpQ3pCOztBQS9CRSxBQUFELGNBQU0sQ0FBQztFQUNMLFNBQVMsRUFBRSxJQUFJO0VBQ2YsT0FBTyxFQUFFLEVBQUU7Q0FLWjs7QUFQQSxBQUlDLGNBSkksQUFJSCxNQUFNLENBQUM7RUFDTixPQUFPLEVBQUUsQ0FBQztDQUNYOztBQUdGLEFBQUQsYUFBSyxDQUFDO0VBQ0osU0FBUyxFQUFFLElBQUk7Q0FDaEI7O0FBRUEsQUFBRCxZQUFJLENBQUM7RUFDSCxVQUFVLEVoRVNBLE9BQWlCO0VnRVIzQixLQUFLLEVoRVdVLElBQUk7RWdFVm5CLFNBQVMsRUFBRSxJQUFJO0NBTWhCOztBQVRBLEFBS0MsWUFMRSxBQUtELE1BQU0sQ0FBQztFQUNOLFVBQVUsRWhFMEJSLE9BQWdCLENnRTFCQyxVQUFVO0VBQzdCLEtBQUssRWhFMkJJLElBQUksQ2dFM0JNLFVBQVU7Q0FDOUI7O0FBMUJMLEFBNkJFLFNBN0JPLEFBNkJOLE9BQU8sQ0FBQztFQUNQLEdBQUcsRUFBRSxHQUFHO0VBQ1IsSUFBSSxFQUFFLENBQUM7RUFDUCxLQUFLLEVBQUUsSUFBSTtFQUNYLFVBQVUsRUFBRSxJQUFJO0VBQ2hCLFVBQVUsRUFBRSxJQUFJO0NBQ2pCOztBSjlDSCxBQUFBLE1BQU0sQ0FBQztFQUdMLFNBQVMsRUFBRSxJQUFJO0VBQ2YsZUFBZSxFQUFFLE9BQU87RUFvQnhCLFVBQVUsRUFBRSxJQUFJO0NBQ2pCOztBQW5CRSxBQUFELGVBQVUsQ0FBQztFQUdULFVBQVUsRTVESUYsS0FBZ0I7RTRESHhCLElBQUksRUFBRSxRQUFRO0VBQ2QsUUFBUSxFQUFFLE1BQU07Q0FXakI7O0FBaEJBLEFBT0MsZUFQUSxBQU9QLEtBQUssQ0FBQyxRQUFRLENBQUM7RUFDZCxTQUFTLEVBQUUsSUFBSTtFQUNmLFNBQVMsRUFBRSxDQUFDO0VBQ1osTUFBTSxFQUFFLElBQUk7RUFDWixnQkFBZ0IsRUFBRSxXQUFXO0VBQzdCLFdBQVcsRUFBRSxLQUFLO0VBQ2xCLE9BQU8sRUFBRSxJQUFJO0VBQ2IsTUFBTSxFQUFFLElBQUk7Q0FDYjs7QUs1QkwsQUFBQSxPQUFPLENBQUM7RUFHTixPQUFPLEVBQUUsSUFBSTtFQUNiLEtBQUssRUFBRSxLQUFLO0NBc0ViOztBNURWRyxNQUFNLEVBQUcsU0FBUyxFQUFFLEtBQUssSUFBSyxXQUFXLEVBQUUsU0FBUztFNERoRXhELEFBQUEsT0FBTyxDQUFDO0lBT0osS0FBSyxFQUFFLElBQUk7SUFDWCxVQUFVLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsS0FBSztJQUM5QyxVQUFVLEVBQUUsSUFBSTtHQWlFbkI7OztBQTdERSxBQUFELFVBQUksQ0FBQztFQUNILElBQUksRUFBRSxPQUFPO0VBQ2IsU0FBUyxFQUFFLE1BQU07Q0FDbEI7O0FBaEJILEFBc0JFLE9BdEJLLENBc0JMLEtBQUssQ0FBQztFQUNKLE9BQU8sRUFBRSxLQUFLO0VBQ2QsS0FBSyxFQUFFLGVBQWU7RUFDdEIsTUFBTSxFQUFFLGVBQWU7RXBDR3pCLFVBQVUsRUFEYSxHQUFHLENGUk4sS0FBSztDc0NtQ3hCOztBQXRESCxBQTZCSSxPQTdCRyxDQXNCTCxLQUFLLEFBT0YsT0FBTyxDQUFDO0VBR1AsT0FBTyxFQUFFLGFBQWE7RUFDdEIsTUFBTSxFQUFFLENBQUM7RUFDVCxLQUFLLEVBQUUsQ0FBQztFQUNSLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLFdBQVcsRUFBRSxJQUFJO0VBQ2pCLE9BQU8sRUFBRSxRQUFRO0VBQ2pCLFdBQVcsRUFBRSxJQUFJO0VBQ2pCLFNBQVMsRUFBRSxLQUFLO0NBQ2pCOztBQXhDTCxBQTBDSSxPQTFDRyxDQXNCTCxLQUFLLENBb0JGLEFBQUEsT0FBQyxDQUFRLEdBQUcsQUFBWCxFQUFhO0VBQ2IsTUFBTSxFQUFFLElBQUk7RUFDWixPQUFPLEVBQUUsR0FBRztDQUtiOztBQWpETCxBQThDTSxPQTlDQyxDQXNCTCxLQUFLLENBb0JGLEFBQUEsT0FBQyxDQUFRLEdBQUcsQUFBWCxDQUlDLE9BQU8sQ0FBQztFQUNQLE9BQU8sRUFBRSxJQUFJO0NBQ2Q7O0FBaERQLEFBbURJLE9BbkRHLENBc0JMLEtBQUssQUE2QkYsUUFBUSxDQUFDO0VBQ1IsZ0JBQWdCLEVBQUUsSUFBSTtDQUN2Qjs7QUFyREwsQUF5REksT0F6REcsQUF3REosT0FBTyxDQUNOLEtBQUssQ0FBQztFQUNKLE1BQU0sRUFBRSxPQUFPO0VBQ2YsY0FBYyxFQUFFLElBQUk7Q0FTckI7O0FBcEVMLEFBNkRNLE9BN0RDLEFBd0RKLE9BQU8sQ0FDTixLQUFLLEFBSUYsTUFBTSxDQUFDO0VBQ04sZ0JBQWdCLEVBQUUsSUFBSTtDQUN2Qjs7QUFRTCxBQUFBLFVBQVUsQ0F2RVosT0FBTyxBQXVFTyxJQUFLLENBQUEsT0FBTyxFQUFFO0VBQ3hCLE9BQU8sRUFBRSxDQUFDO0NBQ1g7O0FLeEVBLEFIQ0gsZUdEVSxDQVlOLFFBQVEsRUNiWixZQUFZLENKRVU7RUFDcEIsYUFBYSxFbkV1SEEsR0FBRyxDQUNILEtBQUssQ0FyQlQsT0FBZTtDbUU5RnpCOztBOUR3REcsTUFBTSxFQUFHLFNBQVMsRUFBRSxLQUFLLElBQUssV0FBVyxFQUFFLFNBQVM7RWlFL0RyRCxBSENILGVHRFUsQ0FZTixRQUFRLEVDYlosWUFBWSxDSkVVO0lBSWxCLGFBQWEsRUFBRSxpQkFBaUI7R0FFbkM7OztBL0JSRCxBQUFBLElBQUksQ2lDQUM7RUFDSCx3REFBd0Q7RUFDeEQsVUFBVSxFQUFFLE1BQU07Q0FDbkI7O0FBRUQsQUFBQSxVQUFVLENBQUM7RUFDVCxnQkFBZ0IsQ0FBQSxpRkFBQztDQUtsQjs7QWhFcURHLE1BQU0sRUFBRyxTQUFTLEVBQUUsS0FBSyxJQUFLLFdBQVcsRUFBRSxTQUFTO0VnRTNEeEQsQUFBQSxVQUFVLENBQUM7SUFJUCxnQkFBZ0IsQ0FBQSxLQUFDO0dBRXBCOzs7QUFFRCxBQUFBLFFBQVEsQ0FBQztFQUNQLFNBQVMsRUFBRSxJQUFJO0VBQ2YsT0FBTyxFQUFFLElBQUk7RUE0Q2IsYUFBYSxDQUFBLEtBQUM7RUFPZCxrQkFBa0IsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQjtFQUNoRCxtQkFBbUIsRUFBRSwrREFBK0Q7Q0E0Q3JGOztBQTlGRSxBQUFELGNBQU8sQ0FBQztFQUNOLFNBQVMsRUFBRSxJQUFJO0VBQ2YsZUFBZSxFQUFFLEtBQUs7RUFDdEIsTUFBTSxFMUNiRSxLQUFLO0MwQ2NkOztBQUVBLEFBQUQsZUFBUTtBQVZWLFFBQVEsQ0FXTixNQUFNLENBQUM7RUFDTCxTQUFTLEVBQUUsS0FBSztDQUNqQjs7QUFFQSxBQUFELGVBQVEsQ0FBQztFQUNQLFNBQVMsRUFBRSxLQUFLO0NBQ2pCOztBQUVBLEFBQUQsa0JBQVcsQ0FBQztFQUNWLFNBQVMsRUFBRSxRQUFRO0NBQ3BCOztBQUVBLEFBQUQsb0JBQWEsQ0FBQztFQUNaLFNBQVMsRUFBRSxLQUFLO0NBT2pCOztBaEVvQkMsTUFBTSxFQUFHLFNBQVMsRUFBRSxLQUFLLE9BQU8sV0FBVyxFQUFFLFFBQVE7RWdFNUJ0RCxBQUFELG9CQUFhLENBQUM7SUFJVixRQUFRLEVBQUUsTUFBTTtHQUluQjs7O0FBRUEsQUFBRCxjQUFPLENBQUM7RUFDTixTQUFTLEVBQUUsSUFBSTtDQUNoQjs7QUFuQ0gsQUFxQ0UsUUFyQ00sQ0FxQ04sY0FBYyxDQUFDO0VBQ2IsU0FBUyxFQUFFLEtBQUs7Q0FDakI7O0FBdkNILEFBeUNFLFFBekNNLENBeUNOLFdBQVcsQ0FBQztFQUNWLFNBQVMsRUFBRSxLQUFLO0VBQ2hCLE9BQU8sRUFBRSxJQUFJO0NBQ2Q7O0F4Q2E4QixTQUFDLEVBQXJCLE1BQU0sRUFBRSxXQUFXO0V3Q3pEaEMsQUFBQSxRQUFRLENBQUM7SUFpREwsYUFBYSxDQUFBLFlBQUM7R0FpRGpCOzs7QWhFL0NHLE1BQU0sRUFBRyxTQUFTLEVBQUUsS0FBSyxJQUFLLFdBQVcsRUFBRSxTQUFTO0VnRW5EeEQsQUFBQSxRQUFRLENBQUM7SUF5REwscUJBQXFCLEV6Q3RESCxnSkFBMEQsQ3lDc0RoQyxnQkFBZ0IsQ3pDM0QxQyxvQkFBb0I7SXlDNER0QyxrQkFBa0IsRUFBRSxjQUFjO0lBQ2xDLG1CQUFtQixFQUFFLG9KQUFvSjtJQUN6SyxZQUFZLEVBQUUsQ0FBQztHQXNDbEI7RUFwQ0ksQUFBRCxjQUFPO0VBOURYLFFBQVEsQ0ErREosY0FBYztFQS9EbEIsUUFBUSxDQWdFSixNQUFNLENBQUM7SUFDTCxNQUFNLEUxQ3ZFQSxLQUFLLEMwQ3VFUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7R0FDekI7RUEzQ0YsQUFBRCxvQkFBYSxDQTZDRztJQUNaLFVBQVUsRTFDM0VKLEtBQUs7RzBDNEVaO0VBdEVMLEFBeUNFLFFBekNNLENBeUNOLFdBQVcsQ0ErQkc7SUFDVixPQUFPLEVBQUUsS0FBSztHQUNmOzs7QWhFdkJELE1BQU0sRUFBRyxTQUFTLEVBQUUsS0FBSyxPQUFPLFdBQVcsRUFBRSxTQUFTO0VnRW5EMUQsQUFBQSxRQUFRLENBQUM7SUErRUwscUJBQXFCLEV6QzdESyx1R0FBZ0YsQ3lDNkR0RCxnQkFBZ0IsQ3pDOUQxQyxvQkFBb0I7R3lDaUZqRDs7O0FoRS9DRyxNQUFNLEVBQUcsU0FBUyxFQUFFLE1BQU07RWdFbkQ5QixBQUFBLFFBQVEsQ0FBQztJQW9GTCxxQkFBcUIsRXpDdkZKLG1CQUFtQixDREg1QixLQUFLLENDU0ssZ0pBQTBELEN5Q2lGRCxnQkFBZ0IsQ3pDdEZ6RSxvQkFBb0I7SXlDdUZ0QyxrQkFBa0IsRUQ5RlIsa0JBQWtCLENBQ2xCLGNBQWMsQ0M2RnNCLEtBQUssQ0FBQyxJQUFJO0lBQ3hELG1CQUFtQixFQUFFLHlIQUF5SDtHQVlqSjtFQTlGRSxBQUFELGNBQU8sQ0FvRkc7SUFDTixVQUFVLEVBQUUsQ0FBQztHQUNkO0VBMUZMLEFBNEZJLFFBNUZJLENBNEZKLE1BQU0sQ0FBQztJQUNMLFVBQVUsRUFBRSxJQUFJO0dBQ2pCO0VBOUZMLEF4QzRDRSxRd0M1Q00sQ3hDNENOLGtCQUFrQixDQUFDO0lBQ2pCLElBQUksRUFBRSxRQUFRO0dBQ2Y7OztBd0MvQkEsQUFBRCxlQUFRLENDM0JDO0VBR1AsVUFBVSxFQUFFLEtBQUs7RUFFakIsOENBQThDO0VBQzlDLFVBQVUsRXRFYUYsS0FBZ0I7Q3NFS3pCOztBQXhCQSxBQVFDLGVBUk0sQ0FRTixNQUFNLENBQUM7RUFDTCxJQUFJLEVBQUUsUUFBUTtDQUNmOztBQVZGLEFBWUMsZUFaTSxDQVlOLFFBQVEsQ0FBQztFQUdQLFdBQVcsRUFBRSxJQUFJO0NBUWxCOztBQXZCRixBQWlCRyxlQWpCSSxDQVlOLFFBQVEsQ0FLTixNQUFNLENBQUM7RUFDTCxTQUFTLEVBQUUsS0FBSztFQUNoQixXQUFXLEVBQUUsS0FBSztFQUNsQixVQUFVLEVBQUUsT0FBaUM7RUFDN0MsT0FBTyxFQUFFLEtBQUs7Q0FDZjs7QUFJSixBQUFELGVBQVEsQ0FBQztFQUNQLElBQUksRUFBRSxLQUFLO0VBR1gsVUFBVSxFQUFFLElBQUk7RUFDaEIsVUFBVSxFQUFFLE1BQU07RUFHbEIsVUFBVSxFdEV1RkMsR0FBRyxDQUNILEtBQUssQ0FyQlQsT0FBZTtFc0VsRXRCLFFBQVEsRUFBRSxRQUFRO0VBRWxCLHVEQUF1RDtDQW1CeEQ7O0FBOUJBLEFBWUMsZUFaTSxDQVlOLE9BQU87QUFaUixlQUFPLENBYU4sT0FBTyxDQUFDO0VBQ04sVUFBVSxFdEVqQkgsT0FBNEI7RXNFa0JuQyxVQUFVLEVBQUUsTUFBTTtDQUNuQjs7QUFoQkYsQUFrQkMsZUFsQk0sQ0FrQk4sT0FBTyxDQUFDO0VBQ04sVUFBVSxFdEU0RUQsR0FBRyxDQUNILEtBQUssQ0FyQlQsT0FBZTtFc0V2RHBCLFdBQVcsRUFBRSxJQUFJO0VBQ2pCLFNBQVMsRUFBRSxLQUFLO0VBQ2hCLE9BQU8sRUFBRSxXQUFXO0NBQ3JCOztBQXZCRixBQXlCQyxlQXpCTSxDQXlCTixPQUFPLENBQUM7RUFDTixTQUFTLEVBQUUsR0FBRztFQUNkLFVBQVUsRUFBRSxNQUFNO0VBQ2xCLGNBQWMsRUFBRSxHQUFHO0NBQ3BCOztBRHhCRixBQUFELGtCQUFXLENDMkJDO0VBQ1YsTUFBTSxFMUNoRGUsSUFBSTtFMENpRHpCLFdBQVcsRUFBRSxPQUFPO0NBMEJyQjs7QUE1QkEsQUFJQyxrQkFKUyxDQUlULEdBQUcsQ0FBQztFQUNGLE9BQU8sRUFBRSxJQUFJO0VBQ2IsSUFBSSxFQUFFLFFBQVE7RUFDZCxXQUFXLEVBQUUsT0FBTztDQUNyQjs7QUFSRixBQVVDLGtCQVZTLENBVVQsTUFBTSxDQUFDO0VBQ0wsSUFBSSxFQUFFLFFBQVE7Q0FDZjs7QUFaRixBQWNDLGtCQWRTLENBY1QsSUFBSSxDQUFDO0VBR0gsSUFBSSxFQUFFLFVBQVU7Q0FDakI7O0FBbEJGLEFBb0JDLGtCQXBCUyxDQW9CVCxPQUFPLENBQUM7RUFDTixVQUFVLEVBQUUsSUFBSTtFQUNoQixXQUFXLEVBQUUsR0FBRztDQUNqQjs7QUF2QkYsQUF5QkMsa0JBekJTLENBeUJULFFBQVEsQ0FBQztFQUNQLGNBQWMsRUFBRSxNQUFNO0NBQ3ZCOztBQ3RGTCxBQUFBLFlBQVksQ0FBQztFQUdYLElBQUksRUFBRSxLQUFLO0VBR1gsT0FBTyxFQUFFLElBQUk7RUFDYixTQUFTLEVBQUUsTUFBTTtFQUNqQixRQUFRLEVBQUUsSUFBSTtFQUNkLE9BQU8sRTVDRkcsS0FBSztDNEN1SGhCOztBQTlIRCxBQVdFLFlBWFUsQ0FXVixFQUFFLENBQUM7RUFDRCxTQUFTLEVBQUUsR0FBRztFQUNkLGNBQWMsRUFBRSxTQUFTO0VBQ3pCLFVBQVUsRUFBRSxNQUFNO0VBQ2xCLFdBQVcsRUFBRSxNQUFNO0VBQ25CLE1BQU0sRTVDVEUsS0FBSyxDNENTTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDMUIsT0FBTyxFQUFFLEtBQUs7RUFDZCxPQUFPLEVBQUUsTUFBTTtDQW1CaEI7O0FBckNILEFBb0JJLFlBcEJRLENBV1YsRUFBRSxBQVNDLE9BQU8sRUFwQlosWUFBWSxDQVdWLEVBQUUsQUFVQyxNQUFNLENBQUM7RUFDTixVQUFVLEV2RW9HRCxHQUFHLENBQ0gsS0FBSyxDQXJCVCxPQUFlO0V1RS9FcEIsT0FBTyxFQUFFLEVBQUU7RUFDWCxPQUFPLEVBQUUsVUFBVTtFQUNuQixRQUFRLEVBQUUsUUFBUTtFQUNsQixHQUFHLEVBQUUsSUFBSTtFQUNULEtBQUssRUFBRSxHQUFHO0NBQ1g7O0FBNUJMLEFBOEJJLFlBOUJRLENBV1YsRUFBRSxBQW1CQyxPQUFPLENBQUM7RUFDUCxLQUFLLEVBQUUsR0FBRztDQUNYOztBQWhDTCxBQWtDSSxZQWxDUSxDQVdWLEVBQUUsQUF1QkMsTUFBTSxDQUFDO0VBQ04sSUFBSSxFQUFFLEdBQUc7Q0FDVjs7QUFHRixBQUFELG1CQUFRLENBQUM7RUFDUCxJQUFJLEVBQUUsUUFBUTtFQUNkLE9BQU8sRUFBRSxJQUFJO0VBQ2IsU0FBUyxFQUFFLFFBQVE7Q0F3QnBCOztBQTNCQSxBQUtDLG1CQUxNLEdBS0osQ0FBQyxDQUFDO0VBR0YsSUFBSSxFQUFFLE9BQU87RUFDYixVQUFVLEVBQUUsTUFBTTtFQUNsQixPQUFPLEVBQUUsQ0FBQztFQUNWLE1BQU0sRUFBRSxJQUFJO0VBQ1osZUFBZSxFQUFFLE1BQU07Q0FDeEI7O0FBYkYsQUFlQyxtQkFmTSxDQWVOLE9BQU8sQ0FBQztFQUNOLEtBQUssRXZFMUJGLE9BQWU7RXVFMkJsQixjQUFjLEVBQUUsSUFBSTtFQUNwQixXQUFXLEVBQUUsTUFBTTtDQVFwQjs7QUExQkYsQUFvQkcsbUJBcEJJLENBZU4sT0FBTyxBQUtKLFFBQVEsQ0FBQztFQUNSLE9BQU8sRUFBRSxLQUFLO0VBQ2QsU0FBUyxFQUFFLEdBQUc7RUFDZCxXQUFXLEVBQUUsR0FBRztFQUNoQixhQUFhLEVBQUUsR0FBRztDQUNuQjs7QUFoRVAsQUFvRUUsWUFwRVUsQ0FvRVYsU0FBUyxDQUFDO0VBQ1IsT0FBTyxFQUFFLElBQUk7Q0FTZDs7QUE5RUgsQUF1RUksWUF2RVEsQ0FvRVYsU0FBUyxDQUdQLENBQUMsQ0FBQztFQUNBLEtBQUssRXRFdkVELE9BQXdDO0VzRXdFNUMsU0FBUyxFQUFFLElBQUk7RUFDZixJQUFJLEVBQUUsUUFBUTtFQUNkLE9BQU8sRUFBRSxLQUFLO0VBQ2QsVUFBVSxFQUFFLE1BQU07Q0FDbkI7O0FBN0VMLEFBZ0ZFLFlBaEZVLENBZ0ZWLElBQUksQUFBQSxPQUFPLENBQUM7RUFDVixVQUFVLEVBQUUsS0FBSztFQUNqQixVQUFVLEVBQUUsR0FBRztDQVVoQjs7QUE1RkgsQUFvRkksWUFwRlEsQ0FnRlYsSUFBSSxBQUFBLE9BQU8sQ0FJVCxPQUFPLENBQUM7RUFDTixPQUFPLEVBQUUsWUFBWTtFQUNyQixPQUFPLEVBQUUsS0FBSztDQUNmOztBQXZGTCxBQXlGSSxZQXpGUSxDQWdGVixJQUFJLEFBQUEsT0FBTyxDQVNULE9BQU8sQUFBQSxRQUFRLENBQUM7RUFDZCxTQUFTLEVBQUUsS0FBSztDQUNqQjs7QUEzRkwsQUE4RkUsWUE5RlUsQ0E4RlYsUUFBUSxDQUFDO0VBQ1AsSUFBSSxFQUFFLFFBQVE7RUFDZCxVQUFVLEU1Q3pGRixLQUFLO0U0QzBGYixPQUFPLEVBQUUsSUFBSTtDQW9CZDs7QUFySEgsQUFtR0ksWUFuR1EsQ0E4RlYsUUFBUSxDQUtOLEtBQUssQ0FBQztFQUNKLElBQUksRUFBRSxRQUFRO0VBQ2QsTUFBTSxFQUFFLE9BQU87RUFDZixXQUFXLEVBQUUsTUFBTTtDQUNwQjs7QUF2R0wsQUF5R0ksWUF6R1EsQ0E4RlYsUUFBUSxDQVdOLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBRCxLQUFDLEFBQUEsRUFBWTtFQUNoQixJQUFJLEVBQUUsUUFBUTtFQUNkLE9BQU8sRUFBRSxLQUFLO0VBQ2QsTUFBTSxFQUFFLEtBQUs7RUFDYixLQUFLLEVBQUUsSUFBSTtDQUNaOztBQTlHTCxBQWdISSxZQWhIUSxDQThGVixRQUFRLENBa0JOLFlBQVksQ0FBQztFQUNYLElBQUksRUFBRSxRQUFRO0VBQ2QsT0FBTyxFQUFFLEtBQUs7RUFDZCxVQUFVLEVBQUUsS0FBSztDQUNsQjs7QWxFcERELE1BQU0sRUFBRyxTQUFTLEVBQUUsS0FBSyxPQUFPLFdBQVcsRUFBRSxRQUFRO0VrRWhFekQsQUF3SEksWUF4SFEsQ0F3SFIsYUFBYSxDQUFDO0lBQ1osT0FBTyxFQUFFLElBQUk7R0FDZDs7O0FDMUhMLEFBQUEsYUFBYSxDQUFDO0VBQ1osUUFBUSxFQUFFLFFBQVE7RUFDbEIsSUFBSSxFQUFFLFNBQVM7RUFDZixXQUFXLEVBQUUsTUFBTTtFM0N5Qm5CLFVBQVUsRUFEYSxHQUFHLENGUk4sS0FBSztFNkNaekIsZ0JBQWdCLEVBQUUsSUFBSTtFQUN0QixVQUFVLEVBQUUsTUFBTTtFQUNsQixTQUFTLEVBQUUsSUFBSTtDQWtVaEI7O0FBM1VELEFBV0UsYUFYVyxBQVdWLFFBQVEsQ0FBQztFQUNSLElBQUksRUFBRSxTQUFTO0NBS2hCOztBQWpCSCxBQWNJLGFBZFMsQUFXVixRQUFRLEFBR04sTUFBTSxDQUFDO0VBQ04sSUFBSSxFQUFFLE9BQU87Q0FDZDs7QUFoQkwsQUFtQkUsYUFuQlcsQ0FtQlgsUUFBUSxDQUFDO0VBR1AsT0FBTyxFQUFFLElBQUk7Q0FDZDs7QUF2QkgsQUF5QkUsYUF6QlcsQUF5QlYsUUFBUSxDQUFDLFFBQVEsQ0FBQztFQUNqQixPQUFPLEVBQUUsS0FBSztDQUNmOztBQTNCSCxBQTZCRSxhQTdCVyxDQTZCWCxLQUFLLENBQUM7RTNDRE4sVUFBVSxFQURhLEdBQUcsQ0ZSTixLQUFLO0M2Q1l4Qjs7QUEvQkgsQUFpQ0UsYUFqQ1csQUFpQ1YsUUFBUSxDQUFDLEtBQUssQ0FBQztFQUNkLE9BQU8sRUFBRSxHQUFHO0NBQ2I7O0FBbkNILEFBcUNFLGFBckNXLENBcUNYLE1BQU0sQ0FBQyxJQUFJLENBQUM7RUFDVixPQUFPLEVBQUUsS0FBSztFQUNkLFlBQVksRUFBRSxLQUFLO0VBQ25CLFFBQVEsRUFBRSxNQUFNO0VBQ2hCLGFBQWEsRUFBRSxRQUFRO0VBQ3ZCLFdBQVcsRUFBRSxJQUFJO0NBQ2xCOztBQTNDSCxBQTZDRSxhQTdDVyxDQTZDWCxNQUFNLENBQUM7RUFDTCxPQUFPLEVBQUUsSUFBSTtFQUNiLFNBQVMsRUFBRSxNQUFNO0VBQ2pCLE1BQU0sRUFBRSxJQUFJO0NBS2I7O0FBckRILEFBa0RJLGFBbERTLENBNkNYLE1BQU0sQ0FLSixRQUFRLENBQUM7RUFDUCxVQUFVLEVBQUUsTUFBTTtDQUNuQjs7QUFwREwsQUF1REUsYUF2RFcsQ0F1RFgsRUFBRSxDQUFDO0UzQzNCSCxVQUFVLEVBRGEsR0FBRyxDRlJOLEtBQUs7QzZDOEN4Qjs7QUFqRUgsQUEwREksYUExRFMsQ0F1RFgsRUFBRSxBQUdDLFVBQVcsQ2QvQkssSUFBSSxFYytCSDtFQUNoQixVQUFVLEV4RW5DSCxPQUE0QjtDd0VvQ3BDOztBQTVETCxBQThESSxhQTlEUyxDQXVEWCxFQUFFLEFBT0MsTUFBTSxDQUFDO0VBQ04sVUFBVSxFQUFFLE9BQWlDO0NBQzlDOztBQWhFTCxBQW1FRSxhQW5FVyxDQW1FWCxFQUFFLENBQUM7RUFDRCxNQUFNLEVBQUUsT0FBTztFQUNmLFlBQVksRUFBRSxHQUFHO0NBQ2xCOztBQXRFSCxBQXdFRSxhQXhFVyxDQXdFWCxNQUFNLENBQUMsRUFBRSxBQUFBLFlBQVksQ0FBQztFQUdwQixXQUFXLEVBQUUsSUFBSTtFQUNqQixZQUFZLEVBQUUsR0FBRztDQUNsQjs7QUE3RUgsQUErRUUsYUEvRVcsQ0ErRVgsTUFBTSxDQUFDLEVBQUUsQUFBQSxVQUFXLENBQUEsQ0FBQyxFQUFFO0VBQ3JCLFNBQVMsRUFBRSxLQUFLO0VBQ2hCLFVBQVUsRUFBRSxLQUFLO0NBQ2xCOztBQWxGSCxBQW9GRSxhQXBGVyxDQW9GWCxNQUFNLENBQUMsRUFBRSxBQUFBLFdBQVcsQ0FBQztFQUNuQixLQUFLLEVBQUUsSUFBSTtFQUNYLGFBQWEsRUFBRSxHQUFHO0NBQ25COztBQXZGSCxBQXlGRSxhQXpGVyxDQXlGWCxJQUFJLENBQUMsSUFBSSxDQUFDO0VBQ1IsVUFBVSxFQUFFLE1BQU07RUFDbEIsT0FBTyxFQUFFLFlBQVk7RUFDckIsUUFBUSxFQUFFLE1BQU07RUFDaEIsY0FBYyxFQUFFLE1BQU07RUFDdEIsTUFBTSxFQUFFLENBQUMsQ0FBQyxLQUFLLEN4RVFSLE9BQWU7RXdFUHRCLFlBQVksRUFBRSxLQUFLO0VBQ25CLE1BQU0sRUFBRSxJQUFJO0VBQ1osV0FBVyxFQUFFLElBQUk7RUFDakIsU0FBUyxFQUFFLElBQUk7Q0FDaEI7O0FBbkdILEFBcUdFLGFBckdXLENBcUdYLE1BQU0sQ0FBQztFQUNMLFVBQVUsRUFBbUIsSUFBSTtFQUNqQyxVQUFVLEVBQUUsQ0FBQyxDQUFFLElBQUcsQ0FBQyxHQUFHLENBQUMsa0JBQTBDLENBQUMsS0FBSztDQUt4RTs7QUE1R0gsQUE4R0UsYUE5R1csQ0E4R1gsTUFBTTtBQTlHUixhQUFhLENBK0dYLE1BQU0sQ0FBQztFQUNMLEtBQUssRUFBbUIsSUFBSTtFQUM1QixVQUFVLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsd0JBQStDLENBQUMsS0FBSztDQUM1RTs7QUFsSEgsQUFvSEUsYUFwSFcsQ0FvSFgsTUFBTSxDQUFDO0VBQ0wsVUFBVSxFQUFtQixPQUFPO0NBQ3JDOztBQXRISCxBQXdIRSxhQXhIVyxDQXdIWCxNQUFNLENBQUM7RUFDTCxVQUFVLEVBQW1CLElBQUk7RUFDakMsS0FBSyxFQUFFLElBQUk7Q0FDWjs7QUEzSEgsQUE2SEUsYUE3SFcsQ0E2SFgsSUFBSSxDQUFDLElBQUksQUFBQSxZQUFZLENBQUM7RUFHcEIsaUJBQWlCLEVBQUUsR0FBRztDQUN2Qjs7QUFqSUgsQUFtSUUsYUFuSVcsQ0FtSVgsSUFBSSxDQUFDLElBQUksQUFBQSxXQUFXLENBQUM7RUFHbkIsa0JBQWtCLEVBQUUsR0FBRztDQUN4Qjs7QUF2SUgsQUF5SUUsYUF6SVcsQ0F5SVgsTUFBTSxDQUFDO0VBQ0wsS0FBSyxFQUFFLElBQUk7Q0FDWjs7QUEzSUgsQUE2SUUsYUE3SVcsQ0E2SVgsTUFBTSxDQUFDLEVBQUUsQ0FBQztFQUNSLE9BQU8sRUFBRSxhQUFhO0VBQ3RCLFNBQVMsRUFBRSxLQUFLO0NBQ2pCOztBQWhKSCxBQWtKRSxhQWxKVyxDQWtKWCxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztFQUdiLE9BQU8sRUFBRSxLQUFLO0NBQ2Y7O0FBdEpILEFBd0pFLGFBeEpXLENBd0pYLE1BQU0sQ0FBQyxNQUFNLENBQUM7RUFDWixPQUFPLEVBQUUsS0FBSztFQUNkLFVBQVUsRUFBRSxNQUFNO0VBQ2xCLE9BQU8sRUFBRSxPQUFPO0VBQ2hCLGFBQWEsRUFBRSxHQUFHO0VBQ2xCLFNBQVMsRUFBRSxJQUFJO0NBQ2hCOztBQTlKSCxBQWdLRSxhQWhLVyxDQWdLWCxVQUFVLENBQUM7RUFDVCxVQUFVLEV4RW5IQSxPQUFpQjtFd0VvSDNCLE1BQU0sRUFBRSxPQUFPO0VBQ2YsT0FBTyxFQUFFLENBQUM7Q0FzQlg7O0FBekxILEFBcUtJLGFBcktTLENBZ0tYLFVBQVUsQ0FLUixXQUFXLENBQUM7RUFDVixVQUFVLEVBQUUsTUFBTTtFQUNsQixLQUFLLEV4RXRIUSxJQUFJO0V3RXVIakIsTUFBTSxFQUFFLFdBQVc7Q0FDcEI7O0FBektMLEFBMktJLGFBM0tTLENBZ0tYLFVBQVUsQ0FXUixLQUFLLENBQUM7RUFDSixPQUFPLEVBQUUsSUFBSTtFQUNiLGVBQWUsRUFBRSxhQUFhO0VBQzlCLGNBQWMsRUFBRSxTQUFTO0NBVTFCOztBQXhMTCxBQWdMTSxhQWhMTyxDQWdLWCxVQUFVLENBV1IsS0FBSyxDQUtILENBQUMsQ0FBQztFQUNBLEtBQUssRUFBRSxJQUFJO0VBQ1gsT0FBTyxFQUFFLE9BQU87Q0FDakI7O0FBbkxQLEFBcUxNLGFBckxPLENBZ0tYLFVBQVUsQ0FXUixLQUFLLENBVUgsQ0FBQyxBQUFBLE1BQU0sQ0FBQztFQUNOLFVBQVUsRUFBRSx3QkFBd0I7Q0FDckM7O0FBdkxQLEFBMkxFLGFBM0xXLENBMkxYLFVBQVUsQ0FBQztFQUNULEtBQUssRUFBRSxJQUFJO0NBcUJaOztBQWpOSCxBQThMSSxhQTlMUyxDQTJMWCxVQUFVLENBR1IsRUFBRSxBQUFBLFlBQVksQ0FBQztFQUdiLFNBQVMsRUFBRSxJQUFJO0VBQ2YsV0FBVyxFQUFFLElBQUk7RUFDakIsWUFBWSxFQUFFLEdBQUc7Q0FDbEI7O0FBcE1MLEFBc01JLGFBdE1TLENBMkxYLFVBQVUsQ0FXUixFQUFFLEFBQUEsV0FBVyxDQUFDO0VBQ1osYUFBYSxFQUFFLEdBQUc7RUFDbEIsVUFBVSxFQUFFLEtBQUs7Q0FDbEI7O0FBek1MLEFBMk1JLGFBM01TLENBMkxYLFVBQVUsQ0FnQlIsTUFBTSxDQUFDO0VBQ0wsT0FBTyxFQUFFLE9BQU87RUFDaEIsV0FBVyxFQUFFLEdBQUc7RUFDaEIsYUFBYSxFQUFFLEdBQUc7RUFDbEIsU0FBUyxFQUFFLElBQUk7Q0FDaEI7O0FBaE5MLEFBbU5FLGFBbk5XLENBbU5YLE9BQU8sQ0FBQztFQUNOLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLEdBQUcsRUFBRSxDQUFDO0VBQ04sS0FBSyxFQUFFLENBQUM7RUFDUixNQUFNLEVBQUUsT0FBTztFQUNmLE9BQU8sRUFBRSxLQUFLO0VBQ2QsU0FBUyxFQUFFLEtBQUs7RUFDaEIsS0FBSyxFQUFFLEtBQUs7RUFDWixXQUFXLEVBQUUsS0FBSztFQUNsQixVQUFVLEVBQUUsTUFBTTtFQUNsQixPQUFPLEVBQUUsR0FBRztDQUtiOztBQWxPSCxBQStOSSxhQS9OUyxDQW1OWCxPQUFPLEFBWUosTUFBTSxDQUFDO0VBQ04sT0FBTyxFQUFFLENBQUM7Q0FDWDs7QUFqT0wsQUFvT0UsYUFwT1csQ0FvT1gsUUFBUSxDQUFDO0VBQ1AsVUFBVSxFQUFFLE1BQU07RUFDbEIsVUFBVSxFQUFFLE1BQU07RUFDbEIsSUFBSSxFQUFFLFFBQVE7RUFDZCxPQUFPLEVBQUUsSUFBSTtFQUNiLFNBQVMsRUFBRSxNQUFNO0VBQ2pCLGVBQWUsRUFBRSxNQUFNO0NBQ3hCOztBQTNPSCxBQTZPRSxhQTdPVyxBQTZPVixRQUFRLENBQUMsUUFBUSxDQUFDO0VBQ2pCLGVBQWUsRUFBRSxVQUFVO0NBQzVCOztBQS9PSCxBQWlQRSxhQWpQVyxDQWlQWCxRQUFRLENBQUMsTUFBTSxDQUFDO0VBQ2QsV0FBVyxFQUFFLElBQUk7RUFDakIsTUFBTSxFQUFFLEtBQUs7Q0FDZDs7QUFwUEgsQUFzUEUsYUF0UFcsQUFzUFYsSUFBSyxDQUFBLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRTtBQXRQN0IsYUFBYSxBQXVQVixRQUFRLEFBQUEsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7RUFDMUIsV0FBVyxFQUFFLElBQUk7Q0FDbEI7O0FBelBILEFBMlBFLGFBM1BXLENBMlBYLFFBQVEsQ0FBQyxDQUFDLENBQUM7RUFDVCxXQUFXLEVBQUUsTUFBTTtFQUNuQixPQUFPLEVBQUUsS0FBSztFQUNkLE1BQU0sRUFBRSxTQUFTO0NBQ2xCOztBQS9QSCxBQWlRRSxhQWpRVyxBQWlRVixRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7QUFqUXRCLGFBQWEsQUFrUVYsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7RUFDeEIsT0FBTyxFQUFFLElBQUk7Q0FDZDs7QUFwUUgsQUFzUUUsYUF0UVcsQUFzUVYsUUFBUSxBQUFBLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQXRRNUIsYUFBYSxBQXVRVixRQUFRLEFBQUEsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7RUFDOUIsT0FBTyxFQUFFLEtBQUs7Q0FDZjs7QUF6UUgsQUEyUUUsYUEzUVcsQ0EyUVgsUUFBUSxDQUFDLE1BQU0sQ0FBQztFQUNkLE1BQU0sRUFBRSxNQUFNO0NBQ2Y7O0FBN1FILEFBK1FFLGFBL1FXLENBK1FYLFFBQVEsQUFBQSxRQUFRLENBQUMsQ0FBQyxDQUFDO0VBQ2pCLFNBQVMsRUFBRSxJQUFJO0VBQ2YsTUFBTSxFQUFFLE1BQU07Q0FDZjs7QUFsUkgsQUFxUkksYUFyUlMsQ0FvUlgsT0FBTyxDQUNMLE9BQU8sQ0FBQztFQUNOLE1BQU0sRUFBRSxLQUFLLEM3Qy9RUCxLQUFLLEM2QytRYyxDQUFDLEM3Qy9RcEIsS0FBSztDNkNnUlo7O0FBdlJMLEFBeVJJLGFBelJTLENBb1JYLE9BQU8sQ0FLTCxPQUFPLEFBQUEsS0FBSyxDQUFDO0VBQ1gsVUFBVSxFQUFFLE1BQU07RUFDbEIsT0FBTyxFQUFFLGFBQWE7Q0FDdkI7O0FBNVJMLEFBOFJJLGFBOVJTLENBb1JYLE9BQU8sQ0FVTCxLQUFLLENBQUM7RUFDSixXQUFXLEVBQUUsSUFBSTtFQUNqQixPQUFPLEVBQUUsS0FBSztFQUNkLFdBQVcsRUFBRSxHQUFHO0NBQ2pCOztBQWxTTCxBQW9TSSxhQXBTUyxDQW9SWCxPQUFPLENBZ0JMLFFBQVEsQ0FBQztFQUNQLE9BQU8sRUFBRSxJQUFJO0NBb0NkOztBQXpVTCxBQXVTTSxhQXZTTyxDQW9SWCxPQUFPLENBZ0JMLFFBQVEsQ0FHTixJQUFJLENBQUM7RUFDSCxTQUFTLEVBQUUsQ0FBQztFQUNaLE9BQU8sRUFBRSxLQUFLO0VBQ2QsVUFBVSxFQUFFLE1BQU07RUFDbEIsTUFBTSxFQUFFLE9BQU87RTNDL1FyQixVQUFVLEVBRGEsR0FBRyxDRlJOLEtBQUs7RTZDNFJuQixNQUFNLEV4RXJMQyxHQUFHLENBQ0gsS0FBSyxDQXJCVCxPQUFlO0V3RTBNbEIsWUFBWSxFQUFFLGFBQWE7RUFDM0IsY0FBYyxFQUFFLFVBQVU7Q0F1QjNCOztBQXhVUCxBQXVUUSxhQXZUSyxDQW9SWCxPQUFPLENBZ0JMLFFBQVEsQ0FHTixJQUFJLEFBZ0JELFdBQVcsQ0FBQztFQUdYLGtCQUFrQixFQUFFLEdBQUc7Q0FDeEI7O0FBM1RULEFBNlRRLGFBN1RLLENBb1JYLE9BQU8sQ0FnQkwsUUFBUSxDQUdOLElBQUksQUFzQkQsTUFBTSxDQUFDO0VBQ04sVUFBVSxFQUFFLElBQUk7Q0FDakI7O0FBL1RULEFBaVVRLGFBalVLLENBb1JYLE9BQU8sQ0FnQkwsUUFBUSxDQUdOLElBQUksQUEwQkQsU0FBUyxDQUFDO0VBQ1QsVUFBVSxFeEVwUk4sT0FBaUI7RXdFcVJyQixLQUFLLEV4RWxSSSxJQUFJO0V3RW1SYixXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCO0VBQ3ZDLFdBQVcsRUFBRSxJQUFJO0VBQ2pCLFVBQVUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLO0NBQy9DOztBQ3ZVVCxBQUFBLGFBQWEsQ0FBQztFQUdaLElBQUksRUFBRSxTQUFTO0NBMkVoQjs7QUE5RUQsQUFLRSxhQUxXLENBS1gsU0FBUyxDQUFDO0VBQ1IsSUFBSSxFQUFFLFFBQVE7RUFDZCxPQUFPLEVBQUUsSUFBSTtFQUNiLFNBQVMsRUFBRSxNQUFNO0VBQ2pCLGVBQWUsRUFBRSxNQUFNO0NBQ3hCOztBQVZILEFBWUUsYUFaVyxDQVlYLFNBQVMsQ0FBQztFQUNSLFVBQVUsRUFBRSxHQUFHO0VBQ2YsT0FBTyxFQUFFLEdBQUc7RUFDWixLQUFLLEVBQUUsSUFBSTtFQUNYLE1BQU0sRUFBRSxHQUFHO0VBQ1gsVUFBVSxFekVaSixPQUEwQjtDeUVhakM7O0FBbEJILEFBb0JFLGFBcEJXLENBb0JYLFNBQVMsQ0FBQyxHQUFHLENBQUM7RUFDWixVQUFVLEV6RXlCQSxPQUFpQjtFeUV4QjNCLE1BQU0sRUFBRSxHQUFHO0VBQ1gsVUFBVSxFQUFFLFVBQVU7RUFDdEIsU0FBUyxFQUFFLElBQUk7Q0FDaEI7O0FBekJILEFBMkJFLGFBM0JXLENBMkJYLE9BQU8sQ0FBQztFQUNOLE9BQU8sRUFBRSxJQUFJO0VBQ2IsV0FBVyxFQUFFLE1BQU07RUFDbkIsV0FBVyxFQUFFLElBQUk7Q0FDbEI7O0FBL0JILEFBaUNFLGFBakNXLENBaUNYLFVBQVUsQ0FBQztFQUNULEtBQUssRUFBRSxJQUFJO0VBQ1gsTUFBTSxFQUFFLElBQUk7RUFDWixZQUFZLEVBQUUsSUFBSTtDQUNuQjs7QUFFRCxBQUFBLEtBQUssQ0F2Q1AsYUFBYSxDQXVDSCxHQUFHLEFBQUEsVUFBVSxDQUFDO0VBQ3BCLE1BQU0sRUFBRSxJQUFJO0NBQ2I7O0FBekNILEFBMkNFLGFBM0NXLENBMkNYLEtBQUssQ0FBQztFQUNKLFFBQVEsRUFBRSxPQUFPO0VBQ2pCLE9BQU8sRUFBRSxLQUFLO0VBQ2QsS0FBSyxFQUFFLGVBQWU7RUFDdEIsTUFBTSxFQUFFLGVBQWU7Q0FDeEI7O0FBaERILEFBa0RFLGFBbERXLENBa0RYLEtBQUssQ0FBQztFQUNKLE9BQU8sRUFBRSxLQUFLO0VBQ2QsS0FBSyxFQUFFLElBQUk7RUFDWCxNQUFNLEVBQUUsSUFBSTtFQUNaLFlBQVksRUFBRSxJQUFJO0VBQ2xCLFNBQVMsRUFBRSxJQUFJO0VBQ2YsU0FBUyxFQUFFLElBQUk7RUFDZixXQUFXLEVBQUUsSUFBSTtFQUNqQixVQUFVLEVBQUUsTUFBTTtDQUNuQjs7QUEzREgsQUE2REUsYUE3RFcsQ0E2RFgsWUFBWSxHQUFHLENBQUMsQ0FBQztFQUNmLE9BQU8sRUFBRSxLQUFLO0NBQ2Y7O0FBL0RILEFBaUVFLGFBakVXLENBaUVYLFlBQVksR0FBRyxNQUFNLENBQUM7RUFDcEIsV0FBVyxFQUFFLE1BQU07RUFDbkIsU0FBUyxFQUFFLEtBQUs7Q0FDakI7O0FBcEVILEFBc0VFLGFBdEVXLENBc0VYLFFBQVEsQ0FBQztFQUNQLFdBQVcsRUFBRSxLQUFLO0VBQ2xCLE1BQU0sRUFBRSxZQUFZO0NBQ3JCOztBQXpFSCxBQTJFRSxhQTNFVyxDQTJFWCxRQUFRLENBQUMsQ0FBQyxDQUFDO0VBQ1QsT0FBTyxFQUFFLEtBQUs7Q0FDZjs7QUM3RUgsQUFBQSxhQUFhLENBQUM7RUFDWixJQUFJLEVBQUUsU0FBUztFQUNmLFdBQVcsRUFBRSxJQUFJO0NBMkZsQjs7QUE3RkQsQUFJRSxhQUpXLENBSVgsUUFBUSxDQUFDO0VBQ1AsSUFBSSxFQUFFLFFBQVE7RUFDZCxPQUFPLEVBQUUsSUFBSTtFQUNiLFdBQVcsRUFBRSxPQUFPO0VBQ3BCLFVBQVUsRTFFZ0JELE9BQTRCO0UwRWZyQyxVQUFVLEVBQUUsR0FBRyxDQUFDLEtBQUssQzFFaUhWLEdBQUcsQ0FDSCxLQUFLLENBckJULE9BQWU7RTBFNUZ0QixXQUFXLEVBQUUsTUFBTTtFQUNuQixXQUFXLEVBQUUsSUFBSTtDQUNsQjs7QUFaSCxBQWNFLGFBZFcsQ0FjWCxTQUFTLENBQUMsR0FBRyxDQUFDO0VBQ1osVUFBVSxFMUVWSixPQUEwQjtDMEVXakM7O0FBaEJILEFBa0JFLGFBbEJXLEFBa0JWLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDO0VBQ3ZCLFVBQVUsRTFFMkJBLE9BQWlCO0UwRTFCM0IsS0FBSyxFQUFFLElBQUk7Q0FDWjs7QUFyQkgsQUF1QkUsYUF2QlcsQUF1QlYsV0FBVyxDQUFDLE1BQU07QUF2QnJCLGFBQWEsQUF3QlYsV0FBVyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUM7RUFDekIsVUFBVSxFMUVxQ0wsT0FBaUI7RTBFcEN0QixLQUFLLEVBQUUsSUFBSTtDQUNaOztBQTNCSCxBQTZCRSxhQTdCVyxBQTZCVixRQUFRLENBQUMsTUFBTTtBQTdCbEIsYUFBYSxBQThCVixRQUFRLENBQUMsTUFBTTtBQTlCbEIsYUFBYSxBQStCVixRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUc7QUEvQnpCLGFBQWEsQUFnQ1YsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUM7RUFDdEIsVUFBVSxFMUVtQ04sT0FBZ0I7RTBFbENwQixLQUFLLEVBQUUsSUFBSTtDQUNaOztBQW5DSCxBQXFDRSxhQXJDVyxDQXFDWCxRQUFRLENBQUMsS0FBSyxDQUFDO0VBQ2IsWUFBWSxFQUFFLElBQUk7Q0FDbkI7O0FBdkNILEFBeUNFLGFBekNXLENBeUNYLFFBQVEsQ0FBQztFQUNQLFdBQVcsRUFBRSxJQUFJO0VBQ2pCLFlBQVksRUFBRSxJQUFJO0VBQ2xCLE9BQU8sRUFBRSxJQUFJO0NBQ2Q7O0FBN0NILEFBK0NFLGFBL0NXLENBK0NYLFFBQVEsQUFBQSxRQUFRLENBQUM7RUFDZixLQUFLLEVBQUUsSUFBSTtFQUNYLE1BQU0sRUFBRSxJQUFJO0VBQ1osS0FBSyxFQUFFLElBQUk7RUFDWCxZQUFZLEVBQUUsR0FBRztFQUNqQixVQUFVLEVBQUUsTUFBTTtFQUNsQixTQUFTLEVBQUUsS0FBSztFQUNoQixXQUFXLEVBQUUsTUFBTTtDQUNwQjs7QUF2REgsQUF5REUsYUF6RFcsQUF5RFYsU0FBUyxDQUFDLFFBQVEsQ0FBQztFQUNsQixLQUFLLEUxRVpLLE9BQWlCO0MwRWE1Qjs7QUEzREgsQUE2REUsYUE3RFcsQUE2RFYsU0FBUyxDQUFDLFFBQVEsQUFBQSxRQUFRLENBQUM7RUFDMUIsVUFBVSxFMUVoQkEsT0FBaUI7RTBFaUIzQixPQUFPLEVBQUUsSUFBSTtFQUNiLFNBQVMsRUFBRSxLQUFLO0NBQ2pCOztBQWpFSCxBQW1FRSxhQW5FVyxBQW1FVixXQUFXLENBQUMsUUFBUSxDQUFDO0VBQ3BCLEtBQUssRTFFTkEsT0FBaUI7QzBFT3ZCOztBQXJFSCxBQXVFRSxhQXZFVyxBQXVFVixXQUFXLENBQUMsUUFBUSxBQUFBLFFBQVEsQ0FBQztFQUM1QixVQUFVLEUxRVZMLE9BQWlCO0UwRVd0QixPQUFPLEVBQUUsR0FBRztDQUNiOztBQTFFSCxBQTRFRSxhQTVFVyxBQTRFVixRQUFRLENBQUMsUUFBUTtBQTVFcEIsYUFBYSxBQTZFVixRQUFRLENBQUMsUUFBUSxDQUFDO0VBQ2pCLEtBQUssRTFFVkQsT0FBZ0I7QzBFV3JCOztBQS9FSCxBQWlGRSxhQWpGVyxBQWlGVixRQUFRLENBQUMsUUFBUSxBQUFBLFFBQVE7QUFqRjVCLGFBQWEsQUFrRlYsUUFBUSxDQUFDLFFBQVEsQUFBQSxRQUFRLENBQUM7RUFDekIsVUFBVSxFMUVmTixPQUFnQjtFMEVnQnBCLE9BQU8sRUFBRSxJQUFJO0NBQ2Q7O0FBckZILEFBdUZFLGFBdkZXLENBdUZYLFFBQVEsQ0FBQyxJQUFJLENBQUM7RUFDWixNQUFNLEVBQUUsT0FBTztFQUNmLFdBQVcsRUFBRSxHQUFHO0VBQ2hCLEtBQUssRTFFcERHLE9BQU87RTBFcURmLFVBQVUsRUFBRSxJQUFJO0NBQ2pCOztBQzFGSCxBQUFBLGNBQWMsQ0FBQztFQUdiLElBQUksRUFBRSxRQUFRO0NBeUNmOztBdEVrQkcsTUFBTSxFQUFHLFNBQVMsRUFBRSxLQUFLLE9BQU8sV0FBVyxFQUFFLFFBQVE7RXNFOUR6RCxBQUFBLGNBQWMsQ0FBQztJQU1YLE9BQU8sRUFBRSxJQUFJO0dBc0NoQjs7O0FBNUNELEFBVUUsY0FWWSxDQVVaLElBQUksQ0FBQztFQUdILFVBQVUsRUFBRSxPQUE0QjtFQUN4QyxLQUFLLEUxRWZDLE9BQXdDO0UwRWdCOUMsSUFBSSxFQUFFLE9BQU87RUFDYixNQUFNLEVBQUUsT0FBTztFQUNmLE9BQU8sRUFBRSxRQUFRO0VBQ2pCLGFBQWEsRUFBRSxHQUFHLENBQUMsS0FBSyxDM0VBaEIsS0FBZ0I7QzJFS3pCOztBQXZCSCxBQW9CSSxjQXBCVSxDQVVaLElBQUksQUFVRCxVQUFXLENqQjJCTyxHQUFHLEVpQjNCTDtFQUNmLFlBQVksRUFBRSxHQUFHLENBQUMsS0FBSyxDM0VIakIsS0FBZ0I7QzJFSXZCOztBQXRCTCxBQXlCRSxjQXpCWSxDQXlCWixJQUFJLEFBQUEsTUFBTTtBQXpCWixjQUFjLEFBMEJYLElBQUssQ0FBQSxNQUFNLEVBQUUsSUFBSSxBQUFBLFNBQVMsQ0FBQztFQUMxQixVQUFVLEVBQUUsT0FBNkI7RUFDekMsS0FBSyxFQUFFLElBQUk7Q0FDWjs7QUE3QkgsQUErQkUsY0EvQlksQ0ErQlosS0FBSyxDQUFDO0VBR0osV0FBVyxFQUFFLEdBQUc7Q0FDakI7O0FBbkNILEFBcUNFLGNBckNZLENBcUNaLElBQUksQ0FBQztFQUdILElBQUksRUFBRSxRQUFRO0VBQ2QsVUFBVSxFQUFFLEtBQUs7RUFDakIsU0FBUyxFQUFFLElBQUk7Q0FDaEI7O0FONUJBLEFBQUQsY0FBTyxDT2pCTTtFQUNiLFVBQVUsRUFBRSxLQUFLO0NBZ0JsQjs7QUFqQkQsQUFHRSxjQUhZLENBR1osYUFBYSxDQUFDO0VBQ1osVUFBVSxFQUFFLEdBQUc7RUFPZixVQUFVLEVBQUUsTUFBTTtDQUtuQjs7QXZFZ0RDLE1BQU0sRUFBRyxTQUFTLEVBQUUsTUFBTTtFdUVoRTlCLEFBR0UsY0FIWSxDQUdaLGFBQWEsQ0FBQztJQUlWLFVBQVUsRUFBRSxJQUFJO0dBU25COzs7QUFoQkgsQUFhSSxjQWJVLENBR1osYUFBYSxDQVVYLE9BQU8sQ0FBQztFQUNOLE1BQU0sRUFBRSxNQUFNO0NBQ2Y7O0FDZkwsQUFBQSxXQUFXLENBQUM7RUFHVixVQUFVLEU3RWlCQSxLQUFnQjtFNkVoQjFCLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLE9BQU8sRUFBRSxJQUFJO0VBQ2IsT0FBTyxFcEREeVIsR0FBRztFb0RFblMsTUFBTSxFQUFFLE9BQU87Q0ErQmhCOztBQXRDRCxBQVNFLFdBVFMsQUFTUixRQUFRLENBQUM7RUFDUixPQUFPLEVBQUUsS0FBSztDQUNmOztBQVhILEFBYUUsV0FiUyxDQWFULE1BQU0sQ0FBQztFQUdMLE9BQU8sRUFBRSxJQUFJO0VBQ2IsVUFBVSxFQUFFLE1BQU07RUFDbEIsU0FBUyxFQUFFLEtBQUs7RUFDaEIsYUFBYSxFN0V1R0YsR0FBRyxDQUNILEtBQUssQ0FyQlQsT0FBZTtFNkVsRnRCLE1BQU0sRUFBRSxDQUFDO0NBQ1Y7O0FBckJILEFBdUJFLFdBdkJTLENBdUJULENBQUMsQ0FBQztFQUdBLEtBQUssRTdFR0EsT0FBZTtFNkVGcEIsT0FBTyxFQUFFLG1CQUFtQjtDQVU3Qjs7QUFyQ0gsQUE2QkksV0E3Qk8sQ0F1QlQsQ0FBQyxBQU1FLFFBQVEsQ0FBQztFQUNSLEtBQUssRUFBRSxHQUFHO0VBQ1YsVUFBVSxFQUFFLE1BQU07Q0FDbkI7O0FBaENMLEFBa0NJLFdBbENPLENBdUJULENBQUMsQUFXRSxNQUFNLENBQUM7RUFDTixVQUFVLEVBQUUsT0FBOEI7Q0FDM0M7O0FDcENMLEFBQUEsZUFBZSxDQUFDO0VBR2QsS0FBSyxFN0VGRyxPQUF3QztFNkVHaEQsU0FBUyxFQUFFLElBQUk7RUFDZixXQUFXLEVBQUUsVUFBVTtFQUN2QixXQUFXLEVBQUUsTUFBTTtFQUNuQixVQUFVLEVBQUUsR0FBRztDQW9EaEI7O0FBM0RELEFBU0UsZUFUYSxDQVNiLEVBQUUsQ0FBQztFQUNELFVBQVUsRUFBRSxNQUFNO0NBS25COztBQWZILEFBWUksZUFaVyxDQVNiLEVBQUUsQUFHQyxZQUFZLENBQUM7RUFDWixLQUFLLEVBQUUsR0FBRztDQUNYOztBQWRMLEFBaUJFLGVBakJhLENBaUJiLEtBQUssQ0FBQztFQUNKLFFBQVEsRUFBRSxNQUFNO0NBQ2pCOztBQW5CSCxBQXFCRSxlQXJCYSxDQXFCYixLQUFLLENBQUMsRUFBRSxDQUFDO0VBQ1AsV0FBVyxFQUFFLElBQUk7Q0FDbEI7O0FBdkJILEFBeUJFLGVBekJhLENBeUJiLFdBQVcsQUFBQSxRQUFRLENBQUM7RUFDbEIsY0FBYyxFQUFFLFdBQVc7Q0FDNUI7O0FBM0JILEFBOEJJLGVBOUJXLENBNkJiLEVBQUUsQUFDQyxPQUFPLENBQUM7RUFDUCxNQUFNLEVBQUUsT0FBTztDQUNoQjs7QUFoQ0wsQUFrQ0ksZUFsQ1csQ0E2QmIsRUFBRSxBQUtDLE9BQU8sQUFBQSxNQUFNLENBQUM7RUFDYixLQUFLLEVBQUUsT0FBTztDQUNmOztBQXBDTCxBQXVDRSxlQXZDYSxDQXVDYixPQUFPLENBQUM7RUFDTixNQUFNLEVBQUUsTUFBTTtDQUNmOztBekV1QkMsTUFBTSxFQUFHLFNBQVMsRUFBRSxLQUFLLE9BQU8sV0FBVyxFQUFFLFFBQVE7RXlFaEV6RCxBQUFBLGVBQWUsQ0FBQztJQTRDWixTQUFTLEVBQUUsUUFBUTtJQUNuQixlQUFlLEVBQUUsTUFBTTtJQUN2QixjQUFjLEVuRHZDTixLQUFLO0ltRHdDYixhQUFhLEU5RTJFRixHQUFHLENBQ0gsS0FBSyxDQXJCVCxPQUFlO0k4RXREdEIsTUFBTSxFQUFFLENBQUM7R0FXWjtFQTNERCxBQWlCRSxlQWpCYSxDQWlCYixLQUFLLENBaUNHO0lBQ0osSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQXlCO0lBQ25DLFdBQVcsRW5EN0NMLEtBQUs7R21EOENaO0VBckRMLEFBdURJLGVBdkRXLEdBdURULENBQUMsQ0FBQztJQUNGLEtBQUssRUFBRSxDQUFDO0dBQ1Q7OztBVHJCRixBQUFELG9CQUFhLENVcENNO0VBQ25CLFVBQVUsRUFBQyxLQUFDO0NBQ2I7O0FFQUQsQURGQSxnQkNFZ0IsRUNGaEIsZUFBZSxDRkFIO0VuRGdDVixVQUFVLEVBQUUsSUFBSTtFbUQzQmhCLFVBQVUsRUFBRSxJQUFJO0VBQ2hCLFVBQVUsRWhGY0EsS0FBZ0I7RWdGYjFCLFFBQVEsRUFBRSxNQUFNO0VBQ2hCLFVBQVUsRUFBRSxJQUFJO0VBQ2hCLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLFdBQVcsRUFBRSxJQUFJO0NBNENsQjs7QW5EcEJDLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSztFb0RoQ3RCLEFERkEsZ0JDRWdCLEVDRmhCLGVBQWUsQ0ZBSDtJbkRtQ1IsUUFBUSxFQUFFLE1BQU07R21EbUJuQjtFQ3BERCxBcERtQ0ksZ0JvRG5DWSxBcERtQ1gsTUFBTSxFcURyQ1gsZUFBZSxBckRxQ1YsTUFBTSxDQUFDO0lBQ04sVUFBVSxFQUFFLElBQUk7R0FDakI7OztBb0RyQ0wsQURVRSxnQkNWYyxHRFVaLEdBQUcsRUVaUCxlQUFlLEdGWVgsR0FBRyxDQUFDO0VBR0osV0FBVyxFQUFFLE9BQU87RW5EYXRCLFVBQVUsRUFEYSxHQUFHLENGUk4sS0FBSztDcURLeEI7O0FDdEJILEFEaUJJLGdCQ2pCWSxHRFVaLEdBQUcsQUFPRixNQUFNLEVFbkJYLGVBQWUsR0ZZWCxHQUFHLEFBT0YsTUFBTSxFQ2pCWCxnQkFBZ0IsR0RVWixHQUFHLEFBUUYsT0FBTyxFRXBCWixlQUFlLEdGWVgsR0FBRyxBQVFGLE9BQU8sQ0FBQztFQUNQLEtBQUssRS9FcEJELE9BQXdDO0UrRXFCNUMsVUFBVSxFQUFFLE9BQTRCO0NBQ3pDOztBQ3JCTCxBRHdCRSxnQkN4QmMsQ0R3QmQsR0FBRyxFRTFCTCxlQUFlLENGMEJiLEdBQUcsQ0FBQztFQUdGLE1BQU0sRUFBRSxPQUFPO0VBQ2YsYUFBYSxFQUFFLElBQUk7RUFDbkIsVUFBVSxFQUFFLE1BQU07RUFDbEIsZUFBZSxFQUFFLE1BQU07RUFDdkIsU0FBUyxFQUFFLElBQUk7RUFDZixPQUFPLEVBQUUsSUFBSTtFQUNiLE9BQU8sRUFBRSxJQUFJO0VuRFBmLFVBQVUsRUFEYSxHQUFHLENGUk4sS0FBSztDcURtQnhCOztBQ3BDSCxBRHNDRSxnQkN0Q2MsR0RzQ1osR0FBRyxBQUFBLE1BQU0sQ0FBQyxHQUFHLEVFeENqQixlQUFlLEdGd0NYLEdBQUcsQUFBQSxNQUFNLENBQUMsR0FBRyxDQUFDO0VBQ2QsT0FBTyxFQUFFLEVBQUU7Q0FPWjs7QUM5Q0gsQUR5Q0ksZ0JDekNZLEdEc0NaLEdBQUcsQUFBQSxNQUFNLENBQUMsR0FBRyxBQUdaLE1BQU0sRUUzQ1gsZUFBZSxHRndDWCxHQUFHLEFBQUEsTUFBTSxDQUFDLEdBQUcsQUFHWixNQUFNLENBQUM7RUFDTixVQUFVLEVoRk5KLE9BQU87RWdGT2IsS0FBSyxFaEZKTSxJQUFJO0VnRktmLE9BQU8sRUFBRSxDQUFDO0NBQ1g7O0FDN0NMLEFEZ0RFLGdCQ2hEYyxDRGdEZCxJQUFJLEVFbEROLGVBQWUsQ0ZrRGIsSUFBSSxDQUFDO0VBQ0gsVUFBVSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENoRm1EZCxPQUFlO0VnRmxEdEIsTUFBTSxFQUFFLE9BQU87Q0FDaEI7O0FDbkRILEFBQUEsZ0JBQWdCLENBQUM7RUFHZixVQUFVLEVBQUUsSUFBSTtDQW9EakI7O0FBdkRELEFBS0UsZ0JBTGMsQ0FLZCxFQUFFLENBQUM7RUFHRCxJQUFJLEVBQUUsUUFBUTtFQUNkLFNBQVMsRUFBRSxHQUFHO0VBQ2QsV0FBVyxFQUFFLENBQUM7RUFDZCxNQUFNLEVBQUUsTUFBTTtFQUNkLFVBQVUsRUFBRSxNQUFNO0NBQ25COztBQWJILEFBZUUsZ0JBZmMsR0FlWixHQUFHLENBQUM7RUFDSixNQUFNLEVBQUUsT0FBTztDQXVCaEI7O0FBdkNILEFBa0JJLGdCQWxCWSxHQWVaLEdBQUcsQUFHRixPQUFPLEVBbEJaLGdCQUFnQixHQWVaLEdBQUcsQUFJRixPQUFPLENBQUM7RUFDUCxLQUFLLEVoRnJCRCxPQUF3QztDZ0YyQjdDOztBQTFCTCxBQXNCTSxnQkF0QlUsR0FlWixHQUFHLEFBR0YsT0FBTyxHQUlKLElBQUksRUF0QlosZ0JBQWdCLEdBZVosR0FBRyxBQUlGLE9BQU8sR0FHSixJQUFJLENBQUM7RUFDTCxLQUFLLEVqRmdCSSxJQUFJO0VpRmZiLFVBQVUsRWpGWU4sT0FBTztDaUZYWjs7QUF6QlAsQUE0QkksZ0JBNUJZLEdBZVosR0FBRyxHQWFELElBQUksQ0FBQztFQUdMLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQWpDRixLQUFLO0VBa0NaLGVBQWUsRUFBRSxNQUFNO0VBQ3ZCLEtBQUssRWpGR0MsT0FBTztFaUZGYixXQUFXLEVBQUUsSUFBSTtFQUNqQixNQUFNLEVBQUUsSUFBSTtFQUNaLFlBQVksRUFBRSxJQUFJO0VBQ2xCLE9BQU8sRUFBRSxFQUFFO0NBQ1o7O0FBdENMLEFBeUNFLGdCQXpDYyxDQXlDZCxTQUFTLENBQUM7RUFDUixLQUFLLEVBNUNJLEtBQUs7RUE2Q2QsTUFBTSxFQTdDRyxLQUFLO0NBOENmOztBQTVDSCxBQThDRSxnQkE5Q2MsQ0E4Q2QsZUFBZSxDQUFDO0VBQ2QsT0FBTyxFQUFFLEVBQUU7Q0FPWjs7QUF0REgsQUFpREksZ0JBakRZLENBOENkLGVBQWU7QUE5Q2pCLGdCQUFnQixDQThDZCxlQUFlLENBSWIsT0FBTyxDQUFDO0VBQ04sVUFBVSxFakZQRixPQUFpQixDaUZPQSxVQUFVO0VBQ25DLEtBQUssRWpGTFEsSUFBSSxDaUZLUSxVQUFVO0NBQ3BDOztBQ3ZETCxBQUdFLGVBSGEsQ0FHYixLQUFLLENBQUM7RUFHSixXQUFXLEVBQUUsT0FBTztFQUNwQixJQUFJLEVBQUUsUUFBUTtFQUNkLFFBQVEsRUFBRSxNQUFNO0NBQ2pCOztBQVRILEFBV0UsZUFYYSxDQVdiLFVBQVUsQ0FBQztFQUdULE1BQU0sRUFBRSxNQUFNO0NBQ2Y7O0FBZkgsQUFpQkUsZUFqQmEsQ0FpQmIsT0FBTyxDQUFDO0VBR04sZUFBZSxFQUFFLE1BQU07RUFDdkIsS0FBSyxFQUFFLEtBQUs7RUFDWixZQUFZLEVBQUUsSUFBSTtFQUNsQixVQUFVLEVBQUUsSUFBSTtDQUNqQjs7QUF4QkgsQUEwQkUsZUExQmEsQ0EwQmIsQ0FBQyxDQUFDO0VBQ0EsU0FBUyxFQUFFLEtBQUs7RUFDaEIsT0FBTyxFQUFFLEdBQUc7RUFDWixVQUFVLEVBQUUsSUFBSTtDQUNqQjs7QUE5QkgsQUFnQ0UsZUFoQ2EsQ0FnQ2IsUUFBUSxDQUFDLENBQUMsQ0FBQztFQUNULE9BQU8sRUFBRSxHQUFHO0NBQ2I7O0FBbENILEFBb0NFLGVBcENhLENBb0NiLE9BQU8sQ0FBQyxDQUFDLENBQUM7RUFDUixPQUFPLEVBQUUsR0FBRztFQUNaLEtBQUssRWxGUUssT0FBaUI7Q2tGUDVCOztBQXZDSCxBQXlDRSxlQXpDYSxDQXlDYixPQUFPLEFBQUEsUUFBUSxDQUFDLENBQUMsQ0FBQztFQUNoQixPQUFPLEVBQUUsQ0FBQztDQUNYOztBQTNDSCxBQTZDRSxlQTdDYSxHQTZDWCxHQUFHLEFBQUEsVUFBVyxDQUFBLElBQUksRUFBRSxPQUFPLEFBQUEsT0FBTyxDQUFDO0VBQ25DLFVBQVUsRUFBRSxPQUFPO0NBQ3BCOztBQS9DSCxBQWlERSxlQWpEYSxHQWlEWCxHQUFHLEFBQUEsVUFBVyxDQUFBLElBQUksRUFBRSxPQUFPLEFBQUEsT0FBTyxDQUFDO0VBQ25DLFVBQVUsRUFBRSxPQUFPO0NBQ3BCOztBQW5ESCxBQXFERSxlQXJEYSxHQXFEWCxHQUFHLEFBQUEsVUFBVyxDQUFBLElBQUksRUFBRSxPQUFPLEFBQUEsT0FBTyxDQUFDO0VBQ25DLFVBQVUsRUFBRSxPQUFPO0NBQ3BCOztBQXZESCxBQXlERSxlQXpEYSxHQXlEWCxHQUFHLEFBQUEsVUFBVyxDQUFBLElBQUksRUFBRSxPQUFPLEFBQUEsT0FBTyxDQUFDO0VBQ25DLFVBQVUsRUFBRSxPQUFPO0NBQ3BCOztBQTNESCxBQTZERSxlQTdEYSxDQTZEYixPQUFPLEFBQUEsT0FBTyxDQUFDO0VBQ2IsVUFBVSxFQUFFLElBQUk7Q0FPakI7O0FBckVILEFBZ0VJLGVBaEVXLENBNkRiLE9BQU8sQUFBQSxPQUFPLENBR1osQ0FBQyxDQUFDO0VBQ0EsVUFBVSxFQUFFLElBQUk7RUFDaEIsT0FBTyxFQUFFLENBQUM7RUFDVixLQUFLLEVBQUUsSUFBSTtDQUNaOztBQXBFTCxBQXVFRSxlQXZFYSxDQXVFYixNQUFNLENBQUM7RUFDTCxLQUFLLEVsRkpELE9BQWdCO0VrRktwQixPQUFPLEVBQUUsRUFBRTtDQUNaOztBQTFFSCxBQTRFRSxlQTVFYSxHQTRFWCxHQUFHLEFBQUEsTUFBTSxDQUFDLE1BQU0sQUFBQSxNQUFNLENBQUM7RUFDdkIsZ0JBQWdCLEVsRlRaLE9BQWdCO0NrRlVyQjs7QUE5RUgsQUFtRkksZUFuRlcsQ0FnRmIsSUFBSSxBQUdELE1BQU0sQ0FBQyxDQUFDLENBQUM7RUFDUixLQUFLLEVsRjlDQyxPQUFPO0VrRitDYixPQUFPLEVBQUUsQ0FBQztFQUNWLFVBQVUsRUFBRSxJQUFJO0NBQ2pCOztBQXZGTCxBQTBGRSxlQTFGYSxDQTBGYixNQUFNLENBQUM7RUFDTCxVQUFVLEVBQUUsTUFBTTtDQUtuQjs7QUFoR0gsQUE2RkksZUE3RlcsQ0EwRmIsTUFBTSxDQUdKLE1BQU0sQ0FBQztFQUNMLGFBQWEsRUFBRSxJQUFJO0NBQ3BCOztBQS9GTCxBQWtHRSxlQWxHYSxDQWtHYixRQUFRLEVBbEdWLGVBQWUsQ0FrR0gsUUFBUSxDQUFDO0VBQ2pCLFVBQVUsRUFBRSxPQUE4QixDQUFDLFVBQVU7Q0FDdEQ7O0FBcEdILEFBc0dFLGVBdEdhLENBc0diLFFBQVEsQ0FBQztFQUdQLE9BQU8sRUFBRSxrQkFBa0I7Q0FhNUI7O0FBdEhILEFBOEdNLGVBOUdTLENBc0diLFFBQVEsQ0FLTixLQUFLLENBR0gsS0FBSyxDQUFDO0VBQ0osTUFBTSxFQUFFLE9BQU87Q0FDaEI7O0FBaEhQLEFBbUhJLGVBbkhXLENBc0diLFFBQVEsQ0FhTixPQUFPLENBQUM7RUFDTixZQUFZLEVBQUUsSUFBSTtDQUNuQjs7QUNuSEwsQUFDRSxRQURNLEFBQUEsWUFBWSxDQUNsQixRQUFRLENBQUM7RUFDUCxhQUFhLEVBQUUsQ0FBQztDQUNqQjs7QTlFMkRDLE1BQU0sRUFBRyxTQUFTLEVBQUUsS0FBSyxJQUFLLFdBQVcsRUFBRSxTQUFTO0U4RTlEeEQsQUFNSSxRQU5JLEFBQUEsWUFBWSxDQU1oQixvQkFBb0IsQ0FBQztJQUNuQixVQUFVLEVBQUUsb0JBQStDO0dBQzVEOzs7QTlFc0RELE1BQU0sRUFBRyxTQUFTLEVBQUUsS0FBSyxPQUFPLFdBQVcsRUFBRSxRQUFRO0U4RTlEekQsQUFhSSxRQWJJLEFBQUEsWUFBWSxDQWFoQixrQkFBa0IsQ0FBQztJQUNqQixVQUFVLEVBaEJBLE1BQU07R0FpQmpCOzs7QUFJTCxBQUFBLGNBQWMsQ0FBQztFQUdiLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLElBQUksRUFBRSxDQUFDO0VBQ1AsS0FBSyxFQUFFLENBQUM7RUFDUixXQUFXLEVBQUUsSUFBSTtFQUNqQixNQUFNLEVBNUJRLE1BQU07RUE2QnBCLFdBQVcsRUFBRSxNQUFNO0NBcURwQjs7QUFuREUsQUFBRCxrQkFBSyxDQUFDO0VBR0osR0FBRyxFQUFDLE9BQUM7Q0FDTjs7QUFFQSxBQUFELGtCQUFLLENBQUM7RUFHSixNQUFNLEVBQUMsT0FBQztDQUNUOztBQXBCSCxBQXNCRSxjQXRCWSxDQXNCWixLQUFLLENBQUM7RUFDSixJQUFJLEVBQUUsUUFBUTtFQUNkLE9BQU8sRUFBRSxJQUFJO0NBQ2Q7O0FBekJILEFBMkJFLGNBM0JZLENBMkJaLE9BQU8sQ0FBQztFQUNOLElBQUksRUFBRSxRQUFRO0VBQ2QsV0FBVyxFQUFFLElBQUk7RUFDakIsYUFBYSxFQUFFLElBQUk7RUFDbkIsWUFBWSxFbkZzRUQsR0FBRyxDQUNILEtBQUssQ0FyQlQsT0FBZTtDbUZqRHZCOztBQWhDSCxBQWtDRSxjQWxDWSxDQWtDWixlQUFlLENBQUM7RUFHZCxVQUFVLEVBQUUsT0FBTztFQUNuQixTQUFTLEVBQUUsS0FBSztFQUNoQixPQUFPLEVBQUUsTUFBTTtFQUNmLGFBQWEsRUFBRSxTQUFTO0NBQ3pCOztBQUVBLEFBQUQsa0JBQUssQ0FBQyxlQUFlLENBQUM7RUFDcEIsYUFBYSxFQUFFLFNBQVM7Q0FDekI7O0FBN0NILEFBK0NFLGNBL0NZLEFBK0NYLFFBQVEsQ0FBQyxlQUFlLENBQUM7RUFDeEIsVUFBVSxFbkZ2QkEsT0FBaUI7RW1Gd0IzQixLQUFLLEVuRnJCVSxJQUFJO0VtRnNCbkIsV0FBVyxFQUFFLElBQUk7Q0FDbEI7O0FBbkRILEFBcURFLGNBckRZLENBcURaLEtBQUssQ0FBQztFQUNKLFdBQVcsRUFBRSxJQUFJO0NBQ2xCOztBQXZESCxBQXlERSxjQXpEWSxDQXlEWixJQUFJLENBQUM7RUFDSCxXQUFXLEVBQUUsSUFBSTtFQUNqQixXQUFXLEVBQUUsTUFBTTtDQUNwQjs7QUNqRkgsQUFDRSxhQURXLEFBQ1YsV0FBVyxDQUFDO0VBQ1gsT0FBTyxFQUFFLElBQUk7RUFDYixTQUFTLEVBQUUsSUFBSTtDQUtoQjs7QS9Fd0RDLE1BQU0sRUFBRyxTQUFTLEVBQUUsS0FBSztFK0VoRTdCLEFBQ0UsYUFEVyxBQUNWLFdBQVcsQ0FBQztJQUtULFNBQVMsRUFBRSxLQUFLO0dBRW5COzs7QUFSSCxBQVVFLGFBVlcsR0FVVCxHQUFHLENBQUM7RUFDSixPQUFPLEVBQUUsSUFBSTtFQUNiLFVBQVUsRUFBRSxJQUFJO0NBQ2pCOztBQWJILEFBZUUsYUFmVyxDQWVYLE1BQU0sQ0FBQztFQUNMLFVBQVUsRUFBRSxJQUFJO0NBU2pCOztBQXpCSCxBQWtCSSxhQWxCUyxDQWVYLE1BQU0sQ0FHSixPQUFPLENBQUM7RUFDTixNQUFNLEVBQUUsY0FBYztDQUt2Qjs7QUF4QkwsQUFxQk0sYUFyQk8sQ0FlWCxNQUFNLENBR0osT0FBTyxDQUdMLFFBQVEsQ0FBQztFQUNQLFdBQVcsRUFBRSxJQUFJO0NBQ2xCOztBQXZCUCxBQTJCRSxhQTNCVyxDQTJCWCxFQUFFLENBQUM7RUFDRCxhQUFhLEVBQUUsSUFBSTtDQWtCcEI7O0FBOUNILEFBOEJJLGFBOUJTLENBMkJYLEVBQUUsQ0FHQSxDQUFDLENBQUM7RUFDQSxTQUFTLEVBQUUsSUFBSTtFQU1mLFdBQVcsRUFBRSxJQUFJO0VBQ2pCLE9BQU8sRUFBRSxFQUFFO0VBQ1gsTUFBTSxFQUFFLE9BQU87Q0FNaEI7O0FBN0NMLEFBaUNNLGFBakNPLENBMkJYLEVBQUUsQ0FHQSxDQUFDLEVBOUJMLGFBQWEsQ0EyQlgsRUFBRSxDQUdBLENBQUMsQUFHSyxRQUFRLENBQUM7RUFDWCxjQUFjLEVBQUUsR0FBRztDQUNwQjs7QUFuQ1AsQUF5Q00sYUF6Q08sQ0EyQlgsRUFBRSxDQUdBLENBQUMsQUFXRSxNQUFNLENBQUM7RUFDTixPQUFPLEVBQUUsRUFBRTtFQUNYLEtBQUssRXBGTEQsT0FBTztDb0ZNWjs7QUE1Q1AsQUFnREUsYUFoRFcsQ0FnRFgsWUFBWSxDQUFDO0VBQ1gsVUFBVSxFQUFFLElBQUk7RUFDaEIsU0FBUyxFQUFFLElBQUk7RUFjZixRQUFRLEVBQUUsTUFBTTtDQUNqQjs7QUFqRUgsQUFvREksYUFwRFMsQ0FnRFgsWUFBWSxDQUlWLElBQUksQ0FBQztFQUNILE9BQU8sRUFBRSxZQUFZO0NBQ3RCOztBQXRETCxBQXdESSxhQXhEUyxDQWdEWCxZQUFZLENBUVYsTUFBTSxDQUFDO0VBQ0wsT0FBTyxFQUFFLEdBQUc7Q0FLYjs7QUE5REwsQUEyRE0sYUEzRE8sQ0FnRFgsWUFBWSxDQVFWLE1BQU0sQUFHSCxNQUFNLENBQUM7RUFDTixPQUFPLEVBQUUsQ0FBQztDQUNYOztBQTdEUCxBQW1FRSxhQW5FVyxBQW1FVixZQUFZLENBQUMsV0FBVyxDQUFDO0VBQ3hCLE1BQU0sRUFBRSxjQUFjO0NBQ3ZCOztBRXJFSCxBQUFBLGFBQWEsQ0FBQyxNQUFNLENBQUM7RUFHbkIsT0FBTyxFQUFFLElBQUk7RUFDYixVQUFVLEVyRkhGLE9BQXdDO0VxRkloRCxVQUFVLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsS0FBSztDQTRGL0M7O0FBakdELEFBT0UsYUFQVyxDQU9WLFVBQUksQ0FBQztFQUNKLFNBQVMsRUFBRSxTQUFTO0VBQ3BCLGFBQWEsRUFBRSxHQUFHO0NBQ25COztBQVZILEFBWUUsYUFaVyxDQVlWLGFBQU8sQ0FBQztFQUNQLFNBQVMsRUFBRSxZQUFZO0VBQ3ZCLFVBQVUsRUFBRSxHQUFHO0NBQ2hCOztBQWZILEFBaUJFLGFBakJXLENBQUMsTUFBTSxDQWlCbEIsVUFBVSxDQUFDO0VBQ1QsSUFBSSxFQUFFLFNBQVM7RXpEVWpCLFVBQVUsRUFEYSxHQUFHLENGUk4sS0FBSztDMkQ4Q3hCOztBQWpFSCxBQXNCSSxhQXRCUyxDQUFDLE1BQU0sQ0FpQmxCLFVBQVUsQUFLUCxNQUFNLENBQUM7RUFDTixVQUFVLEVBQUUsc0JBQXlCO0NBQ3RDOztBQXhCTCxBQTBCSSxhQTFCUyxDQUFDLE1BQU0sQ0FpQmxCLFVBQVUsQUFTUCxnQkFBZ0IsQ0FBQztFQUNoQixVQUFVLEVBQUUsc0JBQXlCO0NBQ3RDOztBQTVCTCxBQXFDTSxhQXJDTyxDQUFDLE1BQU0sQ0FpQmxCLFVBQVUsQUFpQlAsUUFBUSxBQUdOLE1BQU0sQ0FBQztFQUNOLFVBQVUsRUFBRSxzQkFBc0I7Q0FDbkM7O0FBdkNQLEFBeUNNLGFBekNPLENBQUMsTUFBTSxDQWlCbEIsVUFBVSxBQWlCUCxRQUFRLEFBT04sZ0JBQWdCLENBQUM7RUFDaEIsVUFBVSxFQUFFLHNCQUFzQjtDQUNuQzs7QUEzQ1AsQUE2Q00sYUE3Q08sQ0FBQyxNQUFNLENBaUJsQixVQUFVLEFBaUJQLFFBQVEsQ0FXUCxLQUFLLENBQUM7RUFDSixnQkFBZ0IsRXJGekNkLGtDQUE0QjtDcUYwQy9COztBQS9DUCxBQXFETSxhQXJETyxDQUFDLE1BQU0sQ0FpQmxCLFVBQVUsQUFpQ1AsTUFBTSxBQUdKLE1BQU0sQ0FBQztFQUNOLFVBQVUsRUFBRSxzQkFBcUI7Q0FDbEM7O0FBdkRQLEFBeURNLGFBekRPLENBQUMsTUFBTSxDQWlCbEIsVUFBVSxBQWlDUCxNQUFNLEFBT0osZ0JBQWdCLENBQUM7RUFDaEIsVUFBVSxFQUFFLHNCQUFxQjtDQUNsQzs7QUEzRFAsQUE2RE0sYUE3RE8sQ0FBQyxNQUFNLENBaUJsQixVQUFVLEFBaUNQLE1BQU0sQ0FXTCxLQUFLLENBQUM7RUFDSixnQkFBZ0IsRXJGekRkLGdDQUE0QjtDcUYwRC9COztBQUlMLEFBQUEsS0FBSyxDQW5FUCxhQUFhLENBQUMsTUFBTSxDQW1FVixVQUFVLENBQUMsR0FBRyxDQUFDO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0NBQ3ZCOztBQXJFSCxBQXVFRSxhQXZFVyxDQUFDLE1BQU0sQ0F1RWxCLEtBQUssQ0FBQztFQUNKLE9BQU8sRUFBRSxLQUFLO0VBQ2QsTUFBTSxFQUFFLE9BQU87RUFDZixLQUFLLEVBQUUsSUFBSTtFQUNYLE1BQU0sRUFBRSxJQUFJO0NBU2I7O0FBUEMsQUFBQSxLQUFLLENBN0VULGFBQWEsQ0FBQyxNQUFNLENBdUVsQixLQUFLLENBTUs7RUFDTix3R0FBd0c7RUFDeEcsS0FBSyxFQUFFLElBQUk7RUFDWCxNQUFNLEVBQUUsU0FBUztFQUNqQixJQUFJLEVBQUUsQ0FBQztFQUNQLEdBQUcsRUFBRSxJQUFJO0NBQ1Y7O0FBbkZMLEFBc0ZFLGFBdEZXLENBQUMsTUFBTSxDQXNGbEIsS0FBSyxBQUFBLFFBQVE7QUF0RmYsYUFBYSxDQUFDLE1BQU0sQ0F1RmxCLEtBQUssQUFBQSxNQUFNLENBQUM7RUFDVixNQUFNLEVBQUUsR0FBRztFQUNYLEtBQUssRUFBRSxHQUFHO0VBQ1YsTUFBTSxFQUFFLEdBQUc7Q0FNWjs7QUFKQyxBQUFBLEtBQUssQ0E1RlQsYUFBYSxDQUFDLE1BQU0sQ0FzRmxCLEtBQUssQUFBQSxRQUFRLEVBTVgsS0FBSztBQTVGVCxhQUFhLENBQUMsTUFBTSxDQXVGbEIsS0FBSyxBQUFBLE1BQU0sQ0FLRDtFQUNOLEtBQUssRUFBRSxHQUFHO0VBQ1YsR0FBRyxFQUFFLENBQUM7Q0FDUDs7QUM5RkYsQUFBRCxvQkFBUSxDQUFDO0VBR1AsU0FBUyxFQUFFLEtBQUs7RUFDaEIsVUFBVSxFQUFFLE1BQU07Q0E0RG5COztBQWhFQSxBQU1DLG9CQU5NLEdBTUosQ0FBQyxDQUFDO0VBQ0YsTUFBTSxFQUFFLE9BQU87Q0FDaEI7O0FBUkYsQUFVQyxvQkFWTSxDQVVOLE1BQU0sQ0FBQztFQUdMLEtBQUssRUFBRSxJQUFJO0NBS1o7O0FBbEJGLEFBZUcsb0JBZkksQ0FVTixNQUFNLEFBS0gsVUFBVSxDQUFDLE1BQU0sQUFBQSxRQUFRLENBQUM7RUFDekIsVUFBVSxFQUFFLE1BQU07Q0FDbkI7O0FBakJKLEFBb0JDLG9CQXBCTSxDQW9CTixTQUFTLENBQUM7RUFHUixVQUFVLEV2RkpKLEtBQWdCO0V1Rkt0QixPQUFPLEVBQUUsSUFBSTtFQUNiLFdBQVcsRUFBRSxNQUFNO0NBa0JwQjs7QUEzQ0YsQUEyQkcsb0JBM0JJLENBb0JOLFNBQVMsQ0FPUCxNQUFNLENBQUM7RUFDTCxhQUFhLEVBQUUsR0FBRztDQUNuQjs7QUE3QkosQUFvQ0ssb0JBcENFLENBb0JOLFNBQVMsQ0FXUCxTQUFTLENBS1AsS0FBSztBQXBDVixvQkFBTyxDQW9CTixTQUFTLENBV1AsU0FBUyxDQU1QLEtBQUssQ0FBQztFQUNKLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLE1BQU0sRUFBRSxHQUFHO0VBQ1gsY0FBYyxFQUFFLE1BQU07Q0FDdkI7O0FBekNOLEFBNkNDLG9CQTdDTSxDQTZDTixRQUFRLENBQUM7RUFHUCxlQUFlLEVBQUUsT0FBTztDQWV6Qjs7QUEvREYsQUFrREcsb0JBbERJLENBNkNOLFFBQVEsQ0FLTixPQUFPLENBQUM7RUFDTixVQUFVLEVBQUUsT0FBTztFQUNuQixLQUFLLEVBQUUsSUFBSTtFQUlYLEtBQUssRUFBRSxJQUFJO0VBQ1gsVUFBVSxFQUFFLElBQUk7Q0FLakI7O0FBOURKLEFBMERLLG9CQTFERSxDQTZDTixRQUFRLENBS04sT0FBTyxBQVFKLE1BQU0sQ0FBQztFQUVOLFVBQVUsRUFBRSxPQUFPO0NBQ3BCOztBRjNEVCxBQUFBLGtCQUFrQixDQUFDO0VBQ2pCLFVBQVUsRUFBRSxLQUFLO0VBQ2pCLGFBQWEsRUFBRSxHQUFHO0NBS25COztBQVBELEFBSUUsa0JBSmdCLENBSWhCLFFBQVEsQ0FBQztFQUNQLFdBQVcsRUFBRSxJQUFJO0NBQ2xCOztBQUdILEFBQUEsYUFBYSxDQUFDO0VBQ1osT0FBTyxFQUFFLElBQUk7RUFDYixxQkFBcUIsRUFBRSxpQkFBaUI7RUFDeEMsa0JBQWtCLEVBQUUsNEJBQTRCO0VBQ2hELG1CQUFtQixFQUFFLDRIQUE0SDtFQUNqSixXQUFXLEVBQUUsSUFBSTtDQTZCbEI7O0FBbENELEFBT0UsYUFQVyxDQU9YLFdBQVcsQ0FBQztFQUNWLFNBQVMsRUFBRSxPQUFPO0NBQ25COztBQVRILEFBV0UsYUFYVyxDQVdYLFFBQVEsQ0FBQztFQUNQLE1BQU0sRUFBRSxPQUFPO0NBQ2hCOztBRXhCQSxBQUFELG9CQUFRLENGMEJDO0VBQ1AsU0FBUyxFQUFFLE9BQU87Q0FDbkI7O0FDN0JILEFBT0UsYUFQVyxDQU9WLFVBQUksQ0R5Qkc7RUFDSixhQUFhLEVBQUUsR0FBRztDQUNuQjs7QUNsQ0wsQUFZRSxhQVpXLENBWVYsYUFBTyxDRHdCRztFQUNQLFNBQVMsRUFBRSxZQUFZO0VBQ3ZCLFVBQVUsRUFBRSxHQUFHO0NBQ2hCOztBQTNCTCxBQThCRSxhQTlCVyxDQThCWCxTQUFTLENBQUM7RUFDUixVQUFVLEVyRm5CRCxPQUE0QjtFcUZvQnJDLFNBQVMsRUFBRSxJQUFJO0NBQ2hCOztBRzNDSCxBQUFBLGVBQWUsQ0FBQztFQUdkLGFBQWEsRUFBRSxHQUFHLENBQUMsS0FBSyxDeEZpR2YsT0FBZTtDd0ZoRHpCOztBQXBERCxBQUtFLGVBTGEsQ0FLYixJQUFJLENBQUM7RUFDSCxTQUFTLEVBQUUsTUFBTTtFQUNqQixTQUFTLEVBQUUsQ0FBQztDQUNiOztBQVJILEFBVUUsZUFWYSxDQVViLGFBQWEsQ0FBQztFQUNaLElBQUksRUFBRSxRQUFRO0VBQ2QsZUFBZSxFQUFFLFVBQVU7RUFDM0IsYUFBYSxFQUFFLENBQUM7Q0FDakI7O0FBZEgsQUFnQkUsZUFoQmEsQ0FnQmIsTUFBTSxDQUFDO0VBQ0wsSUFBSSxFQUFFLE9BQU87Q0FDZDs7QUFsQkgsQUFvQkUsZUFwQmEsQ0FvQmIsT0FBTyxDQUFDO0VBQ04sVUFBVSxFeEY2Q04sT0FBZ0I7RXdGNUNwQixLQUFLLEV4RjhDTSxJQUFJO0V3RjdDZixPQUFPLEVBQUUsS0FBSztFQUNkLGFBQWEsRUFBRSxHQUFHO0VBQ2xCLFlBQVksRUFBRSxHQUFHO0NBQ2xCOztBQTFCSCxBQTRCRSxlQTVCYSxDQTRCYixLQUFLLENBQUM7RUFHSixVQUFVLEVBQUUsT0FBTztFQUNuQixPQUFPLEVBQUUsTUFBTTtFQUNmLE9BQU8sRUFBRSxFQUFFO0NBa0JaOztBQW5ESCxBQW1DSSxlQW5DVyxDQTRCYixLQUFLLENBT0gsQ0FBQyxBQUFBLFFBQVEsQ0FBQztFQUNSLFNBQVMsRUFBRSxLQUFLO0VBQ2hCLE9BQU8sRUFBRSxHQUFHO0VBQ1osS0FBSyxFeEY0QkgsT0FBZ0I7RXdGM0JsQixZQUFZLEVBQUUsS0FBSztDQUNwQjs7QUF4Q0wsQUEwQ0ksZUExQ1csQ0E0QmIsS0FBSyxBQWNGLEdBQUcsQ0FBQyxDQUFDLEFBQUEsUUFBUSxDQUFDO0VBQ2IsT0FBTyxFQUFFLEdBQUc7RUFDWixLQUFLLEV4RkFHLE9BQWlCO0N3RkMxQjs7QUE3Q0wsQUErQ0ksZUEvQ1csQ0E0QmIsS0FBSyxBQW1CRixNQUFNLENBQUM7RUFDTixVQUFVLEV4RjFCSCxPQUE0QjtFd0YyQm5DLE9BQU8sRUFBRSxDQUFDO0NBQ1g7O0FBSUwsNEJBQTRCO0FBQzVCLEFBQUEsV0FBVyxBQUFBLFFBQVEsQ0FBQztFQUNsQixPQUFPLEVBQUUsSUFBSTtFQUNiLFNBQVMsRUFBRSxLQUFLO0NBQ2pCOztBQzVERCxBQUFBLGNBQWMsQ0FBQztFQUNiLFNBQVMsRUFBRSxJQUFJO0NBaURoQjs7QUFsREQsQUFHRSxjQUhZLEdBR1YsR0FBRyxDQUFDO0VBQ0osUUFBUSxFQUFFLGtCQUFrQjtDQUk3Qjs7QUFSSCxBQVVFLGNBVlksQ0FVWixLQUFLLENBQUM7RUFHSixVQUFVLEV6RnlDSCxPQUFPO0V5RnhDZCxLQUFLLEV6RjJCUSxJQUFJO0V5RjFCakIsT0FBTyxFQUFFLEdBQUc7RUFDWixhQUFhLEVBQUUsR0FBRztFQUNsQixVQUFVLEVBQUUsSUFBSTtDQU1qQjs7QUF2QkgsQUFtQkksY0FuQlUsQ0FVWixLQUFLLEFBU0YsUUFBUSxDQUFDO0VBQ1IsU0FBUyxFQUFFLEtBQUs7RUFDaEIsWUFBWSxFQUFFLElBQUk7Q0FDbkI7O0FBdEJMLEFBeUJFLGNBekJZLENBeUJaLE1BQU0sQ0FBQztFQUdMLFNBQVMsRUFBRSxLQUFLO0VBQ2hCLFVBQVUsRUFBRSxHQUFHO0VBVWYsVUFBVSxFQUFFLElBQUk7RUFDaEIsVUFBVSxFQUFFLElBQUk7Q0FDakI7O0FBekNILEFBK0JJLGNBL0JVLENBeUJaLE1BQU0sQ0FNSixPQUFPLENBQUM7RUFHTixJQUFJLEVBQUUsT0FBTztFQUNiLGFBQWEsRUFBRSxJQUFJO0VBQ25CLGNBQWMsRUFBRSxJQUFJO0NBQ3JCOztBQXJDTCxBQTJDRSxjQTNDWSxDQTJDWixjQUFjLENBQUM7RUFDYixRQUFRLEVBQUUsa0JBQWtCO0NBQzdCOztBQTdDSCxBQStDRSxjQS9DWSxDQStDWixRQUFRLENBQUM7RUFDUCxVQUFVLEVBQUUsSUFBSTtDQUNqQjs7QUNqREgsQUFBQSxXQUFXLENBQUM7RUFHVixVQUFVLEUxRmlCQSxLQUFnQjtFMEZoQjFCLE9BQU8sRUFBRSxRQUFRO0VBQ2pCLFVBQVUsRUFBRSxJQUFJO0VBQ2hCLFFBQVEsRUFBRSxRQUFRO0NBcUNuQjs7QUEzQ0QsQUFRRSxXQVJTLEFBUVIsTUFBTSxDQUFDO0VBQ04sVUFBVSxFQUFFLE1BQU07Q0FNbkI7O0FBZkgsQUFXSSxXQVhPLEFBUVIsTUFBTSxDQUdMLE9BQU8sQ0FBQztFQUNOLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLE1BQU0sRUFBRSxRQUFRO0NBQ2pCOztBQWRMLEFBaUJFLFdBakJTLENBaUJULFFBQVEsQ0FBQztFQUdQLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLEdBQUcsRUFBRSxDQUFDO0VBQ04sS0FBSyxFQUFFLENBQUM7RUFDUixVQUFVLEVBQUUsT0FBOEI7RUFDMUMsT0FBTyxFQUFFLFNBQVM7RUFDbEIsT0FBTyxFQUFFLElBQUk7RUFDYixPQUFPLEVBQUUsQ0FBQztDQUNYOztBQTNCSCxBQTZCRSxXQTdCUyxBQTZCUixNQUFNLENBQUMsUUFBUSxDQUFDO0VBQ2YsT0FBTyxFQUFFLEtBQUs7Q0FDZjs7QUEvQkgsQUFpQ0UsV0FqQ1MsQ0FpQ1QsUUFBUSxDQUFDLENBQUMsQ0FBQztFQUNULFdBQVcsRUFBRSxHQUFHO0NBQ2pCOztBQW5DSCxBQXFDRSxXQXJDUyxDQXFDVCxNQUFNLENBQUM7RUFHTCxLQUFLLEVBQUUsZ0JBQWdCO0VBQ3ZCLE1BQU0sRUFBRSxVQUFVO0NBQ25COztBQUdILEFBQ0UsZ0JBRGMsQ0FDZCxNQUFNLENBQUM7RUFHTCxLQUFLLEVBQUUsSUFBSTtDQUNaOztBQUxILEFBT0UsZ0JBUGMsQ0FPZCxRQUFRLENBQUM7RUFDUCxLQUFLLEVBQUUsSUFBSTtFQUNYLE1BQU0sRUFBRSxJQUFJO0NBQ2I7O0FDdkRILEFBQUEsZ0JBQWdCLENBQUM7RUFHZixVQUFVLEUzRmlCQSxLQUFnQjtFMkZoQjFCLFVBQVUsRUFBRSxJQUFJO0NBbUNqQjs7QUF2Q0QsQUFNRSxnQkFOYyxDQU1kLEVBQUUsQ0FBQztFQUdELFNBQVMsRUFBRSxLQUFLO0VBQ2hCLE9BQU8sRUFBRSxNQUFNO0VBQ2YsV0FBVyxFQUFFLE1BQU07RUFDbkIsYUFBYSxFM0Y4R0YsR0FBRyxDQUNILEtBQUssQ0FyQlQsT0FBZTtDMkZoRXZCOztBQXRDSCxBQWNJLGdCQWRZLENBTWQsRUFBRSxDQVFBLEtBQUssQ0FBQztFQUdKLE9BQU8sRUFBRSxPQUFPO0NBQ2pCOztBQWxCTCxBQW9CSSxnQkFwQlksQ0FNZCxFQUFFLENBY0EsT0FBTyxDQUFDO0VBQ04sT0FBTyxFQUFFLEtBQUs7RUFDZCxTQUFTLEVBQUUsS0FBSztFQUNoQixNQUFNLEVBQUUsZ0JBQWdCO0NBQ3pCOztBQXhCTCxBQTBCSSxnQkExQlksQ0FNZCxFQUFFLENBb0JBLE9BQU8sQ0FBQztFQUNOLFdBQVcsRUFBRSxJQUFJO0VBQ2pCLFdBQVcsRUFBRSxJQUFJO0VBQ2pCLE1BQU0sRUFBRSxPQUFPO0VBQ2YsT0FBTyxFQUFFLEdBQUc7RUFDWixVQUFVLEVBQUUsSUFBSTtDQUNqQjs7QUFoQ0wsQUFrQ0ksZ0JBbENZLENBTWQsRUFBRSxDQTRCQSxPQUFPLEFBQUEsTUFBTSxDQUFDO0VBQ1osT0FBTyxFQUFFLENBQUM7RUFDVixLQUFLLEUzRmdDSCxPQUFnQjtDMkYvQm5COztBQUlMLEFBQUEsWUFBWSxDQUFDO0VBQ1gsTUFBTSxFQUFFLElBQUk7Q0FxQ2I7O0FBdENELEFBR0UsWUFIVSxDQUdWLEVBQUUsQ0FBQztFQUNELFdBQVcsRUFBRSxJQUFJO0VBQ2pCLEtBQUssRTFGN0NDLE9BQXdDO0UwRjhDOUMsS0FBSyxFQUFFLEdBQUc7RUFDVixPQUFPLEVBQUUsd0JBQXdCO0NBQ2xDOztBQVJILEFBVUUsWUFWVSxDQVVWLEVBQUUsQ0FBQztFQUNELE9BQU8sRUFBRSxDQUFDO0NBQ1g7O0FBWkgsQUFjRSxZQWRVLENBY1YsS0FBSztBQWRQLFlBQVksQ0FlVixJQUFJLENBQUM7RUFDSCxPQUFPLEVBQUUsS0FBSztFQUNkLE9BQU8sRUFBRSxrQkFBa0I7RUFDM0IsV0FBVyxFQUFFLEdBQUc7Q0FDakI7O0FBbkJILEFBcUJFLFlBckJVLENBcUJWLEtBQUssQ0FBQztFQUNKLE1BQU0sRUFBRSxJQUFJO0VBQ1osVUFBVSxFQUFFLElBQUk7RUFDaEIsS0FBSyxFQUFFLElBQUk7Q0FDWjs7QUF6QkgsQUEyQkUsWUEzQlUsQ0EyQlYsS0FBSyxBQUFBLE1BQU07QUEzQmIsWUFBWSxDQTRCVixLQUFLLEFBQUEsTUFBTSxDQUFDO0VBQ1YsVUFBVSxFQUFFLE9BQStCO0NBQzVDOztBQTlCSCxBQWdDRSxZQWhDVSxDQWdDVixNQUFNLENBQUM7RUFDTCxNQUFNLEVBQUUsT0FBTztFQUNmLE1BQU0sRUFBRSxJQUFJO0VBQ1osVUFBVSxFQUFFLElBQUk7RUFDaEIsT0FBTyxFQUFFLENBQUM7Q0FDWDs7QUFHSCxBQUFBLGNBQWMsQ0FBQztFQUdiLE1BQU0sRUFBRSxHQUFHO0NBYVo7O0FBaEJELEFBS0UsY0FMWSxDQUtaLE1BQU0sQ0FBQztFQUdMLFVBQVUsRUFBRSxPQUErQjtFQUMzQyxPQUFPLEVBQUUsU0FBUztFQUNsQixNQUFNLEVBQUUsSUFBSTtDQUNiOztBQVhILEFBYUUsY0FiWSxDQWFaLE9BQU8sQ0FBQztFQUNOLE1BQU0sRUFBRSxJQUFJO0NBQ2I7O0FBR0gsQUFBQSxhQUFhLENBQUMsSUFBSSxDQUFDO0VBQ2pCLFNBQVMsRUFBRSxLQUFLO0NBQ2pCOztBQ3JHRCxBQUNFLGdCQURjLENBQ2QsSUFBSSxDQUFDLENBQUMsQ0FBQztFQUNMLE1BQU0sRUFBRSxLQUFLO0NBQ2Q7O0FBSEgsQUFLRSxnQkFMYyxDQUtkLGFBQWEsQ0FBQztFQUdaLE1BQU0sRUFBRSxJQUFJO0NBQ2I7O0FBR0gsQUFBQSxlQUFlLENBQUM7RUFHZCxVQUFVLEU1RktBLEtBQWdCO0U0RkoxQixPQUFPLEVBQUUsUUFBUTtFQUNqQixhQUFhLEVBQUUsSUFBSTtDQThCcEI7O0FBbkNELEFBT0UsZUFQYSxDQU9iLEtBQUssQ0FBQztFQUdKLFVBQVUsRUFBRSxJQUFJO0VBQ2hCLEtBQUssRUFBRSxJQUFJO0VBQ1gsUUFBUSxFQUFFLE1BQU07RUFDaEIsT0FBTyxFQUFFLFlBQVk7Q0FDdEI7O0FBZEgsQUFnQkUsZUFoQmEsQ0FnQmIsS0FBSyxDQUFDO0VBQ0osS0FBSyxFQUFFLEtBQUs7RUFDWixXQUFXLEVBQUUsR0FBRztFQUNoQixPQUFPLEVBQUUsR0FBRztFQUNaLE9BQU8sRUFBRSxJQUFJO0NBQ2Q7O0FBckJILEFBdUJFLGVBdkJhLEFBdUJaLE1BQU0sQ0FBQyxLQUFLLENBQUM7RUFDWixPQUFPLEVBQUUsS0FBSztDQUNmOztBQXpCSCxBQTJCRSxlQTNCYSxDQTJCYixLQUFLLEFBQUEsTUFBTSxDQUFDO0VBQ1YsT0FBTyxFQUFFLENBQUM7Q0FDWDs7QUE3QkgsQUErQkUsZUEvQmEsQ0ErQmIsVUFBVTtBQS9CWixlQUFlLENBZ0NiLEtBQUssQ0FBQztFQUNKLFdBQVcsRUFBRSxJQUFJO0NBQ2xCOztBQzlDSCxBQUFBLGNBQWMsQ0FBQztFQUdiLFVBQVUsRTdGaUJBLEtBQWdCO0U2RmhCMUIsV0FBVyxFQUFFLE1BQU07RUFDbkIsV0FBVyxFQUFFLElBQUk7Q0E2Q2xCOztBQWxERCxBQU9FLGNBUFksR0FPVixHQUFHLENBQUM7RUFDSixJQUFJLEVBQUUsT0FBTztDQUNkOztBQVRILEFBV0UsY0FYWSxDQVdaLENBQUMsQ0FBQztFaEVpQkYsVUFBVSxFQURhLEdBQUcsQ0ZSTixLQUFLO0VrRUh2QixLQUFLLEU3RmFBLE9BQWU7RTZGWnBCLE1BQU0sRUFBRSxLQUFLO0VBQ2IsV0FBVyxFQUFFLEtBQUs7RUFDbEIsV0FBVyxFQUFFLE9BQU87Q0E4QnJCOztBQWpESCxBQXFCSSxjQXJCVSxDQVdaLENBQUMsQUFVRSxRQUFRLENBQUM7RUFHUixlQUFlLEVBQUUsTUFBTTtFQUN2QixPQUFPLEVBQUUsaUJBQWlCO0VBQzFCLFNBQVMsRUFBRSxLQUFLO0VBQ2hCLFdBQVcsRUFBRSxJQUFJO0VBQ2pCLEtBQUssRUFBRSxHQUFHO0VBQ1YsVUFBVSxFN0ZSTCxPQUFlO0U2RlNwQixZQUFZLEVBQUUsSUFBSTtFaEVGdEIsVUFBVSxFQURhLEdBQUcsQ0ZSTixLQUFLO0NrRWN0Qjs7QUFqQ0wsQUFtQ0ksY0FuQ1UsQ0FXWixDQUFDLEFBd0JFLE1BQU0sRUFuQ1gsY0FBYyxDQVdaLENBQUMsQUF5QkUsT0FBTyxDQUFDO0VBQ1AsVUFBVSxFN0ZiSCxPQUE0QjtFNkZjbkMsS0FBSyxFN0ZRRyxPQUFpQjtDNkZQMUI7O0FBdkNMLEFBeUNJLGNBekNVLENBV1osQ0FBQyxBQThCRSxNQUFNLEFBQUEsUUFBUSxDQUFDO0VBQ2QsVUFBVSxFN0ZsQkgsT0FBNEI7QzZGbUJwQzs7QUEzQ0wsQUE2Q0ksY0E3Q1UsQ0FXWixDQUFDLEFBa0NFLE9BQU8sQUFBQSxRQUFRLENBQUM7RUFDZixVQUFVLEU3RkFGLE9BQWlCO0U2RkN6QixLQUFLLEU3RkVRLElBQUk7QzZGRGxCOztBQ2hETCxBQUFBLGFBQWEsQ0FBQztFQUdaLFVBQVUsRTlGaUJBLEtBQWdCO0U4RmhCMUIsT0FBTyxFQUFFLFdBQVc7Q0E0QnJCOztBQWhDRCxBQU1FLGFBTlcsQ0FNWCxLQUFLLENBQUEsQUFBQSxJQUFDLENBQUssTUFBTSxBQUFYLEVBQWE7RUFDakIsV0FBVyxFQUFFLFNBQVM7RUFDdEIsS0FBSyxFQUFFLElBQUk7RUFDWCxTQUFTLEVBQUUsSUFBSTtDQUNoQjs7QUFWSCxBQVlFLGFBWlcsQ0FZWCxTQUFTLENBQUM7RUFDUixLQUFLLEU3RlpDLE9BQXdDO0U2RmE5QyxVQUFVLEVBQUUsSUFBSTtFQUNoQixTQUFTLEVBQUUsSUFBSTtDQUNoQjs7QUFoQkgsQUFrQkUsYUFsQlcsQ0FrQlgsSUFBSSxDQUFDO0VBQ0gsTUFBTSxFQUFFLE9BQU87Q0FNaEI7O0FBekJILEFBcUJJLGFBckJTLENBa0JYLElBQUksQ0FHRixLQUFLLENBQUM7RUFDSixZQUFZLEVBQUUsSUFBSTtFQUNsQixjQUFjLEVBQUUsTUFBTTtDQUN2Qjs7QUF4QkwsQUEyQkUsYUEzQlcsQ0EyQlgsVUFBVSxDQUFDO0VBR1QsYUFBYSxFQUFFLEdBQUc7Q0FDbkI7O0FDL0JILEFBQUEsa0JBQWtCLENBQUM7RUFHakIsVUFBVSxFL0ZpQkEsS0FBZ0I7QytGMkUzQjs7QUEvRkQsQUFLRSxrQkFMZ0IsQUFLZixRQUFRLENBQUM7RUFDUixPQUFPLEVBQUUsR0FBRztDQUNiOztBQVBILEFBU0Usa0JBVGdCLEFBU2YsUUFBUSxDQUFDO0VBQ1IsT0FBTyxFQUFFLEdBQUc7Q0FDYjs7QUFYSCxBQWFFLGtCQWJnQixDQWFoQixJQUFJLENBQUM7RUFHSCxPQUFPLEVBQUUsVUFBVTtDQUNwQjs7QUFqQkgsQUFzQkksa0JBdEJjLENBbUJoQixNQUFNLENBR0osS0FBSyxDQUFDO0VBQ0osTUFBTSxFQUFFLE1BQU07Q0FDZjs7QUF4QkwsQUEyQkUsa0JBM0JnQixDQTJCaEIsSUFBSSxDQUFDO0VBR0gsT0FBTyxFQUFFLFFBQVE7Q0FDbEI7O0FBL0JILEFBaUNFLGtCQWpDZ0IsQ0FpQ2hCLFFBQVEsQ0FBQztFQUNQLE1BQU0sRUFBRSxPQUFPO0NBQ2hCOztBQW5DSCxBQXFDRSxrQkFyQ2dCLENBcUNoQixRQUFRLENBQUMsS0FBSyxDQUFDO0VBQ2IsY0FBYyxFQUFFLE1BQU07RUFDdEIsWUFBWSxFQUFFLEdBQUc7Q0FDbEI7O0FBeENILEFBMENFLGtCQTFDZ0IsQ0EwQ2hCLFlBQVksQ0FBQztFQUNYLE9BQU8sRUFBRSxJQUFJO0VBQ2IscUJBQXFCLEVBQUUsbUNBQW1DO0NBa0QzRDs7QUE5RkgsQUE4Q0ksa0JBOUNjLENBMENoQixZQUFZLENBSVYsQ0FBQyxDQUFDO0VBR0EsS0FBSyxFL0ZwQkYsT0FBZTtFK0ZxQmxCLE9BQU8sRUFBRSxJQUFJO0VsRXRCakIsVUFBVSxFa0V3QmMsVUFBVSxDcEVqQ2QsS0FBSztFb0VtQ3JCLFVBQVUsRUFBRSx3QkFBd0I7RUFDcEMsUUFBUSxFQUFFLE1BQU07Q0FvQmpCOztBQTNFTCxBQXlETSxrQkF6RFksQ0EwQ2hCLFlBQVksQ0FJVixDQUFDLEFBV0UsVUFBVyxDckM5QkcsSUFBSSxFcUM4QkQ7RUFDaEIsVUFBVSxFL0ZqQ0osT0FBMEI7QytGa0NqQzs7QUEzRFAsQUE2RE0sa0JBN0RZLENBMENoQixZQUFZLENBSVYsQ0FBQyxBQWVFLE1BQU0sQ0FBQztFQUNOLFVBQVUsRUFBRSxzQkFBc0I7RUFDbEMsS0FBSyxFOUY5REgsT0FBd0M7QzhGK0QzQzs7QUFoRVAsQUFrRU0sa0JBbEVZLENBMENoQixZQUFZLENBSVYsQ0FBQyxBQW9CRSxPQUFPLEVBbEVkLGtCQUFrQixDQTBDaEIsWUFBWSxDQUlWLENBQUMsQUFxQkUsT0FBTyxDQUFDO0VBQ1AsVUFBVSxFL0Z0QkosT0FBaUI7RStGdUJ2QixLQUFLLEUvRnBCTSxJQUFJO0MrRnFCaEI7O0FBdEVQLEFBd0VNLGtCQXhFWSxDQTBDaEIsWUFBWSxDQUlWLENBQUMsQ0EwQkMsUUFBUSxDQUFDO0VBQ1AsVUFBVSxFQUFFLElBQUk7Q0FDakI7O0FBMUVQLEFBNkVJLGtCQTdFYyxDQTBDaEIsWUFBWSxDQW1DVixPQUFPLENBQUM7RUFHTixNQUFNLEVBQUUsS0FBSztFQUNiLFdBQVcsRUFBRSxNQUFNO0NBS3BCOztBQXRGTCxBQW1GTSxrQkFuRlksQ0EwQ2hCLFlBQVksQ0FtQ1YsT0FBTyxDQU1MLElBQUksQ0FBQztFQUNILFdBQVcsRUFBRSxJQUFJO0NBQ2xCOztBQXJGUCxBQXdGSSxrQkF4RmMsQ0EwQ2hCLFlBQVksQ0E4Q1YsS0FBSyxDQUFDO0VBR0osZUFBZSxFQUFFLE1BQU07RUFDdkIsTUFBTSxFQUFFLEdBQUc7Q0FDWjs7QUM3RkwsQUFBQSxtQkFBbUIsQ0FBQztFQUdsQixVQUFVLEVoR2lCQSxLQUFnQjtFZ0doQjFCLFVBQVUsRUFBRSxNQUFNO0NBU25COztBQWJELEFBTUUsbUJBTmlCLEFBTWhCLE9BQU8sQ0FBQztFQUNQLE9BQU8sRUFBRSxHQUFHO0NBQ2I7O0FBUkgsQUFVRSxtQkFWaUIsQUFVaEIsTUFBTSxDQUFDO0VBQ04sTUFBTSxFQUFFLElBQUk7Q0FDYjs7QUFHSCxBQUFBLGVBQWUsQ0FBQyxLQUFLLEFBQUEsWUFBWSxDQUFDO0VBQ2hDLGFBQWEsRUFBRSxHQUFHO0NBQ25COztBQ2pCRCxBQUFBLGVBQWUsQ0FBQztFQUdkLFVBQVUsRWpHaUJBLEtBQWdCO0VpR2hCMUIsT0FBTyxFQUFFLEdBQUc7RUFDWixVQUFVLEVBQUUsTUFBTTtDQVVuQjs7QUFmRCxBQU9FLGVBUGEsQ0FPYixPQUFPLENBQUM7RUFDTixPQUFPLEVBQUUsWUFBWTtFQUNyQixNQUFNLEVBQUUsUUFBUTtDQUNqQjs7QUFWSCxBQVlFLGVBWmEsQ0FZYixRQUFRLENBQUM7RUFDUCxNQUFNLEVBQUUsU0FBUztDQUNsQjs7QUNkSCxBQUFBLFlBQVksQ0FBQztFQUdYLFVBQVUsRWxHaUJBLEtBQWdCO0VrR2hCMUIsT0FBTyxFQUFFLEtBQUs7RUFDZCxVQUFVLEVBQUUsSUFBSTtFQUNoQixVQUFVLEVBQUUsSUFBSTtDQWtEakI7O0FBeERELEFBUUUsWUFSVSxDQVFWLE1BQU0sQ0FBQztFQUNMLGFBQWEsRUFBRSxHQUFHO0NBQ25COztBQVZILEFBWUUsWUFaVSxDQVlWLEVBQUUsQ0FBQztFQUdELGFBQWEsRUFBRSxHQUFHO0NBQ25COztBQWhCSCxBQVlFLFlBWlUsQ0FZVixFQUFFLENqRUVFO0VBQ0EsU0FBUSxFaUVGdUIsSUFBSTtDakVXcEM7O0FBUEMsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0VpRWpCOUIsQUFZRSxZQVpVLENBWVYsRUFBRSxDakVFRTtJQUlFLFNBQVEsRUFBRSx5Q0FBcUg7R0FNbEk7OztBQUhDLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTTtFaUVyQi9CLEFBWUUsWUFaVSxDQVlWLEVBQUUsQ2pFRUU7SUFRRSxTQUFRLEVpRVQyQixJQUFJO0dqRVcxQzs7O0FpRXhCTCxBQWtCRSxZQWxCVSxDQWtCVixFQUFFLEVBbEJKLFlBQVksQ0FrQk4sRUFBRSxFQWxCUixZQUFZLENBa0JGLEVBQUUsQ0FBQztFQUNULFdBQVcsRUFBRSxHQUFHO0NBQ2pCOztBQXBCSCxBQXNCRSxZQXRCVSxDQXNCVixFQUFFLENBQUM7RUFDRCxTQUFTLEVBQUUsS0FBSztDQUNqQjs7QUF4QkgsQUEwQkUsWUExQlUsQ0EwQlYsRUFBRSxDQUFDO0VBQ0QsU0FBUyxFQUFFLEtBQUs7RUFDaEIsV0FBVyxFQUFFLEdBQUc7Q0FDakI7O0FBN0JILEFBK0JFLFlBL0JVLENBK0JWLEVBQUUsQ0FBQztFQUNELFNBQVMsRUFBRSxLQUFLO0NBQ2pCOztBQWpDSCxBQW1DRSxZQW5DVSxDQW1DVixFQUFFLENBQUM7RUFDRCxVQUFVLEVBQUUsTUFBTTtDQUNuQjs7QUFyQ0gsQUF1Q0UsWUF2Q1UsQ0F1Q1YsRUFBRSxDQUFDLEVBQUUsQ0FBQztFQUNKLFVBQVUsRUFBRSxZQUFZO0VBQ3hCLE1BQU0sRUFBRSxjQUFjO0NBQ3ZCOztBQTFDSCxBQTRDRSxZQTVDVSxDQTRDVixFQUFFLENBQUMsRUFBRSxDQUFDO0VBQ0osVUFBVSxFQUFFLGNBQWM7RUFDMUIsTUFBTSxFQUFFLE1BQU07Q0FDZjs7QUEvQ0gsQUFpREUsWUFqRFUsQ0FpRFYsRUFBRSxDQUFDO0VBQ0QsV0FBVyxFQUFFLEdBQUc7Q0FLakI7O0FBdkRILEFBb0RJLFlBcERRLENBaURWLEVBQUUsQ0FHQSxDQUFDLENBQUM7RUFDQSxPQUFPLEVBQUUsTUFBTTtDQUNoQjs7QUFJTCxBQUFBLElBQUksQUFBQSxVQUFVLENBQUMsTUFBTSxDQUFDO0VBQ3BCLFVBQVUsRUFBRSxJQUFJO0NBQ2pCOztBQ3RERSxBQUFELFdBQUssQ0FBQztFQUNKLFNBQVMsRUFBRSxVQUFVO0NBQ3RCOztBQUVBLEFBQUQsY0FBUSxDQUFDO0VBQ1AsU0FBUyxFQUFFLFVBQVU7Q0FDdEI7O0FsQ0NBLEFBQUQsVUFBSSxDa0NDQztFQUNILFNBQVMsRUFaRyxJQUFJO0NBYWpCOztBQUdILEFBQUEsUUFBUSxBQUFBLG1CQUFtQixDQUFDO0VBQzFCLGtCQUFrQixFQWxCQyxJQUFJLENBa0JpQixJQUFJLENBbEJ6QixJQUFJLENBa0IwQyxJQUFJLENBQUMsSUFBSTtFQUMxRSxtQkFBbUIsRUFBRSx5RkFBeUY7Q0FZL0c7O0E5RitCRyxNQUFNLEVBQUcsU0FBUyxFQUFFLEtBQUssSUFBSyxXQUFXLEVBQUUsU0FBUztFOEY3Q3hELEFBQUEsUUFBUSxBQUFBLG1CQUFtQixDQUFDO0lBS3hCLGtCQUFrQixFQXJCTixJQUFJLENBcUJtQixJQUFJLENBckIzQixJQUFJO0lBc0JoQixtQkFBbUIsRUFBRSxnTkFBZ047R0FReE87OztBOUYrQkcsTUFBTSxFQUFHLFNBQVMsRUFBRSxNQUFNO0U4RjdDOUIsQUFBQSxRQUFRLEFBQUEsbUJBQW1CLENBQUM7SUFXeEIsa0JBQWtCLEVBM0JOLElBQUksQy9CQ04sa0JBQWtCLENBQ2xCLGNBQWMsQytCRlosSUFBSTtJQTRCaEIsbUJBQW1CLEVBQUUsK0xBQStMO0dBRXZOOzs7QTlGK0JHLE1BQU0sRUFBRyxTQUFTLEVBQUUsS0FBSyxPQUFPLFdBQVcsRUFBRSxRQUFRO0U4RjFEdEQsQUFBRCxXQUFLLENBK0JHO0lBQ0osYUFBYSxFQUFDLE1BQUM7R0FDaEI7RUE3QkYsQUFBRCxjQUFRLENBK0JHO0lBQ1AsVUFBVSxFQUFDLE1BQUM7R0FDYiJ9 */
