/*!************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js!./src/styles/index.css ***!
  \************************************************************************/
@import url(https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap);
/*!****************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js!./src/styles/index.css (1) ***!
  \****************************************************************************/
:root {
  --board-border-radius: 8px;
  --board-background: #89dceb;

  --cell-size: 4vh;
  --grid-gap: calc(var(--cell-size) / 10);
  --cell-border-radius: 4px;
  --cell-background: #74c7ec;
}

*::after {
  display: flex;
  justify-content: center;
  align-items: center;
}

#root {
  display: flex;
  flex-direction: column;
  align-items: center;
  font-family: "Poppins", sans-serif;
  color: #4c4f69;
  position: relative;
}

input,
h1,
h2,
p {
  color: #4c4f69;
}

ul,
ol {
  padding-left: 0;
}

.hidden,
.hidden * {
  display: none;
}

button:not(.cell):not(.hidden) {
  align-items: center;
  appearance: none;
  background-image: radial-gradient(
    100% 100% at 100% 0,
    #5adaff 0,
    #5468ff 100%
  );
  border: 0;
  border-radius: 6px;
  box-shadow:
    rgba(45, 35, 66, 0.4) 0 2px 4px,
    rgba(45, 35, 66, 0.3) 0 7px 13px -3px,
    rgba(58, 65, 111, 0.5) 0 -3px 0 inset;
  color: #fff;
  cursor: pointer;
  display: inline-flex;
  justify-content: center;
  line-height: 1;
  text-align: center;
  transition:
    box-shadow 0.15s,
    transform 0.15s;
  user-select: none;
  -webkit-user-select: none;
  touch-action: manipulation;
  will-change: box-shadow, transform;
  font-size: 18px;
}

button:not(.cell):focus {
  box-shadow:
    #3c4fe0 0 0 0 1.5px inset,
    rgba(45, 35, 66, 0.4) 0 2px 4px,
    rgba(45, 35, 66, 0.3) 0 7px 13px -3px,
    #3c4fe0 0 -3px 0 inset;
}

button:not(.cell):hover,
.options p:not(.active-mode):hover {
  box-shadow:
    rgba(45, 35, 66, 0.4) 0 4px 8px,
    rgba(45, 35, 66, 0.3) 0 7px 13px -3px,
    #3c4fe0 0 -3px 0 inset;
  transform: translateY(-2px);
}

button:not(.cell):active {
  box-shadow: #3c4fe0 0 3px 7px inset;
  transform: translateY(2px);
}

button img {
  filter: invert(100%) sepia(100%) saturate(0%) hue-rotate(300deg)
    brightness(100%) contrast(100%);
}

header {
  display: flex;
  width: 100%;
  padding: 16px;
  align-items: center;
  justify-content: center;
  position: relative;
}

.logo {
  width: 48px;
  height: auto;
  margin-right: 8px;
}

header h1 {
  font-size: 6vmin;
  font-weight: 700;
  line-height: 1;
}

.back-button {
  position: absolute;
  top: 16px;
  left: 16px;
  padding: 8px;
}

.back-button img {
  width: 24px;
  height: auto;
}

#root:has(> .home-page) .back-button {
  display: none;
}

.opponent {
  margin: 64px;
  padding-left: 16px;
  padding-right: 16px;
  text-align: center;
  font-size: 1.5rem;
  font-weight: 700;
}

.opponent > p {
  padding: 8px;
}

.opponent .options {
  display: grid;
  grid-template-columns: 1fr 1fr;
  justify-items: center;
  align-items: center;
  padding: 8px;
  grid-gap: 2vmin;
  background-color: var(--board-background);
  border-radius: 8px;
}

.options p {
  width: min(256px, 40vw);
  text-align: center;
  padding: 8px 0;
  border-radius: 8px;
  cursor: pointer;
  font-weight: 500;
}

.options p.active-mode {
  box-shadow: #3c4fe0c0 0 3px 7px inset;
}

.page {
  display: flex;
  flex-direction: column;
}

.home-page .controls {
  display: grid;
  grid-template-rows: 1fr 1fr;
  grid-gap: 32px;
  align-items: center;
  justify-items: center;
}

.home-page .controls button {
  font-size: 1.75rem;
  font-weight: 500;
  padding: 4vh 8vh;
  width: max-content;
}

.help-page h1 {
  text-align: center;
  font-size: 2rem;
}

