@import url("https://fonts.googleapis.com/css?family=Roboto+Mono:400,500,700");
@import url("https://fonts.googleapis.com/css?family=Rubik:400,500,700");
@import url("https://fonts.googleapis.com/css?family=Source+Code+Pro:400,500,700");
html,
body,
pre {
  margin: 0;
  padding: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: 1rem;
  margin: 0;
  padding: 0;
}

p {
  margin: 0;
  padding: 0;
}

pre {
  display: block;
}

dl,
ol,
ul {
  list-style-type: none;
  margin: 0;
  padding: 0;
}

li {
  margin: 0;
  padding: 0;
}

button {
  appearance: none;
  background-color: transparent;
  border-width: 0;
  cursor: pointer;
  font-family: inherit;
  font-size: inherit;
  padding: 0;
}

:root {
  --bg-color: white;
  --bg-color-translucent: rgba(255, 255, 255, 0.9);
  --bg-color-secondary: hsl(230, 7%, 95%);
  --bg-color-action: hsl(230, 7%, 95%);
  --bg-color-action-active: hsl(230, 7%, 93%);
  --fg-color: hsl(230, 5%, 35%);
  --fg-color-action: hsla(230, 5%, 35%, 0.8);
  --fg-color-secondary: hsla(230, 5%, 35%, 0.7);
  --a-color: hsl(220, 50%, 50%);
  --code-color: hsl(230, 20%, 50%);
  --guide-color-comps: 230, 20%, 15%;
  --heading-color: hsl(230, 5%, 20%);
  --hl-comment: hsl(230, 7%, 60%);
  --hl-constant: var(--hl-string);
  --hl-keyword: hsl(225, 40%, 47%);
  --hl-string: hsl(230, 15%, 50%);
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg-color: hsl(230, 7%, 17%);
    --bg-color-translucent: rgba(0, 0, 0, 0.9);
    --bg-color-secondary: hsl(230, 7%, 10%);
    --bg-color-action: hsl(230, 7%, 22%);
    --bg-color-action-active: hsl(230, 7%, 25%);
    --fg-color: hsl(230, 7%, 75%);
    --fg-color-action: hsl(230, 7%, 80%);
    --fg-color-secondary: hsla(230, 7%, 75%, 0.8);
    --a-color: hsl(220, 40%, 60%);
    --code-color: hsl(170, 20%, 55%);
    --guide-color-comps: 230, 5%, 80%;
    --heading-color: hsl(230, 7%, 75%);
    --hl-comment: hsl(230, 7%, 40%);
    --hl-constant: var(--hl-string);
    --hl-keyword: hsl(220, 30%, 60%);
    --hl-string: hsl(170, 20%, 60%);
  }
}

html {
  color: var(--fg-color);
  font-family: Rubik, sans-serif;
  font-size: 16px;
}
@media (prefers-color-scheme: dark) {
  html {
    color-scheme: dark;
  }
}

body {
  background-color: var(--bg-color);
}

h1,
h2,
h3,
h4,
h5,
h6 {
  color: var(--heading-color);
  font-weight: 500;
  letter-spacing: 0.01em;
}
h1 a,
h2 a,
h3 a,
h4 a,
h5 a,
h6 a {
  color: var(--heading-color);
  text-decoration: none;
}
h1 a:hover,
h2 a:hover,
h3 a:hover,
h4 a:hover,
h5 a:hover,
h6 a:hover {
  text-decoration: underline;
}
h1 .material-icons,
h2 .material-icons,
h3 .material-icons,
h4 .material-icons,
h5 .material-icons,
h6 .material-icons {
  position: relative;
  text-decoration: none;
  vertical-align: bottom;
}
h1 .material-icons:hover,
h2 .material-icons:hover,
h3 .material-icons:hover,
h4 .material-icons:hover,
h5 .material-icons:hover,
h6 .material-icons:hover {
  opacity: 0.75;
}
@media (min-width: 961px) {
  h1 .material-icons,
  h2 .material-icons,
  h3 .material-icons,
  h4 .material-icons,
  h5 .material-icons,
  h6 .material-icons {
    top: -3px;
  }
}
@media (max-width: 960px) {
  h1 .material-icons,
  h2 .material-icons,
  h3 .material-icons,
  h4 .material-icons,
  h5 .material-icons,
  h6 .material-icons {
    top: -1px;
  }
}

table {
  border: var(--bg-color-secondary) solid 2px;
  border-collapse: separate;
  border-radius: 6px;
  border-spacing: 0;
  width: 100%;
}

th {
  background-color: var(--bg-color-secondary);
  color: var(--heading-color);
  font-weight: normal;
  text-align: start;
}

th,
td {
  padding: 8px 16px;
}
th:not(:first-child),
td:not(:first-child) {
  border-left: var(--bg-color-secondary) solid 2px;
}

tr:not(:first-child) th,
tr:not(:first-child) td {
  border-top: var(--bg-color-secondary) solid 2px;
}

p + p {
  margin-top: 1em;
}

code {
  font-family: "Source Code Pro", sans-serif;
}

pre {
  font-family: "Source Code Pro", sans-serif;
}

strong {
  color: var(---heading-color);
  filter: brightness(0.9) saturate(1.2);
}
@media (prefers-color-scheme: dark) {
  strong {
    filter: brightness(1.1) saturate(1.1);
  }
}

:root .tp-dfwv {
  top: 72px;
}

.paneCatalog {
  background-color: var(--bg-color-secondary);
  border-radius: 6px;
  display: grid;
  gap: 32px;
  grid-template-columns: repeat(auto-fit, 256px);
  justify-content: center;
  padding: 32px;
}
.paneCatalog.paneCatalog-theming {
  background-color: hsl(230, 7%, 57%);
}

.codeBlock {
  position: relative;
}
@media screen {
  .codeBlock.codeBlock-compact {
    max-height: 256px;
  }
}
.codeBlock pre {
  overflow: auto;
  padding: 32px;
}
@media (max-width: 960px) {
  .codeBlock pre {
    padding: 24px;
  }
}
.codeBlock pre code {
  font-size: 0.9rem;
  font-weight: 500;
}
.codeBlock.codeBlock-fig pre {
  line-height: 0.9;
}
.codeBlock.codeBlock-fig pre code {
  font-size: 0.8rem;
}

