:root {
  --lead: 1.5;
  --unit: calc(var(--lead) * 1rem);
  --remPx: 16px;
  --boxSizing: border-box; }

*, *:after, *:before {
  box-sizing: border-box;
  box-sizing: var(--boxSizing);
  transition: all 300ms ease, font-size 0s;
  background-repeat: no-repeat; }

.reset-box-sizing {
  --boxSizing: content-box; }

html {
  line-height: 1.5;
  -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  padding: 0;
  font-family: "Work Sans"; }

main {
  display: block; }

dd, dt, li {
  margin-bottom: 0.75rem; }

blockquote,
dl,
figure,
form,
ol,
p,
pre,
table,
ul {
  margin-bottom: 3rem; }

:root {
  --remPx: 16px;
  --rem: 16; }

html {
  font-size: 100%; }

@media screen and (min-width: 50rem) {
  :root {
    --remPx: 17px;
    --rem: 17; }
  html {
    font-size: 106.25%; } }

@media screen and (min-width: 75rem) {
  :root {
    --remPx: 18px;
    --rem: 18; }
  html {
    font-size: 112.5%; } }

@media screen and (min-width: 35rem) {
  :root {
    --remPx: 16px;
    --rem: 16; }
  html {
    font-size: 100%; } }

h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6,
.heading {
  letter-spacing: -0.03em;
  font-weight: 400;
  color: #30BFD3;
  font-family: Work Sans;
  margin: 0 0 0.75rem 0; }

h1, .h1 {
  font-size: 1.625rem;
  line-height: 1.25;
  margin: 1.69062rem 0 0.77812rem 0; }

h2, .h2 {
  font-size: 1.4375rem;
  line-height: 1.25;
  margin: 1.91094rem 0 0.79219rem 0; }

h3, .h3 {
  font-size: 1.25rem;
  line-height: 1.25;
  margin: 2.13125rem 0 0.80625rem 0; }

h4, .h4 {
  font-size: 1.125rem;
  line-height: 1.25;
  margin: 2.27813rem 0 0.81562rem 0; }

h5, .h5 {
  font-size: 1rem;
  line-height: 1.5;
  margin: 2.25rem 0 0.75rem 0; }

h6, .h6 {
  font-size: 0.875rem;
  line-height: 1.71429;
  margin: 2.25rem 0 0.75rem 0; }

@media screen and (min-width: 35rem) {
  h1, .h1 {
    font-size: 1.625rem;
    line-height: 1.25;
    margin: 1.69062rem 0 0.77812rem 0; }
  h2, .h2 {
    font-size: 1.4375rem;
    line-height: 1.25;
    margin: 1.91094rem 0 0.79219rem 0; }
  h3, .h3 {
    font-size: 1.25rem;
    line-height: 1.25;
    margin: 2.13125rem 0 0.80625rem 0; }
  h4, .h4 {
    font-size: 1.125rem;
    line-height: 1.25;
    margin: 2.27813rem 0 0.81562rem 0; }
  h5, .h5 {
    font-size: 1rem;
    line-height: 1.5;
    margin: 2.25rem 0 0.75rem 0; }
  h6, .h6 {
    font-size: 0.875rem;
    line-height: 1.71429;
    margin: 2.25rem 0 0.75rem 0; } }

@media screen and (min-width: 50rem) {
  h1, .h1 {
    font-size: 1.6875rem;
    line-height: 1.25;
    margin: 1.61719rem 0 0.77344rem 0; }
  h2, .h2 {
    font-size: 1.5rem;
    line-height: 1.25;
    margin: 1.8375rem 0 0.7875rem 0; }
  h3, .h3 {
    font-size: 1.3125rem;
    line-height: 1.25;
    margin: 2.05781rem 0 0.80156rem 0; }
  h4, .h4 {
    font-size: 1.125rem;
    line-height: 1.25;
    margin: 2.27813rem 0 0.81562rem 0; }
  h5, .h5 {
    font-size: 1rem;
    line-height: 1.5;
    margin: 2.25rem 0 0.75rem 0; }
  h6, .h6 {
    font-size: 0.875rem;
    line-height: 1.71429;
    margin: 2.25rem 0 0.75rem 0; } }

@media screen and (min-width: 75rem) {
  h1, .h1 {
    font-size: 1.875rem;
    line-height: 1.25;
    margin: 2.89687rem 0 0.75937rem 0; }
  h2, .h2 {
    font-size: 1.5625rem;
    line-height: 1.25;
    margin: 1.76406rem 0 0.78281rem 0; }
  h3, .h3 {
    font-size: 1.375rem;
    line-height: 1.25;
    margin: 1.98438rem 0 0.79688rem 0; }
  h4, .h4 {
    font-size: 1.1875rem;
    line-height: 1.25;
    margin: 2.20469rem 0 0.81094rem 0; }
  h5, .h5 {
    font-size: 1rem;
    line-height: 1.5;
    margin: 2.25rem 0 0.75rem 0; }
  h6, .h6 {
    font-size: 0.875rem;
    line-height: 1.71429;
    margin: 2.25rem 0 0.75rem 0; } }

b, strong {
  font-weight: bolder; }

small {
  font-size: 75%; }

sub, sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline; }

sub {
  bottom: -0.25em; }

sup {
  top: -0.5em; }

abbr[title] {
  border-bottom: none;
  text-decoration: underline dotted; }

code, kbd, samp {
  font-family: "IBM Plex Mono", monospace;
  font-size: 1em; }

p, .paragraph {
  margin: 0 0 1.5rem 0; }

pre, .pre {
  font-family: "IBM Plex Mono", monospace;
  font-size: 1em;
  overflow-y: hidden;
  overflow-x: auto;
  white-space: pre; }
  pre > code, .pre > code {
    border-radius: 0;
    display: block;
    padding: 1rem 1.5rem;
    white-space: pre; }

blockquote, .blockquote {
  border-left: 0.25rem solid #30BFD3; }
  blockquote *:last-child, .blockquote *:last-child {
    margin-bottom: 0; }

hr {
  box-sizing: content-box;
  height: 0;
  overflow: visible; }

dl,
ol,
ul {
  list-style: none;
  margin-top: 0;
  padding-left: 0; }
  dl dl,
  dl ol,
  dl ul,
  ol dl,
  ol ol,
  ol ul,
  ul dl,
  ul ol,
  ul ul {
    font-size: 90%;
    margin: 1.5rem 0 1.5rem 3rem; }

ol {
  list-style: decimal inside; }

ul {
  list-style: circle inside; }

table {
  border-spacing: 0;
  width: 100%; }

td,
th {
  padding: 0.75rem;
  text-align: left; }
  td:first-child,
  th:first-child {
    padding-left: 0; }
  td:last-child,
  th:last-child {
    padding-right: 0; }

a {
  color: #042A46;
  text-decoration: none;
  cursor: pointer;
  font-weight: 500; }
  a:focus, a:hover {
    color: #042A46;
    text-decoration: inherit; }

a.text {
  color: #042A46; }
  a.text:focus, a.text:hover {
    color: #042A46; }

img {
  border-style: none;
  max-width: 100%; }

button, input {
  overflow: visible; }

button,
select {
  text-transform: none; }

button,
[type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button; }

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0; }

button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText; }

.button,
button,
input[type='button'],
input[type='reset'],
input[type='submit'] {
  color: white;
  background-color: #30BFD3;
  border: 1px solid;
  border-color: #30BFD3;
  border-radius: 1.125rem;
  font-weight: 700;
  cursor: pointer;
  display: inline-block;
  font-size: 0.75rem;
  font-family: "Work Sans";
  letter-spacing: 0.05em;
  line-height: 2.25rem;
  height: 2.25rem;
  margin: 0 0 0.75rem 0;
  padding: 0 1.5rem;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  white-space: nowrap;
  transition: filter 250ms; }
  .button:focus, .button:hover,
  button:focus,
  button:hover,
  input[type='button']:focus,
  input[type='button']:hover,
  input[type='reset']:focus,
  input[type='reset']:hover,
  input[type='submit']:focus,
  input[type='submit']:hover {
    box-shadow: 0 0 2px 3px rgba(0, 0, 0, 0.12), inset 0 0 16px rgba(230, 225, 132, 0.1); }
  .button[disabled], .button.is-disabled,
  button[disabled],
  button.is-disabled,
  input[type='button'][disabled],
  input[type='button'].is-disabled,
  input[type='reset'][disabled],
  input[type='reset'].is-disabled,
  input[type='submit'][disabled],
  input[type='submit'].is-disabled {
    filter: saturate(25%);
    cursor: default;
    opacity: 0.75; }
  .button.is-small,
  button.is-small,
  input[type='button'].is-small,
  input[type='reset'].is-small,
  input[type='submit'].is-small {
    line-height: 1.5rem;
    height: 1.5rem;
    padding: 0 0.375rem; }
  .button.is-primary,
  button.is-primary,
  input[type='button'].is-primary,
  input[type='reset'].is-primary,
  input[type='submit'].is-primary {
    color: white;
    background-color: #042A46;
    border-color: #042A46; }
  .button.is-secondary,
  button.is-secondary,
  input[type='button'].is-secondary,
  input[type='reset'].is-secondary,
  input[type='submit'].is-secondary {
    color: #112b48;
    background-color: #FF3E72;
    border-color: #FF3E72; }
  .button.is-positive,
  button.is-positive,
  input[type='button'].is-positive,
  input[type='reset'].is-positive,
  input[type='submit'].is-positive {
    color: #053045;
    background-color: #16ab39;
    border-color: #16ab39; }
  .button.is-warning,
  button.is-warning,
  input[type='button'].is-warning,
  input[type='reset'].is-warning,
  input[type='submit'].is-warning {
    color: #103143;
    background-color: #fbbd08;
    border-color: #fbbd08; }
  .button.is-negative,
  button.is-negative,
  input[type='button'].is-negative,
  input[type='reset'].is-negative,
  input[type='submit'].is-negative {
    color: #fdf2f4;
    background-color: #de011e;
    border-color: #de011e; }
  .button.is-clear,
  button.is-clear,
  input[type='button'].is-clear,
  input[type='reset'].is-clear,
  input[type='submit'].is-clear {
    background-color: transparent;
    border-color: transparent;
    color: inherit;
    cursor: pointer;
    font-size: inherit;
    letter-spacing: inherit;
    line-height: inherit;
    height: initial;
    margin: initial;
    padding: 0;
    text-align: inherit;
    text-decoration: inherit;
    text-transform: inherit;
    white-space: nowrap; }
    .button.is-clear:focus, .button.is-clear:hover,
    button.is-clear:focus,
    button.is-clear:hover,
    input[type='button'].is-clear:focus,
    input[type='button'].is-clear:hover,
    input[type='reset'].is-clear:focus,
    input[type='reset'].is-clear:hover,
    input[type='submit'].is-clear:focus,
    input[type='submit'].is-clear:hover {
      box-shadow: none;
      text-decoration: underline; }
  .button.is-ghost,
  button.is-ghost,
  input[type='button'].is-ghost,
  input[type='reset'].is-ghost,
  input[type='submit'].is-ghost {
    background-color: transparent;
    color: #30BFD3; }

input,
optgroup,
select {
  font-family: inherit;
  font-size: 1rem;
  line-height: 1.15;
  margin: 0; }

[type="checkbox"],
[type="radio"] {
  box-sizing: border-box;
  padding: 0; }

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto; }

[type="search"] {
  -webkit-appearance: textfield;
  outline-offset: -2px; }

[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit; }

input[type='email']:hover, input[type='email']:focus,
input[type='number']:hover,
input[type='number']:focus,
input[type='password']:hover,
input[type='password']:focus,
input[type='search']:hover,
input[type='search']:focus,
input[type='tel']:hover,
input[type='tel']:focus,
input[type='text']:hover,
input[type='text']:focus,
input[type='url']:hover,
input[type='url']:focus,
input[type='color']:hover,
input[type='color']:focus,
input[type='date']:hover,
input[type='date']:focus,
input[type='month']:hover,
input[type='month']:focus,
input[type='week']:hover,
input[type='week']:focus,
input[type='datetime']:hover,
input[type='datetime']:focus,
input[type='datetime-local']:hover,
input[type='datetime-local']:focus,
input:not([type]):hover,
input:not([type]):focus,
textarea:hover,
textarea:focus,
select:hover,
select:focus {
  background-color: #fafafa; }

input[type='email']:focus,
input[type='number']:focus,
input[type='password']:focus,
input[type='search']:focus,
input[type='tel']:focus,
input[type='text']:focus,
input[type='url']:focus,
input[type='color']:focus,
input[type='date']:focus,
input[type='month']:focus,
input[type='week']:focus,
input[type='datetime']:focus,
input[type='datetime-local']:focus,
input:not([type]):focus,
textarea:focus,
select:focus {
  box-shadow: inset 0 0 0.5rem 2px rgba(0, 0, 0, 0.08), 0 0 0 2px #30bfd3;
  filter: none;
  outline: 0; }

input[type='email'],
input[type='number'],
input[type='password'],
input[type='search'],
input[type='tel'],
input[type='text'],
input[type='url'],
input[type='color'],
input[type='date'],
input[type='month'],
input[type='week'],
input[type='datetime'],
input[type='datetime-local'],
input:not([type]),
textarea,
select {
  color: #11354f;
  background-color: white;
  border: 1px solid;
  border-color: #30BFD3;
  border-radius: 1.125rem;
  min-width: 15em;
  width: 100%;
  max-width: 30rem;
  display: block;
  font-size: 1rem;
  font-family: inherit;
  height: 2.625rem;
  line-height: 1.5;
  margin: 0.375rem 0 1.5rem 0;
  padding: 0 1.125rem; }

input[type='color'] {
  padding: 0.375rem 1.125rem; }

input[type='date'],
input[type='month'],
input[type='week'],
input[type='datetime-local'],
textarea {
  font-size: var(--remPx); }

input[type='checkbox'],
input[type='radio'] {
  display: inline;
  margin-right: 1em; }

input[type='checkbox'],
input[type='radio'] {
  z-index: -1;
  transform: scale(1.5);
  outline: none; }

input[type='checkbox']::after,
input[type='radio']::after {
  display: block;
  content: "";
  z-index: 1;
  cursor: pointer;
  box-sizing: border-box;
  width: 1em;
  height: 1em;
  position: relative;
  background-color: white;
  box-shadow: inset 0 0 0.5em rgba(0, 0, 0, 0.1), inset 0 0 0 1px rgba(0, 0, 0, 0.2);
  outline-color: #30BFD3; }

input[type='checkbox']::after {
  bottom: 0.9em;
  right: 0.15em;
  border-radius: 0.2em; }

input[type='checkbox']::before {
  content: "";
  display: block;
  z-index: 2;
  border: solid transparent;
  border-width: 0 0.2em 0.2em 0;
  transform: rotate(45deg);
  width: 0.4em;
  height: 0.7em;
  position: relative;
  right: -0.2em;
  bottom: 0.1em; }

input[type='radio']::after {
  border-radius: 50%;
  bottom: 0.25em;
  right: 0.1em; }

input[type='checkbox']:checked::before {
  border-color: white; }

input[type='checkbox']:checked::after {
  background-color: #30BFD3;
  transition: background-color 0ms; }

input[type='radio']:checked::after {
  border: 0.33333em solid #30BFD3;
  box-shadow: none; }

input[type='checkbox']:hover:not(:disabled)::after,
input[type='radio']:hover:not(:disabled)::after {
  background-color: #eee; }

input[type='checkbox']:checked:hover:not(:disabled)::after {
  background-color: #259ab0; }

input[type='radio']:checked:hover:not(:disabled)::after {
  background-color: white;
  border-color: #259ab0; }

input[type='radio']:disabled::after {
  filter: brightness(110%); }

input[type='checkbox']:checked:disabled::after {
  background-color: #93acaf; }

input[type='radio']:checked:disabled::after {
  border: 0.33333em solid silver; }

select {
  padding-right: 3rem; }

textarea {
  overflow: auto;
  padding: 0.75rem 1.125rem;
  min-height: 7.5rem; }

legend {
  display: table;
  max-width: 30rem;
  white-space: normal;
  color: inherit;
  padding: 0;
  text-align: right;
  font-size: 0.875rem; }

label {
  display: block;
  font-weight: 700;
  margin-bottom: 1.5rem; }

label + input[type='email'],
label + input[type='number'],
label + input[type='password'],
label + input[type='search'],
label + input[type='tel'],
label + input[type='text'],
label + input[type='url'],
label + input[type='color'],
label + input[type='date'],
label + input[type='month'],
label + input[type='week'],
label + input[type='datetime'],
label + input[type='datetime-local'],
label + input:not([type]),
label + textarea,
label + select {
  margin-top: -1.125rem; }

input[type='email'] + legend,
input[type='number'] + legend,
input[type='password'] + legend,
input[type='search'] + legend,
input[type='tel'] + legend,
input[type='text'] + legend,
input[type='url'] + legend,
input[type='color'] + legend,
input[type='date'] + legend,
input[type='month'] + legend,
input[type='week'] + legend,
input[type='datetime'] + legend,
input[type='datetime-local'] + legend,
input:not([type]) + legend,
textarea + legend,
select + legend,
label + legend {
  margin-top: -1.125rem;
  margin-bottom: 1.5rem; }

fieldset {
  padding: 0; }

progress {
  vertical-align: baseline; }

.label-inline {
  display: inline-block;
  font-weight: normal;
  margin-left: 0.5rem; }

.list-inline {
  padding: 0;
  margin: 0;
  list-style: none; }
  .list-inline > li {
    display: inline; }

.list-reset {
  padding: 0;
  margin: 0;
  list-style: none; }

.text-1 {
  font-size: 1.625rem; }
  @media screen and (min-width: 35rem) {
    .text-1 {
      font-size: 1.625rem; } }
  @media screen and (min-width: 50rem) {
    .text-1 {
      font-size: 1.6875rem; } }
  @media screen and (min-width: 75rem) {
    .text-1 {
      font-size: 1.875rem; } }
.text-2 {
  font-size: 1.4375rem; }
  @media screen and (min-width: 35rem) {
    .text-2 {
      font-size: 1.4375rem; } }
  @media screen and (min-width: 50rem) {
    .text-2 {
      font-size: 1.5rem; } }
  @media screen and (min-width: 75rem) {
    .text-2 {
      font-size: 1.5625rem; } }
.text-3 {
  font-size: 1.25rem; }
  @media screen and (min-width: 35rem) {
    .text-3 {
      font-size: 1.25rem; } }
  @media screen and (min-width: 50rem) {
    .text-3 {
      font-size: 1.3125rem; } }
  @media screen and (min-width: 75rem) {
    .text-3 {
      font-size: 1.375rem; } }
.text-4 {
  font-size: 1.125rem; }
  @media screen and (min-width: 35rem) {
    .text-4 {
      font-size: 1.125rem; } }
  @media screen and (min-width: 50rem) {
    .text-4 {
      font-size: 1.125rem; } }
  @media screen and (min-width: 75rem) {
    .text-4 {
      font-size: 1.1875rem; } }
.text-5 {
  font-size: 1rem; }
  @media screen and (min-width: 35rem) {
    .text-5 {
      font-size: 1rem; } }
  @media screen and (min-width: 50rem) {
    .text-5 {
      font-size: 1rem; } }
  @media screen and (min-width: 75rem) {
    .text-5 {
      font-size: 1rem; } }
.text-6 {
  font-size: 0.875rem; }
  @media screen and (min-width: 35rem) {
    .text-6 {
      font-size: 0.875rem; } }
  @media screen and (min-width: 50rem) {
    .text-6 {
      font-size: 0.875rem; } }
  @media screen and (min-width: 75rem) {
    .text-6 {
      font-size: 0.875rem; } }
.text-7 {
  font-size: 0.75rem; }
  @media screen and (min-width: 35rem) {
    .text-7 {
      font-size: 0.75rem; } }
  @media screen and (min-width: 50rem) {
    .text-7 {
      font-size: 0.75rem; } }
  @media screen and (min-width: 75rem) {
    .text-7 {
      font-size: 0.75rem; } }
.text-8 {
  font-size: 0.625rem; }
  @media screen and (min-width: 35rem) {
    .text-8 {
      font-size: 0.625rem; } }
  @media screen and (min-width: 50rem) {
    .text-8 {
      font-size: 0.625rem; } }
  @media screen and (min-width: 75rem) {
    .text-8 {
      font-size: 0.625rem; } }
.sans-serif {
  font-family: "Work Sans"; }

.serif {
  font-family: "IBM Plex Serif", serif; }

.cursive {
  font-family: cursive; }

.monospace {
  font-family: "IBM Plex Mono", monospace; }

.thin {
  font-weight: 100; }

.extra-light {
  font-weight: 200; }

.light {
  font-weight: 300; }

.regular {
  font-weight: 400; }

.medium {
  font-weight: 500; }

.semi-bold {
  font-weight: 600; }

.bold {
  font-weight: 700; }

.extra-bold {
  font-weight: 800; }

.black {
  font-weight: 900; }

.italic {
  font-style: italic; }

.roman {
  font-style: normal; }

.uppercase {
  text-transform: uppercase; }

.lowercase {
  text-transform: lowercase; }

.capitalize {
  text-transform: capitalize; }

.normalcase {
  text-transform: none; }

.underline {
  text-decoration: underline; }

.line-through {
  text-decoration: line-through; }

.no-underline {
  text-decoration: none; }

.left {
  text-align: left; }

.center {
  text-align: center; }

.right {
  text-align: right; }

.justify {
  text-align: justify; }

.baseline {
  vertical-align: baseline; }

.top {
  vertical-align: top; }

.middle {
  vertical-align: middle; }

.bottom {
  vertical-align: bottom; }

.text-top {
  vertical-align: text-top; }

.text-bottom {
  vertical-align: text-bottom; }

.normal {
  white-space: normal; }

.nowrap {
  white-space: nowrap; }

.pre {
  white-space: pre; }

.pre-line {
  white-space: pre-line; }

.pre-wrap {
  white-space: pre-wrap; }

.leading {
  line-height: 1.5; }

.leading-title {
  line-height: 1.25; }

.leading-solid {
  line-height: 1; }

.leading-loose {
  line-height: 2; }

.measure {
  max-width: 29em; }

.measure-wide {
  max-width: 38em; }

.measure-narrow {
  max-width: 20em; }

.indent {
  text-indent: 1.5em; }

.indent-punctuation {
  text-indent: -0.3em; }

.truncate {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis; }

.rtl {
  direction: rtl; }

.ltr {
  direction: ltr; }

.pad-0 {
  padding: 0; }

.pad-0p {
  padding: 0.1875rem; }

.pad-1 {
  padding: 0.375rem; }

.pad-1p {
  padding: 0.5625rem; }

.pad-2 {
  padding: 0.75rem; }

.pad-2p {
  padding: 1.125rem; }

.pad-3 {
  padding: 1.5rem; }

.pad-3p {
  padding: 2.25rem; }

.pad-4 {
  padding: 3rem; }

.pad-4p {
  padding: 4.5rem; }

.pad-5 {
  padding: 6rem; }

.pad-5p {
  padding: 9rem; }

.pad-6 {
  padding: 12rem; }

.pad-6p {
  padding: 18rem; }

.pad-7 {
  padding: 24rem; }

.pad-7p {
  padding: 36rem; }

.pad-8 {
  padding: 48rem; }

.pad-8p {
  padding: 72rem; }

.pad-x0 {
  padding-left: 0;
  padding-right: 0; }

.pad-x0p {
  padding-left: 0.1875rem;
  padding-right: 0.1875rem; }

.pad-x1 {
  padding-left: 0.375rem;
  padding-right: 0.375rem; }

.pad-x1p {
  padding-left: 0.5625rem;
  padding-right: 0.5625rem; }

.pad-x2 {
  padding-left: 0.75rem;
  padding-right: 0.75rem; }

.pad-x2p {
  padding-left: 1.125rem;
  padding-right: 1.125rem; }

.pad-x3 {
  padding-left: 1.5rem;
  padding-right: 1.5rem; }

.pad-x3p {
  padding-left: 2.25rem;
  padding-right: 2.25rem; }

.pad-x4 {
  padding-left: 3rem;
  padding-right: 3rem; }

.pad-x4p {
  padding-left: 4.5rem;
  padding-right: 4.5rem; }

.pad-x5 {
  padding-left: 6rem;
  padding-right: 6rem; }

.pad-x5p {
  padding-left: 9rem;
  padding-right: 9rem; }

.pad-x6 {
  padding-left: 12rem;
  padding-right: 12rem; }

.pad-x6p {
  padding-left: 18rem;
  padding-right: 18rem; }

.pad-x7 {
  padding-left: 24rem;
  padding-right: 24rem; }

.pad-x7p {
  padding-left: 36rem;
  padding-right: 36rem; }

.pad-x8 {
  padding-left: 48rem;
  padding-right: 48rem; }

.pad-x8p {
  padding-left: 72rem;
  padding-right: 72rem; }

.pad-y0 {
  padding-top: 0;
  padding-bottom: 0; }

.pad-y0p {
  padding-top: 0.1875rem;
  padding-bottom: 0.1875rem; }

.pad-y1 {
  padding-top: 0.375rem;
  padding-bottom: 0.375rem; }

.pad-y1p {
  padding-top: 0.5625rem;
  padding-bottom: 0.5625rem; }

.pad-y2 {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem; }

.pad-y2p {
  padding-top: 1.125rem;
  padding-bottom: 1.125rem; }

.pad-y3 {
  padding-top: 1.5rem;
  padding-bottom: 1.5rem; }

.pad-y3p {
  padding-top: 2.25rem;
  padding-bottom: 2.25rem; }

.pad-y4 {
  padding-top: 3rem;
  padding-bottom: 3rem; }

.pad-y4p {
  padding-top: 4.5rem;
  padding-bottom: 4.5rem; }

.pad-y5 {
  padding-top: 6rem;
  padding-bottom: 6rem; }

.pad-y5p {
  padding-top: 9rem;
  padding-bottom: 9rem; }

.pad-y6 {
  padding-top: 12rem;
  padding-bottom: 12rem; }

.pad-y6p {
  padding-top: 18rem;
  padding-bottom: 18rem; }

.pad-y7 {
  padding-top: 24rem;
  padding-bottom: 24rem; }

.pad-y7p {
  padding-top: 36rem;
  padding-bottom: 36rem; }

.pad-y8 {
  padding-top: 48rem;
  padding-bottom: 48rem; }

.pad-y8p {
  padding-top: 72rem;
  padding-bottom: 72rem; }

.pad-l0 {
  padding-left: 0; }

.pad-l0p {
  padding-left: 0.1875rem; }

.pad-l1 {
  padding-left: 0.375rem; }

.pad-l1p {
  padding-left: 0.5625rem; }

.pad-l2 {
  padding-left: 0.75rem; }

.pad-l2p {
  padding-left: 1.125rem; }

.pad-l3 {
  padding-left: 1.5rem; }

.pad-l3p {
  padding-left: 2.25rem; }

.pad-l4 {
  padding-left: 3rem; }

.pad-l4p {
  padding-left: 4.5rem; }

.pad-l5 {
  padding-left: 6rem; }

.pad-l5p {
  padding-left: 9rem; }

.pad-l6 {
  padding-left: 12rem; }

.pad-l6p {
  padding-left: 18rem; }

.pad-l7 {
  padding-left: 24rem; }

.pad-l7p {
  padding-left: 36rem; }

.pad-l8 {
  padding-left: 48rem; }

.pad-l8p {
  padding-left: 72rem; }

.pad-r0 {
  padding-right: 0; }

.pad-r0p {
  padding-right: 0.1875rem; }

.pad-r1 {
  padding-right: 0.375rem; }

.pad-r1p {
  padding-right: 0.5625rem; }

.pad-r2 {
  padding-right: 0.75rem; }

.pad-r2p {
  padding-right: 1.125rem; }

.pad-r3 {
  padding-right: 1.5rem; }

.pad-r3p {
  padding-right: 2.25rem; }

.pad-r4 {
  padding-right: 3rem; }

.pad-r4p {
  padding-right: 4.5rem; }

.pad-r5 {
  padding-right: 6rem; }

.pad-r5p {
  padding-right: 9rem; }

.pad-r6 {
  padding-right: 12rem; }

.pad-r6p {
  padding-right: 18rem; }

.pad-r7 {
  padding-right: 24rem; }

.pad-r7p {
  padding-right: 36rem; }

.pad-r8 {
  padding-right: 48rem; }

.pad-r8p {
  padding-right: 72rem; }

.pad-t0 {
  padding-top: 0; }

.pad-t0p {
  padding-top: 0.1875rem; }

.pad-t1 {
  padding-top: 0.375rem; }

.pad-t1p {
  padding-top: 0.5625rem; }

.pad-t2 {
  padding-top: 0.75rem; }

.pad-t2p {
  padding-top: 1.125rem; }

.pad-t3 {
  padding-top: 1.5rem; }

.pad-t3p {
  padding-top: 2.25rem; }

.pad-t4 {
  padding-top: 3rem; }

.pad-t4p {
  padding-top: 4.5rem; }

.pad-t5 {
  padding-top: 6rem; }

.pad-t5p {
  padding-top: 9rem; }

.pad-t6 {
  padding-top: 12rem; }

.pad-t6p {
  padding-top: 18rem; }

.pad-t7 {
  padding-top: 24rem; }

.pad-t7p {
  padding-top: 36rem; }

.pad-t8 {
  padding-top: 48rem; }

.pad-t8p {
  padding-top: 72rem; }

.pad-b0 {
  padding-bottom: 0; }

.pad-b0p {
  padding-bottom: 0.1875rem; }

.pad-b1 {
  padding-bottom: 0.375rem; }

.pad-b1p {
  padding-bottom: 0.5625rem; }

.pad-b2 {
  padding-bottom: 0.75rem; }

.pad-b2p {
  padding-bottom: 1.125rem; }

.pad-b3 {
  padding-bottom: 1.5rem; }

.pad-b3p {
  padding-bottom: 2.25rem; }

.pad-b4 {
  padding-bottom: 3rem; }

.pad-b4p {
  padding-bottom: 4.5rem; }

.pad-b5 {
  padding-bottom: 6rem; }

.pad-b5p {
  padding-bottom: 9rem; }

.pad-b6 {
  padding-bottom: 12rem; }

.pad-b6p {
  padding-bottom: 18rem; }

.pad-b7 {
  padding-bottom: 24rem; }

.pad-b7p {
  padding-bottom: 36rem; }

.pad-b8 {
  padding-bottom: 48rem; }

.pad-b8p {
  padding-bottom: 72rem; }

.margin-auto {
  margin: auto; }

.margin-0 {
  margin: 0; }

.margin-0p {
  margin: 0.1875rem; }

.margin-1 {
  margin: 0.375rem; }

.margin-1p {
  margin: 0.5625rem; }

.margin-2 {
  margin: 0.75rem; }

.margin-2p {
  margin: 1.125rem; }

.margin-3 {
  margin: 1.5rem; }

.margin-3p {
  margin: 2.25rem; }

.margin-4 {
  margin: 3rem; }

.margin-4p {
  margin: 4.5rem; }

.margin-5 {
  margin: 6rem; }

.margin-5p {
  margin: 9rem; }

.margin-6 {
  margin: 12rem; }

.margin-6p {
  margin: 18rem; }

.margin-7 {
  margin: 24rem; }

.margin-7p {
  margin: 36rem; }

.margin-8 {
  margin: 48rem; }

.margin-8p {
  margin: 72rem; }

.margin-n0 {
  margin: 0; }

.margin-n0p {
  margin: -0.1875rem; }

.margin-n1 {
  margin: -0.375rem; }

.margin-n1p {
  margin: -0.5625rem; }

.margin-n2 {
  margin: -0.75rem; }

.margin-n2p {
  margin: -1.125rem; }

.margin-n3 {
  margin: -1.5rem; }

.margin-n3p {
  margin: -2.25rem; }

.margin-n4 {
  margin: -3rem; }

.margin-n4p {
  margin: -4.5rem; }

.margin-n5 {
  margin: -6rem; }

.margin-n5p {
  margin: -9rem; }

.margin-n6 {
  margin: -12rem; }

.margin-n6p {
  margin: -18rem; }

.margin-n7 {
  margin: -24rem; }

.margin-n7p {
  margin: -36rem; }

.margin-n8 {
  margin: -48rem; }

.margin-n8p {
  margin: -72rem; }

.margin-xauto {
  margin-left: auto;
  margin-right: auto; }

.margin-x0 {
  margin-left: 0;
  margin-right: 0; }

.margin-x0p {
  margin-left: 0.1875rem;
  margin-right: 0.1875rem; }

.margin-x1 {
  margin-left: 0.375rem;
  margin-right: 0.375rem; }

.margin-x1p {
  margin-left: 0.5625rem;
  margin-right: 0.5625rem; }

.margin-x2 {
  margin-left: 0.75rem;
  margin-right: 0.75rem; }

.margin-x2p {
  margin-left: 1.125rem;
  margin-right: 1.125rem; }

.margin-x3 {
  margin-left: 1.5rem;
  margin-right: 1.5rem; }

.margin-x3p {
  margin-left: 2.25rem;
  margin-right: 2.25rem; }

.margin-x4 {
  margin-left: 3rem;
  margin-right: 3rem; }

.margin-x4p {
  margin-left: 4.5rem;
  margin-right: 4.5rem; }

.margin-x5 {
  margin-left: 6rem;
  margin-right: 6rem; }

.margin-x5p {
  margin-left: 9rem;
  margin-right: 9rem; }

.margin-x6 {
  margin-left: 12rem;
  margin-right: 12rem; }

.margin-x6p {
  margin-left: 18rem;
  margin-right: 18rem; }

.margin-x7 {
  margin-left: 24rem;
  margin-right: 24rem; }

.margin-x7p {
  margin-left: 36rem;
  margin-right: 36rem; }

.margin-x8 {
  margin-left: 48rem;
  margin-right: 48rem; }

.margin-x8p {
  margin-left: 72rem;
  margin-right: 72rem; }

.margin-nx0 {
  margin-left: 0;
  margin-right: 0; }

.margin-nx0p {
  margin-left: -0.1875rem;
  margin-right: -0.1875rem; }

.margin-nx1 {
  margin-left: -0.375rem;
  margin-right: -0.375rem; }

.margin-nx1p {
  margin-left: -0.5625rem;
  margin-right: -0.5625rem; }

.margin-nx2 {
  margin-left: -0.75rem;
  margin-right: -0.75rem; }

.margin-nx2p {
  margin-left: -1.125rem;
  margin-right: -1.125rem; }

.margin-nx3 {
  margin-left: -1.5rem;
  margin-right: -1.5rem; }

.margin-nx3p {
  margin-left: -2.25rem;
  margin-right: -2.25rem; }

.margin-nx4 {
  margin-left: -3rem;
  margin-right: -3rem; }

.margin-nx4p {
  margin-left: -4.5rem;
  margin-right: -4.5rem; }

.margin-nx5 {
  margin-left: -6rem;
  margin-right: -6rem; }

.margin-nx5p {
  margin-left: -9rem;
  margin-right: -9rem; }

.margin-nx6 {
  margin-left: -12rem;
  margin-right: -12rem; }

.margin-nx6p {
  margin-left: -18rem;
  margin-right: -18rem; }

.margin-nx7 {
  margin-left: -24rem;
  margin-right: -24rem; }

.margin-nx7p {
  margin-left: -36rem;
  margin-right: -36rem; }

.margin-nx8 {
  margin-left: -48rem;
  margin-right: -48rem; }

.margin-nx8p {
  margin-left: -72rem;
  margin-right: -72rem; }

.margin-yauto {
  margin-top: auto;
  margin-bottom: auto; }

.margin-y0 {
  margin-top: 0;
  margin-bottom: 0; }

.margin-y0p {
  margin-top: 0.1875rem;
  margin-bottom: 0.1875rem; }

.margin-y1 {
  margin-top: 0.375rem;
  margin-bottom: 0.375rem; }

.margin-y1p {
  margin-top: 0.5625rem;
  margin-bottom: 0.5625rem; }

.margin-y2 {
  margin-top: 0.75rem;
  margin-bottom: 0.75rem; }

.margin-y2p {
  margin-top: 1.125rem;
  margin-bottom: 1.125rem; }

.margin-y3 {
  margin-top: 1.5rem;
  margin-bottom: 1.5rem; }

.margin-y3p {
  margin-top: 2.25rem;
  margin-bottom: 2.25rem; }

.margin-y4 {
  margin-top: 3rem;
  margin-bottom: 3rem; }

.margin-y4p {
  margin-top: 4.5rem;
  margin-bottom: 4.5rem; }

.margin-y5 {
  margin-top: 6rem;
  margin-bottom: 6rem; }

.margin-y5p {
  margin-top: 9rem;
  margin-bottom: 9rem; }

.margin-y6 {
  margin-top: 12rem;
  margin-bottom: 12rem; }

.margin-y6p {
  margin-top: 18rem;
  margin-bottom: 18rem; }

.margin-y7 {
  margin-top: 24rem;
  margin-bottom: 24rem; }

.margin-y7p {
  margin-top: 36rem;
  margin-bottom: 36rem; }

.margin-y8 {
  margin-top: 48rem;
  margin-bottom: 48rem; }

.margin-y8p {
  margin-top: 72rem;
  margin-bottom: 72rem; }

.margin-ny0 {
  margin-top: 0;
  margin-bottom: 0; }

.margin-ny0p {
  margin-top: -0.1875rem;
  margin-bottom: -0.1875rem; }

.margin-ny1 {
  margin-top: -0.375rem;
  margin-bottom: -0.375rem; }

.margin-ny1p {
  margin-top: -0.5625rem;
  margin-bottom: -0.5625rem; }

.margin-ny2 {
  margin-top: -0.75rem;
  margin-bottom: -0.75rem; }

.margin-ny2p {
  margin-top: -1.125rem;
  margin-bottom: -1.125rem; }

.margin-ny3 {
  margin-top: -1.5rem;
  margin-bottom: -1.5rem; }

.margin-ny3p {
  margin-top: -2.25rem;
  margin-bottom: -2.25rem; }

.margin-ny4 {
  margin-top: -3rem;
  margin-bottom: -3rem; }

.margin-ny4p {
  margin-top: -4.5rem;
  margin-bottom: -4.5rem; }

.margin-ny5 {
  margin-top: -6rem;
  margin-bottom: -6rem; }

.margin-ny5p {
  margin-top: -9rem;
  margin-bottom: -9rem; }

.margin-ny6 {
  margin-top: -12rem;
  margin-bottom: -12rem; }

.margin-ny6p {
  margin-top: -18rem;
  margin-bottom: -18rem; }

.margin-ny7 {
  margin-top: -24rem;
  margin-bottom: -24rem; }

.margin-ny7p {
  margin-top: -36rem;
  margin-bottom: -36rem; }

.margin-ny8 {
  margin-top: -48rem;
  margin-bottom: -48rem; }

.margin-ny8p {
  margin-top: -72rem;
  margin-bottom: -72rem; }

.margin-lauto {
  margin-left: auto; }

.margin-l0 {
  margin-left: 0; }

.margin-l0p {
  margin-left: 0.1875rem; }

.margin-l1 {
  margin-left: 0.375rem; }

.margin-l1p {
  margin-left: 0.5625rem; }

.margin-l2 {
  margin-left: 0.75rem; }

.margin-l2p {
  margin-left: 1.125rem; }

.margin-l3 {
  margin-left: 1.5rem; }

.margin-l3p {
  margin-left: 2.25rem; }

.margin-l4 {
  margin-left: 3rem; }

.margin-l4p {
  margin-left: 4.5rem; }

.margin-l5 {
  margin-left: 6rem; }

.margin-l5p {
  margin-left: 9rem; }

.margin-l6 {
  margin-left: 12rem; }

.margin-l6p {
  margin-left: 18rem; }

.margin-l7 {
  margin-left: 24rem; }

.margin-l7p {
  margin-left: 36rem; }

.margin-l8 {
  margin-left: 48rem; }

.margin-l8p {
  margin-left: 72rem; }

.margin-nl0 {
  margin-left: 0; }

.margin-nl0p {
  margin-left: -0.1875rem; }

.margin-nl1 {
  margin-left: -0.375rem; }

.margin-nl1p {
  margin-left: -0.5625rem; }

.margin-nl2 {
  margin-left: -0.75rem; }

.margin-nl2p {
  margin-left: -1.125rem; }

.margin-nl3 {
  margin-left: -1.5rem; }

.margin-nl3p {
  margin-left: -2.25rem; }

.margin-nl4 {
  margin-left: -3rem; }

.margin-nl4p {
  margin-left: -4.5rem; }

.margin-nl5 {
  margin-left: -6rem; }

.margin-nl5p {
  margin-left: -9rem; }

.margin-nl6 {
  margin-left: -12rem; }

.margin-nl6p {
  margin-left: -18rem; }

.margin-nl7 {
  margin-left: -24rem; }

.margin-nl7p {
  margin-left: -36rem; }

.margin-nl8 {
  margin-left: -48rem; }

.margin-nl8p {
  margin-left: -72rem; }

.margin-rauto {
  margin-right: auto; }

.margin-r0 {
  margin-right: 0; }

.margin-r0p {
  margin-right: 0.1875rem; }

.margin-r1 {
  margin-right: 0.375rem; }

.margin-r1p {
  margin-right: 0.5625rem; }

.margin-r2 {
  margin-right: 0.75rem; }

.margin-r2p {
  margin-right: 1.125rem; }

.margin-r3 {
  margin-right: 1.5rem; }

.margin-r3p {
  margin-right: 2.25rem; }

.margin-r4 {
  margin-right: 3rem; }

.margin-r4p {
  margin-right: 4.5rem; }

.margin-r5 {
  margin-right: 6rem; }

.margin-r5p {
  margin-right: 9rem; }

.margin-r6 {
  margin-right: 12rem; }

.margin-r6p {
  margin-right: 18rem; }

.margin-r7 {
  margin-right: 24rem; }

.margin-r7p {
  margin-right: 36rem; }

.margin-r8 {
  margin-right: 48rem; }

.margin-r8p {
  margin-right: 72rem; }

.margin-nr0 {
  margin-right: 0; }

.margin-nr0p {
  margin-right: -0.1875rem; }

.margin-nr1 {
  margin-right: -0.375rem; }

.margin-nr1p {
  margin-right: -0.5625rem; }

.margin-nr2 {
  margin-right: -0.75rem; }

.margin-nr2p {
  margin-right: -1.125rem; }

.margin-nr3 {
  margin-right: -1.5rem; }

.margin-nr3p {
  margin-right: -2.25rem; }

.margin-nr4 {
  margin-right: -3rem; }

.margin-nr4p {
  margin-right: -4.5rem; }

.margin-nr5 {
  margin-right: -6rem; }

.margin-nr5p {
  margin-right: -9rem; }

.margin-nr6 {
  margin-right: -12rem; }

.margin-nr6p {
  margin-right: -18rem; }

.margin-nr7 {
  margin-right: -24rem; }

.margin-nr7p {
  margin-right: -36rem; }

.margin-nr8 {
  margin-right: -48rem; }

.margin-nr8p {
  margin-right: -72rem; }

.margin-tauto {
  margin-top: auto; }

.margin-t0 {
  margin-top: 0; }

.margin-t0p {
  margin-top: 0.1875rem; }

.margin-t1 {
  margin-top: 0.375rem; }

.margin-t1p {
  margin-top: 0.5625rem; }

.margin-t2 {
  margin-top: 0.75rem; }

.margin-t2p {
  margin-top: 1.125rem; }

.margin-t3 {
  margin-top: 1.5rem; }

.margin-t3p {
  margin-top: 2.25rem; }

.margin-t4 {
  margin-top: 3rem; }

.margin-t4p {
  margin-top: 4.5rem; }

.margin-t5 {
  margin-top: 6rem; }

.margin-t5p {
  margin-top: 9rem; }

.margin-t6 {
  margin-top: 12rem; }

.margin-t6p {
  margin-top: 18rem; }

.margin-t7 {
  margin-top: 24rem; }

.margin-t7p {
  margin-top: 36rem; }

.margin-t8 {
  margin-top: 48rem; }

.margin-t8p {
  margin-top: 72rem; }

.margin-nt0 {
  margin-top: 0; }

.margin-nt0p {
  margin-top: -0.1875rem; }

.margin-nt1 {
  margin-top: -0.375rem; }

.margin-nt1p {
  margin-top: -0.5625rem; }

.margin-nt2 {
  margin-top: -0.75rem; }

.margin-nt2p {
  margin-top: -1.125rem; }

.margin-nt3 {
  margin-top: -1.5rem; }

.margin-nt3p {
  margin-top: -2.25rem; }

.margin-nt4 {
  margin-top: -3rem; }

.margin-nt4p {
  margin-top: -4.5rem; }

.margin-nt5 {
  margin-top: -6rem; }

.margin-nt5p {
  margin-top: -9rem; }

.margin-nt6 {
  margin-top: -12rem; }

.margin-nt6p {
  margin-top: -18rem; }

.margin-nt7 {
  margin-top: -24rem; }

.margin-nt7p {
  margin-top: -36rem; }

.margin-nt8 {
  margin-top: -48rem; }

.margin-nt8p {
  margin-top: -72rem; }

.margin-bauto {
  margin-bottom: auto; }

.margin-b0 {
  margin-bottom: 0; }

.margin-b0p {
  margin-bottom: 0.1875rem; }

.margin-b1 {
  margin-bottom: 0.375rem; }

.margin-b1p {
  margin-bottom: 0.5625rem; }

.margin-b2 {
  margin-bottom: 0.75rem; }

.margin-b2p {
  margin-bottom: 1.125rem; }

.margin-b3 {
  margin-bottom: 1.5rem; }

.margin-b3p {
  margin-bottom: 2.25rem; }

.margin-b4 {
  margin-bottom: 3rem; }

.margin-b4p {
  margin-bottom: 4.5rem; }

.margin-b5 {
  margin-bottom: 6rem; }

.margin-b5p {
  margin-bottom: 9rem; }

.margin-b6 {
  margin-bottom: 12rem; }

.margin-b6p {
  margin-bottom: 18rem; }

.margin-b7 {
  margin-bottom: 24rem; }

.margin-b7p {
  margin-bottom: 36rem; }

.margin-b8 {
  margin-bottom: 48rem; }

.margin-b8p {
  margin-bottom: 72rem; }

.margin-nb0 {
  margin-bottom: 0; }

.margin-nb0p {
  margin-bottom: -0.1875rem; }

.margin-nb1 {
  margin-bottom: -0.375rem; }

.margin-nb1p {
  margin-bottom: -0.5625rem; }

.margin-nb2 {
  margin-bottom: -0.75rem; }

.margin-nb2p {
  margin-bottom: -1.125rem; }

.margin-nb3 {
  margin-bottom: -1.5rem; }

.margin-nb3p {
  margin-bottom: -2.25rem; }

.margin-nb4 {
  margin-bottom: -3rem; }

.margin-nb4p {
  margin-bottom: -4.5rem; }

.margin-nb5 {
  margin-bottom: -6rem; }

.margin-nb5p {
  margin-bottom: -9rem; }

.margin-nb6 {
  margin-bottom: -12rem; }

.margin-nb6p {
  margin-bottom: -18rem; }

.margin-nb7 {
  margin-bottom: -24rem; }

.margin-nb7p {
  margin-bottom: -36rem; }

.margin-nb8 {
  margin-bottom: -48rem; }

.margin-nb8p {
  margin-bottom: -72rem; }

.size-0 {
  width: 0;
  height: 0; }

.size-0p {
  width: 0.1875rem;
  height: 0.1875rem; }

.size-1 {
  width: 0.375rem;
  height: 0.375rem; }

.size-1p {
  width: 0.5625rem;
  height: 0.5625rem; }

.size-2 {
  width: 0.75rem;
  height: 0.75rem; }

.size-2p {
  width: 1.125rem;
  height: 1.125rem; }

.size-3 {
  width: 1.5rem;
  height: 1.5rem; }

.size-3p {
  width: 2.25rem;
  height: 2.25rem; }

.size-4 {
  width: 3rem;
  height: 3rem; }

.size-4p {
  width: 4.5rem;
  height: 4.5rem; }

.size-5 {
  width: 6rem;
  height: 6rem; }

.size-5p {
  width: 9rem;
  height: 9rem; }

.size-6 {
  width: 12rem;
  height: 12rem; }

.size-6p {
  width: 18rem;
  height: 18rem; }

.size-7 {
  width: 24rem;
  height: 24rem; }

.size-7p {
  width: 36rem;
  height: 36rem; }

.size-8 {
  width: 48rem;
  height: 48rem; }

.size-8p {
  width: 72rem;
  height: 72rem; }

.size-auto {
  width: auto;
  height: auto; }

.size-available {
  width: available;
  height: available; }

.size-fit {
  width: fit-content;
  height: fit-content; }

.size-max {
  width: max-content;
  height: max-content; }

.size-min {
  width: min-content;
  height: min-content; }

.size-x0 {
  width: 0; }

.size-x0p {
  width: 0.1875rem; }

.size-x1 {
  width: 0.375rem; }

.size-x1p {
  width: 0.5625rem; }

.size-x2 {
  width: 0.75rem; }

.size-x2p {
  width: 1.125rem; }

.size-x3 {
  width: 1.5rem; }

.size-x3p {
  width: 2.25rem; }

.size-x4 {
  width: 3rem; }

.size-x4p {
  width: 4.5rem; }

.size-x5 {
  width: 6rem; }

.size-x5p {
  width: 9rem; }

.size-x6 {
  width: 12rem; }

.size-x6p {
  width: 18rem; }

.size-x7 {
  width: 24rem; }

.size-x7p {
  width: 36rem; }

.size-x8 {
  width: 48rem; }

.size-x8p {
  width: 72rem; }

.size-xauto {
  width: auto; }

.size-xavailable {
  width: available; }

.size-xfit {
  width: fit-content; }

.size-xmax {
  width: max-content; }

.size-xmin {
  width: min-content; }

.size-y0 {
  height: 0; }

.size-y0p {
  height: 0.1875rem; }

.size-y1 {
  height: 0.375rem; }

.size-y1p {
  height: 0.5625rem; }

.size-y2 {
  height: 0.75rem; }

.size-y2p {
  height: 1.125rem; }

.size-y3 {
  height: 1.5rem; }

.size-y3p {
  height: 2.25rem; }

.size-y4 {
  height: 3rem; }

.size-y4p {
  height: 4.5rem; }

.size-y5 {
  height: 6rem; }

.size-y5p {
  height: 9rem; }

.size-y6 {
  height: 12rem; }

.size-y6p {
  height: 18rem; }

.size-y7 {
  height: 24rem; }

.size-y7p {
  height: 36rem; }

.size-y8 {
  height: 48rem; }

.size-y8p {
  height: 72rem; }

.size-yauto {
  height: auto; }

.size-yavailable {
  height: available; }

.size-yfit {
  height: fit-content; }

.size-ymax {
  height: max-content; }

.size-ymin {
  height: min-content; }

.line-height-0 {
  line-height: 0; }

.line-height-0p {
  line-height: 0.1875rem; }

.line-height-1 {
  line-height: 0.375rem; }

.line-height-1p {
  line-height: 0.5625rem; }

.line-height-2 {
  line-height: 0.75rem; }

.line-height-2p {
  line-height: 1.125rem; }

.line-height-3 {
  line-height: 1.5rem; }

.line-height-3p {
  line-height: 2.25rem; }

.line-height-4 {
  line-height: 3rem; }

.line-height-4p {
  line-height: 4.5rem; }

.line-height-5 {
  line-height: 6rem; }

.line-height-5p {
  line-height: 9rem; }

.line-height-6 {
  line-height: 12rem; }

.line-height-6p {
  line-height: 18rem; }

.line-height-7 {
  line-height: 24rem; }

.line-height-7p {
  line-height: 36rem; }

.line-height-8 {
  line-height: 48rem; }

.line-height-8p {
  line-height: 72rem; }

.line-height-normal {
  line-height: normal; }

.width-0 {
  width: 0; }

.width-2\/3 {
  width: 66.66667%; }

.width-1\/3vh {
  width: 33.33333vh; }

.width-1\/3vw {
  width: 33.33333vw; }

.width-1\/3 {
  width: 33.33333%; }

.width-3\/4vh {
  width: 75vh; }

.width-3\/4vw {
  width: 75vw; }

.width-3\/4 {
  width: 75%; }

.width-1\/4vh {
  width: 25vh; }

.width-1\/4vw {
  width: 25vw; }

.width-1\/4 {
  width: 25%; }

.width-1\/2vh {
  width: 50vh; }

.width-1\/2vw {
  width: 50vw; }

.width-1\/2 {
  width: 50%; }

.width-fullvh {
  width: 100vh; }

.width-fullvw {
  width: 100vw; }

.width-full {
  width: 100%; }

.width-7\/12vw {
  width: 58.33333vw; }

.width-7\/12 {
  width: 58.33333%; }

.width-5\/12vh {
  width: 41.66667vh; }

.width-5\/12vw {
  width: 41.66667vw; }

.width-5\/12 {
  width: 41.66667%; }

.width-1\/12vh {
  width: 8.33333vh; }

.width-1\/12vw {
  width: 8.33333vw; }

.width-1\/12 {
  width: 8.33333%; }

.width-5\/6vh {
  width: 83.33333vh; }

.width-5\/6vw {
  width: 83.33333vw; }

.width-5\/6 {
  width: 83.33333%; }

.width-1\/6vh {
  width: 16.66667vh; }

.width-1\/6vw {
  width: 16.66667vw; }

.width-1\/6 {
  width: 16.66667%; }

.width-2\/3vh {
  width: 66.66667vh; }

.width-2\/3vw {
  width: 66.66667vw; }

.width-4\/5vh {
  width: 80vh; }

.width-4\/5vw {
  width: 80vw; }

.width-4\/5 {
  width: 80%; }

.width-3\/5vh {
  width: 60vh; }

.width-3\/5vw {
  width: 60vw; }

.width-3\/5 {
  width: 60%; }

.width-2\/5vh {
  width: 40vh; }

.width-2\/5vw {
  width: 40vw; }

.width-2\/5 {
  width: 40%; }

.width-1\/5vh {
  width: 20vh; }

.width-1\/5vw {
  width: 20vw; }

.width-1\/5 {
  width: 20%; }

.width-11\/12vh {
  width: 91.66667vh; }

.width-11\/12vw {
  width: 91.66667vw; }

.width-11\/12 {
  width: 91.66667%; }

.width-7\/12vh {
  width: 58.33333vh; }

.max-width-0 {
  max-width: 0; }

.max-width-2\/3 {
  max-width: 66.66667%; }

.max-width-1\/3vh {
  max-width: 33.33333vh; }

.max-width-1\/3vw {
  max-width: 33.33333vw; }

.max-width-1\/3 {
  max-width: 33.33333%; }

.max-width-3\/4vh {
  max-width: 75vh; }

.max-width-3\/4vw {
  max-width: 75vw; }

.max-width-3\/4 {
  max-width: 75%; }

.max-width-1\/4vh {
  max-width: 25vh; }

.max-width-1\/4vw {
  max-width: 25vw; }

.max-width-1\/4 {
  max-width: 25%; }

.max-width-1\/2vh {
  max-width: 50vh; }

.max-width-1\/2vw {
  max-width: 50vw; }

.max-width-1\/2 {
  max-width: 50%; }

.max-width-fullvh {
  max-width: 100vh; }

.max-width-fullvw {
  max-width: 100vw; }

.max-width-full {
  max-width: 100%; }

.max-width-7\/12vw {
  max-width: 58.33333vw; }

.max-width-7\/12 {
  max-width: 58.33333%; }

.max-width-5\/12vh {
  max-width: 41.66667vh; }

.max-width-5\/12vw {
  max-width: 41.66667vw; }

.max-width-5\/12 {
  max-width: 41.66667%; }

.max-width-1\/12vh {
  max-width: 8.33333vh; }

.max-width-1\/12vw {
  max-width: 8.33333vw; }

.max-width-1\/12 {
  max-width: 8.33333%; }

.max-width-5\/6vh {
  max-width: 83.33333vh; }

.max-width-5\/6vw {
  max-width: 83.33333vw; }

.max-width-5\/6 {
  max-width: 83.33333%; }

.max-width-1\/6vh {
  max-width: 16.66667vh; }

.max-width-1\/6vw {
  max-width: 16.66667vw; }

.max-width-1\/6 {
  max-width: 16.66667%; }

.max-width-2\/3vh {
  max-width: 66.66667vh; }

.max-width-2\/3vw {
  max-width: 66.66667vw; }

.max-width-4\/5vh {
  max-width: 80vh; }

.max-width-4\/5vw {
  max-width: 80vw; }

.max-width-4\/5 {
  max-width: 80%; }

.max-width-3\/5vh {
  max-width: 60vh; }

.max-width-3\/5vw {
  max-width: 60vw; }

.max-width-3\/5 {
  max-width: 60%; }

.max-width-2\/5vh {
  max-width: 40vh; }

.max-width-2\/5vw {
  max-width: 40vw; }

.max-width-2\/5 {
  max-width: 40%; }

.max-width-1\/5vh {
  max-width: 20vh; }

.max-width-1\/5vw {
  max-width: 20vw; }

.max-width-1\/5 {
  max-width: 20%; }

.max-width-11\/12vh {
  max-width: 91.66667vh; }

.max-width-11\/12vw {
  max-width: 91.66667vw; }

.max-width-11\/12 {
  max-width: 91.66667%; }

.max-width-7\/12vh {
  max-width: 58.33333vh; }

.min-width-0 {
  min-width: 0; }

.min-width-2\/3 {
  min-width: 66.66667%; }

.min-width-1\/3vh {
  min-width: 33.33333vh; }

.min-width-1\/3vw {
  min-width: 33.33333vw; }

.min-width-1\/3 {
  min-width: 33.33333%; }

.min-width-3\/4vh {
  min-width: 75vh; }

.min-width-3\/4vw {
  min-width: 75vw; }

.min-width-3\/4 {
  min-width: 75%; }

.min-width-1\/4vh {
  min-width: 25vh; }

.min-width-1\/4vw {
  min-width: 25vw; }

.min-width-1\/4 {
  min-width: 25%; }

.min-width-1\/2vh {
  min-width: 50vh; }

.min-width-1\/2vw {
  min-width: 50vw; }

.min-width-1\/2 {
  min-width: 50%; }

.min-width-fullvh {
  min-width: 100vh; }

.min-width-fullvw {
  min-width: 100vw; }

.min-width-full {
  min-width: 100%; }

.min-width-7\/12vw {
  min-width: 58.33333vw; }

.min-width-7\/12 {
  min-width: 58.33333%; }

.min-width-5\/12vh {
  min-width: 41.66667vh; }

.min-width-5\/12vw {
  min-width: 41.66667vw; }

.min-width-5\/12 {
  min-width: 41.66667%; }

.min-width-1\/12vh {
  min-width: 8.33333vh; }

.min-width-1\/12vw {
  min-width: 8.33333vw; }

.min-width-1\/12 {
  min-width: 8.33333%; }

.min-width-5\/6vh {
  min-width: 83.33333vh; }

.min-width-5\/6vw {
  min-width: 83.33333vw; }

.min-width-5\/6 {
  min-width: 83.33333%; }

.min-width-1\/6vh {
  min-width: 16.66667vh; }

.min-width-1\/6vw {
  min-width: 16.66667vw; }

.min-width-1\/6 {
  min-width: 16.66667%; }

.min-width-2\/3vh {
  min-width: 66.66667vh; }

.min-width-2\/3vw {
  min-width: 66.66667vw; }

.min-width-4\/5vh {
  min-width: 80vh; }

.min-width-4\/5vw {
  min-width: 80vw; }

.min-width-4\/5 {
  min-width: 80%; }

.min-width-3\/5vh {
  min-width: 60vh; }

.min-width-3\/5vw {
  min-width: 60vw; }

.min-width-3\/5 {
  min-width: 60%; }

.min-width-2\/5vh {
  min-width: 40vh; }

.min-width-2\/5vw {
  min-width: 40vw; }

.min-width-2\/5 {
  min-width: 40%; }

.min-width-1\/5vh {
  min-width: 20vh; }

.min-width-1\/5vw {
  min-width: 20vw; }

.min-width-1\/5 {
  min-width: 20%; }

.min-width-11\/12vh {
  min-width: 91.66667vh; }

.min-width-11\/12vw {
  min-width: 91.66667vw; }

.min-width-11\/12 {
  min-width: 91.66667%; }

.min-width-7\/12vh {
  min-width: 58.33333vh; }

.height-0 {
  height: 0; }

.height-2\/3 {
  height: 66.66667%; }

.height-1\/3vh {
  height: 33.33333vh; }

.height-1\/3vw {
  height: 33.33333vw; }

.height-1\/3 {
  height: 33.33333%; }

.height-3\/4vh {
  height: 75vh; }

.height-3\/4vw {
  height: 75vw; }

.height-3\/4 {
  height: 75%; }

.height-1\/4vh {
  height: 25vh; }

.height-1\/4vw {
  height: 25vw; }

.height-1\/4 {
  height: 25%; }

.height-1\/2vh {
  height: 50vh; }

.height-1\/2vw {
  height: 50vw; }

.height-1\/2 {
  height: 50%; }

.height-fullvh {
  height: 100vh; }

.height-fullvw {
  height: 100vw; }

.height-full {
  height: 100%; }

.height-7\/12vw {
  height: 58.33333vw; }

.height-7\/12 {
  height: 58.33333%; }

.height-5\/12vh {
  height: 41.66667vh; }

.height-5\/12vw {
  height: 41.66667vw; }

.height-5\/12 {
  height: 41.66667%; }

.height-1\/12vh {
  height: 8.33333vh; }

.height-1\/12vw {
  height: 8.33333vw; }

.height-1\/12 {
  height: 8.33333%; }

.height-5\/6vh {
  height: 83.33333vh; }

.height-5\/6vw {
  height: 83.33333vw; }

.height-5\/6 {
  height: 83.33333%; }

.height-1\/6vh {
  height: 16.66667vh; }

.height-1\/6vw {
  height: 16.66667vw; }

.height-1\/6 {
  height: 16.66667%; }

.height-2\/3vh {
  height: 66.66667vh; }

.height-2\/3vw {
  height: 66.66667vw; }

.height-4\/5vh {
  height: 80vh; }

.height-4\/5vw {
  height: 80vw; }

.height-4\/5 {
  height: 80%; }

.height-3\/5vh {
  height: 60vh; }

.height-3\/5vw {
  height: 60vw; }

.height-3\/5 {
  height: 60%; }

.height-2\/5vh {
  height: 40vh; }

.height-2\/5vw {
  height: 40vw; }

.height-2\/5 {
  height: 40%; }

.height-1\/5vh {
  height: 20vh; }

.height-1\/5vw {
  height: 20vw; }

.height-1\/5 {
  height: 20%; }

.height-11\/12vh {
  height: 91.66667vh; }

.height-11\/12vw {
  height: 91.66667vw; }

.height-11\/12 {
  height: 91.66667%; }

.height-7\/12vh {
  height: 58.33333vh; }

.max-height-0 {
  max-height: 0; }

.max-height-2\/3 {
  max-height: 66.66667%; }

.max-height-1\/3vh {
  max-height: 33.33333vh; }

.max-height-1\/3vw {
  max-height: 33.33333vw; }

.max-height-1\/3 {
  max-height: 33.33333%; }

.max-height-3\/4vh {
  max-height: 75vh; }

.max-height-3\/4vw {
  max-height: 75vw; }

.max-height-3\/4 {
  max-height: 75%; }

.max-height-1\/4vh {
  max-height: 25vh; }

.max-height-1\/4vw {
  max-height: 25vw; }

.max-height-1\/4 {
  max-height: 25%; }

.max-height-1\/2vh {
  max-height: 50vh; }

.max-height-1\/2vw {
  max-height: 50vw; }

.max-height-1\/2 {
  max-height: 50%; }

.max-height-fullvh {
  max-height: 100vh; }

.max-height-fullvw {
  max-height: 100vw; }

.max-height-full {
  max-height: 100%; }

.max-height-7\/12vw {
  max-height: 58.33333vw; }

.max-height-7\/12 {
  max-height: 58.33333%; }

.max-height-5\/12vh {
  max-height: 41.66667vh; }

.max-height-5\/12vw {
  max-height: 41.66667vw; }

.max-height-5\/12 {
  max-height: 41.66667%; }

.max-height-1\/12vh {
  max-height: 8.33333vh; }

.max-height-1\/12vw {
  max-height: 8.33333vw; }

.max-height-1\/12 {
  max-height: 8.33333%; }

.max-height-5\/6vh {
  max-height: 83.33333vh; }

.max-height-5\/6vw {
  max-height: 83.33333vw; }

.max-height-5\/6 {
  max-height: 83.33333%; }

.max-height-1\/6vh {
  max-height: 16.66667vh; }

.max-height-1\/6vw {
  max-height: 16.66667vw; }

.max-height-1\/6 {
  max-height: 16.66667%; }

.max-height-2\/3vh {
  max-height: 66.66667vh; }

.max-height-2\/3vw {
  max-height: 66.66667vw; }

.max-height-4\/5vh {
  max-height: 80vh; }

.max-height-4\/5vw {
  max-height: 80vw; }

.max-height-4\/5 {
  max-height: 80%; }

.max-height-3\/5vh {
  max-height: 60vh; }

.max-height-3\/5vw {
  max-height: 60vw; }

.max-height-3\/5 {
  max-height: 60%; }

.max-height-2\/5vh {
  max-height: 40vh; }

.max-height-2\/5vw {
  max-height: 40vw; }

.max-height-2\/5 {
  max-height: 40%; }

.max-height-1\/5vh {
  max-height: 20vh; }

.max-height-1\/5vw {
  max-height: 20vw; }

.max-height-1\/5 {
  max-height: 20%; }

.max-height-11\/12vh {
  max-height: 91.66667vh; }

.max-height-11\/12vw {
  max-height: 91.66667vw; }

.max-height-11\/12 {
  max-height: 91.66667%; }

.max-height-7\/12vh {
  max-height: 58.33333vh; }

.min-height-0 {
  min-height: 0; }

.min-height-2\/3 {
  min-height: 66.66667%; }

.min-height-1\/3vh {
  min-height: 33.33333vh; }

.min-height-1\/3vw {
  min-height: 33.33333vw; }

.min-height-1\/3 {
  min-height: 33.33333%; }

.min-height-3\/4vh {
  min-height: 75vh; }

.min-height-3\/4vw {
  min-height: 75vw; }

.min-height-3\/4 {
  min-height: 75%; }

.min-height-1\/4vh {
  min-height: 25vh; }

.min-height-1\/4vw {
  min-height: 25vw; }

.min-height-1\/4 {
  min-height: 25%; }

.min-height-1\/2vh {
  min-height: 50vh; }

.min-height-1\/2vw {
  min-height: 50vw; }

.min-height-1\/2 {
  min-height: 50%; }

.min-height-fullvh {
  min-height: 100vh; }

.min-height-fullvw {
  min-height: 100vw; }

.min-height-full {
  min-height: 100%; }

.min-height-7\/12vw {
  min-height: 58.33333vw; }

.min-height-7\/12 {
  min-height: 58.33333%; }

.min-height-5\/12vh {
  min-height: 41.66667vh; }

.min-height-5\/12vw {
  min-height: 41.66667vw; }

.min-height-5\/12 {
  min-height: 41.66667%; }

.min-height-1\/12vh {
  min-height: 8.33333vh; }

.min-height-1\/12vw {
  min-height: 8.33333vw; }

.min-height-1\/12 {
  min-height: 8.33333%; }

.min-height-5\/6vh {
  min-height: 83.33333vh; }

.min-height-5\/6vw {
  min-height: 83.33333vw; }

.min-height-5\/6 {
  min-height: 83.33333%; }

.min-height-1\/6vh {
  min-height: 16.66667vh; }

.min-height-1\/6vw {
  min-height: 16.66667vw; }

.min-height-1\/6 {
  min-height: 16.66667%; }

.min-height-2\/3vh {
  min-height: 66.66667vh; }

.min-height-2\/3vw {
  min-height: 66.66667vw; }

.min-height-4\/5vh {
  min-height: 80vh; }

.min-height-4\/5vw {
  min-height: 80vw; }

.min-height-4\/5 {
  min-height: 80%; }

.min-height-3\/5vh {
  min-height: 60vh; }

.min-height-3\/5vw {
  min-height: 60vw; }

.min-height-3\/5 {
  min-height: 60%; }

.min-height-2\/5vh {
  min-height: 40vh; }

.min-height-2\/5vw {
  min-height: 40vw; }

.min-height-2\/5 {
  min-height: 40%; }

.min-height-1\/5vh {
  min-height: 20vh; }

.min-height-1\/5vw {
  min-height: 20vw; }

.min-height-1\/5 {
  min-height: 20%; }

.min-height-11\/12vh {
  min-height: 91.66667vh; }

.min-height-11\/12vw {
  min-height: 91.66667vw; }

.min-height-11\/12 {
  min-height: 91.66667%; }

.min-height-7\/12vh {
  min-height: 58.33333vh; }

.container-1 {
  margin: 0 auto;
  position: relative;
  width: 100%;
  padding: 0 1.5rem;
  max-width: 47rem; }

.container-2 {
  margin: 0 auto;
  position: relative;
  width: 100%;
  padding: 0 1.5rem;
  max-width: 41rem; }

.container-3 {
  margin: 0 auto;
  position: relative;
  width: 100%;
  padding: 0 1.5rem;
  max-width: 32rem; }

.container-4 {
  margin: 0 auto;
  position: relative;
  width: 100%;
  padding: 0 1.5rem;
  max-width: 23rem; }

.raise-first > *:first-child {
  margin-top: 0; }

.pin {
  top: 0;
  bottom: 0;
  right: 0;
  left: 0; }

.pin-none {
  top: auto;
  bottom: auto;
  left: auto;
  right: auto; }

.pin-x {
  right: 0;
  left: 0; }

.pin-y {
  top: 0;
  bottom: 0; }

.pin-left {
  left: 0; }

.pin-right {
  right: 0; }

.pin-top {
  top: 0; }

.pin-bottom {
  bottom: 0; }

.block {
  display: block; }

.inline {
  display: inline; }

.inline-block {
  display: inline-block; }

.table {
  display: table; }

.table-cell {
  display: table-cell; }

.inline-flex {
  display: inline-flex; }

.float-left {
  float: left; }

.float-right {
  float: right; }

.float-none {
  float: none; }

.absolute {
  position: absolute; }

.fixed {
  position: fixed; }

.relative {
  position: relative; }

.static {
  position: static; }

.sticky {
  position: sticky; }

.overflow-auto {
  overflow: auto; }

.overflow-hidden {
  overflow: hidden; }

.overflow-visible {
  overflow: visible; }

.overflow-scroll {
  overflow: scroll; }

.overflow-x-auto {
  overflow-x: auto; }

.overflow-x-hidden {
  overflow-x: hidden; }

.overflow-x-visible {
  overflow-x: visible; }

.overflow-x-scroll {
  overflow-x: scroll; }

.overflow-y-auto {
  overflow-y: auto; }

.overflow-y-hidden {
  overflow-y: hidden; }

.overflow-y-visible {
  overflow-y: visible; }

.overflow-y-scroll {
  overflow-y: scroll; }

.border-1 {
  border: 1px solid; }

.border-2 {
  border: 2px solid; }

.border-4 {
  border: 4px solid; }

.border-8 {
  border: 8px solid; }

.border-l1 {
  border-left: 1px solid; }

.border-l2 {
  border-left: 2px solid; }

.border-l4 {
  border-left: 4px solid; }

.border-l8 {
  border-left: 8px solid; }

.border-r1 {
  border-right: 1px solid; }

.border-r2 {
  border-right: 2px solid; }

.border-r4 {
  border-right: 4px solid; }

.border-r8 {
  border-right: 8px solid; }

.border-t1 {
  border-top: 1px solid; }

.border-t2 {
  border-top: 2px solid; }

.border-t4 {
  border-top: 4px solid; }

.border-t8 {
  border-top: 8px solid; }

.border-b1 {
  border-bottom: 1px solid; }

.border-b2 {
  border-bottom: 2px solid; }

.border-b4 {
  border-bottom: 4px solid; }

.border-b8 {
  border-bottom: 8px solid; }

.border-solid {
  border-style: solid; }

.border-dashed {
  border-style: dashed; }

.border-dotted {
  border-style: dotted; }

.border-none {
  border-style: none; }

.rounded-0 {
  border-radius: 0; }

.rounded-0p {
  border-radius: 0.09375rem; }

.rounded-1 {
  border-radius: 0.1875rem; }

.rounded-1p {
  border-radius: 0.28125rem; }

.rounded-2 {
  border-radius: 0.375rem; }

.rounded-2p {
  border-radius: 0.5625rem; }

.rounded-3 {
  border-radius: 0.75rem; }

.rounded-3p {
  border-radius: 1.125rem; }

.rounded-4 {
  border-radius: 1.5rem; }

.rounded-4p {
  border-radius: 2.25rem; }

.rounded-5 {
  border-radius: 3rem; }

.rounded-5p {
  border-radius: 4.5rem; }

.rounded-6 {
  border-radius: 6rem; }

.rounded-6p {
  border-radius: 9rem; }

.rounded-7 {
  border-radius: 12rem; }

.rounded-7p {
  border-radius: 18rem; }

.rounded-8 {
  border-radius: 24rem; }

.rounded-8p {
  border-radius: 36rem; }

.rounded-t0 {
  border-top-left-radius: 0;
  border-top-right-radius: 0; }

.rounded-t0p {
  border-top-left-radius: 0.09375rem;
  border-top-right-radius: 0.09375rem; }

.rounded-t1 {
  border-top-left-radius: 0.1875rem;
  border-top-right-radius: 0.1875rem; }

.rounded-t1p {
  border-top-left-radius: 0.28125rem;
  border-top-right-radius: 0.28125rem; }

.rounded-t2 {
  border-top-left-radius: 0.375rem;
  border-top-right-radius: 0.375rem; }

.rounded-t2p {
  border-top-left-radius: 0.5625rem;
  border-top-right-radius: 0.5625rem; }

.rounded-t3 {
  border-top-left-radius: 0.75rem;
  border-top-right-radius: 0.75rem; }

.rounded-t3p {
  border-top-left-radius: 1.125rem;
  border-top-right-radius: 1.125rem; }

.rounded-t4 {
  border-top-left-radius: 1.5rem;
  border-top-right-radius: 1.5rem; }

.rounded-t4p {
  border-top-left-radius: 2.25rem;
  border-top-right-radius: 2.25rem; }

.rounded-t5 {
  border-top-left-radius: 3rem;
  border-top-right-radius: 3rem; }

.rounded-t5p {
  border-top-left-radius: 4.5rem;
  border-top-right-radius: 4.5rem; }

.rounded-t6 {
  border-top-left-radius: 6rem;
  border-top-right-radius: 6rem; }

.rounded-t6p {
  border-top-left-radius: 9rem;
  border-top-right-radius: 9rem; }

.rounded-t7 {
  border-top-left-radius: 12rem;
  border-top-right-radius: 12rem; }

.rounded-t7p {
  border-top-left-radius: 18rem;
  border-top-right-radius: 18rem; }

.rounded-t8 {
  border-top-left-radius: 24rem;
  border-top-right-radius: 24rem; }

.rounded-t8p {
  border-top-left-radius: 36rem;
  border-top-right-radius: 36rem; }

.rounded-b0 {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0; }

.rounded-b0p {
  border-bottom-left-radius: 0.09375rem;
  border-bottom-right-radius: 0.09375rem; }

.rounded-b1 {
  border-bottom-left-radius: 0.1875rem;
  border-bottom-right-radius: 0.1875rem; }

.rounded-b1p {
  border-bottom-left-radius: 0.28125rem;
  border-bottom-right-radius: 0.28125rem; }

.rounded-b2 {
  border-bottom-left-radius: 0.375rem;
  border-bottom-right-radius: 0.375rem; }

.rounded-b2p {
  border-bottom-left-radius: 0.5625rem;
  border-bottom-right-radius: 0.5625rem; }

.rounded-b3 {
  border-bottom-left-radius: 0.75rem;
  border-bottom-right-radius: 0.75rem; }

.rounded-b3p {
  border-bottom-left-radius: 1.125rem;
  border-bottom-right-radius: 1.125rem; }

.rounded-b4 {
  border-bottom-left-radius: 1.5rem;
  border-bottom-right-radius: 1.5rem; }

.rounded-b4p {
  border-bottom-left-radius: 2.25rem;
  border-bottom-right-radius: 2.25rem; }

.rounded-b5 {
  border-bottom-left-radius: 3rem;
  border-bottom-right-radius: 3rem; }

.rounded-b5p {
  border-bottom-left-radius: 4.5rem;
  border-bottom-right-radius: 4.5rem; }

.rounded-b6 {
  border-bottom-left-radius: 6rem;
  border-bottom-right-radius: 6rem; }

.rounded-b6p {
  border-bottom-left-radius: 9rem;
  border-bottom-right-radius: 9rem; }

.rounded-b7 {
  border-bottom-left-radius: 12rem;
  border-bottom-right-radius: 12rem; }

.rounded-b7p {
  border-bottom-left-radius: 18rem;
  border-bottom-right-radius: 18rem; }

.rounded-b8 {
  border-bottom-left-radius: 24rem;
  border-bottom-right-radius: 24rem; }

.rounded-b8p {
  border-bottom-left-radius: 36rem;
  border-bottom-right-radius: 36rem; }

.rounded-r0 {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0; }

.rounded-r0p {
  border-top-right-radius: 0.09375rem;
  border-bottom-right-radius: 0.09375rem; }

.rounded-r1 {
  border-top-right-radius: 0.1875rem;
  border-bottom-right-radius: 0.1875rem; }

.rounded-r1p {
  border-top-right-radius: 0.28125rem;
  border-bottom-right-radius: 0.28125rem; }

.rounded-r2 {
  border-top-right-radius: 0.375rem;
  border-bottom-right-radius: 0.375rem; }

.rounded-r2p {
  border-top-right-radius: 0.5625rem;
  border-bottom-right-radius: 0.5625rem; }

.rounded-r3 {
  border-top-right-radius: 0.75rem;
  border-bottom-right-radius: 0.75rem; }

.rounded-r3p {
  border-top-right-radius: 1.125rem;
  border-bottom-right-radius: 1.125rem; }

.rounded-r4 {
  border-top-right-radius: 1.5rem;
  border-bottom-right-radius: 1.5rem; }

.rounded-r4p {
  border-top-right-radius: 2.25rem;
  border-bottom-right-radius: 2.25rem; }

.rounded-r5 {
  border-top-right-radius: 3rem;
  border-bottom-right-radius: 3rem; }

.rounded-r5p {
  border-top-right-radius: 4.5rem;
  border-bottom-right-radius: 4.5rem; }

.rounded-r6 {
  border-top-right-radius: 6rem;
  border-bottom-right-radius: 6rem; }

.rounded-r6p {
  border-top-right-radius: 9rem;
  border-bottom-right-radius: 9rem; }

.rounded-r7 {
  border-top-right-radius: 12rem;
  border-bottom-right-radius: 12rem; }

.rounded-r7p {
  border-top-right-radius: 18rem;
  border-bottom-right-radius: 18rem; }

.rounded-r8 {
  border-top-right-radius: 24rem;
  border-bottom-right-radius: 24rem; }

.rounded-r8p {
  border-top-right-radius: 36rem;
  border-bottom-right-radius: 36rem; }

.rounded-l0 {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0; }

.rounded-l0p {
  border-top-left-radius: 0.09375rem;
  border-bottom-left-radius: 0.09375rem; }

.rounded-l1 {
  border-top-left-radius: 0.1875rem;
  border-bottom-left-radius: 0.1875rem; }

.rounded-l1p {
  border-top-left-radius: 0.28125rem;
  border-bottom-left-radius: 0.28125rem; }

.rounded-l2 {
  border-top-left-radius: 0.375rem;
  border-bottom-left-radius: 0.375rem; }

.rounded-l2p {
  border-top-left-radius: 0.5625rem;
  border-bottom-left-radius: 0.5625rem; }

.rounded-l3 {
  border-top-left-radius: 0.75rem;
  border-bottom-left-radius: 0.75rem; }

.rounded-l3p {
  border-top-left-radius: 1.125rem;
  border-bottom-left-radius: 1.125rem; }

.rounded-l4 {
  border-top-left-radius: 1.5rem;
  border-bottom-left-radius: 1.5rem; }

.rounded-l4p {
  border-top-left-radius: 2.25rem;
  border-bottom-left-radius: 2.25rem; }

.rounded-l5 {
  border-top-left-radius: 3rem;
  border-bottom-left-radius: 3rem; }

.rounded-l5p {
  border-top-left-radius: 4.5rem;
  border-bottom-left-radius: 4.5rem; }

.rounded-l6 {
  border-top-left-radius: 6rem;
  border-bottom-left-radius: 6rem; }

.rounded-l6p {
  border-top-left-radius: 9rem;
  border-bottom-left-radius: 9rem; }

.rounded-l7 {
  border-top-left-radius: 12rem;
  border-bottom-left-radius: 12rem; }

.rounded-l7p {
  border-top-left-radius: 18rem;
  border-bottom-left-radius: 18rem; }

.rounded-l8 {
  border-top-left-radius: 24rem;
  border-bottom-left-radius: 24rem; }

.rounded-l8p {
  border-top-left-radius: 36rem;
  border-bottom-left-radius: 36rem; }

.row {
  align-items: stretch;
  display: flex;
  flex-flow: row;
  justify-content: space-between; }
  .row > * {
    min-width: 0; }

.row-inline {
  align-items: stretch;
  display: inline-flex;
  flex-flow: row;
  justify-content: space-between; }

.row-expand > * {
  flex: 1; }

.col {
  align-items: stretch;
  display: flex;
  flex-flow: column;
  justify-content: space-between; }
  .col > * {
    min-width: 0; }

.col-inline {
  align-items: stretch;
  display: inline-flex;
  flex-flow: column;
  justify-content: space-between; }

.col-expand > * {
  flex: 1; }

.gutter-1 {
  margin: 0.375rem -0.375rem; }
  .gutter-1 > * {
    margin: 0.375rem; }
  .gutter-1 + .gutter-1 {
    margin-top: -0.375rem; }

.gutter-2 {
  margin: 0.75rem -0.75rem; }
  .gutter-2 > * {
    margin: 0.75rem; }
  .gutter-2 + .gutter-2 {
    margin-top: -0.75rem; }

.gutter-3 {
  margin: 1.5rem -1.5rem; }
  .gutter-3 > * {
    margin: 1.5rem; }
  .gutter-3 + .gutter-3 {
    margin-top: -1.5rem; }

.gutter-4 {
  margin: 3rem -3rem; }
  .gutter-4 > * {
    margin: 3rem; }
  .gutter-4 + .gutter-4 {
    margin-top: -3rem; }

.flex-row {
  flex-direction: row; }

.flex-row-reverse {
  flex-direction: row-reverse; }

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

.flex-column-reverse {
  flex-direction: column-reverse; }

.flex-start {
  justify-content: flex-start; }

.flex-center {
  justify-content: center; }

.flex-end {
  justify-content: flex-end; }

.flex-between {
  justify-content: space-between; }

.flex-around {
  justify-content: space-around; }

.flex-evenly {
  justify-content: space-evenly; }

.items-stretch {
  align-items: stretch; }

.items-start {
  align-items: flex-start; }

.items-center {
  align-items: center; }

.items-end {
  align-items: flex-end; }

.items-baseline {
  align-items: baseline; }

.content-start {
  align-content: flex-start; }

.content-center {
  align-content: center; }

.content-end {
  align-content: flex-end; }

.content-between {
  align-content: space-between; }

.content-around {
  align-content: space-around; }

.content-evenly {
  align-content: space-evenly; }

.wrap {
  flex-wrap: wrap; }

.nowrap {
  flex-wrap: nowrap; }

.wrap-reverse {
  flex-wrap: wrap-reverse; }

.self-stretch {
  align-self: stretch; }

.self-start {
  align-self: flex-start; }

.self-center {
  align-self: center; }

.self-end {
  align-self: flex-end; }

.self-baseline {
  align-self: baseline; }

.flex-shrink {
  flex-shrink: 1; }

.flex-noshrink {
  flex-shrink: 0; }

.flex-grow {
  flex-grow: 1; }

.flex-nogrow {
  flex-grow: 0; }

.flex-auto {
  flex: auto; }

.flex-1 {
  flex: 1; }

.flex-2 {
  flex: 2; }

.flex-3 {
  flex: 3; }

.flex-4 {
  flex: 4; }

.flex-5 {
  flex: 5; }

.flex-6 {
  flex: 6; }

.flex-7 {
  flex: 7; }

.flex-8 {
  flex: 8; }

.flex-9 {
  flex: 9; }

.flex-10 {
  flex: 10; }

.flex-11 {
  flex: 11; }

.flex-12 {
  flex: 12; }

.order-1 {
  order: 1; }

.order-2 {
  order: 2; }

.order-3 {
  order: 3; }

.order-4 {
  order: 4; }

.order-5 {
  order: 5; }

.order-6 {
  order: 6; }

.order-7 {
  order: 7; }

.order-8 {
  order: 8; }

.order-9 {
  order: 9; }

.order-10 {
  order: 10; }

.order-11 {
  order: 11; }

.order-12 {
  order: 12; }

.grid-dense {
  grid-auto-flow: dense; }

.grid-1 {
  --gridGap: 0;
  --gridSize: 1;
  display: grid;
  grid-template-columns: repeat(1, 1fr); }

.grid-2 {
  --gridGap: 0;
  --gridSize: 2;
  display: grid;
  grid-template-columns: repeat(2, 1fr); }

.grid-3 {
  --gridGap: 0;
  --gridSize: 3;
  display: grid;
  grid-template-columns: repeat(3, 1fr); }

.grid-4 {
  --gridGap: 0;
  --gridSize: 4;
  display: grid;
  grid-template-columns: repeat(4, 1fr); }

.grid-5 {
  --gridGap: 0;
  --gridSize: 5;
  display: grid;
  grid-template-columns: repeat(5, 1fr); }

.grid-6 {
  --gridGap: 0;
  --gridSize: 6;
  display: grid;
  grid-template-columns: repeat(6, 1fr); }

.grid-8 {
  --gridGap: 0;
  --gridSize: 8;
  display: grid;
  grid-template-columns: repeat(8, 1fr); }

.grid-9 {
  --gridGap: 0;
  --gridSize: 9;
  display: grid;
  grid-template-columns: repeat(9, 1fr); }

.grid-10 {
  --gridGap: 0;
  --gridSize: 10;
  display: grid;
  grid-template-columns: repeat(10, 1fr); }

.grid-12 {
  --gridGap: 0;
  --gridSize: 12;
  display: grid;
  grid-template-columns: repeat(12, 1fr); }

.grid-15 {
  --gridGap: 0;
  --gridSize: 15;
  display: grid;
  grid-template-columns: repeat(15, 1fr); }

.rows-1 {
  --gridGap: 0;
  --gridSize: 1;
  display: grid;
  grid-template-rows: repeat(1, 1fr); }

.rows-2 {
  --gridGap: 0;
  --gridSize: 2;
  display: grid;
  grid-template-rows: repeat(2, 1fr); }

.rows-3 {
  --gridGap: 0;
  --gridSize: 3;
  display: grid;
  grid-template-rows: repeat(3, 1fr); }

.rows-4 {
  --gridGap: 0;
  --gridSize: 4;
  display: grid;
  grid-template-rows: repeat(4, 1fr); }

.rows-5 {
  --gridGap: 0;
  --gridSize: 5;
  display: grid;
  grid-template-rows: repeat(5, 1fr); }

.rows-6 {
  --gridGap: 0;
  --gridSize: 6;
  display: grid;
  grid-template-rows: repeat(6, 1fr); }

.rows-8 {
  --gridGap: 0;
  --gridSize: 8;
  display: grid;
  grid-template-rows: repeat(8, 1fr); }

.rows-9 {
  --gridGap: 0;
  --gridSize: 9;
  display: grid;
  grid-template-rows: repeat(9, 1fr); }

.rows-10 {
  --gridGap: 0;
  --gridSize: 10;
  display: grid;
  grid-template-rows: repeat(10, 1fr); }

.rows-12 {
  --gridGap: 0;
  --gridSize: 12;
  display: grid;
  grid-template-rows: repeat(12, 1fr); }

.rows-15 {
  --gridGap: 0;
  --gridSize: 15;
  display: grid;
  grid-template-rows: repeat(15, 1fr); }

.gap-1 {
  --gridGap: 0.375rem;
  grid-gap: 0.375rem;
  gap: 0.375rem; }

.gap-2 {
  --gridGap: 0.75rem;
  grid-gap: 0.75rem;
  gap: 0.75rem; }

.gap-3 {
  --gridGap: 1.5rem;
  grid-gap: 1.5rem;
  gap: 1.5rem; }

.gap-4 {
  --gridGap: 3rem;
  grid-gap: 3rem;
  gap: 3rem; }

.grid {
  display: grid; }

.grid-dense {
  grid-auto-flow: dense; }

.place-center {
  place-items: center; }

.place-stretch {
  place-items: stretch; }

.place-right {
  justify-items: right; }

.place-left {
  justify-items: left; }

.place-start {
  justify-items: start; }

.place-end {
  justify-items: end; }

.place-center-x {
  justify-items: center; }

.place-stretch-x {
  justify-items: stretch; }

.place-top {
  align-items: start; }

.place-bottom {
  align-items: end; }

.place-center-y {
  align-items: center; }

.place-center {
  align-items: center; }

.place-stretch-y {
  align-items: stretch; }

.place-stretch {
  align-items: stretch; }

.grid-center {
  place-content: center; }

.grid-stretch {
  place-content: stretch; }

.grid-around {
  place-content: space-around; }

.grid-between {
  place-content: space-between; }

.grid-evenly {
  place-content: space-evenly; }

.grid-right {
  justify-content: right; }

.grid-left {
  justify-content: left; }

.grid-start {
  justify-content: start; }

.grid-end {
  justify-content: end; }

.grid-center-x {
  justify-content: center; }

.grid-stretch-x {
  justify-content: stretch; }

.grid-around-x {
  justify-content: space-around; }

.grid-between-x {
  justify-content: space-between; }

.grid-evenly-x {
  justify-content: space-evenly; }

.grid-top {
  align-content: start; }

.grid-bottom {
  align-content: end; }

.grid-center-y {
  align-content: center; }

.grid-stretch-y {
  align-content: stretch; }

.grid-around-y {
  align-content: space-around; }

.grid-between-y {
  align-content: space-between; }

.grid-evenly-y {
  align-content: space-evenly; }

.cell-center {
  place-self: center; }

.cell-stretch {
  place-self: stretch; }

.cell-right {
  justify-self: right; }

.cell-left {
  justify-self: left; }

.cell-start {
  justify-self: start; }

.cell-end {
  justify-self: end; }

.cell-center-x {
  justify-self: center; }

.cell-stretch-x {
  justify-self: stretch; }

.cell-top {
  align-self: start; }

.cell-bottom {
  align-self: end; }

.cell-center-y {
  align-self: center; }

.cell-stretch-y {
  align-self: stretch; }

.at-col-1 {
  grid-column-start: 1; }

.at-col-2 {
  grid-column-start: 2; }

.at-col-3 {
  grid-column-start: 3; }

.at-col-4 {
  grid-column-start: 4; }

.at-col-5 {
  grid-column-start: 5; }

.at-col-6 {
  grid-column-start: 6; }

.at-col-8 {
  grid-column-start: 8; }

.at-col-9 {
  grid-column-start: 9; }

.at-col-10 {
  grid-column-start: 10; }

.at-col-12 {
  grid-column-start: 12; }

.at-col-15 {
  grid-column-start: 15; }

.at-row-1 {
  grid-row-start: 1; }

.at-row-2 {
  grid-row-start: 2; }

.at-row-3 {
  grid-row-start: 3; }

.at-row-4 {
  grid-row-start: 4; }

.at-row-5 {
  grid-row-start: 5; }

.at-row-6 {
  grid-row-start: 6; }

.at-row-8 {
  grid-row-start: 8; }

.at-row-9 {
  grid-row-start: 9; }

.at-row-10 {
  grid-row-start: 10; }

.at-row-12 {
  grid-row-start: 12; }

.at-row-15 {
  grid-row-start: 15; }

.col-span1 {
  grid-column: auto/span 1; }

.col-span2 {
  grid-column: auto/span 2; }

.col-span3 {
  grid-column: auto/span 3; }

.col-span4 {
  grid-column: auto/span 4; }

.col-span5 {
  grid-column: auto/span 5; }

.col-span6 {
  grid-column: auto/span 6; }

.col-span7 {
  grid-column: auto/span 7; }

.col-span8 {
  grid-column: auto/span 8; }

.col-span9 {
  grid-column: auto/span 9; }

.col-span10 {
  grid-column: auto/span 10; }

.col-span11 {
  grid-column: auto/span 11; }

.col-span12 {
  grid-column: auto/span 12; }

.col-span13 {
  grid-column: auto/span 13; }

.col-span14 {
  grid-column: auto/span 14; }

.col-span15 {
  grid-column: auto/span 15; }

.row-span1 {
  grid-row: auto/span 1; }

.row-span2 {
  grid-row: auto/span 2; }

.row-span3 {
  grid-row: auto/span 3; }

.row-span4 {
  grid-row: auto/span 4; }

.row-span5 {
  grid-row: auto/span 5; }

.row-span6 {
  grid-row: auto/span 6; }

.row-span7 {
  grid-row: auto/span 7; }

.row-span8 {
  grid-row: auto/span 8; }

.row-span9 {
  grid-row: auto/span 9; }

.row-span10 {
  grid-row: auto/span 10; }

.row-span11 {
  grid-row: auto/span 11; }

.row-span12 {
  grid-row: auto/span 12; }

.row-span13 {
  grid-row: auto/span 13; }

.row-span14 {
  grid-row: auto/span 14; }

.row-span15 {
  grid-row: auto/span 15; }

.hard-grid {
  display: grid; }

.hard-grid-1 {
  --grid-gap: 0;
  --grid-size: 1;
  display: grid;
  grid-template-columns: repeat(1, calc(100% - 0 * var(--grid-gap))); }

.hard-grid-2 {
  --grid-gap: 0;
  --grid-size: 2;
  display: grid;
  grid-template-columns: repeat(2, calc(50% - 0.5 * var(--grid-gap))); }

.hard-grid-3 {
  --grid-gap: 0;
  --grid-size: 3;
  display: grid;
  grid-template-columns: repeat(3, calc(33.33333% - 0.66667 * var(--grid-gap))); }

.hard-grid-4 {
  --grid-gap: 0;
  --grid-size: 4;
  display: grid;
  grid-template-columns: repeat(4, calc(25% - 0.75 * var(--grid-gap))); }

.hard-grid-5 {
  --grid-gap: 0;
  --grid-size: 5;
  display: grid;
  grid-template-columns: repeat(5, calc(20% - 0.8 * var(--grid-gap))); }

.hard-grid-6 {
  --grid-gap: 0;
  --grid-size: 6;
  display: grid;
  grid-template-columns: repeat(6, calc(16.66667% - 0.83333 * var(--grid-gap))); }

.hard-grid-8 {
  --grid-gap: 0;
  --grid-size: 8;
  display: grid;
  grid-template-columns: repeat(8, calc(12.5% - 0.875 * var(--grid-gap))); }

.hard-grid-9 {
  --grid-gap: 0;
  --grid-size: 9;
  display: grid;
  grid-template-columns: repeat(9, calc(11.11111% - 0.88889 * var(--grid-gap))); }

.hard-grid-10 {
  --grid-gap: 0;
  --grid-size: 10;
  display: grid;
  grid-template-columns: repeat(10, calc(10% - 0.9 * var(--grid-gap))); }

.hard-grid-12 {
  --grid-gap: 0;
  --grid-size: 12;
  display: grid;
  grid-template-columns: repeat(12, calc(8.33333% - 0.91667 * var(--grid-gap))); }

.hard-grid-15 {
  --grid-gap: 0;
  --grid-size: 15;
  display: grid;
  grid-template-columns: repeat(15, calc(6.66667% - 0.93333 * var(--grid-gap))); }

.hard-rows-1 {
  --grid-gap: 0;
  --grid-size: 1;
  display: grid;
  grid-template-rows: repeat(1, calc(100% - 0 * var(--grid-gap))); }

.hard-rows-2 {
  --grid-gap: 0;
  --grid-size: 2;
  display: grid;
  grid-template-rows: repeat(2, calc(50% - 0.5 * var(--grid-gap))); }

.hard-rows-3 {
  --grid-gap: 0;
  --grid-size: 3;
  display: grid;
  grid-template-rows: repeat(3, calc(33.33333% - 0.66667 * var(--grid-gap))); }

.hard-rows-4 {
  --grid-gap: 0;
  --grid-size: 4;
  display: grid;
  grid-template-rows: repeat(4, calc(25% - 0.75 * var(--grid-gap))); }

.hard-rows-5 {
  --grid-gap: 0;
  --grid-size: 5;
  display: grid;
  grid-template-rows: repeat(5, calc(20% - 0.8 * var(--grid-gap))); }

.hard-rows-6 {
  --grid-gap: 0;
  --grid-size: 6;
  display: grid;
  grid-template-rows: repeat(6, calc(16.66667% - 0.83333 * var(--grid-gap))); }

.hard-rows-8 {
  --grid-gap: 0;
  --grid-size: 8;
  display: grid;
  grid-template-rows: repeat(8, calc(12.5% - 0.875 * var(--grid-gap))); }

.hard-rows-9 {
  --grid-gap: 0;
  --grid-size: 9;
  display: grid;
  grid-template-rows: repeat(9, calc(11.11111% - 0.88889 * var(--grid-gap))); }

.hard-rows-10 {
  --grid-gap: 0;
  --grid-size: 10;
  display: grid;
  grid-template-rows: repeat(10, calc(10% - 0.9 * var(--grid-gap))); }

.hard-rows-12 {
  --grid-gap: 0;
  --grid-size: 12;
  display: grid;
  grid-template-rows: repeat(12, calc(8.33333% - 0.91667 * var(--grid-gap))); }

.hard-rows-15 {
  --grid-gap: 0;
  --grid-size: 15;
  display: grid;
  grid-template-rows: repeat(15, calc(6.66667% - 0.93333 * var(--grid-gap))); }

.grow-0 {
  transform: scale(1, 1); }

.grow-1 {
  transform: scale(1.05, 1.05); }

.grow-2 {
  transform: scale(1.1, 1.1); }

.grow-3 {
  transform: scale(1.25, 1.25); }

.grow-4 {
  transform: scale(1.5, 1.5); }

.grow-5 {
  transform: scale(2, 2); }

.grow-6 {
  transform: scale(3, 3); }

.shrink-0 {
  transform: scale(1, 1); }

.shrink-1 {
  transform: scale(0.95238, 0.95238); }

.shrink-2 {
  transform: scale(0.90909, 0.90909); }

.shrink-3 {
  transform: scale(0.8, 0.8); }

.shrink-4 {
  transform: scale(0.66667, 0.66667); }

.shrink-5 {
  transform: scale(0.5, 0.5); }

.shrink-6 {
  transform: scale(0.33333, 0.33333); }

.rotate-30 {
  transform: rotate(30deg); }

.rotate-45 {
  transform: rotate(45deg); }

.rotate-60 {
  transform: rotate(60deg); }

.rotate-90 {
  transform: rotate(90deg); }

.rotate-n30 {
  transform: rotate(-30deg); }

.rotate-n45 {
  transform: rotate(-45deg); }

.rotate-n60 {
  transform: rotate(-60deg); }

.rotate-n90 {
  transform: rotate(-90deg); }

.rotate-180 {
  transform: rotate(180deg); }

.grayscale-0 {
  filter: grayscale(0%); }

.grayscale-1 {
  filter: grayscale(5%); }

.grayscale-2 {
  filter: grayscale(10%); }

.grayscale-3 {
  filter: grayscale(25%); }

.grayscale-4 {
  filter: grayscale(50%); }

.grayscale-5 {
  filter: grayscale(75%); }

.grayscale-6 {
  filter: grayscale(90%); }

.grayscale-7 {
  filter: grayscale(95%); }

.grayscale-8 {
  filter: grayscale(100%); }

.sepia-0 {
  filter: sepia(0%); }

.sepia-1 {
  filter: sepia(5%); }

.sepia-2 {
  filter: sepia(10%); }

.sepia-3 {
  filter: sepia(25%); }

.sepia-4 {
  filter: sepia(50%); }

.sepia-5 {
  filter: sepia(75%); }

.sepia-6 {
  filter: sepia(90%); }

.sepia-7 {
  filter: sepia(95%); }

.sepia-8 {
  filter: sepia(100%); }

.invert-0 {
  filter: invert(0%); }

.invert-1 {
  filter: invert(5%); }

.invert-2 {
  filter: invert(10%); }

.invert-3 {
  filter: invert(25%); }

.invert-4 {
  filter: invert(50%); }

.invert-5 {
  filter: invert(75%); }

.invert-6 {
  filter: invert(90%); }

.invert-7 {
  filter: invert(95%); }

.invert-8 {
  filter: invert(100%); }

.contrast-n0 {
  filter: contrast(100%); }

.contrast-n1 {
  filter: contrast(95%); }

.contrast-n2 {
  filter: contrast(90%); }

.contrast-n3 {
  filter: contrast(75%); }

.contrast-n4 {
  filter: contrast(50%); }

.contrast-n5 {
  filter: contrast(25%); }

.contrast-n6 {
  filter: contrast(10%); }

.contrast-n7 {
  filter: contrast(5%); }

.contrast-n8 {
  filter: contrast(0%); }

.contrast-0 {
  filter: contrast(100%); }

.contrast-1 {
  filter: contrast(105%); }

.contrast-2 {
  filter: contrast(110%); }

.contrast-3 {
  filter: contrast(125%); }

.contrast-4 {
  filter: contrast(150%); }

.contrast-5 {
  filter: contrast(175%); }

.contrast-6 {
  filter: contrast(190%); }

.contrast-7 {
  filter: contrast(195%); }

.contrast-8 {
  filter: contrast(200%); }

.brightness-n0 {
  filter: brightness(100%); }

.brightness-n1 {
  filter: brightness(95%); }

.brightness-n2 {
  filter: brightness(90%); }

.brightness-n3 {
  filter: brightness(75%); }

.brightness-n4 {
  filter: brightness(50%); }

.brightness-n5 {
  filter: brightness(25%); }

.brightness-n6 {
  filter: brightness(10%); }

.brightness-n7 {
  filter: brightness(5%); }

.brightness-n8 {
  filter: brightness(0%); }

.brightness-0 {
  filter: brightness(100%); }

.brightness-1 {
  filter: brightness(105%); }

.brightness-2 {
  filter: brightness(110%); }

.brightness-3 {
  filter: brightness(125%); }

.brightness-4 {
  filter: brightness(150%); }

.brightness-5 {
  filter: brightness(175%); }

.brightness-6 {
  filter: brightness(190%); }

.brightness-7 {
  filter: brightness(195%); }

.brightness-8 {
  filter: brightness(200%); }

.saturation-n0 {
  filter: saturate(100%); }

.saturation-n1 {
  filter: saturate(95%); }

.saturation-n2 {
  filter: saturate(90%); }

.saturation-n3 {
  filter: saturate(75%); }

.saturation-n4 {
  filter: saturate(50%); }

.saturation-n5 {
  filter: saturate(25%); }

.saturation-n6 {
  filter: saturate(10%); }

.saturation-n7 {
  filter: saturate(5%); }

.saturation-n8 {
  filter: saturate(0%); }

.saturation-0 {
  filter: saturate(100%); }

.saturation-1 {
  filter: saturate(105%); }

.saturation-2 {
  filter: saturate(110%); }

.saturation-3 {
  filter: saturate(125%); }

.saturation-4 {
  filter: saturate(150%); }

.saturation-5 {
  filter: saturate(175%); }

.saturation-6 {
  filter: saturate(190%); }

.saturation-7 {
  filter: saturate(195%); }

.saturation-8 {
  filter: saturate(200%); }

.transform-center {
  transform-origin: center center 0; }

.transform-top {
  transform-origin: center top 0; }

.transform-bottom {
  transform-origin: center bottom 0; }

.transform-left {
  transform-origin: left center 0; }

.transform-right {
  transform-origin: right center 0; }

.transform-ne {
  transform-origin: right top 0; }

.transform-nw {
  transform-origin: left top 0; }

.transform-se {
  transform-origin: right bottom 0; }

.transform-sw {
  transform-origin: left bottom 0; }

.visible {
  visibility: visible; }

.invisible {
  visibility: hidden; }

.opacity-0 {
  opacity: 0; }

.opacity-1 {
  opacity: 0.05; }

.opacity-2 {
  opacity: 0.1; }

.opacity-3 {
  opacity: 0.25; }

.opacity-4 {
  opacity: 0.5; }

.opacity-5 {
  opacity: 0.75; }

.opacity-6 {
  opacity: 0.9; }

.opacity-7 {
  opacity: 0.95; }

.opacity-full {
  opacity: 1; }

.z-0 {
  z-index: 0; }

.z-1 {
  z-index: 100; }

.z-2 {
  z-index: 200; }

.z-3 {
  z-index: 300; }

.z-4 {
  z-index: 400; }

.z-5 {
  z-index: 500; }

.z-6 {
  z-index: 600; }

.z-7 {
  z-index: 700; }

.z-8 {
  z-index: 800; }

.z-9 {
  z-index: 900; }

.z-10 {
  z-index: 1000; }

.hidden {
  display: none; }

[hidden] {
  display: none; }

.clearfix:after {
  clear: both;
  content: " ";
  display: table; }

.bg-fixed {
  background-attachment: fixed; }

.bg-local {
  background-attachment: local; }

.bg-scroll {
  background-attachment: scroll; }

.bg-left {
  background-position-x: left; }

.bg-right {
  background-position-x: right; }

.bg-center-x {
  background-position-x: center; }

.bg-bottom {
  background-position-y: bottom; }

.bg-top {
  background-position-y: top; }

.bg-center-y {
  background-position-y: center; }

.bg-repeat {
  background-repeat: repeat; }

.bg-no-repeat {
  background-repeat: no-repeat; }

.bg-repeat-x {
  background-repeat: repeat-x; }

.bg-repeat-y {
  background-repeat: repeat-y; }

.bg-auto {
  background-size: auto; }

.bg-cover {
  background-size: cover; }

.bg-contain {
  background-size: contain; }

.color-primary {
  color: white;
  background-color: #042A46; }

.color-secondary {
  color: #112b48;
  background-color: #FF3E72; }

.color-action {
  color: white;
  background-color: #30BFD3; }

.color-positive {
  color: #053045;
  background-color: #16ab39; }

.color-negative {
  color: #fdf2f4;
  background-color: #de011e; }

.color-warning {
  color: #103143;
  background-color: #fbbd08; }

.color-white {
  color: #11354f;
  background-color: white; }

.color-black {
  color: white;
  background-color: #042A46; }

.color-brand {
  color: white;
  background-color: #30BFD3; }

.color-brand-lighter {
  color: #0e344f;
  background-color: #C4F2F4; }

.color-brand-light {
  color: #0c334e;
  background-color: #9FE5EA; }

.color-brand-dark {
  color: #06314d;
  background-color: #218ea4; }

.color-brand-darker {
  color: #f5fcfd;
  background-color: #0f4f69; }

.color-accent {
  color: #112b48;
  background-color: #FF3E72; }

.color-accent-lighter {
  color: #10334e;
  background-color: #fee3eb; }

.color-accent-light {
  color: #102c49;
  background-color: #f65a84; }

.color-accent-dark {
  color: #fff5f8;
  background-color: #ac3763; }

.color-accent-darker {
  color: #fff5f8;
  background-color: #432f51; }

.bg-primary {
  background-color: #042A46; }

.bg-secondary {
  background-color: #FF3E72; }

.bg-action {
  background-color: #30BFD3; }

.bg-positive {
  background-color: #16ab39; }

.bg-negative {
  background-color: #de011e; }

.bg-warning {
  background-color: #fbbd08; }

.bg-white {
  background-color: white; }

.bg-black {
  background-color: #042A46; }

.bg-brand {
  background-color: #30BFD3; }

.bg-brand-lighter {
  background-color: #C4F2F4; }

.bg-brand-light {
  background-color: #9FE5EA; }

.bg-brand-dark {
  background-color: #218ea4; }

.bg-brand-darker {
  background-color: #0f4f69; }

.bg-accent {
  background-color: #FF3E72; }

.bg-accent-lighter {
  background-color: #fee3eb; }

.bg-accent-light {
  background-color: #f65a84; }

.bg-accent-dark {
  background-color: #ac3763; }

.bg-accent-darker {
  background-color: #432f51; }

.text-primary {
  color: #042A46; }

.text-secondary {
  color: #FF3E72; }

.text-action {
  color: #30BFD3; }

.text-positive {
  color: #16ab39; }

.text-negative {
  color: #de011e; }

.text-warning {
  color: #fbbd08; }

.text-white {
  color: white; }

.text-black {
  color: #042A46; }

.text-brand {
  color: #30BFD3; }

.text-brand-lighter {
  color: #C4F2F4; }

.text-brand-light {
  color: #9FE5EA; }

.text-brand-dark {
  color: #218ea4; }

.text-brand-darker {
  color: #0f4f69; }

.text-accent {
  color: #FF3E72; }

.text-accent-lighter {
  color: #fee3eb; }

.text-accent-light {
  color: #f65a84; }

.text-accent-dark {
  color: #ac3763; }

.text-accent-darker {
  color: #432f51; }

.cursor-auto {
  cursor: auto; }

.cursor-default {
  cursor: default; }

.cursor-pointer {
  cursor: pointer; }

.cursor-wait {
  cursor: wait; }

.cursor-move {
  cursor: move; }

.cursor-not-allowed {
  cursor: not-allowed; }

.pointer-events {
  pointer-events: auto; }

.no-pointer-events {
  pointer-events: none; }

.select {
  user-select: text; }

.no-select {
  user-select: none; }

.list-decimal {
  list-style: decimal; }

.list-circluze {
  list-style: circluze; }

.list-disc {
  list-style: disc; }

.list-square {
  list-style: square; }

.list-roman {
  list-style: roman; }

.shadow-1 {
  box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.25), 0 2px 8px -2px rgba(0, 0, 0, 0.15); }

.shadow-2 {
  box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.12), 0 2px 4px 0 rgba(0, 0, 0, 0.08); }

.shadow-3 {
  box-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0.11), 0 4px 8px 0 rgba(0, 0, 0, 0.08); }

.shadow-4 {
  box-shadow: 0 15px 30px 0 rgba(0, 0, 0, 0.11), 0 5px 15px 0 rgba(0, 0, 0, 0.08); }

.inner-shadow {
  box-shadow: inset 0 2px 4px 0 rgba(0, 0, 0, 0.06); }

.no-shadow {
  box-shadow: none; }

.lds-ring {
  display: inline-block;
  position: relative;
  width: 80px;
  height: 80px; }

.lds-ring div {
  box-sizing: border-box;
  display: block;
  position: absolute;
  width: 64px;
  height: 64px;
  margin: 8px;
  border: 8px solid #fff;
  border-radius: 50%;
  animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
  border-color: #30BFD3 transparent transparent transparent; }

.lds-ring div:nth-child(1) {
  animation-delay: -0.45s; }

.lds-ring div:nth-child(2) {
  animation-delay: -0.3s; }

.lds-ring div:nth-child(3) {
  animation-delay: -0.15s; }

@keyframes lds-ring {
  0% {
    transform: rotate(0deg); }
  100% {
    transform: rotate(360deg); } }

h4 {
  color: #052b47; }

.flex h4 {
  margin-top: 1.75rem; }

.steps {
  display: flex;
  gap: 2rem; }

.step {
  font-size: 1rem;
  display: flex;
  gap: .5rem;
  align-items: center; }
  .step__indicator {
    position: relative; }
  .step__circle {
    display: flex;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border: 1px solid #777777;
    border-radius: 3.125rem;
    align-items: center; }
  .step__circle--active {
    border-color: #FF3E72;
    font-weight: 700; }
  .step__text {
    padding: .2rem 0 0 0;
    font-size: 1.25rem;
    font-weight: 700;
    color: #777777; }
    .step__text p {
      font-weight: 400;
      margin: unset;
      font-size: .875rem; }
    .step__text--accent {
      color: #FF3E72; }

section {
  grid-column: 2;
  grid-row: 1; }
  section h1 {
    margin: unset !important; }
  section h2 {
    color: #042A46; }
  section form {
    margin-bottom: 1.5rem; }
    section form #comments {
      margin: 0 0 19.5rem 0; }

.section--full-width {
  grid-column: 1 / 4;
  grid-row: 2;
  box-sizing: content-box; }

.section--blue-bg {
  background-color: #D3FAFF; }

.section--fixed {
  position: fixed;
  bottom: 0;
  width: 100vw; }

.select {
  all: unset;
  display: flex;
  gap: 1rem;
  flex-wrap: wrap; }
  .select__comments {
    overflow-y: scroll;
    max-width: 38.3125rem;
    padding-right: 1rem;
    display: block;
    text-align: center; }
  .select--empty {
    font-style: italic;
    color: #FF3E72; }

.participation-level {
  display: flex;
  gap: .875rem; }
  .participation-level input[type=number] {
    border: 1px solid #D1D5DB;
    border-radius: 1.25rem;
    max-width: 4rem !important;
    min-width: unset;
    height: 2.875rem;
    padding: 0.75rem;
    box-sizing: content-box; }
  .participation-level__percentage {
    display: flex;
    align-items: center; }
    .participation-level__percentage div {
      font-weight: bold;
      color: #052b47; }

.select .option {
  border: 2px solid #30BFD3;
  border-radius: 0.3125rem;
  cursor: pointer;
  padding: 0.5rem 1rem;
  font-weight: 700;
  line-height: 1.5rem;
  color: #30BFD3; }

.select .option--selected {
  background-color: #30BFD3;
  color: white; }

.results-grid {
  grid-template-columns: 8% auto 10%;
  grid-template-rows: 2.125rem auto 2.125rem;
  display: grid; }

.results__grid-item {
  grid-column: 2;
  grid-row: 2; }

.results__preview {
  display: flex;
  gap: 1.4rem; }

.results a {
  border-radius: 0.313rem;
  text-transform: capitalize;
  font-size: 1rem;
  padding: 0.625rem;
  height: 2.625rem;
  padding: .2rem .75rem; }

.results__export a {
  font-size: .75rem; }

.contacts {
  overflow: hidden;
  height: 2.625rem;
  max-width: 630px;
  width: 100%;
  background-color: white;
  border-radius: .5rem;
  border: 1px solid #D1D5DB;
  padding: 0.625rem;
  display: grid;
  grid-template-columns: 80% 1fr; }
  .contacts__list {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    height: fit-content; }
  .contacts--expanded {
    height: 30vh;
    overflow-y: scroll; }

.contact {
  background-color: #E5E5E5;
  border-radius: .25rem;
  padding: .125rem .375rem;
  width: 11.25rem;
  overflow: hidden;
  text-overflow: ellipsis;
  height: 1.375rem;
  font-size: .75rem; }

#clusters {
  max-width: 41rem; }

#id_comments,
#id_clusters {
  display: none; }

#expand-contacts {
  color: #FF3E72;
  font-weight: 700; }

/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAiLi4vc2Nzcy9lal9hY3RpdmF0aW9uLmNzcyIsCgkic291cmNlUm9vdCI6ICIvZWotYXBwbGljYXRpb24vc3JjL2VqX2FjdGl2YXRpb24vc3RhdGljL2VqX2FjdGl2YXRpb24vY3NzIiwKCSJzb3VyY2VzIjogWwoJCSIuLi9zY3NzL2VqX2FjdGl2YXRpb24uc2NzcyIsCgkJIi4uLy4uLy4uLy4uL2VqL3N0YXRpYy9lai9zY3NzL19jb25maWcuc2NzcyIsCgkJIi4uLy4uLy4uLy4uL2VqL3N0YXRpYy9lai9ub2RlX21vZHVsZXMvbWVuZGVsZWV2LmNzcy9zcmMvX2ZuLnNjc3MiLAoJCSIuLi8uLi8uLi8uLi9lai9zdGF0aWMvZWovbm9kZV9tb2R1bGVzL21lbmRlbGVldi5jc3Mvc3JjL2ZuLnNhc3MvZm4uc2NzcyIsCgkJIi4uLy4uLy4uLy4uL2VqL3N0YXRpYy9lai9ub2RlX21vZHVsZXMvbWVuZGVsZWV2LmNzcy9zcmMvZm4uc2Fzcy9fZnVuY3Rpb25zLnNjc3MiLAoJCSIuLi8uLi8uLi8uLi9lai9zdGF0aWMvZWovbm9kZV9tb2R1bGVzL21lbmRlbGVldi5jc3Mvc3JjL2ZuLnNhc3MvX2xpc3Quc2NzcyIsCgkJIi4uLy4uLy4uLy4uL2VqL3N0YXRpYy9lai9ub2RlX21vZHVsZXMvbWVuZGVsZWV2LmNzcy9zcmMvZm4uc2Fzcy9fbGlzdC1wZXJmLnNjc3MiLAoJCSIuLi8uLi8uLi8uLi9lai9zdGF0aWMvZWovbm9kZV9tb2R1bGVzL21lbmRlbGVldi5jc3Mvc3JjL2ZuLnNhc3MvX2FycmF5LnNjc3MiLAoJCSIuLi8uLi8uLi8uLi9lai9zdGF0aWMvZWovbm9kZV9tb2R1bGVzL21lbmRlbGVldi5jc3Mvc3JjL2ZuLnNhc3MvX21hcC5zY3NzIiwKCQkiLi4vLi4vLi4vLi4vZWovc3RhdGljL2VqL25vZGVfbW9kdWxlcy9tZW5kZWxlZXYuY3NzL3NyYy9mbi5zYXNzL19zdHJpbmcuc2NzcyIsCgkJIi4uLy4uLy4uLy4uL2VqL3N0YXRpYy9lai9ub2RlX21vZHVsZXMvbWVuZGVsZWV2LmNzcy9zcmMvZm4uc2Fzcy9fbnVtYmVycy5zY3NzIiwKCQkiLi4vLi4vLi4vLi4vZWovc3RhdGljL2VqL25vZGVfbW9kdWxlcy9tZW5kZWxlZXYuY3NzL3NyYy9mbi5zYXNzL19jb2xvci5zY3NzIiwKCQkiLi4vLi4vLi4vLi4vZWovc3RhdGljL2VqL25vZGVfbW9kdWxlcy9tZW5kZWxlZXYuY3NzL3NyYy9mbi5zYXNzL190ZXN0aW5nLnNjc3MiLAoJCSIuLi8uLi8uLi8uLi9lai9zdGF0aWMvZWovbm9kZV9tb2R1bGVzL21lbmRlbGVldi5jc3Mvc3JjL3Byb2ZpbGVzL19kZWZhdWx0LnNjc3MiLAoJCSIuLi8uLi8uLi8uLi9lai9zdGF0aWMvZWovbm9kZV9tb2R1bGVzL21lbmRlbGVldi5jc3Mvc3JjL3Byb2ZpbGVzL19zdGFjay1mb250LnNjc3MiLAoJCSIuLi8uLi8uLi8uLi9lai9zdGF0aWMvZWovbm9kZV9tb2R1bGVzL21lbmRlbGVldi5jc3Mvc3JjL3Byb2ZpbGVzL19zdGFjay1jb2xvci5zY3NzIiwKCQkiLi4vLi4vLi4vLi4vZWovc3RhdGljL2VqL25vZGVfbW9kdWxlcy9tZW5kZWxlZXYuY3NzL3NyYy9wcm9maWxlcy9fYmFzZS5zY3NzIiwKCQkiLi4vLi4vLi4vLi4vZWovc3RhdGljL2VqL25vZGVfbW9kdWxlcy9tZW5kZWxlZXYuY3NzL3NyYy9tZW5kZWxlZXYuc2NzcyIsCgkJIi4uLy4uLy4uLy4uL2VqL3N0YXRpYy9lai9ub2RlX21vZHVsZXMvbWVuZGVsZWV2LmNzcy9zcmMvcHJlbHVkZS5zY3NzIiwKCQkiLi4vLi4vLi4vLi4vZWovc3RhdGljL2VqL25vZGVfbW9kdWxlcy9tZW5kZWxlZXYuY3NzL3NyYy9jb25maWcvX21peGlucy5zY3NzIiwKCQkiLi4vLi4vLi4vLi4vZWovc3RhdGljL2VqL25vZGVfbW9kdWxlcy9tZW5kZWxlZXYuY3NzL3NyYy9jb25maWcvX21vZHVsZXMuc2NzcyIsCgkJIi4uLy4uLy4uLy4uL2VqL3N0YXRpYy9lai9ub2RlX21vZHVsZXMvbWVuZGVsZWV2LmNzcy9zcmMvY29uZmlnL19mdW5jdGlvbnMuc2NzcyIsCgkJIi4uLy4uLy4uLy4uL2VqL3N0YXRpYy9lai9ub2RlX21vZHVsZXMvbWVuZGVsZWV2LmNzcy9zcmMvY29uc3RhbnRzL19zdGF0aWMuc2NzcyIsCgkJIi4uLy4uLy4uLy4uL2VqL3N0YXRpYy9lai9ub2RlX21vZHVsZXMvbWVuZGVsZWV2LmNzcy9zcmMvY29uc3RhbnRzL192YWx1ZXMuc2NzcyIsCgkJIi4uLy4uLy4uLy4uL2VqL3N0YXRpYy9lai9ub2RlX21vZHVsZXMvbWVuZGVsZWV2LmNzcy9zcmMvY29uc3RhbnRzL19ncmlkcy5zY3NzIiwKCQkiLi4vLi4vLi4vLi4vZWovc3RhdGljL2VqL25vZGVfbW9kdWxlcy9tZW5kZWxlZXYuY3NzL3NyYy9jb25zdGFudHMvX2NvbmZpZ3VyYWJsZS5zY3NzIiwKCQkiLi4vLi4vLi4vLi4vZWovc3RhdGljL2VqL25vZGVfbW9kdWxlcy9tZW5kZWxlZXYuY3NzL3NyYy9wcmVsdWRlL19zaXplcy5zY3NzIiwKCQkiLi4vLi4vLi4vLi4vZWovc3RhdGljL2VqL25vZGVfbW9kdWxlcy9tZW5kZWxlZXYuY3NzL3NyYy9wcmVsdWRlL19jb2xvci5zY3NzIiwKCQkiLi4vLi4vLi4vLi4vZWovc3RhdGljL2VqL25vZGVfbW9kdWxlcy9tZW5kZWxlZXYuY3NzL3NyYy9wcmVsdWRlL190eXBvZ3JhcGh5LnNjc3MiLAoJCSIuLi8uLi8uLi8uLi9lai9zdGF0aWMvZWovbm9kZV9tb2R1bGVzL21lbmRlbGVldi5jc3Mvc3JjL3ByZWx1ZGUvX3V0aWxpdGllcy5zY3NzIiwKCQkiLi4vLi4vLi4vLi4vZWovc3RhdGljL2VqL25vZGVfbW9kdWxlcy9tZW5kZWxlZXYuY3NzL3NyYy9yZWdpc3RyeS9fdHlwb2dyYXBoeS5zY3NzIiwKCQkiLi4vLi4vLi4vLi4vZWovc3RhdGljL2VqL25vZGVfbW9kdWxlcy9tZW5kZWxlZXYuY3NzL3NyYy9yZWdpc3RyeS9fc2l6aW5nLnNjc3MiLAoJCSIuLi8uLi8uLi8uLi9lai9zdGF0aWMvZWovbm9kZV9tb2R1bGVzL21lbmRlbGVldi5jc3Mvc3JjL3JlZ2lzdHJ5L19sYXlvdXQuc2NzcyIsCgkJIi4uLy4uLy4uLy4uL2VqL3N0YXRpYy9lai9ub2RlX21vZHVsZXMvbWVuZGVsZWV2LmNzcy9zcmMvcmVnaXN0cnkvX2JvcmRlcnMuc2NzcyIsCgkJIi4uLy4uLy4uLy4uL2VqL3N0YXRpYy9lai9ub2RlX21vZHVsZXMvbWVuZGVsZWV2LmNzcy9zcmMvcmVnaXN0cnkvX2ZsZXguc2NzcyIsCgkJIi4uLy4uLy4uLy4uL2VqL3N0YXRpYy9lai9ub2RlX21vZHVsZXMvbWVuZGVsZWV2LmNzcy9zcmMvcmVnaXN0cnkvX2dyaWQuc2NzcyIsCgkJIi4uLy4uLy4uLy4uL2VqL3N0YXRpYy9lai9ub2RlX21vZHVsZXMvbWVuZGVsZWV2LmNzcy9zcmMvcmVnaXN0cnkvX3RyYW5zZm9ybWF0aW9ucy5zY3NzIiwKCQkiLi4vLi4vLi4vLi4vZWovc3RhdGljL2VqL25vZGVfbW9kdWxlcy9tZW5kZWxlZXYuY3NzL3NyYy9yZWdpc3RyeS9fdmlzaWJpbGl0eS5zY3NzIiwKCQkiLi4vLi4vLi4vLi4vZWovc3RhdGljL2VqL25vZGVfbW9kdWxlcy9tZW5kZWxlZXYuY3NzL3NyYy9yZWdpc3RyeS9fbWlzYy5zY3NzIiwKCQkiLi4vLi4vLi4vLi4vZWovc3RhdGljL2VqL25vZGVfbW9kdWxlcy9tZW5kZWxlZXYuY3NzL3NyYy9wcmVsdWRlL191dGlsaXRpZXMtY2FjaGUuc2NzcyIsCgkJIi4uLy4uLy4uLy4uL2VqL3N0YXRpYy9lai9ub2RlX21vZHVsZXMvbWVuZGVsZWV2LmNzcy9zcmMvZWxlbWVudHMuc2NzcyIsCgkJIi4uLy4uLy4uLy4uL2VqL3N0YXRpYy9lai9ub2RlX21vZHVsZXMvbWVuZGVsZWV2LmNzcy9zcmMvZWxlbWVudHMvX2Jhc2Uuc2NzcyIsCgkJIi4uLy4uLy4uLy4uL2VqL3N0YXRpYy9lai9ub2RlX21vZHVsZXMvbWVuZGVsZWV2LmNzcy9zcmMvZWxlbWVudHMvX3R5cG9ncmFwaHkuc2NzcyIsCgkJIi4uLy4uLy4uLy4uL2VqL3N0YXRpYy9lai9ub2RlX21vZHVsZXMvbWVuZGVsZWV2LmNzcy9zcmMvZWxlbWVudHMvX2J1dHRvbi5zY3NzIiwKCQkiLi4vLi4vLi4vLi4vZWovc3RhdGljL2VqL25vZGVfbW9kdWxlcy9tZW5kZWxlZXYuY3NzL3NyYy9lbGVtZW50cy9fZm9ybS5zY3NzIiwKCQkiLi4vLi4vLi4vLi4vZWovc3RhdGljL2VqL25vZGVfbW9kdWxlcy9tZW5kZWxlZXYuY3NzL3NyYy91dGlsaXRpZXMuc2NzcyIsCgkJIi4uLy4uLy4uLy4uL2VqL3N0YXRpYy9lai9zY3NzL2NvbXBvbmVudHMvX2xvYWRpbmcuc2NzcyIKCV0sCgkic291cmNlc0NvbnRlbnQiOiBbCgkJIkBpbXBvcnQgXCIuLi8uLi8uLi8uLi9lai9zdGF0aWMvZWovc2Nzcy9fY29uZmlnLnNjc3NcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi8uLi9lai9zdGF0aWMvZWovc2Nzcy9jb21wb25lbnRzL19sb2FkaW5nLnNjc3NcIjtcblxuJGNvbG9yLWJyYW5kLWxpZ2h0OiAjRDNGQUZGO1xuXG5oNCB7XG4gICAgY29sb3I6ICRjb2xvci10aGVtZS1kYXJrLWJsdWU7XG59XG4uZmxleCBoNCB7XG4gICAgbWFyZ2luLXRvcDogMS43NXJlbTtcbn1cblxuLnN0ZXBzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogMnJlbTtcbn1cbi5zdGVwIHtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IC41cmVtO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAmX19pbmRpY2F0b3Ige1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuICAgICZfX2NpcmNsZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItdGhlbWUtcmVwb3J0LWRhcmstZ3JheTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMy4xMjVyZW07XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuICAgICZfX2NpcmNsZS0tYWN0aXZlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3ItYWNjZW50O1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgIH1cbiAgICAmX190ZXh0IHtcbiAgICAgICAgcGFkZGluZzogLjJyZW0gMCAwIDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgY29sb3I6ICRjb2xvci10aGVtZS1yZXBvcnQtZGFyay1ncmF5O1xuICAgICAgICBwIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICBtYXJnaW46IHVuc2V0O1xuICAgICAgICAgICAgZm9udC1zaXplOiAuODc1cmVtO1xuICAgICAgICB9XG4gICAgICAgICYtLWFjY2VudCB7XG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yLWFjY2VudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuc2VjdGlvbiB7XG4gICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgZ3JpZC1yb3c6IDE7XG4gICAgaDEge1xuICAgICAgICBtYXJnaW46IHVuc2V0ICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIGgyIHtcbiAgICAgICAgY29sb3I6ICRjb2xvci1ibGFjaztcbiAgICB9XG4gICAgZm9ybSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcblxuICAgICAgICAjY29tbWVudHMge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgMTkuNXJlbSAwO1xuICAgICAgICB9XG4gICAgfVxufVxuLnNlY3Rpb24ge1xuICAgICYtLWZ1bGwtd2lkdGgge1xuICAgICAgICBncmlkLWNvbHVtbjogMSAvIDQ7XG4gICAgICAgIGdyaWQtcm93OiAyO1xuICAgICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICB9XG4gICAgJi0tYmx1ZS1iZyB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1icmFuZC1saWdodDtcbiAgICB9XG4gICAgJi0tZml4ZWQge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgd2lkdGg6IDEwMHZ3O1xuICAgIH1cbn1cblxuLnNlbGVjdCB7XG4gICAgYWxsOiB1bnNldDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogMXJlbTtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAmX19jb21tZW50cyB7XG4gICAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICAgICAgbWF4LXdpZHRoOiAzOC4zMTI1cmVtO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbiAgICAmLS1lbXB0eSB7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgY29sb3I6ICRjb2xvci1hY2NlbnQ7XG4gICAgfVxufVxuXG4ucGFydGljaXBhdGlvbi1sZXZlbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IC44NzVyZW07XG4gICAgaW5wdXRbdHlwZT1udW1iZXJdIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWdyYXktMzAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxLjI1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDRyZW0gIWltcG9ydGFudDtcbiAgICAgICAgbWluLXdpZHRoOiB1bnNldDtcbiAgICAgICAgaGVpZ2h0OiAyLjg3NXJlbTtcbiAgICAgICAgcGFkZGluZzogMC43NXJlbTtcbiAgICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgfVxuICAgICZfX3BlcmNlbnRhZ2Uge1xuICAgICAgICBkaXNwbGF5OmZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGRpdiB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3ItdGhlbWUtZGFyay1ibHVlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uc2VsZWN0IC5vcHRpb24ge1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICRjb2xvci1icmFuZDtcbiAgICBib3JkZXItcmFkaXVzOiAwLjMxMjVyZW07XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuNXJlbTtcbiAgICBjb2xvcjogJGNvbG9yLWJyYW5kO1xufVxuLnNlbGVjdCAub3B0aW9uLS1zZWxlY3RlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWJyYW5kO1xuICAgIGNvbG9yOiAkY29sb3Itd2hpdGU7XG59XG5cbi5yZXN1bHRzIHtcbiAgICAmLWdyaWQge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDglIGF1dG8gMTAlO1xuICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDIuMTI1cmVtIGF1dG8gMi4xMjVyZW07XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgfVxuICAgICZfX2dyaWQtaXRlbSB7XG4gICAgICAgIGdyaWQtY29sdW1uOiAyO1xuICAgICAgICBncmlkLXJvdzogMjtcbiAgICB9XG4gICAgJl9fcHJldmlldyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGdhcDogMS40cmVtO1xuICAgIH1cbiAgICBhIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC4zMTNyZW07XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuNjI1cmVtO1xuICAgICAgICBoZWlnaHQ6IDIuNjI1cmVtO1xuICAgICAgICBwYWRkaW5nOiAuMnJlbSAuNzVyZW07XG4gICAgfVxuICAgICZfX2V4cG9ydCBhIHtcbiAgICAgICAgZm9udC1zaXplOiAuNzVyZW07XG4gICAgfVxufVxuXG5cbi5jb250YWN0cyB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBoZWlnaHQ6IDIuNjI1cmVtO1xuICAgIG1heC13aWR0aDogNjMwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXdoaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IC41cmVtO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1ncmF5LTMwMDtcbiAgICBwYWRkaW5nOiAwLjYyNXJlbTtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogODAlIDFmcjtcbiAgICAmX19saXN0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBnYXA6IC41cmVtO1xuICAgICAgICBoZWlnaHQ6IGZpdC1jb250ZW50O1xuICAgIH1cbiAgICAmLS1leHBhbmRlZCB7XG4gICAgICAgIGhlaWdodDogMzB2aDtcbiAgICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICAgIH1cbn1cbi5jb250YWN0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItdGhlbWUtcmVwb3J0LWxpZ2h0LWdyYXk7XG4gICAgYm9yZGVyLXJhZGl1czogLjI1cmVtO1xuICAgIHBhZGRpbmc6IC4xMjVyZW0gLjM3NXJlbTtcbiAgICB3aWR0aDogMTEuMjVyZW07XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICBoZWlnaHQ6IDEuMzc1cmVtO1xuICAgIGZvbnQtc2l6ZTogLjc1cmVtO1xufVxuXG5cbiNjbHVzdGVycyB7XG4gICAgbWF4LXdpZHRoOiA0MXJlbTtcbn1cbiNpZF9jb21tZW50cyxcbiNpZF9jbHVzdGVycyB7XG4gICAgZGlzcGxheTogbm9uZVxufVxuI2V4cGFuZC1jb250YWN0cyB7XG4gICAgY29sb3I6ICRjb2xvci1hY2NlbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cbiIsCgkJIi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBDT0xPUlMgUk9MRVNcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AaW1wb3J0ICcuLi9ub2RlX21vZHVsZXMvbWVuZGVsZWV2LmNzcy9zcmMvZm4nO1xuXG4vLyBCcmFuZCBjb2xvcnM6IHRoZXkgYXJlIHVzZWQgb24gdGhlIGxvZ28gYW5kIG9uIHRoZSBtYWluIGVsZW1lbnRzIG9uIHRoZSBwYWdlLFxuLy8gbGlrZSBidXR0b25zLCBjb252ZXJzYXRpb24gY2FyZHMsIGxpbmtzLCBldGMuXG4kY29sb3ItYnJhbmQ6ICMzMEJGRDMgIWRlZmF1bHQ7XG4kY29sb3ItYWNjZW50OiAjRkYzRTcyICFkZWZhdWx0O1xuXG4vLyBEZXJpdmVkIGJyYW5kIGNvbG9yc1xuJGNvbG9yLWFjY2VudC1saWdodDogc2NhbGUtY29sb3IoJGNvbG9yLWFjY2VudCwgJHNhdHVyYXRpb246IC0xMCUsICRsaWdodG5lc3M6IDEwJSkgIWRlZmF1bHQ7IC8vICNGRjU3ODNcbiRjb2xvci1hY2NlbnQtbGlnaHRlcjogc2NhbGUtY29sb3IoJGNvbG9yLWFjY2VudCwgJGxpZ2h0bmVzczogODUlLCAkc2F0dXJhdGlvbjogLTEwJSkgIWRlZmF1bHQ7IC8vICNGRkUzRUFcbiRjb2xvci1icmFuZC1saWdodDogc2NhbGUtY29sb3IoJGNvbG9yLWJyYW5kLCAkbGlnaHRuZXNzOiA1NSUsICRzYXR1cmF0aW9uOiAyMCUpICFkZWZhdWx0OyAvLyAjOUZFNUVBXG4kY29sb3ItYnJhbmQtbGlnaHRlcjogc2NhbGUtY29sb3IoJGNvbG9yLWJyYW5kLCAkbGlnaHRuZXNzOiA4NSUsICRzYXR1cmF0aW9uOiAxMCUpICFkZWZhdWx0OyAvLyAjRTBGN0Y4XG4kY29sb3ItYnJhbmQtYWx0ZXJuYXRlOiBzY2FsZS1jb2xvcigkY29sb3ItYnJhbmQsICRsaWdodG5lc3M6IDU1JSwgJHNhdHVyYXRpb246IC00NSUpICFkZWZhdWx0OyAvLyNBM0Q4RERcbkBpZiAkY29sb3ItYnJhbmQgPT0gIzMwQkZEMyB7XG4gICAgJGNvbG9yLWJyYW5kLWxpZ2h0OiAjOUZFNUVBO1xuICAgICRjb2xvci1icmFuZC1saWdodGVyOiAjQzRGMkY0O1xuICAgICRjb2xvci1icmFuZC1hbHRlcm5hdGU6ICNBM0Q4REQ7XG59XG5cbi8vIFRleHQgYW5kIGJhY2tncm91bmRcbiRjb2xvci1ibGFjazogIzA0MkE0NiAhZGVmYXVsdDtcbiRjb2xvci1ibGFjay1hbHRlcm5hdGl2ZTogIzAwMDAwMCAhZGVmYXVsdDtcbiRjb2xvci1ibGFjay1hbHRlcm5hdGl2ZS1saWdodDogcmdiYSgwLCAwLCAwLCAwLjgpICFkZWZhdWx0O1xuJGNvbG9yLXdoaXRlOiB3aGl0ZSAhZGVmYXVsdDtcblxuLy8gQ29sb3IgdGhlbWVzXG4kY29sb3ItdGhlbWUtYnJhbmQ6ICRjb2xvci1icmFuZCAhZGVmYXVsdDtcbiRjb2xvci10aGVtZS1icmFuZC1saWdodDogJGNvbG9yLWJyYW5kLWxpZ2h0ZXIgIWRlZmF1bHQ7XG4kY29sb3ItdGhlbWUtYWNjZW50OiAkY29sb3ItYWNjZW50ICFkZWZhdWx0O1xuJGNvbG9yLXRoZW1lLWFjY2VudC1saWdodDogJGNvbG9yLWFjY2VudC1saWdodGVyICFkZWZhdWx0O1xuJGNvbG9yLXRoZW1lLWdyZWVuOiAjMzZDMjczICFkZWZhdWx0O1xuJGNvbG9yLXRoZW1lLWdyZWVuLWxpZ2h0OiAjQjRGREQ0ICFkZWZhdWx0O1xuJGNvbG9yLXRoZW1lLW9yYW5nZTogI0Y2ODEyOCAhZGVmYXVsdDtcbiRjb2xvci10aGVtZS1vcmFuZ2UtbGlnaHQ6ICNGRkUxQ0EgIWRlZmF1bHQ7XG4kY29sb3ItdGhlbWUtcHVycGxlOiAjNzc1OEIzICFkZWZhdWx0O1xuJGNvbG9yLXRoZW1lLXB1cnBsZS1saWdodDogI0U3REJGRiAhZGVmYXVsdDtcbiRjb2xvci10aGVtZS1ncmV5OiAjNzk3OTc5ICFkZWZhdWx0O1xuJGNvbG9yLXRoZW1lLWdyZXktbGlnaHQ6ICNFRUVFRUUgIWRlZmF1bHQ7XG4kY29sb3ItdGhlbWUtZGFyay1ibHVlOiAjMDUyYjQ3ICFkZWZhdWx0O1xuJGNvbG9yLXRoZW1lLXJlZDogI0UyMDAwMCAhZGVmYXVsdDtcblxuLy9PcGluaW9uIGNvbXBvbmVudCBjb2xvcnNcbiRjb2xvci10aGVtZS1ib2NhZGVsb2JvOiAjODNFNzYwICFkZWZhdWx0O1xuJGNvbG9yLXRoZW1lLWJvY2FkZWxvYm8tbGlnaHQ6ICMxNjE2MTYgIWRlZmF1bHQ7XG4kY29sb3ItdGhlbWUtaWNkOiAjMDA1QkFBICFkZWZhdWx0O1xuJGNvbG9yLXRoZW1lLWljZC1saWdodDogI0Y1ODIxRiAhZGVmYXVsdDtcbiRjb2xvci10aGVtZS12b3RvcmFudGltOiAjMDQwODJEICFkZWZhdWx0O1xuJGNvbG9yLXRoZW1lLXZvdG9yYW50aW0tbGlnaHQ6ICNGMTQyMzYgIWRlZmF1bHQ7XG4kY29sb3ItdGhlbWUtb3NmOiAjMUQxMDg4ICFkZWZhdWx0O1xuJGNvbG9yLXRoZW1lLW9zZi1saWdodDogI0Y4MTI3RSAhZGVmYXVsdDtcbiRjb2xvci1saWdodC1ncmF5OiByZ2JhKDAsIDAsIDAsIDAuODApICFkZWZhdWx0O1xuJGNvbG9yLWdyYXktMjAwOiAjRTVFN0VCICFkZWZhdWx0O1xuJGNvbG9yLWdyYXktNTA6ICNGOUZBRkIgIWRlZmF1bHQ7XG4kY29sb3ItZ3JheS01MDA6ICM2QjcyODAgIWRlZmF1bHQ7XG4kY29sb3ItZ3JheS0zMDA6ICNEMUQ1REIgIWRlZmF1bHQ7XG5cbi8vUmVwb3J0IGNvbG9yc1xuJGNvbG9yLXRoZW1lLXJlcG9ydC1saWdodC1ncmF5OiAjRTVFNUU1ICFkZWZhdWx0O1xuJGNvbG9yLXRoZW1lLXJlcG9ydC1ncmF5OiAjYmFiYWJhICFkZWZhdWx0O1xuJGNvbG9yLXRoZW1lLXJlcG9ydC1kYXJrLWdyYXk6ICM3Nzc3NzcgIWRlZmF1bHQ7XG4kY29sb3ItdGhlbWUtcmVwb3J0LWxpZ2h0ZXI6ICNmZWZlZmUgIWRlZmF1bHQ7XG4kY29sb3ItdGhlbWUtcmVwb3J0LWdyYXktYmx1ZTogI0M0RjJGNCAhZGVmYXVsdDtcbiRjb2xvci10aGVtZS1yZXBvcnQtZ3JheS1ibHVlLXRyYW5zcGFyZW50OiAjQzRGMkY0OTkgIWRlZmF1bHQ7XG4kY29sb3ItdGhlbWUtcmVwb3J0LWJsdWU6ICMwNTJCNDcgIWRlZmF1bHQ7XG4kY29sb3ItdGhlbWUtcmVwb3J0LWxpZ2h0LWJsdWU6ICMzMEJGRDMgIWRlZmF1bHQ7XG4kY29sb3ItdGhlbWUtcmVwb3J0LWJsYWNrOiBibGFjayAhZGVmYXVsdDtcbiRjb2xvci10aGVtZS1yZXBvcnQtdHJhbnNwYXJlbnQtYmxhY2s6IHJnYmEoMCwgMCwgMCwgMC4xMikgIWRlZmF1bHQ7XG4kY29sb3ItdGhlbWUtcmVwb3J0LXJlZDogcmVkICFkZWZhdWx0O1xuJGNvbG9yLXRoZW1lLXJlcG9ydC1kYXJrLXJlZDogI0UyMDAwMCAhZGVmYXVsdDtcbiRjb2xvci10aGVtZS1pbmZvLWNhcmQtcmVwb3J0OiAjRkZDRURCICFkZWZhdWx0O1xuJGNvbG9yLXRoZW1lLXJlcG9ydC1waW5rOiAjRkYzRDcyICFkZWZhdWx0O1xuJGNvbG9yLXRoZW1lLXJlcG9ydC1ncmVlbjogIzE4QUUwMCAhZGVmYXVsdDtcbiRjb2xvci1yZXBvcnQtaW5mby1waW5rOiAjZmY1NjgyICFkZWZhdWx0O1xuXG4vL0NsdXN0ZXJzIGNvbG9yc1xuJGNvbG9yLWJyaWdodC1ibHVlOiAjMzBDMUQ0ICFkZWZhdWx0O1xuJGNvbG9yLWNvbXBsZW1lbnRhcnktZ3JheTogIzc3Nzc3NyAhZGVmYXVsdDtcbiRjb2xvci1waW5rLWxpZ2h0OiAjRkYzRDcyICFkZWZhdWx0O1xuJGNvbG9yLWdyYXktYnJpZ3RoZXI6ICNFNUU1RTUgIWRlZmF1bHQ7XG4kY29sb3ItZ3JheS1kZWVwZXI6ICNEOUQ5RDkgIWRlZmF1bHQ7XG4kY29sb3ItcmVkLW5lZ2F0aXZlOiAjQzcwMDAwICFkZWZhdWx0O1xuJGNvbG9yLXRvb2x0aXAtcmVkOiAjRkZDRURCICFkZWZhdWx0O1xuJGNvbG90LWVycm9saXN0LXJlZDogI0ZGMDAwMCAhZGVmYXVsdDtcblxuLy9Qb2xsIGJvdFxuJG1vZGFsLXRyYW5zcGFyZW50LWJhY2tnb3VuZDogcmdiYSgwLCAwLCAwLCAwLjQpO1xuJG1vZGFsLXNoYWRvdzogMCAwIDZweCAxcHggcmdiYSgwLCAwLCAwLCAwLjM1KTtcblxuLy9NYW5hZ2UgU3RlcmVvdHlwZXNcbiRjb2xvci1idXR0b24tZ3JheTogI0JBQkFCQTtcbiRjb2xvci1jYXJkLWdyYXktbGlnaHRlcjogI0U2RUFFRDtcbiRjb2xvci1ncmF5LW1pZGRsZTogIzk3OTc5NztcbiRjb2xvci1ncmF5LWRhcms6ICM2QzZDNkM7XG4kY29sb3ItZ3JheS1kYXJrZXI6ICM3Nzc3Nzc7XG4kY29sb3ItYWdyZWU6IHJnYmEoMjQsIDE3NCwgMCwgMC44KTtcbiRjb2xvci1kaXNhZ3JlZTogI0M3MDAwMDtcbiRjb2xvci1iYXNlLXBpbms6ICNGRjNENzI7XG5cbi8vIEFjdGlvbiBjb2xvcnNcbiRjb2xvci1hY3Rpb246ICRjb2xvci1icmFuZCAhZGVmYXVsdDtcbiRjb2xvci1wcmltYXJ5OiAkY29sb3ItYmxhY2sgIWRlZmF1bHQ7XG4kY29sb3Itc2Vjb25kYXJ5OiAkY29sb3ItYWNjZW50ICFkZWZhdWx0O1xuXG4vLyBOYXZpZ2F0aW9uIGl0ZW1cbiRjb2xvci1uYXZpZ2F0aW9uOiAkY29sb3Itd2hpdGUgIWRlZmF1bHQ7XG4kY29sb3ItbmF2aWdhdGlvbi10ZXh0OiAkY29sb3ItYmxhY2sgIWRlZmF1bHQ7XG4kY29sb3ItbmF2aWdhdGlvbi1oZWFkZXI6ICNDNEM0QzQ7XG4kY29sb3ItbmF2aWdhdGlvbi1oZWFkZXItd2l0aC1vcGFjaXR5OiAjQzRDNEM0ODA7XG4kY29sb3ItbmF2aWdhdGlvbi1oZWFkZXItdGV4dDogIzc3NztcbiRjb2xvci1uYXZpZ2F0aW9uLW1lbnUtYmFja2dyb3VuZDogI0YxRjFGMTtcblxuLy9DYXJkIHNoYWRvd3NcbiRjb2xvci1jYXJkLXNoYWRvdzogcmdiYSgwLCAwLCAwLCAwLjI1KSAhZGVmYXVsdDtcbi8vIE92ZXJyaWRlIGRlZmF1bHQgTWVuZGVsZWV2IGNvbG9yIHBhbGV0dGVcbiRtZW5kZWxlZXYtY29sb3ItcGFsZXR0ZTogKFxuICAgIC8vXG4gICAgLy8gQnJhbmQgY29sb3JzXG4gICAgJ2JyYW5kJzogJGNvbG9yLWJyYW5kLFxuICAgICdhY2NlbnQnOiAkY29sb3ItYWNjZW50LFxuICAgICdicmFuZC1saWdodCc6ICRjb2xvci1icmFuZC1saWdodCxcbiAgICAnYnJhbmQtbGlnaHRlcic6ICRjb2xvci1icmFuZC1saWdodGVyLFxuICAgICdicmFuZC1hbHRlcm5hdGUnOiAkY29sb3ItYnJhbmQtYWx0ZXJuYXRlLFxuICAgICdhY2NlbnQtbGlnaHQnOiAkY29sb3ItYWNjZW50LWxpZ2h0LFxuICAgICdhY2NlbnQtbGlnaHRlcic6ICRjb2xvci1hY2NlbnQtbGlnaHRlcixcbiAgICAvL1xuICAgIC8vIEFjdGlvbiBjb2xvcnNcbiAgICAncHJpbWFyeSc6ICRjb2xvci1wcmltYXJ5LFxuICAgICdzZWNvbmRhcnknOiAkY29sb3Itc2Vjb25kYXJ5LFxuICAgICduYXZpZ2F0aW9uJzogJGNvbG9yLW5hdmlnYXRpb24sXG4gICAgJ25hdmlnYXRpb24tdGV4dCc6ICRjb2xvci1uYXZpZ2F0aW9uLXRleHQsXG4gICAgLy9cbiAgICAvLyBUZXh0XG4gICAgJ2JsYWNrJzogJGNvbG9yLWJsYWNrLFxuICAgICd3aGl0ZSc6ICRjb2xvci13aGl0ZSxcbiAgICAnZGFyayc6ICRjb2xvci1ibGFjayxcbiAgICAnbGlnaHQnOiAkY29sb3Itd2hpdGUsXG4gICAgLy9cbiAgICAvLyBUaGVtZSBjb2xvcnNcbiAgICAndGhlbWUtYnJhbmQnOiAkY29sb3ItdGhlbWUtYnJhbmQsXG4gICAgJ3RoZW1lLWJyYW5kLWxpZ2h0JzogJGNvbG9yLXRoZW1lLWJyYW5kLWxpZ2h0LFxuICAgICd0aGVtZS1hY2NlbnQnOiAkY29sb3ItdGhlbWUtYWNjZW50LFxuICAgICd0aGVtZS1hY2NlbnQtbGlnaHQnOiAkY29sb3ItdGhlbWUtYWNjZW50LWxpZ2h0LFxuICAgICd0aGVtZS1ncmVlbic6ICRjb2xvci10aGVtZS1ncmVlbixcbiAgICAndGhlbWUtZ3JlZW4tbGlnaHQnOiAkY29sb3ItdGhlbWUtZ3JlZW4tbGlnaHQsXG4gICAgJ3RoZW1lLW9yYW5nZSc6ICRjb2xvci10aGVtZS1vcmFuZ2UsXG4gICAgJ3RoZW1lLW9yYW5nZS1saWdodCc6ICRjb2xvci10aGVtZS1vcmFuZ2UtbGlnaHQsXG4gICAgJ3RoZW1lLXB1cnBsZSc6ICRjb2xvci10aGVtZS1wdXJwbGUsXG4gICAgJ3RoZW1lLXB1cnBsZS1saWdodCc6ICRjb2xvci10aGVtZS1wdXJwbGUtbGlnaHQsXG4gICAgJ3RoZW1lLWdyZXknOiAkY29sb3ItdGhlbWUtZ3JleSxcbiAgICAndGhlbWUtZ3JleS1saWdodCc6ICRjb2xvci10aGVtZS1ncmV5LWxpZ2h0LFxuICAgICd0aGVtZS1yZWQnOiAkY29sb3ItdGhlbWUtcmVkLFxuXG4gICAgLy9PcGluaW9uIGNvbXBvbmVudCB0aGVtZXNcbiAgICAndGhlbWUtYm9jYWRlbG9ibyc6ICRjb2xvci10aGVtZS1ib2NhZGVsb2JvLFxuICAgICd0aGVtZS1ib2NhZGVsb2JvLWxpZ2h0JzogJGNvbG9yLXRoZW1lLWJvY2FkZWxvYm8tbGlnaHQsXG4gICAgJ3RoZW1lLWljZCc6ICRjb2xvci10aGVtZS1pY2QsXG4gICAgJ3RoZW1lLWljZC1saWdodCc6ICRjb2xvci10aGVtZS1pY2QtbGlnaHQsXG4gICAgJ3RoZW1lLXZvdG9yYW50aW0nOiAkY29sb3ItdGhlbWUtdm90b3JhbnRpbSxcbiAgICAndGhlbWUtdm90b3JhbnRpbS1saWdodCc6ICRjb2xvci10aGVtZS12b3RvcmFudGltLWxpZ2h0LFxuICAgICd0aGVtZS1vc2YnOiAkY29sb3ItdGhlbWUtb3NmLFxuICAgICd0aGVtZS1vc2YtbGlnaHQnOiAkY29sb3ItdGhlbWUtb3NmLWxpZ2h0LFxuKTtcblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFRZUE9HUkFQSFlcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBpbXBvcnQgJy4uL25vZGVfbW9kdWxlcy9tZW5kZWxlZXYuY3NzL3NyYy9wcm9maWxlcy9kZWZhdWx0JztcblxuLy8gRm9udCByb2xlcyBhbmQgYmFzZSBzdHlsZXNcbiRmb250LXN0YWNrLXBhcmFncmFwaDogXCJXb3JrIFNhbnNcIiAhZGVmYXVsdDtcbiRmb250LXN0YWNrLWhlYWRpbmdzOiBcIldvcmsgU2Fuc1wiICFkZWZhdWx0O1xuXG4vLyBSZXNldCBNZW5kZWxlZXYgdmFyaWFibGVzIGFuZCBzdHlsZXNcbiRtZW5kZWxlZXYtdHlwZWZhY2U6ICRmb250LXN0YWNrLXBhcmFncmFwaDtcbiRtZW5kZWxlZXYtY29sb3ItY29udHJhc3Q6ICgpICFkZWZhdWx0O1xuJG1lbmRlbGVldi1jb2xvci1jb250cmFzdDogbWFwLW1lcmdlKCRtZW5kZWxlZXYtY29sb3ItY29udHJhc3QsIChcbiAgICAjMzBCRkQzOiAkY29sb3Itd2hpdGUsXG4gICAgI0ZGM0Q3MjogJGNvbG9yLXdoaXRlLFxuICAgICMwNDJBNDY6ICRjb2xvci13aGl0ZSxcbikpO1xuXG4vLyBFSiBjb25maWd1cmF0aW9uc1xuJGVqLWhlYWRpbmdzOiAoXG4gICAgZm9udC13ZWlnaHQ6IDQwMCxcbiAgICBmb250LWZhbWlseTogJGZvbnQtc3RhY2staGVhZGluZ3MsXG4pICFkZWZhdWx0O1xuJGVqLWJ1dHRvbi1yYWRpdXM6IDIuMjVyZW0gLyAyICFkZWZhdWx0O1xuXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gTUVOREVMRUVWIENPTkZJR1xuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJG1lbmRlbGVldi1jb25maWc6IG1hcC1tZXJnZS1kZWVwKFxuICAgICAgICAkbWVuZGVsZWV2LWNvbmZpZywgKFxuICAgICAgICAvLyBCcmVha2luZyBwb2ludHNcbiAgICAgICAgJ2JyZWFrcG9pbnRzJzogKFxuICAgICAgICAgICAgJ3NtJzogMzVyZW0sXG4gICAgICAgICksXG4gICAgICAgIC8vIFR5cG9ncmFwaHlcbiAgICAgICAgJ3R5cG9ncmFwaHknOiAoXG4gICAgICAgICAgICAnaGVhZGluZ3MnOiAkZWotaGVhZGluZ3MsXG4gICAgICAgICAgICAnc2Fucy1zZXJpZic6ICRmb250LXN0YWNrLXBhcmFncmFwaCxcbiAgICAgICAgICAgICdzaXplJzogKFxuICAgICAgICAgICAgICAgICdzdGFydCc6IDE2LFxuICAgICAgICAgICAgICAgICdzbSc6IDE2LFxuICAgICAgICAgICAgICAgICdtZCc6IDE3LFxuICAgICAgICAgICAgICAgICdsZyc6IDE4LFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICdzY2FsZSc6IChcbiAgICAgICAgICAgICAgICAnc3RhcnQnOiA5LzgsXG4gICAgICAgICAgICAgICAgJ3NtJzogOS84LFxuICAgICAgICAgICAgICAgICdtZCc6IDgvNyxcbiAgICAgICAgICAgICAgICAnbGcnOiA3LzYsXG4gICAgICAgICAgICApLFxuICAgICAgICApLFxuICAgICAgICAvLyBDb2xvcnNcbiAgICAgICAgJ2NvbG9yJzooXG4gICAgICAgICAgICAncm9sZXMnOiAoXG4gICAgICAgICAgICAgICAgJ3ByaW1hcnknLCAnc2Vjb25kYXJ5JyxcbiAgICAgICAgICAgICAgICAnYWN0aW9uJywgJ3Bvc2l0aXZlJywgJ25lZ2F0aXZlJyxcbiAgICAgICAgICAgICAgICAnd2FybmluZycsICd3aGl0ZScsICdibGFjaycsXG4gICAgICAgICAgICApLFxuICAgICAgICApLFxuICAgICAgICAvLyBGb3Jtc1xuICAgICAgICAnaW5wdXQnOiAoXG4gICAgICAgICAgICAnYm9yZGVyLXJhZGl1cyc6ICRlai1idXR0b24tcmFkaXVzLFxuICAgICAgICAgICAgJ21pbi13aWR0aCc6IDE1ZW0sXG4gICAgICAgICAgICAnd2lkdGgnOiAxMDAlLFxuICAgICAgICAgICAgJ21heC13aWR0aCc6IDMwcmVtLFxuICAgICAgICApLFxuICAgICAgICAnYnV0dG9uJzogKFxuICAgICAgICAgICAgJ2JvcmRlci1yYWRpdXMnOiAkZWotYnV0dG9uLXJhZGl1cyxcbiAgICAgICAgICAgICdmb250LXdlaWdodCc6IDcwMCxcbiAgICAgICAgKSxcbiAgICAgICAgLy8gRUogR2xvYmFsIHN0eWxlcyBhbmQgY29tcG9uZW50c1xuICAgICAgICAnZWonOiAoXG4gICAgICAgICAgICAnc3R5bGUnIDogKFxuICAgICAgICAgICAgICAgICdib3JkZXItcmFkaXVzJzogLjc1cmVtLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICdjb252ZXJzYXRpb24tY2FyZCc6IChcbiAgICAgICAgICAgICAgICAnYm9yZGVyLXJhZGl1cyc6IDUwJSxcbiAgICAgICAgICAgICAgICAnaGlnaGxpZ2h0LXRhZ3MnOiB0cnVlLFxuICAgICAgICAgICAgICAgICdiZy1pbWFnZSc6ICcvc3RhdGljL2ltZy9iZy9jb252ZXJzYXRpb24tY2FyZC5wbmcnLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgKVxuICAgICkpO1xuXG5AaW1wb3J0ICcuLi9ub2RlX21vZHVsZXMvbWVuZGVsZWV2LmNzcy9zcmMvbWVuZGVsZWV2JztcbiIsCgkJIi8vIEFsaWFzIHRvIGZuLnNhc3NcbkBpbXBvcnQgJ2ZuLnNhc3MvZm4nO1xuXG4vLy8gTG9nIGdpdmVuICR2YWx1ZXMgYW5kIHJldHVybiB0aGUgbGFzdCBhcmd1bWVudC5cbkBmdW5jdGlvbiBsb2coJGFyZ3MuLi4pIHtcbiAgICBAd2FybiAnTE9HOiAjeyRhcmdzfSc7XG4gICAgQHJldHVybiBudGgoJGFyZ3MsIGxlbmd0aCgkYXJncykpO1xufVxuXG5AbWl4aW4gdmFyLWZhbGxiYWNrKCRkZWZzKSB7XG4gICAgQGVhY2ggJHByb3AsICRwYWlyIGluICRkZWZzIHtcbiAgICAgICAgJHZhbHVlOiBudGgoJHBhaXIsIDEpO1xuICAgICAgICAkdmFyLW5hbWU6IG50aCgkcGFpciwgMik7XG4gICAgICAgICN7JHByb3B9OiAjeyR2YWx1ZX07XG4gICAgICAgICN7JHByb3B9OiB1bnF1b3RlKCd2YXIoLS0jeyR2YXItbmFtZX0pJyk7XG4gICAgfVxufVxuXG5AZnVuY3Rpb24gbWFwLXNvbWUta2V5cygkcHJlZCwgJG1hcCwgJGFyZ3MuLi4pIHtcbiAgICAkZm46IGFzLWZ1bmMoJHByZWQpO1xuXG4gICAgQGVhY2ggJGssICR2IGluICRtYXAge1xuICAgICAgICBAaWYgY2FsbCgkZm4sICRrLCAkYXJncy4uLikge1xuICAgICAgICAgICAgQHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIEByZXR1cm4gZmFsc2U7XG59XG5cbkBmdW5jdGlvbiBtYXAtc29tZS12YWx1ZXMoJHByZWQsICRtYXAsICRhcmdzLi4uKSB7XG4gICAgJGZuOiBhcy1mdW5jKCRwcmVkKTtcblxuICAgIEBlYWNoICRrLCAkdiBpbiAkbWFwIHtcbiAgICAgICAgQGlmIGNhbGwoJGZuLCAkdiwgJGFyZ3MuLi4pIHtcbiAgICAgICAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBAcmV0dXJuIGZhbHNlO1xufVxuXG5AZnVuY3Rpb24gbWFwLWV2ZXJ5LWtleSgkcHJlZCwgJG1hcCwgJGFyZ3MuLi4pIHtcbiAgICAkZm46IGFzLWZ1bmMoJHByZWQpO1xuXG4gICAgQGVhY2ggJGssICR2IGluICRtYXAge1xuICAgICAgICBAaWYgbm90IGNhbGwoJGZuLCAkaywgJGFyZ3MuLi4pIHtcbiAgICAgICAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgQHJldHVybiB0cnVlO1xufVxuXG5AZnVuY3Rpb24gbWFwLWV2ZXJ5LXZhbHVlKCRwcmVkLCAkbWFwLCAkYXJncy4uLikge1xuICAgICRmbjogYXMtZnVuYygkcHJlZCk7XG5cbiAgICBAZWFjaCAkaywgJHYgaW4gJG1hcCB7XG4gICAgICAgIEBpZiBub3QgY2FsbCgkZm4sICR2LCAkYXJncy4uLikge1xuICAgICAgICAgICAgQHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBAcmV0dXJuIHRydWU7XG59XG4iLAoJCSJAaW1wb3J0ICdmdW5jdGlvbnMnO1xuQGltcG9ydCAnbGlzdCc7XG5AaW1wb3J0ICdhcnJheSc7XG5AaW1wb3J0ICdtYXAnO1xuQGltcG9ydCAnc3RyaW5nJztcbkBpbXBvcnQgJ251bWJlcnMnO1xuQGltcG9ydCAnY29sb3InO1xuQGltcG9ydCAndGVzdGluZyc7XG4iLAoJCSIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vIFVUSUxJVFkgRlVOQ1RJT05TXG4vLy8gQGdyb3VwIHV0aWxpdHkgZnVuY3Rpb25zXG4vLy8gQGF1dGhvciBGw6FiaW8gTWFjw6pkbyBNZW5kZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbi8vLyBDb252ZXJ0IGZ1bmN0aW9uIG9yIHN0cmluZyB0byBhIGZ1bmN0aW9uIGhhbmRsZS5cbkBmdW5jdGlvbiBhcy1mdW5jKCRmbikge1xuICAgIEBpZiB0eXBlLW9mKCRmbikgPT0gZnVuY3Rpb24ge1xuICAgICAgICBAcmV0dXJuICRmblxuICAgIH0gQGVsc2UgaWYgdHlwZS1vZigkZm4pID09IHN0cmluZyB7XG4gICAgICAgIC8vbm9pbnNwZWN0aW9uIENzc0ludmFsaWRGdW5jdGlvblxuICAgICAgICBAcmV0dXJuIGdldC1mdW5jdGlvbigkZm4pO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICBAZXJyb3IgXCJJbnZhbGlkIGZ1bmN0aW9uOiAjeyRmbn1cIjtcbiAgICB9XG59XG5cbi8vLyBWZXJzaW9uIG9mIGNhbGwoLi4uKSB0aGF0IGFjY2VwdHMgbmFtZXMgYW5kIGZ1bmN0aW9uIHJlZmVyZW5jZXNcbkBmdW5jdGlvbiBjYWxsLWZuKCRmbiwgJGFyZ3MuLi4pIHtcbiAgICBAcmV0dXJuIGNhbGwoYXMtZnVuYygkZm4pLCAkYXJncy4uLik7XG59XG5cbi8vLyBQYXNzIGFyZ3VtZW50IHRocm91Z2ggYSBzZXJpZXMgb2YgZnVuY3Rpb25zLlxuQGZ1bmN0aW9uIHBpcGUoJHgsICRmbnMuLi4pIHtcbiAgICBAZWFjaCAkZm4gaW4gJGZucyB7XG4gICAgICAgICR4OiBjYWxsLWZuKCRmbiwgJHgpO1xuICAgIH1cbiAgICBAcmV0dXJuICR4O1xufVxuXG4vLy8gUGFzcyBhcmd1bWVudHMgcGFpcndpc2UgdGhyb3VnaCBhIHNlcmllcyBvZiBmdW5jdGlvbnMuXG4vLy8gQWxsIGludGVybWVkaWF0ZSBmdW5jdGlvbnMgbXVzdCByZXR1cm4gbGlzdHMgb2YgYXJndW1lbnRzIHRvIHRoZSBmb2xsb3dpbmdcbi8vLyBmdW5jdGlvbnMuIFRoZSBsYXN0IGZ1bmN0aW9uIGluIHRoZSBwaXBlIGNhbiByZXR1cm4gYW55dGhpbmcuXG5AZnVuY3Rpb24gcGlwZS0yKCR4LCAkeSwgJGZucy4uLikge1xuICAgICRhcmdzOiAoJHgsICR5KTtcbiAgICBAZWFjaCAkZm4gaW4gJGZucyB7XG4gICAgICAgICRhcmdzOiBjYWxsLWZuKCRmbiwgJGFyZ3MuLi4pO1xuICAgIH1cbiAgICBAcmV0dXJuICRhcmdzO1xufVxuXG4vLy8gRmxpcCB0aGUgb3JkZXIgb2YgYSAyLWVsZW1lbnQgbGlzdFxuQGZ1bmN0aW9uIGZsaXAoJHgsICR5KSB7XG4gICAgQHJldHVybiAoJHksICR4KTtcbn1cblxuLy8vIFJldHVybiBpdHMgYXJndW1lbnRcbkBmdW5jdGlvbiBpZGVudGl0eSgkeCkge1xuICAgIEByZXR1cm4gJHg7XG59XG5cbi8vLyBSZXR1cm4gZmlyc3QgZWxlbWVudCBvZiBhIGxpc3RcbkBmdW5jdGlvbiBmaXJzdCgkbHN0KSB7XG4gICAgQHJldHVybiBudGgoJGxzdCwgMSk7XG59XG5cbi8vLyBSZXR1cm4gc2Vjb25kIGVsZW1lbnQgb2YgYSBsaXN0XG5AZnVuY3Rpb24gc2Vjb25kKCRsc3QpIHtcbiAgICBAcmV0dXJuIG50aCgkbHN0LCAyKTtcbn1cblxuLy8vIFJldHVybiBmaXJzdCBhcmd1bWVudFxuQGZ1bmN0aW9uIGZpcnN0LWFyZygkeCwgJGFyZ3MuLi4pIHtcbiAgICBAcmV0dXJuICR4O1xufVxuXG4vLy8gUmV0dXJuIHNlY29uZCBhcmd1bWVudFxuQGZ1bmN0aW9uIHNlY29uZC1hcmcoJHgsICR5LCAkYXJncy4uLikge1xuICAgIEByZXR1cm4gJHk7XG59XG5cbi8vLyBSZXR1cm4gdHJ1ZSBpZiAkYSA+ICRiXG4vLy8gQGFyZyAkYSAtIEZpcnN0IGFyZ3VtZW50XG4vLy8gQGFyZyAkYiAtIFNlY29uZCBhcmd1bWVudFxuQGZ1bmN0aW9uIGd0KCRhLCAkYikge1xuICAgIEByZXR1cm4gJGEgPiAkYjtcbn1cblxuLy8vIFJldHVybiB0cnVlIGlmICRhID49ICRiXG4vLy8gQGFyZyAkYSAtIEZpcnN0IGFyZ3VtZW50XG4vLy8gQGFyZyAkYiAtIFNlY29uZCBhcmd1bWVudFxuQGZ1bmN0aW9uIGdlKCRhLCAkYikge1xuICAgIEByZXR1cm4gJGEgPj0gJGI7XG59XG5cbi8vLyBSZXR1cm4gdHJ1ZSBpZiAkYSA8ICRiXG4vLy8gQGFyZyAkYSAtIEZpcnN0IGFyZ3VtZW50XG4vLy8gQGFyZyAkYiAtIFNlY29uZCBhcmd1bWVudFxuQGZ1bmN0aW9uIGx0KCRhLCAkYikge1xuICAgIEByZXR1cm4gJGEgPCAkYjtcbn1cblxuLy8vIFJldHVybiB0cnVlIGlmICRhIDw9ICRiXG4vLy8gQGFyZyAkYSAtIEZpcnN0IGFyZ3VtZW50XG4vLy8gQGFyZyAkYiAtIFNlY29uZCBhcmd1bWVudFxuQGZ1bmN0aW9uIGxlKCRhLCAkYikge1xuICAgIEByZXR1cm4gJGEgPD0gJGI7XG59XG5cbi8vLyBSZXR1cm4gdHJ1ZSBpZiAkYSAhPSAkYlxuLy8vIEBhcmcgJGEgLSBGaXJzdCBhcmd1bWVudFxuLy8vIEBhcmcgJGIgLSBTZWNvbmQgYXJndW1lbnRcbkBmdW5jdGlvbiBuZSgkYSwgJGIpIHtcbiAgICBAcmV0dXJuICRhICE9ICRiO1xufVxuXG4vLy8gUmV0dXJuIHRydWUgaWYgJGEgPT0gJGJcbi8vLyBAYXJnICRhIC0gRmlyc3QgYXJndW1lbnRcbi8vLyBAYXJnICRiIC0gU2Vjb25kIGFyZ3VtZW50XG5AZnVuY3Rpb24gZXEoJGEsICRiKSB7XG4gICAgQHJldHVybiAkYSA9PSAkYjtcbn1cblxuLy8vIEFkZCB0d28gbnVtYmVyc1xuLy8vIEBhcmcgJGEgLSBGaXJzdCBhcmd1bWVudFxuLy8vIEBhcmcgJGIgLSBTZWNvbmQgYXJndW1lbnRcbkBmdW5jdGlvbiBhZGQoJGEsICRiKSB7XG4gICAgQHJldHVybiAkYSArICRiO1xufVxuXG4vLy8gUmV2ZXJzZSBhZGRpdGlvbiAodXNlZnVsIGZvciBzdHJpbmdzKVxuLy8vIEBhcmcgJGEgLSBGaXJzdCBhcmd1bWVudFxuLy8vIEBhcmcgJGIgLSBTZWNvbmQgYXJndW1lbnRcbkBmdW5jdGlvbiByYWRkKCRhLCAkYikge1xuICAgIEByZXR1cm4gJGIgKyAkYTtcbn1cblxuLy8vIFN1YnRyYWN0IHR3byBudW1iZXJzXG4vLy8gQGFyZyAkYSAtIEZpcnN0IGFyZ3VtZW50XG4vLy8gQGFyZyAkYiAtIFNlY29uZCBhcmd1bWVudFxuQGZ1bmN0aW9uIHN1YigkYSwgJGIpIHtcbiAgICBAcmV0dXJuICRhIC0gJGI7XG59XG5cbi8vLyBGbGlwcGVkIGFwcGxpY2F0aW9uIG9mIHN1YlxuQGZ1bmN0aW9uIG9wLXJzdWIoJGEsICRiKSB7XG4gICAgQHJldHVybiAkYiAtICRhO1xufVxuXG4vLy8gTXVsdGlwbHkgdHdvIG51bWJlcnNcbi8vLyBAYXJnICRhIC0gRmlyc3QgYXJndW1lbnRcbi8vLyBAYXJnICRiIC0gU2Vjb25kIGFyZ3VtZW50XG5AZnVuY3Rpb24gbXVsKCRhLCAkYikge1xuICAgIEByZXR1cm4gJGEgKiAkYjtcbn1cblxuLy8vIFJldmVyc2UgbXVsdGlwbGljYXRpb25cbi8vLyBAYXJnICRhIC0gRmlyc3QgYXJndW1lbnRcbi8vLyBAYXJnICRiIC0gU2Vjb25kIGFyZ3VtZW50XG5AZnVuY3Rpb24gbXVsKCRhLCAkYikge1xuICAgIEByZXR1cm4gJGIgKiAkYTtcbn1cblxuLy8vIERpdmlkZSB0d28gbnVtYmVyc1xuLy8vIEBhcmcgJGEgLSBGaXJzdCBhcmd1bWVudFxuLy8vIEBhcmcgJGIgLSBTZWNvbmQgYXJndW1lbnRcbkBmdW5jdGlvbiBkaXYoJGEsICRiKSB7XG4gICAgQHJldHVybiAkYSAvICRiO1xufVxuXG4vLy8gRmxpcHBlZCBhcHBsaWNhdGlvbiBvZiBkaXZcbkBmdW5jdGlvbiByZGl2KCRhLCAkYikge1xuICAgIEByZXR1cm4gJGIgLyAkYTtcbn1cblxuLy8vIE1vZHVsbyBkaXZpc2lvbiBvZiB0d28gbnVtYmVyc1xuLy8vIEBhcmcgJGEgLSBGaXJzdCBhcmd1bWVudFxuLy8vIEBhcmcgJGIgLSBTZWNvbmQgYXJndW1lbnRcbkBmdW5jdGlvbiBtb2QoJGEsICRiKSB7XG4gICAgQHJldHVybiAkYSAlICRiO1xufVxuXG4vLy8gRmxpcHBlZCBhcHBsaWNhdGlvbiBvZiBtb2RcbkBmdW5jdGlvbiBybW9kKCRhLCAkYikge1xuICAgIEByZXR1cm4gJGIgJSAkYTtcbn1cblxuLy8vIFJldHVybiB0cnVlIGZvciBub24tbnVsbCB2YWx1ZXNcbkBmdW5jdGlvbiBub3QtbnVsbCgkeCkge1xuICAgIEByZXR1cm4gJHggIT0gbnVsbDtcbn1cblxuLy8vIE11bHRpcGx5IG51bWJlciBieSAtMSBvciBpbnZlcnQgYm9vbGVhbiB2YWx1ZXNcbkBmdW5jdGlvbiBuZWdhdGUoJHgpIHtcbiAgICBAaWYgJHggPT0gdHJ1ZSB7XG4gICAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfSBAZWxzZSBpZiAkeCA9PSBmYWxzZSB7XG4gICAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgQHJldHVybiAtMSAqICR4O1xufVxuXG4vLy8gUmV0dXJuIHRydWUgZm9yIGV2ZW4gbnVtYmVyc1xuQGZ1bmN0aW9uIGlzLWV2ZW4oJHgpIHtcbiAgICBAcmV0dXJuICR4ICUgMiA9PSAwO1xufVxuXG4vLy8gUmV0dXJuIHRydWUgZm9yIG9kZCBudW1iZXJzXG5AZnVuY3Rpb24gaXMtb2RkKCR4KSB7XG4gICAgQHJldHVybiAkeCAlIDIgPT0gMTtcbn1cblxuLy8vIFJldHVybiB0cnVlIGlmICR4IGlzIGRpdmlzaWJsZSBieSAkbi5cbi8vL1xuLy8vIEBhcmcgJHggLSBBcmd1bWVudFxuLy8vIEBhcmcgJG4gLSBEaXZpc29yXG5AZnVuY3Rpb24gaXMtZGl2aXNpYmxlLWJ5KCR4LCAkbikge1xuICAgIEByZXR1cm4gJHggJSAkbiA9PSAwO1xufVxuXG4vLy8gUmV0dXJuIHRydWUgaWYgYWxsIHRoZSBnaXZlbiBrZXlzIGFyZSByZXBsaWNhdGVkIHdpdGggdGhlIHNhbWUgdmFsdWVzIGluXG4vLy8gdGhlIGFyZ3VtZW50IG1hcC5cbi8vL1xuLy8vIEBhcmcgJG1hcCAtIElucHV0IG1hcFxuLy8vIEBhcmcgJGtleXMgLSBBIG1hcCBvZiBrZXlzIHRvIHZhbHVlcyB0byBjb21wYXJlIHdpdGggdGhlIGxoc1xuQGZ1bmN0aW9uIGtleXMtZXF1YWwoJG1hcCwgJGtleXMpIHtcbiAgICBAZWFjaCAkaywgJHYgaW4gJGtleXMge1xuICAgICAgICBAaWYgbWFwLWdldCgkbWFwLCAkaykgIT0gJHYge1xuICAgICAgICAgICAgQHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBAcmV0dXJuIHRydWU7XG59XG4iLAoJCSIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vIExJTktFRCBMSVNUU1xuLy8vIEBncm91cCBsaXN0XG4vLy8gQGF1dGhvciBGw6FiaW8gTWFjw6pkbyBNZW5kZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0ICdmdW5jdGlvbnMnO1xuQGltcG9ydCAnbGlzdC1wZXJmJztcblxuJF9mbi1saXN0LW5vdC1naXZlbjogdW5pcXVlLWlkKCkgIWRlZmF1bHQ7XG4kZm4tZW1wdHktYXJyYXk6IGpvaW4oKCksICgpLCBjb21tYSkgIWRlZmF1bHQ7XG4kZm4tZW1wdHktbWFwOiBtYXAtcmVtb3ZlKCgpLCBudWxsKSAhZGVmYXVsdDtcblxuLy8gQkFTSUMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8vIENyZWF0ZSBhIGxpc3Qgb2YgY29ucyBjZWxscyBmcm9tIGFyZ3VtZW50c1xuLy8vIFVzZSBhcyBMKDEsIDIsIDMsIDQpXG5AZnVuY3Rpb24gTCgkeDE6ICRfZm4tbGlzdC1ub3QtZ2l2ZW4sXG4gICAgICAgICAgICAkeDI6ICRfZm4tbGlzdC1ub3QtZ2l2ZW4sXG4gICAgICAgICAgICAkeDM6ICRfZm4tbGlzdC1ub3QtZ2l2ZW4sXG4gICAgICAgICAgICAkeDQ6ICRfZm4tbGlzdC1ub3QtZ2l2ZW4sXG4gICAgICAgICAgICAkeDU6ICRfZm4tbGlzdC1ub3QtZ2l2ZW4sXG4gICAgICAgICAgICAkeDY6ICRfZm4tbGlzdC1ub3QtZ2l2ZW4sXG4gICAgICAgICAgICAkYXJncy4uLikge1xuICAgIEBpZiAkeDEgPT0gJF9mbi1saXN0LW5vdC1naXZlbiB7XG4gICAgICAgIEByZXR1cm4gbnVsbDtcbiAgICB9IEBlbHNlIGlmICR4MiA9PSAkX2ZuLWxpc3Qtbm90LWdpdmVuIHtcbiAgICAgICAgQHJldHVybiAoJHgxIG51bGwpO1xuICAgIH0gQGVsc2UgaWYgJHgzID09ICRfZm4tbGlzdC1ub3QtZ2l2ZW4ge1xuICAgICAgICBAcmV0dXJuICgkeDEgKCR4MiBudWxsKSk7XG4gICAgfSBAZWxzZSBpZiAkeDQgPT0gJF9mbi1saXN0LW5vdC1naXZlbiB7XG4gICAgICAgIEByZXR1cm4gKCR4MSAoJHgyICgkeDMgbnVsbCkpKTtcbiAgICB9IEBlbHNlIGlmICR4NSA9PSAkX2ZuLWxpc3Qtbm90LWdpdmVuIHtcbiAgICAgICAgQHJldHVybiAoJHgxICgkeDIgKCR4MyAoJHg0IG51bGwpKSkpO1xuICAgIH0gQGVsc2UgaWYgJHg2ID09ICRfZm4tbGlzdC1ub3QtZ2l2ZW4ge1xuICAgICAgICBAcmV0dXJuICgkeDEgKCR4MiAoJHgzICgkeDQgKCR4NSBudWxsKSkpKSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIEByZXR1cm4gKCR4MSAoJHgyICgkeDMgKCR4NCAoJHg1ICgkeDYgTCgkYXJncy4uLikpKSkpKSk7XG4gICAgfVxufVxuXG4vLy8gUmV0dXJucyBmaXJzdCBlbGVtZW50IG9mIGxpc3Rcbi8vL1xuLy8vIEBhcmcgJHhzIC0gTGlzdFxuQGZ1bmN0aW9uIGNhcigkeHMpIHtcbiAgICBAcmV0dXJuIG50aCgkeHMsIDEpO1xufVxuXG4vLy8gUmV0dXJucyBsaXN0J3MgdGFpbFxuLy8vXG4vLy8gQGFyZyAkeHMgLSBMaXN0XG5AZnVuY3Rpb24gY2RyKCR4cykge1xuICAgIEByZXR1cm4gbnRoKCR4cywgMik7XG59XG5cbi8vLyBDb25zdHJ1Y3QgbGlzdCwgYWRkaW5nIGZpcnN0IGFyZ3VtZW50ICR4IGluIGZyb250IG9mIGEgbGlzdCBvZiAkeHMuXG4vLy9cbi8vLyBAYXJnICR4IC0gRWxlbWVudFxuLy8vIEBhcmcgJHhzIC0gTGlzdFxuQGZ1bmN0aW9uIGNvbnMoJHgsICR4cykge1xuICAgIEByZXR1cm4gKCR4ICR4cyk7XG59XG5cbi8vLyBSZXR1cm4gbGlzdCBsZW5ndGhcbi8vL1xuLy8vIEBhcmcgJHhzIC0gTGlzdFxuQGZ1bmN0aW9uIGxzdC1sZW5ndGgoJHhzKSB7XG4gICAgJHNpemU6IDA7XG4gICAgQHdoaWxlICR4cyB7XG4gICAgICAgICR4czogbnRoKCR4cywgMik7XG4gICAgICAgICRzaXplOiAkc2l6ZSArIDE7XG4gICAgfVxuICAgIEByZXR1cm4gJHNpemU7XG59XG5cbi8vLyBSZXR1cm4gdGhlIG4tdGggZWxlbWVudCBpbiBsaXN0IG9mICR4c1xuLy8vXG4vLy8gQGFyZyAkeHMgLSBMaXN0XG4vLy8gQGFyZyAkbiAtIFJlcXVlc3RlZCBwb3NpdGlvblxuQGZ1bmN0aW9uIGxzdC1udGgoJHhzLCAkbiwgJGRlZmF1bHQ6IG51bGwpIHtcbiAgICBAaWYgJHhzID09IG51bGwge1xuICAgICAgICBAZXJyb3IgXCJMaXN0IGRvIG5vdCBoYXZlIGVub3VnaCBlbGVtZW50cy5cIlxuICAgIH1cbiAgICBAaWYgJG4gPD0gMCB7XG4gICAgICAgIEBlcnJvciBcIk5lZ2F0aXZlIG9yIHplcm8gaW5kZXhlcyBub3QgYWxsb3dlZC5cIlxuICAgIH1cbiAgICBAd2hpbGUgJHhzIHtcbiAgICAgICAgQGlmICRuID09IDEge1xuICAgICAgICAgICAgQHJldHVybiBudGgoJHhzLCAxKTtcbiAgICAgICAgfVxuICAgICAgICAkeHM6IG50aCgkeHMsIDIpO1xuICAgICAgICAkbjogJG4gLSAxO1xuICAgIH1cbiAgICBAcmV0dXJuICRkZWZhdWx0O1xufVxuXG4vLy8gUmV0dXJuIHRoZSBwb3NpdGlvbiBvZiAkdmFsdWUgaW4gbGlzdCBvZiAkeHMuXG4vLy9cbi8vLyBAYXJnICR4cyAtIExpc3Rcbi8vLyBAYXJnICR2YWx1ZSAtIExvb2t1cCB2YWx1ZVxuQGZ1bmN0aW9uIGxzdC1pbmRleCgkeHMsICR2YWx1ZSwgJGRlZmF1bHQ6IG51bGwpIHtcbiAgICAkaWR4OiAwO1xuICAgIEB3aGlsZSAkeHMge1xuICAgICAgICAkaWR4OiAkaWR4ICsgMTtcbiAgICAgICAgJHg6IG50aCgkeHMsIDEpO1xuICAgICAgICAkeHM6IG50aCgkeHMsIDIpO1xuICAgICAgICBAaWYgJHggPT0gJHZhbHVlIHtcbiAgICAgICAgICAgIEByZXR1cm4gJGlkeDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBAcmV0dXJuICRkZWZhdWx0O1xufVxuXG4vLy8gUmV0dXJuIHRydWUgaWYgbGlzdCBvZiAkeHMgY29udGFpbnMgJHZhbHVlXG4vLy9cbi8vLyBAYXJnICR4cyAtIExpc3Rcbi8vLyBAYXJnICR2YWx1ZSAtIExvb2t1cCB2YWx1ZVxuQGZ1bmN0aW9uIGxzdC1jb250YWlucygkeHMsICR2YWx1ZSkge1xuICAgIEByZXR1cm4gbHN0LWluZGV4KCR4cywgJHZhbHVlKSAhPSBudWxsO1xufVxuXG4vLy8gQ2FzdCBsaXN0IG9iamVjdCBhcyBhIGxpbmtlZCBsaXN0LlxuLy8vXG4vLy8gQGFyZyAkeHMgLSBsaXN0IG9yIGxpc3QtbGlrZSBvYmplY3QuXG5AZnVuY3Rpb24gdG8tbHN0KCR4cykge1xuICAgIC8vbm9pbnNwZWN0aW9uIENzc0ludmFsaWRGdW5jdGlvblxuICAgIEBpZiAkeHMgPT0gbnVsbCB7XG4gICAgICAgIEByZXR1cm4gJHhzO1xuICAgIH0gQGVsc2UgaWYgdHlwZS1vZigkeHMpID09ICdsaXN0JyB7XG4gICAgICAgIEBpZiBpcy1icmFja2V0ZWQoJHhzKSBvciBsaXN0LXNlcGFyYXRvcigkeHMpID09ICdjb21tYScge1xuICAgICAgICAgICAgQHJldHVybiBsc3QtZnJvbS1hcnJheSgkeHMpO1xuICAgICAgICB9IEBlbHNlIGlmIGxlbmd0aCgkeHMpID09IDIge1xuICAgICAgICAgICAgQHJldHVybiAkeHM7XG4gICAgICAgIH1cbiAgICB9XG4gICAgQGVycm9yIFwiSW5wdXQgbXVzdCBiZSBhIGxpbmtlZCBsaXN0LlxcbkhpbnQ6IGNyZWF0ZSBvbmUgZnJvbSBhIHJlZ3VsYXIgU2FzcyBhcnJheSB1c2luZyBMKCR4cy4uLilcIlxufVxuXG4vLyBKT0lOSU5HIEFORCBNRVJHSU5HIExJU1RTIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AZnVuY3Rpb24gX2xzdC1yZXZlcnNlKCR4cykge1xuICAgICR5czogbnVsbDtcbiAgICBAd2hpbGUgJHhzIHtcbiAgICAgICAgJHg6IG50aCgkeHMsIDEpO1xuICAgICAgICAkeHM6IG50aCgkeHMsIDIpO1xuICAgICAgICAkeXM6ICgkeCAkeXMpO1xuICAgIH1cbiAgICBAcmV0dXJuICR5cztcbn1cblxuLy8vIFJldmVyc2Ugb3JkZXIgb2YgZWxlbWVudHMgaW4gbGlzdFxuLy8vXG4vLy8gQGFyZyAkeHMgLSBMaXN0XG5AZnVuY3Rpb24gbHN0LXJldmVyc2UoJHhzKSB7XG4gICAgQHJldHVybiBfbHN0LXJldmVyc2UodG8tbHN0KCR4cykpO1xufVxuXG4vLy8gWmlwIHR3byBsaXN0cyB0b2dldGhlciBhbmQgcmV0dXJuIGEgbGlzdCBvZiBjb25zZXMuXG4vLy9cbi8vLyBAYXJnICR4cyAtIExpc3Rcbi8vLyBAYXJnICR5cyAtIExpc3RcbkBmdW5jdGlvbiBsc3QtemlwKCR4cywgJHlzLCAkcmV2ZXJzZTogZmFsc2UpIHtcbiAgICAkcmVzOiBudWxsO1xuICAgIEB3aGlsZSAkeHMgYW5kICR5cyB7XG4gICAgICAgICRyZXM6ICgobnRoKCR4cywgMSkgbnRoKCR5cywgMSkpICRyZXMpO1xuICAgICAgICAkeHM6IG50aCgkeHMsIDIpO1xuICAgICAgICAkeXM6IG50aCgkeXMsIDIpO1xuICAgIH1cbiAgICBAcmV0dXJuIGlmKCRyZXZlcnNlLCAkcmVzLCBfbHN0LXJldmVyc2UoJHJlcykpO1xufVxuXG5AZnVuY3Rpb24gX2xzdC1zdGl0Y2goJHhzLCAkeXMpIHtcbiAgICBAd2hpbGUgJHhzIHtcbiAgICAgICAgJHg6IG50aCgkeHMsIDEpO1xuICAgICAgICAkeHM6IG50aCgkeHMsIDIpO1xuICAgICAgICAkeXM6ICgkeCAkeXMpO1xuICAgIH1cbiAgICBAcmV0dXJuICR5cztcbn1cblxuLy8vIENyZWF0ZSBhIGxpc3Qgd2l0aCByZXZlcnNlZCAkeHMgZm9sbG93ZWQgYnkgJHlzLlxuLy8vXG4vLy8gQGFyZyAkeHMgLSBMaXN0XG4vLy8gQGFyZyAkeXMgLSBMaXN0XG5AZnVuY3Rpb24gbHN0LXN0aXRjaCgkeHMsICR5cykge1xuICAgIEByZXR1cm4gX2xzdC1zdGl0Y2godG8tbHN0KCR4cyksIHRvLWxzdCgkeXMpKTtcbn1cblxuLy8vIENyZWF0ZSBhIGxpc3Qgd2l0aCAkeHMgZm9sbG93ZWQgYnkgJHlzLlxuLy8vXG4vLy8gQGFyZyAkeHMgLSBMaXN0XG4vLy8gQGFyZyAkeXMgLSBMaXN0XG5AZnVuY3Rpb24gbHN0LWpvaW4oJHhzLCAkeXMpIHtcbiAgICBAcmV0dXJuIF9sc3Qtc3RpdGNoKF9sc3QtcmV2ZXJzZSh0by1sc3QoJHhzKSksIHRvLWxzdCgkeXMpKTtcbn1cblxuLy8vIEFwcGVuZCBhbiBhcnJheSBvZiBsaXN0cyB0b2dldGhlclxuLy8vXG4vLy8gQGFyZyAkbGlzdHMgLSBBcnJheSBvZiBsaXN0c1xuQGZ1bmN0aW9uIGxzdC1jb25jYXQoJGxpc3RzKSB7XG4gICAgJHhzOiBudGgoJGxpc3RzLCBsZW5ndGgoJGxpc3RzKSk7XG4gICAgQGZvciAkaSBmcm9tIGxlbmd0aCgkbGlzdHMpIC0gMSB0aHJvdWdoIDEge1xuICAgICAgICAkeHM6IGxzdC1qb2luKG50aCgkbGlzdHMsICRpKSwgJHhzKTtcbiAgICB9XG4gICAgQHJldHVybiAkeHM7XG59XG5cbi8vLyBJbnRlcnNwZXJzZSAkdmFsdWUgYmV0d2VlbiBlbGVtZW50cyBvZiAkeHNcbi8vLyAgICAgbHN0LWludGVyc3BlcnNlKEwoMSwgMiwgMyksIDApID09PiBMKDEsIDAsIDIsIDAsIDMpXG4vLy9cbi8vLyBAYXJnICR4cyAtIExpc3Rcbi8vLyBAYXJnICR2YWx1ZSAtIExpc3RcbkBmdW5jdGlvbiBsc3QtaW50ZXJzcGVyc2UoJHhzLCAkdmFsdWUsICRyZXZlcnNlOiBmYWxzZSkge1xuICAgICR4czogdG8tbHN0KCR4cyk7XG4gICAgQGlmICR4cyA9PSBudWxsIHtcbiAgICAgICAgQHJldHVybiBudWxsO1xuICAgIH1cbiAgICAkcmVzOiBudWxsO1xuICAgICR5OiBudGgoJHhzLCAxKTtcbiAgICAkeHM6IG50aCgkeHMsIDIpO1xuICAgIEB3aGlsZSAkeHMge1xuICAgICAgICAkeDogbnRoKCR4cywgMSk7XG4gICAgICAgICR4czogbnRoKCR4cywgMik7XG4gICAgICAgICRyZXM6ICgkdmFsdWUgKCR5ICRyZXMpKTtcbiAgICAgICAgJHk6ICR4O1xuICAgIH1cbiAgICAkcmVzOiAoJHkgJHJlcyk7XG4gICAgQHJldHVybiBpZigkcmV2ZXJzZSwgJHJlcywgX2xzdC1yZXZlcnNlKCRyZXMpKTtcbn1cblxuLy8vIEludGVyY2FsYXRlIGVsZW1lbnRzIG9mIGJvdGggbGlzdHNcbi8vL1xuLy8vIEBhcmcgJHhzIC0gRmlyc3QgbGlzdFxuLy8vIEBhcmcgJHlzIC0gU2Vjb25kIGxpc3RcbkBmdW5jdGlvbiBsc3QtaW50ZXJjYWxhdGUoJHhzLCAkeXMsICRyZXZlcnNlOiBmYWxzZSkge1xuICAgICR4czogdG8tbHN0KCR4cyk7XG4gICAgJHlzOiB0by1sc3QoJHlzKTtcbiAgICAkcmVzOiBudWxsO1xuICAgIEB3aGlsZSAkeHMgYW5kICR5cyB7XG4gICAgICAgICR4OiBudGgoJHhzLCAxKTtcbiAgICAgICAgJHhzOiBudGgoJHhzLCAyKTtcbiAgICAgICAgJHk6IG50aCgkeXMsIDEpO1xuICAgICAgICAkeXM6IG50aCgkeXMsIDIpO1xuICAgICAgICAkcmVzOiAoJHkgKCR4ICRyZXMpKTtcbiAgICAgICAgQGlmIG5vdCAkeHMge1xuICAgICAgICAgICAgQHJldHVybiBfbHN0LXN0aXRjaCgkcmVzLCAkeXMpXG4gICAgICAgIH1cbiAgICAgICAgQGlmIG5vdCAkeXMge1xuICAgICAgICAgICAgQHJldHVybiBfbHN0LXN0aXRjaCgkcmVzLCAkeHMpXG4gICAgICAgIH1cbiAgICB9XG4gICAgQHJldHVybiBpZigkcmV2ZXJzZSwgJHJlcywgX2xzdC1yZXZlcnNlKCRyZXMpKTtcbn1cblxuLy8gQ1JFQVRJT04gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8vIENyZWF0ZSBsaXN0IHdpdGggJG4gcmVwZXRpdGlvbiBvZiAkeFxuLy8vXG4vLy8gQGFyZyAkeCAtIFZhbHVlXG4vLy8gQGFyZyAkbiAtIE51bWJlciBvZiByZXBldGl0aW9uc1xuQGZ1bmN0aW9uIGxzdC1yZXBlYXQoJHgsICRuOiAxKSB7XG4gICAgJHlzOiBudWxsO1xuICAgIEB3aGlsZSAkbiA+IDAge1xuICAgICAgICAkeXM6ICgkeCAkeXMpO1xuICAgICAgICAkbjogJG4gLSAxO1xuICAgIH1cbiAgICBAcmV0dXJuICR5cztcbn1cblxuLy8vIFJldHVybiBhIHJhbmdlIG9mIG51bWJlcnMgZnJvbSAkYSB0byAkYiAoaW5jbHVzaXZlKVxuLy8vXG4vLy8gQGFyZyAkYSAtIFN0YXJ0aW5nIG9mIHJhbmdlXG4vLy8gQGFyZyAkYiAtIEVuZCBvZiByYW5nZVxuLy8vIEBhcmcgJHN0ZXAgKG9wdGlvbmFsKSAtIFN0ZXAgYmV0d2VlbiBzdWNjZXNzaXZlIHZhbHVlcy5cbkBmdW5jdGlvbiBsc3QtcmFuZ2UoJGEsICRiLCAkc3RlcDogMSkge1xuICAgIEBpZiAkYiA8ICRhIHtcbiAgICAgICAgQHJldHVybiBsc3QtcmFuZ2UoJGIsICRhLCAtJHN0ZXApO1xuICAgIH1cblxuICAgICR5czogbnVsbDtcbiAgICBAd2hpbGUgJGEgPD0gJGIge1xuICAgICAgICAkeXM6ICgkYSAkeXMpO1xuICAgICAgICAkYTogJGEgKyAkc3RlcDtcbiAgICB9XG4gICAgQHJldHVybiBfbHN0LXJldmVyc2UoJHlzKTtcbn1cblxuLy8gVFJBTlNGT1JNQVRJT05TIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQGZ1bmN0aW9uIF9sc3QtbWFwKCRmbiwgJHhzLCAkYXJncykge1xuICAgICR5czogbnVsbDtcbiAgICBAd2hpbGUgJHhzIHtcbiAgICAgICAgJHg6IG50aCgkeHMsIDEpO1xuICAgICAgICAkeHM6IG50aCgkeHMsIDIpO1xuICAgICAgICAkeXM6IChjYWxsKCRmbiwgJHgsICRhcmdzLi4uKSAkeXMpO1xuICAgIH1cbiAgICBAcmV0dXJuICR5cztcbn1cblxuLy8vIENyZWF0ZSBhIGxpc3Qgb2YgZm4oJHgpIGZvciBlYWNoICR4IGluICR4cy5cbi8vL1xuLy8vIEFueSBhZGRpdGlvbmFsIGFyZ3VtZW50cyBhcmUgcGFzc2VkIHRvIHRoZSBmdW5jdGlvbiBkdXJpbmcgZnVuY3Rpb25cbi8vLyBhcHBsaWNhdGlvbi4gSWYgb3JkZXIgb2YgZWxlbWVudHMgaXMgbm90IGltcG9ydGFudCwgdXNlIGxzdC1yZXZtYXAsIHNpbmNlIGl0XG4vLy8gaXMgZmFzdGVyLlxuLy8vXG4vLy8gQGFyZyAkZm4gLSBGdW5jdGlvbiBuYW1lIG9yIGhhbmRsZVxuLy8vIEBhcmcgJHhzIC0gTGlzdFxuQGZ1bmN0aW9uIGxzdC1tYXAoJGZuLCAkeHMsICRhcmdzLi4uKSB7XG4gICAgQHJldHVybiBfbHN0LXJldmVyc2UoX2xzdC1tYXAoYXMtZnVuYygkZm4pLCB0by1sc3QoJHhzKSwgJGFyZ3MpKTtcbn1cblxuLy8vIExpa2UgbWFwLCBidXQgcmV0dXJuIGEgcmV2ZXJzZWQgY29weSBvZiB0aGUgbWFwcGVkIGxpc3QuXG4vLy9cbi8vLyBAYXJnICRmbiAtIEZ1bmN0aW9uIG5hbWUgb3IgaGFuZGxlXG4vLy8gQGFyZyAkeHMgLSBMaXN0XG5AZnVuY3Rpb24gbHN0LXJldm1hcCgkZm4sICR4cywgJGFyZ3MuLi4pIHtcbiAgICBAcmV0dXJuIF9sc3QtbWFwKGFzLWZ1bmMoJGZuKSwgdG8tbHN0KCR4cyksICRhcmdzKTtcbn1cblxuLy8vIENyZWF0ZSBhIGxpc3Qgb2YgZm4oJHgpIGZvciBlYWNoICR4IGluICR4cy5cbi8vLyBEaWZmZXJlbnRseSBmcm9tIGxzdC1tYXAsIHRoaXMgZnVuY3Rpb24gYXBwbGllcyAkeCAqKmFmdGVyKiogdGhlIGV4dHJhXG4vLy8gYXJndW1lbnRzLlxuLy8vXG4vLy8gQW55IGFkZGl0aW9uYWwgYXJndW1lbnRzIGFyZSBwYXNzZWQgdG8gdGhlIGZ1bmN0aW9uIGR1cmluZyBmdW5jdGlvblxuLy8vIGFwcGxpY2F0aW9uLlxuLy8vXG4vLy8gQGFyZyAkZm4gLSBGdW5jdGlvbiBuYW1lIG9yIGhhbmRsZVxuLy8vIEBhcmcgJHhzIC0gTGlzdFxuQGZ1bmN0aW9uIGxzdC1ybWFwKCRmbiwgJHhzLCAkYXJncy4uLikge1xuICAgIEBpZiBsZW5ndGgoJGFyZ3MpID09IDAge1xuICAgICAgICBAcmV0dXJuIGxzdC1tYXAoJGZuLCAkeHMpO1xuICAgIH1cbiAgICAkZm46IGFzLWZ1bmMoJGZuKTtcbiAgICAkeHM6IHRvLWxzdCgkeHMpO1xuICAgICR5czogbnVsbDtcbiAgICBAd2hpbGUgJHhzIHtcbiAgICAgICAgJHg6IG50aCgkeHMsIDEpO1xuICAgICAgICAkeHM6IG50aCgkeHMsIDIpO1xuICAgICAgICAkYXJncy1hbGw6IGFwcGVuZCgkYXJncywgJHgpO1xuICAgICAgICAkeXM6IChjYWxsKCRmbiwgJGFyZ3MtYWxsLi4uKSAkeXMpO1xuICAgIH1cbiAgICBAcmV0dXJuIF9sc3QtcmV2ZXJzZSgkeXMpO1xufVxuXG4vLy8gQ3JlYXRlIGEgbGlzdCBvZiBmbigkcG9zaXRpb24sICR4KSBmb3IgZWFjaCAkeCBpbiAkeHMuIFBvc2l0aW9uIHN0YXJ0c1xuLy8vIGNvdW50aW5nIGF0IDEuXG4vLy9cbi8vLyBBbnkgYWRkaXRpb25hbCBhcmd1bWVudHMgYXJlIHBhc3NlZCB0byB0aGUgZnVuY3Rpb24gZHVyaW5nIGZ1bmN0aW9uXG4vLy8gYXBwbGljYXRpb24uXG4vLy9cbi8vLyBAYXJnICRmbiAtIEZ1bmN0aW9uIG5hbWUgb3IgaGFuZGxlXG4vLy8gQGFyZyAkeHMgLSBMaXN0XG5AZnVuY3Rpb24gbHN0LWluZGV4LW1hcCgkZm4sICR4cywgJGFyZ3MuLi4pIHtcbiAgICAkZm46IGFzLWZ1bmMoJGZuKTtcbiAgICAkeHM6IHRvLWxzdCgkeHMpO1xuICAgICR5czogbnVsbDtcbiAgICAkaWR4OiAxO1xuICAgIEB3aGlsZSAkeHMge1xuICAgICAgICAkeDogbnRoKCR4cywgMSk7XG4gICAgICAgICR4czogbnRoKCR4cywgMik7XG4gICAgICAgICR5czogKGNhbGwoJGZuLCAkaWR4LCAkeCwgJGFyZ3MuLi4pICR5cyk7XG4gICAgICAgICRpZHg6ICRpZHggKyAxO1xuICAgIH1cbiAgICBAcmV0dXJuIF9sc3QtcmV2ZXJzZSgkeXMpO1xufVxuXG4vLy8gRmlsdGVyIGxpc3QgYnkgcHJlZGljYXRlIGZ1bmN0aW9uLlxuLy8vXG4vLy8gQW55IGFkZGl0aW9uYWwgYXJndW1lbnRzIGFyZSBwYXNzZWQgdG8gdGhlIGZ1bmN0aW9uIGR1cmluZyBmdW5jdGlvblxuLy8vIGFwcGxpY2F0aW9uLlxuLy8vXG4vLy8gQGFyZyAkcHJlZCAtIFByZWRpY2F0ZSBmdW5jdGlvbiAoaS5lLiwgZnVuY3Rpb24gdGhhdCByZXR1cm4gYm9vbGVhbnMpXG4vLy8gQGFyZyAkeHMgLSBMaXN0XG5AZnVuY3Rpb24gbHN0LWZpbHRlcigkcHJlZCwgJHhzLCAkYXJncy4uLikge1xuICAgICRwcmVkOiBhcy1mdW5jKCRwcmVkKTtcbiAgICAkeHM6IHRvLWxzdCgkeHMpO1xuICAgICR5czogbnVsbDtcbiAgICBAd2hpbGUgJHhzIHtcbiAgICAgICAgJHg6IG50aCgkeHMsIDEpO1xuICAgICAgICAkeHM6IG50aCgkeHMsIDIpO1xuICAgICAgICBAaWYgY2FsbCgkcHJlZCwgJHgsICRhcmdzLi4uKSB7XG4gICAgICAgICAgICAkeXM6ICgkeCAkeXMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIEByZXR1cm4gX2xzdC1yZXZlcnNlKCR5cyk7XG59XG5cbi8vLyBSZXR1cm4gMiBsaXN0cywgd2l0aCBlbGVtZW50cyBzZXBhcmF0ZWQgYnkgcHJlZGljYXRlIGZ1bmN0aW9uLlxuLy8vXG4vLy8gQW55IGFkZGl0aW9uYWwgYXJndW1lbnRzIGFyZSBwYXNzZWQgdG8gdGhlIGZ1bmN0aW9uIGR1cmluZyBmdW5jdGlvblxuLy8vIGFwcGxpY2F0aW9uLlxuLy8vXG4vLy8gQGFyZyAkcHJlZCAtIFByZWRpY2F0ZSBmdW5jdGlvbiAoaS5lLiwgZnVuY3Rpb24gdGhhdCByZXR1cm4gYm9vbGVhbnMpXG4vLy8gQGFyZyAkeHMgLSBMaXN0XG5AZnVuY3Rpb24gbHN0LXNlcGFyYXRlKCRwcmVkLCAkeHMsICRhcmdzLi4uKSB7XG4gICAgJHhzOiB0by1sc3QoJHhzKTtcbiAgICAkbGVmdDogbnVsbDtcbiAgICAkcmlnaHQ6IG51bGw7XG4gICAgJHByZWQ6IGFzLWZ1bmMoJHByZWQpO1xuICAgIEB3aGlsZSAkeHMge1xuICAgICAgICAkeDogbnRoKCR4cywgMSk7XG4gICAgICAgICR4czogbnRoKCR4cywgMik7XG4gICAgICAgIEBpZiBjYWxsKCRwcmVkLCAkeCwgJGFyZ3MuLi4pIHtcbiAgICAgICAgICAgICRsZWZ0OiAoJHggJGxlZnQpO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICRyaWdodDogKCR4ICRyaWdodCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgQHJldHVybiAoX2xzdC1yZXZlcnNlKCRsZWZ0KSBfbHN0LXJldmVyc2UoJHJpZ2h0KSk7XG59XG5cbi8vLyBEcm9wIHRoZSBmaXJzdCAkbiBlbGVtZW50cyBvZiBsaXN0LlxuLy8vXG4vLy8gQGFyZyAkeHMgLSBMaXN0XG4vLy8gQGFyZyAkbiAtIE51bWJlciBvZiBlbGVtZW50c1xuQGZ1bmN0aW9uIGxzdC1kcm9wKCR4cywgJG4pIHtcbiAgICAkeHM6IHRvLWxzdCgkeHMpO1xuICAgIEB3aGlsZSAkeHMgYW5kICRuID4gMCB7XG4gICAgICAgICR4czogbnRoKCR4cywgMik7XG4gICAgICAgICRuOiAkbiAtIDE7XG4gICAgfVxuICAgIEByZXR1cm4gJHhzO1xufVxuXG4vLy8gS2VlcCBhdCBtb3N0IHRoZSBmaXJzdCBuIGVsZW1lbnRzIG9mIGxpc3Rcbi8vL1xuLy8vIEBhcmcgJHhzIC0gTGlzdFxuLy8vIEBhcmcgJG4gLSBOdW1iZXIgb2YgZWxlbWVudHNcbkBmdW5jdGlvbiBsc3QtdGFrZSgkeHMsICRuKSB7XG4gICAgJHhzOiB0by1sc3QoJHhzKTtcbiAgICBAaWYgJG4gPD0gMCBvciAkeHMgPT0gbnVsbCB7XG4gICAgICAgIEByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgQHJldHVybiAobnRoKCR4cywgMSkgbHN0LXRha2UobnRoKCR4cywgMiksICRuIC0gMSkpO1xufVxuXG4vLy8gUXVpY2sgc29ydCBhbGdvcml0aG1cbi8vL1xuLy8vIEBhcmcgJHhzIC0gTGlzdFxuQGZ1bmN0aW9uIGxzdC1zb3J0KCR4cykge1xuICAgICR4czogdG8tbHN0KCR4cyk7XG4gICAgQGlmICR4cyA9PSBudWxsIHtcbiAgICAgICAgQHJldHVybiBudWxsO1xuICAgIH1cbiAgICAkeDogbnRoKCR4cywgMSk7XG4gICAgJHhzOiBudGgoJHhzLCAyKTtcbiAgICAkcGFpcjogbHN0LXNlcGFyYXRlKGx0LCAkeHMsICR4KTtcbiAgICBAcmV0dXJuIGxzdC1qb2luKGxzdC1zb3J0KG50aCgkcGFpciwgMSkpLCAoJHggbHN0LXNvcnQobnRoKCRwYWlyLCAyKSkpKTtcbn1cblxuLy8vIEl0ZXJhdGUgaW4gY2h1bmtzIG9mIHNpemUgJG4uXG4vLy9cbi8vLyBAYXJnICR4cyAtIExpc3Rcbi8vLyBAYXJnICRuIC0gTWF4aW11bSBudW1iZXIgb2YgZWxlbWVudHMgaW4gZWFjaCBjaHVua1xuQGZ1bmN0aW9uIGxzdC1jaHVua3MoJHhzLCAkbikge1xuICAgICR4czogdG8tbHN0KCR4cyk7XG4gICAgJGNodW5rOiBudWxsO1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJG4ge1xuICAgICAgICBAaWYgJHhzICE9IG51bGwge1xuICAgICAgICAgICAgJHg6IG50aCgkeHMsIDEpO1xuICAgICAgICAgICAgJHhzOiBudGgoJHhzLCAyKTtcbiAgICAgICAgICAgICRjaHVuazogKCR4ICRjaHVuayk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgQHJldHVybiBpZigkY2h1bmsgPT0gbnVsbCwgbnVsbCwgKF9sc3QtcmV2ZXJzZSgkY2h1bmspIGxzdC1jaHVua3MoJHhzLCAkbikpKTtcbn1cblxuLy8vIEl0ZXJhdGUgaW4gY2h1bmtzIG9mIDIuXG4vLy8gU2ltaWxhciB0byBsc3QtY2h1bmtzLCBidXQgZWxlbWVudHMgYXJlIGNvbnMgY2VsbHMgYW5kIGl0IGlzIHNsaWdodGx5IG1vcmVcbi8vLyBlZmZpY2llbnQuXG4vLy9cbi8vLyBAYXJnICR4cyAtIExpc3QuXG4vLy8gQGFyZyAkcmV2ZXJzZSAtIElmIHRydWUsIHJldmVyc2UgcmVzdWx0LlxuQGZ1bmN0aW9uIGxzdC1wYWlyd2lzZSgkeHMsICRyZXZlcnNlOiBmYWxzZSkge1xuICAgICR4czogdG8tbHN0KCR4cyk7XG4gICAgJHlzOiBudWxsO1xuICAgIEB3aGlsZSAkeHMge1xuICAgICAgICAkYTogbnRoKCR4cywgMSk7XG4gICAgICAgICR4czogbnRoKCR4cywgMik7XG4gICAgICAgIEBpZiAkeHMge1xuICAgICAgICAgICAgJGI6IG50aCgkeHMsIDEpO1xuICAgICAgICAgICAgJHhzOiBudGgoJHhzLCAyKTtcbiAgICAgICAgICAgICR5czogKCgkYSAkYikgJHlzKTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAkeXM6IChhcHBlbmQoKCksICRhKSAkeXMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIEByZXR1cm4gaWYoJHJldmVyc2UsICR5cywgX2xzdC1yZXZlcnNlKCR5cykpO1xufVxuXG4vLy8gQ3JlYXRlIGEgbGlzdCBvZiBwYWlycyBvZiAocG9zaXRpb24gdmFsdWUpLlxuLy8vXG4vLy8gQGFyZyAkeHMgLSBJbnB1dCBsaXN0XG4vLy8gQGFyZyAkc3RhcnQgLSBPcHRpb25hbCBzdGFydGluZyB2YWx1ZSAoYmVnaW5zIHdpdGggMSlcbi8vLyBAYXJnICRzdGVwIC0gT3B0aW9uYWwgc3RlcCAoMSBpZiBub3QgZ2l2ZW4pXG5AZnVuY3Rpb24gbHN0LWVudW1lcmF0ZSgkeHMsICRzdGFydDogMSwgJHN0ZXA6IDEsICRyZXZlcnNlOiBmYWxzZSkge1xuICAgICR4czogdG8tbHN0KCR4cyk7XG4gICAgJHJlczogbnVsbDtcbiAgICBAd2hpbGUgJHhzIHtcbiAgICAgICAgJHg6IG50aCgkeHMsIDEpO1xuICAgICAgICAkeHM6IG50aCgkeHMsIDIpO1xuICAgICAgICAkcmVzOiBjb25zKCgkc3RhcnQgJHgpLCAkcmVzKTtcbiAgICAgICAgJHN0YXJ0OiAkc3RhcnQgKyAkc3RlcDtcbiAgICB9XG4gICAgQHJldHVybiBpZigkcmV2ZXJzZSwgJHJlcywgX2xzdC1yZXZlcnNlKCRyZXMpKTtcbn1cblxuLy8gRk9MRFMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQGZ1bmN0aW9uIF9sc3QtcmVkdWNlKCRmbiwgJHhzLCAkaW5pdCwgJGFyZ3MpIHtcbiAgICBAd2hpbGUgJHhzIHtcbiAgICAgICAgJGluaXQ6IGNhbGwoJGZuLCBudGgoJHhzLCAxKSwgJGluaXQsICRhcmdzLi4uKTtcbiAgICAgICAgJHhzOiBudGgoJHhzLCAyKTtcbiAgICB9XG4gICAgQHJldHVybiAkaW5pdDtcbn1cblxuLy8vIFJlZHVjZSBub24tZW1wdHkgbGlzdCBieSBmdW5jdGlvbiAkZm4uXG4vLy9cbi8vLyBBcmd1bWVudHMgYXJlIHBhc3NlZCBpbiB0aGUgc2FtZSBvcmRlciB0aGF0IHRoZXkgYXBwZWFyIGluIHRoZSB0aGUgZnVuY3Rpb25cbi8vLyBzaWduYXR1cmUsIGkuZS4sIGZuKCR4LCAkaW5pdCwgLi4uKVxuLy8vXG4vLy8gQGFyZyAkZm4gLSBBIGJpbmFyeSBvcGVyYXRvciBmdW5jdGlvblxuLy8vIEBhcmcgJHhzIC0gTGlzdFxuLy8vIEBhcmcgJGluaXQgLSBJbml0aWFsIHZhbHVlIG9mIHJlZHVjdGlvblxuQGZ1bmN0aW9uIGxzdC1yZWR1Y2UoJGZuLCAkeHMsICRpbml0OiAkX2ZuLWxpc3Qtbm90LWdpdmVuLCAkYXJncy4uLikge1xuICAgICR4czogdG8tbHN0KCR4cyk7XG4gICAgQGlmICRpbml0ID09ICRfZm4tbGlzdC1ub3QtZ2l2ZW4ge1xuICAgICAgICBAaWYgJHhzIHtcbiAgICAgICAgICAgICRpbml0OiBudGgoJHhzLCAxKTtcbiAgICAgICAgICAgICR4czogbnRoKCR4cywgMik7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgQGVycm9yIFwiQ2Fubm90IHJlZHVjZSBhbiBlbXB0eSBsaXN0XCI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgQHJldHVybiBfbHN0LXJlZHVjZShhcy1mdW5jKCRmbiksICR4cywgJGluaXQsICRhcmdzKTtcbn1cblxuLy8vIFN1bSBhbGwgZWxlbWVudHMgb2YgbGlzdC5cbi8vL1xuLy8vIEBhcmcgJHhzIC0gTGlzdFxuQGZ1bmN0aW9uIGxzdC1zdW0oJHhzKSB7XG4gICAgQHJldHVybiBsc3QtcmVkdWNlKGFkZCwgJHhzLCAwKTtcbn1cblxuLy8vIE11bHRpcGx5IGFsbCBlbGVtZW50cyBvZiBsaXN0LlxuLy8vXG4vLy8gQGFyZyAkeHMgLSBMaXN0XG5AZnVuY3Rpb24gbHN0LXByb2QoJHhzKSB7XG4gICAgQHJldHVybiBsc3QtcmVkdWNlKG11bCwgJHhzLCAxKTtcbn1cblxuLy8vIFRydWUgaWYgYWxsIGVsZW1lbnRzIGFyZSB0cnVlLlxuLy8vXG4vLy8gQGFyZyAkeHMgLSBMaXN0XG5AZnVuY3Rpb24gbHN0LWFsbCgkeHMpIHtcbiAgICAkeHM6IHRvLWxzdCgkeHMpO1xuICAgIEBpZiAkeHMgPT0gbnVsbCB7XG4gICAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgQHdoaWxlICR4cyB7XG4gICAgICAgIEBpZiBub3QgbnRoKCR4cywgMSkge1xuICAgICAgICAgICAgQHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICAkeHM6IG50aCgkeHMsIDIpO1xuICAgIH1cbiAgICBAcmV0dXJuIHRydWU7XG59XG5cbi8vLyBUcnVlIGlmIGFueSBlbGVtZW50IGlzIHRydWUuXG4vLy9cbi8vLyBAYXJnICR4cyAtIExpc3RcbkBmdW5jdGlvbiBsc3QtYW55KCR4cykge1xuICAgICR4czogdG8tbHN0KCR4cyk7XG4gICAgQGlmICR4cyA9PSBudWxsIHtcbiAgICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgQHdoaWxlICR4cyB7XG4gICAgICAgIEBpZiBudGgoJHhzLCAxKSB7XG4gICAgICAgICAgICBAcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgJHhzOiBudGgoJHhzLCAyKTtcbiAgICB9XG4gICAgQHJldHVybiBmYWxzZTtcbn1cblxuLy8vIFJldHVybiB0cnVlIGlmIHNvbWUgZWxlbWVudHMgcGFzcyBwcmVkaWNhdGUuXG4vLy9cbi8vLyBAYXJnICRwcmVkIC0gUHJlZGljYXRlIGZ1bmN0aW9uIChpLmUuLCBmdW5jdGlvbiB0aGF0IHJldHVybiBib29sZWFucylcbi8vLyBAYXJnICR4cyAtIExpc3RcbkBmdW5jdGlvbiBsc3Qtc29tZSgkcHJlZCwgJHhzLCAkYXJncy4uLikge1xuICAgICRwcmVkOiBhcy1mdW5jKCRwcmVkKTtcbiAgICAkeHM6IHRvLWxzdCgkeHMpO1xuICAgIEB3aGlsZSAkeHMge1xuICAgICAgICAkeDogbnRoKCR4cywgMSk7XG4gICAgICAgICR4czogbnRoKCR4cywgMik7XG4gICAgICAgIEBpZiBjYWxsKCRwcmVkLCAkeCwgJGFyZ3MuLi4pIHtcbiAgICAgICAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBAcmV0dXJuIGZhbHNlO1xufVxuXG4vLy8gUmV0dXJuIHRydWUgaWYgYWxsIGVsZW1lbnRzIHBhc3MgcHJlZGljYXRlLlxuLy8vXG4vLy8gQGFyZyAkcHJlZCAtIFByZWRpY2F0ZSBmdW5jdGlvbiAoaS5lLiwgZnVuY3Rpb24gdGhhdCByZXR1cm4gYm9vbGVhbnMpXG4vLy8gQGFyZyAkeHMgLSBMaXN0XG5AZnVuY3Rpb24gbHN0LWV2ZXJ5KCRwcmVkLCAkeHMsICRhcmdzLi4uKSB7XG4gICAgJHByZWQ6IGFzLWZ1bmMoJHByZWQpO1xuICAgICR4czogdG8tbHN0KCR4cyk7XG4gICAgQHdoaWxlICR4cyB7XG4gICAgICAgICR4OiBudGgoJHhzLCAxKTtcbiAgICAgICAgJHhzOiBudGgoJHhzLCAyKTtcbiAgICAgICAgQGlmIG5vdCBjYWxsKCRwcmVkLCAkeCwgJGFyZ3MuLi4pIHtcbiAgICAgICAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgQHJldHVybiB0cnVlO1xufVxuXG4vLy8gUmV0dXJuIG1heGltdW0gdmFsdWUgaW4gbGlzdFxuLy8vXG4vLy8gQGFyZyAkeHMgLSBMaXN0XG5AZnVuY3Rpb24gbHN0LW1heCgkeHMpIHtcbiAgICAkeDogbnRoKCR4cywgMSk7XG4gICAgJHhzOiBudGgoJHhzLCAyKTtcbiAgICAkeTogaWYoJHhzID09IG51bGwsICR4LCBsc3QtbWF4KCR4cykpO1xuICAgIEByZXR1cm4gaWYoJHggPiAkeSwgJHgsICR5KTtcbn1cblxuLy8vIFJldHVybiBtaW5pbXVtIHZhbHVlIGluIGxpc3Rcbi8vL1xuLy8vIEBhcmcgJHhzIC0gTGlzdFxuQGZ1bmN0aW9uIGxzdC1taW4oJHhzKSB7XG4gICAgJHg6IG50aCgkeHMsIDEpO1xuICAgICR4czogbnRoKCR4cywgMik7XG4gICAgJHk6IGlmKCR4cyA9PSBudWxsLCAkeCwgbHN0LW1pbigkeHMpKTtcbiAgICBAcmV0dXJuIGlmKCR4IDwgJHksICR4LCAkeSk7XG59XG5cbi8vLyBHZW5lcmFsaXplZCBqb2luLiBSZWR1Y2UgbGlzdCB3aXRoICRmbiBieSBhcHBseWluZyBiaW5hcnkgcGFydGl0aW9ucy5cbi8vL1xuLy8vIEBhcmcgJGZuIC0gQmluYXJ5IG9wZXJhdG9yIHVzZWQgdG8gam9pbiBjb25zZWN1dGl2ZSBlbGVtZW50cy5cbi8vLyBAYXJnICRlbXB0eSAtIE5ldXRyYWwgZWxlbWVudCB0byAkZm4gKGkuZS4sIGZuKCR4LCAkZW1wdHkpID09PiAkeC5cbi8vLyBAYXJnICR4cyAtIExpc3QuXG5AZnVuY3Rpb24gbHN0LWpvaW4tYnkoJGZuLCAkZW1wdHksICR4cykge1xuICAgICR4czogdG8tbHN0KCR4cyk7XG4gICAgJGZuOiBhcy1mdW5jKCRmbik7XG4gICAgQGlmIG5vdCAkeHMge1xuICAgICAgICBAcmV0dXJuICRlbXB0eTtcbiAgICB9XG4gICAgQHdoaWxlIG50aCgkeHMsIDIpIHtcbiAgICAgICAgJHlzOiBudWxsO1xuICAgICAgICAkcGFpcnM6IGxzdC1wYWlyd2lzZSgkeHMsIHRydWUpO1xuICAgICAgICBAd2hpbGUgJHBhaXJzICE9IG51bGwge1xuICAgICAgICAgICAgJHBhaXI6IG50aCgkcGFpcnMsIDEpO1xuICAgICAgICAgICAgJHBhaXJzOiBudGgoJHBhaXJzLCAyKTtcbiAgICAgICAgICAgIEBpZiBsZW5ndGgoJHBhaXIpID09IDEge1xuICAgICAgICAgICAgICAgICR5czogKGNhbGwoJGZuLCBudGgoJHBhaXIsIDEpLCAkZW1wdHkpICR5cyk7XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAkeXM6IChjYWxsKCRmbiwgbnRoKCRwYWlyLCAxKSwgbnRoKCRwYWlyLCAyKSkgJHlzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAkeHM6ICR5cztcbiAgICB9XG4gICAgQHJldHVybiBudGgoJHhzLCAxKTtcbn1cblxuLy8gQ09OVkVSU0lPTlMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8vIENyZWF0ZSBsaXN0IGZyb20gc3RhbmRhcmQgbGlzdHMvYXJyYXlcbi8vL1xuLy8vIEBhcmcgJGFyciAtIEEgcmVndWxhciBTYXNzIGFycmF5LlxuQGZ1bmN0aW9uIGxzdC1mcm9tLWFycmF5KCRhcnIsICRyZXZlcnNlOiBmYWxzZSkge1xuICAgICR4czogbnVsbDtcbiAgICBAZWFjaCAkeCBpbiAkYXJyIHtcbiAgICAgICAgJHhzOiAoJHggJHhzKTtcbiAgICB9XG4gICAgQHJldHVybiBpZigkcmV2ZXJzZSwgJHhzLCBfbHN0LXJldmVyc2UoJHhzKSk7XG59XG5cbi8vLyBDcmVhdGUgbGlzdCBmcm9tIG1hcFxuLy8vXG4vLy8gQGFyZyAkbWFwIC0gQSByZWd1bGFyIFNhc3MgbWFwLlxuQGZ1bmN0aW9uIGxzdC1mcm9tLW1hcCgkbWFwLCAkcmV2ZXJzZTogZmFsc2UpIHtcbiAgICAkeHM6IG51bGw7XG4gICAgQGVhY2ggJHgsICR5IGluICRtYXAge1xuICAgICAgICAkeHM6ICgoJHggJHkpICR4cyk7XG4gICAgfVxuICAgIEByZXR1cm4gaWYoJHJldmVyc2UsICR4cywgX2xzdC1yZXZlcnNlKCR4cykpO1xufVxuXG4vLy8gRmxhdHRlbiBhIGxpc3Qgb2YgYXJyYXlzXG4vLy9cbi8vLyBAYXJnICRhcyAtIExpc3Qgb2YgYXJyYXlzXG5AZnVuY3Rpb24gbHN0LWZsYXR0ZW4oJGFycnMsICRfam9pbi1zaXplOiAxMjgpIHtcbiAgICBAaWYgJGFycnMgPT0gbnVsbCB7XG4gICAgICAgIEByZXR1cm4gJGZuLWVtcHR5LWFycmF5O1xuICAgIH0gQGVsc2UgaWYgbnRoKCRhcnJzLCAyKSA9PSBudWxsIHtcbiAgICAgICAgQHJldHVybiBudGgoJGFycnMsIDEpO1xuICAgIH1cblxuICAgICRyZXM6IG51bGw7XG4gICAgJGFjYzogJGZuLWVtcHR5LWFycmF5O1xuICAgICRzaXplOiAwO1xuXG4gICAgQHdoaWxlICRhcnJzIHtcbiAgICAgICAgJGE6IG50aCgkYXJycywgMSk7XG4gICAgICAgICRhcnJzOiBudGgoJGFycnMsIDIpO1xuICAgICAgICAkbjogbGVuZ3RoKCRhKTtcbiAgICAgICAgQGlmICRuICsgJHNpemUgPD0gJF9qb2luLXNpemUge1xuICAgICAgICAgICAgJHNpemU6ICRzaXplICsgJG47XG4gICAgICAgICAgICAkYWNjOiBqb2luKCRhY2MsICRhKTtcbiAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA+PSAkX2pvaW4tc2l6ZSB7XG4gICAgICAgICAgICAkcmVzOiAoJGFjYyAoJGEgKCRyZXMpKSk7XG4gICAgICAgICAgICAkc2l6ZTogMDtcbiAgICAgICAgICAgICRhY2M6ICRmbi1lbXB0eS1hcnJheTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAkcmVzOiAoJGFjYyAoJHJlcykpO1xuICAgICAgICAgICAgJHNpemU6ICRuO1xuICAgICAgICAgICAgJGFjYzogJGE7XG4gICAgICAgIH1cbiAgICB9XG4gICAgQGlmIGxlbmd0aCgkYWNjKSAhPSAwIHtcbiAgICAgICAgJHJlczogKCRhY2MgJHJlcyk7XG4gICAgfVxuICAgIEByZXR1cm4gbHN0LWZsYXR0ZW4oX2xzdC1yZXZlcnNlKCRyZXMpLCAkX2pvaW4tc2l6ZTogMiAqICRfam9pbi1zaXplKTtcbn1cblxuLy8vIENvbnZlcnQgbGlzdCBvZiAkeHMgaW50byBhIFNhc3MgYXJyYXkuXG4vLy9cbi8vLyBAYXJnICR4cyAtIExpc3RcbkBmdW5jdGlvbiBsc3QtdG8tYXJyYXkoJHhzKSB7XG4gICAgQGlmICR4cyA9PSBudWxsIHtcbiAgICAgICAgQHJldHVybiAoKTtcbiAgICB9IEBlbHNlIGlmIG50aCgkeHMsIDIpID09IG51bGwge1xuICAgICAgICBAcmV0dXJuIChudGgoJHhzLCAxKSwpO1xuICAgIH1cblxuICAgIC8vIENvbGxlY3QgcGFydGlhbCBzdWItYXJyYXlzXG4gICAgJGFycmF5czogbnVsbDtcbiAgICBAd2hpbGUgJHhzIHtcbiAgICAgICAgJGF1eDogX2xzdC1jb25zdW1lKCR4cyk7XG4gICAgICAgICRhcnI6IG50aCgkYXV4LCAxKTtcbiAgICAgICAgJHhzOiBudGgoJGF1eCwgMik7XG4gICAgICAgIEBpZiAkeHMge1xuICAgICAgICAgICAgJGF1eDogX2xzdC1jb25zdW1lKCR4cyk7XG4gICAgICAgICAgICAkYXJyOiBqb2luKCRhcnIsIG50aCgkYXV4LCAxKSk7XG4gICAgICAgICAgICAkeHM6IG50aCgkYXV4LCAyKTtcbiAgICAgICAgICAgIEBpZiAkeHMge1xuICAgICAgICAgICAgICAgICRhdXg6IF9sc3QtY29uc3VtZSgkeHMpO1xuICAgICAgICAgICAgICAgICRhcnI6IGpvaW4oJGFyciwgbnRoKCRhdXgsIDEpKTtcbiAgICAgICAgICAgICAgICAkeHM6IG50aCgkYXV4LCAyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAkYXJyYXlzOiAoJGFyciAkYXJyYXlzKTtcbiAgICB9XG4gICAgQHJldHVybiBsc3QtZmxhdHRlbihfbHN0LXJldmVyc2UoJGFycmF5cykpO1xufVxuXG4vLy8gRmxhdHRlbiBhIGxpc3Qgb2YgbWFwc1xuLy8vXG4vLy8gQGFyZyAkbWFwcyAtIExpc3Qgb2YgbWFwc1xuQGZ1bmN0aW9uIGxzdC1mbGF0dGVuLW1hcCgkbWFwcywgJF9qb2luLXNpemU6IDY0KSB7XG4gICAgQGlmIG5vdCAkbWFwcyB7XG4gICAgICAgIEByZXR1cm4gJGZuLWVtcHR5LW1hcDtcbiAgICB9XG4gICAgQHdoaWxlIG50aCgkbWFwcywgMikge1xuICAgICAgICAkbmV3OiBudWxsO1xuICAgICAgICBAd2hpbGUgJG1hcHMge1xuICAgICAgICAgICAgJG1hcDogbnRoKCRtYXBzLCAxKTtcbiAgICAgICAgICAgICRtYXBzOiBudGgoJG1hcHMsIDIpO1xuICAgICAgICAgICAgQGlmICRtYXBzIHtcbiAgICAgICAgICAgICAgICAkbWFwOiBtYXAtbWVyZ2UoJG1hcCwgbnRoKCRtYXBzLCAxKSk7XG4gICAgICAgICAgICAgICAgJG1hcHM6IG50aCgkbWFwcywgMik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkbmV3OiAoJG1hcCAkbmV3KTtcbiAgICAgICAgfVxuICAgICAgICAkbWFwczogX2xzdC1yZXZlcnNlKCRuZXcpO1xuICAgIH1cbiAgICBAcmV0dXJuIG50aCgkbWFwcywgMSk7XG59XG5cbi8vLyBUcmFuc2Zvcm0gbGlzdCBvZiBwYWlycyBpbnRvIGEgbWFwXG4vLy9cbi8vLyBAYXJnICR4cyAtIExpc3RcbkBmdW5jdGlvbiBsc3QtdG8tbWFwKCR4cykge1xuICAgICRtYXBzOiBudWxsO1xuICAgIEB3aGlsZSAkeHMge1xuICAgICAgICAkYXV4OiBfbHN0LWNvbnN1bWUtcGFpcnMoJHhzLCAxNik7XG4gICAgICAgICRtYXA6IG50aCgkYXV4LCAxKTtcbiAgICAgICAgJHhzOiBudGgoJGF1eCwgMik7XG4gICAgICAgICRtYXBzOiAoJG1hcCAkbWFwcyk7XG4gICAgfVxuICAgIEByZXR1cm4gbHN0LWZsYXR0ZW4tbWFwKCRtYXBzKTtcbn1cblxuLy8vIENvZXJjZSBvYmplY3QgdG8gbGlzdC4gTGlzdHMgYXJlIHJldHVybmVkIGFzIGlzLlxuLy8vXG4vLy8gSXQgaXMgbW9yZSBhZ2dyZXNzaXZlIHRoYW4gdG8tbHN0IHRvIGNhc3Qgb2JqZWN0cyB0byBsaXN0LlxuLy8vICAgICAqIFNjYWxhcnMgYXJlIGNvbnZlcnRlZCB0byBzaW5nbGUgYXJndW1lbnQgbGlzdHMuXG4vLy8gICAgICogQXJyYXlzIGFyZSBjb252ZXJ0ZWQgdG8gbGlzdHMgKGV4Y2VwdCB3aGVuIGl0IGNhdXNlcyBhbWJpZ3VpdHkpXG5AZnVuY3Rpb24gY29lcmNlLXRvLWxzdCgkeHMpIHtcbiAgICAvL25vaW5zcGVjdGlvbiBDc3NJbnZhbGlkRnVuY3Rpb25cbiAgICBAaWYgJHhzID09IG51bGwge1xuICAgICAgICBAcmV0dXJuIG51bGw7XG4gICAgfSBAZWxzZSBpZiB0eXBlLW9mKCR4cykgPT0gJ2xpc3QnIHtcbiAgICAgICAgQGlmIGlzLWJyYWNrZXRlZCgkeHMpIG9yIGxpc3Qtc2VwYXJhdG9yKCR4cykgPT0gJ2NvbW1hJyB7XG4gICAgICAgICAgICBAcmV0dXJuIGxzdC1mcm9tLWFycmF5KCR4cyk7XG4gICAgICAgIH0gQGVsc2UgaWYgbGVuZ3RoKCR4cykgPT0gMiB7XG4gICAgICAgICAgICBAcmV0dXJuICR4cztcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBAd2FybiAnUGxlYXNlIGF2b2lkIHVzaW5nIHNwYWNlZC1zZXBhcmF0ZWQgbGlzdHMgaW4gcGxhY2VzIHRoYXQgZXhwZWN0IGxpbmtlZC1saXN0cyc7XG4gICAgICAgICAgICBAcmV0dXJuIGxzdC1mcm9tLWFycmF5KCR4cyk7XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIGlmIHR5cGUtb2YoJHhzKSA9PSAnbWFwJyB7XG4gICAgICAgIEByZXR1cm4gbHN0LWZyb20tbWFwKCR4cyk7XG4gICAgfVxuICAgIEByZXR1cm4gKCR4cyBudWxsKTtcbn1cbiIsCgkJIi8vLyBVZ2x5IHBlcmZvcm1hbmNlLWVuaGFuY2luZyBmdW5jdGlvbnMgZm9yIGxpc3RzXG4kZm4tZW1wdHktbWFwOiBtYXAtcmVtb3ZlKCgpLCBudWxsKSAhZGVmYXVsdDtcblxuLy8gQ29uc3VtZSA4IGVsZW1lbnRzIG9mIGxpc3QgYW5kIHJldHVybiAoZWxlbS1hcnJheSwgdGFpbClcbkBmdW5jdGlvbiBfbHN0LWNvbnN1bWUoJHhzKSB7XG4gICAgQGlmIG5vdCAkeHMge1xuICAgICAgICBAcmV0dXJuICgpLCBudWxsO1xuICAgIH1cblxuICAgIC8vIExlbmd0aCAxXG4gICAgJHgxOiBudGgoJHhzLCAxKTtcbiAgICAkeHM6IG50aCgkeHMsIDIpO1xuICAgIEBpZiBub3QgJHhzIHtcbiAgICAgICAgQHJldHVybiAoJHgxLCksIG51bGw7XG4gICAgfVxuXG4gICAgLy8gTGVuZ3RoIDJcbiAgICAkeDI6IG50aCgkeHMsIDEpO1xuICAgICR4czogbnRoKCR4cywgMik7XG4gICAgQGlmIG5vdCAkeHMge1xuICAgICAgICBAcmV0dXJuICgkeDEsICR4MiksIG51bGw7XG4gICAgfVxuXG4gICAgLy8gTGVuZ3RoIDNcbiAgICAkeDM6IG50aCgkeHMsIDEpO1xuICAgICR4czogbnRoKCR4cywgMik7XG4gICAgQGlmIG5vdCAkeHMge1xuICAgICAgICBAcmV0dXJuICgkeDEsICR4MiwgJHgzKSwgbnVsbDtcbiAgICB9XG5cbiAgICAvLyBMZW5ndGggNFxuICAgICR4NDogbnRoKCR4cywgMSk7XG4gICAgJHhzOiBudGgoJHhzLCAyKTtcbiAgICBAaWYgbm90ICR4cyB7XG4gICAgICAgIEByZXR1cm4gKCR4MSwgJHgyLCAkeDMsICR4NCksIG51bGw7XG4gICAgfVxuXG4gICAgLy8gTGVuZ3RoIDVcbiAgICAkeDU6IG50aCgkeHMsIDEpO1xuICAgICR4czogbnRoKCR4cywgMik7XG4gICAgQGlmIG5vdCAkeHMge1xuICAgICAgICBAcmV0dXJuICgkeDEsICR4MiwgJHgzLCAkeDQsICR4NSksIG51bGw7XG4gICAgfVxuXG4gICAgLy8gTGVuZ3RoIDZcbiAgICAkeDY6IG50aCgkeHMsIDEpO1xuICAgICR4czogbnRoKCR4cywgMik7XG4gICAgQGlmIG5vdCAkeHMge1xuICAgICAgICBAcmV0dXJuICgkeDEsICR4MiwgJHgzLCAkeDQsICR4NSwgJHg2KSwgbnVsbDtcbiAgICB9XG5cbiAgICAvLyBMZW5ndGggN1xuICAgICR4NzogbnRoKCR4cywgMSk7XG4gICAgJHhzOiBudGgoJHhzLCAyKTtcbiAgICBAaWYgbm90ICR4cyB7XG4gICAgICAgIEByZXR1cm4gKCR4MSwgJHgyLCAkeDMsICR4NCwgJHg1LCAkeDYsICR4NyksIG51bGw7XG4gICAgfVxuXG4gICAgLy8gTGVuZ3RoIDhcbiAgICAkeDg6IG50aCgkeHMsIDEpO1xuICAgICR4czogbnRoKCR4cywgMik7XG4gICAgQHJldHVybiAoJHgxLCAkeDIsICR4MywgJHg0LCAkeDUsICR4NiwgJHg3LCAkeDgpLCAkeHM7XG59XG5cbi8vIENvbnN1bWUgbiBlbGVtZW50cyBmcm9tIGEgbGlzdCBvZiBwYWlycyBhbmQgcmV0dXJuIChlbGVtLW1hcCwgdGFpbClcbkBmdW5jdGlvbiBfbHN0LWNvbnN1bWUtcGFpcnMoJHhzLCAkbjogMTYpIHtcbiAgICAkcmVzOiAkZm4tZW1wdHktbWFwO1xuICAgIEB3aGlsZSAkeHMgYW5kICRuID4gMCB7XG4gICAgICAgICR4OiBudGgoJHhzLCAxKTtcbiAgICAgICAgJHhzOiBudGgoJHhzLCAyKTtcbiAgICAgICAgJHJlczogbWFwLW1lcmdlKCRyZXMsIChudGgoJHgsIDEpOiBudGgoJHgsIDIpKSk7XG4gICAgICAgICRuOiAkbiAtIDE7XG4gICAgfVxuICAgIEByZXR1cm4gJHJlcywgJHhzO1xufVxuXG4iLAoJCSIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vIExJU1QgRlVOQ1RJT05TXG4vLy8gQGdyb3VwIGFycmF5XG4vLy8gQGF1dGhvciBGw6FiaW8gTWFjw6pkbyBNZW5kZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0ICdmdW5jdGlvbnMnO1xuXG4kZm4tYXJyYXktbm90LWdpdmVuOiB1bmlxdWUtaWQoKSAhZGVmYXVsdDtcbiRmbi1lbXB0eS1hcnJheTogam9pbigoKSwgKCksIGNvbW1hKSAhZGVmYXVsdDtcblxuLy8gQkFTSUMgRlVOQ1RJT05TIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8vIFJldHVybiBhcnJheSBvZiBhIHNpbmdsZSBlbGVtZW50LlxuLy8vXG4vLy8gQGFyZyAkeCAtIFNpbmdsZSBlbGVtZW50IG9mIHJlc3VsdGluZyBhcnJheS5cbkBmdW5jdGlvbiBzaW5nbGV0b24oJHgsICRzZXBhcmF0b3I6IHNwYWNlKSB7XG4gICAgQHJldHVybiBhcHBlbmQoKCksICR4LCAkc2VwYXJhdG9yKTtcbn1cblxuLy8vIFJldHVybiB0cnVlIGlmICRhcnIgY29udGFpbnMgJHZhbHVlLlxuLy8vXG4vLy8gQGFyZyAkYXJyIC0gSW5wdXQgYXJyYXlcbi8vLyBAYXJnICR2YWx1ZSAtIFZhbHVlXG5AZnVuY3Rpb24gY29udGFpbnMoJGFyciwgJHZhbHVlKSB7XG4gICAgQGVhY2ggJHggaW4gJGFyciB7XG4gICAgICAgIEBpZiAkeCA9PSAkdmFsdWUge1xuICAgICAgICAgICAgQHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIEByZXR1cm4gZmFsc2U7XG59XG5cbi8vLyBSZXR1cm4gYW4gYXJyYXkgc2xpY2UuXG4vLy9cbi8vLyBAYXJnICRhcnIgLSBJbnB1dCBhcnJheVxuLy8vIEBhcmcgJHN0YXJ0IC0gU3RhcnRpbmcgaW5kZXhcbi8vLyBAYXJnICRlbmQgLSBFbmRpbmcgaW5kZXggKG9yIG51bGwsIHRvIHNsaWNlIHVwIHRvIHRoZSBlbmQpXG5AZnVuY3Rpb24gc2xpY2UoJGFyciwgJHN0YXJ0LCAkZW5kOiBudWxsKSB7XG4gICAgLy8gVWdseSBcInBlcmZvcm1hdGljXCIgU2FzcyBjb2RlIDstKVxuICAgIC8vIEhvbWV3b3JrOiBtYXliZSB3ZSBjYW4ga2VlcCBwZXJmb3JtYW5jZSBhbmQgd2l0aCBhbiBlbGVnYW50IGNvZGUgYmFzZWRcbiAgICAvLyBvbiBsc3Qtam9pbi1ieVxuICAgICRuOiBsZW5ndGgoJGFycik7XG4gICAgJGVuZDogaWYoJGVuZCA9PSBudWxsLCAkbiwgJGVuZCk7XG4gICAgJHNpemU6ICRlbmQgLSAkc3RhcnQgKyAxO1xuXG4gICAgQGlmICRzaXplIDw9IDMyIHtcbiAgICAgICAgJHJlc3VsdDogKCk7XG4gICAgICAgIEB3aGlsZSAkc2l6ZSA+IDgge1xuICAgICAgICAgICAgJHJlc3VsdDogam9pbigkcmVzdWx0LCAoXG4gICAgICAgICAgICAgICAgbnRoKCRhcnIsICRzdGFydCksIG50aCgkYXJyLCAkc3RhcnQgKyAxKSwgbnRoKCRhcnIsICRzdGFydCArIDIpLFxuICAgICAgICAgICAgICAgIG50aCgkYXJyLCAkc3RhcnQgKyAzKSwgbnRoKCRhcnIsICRzdGFydCArIDQpLCBudGgoJGFyciwgJHN0YXJ0ICsgNSksXG4gICAgICAgICAgICAgICAgbnRoKCRhcnIsICRzdGFydCArIDYpLCBudGgoJGFyciwgJHN0YXJ0ICsgNylcbiAgICAgICAgICAgICkpO1xuICAgICAgICAgICAgJHNpemU6ICRzaXplIC0gODtcbiAgICAgICAgICAgICRzdGFydDogJHN0YXJ0ICsgODtcbiAgICAgICAgfVxuICAgICAgICBAZm9yICRpIGZyb20gJHN0YXJ0IHRocm91Z2ggJGVuZCB7XG4gICAgICAgICAgICAkcmVzdWx0OiBhcHBlbmQoJHJlc3VsdCwgbnRoKCRhcnIsICRpKSk7XG4gICAgICAgIH1cbiAgICAgICAgQHJldHVybiAkcmVzdWx0O1xuICAgIH0gQGVsc2Uge1xuICAgICAgICAkZmlyc3QtZW5kOiAkc3RhcnQgKyBmbG9vcigkc2l6ZSAvIDIpIC0gMTtcbiAgICAgICAgQHJldHVybiBqb2luKFxuICAgICAgICAgICAgICAgIHNsaWNlKCRhcnIsICRzdGFydCwgJGZpcnN0LWVuZCksXG4gICAgICAgICAgICAgICAgc2xpY2UoJGFyciwgJGZpcnN0LWVuZCArIDEsICRlbmQpXG4gICAgICAgICk7XG4gICAgfVxufVxuXG4vLyBDTEFTU0lDIEZQIEZVTkNUSU9OUyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLy8gQXBwbHkgZnVuY3Rpb24gdG8gZXZlcnkgZWxlbWVudCBvZiBhcnJheS5cbi8vL1xuLy8vIEBhcmcgJGZuIC0gQSBiaW5hcnkgb3BlcmF0b3IgZnVuY3Rpb25cbi8vLyBAYXJnICRhcnIgLSBBcnJheVxuQGZ1bmN0aW9uIG1hcCgkZm4sICRhcnIsICRhcmdzLi4uKSB7XG4gICAgJGZuOiBhcy1mdW5jKCRmbik7XG4gICAgJHlzOiAkZm4tZW1wdHktYXJyYXk7XG4gICAgQGVhY2ggJHggaW4gJGFyciB7XG4gICAgICAgICR5czogYXBwZW5kKCR5cywgY2FsbCgkZm4sICR4LCAkYXJncy4uLikpO1xuICAgIH1cbiAgICBAcmV0dXJuICR5cztcbn1cblxuLy8vIEtlZXAgb25seSBlbGVtZW50cyBvZiBhcnJheSB0aGF0IHBhc3MgcHJlZGljYXRlIGZ1bmN0aW9uLlxuLy8vXG4vLy8gQGFyZyAkZm4gLSBBIGJpbmFyeSBvcGVyYXRvciBmdW5jdGlvblxuLy8vIEBhcmcgJGFyciAtIEFycmF5XG5AZnVuY3Rpb24gZmlsdGVyKCRmbiwgJGFyciwgJGFyZ3MuLi4pIHtcbiAgICAkZm46IGFzLWZ1bmMoJGZuKTtcbiAgICAkeXM6ICRmbi1lbXB0eS1hcnJheTtcbiAgICBAZWFjaCAkeCBpbiAkYXJyIHtcbiAgICAgICAgQGlmIGNhbGwoJGZuLCAkeCwgJGFyZ3MuLi4pIHtcbiAgICAgICAgICAgICR5czogYXBwZW5kKCR5cywgJHgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIEByZXR1cm4gJHlzO1xufVxuXG4vLy8gUmVkdWNlIGFycmF5IGJ5IGZ1bmN0aW9uXG4vLy9cbi8vLyBBcmd1bWVudHMgYXJlIHBhc3NlZCBpbiB0aGUgc2FtZSBvcmRlciB0aGF0IHRoZXkgYXBwZWFyIGluIHRoZSB0aGUgZnVuY3Rpb25cbi8vLyBzaWduYXR1cmUsIGkuZS4sIGZuKCR4LCAkaW5pdCwgLi4uKVxuLy8vXG4vLy8gQGFyZyAkZm4gLSBBIGJpbmFyeSBvcGVyYXRvciBmdW5jdGlvblxuLy8vIEBhcmcgJGFyciAtIExpc3Rcbi8vLyBAYXJnICRpbml0IC0gSW5pdGlhbCB2YWx1ZSBvZiByZWR1Y3Rpb25cbkBmdW5jdGlvbiByZWR1Y2UoJGZuLCAkYXJyLCAkaW5pdDogJGZuLWFycmF5LW5vdC1naXZlbiwgJGFyZ3MuLi4pIHtcbiAgICAkZm46IGFzLWZ1bmMoJGZuKTtcbiAgICAkeTogJGluaXQ7XG4gICAgQGVhY2ggJHggaW4gJGFyciB7XG4gICAgICAgICR5OiBpZigkeSA9PSAkZm4tYXJyYXktbm90LWdpdmVuLCAkeCwgY2FsbCgkZm4sICR4LCAkeSwgJGFyZ3MuLi4pKTtcbiAgICB9XG4gICAgQGlmICR5ID09ICRmbi1hcnJheS1ub3QtZ2l2ZW4ge1xuICAgICAgICBAZXJyb3IgXCJFbXB0eSBhcnJheVwiO1xuICAgIH1cbiAgICBAcmV0dXJuICR5O1xufVxuXG4vLy8gS2VlcCBvbmx5IGVsZW1lbnRzIG9mIGFycmF5IHRoYXQgcGFzcyBwcmVkaWNhdGUgZnVuY3Rpb24uXG4vLy9cbi8vLyBAYXJnICRmbiAtIEEgYmluYXJ5IG9wZXJhdG9yIGZ1bmN0aW9uXG4vLy8gQGFyZyAkYXJyIC0gQXJyYXlcbkBmdW5jdGlvbiBzZXBhcmF0ZSgkZm4sICRhcnIsICRhcmdzLi4uKSB7XG4gICAgJGZuOiBhcy1mdW5jKCRmbik7XG4gICAgJGFzOiAkZm4tZW1wdHktYXJyYXk7XG4gICAgJGJzOiAkZm4tZW1wdHktYXJyYXk7XG4gICAgQGVhY2ggJHggaW4gJGFyciB7XG4gICAgICAgIEBpZiBjYWxsKCRmbiwgJHgsICRhcmdzLi4uKSB7XG4gICAgICAgICAgICAkYXM6IGFwcGVuZCgkYXMsICR4KTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAkYnM6IGFwcGVuZCgkYnMsICR4KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBAcmV0dXJuICgkYXMsICRicyk7XG59XG5cbi8vIENIVU5LRUQgSVRFUkFUSU9OIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUaGlzIHdpbGwgYmUgdGhlIGJhc2lzIG9mIGEgc2VyaWVzIG9mIG9wdGltaXphdGlvbnMgZm9yIG1hcCwgZmlsdGVyLCBldGMuXG4vLyBDaHVua2VkIGl0ZXJhdGlvbiBhbGxvdyB1cyB0byBsaW1pdCB0aGUgTyhuXjIpIGJlaGF2aW9yIG9mIHRob3NlIGZ1bmN0aW9uc1xuLy8gdG8gYSBtb3JlIHNjYWxhYmxlIGxpbmVhciBiZWhhdmlvci4gRm9yIHNtYWxsIGFycmF5cyAoYnV0IGhvdyBzbWFsbD8pLFxuLy8gcXVhZHJhdGljIGJlaGF2aW9yIGlzIGZhc3RlciB0aGFuIGxpbmVhci5cblxuLy8vIENvbnZlcnQgYXJyYXkgdG8gYSAobGlua2VkLSlsaXN0IG9mIGFycmF5IGNodW5rcy5cbi8vL1xuLy8vIEBhcmcgJGFyciAtIEFycmF5XG4vLy8gQGFyZyAkbiAtIENodW5rIHNpemVcbi8vLyBAYXJnICRyZXZlcnNlIC0gVHJ1ZSB0byBpbmNsdWRlIGNodW5rcyBpbiByZXZlcnNlIG9yZGVyIChmYXN0ZXIpXG5AZnVuY3Rpb24gY2h1bmtzKCRhcnIsICRuLCAkcmV2ZXJzZTogZmFsc2UpIHtcbiAgICAkc2l6ZS1wbHVzLW9uZTogbGVuZ3RoKCRhcnIpICsgMTtcbiAgICAkY2h1bmtzOiBudWxsO1xuICAgICRlbmQ6IDE7XG4gICAgQHdoaWxlICRlbmQgPCAkc2l6ZS1wbHVzLW9uZSB7XG4gICAgICAgICRjaHVuazogJGZuLWVtcHR5LWFycmF5O1xuICAgICAgICBAaWYgJG4gPT0gOCBhbmQgJHNpemUtcGx1cy1vbmUgPj0gJGVuZCArIDgge1xuICAgICAgICAgICAgJGNodW5rOiAoXG4gICAgICAgICAgICAgICAgbnRoKCRhcnIsICRlbmQpLFxuICAgICAgICAgICAgICAgIG50aCgkYXJyLCAkZW5kICsgMSksXG4gICAgICAgICAgICAgICAgbnRoKCRhcnIsICRlbmQgKyAyKSxcbiAgICAgICAgICAgICAgICBudGgoJGFyciwgJGVuZCArIDMpLFxuICAgICAgICAgICAgICAgIG50aCgkYXJyLCAkZW5kICsgNCksXG4gICAgICAgICAgICAgICAgbnRoKCRhcnIsICRlbmQgKyA1KSxcbiAgICAgICAgICAgICAgICBudGgoJGFyciwgJGVuZCArIDYpLFxuICAgICAgICAgICAgICAgIG50aCgkYXJyLCAkZW5kICsgNyksXG4gICAgICAgICAgICApXG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgQGZvciAkaSBmcm9tICRlbmQgdG8gbWluKCRlbmQgKyAkbiwgJHNpemUtcGx1cy1vbmUpIHtcbiAgICAgICAgICAgICAgICAkY2h1bms6IGFwcGVuZCgkY2h1bmssIG50aCgkYXJyLCAkaSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICRjaHVua3M6ICgkY2h1bmsgJGNodW5rcyk7XG4gICAgICAgICRlbmQ6ICRlbmQgKyAkbjtcbiAgICB9XG4gICAgQHJldHVybiBpZigkcmV2ZXJzZSwgJGNodW5rcywgbHN0LXJldmVyc2UoJGNodW5rcykpO1xufVxuXG4vLy8gSm9pbiBhIChsaW5rZWQtKSBsaXN0IG9mIGNodW5rcyBjcmVhdGVkIGJ5IHRoZSBjaHVua3MgZnVuY3Rpb24uXG4vLy9cbi8vLyBAYXJnICRjaHVua3MgLSBMaXN0IG9mIGNodW5rc1xuLy8vIEBhcmcgJHJldmVyc2UgLSBUcnVlIGlmIGNodW5rcyBhcmUgaW5jbHVkZWQgaW4gcmV2ZXJzZSBvcmRlclxuQGZ1bmN0aW9uIGpvaW4tY2h1bmtzKCRjaHVua3MsICRyZXZlcnNlOiBmYWxzZSkge1xuICAgIEBpZiBub3QgJGNodW5rcyB7XG4gICAgICAgIEByZXR1cm4gJGZuLWVtcHR5LWFycmF5O1xuICAgIH1cblxuICAgICRhMTogbnRoKCRjaHVua3MsIDEpO1xuICAgICRjaHVua3M6IG50aCgkY2h1bmtzLCAyKTtcbiAgICBAaWYgbm90ICRjaHVua3Mge1xuICAgICAgICBAcmV0dXJuICRhMTtcbiAgICB9XG5cbiAgICAkYTI6IG50aCgkY2h1bmtzLCAxKTtcbiAgICAkY2h1bmtzOiBudGgoJGNodW5rcywgMik7XG4gICAgQGlmIG5vdCAkY2h1bmtzIHtcbiAgICAgICAgQHJldHVybiBpZigkcmV2ZXJzZSwgam9pbigkYTIsICRhMSksIGpvaW4oJGExLCAkYTIpKTtcbiAgICB9XG5cbiAgICAkYTM6IG50aCgkY2h1bmtzLCAxKTtcbiAgICAkY2h1bmtzOiBudGgoJGNodW5rcywgMik7XG4gICAgQGlmIG5vdCAkY2h1bmtzIHtcbiAgICAgICAgQHJldHVybiBpZigkcmV2ZXJzZSwgam9pbihqb2luKCRhMywgJGEyKSwgJGExKSwgam9pbihqb2luKCRhMSwgJGEyKSwgJGEzKSk7XG4gICAgfVxuXG4gICAgJGE0OiBudGgoJGNodW5rcywgMSk7XG4gICAgJGNodW5rczogbnRoKCRjaHVua3MsIDIpO1xuICAgICRwcmVmaXg6IGlmKCRyZXZlcnNlLFxuICAgICAgICBqb2luKGpvaW4oJGE0LCAkYTMpLCBqb2luKCRhMiwgJGExKSksXG4gICAgICAgIGpvaW4oam9pbigkYTEsICRhMiksIGpvaW4oJGEzLCAkYTQpKVxuICAgICk7XG4gICAgQGlmIG5vdCAkY2h1bmtzIHtcbiAgICAgICAgQHJldHVybiAkcHJlZml4O1xuICAgIH1cbiAgICBAcmV0dXJuIGlmKCRyZXZlcnNlLFxuICAgICAgICBqb2luKGpvaW4tY2h1bmtzKCRjaHVua3MpLCAkcHJlZml4LCBjb21tYSksXG4gICAgICAgIGpvaW4oJHByZWZpeCwgam9pbi1jaHVua3MoJGNodW5rcyksIGNvbW1hKSk7XG59XG5cbi8vIENPTlZFUlNJT05TIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vLyBDb252ZXJ0IHZhbHVlIHRvIGxpc3QuXG4vLy8gTGlzdHMgYXJlIHJldHVybmVkIGFzLWlzLCBtYXBzIGJlY29tZSBsaXN0IG9mIDItdHVwbGVzIGFuZCBvdGhlciBlbGVtZW50c1xuLy8vIGJlY29tZSBhIGxpc3Qgd2l0aCBhIHNpbmdsZSB2YWx1ZVxuLy8vXG4vLy8gQGF1dGhvciAtIGh0dHBzOi8vaHVnb2dpcmF1ZGVsLmNvbS8yMDE0LzA0LzI4L2Nhc3RpbmctbWFwLWludG8tbGlzdC9cbi8vLyBAYXJnICR2YWx1ZSAtIG9iamVjdCB0byBiZSBjb252ZXJ0ZWRcbi8vLyBAYXJnICRrZWVwIC0gY2FuIGJlICdrZXlzJywgJ3ZhbHVlcycgb3IgJ2JvdGgnIChkZWZhdWx0KS4gSXQgYWZmZWN0cyBjb252ZXJzaW9uIG9mIG1hcHMuXG5AZnVuY3Rpb24gdG8tYXJyYXkoJHZhbHVlLCAka2VlcDogJ2JvdGgnKSB7XG4gICAgJGtlZXA6IGlmKGluZGV4KCdrZXlzJyAndmFsdWVzJywgJGtlZXApLCAka2VlcCwgJ2JvdGgnKTtcblxuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ21hcCcge1xuICAgICAgICAka2V5czogKCk7XG4gICAgICAgICR2YWx1ZXM6ICgpO1xuXG4gICAgICAgIEBlYWNoICRrZXksICR2YWwgaW4gJHZhbHVlIHtcbiAgICAgICAgICAgICRrZXlzOiBhcHBlbmQoJGtleXMsICRrZXkpO1xuICAgICAgICAgICAgJHZhbHVlczogYXBwZW5kKCR2YWx1ZXMsICR2YWwpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRrZWVwID09ICdrZXlzJyB7XG4gICAgICAgICAgICBAcmV0dXJuICRrZXlzO1xuICAgICAgICB9IEBlbHNlIGlmICRrZWVwID09ICd2YWx1ZXMnIHtcbiAgICAgICAgICAgIEByZXR1cm4gJHZhbHVlcztcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBAcmV0dXJuIHppcCgka2V5cywgJHZhbHVlcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAcmV0dXJuIGlmKHR5cGUtb2YoJHZhbHVlKSAhPSAnbGlzdCcsICgkdmFsdWUsKSwgJHZhbHVlKTtcbn1cblxuIiwKCQkiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLyBGVU5DVElPTlMgVEhBVCBPUEVSQVRFIE9OIEJBU0lDIFNBU1MgREFUQVRZUEVTXG4vLy8gQGdyb3VwIG1hcCBmdW5jdGlvbnNcbi8vLyBAYXV0aG9yIEbDoWJpbyBNYWPDqmRvIE1lbmRlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgJ2xpc3QnO1xuXG4kZm4tZW1wdHktbWFwOiBtYXAtcmVtb3ZlKCgpLCBudWxsKTtcblxuLy8vIFJldHVybiB2YWx1ZSBpZiBrZXkgZXhpc3RzIG9uIG1hcCwgb3RoZXJ3aXNlIHJldHVybiBkZWZhdWx0LlxuLy8vXG4vLy8gQGFyZyAkbWFwIC0gbWFwIHRvIG9wZXJhdGUgZnJvbVxuLy8vIEBhcmcgJGtleSAtIGtleVxuLy8vIEBhcmcgJGRlZmF1bHQgLSBkZWZhdWx0IHZhbHVlLiBJZiBub3QgZ2l2ZW4gYW5kIGtleSBub3QgcHJlc2VudCwgcmV0dXJuIG51bGw7XG5AZnVuY3Rpb24gbWFwLXJlYWQoJG1hcCwgJGtleSwgJGRlZmF1bHQ6IG51bGwpIHtcbiAgICAkdmFsdWU6IG1hcC1nZXQoJG1hcCwgJGtleSk7XG4gICAgQHJldHVybiBpZigkdmFsdWUgPT0gbnVsbCwgJGRlZmF1bHQsICR2YWx1ZSk7XG59XG5cbi8vLyBKb2luIGEgKGxpbmtlZC0pbGlzdCBvZiBtYXBzIHRvZ2V0aGVyLiBFbnRyaWVzIGluIGxhdGVyIG1hcHMgb3ZlcnJpZGVcbi8vLyBwcmV2aW91c2x5IGRlZmluZWQgdmFsdWVzLlxuLy8vXG4vLy8gQGFyZyAkbWFwcyAtIGEgbGlzdCBvZiBtYXBzXG5AZnVuY3Rpb24gbWFwLWpvaW4oJG1hcHMpIHtcbiAgICAkbWFwczogdG8tbHN0KCRtYXBzKTtcbiAgICAkcmVzdWx0OiBtYXAtcmVtb3ZlKCgpLCBudWxsKTtcbiAgICBAd2hpbGUgJG1hcHMgIT0gbnVsbCB7XG4gICAgICAgICRtYXA6IGNhcigkbWFwcyk7XG4gICAgICAgICRtYXBzOiBjZHIoJG1hcHMpO1xuICAgICAgICAkcmVzdWx0OiBtYXAtbWVyZ2UoJHJlc3VsdCwgJG1hcCk7XG4gICAgfVxuICAgIEByZXR1cm4gJHJlc3VsdDtcbn1cblxuLy8vIENvbnZlcnQgYXJndW1lbnQgdG8gbWFwLiBXb3JrcyBmb3IgbGlzdHMgb2YgMi10dXBsZXMgYW5kIG1hcHMuXG4vLy9cbi8vLyBAYXJnICRvYmogLSBBIG1hcCBvciBsaXN0IG9iamVjdC5cbkBmdW5jdGlvbiB0by1tYXAoJG9iaikge1xuICAgIEBpZiB0eXBlLW9mKCRvYmopID09IGxpc3Qge1xuICAgICAgICAkcmVzdWx0OiAoKTtcbiAgICAgICAgQGVhY2ggJGssICR2IGluICRvYmoge1xuICAgICAgICAgICAgJHJlc3VsdDogbWFwLW1lcmdlKCRyZXN1bHQsICgkazogJHYpKVxuICAgICAgICB9XG4gICAgICAgIEByZXR1cm4gJHJlc3VsdFxuICAgIH0gQGVsc2UgaWYgKHR5cGUtb2YoJG9iaikgPT0gbWFwKSB7XG4gICAgICAgIEByZXR1cm4gJG9iajtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgQGVycm9yIFwiQ2Fubm90IGNvbnZlcnQgYXJndW1lbnQgdG8gbWFwLlwiXG4gICAgfVxufVxuXG4vLy8gTWVyZ2UgdHdvIG1hcHMgdXAgdG8gb25lIGxldmVsIG9mIG5lc3RpbmcuXG4vLy9cbi8vLyBAYXJnICRtYXAxXG4vLy8gQGFyZyAkbWFwMlxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgICBtYXAtbWVyZ2UtbmVzdGVkKChmb286ICh4OiAxLCB5OiAzKSksXG4vLy8gICAgICAgICAgICAgICAgICAgICAgKGZvbzogKHk6IDIsIHo6IDMpLCBiYXI6IGJheikpO1xuLy8vICAgICAvLyAoZm9vOiAoeDogMSwgeTogMiwgejogMyksIGJhcjogYmF6KVxuQGZ1bmN0aW9uIG1hcC1tZXJnZS1uZXN0ZWQoJG1hcDEsICRtYXAyKSB7XG4gICAgJHJlc3VsdDogbWFwLW1lcmdlKCRtYXAxLCAkbWFwMik7XG5cbiAgICAvLyBNZXJnZSBzdWItbWFwcyBmcm9tIG1hcDFcbiAgICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJG1hcDEge1xuICAgICAgICBAaWYgdHlwZS1vZigkdmFsdWUpID09IG1hcCBhbmQgbWFwLWhhcy1rZXkoJG1hcDIsICRrZXkpIHtcbiAgICAgICAgICAgICR2YWx1ZTogbWFwLW1lcmdlKCR2YWx1ZSwgbWFwLWdldCgkbWFwMiwgJGtleSkpO1xuICAgICAgICAgICAgJHJlc3VsdDogbWFwLW1lcmdlKCRyZXN1bHQsICgka2V5OiAkdmFsdWUpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8vLyBNZXJnZSB0d28gbWFwcyB3aXRoIGFyYml0cmFyeSBuZXN0aW5nLlxuLy8vXG4vLy8gTWFwcyBhcmUgbWVyZ2VkLiBJZiBhIHZhbHVlIGlzIGEgbWFwIGluIG9uZSBkaWN0aW9uYXJ5LCBidXQgbm90IGluIHRoZVxuLy8vIG90aGVyLCBpdCBpcyBtZXJnZWQgYW5kIHNhdmVkIGludG8gdGhlICgka2V5LW5hbWU6ICR2YWx1ZSkuIE51bGwgdmFsdWVzXG4vLy8gYXJlIG9taXR0ZWQuXG4vLy9cbi8vLyBAYXJnICRtYXAxXG4vLy8gQGFyZyAkbWFwMlxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgICBtYXAtbWVyZ2UtbmVzdGVkKChmb286ICh4OiAxLCB5OiAoejogMykpLFxuLy8vICAgICAgICAgICAgICAgICAgICAgIChmb286ICh5OiAodzogNCksIGJhcjogYmF6KSk7XG4vLy8gICAgIC8vIChmb286ICh4OiAxLCB5OiAoejogMywgdzogNCksIGJhcjogYmF6KVxuQGZ1bmN0aW9uIG1hcC1tZXJnZS1kZWVwKCRtYXAxLCAkbWFwMiwgJGtleTogdmFsdWUpIHtcbiAgICAkcmVzdWx0OiBtYXAtbWVyZ2UoJG1hcDEsICRtYXAyKTtcblxuICAgIC8vIE1lcmdlIHN1Yi1tYXBzIGZyb20gbWFwMVxuICAgIEBlYWNoICRrLCAkdjEgaW4gJG1hcDEge1xuICAgICAgICAkdjI6IG1hcC1nZXQoJG1hcDIsICRrKTtcbiAgICAgICAgQGlmIHR5cGUtb2YoJHYxKSA9PSBtYXAgYW5kIHR5cGUtb2YoJHYyKSA9PSBtYXAge1xuICAgICAgICAgICAgJHZhbHVlOiBtYXAtbWVyZ2UtZGVlcCgkdjEsICR2MiwgJGtleSk7XG4gICAgICAgICAgICAkcmVzdWx0OiBtYXAtbWVyZ2UoJHJlc3VsdCwgKCRrOiAkdmFsdWUpKTtcbiAgICAgICAgfSBAZWxzZSBpZiB0eXBlLW9mKCR2MSkgPT0gbWFwIHtcbiAgICAgICAgICAgIEBpZiAkdjIgIT0gbnVsbCBhbmQgJGtleSAhPSBudWxsIHtcbiAgICAgICAgICAgICAgICAkdmFsdWU6IG1hcC1tZXJnZSgkdjEsICgka2V5OiAkdjIpKTtcbiAgICAgICAgICAgICAgICAkcmVzdWx0OiBtYXAtbWVyZ2UoJHJlc3VsdCwgKCRrOiAkdmFsdWUpKTtcbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICRyZXN1bHQ6IG1hcC1tZXJnZSgkcmVzdWx0LCAoJGs6ICR2MSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IEBlbHNlIGlmIHR5cGUtb2YoJHYyKSA9PSBtYXAgYW5kICR2MSAhPSBudWxsIGFuZCAka2V5ICE9IG51bGwge1xuICAgICAgICAgICAgJHZhbHVlOiBtYXAtbWVyZ2UoKCRrZXk6ICR2MSksICR2Mik7XG4gICAgICAgICAgICAkcmVzdWx0OiBtYXAtbWVyZ2UoJHJlc3VsdCwgKCRrOiAkdmFsdWUpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8vLyBGZXRjaCBrZXlzIGluIHBhdGggcmVjdXJzaXZlbHkuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICAgIG1hcC1wYXRoKCgnZm9vJzogKCdiYXInOiAnYmF6JykpLCBMKCdmb28nLCAnYmFyJykpID09PiAnYmF6J1xuLy8vXG4vLy8gQGFyZyAkbWFwIC0gYSBtYXAgdG8gZXh0cmFjdCB0aGUgdmFsdWUgZnJvbVxuLy8vIEBhcmcgJHBhdGggLSAobGlua2VkLSlsaXN0IG9mIHZhbHVlc1xuLy8vIEBhcmcgJGRlZmF1bHQgLSBmYWxsYmFjayB2YWx1ZSBpZiBrZXkgaXMgbm90IHByZXNlbnRcbkBmdW5jdGlvbiBtYXAtcGF0aCgkbWFwLCAkcGF0aCwgJGRlZmF1bHQ6IG51bGwpIHtcbiAgICAkcGF0aDogY29lcmNlLXRvLWxzdCgkcGF0aCk7XG4gICAgQGlmICRwYXRoID09IG51bGwge1xuICAgICAgICBAZXJyb3IgJ0VtcHR5IHBhdGgnO1xuICAgIH1cbiAgICAka2V5OiBjYXIoJHBhdGgpO1xuICAgIEB3aGlsZSBjZHIoJHBhdGgpICE9IG51bGwge1xuICAgICAgICAkcGF0aDogY2RyKCRwYXRoKTtcbiAgICAgICAgJG1hcDogbWFwLWdldCgkbWFwLCAka2V5KTtcbiAgICAgICAgQGlmICRtYXAgPT0gbnVsbCB7XG4gICAgICAgICAgICBAcmV0dXJuICRkZWZhdWx0O1xuICAgICAgICB9XG4gICAgICAgICRrZXk6IGNhcigkcGF0aCk7XG4gICAgfVxuICAgIEByZXR1cm4gbWFwLXJlYWQoJG1hcCwgJGtleSwgJGRlZmF1bHQpO1xufVxuXG4vLy8gUmV0dXJuIHRydWUgaWYgbWFwIGhhcyBhbGwga2V5cyBpbiB0aGUgKGxpbmtlZC0pbGlzdFxuLy8vXG4vLy8gQGFyZyAkbWFwIC0gQSBtYXBwaW5nXG4vLy8gQGFyZyAka2V5cyAtIEEgKGxpbmtlZC0pbGlzdCBvZiB0ZXN0IGtleXMuXG5AZnVuY3Rpb24gbWFwLWhhcy1rZXlzKCRtYXAsICRrZXlzKSB7XG4gICAgJGtleXM6IHRvLWxzdCgka2V5cyk7XG4gICAgQHdoaWxlICRrZXlzICE9IG51bGwge1xuICAgICAgICAka2V5OiBjYXIoJGtleXMpO1xuICAgICAgICAka2V5czogY2RyKCRrZXlzKTtcbiAgICAgICAgQGlmIG5vdCBtYXAtaGFzLWtleSgkbWFwLCAka2V5KSB7XG4gICAgICAgICAgICBAcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuICAgIEByZXR1cm4gdHJ1ZTtcbn1cblxuLy8vIEtlZXAgb25seSB0aGUgZ2l2ZW4ga2V5cyBvbiBtYXAuXG4vLy9cbi8vLyBAYXJnICRtYXAgLSBBIG1hcHBpbmdcbi8vLyBAYXJnICRrZXlzIC0gQSAobGlua2VkLSlsaXN0IG9mIHRlc3Qga2V5cy5cbkBmdW5jdGlvbiBtYXAtc2VsZWN0KCRtYXAsICRrZXlzKSB7XG4gICAgJGtleXM6IHRvLWxzdCgka2V5cyk7XG4gICAgJHJlc3VsdDogbWFwLXJlbW92ZSgoKSwgbnVsbCk7XG5cbiAgICBAd2hpbGUgJGtleXMgIT0gbnVsbCB7XG4gICAgICAgICRrZXk6IGNhcigka2V5cyk7XG4gICAgICAgICRrZXlzOiBjZHIoJGtleXMpO1xuICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJG1hcCwgJGtleSkge1xuICAgICAgICAgICAgJHJlc3VsdDogbWFwLW1lcmdlKCRyZXN1bHQsICgka2V5OiBtYXAtZ2V0KCRtYXAsICRrZXkpKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgQHJldHVybiAkcmVzdWx0O1xufVxuXG4vLy8gUmVtb3ZlIHRoZSBnaXZlbiBrZXlzIGZyb20gbWFwXG4vLy9cbi8vLyBAYXJnICRtYXAgLSBBIG1hcHBpbmdcbi8vLyBAYXJnICRrZXlzIC0gQSAobGlua2VkLSlsaXN0IG9mIHRlc3Qga2V5cy5cbkBmdW5jdGlvbiBtYXAtZXhjbHVkZSgkbWFwLCAka2V5cykge1xuICAgICRrZXlzOiB0by1sc3QoJGtleXMpO1xuICAgICRyZXN1bHQ6ICRtYXA7XG5cbiAgICBAd2hpbGUgJGtleXMgIT0gbnVsbCB7XG4gICAgICAgICRrZXk6IGNhcigka2V5cyk7XG4gICAgICAgICRrZXlzOiBjZHIoJGtleXMpO1xuICAgICAgICAkcmVzdWx0OiBtYXAtcmVtb3ZlKCRyZXN1bHQsICRrZXkpO1xuICAgIH1cbiAgICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8vLyBTZWxlY3QgZmlyc3QgZWxlbWVudCB0aGF0IG1hdGNoZXMgb25lIGVsZW1lbnQgZnJvbSBhbiBhcnJheSBvZiBrZXlzIG9yIHJldHVyblxuLy8vIHRoZSBnaXZlbiBkZWZhdWx0XG4vLy9cbi8vLyBAYXJnICRtYXAgLSBtYXAgdG8gb3BlcmF0ZSBmcm9tXG4vLy8gQGFyZyAka2V5cyAtIGFycmF5IG9mIGtleXNcbi8vLyBAYXJnICRkZWZhdWx0IC0gZGVmYXVsdCB2YWx1ZS5cbkBmdW5jdGlvbiBtYXAtZ2V0LWZpcnN0KCRtYXAsICRrZXlzLCAkZGVmYXVsdDogbnVsbCkge1xuICAgICRrZXlzOiB0by1sc3QoJGtleXMpO1xuXG4gICAgQHdoaWxlICRrZXlzICE9IG51bGwge1xuICAgICAgICAka2V5OiBjYXIoJGtleXMpO1xuICAgICAgICAka2V5czogY2RyKCRrZXlzKTtcbiAgICAgICAgJHZhbHVlOiBtYXAtZ2V0KCRtYXAsICRrZXkpO1xuICAgICAgICBAaWYgJHZhbHVlICE9IG51bGwge1xuICAgICAgICAgICAgQHJldHVybiAkdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgQHJldHVybiAkZGVmYXVsdDtcbn1cblxuLy8vIEZpbHRlciBtYXAgdG8gaW5jbHVkZSBvbmx5IGl0ZW1zIGluIHdoaWNoIHRoZSB2YWx1ZSBwYXNzZXMgYSBwcmVkaWNhdGVcbi8vL1xuLy8vIEBhcmcgJHByZWQgLSBGdW5jdGlvbiBvciBuYW1lIG9mIGJvb2xlYW4gZnVuY3Rpb24gdGhhdCBpcyB1c2VkIHRvIGZpbHRlciBpdGVtcy5cbi8vLyBAYXJnICRtYXAgLSBJbnB1dCBtYXBcbkBmdW5jdGlvbiBtYXAtZmlsdGVyLXZhbHVlcygkcHJlZCwgJG1hcCwgJGFyZ3MuLi4pIHtcbiAgICAkcHJlZDogYXMtZnVuYygkcHJlZCk7XG4gICAgJHJlc3VsdDogKCk7XG4gICAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRtYXAge1xuICAgICAgICBAaWYgY2FsbCgkcHJlZCwgJHZhbHVlLCAkYXJncy4uLikge1xuICAgICAgICAgICAgJHJlc3VsdDogbWFwLW1lcmdlKCRyZXN1bHQsICgka2V5OiAkdmFsdWUpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8vLyBBcHBseSBmdW5jdGlvbiB0byBhbGwgdmFsdWVzIGluIG1hcFxuLy8vXG4vLy8gQGFyZyAkZm4gLSBGdW5jdGlvblxuLy8vIEBhcmcgJG1hcCAtIElucHV0IG1hcFxuQGZ1bmN0aW9uIG1hcC1hcHBseS12YWx1ZXMoJGZuLCAkbWFwLCAkYXJncy4uLikge1xuICAgICRmdW5jOiBhcy1mdW5jKCRmbik7XG4gICAgJHJlc3VsdDogKCk7XG4gICAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRtYXAge1xuICAgICAgICAkcmVzdWx0OiBtYXAtbWVyZ2UoJHJlc3VsdCwgKCRrZXk6IGNhbGwoJGZ1bmMsICR2YWx1ZSwgJGFyZ3MuLi4pKSk7XG4gICAgfVxuICAgIEByZXR1cm4gJHJlc3VsdDtcbn1cblxuLy8vIEFwcGx5IGZ1bmN0aW9uIHRvIHRoZSBrZXlzIG9mIGEgZ2l2ZW4gbWFwLlxuLy8vXG4vLy8gQGFyZyAkZm4gLSBGdW5jdGlvblxuLy8vIEBhcmcgJG1hcCAtIElucHV0IG1hcFxuQGZ1bmN0aW9uIG1hcC1hcHBseS1rZXlzKCRmbiwgJG1hcCwgJGFyZ3MuLi4pIHtcbiAgICAkZm46IGFzLWZ1bmMoJGZuKTtcbiAgICAkYWNjOiAkZm4tZW1wdHktbWFwO1xuICAgIEBlYWNoICRrLCAkdiBpbiAkbWFwIHtcbiAgICAgICAgJGFjYzogbWFwLW1lcmdlKCRhY2MsIChjYWxsKCRmbiwgJGssICRhcmdzLi4uKTogJHYpKTtcbiAgICB9XG4gICAgQHJldHVybiAkYWNjO1xufVxuXG5AZnVuY3Rpb24gX2ZuLXdpdGgtcHJlZml4KCR4LCAkcHJlZml4KSB7XG4gICAgQHJldHVybiAnI3skcHJlZml4fSN7JHh9Jztcbn1cblxuLy8vIEFkZCBwcmVmaXhlcyB0byBhbGwga2V5cyBvZiBtYXBcbi8vL1xuLy8vIEBhcmcgJG1hcCAtIElucHV0IG1hcFxuLy8vIEBhcmcgJHByZWZpeGVzLi4uIC0gU3RyaW5ncyB0byBhZGQgYXMgcHJlZml4XG5AZnVuY3Rpb24gbWFwLXByZWZpeC1rZXlzKCRtYXAsICRwcmVmaXhlcy4uLikge1xuICAgICRyZXM6IG1hcC1yZW1vdmUoKCksIG51bGwpO1xuICAgIEBlYWNoICRwcmVmaXggaW4gJHByZWZpeGVzIHtcbiAgICAgICAgJHJlczogbWFwLW1lcmdlKCRyZXMsIG1hcC1hcHBseS1rZXlzKF9mbi13aXRoLXByZWZpeCwgJG1hcCwgJHByZWZpeCkpO1xuICAgIH1cbiAgICBAcmV0dXJuICRyZXM7XG59XG5cbi8vLyBFeHRyYWN0IGluZm9ybWF0aW9uIG9uICRwYXRoIGZyb20gYSAobGlua2VkLSlsaXN0IG9mIG11bHRpcGxlICRtYXBzLlxuLy8vXG4vLy8gVGhpcyBmdW5jdGlvbiBpcyB1c2VmdWwgdG8gaW1wbGVtZW50IGFjY2VzcyB0byBuZXN0ZWQgY29uZmlndXJhdGlvbiBtYXBzLFxuLy8vIHdoZW4gd2Ugd2FudCB0byBtZXJnZSB0aGUgcmVzdWx0cyBvZiBkaWZmZXJlbnQgc291cmNlcyB0byB3b3JrIGFzIGEgc2luZ2xlXG4vLy8gbmVzdGVkIG1hcHBpbmcuXG4vLy9cbi8vLyBAYXJnICRtYXBzIC0gYSAobGlua2VkLSlsaXN0IG9mIG1hcHMuXG4vLy8gQGFyZyAkcGF0aCAtIGEgKGxpbmtlZC0pbGlzdCBsb2NhdGlvbiBvZiBlbnRyeSBvbiBtYXBzLlxuLy8vIEBhcmcgJGRlZmF1bHQgLSByZXN1bHQgdGhpcyB2YWx1ZSwgaWYgZ2l2ZW4sIHdoZW4gcmVxdWVzdGVkIGRhdGEgaXMgbm90XG4vLy8gICAgICAgICAgICAgICAgIHByZXNlbnQgb24gbWFwc1xuQGZ1bmN0aW9uIG1hcC1wYXRoLW1lcmdlKCRtYXBzLCAkcGF0aCwgJGRlZmF1bHQ6IG51bGwpIHtcbiAgICAkbWFwczogdG8tbHN0KCRtYXBzKTtcbiAgICBAaWYgJG1hcHM9PSBudWxsIHtcbiAgICAgICAgQGVycm9yICdNYXBzIGNhbm5vdCBiZSBlbXB0eSc7XG4gICAgfVxuXG4gICAgLy9ub2luc3BlY3Rpb24gQ3NzSW52YWxpZEZ1bmN0aW9uXG4gICAgQHdoaWxlICRtYXBzIHtcbiAgICAgICAgJG1hcDogbnRoKCRtYXBzLCAxKTtcbiAgICAgICAgJG1hcHM6IG50aCgkbWFwcywgMik7XG4gICAgICAgICRkZWZhdWx0OiBfZm4tbWVyZ2UtZGVmYXVsdCgkZGVmYXVsdCwgbWFwLXBhdGgoJG1hcCwgJHBhdGgpKTtcbiAgICB9XG5cbiAgICBAcmV0dXJuICRkZWZhdWx0O1xufVxuXG5AZnVuY3Rpb24gX2ZuLW1lcmdlLWRlZmF1bHQoJHZhbHVlLCAkbmV3KSB7XG4gICAgQGlmICRuZXcgPT0gbnVsbCB7XG4gICAgICAgIEByZXR1cm4gJHZhbHVlO1xuICAgIH0gQGVsc2UgaWYgJHZhbHVlID09IG51bGwge1xuICAgICAgICBAcmV0dXJuICRuZXc7XG4gICAgfSBAZWxzZSBpZiB0eXBlLW9mKCRuZXcpID09IG1hcCBhbmQgdHlwZS1vZigkdmFsdWUpID09IG1hcCB7XG4gICAgICAgIEByZXR1cm4gbWFwLW1lcmdlLW5lc3RlZCgkdmFsdWUsICRuZXcpO1xuICAgIH0gQGVsc2UgaWYgdHlwZS1vZigkbmV3KSA9PSBtYXAge1xuICAgICAgICBAcmV0dXJuIG1hcC1tZXJnZSgodmFsdWU6ICR2YWx1ZSksICRuZXcpO1xuICAgIH0gQGVsc2UgaWYgdHlwZS1vZigkdmFsdWUpID09IG1hcCB7XG4gICAgICAgIEByZXR1cm4gbWFwLW1lcmdlKCR2YWx1ZSwgKHZhbHVlOiAkbmV3KSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIEByZXR1cm4gJG5ldztcbiAgICB9XG59XG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBBdXhpbGlhcnkgbm9uLWFwaSBmdW5jdGlvbnNcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AZnVuY3Rpb24gX21hcC1nZXQyKCRtYXAsICRrZXkxLCAka2V5Mikge1xuICAgIEByZXR1cm4gbWFwLWdldChtYXAtZ2V0KCRtYXAsICRrZXkxKSwgJGtleTIpO1xufVxuIiwKCQkiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLyBTVFJJTkcgRlVOQ1RJT05TXG4vLy8gQGdyb3VwIHN0cmluZyBmdW5jdGlvbnNcbi8vLyBAYXV0aG9yIEbDoWJpbyBNYWPDqmRvIE1lbmRlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgJ2xpc3QnO1xuXG4vLy8gUGFydGl0aW9uIHN0cmluZyBpbnRvIHNlcGFyYXRvciBhbmQgcmV0dXJuIGFuIGFycmF5IG9mIChwcmVmaXgsIHNlcCwgcG9zdGZpeCkuXG4vLy8gSWYgZWxlbWVudCBpcyBub3QgZm91bmQgb24gc3RyaW5nLCByZXR1cm4gKHN0LCAnJywgJycpLiBJbiBhbGwgY2FzZXMsXG4vLy8gYCRzdCA9PSBzdHIuam9pbihMKHN0ci1wYXJ0aXRpb24oJHN0KS4uLikpYC5cbi8vL1xuLy8vIEBhcmcgJHN0IC0gU3RyaW5nXG4vLy8gQGFyZyAkc2VwIC0gU2VwYXJhdG9yXG5AZnVuY3Rpb24gc3RyLXBhcnRpdGlvbigkc3QsICRzZXApIHtcbiAgICAkaWR4OiBzdHItaW5kZXgoJHN0LCAkc2VwKTtcbiAgICBAaWYgJGlkeCA9PSBudWxsIHtcbiAgICAgICAgQHJldHVybiAoJHN0LCAnJywgJycpO1xuICAgIH1cbiAgICAkcHJlOiBzdHItc2xpY2UoJHN0LCAxLCAkaWR4IC0gMSk7XG4gICAgJHBvc3Q6IHN0ci1zbGljZSgkc3QsICRpZHggKyBzdHItbGVuZ3RoKCRzZXApKTtcbiAgICBAcmV0dXJuICgkcHJlLCAkc2VwLCAkcG9zdCk7XG59XG5cbi8vLyBTcGxpdCBzdHJpbmcgaW50byBzZXBhcmF0b3IgYW5kIHJldHVybiBhIChsaW5rZWQtKWxpc3Qgb2Ygc3RyaW5nc1xuLy8vXG4vLy8gQGFyZyAkc3QgLSBJbml0aWFsIHN0cmluZ1xuLy8vIEBhcmcgJHNlcCAtIFNlcGFyYXRvclxuQGZ1bmN0aW9uIHN0ci1zcGxpdCgkc3QsICRzZXApIHtcbiAgICAkaWR4OiBzdHItaW5kZXgoJHN0LCAkc2VwKTtcbiAgICBAaWYgJGlkeCA9PSBudWxsIHtcbiAgICAgICAgQHJldHVybiAoJHN0IG51bGwpO1xuICAgIH1cbiAgICAkcHJlOiBzdHItc2xpY2UoJHN0LCAxLCAkaWR4IC0gMSk7XG4gICAgJHBvc3Q6IHN0ci1zbGljZSgkc3QsICRpZHggKyBzdHItbGVuZ3RoKCRzZXApKTtcbiAgICBAcmV0dXJuICgkcHJlIHN0ci1zcGxpdCgkcG9zdCwgJHNlcCkpO1xufVxuXG4vLy8gSm9pbiBhbGwgdmFsdWVzIGluIGEgKGxpbmtlZC0pbGlzdCBvZiBzdHJpbmdzIGludG8gYSBzaW5nbGUgc3RyaW5nLlxuLy8vXG4vLy8gQGFyZyAkeHMgLSBJbnB1dCBsaXN0XG4vLy8gQGFyZyAkc2VwIC0gT3B0aW9uYWwgc2VwYXJhdG9yXG5AZnVuY3Rpb24gc3RyLWpvaW4oJHhzLCAkc2VwOiAnJykge1xuICAgICR4czogY29lcmNlLXRvLWxzdCgkeHMpO1xuICAgICR4czogaWYoJHNlcCA9PSAnJywgJHhzLCBsc3QtaW50ZXJzcGVyc2UoJHhzLCAkc2VwKSk7XG4gICAgQHJldHVybiBsc3Qtam9pbi1ieShhZGQsICcnLCAkeHMpO1xufVxuXG4vLy8gUmVwbGFjZSBgJHN1YmAgd2l0aCBgJHJlcGxhY2VgIGluIGAkc3RgXG4vLy9cbi8vLyBAYXJnICRzdCAtIEluaXRpYWwgc3RyaW5nXG4vLy8gQGFyZyAkc3ViIC0gU3Vic3RyaW5nXG4vLy8gQGFyZyAkcmVwbGFjZSAtIFJlcGxhY2VtZW50IChkZWZhdWx0cyB0byBlbXB0eSBzdHJpbmcpXG5AZnVuY3Rpb24gc3RyLXJlcGxhY2UoJHN0LCAkc3ViLCAkcmVwbGFjZTogJycpIHtcbiAgICBAcmV0dXJuIHN0ci1qb2luKHN0ci1zcGxpdCgkc3QsICRzdWIpLCAkcmVwbGFjZSk7XG59XG5cbi8vLyBDaGVja3MgaWYgc3RyaW5nIHN0YXJ0cyB3aXRoIGdpdmVuIHN1Yi1zdHJpbmdcbi8vL1xuLy8vIEBhcmcgJHN0ciAtIGlucHV0IHN0cmluZ1xuLy8vIEBhcmcgJHByZWZpeCAtIHN1YnN0cmluZyBwcmVmaXhcbkBmdW5jdGlvbiBzdHItc3RhcnRzLXdpdGgoJHN0ciwgJHByZWZpeCkge1xuICAgIEByZXR1cm4gc3RyLXNsaWNlKCRzdHIsIDEsIHN0ci1sZW5ndGgoJHByZWZpeCkpID09ICRwcmVmaXg7XG59XG5cbi8vLyBDaGVja3MgaWYgc3RyaW5nIGVuZHMgd2l0aCBnaXZlbiBzdWItc3RyaW5nXG4vLy9cbi8vLyBAYXJnICRzdHIgLSBpbnB1dCBzdHJpbmdcbi8vLyBAYXJnICRzdWZmaXgtIHN1YnN0cmluZyBzdWZmaXhcbkBmdW5jdGlvbiBzdHItZW5kcy13aXRoKCRzdHIsICRzdWZmaXgpIHtcbiAgICAkbjogc3RyLWxlbmd0aCgkc3VmZml4KTtcbiAgICBAaWYgJG4gPiBzdHItbGVuZ3RoKCRzdHIpIHtcbiAgICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgJGVuZDogc3RyLXNsaWNlKCRzdHIsIC0kbik7XG4gICAgQHJldHVybiAkZW5kID09ICRzdWZmaXg7XG59XG5cblxuLy8vIEludGVycG9sYXRlIGFsbCBzdWJzdGl0dXRpb24gZWxlbWVudHMgaW4gdGhlIGdpdmVuIHRlbXBsYXRlIHN0cmluZy5cbi8vLyBJbnRlcnBvbGF0aW9uIHBvaW50cyBpbiB0aGUgdGVtcGxhdGUgc3RyaW5nIGFyZSBpZGVudGlmaWVkIGFzICQxLCAkMiwgJDMsIGV0Y1xuLy8vIGFuZCAkc3VicyBpcyBhIChsaW5rZWQtKSBsaXN0IG9mIHZhbHVlcy5cbi8vL1xuLy8vIEBhcmcgJHN0IC0gVGVtcGxhdGUgc3RyaW5nLlxuLy8vIEBhcmcgJHN1YnMgLSAobGlua2VkLSlsaXN0IG9mIHN1YnN0aXR1dGlvbiB2YWx1ZXMuXG5AZnVuY3Rpb24gc3RyLWludGVycG9sYXRlKCRzdCwgJHN1YnMpIHtcbiAgICAkc3ViczogY29lcmNlLXRvLWxzdCgkc3Vicyk7XG4gICAgJGlkeDogMTtcbiAgICBAd2hpbGUgJHN1YnMge1xuICAgICAgICAkc3ViOiBjYXIoJHN1YnMpO1xuICAgICAgICAkc3ViczogY2RyKCRzdWJzKTtcbiAgICAgICAgJHN0OiBzdHItcmVwbGFjZSgkc3QsICckI3skaWR4fScsICRzdWIpO1xuICAgICAgICAkaWR4OiAkaWR4ICsgMTtcbiAgICB9XG4gICAgQHJldHVybiAkc3Q7XG59XG5cbiIsCgkJIi8vLy9cbi8vLyBOVU1CRVIgRlVOQ1RJT05TXG4vLy8gQGdyb3VwIG51bWVyaWMgZnVuY3Rpb25zXG4vLy8gQGF1dGhvciBGw6FiaW8gTWFjw6pkbyBNZW5kZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5AaW1wb3J0ICdsaXN0JztcblxuLy8vIENvbnZlcnQgYXJndW1lbnQgdG8gcGVyY2VudGFnZS5cbi8vLyBAYXJnICR2YWx1ZSAtIEEgbnVtYmVyIGlucHV0XG5AZnVuY3Rpb24gcGMoJHZhbHVlKSB7XG4gICAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnJyB7XG4gICAgICAgIEByZXR1cm4gJHZhbHVlICogMTAwJTtcbiAgICB9IEBlbHNlIGlmIHVuaXQoJHZhbHVlKSA9PSAnJScge1xuICAgICAgICBAcmV0dXJuICR2YWx1ZTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgQGVycm9yICdDYW5ub3QgY29udmVydCAje3VuaXQoJHZhbHVlKX0gdG8gcGVyY2VudC4nO1xuICAgIH1cbn1cblxuLy8vIFJhaXNlIHZhbHVlIHRvIGludGVnZXIgcG93ZXIuXG4vLy8gQGFyZyAkdmFsdWUgLSBBIG51bWJlciBpbnB1dFxuLy8vIEBhcmcgJG4gLSBFeHBvbmVudFxuQGZ1bmN0aW9uIHBvdygkdmFsdWUsICRuKSB7XG4gICAgJHJlc3VsdDogMTtcbiAgICBAaWYgJG4gPiAwIHtcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbiB7XG4gICAgICAgICAgICAkcmVzdWx0OiAkcmVzdWx0ICogJHZhbHVlO1xuICAgICAgICB9XG4gICAgfSBAZWxzZSBpZiAkbiA8IDAge1xuICAgICAgICAkbjogLSRuO1xuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRuIHtcbiAgICAgICAgICAgICRyZXN1bHQ6ICRyZXN1bHQgLyAkdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgQHJldHVybiAkcmVzdWx0O1xufVxuXG4vLy8gUmV0dXJuIGEgKGxpbmtlZC0pbGlzdCB3aXRoIGFuIGV4cG9uZW50aWFsIHByb2dyZXNzaW9uIG9mIG51bWJlcnMgZm9ybWluZ1xuLy8vIHRoZSBnaXZlbiByYXRpby5cbi8vL1xuLy8vIEBhcmcgJHJhdGlvIC0gUmF0aW8gYmV0d2VlbiB0d28gc3VjY2Vzc2l2ZSBudW1iZXJzXG4vLy8gQGFyZyAkc2l6ZSAtIFNpemUgb2YgdGhlIHJlc3VsdGluZyBsaXN0XG4vLy8gQGFyZyAkaW5pdGlhbCAtIEluaXRpYWwgdmFsdWUgKGRlZmF1bHRzIHRvIDEpXG5AZnVuY3Rpb24gZXhwb25lbnRpYWwtcHJvZ3Jlc3Npb24oJHJhdGlvLCAkc2l6ZSwgJGluaXQ6IDEsICRyZXZlcnNlOiBmYWxzZSkge1xuICAgICR4czogKCRpbml0IG51bGwpO1xuICAgIEBmb3IgJGkgZnJvbSAxIHRvICRzaXplIHtcbiAgICAgICAgJGluaXQ6ICRpbml0ICogJHJhdGlvO1xuICAgICAgICAkeHM6ICgkaW5pdCAkeHMpO1xuICAgIH1cbiAgICBAcmV0dXJuIGlmKCRyZXZlcnNlLCAkeHMsIGxzdC1yZXZlcnNlKCR4cykpO1xufVxuXG4vLy8gQ29tcHV0ZXMgdGhlIHNxdWFyZSByb290IG9mIGEgbnVtYmVyIHVzaW5nIHRoZSBCYWJ5bG9uaWFuL05ld3RvbidzIG1ldGhvZC5cbkBmdW5jdGlvbiBzcXJ0KCR4KSB7XG4gICAgQGlmICR4IDwgMCB7XG4gICAgICAgIEBlcnJvciAnQ2Fubm90IGNvbXB1dGUgdGhlIHNxdWFyZSByb290IG9mIGEgbmVnYXRpdmUgbnVtYmVyJztcbiAgICB9XG4gICAgJHNxcnQ6IDE7XG4gICAgQHdoaWxlIGFicygkc3FydCAqICRzcXJ0IC0gJHgpID4gMC4wMDAwMDAxIHtcbiAgICAgICAgJHNxcnQ6IDAuNSAqICgkc3FydCArICR4IC8gJHNxcnQpO1xuICAgIH1cbiAgICBAcmV0dXJuICRzcXJ0O1xufVxuXG4vLy8gUmV0dXJuIC0xLCAwIG9yIDEgYWNjb3JkaW5nIHdpdGggdGhlIHNpZ24gb2YgYSBudW1lcmljYWwgaW5wdXQuXG5AZnVuY3Rpb24gc2lnbigkeCkge1xuICAgIEBpZiAkeCA+IDAge1xuICAgICAgICBAcmV0dXJuIDE7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIEByZXR1cm4gaWYoJHggPT0gMCwgMCwgLTEpO1xuICAgIH1cbn1cblxuLy8vIEFkZCBgJHVuaXRgIHRvIGAkdmFsdWVgXG4vLy9cbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcbi8vLyBAYXJnICR2YWx1ZSAtIFZhbHVlIHRvIGFkZCB1bml0IHRvXG4vLy8gQGFyZyAkdW5pdCAtIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdW5pdFxuQGZ1bmN0aW9uIHRvLWxlbmd0aCgkdmFsdWUsICR1bml0KSB7XG4gICAgJHVuaXRzOiAoXG4gICAgICAgICdweCc6IDFweCwgJ2NtJzogMWNtLCAnbW0nOiAxbW0sICclJzogMSUsICdjaCc6IDFjaCwgJ3BjJzogMXBjLFxuICAgICAgICAnaW4nOiAxaW4sICdlbSc6IDFlbSwgJ3JlbSc6IDFyZW0sICdwdCc6IDFwdCwgJ2V4JzogMWV4LCAndncnOiAxdncsXG4gICAgICAgICd2aCc6IDF2aCwgJ3ZtaW4nOiAxdm1pbiwgJ3ZtYXgnOiAxdm1heCk7XG4gICAgQGlmIG5vdCBpbmRleChtYXAta2V5cygkdW5pdHMpLCAkdW5pdCkge1xuICAgICAgICBAZXJyb3IgJ0ludmFsaWQgdW5pdCBgI3skdW5pdH1gLic7XG4gICAgfVxuICAgIEByZXR1cm4gJHZhbHVlICogbWFwLWdldCgkdW5pdHMsICR1bml0KTtcbn1cblxuLy8vIENvbnZlcnQgdmFsdWUgdG8gbnVtYmVyXG4vLy8gU2VlOiBodHRwczovL3d3dy5zYXNzbWVpc3Rlci5jb20vZ2lzdC85ZmExOWQyNTQ4NjRmMzNkNGE4MFxuLy8vXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXG4vLy8gQGFyZyAkdmFsdWUgLSBJbnB1dCBzdHJpbmdcbkBmdW5jdGlvbiB0by1udW1iZXIoJHZhbHVlKSB7XG4gICAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XG4gICAgICAgIEByZXR1cm4gJHZhbHVlO1xuICAgIH0gQGVsc2UgaWYgdHlwZS1vZigkdmFsdWUpICE9ICdzdHJpbmcnIHtcbiAgICAgICAgQGVycm9yICdWYWx1ZSBmb3IgYHRvLW51bWJlcmAgc2hvdWxkIGJlIGEgbnVtYmVyIG9yIGEgc3RyaW5nLic7XG4gICAgfVxuXG4gICAgJHJlc3VsdDogMDtcbiAgICAkZGlnaXRzOiAwO1xuICAgICRtaW51czogc3RyLXNsaWNlKCR2YWx1ZSwgMSwgMSkgPT0gJy0nO1xuICAgICRudW1iZXJzOiAoJzAnOiAwLCAnMSc6IDEsICcyJzogMiwgJzMnOiAzLCAnNCc6IDQsICc1JzogNSwgJzYnOiA2LCAnNyc6IDcsICc4JzogOCwgJzknOiA5KTtcblxuICAgIEBmb3IgJGkgZnJvbSBpZigkbWludXMsIDIsIDEpIHRocm91Z2ggc3RyLWxlbmd0aCgkdmFsdWUpIHtcbiAgICAgICAgJGNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgJGksICRpKTtcblxuICAgICAgICBAaWYgbm90IChpbmRleChtYXAta2V5cygkbnVtYmVycyksICRjaGFyYWN0ZXIpIG9yICRjaGFyYWN0ZXIgPT0gJy4nKSB7XG4gICAgICAgICAgICBAcmV0dXJuIHRvLWxlbmd0aChpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KSwgc3RyLXNsaWNlKCR2YWx1ZSwgJGkpKVxuICAgICAgICB9XG4gICAgICAgIEBpZiAkY2hhcmFjdGVyID09ICcuJyB7XG4gICAgICAgICAgICAkZGlnaXRzOiAxO1xuICAgICAgICB9IEBlbHNlIGlmICRkaWdpdHMgPT0gMCB7XG4gICAgICAgICAgICAkcmVzdWx0OiAkcmVzdWx0ICogMTAgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAkZGlnaXRzOiAkZGlnaXRzICogMTA7XG4gICAgICAgICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3RlcikgLyAkZGlnaXRzO1xuICAgICAgICB9XG4gICAgfVxuICAgIEByZXR1cm4gaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCk7XG59XG5cbiIsCgkJIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8gQ09MT1IgVFJBTlNGT1JNQVRJT05TIEFORCBVVElMSVRJRVNcbi8vLyBAZ3JvdXAgQ29sb3Jcbi8vLyBAYXV0aG9yIEbDoWJpbyBNYWPDqmRvIE1lbmRlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuJGZuLWNvbnRyYXN0LWNvbG9yLXdoaXRlOiB3aGl0ZSAhZGVmYXVsdDtcbiRmbi1jb250cmFzdC1jb2xvci1ibGFjazogYmxhY2sgIWRlZmF1bHQ7XG4kZm4tbHVtaW5hbmNlLWludGVycG9sYXRpb246IG51bGw7XG5cbi8vLyBDYWxjdWxhdGUgbHVtaW5hbmNlIG9mIGFyZ3VtZW50LiBSZXR1cm5zIGEgdmFsdWUgYmV0d2VlbiAwIGFuZCAxLlxuLy8vXG4vLy8gU2VlIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9XQ0FHMjAtVEVDSFMvRzE3Lmh0bWwjRzE3LXRlc3RzIGFuZFxuLy8vIGh0dHBzOi8vbWVkaXVtLmNvbS9kZXYtY2hhbm5lbC91c2luZy1zYXNzLXRvLWF1dG9tYXRpY2FsbHktcGljay10ZXh0LWNvbG9ycy00YmE3NjQ1ZDI3OTZcbi8vL1xuLy8vIEBhcmcgJGNvbG9yIC0gQ29sb3IgYXJndW1lbnQuXG5AZnVuY3Rpb24gbHVtaW5hbmNlKCRjb2xvcikge1xuICAgICRyZWQ6IG50aCgkZm4tbHVtaW5hbmNlLWludGVycG9sYXRpb24sIHJlZCgkY29sb3IpICsgMSk7XG4gICAgJGdyZWVuOiBudGgoJGZuLWx1bWluYW5jZS1pbnRlcnBvbGF0aW9uLCBncmVlbigkY29sb3IpICsgMSk7XG4gICAgJGJsdWU6IG50aCgkZm4tbHVtaW5hbmNlLWludGVycG9sYXRpb24sIGJsdWUoJGNvbG9yKSArIDEpO1xuICAgIEByZXR1cm4gLjIxMjYgKiAkcmVkICsgLjcxNTIgKiAkZ3JlZW4gKyAuMDcyMiAqICRibHVlO1xufVxuXG4vLy8gQ2FsY3VsYXRlIHRoZSBjb250cmFzdCByYXRpbyBiZXR3ZWVuIHR3byBjb2xvcnMgaW4gYSBzY2FsZSBvZiAwIHRvIDEuXG4vLy8gU2VlIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9XQ0FHMjAtVEVDSFMvRzE3Lmh0bWwjRzE3LXRlc3RzXG4vLy9cbi8vLyBAYXJnICRjb2xvciAtIENvbG9yIGFyZ3VtZW50LlxuLy8vIEBhcmcgJG90aGVyIC0gQ29sb3IgdG8gY29udHJhc3Qgd2l0aCAkY29sb3JcbkBmdW5jdGlvbiBjb250cmFzdC1yYXRpbygkY29sb3IsICRvdGhlcikge1xuICAgICRiYWNrLWx1bTogbHVtaW5hbmNlKCRjb2xvcikgKyAwLjAxO1xuICAgICRmb3JlLWx1bTogbHVtaW5hbmNlKCRvdGhlcikgKyAwLjAxO1xuICAgIEByZXR1cm4gKG1heCgkYmFjay1sdW0sICRmb3JlLWx1bSkgLyBtaW4oJGJhY2stbHVtLCAkZm9yZS1sdW0pIC0gMSkgLyAxMDA7XG59XG5cbi8vLyBDaG9vc2UgdGhlIGNvbG9yIHRoYXQgbWFrZXMgYSBiZXR0ZXIgY29udHJhc3Qgd2l0aCB0aGUgZmlyc3QgYXJndW1lbnQgYW1vbmdcbi8vLyB0d28gb3B0aW9ucyBgJG9wdDFgIGFuZCBgJG9wdDJgLlxuLy8vXG4vLy8gQGFyZyAkY29sb3IgLSBSZWZlcmVuY2UgY29sb3Jcbi8vLyBAYXJnICRjb2xvci0xIC0gRmlyc3Qgb3V0cHV0IG9wdGlvblxuLy8vIEBhcmcgJGNvbG9yLTIgLSBTZWNvbmQgb3V0cHV0IG9wdGlvblxuLy8vIEBhcmcgJGJpYXMgLSBBIGZhY3RvciBiZXR3ZWVuIC0xIGFuZCAxIHRvIGFydGlmaWNpYWxseSBmYXZvciAkY29sb3ItMSBvdmVyICRjb2xvci0yXG5AZnVuY3Rpb24gY2hvb3NlLWNvbnRyYXN0LWNvbG9yKCRjb2xvciwgJGNvbG9yLTE6IG51bGwsICRjb2xvci0yOiBudWxsLCAkYmlhczogMCkge1xuICAgIEBpZiBub3QgJGNvbG9yIHtcbiAgICAgICAgQHJldHVybiBudWxsO1xuICAgIH1cblxuICAgICRjb2xvci0xOiAkY29sb3ItMSBvciAkZm4tY29udHJhc3QtY29sb3Itd2hpdGU7XG4gICAgJGNvbG9yLTI6ICRjb2xvci0yIG9yICRmbi1jb250cmFzdC1jb2xvci1ibGFjaztcblxuICAgIEBpZiAkY29sb3IgPT0gdHJhbnNwYXJlbnQge1xuICAgICAgICBAcmV0dXJuIGlmKGxpZ2h0bmVzcygkY29sb3ItMSkgPCBsaWdodG5lc3MoJGNvbG9yLTIpLCAkY29sb3ItMSwgJGNvbG9yLTIpO1xuICAgIH1cbiAgICBAaWYgKGNvbnRyYXN0LXJhdGlvKCRjb2xvciwgJGNvbG9yLTEpICogKDEgKyAkYmlhcylcbiAgICAgICAgICAgID4gY29udHJhc3QtcmF0aW8oJGNvbG9yLCAkY29sb3ItMikgKiAoMSAtICRiaWFzKSkge1xuICAgICAgICBAcmV0dXJuICRjb2xvci0xO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICBAcmV0dXJuICRjb2xvci0yO1xuICAgIH1cbn1cblxuLy8gSW50ZXJwb2xhdGUgbHVtaW5hbmNlIGZ1bmN0aW9uXG4kZm4tbHVtaW5hbmNlLWludGVycG9sYXRpb246IChcbiAgICAwLjAsXG4gICAgMC4wMDAzMDM1MjY5ODM1NDg4Mzc1LFxuICAgIDAuMDAwNjA3MDUzOTY3MDk3Njc1LFxuICAgIDAuMDAwOTEwNTgwOTUwNjQ2NTEyNSxcbiAgICAwLjAwMTIxNDEwNzkzNDE5NTM1LFxuICAgIDAuMDAxNTE3NjM0OTE3NzQ0MTg3NCxcbiAgICAwLjAwMTgyMTE2MTkwMTI5MzAyNSxcbiAgICAwLjAwMjEyNDY4ODg4NDg0MTg2MjYsXG4gICAgMC4wMDI0MjgyMTU4NjgzOTA3LFxuICAgIDAuMDAyNzMxNzQyODUxOTM5NTM3MyxcbiAgICAwLjAwMzAzNTI2OTgzNTQ4ODM3NSxcbiAgICAwLjAwMzM0NjUzNTc2Mzg5OTE2MSxcbiAgICAwLjAwMzY3NjUwNzMyNDA0NzQzNixcbiAgICAwLjAwNDAyNDcxNzAxODQ5NjMwNyxcbiAgICAwLjAwNDM5MTQ0MjAzNzQxMDI5MyxcbiAgICAwLjAwNDc3Njk1MzQ4MDY5MzcyOSxcbiAgICAwLjAwNTE4MTUxNjcwMjMzODM4NixcbiAgICAwLjAwNTYwNTM5MTYyNDIwMjcyMyxcbiAgICAwLjAwNjA0ODgzMzAyMjg1NzA1NCxcbiAgICAwLjAwNjUxMjA5MDc5MjU5NDQ3NSxcbiAgICAwLjAwNjk5NTQxMDE4NzI2NTM4NyxcbiAgICAwLjAwNzQ5OTAzMjA0MzIyNjE3NSxcbiAgICAwLjAwODAyMzE5Mjk4NTM4NDk5NCxcbiAgICAwLjAwODU2ODEyNTYxODA2OTMwNyxcbiAgICAwLjAwOTEzNDA1ODcwMjIyMDc4NyxcbiAgICAwLjAwOTcyMTIxNzMyMDIzNzg1LFxuICAgIDAuMDEwMzI5ODIzMDI5NjI2OTM2LFxuICAgIDAuMDEwOTYwMDk0MDA2NDg4MjQ2LFxuICAgIDAuMDExNjEyMjQ1MTc5NzQzODg1LFxuICAgIDAuMDEyMjg2NDg4MzU2OTE1ODcyLFxuICAgIDAuMDEyOTgzMDMyMzQyMTczMDEyLFxuICAgIDAuMDEzNzAyMDgzMDQ3Mjg5Njg2LFxuICAgIDAuMDE0NDQzODQzNTk2MDkyNTQ1LFxuICAgIDAuMDE1MjA4NTE0NDIyOTEyNzEsXG4gICAgMC4wMTU5OTYyOTMzNjU1MDk2MyxcbiAgICAwLjAxNjgwNzM3NTc1Mjg4NzM4NCxcbiAgICAwLjAxNzY0MTk1NDQ4ODM4NDA3OCxcbiAgICAwLjAxODUwMDIyMDEyODM3OTY5NyxcbiAgICAwLjAxOTM4MjM2MDk1NjkzNTcyMyxcbiAgICAwLjAyMDI4ODU2MzA1NjY1MjQsXG4gICAgMC4wMjEyMTkwMTAzNzYwMDM1NTUsXG4gICAgMC4wMjIxNzM4ODQ3OTMzODczODUsXG4gICAgMC4wMjMxNTMzNjYxNzgxMTA0MSxcbiAgICAwLjAyNDE1NzYzMjQ0ODUwNDc1NixcbiAgICAwLjAyNTE4Njg1OTYyNzM2MTYzLFxuICAgIDAuMDI2MjQxMjIxODk0ODQ5ODk4LFxuICAgIDAuMDI3MzIwODkxNjM5MDc0ODk0LFxuICAgIDAuMDI4NDI2MDM5NTA0NDIwNzkzLFxuICAgIDAuMDI5NTU2ODM0NDM3ODA4OCxcbiAgICAwLjAzMDcxMzQ0MzczMjk5MzYzNSxcbiAgICAwLjAzMTg5NjAzMzA3MzAxMTUzLFxuICAgIDAuMDMzMTA0NzY2NTcwODg1MDU1LFxuICAgIDAuMDM0MzM5ODA2ODA4NjgyMTcsXG4gICAgMC4wMzU2MDEzMTQ4NzUwMjAzNCxcbiAgICAwLjAzNjg4OTQ1MDQwMTEwMDA0LFxuICAgIDAuMDM4MjA0MzcxNTk1MzQ2NSxcbiAgICAwLjAzOTU0NjIzNTI3NjczMjg0LFxuICAgIDAuMDQwOTE1MTk2OTA2ODUzMTksXG4gICAgMC4wNDIzMTE0MTA2MjA4MDk2NzUsXG4gICAgMC4wNDM3MzUwMjkyNTY5NzM0NjUsXG4gICAgMC4wNDUxODYyMDQzODU2NzU1NCxcbiAgICAwLjA0NjY2NTA4NjMzNjg4MDA5NSxcbiAgICAwLjA0ODE3MTgyNDIyNjg4OTQyLFxuICAgIDAuMDQ5NzA2NTY1OTg0MTI3MjMsXG4gICAgMC4wNTEyNjk0NTgzNzQwNDMyNCxcbiAgICAwLjA1Mjg2MDY0NzAyMzE4MDI0NixcbiAgICAwLjA1NDQ4MDI3NjQ0MjQ0MjM3LFxuICAgIDAuMDU2MTI4NDkwMDQ5NjAwMDksXG4gICAgMC4wNTc4MDU0MzAxOTEwNjcyMyxcbiAgICAwLjA1OTUxMTIzODE2Mjk4MTIsXG4gICAgMC4wNjEyNDYwNTQyMzE2MTc2MSxcbiAgICAwLjA2MzAxMDAxNzY1MzE2NzY3LFxuICAgIDAuMDY0ODAzMjY2NjkyOTA1NzcsXG4gICAgMC4wNjY2MjU5Mzg2NDM3NzI4OSxcbiAgICAwLjA2ODQ3ODE2OTg0NDQwMDE3LFxuICAgIDAuMDcwMzYwMDk1Njk2NTk1ODgsXG4gICAgMC4wNzIyNzE4NTA2ODIzMTc0OCxcbiAgICAwLjA3NDIxMzU2ODM4MDE0OTYzLFxuICAgIDAuMDc2MTg1MzgxNDgxMzA3ODUsXG4gICAgMC4wNzgxODc0MjE4MDUxODYzMyxcbiAgICAwLjA4MDIxOTgyMDMxNDQ2ODMyLFxuICAgIDAuMDgyMjgyNzA3MTI5ODE0OCxcbiAgICAwLjA4NDM3NjIxMTU0NDE0ODgyLFxuICAgIDAuMDg2NTAwNDYyMDM2NTQ5NzYsXG4gICAgMC4wODg2NTU1ODYyODU3NzI5NCxcbiAgICAwLjA5MDg0MTcxMTE4MzQwNzY4LFxuICAgIDAuMDkzMDU4OTYyODQ2Njg3NDUsXG4gICAgMC4wOTUzMDc0NjY2MzA5NjQ3LFxuICAgIDAuMDk3NTg3MzQ3MTQxODYyNDYsXG4gICAgMC4wOTk4OTg3MjgyNDcxMTM4OSxcbiAgICAwLjEwMjI0MTczMzA4ODEwMTMyLFxuICAgIDAuMTA0NjE2NDg0MDkxMTA0MTksXG4gICAgMC4xMDcwMjMxMDI5NzgyNjc2MSxcbiAgICAwLjEwOTQ2MTcxMDc3ODI5OTMzLFxuICAgIDAuMTExOTMyNDI3ODM2OTA1NixcbiAgICAwLjExNDQzNTM3MzgyNjk3MzczLFxuICAgIDAuMTE2OTcwNjY3NzU4NTEwODQsXG4gICAgMC4xMTk1Mzg0Mjc5ODgzNDU2MixcbiAgICAwLjEyMjEzODc3MjIyOTYwMTg3LFxuICAgIDAuMTI0NzcxODE3NTYwOTUwNDksXG4gICAgMC4xMjc0Mzc2ODA0MzU2NDc0MyxcbiAgICAwLjEzMDEzNjQ3NjY5MDM2NDMsXG4gICAgMC4xMzI4NjgzMjE1NTM4MTc5OCxcbiAgICAwLjEzNTYzMzMyOTY1NTIwNTY2LFxuICAgIDAuMTM4NDMxNjE1MDMyNDUxODMsXG4gICAgMC4xNDEyNjMyOTExNDAyNzE2NCxcbiAgICAwLjE0NDEyODQ3MDg1ODA1Nzc3LFxuICAgIDAuMTQ3MDI3MjY2NDk3NTk0OTgsXG4gICAgMC4xNDk5NTk3ODk4MTA2MDg1NixcbiAgICAwLjE1MjkyNjE1MTk5NjE1MDE3LFxuICAgIDAuMTU1OTI2NDYzNzA3ODI3NCxcbiAgICAwLjE1ODk2MDgzNTA2MDg4MDQsXG4gICAgMC4xNjIwMjkzNzU2MzkxMTEsXG4gICAgMC4xNjUxMzIxOTQ1MDE2Njc2LFxuICAgIDAuMTY4MjY5NDAwMTg5NjkwNzUsXG4gICAgMC4xNzE0NDExMDA3MzI4MjI2LFxuICAgIDAuMTc0NjQ3NDAzNjU1NTg1MDQsXG4gICAgMC4xNzc4ODg0MTU5ODM2MjkxMixcbiAgICAwLjE4MTE2NDI0NDI0OTg2MDIyLFxuICAgIDAuMTg0NDc0OTk0NTAwNDQxLFxuICAgIDAuMTg3ODIwNzcyMzAwNjc3ODcsXG4gICAgMC4xOTEyMDE2ODI3NDA3OTEzOCxcbiAgICAwLjE5NDYxNzgzMDQ0MTU3NTgsXG4gICAgMC4xOTgwNjkzMTk1NTk5NDg4NixcbiAgICAwLjIwMTU1NjI1Mzc5NDM5NzA3LFxuICAgIDAuMjA1MDc4NzM2MzkwMzE2OTMsXG4gICAgMC4yMDg2MzY4NzAxNDUyNTU3NSxcbiAgICAwLjIxMjIzMDc1NzQxNDA1NTIzLFxuICAgIDAuMjE1ODYwNTAwMTEzODk5MjYsXG4gICAgMC4yMTk1MjYxOTk3MjkyNjkyLFxuICAgIDAuMjIzMjI3OTU3MzE2ODA4NSxcbiAgICAwLjIyNjk2NTg3MzUxMDA5ODM2LFxuICAgIDAuMjMwNzQwMDQ4NTI0MzQ5MTUsXG4gICAgMC4yMzQ1NTA1ODIxNjEwMDUyMixcbiAgICAwLjIzODM5NzU3MzgxMjI3MSxcbiAgICAwLjI0MjI4MTEyMjQ2NTU1NDg2LFxuICAgIDAuMjQ2MjAxMzI2NzA3ODM1NDgsXG4gICAgMC4yNTAxNTgyODQ3Mjk5NTM0NCxcbiAgICAwLjI1NDE1MjA5NDMzMDgyNjc1LFxuICAgIDAuMjU4MTgyODUyOTIxNTk1OCxcbiAgICAwLjI2MjI1MDY1NzUyOTY5NjIzLFxuICAgIDAuMjY2MzU1NjA0ODAyODYyNDcsXG4gICAgMC4yNzA0OTc3OTEwMTMwNjU4LFxuICAgIDAuMjc0Njc3MzEyMDYwMzg0NjUsXG4gICAgMC4yNzg4OTQyNjM0NzY4MTA0LFxuICAgIDAuMjgzMTQ4NzQwNDI5OTkyMSxcbiAgICAwLjI4NzQ0MDgzNzcyNjkxNzUsXG4gICAgMC4yOTE3NzA2NDk4MTc1MzU4NyxcbiAgICAwLjI5NjEzODI3MDc5ODMyMTEsXG4gICAgMC4zMDA1NDM3OTQ0MTU3NzY1LFxuICAgIDAuMzA0OTg3MzE0MDY5ODg2MyxcbiAgICAwLjMwOTQ2ODkyMjgxNzUwODU0LFxuICAgIDAuMzEzOTg4NzEzMzc1NzE3NTQsXG4gICAgMC4zMTg1NDY3NzgxMjUwOTE4NixcbiAgICAwLjMyMzE0MzIwOTExMjk1MDc1LFxuICAgIDAuMzI3Nzc4MDk4MDU2NTQyMixcbiAgICAwLjMzMjQ1MTUzNjM0NjE3OTM1LFxuICAgIDAuMzM3MTYzNjE1MDQ4MzMwMzcsXG4gICAgMC4zNDE5MTQ0MjQ5MDg2NjA5LFxuICAgIDAuMzQ2NzA0MDU2MzU1MDI5NixcbiAgICAwLjM1MTUzMjU5OTUwMDQzOTM2LFxuICAgIDAuMzU2NDAwMTQ0MTQ1OTQzNSxcbiAgICAwLjM2MTMwNjc3OTc4MzUwOTUsXG4gICAgMC4zNjYyNTI1OTU1OTg4Mzk1LFxuICAgIDAuMzcxMjM3NjgwNDc0MTQ5MSxcbiAgICAwLjM3NjI2MjEyMjk5MDkwNjUsXG4gICAgMC4zODEzMjYwMTE0MzI1MzAxNCxcbiAgICAwLjM4NjQyOTQzMzc4NzA0OSxcbiAgICAwLjM5MTU3MjQ3Nzc0OTcyMzI2LFxuICAgIDAuMzk2NzU1MjMwNzI1NjI2ODUsXG4gICAgMC40MDE5Nzc3Nzk4MzIxOTU4LFxuICAgIDAuNDA3MjQwMjExOTAxNzM2NyxcbiAgICAwLjQxMjU0MjYxMzQ4MzkwMzc1LFxuICAgIDAuNDE3ODg1MDcwODQ4MTM3NSxcbiAgICAwLjQyMzI2NzY2OTk4NjA3MTcsXG4gICAgMC40Mjg2OTA0OTY2MTM5MDY2LFxuICAgIDAuNDM0MTUzNjM2MTc0NzQ4OTUsXG4gICAgMC40Mzk2NTcxNzM4NDA5MTg4LFxuICAgIDAuNDQ1MjAxMTk0NTE2MjI3ODYsXG4gICAgMC40NTA3ODU3ODI4MzgyMjM0NixcbiAgICAwLjQ1NjQxMTAyMzE4MDQwNDY2LFxuICAgIDAuNDYyMDc2OTk5NjU0NDA3MSxcbiAgICAwLjQ2Nzc4Mzc5NjExMjE1OSxcbiAgICAwLjQ3MzUzMTQ5NjE0ODAwOTU1LFxuICAgIDAuNDc5MzIwMTgzMTAwODI2OCxcbiAgICAwLjQ4NTE0OTk0MDA1NjA3MDQsXG4gICAgMC40OTEwMjA4NDk4NDc4MzU2LFxuICAgIDAuNDk2OTMyOTk1MDYwODcwNCxcbiAgICAwLjUwMjg4NjQ1ODAzMjU2ODcsXG4gICAgMC41MDg4ODEzMjA4NTQ5MzM4LFxuICAgIDAuNTE0OTE3NjY1Mzc2NTIxNCxcbiAgICAwLjUyMDk5NTU3MzIwNDM1NDMsXG4gICAgMC41MjcxMTUxMjU3MDU4MTMxLFxuICAgIDAuNTMzMjc2NDA0MDEwNTA1MixcbiAgICAwLjUzOTQ3OTQ4OTAxMjEwNzIsXG4gICAgMC41NDU3MjQ0NjEzNzAxODY2LFxuICAgIDAuNTUyMDExNDAxNTEyMDAwMSxcbiAgICAwLjU1ODM0MDM4OTYzNDI2NzksXG4gICAgMC41NjQ3MTE1MDU3MDQ5MjkyLFxuICAgIDAuNTcxMTI0ODI5NDY0ODczMSxcbiAgICAwLjU3NzU4MDQ0MDQyOTY1MDYsXG4gICAgMC41ODQwNzg0MTc4OTExNjQxLFxuICAgIDAuNTkwNjE4ODQwOTE5MzM2OSxcbiAgICAwLjU5NzIwMTc4ODM2Mzc2MzQsXG4gICAgMC42MDM4MjczMzg4NTUzMzc4LFxuICAgIDAuNjEwNDk1NTcwODA3ODY0OCxcbiAgICAwLjYxNzIwNjU2MjQxOTY1MTEsXG4gICAgMC42MjM5NjAzOTE2NzUwNzYxLFxuICAgIDAuNjMwNzU3MTM2MzQ2MTQ2OCxcbiAgICAwLjYzNzU5Njg3Mzk5NDAzMjYsXG4gICAgMC42NDQ0Nzk2ODE5NzA1ODIxLFxuICAgIDAuNjUxNDA1NjM3NDE5ODI0MixcbiAgICAwLjY1ODM3NDgxNzI3OTQ0ODUsXG4gICAgMC42NjUzODcyOTgyODIyNzIsXG4gICAgMC42NzI0NDMxNTY5NTc2ODc1LFxuICAgIDAuNjc5NTQyNDY5NjMzMDkzOCxcbiAgICAwLjY4NjY4NTMxMjQzNTMxMzUsXG4gICAgMC42OTM4NzE3NjEyOTE5ODk5LFxuICAgIDAuNzAxMTAxODkxOTMyOTczMSxcbiAgICAwLjcwODM3NTc3OTg5MTY4NjgsXG4gICAgMC43MTU2OTM1MDA1MDY0ODA3LFxuICAgIDAuNzIzMDU1MTI4OTIxOTY5MyxcbiAgICAwLjczMDQ2MDc0MDA5MDM1MzcsXG4gICAgMC43Mzc5MTA0MDg3NzI3MzA4LFxuICAgIDAuNzQ1NDA0MjA5NTQwMzg3NCxcbiAgICAwLjc1Mjk0MjIxNjc3NjA3NzksXG4gICAgMC43NjA1MjQ1MDQ2NzUyOTI0LFxuICAgIDAuNzY4MTUxMTQ3MjQ3NTA3LFxuICAgIDAuNzc1ODIyMjE4MzE3NDIzNixcbiAgICAwLjc4MzUzNzc5MTUyNjE5MzUsXG4gICAgMC43OTEyOTc5NDAzMzI2MzAyLFxuICAgIDAuNzk5MTAyNzM4MDE0NDA5LFxuICAgIDAuODA2OTUyMjU3NjY5MjUxNixcbiAgICAwLjgxNDg0NjU3MjIxNjEwMTIsXG4gICAgMC44MjI3ODU3NTQzOTYyODM1LFxuICAgIDAuODMwNzY5ODc2Nzc0NjU0NixcbiAgICAwLjgzODc5OTAxMTc0MDc0LFxuICAgIDAuODQ2ODczMjMxNTA5ODU4LFxuICAgIDAuODU0OTkyNjA4MTI0MjMzOCxcbiAgICAwLjg2MzE1NzIxMzQ1NDEwMjMsXG4gICAgMC44NzEzNjcxMTkxOTg3OTcyLFxuICAgIDAuODc5NjIyMzk2ODg3ODMxNyxcbiAgICAwLjg4NzkyMzExNzg4MTk2NjMsXG4gICAgMC44OTYyNjkzNTMzNzQyNjY0LFxuICAgIDAuOTA0NjYxMTc0MzkxMTQ5NixcbiAgICAwLjkxMzA5ODY1MTc5MzQxOTIsXG4gICAgMC45MjE1ODE4NTYyNzcyOTQ2LFxuICAgIDAuOTMwMTEwODU4Mzc1NDIzNyxcbiAgICAwLjkzODY4NTcyODQ1Nzg4OCxcbiAgICAwLjk0NzMwNjUzNjczMzE5OTksXG4gICAgMC45NTU5NzMzNTMyNDkyODYxLFxuICAgIDAuOTY0Njg2MjQ3ODk0NDY1MSxcbiAgICAwLjk3MzQ0NTI5MDM5ODQxMjUsXG4gICAgMC45ODIyNTA1NTAzMzMxMTcxLFxuICAgIDAuOTkxMTAyMDk3MTEzODI5OCxcbiAgICAxLjAsXG4pO1xuIiwKCQkiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLyBURVNUSU5HIEZVTkNUSU9OU1xuLy8vIEBncm91cCB0ZXN0aW5nXG4vLy8gQGF1dGhvciBGw6FiaW8gTWFjw6pkbyBNZW5kZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbi8vLyBBc3NlcnQgZXF1YWxpdHkgb24gdW5pdCB0ZXN0c1xuLy8vXG4vLy8gQGFyZyAkZnN0IC0gRmlyc3QgYXJndW1lbnRcbi8vLyBAYXJnICRzbmQgLSBTZWNvbmQgYXJndW1lbnRcbi8vLyBAYXJnICRtc2cgLSBPcHRpb25hbCBtZXNzYWdlXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgICAkZG86IGFzc2VydC1lcShqb2luKGhlbGxvLCB3b3JsZCksIGhlbGxvIHdvcmxkKTtcbkBmdW5jdGlvbiBhc3NlcnQtZXEoJGZzdCwgJHNuZCwgJG1zZzogJ0Fzc2VydGlvbiBlcnJvcicpIHtcbiAgICBAaWYgJGZzdCAhPSAkc25kIHtcbiAgICAgICAgQGVycm9yICcjeyRtc2d9OiBleHBlY3QgXCIje2luc3BlY3QoJHNuZCl9XCIsIGJ1dCBnb3QgXCIje2luc3BlY3QoJGZzdCl9XCIuJztcbiAgICB9XG4gICAgQHJldHVybiAkZnN0O1xufVxuXG4vLy8gQXNzZXJ0IGZuIHJldHVybnMgdHJ1ZSB3aGVuIGNhbGxlZCB3aXRoIGJvdGggYXJndW1lbnRzLlxuLy8vXG4vLy8gQGFyZyAkZm4gLSBGdW5jdGlvblxuLy8vIEBhcmcgJGZzdCAtIEZpcnN0IGFyZ3VtZW50XG4vLy8gQGFyZyAkc25kIC0gU2Vjb25kIGFyZ3VtZW50XG4vLy8gQGFyZyAkbXNnIC0gT3B0aW9uYWwgbWVzc2FnZVxuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgICAgJGRvOiBhc3NlcnQtZm4oZ3QsIDIsIDMpO1xuQGZ1bmN0aW9uIGFzc2VydC1mbigkZm4sICRmc3QsICRzbmQsICRtc2c6ICdBc3NlcnRpb24gZXJyb3InKSB7XG4gICAgQGlmIGNhbGwtZm4oJGZuLCAkZnN0LCAkc25kKSB7XG4gICAgICAgIEByZXR1cm4gJGZzdDtcbiAgICB9XG4gICAgQGVycm9yICcjeyRtc2d9OiBjb25kaXRpb24gI3skZm59IG5vdCBtZXQgd2l0aCBcIiN7aW5zcGVjdCgkZnN0KX1cIiBhbmQgXCIje2luc3BlY3QoJHNuZCl9XCIuJztcbn1cblxuQGZ1bmN0aW9uIGFzc2VydC1ndCgkZnN0LCAkc25kLCAkbXNnOidBc3NlcnRpb24gZXJyb3InKSB7XG4gICAgQHJldHVybiBhc3NlcnQtZm4oZ3QsICRmc3QsICRzbmQsICRtc2cpXG59XG5cbkBmdW5jdGlvbiBhc3NlcnQtbHQoJGZzdCwgJHNuZCwgJG1zZzonQXNzZXJ0aW9uIGVycm9yJykge1xuICAgIEByZXR1cm4gYXNzZXJ0LWZuKGx0LCAkZnN0LCAkc25kLCAkbXNnKVxufVxuXG5AZnVuY3Rpb24gYXNzZXJ0LWdlKCRmc3QsICRzbmQsICRtc2c6J0Fzc2VydGlvbiBlcnJvcicpIHtcbiAgICBAcmV0dXJuIGFzc2VydC1mbihnZSwgJGZzdCwgJHNuZCwgJG1zZylcbn1cblxuQGZ1bmN0aW9uIGFzc2VydC1sZSgkZnN0LCAkc25kLCAkbXNnOidBc3NlcnRpb24gZXJyb3InKSB7XG4gICAgQHJldHVybiBhc3NlcnQtZm4obGUsICRmc3QsICRzbmQsICRtc2cpXG59XG5cbi8vLyBBc3NlcnQgYXBwcm94aW1hdGUgbnVtZXJpY2FsIGVxdWFsaXR5XG4vLy9cbi8vLyBAYXJnICRmc3QgLSBGaXJzdCBhcmd1bWVudFxuLy8vIEBhcmcgJHNuZCAtIFNlY29uZCBhcmd1bWVudFxuLy8vIEBhcmcgJHRvbCAtIE1heGltdW0gdG9sZXJhbmNlXG4vLy8gQGFyZyAkbXNnIC0gT3B0aW9uYWwgbWVzc2FnZVxuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgICAgJGRvOiBhc3NlcnQtZXEoam9pbihoZWxsbywgd29ybGQpLCBoZWxsbyB3b3JsZCk7XG5AZnVuY3Rpb24gYXNzZXJ0LXNpbWVxKCRmc3QsICRzbmQsICR0b2w6IDAuMDAwMDAxLCAkbXNnOiAnQXNzZXJ0aW9uIGVycm9yJykge1xuICAgIEBpZiBhYnMoJGZzdCAtICRzbmQpID4gJHRvbCB7XG4gICAgICAgIEBlcnJvciAnI3skbXNnfTogZXhwZWN0IFwiI3tpbnNwZWN0KCRzbmQpfVwiLCBidXQgZ290IFwiI3tpbnNwZWN0KCRmc3QpfVwiLic7XG4gICAgfVxuICAgIEByZXR1cm4gJGZzdDtcbn1cbiIsCgkJIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8gRGVmYXVsdCBjb25maWd1cmF0aW9uIG1hcFxuLy8vIEBhdXRob3IgRsOhYmlvIE1hY8OqZG8gTWVuZGVzXG4vLy8gQGdyb3VwIENvbmZpZ1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgJ3N0YWNrLWZvbnQnO1xuQGltcG9ydCAnc3RhY2stY29sb3InO1xuQGltcG9ydCAnYmFzZSc7XG4iLAoJCSIvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRk9OVCBTVEFDS1Ncbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEZPTlQgTkFNRVNcblxuLy8gU3lzdGVtIGZvbnRzXG4kZm9udC1zdGFjay1zeXN0ZW0tZm9udDogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCDigJxTZWdvZSBVSeKAnSwg4oCcT3h5Z2Vu4oCdLCDigJxVYnVudHXigJ0sIOKAnENhbnRhcmVsbOKAnSwg4oCcUm9ib3Rv4oCdLCDigJxGaXJhIFNhbnPigJ0sIOKAnERyb2lkIFNhbnPigJ0sIOKAnEhlbHZldGljYSBOZXVl4oCdLCBzYW5zLXNlcmlmICFkZWZhdWx0O1xuXG4vLyBTYW5zLXNlcmlmXG4kZm9udC1zdGFjay1zeXN0ZW0tc2Fuczogc2Fucy1zZXJpZiAhZGVmYXVsdDtcbiRmb250LXN0YWNrLXJvYm90bzogXCJSb2JvdG9cIiwgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCDigJxTZWdvZSBVSeKAnSwg4oCcT3h5Z2Vu4oCdLCDigJxVYnVudHXigJ0sIOKAnENhbnRhcmVsbOKAnSwg4oCcRmlyYSBTYW5z4oCdLCDigJxEcm9pZCBTYW5z4oCdLCDigJxIZWx2ZXRpY2EgTmV1ZeKAnSwgJGZvbnQtc3RhY2stc3lzdGVtLXNhbnMgIWRlZmF1bHQ7XG4kZm9udC1zdGFjay1vcGVuLXNhbnM6IFwiT3BlbiBTYW5zXCIsICRmb250LXN0YWNrLXN5c3RlbS1zYW5zICFkZWZhdWx0O1xuJGZvbnQtc3RhY2stZXhvOiBcIkV4b1wiLCAkZm9udC1zdGFjay1zeXN0ZW0tc2FucyAhZGVmYXVsdDtcbiRmb250LXN0YWNrLXJhbGV3YXk6IFwiUmFsZXdheVwiLCAkZm9udC1zdGFjay1zeXN0ZW0tc2FucyAhZGVmYXVsdDtcbiRmb250LXN0YWNrLWxhdG86IFwiTGF0b1wiLCAkZm9udC1zdGFjay1zeXN0ZW0tc2FucyAhZGVmYXVsdDtcbiRmb250LXN0YWNrLXBhdHVhLW9uZTogXCJQYXR1YSBPbmVcIiwgJGZvbnQtc3RhY2stc3lzdGVtLXNhbnMgIWRlZmF1bHQ7XG4kZm9udC1zdGFjay1pYm0tcGxleC1zYW5zOiAnSUJNIFBsZXggU2FucycsICRmb250LXN0YWNrLXN5c3RlbS1zYW5zICFkZWZhdWx0O1xuXG4vLyBTYW5zIENvbmRlbnNlZFxuJGZvbnQtc3RhY2stc3lzdGVtLXNhbnMtY29uZGVuc2VkOiAkZm9udC1zdGFjay1zeXN0ZW0tc2FucyAhZGVmYXVsdDtcbiRmb250LXN0YWNrLW9wZW4tc2Fucy1jb25kZW5zZWQ6IFwiT3BlbiBTYW5zIENvbmRlbnNlZFwiLCAkZm9udC1zdGFjay1zeXN0ZW0tc2Fucy1jb25kZW5zZWQgIWRlZmF1bHQ7XG4kZm9udC1zdGFjay1pYm0tcGxleC1zYW5zLWNvbmRlbnNlZDogJ0lCTSBQbGV4IFNhbnMgQ29uc2Vuc2VkJywgJGZvbnQtc3RhY2stc3lzdGVtLXNhbnMgIWRlZmF1bHQ7XG5cbi8vIFNlcmlmXG4kZm9udC1zdGFjay1zeXN0ZW0tc2VyaWY6IHNlcmlmICFkZWZhdWx0O1xuJGZvbnQtc3RhY2stZ2VvcmdpYTogXCJHZW9yZ2lhXCIsICRmb250LXN0YWNrLXN5c3RlbS1zZXJpZiAhZGVmYXVsdDtcbiRmb250LXN0YWNrLXRpbWVzOiBcIlRpbWVzIE5ldyBSb21hblwiLCAkZm9udC1zdGFjay1zeXN0ZW0tc2VyaWYgIWRlZmF1bHQ7XG4kZm9udC1zdGFjay1pYm0tcGxleC1zZXJpZjogJ0lCTSBQbGV4IFNlcmlmJywgJGZvbnQtc3RhY2stc3lzdGVtLXNlcmlmICFkZWZhdWx0O1xuXG4vLyBDdXJzaXZlXG4kZm9udC1zdGFjay1zeXN0ZW0tY3Vyc2l2ZTogY3Vyc2l2ZSAhZGVmYXVsdDtcbiRmb250LXN0YWNrLWNvbWljLXNhbnM6IFwiQ29taWMgU2Fuc1wiLCAkZm9udC1zdGFjay1zeXN0ZW0tY3Vyc2l2ZSAhZGVmYXVsdDtcblxuLy8gTW9ub3NwYWNlXG4kZm9udC1zdGFjay1zeXN0ZW0tbW9ub3NwYWNlOiBtb25vc3BhY2UgIWRlZmF1bHQ7XG4kZm9udC1zdGFjay1pYm0tcGxleC1tb25vOiBcIklCTSBQbGV4IE1vbm9cIiwgJGZvbnQtc3RhY2stc3lzdGVtLW1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8gSWNvbnNcbiRmb250LXN0YWNrLWZvbnQtYXdlc29tZTogXCJGb250IEF3ZXNvbWUgNSBGcmVlXCIgIWRlZmF1bHQ7XG4kZm9udC1zdGFjay1tYXRlcmlhbC1pY29uczogXCJNYXRlcmlhbCBJY29uc1wiICFkZWZhdWx0O1xuXG4kbWVuZGVsZWV2LXR5cGVmYWNlOiBudWxsICFkZWZhdWx0O1xuJG1lbmRlbGVldi1jdXJzaXZlOiAkZm9udC1zdGFjay1zeXN0ZW0tY3Vyc2l2ZSAhZGVmYXVsdDtcbiRtZW5kZWxlZXYtbW9ub3NwYWNlOiAkZm9udC1zdGFjay1pYm0tcGxleC1tb25vICFkZWZhdWx0O1xuJG1lbmRlbGVldi1zYW5zLXNlcmlmOiAkZm9udC1zdGFjay1leG8gIWRlZmF1bHQ7XG4kbWVuZGVsZWV2LXNlcmlmOiAkZm9udC1zdGFjay1pYm0tcGxleC1zZXJpZiAhZGVmYXVsdDtcbiIsCgkJIi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBDT0xPUiBOQU1FUyBBTkQgREVGQVVMVCBWQUxVRVNcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIFdoaXRlc1xuJGNvbG9yLWJsYWNrOiAjMTUxNTE1ICFkZWZhdWx0O1xuJGNvbG9yLXdoaXRlOiB3aGl0ZSAhZGVmYXVsdDtcbiRjb2xvci1kYXJrOiAkY29sb3ItYmxhY2sgIWRlZmF1bHQ7XG4kY29sb3ItbGlnaHQ6ICRjb2xvci13aGl0ZSAhZGVmYXVsdDtcbiRjb2xvci1ncmV5OiAjYTc5ZDk2ICFkZWZhdWx0O1xuXG4kY29sb3ItcmVndWxhci10ZXh0OiAkY29sb3ItYmxhY2sgIWRlZmF1bHQ7XG4kY29sb3ItaW52ZXJzZS10ZXh0OiAkY29sb3Itd2hpdGUgIWRlZmF1bHQ7XG4kY29sb3ItYmFja2dyb3VuZDogJGNvbG9yLXdoaXRlICFkZWZhdWx0O1xuJGNvbG9yLWludmVyc2UtYmFja2dyb3VuZDogJGNvbG9yLWJsYWNrICFkZWZhdWx0O1xuXG4kY29sb3ItbXV0ZWQtdGV4dDogbWl4KCRjb2xvci1yZWd1bGFyLXRleHQsICRjb2xvci1ncmV5LCA1MCUpICFkZWZhdWx0O1xuJGNvbG9yLW11dGVkLWJhY2tncm91bmQ6IG1peCgkY29sb3ItYmFja2dyb3VuZCwgJGNvbG9yLWdyZXksIDkwJSkgIWRlZmF1bHQ7XG4kY29sb3ItbXV0ZWQtaW52ZXJzZS10ZXh0OiBtaXgoJGNvbG9yLWludmVyc2UtdGV4dCwgJGNvbG9yLWdyZXksIDUwJSkgIWRlZmF1bHQ7XG4kY29sb3ItbXV0ZWQtaW52ZXJzZS1iYWNrZ3JvdW5kOiBtaXgoJGNvbG9yLWludmVyc2UtYmFja2dyb3VuZCwgJGNvbG9yLWdyZXksIDkwJSkgIWRlZmF1bHQ7XG5cbi8vIENvbG9yc1xuJGNvbG9yLXJlZDogI2RlMDExZSAhZGVmYXVsdDtcbiRjb2xvci1vcmFuZ2U6ICNmMjYyMDIgIWRlZmF1bHQ7XG4kY29sb3IteWVsbG93OiAjZmJiZDA4ICFkZWZhdWx0O1xuJGNvbG9yLW9saXZlOiAjYjVjYzE4ICFkZWZhdWx0O1xuJGNvbG9yLWdyZWVuOiAjMTZhYjM5ICFkZWZhdWx0O1xuJGNvbG9yLXRlYWw6ICMwMGI1YWQgIWRlZmF1bHQ7XG4kY29sb3ItYmx1ZTogIzAwNmQ5MyAhZGVmYXVsdDtcbiRjb2xvci12aW9sZXQ6ICMxYzAwNTIgIWRlZmF1bHQ7XG4kY29sb3ItcHVycGxlOiAjOTYyN2JhICFkZWZhdWx0O1xuJGNvbG9yLXBpbms6ICNlMDM5OTcgIWRlZmF1bHQ7XG4kY29sb3ItYnJvd246ICNhNTY3M2YgIWRlZmF1bHQ7XG5cbi8vIFJvbGVzXG4vLyRjb2xvci1icmFuZDogJGNvbG9yLXZpb2xldCAhZGVmYXVsdDtcbiRjb2xvci1icmFuZDogJGNvbG9yLXJlZCAhZGVmYXVsdDtcbiRjb2xvci1hY2NlbnQ6ICRjb2xvci12aW9sZXQgIWRlZmF1bHQ7XG4kY29sb3ItYWN0aW9uOiBtaXgoJGNvbG9yLWdyZXksICRjb2xvci13aGl0ZSkgIWRlZmF1bHQ7XG4kY29sb3ItcHJpbWFyeTogJGNvbG9yLWJyYW5kICFkZWZhdWx0O1xuJGNvbG9yLXNlY29uZGFyeTogJGNvbG9yLWFjY2VudCAhZGVmYXVsdDtcbiRjb2xvci1wb3NpdGl2ZTogJGNvbG9yLWdyZWVuICFkZWZhdWx0O1xuJGNvbG9yLW5lZ2F0aXZlOiAkY29sb3ItcmVkICFkZWZhdWx0O1xuJGNvbG9yLXdhcm5pbmc6ICRjb2xvci15ZWxsb3cgIWRlZmF1bHQ7XG5cbi8vIERlZmF1bHQgY29sb3IgcGFsZXR0ZVxuJG1lbmRlbGVldi1jb2xvci1wYWxldHRlOiAoKSAhZGVmYXVsdDtcbiRtZW5kZWxlZXYtY29sb3ItcGFsZXR0ZTogbWFwLW1lcmdlKChcbiAgICAvL1xuICAgIC8vIFdoaXRlc1xuICAgICdibGFjayc6ICRjb2xvci1ibGFjayxcbiAgICAnd2hpdGUnOiAkY29sb3Itd2hpdGUsXG4gICAgJ2xpZ2h0JzogJGNvbG9yLWxpZ2h0LFxuICAgICdkYXJrJzogJGNvbG9yLWRhcmssXG4gICAgJ2dyZXknOiAkY29sb3ItZ3JleSxcbiAgICAncmVndWxhci10ZXh0JzogJGNvbG9yLXJlZ3VsYXItdGV4dCxcbiAgICAnaW52ZXJzZS10ZXh0JzogJGNvbG9yLWludmVyc2UtdGV4dCxcbiAgICAnYmFja2dyb3VuZCc6ICRjb2xvci1iYWNrZ3JvdW5kLFxuICAgICdpbnZlcnNlLWJhY2tncm91bmQnOiAkY29sb3ItaW52ZXJzZS1iYWNrZ3JvdW5kLFxuICAgICdtdXRlZC10ZXh0JzogJGNvbG9yLW11dGVkLXRleHQsXG4gICAgJ211dGVkLWludmVyc2UtdGV4dCc6ICRjb2xvci1tdXRlZC1pbnZlcnNlLXRleHQsXG4gICAgJ211dGVkLWJhY2tncm91bmQnOiAkY29sb3ItbXV0ZWQtYmFja2dyb3VuZCxcbiAgICAnbXV0ZWQtaW52ZXJzZS1iYWNrZ3JvdW5kJzogJGNvbG9yLW11dGVkLWludmVyc2UtYmFja2dyb3VuZCxcbiAgICAvL1xuICAgIC8vIENvbG9yc1xuICAgICdyZWQnOiAkY29sb3ItcmVkLFxuICAgICdvcmFuZ2UnOiAkY29sb3Itb3JhbmdlLFxuICAgICd5ZWxsb3cnOiAkY29sb3IteWVsbG93LFxuICAgICdvbGl2ZSc6ICRjb2xvci1vbGl2ZSxcbiAgICAnZ3JlZW4nOiAkY29sb3ItZ3JlZW4sXG4gICAgJ3RlYWwnOiAkY29sb3ItdGVhbCxcbiAgICAnYmx1ZSc6ICRjb2xvci1ibHVlLFxuICAgICd2aW9sZXQnOiAkY29sb3ItdmlvbGV0LFxuICAgICdwdXJwbGUnOiAkY29sb3ItcHVycGxlLFxuICAgICdwaW5rJzogJGNvbG9yLXBpbmssXG4gICAgJ2Jyb3duJzogJGNvbG9yLWJyb3duLFxuICAgIC8vXG4gICAgLy8gIFJvbGVzXG4gICAgJ2JyYW5kJzogJGNvbG9yLWJyYW5kLFxuICAgICdhY2NlbnQnOiAkY29sb3ItYWNjZW50LFxuICAgICdhY3Rpb24nOiAkY29sb3ItYWN0aW9uLFxuICAgICdwcmltYXJ5JzogJGNvbG9yLXByaW1hcnksXG4gICAgJ3NlY29uZGFyeSc6ICRjb2xvci1zZWNvbmRhcnksXG4gICAgJ3Bvc2l0aXZlJzogJGNvbG9yLXBvc2l0aXZlLFxuICAgICduZWdhdGl2ZSc6ICRjb2xvci1uZWdhdGl2ZSxcbiAgICAnd2FybmluZyc6ICRjb2xvci13YXJuaW5nLFxuKSwgJG1lbmRlbGVldi1jb2xvci1wYWxldHRlKTtcblxuLy8gRGVmYXVsdCBjb250cmFzdCBvdmVycmlkZXNcbiRtZW5kZWxlZXYtY29sb3ItY29udHJhc3Q6IChcbiAgICAjMzNjM2YwOiAkY29sb3Itd2hpdGUsXG4gICAgIzAwYjVhZDogJGNvbG9yLXdoaXRlLFxuICAgICNiNWNjMTg6ICRjb2xvci13aGl0ZSxcbikgIWRlZmF1bHQ7XG5cbiRtZW5kZWxlZXYtY29sb3ItYnJhbmQ6ICRjb2xvci1icmFuZDtcbiIsCgkJIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8gQmFzZSBjb25maWd1cmF0aW9uXG4vLy8gQGF1dGhvciBGw6FiaW8gTWFjw6pkbyBNZW5kZXNcbi8vLyBAZ3JvdXAgQ29uZmlnXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCAnLi4vZm4nO1xuXG4kbWVuZGVsZWV2LWNvbG9yLWNvbnRyYXN0OiAkZm4tZW1wdHktbWFwICFkZWZhdWx0O1xuJG1lbmRlbGVldi1jb2xvci1wYWxldHRlOiAkZm4tZW1wdHktbWFwICFkZWZhdWx0O1xuJG1lbmRlbGVldi10eXBlZmFjZTogbnVsbCAhZGVmYXVsdDtcbiRtZW5kZWxlZXYtY3Vyc2l2ZTogY3Vyc2l2ZSAhZGVmYXVsdDtcbiRtZW5kZWxlZXYtbW9ub3NwYWNlOiBtb25vc3BhY2UgIWRlZmF1bHQ7XG4kbWVuZGVsZWV2LXNhbnMtc2VyaWY6IHNhbnMtc2VyaWYgIWRlZmF1bHQ7XG4kbWVuZGVsZWV2LXNlcmlmOiBzZXJpZiAhZGVmYXVsdDtcbiRtZW5kZWxlZXYtY29sb3ItYnJhbmQ6IGJsYWNrICFkZWZhdWx0O1xuXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQ09ORklHVVJBVElPTiBESUNUSU9OQVJZXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLy8gTWFpbiBjb25maWd1cmF0aW9uIGRpY3Rpb25hcnkuIFlvdSBjdXN0b21pemUgTWVuZGVsZWV2IGJ5IHNldHRpbmcgdmFsdWVzXG4vLy8gdG8gdGhpcyBkaWN0aW9uYXJ5LlxuJGNvbmZpZzogKCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGNvbmZpZ3VyYXRpb24gb3B0aW9ucy5cbi8vLyBUaGlzIG1hcCBjb250YWlucyBhbGwgZGVmYXVsdCB2YWx1ZXMgZm9yIGNvbmZpZ3VyYXRpb25zIHRoYXQgY2FuIGJlXG4vLy8gb3ZlcnJpZGRlbiBieSB0aGUgYCRjb25maWdgIG9yIGAkY29uZmlnLWRlZmF1bHRzYCBtYXBwaW5ncy5cbiRtZW5kZWxlZXYtZW5hYmxlLW1vZHVsZTogdHJ1ZSAhZGVmYXVsdDtcbiRtZW5kZWxlZXYtY29uZmlnOiAoXG4gICAgLy9cbiAgICAvLyBHTE9CQUxcbiAgICAnYnJlYWtwb2ludHMnOiAoXG4gICAgICAgICdzbSc6IDMwcmVtLFxuICAgICAgICAnbWQnOiA1MHJlbSxcbiAgICAgICAgJ2xnJzogNzVyZW0sXG4gICAgKSxcbiAgICAndXRpbGl0aWVzJzogKFxuICAgICAgICAnaW1wb3J0YW50JzogdHJ1ZSxcbiAgICAgICAgJ2VtaXQnOiAncmVzcGVjdCcsXG4gICAgKSxcbiAgICAvL1xuICAgIC8vIFRZUE9HUkFQSFlcbiAgICAndHlwb2dyYXBoeSc6IChcbiAgICAgICAgLy9cbiAgICAgICAgLy8gR2VuZXJpY1xuICAgICAgICAnbW9kdWxlcyc6IChcbiAgICAgICAgICAgICdoZWFkaW5ncyc6ICRtZW5kZWxlZXYtZW5hYmxlLW1vZHVsZSxcbiAgICAgICAgICAgICdwYXJhZ3JhcGgnOiAkbWVuZGVsZWV2LWVuYWJsZS1tb2R1bGUsXG4gICAgICAgICAgICAnc2NhbGUnOiAkbWVuZGVsZWV2LWVuYWJsZS1tb2R1bGUsXG4gICAgICAgICAgICAnbGVhZGluZyc6ICRtZW5kZWxlZXYtZW5hYmxlLW1vZHVsZSxcbiAgICAgICAgICAgICdtZWFzdXJlJzogJG1lbmRlbGVldi1lbmFibGUtbW9kdWxlLFxuICAgICAgICAgICAgJ2luZGVudCc6ICRtZW5kZWxlZXYtZW5hYmxlLW1vZHVsZSxcbiAgICAgICAgICAgICdhbGlnbm1lbnQnOiAkbWVuZGVsZWV2LWVuYWJsZS1tb2R1bGUsXG4gICAgICAgICAgICAnc3R5bGVzJzogJG1lbmRlbGVldi1lbmFibGUtbW9kdWxlLFxuICAgICAgICAgICAgJ3dlaWdodHMnOiAkbWVuZGVsZWV2LWVuYWJsZS1tb2R1bGUsXG4gICAgICAgICAgICAnZm9udHMnOiAkbWVuZGVsZWV2LWVuYWJsZS1tb2R1bGUsXG4gICAgICAgICAgICAnZGlyZWN0aW9uJzogJG1lbmRlbGVldi1lbmFibGUtbW9kdWxlLFxuICAgICAgICAgICAgJ3doaXRlLXNwYWNlJzogJG1lbmRlbGVldi1lbmFibGUtbW9kdWxlLFxuICAgICAgICApLFxuICAgICAgICAvL1xuICAgICAgICAvLyBUeXBlZmFjZXNcbiAgICAgICAgJ3R5cGVmYWNlJzogJG1lbmRlbGVldi10eXBlZmFjZSxcbiAgICAgICAgJ2N1cnNpdmUnOiAkbWVuZGVsZWV2LWN1cnNpdmUsXG4gICAgICAgICdtb25vc3BhY2UnOiAkbWVuZGVsZWV2LW1vbm9zcGFjZSxcbiAgICAgICAgJ3NhbnMtc2VyaWYnOiAkbWVuZGVsZWV2LXNhbnMtc2VyaWYsXG4gICAgICAgICdzZXJpZic6ICRtZW5kZWxlZXYtc2VyaWYsXG4gICAgICAgIC8vXG4gICAgICAgIC8vIFZlcnRpY2FsIHJoeXRobSBhbmQgbW9kdWxhciBzY2FsZVxuICAgICAgICAnc2l6ZSc6IChcbiAgICAgICAgICAgICdzdGFydCc6IDE2LFxuICAgICAgICAgICAgJ21kJzogMTcsXG4gICAgICAgICAgICAnbGcnOiAxOCxcbiAgICAgICAgKSxcbiAgICAgICAgJ2xlYWQnOiAxLjUsXG4gICAgICAgICdoZWFkaW5nLWxlYWQnOiAxLjI1MCxcbiAgICAgICAgJ3NjYWxlJzogKFxuICAgICAgICAgICAgJ3N0YXJ0JzogOS84LFxuICAgICAgICAgICAgJ3NtJzogKDkvNCArIDUvNCkgLyAzLFxuICAgICAgICAgICAgJ21kJzogKDkvOCArIDUvMikgLyAzLFxuICAgICAgICAgICAgJ2xnJzogNS80LFxuICAgICAgICApLFxuICAgICAgICAvL1xuICAgICAgICAvLyBPdmVycmlkZGVuIHByb3BlcnRpZXNcbiAgICAgICAgJ2JvZHknOiAoKSxcbiAgICAgICAgJ3BhcmFncmFwaCc6ICgpLFxuICAgICAgICAnaGVhZGluZ3MnOiAoXG4gICAgICAgICAgICAnbGV0dGVyLXNwYWNpbmcnOiAtMC4wM2VtLFxuICAgICAgICAgICAgJ2ZvbnQtd2VpZ2h0JzogOTAwLFxuICAgICAgICAgICAgJ2NvbG9yJzogJG1lbmRlbGVldi1jb2xvci1icmFuZCxcbiAgICAgICAgKSxcbiAgICApLFxuICAgIC8vXG4gICAgLy8gQ09MT1JTXG4gICAgJ3BhbGV0dGUnOiAkbWVuZGVsZWV2LWNvbG9yLXBhbGV0dGUsXG4gICAgJ2NvbnRyYXN0JzogJG1lbmRlbGVldi1jb2xvci1jb250cmFzdCxcbiAgICAnY29sb3InOiAoXG4gICAgICAgICdjb250cmFzdC1iaWFzJzogMC4xMjUsXG4gICAgICAgICdyb2xlcyc6IChcbiAgICAgICAgICAgICdwcmltYXJ5JywgJ3NlY29uZGFyeScsICdhY3Rpb24nLFxuICAgICAgICAgICAgJ3Bvc2l0aXZlJywgJ25lZ2F0aXZlJywgJ3dhcm5pbmcnLFxuICAgICAgICAgICAgJ2JsYWNrJywgJ3doaXRlJywgJ2dyZXknLCAncmVkJywgJ29yYW5nZScsICd5ZWxsb3cnLCAnb2xpdmUnLFxuICAgICAgICAgICAgJ2dyZWVuJywgJ3RlYWwnLCAnYmx1ZScsICd2aW9sZXQnLCAncHVycGxlJywgJ3BpbmsnLCAnYnJvd24nLFxuICAgICAgICApLFxuICAgICAgICAndGV4dCc6IChcbiAgICAgICAgICAgICdpbnZlcnNlJywgJ211dGVkJywgJ211dGVkLWludmVyc2UnLFxuICAgICAgICApLFxuICAgICAgICAndmFyaWFudHMnOiAoXG4gICAgICAgICAgICAnY29sb3JzJzogKFxuICAgICAgICAgICAgICAgICdicmFuZCcsICdhY2NlbnQnLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICdjb250cmFzdCc6IChcbiAgICAgICAgICAgICAgICAnbGlnaHQnOiAoJ3doaXRlJywgOTUlKSxcbiAgICAgICAgICAgICAgICAnZGFyayc6ICgnYmxhY2snLCA5NSUpLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICdsZXZlbHMnOiAoXG4gICAgICAgICAgICAgICAgJ2xpZ2h0ZXInOiAoJ3doaXRlJywgNzUlKSxcbiAgICAgICAgICAgICAgICAnbGlnaHQnOiAoJ3doaXRlJywgMzMlKSxcbiAgICAgICAgICAgICAgICAnZGFyayc6ICgnYmxhY2snLCAzMyUpLFxuICAgICAgICAgICAgICAgICdkYXJrZXInOiAoJ2JsYWNrJywgNzUlKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICksXG4gICAgKSxcbiAgICAvL1xuICAgIC8vIEFOSU1BVElPTlNcbiAgICAnYW5pbWF0aW9uJzogKFxuICAgICAgICAnZHVyYXRpb24nOiAzMDBtcyxcbiAgICAgICAgJ3RpbWluZy1mdW5jdGlvbic6IGVhc2UsXG4gICAgKSxcbiAgICAvL1xuICAgIC8vIEZPUk0gSVRFTVNcbiAgICAnaW5wdXQnOiAoXG4gICAgICAgICdjb2xvci1yb2xlJzogJ3doaXRlJyxcbiAgICAgICAgJ2JvcmRlcic6IDFweCBzb2xpZCxcbiAgICAgICAgJ2JvcmRlci1jb2xvcic6ICdhY3Rpb24nLFxuICAgICAgICAnYm9yZGVyLXJhZGl1cyc6IDAuMjUsXG4gICAgKSxcbiAgICAnYnV0dG9uJzogKFxuICAgICAgICAnY29sb3Itcm9sZSc6ICdhY3Rpb24nLFxuICAgICAgICAnYm9yZGVyJzogMXB4IHNvbGlkLFxuICAgICAgICAnYm9yZGVyLWNvbG9yJzogJ2FjdGlvbicsXG4gICAgICAgICdib3JkZXItcmFkaXVzJzogMC4yNSxcbiAgICAgICAgJ2ZvbnQtd2VpZ2h0JzogYm9sZCxcbiAgICApLFxuICAgIC8vXG4gICAgLy8gTEFZT1VUXG4gICAgJ2xheW91dCc6IChcbiAgICAgICAgJ2Rpc3BsYXknOiAkbWVuZGVsZWV2LWVuYWJsZS1tb2R1bGUsXG4gICAgICAgICdmbG9hdCc6ICRtZW5kZWxlZXYtZW5hYmxlLW1vZHVsZSxcbiAgICAgICAgJ3Bvc2l0aW9uJzogJG1lbmRlbGVldi1lbmFibGUtbW9kdWxlLFxuICAgICAgICAnY29udGFpbmVyJzogJG1lbmRlbGVldi1lbmFibGUtbW9kdWxlLFxuICAgICAgICAnb3ZlcmZsb3cnOiAkbWVuZGVsZWV2LWVuYWJsZS1tb2R1bGUsXG4gICAgKSxcbiAgICAvL1xuICAgIC8vIE9USEVSIE1PRFVMRVNcbiAgICAnYmFja2dyb3VuZCc6ICRtZW5kZWxlZXYtZW5hYmxlLW1vZHVsZSxcbiAgICAnYm9yZGVyJzogJG1lbmRlbGVldi1lbmFibGUtbW9kdWxlLFxuICAgICdjb2xvcnMnOiAkbWVuZGVsZWV2LWVuYWJsZS1tb2R1bGUsXG4gICAgJ2ZsZXgnOiAkbWVuZGVsZWV2LWVuYWJsZS1tb2R1bGUsXG4gICAgJ2ZsZXgtZ3JpZCc6ICRtZW5kZWxlZXYtZW5hYmxlLW1vZHVsZSxcbiAgICAnZ3JpZCc6ICRtZW5kZWxlZXYtZW5hYmxlLW1vZHVsZSxcbiAgICAnaGFyZC1ncmlkJzogJG1lbmRlbGVldi1lbmFibGUtbW9kdWxlLFxuICAgICdpbnRlcmFjdGl2aXR5JzogJG1lbmRlbGVldi1lbmFibGUtbW9kdWxlLFxuICAgICdsaXN0JzogJG1lbmRlbGVldi1lbmFibGUtbW9kdWxlLFxuICAgICdtYXJnaW4nOiAkbWVuZGVsZWV2LWVuYWJsZS1tb2R1bGUsXG4gICAgJ3BhZGRpbmcnOiAkbWVuZGVsZWV2LWVuYWJsZS1tb2R1bGUsXG4gICAgJ3JvdW5kZWQnOiAkbWVuZGVsZWV2LWVuYWJsZS1tb2R1bGUsXG4gICAgJ3NoYWRvdyc6ICRtZW5kZWxlZXYtZW5hYmxlLW1vZHVsZSxcbiAgICAnc2l6aW5nJzogJG1lbmRlbGVldi1lbmFibGUtbW9kdWxlLFxuICAgICdzaXplcyc6ICRtZW5kZWxlZXYtZW5hYmxlLW1vZHVsZSxcbiAgICAndHJhbnNmb3JtJzogJG1lbmRlbGVldi1lbmFibGUtbW9kdWxlLFxuICAgICd2aXNpYmlsaXR5JzogJG1lbmRlbGVldi1lbmFibGUtbW9kdWxlLFxuICAgIC8vXG4gICAgLy8gRUxFTUVOVCBPVkVSUklERVNcbiAgICAnZWxlbWVudHMnOiAoKSxcbikgIWRlZmF1bHQ7XG5cbiIsCgkJIkBpbXBvcnQgJ3Byb2ZpbGVzL2RlZmF1bHQnO1xuQGltcG9ydCAncHJlbHVkZSc7XG5AaW1wb3J0ICdlbGVtZW50cyc7XG5AaW1wb3J0ICd1dGlsaXRpZXMnO1xuIiwKCQkiLy8gQ29uZmlndXJhdGlvblxuQGltcG9ydCAnZm4nO1xuQGltcG9ydCAncHJvZmlsZXMvYmFzZSc7XG5AaW1wb3J0ICdjb25maWcvbWl4aW5zJztcbkBpbXBvcnQgJ2NvbmZpZy9tb2R1bGVzJztcbkBpbXBvcnQgJ2NvbmZpZy9mdW5jdGlvbnMnO1xuXG4vLyBDb25zdGFudHNcbkBpbXBvcnQgJ2NvbnN0YW50cy9zdGF0aWMnO1xuQGltcG9ydCAnY29uc3RhbnRzL3ZhbHVlcyc7XG5AaW1wb3J0ICdjb25zdGFudHMvZ3JpZHMnO1xuQGltcG9ydCAnY29uc3RhbnRzL2NvbmZpZ3VyYWJsZSc7XG5cbi8vIExvYWQgcHJlbHVkZSBmdW5jdGlvbnNcbkBpbXBvcnQgJ3ByZWx1ZGUvc2l6ZXMnO1xuQGltcG9ydCAncHJlbHVkZS9jb2xvcic7XG5AaW1wb3J0ICdwcmVsdWRlL3R5cG9ncmFwaHknO1xuQGltcG9ydCAncHJlbHVkZS91dGlsaXRpZXMnO1xuXG4vLyBMb2FkIGRhdGEgaW50byByZWdpc3RyeVxuJG1lbmRlbGVldi1yZWdpc3RlcmluZy11dGlsaXRpZXM6IHRydWUgIWRlZmF1bHQ7XG5cbkBpbXBvcnQgJ3JlZ2lzdHJ5L3R5cG9ncmFwaHknO1xuQGltcG9ydCAncmVnaXN0cnkvc2l6aW5nJztcbkBpbXBvcnQgJ3JlZ2lzdHJ5L2xheW91dCc7XG5AaW1wb3J0ICdyZWdpc3RyeS9ib3JkZXJzJztcbkBpbXBvcnQgJ3JlZ2lzdHJ5L2ZsZXgnO1xuQGltcG9ydCAncmVnaXN0cnkvZ3JpZCc7XG5AaW1wb3J0ICdyZWdpc3RyeS90cmFuc2Zvcm1hdGlvbnMnO1xuQGltcG9ydCAncmVnaXN0cnkvdmlzaWJpbGl0eSc7XG5AaW1wb3J0ICdyZWdpc3RyeS9taXNjJztcbkBpbXBvcnQgJ3ByZWx1ZGUvdXRpbGl0aWVzLWNhY2hlJztcblxuJG1lbmRlbGVldi1yZWdpc3RlcmluZy11dGlsaXRpZXM6IGZhbHNlO1xuJG1lbmRlbGVldi1wcmVsdWRlLWxvYWRlZDogdHJ1ZTtcblxuLy8gTm8gQ1NTIGdlbmVyYXRlZCB1cCB0byB0aGlzIHBvaW50XG5cbiIsCgkJIi8vLyBJbmNsdWRlIGRlY2xhcmF0aW9ucyBvbmx5IGZvciB0aGUgZ2l2ZW4gYnJlYWtwb2ludC5cbi8vL1xuLy8vIEBhcmcgJGJwIC0gQnJlYWtwb2ludCBuYW1lIChlLmcuLCBzdGFydCwgc20sIG1kLCBsZywgZXRjKVxuLy8vIEBhcmcgJHByb3BlcnRpZXMgLSBBIG1hcCBvZiBwcm9wZXJ0aWVzXG4vLy8gQGFyZyAkc3VmZml4IC0gT3B0aW9uYWwgc3VmZml4IChlLmcuLCAhaW1wb3J0YW50KTtcbkBtaXhpbiBicmVha3BvaW50KCRicCwgJHByb3BlcnRpZXM6ICgpLCAkc3VmZml4OiBudWxsKSB7XG4gICAgQGlmICRicCA9PSAnc3RhcnQnIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIEBpbmNsdWRlIG9wdGlvbnMoJHByb3BlcnRpZXMsICRzdWZmaXg6ICRzdWZmaXgpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiBjb25maWcoJ2JyZWFrcG9pbnRzLiN7JGJwfScpKSB7XG4gICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgICAgIEBpbmNsdWRlIG9wdGlvbnMoJHByb3BlcnRpZXMsICRzdWZmaXg6ICRzdWZmaXgpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLy8gSW5jbHVkZSBhbGwgcGFpcnMgb2YgKGtleTogdmFsdWUpIGluIG1hcCBhcyBDU1MgZGVjbGFyYXRpb25zLiBJZiB2YWx1ZSBpc1xuLy8vIGFub3RoZXIgbWFwLCBpbmNsdWRlIG5lc3RlZCB2YWx1ZXMuXG5AbWl4aW4gZnJvbS1tYXAoJG1hcCwgJHN1ZmZpeDogbnVsbCkge1xuICAgIEBlYWNoICRrLCAkdiBpbiAkbWFwIHtcbiAgICAgICAgQGlmIHR5cGUtb2YoJHYpID09IG1hcCB7XG4gICAgICAgICAgICBAaWYgdHlwZS1vZigkaykgPT0gbGlzdCBhbmQgbnRoKCRrLCAxKSA9PSAnQG1lZGlhJyB7XG4gICAgICAgICAgICAgICAgJG1pbjogbWFwLWdldChudGgoJGssIDIpLCBtaW4td2lkdGgpO1xuICAgICAgICAgICAgICAgIEBpZiBub3QgJG1pbiB7XG4gICAgICAgICAgICAgICAgICAgIEBlcnJvciAnSW52YWxpZCBtZWRpYSBzcGVjaWZpY2F0aW9uOiAje250aCgkaywgMil9JztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogI3skbWlufSkge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBmcm9tLW1hcCgkdiwgJHN1ZmZpeCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgI3ska30ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBmcm9tLW1hcCgkdiwgJHN1ZmZpeCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IEBlbHNlIGlmICR2IHtcbiAgICAgICAgICAgICN7JGt9OiAkdiAkc3VmZml4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLy8gSW5jbHVkZSB3aXRoIHRoZSBnaXZlbiBzZWxlY3RvciBhbmQgZGVmaW5lZCBieSBhIG1hcHBpbmcgb2YgcHJvcGVydHkgdG9cbi8vLyB2YWx1ZXMuXG5AbWl4aW4gc2ltcGxlLXV0aWxpdHktZGVjbGFyYXRpb24oJHNlbGVjdG9yLCAkZGF0YSwgJG1vZGUpIHtcbiAgICBAaWYgbW9kZSA9PSByZXNwb25zaXZlIHtcbiAgICAgICAgQGVycm9yICdOb3QgaW1wbGVtZW50ZWQnO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICAjeyRzZWxlY3Rvcn0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgZnJvbS1tYXAoJGRhdGEpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLy8gTGlrZSBzaW1wbGUtdXRpbGl0eS1kZWNsYXJhdGlvbiwgYnV0IHJlY2VpdmVzIGEgbWFwcGluZyBvZiBzZWxlY3RvcnMgdG9cbi8vLyBkZWNsYXJhdGlvbnMuXG5AbWl4aW4gbXVsdGlwbGUtdXRpbGl0aWVzLWRlY2xhcmF0aW9uKCRkYXRhLCAkbW9kZSkge1xuICAgIEBlYWNoICRuYW1lLCAkZGVjbGFyYXRpb25zIGluICRkYXRhIHtcbiAgICAgICAgQGluY2x1ZGUgc2ltcGxlLXV0aWxpdHktZGVjbGFyYXRpb24oJG5hbWUsICRkZWNsYXJhdGlvbnMsICRtb2RlKTtcbiAgICB9XG59XG5cbiRtZW5kZWxlZXYtcmVnaXN0ZXJlZC11dGlsaXRpZXM6IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gTWl4aW4gdGhhdCBpbmNsdWRlcyBhbGwgcmVnaXN0ZXJlZCB1dGlsaXRpZXMuIFRoaXMgbWl4aW4gaXMgYXV0b21hdGljYWxseVxuLy8vIEV4ZWN1dGVkIHdoZW4gdGhlIG1lbmRlbGVldiB1dGlsaXRpZXMgbW9kdWxlIGlzIGltcG9ydGVkLlxuLy8vXG5AbWl4aW4gbWVuZGVsZWV2LXJlZ2lzdGVyLXV0aWxpdGllcygpIHtcbiAgICBAaWYgbm90ICRtZW5kZWxlZXYtcmVnaXN0ZXJlZC11dGlsaXRpZXMge1xuXG4gICAgICAgICRsc3Q6IGxzdC1yZXZlcnNlKCRtZW5kZWxlZXYtY3NzKTtcbiAgICAgICAgJGxzdDogbHN0LXN0aXRjaCgkbWVuZGVsZWV2LWNzcy1jbGFzc2VzLCAkbHN0KTtcblxuICAgICAgICBAd2hpbGUgJGxzdCB7XG4gICAgICAgICAgICAkaW5mbzogbnRoKCRsc3QsIDEpO1xuICAgICAgICAgICAgJGxzdDogbnRoKCRsc3QsIDIpO1xuXG4gICAgICAgICAgICAkdHlwZTogbWFwLWdldCgkaW5mbywgdHlwZSk7XG4gICAgICAgICAgICAkZW1pdDogbWFwLWdldCgkaW5mbywgZW1pdCk7XG4gICAgICAgICAgICAkZGF0YTogbWFwLWdldCgkaW5mbywgZGF0YSk7XG5cbiAgICAgICAgICAgIEBpZiAkZW1pdCB7XG4gICAgICAgICAgICAgICAgQGlmICR0eXBlPT0gbXVsdGlwbGUge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtdWx0aXBsZS11dGlsaXRpZXMtZGVjbGFyYXRpb24oJGRhdGEsICRtb2RlOiAkZW1pdCk7XG4gICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAkdHlwZSA9PSBzaW1wbGUge1xuICAgICAgICAgICAgICAgICAgICAkbmFtZTogbWFwLWdldCgkaW5mbywgbmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHNpbXBsZS11dGlsaXR5LWRlY2xhcmF0aW9uKCRuYW1lLCAkZGF0YSwgJG1vZGU6ICRlbWl0KTtcbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgQGVycm9yICdJbnZhbGlkIHR5cGU6ICN7JHR5cGV9J1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAkbWVuZGVsZWV2LXJlZ2lzdGVyZWQtdXRpbGl0aWVzOiB0cnVlICFnbG9iYWw7XG59XG5cbiIsCgkJIi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBERUNMQVJFIE1FTkRFTEVFViBNT0RVTEVTXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBEZWZhdWx0IGRpY3Rpb25hcnkgd2l0aCBNZW5kZWxlZXYgc3RhdGUuXG4kbWVuZGVsZWV2LWNzczogbnVsbCAhZGVmYXVsdDtcbiRtZW5kZWxlZXYtY3NzLWNsYXNzZXM6IG51bGwgIWRlZmF1bHQ7XG5cbi8vLyBEZWNsYXJlIGEgTWVuZGVsZWV2IG1vZHVsZSBvZiBDU1MgZGVjbGFyYXRpb25zLlxuLy8vXG4vLy8gQGFyZyAkY2ZnIC0gU3RyaW5nIHBhdGggZm9yIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbiBpbiB0aGUgZ2xvYmFsXG4vLy8gICAgICAgICAgICAgTWVuZGVsZWV2IGNvbmZpZ1xuLy8vIEBhcmcgJHNwZWMgLSBEaWN0aW9uYXJ5IG9mIGRlY2xhcmF0aW9ucyBtYXBwaW5nIENTUyBzZWxlY3RvciB3aXRoIENTU1xuLy8vICAgICAgICAgICAgICBkZWZpbml0aW9uc1xuQGZ1bmN0aW9uIG1lbmRlbGVldi1tb2R1bGUoJGNmZywgJHNwZWMsICRpcy1jbGFzczogZmFsc2UpIHtcbiAgICAkZW1pdDogY29uZmlnKCRjZmcpO1xuICAgICRyZXM6IG51bGw7XG5cbiAgICBAZWFjaCAkc2VsZWN0b3IsICRkYXRhIGluICRzcGVjIHtcbiAgICAgICAgQGlmIHR5cGUtb2YoJGRhdGEpID09IG1hcCB7XG4gICAgICAgICAgICAkaW5mbzogKG5hbWU6ICRzZWxlY3RvciwgZGF0YTogJGRhdGEsIGVtaXQ6ICRlbWl0LCB0eXBlOiBzaW1wbGUpO1xuICAgICAgICAgICAgQGlmICRpcy1jbGFzcyB7XG4gICAgICAgICAgICAgICAgJG1lbmRlbGVldi1jc3MtY2xhc3NlczogKCRpbmZvICRtZW5kZWxlZXYtY3NzLWNsYXNzZXMpICFnbG9iYWw7XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAkbWVuZGVsZWV2LWNzczogKCRpbmZvICRtZW5kZWxlZXYtY3NzKSAhZ2xvYmFsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJHJlczogKCRpbmZvICRyZXMpO1xuXG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgQGVycm9yIFwiSW52YWxpZCBjb250ZW50IGZvciAjeyRzZWxlY3Rvcn0uXCJcbiAgICAgICAgfVxuICAgIH1cbiAgICBAcmV0dXJuICRyZXM7XG59XG5cbi8vLyBEZWNsYXJlIGEgTWVuZGVsZWV2IG1vZHVsZSBvZiBDU1MgdXRpbGl0aWVzLiBBIHV0aWxpdHkgaXMgdW5kZXJzdG9vZCBhcyBhXG4vLy8gQ1NTIGRlY2xhcmF0aW9uIHRoYXQgZGVmaW5lcyBhIHNpbmdsZSBDU1MgcHJvcGVydHkuXG4vLy9cbi8vLyBUaGlzIGZ1bmN0aW9uIG1ha2VzIGl0IGVhc2llciB0byBkZWNsYXJlIGxvdHMgb2YgY2xhc3NlcyBpbiBiYXRjaCwgYnV0IGlzXG4vLy8gZmFyIGxlc3MgZmxleGlibGUgb24gdGhlIGtpbmQgb2YgZGVjbGFyYXRpb25zIHRoYXQgY2FuIGJlIG1hZGUuXG4vLy9cbi8vLyBAYXJnICRjZmcgLSBTdHJpbmcgcGF0aCBmb3IgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGluIHRoZSBnbG9iYWxcbi8vLyAgICAgICAgICAgICBNZW5kZWxlZXYgY29uZmlnXG4vLy8gQGFyZyAkc3BlYyAtIERpY3Rpb25hcnkgb2YgZGVjbGFyYXRpb25zIG1hcHBpbmcgQ1NTIHNlbGVjdG9yIHdpdGggQ1NTXG4vLy8gICAgICAgICAgICAgIGRlZmluaXRpb25zXG5AZnVuY3Rpb24gbWVuZGVsZWV2LXV0aWxpdHktbW9kdWxlKCRjZmcsICRzcGVjKSB7XG4gICAgJGVtaXQ6IGNvbmZpZygkY2ZnKTtcbiAgICAkcmVzOiBudWxsO1xuICAgIEBlYWNoICRwcm9wLCAkZGF0YSBpbiAkc3BlYyB7XG4gICAgICAgICRwcmVmaXg6IG50aCgkZGF0YSwgMSk7XG4gICAgICAgICRjb250ZW50OiBudGgoJGRhdGEsIDIpO1xuXG4gICAgICAgIEBpZiB0eXBlLW9mKCRjb250ZW50KSA9PSBtYXAge1xuICAgICAgICAgICAgJGRhdGE6ICgpO1xuICAgICAgICAgICAgQGVhY2ggJHN1ZmZpeCwgJHZhbHVlIGluICRjb250ZW50IHtcbiAgICAgICAgICAgICAgICAkc3VmZml4OiBpZih0eXBlLW9mKCRzdWZmaXgpID09IHN0cmluZywgJHN1ZmZpeCwgaW5zcGVjdCgkc3VmZml4KSk7XG4gICAgICAgICAgICAgICAgJG5hbWU6ICRwcmVmaXggKyAkc3VmZml4O1xuICAgICAgICAgICAgICAgICRkYXRhOiBtYXAtbWVyZ2UoJGRhdGEsICgkbmFtZTogKCN7JHByb3B9OiAkdmFsdWUpKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkaW5mbzogKHByZWZpeDogJHByZWZpeCwgZGF0YTogJGRhdGEsIHR5cGU6IG11bHRpcGxlLCBlbWl0OiAkZW1pdCk7XG4gICAgICAgICAgICAkcmVzOiAoJGluZm8gJHJlcyk7XG4gICAgICAgICAgICAkbWVuZGVsZWV2LWNzczogKCRpbmZvICRtZW5kZWxlZXYtY3NzKSAhZ2xvYmFsO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIEBlcnJvciBcIkludmFsaWQgc3BlY2lmaWNhdGlvbiBmb3IgI3skcHJvcH0uXCJcbiAgICAgICAgfVxuICAgIH1cbiAgICBAcmV0dXJuICRyZXM7XG59XG5cbi8vLyBEZWNsYXJlcyBhIGNvbXBsZXRlIHNjYWxlIG9mIHZhbHVlcy5cbi8vL1xuLy8vIEBhcmcgJHNjYWxlIC0gQSBtYXAgb3IgbGlzdCBvZiAyLXR1cGxlcyBmcm9tIG5hbWVzIHRvIHZhbHVlcy5cbi8vLyBAYXJnICRjc3MgLSBBIG1hcCBvZiAocHJvcDogdmFsdWUpIHBhaXJzLiBJZiB2YWx1ZSBpcyBudWxsLCBpdCBpcyByZXBsYWNlZFxuLy8vICAgICAgICAgICAgIGJ5IGVhY2ggdmFsdWUgaW4gdGhlIGdpdmVuIHNjYWxlLlxuLy8vIEBhcmcgJGludGVycG9sYXRlIC0gTGlrZSAkY3NzLCBidXQgZWFjaCB2YWx1ZSBpcyB0cmVhdGVkIGFzIGFuIGludGVycG9sYXRpb25cbi8vLyAgICAgICAgICAgICAgICAgICAgIHN0cmluZyBpbiB3aGljaCBhbGwgb2NjdXJyZW5jZXMgb2YgJDEgYXJlIHJlcGxhY2UgYnlcbi8vLyAgICAgICAgICAgICAgICAgICAgIHRoZSB2YWx1ZSBnaXZlbiBieSB0aGUgc2NhbGUuXG5AZnVuY3Rpb24gc2NhbGUtb2YoJHNjYWxlLCAkY3NzOiAoKSwgJGludGVycG9sYXRlOiBudWxsLCAkcHJlZml4OiAnJicpIHtcbiAgICAkbWFwOiAkZm4tZW1wdHktbWFwO1xuICAgICRjc3MtdGVtcGxhdGU6ICRjc3M7XG4gICAgQGVhY2ggJGssICR2IGluICRzY2FsZSB7XG4gICAgICAgICRjc3M6ICRmbi1lbXB0eS1tYXA7XG5cbiAgICAgICAgQGVhY2ggJHByb3AsICR2YWx1ZSBpbiAkY3NzLXRlbXBsYXRlIHtcbiAgICAgICAgICAgICRjc3M6IG1hcC1tZXJnZSgkY3NzLCAoJHByb3A6ICR2YWx1ZSBvciAkdikpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRpbnRlcnBvbGF0ZSB7XG4gICAgICAgICAgICBAZWFjaCAkcHJvcCwgJHZhbHVlIGluICRpbnRlcnBvbGF0ZSB7XG4gICAgICAgICAgICAgICAgJHByb3A6IGlmKHR5cGUtb2YoJHByb3ApID09IHN0cmluZywgJHByb3AsIGluc3BlY3QoJHByb3ApKTtcbiAgICAgICAgICAgICAgICAkdmFsdWU6IHVucXVvdGUoc3RyLXJlcGxhY2UoJHZhbHVlLCAnJDEnLCAkdikpO1xuICAgICAgICAgICAgICAgICRjc3M6IG1hcC1tZXJnZSgkY3NzLCAoJHByb3A6ICR2YWx1ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJG1hcDogbWFwLW1lcmdlKCRtYXAsICgnI3skcHJlZml4fSN7JGt9JzogJGNzcykpO1xuICAgIH1cbiAgICBAcmV0dXJuICRtYXA7XG59XG4iLAoJCSJAaW1wb3J0ICcuLi9wcm9maWxlcy9iYXNlJztcblxuLy8vIEZldGNoIGNvbmZpZ3VyYXRpb24gdmFsdWUgZnJvbSBkZWZhdWx0IGNvbmZpZyBkaWN0aW9uYXJ5LlxuLy8vXG4vLy8gQGFyZyAkcGF0aCAtIExpc3Qgd2l0aCB0aGUgcGF0aCB0byBjb25maWd1cmF0aW9uXG4vLy8gQGFyZyAkZGVmYXVsdCAtIERlZmF1bHQgcmVzdWx0IGlmIGRhdGEgaXMgbm90IGZvdW5kIGluIHBhdGguXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICAgIGNvbmZpZygncGFsZXR0ZS5ibGFjaycpXG4vLy8gICAgIC8vICMxYTFhMWFcbkBmdW5jdGlvbiBjb25maWcoJHBhdGgsICRkZWZhdWx0OiBudWxsKSB7XG4gICAgQGlmIG5vdCB0eXBlLW9mKCRwYXRoKSA9PSBzdHJpbmcge1xuICAgICAgICBAZXJyb3IgJ1BhdGggbXVzdCBiZSBnaXZlbiBhcyBhIHN0cmluZyc7XG4gICAgfVxuICAgIEByZXR1cm4gbWFwLXBhdGgtbWVyZ2UoTCgkbWVuZGVsZWV2LWNvbmZpZywgJGNvbmZpZyksIHN0ci1zcGxpdCgkcGF0aCwgJy4nKSwgJGRlZmF1bHQpO1xufVxuXG4vLy8gSW5jbHVkZSBhIGNvbmZpZ3VyYXRpb24uXG5AbWl4aW4gY29uZmlnKCRwYXRoLCAkZGVmYXVsdDogKCksICRmb3I6IG51bGwsICRleHRyYTogKCkpIHtcbiAgICBAaWYgJGZvciB7XG4gICAgICAgICN7JGZvcn06IGNvbmZpZygkcGF0aCwgJGRlZmF1bHQpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICBAZWFjaCAkaywgJHYgaW4gbWFwLW1lcmdlKCRleHRyYSwgY29uZmlnKCRwYXRoLCAkZGVmYXVsdCkpIHtcbiAgICAgICAgICAgIEBpZiB0eXBlLW9mKCR2KSA9PSBzdHJpbmcge1xuICAgICAgICAgICAgICAgICN7JGt9OiB1bnF1b3RlKCR2KTtcbiAgICAgICAgICAgIH0gQGVsc2UgaWYgJHYgIT0gKCkge1xuICAgICAgICAgICAgICAgICN7JGt9OiAkdjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsCgkJIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8gR0xPQkFMIE1FTkRFTEVFViBTQ0FMRVNcbi8vLyBAZ3JvdXAgc2NhbGVzXG4vLy8gQGF1dGhvciBGw6FiaW8gTWFjw6pkbyBNZW5kZXNcbi8vL1xuLy8vIEFsbCBnbG9iYWwgc3RhdGljIHNjYWxlcyB1c2VkIGluIE1lbmRlbGVldiAoaW4gYWxwaGFiZXRpY2FsIG9yZGVyKVxuLy8vICAqIFNpemUgc2NhbGUgKGRlZmF1bHQvbnVtYmVyZWQpXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4vLy8gTWFwcyBzaXplcyBpbiB0byB1bml0LWxlc3MgdmFsdWVzLiBSZWFsIHNpemUgYXJlIGNvbXB1dGVkIG11bHRpcGx5aW5nXG4vLy8gJG1lbmRlbGVldi1zaXplLXVuaXQuXG4kbWVuZGVsZWV2LXNpemUtc2NhbGU6IChcbiAgICAnMCc6IDAsXG4gICAgJzBwJzogMC4xMjUsXG4gICAgJzEnOiAwLjI1LFxuICAgICcxcCc6IDAuMzc1LFxuICAgICcyJzogMC41LFxuICAgICcycCc6IDAuNzUsXG4gICAgJzMnOiAxLFxuICAgICczcCc6IDEuNSxcbiAgICAnNCc6IDIsXG4gICAgJzRwJzogMyxcbiAgICAnNSc6IDQsXG4gICAgJzVwJzogNixcbiAgICAnNic6IDgsXG4gICAgJzZwJzogMTIsXG4gICAgJzcnOiAxNixcbiAgICAnN3AnOiAyNCxcbiAgICAnOCc6IDMyLFxuICAgICc4cCc6IDQ4LFxuICAgICc5JzogNjQsXG4gICAgJzlwJzogOTYsXG4gICAgJzEwJzogMTI4LFxuICAgICcxMHAnOiAxOTIsXG4gICAgJzExJzogMjU2LFxuICAgICcxMXAnOiAzODQsXG4gICAgJzEyJzogNTEyLFxuICAgICcxMnAnOiA3NjgsXG4gICAgJzEzJzogMTAyNCxcbiAgICAnMTNwJzogMTUzNixcbikgIWRlZmF1bHQ7XG5cblxuLy8vIExpa2Ugc2l6ZS1zY2FsZSwgYnV0IGtleXMgYXJlIG51bWVyaWMuXG4kbWVuZGVsZWV2LXNpemUtc2NhbGUtbnVtZXJpYzogKFxuICAgIDA6IDAsXG4gICAgMTogMC4yNSxcbiAgICAyOiAwLjUsXG4gICAgMzogMSxcbiAgICA0OiAyLFxuICAgIDU6IDQsXG4gICAgNjogOCxcbiAgICA3OiAxNixcbiAgICA4OiAzMixcbiAgICA5OiA2NCxcbiAgICAxMDogMTI4LFxuICAgIDExOiAyNTYsXG4gICAgMTI6IDUxMixcbiAgICAxMzogMTAyNCxcbikgIWRlZmF1bHQ7XG4iLAoJCSIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vIEdMT0JBTCBNRU5ERUxFRVYgVkFMVUVTXG4vLy8gQGdyb3VwIGNvbnN0YW50c1xuLy8vIEBhdXRob3IgRsOhYmlvIE1hY8OqZG8gTWVuZGVzXG4vLy9cbi8vLyBHbG9iYWwgY29uc3RhbnRzIGNvbXB1dGVkIGZyb20gdXNlciBjb25maWd1cmF0aW9ucy5cbi8vLyAgKiBjb250YWluZXJcbi8vLyAgKiBsZWFkXG4vLy8gICogdW5pdC1zaXplXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4vLy8gQmFzaWMgbGVhZGluZyB2YWx1ZVxuJG1lbmRlbGVldi1sZWFkOiBjb25maWcoJ3R5cG9ncmFwaHkubGVhZCcsIDEuNSkgIWRlZmF1bHQ7XG5cbi8vLyBCYXNpYyBzaXplIHJlZmVyZW5jZSAoc3BlY2lmaWVkIGluIHJlbXMpO1xuJG1lbmRlbGVldi11bml0LXNpemU6ICRtZW5kZWxlZXYtbGVhZCAqIDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBDb250YWluZXIgY29uZmlndXJhdGlvblxuJG1lbmRlbGVldi1jb250YWluZXI6IChcbiAgICBtYXJnaW46IDAgYXV0byxcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUsXG4gICAgd2lkdGg6IDEwMCUsXG4gICAgcGFkZGluZzogMCAkbWVuZGVsZWV2LXVuaXQtc2l6ZSxcbiAgICBtYXgtd2lkdGg6IDUwcmVtLFxuKSAhZGVmYXVsdDtcbiIsCgkJIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8gTUVOREVMRUVWIEdSSUQgU1lTVEVNU1xuLy8vIEBncm91cCBncmlkIHN5c3RlbXNcbi8vLyBAYXV0aG9yIEbDoWJpbyBNYWPDqmRvIE1lbmRlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLy8gRGVmaW5lIGFsbCB1c2VmdWwgZ3JpZCBzeXN0ZW0gZnJvbSB0aGUgdHJpdmlhbCBncmlkLTEgdXAgdG8gZ3JpZC0xNS5cbkBmdW5jdGlvbiBfbWVuZGVsZWV2LW1ha2UtZ3JpZC1zeXN0ZW1zKCkge1xuICAgICRncmlkLTE6IChcbiAgICAgICAgJzAnOiAwLFxuICAgICAgICAnZnVsbCc6IDEwMCxcbiAgICApO1xuICAgICRncmlkLTI6IG1hcC1tZXJnZSgkZ3JpZC0xLCAoXG4gICAgICAgICcxXFxcXC8yJzogNTAsXG4gICAgKSk7XG4gICAgJGdyaWQtMzogbWFwLW1lcmdlKCRncmlkLTEsIChcbiAgICAgICAgJzFcXFxcLzMnOiAxMDAgLyAzLFxuICAgICAgICAnMlxcXFwvMyc6IDIwMCAvIDMsXG4gICAgKSk7XG4gICAgJGdyaWQtNDogbWFwLW1lcmdlKCRncmlkLTIsIChcbiAgICAgICAgJzFcXFxcLzQnOiAyNSxcbiAgICAgICAgJzNcXFxcLzQnOiA3NSxcbiAgICApKTtcbiAgICAkZ3JpZC01OiBtYXAtbWVyZ2UoJGdyaWQtMSwgKFxuICAgICAgICAnMVxcXFwvNSc6IDIwLFxuICAgICAgICAnMlxcXFwvNSc6IDQwLFxuICAgICAgICAnM1xcXFwvNSc6IDYwLFxuICAgICAgICAnNFxcXFwvNSc6IDgwLFxuICAgICkpO1xuICAgICRncmlkLTY6IG1hcC1tZXJnZShtYXAtbWVyZ2UoJGdyaWQtMiwgJGdyaWQtMyksIChcbiAgICAgICAgJzFcXFxcLzYnOiAxMDAgLyA2LFxuICAgICAgICAnNVxcXFwvNic6IDUwMCAvIDYsXG4gICAgKSk7XG4gICAgJGdyaWQtODogbWFwLW1lcmdlKCRncmlkLTQsIChcbiAgICAgICAgJzFcXFxcLzgnOiAxMDAgLyA4LFxuICAgICAgICAnM1xcXFwvOCc6IDMwMCAvIDgsXG4gICAgICAgICc1XFxcXC84JzogNTAwIC8gOCxcbiAgICAgICAgJzdcXFxcLzgnOiA3MDAgLyA4LFxuICAgICkpO1xuICAgICRncmlkLTc6ICdHcmlkIDcsIHJlYWxseT8hJztcbiAgICAkZ3JpZC05OiBtYXAtbWVyZ2UoJGdyaWQtMywgKFxuICAgICAgICAnMVxcXFwvOSc6IDEwMCAvIDksXG4gICAgICAgICcyXFxcXC85JzogMjAwIC8gOSxcbiAgICAgICAgJzRcXFxcLzknOiA0MDAgLyA5LFxuICAgICAgICAnNVxcXFwvOSc6IDUwMCAvIDksXG4gICAgICAgICc3XFxcXC85JzogNzAwIC8gOSxcbiAgICAgICAgJzhcXFxcLzknOiA4MDAgLyA5LFxuICAgICkpO1xuICAgICRncmlkLTEwOiBtYXAtbWVyZ2UobWFwLW1lcmdlKCRncmlkLTIsICRncmlkLTUpLCAoXG4gICAgICAgICcxXFxcXC8xMCc6IDEwLFxuICAgICAgICAnM1xcXFwvMTAnOiAzMCxcbiAgICAgICAgJzdcXFxcLzEwJzogNzAsXG4gICAgICAgICc5XFxcXC8xMCc6IDkwLFxuICAgICkpO1xuICAgICRncmlkLTExOiAnR3JpZCAxMSwgcmVhbGx5PyEnO1xuICAgICRncmlkLTEyOiBtYXAtbWVyZ2UobWFwLW1lcmdlKCRncmlkLTQsICRncmlkLTYpLCAoXG4gICAgICAgICcxXFxcXC8xMic6IDEwMCAvIDEyLFxuICAgICAgICAnNVxcXFwvMTInOiA1MDAgLyAxMixcbiAgICAgICAgJzdcXFxcLzEyJzogNzAwIC8gMTIsXG4gICAgICAgICcxMVxcXFwvMTInOiAxMTAwIC8gMTIsXG4gICAgKSk7XG4gICAgJGdyaWQtMTU6IG1hcC1tZXJnZShtYXAtbWVyZ2UoJGdyaWQtMywgJGdyaWQtNSksIChcbiAgICAgICAgJzFcXFxcLzE1JzogMTAwIC8gMTUsXG4gICAgICAgICcyXFxcXC8xNSc6IDIwMCAvIDE1LFxuICAgICAgICAnNFxcXFwvMTUnOiA0MDAgLyAxNSxcbiAgICAgICAgJzdcXFxcLzE1JzogNzAwIC8gMTUsXG4gICAgICAgICc4XFxcXC8xNSc6IDgwMCAvIDE1LFxuICAgICAgICAnMTFcXFxcLzE1JzogMTEwMCAvIDE1LFxuICAgICAgICAnMTNcXFxcLzE1JzogMTMwMCAvIDE1LFxuICAgICAgICAnMTRcXFxcLzE1JzogMTQwMCAvIDE1LFxuICAgICkpO1xuICAgIEByZXR1cm4gKFxuICAgICAgICAxOiAkZ3JpZC0xLFxuICAgICAgICAyOiAkZ3JpZC0yLFxuICAgICAgICAzOiAkZ3JpZC0zLFxuICAgICAgICA0OiAkZ3JpZC00LFxuICAgICAgICA1OiAkZ3JpZC01LFxuICAgICAgICA2OiAkZ3JpZC02LFxuICAgICAgICA4OiAkZ3JpZC04LFxuICAgICAgICA5OiAkZ3JpZC05LFxuICAgICAgICAxMDogJGdyaWQtMTAsXG4gICAgICAgIDEyOiAkZ3JpZC0xMixcbiAgICAgICAgMTU6ICRncmlkLTE1LFxuICAgICk7XG59XG5cbiRtZW5kZWxlZXYtZ3JpZC1zeXN0ZW1zOiBfbWVuZGVsZWV2LW1ha2UtZ3JpZC1zeXN0ZW1zKCkgIWRlZmF1bHQ7XG5cbi8vLyBDcmVhdGVzIGEgZ3JpZCBzeXN0ZW0gYmFzZWQgb24gYSBwcmUtZGVmaW5lZCBzZXQgb2Ygc3ViLWRpdmlzaW9uc1xuQGZ1bmN0aW9uIGdyaWQtc3lzdGVtKCRhcmdzLi4uKSB7XG4gICAgJHJlc3VsdDogKCk7XG4gICAgQGVhY2ggJG4gaW4gJGFyZ3Mge1xuICAgICAgICAkcmVzdWx0OiBtYXAtbWVyZ2UobWFwLWdldCgkbWVuZGVsZWV2LWdyaWQtc3lzdGVtcywgJG4pLCAkcmVzdWx0KTtcbiAgICB9XG4gICAgQHJldHVybiAkcmVzdWx0O1xufVxuXG4vLy8gQWRkIHNpemluZyB1bml0cyBvZiAlLCB2dyBhbmQgdmggZm9yIGdpdmVuIHVuaXQtbGVzcyBzY2FsZVxuQGZ1bmN0aW9uIGFkZC1zaXppbmctdW5pdHMoJHNjYWxlKSB7XG4gICAgJHJlczogbnVsbDtcbiAgICBAZWFjaCAkaywgJHYgaW4gJHNjYWxlIHtcbiAgICAgICAgJHJlczogKCgkayAoJHYgKiBpZigkdiA9PSAwLCAwLCAxJSkpKSAkcmVzKTtcbiAgICAgICAgQGlmICR2ICE9IDAge1xuICAgICAgICAgICAgJHJlczogKCgnI3ska312dycgKCR2ICogMXZ3KSkgJHJlcyk7XG4gICAgICAgICAgICAkcmVzOiAoKCcjeyRrfXZoJyAoJHYgKiAxdmgpKSAkcmVzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBAcmV0dXJuIGxzdC10by1tYXAoJHJlcyk7XG59XG4iLAoJCSIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vIEdMT0JBTCBNRU5ERUxFRVYgQ09ORklHVVJBQkxFIFNDQUxFU1xuLy8vIEBncm91cCBzY2FsZXNcbi8vLyBAYXV0aG9yIEbDoWJpbyBNYWPDqmRvIE1lbmRlc1xuLy8vXG4vLy8gR2xvYmFsIHNjYWxlcyBhbmQgY29uc3RhbnRzIGNvbXB1dGVkIGZyb20gdXNlciBjb25maWd1cmF0aW9ucy5cbi8vL1xuLy8vIFNjYWxlczpcbi8vLyAgKiBib3JkZXItc2NhbGVcbi8vLyAgKiByYWRpdXMtc2NhbGUtKHJlbSlcbi8vLyAgKiBzaXplLXNjYWxlLShyZW18cG9zLXJlbXxhdXRvfHBvcy1hdXRvKVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBpbXBvcnQgJ3N0YXRpYyc7XG5AaW1wb3J0ICd2YWx1ZXMnO1xuQGltcG9ydCAnZ3JpZHMnO1xuXG4vLyBCT1JERVIgU0NBTEUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuJG1lbmRlbGVldi1ib3JkZXItc2NhbGU6IChcbiAgICAnMSc6IHVucXVvdGUoJzFweCBzb2xpZCcpLFxuICAgICcyJzogdW5xdW90ZSgnMnB4IHNvbGlkJyksXG4gICAgJzQnOiB1bnF1b3RlKCc0cHggc29saWQnKSxcbiAgICAnOCc6IHVucXVvdGUoJzhweCBzb2xpZCcpLFxuKSAhZGVmYXVsdDtcblxuLy8gU0laRS9SQURJVVMgU0NBTEUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJG1lbmRlbGVldi1zaXplLXNjYWxlLW1heC1zaXplOiBjb25maWcoJ21lbmRlbGVldi5zY2FsZXMubWF4LXNpemUnLCA2NCkgIWRlZmF1bHQ7XG4kbWVuZGVsZWV2LXNpemUtc2NhbGUtcmVtOiBudWxsICFkZWZhdWx0O1xuQGlmIG5vdCAkbWVuZGVsZWV2LXNpemUtc2NhbGUtcmVtIHtcbiAgICAkbmV3OiAoKTtcbiAgICBAZWFjaCAkaywgJHYgaW4gJG1lbmRlbGVldi1zaXplLXNjYWxlIHtcbiAgICAgICAgQGlmICR2IDwgJG1lbmRlbGVldi1zaXplLXNjYWxlLW1heC1zaXplIHtcbiAgICAgICAgICAgICR2OiBpZigkdiA9PSAwLCAwLCAkdiAqICRtZW5kZWxlZXYtdW5pdC1zaXplKTtcbiAgICAgICAgICAgICRuZXc6IG1hcC1tZXJnZSgkbmV3LCAoJGs6ICR2KSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgQGlmIG5vdCAgJG1lbmRlbGVldi1zaXplLXNjYWxlLXJlbSB7XG4gICAgICAgICRtZW5kZWxlZXYtc2l6ZS1zY2FsZS1yZW06ICRuZXcgIWdsb2JhbDtcbiAgICB9XG59XG5cbiRtZW5kZWxlZXYtcmFkaXVzLXNjYWxlLXJlbTogbWFwLWFwcGx5LXZhbHVlcyhkaXYsICRtZW5kZWxlZXYtc2l6ZS1zY2FsZS1yZW0sIDIpO1xuXG4vLyBHUklEIFNJWklORyBTQ0FMRSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kbWVuZGVsZWV2LWdyaWQtc2l6ZS1zY2FsZS1uby11bml0OiBncmlkLXN5c3RlbSg1LCAxMikgIWRlZmF1bHQ7XG4kbWVuZGVsZWV2LWdyaWQtc2l6ZS1zY2FsZTogYWRkLXNpemluZy11bml0cygkbWVuZGVsZWV2LWdyaWQtc2l6ZS1zY2FsZS1uby11bml0KSAhZGVmYXVsdDtcbiRtZW5kZWxlZXYtZ3JpZC1zY2FsZTogKFxuICAgICcxJzogMSxcbiAgICAnMic6IDIsXG4gICAgJzMnOiAzLFxuICAgICc0JzogNCxcbiAgICAnNSc6IDUsXG4gICAgJzYnOiA2LFxuICAgICc4JzogOCxcbiAgICAnOSc6IDksXG4gICAgJzEwJzogMTAsXG4gICAgJzEyJzogMTIsXG4gICAgJzE1JzogMTUsXG4pICFkZWZhdWx0O1xuJG1lbmRlbGVldi1ncmlkLWdhcC1zY2FsZTogKFxuICAgICcxJzogMC4yNSAqICRtZW5kZWxlZXYtdW5pdC1zaXplLFxuICAgICcyJzogMC41MCAqICRtZW5kZWxlZXYtdW5pdC1zaXplLFxuICAgICczJzogMS4wMCAqICRtZW5kZWxlZXYtdW5pdC1zaXplLFxuICAgICc0JzogMi4wMCAqICRtZW5kZWxlZXYtdW5pdC1zaXplLFxuKSAhZGVmYXVsdDtcbiRtZW5kZWxlZXYtZ3JpZC1zcGFuLWRhdGE6IChcbiAgICAxOiBhdXRvIC8gc3BhbiAxLFxuICAgIDI6IGF1dG8gLyBzcGFuIDIsXG4gICAgMzogYXV0byAvIHNwYW4gMyxcbiAgICA0OiBhdXRvIC8gc3BhbiA0LFxuICAgIDU6IGF1dG8gLyBzcGFuIDUsXG4gICAgNjogYXV0byAvIHNwYW4gNixcbiAgICA3OiBhdXRvIC8gc3BhbiA3LFxuICAgIDg6IGF1dG8gLyBzcGFuIDgsXG4gICAgOTogYXV0byAvIHNwYW4gOSxcbiAgICAxMDogYXV0byAvIHNwYW4gMTAsXG4gICAgMTE6IGF1dG8gLyBzcGFuIDExLFxuICAgIDEyOiBhdXRvIC8gc3BhbiAxMixcbiAgICAxMzogYXV0byAvIHNwYW4gMTMsXG4gICAgMTQ6IGF1dG8gLyBzcGFuIDE0LFxuICAgIDE1OiBhdXRvIC8gc3BhbiAxNSxcbik7XG5cbi8vIFRSQU5TRk9STUFUSU9OUyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4kbWVuZGVsZWV2LXRyYW5zZm9ybS1zY2FsZTogKFxuICAgIDA6IDAlLCAxOiA1JSwgMjogMTAlLCAzOiAyNSUsIDQ6IDUwJSwgNTogNzUlLCA2OiA5MCUsIDc6IDk1JSwgODogMTAwJSxcbik7XG4kbWVuZGVsZWV2LXRyYW5zZm9ybS1kb3VibGUtc2NhbGU6IChcbiAgICBuMDogMTAwJSwgbjE6IDk1JSwgbjI6IDkwJSwgbjM6IDc1JSwgbjQ6IDUwJSwgbjU6IDI1JSwgbjY6IDEwJSwgbjc6IDUlLCBuODogMCUsXG4gICAgMDogMTAwJSwgMTogMTA1JSwgMjogMTEwJSwgMzogMTI1JSwgNDogMTUwJSwgNTogMTc1JSwgNjogMTkwJSwgNzogMTk1JSwgODogMjAwJSxcbik7XG4kbWVuZGVsZWV2LWdyb3ctc2NhbGU6IChcbiAgICAwOiAxLCAxOiAxLjA1LCAyOiAxLjEwLCAzOiAxLjI1LCA0OiAxLjUwLCA1OiAyLCA2OiAzLFxuKTtcbiRtZW5kZWxlZXYtc2hyaW5rLXNjYWxlOiAoXG4gICAgMDogMSwgMTogMSAvIDEuMDUsIDI6IDEgLyAxLjEwLCAzOiAxIC8gMS4yNSwgNDogMSAvIDEuNTAsIDU6IDEgLyAyLCA2OiAxIC8gMyxcbik7XG4iLAoJCSIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vIE1BTklQVUxBVEUgU0laRVNcbi8vLyBAZ3JvdXAgc2l6aW5nXG4vLy8gQGF1dGhvciBGw6FiaW8gTWFjw6pkbyBNZW5kZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbi8vLyBDb252ZXJ0IHVuaXRsZXNzIG51bWJlciB0byBzaXplIGJ5IG11bHRpcGx5aW5nIGl0IGJ5IGxlYWQgKiAxcmVtLlxuLy8vXG4vLy8gSWYgaW5wdXQgaXMgYSBudW1iZXIgd2l0aCB1bml0cywgaXQgaXMgcmV0dXJuZWQgdW5jaGFuZ2VkLlxuLy8vXG4vLy8gQGFyZyAkeCAtIE51bWJlclxuQGZ1bmN0aW9uIHNpemUoJHgpIHtcbiAgICBAaWYgdHlwZS1vZigkeCkgPT0gbnVtYmVyIGFuZCB1bml0KCR4KSA9PSAnJyB7XG4gICAgICAgIEByZXR1cm4gJHggKiAkbWVuZGVsZWV2LXVuaXQtc2l6ZTtcbiAgICB9XG4gICAgQHJldHVybiAkeDtcbn1cblxuLy8vIENvbnZlcnQgdmFsdWUgdG8gYSB1bml0IG9uIHRoZSBzaXplIHNjYWxlLlxuLy8vXG4vLy8gQGFyZyAkeCAtIGlucHV0IHZhbHVlXG5AZnVuY3Rpb24gc2l6ZS1zY2FsZSgkeCkge1xuICAgIEBpZiB0eXBlLW9mKCR4KSA9PSBudW1iZXIge1xuICAgICAgICBAaWYgdW5pdCgkeCkgIT0gJycge1xuICAgICAgICAgICAgQGVycm9yICdPbmx5IHVuaXRsZXNzIG51bWJlcnMgYXJlIHZhbGlkIHNpemUgc2NhbGVzLidcbiAgICAgICAgfVxuICAgICAgICAkczogc2lnbigkeCk7XG4gICAgICAgICR2OiBhYnMoJHgpO1xuICAgICAgICAkc2l6ZTogbWFwLWdldCgkbWVuZGVsZWV2LXNpemUtc2NhbGUtbnVtZXJpYywgJHYpO1xuICAgICAgICAkc2l6ZTogaWYoJHNpemUgPT0gbnVsbCwgcG93KDIsIGFicygkeCkgLSAzKSwgJHNpemUpO1xuICAgICAgICBAcmV0dXJuICRzICogJHNpemUgKiAkbWVuZGVsZWV2LXVuaXQtc2l6ZTtcbiAgICB9IEBlbHNlIGlmIHR5cGUtb2YoJHgpID09IHN0cmluZyB7XG4gICAgICAgICR4OiBtYXAtZ2V0KCRtZW5kZWxlZXYtc2l6ZS1zY2FsZSwgJHgpO1xuICAgICAgICBAaWYgJHggPT0gbnVsbCB7XG4gICAgICAgICAgICBAZXJyb3IgJ0ludmFsaWQgc2l6ZSAjeyR4fS4nO1xuICAgICAgICB9XG4gICAgICAgIEByZXR1cm4gc2l6ZS1zY2FsZSgkeCk7XG4gICAgfSBAZWxzZSBpZiAkeCA9PSBudWxsIHtcbiAgICAgICAgQHJldHVybiBudWxsO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICBAZXJyb3IgJ0ludmFsaWQgc2l6ZSAjeyR4fS4nO1xuICAgIH1cbn1cblxuLy8vIFJldHVybiBhIG1hcCBvZiBzaXppbmdzIHdpdGggcHJvcGVydHktKGxlZnQvcmlnaHQvdG9wKSBldGMgdG8gdGhlIHZhbHVlc1xuLy8vIGRlZmluZWQgaW4gdm1hcC5cbkBmdW5jdGlvbiBzaXppbmctbWFwKCRwcm9wLCAkdm1hcCkge1xuICAgIEByZXR1cm4gKFxuICAgICAgICAjeyRwcm9wfS1sZWZ0OiBtYXAtZ2V0LWZpcnN0KCR2bWFwLCBMKGxlZnQsIGwsIHgsIGhvcml6b250YWwsIGFsbCkpLFxuICAgICAgICAjeyRwcm9wfS1yaWdodDogbWFwLWdldC1maXJzdCgkdm1hcCwgTChyaWdodCwgciwgeCwgaG9yaXpvbnRhbCwgYWxsKSksXG4gICAgICAgICN7JHByb3B9LXRvcDogbWFwLWdldC1maXJzdCgkdm1hcCwgTCh0b3AsIHQsIHksIHZlcnRpY2FsLCBhbGwpKSxcbiAgICAgICAgI3skcHJvcH0tYm90dG9tOiBtYXAtZ2V0LWZpcnN0KCR2bWFwLCBMKGJvdHRvbSwgYiwgeSwgdmVydGljYWwsIGFsbCkpLFxuICAgICk7XG59XG5cbi8vLyBSZXR1cm4gYSBtYXAgd2l0aCBzaXppbmcgdmFsdWVzIGZvciB0aGUgZ2l2ZW4gcHJvcGVydHkuXG4vLy9cbi8vLyBAYXJnICRwcm9wZXJ0eSAtIFByb3BlcnR5IG5hbWVcbi8vLyBAYXJnICR2YWx1ZSAtIFZhbHVlIGFzc2lnbmVkIHRvIHByb3BlcnR5LiBXaWxsIGJlIGNvbnZlcnRlZCB0byBhIHNpemluZy5cbkBmdW5jdGlvbiBzaXppbmcoJHByb3BlcnR5LCAkdmFsdWUpIHtcbiAgICBAaWYgdHlwZS1vZigkdmFsdWUpID09IG51bWJlciBvciB0eXBlLW9mKCR2YWx1ZSkgPT0gc3RyaW5nIHtcbiAgICAgICAgQHJldHVybiAoJHByb3BlcnR5OiBzaXplKCR2YWx1ZSkpO1xuICAgIH0gQGVsc2UgaWYgdHlwZS1vZigkdmFsdWUpID09IGxpc3Qge1xuICAgICAgICBAcmV0dXJuICgkcHJvcGVydHk6IG1hcChzaXplLCAkdmFsdWUpKTtcbiAgICB9IEBlbHNlIGlmIHR5cGUtb2YoJHZhbHVlKSA9PSBtYXAge1xuICAgICAgICAkdmFsdWU6IHNpemluZy1tYXAoJHByb3BlcnR5LCAkdmFsdWUpO1xuICAgICAgICBAcmV0dXJuIG1hcC1hcHBseS12YWx1ZXMoc2l6ZSwgbWFwLWZpbHRlci12YWx1ZXMobm90LW51bGwsICR2YWx1ZSkpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICBAcmV0dXJuICgkcHJvcGVydHk6ICR2YWx1ZSk7XG4gICAgfVxufVxuXG4vLy8gUmV0dXJuIGEgbWFwIHdpdGggc2l6aW5nIHZhbHVlcyBpbiB0aGUgc2l6aW5nIHNjYWxlIGZvciB0aGUgZ2l2ZW4gcHJvcGVydHkuXG4vLy9cbi8vLyBAYXJnICRwcm9wZXJ0eSAtIFByb3BlcnR5IG5hbWVcbi8vLyBAYXJnICR2YWx1ZSAtIFZhbHVlIGFzc2lnbmVkIHRvIHByb3BlcnR5LiBXaWxsIGJlIGNvbnZlcnRlZCB0byBhIHZhbHVlIG9uIHRoZVxuLy8vICAgICAgICAgICAgICAgc2l6ZSBzY2FsZS5cbkBmdW5jdGlvbiBzaXppbmctc2NhbGUoJHByb3BlcnR5LCAkdmFsdWUpIHtcbiAgICBAaWYgdHlwZS1vZigkdmFsdWUpID09IG51bWJlciBvciB0eXBlLW9mKCR2YWx1ZSkgPT0gc3RyaW5nIHtcbiAgICAgICAgQHJldHVybiAoJHByb3BlcnR5OiBzaXplLXNjYWxlKCR2YWx1ZSkpO1xuICAgIH0gQGVsc2UgaWYgdHlwZS1vZigkdmFsdWUpID09IGxpc3Qge1xuICAgICAgICBAcmV0dXJuICgkcHJvcGVydHk6IG1hcChzaXplLXNjYWxlLCAkdmFsdWUpKTtcbiAgICB9IEBlbHNlIGlmIHR5cGUtb2YoJHZhbHVlKSA9PSBtYXAge1xuICAgICAgICAkdmFsdWU6IHNpemluZy1tYXAoJHByb3BlcnR5LCAkdmFsdWUpO1xuICAgICAgICBAcmV0dXJuIG1hcC1hcHBseS12YWx1ZXMoc2l6ZS1zY2FsZSwgbWFwLWZpbHRlci12YWx1ZXMobm90LW51bGwsICR2YWx1ZSkpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICBAcmV0dXJuICgkcHJvcGVydHk6ICR2YWx1ZSk7XG4gICAgfVxufVxuXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gTUlYSU5TXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLy8gSW5jbHVkZSBzb21lIHNpemluZyBwcm9wZXJ0eS5cbi8vL1xuLy8vIFZhbHVlIGNhbiBiZSBhIHNpemUgb3IgYSBtYXAgZnJvbSBkaXJlY3Rpb25zIHRvIHNpemVzLiBJdCB1bmRlcnN0YW5kcyB0aGVcbi8vLyBmb2xsb3dpbmcgZGlyZWN0aW9uczogdG9wLCBib3R0b20sIGxlZnQgYW5kIHJpZ2h0IGFuZCB0aGUgcHNldWRvIGRpcmVjdGlvbnM6XG4vLy8gaG9yaXpvbnRhbCwgeCwgdmVydGljYWwsIHksIGFuZCBhbGwuXG4vLy9cbi8vLyBAYXJnICRwcm9wZXJ0eSAtIFByb3BlcnR5IG5hbWUuXG4vLy8gQGFyZyAkdmFsdWUgLSBTaXplIG9yIG1hcHBpbmcgb2Ygc2l6ZXMuXG4vLy8gQGFyZyAkc3VmZml4IC0gU3VmZml4IHRvIGFkZCB0byBwcm9wZXJ0eSBkZWNsYXJhdGlvbiAoZS5nLi4gIWltcG9ydGFudCk7XG5AbWl4aW4gc2l6aW5nKCRwcm9wZXJ0eSwgJHZhbHVlLCAkc3VmZml4OiBudWxsKSB7XG4gICAgJGRhdGE6IHNpemluZygkcHJvcGVydHksICR2YWx1ZSk7XG4gICAgQGluY2x1ZGUgZnJvbS1tYXAoJGRhdGEsICRzdWZmaXg6ICRzdWZmaXgpO1xufVxuXG5AbWl4aW4gc2l6aW5nLXNjYWxlKCRwcm9wZXJ0eSwgJHZhbHVlLCAkc3VmZml4OiBudWxsKSB7XG4gICAgJGRhdGE6IHNpemluZy1zY2FsZSgkcHJvcGVydHksICR2YWx1ZSk7XG4gICAgQGluY2x1ZGUgZnJvbS1tYXAoJGRhdGEsICRzdWZmaXg6ICRzdWZmaXgpO1xufVxuXG4vLy8gQSBzaXppbmcgZnVuY3Rpb24gZm9yIHdpZHRocy5cbkBtaXhpbiB3aWR0aCgkdmFsdWUsICRzdWZmaXg6IG51bGwpIHtcbiAgICBAaW5jbHVkZSBzaXppbmcod2lkdGgsICR2YWx1ZSwgJHN1ZmZpeCk7XG59XG5cbkBtaXhpbiB3aWR0aC1zY2FsZSgkdmFsdWUsICRzdWZmaXg6IG51bGwpIHtcbiAgICBAaW5jbHVkZSBzaXppbmctc2NhbGUod2lkdGgsICR2YWx1ZSwgJHN1ZmZpeCk7XG59XG5cbi8vLyBBIHNpemluZyBmdW5jdGlvbiBmb3IgaGVpZ2h0cy5cbkBtaXhpbiBoZWlnaHQoJHZhbHVlLCAkc3VmZml4OiBudWxsKSB7XG4gICAgQGluY2x1ZGUgc2l6aW5nKGhlaWdodCwgJHZhbHVlLCAkc3VmZml4KTtcbn1cblxuQG1peGluIGhlaWdodC1zY2FsZSgkdmFsdWUsICRzdWZmaXg6IG51bGwpIHtcbiAgICBAaW5jbHVkZSBzaXppbmctc2NhbGUoaGVpZ2h0LCAkdmFsdWUsICRzdWZmaXgpO1xufVxuXG4vLy8gQSBzaXppbmcgZnVuY3Rpb24gZm9yIG1hcmdpbnMuXG5AbWl4aW4gbWFyZ2luKCR2YWx1ZSwgJHN1ZmZpeDogbnVsbCkge1xuICAgIEBpbmNsdWRlIHNpemluZyhtYXJnaW4sICR2YWx1ZSwgJHN1ZmZpeCk7XG59XG5cbkBtaXhpbiBtYXJnaW4tc2NhbGUoJHZhbHVlLCAkc3VmZml4OiBudWxsKSB7XG4gICAgQGluY2x1ZGUgc2l6aW5nLXNjYWxlKG1hcmdpbiwgJHZhbHVlLCAkc3VmZml4KTtcbn1cblxuLy8vIEEgc2l6aW5nIGZ1bmN0aW9uIGZvciBwYWRzLlxuQG1peGluIHBhZCgkdmFsdWUsICRzdWZmaXg6IG51bGwpIHtcbiAgICBAaW5jbHVkZSBzaXppbmcocGFkZGluZywgJHZhbHVlLCAkc3VmZml4KTtcbn1cblxuQG1peGluIHBhZC1zY2FsZSgkdmFsdWUsICRzdWZmaXg6IG51bGwpIHtcbiAgICBAaW5jbHVkZSBzaXppbmctc2NhbGUocGFkZGluZywgJHZhbHVlLCAkc3VmZml4KTtcbn1cblxuLy8vIEFsaWFzIHRvIHRoZSBwYWQgbWl4aW4uXG5AbWl4aW4gcGFkZGluZygkdmFsdWUsICRzdWZmaXg6IG51bGwpIHtcbiAgICBAaW5jbHVkZSBwYWQoJHZhbHVlLCAkc3VmZml4KTtcbn1cblxuQG1peGluIHBhZGRpbmctc2NhbGUoJHZhbHVlLCAkc3VmZml4OiBudWxsKSB7XG4gICAgQGluY2x1ZGUgcGFkLXNjYWxlKCR2YWx1ZSwgJHN1ZmZpeCk7XG59XG4iLAoJCSIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vIENPTE9SIFRSQU5TRk9STUFUSU9OUyBBTkQgVVRJTElUSUVTXG4vLy8gQGdyb3VwIENvbG9yXG4vLy8gQGF1dGhvciBGw6FiaW8gTWFjw6pkbyBNZW5kZXNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbi8vIENvbmZpZ3VyYXRpb24gb3B0aW9uc1xuJG1lbmRlbGVldi1jb2xvci1iaWFzOiBjb25maWcoJ2NvbG9yLmNvbnRyYXN0LWJpYXMnKSAhZGVmYXVsdDtcbiRtZW5kZWxlZXYtY29sb3Itcm9sZXM6ICRmbi1lbXB0eS1tYXAgIWRlZmF1bHQ7XG4kbWVuZGVsZWV2LXZhcmlhbnQtbGV2ZWxzOiBtYXAta2V5cyhjb25maWcoJ2NvbG9yLnZhcmlhbnRzLmxldmVscycpKSAhZGVmYXVsdDtcblxuLy8gRmV0Y2ggZGFyayBhbmQgbGlnaHQgY29udHJhc3QgbWl4ZXMgdG8gY3JlYXRlIGNvbnRyYXN0IHZhcmlhbnRzXG4kbWVuZGVsZWV2LXZhcmlhbnQtbGlnaHQtY29udHJhc3Q6IGNvbmZpZygnY29sb3IudmFyaWFudHMuY29udHJhc3QubGlnaHQnKSAhZGVmYXVsdDtcbiRtZW5kZWxlZXYtdmFyaWFudC1kYXJrLWNvbnRyYXN0OiBjb25maWcoJ2NvbG9yLnZhcmlhbnRzLmNvbnRyYXN0LmRhcmsnKSAhZGVmYXVsdDtcblxuLy8vIFJldHVybiBuYW1lZCBjb2xvciBvciBhIGRlZmF1bHQgdmFsdWUgaWYgY29sb3IgaXMgbm90IHJlZ2lzdGVyZWRcbi8vL1xuLy8vIEBhcmcgJG5hbWUgLSBDb2xvciBuYW1lIG9yIGNvbG9yIHZhbHVlXG4vLy8gQGFyZyAkdmFyaWFudCAtIENob3NlbiB2YXJpYW50LiBDYW4gYWxzbyBiZSB0aGUgc3RyaW5nICdjb250cmFzdCcuXG4vLy8gQGFyZyAkYWxwaGEgLSBBcHBseSBhbHBoYSBhZGp1c3RtZW50IHRvIGNvbG9yLCBpZiBnaXZlbi5cbi8vLyBAYXJnICRkZWZhdWx0IC0gSWYgZ2l2ZW4sIHVzZXMgdGhpcyB2YWx1ZSBpZiBjb2xvciBuYW1lIGlzIG5vdCBmb3VuZCBpbiB0aGVcbi8vLyAgICAgICAgICAgICAgICAgcGFsZXR0ZSBkaWN0aW9uYXJ5LlxuQGZ1bmN0aW9uIGNvbG9yKCRuYW1lLCAkdmFyaWFudDogbnVsbCwgJGFscGhhOiBudWxsLCAkZGVmYXVsdDogbnVsbCkge1xuICAgICRyZXN1bHQ6ICRuYW1lO1xuICAgIEBpZiAkbmFtZSA9PSBudWxsIHtcbiAgICAgICAgQHJldHVybiBudWxsO1xuICAgIH1cbiAgICBAaWYgdHlwZS1vZigkbmFtZSkgPT0gc3RyaW5nIHtcbiAgICAgICAgJHJlc3VsdDogbWFwLXJlYWQoJG1lbmRlbGVldi1jb2xvci1wYWxldHRlLCAkbmFtZSwgJGRlZmF1bHQpO1xuICAgIH1cblxuICAgIC8vIE1ha2UgdHJhbnNmb3JtYXRpb25zXG4gICAgQGlmICR2YXJpYW50ID09IGNvbnRyYXN0IHtcbiAgICAgICAgJGNvbnRyYXN0OiBtYXAtZ2V0KCRtZW5kZWxlZXYtY29sb3ItY29udHJhc3QsICRyZXN1bHQpO1xuICAgICAgICBAaWYgJGNvbnRyYXN0ID09IG51bGwge1xuICAgICAgICAgICAgJGNvbnRyYXN0OiBjaG9vc2UtY29udHJhc3QtY29sb3IoJHJlc3VsdCwgJGJpYXM6ICRtZW5kZWxlZXYtY29sb3ItYmlhcyk7XG4gICAgICAgIH1cbiAgICAgICAgJHJlc3VsdDogJGNvbnRyYXN0O1xuICAgIH0gQGVsc2UgaWYgJHZhcmlhbnQgIT0gbnVsbCB7XG4gICAgICAgIEBlcnJvciAnSW52YWxpZCB2YXJpYW50IGZvciBjb2xvciAjeyRuYW1lfTogI3skdmFyaWFudH0nO1xuICAgIH1cbiAgICBAaWYgJGFscGhhICE9IG51bGwge1xuICAgICAgICAkcmVzdWx0OiBjaGFuZ2UtY29sb3IoJHJlc3VsdCwgJGFscGhhOiAkYWxwaGEpO1xuICAgIH1cblxuICAgIC8vIFJldHVybiByZXN1bHRcbiAgICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8vLyBSZXR1cm4gYSBuYW1lZCB2YXJpYW50IGZvciB0aGUgZ2l2ZW4gY29sb3IuXG5AZnVuY3Rpb24gY29sb3ItdmFyaWFudCgkY29sb3IsICR2YXJpYW50KSB7XG4gICAgQGlmIG5vdCAkY29sb3Ige1xuICAgICAgICBAcmV0dXJuIG51bGw7XG4gICAgfVxuICAgICR2YWx1ZTogaWYodHlwZS1vZigkY29sb3IpID09IHN0cmluZywgbWFwLWdldCgkbWVuZGVsZWV2LWNvbG9yLXBhbGV0dGUsICRjb2xvciksICRjb2xvcik7XG4gICAgQGlmIG5vdCAkdmFsdWUge1xuICAgICAgICBAZXJyb3IgJ0NvbG9yIGRvZXMgbm90IGV4aXN0OiAje2luc3BlY3QoJGNvbG9yKX0nO1xuICAgIH1cblxuICAgIC8vIFJhdyB2YXJpYW50IGNhbGw6IHBhc3NpbmcgYSB0dXBsZSBvZiAoY29sb3ItbmFtZSwgbWl4KVxuICAgIEBpZiB0eXBlLW9mKCR2YXJpYW50KSA9PSBsaXN0IHtcbiAgICAgICAgJG90aGVyOiBjb2xvcihudGgoJHZhcmlhbnQsIDEpKTtcbiAgICAgICAgJG1peDogbnRoKCR2YXJpYW50LCAyKTtcbiAgICAgICAgQHJldHVybiBtaXgoJG90aGVyLCAkdmFsdWUsICRtaXgpO1xuICAgIH1cblxuICAgIC8vIEZldGNoIGNvbmZpZ3VyYXRpb25cbiAgICAkY2ZnOiBtYXAtZ2V0KCRtZW5kZWxlZXYtdmFyaWFudC1sZXZlbHMsICR2YXJpYW50KTtcbiAgICBAaWYgbm90ICRjZmcge1xuICAgICAgICBAZXJyb3IgJ0ludmFsaWQgdmFyaWFudDogI3skdmFyaWFudH0nO1xuICAgIH1cblxuICAgIC8vIFRyeSBjb2xvciBmcm9tIGNhY2hlXG4gICAgJHJlczogbWFwLWdldCgkbWVuZGVsZWV2LWNvbG9yLXBhbGV0dGUsICcjeyRjb2xvcn0tI3skdmFyaWFudH0nKTtcbiAgICBAaWYgJHJlcyB7XG4gICAgICAgIEByZXR1cm4gJHJlcztcbiAgICB9XG5cbiAgICAvLyBDb21wdXRlIHZhcmlhdGlvblxuICAgICR2YXJpYW50LWNvbG9yOiBjb2xvci12YXJpYW50KCR2YWx1ZSwgJGNmZyk7XG5cbiAgICAvLyBDb21wdXRlIGNvbnRyYXN0IGFuZCBzYXZlIGluIGRpY3Rpb25hcnlcbiAgICAkbGlnaHQ6IGNvbG9yLXZhcmlhbnQoJHZhbHVlLCAkbWVuZGVsZWV2LXZhcmlhbnQtbGlnaHQtY29udHJhc3QpO1xuICAgICRkYXJrOiBjb2xvci12YXJpYW50KCR2YWx1ZSwgJG1lbmRlbGVldi12YXJpYW50LWRhcmstY29udHJhc3QpO1xuICAgICRjb250cmFzdDogY2hvb3NlLWNvbnRyYXN0LWNvbG9yKCR2YXJpYW50LCAkbGlnaHQsICRkYXJrLCAkbWVuZGVsZWV2LWNvbG9yLWJpYXMpO1xuICAgICRtZW5kZWxlZXYtY29sb3ItY29udHJhc3Q6IG1hcC1tZXJnZSgoXG4gICAgICAgICR2YXJpYW50LWNvbG9yOiAkY29udHJhc3QsXG4gICAgICAgICRjb250cmFzdDogJHZhcmlhbnQtY29sb3IsXG4gICAgKSwgJG1lbmRlbGVldi1jb2xvcl9jb250cmFzdCkgIWdsb2JhbDtcblxuICAgIEByZXR1cm4gJHZhcmlhbnQtY29sb3I7XG59XG5cblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIE1JWElOU1xuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8vIERlZmluZSB0aGUgY29sb3IgYW5kIGJhY2tncm91bmQtY29sb3IgcHJvcGVydGllcy5cbi8vLyBJZiBjYWxsZWQgd2l0aCBhIHNpbmdsZSBhcmd1bWVudCwgdHJlYXRzIHRoZSBjb2xvciBhcyBhIGNvbG9yIG5hbWUgYW5kXG4vLy8gYXNzaWduIGl0IHRvIHRoZSBiYWNrZ3JvdW5kIGFuZCB0aGUgY29udHJhc3QgY29sb3IgdG8gdGhlIGZvcmVncm91bmQuXG5AbWl4aW4gY29sb3IoJGNvbG9yLCAkYm9yZGVyOiBmYWxzZSwgJGZsaXA6IGZhbHNlKSB7XG4gICAgJGJnOiBjb2xvcihudGgoJGNvbG9yLCAxKSk7XG4gICAgJGZnOiBpZih0eXBlLW9mKCRjb2xvcikgPT0gbGlzdCwgbnRoKCRjb2xvciwgMiksIG51bGwpO1xuICAgICRmZzogaWYoJGZnLCBjb2xvcigkZmcpLCBjb2xvcigkYmcsIGNvbnRyYXN0KSk7XG4gICAgQGlmICRmbGlwIHtcbiAgICAgICAgJGF1eDogJGJnO1xuICAgICAgICAkYmc6ICRmZztcbiAgICAgICAgJGZnOiAkYXV4O1xuICAgIH1cbiAgICAkcmVzOiAoY29sb3I6ICRmZywgYmFja2dyb3VuZC1jb2xvcjogJGJnKTtcblxuICAgIC8vIEFkZCBib3JkZXIgY29sb3JcbiAgICBAaWYgJGJvcmRlciA9PSBmb3JlZ3JvdW5kIG9yICRib3JkZXIgPT0gZmcge1xuICAgICAgICAkcmVzOiBtYXAtbWVyZ2UoJHJlcywgKGJvcmRlci1jb2xvcjogJGZnKSk7XG4gICAgfSBAZWxzZSBpZiAkYm9yZGVyID09IGJhY2tncm91bmQgb3IgJGJvcmRlciA9PSBiZyBvciAkYm9yZGVyIHtcbiAgICAgICAgJHJlczogbWFwLW1lcmdlKCRyZXMsIChib3JkZXItY29sb3I6ICRiZykpO1xuICAgIH1cblxuICAgIC8vIFNldCBwcm9wZXJ0aWVzXG4gICAgQGluY2x1ZGUgZnJvbS1tYXAoJHJlcyk7XG59XG5cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBDT05GSUdVUkFUSU9OU1xuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJG1lbmRlbGVldi1jb2xvci1jb25maWc6IGZhbHNlICFkZWZhdWx0O1xuQGlmIG5vdCAkbWVuZGVsZWV2LWNvbG9yLWNvbmZpZyB7XG4gICAgJHZhcmlhbnQtbGV2ZWxzOiBjb25maWcoJ2NvbG9yLnZhcmlhbnRzLmxldmVscycpO1xuICAgICRiaWFzOiAkbWVuZGVsZWV2LWNvbG9yLWJpYXM7XG5cbiAgICAvLy8gRGljdGlvbmFyeSB0aGF0IHN0b3JlcyBhbGwgbmFtZWQgY29sb3JzIHdpdGggdGhlaXIgcmVzcGVjdGl2ZSB2YWx1ZXNcbiAgICAkbWVuZGVsZWV2LWNvbG9yLXBhbGV0dGU6IG1hcC1tZXJnZSgkbWVuZGVsZWV2LWNvbG9yLXBhbGV0dGUsIGNvbmZpZygncGFsZXR0ZScsICRmbi1lbXB0eS1tYXApKTtcblxuICAgIC8vLyBEaWN0aW9uYXJ5IG1hcHBpbmcgY29sb3IgdmFsdWVzIHRvIHRoZWlyIHJlc3BlY3RpdmUgY29udHJhc3RzXG4gICAgJG1lbmRlbGVldi1jb2xvci1jb250cmFzdDogbWFwLW1lcmdlKCRtZW5kZWxlZXYtY29sb3ItY29udHJhc3QsIGNvbmZpZygnY29udHJhc3QnLCAkZm4tZW1wdHktbWFwKSk7XG5cbiAgICAvLyBDcmVhdGUgYSBsaXN0IHdpdGggYWxsIGNvbnRyYXN0cyBmcm9tIG5hbWVkIGNvbG9ycy5cbiAgICAkYWNjOiAoKTtcbiAgICBAZWFjaCAkY29sb3IsICR2YWx1ZSBpbiAkbWVuZGVsZWV2LWNvbG9yLXBhbGV0dGUge1xuICAgICAgICBAaWYgbm90IG1hcC1nZXQoJG1lbmRlbGVldi1jb2xvci1jb250cmFzdCwgJHZhbHVlKSB7XG4gICAgICAgICAgICAkbGlnaHQ6IGNvbG9yLXZhcmlhbnQoJHZhbHVlLCAkbWVuZGVsZWV2LXZhcmlhbnQtbGlnaHQtY29udHJhc3QpO1xuICAgICAgICAgICAgJGRhcms6IGNvbG9yLXZhcmlhbnQoJHZhbHVlLCAkbWVuZGVsZWV2LXZhcmlhbnQtZGFyay1jb250cmFzdCk7XG4gICAgICAgICAgICAkY29udHJhc3Q6IGNob29zZS1jb250cmFzdC1jb2xvcigkdmFsdWUsICRsaWdodCwgJGRhcmssICRiaWFzKTtcbiAgICAgICAgICAgICRhY2M6IG1hcC1tZXJnZSgoJHZhbHVlOiAkY29udHJhc3QsICRjb250cmFzdDogJHZhbHVlKSwgJGFjYyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJG1lbmRlbGVldi1jb2xvci1jb250cmFzdDogbWFwLW1lcmdlKCRhY2MsICRtZW5kZWxlZXYtY29sb3ItY29udHJhc3QpICFnbG9iYWw7XG5cbiAgICAvLyBDcmVhdGUgYSBsaXN0IG9mIGNvbG9yIHJvbGVzIHVzZWQgdG8gZGVyaXZlIHRoZSBjb2xvciBjbGFzc2VzLlxuICAgIC8vIFdoZW4gY3JlYXRpbmcgdGhhdCBsaXN0LCBhbHNvIHNhdmUgYWxsIHZhcmlhbnQgY29sb3JzIGluIHRoZSBkZWZhdWx0XG4gICAgLy8gY29sb3IgZGljdGlvbmFyeS5cbiAgICAkcm9sZXM6IGNvbmZpZygnY29sb3Iucm9sZXMnKTtcblxuICAgIEBlYWNoICRjb2xvciBpbiBjb25maWcoJ2NvbG9yLnZhcmlhbnRzLmNvbG9ycycpIHtcbiAgICAgICAgLy8gU2F2ZSBtYWluIGNvbG9yXG4gICAgICAgIEBpZiBub3QgY29udGFpbnMoJHJvbGVzLCAkY29sb3IpIHtcbiAgICAgICAgICAgICRyb2xlczogYXBwZW5kKCRyb2xlcywgJGNvbG9yKTtcbiAgICAgICAgfVxuICAgICAgICAkdmFsdWU6IG1hcC1nZXQoJG1lbmRlbGVldi1jb2xvci1wYWxldHRlLCAkY29sb3IpO1xuXG4gICAgICAgIC8vIENvbXB1dGUgY29udHJhc3RzXG4gICAgICAgICRsaWdodDogY29sb3ItdmFyaWFudCgkdmFsdWUsICRtZW5kZWxlZXYtdmFyaWFudC1saWdodC1jb250cmFzdCk7XG4gICAgICAgICRkYXJrOiBjb2xvci12YXJpYW50KCR2YWx1ZSwgJG1lbmRlbGVldi12YXJpYW50LWRhcmstY29udHJhc3QpO1xuICAgICAgICAkYWNjOiAoKTtcbiAgICAgICAgJGFjYy1jb250cmFzdDogKCk7XG4gICAgICAgIEBlYWNoICRzdWZmaXgsICRjZmcgaW4gJHZhcmlhbnQtbGV2ZWxzIHtcbiAgICAgICAgICAgICRyb2xlOiAnI3skY29sb3J9LSN7JHN1ZmZpeH0nO1xuICAgICAgICAgICAgJHJvbGVzOiBhcHBlbmQoJHJvbGVzLCAkcm9sZSk7XG4gICAgICAgICAgICAkdmFyaWFudDogY29sb3ItdmFyaWFudCgkdmFsdWUsICRjZmcpO1xuICAgICAgICAgICAgJGNvbnRyYXN0OiBjaG9vc2UtY29udHJhc3QtY29sb3IoJHZhcmlhbnQsICRsaWdodCwgJGRhcmssICRiaWFzKTtcbiAgICAgICAgICAgICRhY2M6IG1hcC1tZXJnZSgkYWNjLCAoJHJvbGU6ICR2YXJpYW50KSk7XG4gICAgICAgICAgICAkYWNjLWNvbnRyYXN0OiBtYXAtbWVyZ2UoJGFjYy1jb250cmFzdCwgKFxuICAgICAgICAgICAgICAgICR2YXJpYW50OiAkY29udHJhc3QsXG4gICAgICAgICAgICAgICAgJGNvbnRyYXN0OiAkdmFyaWFudCxcbiAgICAgICAgICAgICkpO1xuICAgICAgICB9XG4gICAgICAgICRtZW5kZWxlZXYtY29sb3ItY29udHJhc3Q6IG1hcC1tZXJnZSgkYWNjLWNvbnRyYXN0LCAkbWVuZGVsZWV2LWNvbG9yLWNvbnRyYXN0KSAhZ2xvYmFsO1xuICAgICAgICAkbWVuZGVsZWV2LWNvbG9yLXBhbGV0dGU6IG1hcC1tZXJnZSgkYWNjLCAkbWVuZGVsZWV2LWNvbG9yLXBhbGV0dGUpICFnbG9iYWw7XG4gICAgfVxuXG4gICAgLy8gU2F2ZSBjb25maWd1cmF0aW9uc1xuICAgICRtZW5kZWxlZXYtY29sb3ItY29uZmlnOiB0cnVlICFnbG9iYWw7XG4gICAgJG1lbmRlbGVldi1jb2xvci1yb2xlczogJHJvbGVzICFnbG9iYWw7XG4gICAgJGZuLWNvbnRyYXN0LWNvbG9yLXdoaXRlOiBjb2xvcignaW52ZXJzZS10ZXh0JykgIWdsb2JhbDtcbiAgICAkZm4tY29udHJhc3QtY29sb3ItYmxhY2s6IGNvbG9yKCdyZWd1bGFyLXRleHQnKSAhZ2xvYmFsO1xufVxuIiwKCQkiLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLyBUWVBPR1JBUEhZXG4vLy8gQGdyb3VwIFR5cG9ncmFwaHlcbi8vLyBAYXV0aG9yIEbDoWJpbyBNYWPDqmRvIE1lbmRlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuJG1lbmRlbGVldi10eXBlLXNjYWxlczogKFxuICAgIG1pbm9yLXNlY29uZDogMTYvMTUsXG4gICAgbWFqb3Itc2Vjb25kOiA5LzgsXG4gICAgbWlub3ItdGhpcmQ6IDYvNSxcbiAgICBtYWpvci10aGlyZDogNS80LFxuICAgIHBlcmZlY3QtZm91cnRoOiA0LzMsXG4gICAgYXVnbWVudGVkLWZvdXJ0aDogc3FydCgyKSxcbiAgICBwZXJmZWN0LWZpZnRoOiAzLzIsXG4gICAgZ29sZGVuLXJhdGlvOiAoMSArIHNxcnQoNSkpIC8gMixcbik7XG4kbWVuZGVsZWV2LXR5cGUtc2NhbGU6ICgpICFkZWZhdWx0O1xuXG4vLy8gUmV0dXJuIGEgdHlwZSBzY2FsZSBtYXBwaW5nIGZyb20gdGhlIGFyZ3VtZW50LlxuLy8vXG4vLy8gSWYgYXJndW1lbnQgaXMgYSBudW1iZXIgcHJvdmlkZXMgYSByYXRpby1iYXNlZCBzY2FsZS5cbi8vLyBJZiBhcmd1bWVudCBpcyBhIGxpc3QsIGNvbnZlcnQgdG8gYSBtYXAgd2l0aCB0aGUgcHJvZ3Jlc3Npb246XG4vLy8gKCcxJzogZmlyc3QsICcyJzogc2Vjb25kLCAnMyc6IHRoaXJkLCAuLi5ldGMpXG4vLy8gQXJndW1lbnQgY2FuIGJlIG9uZSBvZiB0aGUgcHJlLWRlZmluZWQgdHlwZSBzY2FsZXM6IHZlcnktbmFycm93LCBuYXJyb3csIG1lZGl1bSwgd2lkZSwgdmVyeS13aWRlLlxuQGZ1bmN0aW9uIHR5cGUtc2NhbGUoJHNjYWxlKSB7XG4gICAgQGlmIHR5cGUtb2YoJHNjYWxlKSA9PSBudW1iZXIge1xuICAgICAgICBAaWYgJHNjYWxlIDwgMSB7XG4gICAgICAgICAgICBAZXJyb3IgJ1Byb2dyZXNzaW9uIGluIHR5cGUgc2NhbGUgbXVzdCBiZSBhIG51bWJlciBsYXJnZXIgdGhhbiAxJztcbiAgICAgICAgfVxuICAgICAgICAkaGVhZGluZ3M6IGV4cG9uZW50aWFsLXByb2dyZXNzaW9uKCRzY2FsZSwgNSwgJHJldmVyc2U6IHRydWUpO1xuICAgICAgICAkcmF3OiBqb2luKGxzdC10by1hcnJheSgkaGVhZGluZ3MpLCAwLjg3NSAwLjc1IDAuNjI1KTtcbiAgICAgICAgJHNjYWxlOiAoKTtcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBsZW5ndGgoJHJhdykge1xuICAgICAgICAgICAgJG46IG50aCgkcmF3LCAkaSk7XG4gICAgICAgICAgICAkc2NhbGU6IG1hcC1tZXJnZSgkc2NhbGUsIChpbnNwZWN0KCRpKTogcm91bmQoJG4gKiAxNikgLyAxNikpO1xuICAgICAgICB9XG4gICAgICAgIEByZXR1cm4gdHlwZS1zY2FsZSgkc2NhbGUpO1xuICAgIH0gQGVsc2UgaWYgdHlwZS1vZigkc2NhbGUpID09IGxpc3Qge1xuICAgICAgICAkcmVzdWx0OiAoKTtcbiAgICAgICAgJGtleTogbnVsbDtcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBsZW5ndGgoJHNjYWxlKSB7XG4gICAgICAgICAgICAka2V5OiBxdW90ZShpbnNwZWN0KCRpKSk7XG4gICAgICAgICAgICAkcmVzdWx0OiBtYXAtbWVyZ2UoJHJlc3VsdCwgKCRrZXk6IG50aCgkc2NhbGUsICRpKSkpXG4gICAgICAgIH1cbiAgICAgICAgQHJldHVybiAkcmVzdWx0O1xuICAgIH0gQGVsc2UgaWYgdHlwZS1vZigkc2NhbGUpID09IG1hcCB7XG4gICAgICAgIEBpZiBub3QgbWFwLWhhcy1rZXlzKCRzY2FsZSwgKCcxJywgJzInLCAnMycsICc0JywgJzUnLCAnNicpKSB7XG4gICAgICAgICAgICBAZXJyb3IgJ01hcCBtdXN0IHNob3cgcHJvZ3Jlc3Npb24gZnJvbSAxLCAzLCB1cCB0byBhdCBsZWFzdCA2JztcbiAgICAgICAgfVxuICAgICAgICBAcmV0dXJuICRzY2FsZTtcbiAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRtZW5kZWxlZXYtdHlwZS1zY2FsZXMsICRzY2FsZSkge1xuICAgICAgICBAcmV0dXJuIHR5cGUtc2NhbGUobWFwLWdldCgkbWVuZGVsZWV2LXR5cGUtc2NhbGVzLCAkc2NhbGUpKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgQGVycm9yICdXcm9uZyBhcmd1bWVudCBmb3IgZ2V0LXR5cGUtc2NhbGU6ICN7JHNjYWxlfSc7XG4gICAgfVxufVxuXG4vLy8gUmV0dXJuIGEgZm9udCBwcm9wZXJ0eSBsaWtlIGZhbWlseSwgbGluZS1oZWlnaHQsIGxldHRlci1zcGFjaW5nLCBzaXplLFxuLy8vIHRyYW5zZm9ybSwgb3Igd2VpZ2h0LlxuLy8vXG4vLy8gQGFyZyAkcHJvcCAtIFByb3BlcnR5IG5hbWVcbi8vLyBAYXJnICR3aGljaCAtIElmIGdpdmVuLCBtdXN0IGJlIGVpdGhlciBoZWFkaW5ncyBvciBwYXJhZ3JhcGggYW5kIGRlbm90ZXNcbi8vLyAgICAgICAgICAgICAgIHdoaWNoIHNlY3Rpb24gdG8gbG9vayBmb3IgdGhlIHByb3BlcnR5XG5AZnVuY3Rpb24gZm9udC1wcm9wZXJ0eSgkcHJvcCwgJHdoaWNoOiBwYXJhZ3JhcGgpIHtcbiAgICAkY29uZjogY29uZmlnKCd0eXBvZ3JhcGh5JywgJHdoaWNoKTtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJGNvbmYsICRwcm9wKSB7XG4gICAgICAgIEByZXR1cm4gbWFwLWdldCgkY29uZiwgJHByb3ApO1xuICAgIH1cbiAgICBAcmV0dXJuIGNvbmZpZygndHlwb2dyYXBoeS4jeyRwcm9wfScpO1xufVxuXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gTUlYSU5TXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AbWl4aW4gX2hlYWRpbmctdmVydGljYWwtcmh5dGhtKCRyYXRpbykge1xuICAgICRsZWFkOiBjb25maWcoJ3R5cG9ncmFwaHkubGVhZCcpO1xuICAgICRoLWxlYWQ6IGNvbmZpZygndHlwb2dyYXBoeS5oZWFkaW5nLWxlYWQnKTtcbiAgICAkZGVzY2VuZGVyOiAwLjE7XG4gICAgJG1hcmdpbi1ib3R0b206IDAuNSAqICgxLjIgLSAkcmF0aW8gKiAkZGVzY2VuZGVyKTtcbiAgICAkaGVpZ2h0LXVuaXRzOiAkbWFyZ2luLWJvdHRvbSArICRyYXRpbyAqICRoLWxlYWQgLyAkbGVhZDtcbiAgICAkZGVsdGE6IGNlaWwoJGhlaWdodC11bml0cykgLSAkaGVpZ2h0LXVuaXRzO1xuICAgIGZvbnQtc2l6ZTogJHJhdGlvICogMXJlbTtcbiAgICBsaW5lLWhlaWdodDogJGgtbGVhZDtcbiAgICBtYXJnaW46ICgkbGVhZCAqICgxICsgJGRlbHRhKSAqIDFyZW0pIDAgKCRsZWFkICogJG1hcmdpbi1ib3R0b20gKiAxcmVtKSAwO1xufVxuXG5AbWl4aW4gaGVhZGluZ3MtdHlwZS1zY2FsZSgkZmFjdG9yKSB7XG4gICAgJHNjYWxlOiBtYXAtcmVtb3ZlKHR5cGUtc2NhbGUoJGZhY3RvciksICc1JywgJzYnLCAnNycsICc4Jyk7XG4gICAgQGVhY2ggJG4sICRyYXRpbyBpbiAkc2NhbGUge1xuICAgICAgICAkc2VsZWN0b3I6IHVucXVvdGUoJ2gjeyRufSwgLmgjeyRufScpO1xuICAgICAgICAjeyRzZWxlY3Rvcn0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgX2hlYWRpbmctdmVydGljYWwtcmh5dGhtKCRyYXRpbyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaDUsIC5oNSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRtZW5kZWxlZXYtbGVhZDtcbiAgICAgICAgbWFyZ2luOiAoJG1lbmRlbGVldi1sZWFkICogMS41cmVtKSAwICgkbWVuZGVsZWV2LWxlYWQgKiAwLjVyZW0pIDA7XG4gICAgfVxuICAgIGg2LCAuaDYge1xuICAgICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4xNDI4NTcxNDMgKiAkbWVuZGVsZWV2LWxlYWQ7XG4gICAgICAgIG1hcmdpbjogKCRtZW5kZWxlZXYtbGVhZCAqIDEuNXJlbSkgMCAoJG1lbmRlbGVldi1sZWFkICogMC41cmVtKSAwO1xuICAgIH1cbn1cblxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENPTkZJR1VSQVRJT05TXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kbWVuZGVsZWV2LXR5cG9ncmFwaHktY29uZmlnOiBmYWxzZSAhZGVmYXVsdDtcbkBpZiBub3QgJG1lbmRlbGVldi10eXBvZ3JhcGh5LWNvbmZpZyB7XG5cbiAgICAvLyBDb21wdXRlIHR5cGUgc2NhbGVzXG4gICAgJHR5cGUtc2NhbGVzOiAoKTtcbiAgICBAZWFjaCAkYnAsICRmYWN0b3IgaW4gY29uZmlnKCd0eXBvZ3JhcGh5LnNjYWxlJykge1xuICAgICAgICAkdHlwZS1zY2FsZXM6IG1hcC1tZXJnZSgkdHlwZS1zY2FsZXMsICgkZmFjdG9yOiB0eXBlLXNjYWxlKCRmYWN0b3IpKSk7XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIHRoZSByZXNwb25zaXZlIHR5cGUgc2NhbGVcbiAgICAkc2NhbGU6ICgpO1xuICAgIEBlYWNoICRuIGluICgnMScsICcyJywgJzMnLCAnNCcsICc1JywgJzYnLCAnNycsICc4Jykge1xuXG4gICAgICAgICRkYXRhOiAoKTtcbiAgICAgICAgQGVhY2ggJGJwLCAkZmFjdG9yIGluIGNvbmZpZygndHlwb2dyYXBoeS5zY2FsZScpIHtcbiAgICAgICAgICAgICR0eXBlLXNjYWxlOiBtYXAtZ2V0KCR0eXBlLXNjYWxlcywgJGZhY3Rvcik7XG4gICAgICAgICAgICAkc2l6ZTogbWFwLWdldCgkdHlwZS1zY2FsZSwgJG4pICogMXJlbTtcblxuICAgICAgICAgICAgQGlmICRicCA9PSAnc3RhcnQnIHtcbiAgICAgICAgICAgICAgICAkZGF0YTogbWFwLW1lcmdlKCRkYXRhLCAoZm9udC1zaXplOiAkc2l6ZSkpO1xuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgJGJwOiBjb25maWcoJ2JyZWFrcG9pbnRzLiN7JGJwfScpO1xuICAgICAgICAgICAgICAgICRtZWRpYTogJ0BtZWRpYScgKG1pbi13aWR0aDogJGJwKTtcbiAgICAgICAgICAgICAgICAkZGF0YTogbWFwLW1lcmdlKCRkYXRhLCAoJG1lZGlhOiAoZm9udC1zaXplOiAkc2l6ZSkpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAkc2NhbGU6IG1hcC1tZXJnZSgkc2NhbGUsICgnJiN7JG59JzogJGRhdGEpKTtcbiAgICB9XG4gICAgLy9AZXJyb3IgJHNjYWxlO1xuICAgICRtZW5kZWxlZXYtdHlwZS1zY2FsZTogJHNjYWxlICFnbG9iYWw7XG4gICAgJG1lbmRlbGVldi10eXBvZ3JhcGh5LWNvbmZpZzogdHJ1ZSAhZ2xvYmFsO1xufVxuXG4vL0BlcnJvciAkbWVuZGVsZWV2LXR5cGUtc2NhbGU7XG4iLAoJCSIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vIE1JWElOUyBUSEFUIEhFTFAgQ1JFQVRJTkcgVVRJTElUWSBDTEFTU0VTXG4vLy8gQGdyb3VwIFV0aWxpdGllc1xuLy8vIEBhdXRob3IgRsOhYmlvIE1hY8OqZG8gTWVuZGVzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AZnVuY3Rpb24gbWVuZGVsZWV2LW1ha2UtcGFpcigkcHJvcCwgJGZ1bmMsICR2YWx1ZSkge1xuICAgIEByZXR1cm4gKCRwcm9wOiBjYWxsKGFzLWZ1bmMoJGZ1bmMpLCAkdmFsdWUpKTtcbn1cblxuQGZ1bmN0aW9uIG1lbmRlbGVldi1jb2xvci1yb2xlKCR2YWx1ZSkge1xuICAgIEByZXR1cm4gKFxuICAgICAgICBjb2xvcjogY29sb3IoJHZhbHVlLCBjb250cmFzdCksXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKCR2YWx1ZSksXG4gICAgKTtcbn1cblxuLy8vIERlY2xhcmVzIGEgY3NzIHZhcmlhYmxlIHdpdGggYSBwb3NzaWJsZSBmYWxsYmFjay5cbi8vL1xuLy8vIEBhcmdzICR2YXIgLSBOYW1lIG9mIGNzcyB2YXJpYWJsZSAocHJlZml4IGRhc2hlcywgaW5jbHVkZWQpXG4vLy8gQGFyZ3MgJGZhbGxiYWNrIC0gT3B0aW9uYWwgZmFsbGJhY2sgdmFsdWVcbkBmdW5jdGlvbiBjc3MtdmFyKCR2YXIsICRmYWxsYmFjazogbnVsbCkge1xuICAgIEByZXR1cm4gaWYoJGZhbGxiYWNrLCB1bnF1b3RlKCd2YXIoI3skdmFyfSwgI3skZmFsbGJhY2t9KScpLCB1bnF1b3RlKCd2YXIoI3skdmFyfSknKSk7XG59XG5cbiRtZW5kZWxlZXYtbWFrZS1wYWlyLWZuOiBhcy1mdW5jKG1lbmRlbGVldi1tYWtlLXBhaXIpO1xuJG1lbmRlbGVldi1jb2xvci1yb2xlLWZuOiBhcy1mdW5jKG1lbmRlbGVldi1jb2xvci1yb2xlKTtcbiRtZW5kZWxlZXYtc2l6aW5nLWZuOiBhcy1mdW5jKHNpemluZyk7XG4kbWVuZGVsZWV2LXNpemluZy1zY2FsZS1mbjogYXMtZnVuYyhzaXppbmctc2NhbGUpO1xuJG1lbmRlbGVldi1zcGVjaWFsLXByb3BlcnRpZXM6IChcbiAgICAvL1xuICAgIC8vIFNpemluZ1xuICAgIGJvcmRlci1yYWRpdXM6XG4gICAgICAgICgkbWVuZGVsZWV2LW1ha2UtcGFpci1mbiwgKCdib3JkZXItcmFkaXVzJywgc2l6ZSkpLFxuICAgIG1hcmdpbjpcbiAgICAgICAgKCRtZW5kZWxlZXYtc2l6aW5nLWZuLCAobWFyZ2luLCkpLFxuICAgIGhlaWdodDpcbiAgICAgICAgKCRtZW5kZWxlZXYtc2l6aW5nLWZuLCAoaGVpZ2h0LCkpLFxuICAgIHBhZDpcbiAgICAgICAgKCRtZW5kZWxlZXYtc2l6aW5nLWZuLCAocGFkZGluZywpKSxcbiAgICBwYWRkaW5nOlxuICAgICAgICAoJG1lbmRlbGVldi1zaXppbmctZm4sIChwYWRkaW5nLCkpLFxuICAgIHdpZHRoOlxuICAgICAgICAoJG1lbmRlbGVldi1zaXppbmctZm4sICh3aWR0aCwpKSxcbiAgICBtYXJnaW4tc2NhbGU6XG4gICAgICAgICgkbWVuZGVsZWV2LXNpemluZy1zY2FsZS1mbiwgKG1hcmdpbiwpKSxcbiAgICBoZWlnaHQtc2NhbGU6XG4gICAgICAgICgkbWVuZGVsZWV2LXNpemluZy1zY2FsZS1mbiwgKGhlaWdodCwpKSxcbiAgICBwYWQtc2NhbGU6XG4gICAgICAgICgkbWVuZGVsZWV2LXNpemluZy1zY2FsZS1mbiwgKHBhZGRpbmcsKSksXG4gICAgcGFkZGluZy1zY2FsZTpcbiAgICAgICAgKCRtZW5kZWxlZXYtc2l6aW5nLXNjYWxlLWZuLCAocGFkZGluZywpKSxcbiAgICB3aWR0aC1zY2FsZTpcbiAgICAgICAgKCRtZW5kZWxlZXYtc2l6aW5nLXNjYWxlLWZuLCAod2lkdGgsKSksXG4gICAgLy9cbiAgICAvLyBDb2xvcnNcbiAgICBjb2xvci1yb2xlOlxuICAgICAgICAoJG1lbmRlbGVldi1jb2xvci1yb2xlLWZuLCAkZm4tZW1wdHktYXJyYXkpLFxuICAgIGNvbG9yOlxuICAgICAgICAoJG1lbmRlbGVldi1tYWtlLXBhaXItZm4sICgnY29sb3InLCAnY29sb3InKSksXG4gICAgYmFja2dyb3VuZC1jb2xvcjpcbiAgICAgICAgKCRtZW5kZWxlZXYtbWFrZS1wYWlyLWZuLCAoJ2JhY2tncm91bmQtY29sb3InLCAnY29sb3InKSksXG4gICAgYm9yZGVyLWNvbG9yOlxuICAgICAgICAoJG1lbmRlbGVldi1tYWtlLXBhaXItZm4sICgnYm9yZGVyLWNvbG9yJywgJ2NvbG9yJykpLFxuKTtcblxuLy8vIEluY2x1ZGUgYWxsIGl0ZW1zIG9uIG1hcCBhcyBwYWlycyBvZiBgcHJvcGVydHk6IHZhbHVlYC5cbi8vL1xuLy8vIFNvbWUgcHJvcGVydGllcyBoYXZlIGEgc3BlY2lhbCB0cmVhdG1lbnQ6XG4vLy8gICogcGFkZGluZy9wYWQvd2lkdGgvaGVpZ2h0L21hcmdpbjpcbi8vLyAgICAgICAgdW5pdGxlc3MgdmFsdWVzIGFyZSBjb252ZXJ0ZWQgdG8gc2l6ZXMsIGFuZCBtYXBwaW5ncyBhcmUgZXhwYW5kZWRcbi8vLyAgICAgICAgaW50byBkaXJlY3Rpb25zLlxuLy8vICAqIHBhZGRpbmctc2NhbGUvcGFkLXNjYWxlLy4uLjpcbi8vLyAgICAgICAgbGlrZSBiZWZvcmUsIGJ1dCB1bml0bGVzcyB2YWx1ZXMgYXJlIGNvbnZlcnRlZCB0byB0aGUgc2l6aW5nIHNjYWxlLlxuLy8vICAqIGNvbG9yL2JhY2tncm91bmQtY29sb3IvYm9yZGVyLWNvbG9yOlxuLy8vICAgICAgICBpbmNsdWRlIGNvbG9yIGJ5IHZhbHVlIG9yIG5hbWUuXG5AbWl4aW4gb3B0aW9ucygkbWFwLCAkc3VmZml4OiBudWxsKSB7XG4gICAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRtYXAge1xuICAgICAgICAvLyBIYW5kbGUgc3BlY2lhbCBwcm9wZXJ0aWVzOiBzaXplc1xuICAgICAgICAkc3BlY2lhbDogbWFwLWdldCgkbWVuZGVsZWV2LXNwZWNpYWwtcHJvcGVydGllcywgJGtleSk7XG4gICAgICAgIEBpZiAkc3BlY2lhbCB7XG4gICAgICAgICAgICAkZnVuYzogbnRoKCRzcGVjaWFsLCAxKTtcbiAgICAgICAgICAgICRhcmdzOiBhcHBlbmQobnRoKCRzcGVjaWFsLCAyKSwgJHZhbHVlKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZyb20tbWFwKGNhbGwoJGZ1bmMsICRhcmdzLi4uKSwgJHN1ZmZpeCk7XG4gICAgICAgIH0gQGVsc2UgaWYgdHlwZS1vZigkdmFsdWUpID09IG1hcCB7XG4gICAgICAgICAgICAjeyRrZXl9IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBvcHRpb25zKCR2YWx1ZSwgJHN1ZmZpeCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgQGlmICR2YWx1ZSAhPSBudWxsIHtcbiAgICAgICAgICAgICAgICAjeyRrZXl9OiAkdmFsdWUgJHN1ZmZpeDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4iLAoJCSIvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVFlQT0dSQVBIWVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQGlmICRtZW5kZWxlZXYtcmVnaXN0ZXJpbmctdXRpbGl0aWVzIHtcbiAgICAkZG86IG1lbmRlbGVldi1tb2R1bGUoXG4gICAgICAgICAgICAndHlwb2dyYXBoeS5tb2R1bGVzLnNjYWxlJywgKFxuICAgICAgICAgICAgJy50ZXh0LSc6ICRtZW5kZWxlZXYtdHlwZS1zY2FsZSxcbiAgICAgICAgKSk7XG5cbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gU2ltcGxlIHN5c3RlbSBmb250IHN0eWxlczogZm9udC1zYW5zLCBmb250LXNlcmlmLCBmb250LW1vbm8sIGZvbnQtY3Vyc2l2ZVxuXG4gICAgJGRvOiBtZW5kZWxlZXYtdXRpbGl0eS1tb2R1bGUoXG4gICAgICAgICAgICAndHlwb2dyYXBoeS5tb2R1bGVzLmZvbnRzJywgKFxuICAgICAgICAgICAgZm9udC1mYW1pbHk6XG4gICAgICAgICAgICAgICAgKCcuJywgKFxuICAgICAgICAgICAgICAgICAgICBzYW5zLXNlcmlmOiBjb25maWcoJ3R5cG9ncmFwaHkuc2Fucy1zZXJpZicpLFxuICAgICAgICAgICAgICAgICAgICBzZXJpZjogY29uZmlnKCd0eXBvZ3JhcGh5LnNlcmlmJyksXG4gICAgICAgICAgICAgICAgICAgIGN1cnNpdmU6IGNvbmZpZygndHlwb2dyYXBoeS5jdXJzaXZlJyksXG4gICAgICAgICAgICAgICAgICAgIG1vbm9zcGFjZTogY29uZmlnKCd0eXBvZ3JhcGh5Lm1vbm9zcGFjZScpLFxuICAgICAgICAgICAgICAgICkpLFxuICAgICAgICApKTtcblxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBGb250IHdlaWdodFxuXG4gICAgJGRvOiBtZW5kZWxlZXYtdXRpbGl0eS1tb2R1bGUoXG4gICAgICAgICAgICAndHlwb2dyYXBoeS5tb2R1bGVzLndlaWdodHMnLCAoXG4gICAgICAgICAgICBmb250LXdlaWdodDpcbiAgICAgICAgICAgICAgICAoJy4nLCAoXG4gICAgICAgICAgICAgICAgICAgIHRoaW46IDEwMCxcbiAgICAgICAgICAgICAgICAgICAgZXh0cmEtbGlnaHQ6IDIwMCxcbiAgICAgICAgICAgICAgICAgICAgbGlnaHQ6IDMwMCxcbiAgICAgICAgICAgICAgICAgICAgcmVndWxhcjogNDAwLFxuICAgICAgICAgICAgICAgICAgICBtZWRpdW06IDUwMCxcbiAgICAgICAgICAgICAgICAgICAgc2VtaS1ib2xkOiA2MDAsXG4gICAgICAgICAgICAgICAgICAgIGJvbGQ6IDcwMCxcbiAgICAgICAgICAgICAgICAgICAgZXh0cmEtYm9sZDogODAwLFxuICAgICAgICAgICAgICAgICAgICBibGFjazogOTAwLFxuICAgICAgICAgICAgICAgICkpLFxuICAgICAgICApKTtcblxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBTdHlsZXMsIGRlY29yYXRpb25zIGFuZCB0ZXh0IHRyYW5zZm9ybVxuXG4gICAgJGRvOiBtZW5kZWxlZXYtdXRpbGl0eS1tb2R1bGUoXG4gICAgICAgICAgICAndHlwb2dyYXBoeS5tb2R1bGVzLnN0eWxlcycsIChcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6XG4gICAgICAgICAgICAgICAgKCcuJywgKFxuICAgICAgICAgICAgICAgICAgICBpdGFsaWM6IGl0YWxpYyxcbiAgICAgICAgICAgICAgICAgICAgcm9tYW46IG5vcm1hbCxcbiAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOlxuICAgICAgICAgICAgICAgICgnLicsIChcbiAgICAgICAgICAgICAgICAgICAgdXBwZXJjYXNlOiB1cHBlcmNhc2UsXG4gICAgICAgICAgICAgICAgICAgIGxvd2VyY2FzZTogbG93ZXJjYXNlLFxuICAgICAgICAgICAgICAgICAgICBjYXBpdGFsaXplOiBjYXBpdGFsaXplLFxuICAgICAgICAgICAgICAgICAgICBub3JtYWxjYXNlOiBub25lLFxuICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOlxuICAgICAgICAgICAgICAgICgnLicsIChcbiAgICAgICAgICAgICAgICAgICAgdW5kZXJsaW5lOiB1bmRlcmxpbmUsXG4gICAgICAgICAgICAgICAgICAgIGxpbmUtdGhyb3VnaDogbGluZS10aHJvdWdoLFxuICAgICAgICAgICAgICAgICAgICBuby11bmRlcmxpbmU6IG5vbmVcbiAgICAgICAgICAgICAgICApKVxuICAgICAgICApKTtcblxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBUZXh0IGFsaWdubWVudFxuXG4gICAgJGRvOiBtZW5kZWxlZXYtdXRpbGl0eS1tb2R1bGUoXG4gICAgICAgICAgICAndHlwb2dyYXBoeS5tb2R1bGVzLmFsaWdubWVudCcsIChcbiAgICAgICAgICAgIHRleHQtYWxpZ246XG4gICAgICAgICAgICAgICAgKCcuJywgKFxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiBsZWZ0LFxuICAgICAgICAgICAgICAgICAgICBjZW50ZXI6IGNlbnRlcixcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IHJpZ2h0LFxuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5OiBqdXN0aWZ5LFxuICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246XG4gICAgICAgICAgICAgICAgKCcuJywgKFxuICAgICAgICAgICAgICAgICAgICBiYXNlbGluZTogYmFzZWxpbmUsXG4gICAgICAgICAgICAgICAgICAgIHRvcDogdG9wLFxuICAgICAgICAgICAgICAgICAgICBtaWRkbGU6IG1pZGRsZSxcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiBib3R0b20sXG4gICAgICAgICAgICAgICAgICAgIHRleHQtdG9wOiB0ZXh0LXRvcCxcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1ib3R0b206IHRleHQtYm90dG9tLFxuICAgICAgICAgICAgICAgICkpXG4gICAgICAgICkpO1xuXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIFdoaXRlc3BhY2VcblxuICAgICRkbzogbWVuZGVsZWV2LXV0aWxpdHktbW9kdWxlKFxuICAgICAgICAgICAgJ3R5cG9ncmFwaHkubW9kdWxlcy53aGl0ZS1zcGFjZScsIChcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOlxuICAgICAgICAgICAgICAgICgnLicsIChcbiAgICAgICAgICAgICAgICAgICAgbm9ybWFsOiBub3JtYWwsXG4gICAgICAgICAgICAgICAgICAgIG5vd3JhcDogbm93cmFwLFxuICAgICAgICAgICAgICAgICAgICBwcmU6IHByZSxcbiAgICAgICAgICAgICAgICAgICAgcHJlLWxpbmU6IHByZS1saW5lLFxuICAgICAgICAgICAgICAgICAgICBwcmUtd3JhcDogcHJlLXdyYXAsXG4gICAgICAgICAgICAgICAgKSlcbiAgICAgICAgKSk7XG5cbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gTGVhZGluZ1xuXG4gICAgJGRvOiBtZW5kZWxlZXYtdXRpbGl0eS1tb2R1bGUoXG4gICAgICAgICAgICAndHlwb2dyYXBoeS5tb2R1bGVzLmxlYWRpbmcnLCAoXG4gICAgICAgICAgICBsaW5lLWhlaWdodDpcbiAgICAgICAgICAgICAgICAoJy4nLCAoXG4gICAgICAgICAgICAgICAgICAgIGxlYWRpbmc6IGNvbmZpZygndHlwb2dyYXBoeS5sZWFkJyksXG4gICAgICAgICAgICAgICAgICAgIGxlYWRpbmctdGl0bGU6IGNvbmZpZygndHlwb2dyYXBoeS5oZWFkaW5nLWxlYWQnKSxcbiAgICAgICAgICAgICAgICAgICAgbGVhZGluZy1zb2xpZDogMSxcbiAgICAgICAgICAgICAgICAgICAgbGVhZGluZy1sb29zZTogMixcbiAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgKSk7XG5cbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gTWVhc3VyZVxuXG4gICAgJGRvOiBtZW5kZWxlZXYtdXRpbGl0eS1tb2R1bGUoXG4gICAgICAgICAgICAndHlwb2dyYXBoeS5tb2R1bGVzLm1lYXN1cmUnLCAoXG4gICAgICAgICAgICBtYXgtd2lkdGg6XG4gICAgICAgICAgICAgICAgKCcuJywgKFxuICAgICAgICAgICAgICAgICAgICBtZWFzdXJlOiAyOWVtLCAvLyB+IDY1IGNoYXJhY3RlcnNcbiAgICAgICAgICAgICAgICAgICAgbWVhc3VyZS13aWRlOiAzOGVtLCAvLyB+IDg1IGNoYXJhY3RlcnNcbiAgICAgICAgICAgICAgICAgICAgbWVhc3VyZS1uYXJyb3c6IDIwZW0sIC8vIH4gNDUgY2hhcmFjdGVyc1xuICAgICAgICAgICAgICAgICkpXG4gICAgICAgICkpO1xuXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIEluZGVudGF0aW9uXG5cbiAgICAkZG86IG1lbmRlbGVldi11dGlsaXR5LW1vZHVsZShcbiAgICAgICAgICAgICd0eXBvZ3JhcGh5Lm1vZHVsZXMuaW5kZW50JywgKFxuICAgICAgICAgICAgdGV4dC1pbmRlbnQ6XG4gICAgICAgICAgICAgICAgKCcuJywgKFxuICAgICAgICAgICAgICAgICAgICBpbmRlbnQ6IDEuNWVtLFxuICAgICAgICAgICAgICAgICAgICBpbmRlbnQtcHVuY3R1YXRpb246IC0wLjNlbSxcbiAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgKSk7XG5cbiAgICAkZG86IG1lbmRlbGVldi1tb2R1bGUoXG4gICAgICAgICAgICAndHlwb2dyYXBoeS5tb2R1bGVzLmluZGVudCcsIChcbiAgICAgICAgICAgICcudHJ1bmNhdGUnOiAoXG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcCxcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuLFxuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzLFxuICAgICAgICAgICAgKVxuICAgICAgICApKTtcblxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBEaXJlY3Rpb25cblxuICAgICRkbzogbWVuZGVsZWV2LXV0aWxpdHktbW9kdWxlKFxuICAgICAgICAgICAgJ3R5cG9ncmFwaHkubW9kdWxlcy5kaXJlY3Rpb24nLCAoXG4gICAgICAgICAgICBkaXJlY3Rpb246XG4gICAgICAgICAgICAgICAgKCcuJywgKFxuICAgICAgICAgICAgICAgICAgICBydGw6IHJ0bCxcbiAgICAgICAgICAgICAgICAgICAgbHRyOiBsdHIsXG4gICAgICAgICAgICAgICAgKSksXG4gICAgICAgICkpO1xufVxuIiwKCQkiLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIERFRklORSBUSEUgREVGQVVMVCBTSVpJTkcgU0NBTEVcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBpZiAkbWVuZGVsZWV2LXJlZ2lzdGVyaW5nLXV0aWxpdGllcyB7XG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIFBBRERJTkcgU0NBTEVcblxuICAgICRkbzogbWVuZGVsZWV2LXV0aWxpdHktbW9kdWxlKFxuICAgICAgICAgICAgJ3BhZGRpbmcnLCAoXG4gICAgICAgICAgICBwYWRkaW5nOlxuICAgICAgICAgICAgICAgICgnLnBhZC0nLCAkbWVuZGVsZWV2LXNpemUtc2NhbGUtcmVtKVxuICAgICAgICApKTtcblxuICAgICRkbzogbWVuZGVsZWV2LW1vZHVsZShcbiAgICAgICAgICAgICdwYWRkaW5nJywgKFxuICAgICAgICAgICAgJy5wYWQteCc6IHNjYWxlLW9mKFxuICAgICAgICAgICAgICAgICRzY2FsZTogJG1lbmRlbGVldi1zaXplLXNjYWxlLXJlbSxcbiAgICAgICAgICAgICAgICAkY3NzOiAoXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogbnVsbCxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgJy5wYWQteSc6IHNjYWxlLW9mKFxuICAgICAgICAgICAgICAgICRzY2FsZTogJG1lbmRlbGVldi1zaXplLXNjYWxlLXJlbSxcbiAgICAgICAgICAgICAgICAkY3NzOiAoXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogbnVsbCxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApLFxuICAgICAgICApKTtcblxuICAgICRkbzogbWVuZGVsZWV2LXV0aWxpdHktbW9kdWxlKFxuICAgICAgICAgICAgJ3BhZGRpbmcnLCAoXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6XG4gICAgICAgICAgICAgICAgKCcucGFkLWwnLCAkbWVuZGVsZWV2LXNpemUtc2NhbGUtcmVtKSxcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6XG4gICAgICAgICAgICAgICAgKCcucGFkLXInLCAkbWVuZGVsZWV2LXNpemUtc2NhbGUtcmVtKSxcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOlxuICAgICAgICAgICAgICAgICgnLnBhZC10JywgJG1lbmRlbGVldi1zaXplLXNjYWxlLXJlbSksXG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTpcbiAgICAgICAgICAgICAgICAoJy5wYWQtYicsICRtZW5kZWxlZXYtc2l6ZS1zY2FsZS1yZW0pLFxuICAgICAgICApKTtcblxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBNQVJHSU4gU0NBTEVcblxuICAgICRtZW5kZWxlZXYtc2l6ZXMtYXV0bzogbWFwLW1lcmdlKChhdXRvOiBhdXRvKSwgJG1lbmRlbGVldi1zaXplLXNjYWxlLXJlbSk7XG5cbiAgICAkZG86IG1lbmRlbGVldi11dGlsaXR5LW1vZHVsZShcbiAgICAgICAgICAgICdtYXJnaW4nLCAoXG4gICAgICAgICAgICBtYXJnaW46XG4gICAgICAgICAgICAgICAgKCcubWFyZ2luLScsIG1hcC1tZXJnZShcbiAgICAgICAgICAgICAgICAgICAgICAgICRtZW5kZWxlZXYtc2l6ZXMtYXV0byxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcC1wcmVmaXgta2V5cyhtYXAtYXBwbHktdmFsdWVzKG5lZ2F0ZSwgJG1lbmRlbGVldi1zaXplLXNjYWxlLXJlbSksIG4pXG4gICAgICAgICAgICAgICAgKSlcbiAgICAgICAgKSk7XG5cbiAgICAkZG86IG1lbmRlbGVldi1tb2R1bGUoXG4gICAgICAgICAgICAnbWFyZ2luJywgKFxuICAgICAgICAgICAgJy5tYXJnaW4tJzogc2NhbGUtb2YoXG4gICAgICAgICAgICAgICAgJHNjYWxlOiBtYXAtbWVyZ2UoXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXAtcHJlZml4LWtleXMoJG1lbmRlbGVldi1zaXplcy1hdXRvLCB4KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcC1wcmVmaXgta2V5cyhtYXAtYXBwbHktdmFsdWVzKG5lZ2F0ZSwgJG1lbmRlbGVldi1zaXplLXNjYWxlLXJlbSksIG54KVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgJGNzczogKFxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBudWxsLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICksXG4gICAgICAgICkpO1xuXG4gICAgJGRvOiBtZW5kZWxlZXYtbW9kdWxlKFxuICAgICAgICAgICAgJ21hcmdpbicsIChcbiAgICAgICAgICAgICcubWFyZ2luLSc6IHNjYWxlLW9mKFxuICAgICAgICAgICAgICAgICRzY2FsZTogbWFwLW1lcmdlKFxuICAgICAgICAgICAgICAgICAgICAgICAgbWFwLXByZWZpeC1rZXlzKCRtZW5kZWxlZXYtc2l6ZXMtYXV0bywgeSksXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXAtcHJlZml4LWtleXMobWFwLWFwcGx5LXZhbHVlcyhuZWdhdGUsICRtZW5kZWxlZXYtc2l6ZS1zY2FsZS1yZW0pLCBueSlcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICRjc3M6IChcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogbnVsbCxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApLFxuICAgICAgICApKTtcblxuICAgICRkbzogbWVuZGVsZWV2LXV0aWxpdHktbW9kdWxlKFxuICAgICAgICAgICAgJ21hcmdpbicsIChcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OlxuICAgICAgICAgICAgICAgICgnLm1hcmdpbi0nLCBtYXAtbWVyZ2UoXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXAtcHJlZml4LWtleXMoJG1lbmRlbGVldi1zaXplcy1hdXRvLCBsKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcC1wcmVmaXgta2V5cyhtYXAtYXBwbHktdmFsdWVzKG5lZ2F0ZSwgJG1lbmRlbGVldi1zaXplLXNjYWxlLXJlbSksIG5sKVxuICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OlxuICAgICAgICAgICAgICAgICgnLm1hcmdpbi0nLCBtYXAtbWVyZ2UoXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXAtcHJlZml4LWtleXMoJG1lbmRlbGVldi1zaXplcy1hdXRvLCByKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcC1wcmVmaXgta2V5cyhtYXAtYXBwbHktdmFsdWVzKG5lZ2F0ZSwgJG1lbmRlbGVldi1zaXplLXNjYWxlLXJlbSksIG5yKVxuICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgbWFyZ2luLXRvcDpcbiAgICAgICAgICAgICAgICAoJy5tYXJnaW4tJywgbWFwLW1lcmdlKFxuICAgICAgICAgICAgICAgICAgICAgICAgbWFwLXByZWZpeC1rZXlzKCRtZW5kZWxlZXYtc2l6ZXMtYXV0bywgdCksXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXAtcHJlZml4LWtleXMobWFwLWFwcGx5LXZhbHVlcyhuZWdhdGUsICRtZW5kZWxlZXYtc2l6ZS1zY2FsZS1yZW0pLCBudClcbiAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206XG4gICAgICAgICAgICAgICAgKCcubWFyZ2luLScsIG1hcC1tZXJnZShcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcC1wcmVmaXgta2V5cygkbWVuZGVsZWV2LXNpemVzLWF1dG8sIGIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWFwLXByZWZpeC1rZXlzKG1hcC1hcHBseS12YWx1ZXMobmVnYXRlLCAkbWVuZGVsZWV2LXNpemUtc2NhbGUtcmVtKSwgbmIpXG4gICAgICAgICAgICAgICAgKSksXG4gICAgICAgICkpO1xuXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIFNJWkVTXG5cbiAgICAkbWVuZGVsZWV2LXNpemVzOiBtYXAtbWVyZ2UoJG1lbmRlbGVldi1zaXplLXNjYWxlLXJlbSwgKFxuICAgICAgICBhdXRvOiBhdXRvLFxuICAgICAgICBhdmFpbGFibGU6IGF2YWlsYWJsZSxcbiAgICAgICAgZml0OiBmaXQtY29udGVudCxcbiAgICAgICAgbWF4OiBtYXgtY29udGVudCxcbiAgICAgICAgbWluOiBtaW4tY29udGVudCxcbiAgICApKTtcblxuICAgICRkbzogbWVuZGVsZWV2LW1vZHVsZShcbiAgICAgICAgICAgICdzaXplcycsIChcbiAgICAgICAgICAgICcuc2l6ZS0nOiBzY2FsZS1vZihcbiAgICAgICAgICAgICAgICAkc2NhbGU6ICRtZW5kZWxlZXYtc2l6ZXMsXG4gICAgICAgICAgICAgICAgJGNzczogKFxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBudWxsLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICksXG4gICAgICAgICkpO1xuXG4gICAgLy8gSG9yaXpvbnRhbCBhbmQgdmVydGljYWxcbiAgICAkZG86IG1lbmRlbGVldi11dGlsaXR5LW1vZHVsZShcbiAgICAgICAgICAgICdzaXplcycsIChcbiAgICAgICAgICAgIHdpZHRoOlxuICAgICAgICAgICAgICAgICgnLnNpemUteCcsICRtZW5kZWxlZXYtc2l6ZXMpLFxuICAgICAgICAgICAgaGVpZ2h0OlxuICAgICAgICAgICAgICAgICgnLnNpemUteScsICRtZW5kZWxlZXYtc2l6ZXMpLFxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6XG4gICAgICAgICAgICAgICAgKCcubGluZS1oZWlnaHQtJywgbWFwLW1lcmdlKFxuICAgICAgICAgICAgICAgICAgICAgICAgJG1lbmRlbGVldi1zaXplLXNjYWxlLXJlbSxcbiAgICAgICAgICAgICAgICAgICAgICAgIChub3JtYWw6IG5vcm1hbClcbiAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgKSk7XG5cbiAgICAkZG86IG1lbmRlbGVldi11dGlsaXR5LW1vZHVsZShcbiAgICAgICAgICAgICdzaXppbmcnLCAoXG4gICAgICAgICAgICB3aWR0aDpcbiAgICAgICAgICAgICAgICAoJy53aWR0aC0nLCAkbWVuZGVsZWV2LWdyaWQtc2l6ZS1zY2FsZSksXG4gICAgICAgICAgICBtYXgtd2lkdGg6XG4gICAgICAgICAgICAgICAgKCcubWF4LXdpZHRoLScsICRtZW5kZWxlZXYtZ3JpZC1zaXplLXNjYWxlKSxcbiAgICAgICAgICAgIG1pbi13aWR0aDpcbiAgICAgICAgICAgICAgICAoJy5taW4td2lkdGgtJywgJG1lbmRlbGVldi1ncmlkLXNpemUtc2NhbGUpLFxuICAgICAgICAgICAgaGVpZ2h0OlxuICAgICAgICAgICAgICAgICgnLmhlaWdodC0nLCAkbWVuZGVsZWV2LWdyaWQtc2l6ZS1zY2FsZSksXG4gICAgICAgICAgICBtYXgtaGVpZ2h0OlxuICAgICAgICAgICAgICAgICgnLm1heC1oZWlnaHQtJywgJG1lbmRlbGVldi1ncmlkLXNpemUtc2NhbGUpLFxuICAgICAgICAgICAgbWluLWhlaWdodDpcbiAgICAgICAgICAgICAgICAoJy5taW4taGVpZ2h0LScsICRtZW5kZWxlZXYtZ3JpZC1zaXplLXNjYWxlKSxcbiAgICAgICAgKSk7XG59XG4iLAoJCSIvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQ09OVFJPTCBMQVlPVVQgKE9WRVJGTE9XLCBGTE9BVFMsIERJU1BMQVksIFBPU0lUSU9OKVxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQGlmICRtZW5kZWxlZXYtcmVnaXN0ZXJpbmctdXRpbGl0aWVzIHtcblxuICAgIC8vIENvbnRhaW5lclxuICAgICRkbzogbWVuZGVsZWV2LW1vZHVsZShcbiAgICAgICAgICAgICdsYXlvdXQuY29udGFpbmVyJywgKFxuICAgICAgICAgICAgJy5jb250YWluZXItMSc6IG1hcC1tZXJnZShcbiAgICAgICAgICAgICAgICAgICAgJG1lbmRlbGVldi1jb250YWluZXIsXG4gICAgICAgICAgICAgICAgICAgIChtYXgtd2lkdGg6IDQ0cmVtICsgMiAqICRtZW5kZWxlZXYtdW5pdC1zaXplKVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICcuY29udGFpbmVyLTInOiBtYXAtbWVyZ2UoXG4gICAgICAgICAgICAgICAgICAgICRtZW5kZWxlZXYtY29udGFpbmVyLFxuICAgICAgICAgICAgICAgICAgICAobWF4LXdpZHRoOiAzOHJlbSArIDIgKiAkbWVuZGVsZWV2LXVuaXQtc2l6ZSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICAnLmNvbnRhaW5lci0zJzogbWFwLW1lcmdlKFxuICAgICAgICAgICAgICAgICAgICAkbWVuZGVsZWV2LWNvbnRhaW5lcixcbiAgICAgICAgICAgICAgICAgICAgKG1heC13aWR0aDogMjlyZW0gKyAyICogJG1lbmRlbGVldi11bml0LXNpemUpXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgJy5jb250YWluZXItNCc6IG1hcC1tZXJnZShcbiAgICAgICAgICAgICAgICAgICAgJG1lbmRlbGVldi1jb250YWluZXIsXG4gICAgICAgICAgICAgICAgICAgIChtYXgtd2lkdGg6IDIwcmVtICsgMiAqICRtZW5kZWxlZXYtdW5pdC1zaXplKVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICcucmFpc2UtZmlyc3QgPiAqOmZpcnN0LWNoaWxkJzogKFxuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDAsXG4gICAgICAgICAgICApLFxuICAgICAgICApKTtcblxuICAgIC8vIFBvc2l0aW9uIG9uIHBhZ2UgKHBpbiwgcGluLWxlZnQsIHBpbi10b3AsIGV0YylcbiAgICAkZG86IG1lbmRlbGVldi1tb2R1bGUoXG4gICAgICAgICAgICAnbGF5b3V0LnBvc2l0aW9uJywgKFxuICAgICAgICAgICAgJy5waW4nOiAoXG4gICAgICAgICAgICAgICAgdG9wOiAwLFxuICAgICAgICAgICAgICAgIGJvdHRvbTogMCxcbiAgICAgICAgICAgICAgICByaWdodDogMCxcbiAgICAgICAgICAgICAgICBsZWZ0OiAwLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICcucGluLW5vbmUnOiAoXG4gICAgICAgICAgICAgICAgdG9wOiBhdXRvLFxuICAgICAgICAgICAgICAgIGJvdHRvbTogYXV0byxcbiAgICAgICAgICAgICAgICBsZWZ0OiBhdXRvLFxuICAgICAgICAgICAgICAgIHJpZ2h0OiBhdXRvLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICcucGluLXgnOiAoXG4gICAgICAgICAgICAgICAgcmlnaHQ6IDAsXG4gICAgICAgICAgICAgICAgbGVmdDogMCxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICAnLnBpbi15JzogKFxuICAgICAgICAgICAgICAgIHRvcDogMCxcbiAgICAgICAgICAgICAgICBib3R0b206IDAsXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgJy5waW4tbGVmdCc6IChcbiAgICAgICAgICAgICAgICBsZWZ0OiAwLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICcucGluLXJpZ2h0JzogKFxuICAgICAgICAgICAgICAgIHJpZ2h0OiAwLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICcucGluLXRvcCc6IChcbiAgICAgICAgICAgICAgICB0b3A6IDAsXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgJy5waW4tYm90dG9tJzogKFxuICAgICAgICAgICAgICAgIGJvdHRvbTogMCxcbiAgICAgICAgICAgICksXG4gICAgICAgICkpO1xuXG4gICAgLy8gRGlzcGxheVxuICAgICRkbzogbWVuZGVsZWV2LXV0aWxpdHktbW9kdWxlKFxuICAgICAgICAgICAgJ2xheW91dC5kaXNwbGF5JywgKFxuICAgICAgICAgICAgZGlzcGxheTpcbiAgICAgICAgICAgICAgICAoJy4nLCAoXG4gICAgICAgICAgICAgICAgICAgIGJsb2NrOiBibG9jayxcbiAgICAgICAgICAgICAgICAgICAgaW5saW5lOiBpbmxpbmUsXG4gICAgICAgICAgICAgICAgICAgIGlubGluZS1ibG9jazogaW5saW5lLWJsb2NrLFxuICAgICAgICAgICAgICAgICAgICB0YWJsZTogdGFibGUsXG4gICAgICAgICAgICAgICAgICAgIHRhYmxlLWNlbGw6IHRhYmxlLWNlbGwsXG4gICAgICAgICAgICAgICAgICAgIGlubGluZS1mbGV4OiBpbmxpbmUtZmxleCxcbiAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgKSk7XG5cbiAgICAvLyBGbG9hdFxuICAgICRkbzogbWVuZGVsZWV2LXV0aWxpdHktbW9kdWxlKFxuICAgICAgICAgICAgJ2xheW91dC5mbG9hdCcsIChcbiAgICAgICAgICAgIGZsb2F0OlxuICAgICAgICAgICAgICAgICgnLmZsb2F0LScsIChcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogbGVmdCxcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IHJpZ2h0LFxuICAgICAgICAgICAgICAgICAgICBub25lOiBub25lLFxuICAgICAgICAgICAgICAgICkpLFxuICAgICAgICApKTtcblxuICAgIC8vIFBvc2l0aW9uIChhYnNvbHV0ZSwgcmVsYXRpdmUsIGV0YylcbiAgICAkZG86IG1lbmRlbGVldi11dGlsaXR5LW1vZHVsZShcbiAgICAgICAgICAgICdsYXlvdXQucG9zaXRpb24nLCAoXG4gICAgICAgICAgICBwb3NpdGlvbjpcbiAgICAgICAgICAgICAgICAoJy4nLCAoXG4gICAgICAgICAgICAgICAgICAgIGFic29sdXRlOiBhYnNvbHV0ZSxcbiAgICAgICAgICAgICAgICAgICAgZml4ZWQ6IGZpeGVkLFxuICAgICAgICAgICAgICAgICAgICByZWxhdGl2ZTogcmVsYXRpdmUsXG4gICAgICAgICAgICAgICAgICAgIHN0YXRpYzogc3RhdGljLFxuICAgICAgICAgICAgICAgICAgICBzdGlja3k6IHN0aWNreSxcbiAgICAgICAgICAgICAgICApKVxuICAgICAgICApKTtcblxuICAgIC8vIE92ZXJmbG93XG4gICAgJGRvOiBtZW5kZWxlZXYtdXRpbGl0eS1tb2R1bGUoXG4gICAgICAgICAgICAnbGF5b3V0Lm92ZXJmbG93JywgKFxuICAgICAgICAgICAgb3ZlcmZsb3c6XG4gICAgICAgICAgICAgICAgKCcub3ZlcmZsb3ctJywgKFxuICAgICAgICAgICAgICAgICAgICBhdXRvOiBhdXRvLFxuICAgICAgICAgICAgICAgICAgICBoaWRkZW46IGhpZGRlbixcbiAgICAgICAgICAgICAgICAgICAgdmlzaWJsZTogdmlzaWJsZSxcbiAgICAgICAgICAgICAgICAgICAgc2Nyb2xsOiBzY3JvbGwsXG4gICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICBvdmVyZmxvdy14OlxuICAgICAgICAgICAgICAgICgnLm92ZXJmbG93LXgtJywgKFxuICAgICAgICAgICAgICAgICAgICBhdXRvOiBhdXRvLFxuICAgICAgICAgICAgICAgICAgICBoaWRkZW46IGhpZGRlbixcbiAgICAgICAgICAgICAgICAgICAgdmlzaWJsZTogdmlzaWJsZSxcbiAgICAgICAgICAgICAgICAgICAgc2Nyb2xsOiBzY3JvbGwsXG4gICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICBvdmVyZmxvdy15OlxuICAgICAgICAgICAgICAgICgnLm92ZXJmbG93LXktJywgKFxuICAgICAgICAgICAgICAgICAgICBhdXRvOiBhdXRvLFxuICAgICAgICAgICAgICAgICAgICBoaWRkZW46IGhpZGRlbixcbiAgICAgICAgICAgICAgICAgICAgdmlzaWJsZTogdmlzaWJsZSxcbiAgICAgICAgICAgICAgICAgICAgc2Nyb2xsOiBzY3JvbGwsXG4gICAgICAgICAgICAgICAgKSksXG4gICAgICAgICkpO1xufVxuIiwKCQkiLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEJPUkRFUlNcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBpZiAkbWVuZGVsZWV2LXJlZ2lzdGVyaW5nLXV0aWxpdGllcyB7XG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIEJvcmRlciBzaXplIChweClcbiAgICAkZG86IG1lbmRlbGVldi11dGlsaXR5LW1vZHVsZShcbiAgICAgICAgICAgICdib3JkZXInLCAoXG4gICAgICAgICAgICBib3JkZXI6XG4gICAgICAgICAgICAgICAgKCcuYm9yZGVyLScsICRtZW5kZWxlZXYtYm9yZGVyLXNjYWxlKSxcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OlxuICAgICAgICAgICAgICAgICgnLmJvcmRlci1sJywgJG1lbmRlbGVldi1ib3JkZXItc2NhbGUpLFxuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OlxuICAgICAgICAgICAgICAgICgnLmJvcmRlci1yJywgJG1lbmRlbGVldi1ib3JkZXItc2NhbGUpLFxuICAgICAgICAgICAgYm9yZGVyLXRvcDpcbiAgICAgICAgICAgICAgICAoJy5ib3JkZXItdCcsICRtZW5kZWxlZXYtYm9yZGVyLXNjYWxlKSxcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206XG4gICAgICAgICAgICAgICAgKCcuYm9yZGVyLWInLCAkbWVuZGVsZWV2LWJvcmRlci1zY2FsZSksXG4gICAgICAgICAgICBib3JkZXItc3R5bGU6XG4gICAgICAgICAgICAgICAgKCcuYm9yZGVyLScsIChcbiAgICAgICAgICAgICAgICAgICAgc29saWQ6IHNvbGlkLFxuICAgICAgICAgICAgICAgICAgICBkYXNoZWQ6IGRhc2hlZCxcbiAgICAgICAgICAgICAgICAgICAgZG90dGVkOiBkb3R0ZWQsXG4gICAgICAgICAgICAgICAgICAgIG5vbmU6IG5vbmUsXG4gICAgICAgICAgICAgICAgKSksXG4gICAgICAgICkpO1xuXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIFJvdW5kZWQgY29ybmVyc1xuICAgICRkbzogbWVuZGVsZWV2LW1vZHVsZShcbiAgICAgICAgICAgICdyb3VuZGVkJywgKFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIEFsbCBkaXJlY3Rpb25zXG4gICAgICAgICAgICAnLnJvdW5kZWQtJzogc2NhbGUtb2YoXG4gICAgICAgICAgICAgICAgJHNjYWxlOiAkbWVuZGVsZWV2LXJhZGl1cy1zY2FsZS1yZW0sXG4gICAgICAgICAgICAgICAgJGNzczogKFxuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiBudWxsLFxuICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIERpcmVjdGlvbmFsIHJvdW5kZWQgY29ybmVyc1xuICAgICAgICAgICAgJy5yb3VuZGVkLXQnOiBzY2FsZS1vZihcbiAgICAgICAgICAgICAgICAkc2NhbGU6ICRtZW5kZWxlZXYtcmFkaXVzLXNjYWxlLXJlbSxcbiAgICAgICAgICAgICAgICAkY3NzOiAoXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiBudWxsLFxuICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgJy5yb3VuZGVkLWInOiBzY2FsZS1vZihcbiAgICAgICAgICAgICAgICAkc2NhbGU6ICRtZW5kZWxlZXYtcmFkaXVzLXNjYWxlLXJlbSxcbiAgICAgICAgICAgICAgICAkY3NzOiAoXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiBudWxsLFxuICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgJy5yb3VuZGVkLXInOnNjYWxlLW9mKFxuICAgICAgICAgICAgICAgICRzY2FsZTogJG1lbmRlbGVldi1yYWRpdXMtc2NhbGUtcmVtLFxuICAgICAgICAgICAgICAgICRjc3M6IChcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiBudWxsLFxuICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgJy5yb3VuZGVkLWwnOnNjYWxlLW9mKFxuICAgICAgICAgICAgICAgICRzY2FsZTogJG1lbmRlbGVldi1yYWRpdXMtc2NhbGUtcmVtLFxuICAgICAgICAgICAgICAgICRjc3M6IChcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogbnVsbCxcbiAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgKSk7XG59XG4iLAoJCSIvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRkxFWCBCT1hFU1xuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJG1lbmRlbGVldi1ndXR0ZXItc2NhbGU6ICRmbi1lbXB0eS1tYXA7XG5AZWFjaCAkayBpbiAoMSwgMiwgMywgNCkge1xuICAgICRzaXplOiBzaXplLXNjYWxlKCRrKTtcbiAgICAkY3NzOiAoXG4gICAgICAgIG1hcmdpbjogdW5xdW90ZSgnI3skc2l6ZX0gLSN7JHNpemV9JyksXG4gICAgICAgICc+IConOiAoXG4gICAgICAgICAgICBtYXJnaW46ICRzaXplLFxuICAgICAgICApLFxuICAgICAgICAnJiArICYnOihcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC0kc2l6ZSxcbiAgICAgICAgKSxcbiAgICApO1xuICAgICRtZW5kZWxlZXYtZ3V0dGVyLXNjYWxlOiBtYXAtbWVyZ2UoJG1lbmRlbGVldi1ndXR0ZXItc2NhbGUsICgnJiN7JGt9JzogJGNzcykpO1xufVxuXG5AaWYgJG1lbmRlbGVldi1yZWdpc3RlcmluZy11dGlsaXRpZXMge1xuXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIEZsZXhpYmxlIGdyaWRcbiAgICAkZG86IG1lbmRlbGVldi1tb2R1bGUoXG4gICAgICAgICAgICAnZm9vJywgKFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIFJvdyBkZWZpbml0aW9ucyBhbmQgbW9kaWZpZXJzXG4gICAgICAgICAgICAnLmZvb2Jhcic6IChcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaCxcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4LFxuICAgICAgICAgICAgICAgIGZsZXgtZmxvdzogcm93LFxuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbixcbiAgICAgICAgICAgICksXG4gICAgICAgICkpO1xuXG4gICAgJGRvOiBtZW5kZWxlZXYtbW9kdWxlKFxuICAgICAgICAgICAgJ2ZsZXgtZ3JpZCcsIChcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyBSb3cgZGVmaW5pdGlvbnMgYW5kIG1vZGlmaWVyc1xuICAgICAgICAgICAgJy5yb3cnOiAoXG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2gsXG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleCxcbiAgICAgICAgICAgICAgICBmbGV4LWZsb3c6IHJvdyxcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4sXG4gICAgICAgICAgICAgICAgJz4gKic6IChcbiAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiAwLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgJy5yb3ctaW5saW5lJzogKFxuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoLFxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4LFxuICAgICAgICAgICAgICAgIGZsZXgtZmxvdzogcm93LFxuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbixcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICAnLnJvdy1leHBhbmQnOiAoXG4gICAgICAgICAgICAgICAgJz4gKic6IChcbiAgICAgICAgICAgICAgICAgICAgZmxleDogMSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyBDb2wgZGVmaW5pdGlvbnMgYW5kIG1vZGlmaWVyc1xuICAgICAgICAgICAgJy5jb2wnOiAoXG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2gsXG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleCxcbiAgICAgICAgICAgICAgICBmbGV4LWZsb3c6IGNvbHVtbixcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4sXG4gICAgICAgICAgICAgICAgJz4gKic6IChcbiAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiAwLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgJy5jb2wtaW5saW5lJzogKFxuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoLFxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4LFxuICAgICAgICAgICAgICAgIGZsZXgtZmxvdzogY29sdW1uLFxuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbixcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICAnLmNvbC1leHBhbmQnOiAoXG4gICAgICAgICAgICAgICAgJz4gKic6IChcbiAgICAgICAgICAgICAgICAgICAgZmxleDogMSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIC8vIEd1dHRlciBzY2FsZVxuICAgICAgICAgICAgJy5ndXR0ZXItJzogJG1lbmRlbGVldi1ndXR0ZXItc2NhbGUsXG4gICAgICAgICkpO1xuXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIEZsZXhib3ggcmVsYXRlZCB1dGlsaXR5IGNsYXNzZXNcbiAgICAkZG86IG1lbmRlbGVldi11dGlsaXR5LW1vZHVsZShcbiAgICAgICAgICAgICdmbGV4JywgKFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIERpcmVjdGlvblxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246XG4gICAgICAgICAgICAgICAgKCcuZmxleC0nLCAoXG4gICAgICAgICAgICAgICAgICAgIHJvdzogcm93LFxuICAgICAgICAgICAgICAgICAgICByb3ctcmV2ZXJzZTogcm93LXJldmVyc2UsXG4gICAgICAgICAgICAgICAgICAgIGNvbHVtbjogY29sdW1uLFxuICAgICAgICAgICAgICAgICAgICBjb2x1bW4tcmV2ZXJzZTogY29sdW1uLXJldmVyc2UsXG4gICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy8gQWxpZ25tZW50IGFsb25nIHRoZSBmbGV4IGF4aXNcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDpcbiAgICAgICAgICAgICAgICAoJy5mbGV4LScsIChcbiAgICAgICAgICAgICAgICAgICAgc3RhcnQ6IGZsZXgtc3RhcnQsXG4gICAgICAgICAgICAgICAgICAgIGNlbnRlcjogY2VudGVyLFxuICAgICAgICAgICAgICAgICAgICBlbmQ6IGZsZXgtZW5kLFxuICAgICAgICAgICAgICAgICAgICBiZXR3ZWVuOiBzcGFjZS1iZXR3ZWVuLFxuICAgICAgICAgICAgICAgICAgICBhcm91bmQ6IHNwYWNlLWFyb3VuZCxcbiAgICAgICAgICAgICAgICAgICAgZXZlbmx5OiBzcGFjZS1ldmVubHksXG4gICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy8gQWxpZ25tZW50IHBlcnBlbmRpY3VsYXJseSB0byB0aGUgZmxleCBheGlzXG4gICAgICAgICAgICBhbGlnbi1pdGVtczpcbiAgICAgICAgICAgICAgICAoJy5pdGVtcy0nLCAoXG4gICAgICAgICAgICAgICAgICAgIHN0cmV0Y2g6IHN0cmV0Y2gsXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0OiBmbGV4LXN0YXJ0LFxuICAgICAgICAgICAgICAgICAgICBjZW50ZXI6IGNlbnRlcixcbiAgICAgICAgICAgICAgICAgICAgZW5kOiBmbGV4LWVuZCxcbiAgICAgICAgICAgICAgICAgICAgYmFzZWxpbmU6IGJhc2VsaW5lLFxuICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIEFsaWdubWVudCBvZiBmbGV4IGNvbnRlbnQgbGluZXMgaW4gdGhlIGF2YWlsYWJsZSBhcmVhXG4gICAgICAgICAgICBhbGlnbi1jb250ZW50OlxuICAgICAgICAgICAgICAgICgnLmNvbnRlbnQtJywgKFxuICAgICAgICAgICAgICAgICAgICBzdGFydDogZmxleC1zdGFydCxcbiAgICAgICAgICAgICAgICAgICAgY2VudGVyOiBjZW50ZXIsXG4gICAgICAgICAgICAgICAgICAgIGVuZDogZmxleC1lbmQsXG4gICAgICAgICAgICAgICAgICAgIGJldHdlZW46IHNwYWNlLWJldHdlZW4sXG4gICAgICAgICAgICAgICAgICAgIGFyb3VuZDogc3BhY2UtYXJvdW5kLFxuICAgICAgICAgICAgICAgICAgICBldmVubHk6IHNwYWNlLWV2ZW5seSxcbiAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyBXcmFwcGluZ1xuICAgICAgICAgICAgZmxleC13cmFwOlxuICAgICAgICAgICAgICAgICgnLicsIChcbiAgICAgICAgICAgICAgICAgICAgd3JhcDogd3JhcCxcbiAgICAgICAgICAgICAgICAgICAgbm93cmFwOiBub3dyYXAsXG4gICAgICAgICAgICAgICAgICAgIHdyYXAtcmV2ZXJzZTogd3JhcC1yZXZlcnNlLFxuICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgLy8gQWxpZ24gYSBzaW5nbGUgZWxlbWVudFxuICAgICAgICAgICAgYWxpZ24tc2VsZjpcbiAgICAgICAgICAgICAgICAoJy5zZWxmLScsIChcbiAgICAgICAgICAgICAgICAgICAgc3RyZXRjaDogc3RyZXRjaCxcbiAgICAgICAgICAgICAgICAgICAgc3RhcnQ6IGZsZXgtc3RhcnQsXG4gICAgICAgICAgICAgICAgICAgIGNlbnRlcjogY2VudGVyLFxuICAgICAgICAgICAgICAgICAgICBlbmQ6IGZsZXgtZW5kLFxuICAgICAgICAgICAgICAgICAgICBiYXNlbGluZTogYmFzZWxpbmUsXG4gICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy8gRmxleCBncm93IGFuZCBzaHJpbmtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOlxuICAgICAgICAgICAgICAgICgnLmZsZXgtJywgKFxuICAgICAgICAgICAgICAgICAgICBzaHJpbms6IDEsXG4gICAgICAgICAgICAgICAgICAgIG5vc2hyaW5rOiAwLFxuICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgZmxleC1ncm93OlxuICAgICAgICAgICAgICAgICgnLmZsZXgtJywgKFxuICAgICAgICAgICAgICAgICAgICBncm93OiAxLFxuICAgICAgICAgICAgICAgICAgICBub2dyb3c6IDAsXG4gICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy8gRmxleCBncm93IHNjYWxlXG4gICAgICAgICAgICBmbGV4OlxuICAgICAgICAgICAgICAgICgnLmZsZXgtJywgKFxuICAgICAgICAgICAgICAgICAgICBhdXRvOiBhdXRvLFxuICAgICAgICAgICAgICAgICAgICAnMSc6IDEsXG4gICAgICAgICAgICAgICAgICAgICcyJzogMixcbiAgICAgICAgICAgICAgICAgICAgJzMnOiAzLFxuICAgICAgICAgICAgICAgICAgICAnNCc6IDQsXG4gICAgICAgICAgICAgICAgICAgICc1JzogNSxcbiAgICAgICAgICAgICAgICAgICAgJzYnOiA2LFxuICAgICAgICAgICAgICAgICAgICAnNyc6IDcsXG4gICAgICAgICAgICAgICAgICAgICc4JzogOCxcbiAgICAgICAgICAgICAgICAgICAgJzknOiA5LFxuICAgICAgICAgICAgICAgICAgICAnMTAnOiAxMCxcbiAgICAgICAgICAgICAgICAgICAgJzExJzogMTEsXG4gICAgICAgICAgICAgICAgICAgICcxMic6IDEyLFxuICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIEZsZXggb3JkZXIgc2NhbGVcbiAgICAgICAgICAgIG9yZGVyOlxuICAgICAgICAgICAgICAgICgnLm9yZGVyLScsIChcbiAgICAgICAgICAgICAgICAgICAgJzEnOiAxLFxuICAgICAgICAgICAgICAgICAgICAnMic6IDIsXG4gICAgICAgICAgICAgICAgICAgICczJzogMyxcbiAgICAgICAgICAgICAgICAgICAgJzQnOiA0LFxuICAgICAgICAgICAgICAgICAgICAnNSc6IDUsXG4gICAgICAgICAgICAgICAgICAgICc2JzogNixcbiAgICAgICAgICAgICAgICAgICAgJzcnOiA3LFxuICAgICAgICAgICAgICAgICAgICAnOCc6IDgsXG4gICAgICAgICAgICAgICAgICAgICc5JzogOSxcbiAgICAgICAgICAgICAgICAgICAgJzEwJzogMTAsXG4gICAgICAgICAgICAgICAgICAgICcxMSc6IDExLFxuICAgICAgICAgICAgICAgICAgICAnMTInOiAxMixcbiAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgKSk7XG59XG4iLAoJCSIvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQ1NTIEdSSURcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBpZiAkbWVuZGVsZWV2LXJlZ2lzdGVyaW5nLXV0aWxpdGllcyB7XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gUkVHVUxBUiBDU1MgR1JJRFxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgICRkbzogbWVuZGVsZWV2LW1vZHVsZShcbiAgICAgICAgICAgICdncmlkJywgKFxuICAgICAgICAgICAgLy8gQmFzaWMgZGVmaW5pdGlvbnNcbiAgICAgICAgICAgICcuZ3JpZC1kZW5zZSc6IChcbiAgICAgICAgICAgICAgICBncmlkLWF1dG8tZmxvdzogZGVuc2VcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICAvLyBUZW1wbGF0ZXNcbiAgICAgICAgICAgICcuZ3JpZC0nOiBzY2FsZS1vZihcbiAgICAgICAgICAgICAgICAkc2NhbGU6ICRtZW5kZWxlZXYtZ3JpZC1zY2FsZSxcbiAgICAgICAgICAgICAgICAkY3NzOiAoXG4gICAgICAgICAgICAgICAgICAgICctLWdyaWRHYXAnOiAwLFxuICAgICAgICAgICAgICAgICAgICAnLS1ncmlkU2l6ZSc6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQsXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAkaW50ZXJwb2xhdGU6IChcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAncmVwZWF0KCQxLCAxZnIpJyxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgLy8gUm93IHRlbXBsYXRlc1xuICAgICAgICAgICAgJy5yb3dzLSc6IHNjYWxlLW9mKFxuICAgICAgICAgICAgICAgICRzY2FsZTogJG1lbmRlbGVldi1ncmlkLXNjYWxlLFxuICAgICAgICAgICAgICAgICRjc3M6IChcbiAgICAgICAgICAgICAgICAgICAgJy0tZ3JpZEdhcCc6IDAsXG4gICAgICAgICAgICAgICAgICAgICctLWdyaWRTaXplJzogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZ3JpZCxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICRpbnRlcnBvbGF0ZTogKFxuICAgICAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6ICdyZXBlYXQoJDEsIDFmciknLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy8gR2FwIGJldHdlZW4gY2VsbHNcbiAgICAgICAgICAgICcuZ2FwLSc6IHNjYWxlLW9mKFxuICAgICAgICAgICAgICAgICRzY2FsZTogJG1lbmRlbGVldi1ncmlkLWdhcC1zY2FsZSxcbiAgICAgICAgICAgICAgICAkY3NzOiAoXG4gICAgICAgICAgICAgICAgICAgICctLWdyaWRHYXAnOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAnZ3JpZC1nYXAnOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAnZ2FwJzogbnVsbCxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICkpO1xuXG4gICAgJGRvOiBtZW5kZWxlZXYtdXRpbGl0eS1tb2R1bGUoXG4gICAgICAgICAgICAnZ3JpZCcsIChcbiAgICAgICAgICAgIGRpc3BsYXk6XG4gICAgICAgICAgICAgICAgKCcuJywgKFxuICAgICAgICAgICAgICAgICAgICBncmlkOiBncmlkLFxuICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgZ3JpZC1hdXRvLWZsb3c6XG4gICAgICAgICAgICAgICAgKCcuZ3JpZC0nLCAoXG4gICAgICAgICAgICAgICAgICAgIGRlbnNlOiBkZW5zZSxcbiAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyBHbG9iYWwgY2VsbCBwbGFjZW1lbnRcbiAgICAgICAgICAgIHBsYWNlLWl0ZW1zOlxuICAgICAgICAgICAgICAgICgnLnBsYWNlLScsIChcbiAgICAgICAgICAgICAgICAgICAgY2VudGVyOiBjZW50ZXIsXG4gICAgICAgICAgICAgICAgICAgIHN0cmV0Y2g6IHN0cmV0Y2gsXG4gICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICBqdXN0aWZ5LWl0ZW1zOlxuICAgICAgICAgICAgICAgICgnLnBsYWNlLScsIChcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IHJpZ2h0LFxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiBsZWZ0LFxuICAgICAgICAgICAgICAgICAgICBzdGFydDogc3RhcnQsXG4gICAgICAgICAgICAgICAgICAgIGVuZDogZW5kLFxuICAgICAgICAgICAgICAgICAgICBjZW50ZXIteDogY2VudGVyLFxuICAgICAgICAgICAgICAgICAgICBzdHJldGNoLXg6IHN0cmV0Y2gsXG4gICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICBhbGlnbi1pdGVtczpcbiAgICAgICAgICAgICAgICAoJy5wbGFjZS0nLCAoXG4gICAgICAgICAgICAgICAgICAgIHRvcDogc3RhcnQsXG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogZW5kLFxuICAgICAgICAgICAgICAgICAgICBjZW50ZXIteTogY2VudGVyLFxuICAgICAgICAgICAgICAgICAgICBjZW50ZXI6IGNlbnRlcixcbiAgICAgICAgICAgICAgICAgICAgc3RyZXRjaC15OiBzdHJldGNoLFxuICAgICAgICAgICAgICAgICAgICBzdHJldGNoOiBzdHJldGNoXG4gICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy8gR3JpZCBhbGlnbm1lbnQgb24gaXRzIGNvbnRhaW5lclxuICAgICAgICAgICAgcGxhY2UtY29udGVudDpcbiAgICAgICAgICAgICAgICAoJy5ncmlkLScsIChcbiAgICAgICAgICAgICAgICAgICAgY2VudGVyOiBjZW50ZXIsXG4gICAgICAgICAgICAgICAgICAgIHN0cmV0Y2g6IHN0cmV0Y2gsXG4gICAgICAgICAgICAgICAgICAgIGFyb3VuZDogc3BhY2UtYXJvdW5kLFxuICAgICAgICAgICAgICAgICAgICBiZXR3ZWVuOiBzcGFjZS1iZXR3ZWVuLFxuICAgICAgICAgICAgICAgICAgICBldmVubHk6IHNwYWNlLWV2ZW5seSxcbiAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDpcbiAgICAgICAgICAgICAgICAoJy5ncmlkLScsIChcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IHJpZ2h0LFxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiBsZWZ0LFxuICAgICAgICAgICAgICAgICAgICBzdGFydDogc3RhcnQsXG4gICAgICAgICAgICAgICAgICAgIGVuZDogZW5kLFxuICAgICAgICAgICAgICAgICAgICBjZW50ZXIteDogY2VudGVyLFxuICAgICAgICAgICAgICAgICAgICBzdHJldGNoLXg6IHN0cmV0Y2gsXG4gICAgICAgICAgICAgICAgICAgIGFyb3VuZC14OiBzcGFjZS1hcm91bmQsXG4gICAgICAgICAgICAgICAgICAgIGJldHdlZW4teDogc3BhY2UtYmV0d2VlbixcbiAgICAgICAgICAgICAgICAgICAgZXZlbmx5LXg6IHNwYWNlLWV2ZW5seSxcbiAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgIGFsaWduLWNvbnRlbnQ6XG4gICAgICAgICAgICAgICAgKCcuZ3JpZC0nLCAoXG4gICAgICAgICAgICAgICAgICAgIHRvcDogc3RhcnQsXG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogZW5kLFxuICAgICAgICAgICAgICAgICAgICBjZW50ZXIteTogY2VudGVyLFxuICAgICAgICAgICAgICAgICAgICBzdHJldGNoLXk6IHN0cmV0Y2gsXG4gICAgICAgICAgICAgICAgICAgIGFyb3VuZC15OiBzcGFjZS1hcm91bmQsXG4gICAgICAgICAgICAgICAgICAgIGJldHdlZW4teTogc3BhY2UtYmV0d2VlbixcbiAgICAgICAgICAgICAgICAgICAgZXZlbmx5LXk6IHNwYWNlLWV2ZW5seSxcbiAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyBJbmRpdmlkdWFsIGNlbGwgYWxpZ25tZW50XG4gICAgICAgICAgICBwbGFjZS1zZWxmOlxuICAgICAgICAgICAgICAgICgnLmNlbGwtJywgKFxuICAgICAgICAgICAgICAgICAgICBjZW50ZXI6IGNlbnRlcixcbiAgICAgICAgICAgICAgICAgICAgc3RyZXRjaDogc3RyZXRjaCxcbiAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgIGp1c3RpZnktc2VsZjpcbiAgICAgICAgICAgICAgICAoJy5jZWxsLScsIChcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IHJpZ2h0LFxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiBsZWZ0LFxuICAgICAgICAgICAgICAgICAgICBzdGFydDogc3RhcnQsXG4gICAgICAgICAgICAgICAgICAgIGVuZDogZW5kLFxuICAgICAgICAgICAgICAgICAgICBjZW50ZXIteDogY2VudGVyLFxuICAgICAgICAgICAgICAgICAgICBzdHJldGNoLXg6IHN0cmV0Y2gsXG4gICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICBhbGlnbi1zZWxmOlxuICAgICAgICAgICAgICAgICgnLmNlbGwtJywgKFxuICAgICAgICAgICAgICAgICAgICB0b3A6IHN0YXJ0LFxuICAgICAgICAgICAgICAgICAgICBib3R0b206IGVuZCxcbiAgICAgICAgICAgICAgICAgICAgY2VudGVyLXk6IGNlbnRlcixcbiAgICAgICAgICAgICAgICAgICAgc3RyZXRjaC15OiBzdHJldGNoLFxuICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIEluZGl2aWR1YWwgY2VsbCBwb3NpdGlvbmluZyBhbmQgc3BhblxuICAgICAgICAgICAgZ3JpZC1jb2x1bW4tc3RhcnQ6XG4gICAgICAgICAgICAgICAgKCcuYXQtY29sLScsICRtZW5kZWxlZXYtZ3JpZC1zY2FsZSksXG4gICAgICAgICAgICBncmlkLXJvdy1zdGFydDpcbiAgICAgICAgICAgICAgICAoJy5hdC1yb3ctJywgJG1lbmRlbGVldi1ncmlkLXNjYWxlKSxcbiAgICAgICAgICAgIGdyaWQtY29sdW1uOlxuICAgICAgICAgICAgICAgICgnLmNvbC1zcGFuJywgJG1lbmRlbGVldi1ncmlkLXNwYW4tZGF0YSksXG4gICAgICAgICAgICBncmlkLXJvdzpcbiAgICAgICAgICAgICAgICAoJy5yb3ctc3BhbicsICRtZW5kZWxlZXYtZ3JpZC1zcGFuLWRhdGEpLFxuICAgICAgICApKTtcblxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gSEFSRCBHUklEXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgICRjb2w6ICgpO1xuICAgICRyb3c6ICgpO1xuICAgIEBlYWNoICRrLCAkbiBpbiAkbWVuZGVsZWV2LWdyaWQtc2NhbGUge1xuICAgICAgICAkY29sOiBtYXAtbWVyZ2UoJGNvbCwgKCcmI3ska30nOiAoXG4gICAgICAgICAgICAnLS1ncmlkLWdhcCc6IDAsXG4gICAgICAgICAgICAnLS1ncmlkLXNpemUnOiAkbixcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQsXG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHVucXVvdGUoJ3JlcGVhdCgjeyRufSwgY2FsYygjezEwMCUgLyAkbn0gLSAjeygkbiAtIDEpIC8gJG59ICogdmFyKC0tZ3JpZC1nYXApKSknKSxcbiAgICAgICAgKSkpO1xuXG4gICAgICAgICRyb3c6IG1hcC1tZXJnZSgkcm93LCAoJyYjeyRrfSc6IChcbiAgICAgICAgICAgICctLWdyaWQtZ2FwJzogMCxcbiAgICAgICAgICAgICctLWdyaWQtc2l6ZSc6ICRuLFxuICAgICAgICAgICAgZGlzcGxheTogZ3JpZCxcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogdW5xdW90ZSgncmVwZWF0KCN7JG59LCBjYWxjKCN7MTAwJSAvICRufSAtICN7KCRuIC0gMSkgLyAkbn0gKiB2YXIoLS1ncmlkLWdhcCkpKScpLFxuICAgICAgICApKSk7XG4gICAgfVxuXG4gICAgJGRvOiBtZW5kZWxlZXYtbW9kdWxlKFxuICAgICAgICAgICAgJ2hhcmQtZ3JpZCcsIChcbiAgICAgICAgICAgIC8vIEJhc2ljIGRlZmluaXRpb25zXG4gICAgICAgICAgICAnLmhhcmQtZ3JpZCc6IChcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBncmlkLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIC8vIFRlbXBsYXRlc1xuICAgICAgICAgICAgJy5oYXJkLWdyaWQtJzogJGNvbCxcbiAgICAgICAgICAgICcuaGFyZC1yb3dzLSc6ICRyb3csXG4gICAgICAgICkpO1xufVxuIiwKCQkiLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFRSQU5TRk9STUFUSU9OU1xuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQGlmICRtZW5kZWxlZXYtcmVnaXN0ZXJpbmctdXRpbGl0aWVzIHtcbiAgICAkZG86IG1lbmRlbGVldi1tb2R1bGUoXG4gICAgICAgICAgICAndHJhbnNmb3JtJywgKFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIEdyb3cgYW5kIHNocmlua1xuICAgICAgICAgICAgJy5ncm93LSc6IHNjYWxlLW9mKFxuICAgICAgICAgICAgICAgICRzY2FsZTogJG1lbmRlbGVldi1ncm93LXNjYWxlLFxuICAgICAgICAgICAgICAgICRpbnRlcnBvbGF0ZTogKFxuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICdzY2FsZSgkMSwgJDEpJyxcbiAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICcuc2hyaW5rLSc6IHNjYWxlLW9mKFxuICAgICAgICAgICAgICAgICRzY2FsZTogJG1lbmRlbGVldi1zaHJpbmstc2NhbGUsXG4gICAgICAgICAgICAgICAgJGludGVycG9sYXRlOiAoXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogJ3NjYWxlKCQxLCAkMSknLFxuICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIFJvdGF0aW9uc1xuICAgICAgICAgICAgJy5yb3RhdGUtJzogc2NhbGUtb2YoXG4gICAgICAgICAgICAgICAgJHNjYWxlOiAoMzA6IDMwLCA0NTogNDUsIDYwOiA2MCwgOTA6IDkwKSxcbiAgICAgICAgICAgICAgICAkaW50ZXJwb2xhdGU6IChcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAncm90YXRlKCQxZGVnKScsXG4gICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAnLnJvdGF0ZS1uJzogc2NhbGUtb2YoXG4gICAgICAgICAgICAgICAgJHNjYWxlOiAoMzA6IDMwLCA0NTogNDUsIDYwOiA2MCwgOTA6IDkwKSxcbiAgICAgICAgICAgICAgICAkaW50ZXJwb2xhdGU6IChcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAncm90YXRlKC0kMWRlZyknLFxuICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgJy5yb3RhdGUtMTgwJzogKFxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdW5xdW90ZSgncm90YXRlKDE4MGRlZyknKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy8gR3JleSBzY2FsZVxuICAgICAgICAgICAgJy5ncmF5c2NhbGUtJzogc2NhbGUtb2YoXG4gICAgICAgICAgICAgICAgJHNjYWxlOiAkbWVuZGVsZWV2LXRyYW5zZm9ybS1zY2FsZSxcbiAgICAgICAgICAgICAgICAkaW50ZXJwb2xhdGU6IChcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyOiAnZ3JheXNjYWxlKCQxKScsXG4gICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy8gU2VwaWFcbiAgICAgICAgICAgICcuc2VwaWEtJzogc2NhbGUtb2YoXG4gICAgICAgICAgICAgICAgJHNjYWxlOiAkbWVuZGVsZWV2LXRyYW5zZm9ybS1zY2FsZSxcbiAgICAgICAgICAgICAgICAkaW50ZXJwb2xhdGU6IChcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyOiAnc2VwaWEoJDEpJyxcbiAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyBJbnZlcnRcbiAgICAgICAgICAgICcuaW52ZXJ0LSc6IHNjYWxlLW9mKFxuICAgICAgICAgICAgICAgICRzY2FsZTogJG1lbmRlbGVldi10cmFuc2Zvcm0tc2NhbGUsXG4gICAgICAgICAgICAgICAgJGludGVycG9sYXRlOiAoXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcjogJ2ludmVydCgkMSknLFxuICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIENvbnRyYXN0XG4gICAgICAgICAgICAnLmNvbnRyYXN0LSc6IHNjYWxlLW9mKFxuICAgICAgICAgICAgICAgICRzY2FsZTogJG1lbmRlbGVldi10cmFuc2Zvcm0tZG91YmxlLXNjYWxlLFxuICAgICAgICAgICAgICAgICRpbnRlcnBvbGF0ZTogKFxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXI6ICdjb250cmFzdCgkMSknLFxuICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIEJyaWdodG5lc3NcbiAgICAgICAgICAgICcuYnJpZ2h0bmVzcy0nOiBzY2FsZS1vZihcbiAgICAgICAgICAgICAgICAkc2NhbGU6ICRtZW5kZWxlZXYtdHJhbnNmb3JtLWRvdWJsZS1zY2FsZSxcbiAgICAgICAgICAgICAgICAkaW50ZXJwb2xhdGU6IChcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyOiAnYnJpZ2h0bmVzcygkMSknLFxuICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIFNhdHVyYXRpb25cbiAgICAgICAgICAgICcuc2F0dXJhdGlvbi0nOiBzY2FsZS1vZihcbiAgICAgICAgICAgICAgICAkc2NhbGU6ICRtZW5kZWxlZXYtdHJhbnNmb3JtLWRvdWJsZS1zY2FsZSxcbiAgICAgICAgICAgICAgICAkaW50ZXJwb2xhdGU6IChcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyOiAnc2F0dXJhdGUoJDEpJyxcbiAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgKSk7XG5cbiAgICAkZG86IG1lbmRlbGVldi11dGlsaXR5LW1vZHVsZShcbiAgICAgICAgICAgICd0cmFuc2Zvcm0nLCAoXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy8gT3JpZ2luIGxvY2F0aW9uXG4gICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOlxuICAgICAgICAgICAgICAgICgnLnRyYW5zZm9ybS0nLCAoXG4gICAgICAgICAgICAgICAgICAgIGNlbnRlcjogY2VudGVyIGNlbnRlciAwLFxuICAgICAgICAgICAgICAgICAgICB0b3A6IGNlbnRlciB0b3AgMCxcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiBjZW50ZXIgYm90dG9tIDAsXG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IGxlZnQgY2VudGVyIDAsXG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiByaWdodCBjZW50ZXIgMCxcbiAgICAgICAgICAgICAgICAgICAgbmU6IHJpZ2h0IHRvcCAwLFxuICAgICAgICAgICAgICAgICAgICBudzogbGVmdCB0b3AgMCxcbiAgICAgICAgICAgICAgICAgICAgc2U6IHJpZ2h0IGJvdHRvbSAwLFxuICAgICAgICAgICAgICAgICAgICBzdzogbGVmdCBib3R0b20gMCxcbiAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgKSk7XG59XG4iLAoJCSIvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQ09OVFJPTCBWSVNJQklMSVRZLCBPUEFDSVRZIEFORCBaLVZBTFVFU1xuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQGlmICRtZW5kZWxlZXYtcmVnaXN0ZXJpbmctdXRpbGl0aWVzIHtcbiAgICAvLyAudmlzaWJsZSBhbmQgLmhpZGRlbiB1dGlsaXR5IGNsYXNzZXNcbiAgICAkZG86IG1lbmRlbGVldi11dGlsaXR5LW1vZHVsZShcbiAgICAgICAgICAgICd2aXNpYmlsaXR5JywgKFxuICAgICAgICAgICAgdmlzaWJpbGl0eTpcbiAgICAgICAgICAgICAgICAoJy4nLCAoXG4gICAgICAgICAgICAgICAgICAgIHZpc2libGU6IHZpc2libGUsXG4gICAgICAgICAgICAgICAgICAgIGludmlzaWJsZTogaGlkZGVuLFxuICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgb3BhY2l0eTpcbiAgICAgICAgICAgICAgICAoJy5vcGFjaXR5LScsIChcbiAgICAgICAgICAgICAgICAgICAgJzAnOiAwLjAwLFxuICAgICAgICAgICAgICAgICAgICAnMSc6IDAuMDUsXG4gICAgICAgICAgICAgICAgICAgICcyJzogMC4xMCxcbiAgICAgICAgICAgICAgICAgICAgJzMnOiAwLjI1LFxuICAgICAgICAgICAgICAgICAgICAnNCc6IDAuNTAsXG4gICAgICAgICAgICAgICAgICAgICc1JzogMC43NSxcbiAgICAgICAgICAgICAgICAgICAgJzYnOiAwLjkwLFxuICAgICAgICAgICAgICAgICAgICAnNyc6IDAuOTUsXG4gICAgICAgICAgICAgICAgICAgIGZ1bGw6IDEuMDAsXG4gICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICB6LWluZGV4OlxuICAgICAgICAgICAgICAgICgnLnotJywgKFxuICAgICAgICAgICAgICAgICAgICAnMCc6IDAsXG4gICAgICAgICAgICAgICAgICAgICcxJzogMTAwLFxuICAgICAgICAgICAgICAgICAgICAnMic6IDIwMCxcbiAgICAgICAgICAgICAgICAgICAgJzMnOiAzMDAsXG4gICAgICAgICAgICAgICAgICAgICc0JzogNDAwLFxuICAgICAgICAgICAgICAgICAgICAnNSc6IDUwMCxcbiAgICAgICAgICAgICAgICAgICAgJzYnOiA2MDAsXG4gICAgICAgICAgICAgICAgICAgICc3JzogNzAwLFxuICAgICAgICAgICAgICAgICAgICAnOCc6IDgwMCxcbiAgICAgICAgICAgICAgICAgICAgJzknOiA5MDAsXG4gICAgICAgICAgICAgICAgICAgICcxMCc6IDEwMDAsXG4gICAgICAgICAgICAgICAgKSksXG4gICAgICAgICkpO1xuXG4gICAgLy8gVmlzaWJpbGl0eVxuICAgICRkbzogbWVuZGVsZWV2LW1vZHVsZShcbiAgICAgICAgICAgICd2aXNpYmlsaXR5JywgKFxuICAgICAgICAgICAgJy5oaWRkZW4nOiAoXG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICAnW2hpZGRlbl0nOiAoXG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICAnLmNsZWFyZml4OmFmdGVyJzogKFxuICAgICAgICAgICAgICAgIGNsZWFyOiBib3RoLFxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiIFwiLFxuICAgICAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgKSk7XG59XG4iLAoJCSIvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gTUlTQzogQ29uY2VudHJhdGUgc2ltcGxlIHV0aWxpdHkgZGVjbGFyYXRpb25zXG4vL1xuLy8gU2VjdGlvbnM6XG4vLyAgKiBCYWNrZ3JvdW5kXG4vLyAgKiBDb2xvcnNcbi8vICAqIEludGVyYWN0aXZpdHlcbi8vICAqIExpc3Rcbi8vICAqIFNoYWRvd3Ncbi8vXG4vLyBvYnMuOiBrZWVwIGFsbCBzZWN0aW9ucyBpbiBhbHBoYWJldGljIG9yZGVyLlxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQGlmICRtZW5kZWxlZXYtcmVnaXN0ZXJpbmctdXRpbGl0aWVzIHtcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gQkFDS0dST1VORFxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgICRkbzogbWVuZGVsZWV2LXV0aWxpdHktbW9kdWxlKFxuICAgICAgICAgICAgJ2JhY2tncm91bmQnLCAoXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6XG4gICAgICAgICAgICAgICAgKCcuYmctJywgKFxuICAgICAgICAgICAgICAgICAgICBmaXhlZDogZml4ZWQsXG4gICAgICAgICAgICAgICAgICAgIGxvY2FsOiBsb2NhbCxcbiAgICAgICAgICAgICAgICAgICAgc2Nyb2xsOiBzY3JvbGwsXG4gICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXg6XG4gICAgICAgICAgICAgICAgKCcuYmctJywgKFxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiBsZWZ0LFxuICAgICAgICAgICAgICAgICAgICByaWdodDogcmlnaHQsXG4gICAgICAgICAgICAgICAgICAgIGNlbnRlci14OiBjZW50ZXIsXG4gICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6XG4gICAgICAgICAgICAgICAgKCcuYmctJywgKFxuICAgICAgICAgICAgICAgICAgICBib3R0b206IGJvdHRvbSxcbiAgICAgICAgICAgICAgICAgICAgdG9wOnRvcCxcbiAgICAgICAgICAgICAgICAgICAgY2VudGVyLXk6IGNlbnRlcixcbiAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OlxuICAgICAgICAgICAgICAgICgnLmJnLScsIChcbiAgICAgICAgICAgICAgICAgICAgcmVwZWF0OiByZXBlYXQsXG4gICAgICAgICAgICAgICAgICAgIG5vLXJlcGVhdDogbm8tcmVwZWF0LFxuICAgICAgICAgICAgICAgICAgICByZXBlYXQteDogcmVwZWF0LXgsXG4gICAgICAgICAgICAgICAgICAgIHJlcGVhdC15OiByZXBlYXQteSxcbiAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTpcbiAgICAgICAgICAgICAgICAoJy5iZy0nLCAoXG4gICAgICAgICAgICAgICAgICAgIGF1dG86IGF1dG8sXG4gICAgICAgICAgICAgICAgICAgIGNvdmVyOiBjb3ZlcixcbiAgICAgICAgICAgICAgICAgICAgY29udGFpbjogY29udGFpbixcbiAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgKSk7XG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIENPTE9SU1xuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgICRkYXRhOiAoKTtcbiAgICBAZWFjaCAkcm9sZSBpbiAkbWVuZGVsZWV2LWNvbG9yLXJvbGVzIHtcbiAgICAgICAgJHZhbHVlOiBtYXAtZ2V0KCRtZW5kZWxlZXYtY29sb3ItcGFsZXR0ZSwgJHJvbGUpO1xuICAgICAgICAkZGF0YTogbWFwLW1lcmdlKCRkYXRhLCAoXG4gICAgICAgICAgICAnLmNvbG9yLSN7JHJvbGV9JzogKFxuICAgICAgICAgICAgICAgIGNvbG9yOiBtYXAtZ2V0KCRtZW5kZWxlZXYtY29sb3ItY29udHJhc3QsICR2YWx1ZSksXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHZhbHVlLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgKSk7XG4gICAgfVxuXG4gICAgJGRvOiBtZW5kZWxlZXYtbW9kdWxlKFxuICAgICAgICAgICAgJ2NvbG9ycycsXG4gICAgICAgICAgICAkZGF0YVxuICAgICk7XG5cbiAgICAkZGF0YTogKCk7XG4gICAgQGVhY2ggJHJvbGUgaW4gJG1lbmRlbGVldi1jb2xvci1yb2xlcyB7XG4gICAgICAgICR2YWx1ZTogbWFwLWdldCgkbWVuZGVsZWV2LWNvbG9yLXBhbGV0dGUsICRyb2xlKTtcbiAgICAgICAgJGRhdGE6IG1hcC1tZXJnZSgkZGF0YSwgKCRyb2xlOiAkdmFsdWUpKTtcbiAgICB9XG5cbiAgICAkZG86IG1lbmRlbGVldi11dGlsaXR5LW1vZHVsZShcbiAgICAgICAgICAgICdjb2xvcnMnLCAoXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy8gQ3JlYXRlIGFsbCAuYmctKiBjbGFzc2VzXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOlxuICAgICAgICAgICAgICAgICgnLmJnLScsICRkYXRhKSxcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyBDcmVhdGUgYWxsIC50ZXh0LSogY2xhc3Nlc1xuICAgICAgICAgICAgY29sb3I6XG4gICAgICAgICAgICAgICAgKCcudGV4dC0nLCAkZGF0YSksXG4gICAgICAgICkpO1xuXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIElOVEVSQUNUSVZJVFlcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICAkZG86IG1lbmRlbGVldi11dGlsaXR5LW1vZHVsZShcbiAgICAgICAgICAgICdpbnRlcmFjdGl2aXR5JywgKFxuICAgICAgICAgICAgY3Vyc29yOlxuICAgICAgICAgICAgICAgICgnLmN1cnNvci0nLCAoXG4gICAgICAgICAgICAgICAgICAgIGF1dG86IGF1dG8sXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGRlZmF1bHQsXG4gICAgICAgICAgICAgICAgICAgIHBvaW50ZXI6IHBvaW50ZXIsXG4gICAgICAgICAgICAgICAgICAgIHdhaXQ6IHdhaXQsXG4gICAgICAgICAgICAgICAgICAgIG1vdmU6IG1vdmUsXG4gICAgICAgICAgICAgICAgICAgIG5vdC1hbGxvd2VkOiBub3QtYWxsb3dlZCxcbiAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOlxuICAgICAgICAgICAgICAgICgnLicsIChcbiAgICAgICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG8sXG4gICAgICAgICAgICAgICAgICAgIG5vLXBvaW50ZXItZXZlbnRzOiBub25lLFxuICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgdXNlci1zZWxlY3Q6XG4gICAgICAgICAgICAgICAgKCcuJywgKFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3Q6IHRleHQsXG4gICAgICAgICAgICAgICAgICAgIG5vLXNlbGVjdDogbm9uZSxcbiAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgKSk7XG5cbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gTElTVFxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIC8vIFJlbW92ZSBsaXN0IHN0eWxlc1xuICAgICRkbzogbWVuZGVsZWV2LW1vZHVsZShcbiAgICAgICAgICAgICdsaXN0JywgKFxuICAgICAgICAgICAgJy5saXN0LWlubGluZSc6IChcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwLFxuICAgICAgICAgICAgICAgIG1hcmdpbjogMCxcbiAgICAgICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lLFxuICAgICAgICAgICAgICAgICc+IGxpJzogKFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUsXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICAnLmxpc3QtcmVzZXQnOiAoXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCxcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAsXG4gICAgICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZSxcbiAgICAgICAgICAgICksXG4gICAgICAgICksXG4gICAgICAgICRpcy1jbGFzczogdHJ1ZVxuICAgICk7XG5cbiAgICAkZG86IG1lbmRlbGVldi11dGlsaXR5LW1vZHVsZShcbiAgICAgICAgICAgICdsaXN0JywgKFxuICAgICAgICAgICAgbGlzdC1zdHlsZTpcbiAgICAgICAgICAgICAgICAoJy5saXN0LScsIChcbiAgICAgICAgICAgICAgICAgICAgZGVjaW1hbDogZGVjaW1hbCxcbiAgICAgICAgICAgICAgICAgICAgY2lyY2x1emU6IGNpcmNsdXplLFxuICAgICAgICAgICAgICAgICAgICBkaXNjOiBkaXNjLFxuICAgICAgICAgICAgICAgICAgICBzcXVhcmU6IHNxdWFyZSxcbiAgICAgICAgICAgICAgICAgICAgcm9tYW46IHJvbWFuLFxuICAgICAgICAgICAgICAgICkpLFxuICAgICAgICApKTtcblxuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBTSEFET1dTXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgJGRvOiBtZW5kZWxlZXYtdXRpbGl0eS1tb2R1bGUoXG4gICAgICAgICAgICAnc2hhZG93JywgKFxuICAgICAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICAgICAgICAoJy5zaGFkb3ctJywgKFxuICAgICAgICAgICAgICAgICAgICAnMSc6IHVucXVvdGUoJzAgMCA0cHggMCByZ2JhKDAsIDAsIDAsIDAuMjUpLCAwIDJweCA4cHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpJyksXG4gICAgICAgICAgICAgICAgICAgICcyJzogdW5xdW90ZSgnMCA0cHggOHB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKSwgMCAycHggNHB4IDAgcmdiYSgwLCAwLCAwLCAwLjA4KScpLFxuICAgICAgICAgICAgICAgICAgICAnMyc6IHVucXVvdGUoJzAgOHB4IDE2cHggMCByZ2JhKDAsIDAsIDAsIDAuMTEpLCAwIDRweCA4cHggMCByZ2JhKDAsIDAsIDAsIDAuMDgpJyksXG4gICAgICAgICAgICAgICAgICAgICc0JzogdW5xdW90ZSgnMCAxNXB4IDMwcHggMCByZ2JhKDAsIDAsIDAsIDAuMTEpLCAwIDVweCAxNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjA4KScpLFxuICAgICAgICAgICAgICAgICkpXG4gICAgICAgICkpO1xuXG4gICAgJGRvOiBtZW5kZWxlZXYtbW9kdWxlKFxuICAgICAgICAgICAgJ3NoYWRvdycsIChcbiAgICAgICAgICAgICcuaW5uZXItc2hhZG93JzogKFxuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IHVucXVvdGUoJ2luc2V0IDAgMnB4IDRweCAwIHJnYmEoMCwgMCwgMCwgMC4wNiknKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICAnLm5vLXNoYWRvdyc6IChcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBub25lLFxuICAgICAgICAgICAgKVxuICAgICAgICApKTtcbn1cbiIsCgkJIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8gSU5URVJQT0xBVEUgVVRJTElUWSBDTEFTU0VTXG4vLy8gQGdyb3VwIFV0aWxpdGllc1xuLy8vIEBhdXRob3IgRsOhYmlvIE1hY8OqZG8gTWVuZGVzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4kbWVuZGVsZWV2LWNsYXNzZXMtY2FjaGU6ICRmbi1lbXB0eS1tYXAgIWRlZmF1bHQ7XG5cbkBmdW5jdGlvbiBjc3MtZnJvbS11dGlsaXRpZXMoJGFyZ3MuLi4pIHtcbiAgICAkcmVzOiAkZm4tZW1wdHktbWFwO1xuICAgICRjbGFzc2VzOiBsc3QtbWFwKHJhZGQsIGxzdC1mcm9tLWFycmF5KCRhcmdzKSwgJy4nKTtcbiAgICBAd2hpbGUgJGNsYXNzZXMge1xuICAgICAgICAkY2xzOiBudGgoJGNsYXNzZXMsIDEpO1xuICAgICAgICAkY3NzOiBtYXAtZ2V0KCRtZW5kZWxlZXYtY2xhc3Nlcy1jYWNoZSwgJGNscyk7XG4gICAgICAgICRjbGFzc2VzOiBudGgoJGNsYXNzZXMsIDIpO1xuICAgICAgICBAaWYgJGNzcyB7XG4gICAgICAgICAgICAkcmVzOiBtYXAtbWVyZ2UoJHJlcywgJGNzcyk7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgQGVycm9yICdVdGlsaXR5IG5vdCBmb3VuZDogI3skY2xzfSc7XG4gICAgICAgIH1cbiAgICB9XG4gICAgQHJldHVybiAkcmVzO1xufVxuXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gTUlYSU5TXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLy8gSW5jbHVkZXMgZGVmaW5pdGlvbnMgZnJvbSB0aGUgbGlzdGVkIHV0aWxpdHkgY2xhc3NlcyBpbiBhcmd1bWVudFxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgICAuZm9vIHtcbi8vLyAgICAgICAgIEBpbmNsdWRlIHV0aWxpdGllcygnY29sb3ItYnJhbmQgbWFyZ2luLTIgcGFkLTQnKTtcbi8vLyAgICAgfVxuQG1peGluIHV0aWxpdGllcygkYXJncy4uLikge1xuICAgICRhcmdzOiBpZihsZW5ndGgoJGFyZ3MpID09IDEsIG50aCgkYXJncywgMSksICRhcmdzKTtcbiAgICBAaWYgbGVuZ3RoKCRhcmdzKSA9PSAxIGFuZCB0eXBlLW9mKCRhcmdzKSA9PSBzdHJpbmcge1xuICAgICAgICAkYXJnczogbHN0LXRvLWFycmF5KHN0ci1zcGxpdCgkYXJncywgJyAnKSk7XG4gICAgfVxuICAgIEBpbmNsdWRlIGZyb20tbWFwKGNzcy1mcm9tLXV0aWxpdGllcygkYXJncy4uLikpO1xufVxuXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gR0xPQkFMIGNvbmZpZ3VyYXRpb25zXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AaWYgbm90IGdsb2JhbC12YXJpYWJsZS1leGlzdHMoTUVOREVMRUVWX1VUSUxJVElFU19DQUNIRSkge1xuICAgICRhdXg6IGxzdC1zZXBhcmF0ZShrZXlzLWVxdWFsLCBsc3Qtc3RpdGNoKCRtZW5kZWxlZXYtY3NzLWNsYXNzZXMsICRtZW5kZWxlZXYtY3NzKSwgKHR5cGU6IG11bHRpcGxlKSk7XG4gICAgJGNzcy1tdWx0aXBsZTogbnRoKCRhdXgsIDEpO1xuICAgICRjc3Mtc2ltcGxlOiBudGgoJGF1eCwgMik7XG5cbiAgICAvLyBGbGF0dGVuIGFsbCBkZWNsYXJhdGlvbnMgbWFkZSB3aXRoIG1lbmRlbGVldi11dGlsaXR5LW1vZHVsZSAodHlwZT09bXVsdGlwbGUpXG4gICAgLy8gaW50byBhIHNpbmdsZSBkaWN0aW9uYXJ5LlxuICAgICRjYWNoZTogbHN0LWZsYXR0ZW4tbWFwKGxzdC1tYXAobWFwLWdldCwgJGNzcy1tdWx0aXBsZSwgZGF0YSkpO1xuXG4gICAgLy8gRXh0cmFjdCBkZWNsYXJhdGlvbnMgdGhhdCB1c2VzIG1lbmRlbGVldi11dGlsaXR5LiAoVE9ETylcbiAgICAvLyBUaG9zZSBkZWNsYXJhdGlvbnMgY2FuIGJlIHRyaWNraWVyIHNpbmNlIGl0IG1pZ2h0IGluY2x1ZGUgbmVzdGVkIG1hcHBpbmdzXG4gICAgLy8gYW5kIG90aGVyIGNvbXBsaWNhdGlvbnMuXG4gICAgJGVudHJpZXM6IG51bGw7XG4gICAgQHdoaWxlICRjc3Mtc2ltcGxlIHtcbiAgICAgICAgJGNzczogbnRoKCRjc3Mtc2ltcGxlLCAxKTtcbiAgICAgICAgJGNzcy1zaW1wbGU6IG50aCgkY3NzLXNpbXBsZSwgMik7XG5cbiAgICAgICAgJG5hbWU6IG1hcC1nZXQoJGNzcywgbmFtZSk7XG4gICAgICAgICRkYXRhOiBtYXAtZ2V0KCRjc3MsIGRhdGEpO1xuXG4gICAgICAgIEBpZiBub3QgbWFwLXNvbWUta2V5cyhzdHItaW5kZXgsICRkYXRhLCAnJicpIHtcbiAgICAgICAgICAgICRlbnRyaWVzOiAoKCRuYW1lOiAkZGF0YSkgJGVudHJpZXMpO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICRmbGF0LWNzczogbnVsbDtcbiAgICAgICAgICAgICRjb21tb246ICRmbi1lbXB0eS1tYXA7XG4gICAgICAgICAgICBAZWFjaCAkaywgJHYgaW4gJGRhdGEge1xuICAgICAgICAgICAgICAgIEBpZiBzdHItaW5kZXgoJGssICcmJykge1xuICAgICAgICAgICAgICAgICAgICAkc2VsZWN0b3I6IHNlbGVjdG9yLW5lc3QoJG5hbWUsICRrKTtcbiAgICAgICAgICAgICAgICAgICAgJHNlbGVjdG9yOiBpZihsZW5ndGgoJHNlbGVjdG9yKSA9PSAxLCBpbnNwZWN0KCRzZWxlY3RvciksICRzZWxlY3Rvcik7XG4gICAgICAgICAgICAgICAgICAgICRmbGF0LWNzczogKCgkc2VsZWN0b3I6ICR2KSAkZmxhdC1jc3MpO1xuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAkY29tbW9uOiBtYXAtbWVyZ2UoJGNvbW1vbiwgKCRrOiAkdikpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiBsZW5ndGgoJGNvbW1vbikgIT0gMCB7XG4gICAgICAgICAgICAgICAgJGZsYXQtY3NzOiBsc3Qtcm1hcChtYXAtbWVyZ2UsICRmbGF0LWNzcywgJGNvbW1vbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkZmxhdC1jc3M6IGxzdC1mbGF0dGVuLW1hcCgkZmxhdC1jc3MpO1xuICAgICAgICAgICAgJGVudHJpZXM6ICgkZmxhdC1jc3MgJGVudHJpZXMpO1xuICAgICAgICB9XG4gICAgfVxuICAgICRjYWNoZS1mcm9tLW1vZHVsZXM6IGxzdC1mbGF0dGVuLW1hcCgkZW50cmllcyk7XG5cbiAgICAvLyBDb25zb2xpZGF0ZSBhbGwgZGVjbGFyYXRpb25zXG4gICAgJGNhY2hlOiBtYXAtbWVyZ2UoJGNhY2hlLCAkY2FjaGUtZnJvbS1tb2R1bGVzKTtcbiAgICAkbWVuZGVsZWV2LWNsYXNzZXMtY2FjaGU6IG1hcC1tZXJnZSgkbWVuZGVsZWV2LWNsYXNzZXMtY2FjaGUsICRjYWNoZSkgIWdsb2JhbDtcbn1cblxuJE1FTkRFTEVFVl9VVElMSVRJRVNfQ0FDSEU6IHRydWU7XG5cbiIsCgkJIkBpZiBub3QgdmFyaWFibGUtZXhpc3RzKG1lbmRlbGVldi1wcmVsdWRlLWxvYWRlZCkge1xuICAgIEBlcnJvciAnQ2Fubm90IGxvYWQgZWxlbWVudHMgd2l0aG91dCBpbXBvcnRpbmcgcHJlbHVkZSBmaXJzdC4nO1xufVxuXG4vLyBGaXJzdCBsYXllciB0aGF0IGVtaXRzIENTUy5cbi8vIExvYWQgZGVmYXVsdCBzdHlsZXMgZm9yIGVsZW1lbnRzIGFuZCByZXNldHMgYmFzZWQgb24gbm9ybWFsaXplLmNzcy5cbkBpbXBvcnQgJ2VsZW1lbnRzL2Jhc2UnO1xuQGltcG9ydCAnZWxlbWVudHMvdHlwb2dyYXBoeSc7XG5AaW1wb3J0ICdlbGVtZW50cy9idXR0b24nO1xuQGltcG9ydCAnZWxlbWVudHMvZm9ybSc7XG4iLAoJCSIvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gTUFJTiBSRVNFVFMgQU5EIENPTkZJR1VSQVRJT05TXG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBTZXQgcm9vdCB2YXJpYWJsZXNcbiRtZW5kZWxlZXYtcm9vdC1kZWZhdWx0czogKFxuICAgIC8vXG4gICAgLy8gVHlwb2dyYXBoeVxuICAgIGxlYWQ6IGNvbmZpZygndHlwb2dyYXBoeS5sZWFkJyksXG4gICAgLy9cbiAgICAvLyBTaXppbmdcbiAgICB1bml0OiBjYWxjKHZhcigtLWxlYWQpICogMXJlbSksXG4gICAgcmVtUHg6IGNvbmZpZygndHlwb2dyYXBoeS5zaXplLnN0YXJ0JykgKiAxcHgsXG4gICAgYm94U2l6aW5nOiBib3JkZXItYm94LFxuKSAhZGVmYXVsdDtcblxuQGlmIG5vdCBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKE1FTkRFTEVFVi1FTEVNRU5UUy1CQVNFKSB7XG4gICAgOnJvb3Qge1xuICAgICAgICBAZWFjaCAkaywgJHYgaW4gbWFwLW1lcmdlKCRtZW5kZWxlZXYtcm9vdC1kZWZhdWx0cywgY29uZmlnKCdyb290JywgKCkpKSB7XG4gICAgICAgICAgICAtLSN7JGt9OiAjeyR2fTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldCBib3gtc2l6aW5nIGdsb2JhbGx5IHRvIGhhbmRsZSBwYWRkaW5nIGFuZCBib3JkZXIgd2lkdGhzXG4gICAgJF9hbmltYXRpb246IGNvbmZpZygnYW5pbWF0aW9uLmR1cmF0aW9uJykgY29uZmlnKCdhbmltYXRpb24udGltaW5nLWZ1bmN0aW9uJyk7XG4gICAgKiwgKjphZnRlciwgKjpiZWZvcmUge1xuICAgICAgICBAaW5jbHVkZSB2YXItZmFsbGJhY2soKFxuICAgICAgICAgICAgYm94LXNpemluZzogKGJvcmRlci1ib3ggYm94U2l6aW5nKVxuICAgICAgICApKTtcbiAgICAgICAgQGlmIGNvbmZpZygnYW5pbWF0aW9uLmR1cmF0aW9uJykgPiAwIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IChcbiAgICAgICAgICAgICAgICBhbGwgJF9hbmltYXRpb24sXG4gICAgICAgICAgICAgICAgZm9udC1zaXplIDBzLCAvLyBtYWtlcyBhbmltYXRpb24gdmVyeSBzbHVnZ2lzaCBkdWUgdG8gbWFueSBsYXlvdXQgcmUtY2FsY3VsYXRpb25zXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgfVxuXG4gICAgLy8gVXRpbGl0eSB0byByZW1vdmUgZ2xvYmFsIHJlc2V0IG9mIGJveC1zaXppbmdcbiAgICAucmVzZXQtYm94LXNpemluZyB7XG4gICAgICAgIC0tYm94U2l6aW5nOiBjb250ZW50LWJveDtcbiAgICB9XG5cbiAgICAvLyAxLiBEZWZpbmUgZ2xvYmFsIGZvbnQgc2l6ZSBhbmQgYmFzZSBSRU1cbiAgICAvLyAyLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gICAgLy8gMy4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpbiBpT1MuXG4gICAgaHRtbCB7XG4gICAgICAgIC8vZm9udC1zaXplOiBnZXQtYmFzZS1zaXplKCkgLyAxNnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogY29uZmlnKCd0eXBvZ3JhcGh5LmxlYWQnKTtcbiAgICAgICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAgIH1cblxuICAgIC8vIFJlbW92ZSB0aGUgbWFyZ2luIGFuZCBwYWRkaW5nIGluIGFsbCBicm93c2Vycy5cbiAgICBib2R5IHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBmb250LWZhbWlseTogI3tjb25maWcoJ3R5cG9ncmFwaHkudHlwZWZhY2UnKSBvciBjb25maWcoJ3R5cG9ncmFwaHkuc2Fucy1zZXJpZicpfTtcbiAgICAgICAgQGluY2x1ZGUgY29uZmlnKCd0eXBvZ3JhcGh5LmJvZHknKTtcbiAgICB9XG5cbiAgICAvLyBSZW5kZXIgdGhlIGBtYWluYCBlbGVtZW50IGNvbnNpc3RlbnRseSBpbiBJRS5cbiAgICBtYWluIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBEZWZhdWx0IHNwYWNpbmdzXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIGRkLCBkdCwgbGkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBzaXplLXNjYWxlKDIpO1xuICAgIH1cblxuICAgIGJsb2NrcXVvdGUsXG4gICAgZGwsXG4gICAgZmlndXJlLFxuICAgIGZvcm0sXG4gICAgb2wsXG4gICAgcCxcbiAgICBwcmUsXG4gICAgdGFibGUsXG4gICAgdWwge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBzaXplLXNjYWxlKDQpO1xuICAgIH1cbn1cblxuJE1FTkRFTEVFVi1FTEVNRU5UUy1CQVNFOiB0cnVlO1xuIiwKCQkiQGlmIG5vdCBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKE1FTkRFTEVFVi1FTEVNRU5UUy1UWVBPR1JBUEhZKSB7XG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIEhFQURJTkdTXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgLy8gTWVkaWEgcXVlcmllcyB0byBhZGp1c3QgZ2xvYmFsIGZvbnQgc2l6ZVxuICAgIEBlYWNoICRicCwgJHZhbHVlIGluIGNvbmZpZygndHlwb2dyYXBoeS5zaXplJykge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRicCkge1xuICAgICAgICAgICAgOnJvb3Qge1xuICAgICAgICAgICAgICAgIC0tcmVtUHg6ICN7JHZhbHVlICogMXB4fTtcbiAgICAgICAgICAgICAgICAtLXJlbTogI3skdmFsdWV9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaHRtbCB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiBwYygkdmFsdWUgLyAxNik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBHZW5lcmljIGhlYWRpbmdzIHN0eWxlcyAoaDEsIGgyLCBldGMuLi4pXG4gICAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgLmgxLCAuaDIsIC5oMywgLmg0LCAuaDUsIC5oNixcbiAgICAuaGVhZGluZywgJWhlYWRpbmcge1xuICAgICAgICBAaW5jbHVkZSBjb25maWcoJ3R5cG9ncmFwaHkuaGVhZGluZ3MnKTtcbiAgICAgICAgbWFyZ2luOiAwIDAgKGNvbmZpZygndHlwb2dyYXBoeS5sZWFkJykgKiAwLjVyZW0pIDA7XG4gICAgfVxuXG4gICAgLy8gVHlwZSBzY2FsZSBmb3IgZGlmZmVyZW50IHJhdGlvcyAocHJvYmFibHkgd2Ugc2hvdWxkIGpvaW4gd2l0aCB0aGUgcHJldmlvdXMgbG9vcClcbiAgICBAZWFjaCAkYnAsICRyYXRpbyBpbiBjb25maWcoJ3R5cG9ncmFwaHkuc2NhbGUnKSB7XG4gICAgICAgIEBpZiAkYnAgPT0gJ3N0YXJ0JyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWFkaW5ncy10eXBlLXNjYWxlKCRyYXRpbyk7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgJGJwOiBjb25maWcoJ2JyZWFrcG9pbnRzLiN7JGJwfScpO1xuICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogbnRoKCRicCwgMSkpIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBoZWFkaW5ncy10eXBlLXNjYWxlKCRyYXRpbyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gSU5MSU5FIFNUWUxFU1xuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIC8vIE5vcm1hbGl6ZSBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gICAgYiwgc3Ryb25nIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbiAgICB9XG5cbiAgICAvLyBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICBzbWFsbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogNzUlO1xuICAgICAgICBAaW5jbHVkZSBjb25maWcoJ2VsZW1lbnRzLnNtYWxsJyk7XG4gICAgfVxuXG4gICAgLy8gUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vyc1xuICAgIHN1Yiwgc3VwIHtcbiAgICAgICAgZm9udC1zaXplOiA3NSU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICB9XG5cbiAgICBzdWIge1xuICAgICAgICBib3R0b206IC0wLjI1ZW07XG4gICAgICAgIEBpbmNsdWRlIGNvbmZpZygnZWxlbWVudHMuc3ViJyk7XG4gICAgfVxuXG4gICAgc3VwIHtcbiAgICAgICAgdG9wOiAtMC41ZW07XG4gICAgICAgIEBpbmNsdWRlIGNvbmZpZygnZWxlbWVudHMuc3VwJyk7XG4gICAgfVxuXG4gICAgLy8gMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny1cbiAgICAvLyAyLTMuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gICAgYWJiclt0aXRsZV0ge1xuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG4gICAgfVxuXG4gICAgLy8gMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICAvLyAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gICAgY29kZSwga2JkLCBzYW1wIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IGNvbmZpZygndHlwb2dyYXBoeS5tb25vc3BhY2UnKTtcbiAgICAgICAgZm9udC1zaXplOiAxZW07XG4gICAgfVxuXG4gICAgLy9jb2RlIHtcbiAgICAvLyAgICBAaW5jbHVkZSBleHRlbmQtZnJvbSgkY29kZSwgKCcuY29sb3Itc3VidGxlJykpO1xuICAgIC8vICAgIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XG4gICAgLy8gICAgZm9udC1zaXplOiA4Ny41JTtcbiAgICAvLyAgICBtYXJnaW46IDAgMC4yNXJlbTtcbiAgICAvLyAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNzVyZW07XG4gICAgLy99XG5cbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gUEFSQUdSQVBIIFNUWUxFU1xuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHAsIC5wYXJhZ3JhcGgge1xuICAgICAgICBtYXJnaW46IDAgMCAoY29uZmlnKCd0eXBvZ3JhcGh5LmxlYWQnKSAqIDFyZW0pIDA7XG4gICAgfVxuXG4gICAgLy8gMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICAvLyAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gICAgcHJlLCAucHJlIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IGNvbmZpZygndHlwb2dyYXBoeS5tb25vc3BhY2UnKTtcbiAgICAgICAgZm9udC1zaXplOiAxZW07XG4gICAgICAgIC8vQGluY2x1ZGUgZXh0ZW5kLWZyb20oJHByZSwgKCcuY29sb3Itc3VidGxlJykpO1xuICAgICAgICAvL2JvcmRlci1sZWZ0OiAzcHggc29saWQgY29sb3IoJ3ByaW1hcnknKTtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgICAgICB3aGl0ZS1zcGFjZTogcHJlO1xuXG4gICAgICAgICYgPiBjb2RlIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMS41cmVtO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IHByZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGJsb2NrcXVvdGUsIC5ibG9ja3F1b3RlIHtcbiAgICAgICAgLy9AaW5jbHVkZSBleHRlbmQtZnJvbSgkYmxvY2txdW90ZSk7XG4gICAgICAgIC8vQGluY2x1ZGUgbWFyZ2luKG1hcC1nZXQoJGJsb2NrcXVvdGUsIG1hcmdpbikpO1xuICAgICAgICAvL0BpbmNsdWRlIHBhZGRpbmcobWFwLWdldCgkYmxvY2txdW90ZSwgcGFkZGluZykpO1xuXG4gICAgICAgIGJvcmRlci1sZWZ0OiAwLjI1cmVtIHNvbGlkIGNvbmZpZygncGFsZXR0ZS5icmFuZCcpO1xuXG4gICAgICAgICo6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gMS0yLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICAgIC8vIDMuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICAgIGhyIHtcbiAgICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgfVxuXG4gICAgLy9ociB7XG4gICAgLy8gICAgYm9yZGVyOiAwO1xuICAgIC8vICAgIGJvcmRlci10b3A6IC4xMjVyZW0gc29saWQgbWFwLWdldCgkaHIsIGNvbG9yKTtcbiAgICAvLyAgICBtYXJnaW46IDIuMHJlbSAwO1xuICAgIC8vXG4gICAgLy8gICAgQGVhY2ggJG5hbWUgaW4gbWFwLWdldCgkaHIsIGNvbG9yLXJvbGVzKSB7XG4gICAgLy8gICAgICAgICYuY29sb3ItI3skbmFtZX0ge1xuICAgIC8vICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogY29sb3IoJG5hbWUpO1xuICAgIC8vICAgICAgICB9XG4gICAgLy8gICAgfVxuICAgIC8vfVxuXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIExJU1RTXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgZGwsXG4gICAgb2wsXG4gICAgdWwge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG5cbiAgICAgICAgZGwsXG4gICAgICAgIG9sLFxuICAgICAgICB1bCB7XG4gICAgICAgICAgICBmb250LXNpemU6IDkwJTtcbiAgICAgICAgICAgIG1hcmdpbjogMS41cmVtIDAgMS41cmVtIDNyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbCB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IGRlY2ltYWwgaW5zaWRlO1xuICAgIH1cblxuICAgIHVsIHtcbiAgICAgICAgbGlzdC1zdHlsZTogY2lyY2xlIGluc2lkZTtcbiAgICB9XG5cbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gVEFCTEVTXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIHRhYmxlIHtcbiAgICAgICAgYm9yZGVyLXNwYWNpbmc6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIHRkLFxuICAgIHRoIHtcbiAgICAgICAgcGFkZGluZzogc2l6ZSgwLjUpO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gTElOS1xuICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBhIHtcbiAgICAgICAgY29sb3I6IGNvbG9yKCdwcmltYXJ5Jyk7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuXG4gICAgICAgICY6Zm9jdXMsXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6IGNvbG9yKCdwcmltYXJ5Jyk7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhLnRleHQge1xuICAgICAgICBjb2xvcjogY29sb3IoJ3ByaW1hcnknKTtcblxuICAgICAgICAmOmZvY3VzLFxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiBjb2xvcigncHJpbWFyeScpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIE1JU0NcbiAgICAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICAvLyAxLiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLlxuICAgIC8vIDIuIFByZXZlbnQgcmVzcG9uc2l2ZSBpbWFnZXMgZnJvbSBvdmVyZmxvd2luZyBpbiBzbWFsbCB2aWV3cG9ydHNcbiAgICBpbWcge1xuICAgICAgICBib3JkZXItc3R5bGU6IG5vbmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG59XG5cbiRNRU5ERUxFRVYtRUxFTUVOVFMtVFlQT0dSQVBIWTogdHJ1ZTtcbiIsCgkJIi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBCVVRUT05cbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBpZiBub3QgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cyhNRU5ERUxFRVYtRUxFTUVOVFMtQlVUVE9OUykge1xuXG4gICAgLy8gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUgYW5kIGluIEVkZ2UuXG4gICAgYnV0dG9uLCBpbnB1dCB7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIH1cblxuICAgIC8vIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICAgIGJ1dHRvbixcbiAgICBzZWxlY3Qge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB9XG5cbiAgICAvLyBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICAgIGJ1dHRvbixcbiAgICBbdHlwZT1cImJ1dHRvblwiXSxcbiAgICBbdHlwZT1cInJlc2V0XCJdLFxuICAgIFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gICAgfVxuXG4gICAgLy8gUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAgICBidXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcbiAgICBbdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAvLyBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gICAgYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuICAgIFt0eXBlPVwiYnV0dG9uXCJdOi1tb3otZm9jdXNyaW5nLFxuICAgIFt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG4gICAgW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICAgICAgICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG4gICAgfVxuXG4gICAgLmJ1dHRvbixcbiAgICBidXR0b24sXG4gICAgaW5wdXRbdHlwZT0nYnV0dG9uJ10sXG4gICAgaW5wdXRbdHlwZT0ncmVzZXQnXSxcbiAgICBpbnB1dFt0eXBlPSdzdWJtaXQnXSB7XG4gICAgICAgIEBpbmNsdWRlIG9wdGlvbnMoY29uZmlnKCdidXR0b24nKSk7XG5cbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICAgICAgZm9udC1mYW1pbHk6IGNvbmZpZygndHlwb2dyYXBoeS50eXBlZmFjZScpIG9yIGNvbmZpZygndHlwb2dyYXBoeS5zYW5zLXNlcmlmJyk7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyLjI1cmVtO1xuICAgICAgICBoZWlnaHQ6IDIuMjVyZW07XG4gICAgICAgIG1hcmdpbjogMCAwIHNpemUoMC41KSAwO1xuICAgICAgICBwYWRkaW5nOiAwIHNpemUoMSk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB0cmFuc2l0aW9uOiBmaWx0ZXIgMjUwbXM7XG5cbiAgICAgICAgJjpmb2N1cywgJjpob3ZlciB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMnB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMTIpLCBpbnNldCAwIDAgMTZweCByZ2JhKDIzMCwgMjI1LCAxMzIsIDAuMSk7XG4gICAgICAgIH1cbiAgICAgICAgJltkaXNhYmxlZF0sICYuaXMtZGlzYWJsZWQge1xuICAgICAgICAgICAgZmlsdGVyOiBzYXR1cmF0ZSgyNSUpO1xuICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgb3BhY2l0eTogMC43NTtcbiAgICAgICAgfVxuICAgICAgICAmLmlzLXNtYWxsIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBzaXplKDEpO1xuICAgICAgICAgICAgaGVpZ2h0OiBzaXplKDEpO1xuICAgICAgICAgICAgLy9tYXJnaW46IDAgMCBzaXplKDAuNSkgMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgc2l6ZSgwLjI1KTtcbiAgICAgICAgfVxuICAgICAgICAmLmlzLXByaW1hcnkge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29sb3IoJ3ByaW1hcnknLCAkYm9yZGVyOiB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICAmLmlzLXNlY29uZGFyeSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb2xvcignc2Vjb25kYXJ5JywgJGJvcmRlcjogdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgJi5pcy1wb3NpdGl2ZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb2xvcigncG9zaXRpdmUnLCAkYm9yZGVyOiB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICAmLmlzLXdhcm5pbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29sb3IoJ3dhcm5pbmcnLCAkYm9yZGVyOiB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICAmLmlzLW5lZ2F0aXZlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNvbG9yKCduZWdhdGl2ZScsICRib3JkZXI6IHRydWUpO1xuICAgICAgICB9XG4gICAgICAgICYuaXMtY2xlYXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogaW5oZXJpdDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgICAgaGVpZ2h0OiBpbml0aWFsO1xuICAgICAgICAgICAgbWFyZ2luOiBpbml0aWFsO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGluaGVyaXQ7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAgICAgICAgICY6Zm9jdXMsICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi5pcy1naG9zdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGNvbG9yOiBjb2xvcihjb25maWcoJ2J1dHRvbi5jb2xvcicsICRkZWZhdWx0OiBjb25maWcoJ2lucHV0LmNvbG9yJywgJGRlZmF1bHQ6ICdhY3Rpb24nKSkpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4kTUVOREVMRUVWLUVMRU1FTlRTLUJVVFRPTlM6IHRydWU7XG4iLAoJCSIvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRk9STVNcbi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRtZW5kZWxlZXYtbGFiZWwtbWFyZ2luLWJvdHRvbTogc2l6ZSgxKTtcbiRtZW5kZWxlZXYtaW5wdXQtZWxlbWVudC1mb3JtLWNvbG9yOiBjb2xvcignYnJhbmQnKSAhZGVmYXVsdDtcblxuQGlmIG5vdCBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKE1FTkRFTEVFVi1FTEVNRU5UUy1GT1JNUykge1xuXG4gICAgLy8gMS0zLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2Vyc1xuICAgIC8vIDQuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAgICBpbnB1dCxcbiAgICBvcHRncm91cCxcbiAgICBzZWxlY3Qge1xuICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4xNTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIC8vIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLlxuICAgIC8vIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC5cbiAgICBbdHlwZT1cImNoZWNrYm94XCJdLFxuICAgIFt0eXBlPVwicmFkaW9cIl0ge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIC8vIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAgICBbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgICBbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG5cbiAgICAvLyAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAgICAvLyAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAgICBbdHlwZT1cInNlYXJjaFwiXSB7XG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICAgICAgICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgICB9XG5cbiAgICAvLyBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gICAgW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgfVxuXG4gICAgLy8gMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAgICAvLyAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gICAgOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICAgICAgICBmb250OiBpbmhlcml0O1xuICAgIH1cblxuICAgIGlucHV0W3R5cGU9J2VtYWlsJ10sXG4gICAgaW5wdXRbdHlwZT0nbnVtYmVyJ10sXG4gICAgaW5wdXRbdHlwZT0ncGFzc3dvcmQnXSxcbiAgICBpbnB1dFt0eXBlPSdzZWFyY2gnXSxcbiAgICBpbnB1dFt0eXBlPSd0ZWwnXSxcbiAgICBpbnB1dFt0eXBlPSd0ZXh0J10sXG4gICAgaW5wdXRbdHlwZT0ndXJsJ10sXG4gICAgaW5wdXRbdHlwZT0nY29sb3InXSxcbiAgICBpbnB1dFt0eXBlPSdkYXRlJ10sXG4gICAgaW5wdXRbdHlwZT0nbW9udGgnXSxcbiAgICBpbnB1dFt0eXBlPSd3ZWVrJ10sXG4gICAgaW5wdXRbdHlwZT0nZGF0ZXRpbWUnXSxcbiAgICBpbnB1dFt0eXBlPSdkYXRldGltZS1sb2NhbCddLFxuICAgIGlucHV0Om5vdChbdHlwZV0pLFxuICAgIHRleHRhcmVhLFxuICAgIHNlbGVjdCB7XG4gICAgICAgIEBleHRlbmQgJW1lbmRlbGVldi1pbnB1dDtcblxuICAgICAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7XG4gICAgICAgIH1cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAkX2NvbG9yOiBhZGp1c3QtY29sb3IoJG1lbmRlbGVldi1pbnB1dC1lbGVtZW50LWZvcm0tY29sb3IsICRhbHBoYTogMC41KTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwLjVyZW0gMnB4IHJnYmEoMCwgMCwgMCwgMC4wOCksIDAgMCAwIDJweCAjeyRfY29sb3J9O1xuICAgICAgICAgICAgZmlsdGVyOiBub25lO1xuICAgICAgICAgICAgb3V0bGluZTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICVtZW5kZWxlZXYtaW5wdXQge1xuICAgICAgICBAaW5jbHVkZSBvcHRpb25zKGNvbmZpZygnaW5wdXQnKSk7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgICAgICBoZWlnaHQ6IHNpemUoMS43NSk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBjb25maWcoJ3R5cG9ncmFwaHkubGVhZCcpO1xuICAgICAgICBtYXJnaW46IHNpemUoMC4yNSkgMCAkbWVuZGVsZWV2LWxhYmVsLW1hcmdpbi1ib3R0b20gMDtcbiAgICAgICAgcGFkZGluZzogMCBzaXplKDAuNzUpO1xuXG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT0nY29sb3InXSB7XG4gICAgICAgIHBhZGRpbmc6IHNpemUoMC4yNSkgc2l6ZSgwLjc1KTtcbiAgICB9XG5cbiAgICBpbnB1dFt0eXBlPSdkYXRlJ10sXG4gICAgaW5wdXRbdHlwZT0nbW9udGgnXSxcbiAgICBpbnB1dFt0eXBlPSd3ZWVrJ10sXG4gICAgaW5wdXRbdHlwZT0nZGF0ZXRpbWUtbG9jYWwnXSxcbiAgICB0ZXh0YXJlYSB7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tcmVtUHgpO1xuICAgIH1cblxuICAgIGlucHV0W3R5cGU9J2NoZWNrYm94J10sXG4gICAgaW5wdXRbdHlwZT0ncmFkaW8nXSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxZW07XG4gICAgfVxuXG4gICAgJF9zdHlsZS1jb250cm9sczogdHJ1ZTtcbiAgICBAaWYgJF9zdHlsZS1jb250cm9scyB7XG4gICAgICAgICRjb2xvcjogJG1lbmRlbGVldi1pbnB1dC1lbGVtZW50LWZvcm0tY29sb3I7XG4gICAgICAgICRjb2xvci1kYXJrOiBtaXgoJGNvbG9yLCBjb2xvcignYmxhY2snKSwgNzUlKTtcbiAgICAgICAgJGNvbG9yLWxpZ2h0OiBhZGp1c3QtY29sb3IobWl4KCRjb2xvciwgY29sb3IoJ3doaXRlJyksIDc1JSksICRzYXR1cmF0aW9uOiAtNTAlKTtcbiAgICAgICAgJHNpemU6IDFlbTtcbiAgICAgICAgJGNoZWNrLW1hcmstd2lkdGg6IDAuMmVtO1xuXG4gICAgICAgIC8vIEhpZGUgY29udHJvbHNcbiAgICAgICAgaW5wdXRbdHlwZT0nY2hlY2tib3gnXSxcbiAgICAgICAgaW5wdXRbdHlwZT0ncmFkaW8nXSB7XG4gICAgICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS41KTtcbiAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBEZWZhdWx0IGlucHV0IGJ1dHRvbiBzdHlsZXNcbiAgICAgICAgaW5wdXRbdHlwZT0nY2hlY2tib3gnXTo6YWZ0ZXIsXG4gICAgICAgIGlucHV0W3R5cGU9J3JhZGlvJ106OmFmdGVyIHtcbiAgICAgICAgICAgIC8vIERpc3BsYXlcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgIC8vIFNpemluZ1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIHdpZHRoOiAkc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJHNpemU7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgIC8vIENvbG9yXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAoJHNpemUgLyAyKSByZ2JhKDAsIDAsIDAsIDAuMSksIGluc2V0IDAgMCAwIDFweCByZ2JhKDAsIDAsIDAsIDAuMjApO1xuICAgICAgICAgICAgb3V0bGluZS1jb2xvcjogJGNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgaW5wdXRbdHlwZT0nY2hlY2tib3gnXTo6YWZ0ZXIge1xuICAgICAgICAgICAgYm90dG9tOiAwLjllbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjE1ZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlucHV0W3R5cGU9J2NoZWNrYm94J106OmJlZm9yZSB7XG4gICAgICAgICAgICAvLyBEaXNwbGF5XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB6LWluZGV4OiAyO1xuXG4gICAgICAgICAgICAvLyBCb3JkZXJcbiAgICAgICAgICAgIGJvcmRlcjogc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItd2lkdGg6IDAgJGNoZWNrLW1hcmstd2lkdGggJGNoZWNrLW1hcmstd2lkdGggMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcblxuICAgICAgICAgICAgLy8gUG9zaXRpb25cbiAgICAgICAgICAgIHdpZHRoOiAwLjRlbTtcbiAgICAgICAgICAgIGhlaWdodDogMC43ZW07XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICByaWdodDogLTAuMmVtO1xuICAgICAgICAgICAgYm90dG9tOiAwLjFlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlucHV0W3R5cGU9J3JhZGlvJ106OmFmdGVyIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgIGJvdHRvbTogMC4yNWVtO1xuICAgICAgICAgICAgcmlnaHQ6IDAuMWVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ2hlY2tlZCBzdGF0ZVxuICAgICAgICBpbnB1dFt0eXBlPSdjaGVja2JveCddOmNoZWNrZWQ6OmJlZm9yZSB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHdoaXRlO1xuICAgICAgICB9XG4gICAgICAgIGlucHV0W3R5cGU9J2NoZWNrYm94J106Y2hlY2tlZDo6YWZ0ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwbXM7XG4gICAgICAgIH1cbiAgICAgICAgaW5wdXRbdHlwZT0ncmFkaW8nXTpjaGVja2VkOjphZnRlciB7XG4gICAgICAgICAgICBib3JkZXI6ICgkc2l6ZSAvIDMpIHNvbGlkICRjb2xvcjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBIb3ZlciBlZmZlY3RcbiAgICAgICAgaW5wdXRbdHlwZT0nY2hlY2tib3gnXTpob3Zlcjpub3QoOmRpc2FibGVkKTo6YWZ0ZXIsXG4gICAgICAgIGlucHV0W3R5cGU9J3JhZGlvJ106aG92ZXI6bm90KDpkaXNhYmxlZCk6OmFmdGVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDaGVja2VkIGhvdmVyIGVmZmVjdFxuICAgICAgICBpbnB1dFt0eXBlPSdjaGVja2JveCddOmNoZWNrZWQ6aG92ZXI6bm90KDpkaXNhYmxlZCk6OmFmdGVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1kYXJrO1xuICAgICAgICB9XG4gICAgICAgIGlucHV0W3R5cGU9J3JhZGlvJ106Y2hlY2tlZDpob3Zlcjpub3QoOmRpc2FibGVkKTo6YWZ0ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvci1kYXJrO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRGlzYWJsZWRcbiAgICAgICAgaW5wdXRbdHlwZT0ncmFkaW8nXTpkaXNhYmxlZDo6YWZ0ZXIge1xuICAgICAgICAgICAgZmlsdGVyOiBicmlnaHRuZXNzKDExMCUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ2hlY2tlZCBhbmQgZGlzYWJsZWRcbiAgICAgICAgaW5wdXRbdHlwZT0nY2hlY2tib3gnXTpjaGVja2VkOmRpc2FibGVkOjphZnRlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItbGlnaHQ7XG4gICAgICAgIH1cbiAgICAgICAgaW5wdXRbdHlwZT0ncmFkaW8nXTpjaGVja2VkOmRpc2FibGVkOjphZnRlciB7XG4gICAgICAgICAgICBib3JkZXI6ICgkc2l6ZSAvIDMpIHNvbGlkIG1peCh3aGl0ZSwgZ3JheXNjYWxlKCRjb2xvciksIDUwJSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZWxlY3Qge1xuICAgICAgICAvLyBiYWNrZ3JvdW5kOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGhlaWdodD1cIjE0XCIgdmlld0JveD1cIjAgMCAyOSAxNFwiIHdpZHRoPVwiMjlcIj48cGF0aCBmaWxsPVwiJTIzZDFkMWQxXCIgZD1cIk05LjM3NzI3IDMuNjI1bDUuMDgxNTQgNi45MzUyM0wxOS41NDAzNiAzLjYyNVwiLz48L3N2Zz4nKSBjZW50ZXIgcmlnaHQgbm8tcmVwZWF0O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAzcmVtO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgLy9iYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGhlaWdodD1cIjE0XCIgdmlld0JveD1cIjAgMCAyOSAxNFwiIHdpZHRoPVwiMjlcIj48cGF0aCBmaWxsPVwiJTIzOWI0ZGNhXCIgZD1cIk05LjM3NzI3IDMuNjI1bDUuMDgxNTQgNi45MzUyM0wxOS41NDAzNiAzLjYyNVwiLz48L3N2Zz4nKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIDEuIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgMTArLlxuICAgIHRleHRhcmVhIHtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIHBhZGRpbmc6IHNpemUoMC41KSBzaXplKDAuNzUpO1xuICAgICAgICBtaW4taGVpZ2h0OiBzaXplKDUpO1xuICAgIH1cblxuICAgIC8vIDEtMy4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAgICAvLyA0LiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gICAgLy8gNS4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICAgIC8vICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gICAgbGVnZW5kIHtcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgIG1heC13aWR0aDogMzByZW07IC8vICgxMDAlIGluIG5vcm1hbGl6ZS5jc3MpXG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICB9XG5cbiAgICBsYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkbWVuZGVsZWV2LWxhYmVsLW1hcmdpbi1ib3R0b207XG4gICAgfVxuXG4gICAgbGFiZWwgKyAlbWVuZGVsZWV2LWlucHV0IHtcbiAgICAgICAgbWFyZ2luLXRvcDogc2l6ZSgwLjI1KSAtICRtZW5kZWxlZXYtbGFiZWwtbWFyZ2luLWJvdHRvbTtcbiAgICB9XG5cbiAgICAlbWVuZGVsZWV2LWlucHV0ICsgbGVnZW5kLFxuICAgIGxhYmVsICsgbGVnZW5kIHtcbiAgICAgICAgbWFyZ2luLXRvcDogc2l6ZSgwLjI1KSAtICRtZW5kZWxlZXYtbGFiZWwtbWFyZ2luLWJvdHRvbTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogc2l6ZSgxKTtcbiAgICB9XG5cbiAgICAvLyBDb3JyZWN0IHRoZSBwYWRkaW5nIGluIEZpcmVmb3guXG4gICAgZmllbGRzZXQge1xuICAgICAgICAvL2JvcmRlci13aWR0aDogMDtcbiAgICAgICAgcGFkZGluZzogMDsgLy8gKDAuMzVlbSAwLjc1ZW0gMC42MjVlbSBpbiBub3JtYWxpemUuY3NzKVxuICAgIH1cblxuICAgIC8vIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gICAgcHJvZ3Jlc3Mge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgfVxuXG4gICAgLmxhYmVsLWlubGluZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICB9XG59XG5cbiRNRU5ERUxFRVYtRUxFTUVOVFMtRk9STVM6IHRydWU7XG4iLAoJCSJAaWYgbm90IHZhcmlhYmxlLWV4aXN0cyhtZW5kZWxlZXYtcHJlbHVkZS1sb2FkZWQpIHtcbiAgICBAZXJyb3IgJ0Nhbm5vdCBsb2FkIGVsZW1lbnRzIHdpdGhvdXQgaW1wb3J0aW5nIHByZWx1ZGUgZmlyc3QuJztcbn1cblxuQGluY2x1ZGUgbWVuZGVsZWV2LXJlZ2lzdGVyLXV0aWxpdGllcztcbiIsCgkJIi5sZHMtcmluZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogODBweDtcbiAgaGVpZ2h0OiA4MHB4O1xufVxuLmxkcy1yaW5nIGRpdiB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiA2NHB4O1xuICBoZWlnaHQ6IDY0cHg7XG4gIG1hcmdpbjogOHB4O1xuICBib3JkZXI6IDhweCBzb2xpZCAjZmZmO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGFuaW1hdGlvbjogbGRzLXJpbmcgMS4ycyBjdWJpYy1iZXppZXIoMC41LCAwLCAwLjUsIDEpIGluZmluaXRlO1xuICBib3JkZXItY29sb3I6ICMzMEJGRDMgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG59XG4ubGRzLXJpbmcgZGl2Om50aC1jaGlsZCgxKSB7XG4gIGFuaW1hdGlvbi1kZWxheTogLTAuNDVzO1xufVxuLmxkcy1yaW5nIGRpdjpudGgtY2hpbGQoMikge1xuICBhbmltYXRpb24tZGVsYXk6IC0wLjNzO1xufVxuLmxkcy1yaW5nIGRpdjpudGgtY2hpbGQoMykge1xuICBhbmltYXRpb24tZGVsYXk6IC0wLjE1cztcbn1cbkBrZXlmcmFtZXMgbGRzLXJpbmcge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufSIKCV0sCgkibmFtZXMiOiBbXSwKCSJtYXBwaW5ncyI6ICJDeUNpQkssQUFBRCxJQUFLLENBQUM7RUFFRSxNQUFPLENBQUUsSUFBQztFQUFWLE1BQU8sQ0FBRSx5QkFBQztFQUFWLE9BQU8sQ0FBRSxLQUFDO0VBQVYsV0FBTyxDQUFFLFdBQUMsR0FFakI7O0FBSUQsQUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDO0V2Q1pqQixVQUFRLEVBQUMsVUFBQztFQUNWLFVBQVEsRUFBRSxnQkFBOEI7RXVDZ0JwQyxVQUFVLEVBQ04sR0FBRyxDekI4RkMsS0FBSyxDQUNFLElBQUksRXlCOUZmLFNB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 */