.help-page section {
  margin: 4vh 10vw;
  font-size: min(4vmin, 3vh);
}

.help-page p,
.help-page ul {
  margin-left: 2vw;
}

.help-page p ul {
  margin-left: 8vw;
}

.help-page img {
  display: inline;
  width: 3vh;
  height: auto;
  transform: translateY(0.3rem);
}

table {
  margin-left: 16px;
  border-collapse: collapse;
  text-align: center;
}

th,
td {
  border: 1px solid #4c4f69;
  padding: 4px;
}

th:first-child,
td:first-child {
  width: 150px;
}

th:last-child,
td:last-child {
  width: 100px;
}

.help-page .thanks {
  font-size: 3rem;
  background-image: radial-gradient(
    100% 100% at 100% 0,
    #5adaff 0,
    #5468ff 100%
  );
  background-clip: text;
  color: transparent;
  margin-bottom: 32px;
}

.start,
.reset {
  padding: 16px 32px;
}

.boards {
  width: 100%;
  display: grid;
  justify-items: center;
  grid-gap: 5vmin;
  grid-template-columns: 1fr 1fr;
  margin: 2vmin;
  margin-bottom: 4vmin;
}

.board,
.opponent {
  background-color: var(--board-background);
  border-radius: var(--board-border-radius);
  padding-bottom: calc(var(--grid-gap) * 4 + 3px);
  box-shadow:
    rgba(0, 0, 0, 0.4) 0px 2px 4px,
    rgba(0, 0, 0, 0.4) 0px 12px 12px -3px,
    rgba(0, 0, 0, 0.2) 0px -6px 0px inset;
}

.board {
  position: relative;
  padding: calc(var(--grid-gap) * 4);
  background-color: var(--board-background);
  border-radius: var(--board-border-radius);
  padding-bottom: calc(var(--grid-gap) * 4 + 6px);
  box-shadow:
    rgba(0, 0, 0, 0.4) 0px 2px 4px,
    rgba(0, 0, 0, 0.4) 0px 12px 12px -3px,
    rgba(0, 0, 0, 0.2) 0px -6px 0px inset;

  transition: transform ease-in-out 333ms;
}

.board.active {
  transform: translateY(-8px);
  box-shadow:
    rgba(0, 0, 0, 0.4) 0px 2px 4px,
    rgba(0, 0, 0, 0.4) 0px 12px 12px -3px,
    rgba(84, 104, 255, 0.75) 0px -6px 0px inset;
}

.board-header {
  padding: calc(var(--grid-gap) * 4);
  margin-bottom: calc(var(--grid-gap) * 4);
  display: grid;
  justify-items: center;
  align-items: center;
  background-color: var(--cell-background);
  border-radius: 8px;
  position: relative;
}

.player-name,
.player-name-input {
  font-size: 2.5vh;
  font-weight: 500;
  padding: 8px;
}

.player-name-input {
  justify-self: start;
  text-align: center;
  width: 12vmax;
  border-radius: 8px;
  border: 1px solid #4c4f69;
  padding: 7px 8px;
}

.board-controls {
  position: absolute;
  right: 2vh;
}

.board-controls button {
  padding: 8px;
  margin: 0 0.5vh;
}

.board-controls img {
  width: 2.5vh;
  height: auto;
  filter: invert(100%) sepia(100%) saturate(0%) hue-rotate(300deg)
    brightness(100%) contrast(100%);
}

.board-cells {
  width: min-content;
  display: grid;
  grid-auto-flow: row;
  grid-gap: var(--grid-gap);
  position: relative;
}

.row {
  display: grid;
  grid-auto-flow: column;
  grid-gap: var(--grid-gap);
  display: flex;
}

.cell {
  /* width: var(--cell-size); */
  /* height: var(--cell-size); */

  border: none;
  border-radius: var(--cell-border-radius);

  background-color: var(--cell-background);
  color: #4c4f69;
  position: relative;
  z-index: 1;
}

.cell.empty,
.cell.ship {
  background-color: var(--cell-background);
}

.board.only-human .cell.empty,
.human.editing .cell.empty,
.attack-allowed:not(.passing) .board:not(.active) .cell.empty {
  background-color: var(--board-background);
}

.human.only-human .cell.ship,
.human.editing .cell.ship:not(.moving),
.attack-allowed:not(.passing) .board.attacking .cell.ship {
  /* background-color: #eba0ac; */
  background-color: transparent;
}