.concepts {
  display: grid;
  margin-bottom: 1em;
  margin-top: 1em;
}
@media (min-width: 961px) {
  .concepts {
    gap: 16px;
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (max-width: 960px) {
  .concepts {
    gap: 8px;
    grid-template-columns: repeat(1, 1fr);
  }
}

.concept {
  border: var(--bg-color-action) solid 2px;
  border-radius: 6px;
  padding: 24px 32px;
}
.concept_title {
  font-weight: bold;
}
.concept_detail {
  color: var(--fg-color-secondary);
  margin-top: 16px;
}

.demo {
  background-color: var(--bg-color-secondary);
  border-radius: 6px;
  position: relative;
}
@media (min-width: 961px) {
  .demo {
    display: flex;
  }
}
.demo_code {
  display: flex;
  flex: 3;
  overflow: auto;
}
.demo_code .codeBlock {
  flex: 1;
}
.demo_result {
  background-image: radial-gradient(hsla(var(--guide-color-comps), 0.08) 1px, transparent 0), radial-gradient(hsla(var(--guide-color-comps), 0.04) 1px, transparent 0);
  background-size: 32px 32px, 8px 8px;
  background-position: center;
  flex: 2;
  padding: 32px;
  text-align: center;
}
.demo_chip {
  background-color: var(--hl-comment);
  border-bottom-left-radius: 1px;
  color: var(--bg-color-secondary);
  font-family: "Source Code Pro", sans-serif;
  font-size: 0.7rem;
  font-weight: 500;
  padding: 0.2em 0.5em;
  position: absolute;
  right: 0;
  top: 0;
}

.globalFooter {
  text-align: center;
}
.globalFooter_inner {
  box-sizing: border-box;
  margin-left: auto;
  margin-right: auto;
  padding-bottom: 16px;
  padding-top: 16px;
}
.globalFooter_copy {
  color: var(--fg-color-secondary);
  font-size: 0.8rem;
}
.globalFooter_copy a {
  color: inherit;
}

.globalHeader {
  -webkit-backdrop-filter: blur(2px);
  backdrop-filter: blur(2px);
  background-color: var(--bg-color-translucent);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
  color: inherit;
  height: 64px;
  left: 0;
  line-height: 64px;
  position: fixed;
  right: 0;
  text-align: center;
  top: 0;
  z-index: 1002;
}
.globalHeader_inner {
  box-sizing: border-box;
  box-sizing: border-box;
  margin-left: auto;
  margin-right: auto;
  position: relative;
}
@media (min-width: 961px) {
  .globalHeader_inner {
    margin-left: auto;
    margin-right: auto;
    max-width: 1280px;
    padding-left: 64px;
    padding-right: 64px;
  }
}
@media (min-width: 481px) and (max-width: 960px) {
  .globalHeader_inner {
    padding-left: 32px;
    padding-right: 32px;
  }
}
@media (max-width: 480px) {
  .globalHeader_inner {
    padding-left: 16px;
    padding-right: 16px;
  }
}
.globalHeader_logo {
  display: inline-block;
}
.globalHeader_spMenuButton {
  left: 0;
  position: absolute;
  top: 0;
}

.spMenuButton {
  align-items: center;
  color: inherit;
  display: flex;
  height: 64px;
  justify-content: center;
  width: 64px;
}

.menu {
  background-color: var(--bg-color);
  bottom: 0;
  overflow-y: auto;
  padding-bottom: 32px;
  padding-top: 32px;
  position: fixed;
  top: 0;
  width: 240px;
  z-index: 1003;
}
@media (max-width: 960px) {
  .menu {
    left: -240px;
    padding-bottom: 24px;
    padding-top: 24px;
    top: 64px;
    transform: none;
  }
  .menu.menu-expanded {
    transform: translateX(240px);
  }
}
.menu.menu-loaded {
  transition: transform 0.2s ease-in-out;
}
.menu_logo {
  border-bottom: var(--bg-color-action) solid 2px;
  padding-bottom: 16px;
  padding-left: 32px;
  padding-right: 32px;
}
@media (max-width: 960px) {
  .menu_logo {
    display: none;
  }
}
@media (min-width: 961px) {
  .menu_list {
    margin-top: 24px;
  }
}

.menuItem + .menuItem {
  margin-top: 2px;
}
.menuItem_anchor {
  color: var(--fg-color);
  display: block;
  font-weight: 500;
  margin-top: 24px;
  padding: 8px 16px;
  text-decoration: none;
}
@media (min-width: 961px) {
  .menuItem_anchor {
    border-radius: 6px;
    margin-left: 16px;
    margin-right: 16px;
  }
}
@media (max-width: 960px) {
  .menuItem_anchor {
    padding-left: 32px;
    padding-right: 32px;
  }
}
.menuItem_anchor.menuItem_anchor-active {
  background-color: var(--bg-color-action);
  color: var(--fg-color);
}
.menuItem_anchor:hover {
  background-color: var(--bg-color-action);
}
.menuItem_anchor .material-icons {
  font-size: 1.2em;
  position: relative;
  top: -1px;
  vertical-align: middle;
}
.menuItem:first-child .menuItem_anchor {
  margin-top: 0;
}

.submenuItem + .submenuItem {
  margin-top: 2px;
}
.submenuItem_anchor {
  color: var(--fg-color-secondary);
  display: block;
  padding: 8px 16px;
  text-decoration: none;
}
@media (min-width: 961px) {
  .submenuItem_anchor {
    border-radius: 6px;
    margin-left: 16px;
    margin-right: 16px;
  }
}
@media (max-width: 960px) {
  .submenuItem_anchor {
    padding-left: 32px;
  }
}
.submenuItem_anchor.submenuItem_anchor-active {
  background-color: var(--bg-color-action);
}
.submenuItem_anchor:hover {
  background-color: var(--bg-color-action);
  color: var(--fg-color);
}

.hljs-attr {
  color: var(--fg-color);
}

.hljs-comment {
  color: var(--hl-comment);
}

.hljs-keyword {
  color: var(--hl-keyword);
}

.hljs-literal,
.hljs-number {
  color: var(--hl-constant);
}

.hljs-string {
  color: var(--hl-string);
}

.hljs-tag {
  color: var(--hl-keyword);
}

@keyframes rotateAnimation {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
.logo {
  display: block;
  position: relative;
}
.logo_main {
  align-items: center;
  color: var(--fg-color);
  display: flex;
  text-decoration: none;
}
.logo_main:hover {
  color: var(--fg-color-action);
  text-decoration: none;
}
.logo_symbol {
  background: linear-gradient(to left, var(--fg-color), var(--fg-color) 4px, transparent 4px, transparent 8px, var(--fg-color) 8px, var(--fg-color));
  border-radius: 4px;
  display: block;
  height: 12px;
  animation: rotateAnimation auto linear;
  animation-timeline: scroll(root);
  width: 12px;
}
.logo:hover .logo_symbol {
  background: linear-gradient(to left, var(--fg-color-action), var(--fg-color-action) 4px, transparent 4px, transparent 8px, var(--fg-color-action) 8px, var(--fg-color-action));
}
.logo_text {
  font-weight: 500;
  line-height: 24px;
  margin-left: 8px;
  white-space: nowrap;
}
.logo_version {
  margin-left: 20px;
  margin-top: 2px;
}

.logoSwitcher {
  display: inline-block;
  position: relative;
}
.logoSwitcher_select {
  appearance: none;
  background-color: var(--bg-color-action);
  border-radius: 2px;
  border-width: 0;
  color: var(--fg-color-secondary);
  font-family: inherit;
  font-size: 0.8rem;
  padding: 2px 18px 2px 4px;
  white-space: nowrap;
}
.logoSwitcher_select:disabled {
  background-color: var(--bg-color-secondary);
  padding-right: 4px;
}
.logoSwitcher_select:not(:disabled) {
  cursor: pointer;
}
.logoSwitcher_select:not(:disabled):hover, .logoSwitcher_select:focus {
  background-color: var(--bg-color-action-active);
}
.logoSwitcher_select:focus {
  outline: none;
}
.logoSwitcher_arrow {
  border-color: currentColor transparent transparent;
  border-style: solid;
  border-width: 4px;
  bottom: 0;
  box-sizing: border-box;
  height: 8px;
  margin: auto;
  opacity: 0.5;
  pointer-events: none;
  position: absolute;
  right: 6px;
  top: 6px;
  width: 8px;
}
.logoSwitcher_select:disabled + .logoSwitcher_arrow {
  display: none;
}

.main {
  overflow: hidden;
}
@media (min-width: 961px) {
  .main_globalHeader {
    display: none;
  }
}
@media (max-width: 960px) {
  .main_globalHeader {
    height: 64px;
  }
}
@media print {
  .main_globalHeader {
    display: none;
  }
}
.main_wrap {
  box-sizing: border-box;
}
@media (min-width: 961px) {
  .main_wrap {
    margin-left: auto;
    margin-right: auto;
    max-width: 1280px;
    padding-left: 64px;
    padding-right: 64px;
  }
}
@media (min-width: 481px) and (max-width: 960px) {
  .main_wrap {
    padding-left: 32px;
    padding-right: 32px;
  }
}
@media (max-width: 480px) {
  .main_wrap {
    padding-left: 16px;
    padding-right: 16px;
  }
}
@media (min-width: 961px) {
  .main_wrap {
    display: flex;
    margin-top: 32px;
  }
}
@media (min-width: 961px) {
  .main_menu {
    margin-right: 32px;
    width: 240px;
  }
}
@media (max-width: 960px) {
  .main_menu {
    margin-right: 0;
    width: 0;
  }
}
@media print {
  .main_menu {
    display: none;
  }
}
.main_main {
  flex: 1;
}
@media (min-width: 961px) {
  .main_main {
    left: 240px;
    overflow: hidden;
    top: 0;
  }
}
@media (max-width: 960px) {
  .main_main {
    left: 0;
    top: 64px;
  }
}
.main_pageHeader, .main_inner {
  flex: 1;
}
.main_pageHeader h2, .main_inner h2 {
  font-size: 1.5rem;
  margin-top: 2em;
}
@media (max-width: 960px) {
  .main_pageHeader h2, .main_inner h2 {
    font-size: 1.25rem;
  }
}
.main_pageHeader h3,
.main_pageHeader h4,
.main_pageHeader h5,
.main_pageHeader h6, .main_inner h3,
.main_inner h4,
.main_inner h5,
.main_inner h6 {
  font-size: 1.25rem;
  margin-top: 2em;
}
@media (max-width: 960px) {
  .main_pageHeader h3,
  .main_pageHeader h4,
  .main_pageHeader h5,
  .main_pageHeader h6, .main_inner h3,
  .main_inner h4,
  .main_inner h5,
  .main_inner h6 {
    font-size: 1rem;
  }
}
.main_pageHeader h1:first-child,
.main_pageHeader h2:first-child,
.main_pageHeader h3:first-child,
.main_pageHeader h4:first-child,
.main_pageHeader h5:first-child,
.main_pageHeader h6:first-child, .main_inner h1:first-child,
.main_inner h2:first-child,
.main_inner h3:first-child,
.main_inner h4:first-child,
.main_inner h5:first-child,
.main_inner h6:first-child {
  margin-top: 0;
}
.main_pageHeader h1 + p,
.main_pageHeader h2 + p,
.main_pageHeader h3 + p,
.main_pageHeader h4 + p,
.main_pageHeader h5 + p,
.main_pageHeader h6 + p, .main_inner h1 + p,
.main_inner h2 + p,
.main_inner h3 + p,
.main_inner h4 + p,
.main_inner h5 + p,
.main_inner h6 + p {
  margin-top: 0.5em;
}
.main_pageHeader ul, .main_inner ul {
  list-style-type: disc;
  margin-bottom: 1em;
  margin-top: 1em;
  padding-left: 1.3rem;
}
.main_pageHeader li + li, .main_inner li + li {
  margin-top: 0.5em;
}
.main_pageHeader p, .main_inner p {
  line-height: 1.6;
}
.main_pageHeader p code,
.main_pageHeader th code,
.main_pageHeader td code,
.main_pageHeader li code, .main_inner p code,
.main_inner th code,
.main_inner td code,
.main_inner li code {
  background-color: var(--bg-color-action);
  border-radius: 2px;
  color: var(--code-color);
  font-weight: 500;
  letter-spacing: -0.02em;
  padding-left: 0.25em;
  padding-right: 0.25em;
}
.main_pageHeader :not(h1, h2, h3, h4, h5, h6) a, .main_inner :not(h1, h2, h3, h4, h5, h6) a {
  color: var(--a-color);
}
.main_pageHeader h1 + p, .main_inner h1 + p {
  margin-top: 1em;
  padding-left: 0.1em;
  padding-right: 0.1em;
}
@media (min-width: 481px) and (max-width: 960px) {
  .main_pageHeader {
    margin-left: -32px;
    margin-right: -32px;
  }
}
@media (max-width: 480px) {
  .main_pageHeader {
    margin-left: -16px;
    margin-right: -16px;
  }
}
@media (min-width: 961px) {
  .main_inner {
    padding-bottom: 64px;
    padding-top: 64px;
  }
}
@media (max-width: 960px) {
  .main_inner {
    padding-bottom: 32px;
    padding-top: 32px;
  }
}
.main_media {
  margin-bottom: 1.5em;
  margin-top: 1.5em;
}

.comparison > *:first-child {
  border-top-left-radius: 6px;
  border-top-right-radius: 6px;
}
.comparison > *:last-child {
  border-bottom-left-radius: 6px;
  border-bottom-right-radius: 6px;
}
@media (max-width: 960px) {
  .comparison {
    overflow-x: auto;
  }
}
.comparison_codes, .comparison_results, .comparison_texts {
  background-color: var(--bg-color-secondary);
  display: flex;
}
@media (max-width: 960px) {
  .comparison_codes, .comparison_results, .comparison_texts {
    min-width: 640px;
  }
}
.comparison_codes {
  align-items: stretch;
}
.comparison_code {
  display: flex;
  flex: 1;
  overflow-x: auto;
}
.comparison_result {
  background-image: radial-gradient(hsla(var(--guide-color-comps), 0.08) 1px, transparent 0), radial-gradient(hsla(var(--guide-color-comps), 0.04) 1px, transparent 0);
  background-size: 32px 32px, 8px 8px;
  background-position: center;
  flex: 1;
  padding-bottom: 32px;
  padding-top: 32px;
}
.comparison_text {
  display: flex;
  flex: 1;
  justify-content: center;
  padding: 32px;
}
.comparison_code + .comparison_code, .comparison_result + .comparison_result, .comparison_text + .comparison_text {
  border-left: var(--bg-color) solid 1px;
}

.datgui .dg li + li {
  margin-top: 0;
}
.datgui .dg li.save-row .button {
  margin-left: 4px;
}

.pageHeader {
  background-image: radial-gradient(hsla(var(--guide-color-comps), 0.08) 1px, transparent 0), radial-gradient(hsla(var(--guide-color-comps), 0.04) 1px, transparent 0);
  background-size: 32px 32px, 8px 8px;
  background-position: center;
  background-color: var(--bg-color-secondary);
  position: relative;
}
@media (min-width: 961px) {
  .pageHeader, .pageHeader_sketchContainer, .pageHeader_sketchContainer canvas {
    border-radius: 6px;
  }
}
.pageHeader_sketchContainer {
  inset: 0;
  overflow: hidden;
  position: absolute;
}
.pageHeader_sketchContainer svg {
  display: block;
  height: 100%;
  left: 0;
  overflow: hidden;
  position: absolute;
  top: 0;
  width: 100%;
}
.pageHeader_inner {
  box-sizing: border-box;
  margin-left: auto;
  margin-right: auto;
  position: relative;
}
@media (min-width: 961px) {
  .pageHeader_inner {
    align-items: center;
    display: flex;
    justify-content: space-between;
    padding: 64px;
    max-width: 800px;
  }
}
@media (min-width: 481px) and (max-width: 960px) {
  .pageHeader_inner {
    max-width: 480px;
  }
}
@media (max-width: 960px) {
  .pageHeader_inner {
    display: block;
    padding: 64px 32px;
  }
}
@media (min-width: 961px) {
  .pageHeader_text {
    padding-bottom: 32px;
    padding-top: 32px;
  }
}
@media (max-width: 960px) {
  .pageHeader_text {
    text-align: center;
  }
}
.pageHeader_title {
  font-size: 3rem;
  line-height: 1;
}
@media (max-width: 960px) {
  .pageHeader_title {
    font-size: 2rem;
  }
}
.pageHeader.pageHeader-theming .pageHeader_text {
  color: hsl(230, 5%, 60%);
}
.pageHeader.pageHeader-theming .pageHeader_title {
  color: hsl(230, 5%, 70%);
}
@media (min-width: 961px) {
  .pageHeader_pane {
    flex-grow: 0;
    flex-shrink: 0;
    margin-left: 32px;
  }
}
@media (max-width: 960px) {
  .pageHeader_pane {
    margin-top: 32px;
    text-align: center;
  }
}

.paneContainer {
  flex-grow: 0;
  flex-shrink: 0;
  margin-left: auto;
  margin-right: auto;
  position: relative;
  width: 256px;
}
.paneContainer + .paneContainer {
  margin-top: 16px;
}
.paneContainer.paneContainer-dat + .paneContainer {
  margin-top: 36px;
}
.paneContainer.paneContainer-dat {
  width: 245px;
}
.paneContainer.paneContainer-dat .tp-lblv_v {
  width: calc(60% + 3px);
}
.paneContainer.paneContainer-console {
  --tp-base-background-color: var(--bg-color-secondary);
  --tp-base-shadow-color: transparent;
  --tp-button-background-color: hsla(var(--guide-color-comps), 0.04);
  --tp-button-background-color-active: hsla(var(--guide-color-comps), 0.04);
  --tp-button-background-color-focus: hsla(var(--guide-color-comps), 0.04);
  --tp-button-background-color-hover: hsla(var(--guide-color-comps), 0.04);
  --tp-button-foreground-color: hsla(var(--guide-color-comps), 0.4);
  --tp-container-background-color: hsla(var(--guide-color-comps), 0.04);
  --tp-container-background-color-active: hsla(var(--guide-color-comps), 0.04);
  --tp-container-background-color-focus: hsla(var(--guide-color-comps), 0.04);
  --tp-container-background-color-hover: hsla(var(--guide-color-comps), 0.04);
  --tp-container-foreground-color: hsla(var(--guide-color-comps), 0.4);
  --tp-input-background-color: hsla(var(--guide-color-comps), 0.04);
  --tp-input-background-color-active: hsla(var(--guide-color-comps), 0.04);
  --tp-input-background-color-focus: hsla(var(--guide-color-comps), 0.04);
  --tp-input-background-color-hover: hsla(var(--guide-color-comps), 0.04);
  --tp-input-foreground-color: hsla(var(--guide-color-comps), 0.4);
  --tp-monitor-background-color: hsla(var(--guide-color-comps), 0.04);
  --tp-monitor-foreground-color: hsla(var(--guide-color-comps), 0.4);
  --tp-label-foreground-color: hsla(var(--guide-color-comps), 0.4);
  --tp-groove-foreground-color: hsla(var(--guide-color-comps), 0.1);
}
.paneContainer.paneContainer-console .tp-rotv {
  border: hsla(var(--guide-color-comps), 0.05) solid 1px;
}

.photoCredit {
  bottom: 8px;
  color: rgba(255, 255, 255, 0.5);
  font-size: 0.6rem;
  mix-blend-mode: exclusion;
  position: absolute;
  right: 8px;
}
.photoCredit a {
  color: currentColor;
}

.rel {
  display: grid;
  margin-bottom: 1em;
  margin-top: 1em;
}
@media (min-width: 961px) {
  .rel {
    gap: 16px;
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 960px) {
  .rel {
    gap: 8px;
    grid-template-columns: repeat(1, 1fr);
  }
}

.relItem {
  align-items: stretch;
  display: flex;
}
.relItem a.relItem_anchor {
  align-items: center;
  background-color: var(--bg-color-action);
  border-radius: 6px;
  color: var(--fg-color);
  display: flex;
  flex: 1;
  padding: 24px 32px;
  text-decoration: none;
}
.relItem a.relItem_anchor:focus, .relItem a.relItem_anchor:hover {
  background-color: var(--bg-color-action-active);
}
.relItem_icon {
  align-items: center;
  border: transparent solid 2px;
  border-radius: 50%;
  display: flex;
  height: 2em;
  justify-content: center;
  opacity: 0.5;
  width: 2em;
}
.relItem_icon.relItem_icon-circle {
  border-color: currentColor;
}
.relItem_text {
  display: flex;
  flex: 1;
  flex-direction: column;
}
.relItem_icon + .relItem_text, .relItem_text + .relItem_icon {
  margin-left: 32px;
}
.relItem.relItem-oneline a.relItem_anchor {
  justify-content: center;
}
.relItem_title {
  font-weight: 500;
}
.relItem_detail {
  color: var(--fg-color-secondary);
  line-height: 1.3;
  margin-top: 8px;
}

ul.sponsors {
  display: grid;
  grid-template-columns: repeat(auto-fill, 128px);
  gap: 32px;
  padding-left: 0;
}
ul.sponsors li {
  list-style-type: none;
}
ul.sponsors li + li {
  margin-top: 0;
}

.sponsor a.sponsor_anchor {
  color: inherit;
  display: block;
  text-decoration: none;
}
.sponsor a.sponsor_anchor:hover {
  text-decoration: underline;
}
.sponsor_image {
  background-color: var(--bg-color-action);
  border-radius: 50%;
  height: 80px;
  margin-left: auto;
  margin-right: auto;
  overflow: hidden;
  position: relative;
  width: 80px;
}
.sponsor_image img {
  display: block;
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
}
a.sponsor_anchor:hover .sponsor_image {
  background-color: var(--bg-color-action-active);
}
a.sponsor_anchor:hover .sponsor_image img {
  filter: brightness(1.1) saturate(1.1);
}
.sponsor_placeholder {
  left: 50%;
  margin-left: -12px;
  margin-top: -12px;
  position: absolute;
  top: 50%;
}
.sponsor_name {
  margin-top: 16px;
  text-align: center;
}

.paint {
  background-color: var(--bg-color-secondary);
  border-radius: 6px;
  overflow: hidden;
}
.paint_gui {
  border-bottom: var(--bg-color) solid 2px;
}
@media (min-width: 961px) {
  .paint_gui {
    display: flex;
  }
}
.paint_controller {
  --tp-base-border-radius: 0px;
  --tp-base-shadow-color: transparent;
  background-color: var(--bg-color-secondary);
}
@media (max-width: 960px) {
  .paint_controller {
    --tp-blade-value-width: 60vw;
  }
  .paint_controller .paneContainer {
    width: 100%;
  }
}
.paint_preview {
  align-items: center;
  display: flex;
  flex: 1;
  justify-content: center;
  overflow: hidden;
  padding: 32px;
  position: relative;
}
.paint_preview .paneContainer {
  position: static;
}
.paint_preview .tp-rotv {
  position: relative;
}
.paint_bgImage {
  background-color: black;
  background: url(https://source.unsplash.com/74ft3aciAY0/900x1600) no-repeat center;
  background-size: cover;
  inset: -16px;
  position: absolute;
}
.paint_bgImage::before {
  background-image: radial-gradient(rgba(255, 255, 255, 0.1) 1px, transparent 0);
  background-position: center;
  background-size: 16px 16px;
  content: "";
  inset: 0;
  position: absolute;
}

:root.index .pageHeader {
  background-image: none;
}
:root.index .pageHeader_inner {
  position: static;
}
@media (min-width: 961px) {
  :root.index .pageHeader_inner {
    padding-bottom: 128px;
    padding-top: 128px;
  }
}
:root.index .pageHeader_text {
  mix-blend-mode: difference;
}
:root.index .pageHeader_title {
  color: white;
}
:root.index .pageHeader_text p {
  color: white;
}
@media (max-width: 960px) {
  :root.index .pageHeader_text p {
    hyphens: auto;
  }
}
:root.index .pageHeader_pane {
  position: relative;
}

:root.theming .pageHeader {
  background-color: #21292a;
  background-image: url(https://source.unsplash.com/u27Rrbs9Dwc/1600x900);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}
:root.theming .pageHeader::before {
  background-image: radial-gradient(rgba(255, 255, 255, 0.1) 1px, transparent 0);
  background-position: center;
  background-size: 16px 16px;
  content: "";
  inset: 0;
  position: absolute;
}
:root.theming .pageHeader .paneContainer {
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
}
:root.theming .pageHeader_title h1,
:root.theming .pageHeader_title p {
  color: rgba(255, 255, 255, 0.8);
}

:root.catalog.readme .main_menu {
  display: none;
}
:root.catalog.readme .main_wrap {
  max-width: 1088px;
}
:root.catalog.readme .paneCatalog {
  border-radius: 0;
  padding: 64px;
}
:root.catalog .tp-dfwv {
  position: fixed;
}
:root.catalog.readme .tp-dfwv {
  display: none;
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0ZGluIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6InN0ZGluIiwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCB1cmwoXCJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9Um9ib3RvK01vbm86NDAwLDUwMCw3MDBcIik7XG5AaW1wb3J0IHVybChcImh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1SdWJpazo0MDAsNTAwLDcwMFwiKTtcbkBpbXBvcnQgdXJsKFwiaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVNvdXJjZStDb2RlK1Bybzo0MDAsNTAwLDcwMFwiKTtcbmh0bWwsXG5ib2R5LFxucHJlIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYge1xuICBmb250LXNpemU6IDFyZW07XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxucCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxucHJlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbmRsLFxub2wsXG51bCB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG5saSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuYnV0dG9uIHtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci13aWR0aDogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBwYWRkaW5nOiAwO1xufVxuXG46cm9vdCB7XG4gIC0tYmctY29sb3I6IHdoaXRlO1xuICAtLWJnLWNvbG9yLXRyYW5zbHVjZW50OiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG4gIC0tYmctY29sb3Itc2Vjb25kYXJ5OiBoc2woMjMwLCA3JSwgOTUlKTtcbiAgLS1iZy1jb2xvci1hY3Rpb246IGhzbCgyMzAsIDclLCA5NSUpO1xuICAtLWJnLWNvbG9yLWFjdGlvbi1hY3RpdmU6IGhzbCgyMzAsIDclLCA5MyUpO1xuICAtLWZnLWNvbG9yOiBoc2woMjMwLCA1JSwgMzUlKTtcbiAgLS1mZy1jb2xvci1hY3Rpb246IGhzbGEoMjMwLCA1JSwgMzUlLCAwLjgpO1xuICAtLWZnLWNvbG9yLXNlY29uZGFyeTogaHNsYSgyMzAsIDUlLCAzNSUsIDAuNyk7XG4gIC0tYS1jb2xvcjogaHNsKDIyMCwgNTAlLCA1MCUpO1xuICAtLWNvZGUtY29sb3I6IGhzbCgyMzAsIDIwJSwgNTAlKTtcbiAgLS1ndWlkZS1jb2xvci1jb21wczogMjMwLCAyMCUsIDE1JTtcbiAgLS1oZWFkaW5nLWNvbG9yOiBoc2woMjMwLCA1JSwgMjAlKTtcbiAgLS1obC1jb21tZW50OiBoc2woMjMwLCA3JSwgNjAlKTtcbiAgLS1obC1jb25zdGFudDogdmFyKC0taGwtc3RyaW5nKTtcbiAgLS1obC1rZXl3b3JkOiBoc2woMjI1LCA0MCUsIDQ3JSk7XG4gIC0taGwtc3RyaW5nOiBoc2woMjMwLCAxNSUsIDUwJSk7XG59XG5AbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7XG4gIDpyb290IHtcbiAgICAtLWJnLWNvbG9yOiBoc2woMjMwLCA3JSwgMTclKTtcbiAgICAtLWJnLWNvbG9yLXRyYW5zbHVjZW50OiByZ2JhKDAsIDAsIDAsIDAuOSk7XG4gICAgLS1iZy1jb2xvci1zZWNvbmRhcnk6IGhzbCgyMzAsIDclLCAxMCUpO1xuICAgIC0tYmctY29sb3ItYWN0aW9uOiBoc2woMjMwLCA3JSwgMjIlKTtcbiAgICAtLWJnLWNvbG9yLWFjdGlvbi1hY3RpdmU6IGhzbCgyMzAsIDclLCAyNSUpO1xuICAgIC0tZmctY29sb3I6IGhzbCgyMzAsIDclLCA3NSUpO1xuICAgIC0tZmctY29sb3ItYWN0aW9uOiBoc2woMjMwLCA3JSwgODAlKTtcbiAgICAtLWZnLWNvbG9yLXNlY29uZGFyeTogaHNsYSgyMzAsIDclLCA3NSUsIDAuOCk7XG4gICAgLS1hLWNvbG9yOiBoc2woMjIwLCA0MCUsIDYwJSk7XG4gICAgLS1jb2RlLWNvbG9yOiBoc2woMTcwLCAyMCUsIDU1JSk7XG4gICAgLS1ndWlkZS1jb2xvci1jb21wczogMjMwLCA1JSwgODAlO1xuICAgIC0taGVhZGluZy1jb2xvcjogaHNsKDIzMCwgNyUsIDc1JSk7XG4gICAgLS1obC1jb21tZW50OiBoc2woMjMwLCA3JSwgNDAlKTtcbiAgICAtLWhsLWNvbnN0YW50OiB2YXIoLS1obC1zdHJpbmcpO1xuICAgIC0taGwta2V5d29yZDogaHNsKDIyMCwgMzAlLCA2MCUpO1xuICAgIC0taGwtc3RyaW5nOiBoc2woMTcwLCAyMCUsIDYwJSk7XG4gIH1cbn1cblxuaHRtbCB7XG4gIGNvbG9yOiB2YXIoLS1mZy1jb2xvcik7XG4gIGZvbnQtZmFtaWx5OiBSdWJpaywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykge1xuICBodG1sIHtcbiAgICBjb2xvci1zY2hlbWU6IGRhcms7XG4gIH1cbn1cblxuYm9keSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnLWNvbG9yKTtcbn1cblxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2IHtcbiAgY29sb3I6IHZhcigtLWhlYWRpbmctY29sb3IpO1xuICBmb250LXdlaWdodDogNTAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMWVtO1xufVxuaDEgYSxcbmgyIGEsXG5oMyBhLFxuaDQgYSxcbmg1IGEsXG5oNiBhIHtcbiAgY29sb3I6IHZhcigtLWhlYWRpbmctY29sb3IpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5oMSBhOmhvdmVyLFxuaDIgYTpob3ZlcixcbmgzIGE6aG92ZXIsXG5oNCBhOmhvdmVyLFxuaDUgYTpob3Zlcixcbmg2IGE6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbmgxIC5tYXRlcmlhbC1pY29ucyxcbmgyIC5tYXRlcmlhbC1pY29ucyxcbmgzIC5tYXRlcmlhbC1pY29ucyxcbmg0IC5tYXRlcmlhbC1pY29ucyxcbmg1IC5tYXRlcmlhbC1pY29ucyxcbmg2IC5tYXRlcmlhbC1pY29ucyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xufVxuaDEgLm1hdGVyaWFsLWljb25zOmhvdmVyLFxuaDIgLm1hdGVyaWFsLWljb25zOmhvdmVyLFxuaDMgLm1hdGVyaWFsLWljb25zOmhvdmVyLFxuaDQgLm1hdGVyaWFsLWljb25zOmhvdmVyLFxuaDUgLm1hdGVyaWFsLWljb25zOmhvdmVyLFxuaDYgLm1hdGVyaWFsLWljb25zOmhvdmVyIHtcbiAgb3BhY2l0eTogMC43NTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5NjFweCkge1xuICBoMSAubWF0ZXJpYWwtaWNvbnMsXG4gIGgyIC5tYXRlcmlhbC1pY29ucyxcbiAgaDMgLm1hdGVyaWFsLWljb25zLFxuICBoNCAubWF0ZXJpYWwtaWNvbnMsXG4gIGg1IC5tYXRlcmlhbC1pY29ucyxcbiAgaDYgLm1hdGVyaWFsLWljb25zIHtcbiAgICB0b3A6IC0zcHg7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICBoMSAubWF0ZXJpYWwtaWNvbnMsXG4gIGgyIC5tYXRlcmlhbC1pY29ucyxcbiAgaDMgLm1hdGVyaWFsLWljb25zLFxuICBoNCAubWF0ZXJpYWwtaWNvbnMsXG4gIGg1IC5tYXRlcmlhbC1pY29ucyxcbiAgaDYgLm1hdGVyaWFsLWljb25zIHtcbiAgICB0b3A6IC0xcHg7XG4gIH1cbn1cblxudGFibGUge1xuICBib3JkZXI6IHZhcigtLWJnLWNvbG9yLXNlY29uZGFyeSkgc29saWQgMnB4O1xuICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xuICB3aWR0aDogMTAwJTtcbn1cblxudGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1jb2xvci1zZWNvbmRhcnkpO1xuICBjb2xvcjogdmFyKC0taGVhZGluZy1jb2xvcik7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHRleHQtYWxpZ246IHN0YXJ0O1xufVxuXG50aCxcbnRkIHtcbiAgcGFkZGluZzogOHB4IDE2cHg7XG59XG50aDpub3QoOmZpcnN0LWNoaWxkKSxcbnRkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgYm9yZGVyLWxlZnQ6IHZhcigtLWJnLWNvbG9yLXNlY29uZGFyeSkgc29saWQgMnB4O1xufVxuXG50cjpub3QoOmZpcnN0LWNoaWxkKSB0aCxcbnRyOm5vdCg6Zmlyc3QtY2hpbGQpIHRkIHtcbiAgYm9yZGVyLXRvcDogdmFyKC0tYmctY29sb3Itc2Vjb25kYXJ5KSBzb2xpZCAycHg7XG59XG5cbnAgKyBwIHtcbiAgbWFyZ2luLXRvcDogMWVtO1xufVxuXG5jb2RlIHtcbiAgZm9udC1mYW1pbHk6IFwiU291cmNlIENvZGUgUHJvXCIsIHNhbnMtc2VyaWY7XG59XG5cbnByZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlNvdXJjZSBDb2RlIFByb1wiLCBzYW5zLXNlcmlmO1xufVxuXG5zdHJvbmcge1xuICBjb2xvcjogdmFyKC0tLWhlYWRpbmctY29sb3IpO1xuICBmaWx0ZXI6IGJyaWdodG5lc3MoMC45KSBzYXR1cmF0ZSgxLjIpO1xufVxuQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykge1xuICBzdHJvbmcge1xuICAgIGZpbHRlcjogYnJpZ2h0bmVzcygxLjEpIHNhdHVyYXRlKDEuMSk7XG4gIH1cbn1cblxuOnJvb3QgLnRwLWRmd3Yge1xuICB0b3A6IDcycHg7XG59XG5cbi5wYW5lQ2F0YWxvZyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnLWNvbG9yLXNlY29uZGFyeSk7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ2FwOiAzMnB4O1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgMjU2cHgpO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZzogMzJweDtcbn1cbi5wYW5lQ2F0YWxvZy5wYW5lQ2F0YWxvZy10aGVtaW5nIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogaHNsKDIzMCwgNyUsIDU3JSk7XG59XG5cbi5jb2RlQmxvY2sge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5AbWVkaWEgc2NyZWVuIHtcbiAgLmNvZGVCbG9jay5jb2RlQmxvY2stY29tcGFjdCB7XG4gICAgbWF4LWhlaWdodDogMjU2cHg7XG4gIH1cbn1cbi5jb2RlQmxvY2sgcHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIHBhZGRpbmc6IDMycHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLmNvZGVCbG9jayBwcmUge1xuICAgIHBhZGRpbmc6IDI0cHg7XG4gIH1cbn1cbi5jb2RlQmxvY2sgcHJlIGNvZGUge1xuICBmb250LXNpemU6IDAuOXJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cbi5jb2RlQmxvY2suY29kZUJsb2NrLWZpZyBwcmUge1xuICBsaW5lLWhlaWdodDogMC45O1xufVxuLmNvZGVCbG9jay5jb2RlQmxvY2stZmlnIHByZSBjb2RlIHtcbiAgZm9udC1zaXplOiAwLjhyZW07XG59XG5cbi5jb25jZXB0cyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgbWFyZ2luLXRvcDogMWVtO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk2MXB4KSB7XG4gIC5jb25jZXB0cyB7XG4gICAgZ2FwOiAxNnB4O1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAuY29uY2VwdHMge1xuICAgIGdhcDogOHB4O1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEsIDFmcik7XG4gIH1cbn1cblxuLmNvbmNlcHQge1xuICBib3JkZXI6IHZhcigtLWJnLWNvbG9yLWFjdGlvbikgc29saWQgMnB4O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBhZGRpbmc6IDI0cHggMzJweDtcbn1cbi5jb25jZXB0X3RpdGxlIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4uY29uY2VwdF9kZXRhaWwge1xuICBjb2xvcjogdmFyKC0tZmctY29sb3Itc2Vjb25kYXJ5KTtcbiAgbWFyZ2luLXRvcDogMTZweDtcbn1cblxuLmRlbW8ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1jb2xvci1zZWNvbmRhcnkpO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5NjFweCkge1xuICAuZGVtbyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxufVxuLmRlbW9fY29kZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXg6IDM7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuLmRlbW9fY29kZSAuY29kZUJsb2NrIHtcbiAgZmxleDogMTtcbn1cbi5kZW1vX3Jlc3VsdCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudChoc2xhKHZhcigtLWd1aWRlLWNvbG9yLWNvbXBzKSwgMC4wOCkgMXB4LCB0cmFuc3BhcmVudCAwKSwgcmFkaWFsLWdyYWRpZW50KGhzbGEodmFyKC0tZ3VpZGUtY29sb3ItY29tcHMpLCAwLjA0KSAxcHgsIHRyYW5zcGFyZW50IDApO1xuICBiYWNrZ3JvdW5kLXNpemU6IDMycHggMzJweCwgOHB4IDhweDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBmbGV4OiAyO1xuICBwYWRkaW5nOiAzMnB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uZGVtb19jaGlwIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taGwtY29tbWVudCk7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDFweDtcbiAgY29sb3I6IHZhcigtLWJnLWNvbG9yLXNlY29uZGFyeSk7XG4gIGZvbnQtZmFtaWx5OiBcIlNvdXJjZSBDb2RlIFByb1wiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDAuN3JlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgcGFkZGluZzogMC4yZW0gMC41ZW07XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIHRvcDogMDtcbn1cblxuLmdsb2JhbEZvb3RlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5nbG9iYWxGb290ZXJfaW5uZXIge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBwYWRkaW5nLWJvdHRvbTogMTZweDtcbiAgcGFkZGluZy10b3A6IDE2cHg7XG59XG4uZ2xvYmFsRm9vdGVyX2NvcHkge1xuICBjb2xvcjogdmFyKC0tZmctY29sb3Itc2Vjb25kYXJ5KTtcbiAgZm9udC1zaXplOiAwLjhyZW07XG59XG4uZ2xvYmFsRm9vdGVyX2NvcHkgYSB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuXG4uZ2xvYmFsSGVhZGVyIHtcbiAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMnB4KTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDJweCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnLWNvbG9yLXRyYW5zbHVjZW50KTtcbiAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBoZWlnaHQ6IDY0cHg7XG4gIGxlZnQ6IDA7XG4gIGxpbmUtaGVpZ2h0OiA2NHB4O1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHJpZ2h0OiAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRvcDogMDtcbiAgei1pbmRleDogMTAwMjtcbn1cbi5nbG9iYWxIZWFkZXJfaW5uZXIge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTYxcHgpIHtcbiAgLmdsb2JhbEhlYWRlcl9pbm5lciB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1heC13aWR0aDogMTI4MHB4O1xuICAgIHBhZGRpbmctbGVmdDogNjRweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA2NHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNDgxcHgpIGFuZCAobWF4LXdpZHRoOiA5NjBweCkge1xuICAuZ2xvYmFsSGVhZGVyX2lubmVyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDMycHg7XG4gICAgcGFkZGluZy1yaWdodDogMzJweDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC5nbG9iYWxIZWFkZXJfaW5uZXIge1xuICAgIHBhZGRpbmctbGVmdDogMTZweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4O1xuICB9XG59XG4uZ2xvYmFsSGVhZGVyX2xvZ28ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4uZ2xvYmFsSGVhZGVyX3NwTWVudUJ1dHRvbiB7XG4gIGxlZnQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xufVxuXG4uc3BNZW51QnV0dG9uIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGhlaWdodDogNjRweDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiA2NHB4O1xufVxuXG4ubWVudSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnLWNvbG9yKTtcbiAgYm90dG9tOiAwO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBwYWRkaW5nLWJvdHRvbTogMzJweDtcbiAgcGFkZGluZy10b3A6IDMycHg7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICB3aWR0aDogMjQwcHg7XG4gIHotaW5kZXg6IDEwMDM7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLm1lbnUge1xuICAgIGxlZnQ6IC0yNDBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMjRweDtcbiAgICBwYWRkaW5nLXRvcDogMjRweDtcbiAgICB0b3A6IDY0cHg7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG4gIC5tZW51Lm1lbnUtZXhwYW5kZWQge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyNDBweCk7XG4gIH1cbn1cbi5tZW51Lm1lbnUtbG9hZGVkIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZS1pbi1vdXQ7XG59XG4ubWVudV9sb2dvIHtcbiAgYm9yZGVyLWJvdHRvbTogdmFyKC0tYmctY29sb3ItYWN0aW9uKSBzb2xpZCAycHg7XG4gIHBhZGRpbmctYm90dG9tOiAxNnB4O1xuICBwYWRkaW5nLWxlZnQ6IDMycHg7XG4gIHBhZGRpbmctcmlnaHQ6IDMycHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLm1lbnVfbG9nbyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk2MXB4KSB7XG4gIC5tZW51X2xpc3Qge1xuICAgIG1hcmdpbi10b3A6IDI0cHg7XG4gIH1cbn1cblxuLm1lbnVJdGVtICsgLm1lbnVJdGVtIHtcbiAgbWFyZ2luLXRvcDogMnB4O1xufVxuLm1lbnVJdGVtX2FuY2hvciB7XG4gIGNvbG9yOiB2YXIoLS1mZy1jb2xvcik7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXdlaWdodDogNTAwO1xuICBtYXJnaW4tdG9wOiAyNHB4O1xuICBwYWRkaW5nOiA4cHggMTZweDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk2MXB4KSB7XG4gIC5tZW51SXRlbV9hbmNob3Ige1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBtYXJnaW4tbGVmdDogMTZweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDE2cHg7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAubWVudUl0ZW1fYW5jaG9yIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDMycHg7XG4gICAgcGFkZGluZy1yaWdodDogMzJweDtcbiAgfVxufVxuLm1lbnVJdGVtX2FuY2hvci5tZW51SXRlbV9hbmNob3ItYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmctY29sb3ItYWN0aW9uKTtcbiAgY29sb3I6IHZhcigtLWZnLWNvbG9yKTtcbn1cbi5tZW51SXRlbV9hbmNob3I6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1jb2xvci1hY3Rpb24pO1xufVxuLm1lbnVJdGVtX2FuY2hvciAubWF0ZXJpYWwtaWNvbnMge1xuICBmb250LXNpemU6IDEuMmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogLTFweDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi5tZW51SXRlbTpmaXJzdC1jaGlsZCAubWVudUl0ZW1fYW5jaG9yIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxuLnN1Ym1lbnVJdGVtICsgLnN1Ym1lbnVJdGVtIHtcbiAgbWFyZ2luLXRvcDogMnB4O1xufVxuLnN1Ym1lbnVJdGVtX2FuY2hvciB7XG4gIGNvbG9yOiB2YXIoLS1mZy1jb2xvci1zZWNvbmRhcnkpO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogOHB4IDE2cHg7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5NjFweCkge1xuICAuc3VibWVudUl0ZW1fYW5jaG9yIHtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgbWFyZ2luLWxlZnQ6IDE2cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnN1Ym1lbnVJdGVtX2FuY2hvciB7XG4gICAgcGFkZGluZy1sZWZ0OiAzMnB4O1xuICB9XG59XG4uc3VibWVudUl0ZW1fYW5jaG9yLnN1Ym1lbnVJdGVtX2FuY2hvci1hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1jb2xvci1hY3Rpb24pO1xufVxuLnN1Ym1lbnVJdGVtX2FuY2hvcjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnLWNvbG9yLWFjdGlvbik7XG4gIGNvbG9yOiB2YXIoLS1mZy1jb2xvcik7XG59XG5cbi5obGpzLWF0dHIge1xuICBjb2xvcjogdmFyKC0tZmctY29sb3IpO1xufVxuXG4uaGxqcy1jb21tZW50IHtcbiAgY29sb3I6IHZhcigtLWhsLWNvbW1lbnQpO1xufVxuXG4uaGxqcy1rZXl3b3JkIHtcbiAgY29sb3I6IHZhcigtLWhsLWtleXdvcmQpO1xufVxuXG4uaGxqcy1saXRlcmFsLFxuLmhsanMtbnVtYmVyIHtcbiAgY29sb3I6IHZhcigtLWhsLWNvbnN0YW50KTtcbn1cblxuLmhsanMtc3RyaW5nIHtcbiAgY29sb3I6IHZhcigtLWhsLXN0cmluZyk7XG59XG5cbi5obGpzLXRhZyB7XG4gIGNvbG9yOiB2YXIoLS1obC1rZXl3b3JkKTtcbn1cblxuQGtleWZyYW1lcyByb3RhdGVBbmltYXRpb24ge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuLmxvZ28ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmxvZ29fbWFpbiB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGNvbG9yOiB2YXIoLS1mZy1jb2xvcik7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5sb2dvX21haW46aG92ZXIge1xuICBjb2xvcjogdmFyKC0tZmctY29sb3ItYWN0aW9uKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLmxvZ29fc3ltYm9sIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGxlZnQsIHZhcigtLWZnLWNvbG9yKSwgdmFyKC0tZmctY29sb3IpIDRweCwgdHJhbnNwYXJlbnQgNHB4LCB0cmFuc3BhcmVudCA4cHgsIHZhcigtLWZnLWNvbG9yKSA4cHgsIHZhcigtLWZnLWNvbG9yKSk7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMTJweDtcbiAgYW5pbWF0aW9uOiByb3RhdGVBbmltYXRpb24gYXV0byBsaW5lYXI7XG4gIGFuaW1hdGlvbi10aW1lbGluZTogc2Nyb2xsKHJvb3QpO1xuICB3aWR0aDogMTJweDtcbn1cbi5sb2dvOmhvdmVyIC5sb2dvX3N5bWJvbCB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCB2YXIoLS1mZy1jb2xvci1hY3Rpb24pLCB2YXIoLS1mZy1jb2xvci1hY3Rpb24pIDRweCwgdHJhbnNwYXJlbnQgNHB4LCB0cmFuc3BhcmVudCA4cHgsIHZhcigtLWZnLWNvbG9yLWFjdGlvbikgOHB4LCB2YXIoLS1mZy1jb2xvci1hY3Rpb24pKTtcbn1cbi5sb2dvX3RleHQge1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5sb2dvX3ZlcnNpb24ge1xuICBtYXJnaW4tbGVmdDogMjBweDtcbiAgbWFyZ2luLXRvcDogMnB4O1xufVxuXG4ubG9nb1N3aXRjaGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ubG9nb1N3aXRjaGVyX3NlbGVjdCB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnLWNvbG9yLWFjdGlvbik7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgYm9yZGVyLXdpZHRoOiAwO1xuICBjb2xvcjogdmFyKC0tZmctY29sb3Itc2Vjb25kYXJ5KTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBwYWRkaW5nOiAycHggMThweCAycHggNHB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLmxvZ29Td2l0Y2hlcl9zZWxlY3Q6ZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1jb2xvci1zZWNvbmRhcnkpO1xuICBwYWRkaW5nLXJpZ2h0OiA0cHg7XG59XG4ubG9nb1N3aXRjaGVyX3NlbGVjdDpub3QoOmRpc2FibGVkKSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5sb2dvU3dpdGNoZXJfc2VsZWN0Om5vdCg6ZGlzYWJsZWQpOmhvdmVyLCAubG9nb1N3aXRjaGVyX3NlbGVjdDpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnLWNvbG9yLWFjdGlvbi1hY3RpdmUpO1xufVxuLmxvZ29Td2l0Y2hlcl9zZWxlY3Q6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuLmxvZ29Td2l0Y2hlcl9hcnJvdyB7XG4gIGJvcmRlci1jb2xvcjogY3VycmVudENvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDRweDtcbiAgYm90dG9tOiAwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBoZWlnaHQ6IDhweDtcbiAgbWFyZ2luOiBhdXRvO1xuICBvcGFjaXR5OiAwLjU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiA2cHg7XG4gIHRvcDogNnB4O1xuICB3aWR0aDogOHB4O1xufVxuLmxvZ29Td2l0Y2hlcl9zZWxlY3Q6ZGlzYWJsZWQgKyAubG9nb1N3aXRjaGVyX2Fycm93IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLm1haW4ge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk2MXB4KSB7XG4gIC5tYWluX2dsb2JhbEhlYWRlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5tYWluX2dsb2JhbEhlYWRlciB7XG4gICAgaGVpZ2h0OiA2NHB4O1xuICB9XG59XG5AbWVkaWEgcHJpbnQge1xuICAubWFpbl9nbG9iYWxIZWFkZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbi5tYWluX3dyYXAge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk2MXB4KSB7XG4gIC5tYWluX3dyYXAge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXgtd2lkdGg6IDEyODBweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDY0cHg7XG4gICAgcGFkZGluZy1yaWdodDogNjRweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ4MXB4KSBhbmQgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLm1haW5fd3JhcCB7XG4gICAgcGFkZGluZy1sZWZ0OiAzMnB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDMycHg7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAubWFpbl93cmFwIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gICAgcGFkZGluZy1yaWdodDogMTZweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk2MXB4KSB7XG4gIC5tYWluX3dyYXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luLXRvcDogMzJweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDk2MXB4KSB7XG4gIC5tYWluX21lbnUge1xuICAgIG1hcmdpbi1yaWdodDogMzJweDtcbiAgICB3aWR0aDogMjQwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAubWFpbl9tZW51IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgd2lkdGg6IDA7XG4gIH1cbn1cbkBtZWRpYSBwcmludCB7XG4gIC5tYWluX21lbnUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbi5tYWluX21haW4ge1xuICBmbGV4OiAxO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk2MXB4KSB7XG4gIC5tYWluX21haW4ge1xuICAgIGxlZnQ6IDI0MHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdG9wOiAwO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLm1haW5fbWFpbiB7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDY0cHg7XG4gIH1cbn1cbi5tYWluX3BhZ2VIZWFkZXIsIC5tYWluX2lubmVyIHtcbiAgZmxleDogMTtcbn1cbi5tYWluX3BhZ2VIZWFkZXIgaDIsIC5tYWluX2lubmVyIGgyIHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIG1hcmdpbi10b3A6IDJlbTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAubWFpbl9wYWdlSGVhZGVyIGgyLCAubWFpbl9pbm5lciBoMiB7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICB9XG59XG4ubWFpbl9wYWdlSGVhZGVyIGgzLFxuLm1haW5fcGFnZUhlYWRlciBoNCxcbi5tYWluX3BhZ2VIZWFkZXIgaDUsXG4ubWFpbl9wYWdlSGVhZGVyIGg2LCAubWFpbl9pbm5lciBoMyxcbi5tYWluX2lubmVyIGg0LFxuLm1haW5faW5uZXIgaDUsXG4ubWFpbl9pbm5lciBoNiB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgbWFyZ2luLXRvcDogMmVtO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5tYWluX3BhZ2VIZWFkZXIgaDMsXG4gIC5tYWluX3BhZ2VIZWFkZXIgaDQsXG4gIC5tYWluX3BhZ2VIZWFkZXIgaDUsXG4gIC5tYWluX3BhZ2VIZWFkZXIgaDYsIC5tYWluX2lubmVyIGgzLFxuICAubWFpbl9pbm5lciBoNCxcbiAgLm1haW5faW5uZXIgaDUsXG4gIC5tYWluX2lubmVyIGg2IHtcbiAgICBmb250LXNpemU6IDFyZW07XG4gIH1cbn1cbi5tYWluX3BhZ2VIZWFkZXIgaDE6Zmlyc3QtY2hpbGQsXG4ubWFpbl9wYWdlSGVhZGVyIGgyOmZpcnN0LWNoaWxkLFxuLm1haW5fcGFnZUhlYWRlciBoMzpmaXJzdC1jaGlsZCxcbi5tYWluX3BhZ2VIZWFkZXIgaDQ6Zmlyc3QtY2hpbGQsXG4ubWFpbl9wYWdlSGVhZGVyIGg1OmZpcnN0LWNoaWxkLFxuLm1haW5fcGFnZUhlYWRlciBoNjpmaXJzdC1jaGlsZCwgLm1haW5faW5uZXIgaDE6Zmlyc3QtY2hpbGQsXG4ubWFpbl9pbm5lciBoMjpmaXJzdC1jaGlsZCxcbi5tYWluX2lubmVyIGgzOmZpcnN0LWNoaWxkLFxuLm1haW5faW5uZXIgaDQ6Zmlyc3QtY2hpbGQsXG4ubWFpbl9pbm5lciBoNTpmaXJzdC1jaGlsZCxcbi5tYWluX2lubmVyIGg2OmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi5tYWluX3BhZ2VIZWFkZXIgaDEgKyBwLFxuLm1haW5fcGFnZUhlYWRlciBoMiArIHAsXG4ubWFpbl9wYWdlSGVhZGVyIGgzICsgcCxcbi5tYWluX3BhZ2VIZWFkZXIgaDQgKyBwLFxuLm1haW5fcGFnZUhlYWRlciBoNSArIHAsXG4ubWFpbl9wYWdlSGVhZGVyIGg2ICsgcCwgLm1haW5faW5uZXIgaDEgKyBwLFxuLm1haW5faW5uZXIgaDIgKyBwLFxuLm1haW5faW5uZXIgaDMgKyBwLFxuLm1haW5faW5uZXIgaDQgKyBwLFxuLm1haW5faW5uZXIgaDUgKyBwLFxuLm1haW5faW5uZXIgaDYgKyBwIHtcbiAgbWFyZ2luLXRvcDogMC41ZW07XG59XG4ubWFpbl9wYWdlSGVhZGVyIHVsLCAubWFpbl9pbm5lciB1bCB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICBtYXJnaW4tdG9wOiAxZW07XG4gIHBhZGRpbmctbGVmdDogMS4zcmVtO1xufVxuLm1haW5fcGFnZUhlYWRlciBsaSArIGxpLCAubWFpbl9pbm5lciBsaSArIGxpIHtcbiAgbWFyZ2luLXRvcDogMC41ZW07XG59XG4ubWFpbl9wYWdlSGVhZGVyIHAsIC5tYWluX2lubmVyIHAge1xuICBsaW5lLWhlaWdodDogMS42O1xufVxuLm1haW5fcGFnZUhlYWRlciBwIGNvZGUsXG4ubWFpbl9wYWdlSGVhZGVyIHRoIGNvZGUsXG4ubWFpbl9wYWdlSGVhZGVyIHRkIGNvZGUsXG4ubWFpbl9wYWdlSGVhZGVyIGxpIGNvZGUsIC5tYWluX2lubmVyIHAgY29kZSxcbi5tYWluX2lubmVyIHRoIGNvZGUsXG4ubWFpbl9pbm5lciB0ZCBjb2RlLFxuLm1haW5faW5uZXIgbGkgY29kZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnLWNvbG9yLWFjdGlvbik7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgY29sb3I6IHZhcigtLWNvZGUtY29sb3IpO1xuICBmb250LXdlaWdodDogNTAwO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjI1ZW07XG4gIHBhZGRpbmctcmlnaHQ6IDAuMjVlbTtcbn1cbi5tYWluX3BhZ2VIZWFkZXIgOm5vdChoMSwgaDIsIGgzLCBoNCwgaDUsIGg2KSBhLCAubWFpbl9pbm5lciA6bm90KGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYpIGEge1xuICBjb2xvcjogdmFyKC0tYS1jb2xvcik7XG59XG4ubWFpbl9wYWdlSGVhZGVyIGgxICsgcCwgLm1haW5faW5uZXIgaDEgKyBwIHtcbiAgbWFyZ2luLXRvcDogMWVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuMWVtO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjFlbTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA0ODFweCkgYW5kIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5tYWluX3BhZ2VIZWFkZXIge1xuICAgIG1hcmdpbi1sZWZ0OiAtMzJweDtcbiAgICBtYXJnaW4tcmlnaHQ6IC0zMnB4O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLm1haW5fcGFnZUhlYWRlciB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xNnB4O1xuICAgIG1hcmdpbi1yaWdodDogLTE2cHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5NjFweCkge1xuICAubWFpbl9pbm5lciB7XG4gICAgcGFkZGluZy1ib3R0b206IDY0cHg7XG4gICAgcGFkZGluZy10b3A6IDY0cHg7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAubWFpbl9pbm5lciB7XG4gICAgcGFkZGluZy1ib3R0b206IDMycHg7XG4gICAgcGFkZGluZy10b3A6IDMycHg7XG4gIH1cbn1cbi5tYWluX21lZGlhIHtcbiAgbWFyZ2luLWJvdHRvbTogMS41ZW07XG4gIG1hcmdpbi10b3A6IDEuNWVtO1xufVxuXG4uY29tcGFyaXNvbiA+ICo6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA2cHg7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA2cHg7XG59XG4uY29tcGFyaXNvbiA+ICo6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDZweDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDZweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAuY29tcGFyaXNvbiB7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgfVxufVxuLmNvbXBhcmlzb25fY29kZXMsIC5jb21wYXJpc29uX3Jlc3VsdHMsIC5jb21wYXJpc29uX3RleHRzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmctY29sb3Itc2Vjb25kYXJ5KTtcbiAgZGlzcGxheTogZmxleDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAuY29tcGFyaXNvbl9jb2RlcywgLmNvbXBhcmlzb25fcmVzdWx0cywgLmNvbXBhcmlzb25fdGV4dHMge1xuICAgIG1pbi13aWR0aDogNjQwcHg7XG4gIH1cbn1cbi5jb21wYXJpc29uX2NvZGVzIHtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG59XG4uY29tcGFyaXNvbl9jb2RlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMTtcbiAgb3ZlcmZsb3cteDogYXV0bztcbn1cbi5jb21wYXJpc29uX3Jlc3VsdCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudChoc2xhKHZhcigtLWd1aWRlLWNvbG9yLWNvbXBzKSwgMC4wOCkgMXB4LCB0cmFuc3BhcmVudCAwKSwgcmFkaWFsLWdyYWRpZW50KGhzbGEodmFyKC0tZ3VpZGUtY29sb3ItY29tcHMpLCAwLjA0KSAxcHgsIHRyYW5zcGFyZW50IDApO1xuICBiYWNrZ3JvdW5kLXNpemU6IDMycHggMzJweCwgOHB4IDhweDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBmbGV4OiAxO1xuICBwYWRkaW5nLWJvdHRvbTogMzJweDtcbiAgcGFkZGluZy10b3A6IDMycHg7XG59XG4uY29tcGFyaXNvbl90ZXh0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmc6IDMycHg7XG59XG4uY29tcGFyaXNvbl9jb2RlICsgLmNvbXBhcmlzb25fY29kZSwgLmNvbXBhcmlzb25fcmVzdWx0ICsgLmNvbXBhcmlzb25fcmVzdWx0LCAuY29tcGFyaXNvbl90ZXh0ICsgLmNvbXBhcmlzb25fdGV4dCB7XG4gIGJvcmRlci1sZWZ0OiB2YXIoLS1iZy1jb2xvcikgc29saWQgMXB4O1xufVxuXG4uZGF0Z3VpIC5kZyBsaSArIGxpIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi5kYXRndWkgLmRnIGxpLnNhdmUtcm93IC5idXR0b24ge1xuICBtYXJnaW4tbGVmdDogNHB4O1xufVxuXG4ucGFnZUhlYWRlciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudChoc2xhKHZhcigtLWd1aWRlLWNvbG9yLWNvbXBzKSwgMC4wOCkgMXB4LCB0cmFuc3BhcmVudCAwKSwgcmFkaWFsLWdyYWRpZW50KGhzbGEodmFyKC0tZ3VpZGUtY29sb3ItY29tcHMpLCAwLjA0KSAxcHgsIHRyYW5zcGFyZW50IDApO1xuICBiYWNrZ3JvdW5kLXNpemU6IDMycHggMzJweCwgOHB4IDhweDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1jb2xvci1zZWNvbmRhcnkpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTYxcHgpIHtcbiAgLnBhZ2VIZWFkZXIsIC5wYWdlSGVhZGVyX3NrZXRjaENvbnRhaW5lciwgLnBhZ2VIZWFkZXJfc2tldGNoQ29udGFpbmVyIGNhbnZhcyB7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICB9XG59XG4ucGFnZUhlYWRlcl9za2V0Y2hDb250YWluZXIge1xuICBpbnNldDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuLnBhZ2VIZWFkZXJfc2tldGNoQ29udGFpbmVyIHN2ZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICB3aWR0aDogMTAwJTtcbn1cbi5wYWdlSGVhZGVyX2lubmVyIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk2MXB4KSB7XG4gIC5wYWdlSGVhZGVyX2lubmVyIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIHBhZGRpbmc6IDY0cHg7XG4gICAgbWF4LXdpZHRoOiA4MDBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDQ4MXB4KSBhbmQgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnBhZ2VIZWFkZXJfaW5uZXIge1xuICAgIG1heC13aWR0aDogNDgwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAucGFnZUhlYWRlcl9pbm5lciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogNjRweCAzMnB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTYxcHgpIHtcbiAgLnBhZ2VIZWFkZXJfdGV4dCB7XG4gICAgcGFkZGluZy1ib3R0b206IDMycHg7XG4gICAgcGFkZGluZy10b3A6IDMycHg7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAucGFnZUhlYWRlcl90ZXh0IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn1cbi5wYWdlSGVhZGVyX3RpdGxlIHtcbiAgZm9udC1zaXplOiAzcmVtO1xuICBsaW5lLWhlaWdodDogMTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAucGFnZUhlYWRlcl90aXRsZSB7XG4gICAgZm9udC1zaXplOiAycmVtO1xuICB9XG59XG4ucGFnZUhlYWRlci5wYWdlSGVhZGVyLXRoZW1pbmcgLnBhZ2VIZWFkZXJfdGV4dCB7XG4gIGNvbG9yOiBoc2woMjMwLCA1JSwgNjAlKTtcbn1cbi5wYWdlSGVhZGVyLnBhZ2VIZWFkZXItdGhlbWluZyAucGFnZUhlYWRlcl90aXRsZSB7XG4gIGNvbG9yOiBoc2woMjMwLCA1JSwgNzAlKTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5NjFweCkge1xuICAucGFnZUhlYWRlcl9wYW5lIHtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDMycHg7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5NjBweCkge1xuICAucGFnZUhlYWRlcl9wYW5lIHtcbiAgICBtYXJnaW4tdG9wOiAzMnB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuXG4ucGFuZUNvbnRhaW5lciB7XG4gIGZsZXgtZ3JvdzogMDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDI1NnB4O1xufVxuLnBhbmVDb250YWluZXIgKyAucGFuZUNvbnRhaW5lciB7XG4gIG1hcmdpbi10b3A6IDE2cHg7XG59XG4ucGFuZUNvbnRhaW5lci5wYW5lQ29udGFpbmVyLWRhdCArIC5wYW5lQ29udGFpbmVyIHtcbiAgbWFyZ2luLXRvcDogMzZweDtcbn1cbi5wYW5lQ29udGFpbmVyLnBhbmVDb250YWluZXItZGF0IHtcbiAgd2lkdGg6IDI0NXB4O1xufVxuLnBhbmVDb250YWluZXIucGFuZUNvbnRhaW5lci1kYXQgLnRwLWxibHZfdiB7XG4gIHdpZHRoOiBjYWxjKDYwJSArIDNweCk7XG59XG4ucGFuZUNvbnRhaW5lci5wYW5lQ29udGFpbmVyLWNvbnNvbGUge1xuICAtLXRwLWJhc2UtYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmctY29sb3Itc2Vjb25kYXJ5KTtcbiAgLS10cC1iYXNlLXNoYWRvdy1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC0tdHAtYnV0dG9uLWJhY2tncm91bmQtY29sb3I6IGhzbGEodmFyKC0tZ3VpZGUtY29sb3ItY29tcHMpLCAwLjA0KTtcbiAgLS10cC1idXR0b24tYmFja2dyb3VuZC1jb2xvci1hY3RpdmU6IGhzbGEodmFyKC0tZ3VpZGUtY29sb3ItY29tcHMpLCAwLjA0KTtcbiAgLS10cC1idXR0b24tYmFja2dyb3VuZC1jb2xvci1mb2N1czogaHNsYSh2YXIoLS1ndWlkZS1jb2xvci1jb21wcyksIDAuMDQpO1xuICAtLXRwLWJ1dHRvbi1iYWNrZ3JvdW5kLWNvbG9yLWhvdmVyOiBoc2xhKHZhcigtLWd1aWRlLWNvbG9yLWNvbXBzKSwgMC4wNCk7XG4gIC0tdHAtYnV0dG9uLWZvcmVncm91bmQtY29sb3I6IGhzbGEodmFyKC0tZ3VpZGUtY29sb3ItY29tcHMpLCAwLjQpO1xuICAtLXRwLWNvbnRhaW5lci1iYWNrZ3JvdW5kLWNvbG9yOiBoc2xhKHZhcigtLWd1aWRlLWNvbG9yLWNvbXBzKSwgMC4wNCk7XG4gIC0tdHAtY29udGFpbmVyLWJhY2tncm91bmQtY29sb3ItYWN0aXZlOiBoc2xhKHZhcigtLWd1aWRlLWNvbG9yLWNvbXBzKSwgMC4wNCk7XG4gIC0tdHAtY29udGFpbmVyLWJhY2tncm91bmQtY29sb3ItZm9jdXM6IGhzbGEodmFyKC0tZ3VpZGUtY29sb3ItY29tcHMpLCAwLjA0KTtcbiAgLS10cC1jb250YWluZXItYmFja2dyb3VuZC1jb2xvci1ob3ZlcjogaHNsYSh2YXIoLS1ndWlkZS1jb2xvci1jb21wcyksIDAuMDQpO1xuICAtLXRwLWNvbnRhaW5lci1mb3JlZ3JvdW5kLWNvbG9yOiBoc2xhKHZhcigtLWd1aWRlLWNvbG9yLWNvbXBzKSwgMC40KTtcbiAgLS10cC1pbnB1dC1iYWNrZ3JvdW5kLWNvbG9yOiBoc2xhKHZhcigtLWd1aWRlLWNvbG9yLWNvbXBzKSwgMC4wNCk7XG4gIC0tdHAtaW5wdXQtYmFja2dyb3VuZC1jb2xvci1hY3RpdmU6IGhzbGEodmFyKC0tZ3VpZGUtY29sb3ItY29tcHMpLCAwLjA0KTtcbiAgLS10cC1pbnB1dC1iYWNrZ3JvdW5kLWNvbG9yLWZvY3VzOiBoc2xhKHZhcigtLWd1aWRlLWNvbG9yLWNvbXBzKSwgMC4wNCk7XG4gIC0tdHAtaW5wdXQtYmFja2dyb3VuZC1jb2xvci1ob3ZlcjogaHNsYSh2YXIoLS1ndWlkZS1jb2xvci1jb21wcyksIDAuMDQpO1xuICAtLXRwLWlucHV0LWZvcmVncm91bmQtY29sb3I6IGhzbGEodmFyKC0tZ3VpZGUtY29sb3ItY29tcHMpLCAwLjQpO1xuICAtLXRwLW1vbml0b3ItYmFja2dyb3VuZC1jb2xvcjogaHNsYSh2YXIoLS1ndWlkZS1jb2xvci1jb21wcyksIDAuMDQpO1xuICAtLXRwLW1vbml0b3ItZm9yZWdyb3VuZC1jb2xvcjogaHNsYSh2YXIoLS1ndWlkZS1jb2xvci1jb21wcyksIDAuNCk7XG4gIC0tdHAtbGFiZWwtZm9yZWdyb3VuZC1jb2xvcjogaHNsYSh2YXIoLS1ndWlkZS1jb2xvci1jb21wcyksIDAuNCk7XG4gIC0tdHAtZ3Jvb3ZlLWZvcmVncm91bmQtY29sb3I6IGhzbGEodmFyKC0tZ3VpZGUtY29sb3ItY29tcHMpLCAwLjEpO1xufVxuLnBhbmVDb250YWluZXIucGFuZUNvbnRhaW5lci1jb25zb2xlIC50cC1yb3R2IHtcbiAgYm9yZGVyOiBoc2xhKHZhcigtLWd1aWRlLWNvbG9yLWNvbXBzKSwgMC4wNSkgc29saWQgMXB4O1xufVxuXG4ucGhvdG9DcmVkaXQge1xuICBib3R0b206IDhweDtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbiAgZm9udC1zaXplOiAwLjZyZW07XG4gIG1peC1ibGVuZC1tb2RlOiBleGNsdXNpb247XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDhweDtcbn1cbi5waG90b0NyZWRpdCBhIHtcbiAgY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cblxuLnJlbCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgbWFyZ2luLXRvcDogMWVtO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk2MXB4KSB7XG4gIC5yZWwge1xuICAgIGdhcDogMTZweDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgLnJlbCB7XG4gICAgZ2FwOiA4cHg7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMSwgMWZyKTtcbiAgfVxufVxuXG4ucmVsSXRlbSB7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLnJlbEl0ZW0gYS5yZWxJdGVtX2FuY2hvciB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnLWNvbG9yLWFjdGlvbik7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgY29sb3I6IHZhcigtLWZnLWNvbG9yKTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMTtcbiAgcGFkZGluZzogMjRweCAzMnB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4ucmVsSXRlbSBhLnJlbEl0ZW1fYW5jaG9yOmZvY3VzLCAucmVsSXRlbSBhLnJlbEl0ZW1fYW5jaG9yOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmctY29sb3ItYWN0aW9uLWFjdGl2ZSk7XG59XG4ucmVsSXRlbV9pY29uIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm9yZGVyOiB0cmFuc3BhcmVudCBzb2xpZCAycHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgaGVpZ2h0OiAyZW07XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBvcGFjaXR5OiAwLjU7XG4gIHdpZHRoOiAyZW07XG59XG4ucmVsSXRlbV9pY29uLnJlbEl0ZW1faWNvbi1jaXJjbGUge1xuICBib3JkZXItY29sb3I6IGN1cnJlbnRDb2xvcjtcbn1cbi5yZWxJdGVtX3RleHQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4OiAxO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuLnJlbEl0ZW1faWNvbiArIC5yZWxJdGVtX3RleHQsIC5yZWxJdGVtX3RleHQgKyAucmVsSXRlbV9pY29uIHtcbiAgbWFyZ2luLWxlZnQ6IDMycHg7XG59XG4ucmVsSXRlbS5yZWxJdGVtLW9uZWxpbmUgYS5yZWxJdGVtX2FuY2hvciB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLnJlbEl0ZW1fdGl0bGUge1xuICBmb250LXdlaWdodDogNTAwO1xufVxuLnJlbEl0ZW1fZGV0YWlsIHtcbiAgY29sb3I6IHZhcigtLWZnLWNvbG9yLXNlY29uZGFyeSk7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIG1hcmdpbi10b3A6IDhweDtcbn1cblxudWwuc3BvbnNvcnMge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIDEyOHB4KTtcbiAgZ2FwOiAzMnB4O1xuICBwYWRkaW5nLWxlZnQ6IDA7XG59XG51bC5zcG9uc29ycyBsaSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cbnVsLnNwb25zb3JzIGxpICsgbGkge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuXG4uc3BvbnNvciBhLnNwb25zb3JfYW5jaG9yIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uc3BvbnNvciBhLnNwb25zb3JfYW5jaG9yOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4uc3BvbnNvcl9pbWFnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnLWNvbG9yLWFjdGlvbik7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgaGVpZ2h0OiA4MHB4O1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiA4MHB4O1xufVxuLnNwb25zb3JfaW1hZ2UgaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMTAwJTtcbiAgbGVmdDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDAlO1xufVxuYS5zcG9uc29yX2FuY2hvcjpob3ZlciAuc3BvbnNvcl9pbWFnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnLWNvbG9yLWFjdGlvbi1hY3RpdmUpO1xufVxuYS5zcG9uc29yX2FuY2hvcjpob3ZlciAuc3BvbnNvcl9pbWFnZSBpbWcge1xuICBmaWx0ZXI6IGJyaWdodG5lc3MoMS4xKSBzYXR1cmF0ZSgxLjEpO1xufVxuLnNwb25zb3JfcGxhY2Vob2xkZXIge1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMTJweDtcbiAgbWFyZ2luLXRvcDogLTEycHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG59XG4uc3BvbnNvcl9uYW1lIHtcbiAgbWFyZ2luLXRvcDogMTZweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ucGFpbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1jb2xvci1zZWNvbmRhcnkpO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4ucGFpbnRfZ3VpIHtcbiAgYm9yZGVyLWJvdHRvbTogdmFyKC0tYmctY29sb3IpIHNvbGlkIDJweDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5NjFweCkge1xuICAucGFpbnRfZ3VpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG59XG4ucGFpbnRfY29udHJvbGxlciB7XG4gIC0tdHAtYmFzZS1ib3JkZXItcmFkaXVzOiAwcHg7XG4gIC0tdHAtYmFzZS1zaGFkb3ctY29sb3I6IHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1jb2xvci1zZWNvbmRhcnkpO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSB7XG4gIC5wYWludF9jb250cm9sbGVyIHtcbiAgICAtLXRwLWJsYWRlLXZhbHVlLXdpZHRoOiA2MHZ3O1xuICB9XG4gIC5wYWludF9jb250cm9sbGVyIC5wYW5lQ29udGFpbmVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuLnBhaW50X3ByZXZpZXcge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4OiAxO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMzJweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnBhaW50X3ByZXZpZXcgLnBhbmVDb250YWluZXIge1xuICBwb3NpdGlvbjogc3RhdGljO1xufVxuLnBhaW50X3ByZXZpZXcgLnRwLXJvdHYge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ucGFpbnRfYmdJbWFnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IGJsYWNrO1xuICBiYWNrZ3JvdW5kOiB1cmwoaHR0cHM6Ly9zb3VyY2UudW5zcGxhc2guY29tLzc0ZnQzYWNpQVkwLzkwMHgxNjAwKSBuby1yZXBlYXQgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBpbnNldDogLTE2cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5wYWludF9iZ0ltYWdlOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQocmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpIDFweCwgdHJhbnNwYXJlbnQgMCk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiAxNnB4IDE2cHg7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGluc2V0OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbjpyb290LmluZGV4IC5wYWdlSGVhZGVyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cbjpyb290LmluZGV4IC5wYWdlSGVhZGVyX2lubmVyIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5NjFweCkge1xuICA6cm9vdC5pbmRleCAucGFnZUhlYWRlcl9pbm5lciB7XG4gICAgcGFkZGluZy1ib3R0b206IDEyOHB4O1xuICAgIHBhZGRpbmctdG9wOiAxMjhweDtcbiAgfVxufVxuOnJvb3QuaW5kZXggLnBhZ2VIZWFkZXJfdGV4dCB7XG4gIG1peC1ibGVuZC1tb2RlOiBkaWZmZXJlbmNlO1xufVxuOnJvb3QuaW5kZXggLnBhZ2VIZWFkZXJfdGl0bGUge1xuICBjb2xvcjogd2hpdGU7XG59XG46cm9vdC5pbmRleCAucGFnZUhlYWRlcl90ZXh0IHAge1xuICBjb2xvcjogd2hpdGU7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTYwcHgpIHtcbiAgOnJvb3QuaW5kZXggLnBhZ2VIZWFkZXJfdGV4dCBwIHtcbiAgICBoeXBoZW5zOiBhdXRvO1xuICB9XG59XG46cm9vdC5pbmRleCAucGFnZUhlYWRlcl9wYW5lIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG46cm9vdC50aGVtaW5nIC5wYWdlSGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxMjkyYTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHBzOi8vc291cmNlLnVuc3BsYXNoLmNvbS91MjdScmJzOUR3Yy8xNjAweDkwMCk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcbn1cbjpyb290LnRoZW1pbmcgLnBhZ2VIZWFkZXI6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudChyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSkgMXB4LCB0cmFuc3BhcmVudCAwKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IDE2cHggMTZweDtcbiAgY29udGVudDogXCJcIjtcbiAgaW5zZXQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbjpyb290LnRoZW1pbmcgLnBhZ2VIZWFkZXIgLnBhbmVDb250YWluZXIge1xuICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cig0cHgpO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNHB4KTtcbn1cbjpyb290LnRoZW1pbmcgLnBhZ2VIZWFkZXJfdGl0bGUgaDEsXG46cm9vdC50aGVtaW5nIC5wYWdlSGVhZGVyX3RpdGxlIHAge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpO1xufVxuXG46cm9vdC5jYXRhbG9nLnJlYWRtZSAubWFpbl9tZW51IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbjpyb290LmNhdGFsb2cucmVhZG1lIC5tYWluX3dyYXAge1xuICBtYXgtd2lkdGg6IDEwODhweDtcbn1cbjpyb290LmNhdGFsb2cucmVhZG1lIC5wYW5lQ2F0YWxvZyB7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIHBhZGRpbmc6IDY0cHg7XG59XG46cm9vdC5jYXRhbG9nIC50cC1kZnd2IHtcbiAgcG9zaXRpb246IGZpeGVkO1xufVxuOnJvb3QuY2F0YWxvZy5yZWFkbWUgLnRwLWRmd3Yge1xuICBkaXNwbGF5OiBub25lO1xufVxuIl19 */