ol,
ul {
  list-style: none;
}
a img {
  border: none;
}
html {
  box-sizing: border-box;
}
*,
*:before,
*:after {
  box-sizing: inherit;
}
img,
video,
iframe {
  max-width: 100%;
  height: auto;
  border: 0;
  -ms-interpolation-mode: bicubic;
  display: block;
}
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-weight: inherit;
  font-style: inherit;
  font-family: inherit;
  font-size: 100%;
  vertical-align: baseline;
}
html {
  font-family: sans-serif;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}
body {
  margin: 0;
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
summary {
  display: block;
}
audio,
canvas,
progress,
video {
  display: inline-block;
  vertical-align: baseline;
}
audio:not([controls]) {
  display: none;
  height: 0;
}
[hidden],
template {
  display: none;
}
a {
  background: transparent;
}
a:active,
a:hover {
  outline: 0;
}
abbr[title] {
  border-bottom: 1px dotted;
}
b,
strong {
  font-weight: bold;
}
dfn {
  font-style: italic;
}
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}
mark {
  background: #ff0;
  color: #000;
}
small {
  font-size: 80%;
}
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sup {
  top: -0.5em;
}
sub {
  bottom: -0.25em;
}
img {
  border: 0;
}
svg:not(:root) {
  overflow: hidden;
}
figure {
  margin: 1em 40px;
}
hr {
  box-sizing: content-box;
  height: 0;
}
pre {
  overflow: auto;
}
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}
button,
input,
optgroup,
select,
textarea {
  color: inherit;
  font: inherit;
  margin: 0;
}
button {
  overflow: visible;
}
button,
select {
  text-transform: none;
}
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  cursor: pointer;
}
button[disabled],
html input[disabled] {
  cursor: default;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0;
}
input {
  line-height: normal;
}
input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  padding: 0;
}
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  height: auto;
}
input[type="search"] {
  -webkit-appearance: textfield;
  box-sizing: content-box;
}
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
}
legend {
  border: 0;
  padding: 0;
}
textarea {
  overflow: auto;
}
optgroup {
  font-weight: bold;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
td,
th {
  padding: 0;
}
@media print {
  body {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 14pt;
    line-height: 1.45;
    font-family: Garamond, "Times New Roman", serif;
    color: #000;
    background: none;
  }
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    page-break-after: avoid;
    font-family: "Helvetica", Arial, sans-serif;
  }
  h1 {
    font-size: 36pt;
    line-height: 1.25em;
  }
  h2 {
    font-size: 24pt;
    line-height: 1.25em;
  }
  h3 {
    font-size: 18pt;
    line-height: 1.25em;
  }
  h4,
  h5,
  h6 {
    font-size: 14pt;
    line-height: 1.25em;
  }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3;
  }
  code {
    font: 12pt Courier, $monospace;
  }
  blockquote {
    margin: 1.2em;
    padding: 1em;
    font-size: 24pt;
    line-height: 1.45833333em;
    font-style: italic;
  }
  hr {
    background-color: #ccc;
  }
  img {
    float: left;
    margin: 1em 1.5em 1.5em 0;
    max-width: 100% !important;
  }
  a img {
    border: none;
  }
  a:link,
  a:visited {
    background: transparent;
    font-weight: 700;
    text-decoration: underline;
    color: #333;
  }
  a:link[href^="http://"]:after,
  a[href^="http://"]:visited:after {
    content: " (" attr(href) ") ";
    font-size: 90%;
  }
  abbr[title]:after {
    content: " (" attr(title) ")";
  }
  a[href^="http://"] {
    color: #000;
  }
  a[href$=".jpg"]:after,
  a[href$=".jpeg"]:after,
  a[href$=".gif"]:after,
  a[href$=".png"]:after {
    content: " (" attr(href) ") ";
    display: none;
  }
  a[href^="#"]:after,
  a[href^="javascript:"]:after {
    content: "";
  }
  table {
    margin: 1px;
    text-align: left;
  }
  th {
    border-bottom: 1px solid #333;
    font-weight: bold;
  }
  td {
    border-bottom: 1px solid #333;
  }
  th,
  td {
    padding: 4px 10px 4px 0;
  }
  tfoot {
    font-style: italic;
  }
  caption {
    background: #fff;
    margin-bottom: 2em;
    text-align: left;
  }
  thead {
    display: table-header-group;
  }
  img,
  tr {
    page-break-inside: avoid;
  }
}
html {
  font-family: Ubuntu, 'Helvetica Neue', 'Helvetica', 'Arial', 'sans-serif';
  font-weight: 400;
  color: #666;
  font-size: 1rem;
  line-height: 1.75em;
}
@media (min-width: 37.5rem) {
  html {
    font-size: -webkit-calc( 1rem + (1.125 - 1) * ((100vw - 37.5rem) / (75 - 37.5)) );
    font-size: calc( 1rem + (1.125 - 1) * ((100vw - 37.5rem) / (75 - 37.5)) );
  }
}
@media (min-width: 75rem) {
  html {
    font-size: 1.125rem;
  }
}
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td {
  margin: 0;
  padding: 0;
}
p,
blockquote,
pre,
address,
dl,
ol,
ul,
table {
  margin-bottom: 1.75em;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: Ubuntu, 'Helvetica Neue', 'Helvetica', 'Arial', 'sans-serif';
  font-weight: 500;
  color: #111;
  clear: both;
}
h1 {
  font-size: 2.321199162695051rem;
  margin-top: 0.942400822452556em;
  line-height: 1.130880986943067em;
  margin-bottom: 0.188480164490511em;
}
@media (min-width: 37.5rem) {
  h1 {
    font-size: -webkit-calc( 2.321199162695051rem + (2.611349058031932 - 2.321199162695051) * ((100vw - 37.5rem) / (75 - 37.5)) );
    font-size: calc( 2.321199162695051rem + (2.611349058031932 - 2.321199162695051) * ((100vw - 37.5rem) / (75 - 37.5)) );
  }
}
@media (min-width: 75rem) {
  h1 {
    font-size: 2.611349058031932rem;
    margin-top: 0.942400822452556em;
    line-height: 1.130880986943067em;
    margin-bottom: 0.188480164490511em;
  }
}
h2 {
  font-size: 1.96141695071709rem;
  margin-top: 1.115265165420465em;
  line-height: 1.338318198504558em;
  margin-bottom: 0.564214099836186em;
}
@media (min-width: 37.5rem) {
  h2 {
    font-size: -webkit-calc( 1.96141695071709rem + (2.206594069556727 - 1.96141695071709) * ((100vw - 37.5rem) / (75 - 37.5)) );
    font-size: calc( 1.96141695071709rem + (2.206594069556727 - 1.96141695071709) * ((100vw - 37.5rem) / (75 - 37.5)) );
  }
}
@media (min-width: 75rem) {
  h2 {
    font-size: 2.206594069556727rem;
    margin-top: 1.115265165420465em;
    line-height: 1.338318198504558em;
    margin-bottom: 0.526307314641509em;
  }
}
h3 {
  font-size: 1.657400414574315rem;
  margin-top: 1.319837970815179em;
  line-height: 1.583805564978215em;
  margin-bottom: 0.741765702287981em;
}
@media (min-width: 37.5rem) {
  h3 {
    font-size: -webkit-calc( 1.657400414574315rem + (1.864575466396104 - 1.657400414574315) * ((100vw - 37.5rem) / (75 - 37.5)) );
    font-size: calc( 1.657400414574315rem + (1.864575466396104 - 1.657400414574315) * ((100vw - 37.5rem) / (75 - 37.5)) );
  }
}
@media (min-width: 75rem) {
  h3 {
    font-size: 1.864575466396104rem;
    margin-top: 1.319837970815179em;
    line-height: 1.583805564978215em;
    margin-bottom: 0.688677023607432em;
  }
}
h4 {
  font-size: 1.400505962399693rem;
  margin-top: 1.561935513828041em;
  line-height: 1.87432261659365em;
  margin-bottom: 0.981546202017887em;
}
@media (min-width: 37.5rem) {
  h4 {
    font-size: -webkit-calc( 1.400505962399693rem + (1.575569207699655 - 1.400505962399693) * ((100vw - 37.5rem) / (75 - 37.5)) );
    font-size: calc( 1.400505962399693rem + (1.575569207699655 - 1.400505962399693) * ((100vw - 37.5rem) / (75 - 37.5)) );
  }
}
@media (min-width: 75rem) {
  h4 {
    font-size: 1.575569207699655rem;
    margin-top: 1.561935513828041em;
    line-height: 1.87432261659365em;
    margin-bottom: 0.907195190989856em;
  }
}
h5 {
  font-size: 1.183429745443173rem;
  margin-top: 1.848440947528171em;
  line-height: 2.218129137033805em;
  margin-bottom: 0.369688189505634em;
}
@media (min-width: 37.5rem) {
  h5 {
    font-size: -webkit-calc( 1.183429745443173rem + (1.331358463623569 - 1.183429745443173) * ((100vw - 37.5rem) / (75 - 37.5)) );
    font-size: calc( 1.183429745443173rem + (1.331358463623569 - 1.183429745443173) * ((100vw - 37.5rem) / (75 - 37.5)) );
  }
}
@media (min-width: 75rem) {
  h5 {
    font-size: 1.331358463623569rem;
    margin-top: 1.848440947528171em;
    line-height: 2.218129137033805em;
    margin-bottom: 0.369688189505634em;
  }
}
h6 {
  font-size: 1rem;
  margin-top: 2.1875em;
  line-height: 2.625em;
  margin-bottom: 2.625em;
}
@media (min-width: 37.5rem) {
  h6 {
    font-size: -webkit-calc( 1rem + (1.125 - 1) * ((100vw - 37.5rem) / (75 - 37.5)) );
    font-size: calc( 1rem + (1.125 - 1) * ((100vw - 37.5rem) / (75 - 37.5)) );
  }
}
@media (min-width: 75rem) {
  h6 {
    font-size: 1.125rem;
    margin-top: 2.1875em;
    line-height: 2.625em;
    margin-bottom: 0.875em;
  }
}
blockquote {
  font-style: italic;
}
blockquote cite {
  display: block;
  font-style: normal;
}
pre {
  padding: 0.875em;
  margin-bottom: 1.75em;
}
pre code {
  padding: 0;
}
code {
  font-family: 'Courier New', 'Courier', 'Lucida Sans Typewriter', 'Lucida Typewriter', 'monospace';
  padding: 0.0875em 0.2625em;
  line-height: 0;
}
big,
small,
sub,
sup {
  line-height: 0;
}
abbr,
acronym {
  border-bottom: 1px dotted currentColor;
  cursor: help;
}
address {
  font-style: normal;
}
dt {
  color: #111;
  font-weight: bold;
}
ul {
  padding-left: 1.1em;
}
ol {
  padding-left: 1.4em;
}
fieldset {
  padding: 0.875em 1.75em 1.75em;
  border-width: 1px;
  border-style: solid;
  max-width: 100%;
  margin-bottom: 3.305555555555555em;
}
@media (min-width: 75rem) {
  fieldset {
    margin-bottom: 0.243055555555556em;
  }
}
fieldset button,
fieldset input[type="submit"] {
  margin-bottom: 0;
}
legend {
  color: #111;
  font-weight: bold;
}
label {
  display: block;
  padding-bottom: 0.21875em;
  margin-bottom: 3.451388888888889em;
}
input[type="text"],
input[type="email"],
input[type="password"],
textarea {
  display: block;
  max-width: 100%;
  padding: 0.4375em;
  font-size: 1rem;
  margin-bottom: 6.319444444444445em;
}
@media (min-width: 37.5rem) {
  input[type="text"],
  input[type="email"],
  input[type="password"],
  textarea {
    font-size: -webkit-calc( 1rem + (1.125 - 1) * ((100vw - 37.5rem) / (75 - 37.5)) );
    font-size: calc( 1rem + (1.125 - 1) * ((100vw - 37.5rem) / (75 - 37.5)) );
  }
}
@media (min-width: 75rem) {
  input[type="text"],
  input[type="email"],
  input[type="password"],
  textarea {
    font-size: 1.125rem;
    margin-bottom: 1.798611111111111em;
  }
}
input[type="submit"],
button {
  display: block;
  cursor: pointer;
  font-size: 1rem;
  padding: 0.4375em 1.75em;
  margin-bottom: -1.020833333333333em;
}
@media (min-width: 37.5rem) {
  input[type="submit"],
  button {
    font-size: -webkit-calc( 1rem + (1.125 - 1) * ((100vw - 37.5rem) / (75 - 37.5)) );
    font-size: calc( 1rem + (1.125 - 1) * ((100vw - 37.5rem) / (75 - 37.5)) );
  }
}
@media (min-width: 75rem) {
  input[type="submit"],
  button {
    font-size: 1.125rem;
    margin-bottom: 1.3125em;
  }
}
table {
  width: 100%;
  border-spacing: 0;
  border-collapse: collapse;
  margin-bottom: 9.527777777777779em;
}
@media (min-width: 75rem) {
  table {
    margin-bottom: 7.194444444444444em;
  }
}
th {
  text-align: left;
  color: #111;
  padding: 0.21875em 0.875em;
}
@media (min-width: 75rem) {
  th {
    padding: 0.4375em 0.875em;
  }
}
td {
  padding: 0.21875em 0.875em;
}
@media (min-width: 75rem) {
  td {
    padding: 0.4375em 0.875em;
  }
}
.sacramento {
  font-family: Ubuntu, 'Helvetica Neue', 'Helvetica', 'Arial', 'sans-serif';
  font-weight: 500;
  color: #111;
  clear: both;
  font-family: 'Sacramento', 'Palatino', 'Palatino Linotype', 'Palatino LT STD', "Book Antiqua", 'Georgia', 'serif';
}
.mainHeading {
  *zoom: 1;
  width: auto;
  max-width: 1440px;
  float: none;
  display: block;
  margin-right: auto;
  margin-left: auto;
  padding-left: 0;
  padding-right: 0;
  text-align: center;
}
.mainHeading:before,
.mainHeading:after {
  content: '';
  display: table;
}
.mainHeading:after {
  clear: both;
}
.mainHeading h1 {
  font-size: 2.617925rem;
  margin-top: 0.618046875rem;
  margin-bottom: 1.618rem;
}
.representados-MainHeading {
  text-align: center;
  margin-bottom: 10px;
}
.rule {
  border: 0;
  border-bottom: 1px solid #dbdbdb;
  height: 0;
  padding: 0;
  margin: 1.5em 0;
}
.card {
  line-height: 1.55em;
}
main {
  padding: 20px;
}
.representados {
  *zoom: 1;
}
.representados:before,
.representados:after {
  content: '';
  display: table;
}
.representados:after {
  clear: both;
}
main {
  *zoom: 1;
  width: auto;
  max-width: 960px;
  float: none;
  display: block;
  margin-right: auto;
  margin-left: auto;
  padding-left: 2%;
  padding-right: 2%;
}
main:before,
main:after {
  content: '';
  display: table;
}
main:after {
  clear: both;
}
.mainFooter {
  background: #222;
  background: #082243 -webkit-linear-gradient(270deg, #222, #082243) repeat-x;
  background: #082243 linear-gradient(180deg, #222, #082243) repeat-x;
  padding: 25px;
  color: #fff;
}
.mainFooter svg {
  max-width: 100%;
}
.mainFooter p {
  margin-bottom: 0;
  line-height: 1.4;
}
.mainFooter-Ass {
  *zoom: 1;
  float: left;
  clear: none;
  text-align: inherit;
  width: 65.66666666666666%;
  margin-left: 0%;
  margin-right: 3%;
}
.mainFooter-Ass:before,
.mainFooter-Ass:after {
  content: '';
  display: table;
}
.mainFooter-Ass:after {
  clear: both;
}
.mainFooter-Ass:last-child {
  margin-right: 0%;
}
@media only screen and (min-width: 550px) and (max-width: 1200px) {
  .mainFooter-Ass {
    *zoom: 1;
    float: left;
    clear: none;
    text-align: inherit;
    width: 48.5%;
    margin-left: 0%;
    margin-right: 3%;
  }
  .mainFooter-Ass:before,
  .mainFooter-Ass:after {
    content: '';
    display: table;
  }
  .mainFooter-Ass:after {
    clear: both;
  }
  .mainFooter-Ass:last-child {
    margin-right: 0%;
  }
}
@media only screen and (min-width: 1200px) {
  .mainFooter-Ass {
    *zoom: 1;
    float: left;
    clear: none;
    text-align: inherit;
    width: 48.5%;
    margin-left: 0%;
    margin-right: 3%;
  }
  .mainFooter-Ass:before,
  .mainFooter-Ass:after {
    content: '';
    display: table;
  }
  .mainFooter-Ass:after {
    clear: both;
  }
  .mainFooter-Ass:last-child {
    margin-right: 0%;
  }
}
.center {
  *zoom: 1;
  width: auto;
  max-width: 960px;
  float: none;
  display: block;
  margin-right: auto;
  margin-left: auto;
  padding-left: 0;
  padding-right: 0;
  position: relative;
}
.center:before,
.center:after {
  content: '';
  display: table;
}
.center:after {
  clear: both;
}
.cf {
  *zoom: 1;
}
.cf:before,
.cf:after {
  content: '';
  display: table;
}
.cf:after {
  clear: both;
}
.card {
  display: block;
  clear: both;
  float: none;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 1.875rem;
}
.card:first-child {
  margin-left: auto;
}
.card:last-child {
  margin-right: auto;
}
.card:nth-last-child {
  margin-bottom: 0;
}
.card h1 {
  font-size: 1.657400414574315rem;
  margin-top: 1.319837970815179em;
  line-height: 1.583805564978215em;
  margin-bottom: 0.741765702287981em;
  margin: 10px 0 5px 0;
}
@media (min-width: 37.5rem) {
  .card h1 {
    font-size: -webkit-calc( 1.657400414574315rem + (1.864575466396104 - 1.657400414574315) * ((100vw - 37.5rem) / (75 - 37.5)) );
    font-size: calc( 1.657400414574315rem + (1.864575466396104 - 1.657400414574315) * ((100vw - 37.5rem) / (75 - 37.5)) );
  }
}
@media (min-width: 75rem) {
  .card h1 {
    font-size: 1.864575466396104rem;
    margin-top: 1.319837970815179em;
    line-height: 1.583805564978215em;
    margin-bottom: 0.688677023607432em;
  }
}
@media only screen and (min-width: 550px) and (max-width: 1200px) {
  .card {
    *zoom: 1;
    float: left;
    clear: none;
    text-align: inherit;
    width: 48.5%;
    margin-left: 0%;
    margin-right: 3%;
  }
  .card:before,
  .card:after {
    content: '';
    display: table;
  }
  .card:after {
    clear: both;
  }
  .card:nth-child(2n) {
    margin-right: 0%;
    float: right;
  }
  .card:nth-child(2n+1) {
    clear: both;
  }
}
@media only screen and (min-width: 1200px) {
  .card {
    *zoom: 1;
    float: left;
    clear: none;
    text-align: inherit;
    width: 31.33333333333333%;
    margin-left: 0%;
    margin-right: 3%;
  }
  .card:before,
  .card:after {
    content: '';
    display: table;
  }
  .card:after {
    clear: both;
  }
  .card:nth-child(3n) {
    margin-right: 0%;
    float: right;
  }
  .card:nth-child(3n+1) {
    clear: both;
  }
  .card h1 {
    font-size: 1.183429745443173rem;
    margin-top: 1.848440947528171em;
    line-height: 2.218129137033805em;
    margin-bottom: 0.369688189505634em;
    margin-top: 0.7072125rem !important;
  }
}
@media only screen and (min-width: 1200px) and (min-width: 37.5rem) {
  .card h1 {
    font-size: -webkit-calc( 1.183429745443173rem + (1.331358463623569 - 1.183429745443173) * ((100vw - 37.5rem) / (75 - 37.5)) );
    font-size: calc( 1.183429745443173rem + (1.331358463623569 - 1.183429745443173) * ((100vw - 37.5rem) / (75 - 37.5)) );
  }
}
@media only screen and (min-width: 1200px) and (min-width: 75rem) {
  .card h1 {
    font-size: 1.331358463623569rem;
    margin-top: 1.848440947528171em;
    line-height: 2.218129137033805em;
    margin-bottom: 0.369688189505634em;
  }
}
.mapa {
  display: block;
  clear: both;
  float: none;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  line-height: 1.5em;
}
.mapa:first-child {
  margin-left: auto;
}
.mapa:last-child {
  margin-right: auto;
}
@media only screen and (min-width: 550px) and (max-width: 1200px) {
  .mapa {
    *zoom: 1;
    float: left;
    clear: none;
    text-align: inherit;
    width: 48.5%;
    margin-left: 0%;
    margin-right: 3%;
  }
  .mapa:before,
  .mapa:after {
    content: '';
    display: table;
  }
  .mapa:after {
    clear: both;
  }
  .mapa:last-child {
    margin-right: 0%;
  }
}
@media only screen and (max-width: 700px) {
  .mapa {
    display: block;
    clear: both;
    float: none;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
  }
  .mapa:first-child {
    margin-left: auto;
  }
  .mapa:last-child {
    margin-right: auto;
  }
}
@media only screen and (min-width: 1200px) {
  .mapa {
    *zoom: 1;
    float: left;
    clear: none;
    text-align: inherit;
    width: 48.5%;
    margin-left: 0%;
    margin-right: 3%;
  }
  .mapa:before,
  .mapa:after {
    content: '';
    display: table;
  }
  .mapa:after {
    clear: both;
  }
  .mapa:last-child {
    margin-right: 0%;
  }
}
.mapa img {
  margin-bottom: 1em;
}
.wpcf7-form {
  display: block;
  clear: both;
  float: none;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}
.wpcf7-form:first-child {
  margin-left: auto;
}
.wpcf7-form:last-child {
  margin-right: auto;
}
@media only screen and (min-width: 550px) and (max-width: 1200px) {
  .wpcf7-form {
    *zoom: 1;
    float: left;
    clear: none;
    text-align: inherit;
    width: 48.5%;
    margin-left: 0%;
    margin-right: 3%;
  }
  .wpcf7-form:before,
  .wpcf7-form:after {
    content: '';
    display: table;
  }
  .wpcf7-form:after {
    clear: both;
  }
  .wpcf7-form:last-child {
    margin-right: 0%;
  }
}
@media only screen and (max-width: 700px) {
  .wpcf7-form {
    display: block;
    clear: both;
    float: none;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
  }
  .wpcf7-form:first-child {
    margin-left: auto;
  }
  .wpcf7-form:last-child {
    margin-right: auto;
  }
}
@media only screen and (min-width: 1200px) {
  .wpcf7-form {
    *zoom: 1;
    float: left;
    clear: none;
    text-align: inherit;
    width: 48.5%;
    margin-left: 0%;
    margin-right: 3%;
  }
  .wpcf7-form:before,
  .wpcf7-form:after {
    content: '';
    display: table;
  }
  .wpcf7-form:after {
    clear: both;
  }
  .wpcf7-form:last-child {
    margin-right: 0%;
  }
}
.wpcf7-form input,
.wpcf7-form textarea {
  box-shadow: inset 0 1px 1px rgba(0,0,0,0.1);
  -webkit-font-smoothing: antialiased;
  font-family: $font-stack;
  border: solid 1px #bbb;
  border-radius: 0.2em;
  outline: none;
  padding: 0.45em;
  background: #fff;
  color: #555;
  width: 250px;
  text-shadow: 0 0 1px rgba(255,255,255,0.1);
  -webkit-transition: all .3s ease;
          transition: all .3s ease;
  width: 100%;
  margin-bottom: 1em;
  border-radius: 0;
  border-color: #ff851b;
  background-color: #fafafa;
}
.wpcf7-form input:focus,
.wpcf7-form textarea:focus {
  box-shadow: 0 0 5px rgba(127,219,255,0.7);
  border: 1px solid #95d1e9;
  outline: none;
}
.wpcf7-form input[type="submit"] {
  font-size: 13px;
  padding: 10px 22px;
  border-radius: 3px;
  background-color: #0074d9;
  color: #fff;
  cursor: pointer;
  font-weight: bold;
  font-family: $font-stack;
  line-height: 1em;
  text-align: center;
  text-decoration: none;
  display: inline-block;
  border: none;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  border-radius: 0;
  background-color: #ff851b;
  float: right;
  width: 100px;
}
.wpcf7-form input[type="submit"]:hover,
.wpcf7-form input[type="submit"]:focus {
  background-color: #006ece;
  color: #f7f7f7;
  border: none;
}
.wpcf7-form input[type="submit"]:active {
  background-color: #0068c3;
}
.wpcf7-form input[type="submit"]:active {
  -webkit-transform: translateY(1px);
      -ms-transform: translateY(1px);
          transform: translateY(1px);
}
.wpcf7-form input[type="submit"]:hover {
  background-color: #f06f00;
}
.quemsomos {
  display: block;
  clear: both;
  float: none;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}
.quemsomos:first-child {
  margin-left: auto;
}
.quemsomos:last-child {
  margin-right: auto;
}
@media only screen and (min-width: 750px) {
  .quemsomos {
    *zoom: 1;
    float: left;
    clear: none;
    text-align: inherit;
    width: 65.66666666666666%;
    margin-left: 0%;
    margin-right: 3%;
  }
  .quemsomos:before,
  .quemsomos:after {
    content: '';
    display: table;
  }
  .quemsomos:after {
    clear: both;
  }
  .quemsomos:last-child {
    margin-right: 0%;
  }
}
@media only screen and (min-width: 1200px) {
  .quemsomos {
    *zoom: 1;
    float: left;
    clear: none;
    text-align: inherit;
    width: 65.66666666666666%;
    margin-left: 0%;
    margin-right: 3%;
  }
  .quemsomos:before,
  .quemsomos:after {
    content: '';
    display: table;
  }
  .quemsomos:after {
    clear: both;
  }
  .quemsomos:last-child {
    margin-right: 0%;
  }
}
.quemsomos .mainHeading {
  text-align: left;
}
.portfolio {
  display: block;
  clear: both;
  float: none;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}
.portfolio:first-child {
  margin-left: auto;
}
.portfolio:last-child {
  margin-right: auto;
}
.portfolio ul {
  margin: 5px 15px;
  margin: 0.32rem 0.94rem;
  padding-left: 1rem;
}
.portfolio ul li {
  list-style-type: disc;
  padding: 2px 0;
  padding: 0.125rem;
}
.portfolio ul li {
  line-height: 1.3;
}
@media only screen and (max-width: 750px) {
  .portfolio ul li {
    *zoom: 1;
    float: left;
    clear: none;
    text-align: inherit;
    width: 48.5%;
    margin-left: 0%;
    margin-right: 3%;
  }
  .portfolio ul li:before,
  .portfolio ul li:after {
    content: '';
    display: table;
  }
  .portfolio ul li:after {
    clear: both;
  }
  .portfolio ul li:nth-child(2n) {
    margin-right: 0%;
    float: right;
  }
  .portfolio ul li:nth-child(2n+1) {
    clear: both;
  }
}
@media only screen and (min-width: 750px) {
  .portfolio {
    *zoom: 1;
    float: left;
    clear: none;
    text-align: inherit;
    width: 31.33333333333333%;
    margin-left: 0%;
    margin-right: 3%;
  }
  .portfolio:before,
  .portfolio:after {
    content: '';
    display: table;
  }
  .portfolio:after {
    clear: both;
  }
  .portfolio:last-child {
    margin-right: 0%;
  }
}
@media only screen and (min-width: 1200px) {
  .portfolio {
    *zoom: 1;
    float: left;
    clear: none;
    text-align: inherit;
    width: 31.33333333333333%;
    margin-left: 0%;
    margin-right: 3%;
  }
  .portfolio:before,
  .portfolio:after {
    content: '';
    display: table;
  }
  .portfolio:after {
    clear: both;
  }
  .portfolio:last-child {
    margin-right: 0%;
  }
}
.portfolio .mainHeading {
  text-align: left;
}
a {
  text-decoration: none;
}
.st-wrapper {
  width: 100%;
  overflow: hidden;
}
.isShowingNav .push-wrap {
  -webkit-transform: translate(-220px, 0);
      -ms-transform: translate(-220px, 0);
          transform: translate(-220px, 0);
  -webkit-transform: translate3d(-220px, 0, 0);
          transform: translate3d(-220px, 0, 0);
}
.isShowingNav .mobileNav {
  display: block;
}
.isHidingNav .mobileNav {
  display: block;
}
.push-wrap {
  width: 100%;
  -webkit-transform: translate(0, 0);
      -ms-transform: translate(0, 0);
          transform: translate(0, 0);
  -webkit-transform: translate3d(0, 0, 0);
          transform: translate3d(0, 0, 0);
  -webkit-transition: 0.5s ease all;
          transition: 0.5s ease all;
  background: #fff;
}
.mobileNav {
  width: 220px;
  height: 100%;
  position: fixed;
  top: 0;
  right: 0;
  background: #428bca;
  padding: 15px;
  background: #2b343f;
  text-align: center;
  box-shadow: inset -1.5em 0 1.5em -0.75em rgba(0,0,0,0.5);
  -webkit-transition: 0.4s ease all;
          transition: 0.4s ease all;
  display: none;
  -webkit-transition: 0.4s ease all;
          transition: 0.4s ease all;
}
.mobileNav ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.mobileNav ul li a {
  display: block;
  text-decoration: none !important;
  height: 60px;
  line-height: 60px;
  font-size: 18px;
  color: #fff;
}
.mobileNav ul li a:hover {
  background: #4effff;
  color: #000;
}
.mobileNav ul li a.active {
  border-bottom: 2px solid #4effff;
}
@media only screen and (min-width: 700px) {
  .mobileNav {
    display: none;
  }
}
@media only screen and (min-width: 1200px) {
  .mobileNav {
    display: none;
  }
}
.mainHeader {
  background: #222;
  background: #082243 -webkit-linear-gradient(270deg, #222, #082243) repeat-x;
  background: #082243 linear-gradient(180deg, #222, #082243) repeat-x;
}
.mainHeader-Container {
  *zoom: 1;
  padding: 15px 10px;
}
.mainHeader-Container:before,
.mainHeader-Container:after {
  content: '';
  display: table;
}
.mainHeader-Container:after {
  clear: both;
}
.mainHeader-logo {
  *zoom: 1;
  float: left;
  clear: none;
  text-align: inherit;
  width: 80%;
  margin-left: 0%;
  margin-right: 0%;
}
.mainHeader-logo:before,
.mainHeader-logo:after {
  content: '';
  display: table;
}
.mainHeader-logo:after {
  clear: both;
}
.mainHeader-logo svg {
  width: 100%;
}
@media only screen and (min-width: 700px) {
  .mainHeader-logo {
    *zoom: 1;
    float: left;
    clear: none;
    text-align: inherit;
    width: 100%;
    margin-left: 0%;
    margin-right: 0%;
    padding: 0 4%;
  }
  .mainHeader-logo:before,
  .mainHeader-logo:after {
    content: '';
    display: table;
  }
  .mainHeader-logo:after {
    clear: both;
  }
}
@media only screen and (min-width: 1200px) {
  .mainHeader-logo {
    *zoom: 1;
    float: left;
    clear: none;
    text-align: inherit;
    width: 100%;
    margin-left: 0%;
    margin-right: 0%;
  }
  .mainHeader-logo:before,
  .mainHeader-logo:after {
    content: '';
    display: table;
  }
  .mainHeader-logo:after {
    clear: both;
  }
}
.mainHeader-trigger {
  *zoom: 1;
  float: left;
  clear: none;
  text-align: inherit;
  width: 20%;
  margin-left: 0%;
  margin-right: 0%;
  vertical-align: middle;
  cursor: pointer;
  color: #fff;
  font-size: 44px;
  text-align: center;
  margin-top: 5px;
  -webkit-tap-highlight-color: rgba(0,0,0,0);
  -webkit-tap-highlight-color: transparent;
  -ms-touch-action: manipulation;
      touch-action: manipulation;
}
.mainHeader-trigger:before,
.mainHeader-trigger:after {
  content: '';
  display: table;
}
.mainHeader-trigger:after {
  clear: both;
}
@media only screen and (min-width: 700px) {
  .mainHeader-trigger {
    display: none;
  }
}
@media only screen and (min-width: 1200px) {
  .mainHeader-trigger {
    display: none;
  }
}
.mainHeader-mainNavi {
  display: none;
}
@media only screen and (min-width: 700px) {
  .mainHeader-mainNavi {
    display: block;
  }
}
@media only screen and (min-width: 1200px) {
  .mainHeader-mainNavi {
    display: block;
  }
}
.mainHeader-mainNavi ul li {
  *zoom: 1;
  float: left;
  clear: none;
  text-align: inherit;
  width: 17.6%;
  margin-left: 0%;
  margin-right: 3%;
  text-align: center;
}
.mainHeader-mainNavi ul li:before,
.mainHeader-mainNavi ul li:after {
  content: '';
  display: table;
}
.mainHeader-mainNavi ul li:after {
  clear: both;
}
.mainHeader-mainNavi ul li:last-child {
  margin-right: 0%;
}
.mainHeader-mainNavi ul li a {
  display: block;
  color: #fff;
  height: 40px;
  line-height: 40px;
}
.mainHeader-mainNavi ul li a.active {
  border-bottom: 2px solid #4effff;
}
.mainHeader-mainNavi ul li a:hover {
  background: #4effff;
  color: #000;
}
.mainNavi-Container {
  *zoom: 1;
  width: auto;
  max-width: 800px;
  float: none;
  display: block;
  margin-right: auto;
  margin-left: auto;
  padding-left: 0;
  padding-right: 0;
  *zoom: 1;
  padding: 0.7072125rem 0;
}
.mainNavi-Container:before,
.mainNavi-Container:after {
  content: '';
  display: table;
}
.mainNavi-Container:after {
  clear: both;
}
.mainNavi-Container:before,
.mainNavi-Container:after {
  content: '';
  display: table;
}
.mainNavi-Container:after {
  clear: both;
}
a {
  -webkit-transition: all 300ms ease;
          transition: all 300ms ease;
}
.carrousel .item img {
  display: block;
  width: 100%;
  height: auto;
}
.owl-carousel .owl-wrapper:after {
  content: ".";
  display: block;
  clear: both;
  visibility: hidden;
  line-height: 0;
  height: 0;
}
.owl-carousel {
  display: none;
  position: relative;
  width: 100%;
  -ms-touch-action: pan-y;
}
.owl-carousel .owl-wrapper {
  display: none;
  position: relative;
  -webkit-transform: translate3d(0px, 0px, 0px);
}
.owl-carousel .owl-wrapper-outer {
  overflow: hidden;
  position: relative;
  width: 100%;
}
.owl-carousel .owl-wrapper-outer.autoHeight {
  -webkit-transition: height 500ms ease-in-out;
  transition: height 500ms ease-in-out;
}
.owl-carousel .owl-item {
  float: left;
}
.owl-controls .owl-page,
.owl-controls .owl-buttons div {
  cursor: pointer;
}
.owl-controls {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-tap-highlight-color: rgba(0,0,0,0);
}
.grabbing {
  cursor: url("grabbing.png") 8 8, move;
}
.owl-carousel .owl-wrapper,
.owl-carousel .owl-item {
  -webkit-backface-visibility: hidden;
  -moz-backface-visibility: hidden;
  -ms-backface-visibility: hidden;
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
}
.owl-theme .owl-controls {
  margin-top: 10px;
  text-align: center;
}
.owl-theme .owl-controls .owl-buttons div {
  color: #fff;
  display: inline-block;
  zoom: 1;
  *display: inline;
/*IE7 life-saver */
  margin: 5px;
  padding: 3px 10px;
  font-size: 12px;
  background: #869791;
  filter: Alpha(50); /*IE7 fix*/
  opacity: 0.5;
}
.owl-theme .owl-controls.clickable .owl-buttons div:hover {
  filter: Alpha(100); /*IE7 fix*/
  opacity: 1;
  text-decoration: none;
}
.owl-theme .owl-controls .owl-page {
  display: inline-block;
  zoom: 1;
  *display: inline;
/*IE7 life-saver */
}
.owl-theme .owl-controls .owl-page span {
  display: block;
  width: 12px;
  height: 12px;
  margin: 5px 7px;
  filter: Alpha(50); /*IE7 fix*/
  opacity: 0.5;
  border-radius: 20px;
  background: #869791;
}
.owl-theme .owl-controls .owl-page.active span,
.owl-theme .owl-controls.clickable .owl-page:hover span {
  filter: Alpha(100); /*IE7 fix*/
  opacity: 1;
}
.owl-theme .owl-controls .owl-page span.owl-numbers {
  height: auto;
  width: auto;
  color: #fff;
  padding: 2px 10px;
  font-size: 12px;
  border-radius: 30px;
}
.owl-item.loading {
  min-height: 150px;
  background: url("AjaxLoader.gif") no-repeat center center;
}
.owl-origin {
  -webkit-perspective: 1200px;
  -webkit-perspective-origin-x: 50%;
  -webkit-perspective-origin-y: 50%;
  -moz-perspective: 1200px;
  -moz-perspective-origin-x: 50%;
  -moz-perspective-origin-y: 50%;
  -webkit-perspective: 1200px;
          perspective: 1200px;
}
.owl-fade-out {
  z-index: 10;
  -webkit-animation: fadeOut 0.7s both ease;
  animation: fadeOut 0.7s both ease;
}
.owl-fade-in {
  -webkit-animation: fadeIn 0.7s both ease;
  animation: fadeIn 0.7s both ease;
}
.owl-backSlide-out {
  -webkit-animation: backSlideOut 1s both ease;
  animation: backSlideOut 1s both ease;
}
.owl-backSlide-in {
  -webkit-animation: backSlideIn 1s both ease;
  animation: backSlideIn 1s both ease;
}
.owl-goDown-out {
  -webkit-animation: scaleToFade 0.7s ease both;
  animation: scaleToFade 0.7s ease both;
}
.owl-goDown-in {
  -webkit-animation: goDown 0.6s ease both;
  animation: goDown 0.6s ease both;
}
.owl-fadeUp-in {
  -webkit-animation: scaleUpFrom 0.5s ease both;
  animation: scaleUpFrom 0.5s ease both;
}
.owl-fadeUp-out {
  -webkit-animation: scaleUpTo 0.5s ease both;
  animation: scaleUpTo 0.5s ease both;
}
@-webkit-keyframes empty {
  0% {
    opacity: 1;
  }
}
@-webkit-keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@-webkit-keyframes fadeOut {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
@-webkit-keyframes backSlideOut {
  25% {
    opacity: 0.5;
    -webkit-transform: translateZ(-500px);
  }
  75% {
    opacity: 0.5;
    -webkit-transform: translateZ(-500px) translateX(-200%);
  }
  100% {
    opacity: 0.5;
    -webkit-transform: translateZ(-500px) translateX(-200%);
  }
}
@-webkit-keyframes backSlideIn {
  0%, 25% {
    opacity: 0.5;
    -webkit-transform: translateZ(-500px) translateX(200%);
  }
  75% {
    opacity: 0.5;
    -webkit-transform: translateZ(-500px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateZ(0) translateX(0);
  }
}
@-webkit-keyframes scaleToFade {
  to {
    opacity: 0;
    -webkit-transform: scale(0.8);
  }
}
@-webkit-keyframes goDown {
  from {
    -webkit-transform: translateY(-100%);
  }
}
@-webkit-keyframes scaleUpFrom {
  from {
    opacity: 0;
    -webkit-transform: scale(1.5);
  }
}
@-webkit-keyframes scaleUpTo {
  to {
    opacity: 0;
    -webkit-transform: scale(1.5);
  }
}
@-webkit-keyframes empty {
  0% {
    opacity: 1;
  }
}
@keyframes empty {
  0% {
    opacity: 1;
  }
}
@-webkit-keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@-webkit-keyframes fadeOut {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
@keyframes fadeOut {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
@-webkit-keyframes backSlideOut {
  25% {
    opacity: 0.5;
    -webkit-transform: translateZ(-500px);
            transform: translateZ(-500px);
  }
  75% {
    opacity: 0.5;
    -webkit-transform: translateZ(-500px) translateX(-200%);
            transform: translateZ(-500px) translateX(-200%);
  }
  100% {
    opacity: 0.5;
    -webkit-transform: translateZ(-500px) translateX(-200%);
            transform: translateZ(-500px) translateX(-200%);
  }
}
@keyframes backSlideOut {
  25% {
    opacity: 0.5;
    -webkit-transform: translateZ(-500px);
            transform: translateZ(-500px);
  }
  75% {
    opacity: 0.5;
    -webkit-transform: translateZ(-500px) translateX(-200%);
            transform: translateZ(-500px) translateX(-200%);
  }
  100% {
    opacity: 0.5;
    -webkit-transform: translateZ(-500px) translateX(-200%);
            transform: translateZ(-500px) translateX(-200%);
  }
}
@-webkit-keyframes backSlideIn {
  0%, 25% {
    opacity: 0.5;
    -webkit-transform: translateZ(-500px) translateX(200%);
            transform: translateZ(-500px) translateX(200%);
  }
  75% {
    opacity: 0.5;
    -webkit-transform: translateZ(-500px);
            transform: translateZ(-500px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateZ(0) translateX(0);
            transform: translateZ(0) translateX(0);
  }
}
@keyframes backSlideIn {
  0%, 25% {
    opacity: 0.5;
    -webkit-transform: translateZ(-500px) translateX(200%);
            transform: translateZ(-500px) translateX(200%);
  }
  75% {
    opacity: 0.5;
    -webkit-transform: translateZ(-500px);
            transform: translateZ(-500px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateZ(0) translateX(0);
            transform: translateZ(0) translateX(0);
  }
}
@-webkit-keyframes scaleToFade {
  to {
    opacity: 0;
    -webkit-transform: scale(0.8);
            transform: scale(0.8);
  }
}
@keyframes scaleToFade {
  to {
    opacity: 0;
    -webkit-transform: scale(0.8);
            transform: scale(0.8);
  }
}
@-webkit-keyframes goDown {
  from {
    -webkit-transform: translateY(-100%);
            transform: translateY(-100%);
  }
}
@keyframes goDown {
  from {
    -webkit-transform: translateY(-100%);
            transform: translateY(-100%);
  }
}
@-webkit-keyframes scaleUpFrom {
  from {
    opacity: 0;
    -webkit-transform: scale(1.5);
            transform: scale(1.5);
  }
}
@keyframes scaleUpFrom {
  from {
    opacity: 0;
    -webkit-transform: scale(1.5);
            transform: scale(1.5);
  }
}
@-webkit-keyframes scaleUpTo {
  to {
    opacity: 0;
    -webkit-transform: scale(1.5);
            transform: scale(1.5);
  }
}
@keyframes scaleUpTo {
  to {
    opacity: 0;
    -webkit-transform: scale(1.5);
            transform: scale(1.5);
  }
}
.btn.btn-contato {
  *zoom: 1;
  width: auto;
  max-width: 200px;
  float: none;
  display: block;
  margin-right: auto;
  margin-left: auto;
  padding-left: 0;
  padding-right: 0;
}
.btn.btn-contato:before,
.btn.btn-contato:after {
  content: '';
  display: table;
}
.btn.btn-contato:after {
  clear: both;
}
.btn a {
  font-size: 13px;
  padding: 10px 22px;
  border-radius: 3px;
  background-color: #0074d9;
  color: #fff;
  cursor: pointer;
  font-weight: bold;
  font-family: $font-stack;
  line-height: 1em;
  text-align: center;
  text-decoration: none;
  display: inline-block;
  border: none;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  border-radius: 0;
  text-align: center;
  color: #fff;
  background-color: #0194b5;
  cursor: pointer;
  display: block;
}
.btn a:hover,
.btn a:focus {
  background-color: #006ece;
  color: #f7f7f7;
  border: none;
}
.btn a:active {
  background-color: #0068c3;
}
.btn a:hover {
  background-color: #017e9a;
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL25vZGVfbW9kdWxlcy9heGlzL2F4aXMvcmVzZXQuc3R5bCIsIi4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvdHlwb2dyYXBoaWMvc3R5bHVzL3R5cG9ncmFwaGljLnN0eWwiLCJhdG9tcy9fdHlwb2dyYXBoLnN0eWwiLCIuLi8uLi9ub2RlX21vZHVsZXMvamVldC9zdHlsdXMvamVldC9fZ3JpZC5zdHlsIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2F4aXMvYXhpcy9sYXlvdXQuc3R5bCIsImF0b21zL19sYXlvdXQuc3R5bCIsIi4uLy4uL25vZGVfbW9kdWxlcy9heGlzL2F4aXMvZ3JhZGllbnRzLnN0eWwiLCIuLi8uLi9ub2RlX21vZHVsZXMvcnVwdHVyZS9ydXB0dXJlL2luZGV4LnN0eWwiLCIuLi8uLi9ub2RlX21vZHVsZXMvYXhpcy9heGlzL2Zvcm1zLnN0eWwiLCIuLi8uLi9ub2RlX21vZHVsZXMvYXhpcy9heGlzL3V0aWxpdGllcy5zdHlsIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2F4aXMvYXhpcy9idXR0b25zLnN0eWwiLCIuLi8uLi9ub2RlX21vZHVsZXMvYXhpcy9heGlzL2ludGVyYWN0aW9uLnN0eWwiLCIuLi8uLi9ub2RlX21vZHVsZXMvYXhpcy9heGlzL3R5cG9ncmFwaHkuc3R5bCIsImF0b21zL19saW5rcy5zdHlsIiwibW9sZWN1bGVzL19tYWluSGVhZGVyLnN0eWwiLCJtb2xlY3VsZXMvb3dsLmNhcm91c2VsLnN0eWwiLCJtb2xlY3VsZXMvYnV0dG9ucy5zdHlsIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFCRTs7RUFDRSxpQkFBQTs7QUFLRjtFQUNFLGFBQUE7O0FBK05GO0VBQ0UsdUJBQUE7O0FBRUY7OztFQUdFLG9CQUFBOztBQXBCRjs7O0VBR0UsZ0JBQUE7RUFDQSxhQUFBO0VBQ0EsVUFBQTtFQUNBLGdDQUFBO0VBQ0EsZUFBQTs7QUEzT0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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QWEsc0NBQTRCO1lBQTVCLDhCQUE0Qjs7RUFDbkQ7SUFBTSxXQUFTO0lBQUksK0NBQUE7WUFBQSx1Q0FBQTs7Q0FDbkI7Ozs7OztHQUhxQjtFQUNyQjtJQUFVLGFBQUE7SUFBYSxzQ0FBNEI7WUFBNUIsOEJBQTRCOztFQUNuRDtJQUFNLFdBQVM7SUFBSSwrQ0FBQTtZQUFBLHVDQUFBOztDQUNuQjs7Ozs7O0dBUXFCO0NBQ3JCOzs7Ozs7R0FEcUI7Q0FDckI7QUFTQTs7Ozs7Q0FEZ0I7QUFDaEI7Ozs7O0NBRGdCOzs7Ozs7R0FVSztDQUNyQjs7Ozs7O0dBRHFCO0NBQ3JCOzs7Ozs7R0FTbUI7Q0FDbkI7Ozs7OztHQURtQjtDQUNuQjs7V0FBaUI7OztFQ3hUakIsWUFBQTtFYmdSRSxlQUFBO0VBakdELG1CQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBOzs7O0VBSUEsWUFBQTs7Q0E0RkE7QUFBVTtFQUNSLFlBQUE7OztFQUdGLGdCQUFBO0VBQ0UsbUJBQUE7O0VhclJILDBCQUFBO0VOcURDLFlBQWtDO0VBQ2xDLGdCQUEyQjtFQUMzQixrQkFBNkM7RUFDN0MseUJBQWtCO0VBQ2xCLGlCQUFBO0VBR0EsbUJBQUE7RUFDQSxzQkFBQTtFQUNBLHNCQUFhO0VBQ2IsYUFBYTtFQUNiLDRCQUFBO0VBQ0EsMEJBQWlCO0tBQWpCLHVCQUFpQjtNQUFqQixzQkFBaUI7VUFBakIsa0JBQWlCO0VBQ2pCLGlCQUFTO0VBQ1QsbUJBQUE7RUQ5REEsWUFBQTtFQUNBLDBCQUFBO0VPSkEsZ0JBQWM7RUFDZCxlQUFXOzs7O0VBSVgsMEJBQUE7O0VOK0RBLGFBQUE7Q0FBUzs7RUFFUCwwQkFBQTs7O0VBR0YsMEJBQUEiLCJmaWxlIjoibWFpbi5jc3MiLCJzb3VyY2VSb290IjoiL3NvdXJjZS8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyAtLS0tLVxuLy8gUmVzZXRcbi8vIC0tLS0tXG5cbi8vIEdsb2JhbCBSZXNldFxuLy8gQmFzZWQgb24gW0VyaWMgTWV5ZXIncyByZXNldF0oaHR0cDovL21leWVyd2ViLmNvbS9lcmljL3Rob3VnaHRzLzIwMDcvMDUvMDEvcmVzZXQtcmVsb2FkZWQvKVxuLy8gcG9ydGVkIGZyb20gTmliXG5cbmdsb2JhbC1yZXNldCgpXG4gIGh0bWwsIGJvZHksIGRpdiwgc3BhbiwgYXBwbGV0LCBvYmplY3QsIGlmcmFtZSxcbiAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcCwgYmxvY2txdW90ZSwgcHJlLFxuICBhLCBhYmJyLCBhY3JvbnltLCBhZGRyZXNzLCBiaWcsIGNpdGUsIGNvZGUsXG4gIGRlbCwgZGZuLCBlbSwgaW1nLCBpbnMsIGtiZCwgcSwgcywgc2FtcCxcbiAgc21hbGwsIHN0cmlrZSwgc3Ryb25nLCBzdWIsIHN1cCwgdHQsIHZhcixcbiAgZGwsIGR0LCBkZCwgb2wsIHVsLCBsaSxcbiAgZmllbGRzZXQsIGZvcm0sIGxhYmVsLCBsZWdlbmQsXG4gIHRhYmxlLCBjYXB0aW9uLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0ciwgdGgsIHRkXG4gICAgcmVzZXQtYm94LW1vZGVsKClcbiAgICByZXNldC1mb250KClcbiAgLy8gYm9keVxuLy8gICAgIHJlc2V0LWJvZHkoKVxuICBvbCwgdWxcbiAgICBsaXN0LXN0eWxlOiBub25lXG4gIHRhYmxlXG4gICAgcmVzZXQtdGFibGUoKVxuICBjYXB0aW9uLCB0aCwgdGRcbiAgICByZXNldC10YWJsZS1jZWxsKClcbiAgYSBpbWdcbiAgICBib3JkZXI6IG5vbmVcblxubmVzdGVkLXJlc2V0KClcbiAgZGl2LCBzcGFuLCBvYmplY3QsIGlmcmFtZSwgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcCxcbiAgcHJlLCBhLCBhYmJyLCBhY3JvbnltLCBhZGRyZXNzLCBjb2RlLCBkZWwsIGRmbiwgZW0sIGltZyxcbiAgZGwsIGR0LCBkZCwgb2wsIHVsLCBsaSwgZmllbGRzZXQsIGZvcm0sIGxhYmVsLFxuICBsZWdlbmQsIGNhcHRpb24sIHRib2R5LCB0Zm9vdCwgdGhlYWQsIHRyXG4gICAgcmVzZXQtYm94LW1vZGVsKClcbiAgICByZXNldC1mb250KClcbiAgdGFibGVcbiAgICByZXNldC10YWJsZSgpXG4gIGNhcHRpb24sIHRoLCB0ZFxuICAgIHJlc2V0LXRhYmxlLWNlbGwoKVxuICBhIGltZ1xuICAgIGJvcmRlcjogbm9uZVxuXG5yZXNldC1ib3gtbW9kZWwoKVxuICBtYXJnaW46IDBcbiAgcGFkZGluZzogMFxuICBib3JkZXI6IDBcbiAgb3V0bGluZTogMFxuXG5yZXNldC1mb250KClcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXRcbiAgZm9udC1zdHlsZTogaW5oZXJpdFxuICBmb250LWZhbWlseTogaW5oZXJpdFxuICBmb250LXNpemU6IDEwMCVcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lXG5cbnJlc2V0LWJvZHkoKVxuICBsaW5lLWhlaWdodDogMVxuICBjb2xvcjogYmxhY2tcbiAgYmFja2dyb3VuZDogd2hpdGVcblxucmVzZXQtdGFibGUoKVxuICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlXG4gIGJvcmRlci1zcGFjaW5nOiAwXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGVcblxucmVzZXQtdGFibGUtY2VsbCgpXG4gIHRleHQtYWxpZ246IGxlZnRcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlXG5cbnJlc2V0LWh0bWw1KClcbiAgYXJ0aWNsZSwgYXNpZGUsIGNhbnZhcywgZGV0YWlscywgZmlnY2FwdGlvbixcbiAgZmlndXJlLCBmb290ZXIsIGhlYWRlciwgaGdyb3VwLCBtZW51LCBuYXYsXG4gIHNlY3Rpb24sIHN1bW1hcnksIG1haW5cbiAgICByZXNldC1ib3gtbW9kZWwoKVxuICAgIGRpc3BsYXk6IGJsb2NrXG4gIGF1ZGlvLCBjYW52YXMsIHZpZGVvXG4gICAgZGlzcGxheSBpbmxpbmUtYmxvY2tcbiAgICAqZGlzcGxheSBpbmxpbmVcbiAgICAqem9vbSAxXG4gIGF1ZGlvOm5vdChbY29udHJvbHNdKSxbaGlkZGVuXVxuICAgIGRpc3BsYXkgbm9uZVxuXG4vLyBNaXhpbjogTm9ybWFsaXplIENTU1xuLy8gQmFzZWQgb24gdjMuMC4xIGh0dHBzOi8vZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3Ncblxubm9ybWFsaXplLWNzcygpXG4gIGh0bWxcbiAgICBmb250LWZhbWlseTogc2Fucy1zZXJpZlxuICAgIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlXG4gICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlXG5cbiAgYm9keVxuICAgIG1hcmdpbjogMFxuXG4gIGFydGljbGUsIGFzaWRlLCBkZXRhaWxzLCBmaWdjYXB0aW9uLCBmaWd1cmUsIGZvb3RlciwgaGVhZGVyLCBoZ3JvdXAsIG1haW4sIG5hdiwgc2VjdGlvbiwgc3VtbWFyeVxuICAgIGRpc3BsYXk6IGJsb2NrXG5cbiAgYXVkaW8sIGNhbnZhcywgcHJvZ3Jlc3MsIHZpZGVvXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrXG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lXG5cbiAgYXVkaW86bm90KFtjb250cm9sc10pXG4gICAgZGlzcGxheTogbm9uZVxuICAgIGhlaWdodDogMFxuXG4gIFtoaWRkZW5dLCB0ZW1wbGF0ZVxuICAgIGRpc3BsYXk6IG5vbmVcblxuICBhXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnRcblxuICAgICY6YWN0aXZlLCAmOmhvdmVyXG4gICAgICBvdXRsaW5lOiAwXG5cbiAgYWJiclt0aXRsZV1cbiAgICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkXG5cbiAgYiwgc3Ryb25nXG4gICAgZm9udC13ZWlnaHQ6IGJvbGRcblxuICBkZm5cbiAgICBmb250LXN0eWxlOiBpdGFsaWNcblxuICBoMVxuICAgIGZvbnQtc2l6ZTogMmVtXG4gICAgbWFyZ2luOiAwLjY3ZW0gMFxuXG4gIG1hcmtcbiAgICBiYWNrZ3JvdW5kOiAjZmYwXG4gICAgY29sb3I6ICMwMDBcblxuICBzbWFsbFxuICAgIGZvbnQtc2l6ZTogODAlXG5cbiAgc3ViLCBzdXBcbiAgICBmb250LXNpemU6IDc1JVxuICAgIGxpbmUtaGVpZ2h0OiAwXG4gICAgcG9zaXRpb246IHJlbGF0aXZlXG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lXG5cbiAgc3VwXG4gICAgdG9wOiAtMC41ZW1cblxuICBzdWJcbiAgICBib3R0b206IC0wLjI1ZW1cblxuICBpbWdcbiAgICBib3JkZXI6IDBcblxuICBzdmc6bm90KDpyb290KVxuICAgIG92ZXJmbG93OiBoaWRkZW5cblxuICBmaWd1cmVcbiAgICBtYXJnaW46IDFlbSA0MHB4XG5cbiAgaHJcbiAgICAtbW96LWJveC1zaXppbmc6IGNvbnRlbnQtYm94XG4gICAgYm94LXNpemluZzogY29udGVudC1ib3hcbiAgICBoZWlnaHQ6IDBcblxuICBwcmVcbiAgICBvdmVyZmxvdzogYXV0b1xuXG4gIGNvZGUsIGtiZCwgcHJlLCBzYW1wXG4gICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlXG4gICAgZm9udC1zaXplOiAxZW1cblxuICBidXR0b24sIGlucHV0LCBvcHRncm91cCwgc2VsZWN0LCB0ZXh0YXJlYVxuICAgIGNvbG9yOiBpbmhlcml0XG4gICAgZm9udDogaW5oZXJpdFxuICAgIG1hcmdpbjogMFxuXG4gIGJ1dHRvblxuICAgIG92ZXJmbG93OiB2aXNpYmxlXG5cbiAgYnV0dG9uLCBzZWxlY3RcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZVxuXG4gIGJ1dHRvbiwgaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLCBpbnB1dFt0eXBlPVwicmVzZXRcIl0sIGlucHV0W3R5cGU9XCJzdWJtaXRcIl1cbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvblxuICAgIGN1cnNvcjogcG9pbnRlclxuXG4gIGJ1dHRvbltkaXNhYmxlZF0sIGh0bWwgaW5wdXRbZGlzYWJsZWRdXG4gICAgY3Vyc29yOiBkZWZhdWx0XG5cbiAgYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLCBpbnB1dDo6LW1vei1mb2N1cy1pbm5lclxuICAgIGJvcmRlcjogMFxuICAgIHBhZGRpbmc6IDBcblxuICBpbnB1dFxuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWxcblxuICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sIGlucHV0W3R5cGU9XCJyYWRpb1wiXVxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3hcbiAgICBwYWRkaW5nOiAwXG5cbiAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiwgaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvblxuICAgIGhlaWdodDogYXV0b1xuXG4gIGlucHV0W3R5cGU9XCJzZWFyY2hcIl1cbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZFxuICAgIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3hcbiAgICAtd2Via2l0LWJveC1zaXppbmc6IGNvbnRlbnQtYm94XG4gICAgYm94LXNpemluZzogY29udGVudC1ib3hcblxuICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLCBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lXG5cbiAgZmllbGRzZXRcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwXG4gICAgbWFyZ2luOiAwIDJweFxuICAgIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbVxuXG4gIGxlZ2VuZFxuICAgIGJvcmRlcjogMFxuICAgIHBhZGRpbmc6IDBcblxuICB0ZXh0YXJlYVxuICAgIG92ZXJmbG93OiBhdXRvXG5cbiAgb3B0Z3JvdXBcbiAgICBmb250LXdlaWdodDogYm9sZFxuXG4gIHRhYmxlXG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZVxuICAgIGJvcmRlci1zcGFjaW5nOiAwXG5cbiAgdGQsIHRoXG4gICAgcGFkZGluZzogMFxuXG4vLyBNaXhpbjogRmx1aWQgTWVkaWFcbi8vIE1ha2VzIHlvdXIgaW1nLCB2aWRlbywgYW5kIGlmcmFtZSB0YWdzIHJlc3BvbnNpdmUgdG8gdGhlaXIgcGFyZW50IGNvbnRhaW5lci5cblxuZmx1aWQtbWVkaWEoKVxuICBpbWcsXG4gIHZpZGVvLFxuICBpZnJhbWVcbiAgICBtYXgtd2lkdGg6IDEwMCVcbiAgICBoZWlnaHQ6IGF1dG9cbiAgICBib3JkZXI6IDBcbiAgICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBiaWN1YmljXG4gICAgZGlzcGxheTogYmxvY2tcblxuLy8gTWl4aW46IEJvcmRlciBCb3ggSFRNTFxuLy8gQWRkIGJvcmRlciBib3ggdG8gZXZlcnkgZWxlbWVudCBpbiB5b3VyIHByb2plY3QuIFVzZWQgaW4geW91ciBwcm9qZWN0IHJvb3QuXG4vLyBodHRwOi8vd3d3LnBhdWxpcmlzaC5jb20vMjAxMi9ib3gtc2l6aW5nLWJvcmRlci1ib3gtZnR3L1xuXG5ib3JkZXItYm94LWh0bWwoKVxuICBodG1sXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveFxuXG4gICosXG4gICo6YmVmb3JlLFxuICAqOmFmdGVyXG4gICAgYm94LXNpemluZzogaW5oZXJpdFxuXG4vLyBNaXhpbjogUHJpbnQgU3R5bGVzXG4vLyBOaWNlIGNsZWFuIHByaW50IHN0eWxlcyBzbyB5b3UgZG9uJ3QgaGF2ZSB0byB3b3JyeSBhYm91dCBpdC5cblxucHJpbnQtc3R5bGVzKClcbiAgQG1lZGlhIHByaW50XG4gICAgYm9keVxuICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudFxuICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnRcbiAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudFxuICAgICAgZm9udC1zaXplOiAxNHB0XG4gICAgICBsaW5lLWhlaWdodDogMS40NVxuICAgICAgZm9udC1mYW1pbHk6IEdhcmFtb25kLCBcIlRpbWVzIE5ldyBSb21hblwiLCBzZXJpZlxuICAgICAgY29sb3I6ICMwMDBcbiAgICAgIGJhY2tncm91bmQ6IG5vbmVcblxuICAgIGgxLFxuICAgIGgyLFxuICAgIGgzLFxuICAgIGg0LFxuICAgIGg1LFxuICAgIGg2XG4gICAgICBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZFxuICAgICAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhXCIsIEFyaWFsLCBzYW5zLXNlcmlmXG5cbiAgICBoMVxuICAgICAgZm9udC1zaXplOiAzNnB0XG4gICAgICBsaW5lLWhlaWdodDogMS4yNWVtXG5cbiAgICBoMlxuICAgICAgZm9udC1zaXplOiAyNHB0XG4gICAgICBsaW5lLWhlaWdodDogMS4yNWVtXG5cbiAgICBoM1xuICAgICAgZm9udC1zaXplOiAxOHB0XG4gICAgICBsaW5lLWhlaWdodDogMS4yNWVtXG5cbiAgICBoNCxcbiAgICBoNSxcbiAgICBoNlxuICAgICAgZm9udC1zaXplOiAxNHB0XG4gICAgICBsaW5lLWhlaWdodDogMS4yNWVtXG5cbiAgICBwLFxuICAgIGgyLFxuICAgIGgzXG4gICAgICBvcnBoYW5zOiAzXG4gICAgICB3aWRvd3M6IDNcblxuICAgIGNvZGVcbiAgICAgIGZvbnQ6IDEycHQgQ291cmllciwgJG1vbm9zcGFjZVxuXG4gICAgYmxvY2txdW90ZVxuICAgICAgbWFyZ2luOiAxLjJlbVxuICAgICAgcGFkZGluZzogMWVtXG4gICAgICBmb250LXNpemU6IDI0cHRcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ1ODMzMzMzZW1cbiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpY1xuXG4gICAgaHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjY2NcblxuICAgIGltZ1xuICAgICAgZmxvYXQ6IGxlZnRcbiAgICAgIG1hcmdpbjogMWVtIDEuNWVtIDEuNWVtIDBcbiAgICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50XG5cbiAgICBhIGltZ1xuICAgICAgICBib3JkZXI6IG5vbmVcblxuICAgIGE6bGluayxcbiAgICBhOnZpc2l0ZWRcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50XG4gICAgICBmb250LXdlaWdodDogNzAwXG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZVxuICAgICAgY29sb3I6ICMzMzNcblxuICAgIGE6bGlua1tocmVmXj1cImh0dHA6Ly9cIl06YWZ0ZXIsXG4gICAgYVtocmVmXj1cImh0dHA6Ly9cIl06dmlzaXRlZDphZnRlclxuICAgICAgY29udGVudDogXCIgKFwiIGF0dHIoaHJlZikgXCIpIFwiXG4gICAgICBmb250LXNpemU6IDkwJVxuXG4gICAgYWJiclt0aXRsZV06YWZ0ZXJcbiAgICAgIGNvbnRlbnQ6IFwiIChcIiBhdHRyKHRpdGxlKSBcIilcIlxuXG4gICAgYVtocmVmXj1cImh0dHA6Ly9cIl1cbiAgICAgIGNvbG9yOiAjMDAwXG5cbiAgICBhW2hyZWYkPVwiLmpwZ1wiXTphZnRlcixcbiAgICBhW2hyZWYkPVwiLmpwZWdcIl06YWZ0ZXIsXG4gICAgYVtocmVmJD1cIi5naWZcIl06YWZ0ZXIsXG4gICAgYVtocmVmJD1cIi5wbmdcIl06YWZ0ZXJcbiAgICAgIGNvbnRlbnQ6IFwiIChcIiBhdHRyKGhyZWYpIFwiKSBcIlxuICAgICAgZGlzcGxheTogbm9uZVxuXG4gICAgYVtocmVmXj1cIiNcIl06YWZ0ZXIsIGFbaHJlZl49XCJqYXZhc2NyaXB0OlwiXTphZnRlclxuICAgICAgY29udGVudDogXCJcIlxuXG4gICAgdGFibGVcbiAgICAgIG1hcmdpbjogMXB4XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0XG5cbiAgICB0aFxuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMzMzNcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkXG5cbiAgICB0ZFxuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMzMzNcblxuICAgIHRoLFxuICAgIHRkXG4gICAgICBwYWRkaW5nOiA0cHggMTBweCA0cHggMFxuXG4gICAgdGZvb3RcbiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpY1xuXG4gICAgY2FwdGlvblxuICAgICAgYmFja2dyb3VuZDogI2ZmZlxuICAgICAgbWFyZ2luLWJvdHRvbTogMmVtXG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0XG5cbiAgICB0aGVhZFxuICAgICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwXG5cbiAgICBpbWcsXG4gICAgdHJcbiAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZFxuIiwiLy8gVHlwb2dyYXBoaWMgdjIuOS4yIC0gaHR0cHM6Ly9naXRodWIuY29tL2NvcnlzaW1tb25zL3R5cG9ncmFwaGljXG5cblxuLy8gU2V0dGluZ3NcblxuJGxpbmUtaGVpZ2h0LXJhdGlvICA9IDEuNzVcbiRoZWFkZXItcmF0aW8gICAgICAgPSAkZ29sZGVuXG4kYm9keS1mb250ICAgICAgICAgID0gJGhlbHZldGljYVxuJGJvZHktZm9udC13ZWlnaHQgICA9IDQwMFxuJGJvZHktY29sb3IgICAgICAgICA9ICM2NjZcbiRoZWFkZXItZm9udCAgICAgICAgPSAkaGVsdmV0aWNhXG4kaGVhZGVyLWZvbnQtd2VpZ2h0ID0gNTAwXG4kaGVhZGVyLWNvbG9yICAgICAgID0gIzExMVxuJG1pbi1mb250ICAgICAgICAgICA9IHJlbSgxNnB4KVxuJG1heC1mb250ICAgICAgICAgICA9IHJlbSgxOHB4KVxuJG1pbi13aWR0aCAgICAgICAgICA9IHJlbSg2MDBweClcbiRtYXgtd2lkdGggICAgICAgICAgPSByZW0oMTIwMHB4KVxuJHZlcnRpY2FsLXJoeXRobSAgICA9IHRydWVcblxuXG4vLyBSYXRpb3NcblxuJG1pbm9yLXNlY29uZCAgID0gMS4wNjdcbiRtYWpvci1zZWNvbmQgICA9IDEuMTI1XG4kbWlub3ItdGhpcmQgICAgPSAxLjJcbiRtYWpvci10aGlyZCAgICA9IDEuMjVcbiRwZXJmZWN0LWZvdXJ0aCA9IDEuMzMzXG4kYXVnLWZvdXJ0aCAgICAgPSAxLjQxNFxuJHBlcmZlY3QtZmlmdGggID0gMS41XG4kbWlub3Itc2l4dGggICAgPSAxLjZcbiRnb2xkZW4gICAgICAgICA9IDEuNjE4XG4kbWFqb3Itc2l4dGggICAgPSAxLjY2N1xuJG1pbm9yLXNldmVudGggID0gMS43NzhcbiRtYWpvci1zZXZlbnRoICA9IDEuODc1XG4kb2N0YXZlICAgICAgICAgPSAyXG4kbWFqb3ItdGVudGggICAgPSAyLjVcbiRtYWpvci1lbGV2ZW50aCA9IDIuNjY3XG4kbWFqb3ItdHdlbGZ0aCAgPSAzXG4kZG91YmxlLW9jdGF2ZSAgPSA0XG5cblxuLy8gU2Fucy1zZXJpZlxuXG4kY2FsaWJyaSAgICAgICA9ICdDYWxpYnJpJywgJ0NhbmRhcmEnLCAnU2Vnb2UnLCAnU2Vnb2UgVUknLCAnT3B0aW1hJywgJ0FyaWFsJywgJ3NhbnMtc2VyaWYnXG4kY2FuZGFyYSAgICAgICA9ICdDYW5kYXJhJywgJ0NhbGlicmknLCAnU2Vnb2UnLCAnU2Vnb2UgVUknLCAnT3B0aW1hJywgJ0FyaWFsJywgJ3NhbnMtc2VyaWYnXG4kY291cmllciAgICAgICA9ICdDb3VyaWVyIE5ldycsICdDb3VyaWVyJywgJ0x1Y2lkYSBTYW5zIFR5cGV3cml0ZXInLCAnTHVjaWRhIFR5cGV3cml0ZXInLCAnbW9ub3NwYWNlJ1xuJGZyYW5rbGluICAgICAgPSAnRnJhbmtsaW4gR290aGljIE1lZGl1bScsICdBcmlhbCcsICdzYW5zLXNlcmlmJ1xuJGZ1dHVyYSAgICAgICAgPSAnRnV0dXJhJywgJ1RyZWJ1Y2hldCBNUycsICdBcmlhbCcsICdzYW5zLXNlcmlmJ1xuJGdlbmV2YSAgICAgICAgPSAnR2VuZXZhJywgJ1RhaG9tYScsICdWZXJkYW5hJywgJ3NhbnMtc2VyaWYnXG4kZ2lsbC1zYW5zICAgICA9ICdHaWxsIFNhbnMnLCAnR2lsbCBTYW5zIE1UJywgJ0NhbGlicmknLCAnc2Fucy1zZXJpZidcbiRoZWx2ZXRpY2EgICAgID0gIFVidW50dSwgJ0hlbHZldGljYSBOZXVlJywgJ0hlbHZldGljYScsICdBcmlhbCcsICdzYW5zLXNlcmlmJ1xuJGx1Y2lkYS1ncmFuZGUgPSAnTHVjaWRhIEdyYW5kZScsICdMdWNpZGEgU2FucyBVbmljb2RlJywgJ0x1Y2lkYSBTYW5zJywgJ0dlbmV2YScsICdWZXJkYW5hJywgJ3NhbnMtc2VyaWYnXG4kb3B0aW1hICAgICAgICA9ICdPcHRpbWEnLCAnU2Vnb2UnLCAnU2Vnb2UgVUknLCAnQ2FuZGFyYScsICdDYWxpYnJpJywgJ0FyaWFsJywgJ3NhbnMtc2VyaWYnXG4kc2Vnb2UgICAgICAgICA9ICdTZWdvZScsICdTZWdvZSBVSScsICdIZWx2ZXRpY2EgTmV1ZScsICdBcmlhbCcsICdzYW5zLXNlcmlmJ1xuJHRhaG9tYSAgICAgICAgPSAnVGFob21hJywgJ0dlbmV2YScsICdWZXJkYW5hJywgJ3NhbnMtc2VyaWYnXG4kdHJlYnVjaGV0ICAgICA9ICdUcmVidWNoZXQgTVMnLCAnTHVjaWRhIEdyYW5kZScsICdMdWNpZGEgU2FucyBVbmljb2RlJywgJ0x1Y2lkYSBTYW5zJywgJ1RhaG9tYScsICdzYW5zLXNlcmlmJ1xuJHZlcmRhbmEgICAgICAgPSAnVmVyZGFuYScsICdHZW5ldmEnLCAnc2Fucy1zZXJpZidcblxuXG4vLyBTZXJpZlxuXG4kYW50aXF1YSAgICAgICA9ICdCb29rIEFudGlxdWEnLCAnUGFsYXRpbm8nLCAnUGFsYXRpbm8gTGlub3R5cGUnLCAnUGFsYXRpbm8gTFQgU1REJywgJ0dlb3JnaWEnLCAnc2VyaWYnXG4kYmFza2VydmlsbGUgICA9ICdCYXNrZXJ2aWxsZScsICdCYXNrZXJ2aWxsZSBvbGQgZmFjZScsICdIb2VmbGVyIFRleHQnLCAnR2FyYW1vbmQnLCAnVGltZXMgTmV3IFJvbWFuJywgJ3NlcmlmJ1xuJGJvZG9uaSAgICAgICAgPSAnQm9kb25pIE1UJywgJ0RpZG90JywgJ0RpZG90IExUIFNURCcsICdIb2VmbGVyIFRleHQnLCAnR2FyYW1vbmQnLCAnVGltZXMgTmV3IFJvbWFuJywgJ3NlcmlmJ1xuJGNhbWJyaWEgICAgICAgPSAnQ2FtYnJpYScsICdHZW9yZ2lhJywgJ3NlcmlmJ1xuJGNhc2xvbiAgICAgICAgPSAnQmlnIENhc2xvbicsICdCb29rIEFudGlxdWEnLCAnUGFsYXRpbm8gTGlub3R5cGUnLCAnR2VvcmdpYScsICdzZXJpZidcbiRjb25zdGFudGlhICAgID0gJ0NvbnN0YW50aWEnLCAnUGFsYXRpbm8nLCAnUGFsYXRpbm8gTGlub3R5cGUnLCAnUGFsYXRpbm8gTFQgU1REJywgJ0dlb3JnaWEnLCAnc2VyaWYnXG4kZGlkb3QgICAgICAgICA9ICdEaWRvdCcsICdEaWRvdCBMVCBTVEQnLCAnSG9lZmxlciBUZXh0JywgJ0dhcmFtb25kJywgJ1RpbWVzIE5ldyBSb21hbicsICdzZXJpZidcbiRnYXJhbW9uZCAgICAgID0gJ0dhcmFtb25kJywgJ0Jhc2tlcnZpbGxlJywgJ0Jhc2tlcnZpbGxlIE9sZCBGYWNlJywgJ0hvZWZsZXIgVGV4dCcsICdUaW1lcyBOZXcgUm9tYW4nLCAnc2VyaWYnXG4kZ291ZHkgICAgICAgICA9ICdHb3VkeSBPbGQgU3R5bGUnLCAnR2FyYW1vbmQnLCAnQmlnIENhc2xvbicsICdUaW1lcyBOZXcgUm9tYW4nLCAnc2VyaWYnXG4kaG9lZmxlciAgICAgICA9ICdIb2VmbGVyIFRleHQnLCAnQmFza2VydmlsbGUgb2xkIGZhY2UnLCAnR2FyYW1vbmQnLCAnVGltZXMgTmV3IFJvbWFuJywgJ3NlcmlmJ1xuJGx1Y2lkYS1icmlnaHQgPSAnTHVjaWRhIEJyaWdodCcsICdHZW9yZ2lhJywgJ3NlcmlmJ1xuJHBhbGF0aW5vICAgICAgPSAnU2FjcmFtZW50bycsICdQYWxhdGlubycsICdQYWxhdGlubyBMaW5vdHlwZScsICdQYWxhdGlubyBMVCBTVEQnLCBcIkJvb2sgQW50aXF1YVwiLCAnR2VvcmdpYScsICdzZXJpZidcblxuXG4vLyBIZWxwZXJzXG5cbi8qKlxuICogQ3JlYXRlcyBhIGJhc2VsaW5lIGdyaWQgYmFzZWQgb2ZmIHlvdXIgJGxpbmUtaGVpZ2h0LXJhdGlvIHRvIGhlbHAgdmlzdWFsaXplIHlvdXIgdmVydGljYWwgcmh5dGhtIGdyaWQuIFlvdSBjYW4gb2Zmc2V0IHRoZSBncmlkIGJ5IG5lZ2F0aXZlIG9yIHBvc2l0aXZlIHBpeGVscyB0byBsaW5lIGl0IHVwIHBlcmZlY3RseSB3aXRoIHRoZSBib3R0b20gb2YgeW91ciB0ZXh0LlxuICpcbiAqIEBwYXJhbSB7Y29sb3J9IFskY29sb3I9YmxhY2tdIC0gQSBjb2xvciB0byBiZSBsaWdodGVuZWQgYW5kIHVzZWQgYXMgdGhlIGNvbG9yIGZvciB0aGUgZ3JpZC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbJHB4LW9mZnNldD1mYWxzZV0gLSBBIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIG51bWJlciBvZiBwaXhlbHMgdG8gb2Zmc2V0IHRoZSBncmlkIGJ5LiBVc2VmdWwgZm9yIGxpbmluZyB0aGUgYm90dG9tIG9mIHRoZSBncmlkbGluZXMgdXAgd2l0aCB5b3VyIHRleHQuXG4gKlxuICogQGV4YW1wbGVcbiAqICAgZ3JpZC1vdmVybGF5KGJsdWUsIDIpXG4gKi9cblxuZ3JpZC1vdmVybGF5KCRjb2xvciA9IGJsYWNrLCAkcHgtb2Zmc2V0ID0gZmFsc2UpXG4gIGJvZHlcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCByZ2JhKCRjb2xvciwgMTAlKSA1JSwgd2hpdGUgNSUpXG4gICAgYmFja2dyb3VuZC1zaXplOiAxMDAlICgkbGluZS1oZWlnaHQtcmF0aW8pZW1cbiAgICBpZiAkcHgtb2Zmc2V0XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIHVuaXQoJHB4LW9mZnNldCwgJ3B4JylcblxuXG4vKipcbiAqIFJldHVybnMgYSBcInZlcnRpY2FsIHVuaXRcIi4gVXNlZnVsIGZvciBzcGVjaWZ5aW5nIHRoZSBoZWlnaHQgYW5kIG1hcmdpbnMgb2Ygbm9uLXRleHQgZWxlbWVudHMgbGlrZSBpbWFnZXMgYW5kIHN1Y2guXG4gKlxuICogQHBhcmFtIHtudW1iZXJ9IFskdW5pdHM9MV0gLSBOdW1iZXIgb2YgdW5pdHMuIEFjY2VwdHMgZmxvYXRlZCBudW1iZXJzIGFzIHdlbGwuXG4gKiBAcGFyYW0ge251bWJlcn0gWyRweC1vZmZzZXQ9ZmFsc2VdIC0gQSBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBudW1iZXIgb2YgcGl4ZWxzIHRvIG9mZnNldCB0aGUgZ3JpZCBieS4gVXNlZnVsIGZvciBsaW5pbmcgdGhlIGJvdHRvbSBvZiB0aGUgZ3JpZGxpbmVzIHVwIHdpdGggeW91ciB0ZXh0LiBTaW5jZSB0aGlzIGRvZXNuJ3QgY29tcHV0ZSBhIGxpdGVyYWwgcGl4ZWwgeW91IG1heSBuZWVkIHRvIHVzZSBhIGZsb2F0ZWQgbnVtYmVyIChtdWx0aXBsZXMgb2YgLjI1IHdvcmsgd2VsbCkgdG8ga2VlcCB5b3VyIHJoeXRobSBvbiB0cmFjay5cbiAqXG4gKiBAZXhhbXBsZVxuICogICBpbWdcbiAqICAgICB2ci1ibG9jayg1LjI1LCAuNSlcbiAqL1xuXG52ci1ibG9jaygkdW5pdHMgPSAxLCAkcHgtb2Zmc2V0ID0gZmFsc2UpXG4gIGlmICRweC1vZmZzZXRcbiAgICByZXR1cm4gKCAoKCRsaW5lLWhlaWdodC1yYXRpbyAqICRtYXgtZm9udCkgLyAoJG1heC1mb250IC8gMikpICogKCR1bml0cyAvIDIpICogKDEgKyAoJHB4LW9mZnNldCAvICRtYXgtZm9udCkpICllbVxuICBlbHNlXG4gICAgcmV0dXJuICggKCgkbGluZS1oZWlnaHQtcmF0aW8gKiAkbWF4LWZvbnQpIC8gKCRtYXgtZm9udCAvIDIpKSAqICgkdW5pdHMgLyAyKSApZW1cblxuXG4vLyBUeXBvZ3JhcGh5IE1peGluc1xuXG50LWh0bWwoKVxuICBmb250LWZhbWlseTogJGJvZHktZm9udFxuICBmb250LXdlaWdodDogJGJvZHktZm9udC13ZWlnaHRcbiAgY29sb3I6ICRib2R5LWNvbG9yXG5cbiAgZm9udC1zaXplOiAkbWluLWZvbnRcbiAgbGluZS1oZWlnaHQ6ICgkbGluZS1oZWlnaHQtcmF0aW8pZW1cblxuICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbi13aWR0aClcbiAgICBmb250LXNpemU6IHMoJ2NhbGMoICVzICsgKCVzIC0gJXMpICogKCgxMDB2dyAtICVzKSAvICglcyAtICVzKSkgKScsICRtaW4tZm9udCwgcmVtb3ZlLXVuaXQoJG1heC1mb250KSwgcmVtb3ZlLXVuaXQoJG1pbi1mb250KSwgJG1pbi13aWR0aCwgcmVtb3ZlLXVuaXQoJG1heC13aWR0aCksIHJlbW92ZS11bml0KCRtaW4td2lkdGgpKVxuXG4gIEBtZWRpYSAobWluLXdpZHRoOiAkbWF4LXdpZHRoKVxuICAgIGZvbnQtc2l6ZTogJG1heC1mb250XG5cbnQtcCA9IHQtaHRtbFxuXG50LXJlc2V0KClcbiAgbWFyZ2luOiAwXG4gIHBhZGRpbmc6IDBcblxudC1ibG9jaygpXG4gIG1hcmdpbi1ib3R0b206ICgkbGluZS1oZWlnaHQtcmF0aW8pZW1cblxudC1oZWFkZXIoKVxuICBmb250LWZhbWlseTogJGhlYWRlci1mb250XG4gIGZvbnQtd2VpZ2h0OiAkaGVhZGVyLWZvbnQtd2VpZ2h0XG4gIGNvbG9yOiAkaGVhZGVyLWNvbG9yXG4gIGNsZWFyOiBib3RoXG5cbnQtaDEoKVxuICAkbG9jYWwtbWluLWZvbnQgPSAkbWluLWZvbnQgKiAoJGhlYWRlci1yYXRpbyAqKiAxLjc1KVxuICAkbG9jYWwtbWF4LWZvbnQgPSAkbWF4LWZvbnQgKiAoJGhlYWRlci1yYXRpbyAqKiAxLjc1KVxuXG4gIGZvbnQtc2l6ZTogJGxvY2FsLW1pbi1mb250XG4gIGlmICR2ZXJ0aWNhbC1yaHl0aG0gaXMgdHJ1ZVxuICAgIG1hcmdpbi10b3A6ICgoJGxpbmUtaGVpZ2h0LXJhdGlvICogJG1pbi1mb250KSAvICgkbG9jYWwtbWluLWZvbnQgLyAxLjI1KSllbVxuICAgIGxpbmUtaGVpZ2h0OiAoKCRsaW5lLWhlaWdodC1yYXRpbyAqICRtaW4tZm9udCkgLyAoJGxvY2FsLW1pbi1mb250IC8gMS41KSllbVxuICAgIG1hcmdpbi1ib3R0b206ICgoJGxpbmUtaGVpZ2h0LXJhdGlvICogJG1pbi1mb250KSAvICgkbG9jYWwtbWluLWZvbnQgLyAuMjUpKWVtXG4gIGVsc2VcbiAgICBtYXJnaW4tdG9wOiAwXG4gICAgbGluZS1oZWlnaHQ6IDEuMWVtXG4gICAgbWFyZ2luLWJvdHRvbTogLjI1ZW1cblxuICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbi13aWR0aClcbiAgICBmb250LXNpemU6IHMoJ2NhbGMoICVzICsgKCVzIC0gJXMpICogKCgxMDB2dyAtICVzKSAvICglcyAtICVzKSkgKScsICRsb2NhbC1taW4tZm9udCwgcmVtb3ZlLXVuaXQoJGxvY2FsLW1heC1mb250KSwgcmVtb3ZlLXVuaXQoJGxvY2FsLW1pbi1mb250KSwgJG1pbi13aWR0aCwgcmVtb3ZlLXVuaXQoJG1heC13aWR0aCksIHJlbW92ZS11bml0KCRtaW4td2lkdGgpKVxuXG4gIEBtZWRpYSAobWluLXdpZHRoOiAkbWF4LXdpZHRoKVxuICAgIGZvbnQtc2l6ZTogJGxvY2FsLW1heC1mb250XG4gICAgaWYgJHZlcnRpY2FsLXJoeXRobSBpcyB0cnVlXG4gICAgICBtYXJnaW4tdG9wOiAoKCRsaW5lLWhlaWdodC1yYXRpbyAqICRtYXgtZm9udCkgLyAoJGxvY2FsLW1heC1mb250IC8gMS4yNSkpZW1cbiAgICAgIGxpbmUtaGVpZ2h0OiAoKCRsaW5lLWhlaWdodC1yYXRpbyAqICRtYXgtZm9udCkgLyAoJGxvY2FsLW1heC1mb250IC8gMS41KSllbVxuICAgICAgbWFyZ2luLWJvdHRvbTogKCgkbGluZS1oZWlnaHQtcmF0aW8gKiAkbWF4LWZvbnQpIC8gKCRsb2NhbC1tYXgtZm9udCAvIC4yNSkpZW1cblxudC1oMigpXG4gICRsb2NhbC1taW4tZm9udCA9ICRtaW4tZm9udCAqICgkaGVhZGVyLXJhdGlvICoqIDEuNClcbiAgJGxvY2FsLW1heC1mb250ID0gJG1heC1mb250ICogKCRoZWFkZXItcmF0aW8gKiogMS40KVxuXG4gIGZvbnQtc2l6ZTogJGxvY2FsLW1pbi1mb250XG4gIGlmICR2ZXJ0aWNhbC1yaHl0aG0gaXMgdHJ1ZVxuICAgIG1hcmdpbi10b3A6ICgoJGxpbmUtaGVpZ2h0LXJhdGlvICogJG1pbi1mb250KSAvICgkbG9jYWwtbWluLWZvbnQgLyAxLjI1KSllbVxuICAgIGxpbmUtaGVpZ2h0OiAoKCRsaW5lLWhlaWdodC1yYXRpbyAqICRtaW4tZm9udCkgLyAoJGxvY2FsLW1pbi1mb250IC8gMS41KSllbVxuICAgIG1hcmdpbi1ib3R0b206ICgoJGxpbmUtaGVpZ2h0LXJhdGlvICogJG1pbi1mb250KSAvICgkbG9jYWwtbWluLWZvbnQgLyAuMjUpICogKDEgKyAoMyAvICRsb2NhbC1taW4tZm9udCkpKWVtXG4gIGVsc2VcbiAgICBtYXJnaW4tdG9wOiAwXG4gICAgbGluZS1oZWlnaHQ6IDEuMmVtXG4gICAgbWFyZ2luLWJvdHRvbTogLjI1ZW1cblxuICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbi13aWR0aClcbiAgICBmb250LXNpemU6IHMoJ2NhbGMoICVzICsgKCVzIC0gJXMpICogKCgxMDB2dyAtICVzKSAvICglcyAtICVzKSkgKScsICRsb2NhbC1taW4tZm9udCwgcmVtb3ZlLXVuaXQoJGxvY2FsLW1heC1mb250KSwgcmVtb3ZlLXVuaXQoJGxvY2FsLW1pbi1mb250KSwgJG1pbi13aWR0aCwgcmVtb3ZlLXVuaXQoJG1heC13aWR0aCksIHJlbW92ZS11bml0KCRtaW4td2lkdGgpKVxuXG4gIEBtZWRpYSAobWluLXdpZHRoOiAkbWF4LXdpZHRoKVxuICAgIGZvbnQtc2l6ZTogJGxvY2FsLW1heC1mb250XG4gICAgaWYgJHZlcnRpY2FsLXJoeXRobSBpcyB0cnVlXG4gICAgICBtYXJnaW4tdG9wOiAoKCRsaW5lLWhlaWdodC1yYXRpbyAqICRtYXgtZm9udCkgLyAoJGxvY2FsLW1heC1mb250IC8gMS4yNSkpZW1cbiAgICAgIGxpbmUtaGVpZ2h0OiAoKCRsaW5lLWhlaWdodC1yYXRpbyAqICRtYXgtZm9udCkgLyAoJGxvY2FsLW1heC1mb250IC8gMS41KSllbVxuICAgICAgbWFyZ2luLWJvdHRvbTogKCgkbGluZS1oZWlnaHQtcmF0aW8gKiAkbWF4LWZvbnQpIC8gKCRsb2NhbC1tYXgtZm9udCAvIC4yNSkgKiAoMSArICgzIC8gJGxvY2FsLW1heC1mb250KSkpZW1cblxudC1oMygpXG4gICRsb2NhbC1taW4tZm9udCA9ICRtaW4tZm9udCAqICgkaGVhZGVyLXJhdGlvICoqIDEuMDUpXG4gICRsb2NhbC1tYXgtZm9udCA9ICRtYXgtZm9udCAqICgkaGVhZGVyLXJhdGlvICoqIDEuMDUpXG5cbiAgZm9udC1zaXplOiAkbG9jYWwtbWluLWZvbnRcbiAgaWYgJHZlcnRpY2FsLXJoeXRobSBpcyB0cnVlXG4gICAgbWFyZ2luLXRvcDogKCgkbGluZS1oZWlnaHQtcmF0aW8gKiAkbWluLWZvbnQpIC8gKCRsb2NhbC1taW4tZm9udCAvIDEuMjUpKWVtXG4gICAgbGluZS1oZWlnaHQ6ICgoJGxpbmUtaGVpZ2h0LXJhdGlvICogJG1pbi1mb250KSAvICgkbG9jYWwtbWluLWZvbnQgLyAxLjUpKWVtXG4gICAgbWFyZ2luLWJvdHRvbTogKCgkbGluZS1oZWlnaHQtcmF0aW8gKiAkbWluLWZvbnQpIC8gKCRsb2NhbC1taW4tZm9udCAvIC4yNSkgKiAoMSArICgzIC8gJGxvY2FsLW1pbi1mb250KSkpZW1cbiAgZWxzZVxuICAgIG1hcmdpbi10b3A6IDBcbiAgICBsaW5lLWhlaWdodDogMS4zZW1cbiAgICBtYXJnaW4tYm90dG9tOiAuMjVlbVxuXG4gIEBtZWRpYSAobWluLXdpZHRoOiAkbWluLXdpZHRoKVxuICAgIGZvbnQtc2l6ZTogcygnY2FsYyggJXMgKyAoJXMgLSAlcykgKiAoKDEwMHZ3IC0gJXMpIC8gKCVzIC0gJXMpKSApJywgJGxvY2FsLW1pbi1mb250LCByZW1vdmUtdW5pdCgkbG9jYWwtbWF4LWZvbnQpLCByZW1vdmUtdW5pdCgkbG9jYWwtbWluLWZvbnQpLCAkbWluLXdpZHRoLCByZW1vdmUtdW5pdCgkbWF4LXdpZHRoKSwgcmVtb3ZlLXVuaXQoJG1pbi13aWR0aCkpXG5cbiAgQG1lZGlhIChtaW4td2lkdGg6ICRtYXgtd2lkdGgpXG4gICAgZm9udC1zaXplOiAkbG9jYWwtbWF4LWZvbnRcbiAgICBpZiAkdmVydGljYWwtcmh5dGhtIGlzIHRydWVcbiAgICAgIG1hcmdpbi10b3A6ICgoJGxpbmUtaGVpZ2h0LXJhdGlvICogJG1heC1mb250KSAvICgkbG9jYWwtbWF4LWZvbnQgLyAxLjI1KSllbVxuICAgICAgbGluZS1oZWlnaHQ6ICgoJGxpbmUtaGVpZ2h0LXJhdGlvICogJG1heC1mb250KSAvICgkbG9jYWwtbWF4LWZvbnQgLyAxLjUpKWVtXG4gICAgICBtYXJnaW4tYm90dG9tOiAoKCRsaW5lLWhlaWdodC1yYXRpbyAqICRtYXgtZm9udCkgLyAoJGxvY2FsLW1heC1mb250IC8gLjI1KSAqICgxICsgKDMgLyAkbG9jYWwtbWF4LWZvbnQpKSllbVxuXG50LWg0KClcbiAgJGxvY2FsLW1pbi1mb250ID0gJG1pbi1mb250ICogKCRoZWFkZXItcmF0aW8gKiogLjcpXG4gICRsb2NhbC1tYXgtZm9udCA9ICRtYXgtZm9udCAqICgkaGVhZGVyLXJhdGlvICoqIC43KVxuXG4gIGZvbnQtc2l6ZTogJGxvY2FsLW1pbi1mb250XG4gIGlmICR2ZXJ0aWNhbC1yaHl0aG0gaXMgdHJ1ZVxuICAgIG1hcmdpbi10b3A6ICgoJGxpbmUtaGVpZ2h0LXJhdGlvICogJG1pbi1mb250KSAvICgkbG9jYWwtbWluLWZvbnQgLyAxLjI1KSllbVxuICAgIGxpbmUtaGVpZ2h0OiAoKCRsaW5lLWhlaWdodC1yYXRpbyAqICRtaW4tZm9udCkgLyAoJGxvY2FsLW1pbi1mb250IC8gMS41KSllbVxuICAgIG1hcmdpbi1ib3R0b206ICgoJGxpbmUtaGVpZ2h0LXJhdGlvICogJG1pbi1mb250KSAvICgkbG9jYWwtbWluLWZvbnQgLyAuMjUpICogKDEgKyAoMyAvICRsb2NhbC1taW4tZm9udCkpKWVtXG4gIGVsc2VcbiAgICBtYXJnaW4tdG9wOiAwXG4gICAgbGluZS1oZWlnaHQ6IDEuNGVtXG4gICAgbWFyZ2luLWJvdHRvbTogLjI1ZW1cblxuICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbi13aWR0aClcbiAgICBmb250LXNpemU6IHMoJ2NhbGMoICVzICsgKCVzIC0gJXMpICogKCgxMDB2dyAtICVzKSAvICglcyAtICVzKSkgKScsICRsb2NhbC1taW4tZm9udCwgcmVtb3ZlLXVuaXQoJGxvY2FsLW1heC1mb250KSwgcmVtb3ZlLXVuaXQoJGxvY2FsLW1pbi1mb250KSwgJG1pbi13aWR0aCwgcmVtb3ZlLXVuaXQoJG1heC13aWR0aCksIHJlbW92ZS11bml0KCRtaW4td2lkdGgpKVxuXG4gIEBtZWRpYSAobWluLXdpZHRoOiAkbWF4LXdpZHRoKVxuICAgIGZvbnQtc2l6ZTogJGxvY2FsLW1heC1mb250XG4gICAgaWYgJHZlcnRpY2FsLXJoeXRobSBpcyB0cnVlXG4gICAgICBtYXJnaW4tdG9wOiAoKCRsaW5lLWhlaWdodC1yYXRpbyAqICRtYXgtZm9udCkgLyAoJGxvY2FsLW1heC1mb250IC8gMS4yNSkpZW1cbiAgICAgIGxpbmUtaGVpZ2h0OiAoKCRsaW5lLWhlaWdodC1yYXRpbyAqICRtYXgtZm9udCkgLyAoJGxvY2FsLW1heC1mb250IC8gMS41KSllbVxuICAgICAgbWFyZ2luLWJvdHRvbTogKCgkbGluZS1oZWlnaHQtcmF0aW8gKiAkbWF4LWZvbnQpIC8gKCRsb2NhbC1tYXgtZm9udCAvIC4yNSkgKiAoMSArICgzIC8gJGxvY2FsLW1heC1mb250KSkpZW1cblxudC1oNSgpXG4gICRsb2NhbC1taW4tZm9udCA9ICRtaW4tZm9udCAqICgkaGVhZGVyLXJhdGlvICoqIC4zNSlcbiAgJGxvY2FsLW1heC1mb250ID0gJG1heC1mb250ICogKCRoZWFkZXItcmF0aW8gKiogLjM1KVxuXG4gIGZvbnQtc2l6ZTogJGxvY2FsLW1pbi1mb250XG4gIGlmICR2ZXJ0aWNhbC1yaHl0aG0gaXMgdHJ1ZVxuICAgIG1hcmdpbi10b3A6ICgoJGxpbmUtaGVpZ2h0LXJhdGlvICogJG1pbi1mb250KSAvICgkbG9jYWwtbWluLWZvbnQgLyAxLjI1KSllbVxuICAgIGxpbmUtaGVpZ2h0OiAoKCRsaW5lLWhlaWdodC1yYXRpbyAqICRtaW4tZm9udCkgLyAoJGxvY2FsLW1pbi1mb250IC8gMS41KSllbVxuICAgIG1hcmdpbi1ib3R0b206ICgoJGxpbmUtaGVpZ2h0LXJhdGlvICogJG1pbi1mb250KSAvICgkbG9jYWwtbWluLWZvbnQgLyAuMjUpKWVtXG4gIGVsc2VcbiAgICBtYXJnaW4tdG9wOiAwXG4gICAgbGluZS1oZWlnaHQ6IDEuNWVtXG4gICAgbWFyZ2luLWJvdHRvbTogLjI1ZW1cblxuICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbi13aWR0aClcbiAgICBmb250LXNpemU6IHMoJ2NhbGMoICVzICsgKCVzIC0gJXMpICogKCgxMDB2dyAtICVzKSAvICglcyAtICVzKSkgKScsICRsb2NhbC1taW4tZm9udCwgcmVtb3ZlLXVuaXQoJGxvY2FsLW1heC1mb250KSwgcmVtb3ZlLXVuaXQoJGxvY2FsLW1pbi1mb250KSwgJG1pbi13aWR0aCwgcmVtb3ZlLXVuaXQoJG1heC13aWR0aCksIHJlbW92ZS11bml0KCRtaW4td2lkdGgpKVxuXG4gIEBtZWRpYSAobWluLXdpZHRoOiAkbWF4LXdpZHRoKVxuICAgIGZvbnQtc2l6ZTogJGxvY2FsLW1heC1mb250XG4gICAgaWYgJHZlcnRpY2FsLXJoeXRobSBpcyB0cnVlXG4gICAgICBtYXJnaW4tdG9wOiAoKCRsaW5lLWhlaWdodC1yYXRpbyAqICRtYXgtZm9udCkgLyAoJGxvY2FsLW1heC1mb250IC8gMS4yNSkpZW1cbiAgICAgIGxpbmUtaGVpZ2h0OiAoKCRsaW5lLWhlaWdodC1yYXRpbyAqICRtYXgtZm9udCkgLyAoJGxvY2FsLW1heC1mb250IC8gMS41KSllbVxuICAgICAgbWFyZ2luLWJvdHRvbTogKCgkbGluZS1oZWlnaHQtcmF0aW8gKiAkbWF4LWZvbnQpIC8gKCRsb2NhbC1tYXgtZm9udCAvIC4yNSkpZW1cblxudC1oNigpXG4gICRsb2NhbC1taW4tZm9udCA9ICRtaW4tZm9udFxuICAkbG9jYWwtbWF4LWZvbnQgPSAkbWF4LWZvbnRcblxuICBmb250LXNpemU6ICRsb2NhbC1taW4tZm9udFxuICBpZiAkdmVydGljYWwtcmh5dGhtIGlzIHRydWVcbiAgICBtYXJnaW4tdG9wOiAoKCRsaW5lLWhlaWdodC1yYXRpbyAqICRtaW4tZm9udCkgLyAoJGxvY2FsLW1pbi1mb250IC8gMS4yNSkpZW1cbiAgICBsaW5lLWhlaWdodDogKCgkbGluZS1oZWlnaHQtcmF0aW8gKiAkbWluLWZvbnQpIC8gKCRsb2NhbC1taW4tZm9udCAvIDEuNSkpZW1cbiAgICBtYXJnaW4tYm90dG9tOiAoKCRsaW5lLWhlaWdodC1yYXRpbyAqICRtaW4tZm9udCkgLyAoJGxvY2FsLW1pbi1mb250IC8gLjI1KSAqICgxICsgKDUgLyAkbG9jYWwtbWluLWZvbnQpKSllbVxuICBlbHNlXG4gICAgbWFyZ2luLXRvcDogMFxuICAgIGxpbmUtaGVpZ2h0OiAxLjZlbVxuICAgIG1hcmdpbi1ib3R0b206IC4yNWVtXG5cbiAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4td2lkdGgpXG4gICAgZm9udC1zaXplOiBzKCdjYWxjKCAlcyArICglcyAtICVzKSAqICgoMTAwdncgLSAlcykgLyAoJXMgLSAlcykpICknLCAkbG9jYWwtbWluLWZvbnQsIHJlbW92ZS11bml0KCRsb2NhbC1tYXgtZm9udCksIHJlbW92ZS11bml0KCRsb2NhbC1taW4tZm9udCksICRtaW4td2lkdGgsIHJlbW92ZS11bml0KCRtYXgtd2lkdGgpLCByZW1vdmUtdW5pdCgkbWluLXdpZHRoKSlcblxuICBAbWVkaWEgKG1pbi13aWR0aDogJG1heC13aWR0aClcbiAgICBmb250LXNpemU6ICRsb2NhbC1tYXgtZm9udFxuICAgIGlmICR2ZXJ0aWNhbC1yaHl0aG0gaXMgdHJ1ZVxuICAgICAgbWFyZ2luLXRvcDogKCgkbGluZS1oZWlnaHQtcmF0aW8gKiAkbWluLWZvbnQpIC8gKCRsb2NhbC1taW4tZm9udCAvIDEuMjUpKWVtXG4gICAgICBsaW5lLWhlaWdodDogKCgkbGluZS1oZWlnaHQtcmF0aW8gKiAkbWluLWZvbnQpIC8gKCRsb2NhbC1taW4tZm9udCAvIDEuNSkpZW1cbiAgICAgIG1hcmdpbi1ib3R0b206ICgoJGxpbmUtaGVpZ2h0LXJhdGlvICogJG1pbi1mb250KSAvICgkbG9jYWwtbWluLWZvbnQgLyAuMjUpICogKDEgKyAoMSAvICRsb2NhbC1taW4tZm9udCkpKWVtXG5cbnQtYmxvY2txdW90ZSgpXG4gIGZvbnQtc3R5bGU6IGl0YWxpY1xuICBjaXRlXG4gICAgZGlzcGxheTogYmxvY2tcbiAgICBmb250LXN0eWxlOiBub3JtYWxcblxudC1wcmUoKVxuICBwYWRkaW5nOiB2ci1ibG9jayguNSlcbiAgbWFyZ2luLWJvdHRvbTogdnItYmxvY2soMSlcbiAgY29kZVxuICAgIHBhZGRpbmc6IDBcblxudC1jb2RlKClcbiAgZm9udC1mYW1pbHk6ICRjb3VyaWVyXG4gIHBhZGRpbmc6ICgkbGluZS1oZWlnaHQtcmF0aW8gKiAuMDUpZW0gKCRsaW5lLWhlaWdodC1yYXRpbyAqIC4xNSllbVxuICBsaW5lLWhlaWdodDogMFxuXG50LWFiYnIoKVxuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkIGN1cnJlbnRDb2xvclxuICBjdXJzb3I6IGhlbHBcblxudC1kdCgpXG4gIGNvbG9yOiAkaGVhZGVyLWNvbG9yXG4gIGZvbnQtd2VpZ2h0OiBib2xkXG5cbnQtZmllbGRzZXQoKVxuICBwYWRkaW5nOiB2ci1ibG9jayguNSkgdnItYmxvY2soKSB2ci1ibG9jaygpXG4gIGJvcmRlci13aWR0aDogMXB4XG4gIGJvcmRlci1zdHlsZTogc29saWRcbiAgbWF4LXdpZHRoOiAxMDAlXG4gIG1hcmdpbi1ib3R0b206IHZyLWJsb2NrKDEsIDEpXG5cbiAgQG1lZGlhIChtaW4td2lkdGg6ICRtYXgtd2lkdGgpXG4gICAgbWFyZ2luLWJvdHRvbTogdnItYmxvY2soMS4yNSwgLTEpXG5cbiAgYnV0dG9uLCBpbnB1dFt0eXBlPVwic3VibWl0XCJdXG4gICAgbWFyZ2luLWJvdHRvbTogMFxuXG50LWxlZ2VuZCgpXG4gIGNvbG9yOiAkaGVhZGVyLWNvbG9yXG4gIGZvbnQtd2VpZ2h0OiBib2xkXG5cbnQtbGFiZWwoKVxuICBkaXNwbGF5OiBibG9ja1xuICBwYWRkaW5nLWJvdHRvbTogdnItYmxvY2soLjEyNSlcbiAgbWFyZ2luLWJvdHRvbTogdnItYmxvY2soLS4yNSwgLTEwKVxuXG50LWlucHV0KClcbiAgJGxvY2FsLW1pbi1mb250ID0gJG1pbi1mb250XG4gICRsb2NhbC1tYXgtZm9udCA9ICRtYXgtZm9udFxuXG4gIGRpc3BsYXk6IGJsb2NrXG4gIG1heC13aWR0aDogMTAwJVxuICBwYWRkaW5nOiB2ci1ibG9jayguMjUpXG5cbiAgZm9udC1zaXplOiAkbG9jYWwtbWluLWZvbnRcbiAgbWFyZ2luLWJvdHRvbTogdnItYmxvY2soLjUsIDcpXG5cbiAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4td2lkdGgpXG4gICAgZm9udC1zaXplOiBzKCdjYWxjKCAlcyArICglcyAtICVzKSAqICgoMTAwdncgLSAlcykgLyAoJXMgLSAlcykpICknLCAkbG9jYWwtbWluLWZvbnQsIHJlbW92ZS11bml0KCRsb2NhbC1tYXgtZm9udCksIHJlbW92ZS11bml0KCRsb2NhbC1taW4tZm9udCksICRtaW4td2lkdGgsIHJlbW92ZS11bml0KCRtYXgtd2lkdGgpLCByZW1vdmUtdW5pdCgkbWluLXdpZHRoKSlcblxuICBAbWVkaWEgKG1pbi13aWR0aDogJG1heC13aWR0aClcbiAgICBmb250LXNpemU6ICRsb2NhbC1tYXgtZm9udFxuICAgIG1hcmdpbi1ib3R0b206IHZyLWJsb2NrKC4yNSwgMy41KVxuXG50LWJ1dHRvbigpXG4gICRsb2NhbC1taW4tZm9udCA9ICRtaW4tZm9udFxuICAkbG9jYWwtbWF4LWZvbnQgPSAkbWF4LWZvbnRcblxuICBkaXNwbGF5OiBibG9ja1xuICBjdXJzb3I6IHBvaW50ZXJcblxuICBmb250LXNpemU6ICRsb2NhbC1taW4tZm9udFxuICBwYWRkaW5nOiB2ci1ibG9jayguMjUpIHZyLWJsb2NrKClcbiAgbWFyZ2luLWJvdHRvbTogdnItYmxvY2soLjc1LCAtMilcblxuICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbi13aWR0aClcbiAgICBmb250LXNpemU6IHMoJ2NhbGMoICVzICsgKCVzIC0gJXMpICogKCgxMDB2dyAtICVzKSAvICglcyAtICVzKSkgKScsICRsb2NhbC1taW4tZm9udCwgcmVtb3ZlLXVuaXQoJGxvY2FsLW1heC1mb250KSwgcmVtb3ZlLXVuaXQoJGxvY2FsLW1pbi1mb250KSwgJG1pbi13aWR0aCwgcmVtb3ZlLXVuaXQoJG1heC13aWR0aCksIHJlbW92ZS11bml0KCRtaW4td2lkdGgpKVxuXG4gIEBtZWRpYSAobWluLXdpZHRoOiAkbWF4LXdpZHRoKVxuICAgIGZvbnQtc2l6ZTogJGxvY2FsLW1heC1mb250XG4gICAgbWFyZ2luLWJvdHRvbTogdnItYmxvY2soLjc1KVxuXG50LXRhYmxlKClcbiAgd2lkdGg6IDEwMCVcbiAgYm9yZGVyLXNwYWNpbmc6IDBcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZVxuICBtYXJnaW4tYm90dG9tOiB2ci1ibG9jaygxLCA1KVxuXG4gIEBtZWRpYSAobWluLXdpZHRoOiAkbWF4LXdpZHRoKVxuICAgIG1hcmdpbi1ib3R0b206IHZyLWJsb2NrKDEsIDMuNSlcblxudC10aCgpXG4gIHRleHQtYWxpZ246IGxlZnRcbiAgY29sb3I6ICRoZWFkZXItY29sb3JcblxuICBwYWRkaW5nOiB2ci1ibG9jayguMTI1KSB2ci1ibG9jayguNSlcblxuICBAbWVkaWEgKG1pbi13aWR0aDogJG1heC13aWR0aClcbiAgICBwYWRkaW5nOiB2ci1ibG9jayguMjUpIHZyLWJsb2NrKC41KVxuXG50LXRkKClcbiAgcGFkZGluZzogdnItYmxvY2soLjEyNSkgdnItYmxvY2soLjUpXG5cbiAgQG1lZGlhIChtaW4td2lkdGg6ICRtYXgtd2lkdGgpXG4gICAgcGFkZGluZzogdnItYmxvY2soLjI1KSB2ci1ibG9jayguNSlcblxuLyoqXG4gKiBUaGUgVHlwb2dyYXBoaWMgUmVzZXQuIFRoaXMgaXMgd2hlcmUgVHlwb2dyYXBoaWMgZ29lcyB0aHJvdWdoIGV2ZXJ5IG1hcmt1cCBlbGVtZW50IGFuZCBzdHlsZXMgaXQgdG8gYWRoZXJlIHRvIGEgdmVydGljYWwgcmh5dGhtLiBBZnRlciB5b3Ugc2V0IHlvdXIgdmFyaWFibGVzIGluIGEgc2V0dGluZ3MgZmlsZSBmaXJlIHRoaXMgbWl4aW4uXG4gKlxuICogQGV4YW1wbGVcbiAqICAgdHlwb2dyYXBoaWMoKVxuICovXG5cbnR5cG9ncmFwaGljKClcblxuICBodG1sXG4gICAgdC1odG1sKClcblxuICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBwLCBibG9ja3F1b3RlLCBwcmUsXG4gIGEsIGFiYnIsIGFjcm9ueW0sIGFkZHJlc3MsIGJpZywgY2l0ZSwgY29kZSxcbiAgZGVsLCBkZm4sIGVtLCBpbWcsIGlucywga2JkLCBxLCBzLCBzYW1wLFxuICBzbWFsbCwgc3RyaWtlLCBzdHJvbmcsIHN1Yiwgc3VwLCB0dCwgdmFyLFxuICBiLCB1LCBpLCBjZW50ZXIsXG4gIGRsLCBkdCwgZGQsIG9sLCB1bCwgbGksXG4gIGZpZWxkc2V0LCBmb3JtLCBsYWJlbCwgbGVnZW5kLFxuICB0YWJsZSwgY2FwdGlvbiwgdGJvZHksIHRmb290LCB0aGVhZCwgdHIsIHRoLCB0ZFxuICAgIHQtcmVzZXQoKVxuXG4gIHAsIGJsb2NrcXVvdGUsIHByZSxcbiAgYWRkcmVzcyxcbiAgZGwsIG9sLCB1bCxcbiAgdGFibGVcbiAgICB0LWJsb2NrKClcblxuICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2XG4gICAgdC1oZWFkZXIoKVxuXG4gIGgxXG4gICAgdC1oMSgpXG5cbiAgaDJcbiAgICB0LWgyKClcblxuICBoM1xuICAgIHQtaDMoKVxuXG4gIGg0XG4gICAgdC1oNCgpXG5cbiAgaDVcbiAgICB0LWg1KClcblxuICBoNlxuICAgIHQtaDYoKVxuXG4gIGJsb2NrcXVvdGVcbiAgICB0LWJsb2NrcXVvdGUoKVxuXG4gIHByZVxuICAgIHQtcHJlKClcblxuICBjb2RlXG4gICAgdC1jb2RlKClcblxuICBiaWcsIHNtYWxsLCBzdWIsIHN1cFxuICAgIGxpbmUtaGVpZ2h0OiAwXG5cbiAgYWJiciwgYWNyb255bVxuICAgIHQtYWJicigpXG5cbiAgYWRkcmVzc1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbFxuXG4gIGR0XG4gICAgdC1kdCgpXG5cbiAgdWxcbiAgICBwYWRkaW5nLWxlZnQ6IDEuMWVtXG5cbiAgb2xcbiAgICBwYWRkaW5nLWxlZnQ6IDEuNGVtXG5cbiAgZmllbGRzZXRcbiAgICB0LWZpZWxkc2V0KClcblxuICBsZWdlbmRcbiAgICB0LWxlZ2VuZCgpXG5cbiAgbGFiZWxcbiAgICB0LWxhYmVsKClcblxuICBpbnB1dFt0eXBlPVwidGV4dFwiXSwgaW5wdXRbdHlwZT1cImVtYWlsXCJdLCBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sIHRleHRhcmVhXG4gICAgdC1pbnB1dCgpXG5cbiAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSwgYnV0dG9uXG4gICAgdC1idXR0b24oKVxuXG4gIHRhYmxlXG4gICAgdC10YWJsZSgpXG5cbiAgdGhcbiAgICB0LXRoKClcblxuICB0ZFxuICAgIHQtdGQoKVxuIiwiQGltcG9ydCAnLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy90eXBvZ3JhcGhpYy9zdHlsdXMvdHlwb2dyYXBoaWMuc3R5bCdcclxudHlwb2dyYXBoaWMoKVxyXG5cclxuXHJcbi5zYWNyYW1lbnRvXHRcclxuXHR0LWhlYWRlcigpXHRcclxuXHRmb250LWZhbWlseSAkcGFsYXRpbm9cdFxyXG4ubWFpbkhlYWRpbmdcclxuXHRjZW50ZXIoKVxyXG5cdHRleHQtYWxpZ24gY2VudGVyIFxyXG5cdCYgaDFcclxuXHRcdGZvbnQtc2l6ZSByZW0oNDEuODg2OHB4KVxyXG5cdFx0bWFyZ2luLXRvcCByZW0oOS44ODg3NXB4KVxyXG5cdFx0bWFyZ2luLWJvdHRvbSByZW0oMjUuODg4cHgpXHJcbi5yZXByZXNlbnRhZG9zLU1haW5IZWFkaW5nXHJcblx0dGV4dC1hbGlnbiBjZW50ZXJcclxuXHRtYXJnaW4tYm90dG9tIDEwcHhcclxuLnJ1bGUgXHJcblx0cnVsZSgjREJEQkRCKVxyXG5cclxuLmNhcmRcclxuXHRsaW5lLWhlaWdodCAxLjU1ZW0iLCIvKipcbiAqIFN0eWxlIGFuIGVsZW1lbnQgYXMgYSBjb2x1bW4gd2l0aCBhIGd1dHRlci5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbcmF0aW9zPTFdIC0gQSB3aWR0aCByZWxhdGl2ZSB0byBpdHMgY29udGFpbmVyIGFzIGEgZnJhY3Rpb24uXG4gKiBAcGFyYW0ge251bWJlcn0gW29mZnNldD0wXSAtIEEgb2Zmc2V0IHNwZWNpZmllZCBhcyBhIGZyYWN0aW9uIChzZWUgcmF0aW9zKS5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbY3ljbGU9MF0gLSBFYXNpbHkgY3JlYXRlIGFuIG50aCBjb2x1bW4gZ3JpZCB3aGVyZSBjeWNsZSBlcXVhbHMgdGhlIG51bWJlciBvZiBjb2x1bW5zLlxuICogQHBhcmFtIHtudW1iZXJ9IFt1bmN5Y2xlPTBdIC0gVW5kbyBhIHByZXZpb3VzIGN5Y2xlIHZhbHVlIHRvIGFsbG93IGZvciBhIG5ldyBvbmUuXG4gKiBAcGFyYW0ge251bWJlcn0gW2d1dHRlcj1qZWV0Lmd1dHRlcl0gLSBTcGVjaWZ5IHRoZSBndXR0ZXIgd2lkdGggYXMgYSBwZXJjZW50YWdlIG9mIHRoZSBjb250YWluZXJzIHdpZHRoLlxuICovXG5jb2x1bW4ocmF0aW9zID0gMSwgb2Zmc2V0ID0gMCwgY3ljbGUgPSAwLCB1bmN5Y2xlID0gMCwgZ3V0dGVyID0gamVldC5ndXR0ZXIpXG4gIHNpZGUgPSBqZWV0LWdldC1sYXlvdXQtZGlyZWN0aW9uKClcbiAgb3Bwb3NpdGUtc2lkZSA9IG9wcG9zaXRlLXBvc2l0aW9uKHNpZGUpXG4gIGNvbHVtbi13aWR0aHMgPSBqZWV0LWdldC1jb2x1bW4ocmF0aW9zLCBndXR0ZXIpXG4gIG1hcmdpbi1sYXN0ID0gMFxuICBtYXJnaW4tbCA9IG1hcmdpbi1sYXN0XG4gIG1hcmdpbi1yID0gY29sdW1uLXdpZHRoc1sxXVxuXG4gIHVubGVzcyBvZmZzZXQgPT0gMFxuICAgIGlmIG9mZnNldCA8IDBcbiAgICAgIG9mZnNldCAqPSAtMVxuICAgICAgb2Zmc2V0ID0gamVldC1nZXQtY29sdW1uKG9mZnNldCwgY29sdW1uLXdpZHRoc1sxXSlbMF1cbiAgICAgIG1hcmdpbi1yID0gbWFyZ2luLWxhc3QgPSBvZmZzZXQgKyBjb2x1bW4td2lkdGhzWzFdICogMlxuICAgIGVsc2VcbiAgICAgIG9mZnNldCA9IGplZXQtZ2V0LWNvbHVtbihvZmZzZXQsIGNvbHVtbi13aWR0aHNbMV0pWzBdXG4gICAgICBtYXJnaW4tbCA9IG9mZnNldCArIGNvbHVtbi13aWR0aHNbMV1cblxuICBjZigpXG4gIGZsb2F0OiBzaWRlXG4gIGNsZWFyOiBub25lXG4gIHRleHQtYWxpZ246IGluaGVyaXRcbiAgd2lkdGg6IChjb2x1bW4td2lkdGhzWzBdKSVcbiAgbWFyZ2luLXtzaWRlfTogKG1hcmdpbi1sKSVcbiAgbWFyZ2luLXtvcHBvc2l0ZS1zaWRlfTogKG1hcmdpbi1yKSVcblxuICBpZiB1bmN5Y2xlICE9IDBcbiAgICAmOm50aC1jaGlsZCh7dW5jeWNsZX1uKVxuICAgICAgbWFyZ2luLXtvcHBvc2l0ZS1zaWRlfTogKG1hcmdpbi1yKSVcbiAgICAgIGZsb2F0OiBzaWRlXG4gICAgJjpudGgtY2hpbGQoe3VuY3ljbGV9bisxKVxuICAgICAgY2xlYXI6IG5vbmVcblxuICBpZiBjeWNsZSAhPSAwXG4gICAgJjpudGgtY2hpbGQoe2N5Y2xlfW4pXG4gICAgICBtYXJnaW4te29wcG9zaXRlLXNpZGV9OiAobWFyZ2luLWxhc3QpJVxuICAgICAgZmxvYXQ6IG9wcG9zaXRlLXNpZGVcbiAgICAmOm50aC1jaGlsZCh7Y3ljbGV9bisxKVxuICAgICAgY2xlYXI6IGJvdGhcbiAgIGVsc2VcbiAgICAmOmxhc3QtY2hpbGRcbiAgICAgIG1hcmdpbi17b3Bwb3NpdGUtc2lkZX06IChtYXJnaW4tbGFzdCklXG5cbi8qKlxuICogQW4gYWxpYXMgZm9yIHRoZSBjb2x1bW4gbWl4aW4uXG4gKi9cbmNvbCA9IGNvbHVtblxuXG4vKipcbiAqIEdldCB0aGUgd2lkdGggb2YgYSBjb2x1bW4gYW5kIG5vdGhpbmcgZWxzZS5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbcmF0aW9zPTFdIC0gQSB3aWR0aCByZWxhdGl2ZSB0byBpdHMgY29udGFpbmVyIGFzIGEgZnJhY3Rpb24uXG4gKiBAcGFyYW0ge251bWJlcn0gW2d1dHRlcj1qZWV0Lmd1dHRlcl0gLSBTcGVjaWZ5IHRoZSBndXR0ZXIgd2lkdGggYXMgYSBwZXJjZW50YWdlIG9mIHRoZSBjb250YWluZXJzIHdpZHRoLlxuICovXG5jb2x1bW4td2lkdGgocmF0aW9zID0gMSwgZ3V0dGVyID0gamVldC5ndXR0ZXIpXG4gIHJldHVybiBqZWV0LWdldC1jb2x1bW4ocmF0aW9zLCBndXR0ZXIpWzBdICsgJyUnXG5cbi8qKlxuICogQW4gYWxpYXMgZm9yIHRoZSBjb2x1bW4td2lkdGggZnVuY3Rpb24uXG4gKi9cbmN3ID0gY29sdW1uLXdpZHRoXG5cbi8qKlxuICogR2V0IHRoZSBndXR0ZXIgc2l6ZSBvZiBhIGNvbHVtbiBhbmQgbm90aGluZyBlbHNlLlxuICogQHBhcmFtIHtudW1iZXJ9IFtyYXRpb3M9MV0gLSBBIHdpZHRoIHJlbGF0aXZlIHRvIGl0cyBjb250YWluZXIgYXMgYSBmcmFjdGlvbi5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbZ3V0dGVyPWplZXQuZ3V0dGVyXSAtIFNwZWNpZnkgdGhlIGd1dHRlciB3aWR0aCBhcyBhIHBlcmNlbnRhZ2Ugb2YgdGhlIGNvbnRhaW5lcnMgd2lkdGguXG4gKi9cbmNvbHVtbi1ndXR0ZXIocmF0aW9zID0gMSwgZ3V0dGVyID0gamVldC5ndXR0ZXIpXG4gIHJldHVybiBqZWV0LWdldC1jb2x1bW4ocmF0aW9zLCBndXR0ZXIpWzFdICsgJyUnXG5cbi8qKlxuICogQW4gYWxpYXMgZm9yIHRoZSBjb2x1bW4tZ3V0dGVyIGZ1bmN0aW9uLlxuICovXG5jZyA9IGNvbHVtbi1ndXR0ZXJcblxuLyoqXG4gKiBTdHlsZSBhbiBlbGVtZW50IGFzIGEgY29sdW1uIHdpdGhvdXQgYW55IGd1dHRlcnMgZm9yIGEgc2VhbWxlc3Mgcm93LlxuICogQHBhcmFtIHtudW1iZXJ9IFtyYXRpb3M9MV0gLSBBIHdpZHRoIHJlbGF0aXZlIHRvIGl0cyBjb250YWluZXIgYXMgYSBmcmFjdGlvbi5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbb2Zmc2V0PTBdIC0gQSBvZmZzZXQgc3BlY2lmaWVkIGFzIGEgZnJhY3Rpb24gKHNlZSByYXRpb3MpLlxuICogQHBhcmFtIHtudW1iZXJ9IFtjeWNsZT0wXSAtIEVhc2lseSBjcmVhdGUgYW4gbnRoIGNvbHVtbiBncmlkIHdoZXJlIGN5Y2xlIGVxdWFscyB0aGUgbnVtYmVyIG9mIGNvbHVtbnMuXG4gKiBAcGFyYW0ge251bWJlcn0gW3VuY3ljbGU9MF0gLSBVbmRvIGEgcHJldmlvdXMgY3ljbGUgdmFsdWUgdG8gYWxsb3cgZm9yIGEgbmV3IG9uZS5cbiAqL1xuc3BhbihyYXRpbyA9IDEsIG9mZnNldCA9IDAsIGN5Y2xlID0gMCwgdW5jeWNsZSA9IDApXG4gIHNpZGUgPSBqZWV0LWdldC1sYXlvdXQtZGlyZWN0aW9uKClcbiAgb3Bwb3NpdGUtc2lkZSA9IG9wcG9zaXRlLXBvc2l0aW9uKHNpZGUpXG4gIHNwYW4td2lkdGggPSBqZWV0LWdldC1zcGFuKHJhdGlvKVxuICBtYXJnaW4tciA9IDBcbiAgbWFyZ2luLWwgPSBtYXJnaW4tclxuXG4gIHVubGVzcyBvZmZzZXQgPT0gMFxuICAgIGlmIG9mZnNldCA8IDBcbiAgICAgIG9mZnNldCAqPSAtMVxuICAgICAgbWFyZ2luLXIgPSBqZWV0LWdldC1zcGFuKG9mZnNldClcbiAgICBlbHNlXG4gICAgICBtYXJnaW4tbCA9IGplZXQtZ2V0LXNwYW4ob2Zmc2V0KVxuXG4gIGNmKClcbiAgZmxvYXQ6IHNpZGVcbiAgY2xlYXI6IG5vbmVcbiAgdGV4dC1hbGlnbjogaW5oZXJpdFxuICB3aWR0aDogKHNwYW4td2lkdGgpJVxuICBtYXJnaW4te3NpZGV9OiAobWFyZ2luLWwpJVxuICBtYXJnaW4te29wcG9zaXRlLXNpZGV9OiAobWFyZ2luLXIpJVxuXG4gIGlmIGN5Y2xlICE9IDBcbiAgICAmOm50aC1jaGlsZCh7Y3ljbGV9bilcbiAgICAgIGZsb2F0OiBvcHBvc2l0ZS1zaWRlXG4gICAgJjpudGgtY2hpbGQoe2N5Y2xlfW4gKyAxKVxuICAgICAgY2xlYXI6IGJvdGhcblxuICBpZiB1bmN5Y2xlICE9IDBcbiAgICAmOm50aC1jaGlsZCh7dW5jeWNsZX1uKVxuICAgICAgZmxvYXQ6IHNpZGVcbiAgICAmOm50aC1jaGlsZCh7dW5jeWNsZX1uICsgMSlcbiAgICAgIGNsZWFyOiBub25lXG5cbi8qKlxuICogUmVvcmRlciBjb2x1bW5zIHdpdGhvdXQgYWx0ZXJpbmcgdGhlIEhUTUwuXG4gKiBAcGFyYW0ge251bWJlcn0gW3JhdGlvcz0wXSAtIFNwZWNpZnkgaG93IGZhciBhbG9uZyB5b3Ugd2FudCB0aGUgZWxlbWVudCB0byBtb3ZlLlxuICogQHBhcmFtIHtzdHJpbmd9IFtjb2wtb3Itc3Bhbj1jb2x1bW5dIC0gU3BlY2lmeSB3aGV0aGVyIHRoZSBlbGVtZW50IGhhcyBhIGd1dHRlciBvciBub3QuXG4gKiBAcGFyYW0ge251bWJlcn0gW2d1dHRlcj1qZWV0Lmd1dHRlcl0gLSBTcGVjaWZ5IHRoZSBndXR0ZXIgd2lkdGggYXMgYSBwZXJjZW50YWdlIG9mIHRoZSBjb250YWluZXJzIHdpZHRoLlxuICovXG5zaGlmdChyYXRpb3MgPSAwLCBjb2wtb3Itc3BhbiA9IGNvbHVtbiwgZ3V0dGVyID0gamVldC5ndXR0ZXIpXG4gIHRyYW5zbGF0ZSA9ICcnXG4gIHNpZGUgPSBqZWV0LWdldC1sYXlvdXQtZGlyZWN0aW9uKClcblxuICBpZiBzaWRlID09IHJpZ2h0XG4gICAgcmF0aW9zID0gamVldC1yZXBsYWNlLW50aChyYXRpb3MsIDAsIHJhdGlvc1swXSAqIC0xKVxuXG4gIGlmIGNvbC1vci1zcGFuID09IGNvbHVtbiBvciBjb2wtb3Itc3BhbiA9PSBjb2wgb3IgY29sLW9yLXNwYW4gPT0gY1xuICAgIGNvbHVtbi13aWR0aHMgPSBqZWV0LWdldC1jb2x1bW4ocmF0aW9zLCBndXR0ZXIpXG4gICAgdHJhbnNsYXRlID0gY29sdW1uLXdpZHRoc1swXSArIGNvbHVtbi13aWR0aHNbMV1cbiAgZWxzZVxuICAgIHRyYW5zbGF0ZSA9IGplZXQtZ2V0LXNwYW4ocmF0aW9zKVxuXG4gIHBvc2l0aW9uOiByZWxhdGl2ZVxuICBsZWZ0OiAodHJhbnNsYXRlKSVcblxuLyoqXG4gKiBSZXNldCBhbiBlbGVtZW50IHRoYXQgaGFzIGhhZCBzaGlmdCgpIGFwcGxpZWQgdG8gaXQuXG4gKi9cbnVuc2hpZnQoKVxuICBwb3NpdGlvbjogc3RhdGljXG4gIGxlZnQ6IDBcblxuLyoqXG4gKiBWaWV3IHRoZSBncmlkIGFuZCBpdHMgbGF5ZXJzIGZvciBlYXN5IGRlYnVnZ2luZy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbY29sb3I9YmxhY2tdIC0gVGhlIGJhY2tncm91bmQgdGludCBhcHBsaWVkLlxuICogQHBhcmFtIHtib29sZWFufSBbaW1wb3J0YW50PWZhbHNlXSAtIFdoZXRoZXIgdG8gYXBwbHkgdGhlIHN0eWxlIGFzICFpbXBvcnRhbnQuXG4gKi9cbmVkaXQoY29sb3IgPSBibGFjaywgaW1wb3J0YW50ID0gZmFsc2UpXG4gIGlmIGltcG9ydGFudFxuICAgICpcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoY29sb3IsIDUlKSAhaW1wb3J0YW50XG4gIGVsc2VcbiAgICAqXG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKGNvbG9yLCA1JSlcblxuLyoqXG4gKiAgQWxpYXMgZm9yIGVkaXQoKS5cbiAqL1xuZGVidWcgPSBlZGl0XG5cbi8qKlxuICogSG9yaXpvbnRhbGx5IGNlbnRlciBhbiBlbGVtZW50LlxuICogQHBhcmFtIHtudW1iZXJ9IFttYXgtd2lkdGg9amVldC5tYXgtd2lkdGhdIC0gVGhlIG1heCB3aWR0aCB0aGUgZWxlbWVudCBjYW4gYmUuXG4gKiBAcGFyYW0ge251bWJlcn0gW3BhZD0wXSAtIFNwZWNpZnkgdGhlIGVsZW1lbnQncyBsZWZ0IGFuZCByaWdodCBwYWRkaW5nLlxuICovXG5jZW50ZXIobWF4LXdpZHRoID0gamVldC5tYXgtd2lkdGgsIHBhZCA9IDApXG4gIGNmKClcbiAgd2lkdGg6IGF1dG9cbiAgbWF4LXdpZHRoOiBtYXgtd2lkdGhcbiAgZmxvYXQ6IG5vbmVcbiAgZGlzcGxheTogdW5xdW90ZSgnYmxvY2snKVxuICBtYXJnaW4tcmlnaHQ6IGF1dG9cbiAgbWFyZ2luLWxlZnQ6IGF1dG9cbiAgcGFkZGluZy1sZWZ0OiBwYWRcbiAgcGFkZGluZy1yaWdodDogcGFkXG5cbi8qKlxuICogVW5jZW50ZXIgYW4gZWxlbWVudC5cbiAqL1xudW5jZW50ZXIoKVxuICBtYXgtd2lkdGg6IG5vbmVcbiAgbWFyZ2luLXJpZ2h0OiAwXG4gIG1hcmdpbi1sZWZ0OiAwXG4gIHBhZGRpbmctbGVmdDogMFxuICBwYWRkaW5nLXJpZ2h0OiAwXG5cbi8qKlxuICogU3RhY2sgYW4gZWxlbWVudCBzbyB0aGF0IG5vdGhpbmcgaXMgZWl0aGVyIHNpZGUgb2YgaXQuXG4gKiBAcGFyYW0ge251bWJlcn0gW3BhZD0wXSAtIFNwZWNpZnkgdGhlIGVsZW1lbnQncyBsZWZ0IGFuZCByaWdodCBwYWRkaW5nLlxuICogQHBhcmFtIHtib2xsZWFuL3N0cmluZ30gW2FsaWduPWZhbHNlXSAtIFNwZWNpZnkgdGhlIHRleHQgYWxpZ24gZm9yIHRoZSBlbGVtZW50LlxuICovXG5zdGFjayhwYWQgPSAwLCBhbGlnbiA9IGZhbHNlKVxuICBzaWRlID0gamVldC1nZXQtbGF5b3V0LWRpcmVjdGlvbigpXG4gIG9wcG9zaXRlLXNpZGUgPSBvcHBvc2l0ZS1wb3NpdGlvbihzaWRlKVxuXG4gIGRpc3BsYXk6IHVucXVvdGUoJ2Jsb2NrJylcbiAgY2xlYXI6IGJvdGhcbiAgZmxvYXQ6IG5vbmVcbiAgd2lkdGg6IDEwMCVcbiAgbWFyZ2luLWxlZnQ6IGF1dG9cbiAgbWFyZ2luLXJpZ2h0OiBhdXRvXG5cbiAgJjpmaXJzdC1jaGlsZFxuICAgIG1hcmdpbi17c2lkZX06IGF1dG9cblxuICAmOmxhc3QtY2hpbGRcbiAgICBtYXJnaW4te29wcG9zaXRlLXNpZGV9OiBhdXRvXG5cbiAgaWYgcGFkICE9IDBcbiAgICBwYWRkaW5nLWxlZnQ6IHBhZFxuICAgIHBhZGRpbmctcmlnaHQ6IHBhZFxuXG4gIGlmIChhbGlnbiBpcyBub3QgZmFsc2UpXG4gICAgaWYgKGFsaWduID09IGNlbnRlcikgb3IgKGFsaWduID09IGMpXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXJcbiAgICBpZiAoYWxpZ24gPT0gbGVmdCkgb3IgKGFsaWduID09IGwpXG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0XG4gICAgaWYgKGFsaWduID09IHJpZ2h0KSBvciAoYWxpZ24gPT0gcilcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0XG5cbi8qKlxuICogVW5zdGFjayBhbiBlbGVtZW50LlxuICovXG51bnN0YWNrKClcbiAgc2lkZSA9IGplZXQtZ2V0LWxheW91dC1kaXJlY3Rpb24oKVxuICBvcHBvc2l0ZS1zaWRlID0gb3Bwb3NpdGUtcG9zaXRpb24oc2lkZSlcblxuICB0ZXh0LWFsaWduOiBzaWRlXG4gIGRpc3BsYXk6IGlubGluZVxuICBjbGVhcjogbm9uZVxuICB3aWR0aDogYXV0b1xuICBtYXJnaW4tbGVmdDogMFxuICBtYXJnaW4tcmlnaHQ6IDBcblxuICAmOmZpcnN0LWNoaWxkXG4gICAgbWFyZ2luLXtzaWRlfTogMFxuXG4gICY6bGFzdC1jaGlsZFxuICAgIG1hcmdpbi17b3Bwb3NpdGUtc2lkZX06IDBcblxuLyoqXG4gKiBDZW50ZXIgYW4gZWxlbWVudCBvbiBlaXRoZXIgb3IgYm90aCBheGVzLlxuICogQHJlcXVpcmVzIEEgcGFyZW50IGNvbnRhaW5lciB3aXRoIHJlbGF0aXZlIHBvc2l0aW9uaW5nLlxuICogQHBhcmFtIHtzdHJpbmd9IFtkaXJlY3Rpb249Ym90aF0gLSBTcGVjaWZ5IHdoaWNoIGF4ZXMgdG8gY2VudGVyIHRoZSBlbGVtZW50IG9uLlxuICovXG5hbGlnbihkaXJlY3Rpb24gPSBib3RoKVxuICBwb3NpdGlvbjogYWJzb2x1dGVcbiAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZFxuXG4gIGlmIChkaXJlY3Rpb24gPT0gaG9yaXpvbnRhbCkgb3IgKGRpcmVjdGlvbiA9PSBoKVxuICAgIGxlZnQ6IDUwJVxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKVxuICBlbHNlIGlmIChkaXJlY3Rpb24gPT0gdmVydGljYWwpIG9yIChkaXJlY3Rpb24gPT0gdilcbiAgICB0b3A6IDUwJVxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKVxuICBlbHNlXG4gICAgdG9wOiA1MCVcbiAgICBsZWZ0OiA1MCVcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKVxuXG4vKipcbiAqIEFwcGx5IGEgY2xlYXJmaXggdG8gYW4gZWxlbWVudC5cbiAqL1xuY2YoKVxuICAqem9vbTogMVxuXG4gICY6YmVmb3JlLCAmOmFmdGVyXG4gICAgY29udGVudDogJydcbiAgICBkaXNwbGF5OiB0YWJsZVxuXG4gICY6YWZ0ZXJcbiAgICBjbGVhcjogYm90aFxuIiwiLy8gTWl4aW46IGdyb3VwXG4vLyBDbGVhcmZpeCB3aXRoIGEgYmV0dGVyIG5hbWUuIEV4Y2VsbGVudCBmb3Igd3JhbmdsaW5nIGZsb2F0cy4gVGFrZW4gZnJvbVxuLy8gaHR0cDovL3d3dy5jc3Ntb2pvLmNvbS9sYXRlc3RfbmV3X2NsZWFyZml4X3NvX2Zhci9cbi8vIERvZXMgbm90IHN1cHBvcnQgSUUgNiBhbmQgNyBiZWNhdXNlIHlvdSBzaG91bGQgbm90IHN1cHBvcnQgdGhlbSBlaXRoZXIuXG5cbmdyb3VwKClcbiAgJjphZnRlclxuICAgIGNvbnRlbnQ6IFwiXCJcbiAgICBkaXNwbGF5OiB0YWJsZVxuICAgIGNsZWFyOiBib3RoXG5cbi8vIEFsaWFzOiBjbGVhcmZpeFxuLy8gR3JvdXAgd2l0aCBhIHdvcnNlIG5hbWUuIElmIHlvdSBuZWVkIHJlYWxseSBjYW4ndCBicmVhayB0aGUgaGFiaXQuXG5jbGVhcmZpeCA9IGdyb3VwXG5cbi8vIEZ1bmN0aW9uOiBwb3Ncbi8vIEJhY2tzIHBvc2l0aW9uIGhlbHBlcnMsIGZvdW5kIGJlbG93XG4tcG9zKHR5cGUsIGFyZ3MpXG4gIGkgPSAwXG4gIHBvc2l0aW9uOiB1bnF1b3RlKHR5cGUpXG4gIGZvciBqIGluICgxLi40KVxuICAgIGlmIGxlbmd0aChhcmdzKSA+IGlcbiAgICAgIHthcmdzW2ldfTogYXJnc1tpICsgMV0gaXMgYSAndW5pdCcgPyBhcmdzW2kgKz0gMV0gOiAwXG4gICAgaSArPSAxXG5cbi8vIE1peGluOiBQb3NpdGlvbnNcbi8vIFN5bnRheCBzaG9ydGN1dHMgZm9yIGFic29sdXRlLCByZWxhdGl2ZSwgYW5kIGZpeGVkIHBvc2l0aW9uaW5nLiBQb3J0ZWRcbi8vIGZyb20gbmliOiBodHRwczovL2dpdGh1Yi5jb20vdGovbmliL2Jsb2IvbWFzdGVyL2xpYi9uaWIvcG9zaXRpb25zLnN0eWxcblxuZml4ZWQoKVxuICAtcG9zKCdmaXhlZCcsIGFyZ3VtZW50cylcblxuYWJzb2x1dGUoKVxuICAtcG9zKCdhYnNvbHV0ZScsIGFyZ3VtZW50cylcblxucmVsYXRpdmUoKVxuICAtcG9zKCdyZWxhdGl2ZScsIGFyZ3VtZW50cylcblxuLy8gTWl4aW46IFNpemVcbi8vIFNob3J0Y3V0IGZvciBzZXR0aW5nIHdpZHRoIGFuZCBoZWlnaHQgcXVpY2tseS4gSWYgcGFzc2VkIG9uZSB2YWx1ZSwgc2V0cyB0aGlzXG4vLyB2YWx1ZSBhcyBib3RoIHdpZHRoIGFuZCBoZWlnaHQuXG4vL1xuLy8gZXguIHNpemU6IDEwcHggMzBweFxuLy8gZXguIHNpemU6IDEwcHhcblxuc2l6ZSgpXG4gIGlmIGxlbmd0aChhcmd1bWVudHMpID09IDFcbiAgICB3aWR0aDogYXJndW1lbnRzWzBdXG4gICAgaGVpZ2h0OiBhcmd1bWVudHNbMF1cbiAgZWxzZVxuICAgIHdpZHRoOiBhcmd1bWVudHNbMF1cbiAgICBoZWlnaHQ6IGFyZ3VtZW50c1sxXVxuXG4vLyBNaXhpbjogQ29sdW1uc1xuLy9cbi8vIEZvciBjc3MzIGNvbHVtbnMuIFRha2VzIGNvbHVtbiBjb3VudCAoaW50KSwgY29sdW1uIGdhcCAocHgsIGVtKSwgY29sdW1uIHdpZHRoXG4vLyAocHgsIGVtKSwgYW5kIGEgYm9yZGVyLWxpa2UgZGVjbGFyYXRpb24gaWYgeW91IHdhbnQgYSBjb2x1bW4gcnVsZS4gVGhpc1xuLy8gZm9sbG93cyBleGFjdGx5IHdpdGggdGhlIGNzczMgc3BlYywgaXQncyBqdXN0IHF1aWNrZXIuXG4vL1xuLy8gZXguIGNvbHVtbnMoKVxuLy8gZXguIGNvbHVtbnM6IDVcbi8vIGV4LiBjb2x1bW5zKDgsIDE1cHgsIDIwMHB4LCAnMXB4IHNvbGlkIHJlZCcpXG5cbmNvbHVtbnMoJGNvdW50ID0gMywgJGdhcCA9IDMwcHgsICR3aWR0aCA9IG51bGwsICRydWxlID0gbnVsbClcbiAgY29sdW1uLWNvdW50OiAkY291bnRcbiAgY29sdW1uLWdhcDogJGdhcFxuICBjb2x1bW4td2lkdGg6ICR3aWR0aCBpZiAkd2lkdGhcbiAgY29sdW1uLXJ1bGU6IHVucXVvdGUoJHJ1bGUpIGlmICRydWxlXG5cbi8vIE1peGluOiBBdm9pZCBDb2x1bW4gQnJlYWtcbi8vXG4vLyBJZiB5b3UgaGF2ZSBhIGxpc3QgdGhhdCBpcyBicm9rZW4gaW50byBjb2x1bW5zLCB0aGlzIHdpbGwgbWFrZSBzdXJlIHRoYXQgdGhlXG4vLyBsaXN0IGl0ZW0gaXMgbm90IHNwbGl0IGFjcm9zcyBjb2x1bW5zIGF3a3dhcmRseS4gV29ya3Mgb25seSBpbiB3ZWJraXQgYXQgdGhlXG4vLyBtb21lbnQuXG4vL1xuLy8gZXguIGF2b2lkLWNvbHVtbi1icmVhaygpXG5cbmF2b2lkLWNvbHVtbi1icmVhaygpXG4gIGNvbHVtbi1icmVhay1pbnNpZGU6IGF2b2lkXG5cbi8vIE1peGluOiBWZXJ0aWNhbGx5IEFsaWduXG4vLyBDcm9zcyBicm93c2VyIHZlcnRpY2FsIGFsaWduLiBXb3JrcyBkb3duIHRvIElFOS5cbi8vXG4vLyBleC4gdmVydGljYWxseS1hbGlnbigpIG9yIHJlc2V0IGl0IHdpdGggdmVydGljYWxseS1hbGlnbihmYWxzZSlcblxudmVydGljYWxseS1hbGlnbigkcmVzZXQgPSBudWxsKVxuICBpZiAkcmVzZXQgIT0gZmFsc2VcbiAgICBwb3NpdGlvbjogcmVsYXRpdmVcbiAgICB0b3A6IDUwJVxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKVxuICBlbHNlXG4gICAgcG9zaXRpb246IHJlbGF0aXZlXG4gICAgdG9wOiAwXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApXG5cbi8vIE1peGluOiBNZWRpYVxuLy9cbi8vIEJhc2VkIG9uIE5pY29sZSBTdWxsaXZhbidzIG1lZGlhIGNsYXNzLCBtYWRlIGZhbW91cyBieSBGYWNlYm9va1xuLy8gaHR0cDovL3d3dy5zdHViYm9ybmVsbGEub3JnL2NvbnRlbnQvMjAxMC8wNi8yNS90aGUtbWVkaWEtb2JqZWN0LXNhdmVzLVxuLy8gaHVuZHJlZHMtb2YtbGluZXMtb2YtY29kZVxuLy9cbi8vIFB1dCB0aGlzIG9uIGEgcGFyZW50IGFuZCBpdCB3aWxsIHNwbGl0IHRoZSBmaXJzdCB0d28gY2hpbGRyZW4gbGVmdCBhbmQgcmlnaHQsXG4vLyBsaWtlIHlvdSB3b3VsZCB3aXRoIHBlcmhhcHMgYSBjb21tZW50IHdpdGggYW4gYXZhdGFyIHRvIHRoZSBsZWZ0LiBQYXNzIGl0IGFcbi8vIG1hcmdpbiBiZXR3ZWVuIHRoZSB0d28uIEV4cGxhaW5lZCBmdWxseSBoZXJlOlxuLy8gaHR0cDovL2NhcnJvdGJsb2cuY29tL2Nzcy1wYXR0ZXJucy1ldm9sdmVkL1xuLy9cbi8vIFRoaXMgbWl4aW4gd29ya3MgcmlnaHQgd2hlbiB0aGUgZWxlbWVudCB5b3UgYXBwbHkgaXQgdG8gaGFzIHR3byBvciB0aHJlZVxuLy8gZGlyZWN0IGNoaWxkcmVuLiBUaGUgZmlyc3Qgb25lIHdpbGwgZmxvYXQgdG8gdGhlIGxlZnQsIHRoZSBzZWNvbmQgb25lIHdpbGwgYmVcbi8vIHRvIHRoZSByaWdodCBvZiB0aGUgZmlyc3QsIGFuZCB0aGlyZCB3aWxsIGdvIGZhcnRoZXN0IHJpZ2h0LlxuLy9cbi8vIGV4LiBtZWRpYS1vYmplY3QoKVxuLy8gZXguIG1lZGlhLW9iamVjdDogMTVweFxuLy8gZXguIG1lZGlhLW9iamVjdDogMTVweCAxMHB4XG5cbm1lZGlhLW9iamVjdCgkbWFyZ2luID0gMTBweClcblxuICAkbGVmdC1tYXJnaW4gPSAkbWFyZ2luXG4gICRyaWdodC1tYXJnaW4gPSAkbWFyZ2luXG5cbiAgaWYgbGVuZ3RoKGFyZ3VtZW50cykgPiAxXG4gICAgJGxlZnQtbWFyZ2luID0gYXJndW1lbnRzWzBdXG4gICAgJHJpZ2h0LW1hcmdpbiA9IGFyZ3VtZW50c1sxXVxuXG4gIG92ZXJmbG93OiBoaWRkZW5cbiAgem9vbTogMVxuXG4gICYgPiAqXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrXG4gICAgb3ZlcmZsb3c6IGhpZGRlblxuICAmID4gKjpmaXJzdC1jaGlsZFxuICAgIGZsb2F0OiBsZWZ0XG4gICAgbWFyZ2luLXJpZ2h0OiAkcmlnaHQtbWFyZ2luXG4gICYgPiAqOm50aC1jaGlsZCgzKVxuICAgIGZsb2F0OiByaWdodFxuICAgIG1hcmdpbi1sZWZ0OiAkbGVmdC1tYXJnaW5cblxuLy8gTWl4aW46IFJhdGlvIEJveFxuLy8gU2V0IGEgc3BlY2lmaWMgd2lkdGgvaGVpZ2h0IHJhdGlvLiBVc2VmdWwgb24gYmFja2dyb3VuZCBpbWFnZXMgYW5kIGlmcmFtZXMuXG5cbnJhdGlvLWJveCgkcmF0aW8gPSAxLzEpXG4gICRyYXRpbyA9IHJlbW92ZS11bml0KCRyYXRpbylcbiAgb3ZlcmZsb3c6IGhpZGRlblxuICBwb3NpdGlvbjogcmVsYXRpdmVcblxuICAmOmJlZm9yZVxuICAgIGNvbnRlbnQ6ICcnXG4gICAgZGlzcGxheTogYmxvY2tcbiAgICBoZWlnaHQ6IDBcbiAgICBwYWRkaW5nLXRvcDogKDEgLyAkcmF0aW8pICogMTAwJVxuXG4vLyBNaXhpbjogSG9yaXpvbnRhbCBSdWxlXG4vL1xuLy8gQ2xlYW4gcmVzZXQgZm9yIGRpdmlkZXIgbGluZXMuXG4vL1xuLy8gZXg6IHJ1bGUoKVxuLy8gZXggcnVsZShibHVlKVxuXG5ydWxlKCRjb2xvciA9IHJnYmEoIzAwMCwgLjE1KSwgJHNwYWNpbmcgPSAxLjVlbSlcbiAgYm9yZGVyOiAwXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sb3JcbiAgaGVpZ2h0OiAwXG4gIHBhZGRpbmc6IDBcbiAgbWFyZ2luOiAkc3BhY2luZyAwXG5cbi8vIE1peGluOiBUYWJsZSBMYXlvdXRcbi8vXG4vLyBTb21ldGltZXMgeW91IGp1c3QgbmVlZCBhIGdvb2Qgb2xkLWZhc2hpb25lZCB0YWJsZSBsYXlvdXQuXG4vLyBSZWFkIG1vcmU6IGh0dHA6Ly9jb2xpbnRvaC5jb20vYmxvZy9kaXNwbGF5LXRhYmxlLWFudGktaGVyb1xuLy9cbi8vIGV4OiB0bCgpXG4vLyBleDogdGwoYXV0bylcblxudGwoJGxheW91dC10eXBlID0gZml4ZWQpXG4gIGRpc3BsYXk6IHRhYmxlXG4gIHRhYmxlLWxheW91dDogJGxheW91dC10eXBlICAvLyBcImZpeGVkXCIgb3IgXCJhdXRvXCJcbiAgbWFyZ2luOiAwXG4gIHBhZGRpbmc6IDBcbiAgd2lkdGg6IDEwMCVcblxuICA+ICpcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsXG4iLCJtYWluXHJcblx0cGFkZGluZyAyMHB4XHJcblx0XHJcbi5yZXByZXNlbnRhZG9zXHJcblx0Y2YoKVx0XHJcbm1haW5cclxuXHRjZW50ZXIoOTYwcHgsIDIlKVxyXG5cclxuLm1haW5Gb290ZXJcclxuXHRncmFkaWVudCBibGFjayAjMDgyMjQzXHJcblx0cGFkZGluZyAyNXB4XHJcblx0Y29sb3Igd2hpdGVcclxuXHQmIHN2Z1xyXG5cdFx0bWF4LXdpZHRoIDEwMCVcdFxyXG5cdCYgcFxyXG5cdFx0bWFyZ2luLWJvdHRvbSAwXHJcblx0XHRsaW5lLWhlaWdodCAxLjRcclxuLm1haW5Gb290ZXItQXNzXHJcblx0Y29sKDIvMylcclxuXHQrdGFibGV0KClcclxuXHRcdGNvbCgzLzYpXHJcblx0K2Rlc2t0b3AoKVxyXG5cdFx0Y29sKDMvNilcclxuXHRcclxuLmNlbnRlclxyXG5cdGNlbnRlcig5NjBweClcclxuXHRyZWxhdGl2ZSgpXHJcbi5jZlxyXG5cdGNmKClcdFxyXG5cclxuLmNhcmRcclxuXHRzdGFjaygpXHJcblx0bWFyZ2luLWJvdHRvbSByZW0oMzBweClcclxuXHQmOm50aC1sYXN0LWNoaWxkXHJcblx0XHRtYXJnaW4tYm90dG9tIDBcclxuXHQmIGgxXHJcblx0XHR0LWgzKClcclxuXHRcdG1hcmdpbiAxMHB4IDAgNXB4IDBcclxuXHQrdGFibGV0KClcclxuXHRcdGNvbCgxLzIsIGN5Y2xlOiAyKVxyXG5cdFx0JiBoMVxyXG5cdFx0XHQvLyBtYXJnaW4tdG9wIHJlbSgxMHB4KSAhaW1wb3J0YW50XHJcblx0XHRcdFxyXG5cdCtkZXNrdG9wKClcclxuXHRcdGNvbCgxLzMsIHVuY3ljbGUsIGN5Y2xlOiAzKVxyXG5cdFx0JiBoMVxyXG5cdFx0XHR0LWg1KClcclxuXHRcdFx0bWFyZ2luLXRvcCByZW0oMTEuMzE1NHB4KSAhaW1wb3J0YW50XHJcblx0XHRcdFxyXG4vLyBDb250YXRvXHJcblxyXG4ubWFwYVxyXG5cdHN0YWNrKClcclxuXHRsaW5lLWhlaWdodCAxLjVlbVxyXG5cdCt0YWJsZXQoKVxyXG5cdFx0Y29sKDEvMilcclxuXHQrYmVsb3coNzAwcHgpXHJcblx0XHRzdGFjaygpXHJcblx0K2Rlc2t0b3AoKVxyXG5cdFx0Y29sKDEvMilcclxuXHQmIGltZ1xyXG5cdFx0bWFyZ2luLWJvdHRvbSAxZW1cclxuLndwY2Y3LWZvcm1cclxuXHRzdGFjaygpXHJcblx0K3RhYmxldCgpXHJcblx0XHRjb2woMS8yKVxyXG5cdCtiZWxvdyg3MDBweClcclxuXHRcdHN0YWNrKClcclxuXHQrZGVza3RvcCgpXHJcblx0XHRjb2woMS8yKVxyXG5cdCYgaW5wdXQsIHRleHRhcmVhXHJcblx0XHRpbnB1dCgpXHJcblx0XHR3aWR0aCAxMDAlXHJcblx0XHRtYXJnaW4tYm90dG9tIDFlbVxyXG5cdFx0Ym9yZGVyLXJhZGl1cyAwXHJcblx0XHRib3JkZXItY29sb3IgJG9yYW5nZVxyXG5cdFx0YmFja2dyb3VuZC1jb2xvciAjZmFmYWZhXHJcblx0JiBpbnB1dFt0eXBlPVwic3VibWl0XCJdXHJcblx0XHQgYnV0dG9uKClcclxuXHRcdCBjbGljay1kb3duKClcclxuXHRcdCBob3Zlci1kYXJrZW4oKVxyXG5cdFx0IGJvcmRlci1yYWRpdXMgMFxyXG5cdFx0IGJhY2tncm91bmQtY29sb3IgJG9yYW5nZVxyXG5cdFx0IGZsb2F0IHJpZ2h0XHJcblx0XHQgd2lkdGggMTAwcHhcclxuLy8gUXVlbSBTb21vc1xyXG5cclxuLnF1ZW1zb21vc1xyXG5cdHN0YWNrKClcclxuXHQrYWJvdmUoNzUwcHgpXHJcblx0XHRjb2woNC82KVxyXG5cdCtkZXNrdG9wKClcclxuXHRcdGNvbCg0LzYpXHJcblx0JiAubWFpbkhlYWRpbmdcclxuXHRcdHRleHQtYWxpZ24gbGVmdFxyXG5cclxuLnBvcnRmb2xpb1xyXG5cdHN0YWNrKClcclxuXHQmIHVsXHJcblx0XHR1bCgpXHJcblx0XHQmIGxpXHJcblx0XHRcdGxpbmUtaGVpZ2h0IDEuM1x0XHRcdFxyXG5cdFx0XHQrYmVsb3coNzUwcHgpXHJcblx0XHRcdFx0Y29sKDEvMiwgY3ljbGU6IDIpXHJcblx0K2Fib3ZlKDc1MHB4KVxyXG5cdFx0Y29sKDIvNilcclxuXHQrZGVza3RvcCgpXHJcblx0XHRjb2woMi82KVxyXG5cdCYgLm1haW5IZWFkaW5nXHJcblx0XHR0ZXh0LWFsaWduIGxlZnRcclxuXHRcclxuXHRcdFxyXG5cdCIsIi8vIC0tLS0tLS0tLVxuLy8gR3JhZGllbnRzXG4vLyAtLS0tLS0tLS1cblxuLy8gTWl4aW46IEdyYWRpZW50XG4vL1xuLy8gVGFrZXMgb25lIGNvbG9yIGFuZCBvdXRwdXRzIGEgdmVydGljYWwgZ3JhZGllbnQgYmV0d2VlbiB0aGUgb2Zmc2V0IGJ5IDEwJSBpblxuLy8gZWl0aGVyIGRpcmVjdGlvbiwgb2Zmc2V0IHByZWNlbnRhZ2UgY3VzdG9taXphYmxlIHZpYSBgc3RyZW5ndGhgIHBhcmFtLiBPclxuLy8gdGFrZXMgdHdvIGNvbG9ycyBhbmQgb3V0cHV0cyBhIHZlcnRpY2FsIGdyYWRpZW50IHRoYXQgZmFkZXMgYmV0d2VlbiB0aGUgdHdvXG4vLyBjb2xvcnMuXG4vL1xuLy8gZXguIGdyYWRpZW50OiByZWQgYmx1ZVxuLy8gZXguIGdyYWRpZW50OiByZWRcblxuZ3JhZGllbnQoJGNvbG9yMSwgJGNvbG9yMiA9IG51bGwsICRzdHJlbmd0aCA9IDEwJSlcbiAgLy8gc2hpZnQgYXJncyBpZiBvbmUgY29sb3IgbW9kZVxuICBpZiAodHlwZW9mKCRjb2xvcjIpIGlzICd1bml0JylcbiAgICAkc3RyZW5ndGggPSAkY29sb3IyXG4gICAgJGNvbG9yMiA9IG51bGxcblxuICAkc3RhcnQgPSAkY29sb3IyID8gJGNvbG9yMSA6IGxpZ2h0ZW4oJGNvbG9yMSwgJHN0cmVuZ3RoKVxuICAkZW5kID0gJGNvbG9yMiA/ICRjb2xvcjIgOiBkYXJrZW4oJGNvbG9yMSwgJHN0cmVuZ3RoKVxuICBiYWNrZ3JvdW5kOiAkc3RhcnRcbiAgYmFja2dyb3VuZDogJGVuZCBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAkc3RhcnQsICRlbmQpIHJlcGVhdC14XG5cbi8vIE1peGluOiBJbWFnZSBHcmFkaWVudFxuLy9cbi8vIEV4YWN0bHkgdGhlIHNhbWUgYXMgdGhlIGdyYWRpZW50IG1peGluLCBidXQgb3ZlcmxheXMgYW4gaW1hZ2UgdG8gZ2l2ZSBpdFxuLy8gbW9yZSB0ZXh0dXJlLlxuLy9cbi8vIGV4LiBpbWFnZS1ncmFkaWVudDogcmVkIHBhdHRlcm4ucG5nXG4vLyBleC4gaW1hZ2UtZ3JhZGllbnQ6IHJlZCBwYXR0ZXJuLnBuZyAzMCVcbi8vIGV4LiBpbWFnZS1ncmFkaWVudDogcmVkIGJsdWUgcGF0dGVybi5wbmdcblxuaW1hZ2UtZ3JhZGllbnQoJGNvbG9yMSwgJGNvbG9yMiA9IG51bGwsICRpbWFnZS1wYXRoID0gJ25vaXNlLnBuZycsICRzdHJlbmd0aCA9IDEwJSlcbiAgLy8gc2hpZnQgYXJncyBpZiBvbmUgY29sb3IgbW9kZVxuICBpZiAodHlwZW9mKCRjb2xvcjIpID09ICdzdHJpbmcnKVxuICAgICRzdHJlbmd0aCA9ICRpbWFnZS1wYXRoIGlmICh0eXBlb2YoJGltYWdlLXBhdGgpID09ICd1bml0JylcbiAgICAkaW1hZ2UtcGF0aCA9ICRjb2xvcjJcbiAgICAkY29sb3IyID0gbnVsbFxuXG4gICRzdGFydCA9ICRjb2xvcjIgPyAkY29sb3IxIDogbGlnaHRlbigkY29sb3IxLCAkc3RyZW5ndGgpXG4gICRlbmQgPSAkY29sb3IyID8gJGNvbG9yMiA6IGRhcmtlbigkY29sb3IxLCAkc3RyZW5ndGgpXG4gIGJhY2tncm91bmQ6ICRzdGFydFxuICBiYWNrZ3JvdW5kOiB1cmwoJGltZy1wYXRoICRpbWFnZS1wYXRoKSByZXBlYXQsICRlbmQgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgJHN0YXJ0LCAkZW5kKSByZXBlYXQteFxuIiwiYmFzZS1mb250LXNpemUgPz0gMTZweFxucmFzdGVyaXNlLW1lZGlhLXF1ZXJpZXMgPz0gZmFsc2VcblxucnVwdHVyZSA9IHtcbiAgcmFzdGVyaXNlLW1lZGlhLXF1ZXJpZXM6IHJhc3RlcmlzZS1tZWRpYS1xdWVyaWVzXG4gIG1vYmlsZS1jdXRvZmY6IDU1MHB4XG4gIGRlc2t0b3AtY3V0b2ZmOiAxMjAwcHhcbiAgLy8gaGQtY3V0b2ZmOiAxODAwcHhcbiAgZW5hYmxlLWVtLWJyZWFrcG9pbnRzOiBmYWxzZVxuICBiYXNlLWZvbnQtc2l6ZTogYmFzZS1mb250LXNpemVcbiAgYW50aS1vdmVybGFwOiBmYWxzZVxuICBkZW5zaXR5LXF1ZXJpZXM6ICdkcHB4JyAnd2Via2l0JyAnbW96JyAnZHBpJ1xuICByZXRpbmEtZGVuc2l0eTogMS41XG4gIHVzZS1kZXZpY2Utd2lkdGg6IGZhbHNlXG59XG5ydXB0dXJlLnNjYWxlID0gMCAocnVwdHVyZS5tb2JpbGUtY3V0b2ZmKSA2MDBweCA4MDBweCAocnVwdHVyZS5kZXNrdG9wLWN1dG9mZikvLyhydXB0dXJlLmhkLWN1dG9mZilcbnJ1cHR1cmUuc2NhbGUtbmFtZXMgPSAneHMnICdzJyAnbScgJ2wnICd4bCcgJ2hkJ1xuXG4taXMtc3RyaW5nKHZhbClcbiAgaWYgdHlwZW9mKHZhbCkgaXMgbm90ICd1bml0J1xuICAgIGlmIHZhbCBpcyBhICdzdHJpbmcnIG9yIHZhbCBpcyBhICdpZGVudCdcbiAgICAgIHRydWVcbiAgICBlbHNlXG4gICAgICBmYWxzZVxuICBlbHNlXG4gICAgZmFsc2VcblxuLWdldC1zY2FsZS1udW1iZXIoc2NhbGUtbmFtZSlcbiAgZm9yIGxpc3QtaXRlbSwgaSBpbiBydXB0dXJlLnNjYWxlLW5hbWVzXG4gICAgaWYgbGlzdC1pdGVtIGlzIHNjYWxlLW5hbWVcbiAgICAgIHJldHVybiBpICsgMVxuICByZXR1cm4gZmFsc2VcblxuLWNvbnZlcnQtdG8odG8tdW5pdCwgdmFsdWUsIGNvbnRleHQgPSBydXB0dXJlLmJhc2UtZm9udC1zaXplKVxuICBmcm9tLXVuaXQgPSB1bml0KHZhbHVlKVxuICByZXR1cm4gdmFsdWUgaWYgdG8tdW5pdCBpcyBmcm9tLXVuaXRcbiAgaWYgdG8tdW5pdCBpbiAoJ2VtJyAncmVtJylcbiAgICByZXR1cm4gdmFsdWUgaWYgZnJvbS11bml0IGluICgnZW0nICdyZW0nKVxuICAgIHJldHVybiB1bml0KCh2YWx1ZSAvIGNvbnRleHQpLCB0by11bml0KVxuICBpZiB0by11bml0IGlzICdweCdcbiAgICByZXR1cm4gdW5pdCgodmFsdWUgKiBjb250ZXh0KSwgJ3B4JylcblxuLW9uLXNjYWxlKG4pXG4gIHJldHVybiB1bml0KG4pIGlzICcnXG5cbi1sYXJnZXItdGhhbi1zY2FsZShuKVxuICByZXR1cm4gKG4gPiAobGVuZ3RoKHJ1cHR1cmUuc2NhbGUpIC0gMSkpIGFuZCAtb24tc2NhbGUobilcblxuLWlzLXplcm8obilcbiAgcmV0dXJuIG4gaXMgMFxuXG4tb3ZlcmxhcC1zaGlmdChhbnRpLW92ZXJsYXAsIG4pXG4gIHNoaWZ0LXVuaXQgPSB1bml0KG4pXG4gIGFudGktb3ZlcmxhcCA9IDBweCB1bmxlc3MgYW50aS1vdmVybGFwXG4gIGFudGktb3ZlcmxhcCA9IDFweCBpZiBhbnRpLW92ZXJsYXAgaXMgdHJ1ZVxuICBpZiBsZW5ndGgoYW50aS1vdmVybGFwKSBpcyAxXG4gICAgcmV0dXJuIC1jb252ZXJ0LXRvKHNoaWZ0LXVuaXQsIGFudGktb3ZlcmxhcClcbiAgZm9yIHZhbCBpbiBhbnRpLW92ZXJsYXBcbiAgICByZXR1cm4gdmFsIGlmIHVuaXQodmFsKSBpcyBzaGlmdC11bml0XG5cbi1hZGp1c3Qtb3ZlcmxhcChhbnRpLW92ZXJsYXAsIG4sIHNpZGUgPSAnbWluJylcbiAgLXNoaWZ0ID0gLW92ZXJsYXAtc2hpZnQoYW50aS1vdmVybGFwLCBuKVxuICBpZiAoc2lkZSBpcyAnbWluJyBhbmQgLXNoaWZ0ID4gMCkgb3IgKHNpZGUgaXMgJ21heCcgYW5kIC1zaGlmdCA8IDApXG4gICAgbiA9IG4gKyAtc2hpZnRcbiAgcmV0dXJuIG5cblxuLWlzLXBvc2l0aXZlKG4pXG4gIHJldHVybiBuID49IDBcblxuLWRlbnNpdHktcXVlcmllcyhkZW5zaXR5KVxuICBpZiB0eXBlb2YoZGVuc2l0eSkgaXMgbm90ICd1bml0J1xuICAgIGlmIG5vdCAtaXMtc3RyaW5nKGRlbnNpdHkpXG4gICAgICBkZW5zaXR5ID0gJyVzJyAlIGRlbnNpdHlcbiAgZGVuc2l0eSA9IHJ1cHR1cmUucmV0aW5hLWRlbnNpdHkgaWYgZGVuc2l0eSBpcyAncmV0aW5hJ1xuICBxdWVyaWVzID0gKClcbiAgZm9yIHF1ZXJ5IGluIHJ1cHR1cmUuZGVuc2l0eS1xdWVyaWVzXG4gICAgaWYgcXVlcnkgaXMgJ3dlYmtpdCdcbiAgICAgIHB1c2gocXVlcmllcywgJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICVzKScgJSAoZGVuc2l0eSkpXG4gICAgZWxzZSBpZiBxdWVyeSBpcyAnbW96J1xuICAgICAgcHVzaChxdWVyaWVzLCAnKG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpbzogJXMpJyAlIChkZW5zaXR5KSlcbiAgICBlbHNlIGlmIHF1ZXJ5IGlzICdvJ1xuICAgICAgcHVzaChxdWVyaWVzLCAnKC1vLW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICVzLzEpJyAlIChkZW5zaXR5KSlcbiAgICBlbHNlIGlmIHF1ZXJ5IGlzICdyYXRpbydcbiAgICAgIHB1c2gocXVlcmllcywgJyhtaW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAlcyknICUgKGRlbnNpdHkpKVxuICAgIGVsc2UgaWYgcXVlcnkgaXMgJ2RwaSdcbiAgICAgIGlmIC1pcy1zdHJpbmcoZGVuc2l0eSlcbiAgICAgICAgZGVuc2l0eT1jb252ZXJ0KGRlbnNpdHkpXG4gICAgICBwdXNoKHF1ZXJpZXMsICcobWluLXJlc29sdXRpb246ICVzZHBpKScgJSAocm91bmQoZGVuc2l0eSAqIDk2LCAxKSkpXG4gICAgZWxzZSBpZiBxdWVyeSBpcyAnZHBweCdcbiAgICAgIHB1c2gocXVlcmllcywgJyhtaW4tcmVzb2x1dGlvbjogJXNkcHB4KScgJSAoZGVuc2l0eSkpXG4gIHJldHVybiBxdWVyaWVzXG5cbmNyZWF0ZS1mYWxsYmFjay1jbGFzcyhzZWxlY3RlZCwgY2xhc3MpXG4gIC97JycgKyBjbGFzcyArICcgJyArIHNlbGVjdGVkfVxuICAgIHtibG9ja31cblxuLy8gK2JldHdlZW4obWluLCBtYXgpXG4vLyB1c2FnZSAoc2NhbGUgY2FuIGJlIG1peGVkIHdpdGggY3VzdG9tIHZhbHVlcyk6XG4vLyAgIC0gK2JldHdlZW4oMSwgMykgc2NhbGU6c2NhbGVcbi8vICAgLSArYmV0d2VlbigwLCAzKSAwIHdpZHRoOnNjYWxlXG4vLyAgIC0gK2JldHdlZW4oMjAwcHgsIDUwMHB4KSBjdXN0b206Y3VzdG9tXG4vLyAgIC0gK2JldHdlZW4oMCwgMzAwcHgpIDAgd2lkdGg6Y3VzdG9tXG4vLyAgIC0gK2JldHdlZW4oMSwgMzAwcHgpIHNjYWxlOmN1c3RvbVxuLy8gICAtICtiZXR3ZWVuKDIwMHB4LCA0KSBjdXN0b206c2NhbGVcblxuYmV0d2VlbihtaW4sIG1heCwgYW50aS1vdmVybGFwID0gcnVwdHVyZS5hbnRpLW92ZXJsYXAsIGRlbnNpdHkgPSBudWxsLCBvcmllbnRhdGlvbiA9IG51bGwsIHVzZS1kZXZpY2Utd2lkdGggPSBydXB0dXJlLnVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzID0gbnVsbClcbiAgc2VsZWN0ZWQgPSBzZWxlY3RvcigpXG5cbiAgaWYgLWlzLXN0cmluZyhvcmllbnRhdGlvbilcbiAgICBvcmllbnRhdGlvbiA9IGNvbnZlcnQob3JpZW50YXRpb24pXG4gIGlmIC1pcy1zdHJpbmcoZGVuc2l0eSlcbiAgICBkZW5zaXR5ID0gY29udmVydChkZW5zaXR5KVxuICBpZiAtaXMtc3RyaW5nKG1pbilcbiAgICBtaW4gPSAtZ2V0LXNjYWxlLW51bWJlcihtaW4pXG4gIGlmIC1pcy1zdHJpbmcobWF4KVxuICAgIG1heCA9IC1nZXQtc2NhbGUtbnVtYmVyKG1heClcblxuICAtbWluID0gcnVwdHVyZS5zY2FsZVttaW4gLSAxXSB1bmxlc3MgLWlzLXplcm8obWluKSBvciAobm90IC1vbi1zY2FsZShtaW4pKVxuICAtbWF4ID0gcnVwdHVyZS5zY2FsZVttYXhdIHVubGVzcyBub3QgLW9uLXNjYWxlKG1heClcbiAgLW1pbiA/PSBtaW5cbiAgLW1heCA/PSBtYXhcblxuICBpZiAocnVwdHVyZS5yYXN0ZXJpc2UtbWVkaWEtcXVlcmllcylcbiAgICBpZiBub3QgKGRlbnNpdHkgb3IgLW1heCBvciBvcmllbnRhdGlvbilcbiAgICAgIHtibG9ja31cbiAgZWxzZVxuICAgIGNvbmRpdGlvbiA9ICdvbmx5IHNjcmVlbidcbiAgICB1c2UtZGV2aWNlLXdpZHRoID0gdXNlLWRldmljZS13aWR0aCA/ICdkZXZpY2UtJyA6ICcnXG4gICAgdW5sZXNzIC1taW4gaXMgMFxuICAgICAgLW1pbiA9IC1jb252ZXJ0LXRvKCdlbScsIC1taW4pIGlmIHJ1cHR1cmUuZW5hYmxlLWVtLWJyZWFrcG9pbnRzXG4gICAgICAtbWluID0gLWFkanVzdC1vdmVybGFwKGFudGktb3ZlcmxhcCwgLW1pbiwgc2lkZTogJ21pbicpXG4gICAgICBjb25kaXRpb24gPSBjb25kaXRpb24gKyAnIGFuZCAobWluLScgKyB1c2UtZGV2aWNlLXdpZHRoICsgJ3dpZHRoOiAlcyknICUgKC1taW4pXG4gICAgdW5sZXNzIC1sYXJnZXItdGhhbi1zY2FsZShtYXgpXG4gICAgICAtbWF4ID0gLWNvbnZlcnQtdG8oJ2VtJywgLW1heCkgaWYgcnVwdHVyZS5lbmFibGUtZW0tYnJlYWtwb2ludHNcbiAgICAgIC1tYXggPSAtYWRqdXN0LW92ZXJsYXAoYW50aS1vdmVybGFwLCAtbWF4LCBzaWRlOiAnbWF4JylcbiAgICAgIGNvbmRpdGlvbiA9IGNvbmRpdGlvbiArICcgYW5kIChtYXgtJyArIHVzZS1kZXZpY2Utd2lkdGggKyAnd2lkdGg6ICVzKScgJSAoLW1heClcbiAgICBpZiBvcmllbnRhdGlvblxuICAgICAgY29uZGl0aW9uID0gY29uZGl0aW9uICsgJyBhbmQgKG9yaWVudGF0aW9uOiAlcyknICUgKG9yaWVudGF0aW9uKVxuICAgIGlmIGRlbnNpdHlcbiAgICAgIGNvbmRpdGlvbnMgPSAoKVxuICAgICAgZm9yIHF1ZXJ5IGluIC1kZW5zaXR5LXF1ZXJpZXMoZGVuc2l0eSlcbiAgICAgICAgcHVzaChjb25kaXRpb25zLCBjb25kaXRpb24gKyAnIGFuZCAlcycgJSAocXVlcnkpKVxuICAgICAgY29uZGl0aW9uID0gam9pbignLCAnLCBjb25kaXRpb25zKVxuICAgIEBtZWRpYSBjb25kaXRpb25cbiAgICAgIHtibG9ja31cbiAgaWYgZmFsbGJhY2stY2xhc3NcbiAgICArY3JlYXRlLWZhbGxiYWNrLWNsYXNzKHNlbGVjdGVkLCBmYWxsYmFjay1jbGFzcylcbiAgICAgIHtibG9ja31cblxuYXQoc2NhbGUtcG9pbnQsIGFudGktb3ZlcmxhcCA9IHJ1cHR1cmUuYW50aS1vdmVybGFwLCBkZW5zaXR5ID0gbnVsbCwgb3JpZW50YXRpb24gPSBudWxsLCB1c2UtZGV2aWNlLXdpZHRoID0gcnVwdHVyZS51c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcyA9IG51bGwpXG4gIGlmIC1pcy1zdHJpbmcob3JpZW50YXRpb24pXG4gICAgb3JpZW50YXRpb24gPSBjb252ZXJ0KG9yaWVudGF0aW9uKVxuICBpZiAtaXMtc3RyaW5nKGRlbnNpdHkpXG4gICAgZGVuc2l0eSA9IGNvbnZlcnQoZGVuc2l0eSlcbiAgK2JldHdlZW4oc2NhbGUtcG9pbnQsIHNjYWxlLXBvaW50LCBhbnRpLW92ZXJsYXAsIGRlbnNpdHksIG9yaWVudGF0aW9uLCB1c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcylcbiAgICB7YmxvY2t9XG5cbmZyb20td2lkdGgoc2NhbGUtcG9pbnQsIGFudGktb3ZlcmxhcCA9IHJ1cHR1cmUuYW50aS1vdmVybGFwLCBkZW5zaXR5ID0gbnVsbCwgb3JpZW50YXRpb24gPSBudWxsLCB1c2UtZGV2aWNlLXdpZHRoID0gcnVwdHVyZS51c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcyA9IG51bGwpXG4gIGlmIC1pcy1zdHJpbmcob3JpZW50YXRpb24pXG4gICAgb3JpZW50YXRpb24gPSBjb252ZXJ0KG9yaWVudGF0aW9uKVxuICBpZiAtaXMtc3RyaW5nKGRlbnNpdHkpXG4gICAgZGVuc2l0eSA9IGNvbnZlcnQoZGVuc2l0eSlcbiAgK2JldHdlZW4oc2NhbGUtcG9pbnQsIGxlbmd0aChydXB0dXJlLnNjYWxlKSwgYW50aS1vdmVybGFwLCBkZW5zaXR5LCBvcmllbnRhdGlvbiwgdXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MpXG4gICAge2Jsb2NrfVxuXG5hYm92ZSA9IGZyb20td2lkdGhcblxudG8td2lkdGgoc2NhbGUtcG9pbnQsIGFudGktb3ZlcmxhcCA9IHJ1cHR1cmUuYW50aS1vdmVybGFwLCBkZW5zaXR5ID0gbnVsbCwgb3JpZW50YXRpb24gPSBudWxsLCB1c2UtZGV2aWNlLXdpZHRoID0gcnVwdHVyZS51c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcyA9IG51bGwpXG4gIGlmIC1pcy1zdHJpbmcob3JpZW50YXRpb24pXG4gICAgb3JpZW50YXRpb24gPSBjb252ZXJ0KG9yaWVudGF0aW9uKVxuICBpZiAtaXMtc3RyaW5nKGRlbnNpdHkpXG4gICAgZGVuc2l0eSA9IGNvbnZlcnQoZGVuc2l0eSlcbiAgK2JldHdlZW4oMSwgc2NhbGUtcG9pbnQsIGFudGktb3ZlcmxhcCwgZGVuc2l0eSwgb3JpZW50YXRpb24sIHVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzKVxuICAgIHtibG9ja31cblxuYmVsb3cgPSB0by13aWR0aFxuXG5tb2JpbGUoYW50aS1vdmVybGFwID0gcnVwdHVyZS5hbnRpLW92ZXJsYXAsIGRlbnNpdHkgPSBudWxsLCBvcmllbnRhdGlvbiA9IG51bGwsIHVzZS1kZXZpY2Utd2lkdGggPSBydXB0dXJlLnVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzID0gbnVsbClcbiAgaWYgLWlzLXN0cmluZyhvcmllbnRhdGlvbilcbiAgICBvcmllbnRhdGlvbiA9IGNvbnZlcnQob3JpZW50YXRpb24pXG4gIGlmIC1pcy1zdHJpbmcoZGVuc2l0eSlcbiAgICBkZW5zaXR5ID0gY29udmVydChkZW5zaXR5KVxuICArYmVsb3cocnVwdHVyZS5tb2JpbGUtY3V0b2ZmLCBhbnRpLW92ZXJsYXAsIGRlbnNpdHksIG9yaWVudGF0aW9uLCB1c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcylcbiAgICB7YmxvY2t9XG5cbnRhYmxldChhbnRpLW92ZXJsYXAgPSBydXB0dXJlLmFudGktb3ZlcmxhcCwgZGVuc2l0eSA9IG51bGwsIG9yaWVudGF0aW9uID0gbnVsbCwgdXNlLWRldmljZS13aWR0aCA9IHJ1cHR1cmUudXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBpZiAtaXMtc3RyaW5nKG9yaWVudGF0aW9uKVxuICAgIG9yaWVudGF0aW9uID0gY29udmVydChvcmllbnRhdGlvbilcbiAgaWYgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgIGRlbnNpdHkgPSBjb252ZXJ0KGRlbnNpdHkpXG4gICtiZXR3ZWVuKHJ1cHR1cmUubW9iaWxlLWN1dG9mZiwgcnVwdHVyZS5kZXNrdG9wLWN1dG9mZiwgYW50aS1vdmVybGFwLCBkZW5zaXR5LCBvcmllbnRhdGlvbiwgdXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MpXG4gICAge2Jsb2NrfVxuXG5kZXNrdG9wKGFudGktb3ZlcmxhcCA9IHJ1cHR1cmUuYW50aS1vdmVybGFwLCBkZW5zaXR5ID0gbnVsbCwgb3JpZW50YXRpb24gPSBudWxsLCB1c2UtZGV2aWNlLXdpZHRoID0gcnVwdHVyZS51c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcyA9IG51bGwpXG4gIGlmIC1pcy1zdHJpbmcob3JpZW50YXRpb24pXG4gICAgb3JpZW50YXRpb24gPSBjb252ZXJ0KG9yaWVudGF0aW9uKVxuICBpZiAtaXMtc3RyaW5nKGRlbnNpdHkpXG4gICAgZGVuc2l0eSA9IGNvbnZlcnQoZGVuc2l0eSlcbiAgK2Fib3ZlKHJ1cHR1cmUuZGVza3RvcC1jdXRvZmYsIGFudGktb3ZlcmxhcCwgZGVuc2l0eSwgb3JpZW50YXRpb24sIHVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzKVxuICAgIHtibG9ja31cblxuaGQoYW50aS1vdmVybGFwID0gcnVwdHVyZS5hbnRpLW92ZXJsYXAsIGRlbnNpdHkgPSBudWxsLCBvcmllbnRhdGlvbiA9IG51bGwsIHVzZS1kZXZpY2Utd2lkdGggPSBydXB0dXJlLnVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzID0gbnVsbClcbiAgaWYgLWlzLXN0cmluZyhvcmllbnRhdGlvbilcbiAgICBvcmllbnRhdGlvbiA9IGNvbnZlcnQob3JpZW50YXRpb24pXG4gIGlmIC1pcy1zdHJpbmcoZGVuc2l0eSlcbiAgICBkZW5zaXR5ID0gY29udmVydChkZW5zaXR5KVxuICArYWJvdmUocnVwdHVyZS5oZC1jdXRvZmYsIGFudGktb3ZlcmxhcCwgZGVuc2l0eSwgb3JpZW50YXRpb24sIHVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzKVxuICAgIHtibG9ja31cblxuZGVuc2l0eShkZW5zaXR5LCBvcmllbnRhdGlvbiA9IG51bGwsIGZhbGxiYWNrLWNsYXNzID0gbnVsbClcbiAgc2VsZWN0ZWQgPSBzZWxlY3RvcigpXG4gIGlmIG5vdCAocnVwdHVyZS5yYXN0ZXJpc2UtbWVkaWEtcXVlcmllcylcbiAgICBjb25kaXRpb25zID0gKClcbiAgICBmb3IgcXVlcnkgaW4gLWRlbnNpdHktcXVlcmllcyhkZW5zaXR5KVxuICAgICAgY29uZGl0aW9uID0gJ29ubHkgc2NyZWVuIGFuZCAlcycgJSAocXVlcnkpXG4gICAgICBpZiBvcmllbnRhdGlvblxuICAgICAgICBjb25kaXRpb24gPSBjb25kaXRpb24gKyAnIGFuZCAob3JpZW50YXRpb246ICVzKScgJSAob3JpZW50YXRpb24pXG4gICAgICBwdXNoKGNvbmRpdGlvbnMsIGNvbmRpdGlvbilcbiAgICBjb25kaXRpb24gPSBqb2luKCcsICcsIGNvbmRpdGlvbnMpXG4gICAgQG1lZGlhIGNvbmRpdGlvblxuICAgICAge2Jsb2NrfVxuICAgIGlmIGZhbGxiYWNrLWNsYXNzXG4gICAgICArY3JlYXRlLWZhbGxiYWNrLWNsYXNzKHNlbGVjdGVkLCBmYWxsYmFjay1jbGFzcylcbiAgICAgICAge2Jsb2NrfVxuXG5waXhlbC1yYXRpbyA9IGRlbnNpdHlcblxucmV0aW5hKG9yaWVudGF0aW9uID0gbnVsbCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICArZGVuc2l0eSgncmV0aW5hJywgb3JpZW50YXRpb24sIGZhbGxiYWNrLWNsYXNzKVxuICAgIHtibG9ja31cblxubGFuZHNjYXBlKGRlbnNpdHkgPSBudWxsLCBmYWxsYmFjay1jbGFzcyA9IG51bGwpXG4gIHNlbGVjdGVkID0gc2VsZWN0b3IoKVxuICBpZiBub3QgKHJ1cHR1cmUucmFzdGVyaXNlLW1lZGlhLXF1ZXJpZXMpXG4gICAgaWYgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgICAgZGVuc2l0eSA9IGNvbnZlcnQoZGVuc2l0eSlcbiAgICBpZiBkZW5zaXR5XG4gICAgICArcGl4ZWwtcmF0aW8oZGVuc2l0eSwgb3JpZW50YXRpb246IGxhbmRzY2FwZSwgZmFsbGJhY2stY2xhc3MpXG4gICAgICAgIHtibG9ja31cbiAgICBlbHNlXG4gICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKVxuICAgICAgICB7YmxvY2t9XG4gICAgICBpZiBmYWxsYmFjay1jbGFzc1xuICAgICAgICArY3JlYXRlLWZhbGxiYWNrLWNsYXNzKHNlbGVjdGVkLCBmYWxsYmFjay1jbGFzcylcbiAgICAgICAgICB7YmxvY2t9XG5cbnBvcnRyYWl0KGRlbnNpdHkgPSBudWxsLCBmYWxsYmFjay1jbGFzcyA9IG51bGwpXG4gIHNlbGVjdGVkID0gc2VsZWN0b3IoKVxuICBpZiBub3QgKHJ1cHR1cmUucmFzdGVyaXNlLW1lZGlhLXF1ZXJpZXMpXG4gICAgaWYgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgICAgZGVuc2l0eSA9IGNvbnZlcnQoZGVuc2l0eSlcbiAgICBpZiBkZW5zaXR5XG4gICAgICArcGl4ZWwtcmF0aW8oZGVuc2l0eSwgb3JpZW50YXRpb246IHBvcnRyYWl0LCBmYWxsYmFjay1jbGFzcylcbiAgICAgICAge2Jsb2NrfVxuICAgIGVsc2VcbiAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdClcbiAgICAgICAge2Jsb2NrfVxuICAgICAgaWYgZmFsbGJhY2stY2xhc3NcbiAgICAgICAgK2NyZWF0ZS1mYWxsYmFjay1jbGFzcyhzZWxlY3RlZCwgZmFsbGJhY2stY2xhc3MpXG4gICAgICAgICAge2Jsb2NrfVxuIiwiLy8gLS0tLS1cbi8vIEZvcm1zXG4vLyAtLS0tLVxuXG4vLyBGdW5jdGlvbjogRm9jdXMgR2xvd1xuLy8gTWFrZXMgeW91ciBpbnB1dHMgZ2xvdyB3aGVuIGZvY3VzZWQuIFBhc3MgYSBjb2xvciwgdGhleSB3aWxsIGdsb3cgdGhhdCBjb2xvci5cblxuLWZvY3VzLWdsb3coJGNvbG9yID0gJGRlZmF1bHQtY29sb3IpXG4gICY6Zm9jdXNcbiAgICBib3gtc2hhZG93OiAwIDAgNXB4IHJnYmEoJGNvbG9yLC43KVxuICAgIGJvcmRlcjogMXB4IHNvbGlkIGRlc2F0dXJhdGUoJGNvbG9yLCAzNSUpXG4gICAgb3V0bGluZTogbm9uZVxuXG4vLyBNaXhpbjogSW5wdXRcbi8vXG4vLyBBIGdlbmVyYWwgcHVycG9zZSBtaXhpbiBmb3IgdGV4dCBpbnB1dHMuIFByb3ZpZGVzIGFuIG5pY2UgYXR0cmFjdGl2ZSBkZWZhdWx0XG4vLyBzdHlsZSB0aGF0J3MgZWFzaWx5IGN1c3RvbWl6YWJsZS4gVGFrZXMgYSBjb2xvciBhcyB0aGUgZmlyc3QgcGFyYW0gYW5kIGFuXG4vLyBvcHRpb25hbCB3aWR0aCBhcyB0aGUgc2Vjb25kLlxuLy9cbi8vIGV4LiBpbnB1dCgpXG4vLyBleC4gaW5wdXQ6IHB1cnBsZVxuLy8gZXguIGlucHV0OiAjRDQ1RDg2IDQwMHB4XG5cbmlucHV0KCRjb2xvciA9ICRhcXVhLCAkd2lkdGggPSAyNTBweClcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoIzAwMCwgMC4xKVxuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZFxuICAvLyBmb250LXNpemU6IHVuaXQoJGZvbnQtc2l6ZSwgJ3B4JylcbiAgZm9udC1mYW1pbHk6ICRmb250LXN0YWNrXG4gIGJvcmRlcjogc29saWQgMXB4ICNiYmJcbiAgYm9yZGVyLXJhZGl1czogLjJlbVxuICBvdXRsaW5lOiBub25lXG4gIHBhZGRpbmc6IC40NWVtXG4gIGJhY2tncm91bmQ6ICNmZmZcbiAgY29sb3I6ICM1NTVcbiAgd2lkdGg6ICR3aWR0aFxuICB0ZXh0LXNoYWRvdzogMCAwIDFweCByZ2JhKCNmZmYsIC4xKVxuICB0cmFuc2l0aW9uKClcbiAgaWYgY29sb3JcbiAgICAtZm9jdXMtZ2xvdygkY29sb3IpXG4gIGVsc2VcbiAgICBib3gtc2hhZG93OiBub25lXG5cbi8vIE1peGluOiBJbnB1dCBTZWFyY2hcbi8vXG4vLyBBIHNlYXJjaCBzdHlsZSBpbnB1dCB3aXRoIHJvdW5kZWQgY29ybmVycyBhbmQgYW4gb3B0aW9uYWwgc2VhcmNoIGljb24gYXQgdGhlXG4vLyBlbmQuIFRha2VzIGFueSBjb2xvci5cbi8vXG4vLyBleC4gaW5wdXQtc2VhcmNoKClcbi8vIGV4LiBpbnB1dC1zZWFyY2g6IHllbGxvd1xuXG5pbnB1dC1zZWFyY2goJGNvbG9yID0gYXF1YSwgJHdpZHRoID0gMjUwcHgpXG4gIGlucHV0OiAkY29sb3IgJHdpZHRoXG4gIHBhZGRpbmctbGVmdDogOXB4XG4gIHJvdW5kZWQoKVxuXG4vLyBNaXhpbjogSW5wdXQgRGlzYWJsZWRcbi8vXG4vLyBNYWtlcyB5b3VyIGlucHV0IGFwcGVhciB0byBiZSBkaXNhYmxlZC4gTm90ZSB0aGF0IHlvdSBhbHNvIG5lZWQgdG8gYWRkXG4vLyAnZGlzYWJsZWQnIHRvIHlvdXIgaHRtbCB0YWcgaW4gb3JkZXIgZm9yIGl0IHRvIGFjdHVhbGx5IGJlIGRpc2FibGVkLlxuLy9cbi8vIGV4LiBpbnB1dC1kaXNhYmxlZCgpXG5cbmlucHV0LWRpc2FibGVkKClcbiAgY3Vyc29yOiBub3QtYWxsb3dlZFxuICBiYWNrZ3JvdW5kOiAjRjVGNUY1XG5cbiAgJjpob3ZlciwgJjpmb2N1c1xuICAgIGJvcmRlci1jb2xvcjogI2JiYlxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKCMwMDAsIDAuMSlcblxuLy8gTWl4aW46IExhYmVsXG4vL1xuLy8gVmVyeSBiYXNpYyBsYWJlbCBmb3IgeW91ciBmb3JtLiBQYXNzIGl0IGFuIG9wdGlvbmFsIGRpc3BsYXkgdHlwZSB0byBoYXZlIGl0XG4vLyBpbmxpbmUgb3IgYmxvY2suXG4vL1xuLy8gZXguIGxhYmVsKClcbi8vIGV4LiBsYWJlbDogJ2Jsb2NrJ1xuXG5sYWJlbCgkZGlzcGxheSA9ICdpbmxpbmUtYmxvY2snKVxuICBsaW5lLWhlaWdodDogMS41ZW1cbiAgZGlzcGxheTogdW5xdW90ZSgkZGlzcGxheSlcblxuLy8gTWl4aW46IEZpZWxkXG4vL1xuLy8gT2Z0ZW4gdGltZXMgaXQncyBlYXNpZXIgdG8gd3JhcCB5b3VyIGlucHV0IGFuZCBsYWJlbCBpbiBhIGRpdiBjYWxsZWQgXCJmaWVsZFwiXG4vLyBzbyB0aGV5IGNhbiBiZSBmbG9hdGVkLCBwb3NpdGlvbiwgYW5kIG1hbmlwdWxhdGVkIHdpdGhvdXQgc2NyZXdpbmcgdXAgdGhlXG4vLyByZXN0IG9mIHRoZSBmb3JtLiBUaGF0J3Mgd2hhdCB0aGlzIG1peGluIGlzIGZvciAtIHB1dCBpdCBvbiBhIGRpdiB0aGF0XG4vLyBjb250YWlucyBhIGxhYmVsIGFuZCBhbiBpbnB1dC4gVGhlbiBmZWVkIGl0IGEgZGlyZWN0aW9uIHRvIGFsaWduIChkZWZhdWx0IGlzXG4vLyByaWdodCksIGFuZCBhbiBvcHRpb25hbCB3aWR0aC5cbi8vXG4vLyBleC4gZmllbGQoKVxuLy8gZXguIGZpZWxkOiBsZWZ0XG4vLyBleC4gZmllbGQ6IHJpZ2h0IDUwMHB4XG5cbmZpZWxkKCRkaXJlY3Rpb24gPSByaWdodCwgJHdpZHRoID0gMzcwcHgpXG4gIGNsZWFyOiBib3RoXG4gIG1hcmdpbi1ib3R0b206IDVweFxuICB0ZXh0LWFsaWduOiAkZGlyZWN0aW9uXG4gIHdpZHRoOiAkd2lkdGhcblxuLy8gTWl4aW46IElucHV0IEVycm9yXG4vL1xuLy8gV2hlbiBzb21lb25lIEYnZCBpdCB1cCwgeW91IGdvdHRhIHNob3cgdGhlbSBob3cgaXQgaXMuIFB1dCB0aGlzIG9uIGFuIGlucHV0XG4vLyB0byBtYWtlIGl0IGNsZWFyIHRoYXQgc29tZXRoaW5nIGJhZCBpcyBoYXBwZW5pbmcuIEJlc3QgaW1wbGVtZW50ZWQgaW4gYW5cbi8vIC5lcnJvciBjbGFzcyBvciBzb21ldGhpbmcgc2ltaWxhci5cbi8vXG4vLyBleC4gaW5wdXQtZXJyb3IoKVxuLy8gZXguIGlucHV0LWVycm9yOiBibHVlXG5cbmlucHV0LWVycm9yKCRjb2xvciA9ICRyZWQpXG4gIGNvbG9yOiAkY29sb3JcbiAgYm9yZGVyLWNvbG9yOiAkY29sb3JcbiAgLWZvY3VzLWdsb3coJGNvbG9yKVxuXG4vLyBNaXhpbjogRmllbGQgRXJyb3Jcbi8vXG4vLyBJZiB5b3UgYXJlIHdyYXBwaW5nIGxhYmVscyBhbmQgaW5wdXRzIGluIGEgZmllbGQgZGl2LCB0aGlzIG1ha2VzIGxpZmUgZXZlblxuLy8gZWFzaWVyLiBNYWtlcyB0aGUgbGFiZWwgdGV4dCBhcyB3ZWxsIGFzIHRoZSBpbnB1dCBmaWVsZCByZWQuXG4vL1xuLy8gZXguIGZpZWxkLWVycm9yKClcbi8vIGV4LiBmaWVsZC1lcnJvcjogYmx1ZVxuXG5maWVsZC1lcnJvcigkY29sb3IgPSAkcmVkKVxuICBjb2xvcjogJGNvbG9yXG5cbiAgaW5wdXRcbiAgICBpbnB1dC1lcnJvcjogJGNvbG9yXG5cbi8vIE1peGluOiBJbnB1dCBXYXJuaW5nXG4vL1xuLy8gT2ssIHNvIG1heWJlIHlvdSBkaWRuJ3QgdG90YWxseSBGIGl0IHVwLCBidXQgYXQgdmVyeSBsZWFzdCB5b3UgZGVzZXJ2ZSBhXG4vLyB3YXJuaW5nLiBCZXN0IGltcGxlbWVudGVkIGluIGEgLndhcm5pbmcgY2xhc3Mgb3Igc29tZXRoaW5nIHNpbWlsYXIuXG4vL1xuLy8gZXguIGlucHV0LXdhcm5pbmcoKVxuLy8gZXguIGlucHV0LXdhcm5pbmc6IGJsdWVcblxuaW5wdXQtd2FybmluZygkY29sb3IgPSAkeWVsbG93KVxuICBjb2xvcjogZGFya2VuKCRjb2xvciwgMTUlKVxuICBib3JkZXItY29sb3I6ICRjb2xvclxuICAtZm9jdXMtZ2xvdygkY29sb3IpXG5cbi8vIE1peGluOiBGaWVsZCBXYXJuaW5nXG4vL1xuLy8gSWYgeW91IGFyZSB3cmFwcGluZyBsYWJlbHMgYW5kIGlucHV0cyBpbiBhIGZpZWxkIGRpdiwgdGhpcyBtYWtlcyBsaWZlIGV2ZW5cbi8vIGVhc2llci4gTWFrZXMgdGhlIGxhYmVsIHRleHQgYXMgd2VsbCBhcyB0aGUgaW5wdXQgZmllbGQgeWVsbG93LlxuLy9cbi8vIGV4LiBmaWVsZC13YXJuaW5nKClcbi8vIGV4LiBmaWVsZC13YXJuaW5nOiBibHVlXG5cbmZpZWxkLXdhcm5pbmcoJGNvbG9yID0gJHllbGxvdylcbiAgY29sb3I6IGRhcmtlbigkY29sb3IsIDE1JSlcblxuICBpbnB1dFxuICAgIGlucHV0LXdhcm5pbmc6ICRjb2xvclxuXG4vLyBNaXhpbjogSW5wdXQgU3VjY2Vzc1xuLy9cbi8vIGh0dHA6Ly9jbC5seS9GNEVtL2dyZWF0LXN1Y2Nlc3MuanBlZyAtIEJlc3QgaW1wbGVtZW50ZWQgaW4gYSAuc3VjY2VzcyBjbGFzc1xuLy8gb3Igc29tZXRoaW5nIHNpbWlsYXIuXG4vL1xuLy8gZXguIGlucHV0LXN1Y2Nlc3MoKVxuLy8gZXguIGlucHV0LXN1Y2Nlc3M6IHJlZFxuXG5pbnB1dC1zdWNjZXNzKCRjb2xvciA9ICRncmVlbilcbiAgY29sb3I6ICRjb2xvclxuICBib3JkZXItY29sb3I6ICRjb2xvclxuICAtZm9jdXMtZ2xvdygkY29sb3IpXG5cbi8vIE1peGluOiBGaWVsZCBTdWNjZXNzXG4vL1xuLy8gWW91J3JlIHByb2JhYmx5IGdldHRpbmcgdGlyZWQgb2YgdGhpcyByb3V0aW5lIGF0IHRoaXMgcG9pbnQuIEknbSBzdXJlIHlvdSBjYW5cbi8vIGltYWdpbmUgd2hhdCB0aGlzIGRvZXMuXG4vL1xuLy8gZXguIGZpZWxkLXN1Y2Nlc3MoKVxuLy8gZXguIGZpZWxkLXN1Y2Nlc3M6IGJsdWVcblxuZmllbGQtc3VjY2VzcygkY29sb3IgPSAkZ3JlZW4pXG4gIGNvbG9yOiAkY29sb3JcbiAgaW5wdXRcbiAgICBpbnB1dC1zdWNjZXNzOiAkY29sb3JcblxuLy8gQWRkaXRpdmUgTWl4aW46IEZpZWxkc1xuLy9cbi8vIFdBUk5JTkc6IENyZWF0ZXMgY2xhc3NlcyBpbiB5b3VyIGNzcyBhbmQgc3R5bGVzIHRoZW0gLSBub3QgdG8gYmUgdXNlZCBpbnNpZGVcbi8vIGFuIGVsZW1lbnQuXG4vL1xuLy8gQWRkIHRoZSBmaWVsZCBzdHlsZXMgdG8gLmZpZWxkIGFzIHdlbGwgYXMgc3VjY2Vzcywgd2FybmluZywgYW5kIGZhaWx1cmVcbi8vIHN0YXRlcy4gQWxzbyB0YWtlcyBkaXJlY3Rpb24gYW5kIHdpZHRoLiBIaWdobHkgcmVjb21tZW5kZWQgbWl4aW4uXG5cbmZpZWxkcygkZGlyZWN0aW9uID0gcmlnaHQsICR3aWR0aCA9IDM3MHB4KVxuICAuZmllbGRcbiAgICBmaWVsZCgkZGlyZWN0aW9uLCAkd2lkdGgpXG5cbiAgICAmLnN1Y2Nlc3NcbiAgICAgIGZpZWxkLXN1Y2Nlc3MoKVxuICAgICYud2FybmluZ1xuICAgICAgZmllbGQtd2FybmluZygpXG4gICAgJi5lcnJvclxuICAgICAgZmllbGQtZXJyb3IoKVxuXG4vLyBNaXhpbjogQXV0b2ZpbGxcblxuLy8gV2hlbiBmb3JtcyBhcmUgYXV0by1maWxsZWQsIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgaW5wdXRzIChpZTogcGFsZVxuLy8geWVsbG93KSBjYW4gYmUgdmVyeSBqYXJyaW5nLCBlc3BlY2lhbGx5IGlmIHlvdSBoYXZlIGEgZGFyayBiYWNrZ3JvdW5kLiAgVGhpc1xuLy8gYWxsb3dzIHlvdSB0byBvdmVycmlkZSB0aGF0LiBUYWtlcyBiYWNrZ3JvdW5kIGNvbG9yIGFuZCB0ZXh0IGNvbG9yLlxuXG4vLyBleC4gYXV0b2ZpbGwocmVkLCB5ZWxsb3cpXG5cbmF1dG9maWxsKCRiYWNrZ3JvdW5kID0gIzAwNzREOSwgJGNvbG9yID0gI2ZmZilcbiAgJjotd2Via2l0LWF1dG9maWxsXG4gICAgLXdlYmtpdC1ib3gtc2hhZG93IDAgMCAwcHggMTAwMHB4ICRiYWNrZ3JvdW5kIGluc2V0XG4gICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3IgJGNvbG9yICFpbXBvcnRhbnRcbiAgJjotbW96LWF1dG9maWxsXG4gICAgLW1vei10ZXh0LWZpbGwtY29sb3IgJGNvbG9yICFpbXBvcnRhbnRcbiAgICAtbW96LWJveC1zaGFkb3cgMCAwIDBweCAxMDAwcHggJGJhY2tncm91bmQgaW5zZXRcbiAgJjotby1hdXRvZmlsbFxuICAgIC1vLXRleHQtZmlsbC1jb2xvciBAY29sb3IgIWltcG9ydGFudFxuICAgIC1vLWJveC1zaGFkb3cgMCAwIDBweCAxMDAwcHggJGJhY2tncm91bmQgaW5zZXRcbiAgJjota2h0bWwtYXV0b2ZpbGxcbiAgICAta2h0bWwtdGV4dC1maWxsLWNvbG9yICRjb2xvciAhaW1wb3J0YW50XG4gICAgLWtodG1sLWJveC1zaGFkb3cgMCAwIDBweCAxMDAwcHggJGJhY2tncm91bmQgaW5zZXRcblxuXG4vLyBBZGRpdGl2ZSBNaXhpbjogRm9ybXNcbi8vXG4vLyBXQVJOSU5HOiBDcmVhdGVzIGNsYXNzZXMgaW4geW91ciBjc3MgYW5kIHN0eWxlcyB0aGVtIC0gbm90IHRvIGJlIHVzZWQgaW5zaWRlXG4vLyBhbiBlbGVtZW50LlxuLy9cbi8vIEFkZHMgbmljZXIgbG9va2luZyBzdHlsZXMgdG8gYWxsIHRleHQgaW5wdXRzIGFuZCB0ZXh0YXJlYXMuIE92ZXJyaWRlcyB0aGVcbi8vIGRlZmF1bHRzLlxuXG5mb3JtcygpXG4gICtodG1sNS1pbnB1dHMoKVxuICAgIGlucHV0KClcblxuICAgICYuZGlzYWJsZWRcbiAgICAgIGlucHV0LWRpc2FibGVkKClcbiAgICAmLnN1Y2Nlc3NcbiAgICAgIGlucHV0LXN1Y2Nlc3MoKVxuICAgICYud2FybmluZ1xuICAgICAgaW5wdXQtd2FybmluZygpXG4gICAgJi5lcnJvclxuICAgICAgaW5wdXQtZXJyb3IoKVxuXG4vLyBCbG9jayBNaXhpbjogSHRtbCA1IElucHV0c1xuLy9cbi8vIEEgYmxvY2sgdGhhdCBzZWxlY3RzIGFsbCB0aGUgaHRtbDUgaW5wdXQgdHlwZXMgYW5kIGxldHMgeW91IHN0eWxlIHRoZW0gYXNcbi8vIHlvdSB3aXNoIHdpdGhvdXQgaGF2aW5nIHRvIHR5cGUgb3V0IHRoZSB3aG9sZSBsaXN0LlxuLy9cbi8vIGV4LiAraHRtbDUtaW5wdXRzKClcbi8vICAgICAgIGJvcmRlcjogcmVkXG5cbmh0bWw1LWlucHV0cygpXG4gIGlucHV0W3R5cGU9J2VtYWlsJ11cbiAgaW5wdXRbdHlwZT0nbnVtYmVyJ11cbiAgaW5wdXRbdHlwZT0ncGFzc3dvcmQnXVxuICBpbnB1dFt0eXBlPSdzZWFyY2gnXVxuICBpbnB1dFt0eXBlPSd0ZWwnXVxuICBpbnB1dFt0eXBlPSd0ZXh0J11cbiAgaW5wdXRbdHlwZT0ndXJsJ11cbiAgaW5wdXRbdHlwZT0nY29sb3InXVxuICBpbnB1dFt0eXBlPSdkYXRlJ11cbiAgaW5wdXRbdHlwZT0nZGF0ZXRpbWUnXVxuICBpbnB1dFt0eXBlPSdkYXRldGltZS1sb2NhbCddXG4gIGlucHV0W3R5cGU9J21vbnRoJ11cbiAgaW5wdXRbdHlwZT0ndGltZSddXG4gIGlucHV0W3R5cGU9J3dlZWsnXVxuICB0ZXh0YXJlYVxuICAgIHtibG9ja31cbiIsIi8vIC0tLS0tLS0tLVxuLy8gVXRpbGl0aWVzXG4vLyAtLS0tLS0tLS1cblxuLy8gQWxpYXM6IE5vIFNlbGVjdFxuLy8gWW91IGNhbid0IGhpZ2hsaWdodCB0aGlzLlxuXG5uby1zZWxlY3QoKVxuICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmVcbiAgdXNlci1zZWxlY3Q6IG5vbmVcblxuLy8gQWxpYXM6IEJcbi8vIEJvcmRlciwgYnV0IHF1aWNrZXIgYW5kIHdpdGggYW4gaW50ZWxsaWdlbnQgZGVmYXVsdC5cblxuYigpXG4gIGFyZ3VtZW50cyA9IHVucXVvdGUoJzFweCBzb2xpZCcpIHVubGVzcyBhcmd1bWVudHNcbiAgYm9yZGVyOiBhcmd1bWVudHNcblxuLy8gQWxpYXM6IFRyYW5zaXRpb25cbi8vXG4vLyBUcmFuc2l0aW9uIHdpdGggYW4gaW50ZWxsaWdlbnQgZGVmYXVsdC5cbi8vXG4vLyBleC4gdHJhbnNpdGlvbigpXG4vLyBleC4gdHJhbnNpdGlvbjogY29sb3IgMXMgZWFzZVxuLy8gZXguIHRyYW5zaXRpb24oY29sb3IgMXMgZWFzZSwgYmFja2dyb3VuZCAyLjRzIGxpbmVhcilcblxudHJhbnNpdGlvbigpXG4gIGFyZ3VtZW50cyA9IHVucXVvdGUoJ2FsbCAuM3MgZWFzZScpIHVubGVzcyBhcmd1bWVudHNcbiAgdHJhbnNpdGlvbjogYXJndW1lbnRzXG5cbi8vIEFsaWFzOiBCb3JkZXIgQm94XG4vLyBBIHF1aWNrZXIgd2F5IHRvIHNwZWNpZnkgYm9yZGVyLWJveCBzaXppbmcuXG5cbmJvcmRlci1ib3goKVxuICBib3gtc2l6aW5nOiBib3JkZXItYm94XG5cbi8vIEFsaWFzOiBPcGVudHlwZSBsaWdhdHVyZXNcbi8vXG4vLyBUaGUgdmFzdCBtYWpvcml0eSBvZiBmb250cyBjb250YWluIGxvd2VyY2FzZSBhbmQgdXBwZXJjYXNlIGFscGhhYmV0cyxcbi8vIG51bWVyYWxzLCBwdW5jdHVhdGlvbiBhbmQgYWNjZW50cy4gTWFueSBwcm9mZXNzaW9uYWxseS1kZXNpZ25lZCBmb250c1xuLy8gYWxzbyBjb250YWluIGxpZ2F0dXJlcywgYWx0ZXJuYXRpdmUgY2hhcmFjdGVycywgc21hbGxjYXBzLCBkaWZmZXJlbnQga2luZHMgb2Zcbi8vIG51bWJlcnMsIGFuZCBzb21ldGltZXMgbXVjaCBtb3JlIGJlc2lkZXMuIFRoaXMgZW5hYmxlcyBpdC5cbi8vXG4vLyBTb3VyY2U6IGh0dHA6Ly93d3cubmV3bmV0LXNvZnQuY29tL2Jsb2cvY3NzdHlwb2dyYXBoeVxuLy8gQWRkaXRpb25hbDogaHR0cDovL2Jsb2cuZm9udGRlY2suY29tL3Bvc3QvMTU3NzcxNjU3MzQvb3BlbnR5cGUtMVxuXG5vcGVuLXR5cGUtbGlnYXR1cmVzKClcbiAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiBcImxpZ2FcIiwgXCJkbGlnXCJcblxuLy8gTWl4aW46IFJvdW5kZWRcbi8vXG4vLyBVbmxlc3MgeW91IGFyZSB3b3JraW5nIHdpdGggYSByaWRpY3Vsb3VzbHkgbGFyZ2UgZWxlbWVudCwgdGhpcyB3aWxsIHJvdW5kIHRoZVxuLy8gY29ybmVycyBhcyBtdWNoIGFzIGNzcyB3aWxsIGFsbG93LiBFdmVuIGluIElFLlxuLy9cbi8vIGV4LiByb3VuZGVkKClcblxucm91bmRlZCgpXG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4XG5cbi8vIE1peGluOiBUcmlhbmdsZVxuLy9cbi8vIE9uZSBvZiBteSBmYXZvcml0ZXMuIE1ha2VzIGEgbGl0dGxlIGNzcyB0cmlhbmdsZSBmb3IgeW91LiBQYXNzIGl0IGEgZGlyZWN0aW9uXG4vLyAodXAsIGRvd24sIGxlZnQsIHJpZ2h0KSwgc2l6ZSAoaW4gcGl4ZWxzKSwgYW5kIGEgY29sb3IuXG4vL1xuLy8gZXguIHRyaWFuZ2xlKClcbi8vIGV4LiB0cmlhbmdsZTogJ2Rvd24nIDE1cHggYmx1ZVxuXG50cmlhbmdsZSgkZGlyZWN0aW9uID0gJ3VwJywgJHNpemUgPSAxMHB4LCAkY29sb3IgPSAjMDAwKVxuICB3aWR0aDogMFxuICBoZWlnaHQ6IDBcbiAgaWYgJGRpcmVjdGlvbiA9PSAndXAnXG4gICAgYm9yZGVyLWxlZnQ6ICRzaXplIHNvbGlkIHRyYW5zcGFyZW50XG4gICAgYm9yZGVyLXJpZ2h0OiAkc2l6ZSBzb2xpZCB0cmFuc3BhcmVudFxuICAgIGJvcmRlci1ib3R0b206ICRzaXplIHNvbGlkICRjb2xvclxuICBlbHNlIGlmICRkaXJlY3Rpb24gPT0gJ2Rvd24nXG4gICAgYm9yZGVyLWxlZnQ6ICRzaXplIHNvbGlkIHRyYW5zcGFyZW50XG4gICAgYm9yZGVyLXJpZ2h0OiAkc2l6ZSBzb2xpZCB0cmFuc3BhcmVudFxuICAgIGJvcmRlci10b3A6ICRzaXplIHNvbGlkICRjb2xvclxuICBlbHNlIGlmICRkaXJlY3Rpb24gPT0gJ2xlZnQnXG4gICAgYm9yZGVyLXRvcDogJHNpemUgc29saWQgdHJhbnNwYXJlbnRcbiAgICBib3JkZXItYm90dG9tOiAkc2l6ZSBzb2xpZCB0cmFuc3BhcmVudFxuICAgIGJvcmRlci1yaWdodDogJHNpemUgc29saWQgJGNvbG9yXG4gIGVsc2UgaWYgJGRpcmVjdGlvbiA9PSAncmlnaHQnXG4gICAgYm9yZGVyLXRvcDogJHNpemUgc29saWQgdHJhbnNwYXJlbnRcbiAgICBib3JkZXItYm90dG9tOiAkc2l6ZSBzb2xpZCB0cmFuc3BhcmVudFxuICAgIGJvcmRlci1sZWZ0OiAkc2l6ZSBzb2xpZCAkY29sb3JcblxuLy8gTWl4aW46IERlYnVnXG4vL1xuLy8gRGVidWdnaW5nIHRvb2wgLSBhZGRzIGEgYm9yZGVyIHRvIHRoZSBjdXJyZW50IGVsZW1lbnQsIGl0cyBjaGlsZHJlbixcbi8vIGdyYW5kY2hpbGRyZW4sIGV0YyBzbyB5b3UgY2FuIHNlZSB3aGF0J3MgdXAg4oCTIGdyZWF0IGZvciBwcmVjaXNlIGxheW91dFxuLy8gdHdlYWtzLiAgSXQgd2lsbCBhbHNvIGFkZCBmbGFncyBpZiB5b3UgbWFkZSBtaXN0YWtlcyBsaWtlIHB1dCBpbiBpbmxpbmVcbi8vIHN0eWxlcywgZm9yZ290IGFuIGFsdCBvbiBhbiBpbWFnZSwgbGVmdCB0aGUgYWx0IGJsYW5rLCBldGMuIE5vdCB0byBiZSB1c2VkXG4vLyBpbiBwcm9kdWN0aW9uLCBvYnZpb3VzbHkuXG4vL1xuLy8gdmlhIGRib3g6IGh0dHA6Ly9jb2RlcGVuLmlvL2Rib3gvcGVuL0dKWnpZbz9lZGl0b3JzPTExMFxuXG5kZWJ1ZygpXG4gIGJvcmRlciAxcHggc29saWQgTWVkaXVtUHVycGxlXG4gID4gKlxuICAgIGJvcmRlciAxcHggc29saWQgRGFya0toYWtpXG4gID4gKiA+ICpcbiAgICBib3JkZXIgMXB4IHNvbGlkIE1lZGl1bVR1cnF1b2lzZVxuICA+ICogPiAqID4gKlxuICAgIGJvcmRlciAxcHggc29saWQgTGlnaHRTbGF0ZUdyYXlcbiAgPiAqID4gKiA+ICogPiAqXG4gICAgYm9yZGVyIDFweCBzb2xpZCBMaWdodEJsdWVcbiAgPiAqID4gKiA+ICogPiAqID4gKlxuICAgIGJvcmRlciAxcHggc29saWQgTWVkaXVtU2xhdGVCbHVlXG4gID4gKiA+ICogPiAqID4gKiA+ICogPiAqXG4gICAgYm9yZGVyIDFweCBzb2xpZCBEZWVwU2t5Qmx1ZVxuICA+ICogPiAqID4gKiA+ICogPiAqID4gKiA+ICpcbiAgICBib3JkZXIgMXB4IHNvbGlkIERhcmtTZWFHcmVlblxuXG4gIGltZ1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNmMDBcbiAgICAtd2Via2l0LWZpbHRlcjogaHVlLXJvdGF0ZSgzMzBkZWcpIGNvbnRyYXN0KC43NSkgc2F0dXJhdGUoNilcbiAgICBmaWx0ZXI6IGh1ZS1yb3RhdGUoMzMwZGVnKSBjb250cmFzdCguNzUpIHNhdHVyYXRlKDYpXG5cbiAgaW1nW2FsdF1cbiAgICBib3JkZXI6IDFweCBzb2xpZCBMaW1lR3JlZW5cbiAgICAtd2Via2l0LWZpbHRlcjogbm9uZVxuICAgIGZpbHRlcjogbm9uZVxuXG4gIGltZ1thbHQ9XCJcIl1cbiAgICBib3JkZXI6IDFweCBzb2xpZCBnb2xkXG4gICAgLXdlYmtpdC1maWx0ZXI6IGNvbnRyYXN0KDEpIHNhdHVyYXRlKDIpXG4gICAgZmlsdGVyOiBjb250cmFzdCgxKSBzYXR1cmF0ZSgyKVxuXG4gIGFcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKCNmMDAsIC4xKVxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNmMDBcblxuICBhW3RpdGxlXVxuICAgIGJhY2tncm91bmQ6IG5vbmVcbiAgICBib3JkZXItY29sb3I6IExpbWVHcmVlblxuXG4gIHN0eWxlXG4gICAgYm9yZGVyOiBibG9ja1xuXG4gIFtzdHlsZV0sIHN0eWxlLCBbY2xhc3M9XCJcIl0sIFtpZD1cIlwiXSwgYVtocmVmPVwiI1wiXVxuICAgIGJhY2tncm91bmQ6IHJnYmEoeWVsbG93LCAuMilcbiAgICBib3JkZXI6IDFweCBzb2xpZCBnb2xkXG5cbi8vIEJsb2NrIE1peGluOiBRdWFudGl0eSBRdWVyaWVzXG4vL1xuLy8gU2V0IHJ1bGVzIGZvciBhIHNlbGVjdG9yIGJhc2VkIG9uIGEgc3BlY2lmaWMgc2libGluZyBjb3VudC5cbi8vIHZpYTogaHR0cHM6Ly9naXRodWIuY29tL3Bhc2NhbGR1ZXovcG9zdGNzcy1xdWFudGl0eS1xdWVyaWVzXG4vL1xuLy8gZXguICtxdWFudGl0eS1hdC1sZWFzdCg2KVxuLy8gZXguICtxdWFudGl0eS1hdC1tb3N0KDEyLCBkaXYpXG4vLyBleC4gK3F1YW50aXR5LWJldHdlZW4oMCwgOCwgc3Bhbilcbi8vIGV4LiArcXVhbnRpdHktZXhhY3RseSg1KVxuXG5xdWFudGl0eS1hdC1sZWFzdCgkY291bnQgPSA0LCAkc2VsZWN0b3IgPSBsaSlcbiAgJiA+IHskc2VsZWN0b3J9Om50aC1sYXN0LWNoaWxkKG4reyRjb3VudH0pXG4gICYgPiB7JHNlbGVjdG9yfTpudGgtbGFzdC1jaGlsZChuK3skY291bnR9KSB+IHskc2VsZWN0b3J9XG4gICAge2Jsb2NrfVxuXG5xdWFudGl0eS1hdC1tb3N0KCRjb3VudCA9IDQsICRzZWxlY3RvciA9IGxpKVxuICAmID4geyRzZWxlY3Rvcn06bnRoLWxhc3QtY2hpbGQoLW4reyRjb3VudH0pOmZpcnN0LWNoaWxkXG4gICYgPiB7JHNlbGVjdG9yfTpudGgtbGFzdC1jaGlsZCgtbit7JGNvdW50fSk6Zmlyc3QtY2hpbGQgfiB7JHNlbGVjdG9yfVxuICAgIHtibG9ja31cblxucXVhbnRpdHktYmV0d2Vlbigkc3RhcnQgPSAwLCAkZW5kID0gMTAsICRzZWxlY3RvciA9IGxpKVxuICAmID4geyRzZWxlY3Rvcn06bnRoLWxhc3QtY2hpbGQobit7JHN0YXJ0fSk6bnRoLWxhc3QtY2hpbGQoLW4reyRlbmR9KTpmaXJzdC1jaGlsZFxuICAmID4geyRzZWxlY3Rvcn06bnRoLWxhc3QtY2hpbGQobit7JHN0YXJ0fSk6bnRoLWxhc3QtY2hpbGQoLW4reyRlbmR9KTpmaXJzdC1jaGlsZCB+IHskc2VsZWN0b3J9XG4gICAge2Jsb2NrfVxuXG5xdWFudGl0eS1leGFjdGx5KCRjb3VudCA9IDQsICRzZWxlY3RvciA9IGxpKVxuICAmID4geyRzZWxlY3Rvcn06bnRoLWxhc3QtY2hpbGQoeyRjb3VudH0pOmZpcnN0LWNoaWxkXG4gICYgPiB7JHNlbGVjdG9yfTpudGgtbGFzdC1jaGlsZCh7JGNvdW50fSk6Zmlyc3QtY2hpbGQgfiB7JHNlbGVjdG9yfVxuICAgIHtibG9ja31cblxuLy8gRnVuY3Rpb246IFJlbSBDYWxjdWxhdG9yXG4vL1xuLy8gQ2FsY3VsYXRlcyBhbmQgcmV0dXJucyB0aGUgcmVtIHZhbHVlIGJhc2VkIG9uIHB4IGlucHV0LiBEZWZhdWx0IGJhc2UgZm9udFxuLy8gc2l6ZSBpcyAxNnB4LCBidXQgY2FuIGJlIGNoYW5nZWQgd2l0aCBiYXNlLWZvbnQtc2l6ZS5cbi8vXG4vLyBleCAgICAgICA6IHJlbSgzMHB4KSBvciByZW0oMzApXG4vLyByZXR1cm5zICA6IDEuODc1cmVtXG5cbnJlbSgkdmFsdWUpXG4gICRiYXNlLWZvbnQtc2l6ZSA/PSAxNnB4XG4gICR0eXBlID0gdW5pdCgkdmFsdWUpXG4gIGlmICR0eXBlID09IHB4XG4gICAgcmV0dXJuIHVuaXQoJHZhbHVlIC8gJGJhc2UtZm9udC1zaXplLCAncmVtJylcbiAgZWxzZVxuICAgIHJldHVybiB1bml0KCR2YWx1ZSwgJHR5cGUpXG5cbi8vIEN1c3RvbSBhbmltYXRpb24gdGltaW5nIGZ1bmN0aW9ucywgcG9ydGVkIGZyb20gYm91cmJvblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3Rob3VnaHRib3QvYm91cmJvbi9ibG9iL21hc3Rlci9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fdGltaW5nLWZ1bmN0aW9ucy5zY3NzXG5cbi8vIGVhc2UtaW5cbiRlYXNlLWluLXF1YWQgPSAgICAgIGN1YmljLWJlemllcigwLjU1MCwgIDAuMDg1LCAwLjY4MCwgMC41MzApXG4kZWFzZS1pbi1jdWJpYyA9ICAgICBjdWJpYy1iZXppZXIoMC41NTAsICAwLjA1NSwgMC42NzUsIDAuMTkwKVxuJGVhc2UtaW4tcXVhcnQgPSAgICAgY3ViaWMtYmV6aWVyKDAuODk1LCAgMC4wMzAsIDAuNjg1LCAwLjIyMClcbiRlYXNlLWluLXF1aW50ID0gICAgIGN1YmljLWJlemllcigwLjc1NSwgIDAuMDUwLCAwLjg1NSwgMC4wNjApXG4kZWFzZS1pbi1zaW5lID0gICAgICBjdWJpYy1iZXppZXIoMC40NzAsICAwLjAwMCwgMC43NDUsIDAuNzE1KVxuJGVhc2UtaW4tZXhwbyA9ICAgICAgY3ViaWMtYmV6aWVyKDAuOTUwLCAgMC4wNTAsIDAuNzk1LCAwLjAzNSlcbiRlYXNlLWluLWNpcmMgPSAgICAgIGN1YmljLWJlemllcigwLjYwMCwgIDAuMDQwLCAwLjk4MCwgMC4zMzUpXG4kZWFzZS1pbi1iYWNrID0gICAgICBjdWJpYy1iZXppZXIoMC42MDAsIC0wLjI4MCwgMC43MzUsIDAuMDQ1KVxuJGVhc2UtaW4tc3dpZnQgPSAgICAgY3ViaWMtYmV6aWVyKDAuOTAwLCAgMC4wMDAsIDAuNDUwLCAxLjAwMClcblxuLy8gZWFzZS1vdXRcbiRlYXNlLW91dC1xdWFkID0gICAgIGN1YmljLWJlemllcigwLjI1MCwgIDAuNDYwLCAwLjQ1MCwgMC45NDApXG4kZWFzZS1vdXQtY3ViaWMgPSAgICBjdWJpYy1iZXppZXIoMC4yMTUsICAwLjYxMCwgMC4zNTUsIDEuMDAwKVxuJGVhc2Utb3V0LXF1YXJ0ID0gICAgY3ViaWMtYmV6aWVyKDAuMTY1LCAgMC44NDAsIDAuNDQwLCAxLjAwMClcbiRlYXNlLW91dC1xdWludCA9ICAgIGN1YmljLWJlemllcigwLjIzMCwgIDEuMDAwLCAwLjMyMCwgMS4wMDApXG4kZWFzZS1vdXQtc2luZSA9ICAgICBjdWJpYy1iZXppZXIoMC4zOTAsICAwLjU3NSwgMC41NjUsIDEuMDAwKVxuJGVhc2Utb3V0LWV4cG8gPSAgICAgY3ViaWMtYmV6aWVyKDAuMTkwLCAgMS4wMDAsIDAuMjIwLCAxLjAwMClcbiRlYXNlLW91dC1jaXJjID0gICAgIGN1YmljLWJlemllcigwLjA3NSwgIDAuODIwLCAwLjE2NSwgMS4wMDApXG4kZWFzZS1vdXQtYmFjayA9ICAgICBjdWJpYy1iZXppZXIoMC4xNzUsICAwLjg4NSwgMC4zMjAsIDEuMjc1KVxuJGVhc2Utb3V0LXN3aWZ0ID0gICAgY3ViaWMtYmV6aWVyKDAuNTUwLCAgMC4wMDAsIDAuMTAwLCAxLjAwMClcblxuLy8gZWFzZS1pbi1vdXRcbiRlYXNlLWluLW91dC1xdWFkID0gIGN1YmljLWJlemllcigwLjQ1NSwgIDAuMDMwLCAwLjUxNSwgMC45NTUpXG4kZWFzZS1pbi1vdXQtY3ViaWMgPSBjdWJpYy1iZXppZXIoMC42NDUsICAwLjA0NSwgMC4zNTUsIDEuMDAwKVxuJGVhc2UtaW4tb3V0LXF1YXJ0ID0gY3ViaWMtYmV6aWVyKDAuNzcwLCAgMC4wMDAsIDAuMTc1LCAxLjAwMClcbiRlYXNlLWluLW91dC1xdWludCA9IGN1YmljLWJlemllcigwLjg2MCwgIDAuMDAwLCAwLjA3MCwgMS4wMDApXG4kZWFzZS1pbi1vdXQtc2luZSA9ICBjdWJpYy1iZXppZXIoMC40NDUsICAwLjA1MCwgMC41NTAsIDAuOTUwKVxuJGVhc2UtaW4tb3V0LWV4cG8gPSAgY3ViaWMtYmV6aWVyKDEuMDAwLCAgMC4wMDAsIDAuMDAwLCAxLjAwMClcbiRlYXNlLWluLW91dC1jaXJjID0gIGN1YmljLWJlemllcigwLjc4NSwgIDAuMTM1LCAwLjE1MCwgMC44NjApXG4kZWFzZS1pbi1vdXQtYmFjayA9ICBjdWJpYy1iZXppZXIoMC42ODAsIC0wLjU1MCwgMC4yNjUsIDEuNTUwKVxuJGVhc2UtaW4tb3V0LXN3aWZ0ID0gY3ViaWMtYmV6aWVyKDAuOTAwLCAgMC4wMDAsIDAuMTAwLCAxLjAwMClcbiIsIi8vIC0tLS0tLS1cbi8vIEJ1dHRvbnNcbi8vIC0tLS0tLS1cblxuLy8gRnVuY3Rpb246IGhpZ2hsaWdodFxuLy9cbi8vIEFkZHMgYSBsaWdodCBicmlnaHRlciBsaW5lIGFjcm9zcyB0aGUgdG9wIG9mIHRoZSBlbGVtZW50IGZvciBhIHBlcnNwZWN0aXZlXG4vLyBlZmZlY3QuIFRha2VzIGFuIG9wdGlvbmFsIGFyZ3VtZW50IGZvciBzdHJlbmd0aCwgd2hpY2ggdGFrZXMgYSB2YWx1ZSBiZXR3ZWVuXG4vLyAwIGFuZCAxLlxuLy9cbi8vIGV4LiBoaWdobGlnaHQoKVxuLy8gZXguIGhpZ2hsaWdodDogLjdcblxuLWhpZ2hsaWdodCgkc3RyZW5ndGggPSAuMylcbiAgYm94LXNoYWRvdzogcyhcImluc2V0IDAgMXB4IDAgJXNcIiwgcmdiYSgyNTUsMjU1LDI1NSwkc3RyZW5ndGgpKVxuXG4vLyBGdW5jdGlvbjogcGFyc2Vcbi8vIFVzZWQgaW50ZXJuYWxseSBmb3Igc2V0dGluZyBidXR0b24gc2l6ZXMuXG5cbi1wYXJzZSgkc2l6ZSlcbiAgaWYgJHNpemUgPT0gXCJzbWFsbFwiXG4gICAgcmV0dXJuIDEwXG4gIGVsc2UgaWYgJHNpemUgPT0gXCJtZWRpdW1cIlxuICAgIHJldHVybiAxM1xuICBlbHNlIGlmICRzaXplID09IFwibGFyZ2VcIlxuICAgIHJldHVybiAxOFxuICBlbHNlXG4gICAgcmV0dXJuICRzaXplXG5cbi8vIE1peGluOiBCdXR0b25cbi8vXG4vLyBDcmVhdGVzIGEgdmVyeSBiYXNpYyBsb29raW5nIGJ1dHRvbiBzdHlsZS4gVGhyZWUgb3B0aW9uYWwgcGFyYW1zOlxuLy8gLSBjb2xvcjogVGFrZXMgYW55IGNvbG9yLCBkZWZhdWx0cyB0byB0aGUgZGVmYXVsdCBnbG9iYWwgY29sb3Jcbi8vIC0gc2l6ZTogVGFrZXMgJ3NtYWxsJywgJ21lZGl1bScsICdsYXJnZScsIG9yIGFuIGludGVnZXIuIFRoZSBudW1iZXJzIHJlZmxlY3Rcbi8vICAgdGhlIGZvbnQgc2l6ZSBmb3IgdGhlIHRleHQgaW5zaWRlIHRoZSBidXR0b24sIGJ1dCBzY2FsZXMgYWxsIG90aGVyIGFzcGVjdHNcbi8vICAgYXMgd2VsbCAoY29ybmVycywgcGFkZGluZywgZXRjKS5cbi8vIC0gJHRleHQtY29sb3I6IFRha2VzIGFueSBjb2xvciBmb3IgdGhlIGJ1dHRvbiB0ZXh0LCBkZWZhdWx0cyB0byB0cnlpbmcgdG9cbi8vICAgZGV0ZWN0IHdoZXRoZXIgdGhlIGJhY2tncm91bmQgaXMgZGFyayBvciBsaWdodCBhbmQgc2V0dGluZyB0aGUgb3Bwb3NpdGUuXG4vL1xuLy8gZXguIGJ1dHRvbigpXG4vLyBleC4gYnV0dG9uOiBibHVlXG4vLyBleC4gYnV0dG9uOiAjRDQ1MTNCXG4vLyBleC4gYnV0dG9uOiBncmVlbiBsYXJnZVxuLy8gZXguIGJ1dHRvbjogIzRDODJENCAyNFxuXG5idXR0b24oJGNvbG9yID0gJGRlZmF1bHQtY29sb3IsICRzaXplID0gXCJtZWRpdW1cIiwgJHRleHQtY29sb3IgPSBudWxsKVxuXG4gIC8vIGNvbG9yIGRldGVjdGlvbiBhbmQgY2hhbmdlc1xuICAkdGV4dC1jb2xvciA9IChsaWdodChkYXJrZW4oJGNvbG9yLCAyMiUpKSA/IHJnYmEoIzAwMCwgLjcpIDogI2ZmZikgdW5sZXNzICR0ZXh0LWNvbG9yXG4gICRwYXJzZWQtc2l6ZSA9IC1wYXJzZSgkc2l6ZSlcblxuICAvLyBub3cgdGhhdCB3ZSd2ZSBnb3QgbnVtYmVycywgbGV0J3Mgd29yayBzb21lIHByb3BvcnRpb25zXG4gICRoZWlnaHQgPSByb3VuZCgoJHBhcnNlZC1zaXplICogMS41M3B4KSAvIDIpXG4gICR3aWR0aCA9IHJvdW5kKCgoJHBhcnNlZC1zaXplICogMS41M3B4KSAqIDIuMikgLyAyKVxuXG4gIC8vIGR5bmFtaWNhbGx5IGNhbGN1bGF0ZWQgc3R5bGVzXG4gIGZvbnQtc2l6ZTogdW5pdCgkcGFyc2VkLXNpemUsICdweCcpXG4gIHBhZGRpbmc6IHVuaXQoJGhlaWdodCwgJ3B4JykgdW5pdCgkd2lkdGgsICdweCcpXG4gIGJvcmRlci1yYWRpdXM6IHJvdW5kKCRwYXJzZWQtc2l6ZSAvIDQuMzMzMzNweClcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yXG4gIGNvbG9yOiAkdGV4dC1jb2xvclxuXG4gIC8vIGNvbnN0YW50IHN0eWxlc1xuICBjdXJzb3I6IHBvaW50ZXJcbiAgZm9udC13ZWlnaHQ6IGJvbGRcbiAgZm9udC1mYW1pbHk6ICRmb250LXN0YWNrXG4gIGxpbmUtaGVpZ2h0OiAxZW1cbiAgdGV4dC1hbGlnbjogY2VudGVyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZVxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2tcbiAgYm9yZGVyOiBub25lXG4gIG5vLXNlbGVjdCgpXG5cbiAgJjpob3ZlciwgJjpmb2N1c1xuICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkY29sb3IsIDUlKVxuICAgIGNvbG9yOiBkYXJrZW4oJHRleHQtY29sb3IsIDMlKVxuICAgIGJvcmRlcjogbm9uZVxuXG4gICY6YWN0aXZlXG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRjb2xvciwgMTAlKVxuXG4vLyBNaXhpbjogR2xvc3N5IEJ1dHRvblxuLy9cbi8vIENyZWF0ZXMgYSBtb3JlIGZhbmN5IGxvb2tpbmcgYnV0dG9uIHN0eWxlLiBGaXZlIG9wdGlvbmFsIHBhcmFtczpcbi8vIC0gY29sb3I6IFRha2VzIGFueSBjb2xvciwgZGVmYXVsdHMgdG8gdGhlIGRlZmF1bHQgZ2xvYmFsIGNvbG9yXG4vLyAtIHNpemU6IFRha2VzICdzbWFsbCcsICdtZWRpdW0nLCAnbGFyZ2UnLCBvciBhbiBpbnRlZ2VyLiBUaGUgbnVtYmVycyByZWZsZWN0c1xuLy8gICB0aGUgZm9udCBzaXplIGZvciB0aGUgdGV4dCBpbnNpZGUgdGhlIGJ1dHRvbiwgYnV0IHNjYWxlcyBhbGwgb3RoZXIgYXNwZWN0c1xuLy8gICBhcyB3ZWxsLlxuLy8gLSAkdGV4dC1jb2xvcjogVGFrZXMgYW55IGNvbG9yIGZvciB0aGUgYnV0dG9uIHRleHQsIGRlZmF1bHRzIHRvIHRyeWluZyB0b1xuLy8gICBkZXRlY3Qgd2hldGhlciB0aGUgYmFja2dyb3VuZCBpcyBkYXJrIG9yIGxpZ2h0IGFuZCBzZXR0aW5nIHRoZSBvcHBvc2l0ZS5cbi8vIC0gJHNoYWRvdy1jb2xvcjogQ29sb3IgZm9yIHRoZSB0ZXh0IHNoYWRvdywgZGVmYXVsdCBpcyB0aGUgY29udHJhc3QgZGV0ZWN0aW9uXG4vLyAgIGRlc2NyaWJlZCBhYm92ZS5cbi8vIC0gJGhvdmVyLWNvbG9yOiBDb2xvciBvZiB0aGUgdGV4dCBzaGFkb3cgd2hlbiBob3ZlcmVkLiBEZWZhdWx0IGlzIGNvbnRyYXN0XG4vLyAgIGRldGVjdGlvbiBhcyBkZXNjcmliZWQgYWJvdmUuIFlvdSBwcm9iYWJseSBkb24ndCBuZWVkIHRvIHVzZSB0aGlzLlxuLy9cbi8vIGV4LiBnbG9zc3ktYnV0dG9uKClcbi8vIGV4LiBnbG9zc3ktYnV0dG9uOiBibHVlXG4vLyBleC4gZ2xvc3N5LWJ1dHRvbjogI0Q0NTEzQlxuLy8gZXguIGdsb3NzeS1idXR0b246IGdyZWVuIGxhcmdlXG4vLyBleC4gZ2xvc3N5LWJ1dHRvbjogIzRDODJENCAyNFxuXG5nbG9zc3ktYnV0dG9uKCRjb2xvciA9ICRkZWZhdWx0LWNvbG9yLCAkc2l6ZSA9IFwibWVkaXVtXCIsICR0ZXh0LWNvbG9yID0gbnVsbCwgJHNoYWRvdy1jb2xvciA9IG51bGwsICRob3Zlci1jb2xvciA9IG51bGwpXG5cbiAgLy8gY29sb3IgZGV0ZWN0aW9uIGFuZCBjaGFuZ2VzXG4gIGlmICR0ZXh0LWNvbG9yXG4gICAgJGRhcmstdGV4dCA9IGxpZ2h0KCR0ZXh0LWNvbG9yKSA/IHRydWUgOiBmYWxzZVxuICBlbHNlXG4gICAgJGRhcmstdGV4dCA9IGxpZ2h0KGRhcmtlbigkY29sb3IsIDIyJSkpID8gZmFsc2UgOiB0cnVlXG4gICAgJHRleHQtY29sb3IgPSAkZGFyay10ZXh0ID8gd2hpdGUgOiByZ2JhKCMwMDAsIC43KVxuXG4gICRzaGFkb3ctY29sb3IgPSAkZGFyay10ZXh0ID8gcmdiYSgjMDAwLC4xKSA6IHJnYmEoI2ZmZiwuMykgdW5sZXNzICRzaGFkb3ctY29sb3JcbiAgJGhvdmVyLWNvbG9yID0gJGRhcmstdGV4dCA/IHJnYmEoIzAwMCwuMikgOiByZ2JhKCNmZmYsLjUpIHVubGVzcyAkaG92ZXItY29sb3JcbiAgJGRvd24tc2hhZG93ID0gJGRhcmstdGV4dCA/IDAgLTFweCAxcHggcmdiYSgjMDAwLC4yKSA6IDFweCAxcHggMXB4IHJnYmEoI2ZmZiwuNilcblxuICAvLyBwYXJzZSB3b3JkcywgbWFrZSBzdXJlIGl0J3MgYSBudW1iZXJcbiAgJHBhcnNlZC1zaXplID0gLXBhcnNlKCRzaXplKVxuXG4gIC8vIG5vdyB0aGF0IHdlJ3ZlIGdvdCBudW1iZXJzLCBsZXQncyB3b3JrIHNvbWUgcHJvcG9ydGlvbnNcbiAgJGhlaWdodCA9IHJvdW5kKCgkcGFyc2VkLXNpemUqMS41M3B4KS8yKVxuICAkd2lkdGggPSByb3VuZCgoKCRwYXJzZWQtc2l6ZSoxLjUzcHgpKjIuMikvMilcblxuICAvLyBkeW5hbWljYWxseSBjYWxjdWxhdGVkIHN0eWxlc1xuICBmb250LXNpemU6IHVuaXQoJHBhcnNlZC1zaXplLCAncHgnKVxuICBwYWRkaW5nOiB1bml0KCRoZWlnaHQsICdweCcpIHVuaXQoJHdpZHRoLCAncHgnKVxuICBib3JkZXItcmFkaXVzOiByb3VuZCgkcGFyc2VkLXNpemUvNC4zMzMzM3B4KVxuICBncmFkaWVudCgkY29sb3IpXG4gIHRleHQtc2hhZG93OiAxcHggMXB4IDFweCAkc2hhZG93LWNvbG9yXG4gIGJvcmRlcjogcygnMXB4IHNvbGlkICVzJywgZGFya2VuKCRjb2xvciwgMTAlKSlcbiAgY29sb3I6ICR0ZXh0LWNvbG9yXG5cbiAgLy8gY29uc3RhbnQgc3R5bGVzXG4gIC1oaWdobGlnaHQoKVxuICBjdXJzb3I6IHBvaW50ZXJcbiAgZm9udC13ZWlnaHQ6IGJvbGRcbiAgZm9udC1mYW1pbHk6ICRmb250LXN0YWNrXG4gIGxpbmUtaGVpZ2h0OiAxZW1cbiAgdGV4dC1hbGlnbjogY2VudGVyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZVxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2tcbiAgbm8tc2VsZWN0KClcblxuICAmOmhvdmVyLCAmOmZvY3VzXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCB1bml0KCRoZWlnaHQgKiAtMSwgJ3B4JylcbiAgICBjb2xvcjogZGFya2VuKCR0ZXh0LWNvbG9yLCAzJSlcbiAgICB0ZXh0LXNoYWRvdzogMXB4IDFweCAxcHggJGhvdmVyLWNvbG9yXG5cbiAgJjphY3RpdmVcbiAgICBib3gtc2hhZG93OiBzKFwiaW5zZXQgMCAxcHggJXMgJXNcIiwgJHBhcnNlZC1zaXplLzIuNnB4LCByZ2JhKGRhcmtlbigkY29sb3IsIDI1JSksLjYpKVxuICAgIHRleHQtc2hhZG93OiAkZG93bi1zaGFkb3dcbiAgICBib3JkZXItY29sb3I6IGRhcmtlbigkY29sb3IsIDE4JSlcblxuLy8gTWl4aW46IEJ1dHRvbiBEaXNhYmxlZFxuLy9cbi8vIEFkZCB0aGlzIG1peGluIHRvIGEgYnV0dG9uIGFuZCBpdCB3aWxsIG1ha2UgdGhlIGJ1dHRvbiBhcHBlYXIgdG8gYmUgZGlzYWJsZWQuXG4vLyBUcnkgYXR0YWNoaW5nIHRvIGEgY2xhc3MgbGlrZSAuZGlzYWJsZWQgYW5kIGFkZGluZyB0aGF0IGNsYXNzIHRvIHRoZSBidXR0b24uXG4vLyBUYWtlcyBubyBhcmd1bWVudHMuXG4vL1xuLy8gZXguIC5kaXNhYmxlZFxuLy8gICAgICAgYnV0dG9uLWRpc2FibGVkKClcblxuYnV0dG9uLWRpc2FibGVkKClcbiAgYmFja2dyb3VuZDogI2NjY1xuICBib3JkZXItY29sb3I6IGRhcmtlbigjY2NjLCAxMCUpXG4gIG9wYWNpdHk6IC41XG4gIGN1cnNvcjogZGVmYXVsdFxuICBuby1zZWxlY3QoKVxuXG4gICY6aG92ZXJcbiAgICBiYWNrZ3JvdW5kOiAjY2NjXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwXG5cbiAgJjphY3RpdmVcbiAgICBiYWNrZ3JvdW5kOiAjY2NjXG4gICAgYm94LXNoYWRvdzogbm9uZVxuICAgIGJvcmRlci1jb2xvcjogZGFya2VuKCNjY2MsIDEwJSlcbiAgICB0ZXh0LXNoYWRvdzogMXB4IDFweCAxcHggcmdiYSgjMDAwLC4xKVxuXG4vLyBBZGRpdGl2ZSBNaXhpbjogQnV0dG9uc1xuLy9cbi8vIFdBUk5JTkc6IENyZWF0ZXMgY2xhc3NlcyBpbiB5b3VyIGNzcyBhbmQgc3R5bGVzIHRoZW0gLSBub3QgdG8gYmUgdXNlZCBpbnNpZGVcbi8vIGFuIGVsZW1lbnQuXG4vL1xuLy8gVGhpcyBtaXhpbiBtYWtlcyBpdCBzdWNoIHRoYXQgeW91IGNhbiB1c2UgY2xhc3NlcyB0byBkZWZpbmUgYnV0dG9ucyBvbiB5b3VyXG4vLyBwYWdlLlxuLy8gLSAuYnRuOiBjcmVhdGVzIGEgc2ltcGxlIGJ1dHRvblxuLy8gLSAuYnRuLWZhbmN5OiBjcmVhdGVzIGEgZmFuY3kgYnV0dG9uXG4vLyAtIC5kaXNhYmxlZDogZGlzYWJsZXMgYW4gZXhpc3RpbmcgYnV0dG9uICh3aWxsIG9ubHkgd29yayBvbiAuYnRuIGFuZFxuLy8gICAuYnRuLXNpbXBsZSlcblxuYnV0dG9ucygpXG4gIC5idG5cbiAgICB0cmFuc2l0aW9uKClcbiAgICBidXR0b24oKVxuICAuYnRuLWZhbmN5XG4gICAgdHJhbnNpdGlvbigpXG4gICAgZ2xvc3N5LWJ1dHRvbigpXG4gIC5idG4uZGlzYWJsZWQsIC5idG4tc2ltcGxlLmRpc2FibGVkXG4gICAgYnV0dG9uLWRpc2FibGVkKClcbiIsIi8vIC0tLS0tLS0tLS0tXG4vLyBJbnRlcmFjdGlvblxuLy8gLS0tLS0tLS0tLS1cblxuLy8gVGhlc2UgbWl4aW5zIHRyaWdnZXIgb24gc29tZSBzb3J0IG9mIGludGVyYWN0aW9uIHdpdGggYW4gZWxlbWVudCwgbGlrZSBhXG4vLyBob3ZlciBvciBhIGNsaWNrLlxuXG4vLyBNaXhpbjogSG92ZXIgRGFya2VuXG4vL1xuLy8gRGFya2VucyB0aGUgY29sb3IgYW5kL29yIGJhY2tncm91bmQgY29sb3Igb24geW91ciBlbGVtZW50IHdoZW4gaXQncyBob3ZlcmVkLlxuLy8gVGFrZXMgYW4gb3B0aW9uYWwgcGVyY2VudGFnZSB0byBkYXJrZW4gaXQuXG4vL1xuLy8gZXguIGhvdmVyLWRhcmtlbigpXG4vLyBleC4gaG92ZXItZGFya2VuOiAzMCVcblxuaG92ZXItZGFya2VuKCRwZXJjZW50ID0gMTUlLCAkZm9yY2UtdXNlLWNvbG9yID0gZmFsc2UpXG4gICY6aG92ZXJcbiAgICBpZiBAYmFja2dyb3VuZCBhbmQgISRmb3JjZS11c2UtY29sb3JcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbihAYmFja2dyb3VuZCwgJHBlcmNlbnQpXG4gICAgZWxzZSBpZiBAYmFja2dyb3VuZC1jb2xvciBhbmQgISRmb3JjZS11c2UtY29sb3JcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbihAYmFja2dyb3VuZC1jb2xvciwgJHBlcmNlbnQpXG4gICAgZWxzZSBpZiBAY29sb3JcbiAgICAgIGNvbG9yOiBkYXJrZW4oQGNvbG9yLCAkcGVyY2VudClcbiAgICBlbHNlXG4gICAgICB3YXJuKCd5b3UgbmVlZCB0byBzZXQgYSBjb2xvciBvciBiYWNrZ3JvdW5kIGNvbG9yIG9uIHlvdXIgZWxlbWVudCBmb3IgdGhpcyB0byB3b3JrJylcblxuLy8gTWl4aW46IEhvdmVyIExpZ2h0ZW5cbi8vXG4vLyBXb3JrcyB0aGUgc2FtZSB3YXkgYXMgaG92ZXItZGFya2VuIGJ1dCBsaWdodGVucyB0aGUgY29sb3IuXG4vL1xuLy8gZXguIGhvdmVyLWxpZ2h0ZW4oKVxuLy8gZXguIGhvdmVyLWxpZ2h0ZW46IDMwJVxuXG5ob3Zlci1saWdodGVuKCRwZXJjZW50ID0gMTUlLCAkZm9yY2UtdXNlLWNvbG9yID0gZmFsc2UpXG4gICY6aG92ZXJcbiAgICBpZiBAYmFja2dyb3VuZCBhbmQgISRmb3JjZS11c2UtY29sb3JcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oQGJhY2tncm91bmQsICRwZXJjZW50KVxuICAgIGVsc2UgaWYgQGJhY2tncm91bmQtY29sb3IgYW5kICEkZm9yY2UtdXNlLWNvbG9yXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKEBiYWNrZ3JvdW5kLWNvbG9yLCAkcGVyY2VudClcbiAgICBlbHNlIGlmIEBjb2xvclxuICAgICAgY29sb3I6IGxpZ2h0ZW4oQGNvbG9yLCAkcGVyY2VudClcbiAgICBlbHNlXG4gICAgICB3YXJuKCd5b3UgbmVlZCB0byBzZXQgYSBjb2xvciBvciBiYWNrZ3JvdW5kIGNvbG9yIG9uIHlvdXIgZWxlbWVudCBmb3IgdGhpcyB0byB3b3JrJylcblxuLy8gTWl4aW46IEhvdmVyIFVuZGVybGluZVxuLy9cbi8vIFRoaXMgb25lIGlzIGludGVyZXN0aW5nLCBhbmQgbWF5IG5lZWQgdHdlYWtpbmcgdG8gZ2V0IGl0IHRvIHdvcmsgcmlnaHQgb24gdGhlXG4vLyBpbnRlbmRlZCBlbGVtZW50LiBXb3JrcyB2ZXJ5IG5pY2VseSBmb3IgdGV4dCBsaWtlIGluIGEgc3BhbiwgYW5kIGNhbiBhbmltYXRlLlxuLy9cbi8vIGV4LiBob3Zlci11bmRlcmxpbmUoKVxuLy8gZXguIGhvdmVyLXVuZGVybGluZTogMnB4ICdkb3R0ZWQnXG5cbmhvdmVyLXVuZGVybGluZSgkYm9yZGVyLXNpemUgPSAxcHgsICR0eXBlID0gJ3NvbGlkJywgJGNvbG9yID0gbnVsbClcbiAgYm9yZGVyLWJvdHRvbTogJGJvcmRlci1zaXplIHVucXVvdGUoJHR5cGUpIHRyYW5zcGFyZW50XG5cbiAgJjpob3ZlclxuICAgIGJvcmRlci1ib3R0b206ICRib3JkZXItc2l6ZSB1bnF1b3RlKCR0eXBlKSAkY29sb3JcblxuLy8gTWl4aW46IEhvdmVyIFBvcFxuLy9cbi8vIE9uIGhvdmVyLCB5b3VyIGVsZW1lbnQgcG9wcyBvdXQgZnJvbSB0aGUgcGFnZS4gRm9yIHNjYWxlLCBpdCB0YWtlcyBhbiBpbnRlZ2VyXG4vLyBvciBmbG9hdCwgMSByZXByZXNlbnRzIDEwMCUsIDIgaXMgMjAwJSwgZXRjLiBPcHRpb25hbGx5IGNhbiBhbHNvIHJvdGF0ZSxcbi8vIHBhc3MgaXQgYSBudW1iZXIgZm9sbG93ZWQgYnkgXCJkZWdcIiwgbGlrZSAxODBkZWcuIElmIHlvdSBwYXNzIHRydWUgZm9yXG4vLyBzaGFkb3csIGl0IHdpbGwgYW5pbWF0ZSBpbiBhIGRyb3Agc2hhZG93IHRvIGFkZCB0byB0aGUgZWZmZWN0LlxuLy9cbi8vIGV4LiBob3Zlci1wb3A6IDEuNVxuLy8gZXguIGhvdmVyLXBvcDogMi42IDkwZGVnXG4vLyBleC4gaG92ZXItcG9wOiAxLjIgNDVkZWcgdHJ1ZVxuXG5ob3Zlci1wb3AoJHNjYWxlID0gMS4yLCAkcm90YXRlID0gbnVsbCwgJHNoYWRvdyA9IG51bGwpXG4gIGlmICRzaGFkb3dcbiAgICBib3gtc2hhZG93OiAwIDAgMXB4IHRyYW5zcGFyZW50XG5cbiAgJjpob3ZlclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZVxuICAgIHotaW5kZXg6IDEwXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgkc2NhbGUpXG4gICAgaWYgJHNoYWRvd1xuICAgICAgYm94LXNoYWRvdzogMCAwIDVweCByZ2JhKCMwMDAsIC4zKVxuICAgIGlmICRyb3RhdGVcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoJHNjYWxlKSByb3RhdGUoJHJvdGF0ZSlcblxuLy8gTWl4aW46IEhvdmVyIEZhZGVcbi8vXG4vLyBPbiBob3ZlciwgZmFkZXMgdGhlIGVsZW1lbnQncyBvcGFjaXR5IGRvd24uIFRha2VzIGFuIGFtb3VudCBhcyBhbiBpbnRlZ2VyXG4vLyBiZXR3ZWVuIDAgYW5kIDEsIGxpa2Ugb3BhY2l0eSBub3JtYWxseSBkb2VzLiBSZWNvbW1lbmRlZCB0byBiZSB1c2VkIHdpdGhcbi8vIHRyYW5zaXRpb24uXG5cbi8vIGV4LiBob3Zlci1mYWRlOiAuNVxuXG5ob3Zlci1mYWRlKCRhbW91bnQgPSAuNSlcbiAgJjpob3ZlclxuICAgIG9wYWNpdHk6ICRhbW91bnRcblxuLy8gTWl4aW46IEhvdmVyIENvbG9yXG4vL1xuLy8gV2lsbCBzd2FwIGFuIGVsZW1lbnRzIGNvbG9yIG9yIGJhY2tncm91bmQgY29sb3Igb24gaG92ZXIuIFRha2VzIGEgY29sb3IgaW5cbi8vIGFueSBmb3JtYXQgYXMgdGhlIGZpcnN0IGFyZ3VtZW50LiBXaWxsIGZpcnN0IGxvb2sgZm9yIGEgYmFja2dyb3VuZCBjb2xvciB0b1xuLy8gY2hhbmdlLCB0aGVuIGEgY29sb3IuXG4vL1xuLy8gZXguIGhvdmVyLWNvbG9yOiAjRDQ1RDg2XG5cbmhvdmVyLWNvbG9yKCRjb2xvciwgJGZvcmNlLXVzZS1jb2xvciA9IGZhbHNlKVxuICAmOmhvdmVyXG4gICAgaWYgQGJhY2tncm91bmQgYW5kICEkZm9yY2UtdXNlLWNvbG9yXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JcbiAgICBlbHNlIGlmIEBiYWNrZ3JvdW5kLWNvbG9yIGFuZCAhJGZvcmNlLXVzZS1jb2xvclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yXG4gICAgZWxzZSBpZiBAYmFja2dyb3VuZC1jb2xvciBhbmQgIWZvcmNlLXVzZS1jb2xvclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yXG4gICAgZWxzZSBpZiBAY29sb3JcbiAgICAgIGNvbG9yOiAkY29sb3JcbiAgICBlbHNlXG4gICAgICB3YXJuKCd5b3UgbmVlZCB0byBzZXQgYSBjb2xvciBvciBiYWNrZ3JvdW5kIGNvbG9yIG9uIHlvdXIgZWxlbWVudCBmb3IgdGhpcyB0byB3b3JrJylcblxuLy8gTWl4aW46IEhvdmVyIEdsb3dcbi8vXG4vLyBDcmVhdGVzIGEgZ2xvdyB3aGVuIGhvdmVyaW5nIGFuIGVsZW1lbnQuIFRha2VzIGEgY29sb3IgYW5kIGEgcmFkaXVzIChzaXplKS5cbi8vIFJlY29tbWVuZGVkIHRvIGJlIHVzZWQgd2l0aCB0cmFuc2l0aW9uLlxuLy9cbi8vIGV4OiBob3Zlci1nbG93KClcblxuaG92ZXItZ2xvdygkY29sb3IgPSByZ2JhKGJsdWUsIC44KSwgICRyYWRpdXMgPSAyMHB4IClcbiAgJjpob3ZlclxuICAgIGJveC1zaGFkb3c6IDBweCAwcHggJHJhZGl1cyAycHggJGNvbG9yXG5cbi8vIE1peGluOiBIb3ZlciBGbG9hdFxuLy9cbi8vIEdpdmVzIGFuIGVsZW1lbnQgdGhlIGVmZmVjdCBvZiByaXNpbmcgdXAgdmVydGljYWxseSB3aXRoIGEgc21hbGwgc2hhZG93XG4vLyAgdW5kZXJuZWF0aC4gUmVjb21tZW5kZWQgdG8gYmUgdXNlIHdpdGggdHJhbnNpdGlvbi5cbi8vXG4vLyBFeDogaG92ZXItZmxvYXQoKVxuXG5ob3Zlci1mbG9hdCgpXG4gIHBvc2l0aW9uOiByZWxhdGl2ZVxuXG4gICY6YmVmb3JlXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmVcbiAgICBwb3NpdGlvbjogYWJzb2x1dGVcbiAgICB6LWluZGV4OiAtMVxuICAgIGNvbnRlbnQ6ICcnXG4gICAgdG9wOiAxMDglXG4gICAgbGVmdDogNSVcbiAgICBoZWlnaHQ6IDEwcHhcbiAgICB3aWR0aDogOTAlXG4gICAgb3BhY2l0eTogMFxuICAgIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IGNlbnRlciwgcmdiYSgwLCAwLCAwLCAwLjI1KSAwJSwgcmdiYSgwLCAwLCAwLCAwKSA4MCUpXG5cbiAgJjpob3ZlclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtN3B4KVxuICAgICY6YmVmb3JlXG4gICAgICBvcGFjaXR5OiAxXG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpXG5cbi8vIE1peGluOiBDbGljayBEb3duXG4vL1xuLy8gTW92ZSBhbiBlbGVtZW50IGRvd24gd2hpbGUgY2xpY2tlZC90YXBwZWQuIFRha2VzIGRpc3RhbmNlLlxuLy9cbi8vIGV4OiBjbGljay1kb3duKClcblxuY2xpY2stZG93bigkZGlzdGFuY2UgPSAxcHgpXG4gICY6YWN0aXZlXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKCRkaXN0YW5jZSlcblxuLy8gTWl4aW46IENsaWNrIFNoYWRvd1xuLy9cbi8vIENyZWF0ZXMgYSBzaGFkb3cgdW5kZXIgZWxlbWVudCB3aGlsZSBjbGlja2VkL3RhcHBlZC4gVGFrZXMgZGlzdGFuY2UgYW5kXG4vLyByYWRpdXMgKHNpemUpLiBSZWNvbW1lbmRlZCB0byBiZSB1c2Ugd2l0aCB0cmFuc2l0aW9uLlxuLy9cbi8vIGV4OiBjbGljay1zaGFkb3coKVxuXG5jbGljay1zaGFkb3coJGRpc3RhbmNlID0gMnB4LCAkcmFkaXVzID0gMTBweCApXG4gICY6YWN0aXZlXG4gICAgYm94LXNoYWRvdzogMHB4ICRkaXN0YW5jZSAkcmFkaXVzIDJweCByZ2JhKDAsIDAsIDAsIDAuMjUpXG5cbi8vIE1peGluOiBDbGljayBJbnNldFxuLy9cbi8vIENyZWF0ZXMgYW4gaW5zZXQgc2hhZG93IG9uIGFuIGVsbWVudCB3aGlsZSBjbGlja2VkL3RhcHBlZC4gVGFrZXMgcmFkaXVzXG4vLyAoaW5zZXQgc2hhZG93IHNpemUpLiBSZWNvbW1lbmRlZCB0byBiZSB1c2Ugd2l0aCB0cmFuc2l0aW9uLlxuLy9cbi8vIGV4OiBjbGljay1pbnNldCgpXG5cbmNsaWNrLWluc2V0KCRyYWRpdXMgPSAyMHB4KVxuICAkZGlzdGFuY2UgPSAkcmFkaXVzIC8gMlxuICAmOmFjdGl2ZVxuICAgIGJveC1zaGFkb3c6IGluc2V0IDBweCAkZGlzdGFuY2UgJHJhZGl1cyByZ2JhKDAsIDAsIDAsIDAuMzUpO1xuXG4vLyBNaXhpbjogQ2xpY2sgU2hyaW5rXG4vL1xuLy8gU2NhbGUgZG93biBhbiBlbGVtZW50IHdoZW4gY2xpY2tlZC90YXBwZWQuIEdpdmVzIHRoZSBlZmZlY3Qgb2YgXCJzaW5raW5nXCJcbi8vIG9yIGxvd2VyaW5nIG9uIHRoZSB6LWF4aXMuXG4vL1xuLy8gZXg6IGNsaWNrLXNocmluaygpXG5cbmNsaWNrLXNocmluaygkZGlzdGFuY2UgPSAuOTIpXG4gICY6YWN0aXZlXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgkZGlzdGFuY2UpXG4iLCIvLyAtLS0tLS0tLS0tXG4vLyBUeXBvZ3JhcGh5XG4vLyAtLS0tLS0tLS0tXG5cbi8vIEFsaWFzOiBCb2xkXG4vLyBJdCdzIGp1c3QgZmFzdGVyIHRvIHR5cGUgYm9sZCgpIHRoYW4gZm9udC13ZWlnaHQ6IGJvbGRcblxuYm9sZCgpXG4gIGZvbnQtd2VpZ2h0OiBib2xkXG5cbi8vIEFsaWFzOiBJdGFsaWNcbi8vIEl0J3MganVzdCBmYXN0ZXIgdG8gdHlwZSBpdGFsaWMoKSB0aGFuIGZvbnQtc3R5bGU6IGl0YWxpY1xuXG5pdGFsaWMoKVxuICBmb250LXN0eWxlOiBpdGFsaWNcblxuLy8gQWxpYXM6IE5vcm1hbFxuLy8gUHV0IHRoZSBmb250LXdlaWdodCBhbmQgc3R5bGUgYmFjayB0byBub3JtYWxcblxubm9ybWFsKClcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbFxuICBmb250LXN0eWxlOiBub3JtYWxcblxuLy8gTWl4aW46IFJhcXVvXG4vL1xuLy8gQmVjYXVzZSB0ZWNobmljYWxseSByYXF1byBpcyBub3Qgc2VtYW50aWMsIGl0J3MgYmV0dGVyIHRvIGFkZCBpdCBsaWtlIHRoaXMuXG4vL1xuLy8gZXguIHJhcXVvKClcblxucmFxdW8oKVxuICAmOmFmdGVyXG4gICAgY29udGVudDogXCIgXFwwMEJCXCJcblxuLy8gTWl4aW46IEZvbnQgRmFjZVxuLy9cbi8vIFN1cGVyIHNpbXBsZSBmb250LWZhY2UgZGVjbGFyYXRpb24uIEp1c3QgZ2l2ZSB0aGUgbmFtZSBhbmQgdGhlIGZvbGRlciBpdFxuLy8gbGl2ZXMgaW4uIE1ha2Ugc3VyZSB0aGUgZm9udCBuYW1lIG1hdGNoZXMgdGhlIG5hbWUgb2YgdGhlIGZpbGVzLiBVc2VzIHRoZVxuLy8gZm9udHNwcmluZyBzeW50YXg6XG4vLyBodHRwOi8vd3d3LmZvbnRzcHJpbmcuY29tL2Jsb2cvdGhlLW5ldy1idWxsZXRwcm9vZi1mb250LWZhY2Utc3ludGF4XG4vL1xuLy8gZXguIGZvbnQtZmFjZShwcm94aW1hLW5vdmEsICcvZm9udHMnKVxuXG5mb250LWZhY2UoJG5hbWUsICRmb2xkZXIsICR3ZWlnaHQgPSAnbm9ybWFsJywgJHN0eWxlID0gJ25vcm1hbCcpXG4gIEBmb250LWZhY2VcbiAgICBmb250LWZhbWlseTogJG5hbWVcbiAgICBzcmM6IHVybCgkZm9sZGVyIHVucXVvdGUoJy8nKSAkbmFtZSB1bnF1b3RlKCcuZW90JykgJz8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgkZm9sZGVyIHVucXVvdGUoJy8nKSAkbmFtZSB1bnF1b3RlKCcud29mZicpKSBmb3JtYXQoJ3dvZmYnKSwgdXJsKCRmb2xkZXIgdW5xdW90ZSgnLycpICRuYW1lIHVucXVvdGUoJy50dGYnKSkgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoJGZvbGRlciB1bnF1b3RlKCcvJykgJG5hbWUgdW5xdW90ZSgnLmVvdCcpIHVucXVvdGUoJyMnKSAkbmFtZSkgZm9ybWF0KCdzdmcnKTtcbiAgICBmb250LXdlaWdodDogdW5xdW90ZSgkd2VpZ2h0KVxuICAgIGZvbnQtc3R5bGU6IHVucXVvdGUoJHN0eWxlKVxuXG5cbi8vIE1peGluOiBFbGxpcHNpc1xuLy8gVHJ1bmNhdGUgdGV4dCB0byB0aGUgd2lkdGggb2YgaXRzIGNvbnRhaW5lci4uLlxuLy8gZXg6IGVsbGlwc2lzKClcbi8vIGV4OiBlbGxpcHNpczogMzAwcHhcblxuZWxsaXBzaXMoJHdpZHRoID0gMTAwJSlcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2tcbiAgbWF4LXdpZHRoOiAkd2lkdGhcbiAgb3ZlcmZsb3c6IGhpZGRlblxuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpc1xuICB3b3JkLXdyYXA6IG5vcm1hbFxuXG4vLyBGdW5jdGlvbjogTGluZSBIZWlnaHRcbi8vXG4vLyBJZiB0aGVyZSBpcyBhIGZvbnQtc2l6ZSBzZXQgb24gdGhlIHBhcmVudCBlbGVtZW50LCBhZGp1c3RzIHRoZSBsaW5lIGhlaWdodCB0b1xuLy8gbWF0Y2ggdGhhdC4gSWYgbm90LCBpdCB1c2VzIHRoZSBiYXNlIGZvbnQtc2l6ZSB0byBjYWxjdWxhdGUgdGhlIGxpbmUtaGVpZ2h0LlxuXG4tbGluZS1oZWlnaHQoKVxuICBpZiBAZm9udC1zaXplXG4gICAgbGluZS1oZWlnaHQ6IDEuNmVtXG4gIGVsc2VcbiAgICBsaW5lLWhlaWdodDogdW5pdCgkZm9udC1zaXplKjEuNiwgJ3B4JylcbiAgICBsaW5lLWhlaWdodDogMS42cmVtXG5cbi8vIE1peGluOiBUZXh0IE1hcmdpblxuLy9cbi8vIFB1dHMgbmljZSB2aXN1YWxseSBwbGVhc2luZyB0b3AgYW5kIGJvdHRvbSBtYXJnaW5zIG9uIGEgcGFyYWdyYXBoIG9mIHRleHQuXG4vLyBQdXQgYSBmb250LXNpemUgb24geW91ciBlbGVtZW50IHRvIGhhdmUgaXQgYWRqdXN0IGFjY29yZGluZ2x5LlxuLy9cbi8vIGV4LiBwXG4vLyAgICAgICBmb250LXNpemU6IDE4cHhcbi8vICAgICAgIHRleHQtbWFyZ2luKClcblxudGV4dC1tYXJnaW4oJHNpemUgPSAkZm9udC1zaXplKVxuICBpZiBAZm9udC1zaXplXG4gICAgbWFyZ2luOiAuNzVlbSAwXG4gIGVsc2VcbiAgICBtYXJnaW46IHVuaXQoJGZvbnQtc2l6ZSouNzUsICdweCcpIDBcblxuLy8gTWl4aW46IFBhcmFncmFwaFxuLy9cbi8vIFNldHMgYSBuaWNlIHNpemUsIGxpbmUtaGVpZ2h0LCBhbmQgbWFyZ2lucyBvbiBhIHBhcmFncmFwaCBvZiB0ZXh0LiBQYXNzIGFcbi8vIHNpemUgaW4gdG8gY3VzdG9taXplLiBUb2dnbGUgbWFyZ2lucyBvZmYgaWYgeW91IGRvbid0IHdhbnQgdGhlbS5cbi8vXG4vLyBleC4gcCgpXG4vLyBleC4gcDogMThweFxuLy8gZXguIHA6IDE0cHggZmFsc2VcblxucCgkc2l6ZSA9IDFyZW0sICRtYXJnaW5zID0gdHJ1ZSlcbiAgZm9udC1zaXplOiAkc2l6ZVxuICB0ZXh0LW1hcmdpbigpIGlmICRtYXJnaW5zXG4gIC1saW5lLWhlaWdodCgpXG4gIG9wZW4tdHlwZS1saWdhdHVyZXMoKSBpZiAkbGlnYXR1cmVzXG5cbi8vIEFsaWFzOiBwYXJhZ3JhcGhcbnBhcmFncmFwaCA9IHBcblxuLy8gQWxpYXM6IEZvbnQgU2l6ZVxuLy8gQW4gYWxpYXMgZm9yICdmb250LXNpemUnIHdpdGggYXV0by1mYWxsYmFjayBmb3IgcmVtLlxuLy8gZXguIGZzOiAxNnB4XG4vLyBleC4gZnM6IDEuMnJlbVxuXG5mcygkc2l6ZSlcbiAgaWYgKHVuaXQoJHNpemUpID09ICdyZW0nKVxuICAgIGZvbnQtc2l6ZTogcm91bmQodW5pdCgoJGZvbnQtc2l6ZSokc2l6ZSksICdweCcpKVxuICAgIGZvbnQtc2l6ZTogJHNpemVcbiAgZWxzZVxuICAgIGZvbnQtc2l6ZTogJHNpemVcblxuLy8gQWxpYXM6IFVwcGVyY2FzZVxuLy8gQW4gYWxpYXMgZm9yICd0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlJ1xuLy8gZXguIHVwcGVyY2FzZSgpXG5cbnVwcGVyY2FzZSgpXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2VcblxuLy8gQWxpYXM6IFVwY2FzZVxudXBjYXNlID0gdXBwZXJjYXNlXG5cbi8vIEFsaWFzOiBMb3dlcmNhc2Vcbi8vIEFuIGFsaWFzIGZvciAndGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZSdcbi8vIGV4LiBsb3dlcmNhc2UoKVxuXG5sb3dlcmNhc2UoKVxuICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlXG5cbi8vIEFsaWFzOiBEb3duY2FzZVxuZG93bmNhc2UgPSBsb3dlcmNhc2VcblxuLy8gQWxpYXM6IFJlc2V0IENhc2Vcbi8vIEdldHMgcmlkIG9mIGFuIHRleHQgdHJhbnNmb3JtXG4vLyBleC4gcmVzZXQtY2FzZSgpXG5cbnJlc2V0LWNhc2UoKVxuICB0ZXh0LXRyYW5zZm9ybTogbm9uZVxuXG4vLyBNaXhpbjogU21hbGxcbi8vXG4vLyBNYWtlcyB5b3VyIHRleHQgc21hbGxlciBhbmQgYSBsaXR0bGUgbGlnaHRlci4gR3JlYXQgb24gPHNtYWxsIC8+IHRhZ3MuXG4vL1xuLy8gZXguIHNtYWxsKClcblxuc21hbGwoKVxuICBmb250LXNpemU6IDU1JVxuICBvcGFjaXR5OiAuNlxuICBmb250LXdlaWdodDogbm9ybWFsXG5cbi8vIEZ1bmN0aW9uOiBIZWFkaW5nXG4vLyBGb3IgaW50ZXJuYWwgdXNlIHdpdGhpbiBoZWFkaW5nc1xuXG4taGVhZGluZygkbXVsdGlwbGllciwgJG1hcmdpbnMgPSB0cnVlKVxuICBmb250LXNpemU6IHVuaXQoKCRmb250LXNpemUqJG11bHRpcGxpZXIpLCAncHgnKVxuICBmb250LXNpemU6IHVuaXQoJG11bHRpcGxpZXIsICdyZW0nKVxuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVsZWdpYmlsaXR5XG4gIGZvbnQtd2VpZ2h0OiBib2xkXG4gIHRleHQtbWFyZ2luKCkgaWYgJG1hcmdpbnNcbiAgLWxpbmUtaGVpZ2h0KClcbiAgb3BlblR5cGVMaWdhdHVyZXMoKSBpZiAkbGlnYXR1cmVzXG5cbi8vIE1peGluIFNldDogaDEsIGgyLCBoMywgaDQsIGg1LCBoNlxuLy9cbi8vIFRoZXNlIHByb3ZpZGUgbmljZSBkZWZhdWx0cyBmb3IgaGVhZGluZ3MgYmFzZWQgb2ZmIHRoZSBkZWZhdWx0IGZvbnQgc2l6ZS5cbi8vIFRoZSBjYW4gc2NhbGUgaW5maW5pdGVseSwgYW5kIHdvcmsgYmVzdCB3aGVuIG1hdGNoZWQgdG8gdGhlaXIgY29ycmVzcG9uZGluZ1xuLy8gaHRtbCBlbGVtZW50cy4gSWYgeW91J2QgbGlrZSB0byBjaGFuZ2UgdGhlIGJhc2Ugc2l6ZSBvZiBhIGhlYWRlciwganVzdCBwYXNzXG4vLyBpdCBhcyBhbiBvcHRpb24uXG4vL1xuLy8gZXguIGgzKClcbi8vIGV4LiBoMzogMy41XG5cbmgxKCRzaXplPTIuNClcbiAgLWhlYWRpbmcoJHNpemUpXG5cbmgyKCRzaXplPTEuOClcbiAgLWhlYWRpbmcoJHNpemUpXG5cbmgzKCRzaXplPTEuNSlcbiAgLWhlYWRpbmcoJHNpemUpXG5cbmg0KCRzaXplPTEuMylcbiAgLWhlYWRpbmcoJHNpemUpXG5cbmg1KCRzaXplPTEuMClcbiAgLWhlYWRpbmcoJHNpemUpXG5cbmg2KCRzaXplPTAuOSlcbiAgLWhlYWRpbmcoJHNpemUpXG4gIHVwY2FzZSgpXG5cbi8vIE1peGluOiBMaW5rXG4vL1xuLy8gQSBuaWNlIGRlZmF1bHQgc3R5bGUgZm9yIGxpbmtzLiBBY2NlcHRzIGEgY29sb3IgYW5kIGEgc3R5bGUuIENvbG9yIGNhbiBiZVxuLy8gYW55dGhpbmcsIHN0eWxlIGNhbiBiZSB1bmRlcmxpbmUsIGRhcmtlbiwgbGlnaHRlbiwgb3IgZ2xvdywgZWFjaCBnaXZpbmcgaXQgYVxuLy8gZGlmZmVyZW50IHN0eWxlIG9mIGludGVyYWN0aW9uIHdoZW4gaG92ZXJlZC4gTW9yZSBzdWdnZXN0aW9ucyBoZXJlIHdlbGNvbWUuXG4vL1xuLy8gZXguIGxpbmsoKVxuLy8gZXguIGxpbms6IGdyZWVuXG4vLyBleC4gbGluazogIzU3Nzc3RSAnZ2xvdydcblxubGluaygkY29sb3IgPSAkYmx1ZSwgJHN0eWxlID0gJ3VuZGVybGluZScpXG4gIGNvbG9yOiAkY29sb3JcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lXG4gIHRyYW5zaXRpb24oKVxuXG4gIGlmICRzdHlsZSA9PSAndW5kZXJsaW5lJ1xuICAgIGhvdmVyLXVuZGVybGluZSgpXG4gICAgJjpob3ZlclxuICAgICAgY29sb3I6IGRhcmtlbihAY29sb3IsIDE1JSlcbiAgZWxzZSBpZiAkc3R5bGUgPT0gJ2RhcmtlbidcbiAgICAmOmhvdmVyXG4gICAgICBjb2xvcjogZGFya2VuKEBjb2xvciwgMjAlKVxuICBlbHNlIGlmICRzdHlsZSA9PSAnbGlnaHRlbidcbiAgICBob3Zlci1saWdodGVuKClcbiAgZWxzZSBpZiAkc3R5bGUgPT0gJ2dsb3cnXG4gICAgJjpob3ZlclxuICAgICAgdGV4dC1zaGFkb3c6IDAgMCA3cHggcmdiYShAY29sb3IsIC42KVxuXG4gICY6dmlzaXRlZFxuICAgIG9wYWNpdHk6IC44XG5cbi8vIE1peGluOiBSZXNldCBMaW5rXG4vL1xuLy8gU29tZXRpbWVzIG15IGxpbmsgbWl4aW4gb2YgdGhlIGJyb3dzZXIgZGVmYXVsdHMgd2lsbCBnaXZlIHlvdSBxdWVzdGlvbmFibGVcbi8vIGxpbmsgZGVmYXVsdHMgdGhhdCB5b3UgZG9uJ3Qgd2FudCBvbiBjZXJ0YWluIGVsZW1lbnRzLiBUaGlzIGd1eSBnZXRzIHJpZCBvZlxuLy8gdGhhdC5cblxuLy8gZXguIHJlc2V0LWxpbmsoKVxuXG5yZXNldC1saW5rKClcbiAgYm9yZGVyOiBub25lXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZVxuICBjb2xvcjogaW5pdGlhbFxuXG4gICY6aG92ZXJcbiAgICBib3JkZXI6IG5vbmVcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmVcbiAgICBjb2xvcjogaW5pdGlhbFxuXG4gICY6dmlzaXRlZFxuICAgIG9wYWNpdHk6IDFcblxuLy8gTWl4aW46IFRleHQgU2VsZWN0aW9uXG4vL1xuLy8gVGhpcyBndXkgc2V0cyB0aGUgdGV4dCBzZWxlY3QgY29sb3IgaW50ZWxsaWdlbnRseSBiYXNlZCBvbiB0aGVcbi8vIGhpZ2hsaWdodC1jb2xvciB2YXJpYWJsZSBmb3VuZCBpbiB0aGUgc2V0dGluZ3MgZmlsZS4gSWYgeW91IHJlYWxseSB3YW50LCB5b3Vcbi8vIGNhbiBwYXNzIGl0IGEgY29sb3Igb3ZlcnJpZGUgdG9vLlxuXG4vLyBleC4gdGV4dC1zZWxlY3Rpb24oKVxuXG50ZXh0LXNlbGVjdGlvbigkY29sb3IgPSAkaGlnaGxpZ2h0LWNvbG9yLCAkdGV4dC1jb2xvciA9IG51bGwpXG5cbiAgJHRleHQtY29sb3IgPSAobGlnaHQoJGNvbG9yKSA/IHdoaXRlIDogIzQ5NDk0OSkgdW5sZXNzICR0ZXh0LWNvbG9yXG5cbiAgJjo6LW1vei1zZWxlY3Rpb25cbiAgICBiYWNrZ3JvdW5kOiAkY29sb3JcbiAgICBjb2xvcjogJHRleHQtY29sb3JcblxuICAmOjpzZWxlY3Rpb25cbiAgICBiYWNrZ3JvdW5kOiAkY29sb3JcbiAgICBjb2xvcjogJHRleHQtY29sb3JcblxuLy8gTWl4aW46IFVsXG4vL1xuLy8gQSBuaWNlIGRlZmF1bHQgZm9yIGxpc3Qgc3R5bGVzLiBNb3JlIG9yIGxlc3MgdGhlIHNhbWUgYXMgYnJvd3NlciBkZWZhdWx0cyxcbi8vIHNjYWxlcyBuaWNlbHkuIFlvdSBjYW4gcGFzcyBpdCBhbnkgc3R5bGUgdGhhdCBsaXN0LXN0eWxlLXR5cGUgd291bGQgbm9ybWFsbHlcbi8vIHRha2UuIERlZmF1bHRzIHRvIGRpc2MuIFVzZSB0aGlzIG9uIGEgdWwgZWxlbWVudCBwb3IgZmF2b3IuXG4vL1xuLy8gZXguIHVsKClcbi8vIGV4LiB1bDogJ3NxdWFyZSdcblxudWwoJHN0eWxlID0gJ2Rpc2MnKVxuICBtYXJnaW46IDVweCAxNXB4XG4gIG1hcmdpbjogMC4zMnJlbSAwLjk0cmVtXG4gIHBhZGRpbmctbGVmdDogMXJlbVxuXG4gIGxpXG4gICAgbGlzdC1zdHlsZS10eXBlOiB1bnF1b3RlKCRzdHlsZSlcbiAgICBwYWRkaW5nOiAycHggMFxuICAgIHBhZGRpbmc6IDAuMTI1cmVtXG5cbi8vIE1peGluOiBPbFxuLy9cbi8vIEEgbmljZSBkZWZhdWx0IGZvciBsaXN0IHN0eWxlcy4gTW9yZSBvciBsZXNzIHRoZSBzYW1lIGFzIGJyb3dzZXIgZGVmYXVsdHMsXG4vLyBzY2FsZXMgbmljZWx5LiBZb3UgY2FuIHBhc3MgaXQgYW55IHN0eWxlIHRoYXQgbGlzdC1zdHlsZS10eXBlIHdvdWxkIG5vcm1hbGx5XG4vLyB0YWtlLiBEZWZhdWx0cyB0byBkZWNpbWFsLiBVc2UgdGhpcyBvbiBhIG9sIGVsZW1lbnQgcG9yIGZhdm9yLlxuLy9cbi8vIGV4LiBvbCgpXG4vLyBleC4gb2w6ICd1cHBlci1yb21hbidcblxub2woJHN0eWxlID0gJ2RlY2ltYWwnKVxuICBtYXJnaW46IDVweCAxOHB4XG4gIG1hcmdpbjogMC4zMnJlbSAxLjEyNXJlbVxuICBwYWRkaW5nLWxlZnQ6IDFyZW1cblxuICBsaVxuICAgIGxpc3Qtc3R5bGUtdHlwZTogdW5xdW90ZSgkc3R5bGUpXG4gICAgcGFkZGluZzogMnB4IDBcbiAgICBwYWRkaW5nOiAwLjEyNXJlbVxuXG4vLyBNaXhpbjogSW5saW5lIExpc3Rcbi8vXG4vLyBGb3Igd2hlbiB5b3UgbmVlZCB5b3VyIGxpc3QgdG8gYmUgaG9yaXpvbnRhbC4gUGFzcyBpdCB0aGUgc3BhY2luZyB5b3Ugd2FudFxuLy8gYmV0d2VlbiBsaXN0IGVsZW1lbnRzLCB3aGF0ZXZlciB1bml0cyB5b3UnZCBsaWtlLiBEZWZhdWx0cyB0byAyMHB4LlxuLy9cbi8vIGV4LiBpbmxpbmUtbGlzdCgpXG4vLyBleC4gaW5saW5lLWxpc3Q6IDE1cHhcblxuaW5saW5lLWxpc3QoJHNwYWNpbmcgPSAyMHB4KVxuICBncm91cCgpXG4gIG1hcmdpbjogMFxuICBwYWRkaW5nOiAwXG5cbiAgbGlcbiAgICBmbG9hdDogbGVmdFxuICAgIG1hcmdpbi1yaWdodDogJHNwYWNpbmdcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmVcblxuICBsaTpsYXN0LWNoaWxkXG4gICAgbWFyZ2luLXJpZ2h0OiAwXG5cbi8vIE1peGluOiBSZXNldCBMaXN0XG4vL1xuLy8gSWYgeW91J3JlIHRpcmVkIG9mIGFsbCB0aGUgbGlzdCBzaGVuYW5pZ2FucyBhbmQgd2FudCB0byBnZXQgcmlkIG9mIHRoZW0gZm9yXG4vLyB0aGlzIHNwZWNpYWwgbGlzdCB5b3UncmUgd29ya2luZyBvbiwgdGhpcyBpcyB5b3VyIGd1eS4gUmVzZXRzIHRoZSBtYXJnaW5zLFxuLy8gcGFkZGluZywgYW5kIHN0eWxlLlxuLy9cbi8vIGV4LiByZXNldC1saXN0KClcblxucmVzZXQtbGlzdCgpXG4gIG1hcmdpbjogMFxuICBwYWRkaW5nOiAwXG5cbiAgbGlcbiAgICBmbG9hdDogbm9uZVxuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZVxuICAgIHBhZGRpbmc6IDBcbiAgICBtYXJnaW46IDBcblxuLy8gTWl4aW46IEJsb2NrcXVvdGVcbi8vXG4vLyBOaWNlIHN0eWxlcyBmb3IgYSBibG9ja3F1b3RlLCBhbmQgZXZlbiBwdXRzIGEgbmljZSBoeXBoZW4gaW4gYmVmb3JlIHlvdXJcbi8vIGNpdGF0aW9uLiBVc2Ugd2l0aCBhIDxwPiBhbmQgPGNpdGU+LCA8Zm9vdGVyPiwgb3IgPGZpZ2NhcHRpb24+IGluc2lkZSBmb3Jcbi8vIGJlc3QgcmVzdWx0cy4gUGFzcyBhIGNvbG9yIG9yICdub25lJyB0byBzZXQgdGhlIGxlZnQgYm9yZGVyLlxuLy9cbi8vIGV4LiBibG9ja3F1b3RlKClcblxuYmxvY2txdW90ZSgkY29sb3IgPSAkYmx1ZSlcbiAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAkY29sb3JcbiAgbWFyZ2luOiAxZW0gMFxuICBwYWRkaW5nLWxlZnQ6IDEuNWVtXG4gIGdyb3VwKClcblxuICA+IHBcbiAgICBmb250LXdlaWdodDogMzAwXG4gICAgZm9udC1zaXplOiAxMjclXG4gICAgZm9udC1zaXplOiAxLjI3cmVtXG4gICAgbGluZS1oZWlnaHQ6IDEyNyVcbiAgICBsaW5lLWhlaWdodDogMS4yN3JlbVxuICAgIG1hcmdpbi10b3A6IDBcblxuICA+IGNpdGUsID4gZm9vdGVyLCA+IGZpZ2NhcHRpb25cbiAgICBjb2xvcjogIzg4ODg4OFxuICAgICY6YmVmb3JlXG4gICAgICBjb250ZW50OiAnXFwyMDE0J1xuXG4vLyBBbGlhczogYmxvY2txdW9cbmJsb2NrcXVvID0gYmxvY2txdW90ZVxuXG4vLyBIeXBoZW5hdGlvblxuLy9cbi8vIEh5cGhlbmF0aW9uIGlzIHRoZSBiZXR0ZXIgd29yZC1icmVhay4gSXTigJlzIGxvY2FsZSBhd2FyZSwgYW5kIGluc2VydHMgdGhlXG4vLyBoeXBoZW4gY2hhcmFjdGVyIGF0IHRoZSBjb3JyZWN0IHBsYWNlLCB3aGVuIGJyZWFraW5nIHRoZSB3b3Jkcy4gVGhpcyBpc1xuLy8gZXNwZWNpYWxseSBpbXBvcnRhbnQgaW4gcmVzcG9uc2l2ZSBkZXNpZ25zLiBJdCB3aWxsIHNhdmUgeW91IGZyb20gYSBsb3Qgb2Zcbi8vIHJhZ2dlZCBsaW5lcy4gQW5kLCBubyBuZWVkIGFueW1vcmUgZm9yIGNsdW5reSAmIHNsb3cgSmF2YXNjcmlwdCBoeXBoZW5hdGlvblxuLy8gZmFsbGJhY2tzLiBUYWtlbiBmcm9tIGh0dHA6Ly93d3cubmV3bmV0LXNvZnQuY29tL2Jsb2cvY3NzdHlwb2dyYXBoeVxuLy9cbi8vIGV4LiBoeXBoZW5hdGlvbigpXG5cbmh5cGhlbmF0aW9uKClcbiAgICAtbXMtd29yZC1icmVhazogYnJlYWstYWxsXG4gICAgd29yZC1icmVhazogICAgIGJyZWFrLWFsbFxuICAgIHdvcmQtYnJlYWs6ICAgICBicmVhay13b3JkIC8vIHdlYmtpdFxuICAgIGh5cGhlbnM6IGF1dG8gLy8gbm9uZSwgYXV0bywgPG51bWJlcj5cbiAgICAtd2Via2l0LWh5cGhlbmF0ZS1iZWZvcmU6IDJcbiAgICAtd2Via2l0LWh5cGhlbmF0ZS1hZnRlcjogIDNcbiAgICBoeXBoZW5hdGUtbGluZXM6ICAgICAgICAgIDNcblxuLy8gTWl4aW46IFNoYWRvdyBTdHJva2Vcbi8vXG4vLyBDcmVhdGVzIGEgdGV4dCBvdXRsaW5lIHVzaW5nIHRleHQtc2hhZG93LiBQb3J0ZWQgZnJvbSBuaWIuXG4vLyBUYWtlcyBhIGNvbG9yLlxuLy9cbi8vIGV4OiBzaGFkb3ctc3Ryb2tlKClcbi8vIGV4OiBzYWhkb3ctc3Ryb2tlKHJlZClcblxuc2hhZG93LXN0cm9rZSgkY29sb3IgPSAkYmx1ZSlcbiAgdGV4dC1zaGFkb3c6IC0xcHggLTFweCAwICRjb2xvciwgMXB4IC0xcHggMCAkY29sb3IsIC0xcHggMXB4IDAgJGNvbG9yLCAxcHggMXB4IDAgJGNvbG9yXG5cbi8vIEFkZGl0aXZlIE1peGluOiBCYXNlXG4vL1xuLy8gV0FSTklORzogQ3JlYXRlcyBjbGFzc2VzIGluIHlvdXIgY3NzIGFuZCBzdHlsZXMgdGhlbSAtIG5vdCB0byBiZSB1c2VkIGluc2lkZVxuLy8gYW4gZWxlbWVudC5cbi8vXG4vLyBUaGlzIGlzIGFuIGVzc2VudGlhbCBtaXhpbi4gWW91IHdhbnQgdGhpcyBvbiB5b3VyIHBhZ2UuIFNldHMgeW91ciBmb250IHN0YWNrLFxuLy8gc2l6ZSwgYW5kIGNvbG9ycyBiYXNlZCBvbiB0aGUgc2V0dGluZ3MgZmlsZSBhbmQgbWFrZXMgc3VyZSB0aGF0IHlvdXIgdGV4dCBpc1xuLy8gYSBncmVhdCBsb29raW5nIGFzIHBvc3NpYmxlLiBZb3UgY2FuIG92ZXJyaWRlIGFueSBvZiB0aGUgcGFyYW1zLCBidXQgdGhlcmUgaXNcbi8vIHJlYWxseSBubyByZWFzb24gdG8uXG4vL1xuLy8gZXguIGJhc2UoKVxuXG5iYXNlKCRmb250cyA9ICRmb250LXN0YWNrLCAkc2l6ZSA9ICRmb250LXNpemUsICRjb2xvciA9ICRmb250LWNvbG9yKVxuICBodG1sXG4gICAgZm9udC1zaXplOiB1bml0KCRzaXplLCAncHgnKVxuICAgIGZvbnQtc2l6ZTogdW5pdCgoJHNpemUvMTYpKjEwMCwgXCIlXCIpXG5cbiAgYm9keVxuICAgIGZvbnQtZmFtaWx5OiAkZm9udHNcbiAgICBjb2xvcjogJGNvbG9yXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWRcbiAgICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCVcbiAgICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJVxuICAgIGZvbnQtc2l6ZS1hZGp1c3Q6IGF1dG9cblxuLy8gQWRkaXRpdmUgTWl4aW46IEhlYWRlcnNcbi8vXG4vLyBXQVJOSU5HOiBDcmVhdGVzIGNsYXNzZXMgaW4geW91ciBjc3MgYW5kIHN0eWxlcyB0aGVtIC0gbm90IHRvIGJlIHVzZWQgaW5zaWRlXG4vLyBhbiBlbGVtZW50LlxuLy9cbi8vIEFkZHMgcm9vdHMnIHdvbmRlcmZ1bCBzY2FsaW5nIGhlYWRlciBzdHlsZXMgdG8geW91ciA8aHg+IHRhZ3MuXG4vL1xuLy8gZXguIGhlYWRlcnMoKVxuXG5oZWFkZXJzKClcbiAgaDFcbiAgICBoMSgpXG5cbiAgaDJcbiAgICBoMigpXG5cbiAgaDNcbiAgICBoMygpXG5cbiAgaDRcbiAgICBoNCgpXG5cbiAgaDVcbiAgICBoNSgpXG5cbiAgaDZcbiAgICBoNigpXG5cbi8vIEFkZGl0aXZlIE1peGluOiBMaXN0c1xuLy9cbi8vIFdBUk5JTkc6IENyZWF0ZXMgY2xhc3NlcyBpbiB5b3VyIGNzcyBhbmQgc3R5bGVzIHRoZW0gLSBub3QgdG8gYmUgdXNlZCBpbnNpZGVcbi8vIGFuIGVsZW1lbnQuXG4vL1xuLy8gQWRkcyByb290cycgc3R5bGVzIHRvIHVsIGFuZCBvbHMuXG4vL1xuLy8gZXguIGxpc3RzKClcblxubGlzdHMoKVxuICB1bFxuICAgIHVsKClcbiAgb2xcbiAgICBvbCgpXG5cbi8vIEFkZGl0aXZlIE1peGluOiBCb2xkLUl0YWxpY1xuLy9cbi8vIFdBUk5JTkc6IENyZWF0ZXMgY2xhc3NlcyBpbiB5b3VyIGNzcyBhbmQgc3R5bGVzIHRoZW0gLSBub3QgdG8gYmUgdXNlZCBpbnNpZGVcbi8vIGFuIGVsZW1lbnQuXG4vL1xuLy8gQWRkcyBib2xkIGFuZCBpdGFsaWMgc3R5bGVzIHRvIHRoZSByaWdodCB0YWdzIGlmIHlvdSBkaWQgYSBnbG9iYWwgcmVzZXQuXG4vL1xuLy8gZXguIGJvbGQtaXRhbGljKClcblxuYm9sZC1pdGFsaWMoKVxuICBiXG4gICAgYm9sZCgpXG4gIGlcbiAgICBpdGFsaWMoKVxuICBzdHJvbmdcbiAgICBib2xkKClcbiAgZW1cbiAgICBpdGFsaWMoKVxuXG4vLyBBZGRpdGl2ZSBNaXhpbjogVHlwb2dyYXBoeVxuLy9cbi8vIFdBUk5JTkc6IENyZWF0ZXMgY2xhc3NlcyBpbiB5b3VyIGNzcyBhbmQgc3R5bGVzIHRoZW0gLSBub3QgdG8gYmUgdXNlZCBpbnNpZGVcbi8vIGFuIGVsZW1lbnQuXG4vL1xuLy8gQWRkcyByb290cycgc3R5bGVzIHRvIGJvbGQgYW5kIGl0YWxpYyBlbGVtZW50cywgaGVhZGVycywgcGFyYWdyYXBncywgc21hbGxcbi8vIHRleHQsIGxpbmtzLCBsaXN0cywgYW5kIGJsb2NrcXVvdGVzLiBHb3QgYWxsIHlvdXIgYmFzaWMgZWxlbWVudHMgY292ZXJlZC5cbi8vXG4vLyBleC4gdHlwb2dyYXBoeSgpXG5cbnR5cG9ncmFwaHkoKVxuICBib2xkLWl0YWxpYygpXG4gIGhlYWRlcnMoKVxuICBsaXN0cygpXG4gIHRleHQtc2VsZWN0aW9uKClcblxuICBwXG4gICAgcGFyYWdyYXBoKClcblxuICBzbWFsbFxuICAgIHNtYWxsKClcblxuICBhXG4gICAgbGluaygpXG5cbiAgYmxvY2txdW90ZVxuICAgIGJsb2NrcXVvKClcblxuICAuaHlwaGVuYXRpb25cbiAgICBoeXBoZW5hdGlvbigpXG4iLCJhXHJcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lIiwiLy8gQ3NzIGZvciBvZmYtY2FudmFzIG1vYmlsZSBtZW51XHJcbi5zdC13cmFwcGVyIFx0XHJcblx0d2lkdGggMTAwJVxyXG5cdG92ZXJmbG93IGhpZGRlblxyXG5cdFxyXG4uaXNTaG93aW5nTmF2IC5wdXNoLXdyYXBcclxuXHRcdHRyYW5zZm9ybSB0cmFuc2xhdGUoLTIyMHB4LCAwKVxyXG5cdFx0dHJhbnNmb3JtIHRyYW5zbGF0ZTNkKC0yMjBweCwgMCwgMClcdFx0XHJcblxyXG4uaXNTaG93aW5nTmF2IC5tb2JpbGVOYXZcclxuXHRkaXNwbGF5IGJsb2NrXHJcblxyXG4uaXNIaWRpbmdOYXYgLm1vYmlsZU5hdlx0XHJcblx0ZGlzcGxheSBibG9ja1xyXG4ucHVzaC13cmFwXHJcblx0d2lkdGggMTAwJVx0XHJcblx0dHJhbnNmb3JtIHRyYW5zbGF0ZSgwLCAwKVxyXG5cdHRyYW5zZm9ybSB0cmFuc2xhdGUzZCgwLCAwLCAwKVx0XHJcblx0dHJhbnNpdGlvbiAuNXMgZWFzZSBhbGxcclxuXHRiYWNrZ3JvdW5kIHdoaXRlXHJcblxyXG4ubW9iaWxlTmF2XHJcblx0d2lkdGggMjIwcHhcclxuXHRoZWlnaHQgMTAwJVxyXG5cdHBvc2l0aW9uIGZpeGVkXHJcblx0dG9wIDBcclxuXHRyaWdodCAwXHJcblx0YmFja2dyb3VuZCAjNDI4YmNhXHJcblx0cGFkZGluZyAxNXB4XHJcblx0YmFja2dyb3VuZDogIzJiMzQzZjtcclxuXHR0ZXh0LWFsaWduOiBjZW50ZXJcclxuXHRib3gtc2hhZG93OiBpbnNldCAtMS41ZW0gMCAxLjVlbSAtMC43NWVtIHJnYmEoMCwgMCwgMCwgMC41KVxyXG5cdHRyYW5zaXRpb24gLjRzIGVhc2UgYWxsXHJcblx0ZGlzcGxheSBub25lXHJcblx0dHJhbnNpdGlvbiAuNHMgZWFzZSBhbGxcclxuXHQmIHVsIFxyXG5cdFx0bWFyZ2luOiAwO1xyXG5cdFx0cGFkZGluZzogMDtcclxuXHRcdGxpc3Qtc3R5bGU6IG5vbmU7XHJcblx0XHQmIGxpIGFcclxuXHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xyXG5cdFx0XHRoZWlnaHQ6IDYwcHg7XHJcblx0XHRcdGxpbmUtaGVpZ2h0OiA2MHB4O1xyXG5cdFx0XHRmb250LXNpemU6IDE4cHg7XHJcblx0XHRcdGNvbG9yOiAjZmZmO1x0XHRcdFxyXG5cdFx0XHQmOmhvdmVyXHJcblx0XHRcdFx0YmFja2dyb3VuZDogIzRFRkZGRjtcclxuXHRcdFx0XHRjb2xvcjogIzAwMDtcclxuXHRcdFx0Ji5hY3RpdmVcclxuXHRcdFx0XHRib3JkZXItYm90dG9tIDJweCBzb2xpZCAjNGVmZmZmXHJcblx0K2Fib3ZlKDcwMHB4KVxyXG5cdFx0ZGlzcGxheSBub25lXHJcblx0K2Rlc2t0b3AoKVxyXG5cdFx0ZGlzcGxheSBub25lXHJcblx0XHRcclxuXHJcblxyXG4ubWFpbkhlYWRlclxyXG5cdGdyYWRpZW50IGJsYWNrICMwODIyNDNcclxuXHJcbi5tYWluSGVhZGVyLUNvbnRhaW5lclxyXG5cdGNmKClcdFxyXG5cdHBhZGRpbmcgMTVweCAxMHB4XHJcblx0XHJcblx0XHRcclxuLm1haW5IZWFkZXItbG9nb1xyXG5cdHNwYW4oNC81LCBjeWNsZSAyKVxyXG5cdCYgc3ZnXHJcblx0XHR3aWR0aCAxMDAlXHJcblx0K2Fib3ZlKDcwMHB4KVxyXG5cdFx0c3Bhbig1LzUsIHVuY3ljbGUpXHJcblx0XHRwYWRkaW5nIDAgNCVcclxuXHQrZGVza3RvcCgpXHJcblx0XHRzcGFuKDUvNSwgdW5jeWNsZSlcclxuXHJcbi5tYWluSGVhZGVyLXRyaWdnZXJcclxuXHRzcGFuKDEvNSwgY3ljbGUgMilcclxuXHR2ZXJ0aWNhbC1hbGlnbiBtaWRkbGVcclxuXHRjdXJzb3IgcG9pbnRlclxyXG5cdGNvbG9yIHdoaXRlXHJcblx0Zm9udC1zaXplIDQ0cHhcclxuXHR0ZXh0LWFsaWduIGNlbnRlclxyXG5cdG1hcmdpbi10b3AgNXB4XHJcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsMCwwLDApXHJcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudFxyXG5cdHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uXHJcblx0K2Fib3ZlKDcwMHB4KVxyXG5cdFx0ZGlzcGxheSBub25lXHJcblx0K2Rlc2t0b3AoKVxyXG5cdFx0ZGlzcGxheSBub25lXHJcblx0XHRcclxuLm1haW5IZWFkZXItbWFpbk5hdmlcdFxyXG5cdGRpc3BsYXkgbm9uZVxyXG5cdCthYm92ZSg3MDBweClcclxuXHRcdGRpc3BsYXkgYmxvY2tcclxuXHQrZGVza3RvcCgpXHJcblx0XHRkaXNwbGF5IGJsb2NrXHRcclxuXHQmIHVsXHJcblx0XHRcclxuXHRcdCYgbGlcclxuXHRcdFx0Y29sKDEvNSlcclxuXHRcdFx0dGV4dC1hbGlnbiBjZW50ZXJcclxuXHRcdFx0JiBhXHJcblx0XHRcdFx0ZGlzcGxheSBibG9ja1xyXG5cdFx0XHRcdGNvbG9yOiAjZmZmO1xyXG5cdFx0XHRcdGhlaWdodDogIDQwcHhcclxuXHRcdFx0XHRsaW5lLWhlaWdodCA0MHB4XHJcblx0XHRcdFx0Ji5hY3RpdmVcclxuXHRcdFx0XHRcdGJvcmRlci1ib3R0b20gMnB4IHNvbGlkICM0ZWZmZmZcdFx0XHRcdFxyXG5cdFx0XHRcdCY6aG92ZXJcclxuXHRcdFx0XHRcdGJhY2tncm91bmQ6ICM0RUZGRkY7XHJcblx0XHRcdFx0XHRjb2xvcjogIzAwMDtcclxuLm1haW5OYXZpLUNvbnRhaW5lclxyXG5cdGNlbnRlcig4MDBweClcclxuXHRjZigpXHJcblx0cGFkZGluZyByZW0oMTEuMzE1NHB4KSAwXHJcblxyXG5hIFxyXG5cdHRyYW5zaXRpb24gYWxsIDMwMG1zIGVhc2VcclxuIiwiLmNhcnJvdXNlbCAuaXRlbSBpbWdcclxuXHRkaXNwbGF5OiBibG9jaztcclxuXHR3aWR0aDogMTAwJTtcclxuXHRoZWlnaHQ6IGF1dG87XHJcbi8qIFxyXG4gKiBcdENvcmUgT3dsIENhcm91c2VsIENTUyBGaWxlXHJcbiAqXHR2MS4zLjNcclxuICovXHJcblxyXG4vKiBjbGVhcmZpeCAqL1xyXG4ub3dsLWNhcm91c2VsIC5vd2wtd3JhcHBlcjphZnRlciB7XHJcblx0Y29udGVudDogXCIuXCI7XHJcblx0ZGlzcGxheTogYmxvY2s7XHJcblx0Y2xlYXI6IGJvdGg7XHJcblx0dmlzaWJpbGl0eTogaGlkZGVuO1xyXG5cdGxpbmUtaGVpZ2h0OiAwO1xyXG5cdGhlaWdodDogMDtcclxufVxyXG4vKiBkaXNwbGF5IG5vbmUgdW50aWwgaW5pdCAqL1xyXG4ub3dsLWNhcm91c2Vse1xyXG5cdGRpc3BsYXk6IG5vbmU7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdHdpZHRoOiAxMDAlO1xyXG5cdC1tcy10b3VjaC1hY3Rpb246IHBhbi15O1xyXG59XHJcbi5vd2wtY2Fyb3VzZWwgLm93bC13cmFwcGVye1xyXG5cdGRpc3BsYXk6IG5vbmU7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwcHgsIDBweCwgMHB4KTtcclxufVxyXG4ub3dsLWNhcm91c2VsIC5vd2wtd3JhcHBlci1vdXRlcntcclxuXHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHR3aWR0aDogMTAwJTtcclxufVxyXG4ub3dsLWNhcm91c2VsIC5vd2wtd3JhcHBlci1vdXRlci5hdXRvSGVpZ2h0e1xyXG5cdC13ZWJraXQtdHJhbnNpdGlvbjogaGVpZ2h0IDUwMG1zIGVhc2UtaW4tb3V0O1xyXG5cdC1tb3otdHJhbnNpdGlvbjogaGVpZ2h0IDUwMG1zIGVhc2UtaW4tb3V0O1xyXG5cdC1tcy10cmFuc2l0aW9uOiBoZWlnaHQgNTAwbXMgZWFzZS1pbi1vdXQ7XHJcblx0LW8tdHJhbnNpdGlvbjogaGVpZ2h0IDUwMG1zIGVhc2UtaW4tb3V0O1xyXG5cdHRyYW5zaXRpb246IGhlaWdodCA1MDBtcyBlYXNlLWluLW91dDtcclxufVxyXG5cdFxyXG4ub3dsLWNhcm91c2VsIC5vd2wtaXRlbXtcclxuXHRmbG9hdDogbGVmdDtcclxufVxyXG4ub3dsLWNvbnRyb2xzIC5vd2wtcGFnZSxcclxuLm93bC1jb250cm9scyAub3dsLWJ1dHRvbnMgZGl2e1xyXG5cdGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG4ub3dsLWNvbnRyb2xzIHtcclxuXHQtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xyXG5cdC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTtcclxuXHQtbW96LXVzZXItc2VsZWN0OiBub25lO1xyXG5cdC1tcy11c2VyLXNlbGVjdDogbm9uZTtcclxuXHR1c2VyLXNlbGVjdDogbm9uZTtcclxuXHQtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XHJcbn1cclxuXHJcbi8qIG1vdXNlIGdyYWIgaWNvbiAqL1xyXG4uZ3JhYmJpbmcgeyBcclxuICAgIGN1cnNvcjp1cmwoZ3JhYmJpbmcucG5nKSA4IDgsIG1vdmU7XHJcbn1cclxuXHJcbi8qIGZpeCAqL1xyXG4ub3dsLWNhcm91c2VsICAub3dsLXdyYXBwZXIsXHJcbi5vd2wtY2Fyb3VzZWwgIC5vd2wtaXRlbXtcclxuXHQtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcclxuXHQtbW96LWJhY2tmYWNlLXZpc2liaWxpdHk6ICAgIGhpZGRlbjtcclxuXHQtbXMtYmFja2ZhY2UtdmlzaWJpbGl0eTogICAgIGhpZGRlbjtcclxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwwLDApO1xyXG4gIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDAsMCk7XHJcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwwLDApO1xyXG59XHJcblxyXG4vKlxyXG4qIFx0T3dsIENhcm91c2VsIE93bCBEZW1vIFRoZW1lIFxyXG4qXHR2MS4zLjNcclxuKi9cclxuXHJcbi5vd2wtdGhlbWUgLm93bC1jb250cm9sc3tcclxuXHRtYXJnaW4tdG9wOiAxMHB4O1xyXG5cdHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG5cclxuLyogU3R5bGluZyBOZXh0IGFuZCBQcmV2IGJ1dHRvbnMgKi9cclxuXHJcbi5vd2wtdGhlbWUgLm93bC1jb250cm9scyAub3dsLWJ1dHRvbnMgZGl2e1xyXG5cdGNvbG9yOiAjRkZGO1xyXG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHR6b29tOiAxO1xyXG5cdCpkaXNwbGF5OiBpbmxpbmU7LypJRTcgbGlmZS1zYXZlciAqL1xyXG5cdG1hcmdpbjogNXB4O1xyXG5cdHBhZGRpbmc6IDNweCAxMHB4O1xyXG5cdGZvbnQtc2l6ZTogMTJweDtcclxuXHRiYWNrZ3JvdW5kOiAjODY5NzkxO1xyXG5cdGZpbHRlcjogQWxwaGEoT3BhY2l0eT01MCk7LypJRTcgZml4Ki9cclxuXHRvcGFjaXR5OiAwLjU7XHJcbn1cclxuLyogQ2xpY2thYmxlIGNsYXNzIGZpeCBwcm9ibGVtIHdpdGggaG92ZXIgb24gdG91Y2ggZGV2aWNlcyAqL1xyXG4vKiBVc2UgaXQgZm9yIG5vbi10b3VjaCBob3ZlciBhY3Rpb24gKi9cclxuLm93bC10aGVtZSAub3dsLWNvbnRyb2xzLmNsaWNrYWJsZSAub3dsLWJ1dHRvbnMgZGl2OmhvdmVye1xyXG5cdGZpbHRlcjogQWxwaGEoT3BhY2l0eT0xMDApOy8qSUU3IGZpeCovXHJcblx0b3BhY2l0eTogMTtcclxuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbn1cclxuXHJcbi8qIFN0eWxpbmcgUGFnaW5hdGlvbiovXHJcblxyXG4ub3dsLXRoZW1lIC5vd2wtY29udHJvbHMgLm93bC1wYWdle1xyXG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHR6b29tOiAxO1xyXG5cdCpkaXNwbGF5OiBpbmxpbmU7LypJRTcgbGlmZS1zYXZlciAqL1xyXG59XHJcbi5vd2wtdGhlbWUgLm93bC1jb250cm9scyAub3dsLXBhZ2Ugc3BhbntcclxuXHRkaXNwbGF5OiBibG9jaztcclxuXHR3aWR0aDogMTJweDtcclxuXHRoZWlnaHQ6IDEycHg7XHJcblx0bWFyZ2luOiA1cHggN3B4O1xyXG5cdGZpbHRlcjogQWxwaGEoT3BhY2l0eT01MCk7LypJRTcgZml4Ki9cclxuXHRvcGFjaXR5OiAwLjU7XHJcblx0LXdlYmtpdC1ib3JkZXItcmFkaXVzOiAyMHB4O1xyXG5cdC1tb3otYm9yZGVyLXJhZGl1czogMjBweDtcclxuXHRib3JkZXItcmFkaXVzOiAyMHB4O1xyXG5cdGJhY2tncm91bmQ6ICM4Njk3OTE7XHJcbn1cclxuXHJcbi5vd2wtdGhlbWUgLm93bC1jb250cm9scyAub3dsLXBhZ2UuYWN0aXZlIHNwYW4sXHJcbi5vd2wtdGhlbWUgLm93bC1jb250cm9scy5jbGlja2FibGUgLm93bC1wYWdlOmhvdmVyIHNwYW57XHJcblx0ZmlsdGVyOiBBbHBoYShPcGFjaXR5PTEwMCk7LypJRTcgZml4Ki9cclxuXHRvcGFjaXR5OiAxO1xyXG59XHJcblxyXG4vKiBJZiBQYWdpbmF0aW9uTnVtYmVycyBpcyB0cnVlICovXHJcblxyXG4ub3dsLXRoZW1lIC5vd2wtY29udHJvbHMgLm93bC1wYWdlIHNwYW4ub3dsLW51bWJlcnN7XHJcblx0aGVpZ2h0OiBhdXRvO1xyXG5cdHdpZHRoOiBhdXRvO1xyXG5cdGNvbG9yOiAjRkZGO1xyXG5cdHBhZGRpbmc6IDJweCAxMHB4O1xyXG5cdGZvbnQtc2l6ZTogMTJweDtcclxuXHQtd2Via2l0LWJvcmRlci1yYWRpdXM6IDMwcHg7XHJcblx0LW1vei1ib3JkZXItcmFkaXVzOiAzMHB4O1xyXG5cdGJvcmRlci1yYWRpdXM6IDMwcHg7XHJcbn1cclxuXHJcbi8qIHByZWxvYWRpbmcgaW1hZ2VzICovXHJcbi5vd2wtaXRlbS5sb2FkaW5ne1xyXG5cdG1pbi1oZWlnaHQ6IDE1MHB4O1xyXG5cdGJhY2tncm91bmQ6IHVybChBamF4TG9hZGVyLmdpZikgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXJcclxufVxyXG5cclxuLyogXHJcbiAqICBPd2wgQ2Fyb3VzZWwgQ1NTMyBUcmFuc2l0aW9ucyBcclxuICogIHYxLjMuMlxyXG4gKi9cclxuXHJcbi5vd2wtb3JpZ2luIHtcclxuXHQtd2Via2l0LXBlcnNwZWN0aXZlOiAxMjAwcHg7XHJcblx0LXdlYmtpdC1wZXJzcGVjdGl2ZS1vcmlnaW4teCA6IDUwJTtcclxuXHQtd2Via2l0LXBlcnNwZWN0aXZlLW9yaWdpbi15IDogNTAlO1xyXG5cdC1tb3otcGVyc3BlY3RpdmUgOiAxMjAwcHg7XHJcblx0LW1vei1wZXJzcGVjdGl2ZS1vcmlnaW4teCA6IDUwJTtcclxuXHQtbW96LXBlcnNwZWN0aXZlLW9yaWdpbi15IDogNTAlO1xyXG5cdHBlcnNwZWN0aXZlIDogMTIwMHB4O1xyXG59XHJcbi8qIGZhZGUgKi9cclxuLm93bC1mYWRlLW91dCB7XHJcbiAgei1pbmRleDogMTA7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGZhZGVPdXQgLjdzIGJvdGggZWFzZTtcclxuICAtbW96LWFuaW1hdGlvbjogZmFkZU91dCAuN3MgYm90aCBlYXNlO1xyXG4gIGFuaW1hdGlvbjogZmFkZU91dCAuN3MgYm90aCBlYXNlO1xyXG59XHJcbi5vd2wtZmFkZS1pbiB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGZhZGVJbiAuN3MgYm90aCBlYXNlO1xyXG4gIC1tb3otYW5pbWF0aW9uOiBmYWRlSW4gLjdzIGJvdGggZWFzZTtcclxuICBhbmltYXRpb246IGZhZGVJbiAuN3MgYm90aCBlYXNlO1xyXG59XHJcbi8qIGJhY2tTbGlkZSAqL1xyXG4ub3dsLWJhY2tTbGlkZS1vdXQge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBiYWNrU2xpZGVPdXQgMXMgYm90aCBlYXNlO1xyXG4gIC1tb3otYW5pbWF0aW9uOiBiYWNrU2xpZGVPdXQgMXMgYm90aCBlYXNlO1xyXG4gIGFuaW1hdGlvbjogYmFja1NsaWRlT3V0IDFzIGJvdGggZWFzZTtcclxufVxyXG4ub3dsLWJhY2tTbGlkZS1pbiB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGJhY2tTbGlkZUluIDFzIGJvdGggZWFzZTtcclxuICAtbW96LWFuaW1hdGlvbjogYmFja1NsaWRlSW4gMXMgYm90aCBlYXNlO1xyXG4gIGFuaW1hdGlvbjogYmFja1NsaWRlSW4gMXMgYm90aCBlYXNlO1xyXG59XHJcbi8qIGdvRG93biAqL1xyXG4ub3dsLWdvRG93bi1vdXQge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBzY2FsZVRvRmFkZSAuN3MgZWFzZSBib3RoO1xyXG4gIC1tb3otYW5pbWF0aW9uOiBzY2FsZVRvRmFkZSAuN3MgZWFzZSBib3RoO1xyXG4gIGFuaW1hdGlvbjogc2NhbGVUb0ZhZGUgLjdzIGVhc2UgYm90aDtcclxufVxyXG4ub3dsLWdvRG93bi1pbiB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IGdvRG93biAuNnMgZWFzZSBib3RoO1xyXG4gIC1tb3otYW5pbWF0aW9uOiBnb0Rvd24gLjZzIGVhc2UgYm90aDtcclxuICBhbmltYXRpb246IGdvRG93biAuNnMgZWFzZSBib3RoO1xyXG59XHJcbi8qIHNjYWxlVXAgKi9cclxuLm93bC1mYWRlVXAtaW4ge1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBzY2FsZVVwRnJvbSAuNXMgZWFzZSBib3RoO1xyXG4gIC1tb3otYW5pbWF0aW9uOiBzY2FsZVVwRnJvbSAuNXMgZWFzZSBib3RoO1xyXG4gIGFuaW1hdGlvbjogc2NhbGVVcEZyb20gLjVzIGVhc2UgYm90aDtcclxufVxyXG5cclxuLm93bC1mYWRlVXAtb3V0IHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogc2NhbGVVcFRvIC41cyBlYXNlIGJvdGg7XHJcbiAgLW1vei1hbmltYXRpb246IHNjYWxlVXBUbyAuNXMgZWFzZSBib3RoO1xyXG4gIGFuaW1hdGlvbjogc2NhbGVVcFRvIC41cyBlYXNlIGJvdGg7XHJcbn1cclxuLyogS2V5ZnJhbWVzICovXHJcbi8qZW1wdHkqL1xyXG5ALXdlYmtpdC1rZXlmcmFtZXMgZW1wdHkge1xyXG5cdDAlIHtvcGFjaXR5OiAxfVxyXG59XHJcbkAtbW96LWtleWZyYW1lcyBlbXB0eSB7XHJcblx0MCUge29wYWNpdHk6IDF9XHJcbn1cclxuQGtleWZyYW1lcyBlbXB0eSB7XHJcblx0MCUge29wYWNpdHk6IDF9XHJcbn1cclxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJbiB7XHJcblx0MCUgeyBvcGFjaXR5OjA7IH1cclxuXHQxMDAlIHsgb3BhY2l0eToxOyB9XHJcbn1cclxuQC1tb3ota2V5ZnJhbWVzIGZhZGVJbiB7XHJcblx0MCUgeyBvcGFjaXR5OjA7IH1cclxuXHQxMDAlIHsgb3BhY2l0eToxOyB9XHJcbn1cclxuQGtleWZyYW1lcyBmYWRlSW4ge1xyXG5cdDAlIHsgb3BhY2l0eTowOyB9XHJcblx0MTAwJSB7IG9wYWNpdHk6MTsgfVxyXG59XHJcbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlT3V0IHtcclxuXHQwJSB7IG9wYWNpdHk6MTsgfVxyXG5cdDEwMCUgeyBvcGFjaXR5OjA7IH1cclxufVxyXG5ALW1vei1rZXlmcmFtZXMgZmFkZU91dCB7XHJcblx0MCUgeyBvcGFjaXR5OjE7IH1cclxuXHQxMDAlIHsgb3BhY2l0eTowOyB9XHJcbn1cclxuQGtleWZyYW1lcyBmYWRlT3V0IHtcclxuXHQwJSB7IG9wYWNpdHk6MTsgfVxyXG5cdDEwMCUgeyBvcGFjaXR5OjA7IH1cclxufVxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgYmFja1NsaWRlT3V0IHtcclxuXHQyNSUgeyBvcGFjaXR5OiAuNTsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooLTUwMHB4KTsgfVxyXG5cdDc1JSB7IG9wYWNpdHk6IC41OyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigtNTAwcHgpIHRyYW5zbGF0ZVgoLTIwMCUpOyB9XHJcblx0MTAwJSB7IG9wYWNpdHk6IC41OyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigtNTAwcHgpIHRyYW5zbGF0ZVgoLTIwMCUpOyB9XHJcbn1cclxuQC1tb3ota2V5ZnJhbWVzIGJhY2tTbGlkZU91dCB7XHJcblx0MjUlIHsgb3BhY2l0eTogLjU7IC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVaKC01MDBweCk7IH1cclxuXHQ3NSUgeyBvcGFjaXR5OiAuNTsgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVooLTUwMHB4KSB0cmFuc2xhdGVYKC0yMDAlKTsgfVxyXG5cdDEwMCUgeyBvcGFjaXR5OiAuNTsgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVooLTUwMHB4KSB0cmFuc2xhdGVYKC0yMDAlKTsgfVxyXG59XHJcbkBrZXlmcmFtZXMgYmFja1NsaWRlT3V0IHtcclxuXHQyNSUgeyBvcGFjaXR5OiAuNTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKC01MDBweCk7IH1cclxuXHQ3NSUgeyBvcGFjaXR5OiAuNTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKC01MDBweCkgdHJhbnNsYXRlWCgtMjAwJSk7IH1cclxuXHQxMDAlIHsgb3BhY2l0eTogLjU7IHRyYW5zZm9ybTogdHJhbnNsYXRlWigtNTAwcHgpIHRyYW5zbGF0ZVgoLTIwMCUpOyB9XHJcbn1cclxuQC13ZWJraXQta2V5ZnJhbWVzIGJhY2tTbGlkZUluIHtcclxuXHQwJSwgMjUlIHsgb3BhY2l0eTogLjU7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKC01MDBweCkgdHJhbnNsYXRlWCgyMDAlKTsgfVxyXG5cdDc1JSB7IG9wYWNpdHk6IC41OyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigtNTAwcHgpOyB9XHJcblx0MTAwJSB7IG9wYWNpdHk6IDE7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApIHRyYW5zbGF0ZVgoMCk7IH1cclxufVxyXG5ALW1vei1rZXlmcmFtZXMgYmFja1NsaWRlSW4ge1xyXG5cdDAlLCAyNSUgeyBvcGFjaXR5OiAuNTsgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVooLTUwMHB4KSB0cmFuc2xhdGVYKDIwMCUpOyB9XHJcblx0NzUlIHsgb3BhY2l0eTogLjU7IC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVaKC01MDBweCk7IH1cclxuXHQxMDAlIHsgb3BhY2l0eTogMTsgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCkgdHJhbnNsYXRlWCgwKTsgfVxyXG59XHJcbkBrZXlmcmFtZXMgYmFja1NsaWRlSW4ge1xyXG5cdDAlLCAyNSUgeyBvcGFjaXR5OiAuNTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKC01MDBweCkgdHJhbnNsYXRlWCgyMDAlKTsgfVxyXG5cdDc1JSB7IG9wYWNpdHk6IC41OyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooLTUwMHB4KTsgfVxyXG5cdDEwMCUgeyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCkgdHJhbnNsYXRlWCgwKTsgfVxyXG59XHJcbkAtd2Via2l0LWtleWZyYW1lcyBzY2FsZVRvRmFkZSB7XHJcblx0dG8geyBvcGFjaXR5OiAwOyAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoLjgpOyB9XHJcbn1cclxuQC1tb3ota2V5ZnJhbWVzIHNjYWxlVG9GYWRlIHtcclxuXHR0byB7IG9wYWNpdHk6IDA7IC1tb3otdHJhbnNmb3JtOiBzY2FsZSguOCk7IH1cclxufVxyXG5Aa2V5ZnJhbWVzIHNjYWxlVG9GYWRlIHtcclxuXHR0byB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogc2NhbGUoLjgpOyB9XHJcbn1cclxuQC13ZWJraXQta2V5ZnJhbWVzIGdvRG93biB7XHJcblx0ZnJvbSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTsgfVxyXG59XHJcbkAtbW96LWtleWZyYW1lcyBnb0Rvd24ge1xyXG5cdGZyb20geyAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7IH1cclxufVxyXG5Aa2V5ZnJhbWVzIGdvRG93biB7XHJcblx0ZnJvbSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7IH1cclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIHNjYWxlVXBGcm9tIHtcclxuXHRmcm9tIHsgb3BhY2l0eTogMDsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuNSk7IH1cclxufVxyXG5ALW1vei1rZXlmcmFtZXMgc2NhbGVVcEZyb20ge1xyXG5cdGZyb20geyBvcGFjaXR5OiAwOyAtbW96LXRyYW5zZm9ybTogc2NhbGUoMS41KTsgfVxyXG59XHJcbkBrZXlmcmFtZXMgc2NhbGVVcEZyb20ge1xyXG5cdGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7IH1cclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIHNjYWxlVXBUbyB7XHJcblx0dG8geyBvcGFjaXR5OiAwOyAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS41KTsgfVxyXG59XHJcbkAtbW96LWtleWZyYW1lcyBzY2FsZVVwVG8ge1xyXG5cdHRvIHsgb3BhY2l0eTogMDsgLW1vei10cmFuc2Zvcm06IHNjYWxlKDEuNSk7IH1cclxufVxyXG5Aa2V5ZnJhbWVzIHNjYWxlVXBUbyB7XHJcblx0dG8geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7IH1cclxufVxyXG5cclxuIiwiLmJ0blxyXG5cdCYuYnRuLWNvbnRhdG9cclxuXHRcdGNlbnRlciAoMjAwcHgpXHJcblx0JiBhXHJcblx0XHRidXR0b24oKVxyXG5cdFx0Ym9yZGVyLXJhZGl1cyAwXHRcclxuXHRcdHRleHQtYWxpZ24gY2VudGVyXHJcblx0XHRjb2xvciB3aGl0ZVxyXG5cdFx0YmFja2dyb3VuZC1jb2xvciAjMDE5NGI1XHJcblx0XHRjdXJzb3IgcG9pbnRlclxyXG5cdFx0ZGlzcGxheSBibG9ja1xyXG5cdFx0aG92ZXItZGFya2VuKCkiXX0= */