.board.editing .cell.moving {
  background-color: #fab387;
}

.attack-allowed .active .cell.empty:hover,
.attack-allowed .active .cell.ship:hover {
  box-shadow:
    rgba(45, 35, 66, 0.4) 0 4px 8px,
    rgba(45, 35, 66, 0.3) 0 7px 13px -3px,
    #41a3d5 0 -3px 0 inset;
  transform: translateY(-1px);
}

.attack-allowed .active .cell.empty:active,
.attack-allowed .active .cell.ship:active {
  box-shadow: #41a3d5 0 3px 7px inset;
  transform: translateY(1px);
}

.cell.miss {
  background-color: var(--cell-highlight-color);
}
.cell.miss::after {
  content: "•";
  font-size: 3vh;
}

.cell.hit {
  background-color: #f9e2af;
}
.cell.hit::after,
.cell.sunk::after {
  content: "✖";
  font-size: 2vh;
}

.cell.sunk {
  background-color: #f38ba8;
}

.board-ships {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
  pointer-events: none;
}

#root.vs-friend:not(.in-progress)
  .board:not(.editing)
  .board-ships
  .ship-img:not(.ship-sunk),
.in-progress.passing .attacking .board-ships .ship-img:not(.ship-sunk),
.active:not(.only-human) .ship-img:not(.ship-sunk),
.computer .ship-img:not(.ship-sunk) {
  display: none;
}

.in-progress .board-ships {
  pointer-events: none;
}

.in-progress .board-ships img {
  opacity: 0.75;
}

.board-ships img {
  position: absolute;
  /* width: calc((var(--cell-size) * 5) + (var(--grid-gap) * 4)); */
  /* height: auto; */
}

.game-over-screen,
.passing-screen {
  position: absolute;
  left: calc(var(--grid-gap) * 4);
  top: calc(var(--grid-gap) * 4);
  width: calc(100% - var(--grid-gap) * 8);
  height: calc(100% - var(--grid-gap) * 8);
  border-radius: var(--board-border-radius);
  background-color: #74c7eca0;
  color: #ffffff;
  text-align: center;

  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  font-size: 2rem;
  font-weight: 700;
  z-index: 4;
}

.game-over-screen button,
.passing-screen button {
  margin-top: 16px;
}

.passing-screen {
  background-color: #74c7ec;
  font-size: 1.5rem;
}

.passing-screen button {
  padding: 16px 32px;
}

.game-page .controls {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 32px;
}

.game-info {
  margin: 2vh;
}

.attack-info {
  color: #5c5f77;
  text-align: center;
  font-size: 2vh;
}

.help-info {
  font-size: 2vh;
  font-weight: 400;
  color: #6c6f85;
  text-align: center;
}

.board-info {
  display: grid;
  width: 100%;
  grid-template-columns: 1fr 1fr;
  justify-items: center;
}

.board-info p {
  font-size: 3vh;
  font-weight: 700;
}

@media (max-width: 600px) {
  :root {
    --cell-size: 5vw;
  }

  header {
    padding-bottom: 4px;
  }

  .info {
    order: 0;
  }

  .board-info {
    grid-template-columns: 1fr;
  }

  .board-info p {
    font-size: 1.5rem;
  }

  .in-progress .game-info {
    display: none;
  }

  .game-page .controls {
    order: 1;
    margin-bottom: 2vh;
  }

  .in-progress .game-page .controls {
    order: 3;
  }

  .in-progress .info {
    margin: 0;
  }

  .boards {
    order: 2;
    grid-template-columns: 1fr;
    grid-template-rows: 1fr 1fr;
  }

  #root:not(.in-progress) .board-header {
    justify-content: flex-start;
  }

  .player-name {
    font-size: 4vw;
  }

  .board-controls img {
    width: 16px;
    height: auto;
  }
  .attack-allowed .active .cell.empty:hover,
  .attack-allowed .active .cell.ship:hover {
    box-shadow: none;
    transform: none;
  }

  .attack-allowed .active .cell.empty:active,
  .attack-allowed .active .cell.ship:active {
    box-shadow: none;
    transform: none;
  }

  .cell.miss::after {
    font-size: 1rem;
  }

  .cell.hit::after,
  .cell.sunk::after {
    font-size: 0.75rem;
  }

  .game-over-screen {
    font-size: 6vw;
  }
}


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